@siemens/element-ng 49.1.0 → 49.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/siemens-element-ng-accordion.mjs +2 -2
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +11 -3
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +2 -2
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +22 -24
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +89 -95
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +2 -2
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +21 -25
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +6 -6
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +8 -4
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +7 -2
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +2 -2
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +164 -10
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +11 -3
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +14 -4
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/vitest-setup.js +5 -0
- package/types/siemens-element-ng-application-header.d.ts +2 -1
- package/types/siemens-element-ng-auto-collapsable-list.d.ts +1 -1
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-common.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +2 -2
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +7 -7
- package/types/siemens-element-ng-file-uploader.d.ts +2 -2
- package/types/siemens-element-ng-filtered-search.d.ts +4 -10
- package/types/siemens-element-ng-form.d.ts +2 -2
- package/types/siemens-element-ng-list-details.d.ts +1 -1
- package/types/siemens-element-ng-main-detail-container.d.ts +10 -11
- package/types/siemens-element-ng-navbar-vertical.d.ts +7 -3
- package/types/siemens-element-ng-navbar.d.ts +1 -1
- package/types/siemens-element-ng-number-input.d.ts +1 -1
- package/types/siemens-element-ng-phone-number.d.ts +1 -1
- package/types/siemens-element-ng-photo-upload.d.ts +1 -1
- package/types/siemens-element-ng-search-bar.d.ts +1 -1
- package/types/siemens-element-ng-side-panel.d.ts +115 -5
- package/types/siemens-element-ng-split.d.ts +2 -2
- package/types/siemens-element-ng-status-bar.d.ts +1 -1
- package/types/siemens-element-ng-status-toggle.d.ts +1 -1
- package/types/siemens-element-ng-tree-view.d.ts +1 -1
- package/types/siemens-element-ng-typeahead.d.ts +8 -3
|
@@ -691,7 +691,7 @@ class SiListWidgetBodyComponent extends SiWidgetBaseDirective {
|
|
|
691
691
|
const value = this.value();
|
|
692
692
|
const sort = this.sort();
|
|
693
693
|
const searchText = this.searchText();
|
|
694
|
-
let filteredListWidgetItems
|
|
694
|
+
let filteredListWidgetItems;
|
|
695
695
|
if (searchText.length > 0) {
|
|
696
696
|
filteredListWidgetItems = value?.filter((item) => this.filterFn()(item, searchText));
|
|
697
697
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-dashboard.mjs","sources":["../../../../projects/element-ng/dashboard/si-dashboard.service.ts","../../../../projects/element-ng/dashboard/si-dashboard-card.component.ts","../../../../projects/element-ng/dashboard/si-dashboard-card.component.html","../../../../projects/element-ng/dashboard/si-dashboard.component.ts","../../../../projects/element-ng/dashboard/si-dashboard.component.html","../../../../projects/element-ng/dashboard/si-dashboard.module.ts","../../../../projects/element-ng/dashboard/widgets/si-widget-base.directive.ts","../../../../projects/element-ng/dashboard/widgets/si-link-widget/si-link-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-link-widget/si-link-widget.component.html","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-item.component.ts","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-item.component.html","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-body.component.ts","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-body.component.html","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget.component.html","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-item.component.ts","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-item.component.html","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-body.component.ts","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-body.component.html","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget.component.html","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget-body.component.ts","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget-body.component.html","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget.component.html","../../../../projects/element-ng/dashboard/index.ts","../../../../projects/element-ng/dashboard/siemens-element-ng-dashboard.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { SiDashboardCardComponent } from './si-dashboard-card.component';\n\n@Injectable()\nexport class SiDashboardService {\n private cards = new BehaviorSubject<SiDashboardCardComponent[]>([]);\n /**\n * Subject containing the current dashboard cards as a list.\n *\n * @defaultValue this.cards.asObservable()\n */\n readonly cards$ = this.cards.asObservable();\n\n /**\n * Registers a new dashboard card.\n */\n register(card: SiDashboardCardComponent): void {\n const nextCards = this.cards.value;\n nextCards.push(card);\n this.cards.next(nextCards);\n }\n\n /**\n * Removes a registered dashboard card.\n */\n unregister(card: SiDashboardCardComponent): void {\n const nextCards = this.cards.value;\n const index = nextCards.indexOf(card);\n if (index > -1) {\n nextCards.splice(index, 1);\n this.cards.next(nextCards);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal\n} from '@angular/core';\nimport { elementPinch, elementZoom } from '@siemens/element-icons';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport { MenuItem } from '@siemens/element-ng/common';\nimport {\n ContentActionBarMainItem,\n SiContentActionBarComponent\n} from '@siemens/element-ng/content-action-bar';\nimport { addIcons } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiDashboardService } from './si-dashboard.service';\n\n@Component({\n selector: 'si-dashboard-card',\n imports: [SiContentActionBarComponent, SiTranslatePipe],\n templateUrl: './si-dashboard-card.component.html',\n styleUrl: './si-dashboard-card.component.scss',\n host: {\n '[class.elevation-2]': 'isExpanded()',\n '[class.expanded]': 'isExpanded()',\n '[class.d-none]': 'hide'\n }\n})\nexport class SiDashboardCardComponent extends SiCardComponent implements OnDestroy {\n /**\n * Description of cancel button & action.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DASHBOARD.RESTORE:Restore`)\n * ```\n */\n readonly restoreText = input(t(() => $localize`:@@SI_DASHBOARD.RESTORE:Restore`));\n /**\n * Description of expand button & action.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DASHBOARD.EXPAND:Expand`)\n * ```\n */\n readonly expandText = input(t(() => $localize`:@@SI_DASHBOARD.EXPAND:Expand`));\n /**\n * Option to enable and show the UI controls for card expand functionality.\n * `Expand` and `restore` action items will be added to the content action bar.\n * The expand resizing has to be implemented by the container of the card.\n *\n * @defaultValue false\n */\n readonly enableExpandInteraction = input(false, { transform: booleanAttribute });\n\n /**\n * Used in combination with si-dashboard to show filters when a card is expanded or not.\n *\n * @defaultValue true\n */\n readonly showMenubar = input(true, { transform: booleanAttribute });\n /**\n * Emitter for size state change\n */\n readonly expandChange = output<boolean>();\n\n /**\n * Whether the card is currently expanded.\n *\n * @defaultValue false\n */\n readonly isExpanded = signal(false);\n /** @internal */\n hide = false;\n /** @internal */\n readonly enableExpandInteractionInternal = signal(false);\n readonly enableExpandInteractionComputed = computed(\n () => this.enableExpandInteraction() || this.enableExpandInteractionInternal()\n );\n /** @internal */\n element = inject(ElementRef);\n\n override readonly displayContentActionBar = computed(\n () => this.primaryActionsComputed()?.length > 0 || this.secondaryActions()?.length > 0\n );\n\n protected readonly actionBarViewTypeComputed = computed(() => {\n if (!this.hasContentBarActions()) {\n if (this.enableExpandInteractionComputed()) {\n return 'expanded';\n } else {\n return this.actionBarViewType();\n }\n } else {\n return this.actionBarViewType();\n }\n });\n\n protected readonly actionBarTitleComputed = computed(() => {\n if (!this.hasContentBarActions()) {\n if (this.enableExpandInteractionComputed()) {\n return this.expandRestoreIconTooltip();\n } else {\n return this.actionBarTitle();\n }\n } else {\n return this.actionBarTitle();\n }\n });\n\n protected readonly primaryActionsComputed = computed<(ContentActionBarMainItem | MenuItem)[]>(\n () => {\n const expandRestoreButtonActions: ContentActionBarMainItem[] = [\n {\n type: 'action',\n label: this.isExpanded() ? this.restoreText() : this.expandText(),\n icon: this.isExpanded() ? this.icons.elementPinch : this.icons.elementZoom,\n iconOnly: true,\n action: () => this.expandCard(!this.isExpanded())\n }\n ];\n\n if (!this.hasContentBarActions()) {\n if (this.enableExpandInteractionComputed()) {\n return expandRestoreButtonActions;\n } else {\n return [];\n }\n } else {\n if (!this.enableExpandInteractionComputed()) {\n return this.primaryActions();\n } else {\n const action = this.isExpanded() ? this.restoreActionItem() : this.expandActionItem();\n if (this.primaryActions() && this.primaryActions().length > 0) {\n return [...this.primaryActions(), action];\n } else {\n return [action];\n }\n }\n }\n }\n );\n\n private readonly icons = addIcons({\n elementPinch,\n elementZoom\n });\n private readonly expandRestoreIconTooltip = computed(() => {\n return this.isExpanded() ? this.restoreText() : this.expandText();\n });\n private readonly expandActionItem = computed(() => {\n return {\n type: 'action',\n label: this.expandText(),\n icon: this.icons.elementZoom,\n iconOnly: true,\n action: () => this.expandCard(true)\n } as ContentActionBarMainItem;\n });\n private readonly restoreActionItem = computed(() => {\n return {\n type: 'action',\n label: this.restoreText(),\n icon: this.icons.elementPinch,\n iconOnly: true,\n action: () => this.expandCard(false)\n } as ContentActionBarMainItem;\n });\n private readonly hasContentBarActions = computed(() => {\n return this.primaryActions()?.length > 0 || this.secondaryActions()?.length > 0;\n });\n private dashboardService = inject(SiDashboardService, { optional: true });\n\n constructor() {\n super();\n this.dashboardService?.register(this);\n }\n\n ngOnDestroy(): void {\n this.dashboardService?.unregister(this);\n }\n\n /**\n * Expand the dashboard card.\n */\n expand(): void {\n this.expandCard(true);\n }\n\n /**\n * Restore the dashboard card to the original, non-expanded state.\n */\n restore(): void {\n this.expandCard(false);\n }\n\n private expandCard(expand: boolean): void {\n this.isExpanded.set(expand);\n this.expandChange.emit(expand);\n }\n}\n","@if (imgSrc()) {\n <img\n class=\"card-content-split\"\n [class.card-img-top]=\"imgDir() !== 'horizontal'\"\n [class.card-img-start]=\"imgDir() === 'horizontal'\"\n [attr.src]=\"imgSrc()\"\n [attr.alt]=\"imgAlt() | translate\"\n />\n}\n\n<div class=\"content-container\" [class.card-content-split]=\"imgSrc()\">\n @if (heading() || displayContentActionBar()) {\n <div class=\"card-header d-flex justify-content-between\">\n <ng-content #cardHeaderIcon select=\"[headerIcon]\" />\n @if (heading()) {\n <div class=\"text-truncate\">{{ heading() | translate }}</div>\n }\n\n <div class=\"cab d-flex ms-6 my-n4 me-n5\">\n @if (displayContentActionBar()) {\n <si-content-action-bar\n class=\"ms-auto\"\n [primaryActions]=\"primaryActionsComputed()\"\n [secondaryActions]=\"secondaryActions()\"\n [actionParam]=\"actionParam()\"\n [viewType]=\"actionBarViewTypeComputed()\"\n [attr.title]=\"actionBarTitleComputed() | translate\"\n />\n }\n </div>\n </div>\n }\n <ng-content #cardBody select=\"[body]\" />\n <ng-content #cardFooter select=\"[footer]\" />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkPortalOutlet, DomPortal, PortalModule } from '@angular/cdk/portal';\nimport { ViewportScroller } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n DestroyRef,\n DOCUMENT,\n ElementRef,\n inject,\n input,\n OnChanges,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScrollbarHelper } from '@siemens/element-ng/common';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n ElementDimensions,\n ResizeObserverService\n} from '@siemens/element-ng/resize-observer';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiDashboardCardComponent } from './si-dashboard-card.component';\nimport { SiDashboardService } from './si-dashboard.service';\n\nconst FIX_SCROLL_PADDING_RESIZE_OBSERVER_THROTTLE = 10;\n\n@Component({\n selector: 'si-dashboard',\n imports: [PortalModule, SiTranslatePipe],\n templateUrl: './si-dashboard.component.html',\n styleUrl: './si-dashboard.component.scss',\n providers: [SiDashboardService],\n host: { class: 'si-layout-fixed-height' }\n})\nexport class SiDashboardComponent implements OnChanges, AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n /**\n * Heading for the dashboard page.\n */\n readonly heading = input<string>();\n\n /**\n * Opt-in to enable expand interaction for all cards.\n *\n * @defaultValue false\n */\n readonly enableExpandInteractions = input(false, { transform: booleanAttribute });\n\n /**\n * Option to turn off the sticky behavior of the heading and menu bar.\n *\n * @defaultValue true\n */\n readonly sticky = input(true, { transform: booleanAttribute });\n\n /**\n * Option to hide the menu bar.\n *\n * @defaultValue false\n */\n readonly hideMenubar = input(false, { transform: booleanAttribute });\n\n /**\n * Is `true` if a card is expanded.\n * @defaultref {@link _isExpanded}\n */\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n\n protected dashboardFrameEndPadding: number | null = null;\n protected readonly hideMenubarComputed = computed(\n () => this.hideMenubar() || this.hideMenubarInternal()\n );\n\n private _isExpanded = false;\n private scrollPosition: [number, number] = [0, 0];\n\n private cards: SiDashboardCardComponent[] = [];\n private readonly expandedPortalOutlet = viewChild.required('expandedPortalOutlet', {\n read: CdkPortalOutlet\n });\n private readonly dashboardFrame = viewChild.required<ElementRef<HTMLElement>>('dashboardFrame');\n private readonly dashboard = viewChild.required<ElementRef<HTMLElement>>('dashboard');\n\n private dashboardFrameDimensions?: ElementDimensions;\n private dashboardDimensions?: ElementDimensions;\n\n private scroller = inject(ViewportScroller);\n private dashboardService = inject(SiDashboardService);\n private resizeObserver = inject(ResizeObserverService);\n private scrollbarHelper = inject(ScrollbarHelper);\n private cdRef = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private readonly hideMenubarInternal = signal(false);\n\n constructor() {\n this.dashboardService.cards$\n .pipe(takeUntilDestroyed())\n .subscribe(cards => this.subscribeToCards(cards));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.enableExpandInteractions) {\n this.initCards();\n }\n }\n\n ngAfterViewInit(): void {\n this.resizeObserver\n .observe(this.dashboard().nativeElement, FIX_SCROLL_PADDING_RESIZE_OBSERVER_THROTTLE)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(x => this.setDashboardFrameEndPadding(this.dashboardFrameDimensions, x));\n this.resizeObserver\n .observe(this.dashboardFrame().nativeElement, FIX_SCROLL_PADDING_RESIZE_OBSERVER_THROTTLE)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(dims => this.setDashboardFrameEndPadding(dims, this.dashboardDimensions));\n }\n\n private subscribeToCards(cards: SiDashboardCardComponent[]): void {\n this.cards = cards;\n this.initCards();\n }\n\n private initCards(): void {\n for (const card of this.cards) {\n // We only enforce expand if the dashboard value is true, otherwise we would remove the individual\n // card settings.\n const enableExpandInteractions = this.enableExpandInteractions();\n if (enableExpandInteractions) {\n card.enableExpandInteractionInternal.set(enableExpandInteractions);\n }\n\n card.expandChange.subscribe((expand: boolean) => {\n if (expand) {\n this.expand(card);\n } else {\n this.restoreDashboard();\n }\n this.cdRef.markForCheck();\n });\n }\n }\n\n /**\n * Expands the provided card to full size in the dashboard.\n * @param card - The card to be expanded.\n */\n public expand(card: SiDashboardCardComponent): void {\n if (this.isExpanded) {\n this.restoreDashboard();\n }\n if (this.sticky()) {\n this.scrollPosition = [\n this.dashboardFrame().nativeElement.scrollLeft,\n this.dashboardFrame().nativeElement.scrollTop\n ];\n } else {\n this.scrollPosition = this.scroller.getScrollPosition();\n }\n\n // Make sure card.expand() is called first and prevent recursions.\n if (!card.isExpanded()) {\n card.expand();\n } else {\n if (!card.showMenubar()) {\n this.hideMenubarInternal.set(true);\n }\n this._isExpanded = true;\n this.expandedPortalOutlet().detach();\n this.expandedPortalOutlet().attach(new DomPortal(card.element.nativeElement));\n }\n }\n\n /**\n * Restores the expanded card to it's previous position.\n */\n public restore(): void {\n // Restore all cards\n for (const card of this.cards) {\n if (card.isExpanded()) {\n card.restore();\n }\n }\n // Restore the dashboard and scroll to previous position\n this.restoreDashboard();\n // Subscribe to cards events again\n this.initCards();\n this.cdRef.markForCheck();\n }\n\n /**\n * Restored the UI state of the dashboard. This method is only part\n * of restoring a card and needs to be invoked after the card.restore()\n * method. In general this is achieved by listening to card events.\n */\n private restoreDashboard(): void {\n this.expandedPortalOutlet().detach();\n this.hideMenubarInternal.set(false);\n this.toggleCardsHide(false);\n const scrollBehavior = this.document.documentElement.style.scrollBehavior;\n this.document.documentElement.style.scrollBehavior = 'auto';\n setTimeout(() => {\n if (this.sticky()) {\n this.dashboardFrame().nativeElement.scrollTo({\n left: this.scrollPosition[0],\n top: this.scrollPosition[1],\n behavior: 'auto'\n });\n } else {\n this.scroller.scrollToPosition(this.scrollPosition);\n this.document.documentElement.style.scrollBehavior = scrollBehavior;\n }\n this.cdRef.markForCheck();\n });\n this._isExpanded = false;\n }\n\n private toggleCardsHide(expand: boolean): void {\n for (const card of this.cards) {\n card.hide = !card.isExpanded() && expand;\n }\n }\n\n private setDashboardFrameEndPadding(\n dashboardFrameDimensions?: ElementDimensions,\n dashboardDimensions?: ElementDimensions\n ): void {\n if (!this.sticky()) {\n return;\n }\n\n if (\n this.dashboardDimensions === dashboardDimensions &&\n this.dashboardFrameDimensions === dashboardFrameDimensions\n ) {\n return;\n }\n\n this.dashboardDimensions = dashboardDimensions;\n this.dashboardFrameDimensions = dashboardFrameDimensions;\n\n let padding = this.document.body.offsetWidth >= BOOTSTRAP_BREAKPOINTS.mdMinimum ? 32 : 16;\n if (\n dashboardDimensions &&\n dashboardFrameDimensions &&\n dashboardDimensions.height > dashboardFrameDimensions.height\n ) {\n padding = padding - this.scrollbarHelper.width;\n }\n this.dashboardFrameEndPadding = padding;\n this.cdRef.markForCheck();\n }\n}\n","<div\n class=\"si-layout-fixed-height si-dashboard si-layout-main-padding py-6\"\n [class.sticky]=\"sticky()\"\n>\n <div class=\"si-dashboard-header\" [class.sticky]=\"sticky()\">\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\">{{ heading() | translate }}</h2>\n </div>\n }\n @if (!hideMenubarComputed()) {\n <div class=\"mb-6\" [class.si-layout-top-element]=\"!heading()\">\n <ng-content select=\"[menubar]\" />\n </div>\n }\n </div>\n <div\n #dashboardFrame\n class=\"si-layout-fixed-height si-dashboard-content ps-2 pt-2 ms-n2 mt-n2\"\n [class.sticky]=\"sticky()\"\n [style.padding-inline-end.px]=\"dashboardFrameEndPadding\"\n >\n <div class=\"si-layout-fixed-height\" [class.d-none]=\"isExpanded\">\n <div #dashboard class=\"si-layout-fixed-height fix-si-layout-fixed-height\">\n <ng-content select=\"[dashboard]\" />\n </div>\n </div>\n <div class=\"position-relative flex-grow-1 flex-shrink-1 mb-6\" [class.d-none]=\"!isExpanded\">\n <ng-container #expandedPortalOutlet cdkPortalOutlet />\n </div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiDashboardCardComponent } from './si-dashboard-card.component';\nimport { SiDashboardComponent } from './si-dashboard.component';\n\n@NgModule({\n imports: [SiDashboardCardComponent, SiDashboardComponent],\n exports: [SiDashboardCardComponent, SiDashboardComponent]\n})\nexport class SiDashboardModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n input,\n OnChanges,\n OnInit,\n signal,\n SimpleChanges\n} from '@angular/core';\n\n/**\n * The SiWidgetBaseDirective<T> implements the timing for the skeleton loading\n * indicator of widgets. It supports a generic value input property that represents\n * the main value to be displayed by a widget. When the value is not set, the `showLoadingIndicator`\n * changes after the `initialLoadingIndicatorDebounceTime` delay to `true` and subclasses\n * should show the skeleton loading indicator.\n */\n@Directive()\nexport abstract class SiWidgetBaseDirective<T> implements OnInit, OnChanges {\n /**\n * The main value to be displayed. If no value is set,\n * the skeleton indicates the loading of the value. Disable\n * the automatic loading mechanism by setting `SiWidgetBodyBaseComponent.disableAutoLoadingIndicator`.\n */\n readonly value = input.required<T | undefined>();\n /**\n * Option to disable automatic start of skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly disableAutoLoadingIndicator = input(false, { transform: booleanAttribute });\n /**\n * Input to start and stop the skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly showLoadingIndicatorInput = input(false, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'showLoadingIndicator',\n transform: booleanAttribute\n });\n\n private readonly showLoadingIndicatorInternal = signal<boolean | undefined>(false);\n\n readonly showLoadingIndicator = computed(() => {\n return this.showLoadingIndicatorInternal() ?? this.showLoadingIndicatorInput();\n });\n\n /**\n * Initial delay time in milliseconds before enabling loading indicator.\n * Only used once initially during construction.\n *\n * @defaultValue 300\n */\n readonly initialLoadingIndicatorDebounceTime = input(300);\n\n protected loadingTimer?: ReturnType<typeof setTimeout>;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n !this.disableAutoLoadingIndicator() &&\n !changes.value?.firstChange &&\n changes.value?.currentValue\n ) {\n if (this.loadingTimer) {\n clearTimeout(this.loadingTimer);\n this.loadingTimer = undefined;\n }\n\n this.showLoadingIndicatorInternal.set(false);\n }\n }\n\n ngOnInit(): void {\n if (!this.disableAutoLoadingIndicator() && !this.value()) {\n this.loadingTimer = setTimeout(() => {\n this.showLoadingIndicatorInternal.set(!this.value());\n }, this.initialLoadingIndicatorDebounceTime());\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/**\n * The `<si-link-widget>` supports an easy composition of links and actions\n * with support for skeleton loading indicator.\n */\n@Component({\n selector: 'si-link-widget',\n imports: [SiIconComponent, SiLinkDirective, SiTranslatePipe],\n templateUrl: './si-link-widget.component.html',\n host: { class: 'si-link-widget' }\n})\nexport class SiLinkWidgetComponent extends SiWidgetBaseDirective<Link[]> {\n /**\n * Option to enable trailing link arrow icons for each link.\n *\n * @defaultValue false\n */\n readonly showLinkIcons = input(false, { transform: booleanAttribute });\n /**\n * The number of skeleton progress indication rows.\n *\n * @defaultValue 3\n */\n readonly numberOfLinks = input(3);\n\n protected readonly ghosts = computed(() => new Array(this.numberOfLinks() ?? 3));\n\n protected readonly icons = addIcons({ elementRight2 });\n}\n","@if (!showLoadingIndicator() && value()) {\n @for (link of value(); track link) {\n @if (link.action) {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"link\">{{\n link.title | translate\n }}</button>\n } @else {\n <a [siLink]=\"link\">\n {{ link.title | translate }}\n @if (showLinkIcons()) {\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n </a>\n }\n }\n} @else {\n @for (some of ghosts(); track $index) {\n <div class=\"si-link-widget-skeleton\"></div>\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/**\n * Interface for objects to configure the the list widget.\n */\nexport interface SiListWidgetItem {\n /** Label is either a translatable string or a link. */\n label: TranslatableString | Link;\n /** Optional translatable description. */\n description?: TranslatableString;\n /** Optional translatable string to be displayed in a badge. */\n badge?: TranslatableString;\n /**\n * Defines the badge color. Must be one of the element `bg-<color>` CSS classes,\n * like `bg-primary`, `bg-secondary`, 'bg-caution'. Use only the name without `bg`.\n */\n badgeColor?: string;\n /** Optional translatable text that is display to the right. */\n text?: TranslatableString;\n /** Optional right aligned action. */\n action?: Link;\n /** The action icon. */\n actionIcon?: string;\n}\n\n/**\n * The `<si-link-widget>` supports an easy composition of links and actions\n * with support for skeleton loading indicator.\n */\n@Component({\n selector: 'si-list-widget-item',\n imports: [SiIconComponent, SiLinkDirective, SiTranslatePipe],\n templateUrl: './si-list-widget-item.component.html',\n host: {\n class: 'list-group-item d-flex align-items-center',\n role: 'listitem'\n }\n})\nexport class SiListWidgetItemComponent extends SiWidgetBaseDirective<SiListWidgetItem> {\n protected readonly isLink = computed(() => {\n return typeof this.value()?.label === 'object';\n });\n protected readonly badgeColor = computed(() => {\n return this.value()?.badgeColor ? 'bg-' + this.value()?.badgeColor : 'bg-default';\n });\n protected readonly link = computed(() => {\n return this.value()?.label as Link;\n });\n protected readonly label = computed(() => {\n return this.value()?.label as string;\n });\n protected readonly icons = addIcons({ elementRight2 });\n}\n","@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n @if (valueObject.badge) {\n <span class=\"mx-0 badge me-4\" [class]=\"badgeColor()\">{{ valueObject.badge | translate }}</span>\n }\n <span class=\"me-auto\">\n @if (!isLink()) {\n <span class=\"si-h5\">{{ label() | translate }}</span>\n } @else {\n <a class=\"\" [siLink]=\"link()\"\n >{{ link().title | translate\n }}<si-icon class=\"link-icon link-start flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n }\n @if (valueObject.description) {\n <div class=\"mt-1 si-body text-secondary\">{{ valueObject.description | translate }}</div>\n }\n </span>\n <span>{{ valueObject.text | translate }}</span>\n @if (valueObject.action) {\n @if (valueObject.action.action) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary ms-4 p-2\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n [siLink]=\"valueObject.action\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </button>\n } @else {\n <a\n class=\"ms-4 p-2\"\n [siLink]=\"valueObject.action\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </a>\n }\n }\n} @else {\n <div class=\"si-link-widget-skeleton my-4\"></div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input, model, OnChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Link } from '@siemens/element-ng/link';\nimport { SiSearchBarComponent } from '@siemens/element-ng/search-bar';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport { SiListWidgetItem, SiListWidgetItemComponent } from './si-list-widget-item.component';\n\n/** Defines the sort order. */\nexport type SortOrder = 'ASC' | 'DSC';\n\n/**\n * The `<si-list-widget-body>` implements the body of the <si-list-widget> that can be\n * used for composition within other components.\n */\n@Component({\n selector: 'si-list-widget-body',\n imports: [SiListWidgetItemComponent, SiSearchBarComponent, SiTranslatePipe, FormsModule],\n templateUrl: './si-list-widget-body.component.html',\n styleUrl: './si-list-widget-body.component.scss',\n host: { class: '' }\n})\nexport class SiListWidgetBodyComponent\n extends SiWidgetBaseDirective<SiListWidgetItem[]>\n implements OnChanges\n{\n /** Optional footer link for the list widget */\n readonly link = input<Link>();\n\n /**\n * label for the \"search placeholder\" name\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n * ```\n */\n readonly searchPlaceholderLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n );\n\n /**\n * Enable ascending and descending SiListWidgetItem sorting. If enabled,\n * items are initially ascending sorted.\n */\n readonly sort = input<SortOrder>();\n\n /**\n * Enables the search functionality.\n *\n * @defaultValue false\n */\n readonly search = input(false, { transform: booleanAttribute });\n\n /**\n * Compare function of for two `SiListWidgetItem`s that is used to sort\n * the array of items. The default compares the item labels by using the\n * string `localeCompare()` function.\n *\n * @param a - first `SiListWidgetItem` of the comparison.\n *\n * @param b - second `SiListWidgetItem` of the comparison.\n *\n * @returns A value `< 0` if `a` is smaller, `> 0` if `b` is smaller, otherwise `0`.\n *\n * @defaultValue\n * ```\n * (\n * a: SiListWidgetItem,\n * b: SiListWidgetItem\n * ) => {\n * const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n * const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n * return aLabel.localeCompare(bLabel);\n * }\n * ```\n */\n readonly compareFn = input<(a: SiListWidgetItem, b: SiListWidgetItem) => number | undefined>(\n (a: SiListWidgetItem, b: SiListWidgetItem) => {\n const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n return aLabel.localeCompare(bLabel);\n }\n );\n\n /**\n * Filter function that is used to filter down the list items when the user enters\n * a term in the search bar. Default function.\n *\n * @param item - The item be checked if it matches the searchTerm.\n *\n * @param searchTerm - The string the user typed in the search bar.\n *\n * @returns `true` if the `searchTerm` matches the `item` and the `item` shall be kept in the list.\n *\n * @defaultValue\n * ```\n * (\n * item: SiListWidgetItem,\n * searchTerm: string\n * ) => {\n * const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n * return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n * }\n * ```\n */\n readonly filterFn = input<(item: SiListWidgetItem, searchTerm: string) => boolean | undefined>(\n (item: SiListWidgetItem, searchTerm: string) => {\n const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n }\n );\n\n /**\n * The number of skeleton progress indication rows.\n *\n * @defaultValue 6\n */\n readonly numberOfLinks = input(6);\n\n /** Used to display the defined number of ghost items */\n protected readonly ghosts = computed(() => new Array(this.numberOfLinks() ?? 6));\n\n /** Holds the list items that are displayed. May be filtered and sorted. */\n protected readonly filteredListWidgetItems = computed(() => {\n const value = this.value();\n const sort = this.sort();\n const searchText = this.searchText();\n let filteredListWidgetItems: SiListWidgetItem[] | undefined = value;\n if (searchText.length > 0) {\n filteredListWidgetItems = value?.filter((item: SiListWidgetItem) =>\n this.filterFn()(item, searchText)\n );\n } else {\n filteredListWidgetItems = value ? [...value] : undefined;\n }\n\n if (sort) {\n const factor = sort === 'ASC' ? 1 : -1;\n filteredListWidgetItems = filteredListWidgetItems?.sort(\n (a: SiListWidgetItem, b: SiListWidgetItem) => (this.compareFn()(a, b) ?? 0) * factor\n );\n }\n\n return filteredListWidgetItems;\n });\n\n protected readonly searchText = model('');\n}\n","@if (search()) {\n <si-search-bar\n class=\"px-6 py-4\"\n showIcon\n colorVariant=\"base-0\"\n [debounceTime]=\"400\"\n [placeholder]=\"searchPlaceholderLabel() | translate\"\n [(ngModel)]=\"searchText\"\n />\n}\n@let filteredListWidgetItemsList = filteredListWidgetItems();\n@if (!showLoadingIndicator() && filteredListWidgetItemsList) {\n @if (filteredListWidgetItemsList.length > 0) {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (item of filteredListWidgetItemsList; track $index) {\n <si-list-widget-item [value]=\"item\" />\n }\n </div>\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n} @else {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (some of ghosts(); track $index) {\n <si-list-widget-item [value]=\"undefined\" />\n }\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input, model, OnChanges } from '@angular/core';\nimport { elementRight2, elementSortDown, elementSortUp } from '@siemens/element-icons';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport { AccentLineType } from '@siemens/element-ng/common';\nimport { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport { SiListWidgetBodyComponent, SortOrder } from './si-list-widget-body.component';\nimport { SiListWidgetItem } from './si-list-widget-item.component';\n\n/**\n * The `<si-list-widget>` supports an easy composition of links and actions\n * with support for skeleton loading indicator, wrapped in a card.\n */\n@Component({\n selector: 'si-list-widget',\n imports: [\n SiCardComponent,\n SiIconComponent,\n SiLinkDirective,\n SiListWidgetBodyComponent,\n SiTranslatePipe\n ],\n templateUrl: './si-list-widget.component.html',\n host: { class: 'si-list-widget' }\n})\nexport class SiListWidgetComponent\n extends SiWidgetBaseDirective<SiListWidgetItem[]>\n implements OnChanges\n{\n protected readonly icons = addIcons({ elementRight2, elementSortDown, elementSortUp });\n\n /** List widget heading. */\n readonly heading = input<TranslatableString>();\n\n /** Optional footer link for the list widget */\n readonly link = input<Link>();\n\n /**\n * label for the \"search placeholder\" name\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n * ```\n */\n readonly searchPlaceholderLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n );\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`)\n * ```\n */\n readonly sortAscendingLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`)\n );\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`)\n * ```\n */\n readonly sortDescendingLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`)\n );\n\n /**\n * Set `ASC` of ascending sorting, `DSC` for descending sorting and `undefined` for no sorting.\n */\n readonly sort = model<SortOrder>();\n\n /**\n * Enables the search functionality.\n *\n * @defaultValue false\n */\n readonly search = input(false, { transform: booleanAttribute });\n\n /**\n * Compare function of for two `SiListWidgetItem`s that is used to sort\n * the array of items. The default compares the item labels by using the\n * string `localeCompare()` function.\n *\n * @param a - first `SiListWidgetItem` of the comparison.\n *\n * @param b - second `SiListWidgetItem` of the comparison.\n *\n * @returns A value `< 0` if `a` is smaller, `> 0` if `b` is smaller, otherwise `0`.\n *\n * @defaultValue\n * ```\n * (\n * a: SiListWidgetItem,\n * b: SiListWidgetItem\n * ) => {\n * const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n * const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n * return aLabel.localeCompare(bLabel);\n * }\n * ```\n */\n readonly compareFn = input<(a: SiListWidgetItem, b: SiListWidgetItem) => number | undefined>(\n (a: SiListWidgetItem, b: SiListWidgetItem) => {\n const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n return aLabel.localeCompare(bLabel);\n }\n );\n\n /**\n * Filter function that is used to filter down the list items when the user enters\n * a term in the search bar. Default function.\n *\n * @param item - The item be checked if it matches the searchTerm.\n *\n * @param searchTerm - The string the user typed in the search bar.\n *\n * @returns `true` if the `searchTerm` matches the `item` and the `item` shall be kept in the list.\n *\n * @defaultValue\n * ```\n * (\n * item: SiListWidgetItem,\n * searchTerm: string\n * ) => {\n * const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n * return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n * }\n * ```\n */\n readonly filterFn = input<(item: SiListWidgetItem, searchTerm: string) => boolean | undefined>(\n (item: SiListWidgetItem, searchTerm: string) => {\n const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n }\n );\n\n /**\n * The number of skeleton progress indication rows.\n *\n * @defaultValue 6\n */\n readonly numberOfLinks = input(6);\n /**\n * Optional accent line\n */\n readonly accentLine = input<AccentLineType>();\n\n protected readonly accentClass = computed(() => {\n const accentLine = this.accentLine();\n return accentLine ? 'accent-' + accentLine : '';\n });\n\n /** The menu item array used to display the sort button. */\n protected readonly sortAction = computed(() => {\n const sortAction: ContentActionBarMainItem[] = [\n {\n label: this.sortDescendingLabel(),\n type: 'action',\n icon: this.icons.elementSortUp,\n iconOnly: true,\n action: () => this.doSort()\n }\n ];\n\n if (this.sort() === 'ASC') {\n sortAction[0].label = this.sortDescendingLabel();\n sortAction[0].icon = this.icons.elementSortUp;\n } else {\n sortAction[0].label = this.sortAscendingLabel();\n sortAction[0].icon = this.icons.elementSortDown;\n }\n return sortAction;\n });\n\n private doSort(): void {\n if (this.sort() === 'ASC') {\n this.sort.set('DSC');\n } else {\n this.sort.set('ASC');\n }\n }\n}\n","<si-card\n actionBarViewType=\"expanded\"\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"sort() ? sortAction() : []\"\n>\n <si-list-widget-body\n body\n [compareFn]=\"compareFn()\"\n [filterFn]=\"filterFn()\"\n [numberOfLinks]=\"numberOfLinks()\"\n [searchPlaceholderLabel]=\"searchPlaceholderLabel()\"\n [search]=\"search()\"\n [sort]=\"sort()\"\n [value]=\"value()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-list-widget-body>\n\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\"\n >{{ linkValue.title | translate }}\n </button>\n }\n </div>\n }\n</si-card>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Component, inject, input, OnChanges, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, RouterLink } from '@angular/router';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { MenuItem, SiMenuModule } from '@siemens/element-ng/menu';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/** Base for action items in the timeline widget. */\nexport interface TimelineWidgetActionBase {\n /** Label that is shown to the user. */\n label: TranslatableString;\n /** The web font icon class name (e.g. element-settings-outline). */\n icon?: string;\n /** Defines if only the icon is shown in the default navigation bar. */\n iconOnly?: boolean;\n}\n\n/** Interface representing an action item in the timeline widget. */\nexport interface TimelineWidgetActionButton extends TimelineWidgetActionBase {\n type: 'action';\n /** The class name to define the button style */\n customClass?: string;\n /** Action that called when the item action is triggered. */\n action: (source: this) => void;\n}\n\n/** Interface representing a router link item in the timeline widget. */\nexport interface TimeLineWidgetRouterLink extends TimelineWidgetActionBase {\n type: 'router-link';\n /** Link for the angular router. Accepts the same values as {@link RouterLink}. */\n routerLink: string | any[];\n /** Navigation extras that are passed to the {@link RouterLink}. */\n extras?: NavigationExtras;\n}\n\n/** Interface representing a link item in the timeline widget. */\nexport interface TimeLineWidgetLink extends TimelineWidgetActionBase {\n type: 'link';\n /** The href property of the anchor. */\n href: string;\n /** The target property of the anchor. */\n target?: string;\n}\n\n/** Interface representing a menu item in the timeline widget. */\nexport interface TimelineWidgetMenu {\n type: 'menu';\n menuItems: MenuItem[];\n}\n\n/** Union type for all possible action items in the timeline widget. */\nexport type TimelineWidgetItemAction =\n | TimelineWidgetActionButton\n | TimeLineWidgetLink\n | TimeLineWidgetRouterLink\n | TimelineWidgetMenu;\n\n/**\n * Represents an item in the timeline widget.\n * Each item may contain a timestamp, a title, an icon, an optional description and optional action elements.\n * Actions can be buttons, links, router links, or menus.\n */\nexport interface SiTimelineWidgetItem {\n /**\n * The timestamp of the item.\n */\n timeStamp: TranslatableString;\n /**\n * The title of the item.\n */\n title: TranslatableString;\n /**\n * Optional translatable description.\n */\n description?: TranslatableString;\n /**\n * The icon of the item.\n */\n icon: string;\n /**\n * The color of the icon.\n */\n iconColor?: string;\n /**\n * The stacked icon of the item.\n */\n stackedIcon?: string;\n /**\n * The color of the stacked icon.\n */\n stackedIconColor?: string;\n /**\n * The alt text of the icon\n */\n iconAlt?: TranslatableString;\n /**\n * The related action of the item\n */\n action?: TimelineWidgetItemAction;\n}\n\n/**\n * The items of the `<si-timeline-widget>`.\n */\n@Component({\n selector: 'si-timeline-widget-item',\n imports: [SiIconComponent, SiTranslatePipe, A11yModule, RouterLink, SiMenuModule, CdkMenuTrigger],\n templateUrl: './si-timeline-widget-item.component.html',\n host: {\n role: 'listitem'\n }\n})\nexport class SiTimelineWidgetItemComponent\n extends SiWidgetBaseDirective<SiTimelineWidgetItem>\n implements OnInit, OnChanges\n{\n /**\n * Whether to show or hide the description row during skeleton progress indication.\n *\n * @defaultValue `true`\n */\n readonly showDescription = input(true);\n\n /**\n * Aria label text for actions button dropdown.\n */\n readonly ariaLabelDropdown = t(\n () => $localize`:@@SI_DASHBOARD.EXPAND_WIDGET_ACTIONS:Expand actions`\n );\n\n protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n}\n","@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n <div class=\"d-flex flex-row gap-4\" [class.pe-4]=\"!valueObject.action\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4\">\n <span class=\"icon icon-stack\">\n <si-icon [class]=\"valueObject.iconColor\" [icon]=\"valueObject.icon\" />\n @if (valueObject.stackedIcon) {\n <si-icon [class]=\"valueObject.stackedIconColor\" [icon]=\"valueObject.stackedIcon\" />\n }\n </span>\n @if (valueObject.iconAlt) {\n <span class=\"visually-hidden\">{{ valueObject.iconAlt | translate }}</span>\n }\n <div class=\"si-timeline-widget-item-lower-line\"></div>\n </div>\n <div class=\"d-flex flex-column gap-1 py-4 flex-grow-1\">\n <span class=\"si-caption text-secondary\">{{ valueObject.timeStamp | translate }}</span>\n <span class=\"si-h5\">{{ valueObject.title | translate }}</span>\n @if (valueObject.description) {\n <span class=\"si-body text-secondary\">{{ valueObject.description | translate }}</span>\n }\n </div>\n @if (valueObject.action) {\n @let action = valueObject.action;\n <div class=\"si-timeline-widget-item-action align-self-center\">\n @if (action.type === 'action') {\n <button\n type=\"button\"\n class=\"d-flex btn\"\n [class]=\"action.customClass ?? 'btn-tertiary'\"\n [class.btn-icon]=\"action.iconOnly\"\n (click)=\"action.action(action)\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span>\n </button>\n } @else if (action.type === 'router-link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [routerLink]=\"action.routerLink\"\n [queryParams]=\"action.extras?.queryParams\"\n [queryParamsHandling]=\"action.extras?.queryParamsHandling\"\n [fragment]=\"action.extras?.fragment\"\n [state]=\"action.extras?.state\"\n [relativeTo]=\"action.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"action.extras?.preserveFragment\"\n [skipLocationChange]=\"action.extras?.skipLocationChange\"\n [replaceUrl]=\"action.extras?.replaceUrl\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [href]=\"action.href\"\n [target]=\"action.target\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'menu') {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary element-options-vertical\"\n [attr.aria-label]=\"ariaLabelDropdown | translate\"\n [cdkMenuTriggerFor]=\"actionMenu\"\n ></button>\n\n <ng-template #actionMenu>\n <si-menu-factory [items]=\"action.menuItems\" />\n </ng-template>\n }\n </div>\n }\n </div>\n} @else {\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4 pe-4\">\n <div class=\"p-5 si-skeleton\"></div>\n </div>\n <div class=\"d-flex flex-column flex-grow-1 gap-1 py-4\">\n <span class=\"si-link-widget-skeleton\"></span>\n <span class=\"si-link-widget-skeleton\" [class.w-50]=\"!showDescription()\"></span>\n @if (showDescription()) {\n <span class=\"si-link-widget-skeleton w-50\"></span>\n }\n </div>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport {\n SiTimelineWidgetItem,\n SiTimelineWidgetItemComponent\n} from './si-timeline-widget-item.component';\n\n@Component({\n selector: 'si-timeline-widget-body',\n imports: [SiTimelineWidgetItemComponent],\n templateUrl: './si-timeline-widget-body.component.html',\n styleUrl: './si-timeline-widget-body.component.scss'\n})\nexport class SiTimelineWidgetBodyComponent extends SiWidgetBaseDirective<SiTimelineWidgetItem[]> {\n /**\n * Number of skeleton progress indication items.\n *\n * @defaultValue 4\n */\n readonly numberOfItems = input(4);\n\n /**\n * Whether to show or hide the description row during skeleton progress indication.\n *\n * @defaultValue `true`\n */\n readonly showDescription = input(true);\n\n /** Used to display the defined number of ghost items */\n protected readonly ghosts = computed(() => {\n return new Array(this.numberOfItems() ?? 4);\n });\n}\n","@let valueObject = value();\n<div\n class=\"focus-inside\"\n tabindex=\"0\"\n [attr.role]=\"\n (!showLoadingIndicator() && valueObject && valueObject.length > 0) || showLoadingIndicator()\n ? 'list'\n : null\n \"\n>\n @if (!showLoadingIndicator() && valueObject) {\n @if (valueObject && valueObject.length > 0) {\n @for (item of valueObject; track $index) {\n <si-timeline-widget-item [value]=\"item\" />\n }\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n } @else {\n @for (some of ghosts(); track $index) {\n <si-timeline-widget-item [value]=\"undefined\" [showDescription]=\"showDescription()\" />\n }\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, OnChanges } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport { AccentLineType, MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\nimport { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { MenuItem } from '@siemens/element-ng/menu';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport { SiTimelineWidgetBodyComponent } from './si-timeline-widget-body.component';\nimport { SiTimelineWidgetItem } from './si-timeline-widget-item.component';\n\n@Component({\n selector: 'si-timeline-widget',\n imports: [\n SiLinkDirective,\n SiCardComponent,\n SiTimelineWidgetBodyComponent,\n SiTranslatePipe,\n SiIconComponent\n ],\n templateUrl: './si-timeline-widget.component.html'\n})\nexport class SiTimelineWidgetComponent\n extends SiWidgetBaseDirective<SiTimelineWidgetItem[]>\n implements OnChanges\n{\n /**\n * Timeline widget header text.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Input list of primary action items. Supports up to **4** actions and omits additional ones.\n *\n * @defaultValue []\n */\n readonly primaryActions = input<(MenuItemLegacy | ContentActionBarMainItem)[]>([]);\n /**\n * Input list of secondary action items.\n *\n * @defaultValue []\n */\n readonly secondaryActions = input<(MenuItemLegacy | MenuItem)[]>([]);\n /**\n * Link that leads the user to more information\n * or triggers and action. The `link.title` is displayed.\n * The title will be translated.\n */\n readonly link = input<Link>();\n\n /**\n * Number of skeleton progress indication items.\n *\n * @defaultValue 4\n */\n readonly numberOfItems = input(4);\n\n /**\n * Whether to show or hide the description row during skeleton progress indication.\n *\n * @defaultValue `true`\n */\n readonly showDescription = input(true);\n /**\n * Optional accent line\n */\n readonly accentLine = input<AccentLineType>();\n\n protected readonly accentClass = computed(() => {\n const accentLine = this.accentLine();\n return accentLine ? 'accent-' + accentLine : '';\n });\n\n protected readonly icons = addIcons({ elementRight2 });\n}\n","<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n>\n <si-timeline-widget-body\n body\n [value]=\"value()\"\n [showDescription]=\"showDescription()\"\n [numberOfItems]=\"numberOfItems()\"\n [class.pb-6]=\"!link()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-timeline-widget-body>\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\">{{\n linkValue.title | translate\n }}</button>\n }\n </div>\n }\n</si-card>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input, OnInit } from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiIconComponent, SiStatusIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/**\n * The body of the `<si-value-widget>`. Useful for compositions.\n */\n@Component({\n selector: 'si-value-widget-body',\n imports: [SiIconComponent, SiStatusIconComponent, SiTranslatePipe],\n templateUrl: './si-value-widget-body.component.html'\n})\nexport class SiValueWidgetBodyComponent\n extends SiWidgetBaseDirective<TranslatableString>\n implements OnInit\n{\n /**\n * The unit of the value (e.g. kWh or users). Only visible if `value` is available.\n */\n readonly unit = input<TranslatableString>();\n /**\n * The element icon name. Only visible if `value` is available.\n */\n readonly icon = input<string>();\n /**\n * Show a status icon instead of the {@link icon}.\n */\n readonly status = input<EntityStatusType>();\n /**\n * Short description of the value. A description is mandatory\n * to show an icon. Only visible if `value` is available.\n */\n readonly description = input<TranslatableString>();\n}\n","@if (!showLoadingIndicator()) {\n @if (value()) {\n <span class=\"si-value-widget-value\">{{ value() | translate }}</span>\n <span class=\"si-value-widget-unit\">{{ unit() | translate }}</span>\n @if (description()) {\n <div class=\"si-value-widget-description\">\n @let statusValue = status();\n @let iconValue = icon();\n @if (statusValue) {\n <si-status-icon class=\"icon\" [status]=\"statusValue\" />\n } @else if (iconValue) {\n <si-icon class=\"icon\" [icon]=\"iconValue\" />\n }\n <span>{{ description() | translate }}</span>\n </div>\n }\n }\n} @else {\n <span class=\"si-value-widget-value w-100\">\n <div class=\"si-value-widget-value-skeleton\"></div>\n </span>\n <div class=\"si-value-widget-description si-skeleton w-100\"></div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input } from '@angular/core';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport {\n AccentLineType,\n EntityStatusType,\n MenuItem as MenuItemLegacy\n} from '@siemens/element-ng/common';\nimport { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { MenuItem } from '@siemens/element-ng/menu';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiValueWidgetBodyComponent } from './si-value-widget-body.component';\n\n/**\n * Is a dynamic UI component that not only displays information, but also includes\n * embedded actions which the user can interact with to perform tasks directly\n * related to the card's content. Actions might include editing settings,\n * initiating processes, or deleting resources.\n *\n * The actionable widget turns data representation into an interactive hub,\n * streamlining the user's tasks and decisions associated with the card's content.\n *\n * This component is a wrapper using the `.si-value-widget` CSS classes and the\n * `<si-card>` component. For more configuration options, use the CSS classes directly.\n */\n@Component({\n selector: 'si-value-widget',\n imports: [SiCardComponent, SiLinkDirective, SiTranslatePipe, SiValueWidgetBodyComponent],\n templateUrl: './si-value-widget.component.html'\n})\nexport class SiValueWidgetComponent {\n /**\n * Value widget header text.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Input list of primary action items. Supports up to **4** actions and omits additional ones.\n *\n * @defaultValue []\n */\n readonly primaryActions = input<(MenuItemLegacy | ContentActionBarMainItem)[]>([]);\n /**\n * Input list of secondary action items.\n *\n * @defaultValue []\n */\n readonly secondaryActions = input<(MenuItemLegacy | MenuItem)[]>([]);\n /**\n * The main value to be displayed. If no value is set,\n * the skeleton indicates the loading of the value. Disable\n * the automatic loading mechanism by setting `SiValueWidgetComponent.disableAutoLoadingIndicator`.\n */\n readonly value = input<TranslatableString>();\n /**\n * The unit of the value (e.g. kWh or users). Only visible if `value` is available.\n */\n readonly unit = input<TranslatableString>();\n /**\n * The element icon name. Only visible if `value` is available.\n */\n readonly icon = input<string>();\n /**\n * Show a status icon instead of the {@link icon}.\n */\n readonly status = input<EntityStatusType>();\n /**\n * Short description of the value. A description is mandatory\n * to show an icon. Only visible if `value` is available.\n */\n readonly description = input<TranslatableString>();\n /**\n * Link that leads the user to more information\n * or triggers and action. The `link.title` is displayed.\n * The title will be translated.\n */\n readonly link = input<Link>();\n /**\n * Option to disable automatic start of skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly disableAutoLoadingIndicator = input(false, { transform: booleanAttribute });\n /**\n * Input to start and stop the skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly showLoadingIndicator = input(false, { transform: booleanAttribute });\n /**\n * Initial delay time in milliseconds before enabling loading indicator.\n * Only used once initially during construction.\n *\n * @defaultValue 300\n */\n readonly initialLoadingIndicatorDebounceTime = input(300);\n /**\n * Image source for the card.\n */\n readonly imgSrc = input<string>();\n /**\n * Alt text for a provided image.\n */\n readonly imgAlt = input<string>();\n /**\n * Defines if an image is placed on top or start (left) of the card.\n *\n * @defaultValue 'vertical'\n */\n readonly imgDir = input<'horizontal' | 'vertical'>('vertical');\n /**\n * Sets the image [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.\n *\n * @defaultValue 'scale-down'\n */\n readonly imgObjectFit = input<'contain' | 'cover' | 'fill' | 'none' | 'scale-down'>('scale-down');\n /**\n * Sets the image [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.\n */\n readonly imgObjectPosition = input<string>();\n /**\n * Optional accent line\n */\n readonly accentLine = input<AccentLineType>();\n\n protected readonly accentClass = computed(() => {\n const accentLine = this.accentLine();\n return accentLine ? 'accent-' + accentLine : '';\n });\n}\n","<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [imgSrc]=\"imgSrc()\"\n [imgDir]=\"imgDir()\"\n [imgAlt]=\"imgAlt()\"\n [imgObjectFit]=\"imgObjectFit()\"\n [imgObjectPosition]=\"imgObjectPosition()\"\n>\n <div class=\"card-body\" body>\n <si-value-widget-body\n [value]=\"value()\"\n [unit]=\"unit()\"\n [icon]=\"icon()\"\n [status]=\"status()\"\n [description]=\"description()\"\n [disableAutoLoadingIndicator]=\"disableAutoLoadingIndicator()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n [initialLoadingIndicatorDebounceTime]=\"initialLoadingIndicatorDebounceTime()\"\n />\n </div>\n @let linkObject = link();\n @if (linkObject) {\n <div class=\"card-footer\" footer>\n <a [siLink]=\"linkObject\">{{ linkObject.title | translate }}</a>\n </div>\n }\n</si-card>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-dashboard-card.component';\nexport * from './si-dashboard.component';\nexport * from './si-dashboard.module';\nexport * from './si-dashboard.service';\nexport * from './widgets/si-link-widget/si-link-widget.component';\nexport * from './widgets/si-list-widget/si-list-widget.component';\nexport * from './widgets/si-list-widget/si-list-widget-body.component';\nexport * from './widgets/si-list-widget/si-list-widget-item.component';\nexport * from './widgets/si-timeline-widget/si-timeline-widget.component';\nexport * from './widgets/si-timeline-widget/si-timeline-widget-body.component';\nexport * from './widgets/si-timeline-widget/si-timeline-widget-item.component';\nexport * from './widgets/si-value-widget/si-value-widget-body.component';\nexport * from './widgets/si-value-widget/si-value-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-dashboard.mjs","sources":["../../../../projects/element-ng/dashboard/si-dashboard.service.ts","../../../../projects/element-ng/dashboard/si-dashboard-card.component.ts","../../../../projects/element-ng/dashboard/si-dashboard-card.component.html","../../../../projects/element-ng/dashboard/si-dashboard.component.ts","../../../../projects/element-ng/dashboard/si-dashboard.component.html","../../../../projects/element-ng/dashboard/si-dashboard.module.ts","../../../../projects/element-ng/dashboard/widgets/si-widget-base.directive.ts","../../../../projects/element-ng/dashboard/widgets/si-link-widget/si-link-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-link-widget/si-link-widget.component.html","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-item.component.ts","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-item.component.html","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-body.component.ts","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget-body.component.html","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-list-widget/si-list-widget.component.html","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-item.component.ts","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-item.component.html","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-body.component.ts","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget-body.component.html","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-timeline-widget/si-timeline-widget.component.html","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget-body.component.ts","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget-body.component.html","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget.component.ts","../../../../projects/element-ng/dashboard/widgets/si-value-widget/si-value-widget.component.html","../../../../projects/element-ng/dashboard/index.ts","../../../../projects/element-ng/dashboard/siemens-element-ng-dashboard.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { SiDashboardCardComponent } from './si-dashboard-card.component';\n\n@Injectable()\nexport class SiDashboardService {\n private cards = new BehaviorSubject<SiDashboardCardComponent[]>([]);\n /**\n * Subject containing the current dashboard cards as a list.\n *\n * @defaultValue this.cards.asObservable()\n */\n readonly cards$ = this.cards.asObservable();\n\n /**\n * Registers a new dashboard card.\n */\n register(card: SiDashboardCardComponent): void {\n const nextCards = this.cards.value;\n nextCards.push(card);\n this.cards.next(nextCards);\n }\n\n /**\n * Removes a registered dashboard card.\n */\n unregister(card: SiDashboardCardComponent): void {\n const nextCards = this.cards.value;\n const index = nextCards.indexOf(card);\n if (index > -1) {\n nextCards.splice(index, 1);\n this.cards.next(nextCards);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal\n} from '@angular/core';\nimport { elementPinch, elementZoom } from '@siemens/element-icons';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport { MenuItem } from '@siemens/element-ng/common';\nimport {\n ContentActionBarMainItem,\n SiContentActionBarComponent\n} from '@siemens/element-ng/content-action-bar';\nimport { addIcons } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiDashboardService } from './si-dashboard.service';\n\n@Component({\n selector: 'si-dashboard-card',\n imports: [SiContentActionBarComponent, SiTranslatePipe],\n templateUrl: './si-dashboard-card.component.html',\n styleUrl: './si-dashboard-card.component.scss',\n host: {\n '[class.elevation-2]': 'isExpanded()',\n '[class.expanded]': 'isExpanded()',\n '[class.d-none]': 'hide'\n }\n})\nexport class SiDashboardCardComponent extends SiCardComponent implements OnDestroy {\n /**\n * Description of cancel button & action.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DASHBOARD.RESTORE:Restore`)\n * ```\n */\n readonly restoreText = input(t(() => $localize`:@@SI_DASHBOARD.RESTORE:Restore`));\n /**\n * Description of expand button & action.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DASHBOARD.EXPAND:Expand`)\n * ```\n */\n readonly expandText = input(t(() => $localize`:@@SI_DASHBOARD.EXPAND:Expand`));\n /**\n * Option to enable and show the UI controls for card expand functionality.\n * `Expand` and `restore` action items will be added to the content action bar.\n * The expand resizing has to be implemented by the container of the card.\n *\n * @defaultValue false\n */\n readonly enableExpandInteraction = input(false, { transform: booleanAttribute });\n\n /**\n * Used in combination with si-dashboard to show filters when a card is expanded or not.\n *\n * @defaultValue true\n */\n readonly showMenubar = input(true, { transform: booleanAttribute });\n /**\n * Emitter for size state change\n */\n readonly expandChange = output<boolean>();\n\n /**\n * Whether the card is currently expanded.\n *\n * @defaultValue false\n */\n readonly isExpanded = signal(false);\n /** @internal */\n hide = false;\n /** @internal */\n readonly enableExpandInteractionInternal = signal(false);\n readonly enableExpandInteractionComputed = computed(\n () => this.enableExpandInteraction() || this.enableExpandInteractionInternal()\n );\n /** @internal */\n element = inject(ElementRef);\n\n override readonly displayContentActionBar = computed(\n () => this.primaryActionsComputed()?.length > 0 || this.secondaryActions()?.length > 0\n );\n\n protected readonly actionBarViewTypeComputed = computed(() => {\n if (!this.hasContentBarActions()) {\n if (this.enableExpandInteractionComputed()) {\n return 'expanded';\n } else {\n return this.actionBarViewType();\n }\n } else {\n return this.actionBarViewType();\n }\n });\n\n protected readonly actionBarTitleComputed = computed(() => {\n if (!this.hasContentBarActions()) {\n if (this.enableExpandInteractionComputed()) {\n return this.expandRestoreIconTooltip();\n } else {\n return this.actionBarTitle();\n }\n } else {\n return this.actionBarTitle();\n }\n });\n\n protected readonly primaryActionsComputed = computed<(ContentActionBarMainItem | MenuItem)[]>(\n () => {\n const expandRestoreButtonActions: ContentActionBarMainItem[] = [\n {\n type: 'action',\n label: this.isExpanded() ? this.restoreText() : this.expandText(),\n icon: this.isExpanded() ? this.icons.elementPinch : this.icons.elementZoom,\n iconOnly: true,\n action: () => this.expandCard(!this.isExpanded())\n }\n ];\n\n if (!this.hasContentBarActions()) {\n if (this.enableExpandInteractionComputed()) {\n return expandRestoreButtonActions;\n } else {\n return [];\n }\n } else {\n if (!this.enableExpandInteractionComputed()) {\n return this.primaryActions();\n } else {\n const action = this.isExpanded() ? this.restoreActionItem() : this.expandActionItem();\n if (this.primaryActions() && this.primaryActions().length > 0) {\n return [...this.primaryActions(), action];\n } else {\n return [action];\n }\n }\n }\n }\n );\n\n private readonly icons = addIcons({\n elementPinch,\n elementZoom\n });\n private readonly expandRestoreIconTooltip = computed(() => {\n return this.isExpanded() ? this.restoreText() : this.expandText();\n });\n private readonly expandActionItem = computed(() => {\n return {\n type: 'action',\n label: this.expandText(),\n icon: this.icons.elementZoom,\n iconOnly: true,\n action: () => this.expandCard(true)\n } as ContentActionBarMainItem;\n });\n private readonly restoreActionItem = computed(() => {\n return {\n type: 'action',\n label: this.restoreText(),\n icon: this.icons.elementPinch,\n iconOnly: true,\n action: () => this.expandCard(false)\n } as ContentActionBarMainItem;\n });\n private readonly hasContentBarActions = computed(() => {\n return this.primaryActions()?.length > 0 || this.secondaryActions()?.length > 0;\n });\n private dashboardService = inject(SiDashboardService, { optional: true });\n\n constructor() {\n super();\n this.dashboardService?.register(this);\n }\n\n ngOnDestroy(): void {\n this.dashboardService?.unregister(this);\n }\n\n /**\n * Expand the dashboard card.\n */\n expand(): void {\n this.expandCard(true);\n }\n\n /**\n * Restore the dashboard card to the original, non-expanded state.\n */\n restore(): void {\n this.expandCard(false);\n }\n\n private expandCard(expand: boolean): void {\n this.isExpanded.set(expand);\n this.expandChange.emit(expand);\n }\n}\n","@if (imgSrc()) {\n <img\n class=\"card-content-split\"\n [class.card-img-top]=\"imgDir() !== 'horizontal'\"\n [class.card-img-start]=\"imgDir() === 'horizontal'\"\n [attr.src]=\"imgSrc()\"\n [attr.alt]=\"imgAlt() | translate\"\n />\n}\n\n<div class=\"content-container\" [class.card-content-split]=\"imgSrc()\">\n @if (heading() || displayContentActionBar()) {\n <div class=\"card-header d-flex justify-content-between\">\n <ng-content #cardHeaderIcon select=\"[headerIcon]\" />\n @if (heading()) {\n <div class=\"text-truncate\">{{ heading() | translate }}</div>\n }\n\n <div class=\"cab d-flex ms-6 my-n4 me-n5\">\n @if (displayContentActionBar()) {\n <si-content-action-bar\n class=\"ms-auto\"\n [primaryActions]=\"primaryActionsComputed()\"\n [secondaryActions]=\"secondaryActions()\"\n [actionParam]=\"actionParam()\"\n [viewType]=\"actionBarViewTypeComputed()\"\n [attr.title]=\"actionBarTitleComputed() | translate\"\n />\n }\n </div>\n </div>\n }\n <ng-content #cardBody select=\"[body]\" />\n <ng-content #cardFooter select=\"[footer]\" />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkPortalOutlet, DomPortal, PortalModule } from '@angular/cdk/portal';\nimport { ViewportScroller } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n DestroyRef,\n DOCUMENT,\n ElementRef,\n inject,\n input,\n OnChanges,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScrollbarHelper } from '@siemens/element-ng/common';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n ElementDimensions,\n ResizeObserverService\n} from '@siemens/element-ng/resize-observer';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiDashboardCardComponent } from './si-dashboard-card.component';\nimport { SiDashboardService } from './si-dashboard.service';\n\nconst FIX_SCROLL_PADDING_RESIZE_OBSERVER_THROTTLE = 10;\n\n@Component({\n selector: 'si-dashboard',\n imports: [PortalModule, SiTranslatePipe],\n templateUrl: './si-dashboard.component.html',\n styleUrl: './si-dashboard.component.scss',\n providers: [SiDashboardService],\n host: { class: 'si-layout-fixed-height' }\n})\nexport class SiDashboardComponent implements OnChanges, AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n /**\n * Heading for the dashboard page.\n */\n readonly heading = input<string>();\n\n /**\n * Opt-in to enable expand interaction for all cards.\n *\n * @defaultValue false\n */\n readonly enableExpandInteractions = input(false, { transform: booleanAttribute });\n\n /**\n * Option to turn off the sticky behavior of the heading and menu bar.\n *\n * @defaultValue true\n */\n readonly sticky = input(true, { transform: booleanAttribute });\n\n /**\n * Option to hide the menu bar.\n *\n * @defaultValue false\n */\n readonly hideMenubar = input(false, { transform: booleanAttribute });\n\n /**\n * Is `true` if a card is expanded.\n * @defaultref {@link _isExpanded}\n */\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n\n protected dashboardFrameEndPadding: number | null = null;\n protected readonly hideMenubarComputed = computed(\n () => this.hideMenubar() || this.hideMenubarInternal()\n );\n\n private _isExpanded = false;\n private scrollPosition: [number, number] = [0, 0];\n\n private cards: SiDashboardCardComponent[] = [];\n private readonly expandedPortalOutlet = viewChild.required('expandedPortalOutlet', {\n read: CdkPortalOutlet\n });\n private readonly dashboardFrame = viewChild.required<ElementRef<HTMLElement>>('dashboardFrame');\n private readonly dashboard = viewChild.required<ElementRef<HTMLElement>>('dashboard');\n\n private dashboardFrameDimensions?: ElementDimensions;\n private dashboardDimensions?: ElementDimensions;\n\n private scroller = inject(ViewportScroller);\n private dashboardService = inject(SiDashboardService);\n private resizeObserver = inject(ResizeObserverService);\n private scrollbarHelper = inject(ScrollbarHelper);\n private cdRef = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private readonly hideMenubarInternal = signal(false);\n\n constructor() {\n this.dashboardService.cards$\n .pipe(takeUntilDestroyed())\n .subscribe(cards => this.subscribeToCards(cards));\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.enableExpandInteractions) {\n this.initCards();\n }\n }\n\n ngAfterViewInit(): void {\n this.resizeObserver\n .observe(this.dashboard().nativeElement, FIX_SCROLL_PADDING_RESIZE_OBSERVER_THROTTLE)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(x => this.setDashboardFrameEndPadding(this.dashboardFrameDimensions, x));\n this.resizeObserver\n .observe(this.dashboardFrame().nativeElement, FIX_SCROLL_PADDING_RESIZE_OBSERVER_THROTTLE)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(dims => this.setDashboardFrameEndPadding(dims, this.dashboardDimensions));\n }\n\n private subscribeToCards(cards: SiDashboardCardComponent[]): void {\n this.cards = cards;\n this.initCards();\n }\n\n private initCards(): void {\n for (const card of this.cards) {\n // We only enforce expand if the dashboard value is true, otherwise we would remove the individual\n // card settings.\n const enableExpandInteractions = this.enableExpandInteractions();\n if (enableExpandInteractions) {\n card.enableExpandInteractionInternal.set(enableExpandInteractions);\n }\n\n card.expandChange.subscribe((expand: boolean) => {\n if (expand) {\n this.expand(card);\n } else {\n this.restoreDashboard();\n }\n this.cdRef.markForCheck();\n });\n }\n }\n\n /**\n * Expands the provided card to full size in the dashboard.\n * @param card - The card to be expanded.\n */\n public expand(card: SiDashboardCardComponent): void {\n if (this.isExpanded) {\n this.restoreDashboard();\n }\n if (this.sticky()) {\n this.scrollPosition = [\n this.dashboardFrame().nativeElement.scrollLeft,\n this.dashboardFrame().nativeElement.scrollTop\n ];\n } else {\n this.scrollPosition = this.scroller.getScrollPosition();\n }\n\n // Make sure card.expand() is called first and prevent recursions.\n if (!card.isExpanded()) {\n card.expand();\n } else {\n if (!card.showMenubar()) {\n this.hideMenubarInternal.set(true);\n }\n this._isExpanded = true;\n this.expandedPortalOutlet().detach();\n this.expandedPortalOutlet().attach(new DomPortal(card.element.nativeElement));\n }\n }\n\n /**\n * Restores the expanded card to it's previous position.\n */\n public restore(): void {\n // Restore all cards\n for (const card of this.cards) {\n if (card.isExpanded()) {\n card.restore();\n }\n }\n // Restore the dashboard and scroll to previous position\n this.restoreDashboard();\n // Subscribe to cards events again\n this.initCards();\n this.cdRef.markForCheck();\n }\n\n /**\n * Restored the UI state of the dashboard. This method is only part\n * of restoring a card and needs to be invoked after the card.restore()\n * method. In general this is achieved by listening to card events.\n */\n private restoreDashboard(): void {\n this.expandedPortalOutlet().detach();\n this.hideMenubarInternal.set(false);\n this.toggleCardsHide(false);\n const scrollBehavior = this.document.documentElement.style.scrollBehavior;\n this.document.documentElement.style.scrollBehavior = 'auto';\n setTimeout(() => {\n if (this.sticky()) {\n this.dashboardFrame().nativeElement.scrollTo({\n left: this.scrollPosition[0],\n top: this.scrollPosition[1],\n behavior: 'auto'\n });\n } else {\n this.scroller.scrollToPosition(this.scrollPosition);\n this.document.documentElement.style.scrollBehavior = scrollBehavior;\n }\n this.cdRef.markForCheck();\n });\n this._isExpanded = false;\n }\n\n private toggleCardsHide(expand: boolean): void {\n for (const card of this.cards) {\n card.hide = !card.isExpanded() && expand;\n }\n }\n\n private setDashboardFrameEndPadding(\n dashboardFrameDimensions?: ElementDimensions,\n dashboardDimensions?: ElementDimensions\n ): void {\n if (!this.sticky()) {\n return;\n }\n\n if (\n this.dashboardDimensions === dashboardDimensions &&\n this.dashboardFrameDimensions === dashboardFrameDimensions\n ) {\n return;\n }\n\n this.dashboardDimensions = dashboardDimensions;\n this.dashboardFrameDimensions = dashboardFrameDimensions;\n\n let padding = this.document.body.offsetWidth >= BOOTSTRAP_BREAKPOINTS.mdMinimum ? 32 : 16;\n if (\n dashboardDimensions &&\n dashboardFrameDimensions &&\n dashboardDimensions.height > dashboardFrameDimensions.height\n ) {\n padding = padding - this.scrollbarHelper.width;\n }\n this.dashboardFrameEndPadding = padding;\n this.cdRef.markForCheck();\n }\n}\n","<div\n class=\"si-layout-fixed-height si-dashboard si-layout-main-padding py-6\"\n [class.sticky]=\"sticky()\"\n>\n <div class=\"si-dashboard-header\" [class.sticky]=\"sticky()\">\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\">{{ heading() | translate }}</h2>\n </div>\n }\n @if (!hideMenubarComputed()) {\n <div class=\"mb-6\" [class.si-layout-top-element]=\"!heading()\">\n <ng-content select=\"[menubar]\" />\n </div>\n }\n </div>\n <div\n #dashboardFrame\n class=\"si-layout-fixed-height si-dashboard-content ps-2 pt-2 ms-n2 mt-n2\"\n [class.sticky]=\"sticky()\"\n [style.padding-inline-end.px]=\"dashboardFrameEndPadding\"\n >\n <div class=\"si-layout-fixed-height\" [class.d-none]=\"isExpanded\">\n <div #dashboard class=\"si-layout-fixed-height fix-si-layout-fixed-height\">\n <ng-content select=\"[dashboard]\" />\n </div>\n </div>\n <div class=\"position-relative flex-grow-1 flex-shrink-1 mb-6\" [class.d-none]=\"!isExpanded\">\n <ng-container #expandedPortalOutlet cdkPortalOutlet />\n </div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiDashboardCardComponent } from './si-dashboard-card.component';\nimport { SiDashboardComponent } from './si-dashboard.component';\n\n@NgModule({\n imports: [SiDashboardCardComponent, SiDashboardComponent],\n exports: [SiDashboardCardComponent, SiDashboardComponent]\n})\nexport class SiDashboardModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n input,\n OnChanges,\n OnInit,\n signal,\n SimpleChanges\n} from '@angular/core';\n\n/**\n * The SiWidgetBaseDirective<T> implements the timing for the skeleton loading\n * indicator of widgets. It supports a generic value input property that represents\n * the main value to be displayed by a widget. When the value is not set, the `showLoadingIndicator`\n * changes after the `initialLoadingIndicatorDebounceTime` delay to `true` and subclasses\n * should show the skeleton loading indicator.\n */\n@Directive()\nexport abstract class SiWidgetBaseDirective<T> implements OnInit, OnChanges {\n /**\n * The main value to be displayed. If no value is set,\n * the skeleton indicates the loading of the value. Disable\n * the automatic loading mechanism by setting `SiWidgetBodyBaseComponent.disableAutoLoadingIndicator`.\n */\n readonly value = input.required<T | undefined>();\n /**\n * Option to disable automatic start of skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly disableAutoLoadingIndicator = input(false, { transform: booleanAttribute });\n /**\n * Input to start and stop the skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly showLoadingIndicatorInput = input(false, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'showLoadingIndicator',\n transform: booleanAttribute\n });\n\n private readonly showLoadingIndicatorInternal = signal<boolean | undefined>(false);\n\n readonly showLoadingIndicator = computed(() => {\n return this.showLoadingIndicatorInternal() ?? this.showLoadingIndicatorInput();\n });\n\n /**\n * Initial delay time in milliseconds before enabling loading indicator.\n * Only used once initially during construction.\n *\n * @defaultValue 300\n */\n readonly initialLoadingIndicatorDebounceTime = input(300);\n\n protected loadingTimer?: ReturnType<typeof setTimeout>;\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (\n !this.disableAutoLoadingIndicator() &&\n !changes.value?.firstChange &&\n changes.value?.currentValue\n ) {\n if (this.loadingTimer) {\n clearTimeout(this.loadingTimer);\n this.loadingTimer = undefined;\n }\n\n this.showLoadingIndicatorInternal.set(false);\n }\n }\n\n ngOnInit(): void {\n if (!this.disableAutoLoadingIndicator() && !this.value()) {\n this.loadingTimer = setTimeout(() => {\n this.showLoadingIndicatorInternal.set(!this.value());\n }, this.initialLoadingIndicatorDebounceTime());\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/**\n * The `<si-link-widget>` supports an easy composition of links and actions\n * with support for skeleton loading indicator.\n */\n@Component({\n selector: 'si-link-widget',\n imports: [SiIconComponent, SiLinkDirective, SiTranslatePipe],\n templateUrl: './si-link-widget.component.html',\n host: { class: 'si-link-widget' }\n})\nexport class SiLinkWidgetComponent extends SiWidgetBaseDirective<Link[]> {\n /**\n * Option to enable trailing link arrow icons for each link.\n *\n * @defaultValue false\n */\n readonly showLinkIcons = input(false, { transform: booleanAttribute });\n /**\n * The number of skeleton progress indication rows.\n *\n * @defaultValue 3\n */\n readonly numberOfLinks = input(3);\n\n protected readonly ghosts = computed(() => new Array(this.numberOfLinks() ?? 3));\n\n protected readonly icons = addIcons({ elementRight2 });\n}\n","@if (!showLoadingIndicator() && value()) {\n @for (link of value(); track link) {\n @if (link.action) {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"link\">{{\n link.title | translate\n }}</button>\n } @else {\n <a [siLink]=\"link\">\n {{ link.title | translate }}\n @if (showLinkIcons()) {\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n </a>\n }\n }\n} @else {\n @for (some of ghosts(); track $index) {\n <div class=\"si-link-widget-skeleton\"></div>\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/**\n * Interface for objects to configure the the list widget.\n */\nexport interface SiListWidgetItem {\n /** Label is either a translatable string or a link. */\n label: TranslatableString | Link;\n /** Optional translatable description. */\n description?: TranslatableString;\n /** Optional translatable string to be displayed in a badge. */\n badge?: TranslatableString;\n /**\n * Defines the badge color. Must be one of the element `bg-<color>` CSS classes,\n * like `bg-primary`, `bg-secondary`, 'bg-caution'. Use only the name without `bg`.\n */\n badgeColor?: string;\n /** Optional translatable text that is display to the right. */\n text?: TranslatableString;\n /** Optional right aligned action. */\n action?: Link;\n /** The action icon. */\n actionIcon?: string;\n}\n\n/**\n * The `<si-link-widget>` supports an easy composition of links and actions\n * with support for skeleton loading indicator.\n */\n@Component({\n selector: 'si-list-widget-item',\n imports: [SiIconComponent, SiLinkDirective, SiTranslatePipe],\n templateUrl: './si-list-widget-item.component.html',\n host: {\n class: 'list-group-item d-flex align-items-center',\n role: 'listitem'\n }\n})\nexport class SiListWidgetItemComponent extends SiWidgetBaseDirective<SiListWidgetItem> {\n protected readonly isLink = computed(() => {\n return typeof this.value()?.label === 'object';\n });\n protected readonly badgeColor = computed(() => {\n return this.value()?.badgeColor ? 'bg-' + this.value()?.badgeColor : 'bg-default';\n });\n protected readonly link = computed(() => {\n return this.value()?.label as Link;\n });\n protected readonly label = computed(() => {\n return this.value()?.label as string;\n });\n protected readonly icons = addIcons({ elementRight2 });\n}\n","@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n @if (valueObject.badge) {\n <span class=\"mx-0 badge me-4\" [class]=\"badgeColor()\">{{ valueObject.badge | translate }}</span>\n }\n <span class=\"me-auto\">\n @if (!isLink()) {\n <span class=\"si-h5\">{{ label() | translate }}</span>\n } @else {\n <a class=\"\" [siLink]=\"link()\"\n >{{ link().title | translate\n }}<si-icon class=\"link-icon link-start flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n }\n @if (valueObject.description) {\n <div class=\"mt-1 si-body text-secondary\">{{ valueObject.description | translate }}</div>\n }\n </span>\n <span>{{ valueObject.text | translate }}</span>\n @if (valueObject.action) {\n @if (valueObject.action.action) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary ms-4 p-2\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n [siLink]=\"valueObject.action\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </button>\n } @else {\n <a\n class=\"ms-4 p-2\"\n [siLink]=\"valueObject.action\"\n [attr.aria-label]=\"valueObject.action.title | translate\"\n >\n @if (valueObject.actionIcon) {\n <si-icon class=\"icon\" [icon]=\"valueObject.actionIcon\" />\n }\n </a>\n }\n }\n} @else {\n <div class=\"si-link-widget-skeleton my-4\"></div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input, model, OnChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Link } from '@siemens/element-ng/link';\nimport { SiSearchBarComponent } from '@siemens/element-ng/search-bar';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport { SiListWidgetItem, SiListWidgetItemComponent } from './si-list-widget-item.component';\n\n/** Defines the sort order. */\nexport type SortOrder = 'ASC' | 'DSC';\n\n/**\n * The `<si-list-widget-body>` implements the body of the <si-list-widget> that can be\n * used for composition within other components.\n */\n@Component({\n selector: 'si-list-widget-body',\n imports: [SiListWidgetItemComponent, SiSearchBarComponent, SiTranslatePipe, FormsModule],\n templateUrl: './si-list-widget-body.component.html',\n styleUrl: './si-list-widget-body.component.scss',\n host: { class: '' }\n})\nexport class SiListWidgetBodyComponent\n extends SiWidgetBaseDirective<SiListWidgetItem[]>\n implements OnChanges\n{\n /** Optional footer link for the list widget */\n readonly link = input<Link>();\n\n /**\n * label for the \"search placeholder\" name\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n * ```\n */\n readonly searchPlaceholderLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n );\n\n /**\n * Enable ascending and descending SiListWidgetItem sorting. If enabled,\n * items are initially ascending sorted.\n */\n readonly sort = input<SortOrder>();\n\n /**\n * Enables the search functionality.\n *\n * @defaultValue false\n */\n readonly search = input(false, { transform: booleanAttribute });\n\n /**\n * Compare function of for two `SiListWidgetItem`s that is used to sort\n * the array of items. The default compares the item labels by using the\n * string `localeCompare()` function.\n *\n * @param a - first `SiListWidgetItem` of the comparison.\n *\n * @param b - second `SiListWidgetItem` of the comparison.\n *\n * @returns A value `< 0` if `a` is smaller, `> 0` if `b` is smaller, otherwise `0`.\n *\n * @defaultValue\n * ```\n * (\n * a: SiListWidgetItem,\n * b: SiListWidgetItem\n * ) => {\n * const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n * const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n * return aLabel.localeCompare(bLabel);\n * }\n * ```\n */\n readonly compareFn = input<(a: SiListWidgetItem, b: SiListWidgetItem) => number | undefined>(\n (a: SiListWidgetItem, b: SiListWidgetItem) => {\n const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n return aLabel.localeCompare(bLabel);\n }\n );\n\n /**\n * Filter function that is used to filter down the list items when the user enters\n * a term in the search bar. Default function.\n *\n * @param item - The item be checked if it matches the searchTerm.\n *\n * @param searchTerm - The string the user typed in the search bar.\n *\n * @returns `true` if the `searchTerm` matches the `item` and the `item` shall be kept in the list.\n *\n * @defaultValue\n * ```\n * (\n * item: SiListWidgetItem,\n * searchTerm: string\n * ) => {\n * const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n * return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n * }\n * ```\n */\n readonly filterFn = input<(item: SiListWidgetItem, searchTerm: string) => boolean | undefined>(\n (item: SiListWidgetItem, searchTerm: string) => {\n const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n }\n );\n\n /**\n * The number of skeleton progress indication rows.\n *\n * @defaultValue 6\n */\n readonly numberOfLinks = input(6);\n\n /** Used to display the defined number of ghost items */\n protected readonly ghosts = computed(() => new Array(this.numberOfLinks() ?? 6));\n\n /** Holds the list items that are displayed. May be filtered and sorted. */\n protected readonly filteredListWidgetItems = computed(() => {\n const value = this.value();\n const sort = this.sort();\n const searchText = this.searchText();\n let filteredListWidgetItems: SiListWidgetItem[] | undefined;\n if (searchText.length > 0) {\n filteredListWidgetItems = value?.filter((item: SiListWidgetItem) =>\n this.filterFn()(item, searchText)\n );\n } else {\n filteredListWidgetItems = value ? [...value] : undefined;\n }\n\n if (sort) {\n const factor = sort === 'ASC' ? 1 : -1;\n filteredListWidgetItems = filteredListWidgetItems?.sort(\n (a: SiListWidgetItem, b: SiListWidgetItem) => (this.compareFn()(a, b) ?? 0) * factor\n );\n }\n\n return filteredListWidgetItems;\n });\n\n protected readonly searchText = model('');\n}\n","@if (search()) {\n <si-search-bar\n class=\"px-6 py-4\"\n showIcon\n colorVariant=\"base-0\"\n [debounceTime]=\"400\"\n [placeholder]=\"searchPlaceholderLabel() | translate\"\n [(ngModel)]=\"searchText\"\n />\n}\n@let filteredListWidgetItemsList = filteredListWidgetItems();\n@if (!showLoadingIndicator() && filteredListWidgetItemsList) {\n @if (filteredListWidgetItemsList.length > 0) {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (item of filteredListWidgetItemsList; track $index) {\n <si-list-widget-item [value]=\"item\" />\n }\n </div>\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n} @else {\n <div class=\"list-group list-group-lg\" role=\"list\">\n @for (some of ghosts(); track $index) {\n <si-list-widget-item [value]=\"undefined\" />\n }\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input, model, OnChanges } from '@angular/core';\nimport { elementRight2, elementSortDown, elementSortUp } from '@siemens/element-icons';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport { AccentLineType } from '@siemens/element-ng/common';\nimport { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport { SiListWidgetBodyComponent, SortOrder } from './si-list-widget-body.component';\nimport { SiListWidgetItem } from './si-list-widget-item.component';\n\n/**\n * The `<si-list-widget>` supports an easy composition of links and actions\n * with support for skeleton loading indicator, wrapped in a card.\n */\n@Component({\n selector: 'si-list-widget',\n imports: [\n SiCardComponent,\n SiIconComponent,\n SiLinkDirective,\n SiListWidgetBodyComponent,\n SiTranslatePipe\n ],\n templateUrl: './si-list-widget.component.html',\n host: { class: 'si-list-widget' }\n})\nexport class SiListWidgetComponent\n extends SiWidgetBaseDirective<SiListWidgetItem[]>\n implements OnChanges\n{\n protected readonly icons = addIcons({ elementRight2, elementSortDown, elementSortUp });\n\n /** List widget heading. */\n readonly heading = input<TranslatableString>();\n\n /** Optional footer link for the list widget */\n readonly link = input<Link>();\n\n /**\n * label for the \"search placeholder\" name\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n * ```\n */\n readonly searchPlaceholderLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)\n );\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`)\n * ```\n */\n readonly sortAscendingLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SORT_ASCENDING:Sort ascending`)\n );\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`)\n * ```\n */\n readonly sortDescendingLabel = input(\n t(() => $localize`:@@SI_LIST_WIDGET.SORT_DESCENDING:Sort descending`)\n );\n\n /**\n * Set `ASC` of ascending sorting, `DSC` for descending sorting and `undefined` for no sorting.\n */\n readonly sort = model<SortOrder>();\n\n /**\n * Enables the search functionality.\n *\n * @defaultValue false\n */\n readonly search = input(false, { transform: booleanAttribute });\n\n /**\n * Compare function of for two `SiListWidgetItem`s that is used to sort\n * the array of items. The default compares the item labels by using the\n * string `localeCompare()` function.\n *\n * @param a - first `SiListWidgetItem` of the comparison.\n *\n * @param b - second `SiListWidgetItem` of the comparison.\n *\n * @returns A value `< 0` if `a` is smaller, `> 0` if `b` is smaller, otherwise `0`.\n *\n * @defaultValue\n * ```\n * (\n * a: SiListWidgetItem,\n * b: SiListWidgetItem\n * ) => {\n * const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n * const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n * return aLabel.localeCompare(bLabel);\n * }\n * ```\n */\n readonly compareFn = input<(a: SiListWidgetItem, b: SiListWidgetItem) => number | undefined>(\n (a: SiListWidgetItem, b: SiListWidgetItem) => {\n const aLabel = typeof a.label === 'object' ? a.label.title! : a.label;\n const bLabel = typeof b.label === 'object' ? b.label.title! : b.label;\n return aLabel.localeCompare(bLabel);\n }\n );\n\n /**\n * Filter function that is used to filter down the list items when the user enters\n * a term in the search bar. Default function.\n *\n * @param item - The item be checked if it matches the searchTerm.\n *\n * @param searchTerm - The string the user typed in the search bar.\n *\n * @returns `true` if the `searchTerm` matches the `item` and the `item` shall be kept in the list.\n *\n * @defaultValue\n * ```\n * (\n * item: SiListWidgetItem,\n * searchTerm: string\n * ) => {\n * const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n * return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n * }\n * ```\n */\n readonly filterFn = input<(item: SiListWidgetItem, searchTerm: string) => boolean | undefined>(\n (item: SiListWidgetItem, searchTerm: string) => {\n const aLabel = typeof item.label === 'object' ? item.label.title! : item.label;\n return aLabel.toLowerCase().includes(searchTerm.toLowerCase());\n }\n );\n\n /**\n * The number of skeleton progress indication rows.\n *\n * @defaultValue 6\n */\n readonly numberOfLinks = input(6);\n /**\n * Optional accent line\n */\n readonly accentLine = input<AccentLineType>();\n\n protected readonly accentClass = computed(() => {\n const accentLine = this.accentLine();\n return accentLine ? 'accent-' + accentLine : '';\n });\n\n /** The menu item array used to display the sort button. */\n protected readonly sortAction = computed(() => {\n const sortAction: ContentActionBarMainItem[] = [\n {\n label: this.sortDescendingLabel(),\n type: 'action',\n icon: this.icons.elementSortUp,\n iconOnly: true,\n action: () => this.doSort()\n }\n ];\n\n if (this.sort() === 'ASC') {\n sortAction[0].label = this.sortDescendingLabel();\n sortAction[0].icon = this.icons.elementSortUp;\n } else {\n sortAction[0].label = this.sortAscendingLabel();\n sortAction[0].icon = this.icons.elementSortDown;\n }\n return sortAction;\n });\n\n private doSort(): void {\n if (this.sort() === 'ASC') {\n this.sort.set('DSC');\n } else {\n this.sort.set('ASC');\n }\n }\n}\n","<si-card\n actionBarViewType=\"expanded\"\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"sort() ? sortAction() : []\"\n>\n <si-list-widget-body\n body\n [compareFn]=\"compareFn()\"\n [filterFn]=\"filterFn()\"\n [numberOfLinks]=\"numberOfLinks()\"\n [searchPlaceholderLabel]=\"searchPlaceholderLabel()\"\n [search]=\"search()\"\n [sort]=\"sort()\"\n [value]=\"value()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-list-widget-body>\n\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\"\n >{{ linkValue.title | translate }}\n </button>\n }\n </div>\n }\n</si-card>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Component, inject, input, OnChanges, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, RouterLink } from '@angular/router';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { MenuItem, SiMenuModule } from '@siemens/element-ng/menu';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/** Base for action items in the timeline widget. */\nexport interface TimelineWidgetActionBase {\n /** Label that is shown to the user. */\n label: TranslatableString;\n /** The web font icon class name (e.g. element-settings-outline). */\n icon?: string;\n /** Defines if only the icon is shown in the default navigation bar. */\n iconOnly?: boolean;\n}\n\n/** Interface representing an action item in the timeline widget. */\nexport interface TimelineWidgetActionButton extends TimelineWidgetActionBase {\n type: 'action';\n /** The class name to define the button style */\n customClass?: string;\n /** Action that called when the item action is triggered. */\n action: (source: this) => void;\n}\n\n/** Interface representing a router link item in the timeline widget. */\nexport interface TimeLineWidgetRouterLink extends TimelineWidgetActionBase {\n type: 'router-link';\n /** Link for the angular router. Accepts the same values as {@link RouterLink}. */\n routerLink: string | any[];\n /** Navigation extras that are passed to the {@link RouterLink}. */\n extras?: NavigationExtras;\n}\n\n/** Interface representing a link item in the timeline widget. */\nexport interface TimeLineWidgetLink extends TimelineWidgetActionBase {\n type: 'link';\n /** The href property of the anchor. */\n href: string;\n /** The target property of the anchor. */\n target?: string;\n}\n\n/** Interface representing a menu item in the timeline widget. */\nexport interface TimelineWidgetMenu {\n type: 'menu';\n menuItems: MenuItem[];\n}\n\n/** Union type for all possible action items in the timeline widget. */\nexport type TimelineWidgetItemAction =\n | TimelineWidgetActionButton\n | TimeLineWidgetLink\n | TimeLineWidgetRouterLink\n | TimelineWidgetMenu;\n\n/**\n * Represents an item in the timeline widget.\n * Each item may contain a timestamp, a title, an icon, an optional description and optional action elements.\n * Actions can be buttons, links, router links, or menus.\n */\nexport interface SiTimelineWidgetItem {\n /**\n * The timestamp of the item.\n */\n timeStamp: TranslatableString;\n /**\n * The title of the item.\n */\n title: TranslatableString;\n /**\n * Optional translatable description.\n */\n description?: TranslatableString;\n /**\n * The icon of the item.\n */\n icon: string;\n /**\n * The color of the icon.\n */\n iconColor?: string;\n /**\n * The stacked icon of the item.\n */\n stackedIcon?: string;\n /**\n * The color of the stacked icon.\n */\n stackedIconColor?: string;\n /**\n * The alt text of the icon\n */\n iconAlt?: TranslatableString;\n /**\n * The related action of the item\n */\n action?: TimelineWidgetItemAction;\n}\n\n/**\n * The items of the `<si-timeline-widget>`.\n */\n@Component({\n selector: 'si-timeline-widget-item',\n imports: [SiIconComponent, SiTranslatePipe, A11yModule, RouterLink, SiMenuModule, CdkMenuTrigger],\n templateUrl: './si-timeline-widget-item.component.html',\n host: {\n role: 'listitem'\n }\n})\nexport class SiTimelineWidgetItemComponent\n extends SiWidgetBaseDirective<SiTimelineWidgetItem>\n implements OnInit, OnChanges\n{\n /**\n * Whether to show or hide the description row during skeleton progress indication.\n *\n * @defaultValue `true`\n */\n readonly showDescription = input(true);\n\n /**\n * Aria label text for actions button dropdown.\n */\n readonly ariaLabelDropdown = t(\n () => $localize`:@@SI_DASHBOARD.EXPAND_WIDGET_ACTIONS:Expand actions`\n );\n\n protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n}\n","@let valueObject = value();\n@if (!showLoadingIndicator() && valueObject) {\n <div class=\"d-flex flex-row gap-4\" [class.pe-4]=\"!valueObject.action\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4\">\n <span class=\"icon icon-stack\">\n <si-icon [class]=\"valueObject.iconColor\" [icon]=\"valueObject.icon\" />\n @if (valueObject.stackedIcon) {\n <si-icon [class]=\"valueObject.stackedIconColor\" [icon]=\"valueObject.stackedIcon\" />\n }\n </span>\n @if (valueObject.iconAlt) {\n <span class=\"visually-hidden\">{{ valueObject.iconAlt | translate }}</span>\n }\n <div class=\"si-timeline-widget-item-lower-line\"></div>\n </div>\n <div class=\"d-flex flex-column gap-1 py-4 flex-grow-1\">\n <span class=\"si-caption text-secondary\">{{ valueObject.timeStamp | translate }}</span>\n <span class=\"si-h5\">{{ valueObject.title | translate }}</span>\n @if (valueObject.description) {\n <span class=\"si-body text-secondary\">{{ valueObject.description | translate }}</span>\n }\n </div>\n @if (valueObject.action) {\n @let action = valueObject.action;\n <div class=\"si-timeline-widget-item-action align-self-center\">\n @if (action.type === 'action') {\n <button\n type=\"button\"\n class=\"d-flex btn\"\n [class]=\"action.customClass ?? 'btn-tertiary'\"\n [class.btn-icon]=\"action.iconOnly\"\n (click)=\"action.action(action)\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span>\n </button>\n } @else if (action.type === 'router-link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [routerLink]=\"action.routerLink\"\n [queryParams]=\"action.extras?.queryParams\"\n [queryParamsHandling]=\"action.extras?.queryParamsHandling\"\n [fragment]=\"action.extras?.fragment\"\n [state]=\"action.extras?.state\"\n [relativeTo]=\"action.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"action.extras?.preserveFragment\"\n [skipLocationChange]=\"action.extras?.skipLocationChange\"\n [replaceUrl]=\"action.extras?.replaceUrl\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'link') {\n <a\n class=\"d-flex btn btn-ghost\"\n [href]=\"action.href\"\n [target]=\"action.target\"\n [attr.aria-label]=\"action.label | translate\"\n [class.btn-icon]=\"action.iconOnly\"\n >\n @if (action.icon) {\n <si-icon class=\"icon\" [icon]=\"action.icon\" />\n }\n <span [class.visually-hidden]=\"action.iconOnly\">\n {{ action.label | translate }}\n </span></a\n >\n } @else if (action.type === 'menu') {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary element-options-vertical\"\n [attr.aria-label]=\"ariaLabelDropdown | translate\"\n [cdkMenuTriggerFor]=\"actionMenu\"\n ></button>\n\n <ng-template #actionMenu>\n <si-menu-factory [items]=\"action.menuItems\" />\n </ng-template>\n }\n </div>\n }\n </div>\n} @else {\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex flex-column align-items-center gap-1 pt-4 pe-4\">\n <div class=\"p-5 si-skeleton\"></div>\n </div>\n <div class=\"d-flex flex-column flex-grow-1 gap-1 py-4\">\n <span class=\"si-link-widget-skeleton\"></span>\n <span class=\"si-link-widget-skeleton\" [class.w-50]=\"!showDescription()\"></span>\n @if (showDescription()) {\n <span class=\"si-link-widget-skeleton w-50\"></span>\n }\n </div>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport {\n SiTimelineWidgetItem,\n SiTimelineWidgetItemComponent\n} from './si-timeline-widget-item.component';\n\n@Component({\n selector: 'si-timeline-widget-body',\n imports: [SiTimelineWidgetItemComponent],\n templateUrl: './si-timeline-widget-body.component.html',\n styleUrl: './si-timeline-widget-body.component.scss'\n})\nexport class SiTimelineWidgetBodyComponent extends SiWidgetBaseDirective<SiTimelineWidgetItem[]> {\n /**\n * Number of skeleton progress indication items.\n *\n * @defaultValue 4\n */\n readonly numberOfItems = input(4);\n\n /**\n * Whether to show or hide the description row during skeleton progress indication.\n *\n * @defaultValue `true`\n */\n readonly showDescription = input(true);\n\n /** Used to display the defined number of ghost items */\n protected readonly ghosts = computed(() => {\n return new Array(this.numberOfItems() ?? 4);\n });\n}\n","@let valueObject = value();\n<div\n class=\"focus-inside\"\n tabindex=\"0\"\n [attr.role]=\"\n (!showLoadingIndicator() && valueObject && valueObject.length > 0) || showLoadingIndicator()\n ? 'list'\n : null\n \"\n>\n @if (!showLoadingIndicator() && valueObject) {\n @if (valueObject && valueObject.length > 0) {\n @for (item of valueObject; track $index) {\n <si-timeline-widget-item [value]=\"item\" />\n }\n } @else {\n <ng-content select=\"[empty-state]\" />\n }\n } @else {\n @for (some of ghosts(); track $index) {\n <si-timeline-widget-item [value]=\"undefined\" [showDescription]=\"showDescription()\" />\n }\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, OnChanges } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport { AccentLineType, MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\nimport { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { MenuItem } from '@siemens/element-ng/menu';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\nimport { SiTimelineWidgetBodyComponent } from './si-timeline-widget-body.component';\nimport { SiTimelineWidgetItem } from './si-timeline-widget-item.component';\n\n@Component({\n selector: 'si-timeline-widget',\n imports: [\n SiLinkDirective,\n SiCardComponent,\n SiTimelineWidgetBodyComponent,\n SiTranslatePipe,\n SiIconComponent\n ],\n templateUrl: './si-timeline-widget.component.html'\n})\nexport class SiTimelineWidgetComponent\n extends SiWidgetBaseDirective<SiTimelineWidgetItem[]>\n implements OnChanges\n{\n /**\n * Timeline widget header text.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Input list of primary action items. Supports up to **4** actions and omits additional ones.\n *\n * @defaultValue []\n */\n readonly primaryActions = input<(MenuItemLegacy | ContentActionBarMainItem)[]>([]);\n /**\n * Input list of secondary action items.\n *\n * @defaultValue []\n */\n readonly secondaryActions = input<(MenuItemLegacy | MenuItem)[]>([]);\n /**\n * Link that leads the user to more information\n * or triggers and action. The `link.title` is displayed.\n * The title will be translated.\n */\n readonly link = input<Link>();\n\n /**\n * Number of skeleton progress indication items.\n *\n * @defaultValue 4\n */\n readonly numberOfItems = input(4);\n\n /**\n * Whether to show or hide the description row during skeleton progress indication.\n *\n * @defaultValue `true`\n */\n readonly showDescription = input(true);\n /**\n * Optional accent line\n */\n readonly accentLine = input<AccentLineType>();\n\n protected readonly accentClass = computed(() => {\n const accentLine = this.accentLine();\n return accentLine ? 'accent-' + accentLine : '';\n });\n\n protected readonly icons = addIcons({ elementRight2 });\n}\n","<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n>\n <si-timeline-widget-body\n body\n [value]=\"value()\"\n [showDescription]=\"showDescription()\"\n [numberOfItems]=\"numberOfItems()\"\n [class.pb-6]=\"!link()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n >\n <ng-content select=\"[empty-state]\" empty-state />\n </si-timeline-widget-body>\n @let linkValue = link();\n @if (linkValue) {\n <div class=\"card-footer\" footer>\n @if (!linkValue.action) {\n <a [siLink]=\"linkValue\">\n {{ linkValue.title | translate }}\n <si-icon class=\"link-icon link-end flip-rtl\" [icon]=\"icons.elementRight2\" />\n </a>\n } @else {\n <button type=\"button\" class=\"btn btn-link\" [siLink]=\"linkValue\">{{\n linkValue.title | translate\n }}</button>\n }\n </div>\n }\n</si-card>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input, OnInit } from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiIconComponent, SiStatusIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiWidgetBaseDirective } from '../si-widget-base.directive';\n\n/**\n * The body of the `<si-value-widget>`. Useful for compositions.\n */\n@Component({\n selector: 'si-value-widget-body',\n imports: [SiIconComponent, SiStatusIconComponent, SiTranslatePipe],\n templateUrl: './si-value-widget-body.component.html'\n})\nexport class SiValueWidgetBodyComponent\n extends SiWidgetBaseDirective<TranslatableString>\n implements OnInit\n{\n /**\n * The unit of the value (e.g. kWh or users). Only visible if `value` is available.\n */\n readonly unit = input<TranslatableString>();\n /**\n * The element icon name. Only visible if `value` is available.\n */\n readonly icon = input<string>();\n /**\n * Show a status icon instead of the {@link icon}.\n */\n readonly status = input<EntityStatusType>();\n /**\n * Short description of the value. A description is mandatory\n * to show an icon. Only visible if `value` is available.\n */\n readonly description = input<TranslatableString>();\n}\n","@if (!showLoadingIndicator()) {\n @if (value()) {\n <span class=\"si-value-widget-value\">{{ value() | translate }}</span>\n <span class=\"si-value-widget-unit\">{{ unit() | translate }}</span>\n @if (description()) {\n <div class=\"si-value-widget-description\">\n @let statusValue = status();\n @let iconValue = icon();\n @if (statusValue) {\n <si-status-icon class=\"icon\" [status]=\"statusValue\" />\n } @else if (iconValue) {\n <si-icon class=\"icon\" [icon]=\"iconValue\" />\n }\n <span>{{ description() | translate }}</span>\n </div>\n }\n }\n} @else {\n <span class=\"si-value-widget-value w-100\">\n <div class=\"si-value-widget-value-skeleton\"></div>\n </span>\n <div class=\"si-value-widget-description si-skeleton w-100\"></div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input } from '@angular/core';\nimport { SiCardComponent } from '@siemens/element-ng/card';\nimport {\n AccentLineType,\n EntityStatusType,\n MenuItem as MenuItemLegacy\n} from '@siemens/element-ng/common';\nimport { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { MenuItem } from '@siemens/element-ng/menu';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiValueWidgetBodyComponent } from './si-value-widget-body.component';\n\n/**\n * Is a dynamic UI component that not only displays information, but also includes\n * embedded actions which the user can interact with to perform tasks directly\n * related to the card's content. Actions might include editing settings,\n * initiating processes, or deleting resources.\n *\n * The actionable widget turns data representation into an interactive hub,\n * streamlining the user's tasks and decisions associated with the card's content.\n *\n * This component is a wrapper using the `.si-value-widget` CSS classes and the\n * `<si-card>` component. For more configuration options, use the CSS classes directly.\n */\n@Component({\n selector: 'si-value-widget',\n imports: [SiCardComponent, SiLinkDirective, SiTranslatePipe, SiValueWidgetBodyComponent],\n templateUrl: './si-value-widget.component.html'\n})\nexport class SiValueWidgetComponent {\n /**\n * Value widget header text.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Input list of primary action items. Supports up to **4** actions and omits additional ones.\n *\n * @defaultValue []\n */\n readonly primaryActions = input<(MenuItemLegacy | ContentActionBarMainItem)[]>([]);\n /**\n * Input list of secondary action items.\n *\n * @defaultValue []\n */\n readonly secondaryActions = input<(MenuItemLegacy | MenuItem)[]>([]);\n /**\n * The main value to be displayed. If no value is set,\n * the skeleton indicates the loading of the value. Disable\n * the automatic loading mechanism by setting `SiValueWidgetComponent.disableAutoLoadingIndicator`.\n */\n readonly value = input<TranslatableString>();\n /**\n * The unit of the value (e.g. kWh or users). Only visible if `value` is available.\n */\n readonly unit = input<TranslatableString>();\n /**\n * The element icon name. Only visible if `value` is available.\n */\n readonly icon = input<string>();\n /**\n * Show a status icon instead of the {@link icon}.\n */\n readonly status = input<EntityStatusType>();\n /**\n * Short description of the value. A description is mandatory\n * to show an icon. Only visible if `value` is available.\n */\n readonly description = input<TranslatableString>();\n /**\n * Link that leads the user to more information\n * or triggers and action. The `link.title` is displayed.\n * The title will be translated.\n */\n readonly link = input<Link>();\n /**\n * Option to disable automatic start of skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly disableAutoLoadingIndicator = input(false, { transform: booleanAttribute });\n /**\n * Input to start and stop the skeleton loading indication.\n *\n * @defaultValue false\n */\n readonly showLoadingIndicator = input(false, { transform: booleanAttribute });\n /**\n * Initial delay time in milliseconds before enabling loading indicator.\n * Only used once initially during construction.\n *\n * @defaultValue 300\n */\n readonly initialLoadingIndicatorDebounceTime = input(300);\n /**\n * Image source for the card.\n */\n readonly imgSrc = input<string>();\n /**\n * Alt text for a provided image.\n */\n readonly imgAlt = input<string>();\n /**\n * Defines if an image is placed on top or start (left) of the card.\n *\n * @defaultValue 'vertical'\n */\n readonly imgDir = input<'horizontal' | 'vertical'>('vertical');\n /**\n * Sets the image [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.\n *\n * @defaultValue 'scale-down'\n */\n readonly imgObjectFit = input<'contain' | 'cover' | 'fill' | 'none' | 'scale-down'>('scale-down');\n /**\n * Sets the image [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.\n */\n readonly imgObjectPosition = input<string>();\n /**\n * Optional accent line\n */\n readonly accentLine = input<AccentLineType>();\n\n protected readonly accentClass = computed(() => {\n const accentLine = this.accentLine();\n return accentLine ? 'accent-' + accentLine : '';\n });\n}\n","<si-card\n class=\"h-100\"\n [class]=\"accentClass()\"\n [heading]=\"heading()\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [imgSrc]=\"imgSrc()\"\n [imgDir]=\"imgDir()\"\n [imgAlt]=\"imgAlt()\"\n [imgObjectFit]=\"imgObjectFit()\"\n [imgObjectPosition]=\"imgObjectPosition()\"\n>\n <div class=\"card-body\" body>\n <si-value-widget-body\n [value]=\"value()\"\n [unit]=\"unit()\"\n [icon]=\"icon()\"\n [status]=\"status()\"\n [description]=\"description()\"\n [disableAutoLoadingIndicator]=\"disableAutoLoadingIndicator()\"\n [showLoadingIndicator]=\"showLoadingIndicator()\"\n [initialLoadingIndicatorDebounceTime]=\"initialLoadingIndicatorDebounceTime()\"\n />\n </div>\n @let linkObject = link();\n @if (linkObject) {\n <div class=\"card-footer\" footer>\n <a [siLink]=\"linkObject\">{{ linkObject.title | translate }}</a>\n </div>\n }\n</si-card>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-dashboard-card.component';\nexport * from './si-dashboard.component';\nexport * from './si-dashboard.module';\nexport * from './si-dashboard.service';\nexport * from './widgets/si-link-widget/si-link-widget.component';\nexport * from './widgets/si-list-widget/si-list-widget.component';\nexport * from './widgets/si-list-widget/si-list-widget-body.component';\nexport * from './widgets/si-list-widget/si-list-widget-item.component';\nexport * from './widgets/si-timeline-widget/si-timeline-widget.component';\nexport * from './widgets/si-timeline-widget/si-timeline-widget-body.component';\nexport * from './widgets/si-timeline-widget/si-timeline-widget-item.component';\nexport * from './widgets/si-value-widget/si-value-widget-body.component';\nexport * from './widgets/si-value-widget/si-value-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGG;MAOU,kBAAkB,CAAA;AACrB,IAAA,KAAK,GAAG,IAAI,eAAe,CAA6B,EAAE,CAAC;AACnE;;;;AAIG;AACM,IAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AAE3C;;AAEG;AACH,IAAA,QAAQ,CAAC,IAA8B,EAAA;AACrC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;AAClC,QAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IAC5B;AAEA;;AAEG;AACH,IAAA,UAAU,CAAC,IAA8B,EAAA;AACvC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B;IACF;uGA5BW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAlB,kBAAkB,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACTD;;;AAGG;AAmCG,MAAO,wBAAyB,SAAQ,eAAe,CAAA;AAC3D;;;;;;;AAOG;AACM,IAAA,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,+BAAA,CAAiC,CAAC,uDAAC;AACjF;;;;;;;AAOG;AACM,IAAA,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,6BAAA,CAA+B,CAAC,sDAAC;AAC9E;;;;;;AAMG;IACM,uBAAuB,GAAG,KAAK,CAAC,KAAK,oEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEhF;;;;AAIG;IACM,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACnE;;AAEG;IACM,YAAY,GAAG,MAAM,EAAW;AAEzC;;;;AAIG;AACM,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;;IAEnC,IAAI,GAAG,KAAK;;AAEH,IAAA,+BAA+B,GAAG,MAAM,CAAC,KAAK,2EAAC;AAC/C,IAAA,+BAA+B,GAAG,QAAQ,CACjD,MAAM,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,+BAA+B,EAAE,2EAC/E;;AAED,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAEV,uBAAuB,GAAG,QAAQ,CAClD,MAAM,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACvF;AAEkB,IAAA,yBAAyB,GAAG,QAAQ,CAAC,MAAK;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,+BAA+B,EAAE,EAAE;AAC1C,gBAAA,OAAO,UAAU;YACnB;iBAAO;AACL,gBAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;YACjC;QACF;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;QACjC;AACF,IAAA,CAAC,qEAAC;AAEiB,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,+BAA+B,EAAE,EAAE;AAC1C,gBAAA,OAAO,IAAI,CAAC,wBAAwB,EAAE;YACxC;iBAAO;AACL,gBAAA,OAAO,IAAI,CAAC,cAAc,EAAE;YAC9B;QACF;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,cAAc,EAAE;QAC9B;AACF,IAAA,CAAC,kEAAC;AAEiB,IAAA,sBAAsB,GAAG,QAAQ,CAClD,MAAK;AACH,QAAA,MAAM,0BAA0B,GAA+B;AAC7D,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW;AAC1E,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACjD;SACF;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,+BAA+B,EAAE,EAAE;AAC1C,gBAAA,OAAO,0BAA0B;YACnC;iBAAO;AACL,gBAAA,OAAO,EAAE;YACX;QACF;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE;AAC3C,gBAAA,OAAO,IAAI,CAAC,cAAc,EAAE;YAC9B;iBAAO;gBACL,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACrF,gBAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7D,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC;gBAC3C;qBAAO;oBACL,OAAO,CAAC,MAAM,CAAC;gBACjB;YACF;QACF;AACF,IAAA,CAAC,kEACF;IAEgB,KAAK,GAAG,QAAQ,CAAC;QAChC,YAAY;QACZ;AACD,KAAA,CAAC;AACe,IAAA,wBAAwB,GAAG,QAAQ,CAAC,MAAK;AACxD,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;AACnE,IAAA,CAAC,oEAAC;AACe,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QAChD,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;AAC5B,YAAA,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI;SACP;AAC/B,IAAA,CAAC,4DAAC;AACe,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;QACjD,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;AACzB,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;AAC7B,YAAA,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK;SACR;AAC/B,IAAA,CAAC,6DAAC;AACe,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AACpD,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,GAAG,CAAC;AACjF,IAAA,CAAC,gEAAC;IACM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEzE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC;IACzC;AAEA;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACvB;AAEA;;AAEG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACxB;AAEQ,IAAA,UAAU,CAAC,MAAe,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAChC;uGA5KW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCrC,isCAmCA,EAAA,MAAA,EAAA,CAAA,stBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNY,2BAA2B,sMAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAS3C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAXpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,CAAC,2BAA2B,EAAE,eAAe,CAAC,EAAA,IAAA,EAGjD;AACJ,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,kBAAkB,EAAE,cAAc;AAClC,wBAAA,gBAAgB,EAAE;AACnB,qBAAA,EAAA,QAAA,EAAA,isCAAA,EAAA,MAAA,EAAA,CAAA,stBAAA,CAAA,EAAA;;;AEpCH;;;AAGG;AA+BH,MAAM,2CAA2C,GAAG,EAAE;MAUzC,oBAAoB,CAAA;AACd,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAChD;;AAEG;IACM,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAElC;;;;AAIG;IACM,wBAAwB,GAAG,KAAK,CAAC,KAAK,qEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjF;;;;AAIG;IACM,MAAM,GAAG,KAAK,CAAC,IAAI,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE9D;;;;AAIG;IACM,WAAW,GAAG,KAAK,CAAC,KAAK,wDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEpE;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;IACzB;IAEU,wBAAwB,GAAkB,IAAI;AACrC,IAAA,mBAAmB,GAAG,QAAQ,CAC/C,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,+DACvD;IAEO,WAAW,GAAG,KAAK;AACnB,IAAA,cAAc,GAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzC,KAAK,GAA+B,EAAE;AAC7B,IAAA,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE;AACjF,QAAA,IAAI,EAAE;AACP,KAAA,CAAC;AACe,IAAA,cAAc,GAAG,SAAS,CAAC,QAAQ,CAA0B,gBAAgB,CAAC;AAC9E,IAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAA0B,WAAW,CAAC;AAE7E,IAAA,wBAAwB;AACxB,IAAA,mBAAmB;AAEnB,IAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACnC,IAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC7C,IAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,IAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACjC,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAClB,IAAA,mBAAmB,GAAG,MAAM,CAAC,KAAK,+DAAC;AAEpD,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,gBAAgB,CAAC;aACnB,IAAI,CAAC,kBAAkB,EAAE;AACzB,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrD;AAEA,IAAA,WAAW,CAAC,OAA4B,EAAA;AACtC,QAAA,IAAI,OAAO,CAAC,wBAAwB,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC;aACF,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,2CAA2C;AACnF,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC;aACF,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE,2CAA2C;AACxF,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxF;AAEQ,IAAA,gBAAgB,CAAC,KAAiC,EAAA;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,SAAS,GAAA;AACf,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;;;AAG7B,YAAA,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,EAAE;YAChE,IAAI,wBAAwB,EAAE;AAC5B,gBAAA,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACpE;YAEA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;gBAC9C,IAAI,MAAM,EAAE;AACV,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACnB;qBAAO;oBACL,IAAI,CAAC,gBAAgB,EAAE;gBACzB;AACA,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AAC3B,YAAA,CAAC,CAAC;QACJ;IACF;AAEA;;;AAGG;AACI,IAAA,MAAM,CAAC,IAA8B,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE;QACzB;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,CAAC,cAAc,GAAG;AACpB,gBAAA,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,UAAU;AAC9C,gBAAA,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC;aACrC;QACH;aAAO;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QACzD;;AAGA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,EAAE;QACf;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACvB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;YACpC;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,YAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/E;IACF;AAEA;;AAEG;IACI,OAAO,GAAA;;AAEZ,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB,IAAI,CAAC,OAAO,EAAE;YAChB;QACF;;QAEA,IAAI,CAAC,gBAAgB,EAAE;;QAEvB,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;IAC3B;AAEA;;;;AAIG;IACK,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE;AACpC,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc;QACzE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM;QAC3D,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC3C,oBAAA,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5B,oBAAA,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC3B,oBAAA,QAAQ,EAAE;AACX,iBAAA,CAAC;YACJ;iBAAO;gBACL,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc;YACrE;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AAC3B,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;AAEQ,IAAA,eAAe,CAAC,MAAe,EAAA;AACrC,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,MAAM;QAC1C;IACF;IAEQ,2BAA2B,CACjC,wBAA4C,EAC5C,mBAAuC,EAAA;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB;QACF;AAEA,QAAA,IACE,IAAI,CAAC,mBAAmB,KAAK,mBAAmB;AAChD,YAAA,IAAI,CAAC,wBAAwB,KAAK,wBAAwB,EAC1D;YACA;QACF;AAEA,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;AAC9C,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;QAExD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE;AACzF,QAAA,IACE,mBAAmB;YACnB,wBAAwB;AACxB,YAAA,mBAAmB,CAAC,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAC5D;YACA,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK;QAChD;AACA,QAAA,IAAI,CAAC,wBAAwB,GAAG,OAAO;AACvC,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;IAC3B;uGA1NW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,wBAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAHpB,CAAC,kBAAkB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAiDvB,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1FzB,iqCAgCA,EAAA,MAAA,EAAA,CAAA,wWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAM5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,OAAA,EACf,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,SAAA,EAG7B,CAAC,kBAAkB,CAAC,EAAA,IAAA,EACzB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAA,QAAA,EAAA,iqCAAA,EAAA,MAAA,EAAA,CAAA,wWAAA,CAAA,EAAA;AA+CkB,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,sBAAsB,EAAA,EAAA,GAAE;AACjF,4BAAA,IAAI,EAAE;yBACP,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAC6E,gBAAgB,mEACrB,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE7FtF;;;AAGG;MAUU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHlB,wBAAwB,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAC9C,wBAAwB,EAAE,oBAAoB,CAAA,EAAA,CAAA;wGAE7C,iBAAiB,EAAA,OAAA,EAAA,CAHlB,wBAAwB,EAAE,oBAAoB,CAAA,EAAA,CAAA;;2FAG7C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;AACzD,oBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,oBAAoB;AACzD,iBAAA;;;ACZD;;;AAGG;AAYH;;;;;;AAMG;MAEmB,qBAAqB,CAAA;AACzC;;;;AAIG;AACM,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAiB;AAChD;;;;AAIG;IACM,2BAA2B,GAAG,KAAK,CAAC,KAAK,wEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpF;;;;AAIG;IACM,yBAAyB,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,2BAAA,EAAA,GAAA,EAAA,CAAA;;AAE9C,QAAA,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEe,IAAA,4BAA4B,GAAG,MAAM,CAAsB,KAAK,wEAAC;AAEzE,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;QAC5C,OAAO,IAAI,CAAC,4BAA4B,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChF,IAAA,CAAC,gEAAC;AAEF;;;;;AAKG;AACM,IAAA,mCAAmC,GAAG,KAAK,CAAC,GAAG,+EAAC;AAE/C,IAAA,YAAY;AAEtB,IAAA,WAAW,CAAC,OAA4B,EAAA;AACtC,QAAA,IACE,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACnC,YAAA,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW;AAC3B,YAAA,OAAO,CAAC,KAAK,EAAE,YAAY,EAC3B;AACA,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS;YAC/B;AAEA,YAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9C;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACxD,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;gBAClC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACtD,YAAA,CAAC,EAAE,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAChD;IACF;uGA7DoB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mCAAA,EAAA,EAAA,iBAAA,EAAA,qCAAA,EAAA,UAAA,EAAA,qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAD1C;;;ACtBD;;;AAGG;AASH;;;AAGG;AAOG,MAAO,qBAAsB,SAAQ,qBAA6B,CAAA;AACtE;;;;AAIG;IACM,aAAa,GAAG,KAAK,CAAC,KAAK,0DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACtE;;;;AAIG;AACM,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,yDAAC;AAEd,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,kDAAC;AAE7D,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;uGAhB3C,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,ybCtBlC,glBAoBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,uMAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAIhD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,IAAA,EAEtD,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAA,QAAA,EAAA,glBAAA,EAAA;;;AEpBnC;;;AAGG;AAgCH;;;AAGG;AAUG,MAAO,yBAA0B,SAAQ,qBAAuC,CAAA;AACjE,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;QACxC,OAAO,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,KAAK,QAAQ;AAChD,IAAA,CAAC,kDAAC;AACiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;QAC5C,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,UAAU,GAAG,YAAY;AACnF,IAAA,CAAC,sDAAC;AACiB,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,KAAa;AACpC,IAAA,CAAC,gDAAC;AACiB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,KAAe;AACtC,IAAA,CAAC,iDAAC;AACiB,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;uGAb3C,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,iNChDtC,6gDA8CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,uMAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAOhD,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;+BACE,qBAAqB,EAAA,OAAA,EACtB,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,IAAA,EAEtD;AACJ,wBAAA,KAAK,EAAE,2CAA2C;AAClD,wBAAA,IAAI,EAAE;AACP,qBAAA,EAAA,QAAA,EAAA,6gDAAA,EAAA;;;AE9CH;;;AAGG;AAaH;;;AAGG;AAQG,MAAO,yBACX,SAAQ,qBAAyC,CAAA;;IAIxC,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAQ;AAE7B;;;;;;;AAOG;AACM,IAAA,sBAAsB,GAAG,KAAK,CACrC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,8CAAA,CAAgD,CAAC,kEACnE;AAED;;;AAGG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAElC;;;;AAIG;IACM,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE/D;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACM,SAAS,GAAG,KAAK,CACxB,CAAC,CAAmB,EAAE,CAAmB,KAAI;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAM,GAAG,CAAC,CAAC,KAAK;QACrE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAM,GAAG,CAAC,CAAC,KAAK;AACrE,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACrC,IAAA,CAAC,qDACF;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;IACM,QAAQ,GAAG,KAAK,CACvB,CAAC,IAAsB,EAAE,UAAkB,KAAI;QAC7C,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAM,GAAG,IAAI,CAAC,KAAK;AAC9E,QAAA,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAChE,IAAA,CAAC,oDACF;AAED;;;;AAIG;AACM,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,yDAAC;;AAGd,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,kDAAC;;AAG7D,IAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;AACzD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,QAAA,IAAI,uBAAuD;AAC3D,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,uBAAuB,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,IAAsB,KAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAClC;QACH;aAAO;AACL,YAAA,uBAAuB,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS;QAC1D;QAEA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,uBAAuB,GAAG,uBAAuB,EAAE,IAAI,CACrD,CAAC,CAAmB,EAAE,CAAmB,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CACrF;QACH;AAEA,QAAA,OAAO,uBAAuB;AAChC,IAAA,CAAC,mEAAC;AAEiB,IAAA,UAAU,GAAG,KAAK,CAAC,EAAE,sDAAC;uGA7H9B,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BtC,21BA4BA,EAAA,MAAA,EAAA,CAAA,0VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNY,yBAAyB,gEAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAmB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA5B,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAK/D,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,OAAA,EACtB,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,eAAe,EAAE,WAAW,CAAC,EAAA,IAAA,EAGlF,EAAE,KAAK,EAAE,EAAE,EAAE,EAAA,QAAA,EAAA,21BAAA,EAAA,MAAA,EAAA,CAAA,0VAAA,CAAA,EAAA;;;AEzBrB;;;AAGG;AAcH;;;AAGG;AAaG,MAAO,qBACX,SAAQ,qBAAyC,CAAA;IAG9B,KAAK,GAAG,QAAQ,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;;IAG7E,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;;IAGrC,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAQ;AAE7B;;;;;;;AAOG;AACM,IAAA,sBAAsB,GAAG,KAAK,CACrC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,8CAAA,CAAgD,CAAC,kEACnE;AAED;;;;;AAKG;AACM,IAAA,kBAAkB,GAAG,KAAK,CACjC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,+CAAA,CAAiD,CAAC,8DACpE;AAED;;;;;AAKG;AACM,IAAA,mBAAmB,GAAG,KAAK,CAClC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,iDAAA,CAAmD,CAAC,+DACtE;AAED;;AAEG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAElC;;;;AAIG;IACM,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE/D;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACM,SAAS,GAAG,KAAK,CACxB,CAAC,CAAmB,EAAE,CAAmB,KAAI;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAM,GAAG,CAAC,CAAC,KAAK;QACrE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAM,GAAG,CAAC,CAAC,KAAK;AACrE,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACrC,IAAA,CAAC,qDACF;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;IACM,QAAQ,GAAG,KAAK,CACvB,CAAC,IAAsB,EAAE,UAAkB,KAAI;QAC7C,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAM,GAAG,IAAI,CAAC,KAAK;AAC9E,QAAA,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAChE,IAAA,CAAC,oDACF;AAED;;;;AAIG;AACM,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,yDAAC;AACjC;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkB;AAE1B,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,EAAE;AACjD,IAAA,CAAC,uDAAC;;AAGiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,UAAU,GAA+B;AAC7C,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACjC,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;AAC9B,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM;AAC1B;SACF;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;YACzB,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE;YAChD,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;QAC/C;aAAO;YACL,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE;YAC/C,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe;QACjD;AACA,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC,sDAAC;IAEM,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;IACF;uGA/JW,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjClC,6kCAqCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDbI,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACzB,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAKN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB;wBACP,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,yBAAyB;wBACzB;AACD,qBAAA,EAAA,IAAA,EAEK,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAA,QAAA,EAAA,6kCAAA,EAAA;;;AE/BnC;;;AAGG;AAyGH;;AAEG;AASG,MAAO,6BACX,SAAQ,qBAA2C,CAAA;AAGnD;;;;AAIG;AACM,IAAA,eAAe,GAAG,KAAK,CAAC,IAAI,2DAAC;AAEtC;;AAEG;IACM,iBAAiB,GAAG,CAAC,CAC5B,MAAM,SAAS,CAAA,CAAA,oDAAA,CAAsD,CACtE;IAEkB,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uGAlBnE,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvH1C,4zIA0GA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAmB,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,oPAArE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAM/B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,OAAA,EAC1B,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,EAAA,IAAA,EAE3F;AACJ,wBAAA,IAAI,EAAE;AACP,qBAAA,EAAA,QAAA,EAAA,4zIAAA,EAAA;;;AErHH;;;AAGG;AAeG,MAAO,6BAA8B,SAAQ,qBAA6C,CAAA;AAC9F;;;;AAIG;AACM,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,yDAAC;AAEjC;;;;AAIG;AACM,IAAA,eAAe,GAAG,KAAK,CAAC,IAAI,2DAAC;;AAGnB,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;QACxC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC7C,IAAA,CAAC,kDAAC;uGAlBS,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB1C,srBAwBA,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVY,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI5B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BACE,yBAAyB,EAAA,OAAA,EAC1B,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,srBAAA,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA;;;AEd1C;;;AAGG;AA0BG,MAAO,yBACX,SAAQ,qBAA6C,CAAA;AAGrD;;AAEG;IACM,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAC9C;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK,CAAgD,EAAE,0DAAC;AAClF;;;;AAIG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAgC,EAAE,4DAAC;AACpE;;;;AAIG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAQ;AAE7B;;;;AAIG;AACM,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,yDAAC;AAEjC;;;;AAIG;AACM,IAAA,eAAe,GAAG,KAAK,CAAC,IAAI,2DAAC;AACtC;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkB;AAE1B,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,EAAE;AACjD,IAAA,CAAC,uDAAC;AAEiB,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;uGAlD3C,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BtC,g/BAiCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZI,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAE7B,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EADf,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAKN,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB;wBACP,eAAe;wBACf,eAAe;wBACf,6BAA6B;wBAC7B,eAAe;wBACf;AACD,qBAAA,EAAA,QAAA,EAAA,g/BAAA,EAAA;;;AE1BH;;;AAGG;AAQH;;AAEG;AAMG,MAAO,0BACX,SAAQ,qBAAyC,CAAA;AAGjD;;AAEG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAC3C;;AAEG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAC/B;;AAEG;IACM,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AAC3C;;;AAGG;IACM,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;uGApBvC,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,kmBCnBvC,u0BAuBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,0EAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAGtD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,WACvB,CAAC,eAAe,EAAE,qBAAqB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,u0BAAA,EAAA;;;AEhBpE;;;AAGG;AAeH;;;;;;;;;;;AAWG;MAMU,sBAAsB,CAAA;AACjC;;AAEG;IACM,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAC9C;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK,CAAgD,EAAE,0DAAC;AAClF;;;;AAIG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAgC,EAAE,4DAAC;AACpE;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAC5C;;AAEG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAC3C;;AAEG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAC/B;;AAEG;IACM,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AAC3C;;;AAGG;IACM,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAClD;;;;AAIG;IACM,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAQ;AAC7B;;;;AAIG;IACM,2BAA2B,GAAG,KAAK,CAAC,KAAK,wEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpF;;;;AAIG;IACM,oBAAoB,GAAG,KAAK,CAAC,KAAK,iEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC7E;;;;;AAKG;AACM,IAAA,mCAAmC,GAAG,KAAK,CAAC,GAAG,+EAAC;AACzD;;AAEG;IACM,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACjC;;AAEG;IACM,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACjC;;;;AAIG;AACM,IAAA,MAAM,GAAG,KAAK,CAA4B,UAAU,kDAAC;AAC9D;;;;AAIG;AACM,IAAA,YAAY,GAAG,KAAK,CAAuD,YAAY,wDAAC;AACjG;;AAEG;IACM,iBAAiB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAC5C;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkB;AAE1B,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,EAAE;AACjD,IAAA,CAAC,uDAAC;uGAjGS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mCAAA,EAAA,EAAA,iBAAA,EAAA,qCAAA,EAAA,UAAA,EAAA,qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnCnC,u8BA+BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCY,eAAe,0JAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAmB,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA3C,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAGhD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAClB,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,0BAA0B,CAAC,EAAA,QAAA,EAAA,u8BAAA,EAAA;;;AEhC1F;;;AAGG;;ACHH;;AAEG;;;;"}
|