@siemens/element-ng 49.0.0-rc.3 → 49.0.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/LICENSE.md +1 -1
- package/README.md +1 -1
- package/fesm2022/siemens-element-ng-about.mjs +3 -3
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +6 -6
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +6 -6
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +16 -16
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +17 -17
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +7 -7
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +5 -5
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +5 -5
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +2 -2
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +5 -5
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +6 -6
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +5 -5
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +11 -11
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +3 -3
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +2 -2
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +4 -4
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +14 -14
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +3 -3
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +4 -4
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +4 -4
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +15 -15
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +3 -3
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +5 -5
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +19 -19
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +4 -4
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +3 -3
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +6 -6
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +4 -4
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +11 -11
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +3 -3
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +9 -9
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +26 -26
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +5 -5
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +2 -2
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon-status.mjs +3 -3
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +23 -38
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +2 -2
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +3 -3
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +4 -4
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +7 -7
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +3 -3
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +4 -4
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +9 -9
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +6 -6
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +4 -4
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +3 -3
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +3 -3
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +12 -12
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +6 -5
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +11 -10
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +6 -6
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +2 -2
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +3 -3
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +3 -3
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +4 -4
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +3 -3
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +4 -4
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +3 -3
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +8 -8
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +3 -3
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +5 -5
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +3 -3
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +5 -5
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +4 -4
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +3 -3
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +21 -21
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +2 -2
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +5 -5
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +4 -4
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +3 -3
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +13 -3
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +3 -3
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +5 -5
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +2 -2
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +2 -2
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +2 -2
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +2 -2
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +2 -2
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +5 -5
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +6 -6
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +5 -19
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +4 -4
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +4 -4
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +14 -11
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +4 -4
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +10 -10
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +6 -6
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +5 -5
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng.mjs +1 -1
- package/fesm2022/siemens-element-ng.mjs.map +1 -1
- package/package.json +5 -4
- package/schematics/migrations/data/class-member-replacement.js +1 -1
- package/schematics/migrations/data/element-class-changes.js +1 -1
- package/schematics/migrations/data/index.js +1 -1
- package/schematics/migrations/data/migration-test-data.js +1 -1
- package/schematics/migrations/data/symbol-renaming.js +29 -0
- package/schematics/migrations/element-migration/element-migration.js +1 -1
- package/schematics/migrations/element-migration/index.js +1 -1
- package/schematics/migrations/icon-path-migration/icon-path-migration.js +1 -1
- package/schematics/migrations/icon-path-migration/index.js +1 -1
- package/schematics/migrations/ngx-translate/index.js +1 -1
- package/schematics/migrations/utilities/attribute-selector.migration.js +1 -1
- package/schematics/migrations/utilities/class-member-replacement.migration.js +1 -1
- package/schematics/migrations/utilities/component-property-name.migration.js +1 -1
- package/schematics/migrations/utilities/element-class-change.migration.js +1 -1
- package/schematics/migrations/utilities/element-selector.migration.js +1 -1
- package/schematics/migrations/utilities/index.js +1 -1
- package/schematics/migrations/utilities/symbol-removal.migration.js +1 -1
- package/schematics/migrations/utilities/symbol-renaming.migration.js +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/index.js +13 -3
- package/schematics/utils/html-utils.js +1 -1
- package/schematics/utils/index.js +1 -1
- package/schematics/utils/project-utils.js +1 -1
- package/schematics/utils/schematics-file-system.js +1 -1
- package/schematics/utils/template-utils.js +1 -1
- package/schematics/utils/ts-compiler-host.js +1 -1
- package/schematics/utils/ts-utils.js +1 -1
- package/types/siemens-element-ng-about.d.ts +1 -1
- package/types/siemens-element-ng-action-modal.d.ts +1 -1
- package/types/siemens-element-ng-ag-grid.d.ts +3 -3
- package/types/siemens-element-ng-application-header.d.ts +3 -3
- package/types/siemens-element-ng-breadcrumb-router.d.ts +1 -1
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +1 -1
- package/types/siemens-element-ng-column-selection-dialog.d.ts +1 -1
- package/types/siemens-element-ng-common.d.ts +9 -9
- package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
- package/types/siemens-element-ng-copyright-notice.d.ts +1 -1
- package/types/siemens-element-ng-datatable.d.ts +1 -1
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +1 -1
- package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +1 -1
- package/types/siemens-element-ng-filter-bar.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +1 -1
- package/types/siemens-element-ng-form.d.ts +4 -4
- package/types/siemens-element-ng-formly.d.ts +5 -5
- package/types/siemens-element-ng-header-dropdown.d.ts +1 -1
- package/types/siemens-element-ng-icon-status.d.ts +1 -1
- package/types/siemens-element-ng-icon.d.ts +4 -11
- package/types/siemens-element-ng-ip-input.d.ts +1 -1
- package/types/siemens-element-ng-landing-page.d.ts +2 -2
- package/types/siemens-element-ng-language-switcher.d.ts +1 -1
- package/types/siemens-element-ng-link.d.ts +2 -2
- package/types/siemens-element-ng-localization.d.ts +1 -1
- package/types/siemens-element-ng-menu.d.ts +2 -2
- package/types/siemens-element-ng-modal.d.ts +2 -2
- package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
- package/types/siemens-element-ng-navbar.d.ts +2 -2
- package/types/siemens-element-ng-phone-number.d.ts +1 -1
- package/types/siemens-element-ng-result-details-list.d.ts +1 -1
- package/types/siemens-element-ng-select.d.ts +4 -4
- package/types/siemens-element-ng-shadow-root.d.ts +1 -1
- package/types/siemens-element-ng-side-panel.d.ts +1 -1
- package/types/siemens-element-ng-sort-bar.d.ts +10 -0
- package/types/siemens-element-ng-split.d.ts +1 -1
- 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-tabs-legacy.d.ts +1 -1
- package/types/siemens-element-ng-theme.d.ts +3 -6
- package/types/siemens-element-ng-toast-notification.d.ts +1 -1
- package/types/siemens-element-ng-tooltip.d.ts +4 -3
- package/types/siemens-element-ng-tour.d.ts +1 -1
- package/types/siemens-element-ng-translate.d.ts +1 -1
- package/types/siemens-element-ng-tree-view.d.ts +4 -4
- package/types/siemens-element-ng-typeahead.d.ts +2 -2
- package/types/siemens-element-ng.d.ts +1 -1
- package/schematics/migrations/index.js +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-sort-bar.mjs","sources":["../../../../projects/element-ng/sort-bar/si-sort-bar.component.ts","../../../../projects/element-ng/sort-bar/si-sort-bar.component.html","../../../../projects/element-ng/sort-bar/si-sort-bar.module.ts","../../../../projects/element-ng/sort-bar/index.ts","../../../../projects/element-ng/sort-bar/siemens-element-ng-sort-bar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 -
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-sort-bar.mjs","sources":["../../../../projects/element-ng/sort-bar/si-sort-bar.component.ts","../../../../projects/element-ng/sort-bar/si-sort-bar.component.html","../../../../projects/element-ng/sort-bar/si-sort-bar.module.ts","../../../../projects/element-ng/sort-bar/index.ts","../../../../projects/element-ng/sort-bar/siemens-element-ng-sort-bar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { HttpParams } from '@angular/common/http';\nimport { Component, input, OnInit, output } from '@angular/core';\nimport { elementSortDown, elementSortUp } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nexport interface SortCriteria {\n name: TranslatableString;\n key: number | string;\n}\n\n/**\n * @deprecated SiSortBarComponent originate from the older design system and do not align with current\n * design guidelines. No known use case exists for this component.\n * It will be removed in v50.\n */\n@Component({\n selector: 'si-sort-bar',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-sort-bar.component.html',\n styleUrl: './si-sort-bar.component.scss'\n})\nexport class SiSortBarComponent implements OnInit {\n /**\n * Custom sort title.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SORT_BAR.TITLE:Sort by`)\n * ```\n */\n readonly sortTitle = input(t(() => $localize`:@@SI_SORT_BAR.TITLE:Sort by`));\n /**\n * List of sort criteria.\n */\n readonly sortCriteria = input.required<SortCriteria[]>();\n /**\n * `key` which sortCriteria is active by default.\n */\n readonly defaultSortCriteria = input.required<SortCriteria['key']>();\n\n /**\n * Output callback event will provide you with a HttpParams object if active\n * sortCriteria change.\n */\n readonly sortChange = output<HttpParams>();\n\n protected readonly icons = addIcons({ elementSortDown, elementSortUp });\n protected activeSortCriteria: SortCriteria['key'] = '';\n protected sortIsDescending = false;\n\n ngOnInit(): void {\n const defaultSortCriteria = this.defaultSortCriteria();\n if (defaultSortCriteria) {\n this.setActive(defaultSortCriteria);\n }\n }\n\n protected setActive(key: SortCriteria['key']): void {\n if (this.activeSortCriteria === key) {\n this.sortIsDescending = !this.sortIsDescending;\n }\n\n this.activeSortCriteria = key;\n\n const searchParams = new HttpParams()\n .set('sort', this.activeSortCriteria)\n .set('order', this.sortIsDescending ? 'desc' : 'asc');\n\n this.sortChange.emit(searchParams);\n }\n}\n","<div class=\"list-header list-header-sorting\">\n <div class=\"list-title\">{{ sortTitle() | translate }}:</div>\n @for (item of sortCriteria(); track $index) {\n <div\n class=\"sort-item\"\n tabindex=\"0\"\n [attr.data-key]=\"item.key\"\n (click)=\"setActive(item.key)\"\n (keydown.enter)=\"setActive(item.key)\"\n >\n <span>{{ item.name | translate }}</span>\n @if (item.key === activeSortCriteria) {\n <si-icon\n class=\"icon\"\n [icon]=\"sortIsDescending ? icons.elementSortDown : icons.elementSortUp\"\n />\n }\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSortBarComponent } from './si-sort-bar.component';\n\n/**\n * @deprecated SiSortBarModule originate from the older design system and do not align with current\n * design guidelines. No known use case exists for this module and component.\n * It will be removed in v50.\n */\n@NgModule({\n imports: [SiSortBarComponent],\n exports: [SiSortBarComponent]\n})\nexport class SiSortBarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-sort-bar.component';\nexport * from './si-sort-bar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { asapScheduler, merge, fromEvent } from 'rxjs';
|
|
|
9
9
|
import { observeOn, takeUntil } from 'rxjs/operators';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Copyright (c) Siemens 2016 -
|
|
12
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
13
13
|
* SPDX-License-Identifier: MIT
|
|
14
14
|
*/
|
|
15
15
|
/* eslint-disable @angular-eslint/prefer-output-emitter-ref */
|
|
@@ -527,7 +527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
527
527
|
}] } });
|
|
528
528
|
|
|
529
529
|
/**
|
|
530
|
-
* Copyright (c) Siemens 2016 -
|
|
530
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
531
531
|
* SPDX-License-Identifier: MIT
|
|
532
532
|
*/
|
|
533
533
|
class SiSplitModule {
|
|
@@ -544,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
544
544
|
}] });
|
|
545
545
|
|
|
546
546
|
/**
|
|
547
|
-
* Copyright (c) Siemens 2016 -
|
|
547
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
548
548
|
* SPDX-License-Identifier: MIT
|
|
549
549
|
*/
|
|
550
550
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-split.mjs","sources":["../../../../projects/element-ng/split/si-split-part.component.ts","../../../../projects/element-ng/split/si-split-part.component.html","../../../../projects/element-ng/split/si-split.component.ts","../../../../projects/element-ng/split/si-split.component.html","../../../../projects/element-ng/split/si-split.module.ts","../../../../projects/element-ng/split/index.ts","../../../../projects/element-ng/split/siemens-element-ng-split.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/prefer-output-emitter-ref */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n signal,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { Action, CollapseTo, PartState, Scale, SplitOrientation } from './si-split.interfaces';\n\n@Component({\n selector: 'si-split-part',\n imports: [NgTemplateOutlet, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-split-part.component.html',\n styleUrl: './si-split-part.component.scss',\n // Signals cannot be used directly with @HostBinding. See: https://github.com/angular/angular/issues/53888#issuecomment-1888935225\n // Having every binding here for consistency.\n host: {\n '[class.is-collapsed]': 'collapsedState()',\n '[class.collapse-start]': 'collapseDirection === \"start\"',\n '[style.grid-area]': '\"p-\" + this.index'\n }\n})\nexport class SiSplitPartComponent implements OnChanges {\n /** @defaultValue [] */\n @Input() actions: Action[] = [];\n /**\n * @defaultValue 'start'\n */\n @Input() collapseDirection: CollapseTo = 'start';\n\n /**\n * Sets the icon class that is used in the buttons of split parts to\n * collapse and uncollapse the parts.\n *\n * @defaultValue 'element-double-right'\n */\n @Input() collapseIconClass = 'element-double-right';\n\n /**\n * Collapse only to the given min size.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) collapseToMinSize = false;\n\n @Input() headerTemplate?: TemplateRef<any>;\n\n /**\n * Sets the title of the split part header.\n */\n @Input() heading!: TranslatableString;\n\n /**\n * Minimum size in px.\n *\n * @defaultValue 0\n */\n @Input({ transform: numberAttribute }) minSize = 0;\n\n /**\n * When a split part is collapsed, the content gets hidden but it will\n * still remain within the DOM. If you want to remove and destroy the component\n * in collapsed mode and recreate it on un-collapse, set this property to\n * true.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) removeContentOnCollapse = false;\n\n /**\n * Defines the behavior of the split part during scaling.\n * E.g. when set to `none`, the spit part will keep its current size even when the parent container grows or shrinks.\n *\n * @defaultValue 'auto'\n */\n @Input() scale: Scale = 'auto';\n\n /**\n * Defines if the collapse button of a split part is displayed. Default value is true.\n *\n * @defaultValue true\n */\n @Input({ transform: booleanAttribute }) showCollapseButton = true;\n\n /**\n * Defines if the header of the split part is visible. Default is true.\n *\n * @defaultValue true\n */\n @Input({ transform: booleanAttribute }) showHeader = true;\n /**\n * Aria label for collapse button. Needed for a11y\n *\n * @defaultValue 'collapse'\n */\n @Input() collapseLabel: TranslatableString = 'collapse';\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n @Input() stateId?: string;\n\n /**\n * Expanded size in px.\n */\n @Input({ transform: numberAttribute }) size?: number;\n\n /**\n * This toggles the behavior when collapsing this split part.\n * If enabled, all split parts between this one and the end of the split in the respective direction will be collapsed if this part is collapsed.\n * If disabled, only this split part will be collapsed.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) collapseOthers = false;\n\n @Output() readonly collapseChanged = new EventEmitter<boolean>();\n @Output() readonly stateChange = new EventEmitter<PartState>();\n\n /** @internal */\n index = 0;\n /** @internal */\n before?: SiSplitPartComponent;\n /** @internal */\n after?: SiSplitPartComponent;\n\n /** @internal */\n readonly fractionalSize = signal<number | undefined>(undefined);\n\n /** @internal */\n readonly collapsedSize = signal(0);\n\n /** @internal */\n readonly collapsedState = signal(false);\n\n /**\n * Get collapsed state.\n * @returns True if the split part is collapsed, false is expanded.\n */\n get collapsed(): boolean {\n return this.collapsedState();\n }\n\n /** @internal */\n readonly expandedSize = signal<number | undefined>(undefined);\n\n /** @internal */\n readonly actualSize = computed(() => {\n if (this.collapsedState()) {\n return this.collapsedSize();\n }\n return this.expandedSize() ?? 0;\n });\n\n /** @internal */\n saveUIState!: () => void;\n\n /** @internal */\n readonly nextExpandedAfter = computed(() => {\n if (!this.collapsedState()) {\n return this as SiSplitPartComponent;\n }\n const nextExpanded: SiSplitPartComponent = this.after ? this.after.nextExpandedAfter() : this;\n\n return nextExpanded;\n });\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected headerContext: { $implicit: SiSplitPartComponent } = {\n $implicit: this\n };\n\n /** @defaultValue true */\n @Input({ transform: booleanAttribute }) set expanded(value: boolean) {\n this.collapsedState.set(!value);\n if (this.collapseOthers) {\n this.before?.refreshCollapseToStart();\n this.after?.refreshCollapsedToEnd();\n }\n }\n get expanded(): boolean {\n return !this.collapsedState();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.collapseToMinSize && this.collapseToMinSize) {\n this.collapsedSize.set(this.minSize ?? 40);\n } else {\n this.collapsedSize.set(40); // 40px is default size of the header\n }\n\n if (changes.size) {\n this.expandedSize.set(this.size);\n }\n }\n\n /** @internal */\n refreshSizePx(orientation: SplitOrientation): void {\n if (!this.collapsedState()) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (orientation === 'vertical') {\n this.expandedSize.set(rect.height);\n } else {\n this.expandedSize.set(rect.width);\n }\n }\n }\n\n /**\n * Toggles the collapsed or expanded state.\n */\n toggleCollapse(): void {\n this.collapsedState.update(v => !v);\n if (this.collapseOthers) {\n this.before?.refreshCollapseToStart();\n this.after?.refreshCollapsedToEnd();\n }\n this.collapseChanged.emit(this.collapsedState());\n this.stateChange.emit({ expanded: this.expanded, size: this.actualSize() });\n this.saveUIState();\n }\n\n private refreshCollapsedToEnd(): void {\n if (this.before?.collapsedState() && this.before.collapseDirection === 'end') {\n this.collapsedState.set(true);\n this.collapseDirection = 'end';\n this.after?.refreshCollapsedToEnd();\n }\n }\n\n private refreshCollapseToStart(): void {\n if (this.after?.collapsedState() && this.after.collapseDirection === 'start') {\n this.collapsedState.set(true);\n this.collapseDirection = 'start';\n this.before?.refreshCollapseToStart();\n }\n }\n}\n","@if (!headerTemplate && showHeader) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions; track $index) {\n <button\n type=\"button\"\n class=\"si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (showCollapseButton) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"si-split-button\"\n [attr.aria-label]=\"collapseLabel | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse && collapsedState() && !collapseToMinSize\"\n>\n @if (!removeContentOnCollapse || !collapsedState()) {\n <ng-content />\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/prefer-output-emitter-ref */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnChanges,\n Output,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n DOCUMENT\n} from '@angular/core';\nimport {\n isRTL,\n SI_UI_STATE_SERVICE,\n WebComponentContentChildren\n} from '@siemens/element-ng/common';\nimport { asapScheduler, fromEvent, merge } from 'rxjs';\nimport { observeOn, takeUntil } from 'rxjs/operators';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SplitOrientation } from './si-split.interfaces';\n\ninterface Gutter {\n before: SiSplitPartComponent;\n after: SiSplitPartComponent;\n visible: Signal<boolean>;\n}\n\ninterface SplitPartState {\n size: number;\n initialSize: number;\n expanded: boolean;\n}\n\n@Component({\n selector: 'si-split',\n templateUrl: './si-split.component.html',\n styleUrl: './si-split.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // Signals cannot be used directly with @HostBinding. See: https://github.com/angular/angular/issues/53888#issuecomment-1888935225\n host: {\n '[class]': '_orientation()',\n '[style.grid-template-rows]': 'gridTemplateRows()',\n '[style.grid-template-columns]': 'gridTemplateColumns()',\n '[style.grid-template-areas]': 'gridTemplateAreas()'\n }\n})\nexport class SiSplitComponent implements AfterContentInit, OnChanges {\n /** @defaultValue 16 */\n @Input() gutterSize = 16;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly _orientation = signal<SplitOrientation>('horizontal');\n\n get orientation(): SplitOrientation {\n return this._orientation();\n }\n\n @Input() set orientation(value: SplitOrientation) {\n this._orientation.set(value);\n }\n\n /** @defaultValue [] */\n @Input() sizes: number[] = [];\n\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n @Input() stateId?: string;\n\n @Output() readonly sizesChange = new EventEmitter<number[]>();\n\n @WebComponentContentChildren(SiSplitPartComponent)\n @ContentChildren(SiSplitPartComponent)\n protected parts!: QueryList<SiSplitPartComponent>;\n protected gutters: Gutter[] = [];\n\n // eslint-disable-next-line\n protected gridTemplateRows: Signal<string> = signal('');\n // eslint-disable-next-line\n protected gridTemplateColumns: Signal<string> = signal('');\n // eslint-disable-next-line\n protected gridTemplateAreas: Signal<string> = signal('');\n\n private elementRef = inject(ElementRef<HTMLElement>);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n // New parts won't be measured, so we need this to scale up their fractional size to the expanded size.\n // Using 10, as the sum of all fractional sizes is 1, so we need to scale them up as fr-values should be >= 1.\n private fractionalSizeToExpandedSizeFactor = 10;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.sizes && !changes.sizes.firstChange) {\n this.sizes.forEach((size, index) => {\n const part = this.parts.get(index);\n if (part) {\n part.fractionalSize.set(size);\n part.expandedSize.set(undefined);\n }\n });\n this.alignRelativeSizes();\n }\n }\n\n ngAfterContentInit(): void {\n this.parts.changes.pipe(observeOn(asapScheduler)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n this.gutters = [];\n\n for (let index = 0; index < this.parts.length; index++) {\n const component = this.parts.get(index)!;\n component.index = index;\n component.after = this.parts.get(index + 1);\n component.before = this.parts.get(index - 1);\n component.fractionalSize.set(this.sizes[index]);\n component.saveUIState = () => this.saveUIState();\n\n if (component.after) {\n this.gutters.push({\n before: component,\n after: this.parts.get(index + 1)!,\n visible: computed(() => {\n const afterPart = component.after!.nextExpandedAfter();\n return !afterPart.collapsedState() && !component.collapsedState();\n })\n });\n }\n }\n\n this.alignRelativeSizes();\n this.updateFractionalSizeToExpandSizeFactor();\n this.restoreFormUIState();\n\n const gridTemplate = computed(() =>\n this.parts\n .map(part =>\n part.collapsedState()\n ? part.collapseToMinSize\n ? `${part.minSize}px`\n : 'min-content'\n : part.actualSize()\n ? part.scale === 'auto'\n ? `minmax(${part.minSize}px, ${part.actualSize()}fr)`\n : `minmax(${part.minSize}px, ${part.actualSize()}px)`\n : `minmax(${part.minSize}px, ${\n part.fractionalSize()! * this.fractionalSizeToExpandedSizeFactor\n }fr)`\n )\n .join(' min-content ')\n );\n\n this.gridTemplateRows = computed(() =>\n this._orientation() === 'vertical' ? gridTemplate() : '1fr'\n );\n this.gridTemplateColumns = computed(() =>\n this._orientation() === 'horizontal' ? gridTemplate() : '1fr'\n );\n this.gridTemplateAreas = computed(() => {\n const areaNames = this.parts\n .map((part, index) => [`p-${index}`, part.after ? `g-${index}` : []])\n .flat(2) as string[];\n\n if (this._orientation() === 'horizontal') {\n return `\"${areaNames.join(' ')}\"`;\n } else {\n return `\"${areaNames.join('\" \"')}\"`;\n }\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n this.parts.notifyOnChanges();\n }\n\n private alignRelativeSizes(): void {\n const requestedNoSize = this.parts.filter(part => !part.size && !part.fractionalSize());\n const requestedRelSize = this.parts.filter(part => part.fractionalSize() && !part.size);\n\n if (requestedRelSize.length) {\n const totalRequestedRelSize = requestedRelSize.reduce((a, b) => a + b.fractionalSize()!, 0);\n const averageRelSize = totalRequestedRelSize / requestedRelSize.length;\n const totalAssignedRelSize = totalRequestedRelSize + requestedNoSize.length * averageRelSize;\n requestedNoSize.forEach(part =>\n part.fractionalSize.set(averageRelSize / totalAssignedRelSize)\n );\n requestedRelSize.forEach(part =>\n part.fractionalSize.set(part.fractionalSize()! / totalAssignedRelSize)\n );\n } else {\n requestedNoSize.forEach(part => part.fractionalSize.set(1 / requestedNoSize.length));\n }\n }\n\n private updateFractionalSizeToExpandSizeFactor(): void {\n let previousScalableFractionalSum = 0;\n let previousScalableExpandedSizeSum = 0;\n\n for (let index = 0; index < this.parts.length; index++) {\n const component = this.parts.get(index)!;\n if (component.scale === 'auto' && component.expandedSize() !== undefined) {\n previousScalableExpandedSizeSum += component.expandedSize()!;\n previousScalableFractionalSum += component.fractionalSize()!;\n }\n }\n\n this.fractionalSizeToExpandedSizeFactor = previousScalableFractionalSum\n ? previousScalableExpandedSizeSum / previousScalableFractionalSum\n : 10;\n }\n\n private refreshAllPartSizes(): void {\n const refParts = this.parts.filter(\n part =>\n !part.collapsedState() &&\n part.scale === 'auto' &&\n (part.expandedSize() || part.fractionalSize())\n );\n const beforeFrSum = refParts.reduce((a, b) => a + (b.expandedSize() ?? b.fractionalSize()!), 0);\n this.parts.forEach(part => part.refreshSizePx(this.orientation));\n const afterFrSum = refParts.reduce((a, b) => a + b.expandedSize()!, 0);\n const beforeToAfterFactor = afterFrSum / beforeFrSum;\n this.parts\n .filter(\n part =>\n part.collapsedState() && (part.scale === 'auto' || part.expandedSize() === undefined)\n )\n .forEach(part =>\n part.expandedSize.update(prev => (prev ?? part.fractionalSize()!) * beforeToAfterFactor)\n );\n }\n\n protected resizeStart(gutter: Gutter, event: Event): void {\n this.refreshAllPartSizes();\n this.changeDetectorRef.detectChanges();\n const afterPart = gutter.after.nextExpandedAfter();\n let beforeSize = gutter.before.expandedSize()!;\n let afterSize = afterPart.expandedSize()!;\n let appliedDelta = 0;\n const rtl = isRTL();\n const startPosition = this.getPosition(event);\n const minDelta = -1 * (beforeSize - gutter.before.minSize);\n const maxDelta = afterSize - afterPart.minSize;\n const containerSize = this.measureContainerSize();\n event.preventDefault(); // prevents text-selection\n\n this.ngZone.runOutsideAngular(() => {\n merge(fromEvent(this.document, 'mousemove'), fromEvent(this.document, 'touchmove'))\n .pipe(\n takeUntil(\n merge(fromEvent(this.document, 'mouseup'), fromEvent(this.document, 'touchend'))\n )\n )\n .subscribe({\n next: move => {\n let delta = this.getPosition(move) - startPosition;\n if (rtl && this.orientation === 'horizontal') {\n delta *= -1;\n }\n\n delta -= appliedDelta;\n if (maxDelta < appliedDelta + delta) {\n delta = maxDelta - appliedDelta;\n } else if (minDelta > appliedDelta + delta) {\n delta = minDelta - appliedDelta;\n }\n\n if (delta === 0) {\n return;\n }\n\n beforeSize += delta;\n afterSize -= delta;\n appliedDelta += delta;\n gutter.before.expandedSize.set(beforeSize);\n afterPart.expandedSize.set(afterSize);\n if (this.orientation === 'vertical') {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-rows',\n this.gridTemplateRows()\n );\n } else {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-columns',\n this.gridTemplateColumns()\n );\n }\n this.ngZone.run(() =>\n this.sizesChange.emit(\n this.parts.map(part => (part.actualSize() * 100) / containerSize)\n )\n );\n },\n complete: () => this.saveUIState()\n });\n });\n }\n\n private measureContainerSize(): number {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (this._orientation() === 'vertical') {\n return rect.height;\n } else {\n return rect.width;\n }\n }\n\n private getPosition(event: Event): number {\n const positionObject = (event as TouchEvent).touches?.[0] ?? (event as MouseEvent);\n return this.orientation === 'horizontal'\n ? (positionObject.clientX ?? 0)\n : (positionObject.clientY ?? 0);\n }\n\n private saveUIState(): void {\n if (!this.stateId || !this.uiStateService) {\n return;\n }\n\n const containerSize = this.measureContainerSize();\n const state = this.parts.reduce(\n (partState, part) => {\n if (part.stateId) {\n partState[part.stateId] = {\n size: ((part.expandedSize() ?? 0) * 100) / containerSize,\n initialSize: this.sizes[part.index],\n expanded: part.expanded\n };\n }\n return partState;\n },\n {} as Record<string, SplitPartState>\n );\n\n this.uiStateService.save(this.stateId, state);\n }\n\n private restoreFormUIState(): void {\n if (!this.stateId || !this.uiStateService) {\n return;\n }\n\n this.uiStateService.load<Record<string, SplitPartState>>(this.stateId).then(uiState => {\n if (!uiState) {\n return;\n }\n\n this.parts\n .filter(part => part.stateId)\n .map(part => ({ part, state: uiState[part.stateId!] }))\n .filter(({ part, state }) => this.sizes[part.index] === state?.initialSize)\n .forEach(({ part, state }) => {\n part.expandedSize.set(undefined);\n part.fractionalSize.set(state?.size);\n part.collapsedState.set(!(state?.expanded ?? true));\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n }\n}\n","<ng-content />\n\n@for (gutter of gutters; track $index) {\n @if ($index < parts.length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation === 'horizontal' ? gutterSize : null\"\n [style.height.px]=\"orientation === 'vertical' ? gutterSize : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SiSplitComponent } from './si-split.component';\n\n@NgModule({\n imports: [SiSplitComponent, SiSplitPartComponent],\n exports: [SiSplitComponent, SiSplitPartComponent]\n})\nexport class SiSplitModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-split.module';\nexport * from './si-split-part.component';\nexport * from './si-split.component';\nexport * from './si-split.interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-split.mjs","sources":["../../../../projects/element-ng/split/si-split-part.component.ts","../../../../projects/element-ng/split/si-split-part.component.html","../../../../projects/element-ng/split/si-split.component.ts","../../../../projects/element-ng/split/si-split.component.html","../../../../projects/element-ng/split/si-split.module.ts","../../../../projects/element-ng/split/index.ts","../../../../projects/element-ng/split/siemens-element-ng-split.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/prefer-output-emitter-ref */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n signal,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { Action, CollapseTo, PartState, Scale, SplitOrientation } from './si-split.interfaces';\n\n@Component({\n selector: 'si-split-part',\n imports: [NgTemplateOutlet, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-split-part.component.html',\n styleUrl: './si-split-part.component.scss',\n // Signals cannot be used directly with @HostBinding. See: https://github.com/angular/angular/issues/53888#issuecomment-1888935225\n // Having every binding here for consistency.\n host: {\n '[class.is-collapsed]': 'collapsedState()',\n '[class.collapse-start]': 'collapseDirection === \"start\"',\n '[style.grid-area]': '\"p-\" + this.index'\n }\n})\nexport class SiSplitPartComponent implements OnChanges {\n /** @defaultValue [] */\n @Input() actions: Action[] = [];\n /**\n * @defaultValue 'start'\n */\n @Input() collapseDirection: CollapseTo = 'start';\n\n /**\n * Sets the icon class that is used in the buttons of split parts to\n * collapse and uncollapse the parts.\n *\n * @defaultValue 'element-double-right'\n */\n @Input() collapseIconClass = 'element-double-right';\n\n /**\n * Collapse only to the given min size.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) collapseToMinSize = false;\n\n @Input() headerTemplate?: TemplateRef<any>;\n\n /**\n * Sets the title of the split part header.\n */\n @Input() heading!: TranslatableString;\n\n /**\n * Minimum size in px.\n *\n * @defaultValue 0\n */\n @Input({ transform: numberAttribute }) minSize = 0;\n\n /**\n * When a split part is collapsed, the content gets hidden but it will\n * still remain within the DOM. If you want to remove and destroy the component\n * in collapsed mode and recreate it on un-collapse, set this property to\n * true.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) removeContentOnCollapse = false;\n\n /**\n * Defines the behavior of the split part during scaling.\n * E.g. when set to `none`, the spit part will keep its current size even when the parent container grows or shrinks.\n *\n * @defaultValue 'auto'\n */\n @Input() scale: Scale = 'auto';\n\n /**\n * Defines if the collapse button of a split part is displayed. Default value is true.\n *\n * @defaultValue true\n */\n @Input({ transform: booleanAttribute }) showCollapseButton = true;\n\n /**\n * Defines if the header of the split part is visible. Default is true.\n *\n * @defaultValue true\n */\n @Input({ transform: booleanAttribute }) showHeader = true;\n /**\n * Aria label for collapse button. Needed for a11y\n *\n * @defaultValue 'collapse'\n */\n @Input() collapseLabel: TranslatableString = 'collapse';\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n @Input() stateId?: string;\n\n /**\n * Expanded size in px.\n */\n @Input({ transform: numberAttribute }) size?: number;\n\n /**\n * This toggles the behavior when collapsing this split part.\n * If enabled, all split parts between this one and the end of the split in the respective direction will be collapsed if this part is collapsed.\n * If disabled, only this split part will be collapsed.\n *\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) collapseOthers = false;\n\n @Output() readonly collapseChanged = new EventEmitter<boolean>();\n @Output() readonly stateChange = new EventEmitter<PartState>();\n\n /** @internal */\n index = 0;\n /** @internal */\n before?: SiSplitPartComponent;\n /** @internal */\n after?: SiSplitPartComponent;\n\n /** @internal */\n readonly fractionalSize = signal<number | undefined>(undefined);\n\n /** @internal */\n readonly collapsedSize = signal(0);\n\n /** @internal */\n readonly collapsedState = signal(false);\n\n /**\n * Get collapsed state.\n * @returns True if the split part is collapsed, false is expanded.\n */\n get collapsed(): boolean {\n return this.collapsedState();\n }\n\n /** @internal */\n readonly expandedSize = signal<number | undefined>(undefined);\n\n /** @internal */\n readonly actualSize = computed(() => {\n if (this.collapsedState()) {\n return this.collapsedSize();\n }\n return this.expandedSize() ?? 0;\n });\n\n /** @internal */\n saveUIState!: () => void;\n\n /** @internal */\n readonly nextExpandedAfter = computed(() => {\n if (!this.collapsedState()) {\n return this as SiSplitPartComponent;\n }\n const nextExpanded: SiSplitPartComponent = this.after ? this.after.nextExpandedAfter() : this;\n\n return nextExpanded;\n });\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected headerContext: { $implicit: SiSplitPartComponent } = {\n $implicit: this\n };\n\n /** @defaultValue true */\n @Input({ transform: booleanAttribute }) set expanded(value: boolean) {\n this.collapsedState.set(!value);\n if (this.collapseOthers) {\n this.before?.refreshCollapseToStart();\n this.after?.refreshCollapsedToEnd();\n }\n }\n get expanded(): boolean {\n return !this.collapsedState();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.collapseToMinSize && this.collapseToMinSize) {\n this.collapsedSize.set(this.minSize ?? 40);\n } else {\n this.collapsedSize.set(40); // 40px is default size of the header\n }\n\n if (changes.size) {\n this.expandedSize.set(this.size);\n }\n }\n\n /** @internal */\n refreshSizePx(orientation: SplitOrientation): void {\n if (!this.collapsedState()) {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (orientation === 'vertical') {\n this.expandedSize.set(rect.height);\n } else {\n this.expandedSize.set(rect.width);\n }\n }\n }\n\n /**\n * Toggles the collapsed or expanded state.\n */\n toggleCollapse(): void {\n this.collapsedState.update(v => !v);\n if (this.collapseOthers) {\n this.before?.refreshCollapseToStart();\n this.after?.refreshCollapsedToEnd();\n }\n this.collapseChanged.emit(this.collapsedState());\n this.stateChange.emit({ expanded: this.expanded, size: this.actualSize() });\n this.saveUIState();\n }\n\n private refreshCollapsedToEnd(): void {\n if (this.before?.collapsedState() && this.before.collapseDirection === 'end') {\n this.collapsedState.set(true);\n this.collapseDirection = 'end';\n this.after?.refreshCollapsedToEnd();\n }\n }\n\n private refreshCollapseToStart(): void {\n if (this.after?.collapsedState() && this.after.collapseDirection === 'start') {\n this.collapsedState.set(true);\n this.collapseDirection = 'start';\n this.before?.refreshCollapseToStart();\n }\n }\n}\n","@if (!headerTemplate && showHeader) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions; track $index) {\n <button\n type=\"button\"\n class=\"si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (showCollapseButton) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"si-split-button\"\n [attr.aria-label]=\"collapseLabel | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse && collapsedState() && !collapseToMinSize\"\n>\n @if (!removeContentOnCollapse || !collapsedState()) {\n <ng-content />\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @angular-eslint/prefer-output-emitter-ref */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnChanges,\n Output,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n DOCUMENT\n} from '@angular/core';\nimport {\n isRTL,\n SI_UI_STATE_SERVICE,\n WebComponentContentChildren\n} from '@siemens/element-ng/common';\nimport { asapScheduler, fromEvent, merge } from 'rxjs';\nimport { observeOn, takeUntil } from 'rxjs/operators';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SplitOrientation } from './si-split.interfaces';\n\ninterface Gutter {\n before: SiSplitPartComponent;\n after: SiSplitPartComponent;\n visible: Signal<boolean>;\n}\n\ninterface SplitPartState {\n size: number;\n initialSize: number;\n expanded: boolean;\n}\n\n@Component({\n selector: 'si-split',\n templateUrl: './si-split.component.html',\n styleUrl: './si-split.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // Signals cannot be used directly with @HostBinding. See: https://github.com/angular/angular/issues/53888#issuecomment-1888935225\n host: {\n '[class]': '_orientation()',\n '[style.grid-template-rows]': 'gridTemplateRows()',\n '[style.grid-template-columns]': 'gridTemplateColumns()',\n '[style.grid-template-areas]': 'gridTemplateAreas()'\n }\n})\nexport class SiSplitComponent implements AfterContentInit, OnChanges {\n /** @defaultValue 16 */\n @Input() gutterSize = 16;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly _orientation = signal<SplitOrientation>('horizontal');\n\n get orientation(): SplitOrientation {\n return this._orientation();\n }\n\n @Input() set orientation(value: SplitOrientation) {\n this._orientation.set(value);\n }\n\n /** @defaultValue [] */\n @Input() sizes: number[] = [];\n\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n @Input() stateId?: string;\n\n @Output() readonly sizesChange = new EventEmitter<number[]>();\n\n @WebComponentContentChildren(SiSplitPartComponent)\n @ContentChildren(SiSplitPartComponent)\n protected parts!: QueryList<SiSplitPartComponent>;\n protected gutters: Gutter[] = [];\n\n // eslint-disable-next-line\n protected gridTemplateRows: Signal<string> = signal('');\n // eslint-disable-next-line\n protected gridTemplateColumns: Signal<string> = signal('');\n // eslint-disable-next-line\n protected gridTemplateAreas: Signal<string> = signal('');\n\n private elementRef = inject(ElementRef<HTMLElement>);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n // New parts won't be measured, so we need this to scale up their fractional size to the expanded size.\n // Using 10, as the sum of all fractional sizes is 1, so we need to scale them up as fr-values should be >= 1.\n private fractionalSizeToExpandedSizeFactor = 10;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.sizes && !changes.sizes.firstChange) {\n this.sizes.forEach((size, index) => {\n const part = this.parts.get(index);\n if (part) {\n part.fractionalSize.set(size);\n part.expandedSize.set(undefined);\n }\n });\n this.alignRelativeSizes();\n }\n }\n\n ngAfterContentInit(): void {\n this.parts.changes.pipe(observeOn(asapScheduler)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n this.gutters = [];\n\n for (let index = 0; index < this.parts.length; index++) {\n const component = this.parts.get(index)!;\n component.index = index;\n component.after = this.parts.get(index + 1);\n component.before = this.parts.get(index - 1);\n component.fractionalSize.set(this.sizes[index]);\n component.saveUIState = () => this.saveUIState();\n\n if (component.after) {\n this.gutters.push({\n before: component,\n after: this.parts.get(index + 1)!,\n visible: computed(() => {\n const afterPart = component.after!.nextExpandedAfter();\n return !afterPart.collapsedState() && !component.collapsedState();\n })\n });\n }\n }\n\n this.alignRelativeSizes();\n this.updateFractionalSizeToExpandSizeFactor();\n this.restoreFormUIState();\n\n const gridTemplate = computed(() =>\n this.parts\n .map(part =>\n part.collapsedState()\n ? part.collapseToMinSize\n ? `${part.minSize}px`\n : 'min-content'\n : part.actualSize()\n ? part.scale === 'auto'\n ? `minmax(${part.minSize}px, ${part.actualSize()}fr)`\n : `minmax(${part.minSize}px, ${part.actualSize()}px)`\n : `minmax(${part.minSize}px, ${\n part.fractionalSize()! * this.fractionalSizeToExpandedSizeFactor\n }fr)`\n )\n .join(' min-content ')\n );\n\n this.gridTemplateRows = computed(() =>\n this._orientation() === 'vertical' ? gridTemplate() : '1fr'\n );\n this.gridTemplateColumns = computed(() =>\n this._orientation() === 'horizontal' ? gridTemplate() : '1fr'\n );\n this.gridTemplateAreas = computed(() => {\n const areaNames = this.parts\n .map((part, index) => [`p-${index}`, part.after ? `g-${index}` : []])\n .flat(2) as string[];\n\n if (this._orientation() === 'horizontal') {\n return `\"${areaNames.join(' ')}\"`;\n } else {\n return `\"${areaNames.join('\" \"')}\"`;\n }\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n this.parts.notifyOnChanges();\n }\n\n private alignRelativeSizes(): void {\n const requestedNoSize = this.parts.filter(part => !part.size && !part.fractionalSize());\n const requestedRelSize = this.parts.filter(part => part.fractionalSize() && !part.size);\n\n if (requestedRelSize.length) {\n const totalRequestedRelSize = requestedRelSize.reduce((a, b) => a + b.fractionalSize()!, 0);\n const averageRelSize = totalRequestedRelSize / requestedRelSize.length;\n const totalAssignedRelSize = totalRequestedRelSize + requestedNoSize.length * averageRelSize;\n requestedNoSize.forEach(part =>\n part.fractionalSize.set(averageRelSize / totalAssignedRelSize)\n );\n requestedRelSize.forEach(part =>\n part.fractionalSize.set(part.fractionalSize()! / totalAssignedRelSize)\n );\n } else {\n requestedNoSize.forEach(part => part.fractionalSize.set(1 / requestedNoSize.length));\n }\n }\n\n private updateFractionalSizeToExpandSizeFactor(): void {\n let previousScalableFractionalSum = 0;\n let previousScalableExpandedSizeSum = 0;\n\n for (let index = 0; index < this.parts.length; index++) {\n const component = this.parts.get(index)!;\n if (component.scale === 'auto' && component.expandedSize() !== undefined) {\n previousScalableExpandedSizeSum += component.expandedSize()!;\n previousScalableFractionalSum += component.fractionalSize()!;\n }\n }\n\n this.fractionalSizeToExpandedSizeFactor = previousScalableFractionalSum\n ? previousScalableExpandedSizeSum / previousScalableFractionalSum\n : 10;\n }\n\n private refreshAllPartSizes(): void {\n const refParts = this.parts.filter(\n part =>\n !part.collapsedState() &&\n part.scale === 'auto' &&\n (part.expandedSize() || part.fractionalSize())\n );\n const beforeFrSum = refParts.reduce((a, b) => a + (b.expandedSize() ?? b.fractionalSize()!), 0);\n this.parts.forEach(part => part.refreshSizePx(this.orientation));\n const afterFrSum = refParts.reduce((a, b) => a + b.expandedSize()!, 0);\n const beforeToAfterFactor = afterFrSum / beforeFrSum;\n this.parts\n .filter(\n part =>\n part.collapsedState() && (part.scale === 'auto' || part.expandedSize() === undefined)\n )\n .forEach(part =>\n part.expandedSize.update(prev => (prev ?? part.fractionalSize()!) * beforeToAfterFactor)\n );\n }\n\n protected resizeStart(gutter: Gutter, event: Event): void {\n this.refreshAllPartSizes();\n this.changeDetectorRef.detectChanges();\n const afterPart = gutter.after.nextExpandedAfter();\n let beforeSize = gutter.before.expandedSize()!;\n let afterSize = afterPart.expandedSize()!;\n let appliedDelta = 0;\n const rtl = isRTL();\n const startPosition = this.getPosition(event);\n const minDelta = -1 * (beforeSize - gutter.before.minSize);\n const maxDelta = afterSize - afterPart.minSize;\n const containerSize = this.measureContainerSize();\n event.preventDefault(); // prevents text-selection\n\n this.ngZone.runOutsideAngular(() => {\n merge(fromEvent(this.document, 'mousemove'), fromEvent(this.document, 'touchmove'))\n .pipe(\n takeUntil(\n merge(fromEvent(this.document, 'mouseup'), fromEvent(this.document, 'touchend'))\n )\n )\n .subscribe({\n next: move => {\n let delta = this.getPosition(move) - startPosition;\n if (rtl && this.orientation === 'horizontal') {\n delta *= -1;\n }\n\n delta -= appliedDelta;\n if (maxDelta < appliedDelta + delta) {\n delta = maxDelta - appliedDelta;\n } else if (minDelta > appliedDelta + delta) {\n delta = minDelta - appliedDelta;\n }\n\n if (delta === 0) {\n return;\n }\n\n beforeSize += delta;\n afterSize -= delta;\n appliedDelta += delta;\n gutter.before.expandedSize.set(beforeSize);\n afterPart.expandedSize.set(afterSize);\n if (this.orientation === 'vertical') {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-rows',\n this.gridTemplateRows()\n );\n } else {\n this.elementRef.nativeElement.style.setProperty(\n 'grid-template-columns',\n this.gridTemplateColumns()\n );\n }\n this.ngZone.run(() =>\n this.sizesChange.emit(\n this.parts.map(part => (part.actualSize() * 100) / containerSize)\n )\n );\n },\n complete: () => this.saveUIState()\n });\n });\n }\n\n private measureContainerSize(): number {\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n if (this._orientation() === 'vertical') {\n return rect.height;\n } else {\n return rect.width;\n }\n }\n\n private getPosition(event: Event): number {\n const positionObject = (event as TouchEvent).touches?.[0] ?? (event as MouseEvent);\n return this.orientation === 'horizontal'\n ? (positionObject.clientX ?? 0)\n : (positionObject.clientY ?? 0);\n }\n\n private saveUIState(): void {\n if (!this.stateId || !this.uiStateService) {\n return;\n }\n\n const containerSize = this.measureContainerSize();\n const state = this.parts.reduce(\n (partState, part) => {\n if (part.stateId) {\n partState[part.stateId] = {\n size: ((part.expandedSize() ?? 0) * 100) / containerSize,\n initialSize: this.sizes[part.index],\n expanded: part.expanded\n };\n }\n return partState;\n },\n {} as Record<string, SplitPartState>\n );\n\n this.uiStateService.save(this.stateId, state);\n }\n\n private restoreFormUIState(): void {\n if (!this.stateId || !this.uiStateService) {\n return;\n }\n\n this.uiStateService.load<Record<string, SplitPartState>>(this.stateId).then(uiState => {\n if (!uiState) {\n return;\n }\n\n this.parts\n .filter(part => part.stateId)\n .map(part => ({ part, state: uiState[part.stateId!] }))\n .filter(({ part, state }) => this.sizes[part.index] === state?.initialSize)\n .forEach(({ part, state }) => {\n part.expandedSize.set(undefined);\n part.fractionalSize.set(state?.size);\n part.collapsedState.set(!(state?.expanded ?? true));\n });\n setTimeout(() => this.refreshAllPartSizes());\n });\n }\n}\n","<ng-content />\n\n@for (gutter of gutters; track $index) {\n @if ($index < parts.length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation === 'horizontal' ? gutterSize : null\"\n [style.height.px]=\"orientation === 'vertical' ? gutterSize : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSplitPartComponent } from './si-split-part.component';\nimport { SiSplitComponent } from './si-split.component';\n\n@NgModule({\n imports: [SiSplitComponent, SiSplitPartComponent],\n exports: [SiSplitComponent, SiSplitPartComponent]\n})\nexport class SiSplitModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-split.module';\nexport * from './si-split-part.component';\nexport * from './si-split.component';\nexport * from './si-split.interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;;;AAGG;AACH;MAmCa,oBAAoB,CAAA;;IAEtB,OAAO,GAAa,EAAE;AAC/B;;AAEG;IACM,iBAAiB,GAAe,OAAO;AAEhD;;;;;AAKG;IACM,iBAAiB,GAAG,sBAAsB;AAEnD;;;;AAIG;IACqC,iBAAiB,GAAG,KAAK;AAExD,IAAA,cAAc;AAEvB;;AAEG;AACM,IAAA,OAAO;AAEhB;;;;AAIG;IACoC,OAAO,GAAG,CAAC;AAElD;;;;;;;AAOG;IACqC,uBAAuB,GAAG,KAAK;AAEvE;;;;;AAKG;IACM,KAAK,GAAU,MAAM;AAE9B;;;;AAIG;IACqC,kBAAkB,GAAG,IAAI;AAEjE;;;;AAIG;IACqC,UAAU,GAAG,IAAI;AACzD;;;;AAIG;IACM,aAAa,GAAuB,UAAU;AACvD;;;AAGG;AACM,IAAA,OAAO;AAEhB;;AAEG;AACoC,IAAA,IAAI;AAE3C;;;;;;AAMG;IACqC,cAAc,GAAG,KAAK;AAE3C,IAAA,eAAe,GAAG,IAAI,YAAY,EAAW;AAC7C,IAAA,WAAW,GAAG,IAAI,YAAY,EAAa;;IAG9D,KAAK,GAAG,CAAC;;AAET,IAAA,MAAM;;AAEN,IAAA,KAAK;;AAGI,IAAA,cAAc,GAAG,MAAM,CAAqB,SAAS,0DAAC;;AAGtD,IAAA,aAAa,GAAG,MAAM,CAAC,CAAC,yDAAC;;AAGzB,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;AAEvC;;;AAGG;AACH,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE;IAC9B;;AAGS,IAAA,YAAY,GAAG,MAAM,CAAqB,SAAS,wDAAC;;AAGpD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE;QAC7B;AACA,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;AACjC,IAAA,CAAC,sDAAC;;AAGF,IAAA,WAAW;;AAGF,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;AAC1B,YAAA,OAAO,IAA4B;QACrC;AACA,QAAA,MAAM,YAAY,GAAyB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,IAAI;AAE7F,QAAA,OAAO,YAAY;AACrB,IAAA,CAAC,6DAAC;AAEM,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEtD,IAAA,aAAa,GAAwC;AAC7D,QAAA,SAAS,EAAE;KACZ;;IAGD,IAA4C,QAAQ,CAAC,KAAc,EAAA;QACjE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE;QACrC;IACF;AACA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;IAC/B;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5C;aAAO;YACL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B;AAEA,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC;IACF;;AAGA,IAAA,aAAa,CAAC,WAA6B,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAClE,YAAA,IAAI,WAAW,KAAK,UAAU,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YACpC;iBAAO;gBACL,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC;QACF;IACF;AAEA;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE;QACrC;QACA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,KAAK,EAAE;AAC5E,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE;QACrC;IACF;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,OAAO,EAAE;AAC5E,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO;AAChC,YAAA,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE;QACvC;IACF;uGAvNW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAqBX,gBAAgB,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAchB,eAAe,mFAUf,gBAAgB,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAehB,gBAAgB,CAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAOhB,gBAAgB,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAgBhB,eAAe,CAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EASf,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EA4DhB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,iCAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/LtC,65CA+CA,wxDDnBY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAWjD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;+BACE,eAAe,EAAA,OAAA,EAChB,CAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,IAAA,EAKvD;AACJ,wBAAA,sBAAsB,EAAE,kBAAkB;AAC1C,wBAAA,wBAAwB,EAAE,+BAA+B;AACzD,wBAAA,mBAAmB,EAAE;AACtB,qBAAA,EAAA,QAAA,EAAA,65CAAA,EAAA,MAAA,EAAA,CAAA,guDAAA,CAAA,EAAA;;sBAIA;;sBAIA;;sBAQA;;sBAOA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAErC;;sBAKA;;sBAOA,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;;sBAUpC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAQrC;;sBAOA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAOrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAMrC;;sBAKA;;sBAKA,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;;sBASpC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAErC;;sBACA;;sBAyDA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;;MElI3B,gBAAgB,CAAA;;IAElB,UAAU,GAAG,EAAE;;AAGL,IAAA,YAAY,GAAG,MAAM,CAAmB,YAAY,wDAAC;AAExE,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;IAC5B;IAEA,IAAa,WAAW,CAAC,KAAuB,EAAA;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B;;IAGS,KAAK,GAAa,EAAE;AAE7B;;;AAGG;AACM,IAAA,OAAO;AAEG,IAAA,WAAW,GAAG,IAAI,YAAY,EAAY;AAInD,IAAA,KAAK;IACL,OAAO,GAAa,EAAE;;AAGtB,IAAA,gBAAgB,GAAmB,MAAM,CAAC,EAAE,4DAAC;;AAE7C,IAAA,mBAAmB,GAAmB,MAAM,CAAC,EAAE,+DAAC;;AAEhD,IAAA,iBAAiB,GAAmB,MAAM,CAAC,EAAE,6DAAC;AAEhD,IAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC5C,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3B,cAAc,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;;IAGhE,kCAAkC,GAAG,EAAE;AAE/C,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;gBAClC,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;gBAClC;AACF,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,kBAAkB,EAAE;QAC3B;IACF;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC/D,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE;AACxC,gBAAA,SAAS,CAAC,KAAK,GAAG,KAAK;AACvB,gBAAA,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3C,gBAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5C,gBAAA,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/C,SAAS,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAEhD,gBAAA,IAAI,SAAS,CAAC,KAAK,EAAE;AACnB,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,wBAAA,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAE;AACjC,wBAAA,OAAO,EAAE,QAAQ,CAAC,MAAK;4BACrB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAM,CAAC,iBAAiB,EAAE;4BACtD,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AACnE,wBAAA,CAAC;AACF,qBAAA,CAAC;gBACJ;YACF;YAEA,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,sCAAsC,EAAE;YAC7C,IAAI,CAAC,kBAAkB,EAAE;YAEzB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAC5B,IAAI,CAAC;iBACF,GAAG,CAAC,IAAI,IACP,IAAI,CAAC,cAAc;kBACf,IAAI,CAAC;AACL,sBAAE,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAA;AACjB,sBAAE;AACJ,kBAAE,IAAI,CAAC,UAAU;AACf,sBAAE,IAAI,CAAC,KAAK,KAAK;0BACb,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA,GAAA;0BAC9C,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA,GAAA;AAClD,sBAAE,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAA,IAAA,EACpB,IAAI,CAAC,cAAc,EAAG,GAAG,IAAI,CAAC,kCAChC,KAAK;AAEZ,iBAAA,IAAI,CAAC,eAAe,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACzB;YAED,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAC/B,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,GAAG,YAAY,EAAE,GAAG,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC5D;YACD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,GAAG,YAAY,EAAE,GAAG,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC9D;AACD,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACrC,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC;qBACpB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,EAAE,IAAI,CAAC,KAAK,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,GAAG,EAAE,CAAC;qBACnE,IAAI,CAAC,CAAC,CAAa;AAEtB,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;oBACxC,OAAO,CAAA,CAAA,EAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBACnC;qBAAO;oBACL,OAAO,CAAA,CAAA,EAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBACrC;AACF,YAAA,CAAC,6DAAC;YACF,UAAU,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9C,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;IAC9B;IAEQ,kBAAkB,GAAA;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAEvF,QAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAC3B,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAG,EAAE,CAAC,CAAC;AAC3F,YAAA,MAAM,cAAc,GAAG,qBAAqB,GAAG,gBAAgB,CAAC,MAAM;YACtE,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,eAAe,CAAC,MAAM,GAAG,cAAc;AAC5F,YAAA,eAAe,CAAC,OAAO,CAAC,IAAI,IAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,CAC/D;YACD,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAG,GAAG,oBAAoB,CAAC,CACvE;QACH;aAAO;YACL,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtF;IACF;IAEQ,sCAAsC,GAAA;QAC5C,IAAI,6BAA6B,GAAG,CAAC;QACrC,IAAI,+BAA+B,GAAG,CAAC;AAEvC,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE;AACxC,YAAA,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,IAAI,SAAS,CAAC,YAAY,EAAE,KAAK,SAAS,EAAE;AACxE,gBAAA,+BAA+B,IAAI,SAAS,CAAC,YAAY,EAAG;AAC5D,gBAAA,6BAA6B,IAAI,SAAS,CAAC,cAAc,EAAG;YAC9D;QACF;QAEA,IAAI,CAAC,kCAAkC,GAAG;cACtC,+BAA+B,GAAG;cAClC,EAAE;IACR;IAEQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAChC,IAAI,IACF,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,KAAK,MAAM;aACpB,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CACjD;AACD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,cAAc,EAAG,CAAC,EAAE,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,EAAG,EAAE,CAAC,CAAC;AACtE,QAAA,MAAM,mBAAmB,GAAG,UAAU,GAAG,WAAW;AACpD,QAAA,IAAI,CAAC;aACF,MAAM,CACL,IAAI,IACF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC;aAExF,OAAO,CAAC,IAAI,IACX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAG,IAAI,mBAAmB,CAAC,CACzF;IACL;IAEU,WAAW,CAAC,MAAc,EAAE,KAAY,EAAA;QAChD,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;QAClD,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAG;AAC9C,QAAA,IAAI,SAAS,GAAG,SAAS,CAAC,YAAY,EAAG;QACzC,IAAI,YAAY,GAAG,CAAC;AACpB,QAAA,MAAM,GAAG,GAAG,KAAK,EAAE;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC7C,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,OAAO;AAC9C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACjD,QAAA,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,YAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;iBAC/E,IAAI,CACH,SAAS,CACP,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CACjF;AAEF,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,IAAI,IAAG;oBACX,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa;oBAClD,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;wBAC5C,KAAK,IAAI,CAAC,CAAC;oBACb;oBAEA,KAAK,IAAI,YAAY;AACrB,oBAAA,IAAI,QAAQ,GAAG,YAAY,GAAG,KAAK,EAAE;AACnC,wBAAA,KAAK,GAAG,QAAQ,GAAG,YAAY;oBACjC;AAAO,yBAAA,IAAI,QAAQ,GAAG,YAAY,GAAG,KAAK,EAAE;AAC1C,wBAAA,KAAK,GAAG,QAAQ,GAAG,YAAY;oBACjC;AAEA,oBAAA,IAAI,KAAK,KAAK,CAAC,EAAE;wBACf;oBACF;oBAEA,UAAU,IAAI,KAAK;oBACnB,SAAS,IAAI,KAAK;oBAClB,YAAY,IAAI,KAAK;oBACrB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AAC1C,oBAAA,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrC,oBAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACnC,wBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAC7C,oBAAoB,EACpB,IAAI,CAAC,gBAAgB,EAAE,CACxB;oBACH;yBAAO;AACL,wBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAC7C,uBAAuB,EACvB,IAAI,CAAC,mBAAmB,EAAE,CAC3B;oBACH;AACA,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MACd,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,aAAa,CAAC,CAClE,CACF;gBACH,CAAC;AACD,gBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,WAAW;AACjC,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACJ;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAClE,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,EAAE;YACtC,OAAO,IAAI,CAAC,MAAM;QACpB;aAAO;YACL,OAAO,IAAI,CAAC,KAAK;QACnB;IACF;AAEQ,IAAA,WAAW,CAAC,KAAY,EAAA;QAC9B,MAAM,cAAc,GAAI,KAAoB,CAAC,OAAO,GAAG,CAAC,CAAC,IAAK,KAAoB;AAClF,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK;AAC1B,eAAG,cAAc,CAAC,OAAO,IAAI,CAAC;eAC3B,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC;IACnC;IAEQ,WAAW,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzC;QACF;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACjD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAC7B,CAAC,SAAS,EAAE,IAAI,KAAI;AAClB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;AACxB,oBAAA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,aAAa;oBACxD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,QAAQ,EAAE,IAAI,CAAC;iBAChB;YACH;AACA,YAAA,OAAO,SAAS;QAClB,CAAC,EACD,EAAoC,CACrC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;IAC/C;IAEQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzC;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAiC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAG;YACpF,IAAI,CAAC,OAAO,EAAE;gBACZ;YACF;AAEA,YAAA,IAAI,CAAC;iBACF,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;AAC3B,iBAAA,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAQ,CAAC,EAAE,CAAC;iBACrD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,WAAW;iBACzE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;AACrD,YAAA,CAAC,CAAC;YACJ,UAAU,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9C,QAAA,CAAC,CAAC;IACJ;uGAxTW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EA2BV,oBAAoB,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxFvC,0fAeA,EAAA,MAAA,EAAA,CAAA,ooBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;AD0EY,UAAA,CAAA;IAFT,2BAA2B,CAAC,oBAAoB;AAEC,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;2FA5BvC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,IAAA,EAEzC;AACJ,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,4BAA4B,EAAE,oBAAoB;AAClD,wBAAA,+BAA+B,EAAE,uBAAuB;AACxD,wBAAA,6BAA6B,EAAE;AAChC,qBAAA,EAAA,QAAA,EAAA,0fAAA,EAAA,MAAA,EAAA,CAAA,ooBAAA,CAAA,EAAA;;sBAIA;;sBASA;;sBAKA;;sBAMA;;sBAEA;;sBAGA,eAAe;uBAAC,oBAAoB;;;AExFvC;;;AAGG;MAUU,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,gBAAgB,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACtC,gBAAgB,EAAE,oBAAoB,CAAA,EAAA,CAAA;AAErC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHI,oBAAoB,CAAA,EAAA,CAAA;;2FAGrC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,oBAAoB;AACjD,iBAAA;;;ACZD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -10,7 +10,7 @@ import { SiTranslatePipe, t, injectSiTranslateService } from '@siemens/element-t
|
|
|
10
10
|
import { first } from 'rxjs/operators';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Copyright (c) Siemens 2016 -
|
|
13
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
14
14
|
* SPDX-License-Identifier: MIT
|
|
15
15
|
*/
|
|
16
16
|
class SiStatusBarItemComponent {
|
|
@@ -52,7 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
52
52
|
}], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], blink: [{ type: i0.Input, args: [{ isSignal: true, alias: "blink", required: false }] }], valueOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueOnly", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], bg: [{ type: i0.ViewChild, args: ['bg', { isSignal: true }] }] } });
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
* Copyright (c) Siemens 2016 -
|
|
55
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
56
56
|
* SPDX-License-Identifier: MIT
|
|
57
57
|
*/
|
|
58
58
|
// this is a function because Angular compiler exports arrows for no good reason
|
|
@@ -311,7 +311,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
311
311
|
}], ctorParameters: () => [], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], blink: [{ type: i0.Input, args: [{ isSignal: true, alias: "blink", required: false }] }], muteButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "muteButton", required: false }] }], muteButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "muteButtonText", required: false }] }], allOkText: [{ type: i0.Input, args: [{ isSignal: true, alias: "allOkText", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], blinkPulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "blinkPulse", required: false }] }], expandButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandButtonText", required: false }] }], collapseButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseButtonText", required: false }] }], muteToggle: [{ type: i0.Output, args: ["muteToggle"] }], theBar: [{ type: i0.ViewChild, args: ['thebar', { isSignal: true }] }], content: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], custom: [{ type: i0.ViewChild, args: ['custom', { isSignal: true }] }] } });
|
|
312
312
|
|
|
313
313
|
/**
|
|
314
|
-
* Copyright (c) Siemens 2016 -
|
|
314
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
315
315
|
* SPDX-License-Identifier: MIT
|
|
316
316
|
*/
|
|
317
317
|
class SiStatusBarModule {
|
|
@@ -328,12 +328,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
328
328
|
}] });
|
|
329
329
|
|
|
330
330
|
/**
|
|
331
|
-
* Copyright (c) Siemens 2016 -
|
|
331
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
332
332
|
* SPDX-License-Identifier: MIT
|
|
333
333
|
*/
|
|
334
334
|
|
|
335
335
|
/**
|
|
336
|
-
* Copyright (c) Siemens 2016 -
|
|
336
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
337
337
|
* SPDX-License-Identifier: MIT
|
|
338
338
|
*/
|
|
339
339
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-status-bar.mjs","sources":["../../../../projects/element-ng/status-bar/si-status-bar-item/si-status-bar-item.component.ts","../../../../projects/element-ng/status-bar/si-status-bar-item/si-status-bar-item.component.html","../../../../projects/element-ng/status-bar/si-status-bar.component.ts","../../../../projects/element-ng/status-bar/si-status-bar.component.html","../../../../projects/element-ng/status-bar/si-status-bar.module.ts","../../../../projects/element-ng/status-bar/si-status-bar-item/index.ts","../../../../projects/element-ng/status-bar/index.ts","../../../../projects/element-ng/status-bar/siemens-element-ng-status-bar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n viewChild\n} from '@angular/core';\nimport { ExtendedStatusType } from '@siemens/element-ng/common';\nimport { SiIconComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-status-bar-item',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-status-bar-item.component.html',\n styleUrl: './si-status-bar-item.component.scss',\n host: {\n '[class.clickable]': 'clickable()'\n }\n})\nexport class SiStatusBarItemComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n readonly status = input<ExtendedStatusType>();\n readonly value = input.required<TranslatableString | number>();\n readonly heading = input.required<TranslatableString>();\n readonly color = input<string>();\n /** @defaultValue false */\n readonly blink = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly valueOnly = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly clickable = input(false, { transform: booleanAttribute });\n\n private readonly bg = viewChild.required<ElementRef>('bg');\n\n protected readonly contrastFix = computed(() => {\n return !!this.color() && this.blink() && this.calculateContrastFix();\n });\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n protected readonly background = computed(() =>\n this.blink() && this.status() !== 'success' ? (this.statusIcon()?.background ?? '') : ''\n );\n\n private calculateContrastFix(): boolean {\n // see https://www.w3.org/TR/AERT/#color-contrast\n const rgb = getComputedStyle(this.bg().nativeElement)\n .backgroundColor?.match(/\\d+/g)\n ?.map(v => +v);\n return !!rgb && Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000) <= 128;\n }\n}\n","<div\n class=\"status-item rounded-2 focus-inside d-flex align-items-center\"\n [class.text-muted]=\"!value()\"\n [class.blink]=\"blink() && value()\"\n [attr.tabindex]=\"clickable() ? '0' : ''\"\n [attr.aria-disabled]=\"!value()\"\n>\n <div\n #bg\n role=\"none\"\n class=\"bg focus-sub-inside\"\n [class]=\"background()\"\n [class.custom-color]=\"color()\"\n [class.contrast-fix]=\"contrastFix()\"\n [class.d-none]=\"!value()\"\n [style.background-color]=\"blink() && color() ? color() : null\"\n ></div>\n @let icon = statusIcon();\n @if (!icon) {\n <div\n class=\"color-bar me-3 mt-1 mb-1\"\n [style.background-color]=\"value() && color() ? color() : null\"\n ></div>\n } @else {\n <span class=\"indicator icon me-4 icon-stack\">\n <si-icon [class]=\"value() ? icon.color : 'indicator-disabled'\" [icon]=\"icon.icon\" />\n <si-icon [class]=\"value() ? icon.stackedColor : 'text-inverse'\" [icon]=\"icon.stacked\" />\n </span>\n }\n <div class=\"overflow-hidden\">\n @if (value() !== undefined) {\n <div class=\"item-value si-h5 text-truncate\">{{ value().toString() | translate }}</div>\n }\n @if (!valueOnly()) {\n <div class=\"item-title text-truncate\">{{ heading() | translate }}</div>\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { elementDown2, elementSoundMute, elementSoundOn } from '@siemens/element-icons';\nimport { BlinkService, STATUS_ICON, TextMeasureService } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport {\n ResizeObserverService,\n SiResizeObserverDirective\n} from '@siemens/element-ng/resize-observer';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} from '@siemens/element-translate-ng/translate';\nimport { Observable, Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { SiStatusBarItemComponent } from './si-status-bar-item/si-status-bar-item.component';\nimport { StatusBarItem } from './si-status-bar-item/si-status-bar-item.model';\n\ninterface ExtendedStatusBarItem extends StatusBarItem {\n isSpecial?: boolean;\n mutePadding?: boolean;\n}\n\n// this is a function because Angular compiler exports arrows for no good reason\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nfunction itemSortFunction(a: StatusBarItem, b: StatusBarItem): number {\n return a.status && b.status ? STATUS_ICON[a.status].severity - STATUS_ICON[b.status].severity : 0;\n}\n\nlet idCounter = 1;\n\n/**\n * The status bar is the main component within an application to inform users at all times\n * about important status information.\n */\n@Component({\n selector: 'si-status-bar',\n imports: [\n NgTemplateOutlet,\n SiIconComponent,\n SiStatusBarItemComponent,\n SiResizeObserverDirective,\n SiTranslatePipe\n ],\n templateUrl: './si-status-bar.component.html',\n styleUrl: './si-status-bar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiStatusBarComponent implements DoCheck, OnDestroy, OnChanges {\n private static readonly itemMinWidth = 100;\n private static readonly itemMaxWidth = 152;\n private static readonly itemSpacing = 4;\n private static readonly itemPaddingX = 44; // padding + icon size + icon margin\n private static readonly itemPaddingXdeprecated = 20; // padding + color bar\n private static readonly muteButtonWidth = 48;\n\n /**\n * Array of status bar items.\n */\n readonly items = input.required<StatusBarItem[]>();\n /**\n * When true, items with a value have a blinking background\n *\n * @defaultValue false\n */\n readonly blink = input(false, { transform: booleanAttribute });\n /**\n * State of the mute button. Set to `undefined` for no button.\n */\n readonly muteButton = input<boolean>();\n /**\n * Text/translation key on mute button for screen reader\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.MUTE:Mute/unmute`)\n * ```\n */\n readonly muteButtonText = input(t(() => $localize`:@@SI_STATUS_BAR.MUTE:Mute/unmute`));\n /**\n * Text/translation key for \"All OK\" status in mobile\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.ALL_OK:All OK`)\n * ```\n */\n readonly allOkText = input(t(() => $localize`:@@SI_STATUS_BAR.ALL_OK:All OK`));\n /**\n * compact mode\n *\n * @defaultValue false\n */\n readonly compact = input(false, { transform: booleanAttribute });\n /**\n * blink pulse generator for synchronized blinking with other components\n */\n readonly blinkPulse = input<Observable<boolean>>();\n /**\n * Text for the navbar expand button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.EXPAND:Expand`)\n * ```\n */\n readonly expandButtonText = input(t(() => $localize`:@@SI_STATUS_BAR.EXPAND:Expand`));\n /**\n * Text for the navbar collapse button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.COLLAPSE:Collapse`)\n * ```\n */\n readonly collapseButtonText = input(t(() => $localize`:@@SI_STATUS_BAR.COLLAPSE:Collapse`));\n\n /**\n * Emitted when the mute toggle button is clicked\n */\n readonly muteToggle = output();\n\n private readonly theBar = viewChild.required<ElementRef>('thebar');\n private readonly content = viewChild.required<ElementRef>('content');\n private readonly custom = viewChild.required<ElementRef>('custom');\n\n protected readonly responsiveItems = signal<ExtendedStatusBarItem[]>([]);\n protected responsiveMode = 0;\n protected readonly expanded = signal(0);\n protected readonly placeholderHeight = signal(0);\n protected readonly contentHeight = signal<number | undefined>(undefined);\n protected readonly blinkOnOff = signal<boolean | undefined>(undefined);\n protected readonly icons = addIcons({ elementDown2, elementSoundMute, elementSoundOn });\n protected statusId = `__si-status-bar-${idCounter++}`;\n\n private timer: any;\n\n private blinkSubs?: Subscription;\n\n private readonly element = inject(ElementRef);\n private readonly blinkService = inject(BlinkService);\n private readonly translateService = injectSiTranslateService();\n private readonly resizeObserver = inject(ResizeObserverService);\n private readonly measureService = inject(TextMeasureService);\n\n constructor() {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.resizeHandler());\n this.translateService.translationChange\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.resizeHandler());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.blinkService && changes.blink) {\n this.blinkSubs?.unsubscribe();\n if (this.blink()) {\n const pulse = this.blinkPulse() ?? this.blinkService.pulse$;\n this.blinkSubs = pulse.subscribe(onOff => {\n this.blinkOnOff.set(onOff);\n });\n }\n }\n this.resizeHandler();\n }\n\n ngDoCheck(): void {\n if (this.responsiveMode) {\n this.calcResponsiveItems();\n }\n }\n\n ngOnDestroy(): void {\n this.blinkSubs?.unsubscribe();\n }\n\n protected onItemClicked(item: StatusBarItem): void {\n if (item.action) {\n item.action(item);\n }\n }\n\n protected toggleExpand(): void {\n clearTimeout(this.timer);\n if (!this.expanded()) {\n this.expanded.set(2);\n this.placeholderHeight.set(this.theBar().nativeElement.offsetHeight);\n this.contentHeight.set(0);\n\n this.timer = window.setTimeout(() => {\n this.contentHeight.set(this.content().nativeElement.scrollHeight);\n window.setTimeout(() => {\n this.contentHeight.set(undefined);\n }, 500);\n }, 10);\n } else {\n this.contentHeight.set(this.content().nativeElement.scrollHeight);\n this.expanded.set(1);\n\n window.setTimeout(() => {\n this.contentHeight.set(0);\n window.setTimeout(() => {\n this.placeholderHeight.set(0);\n this.expanded.set(0);\n }, 500);\n }, 10);\n }\n }\n\n protected resizeHandler(): void {\n const size = this.element.nativeElement.clientWidth;\n const muteWidth = this.muteButton() !== undefined ? SiStatusBarComponent.muteButtonWidth : 0;\n const customWidth = this.custom().nativeElement.scrollWidth ?? 0;\n const minWidth =\n this.items().length * (SiStatusBarComponent.itemMinWidth + SiStatusBarComponent.itemSpacing) +\n SiStatusBarComponent.itemSpacing +\n muteWidth +\n customWidth;\n if (size < minWidth) {\n this.setResponsiveMode(true);\n } else if (this.items().length) {\n this.calculateRequiredWidth(muteWidth, customWidth);\n }\n }\n\n private setResponsiveMode(responsive: boolean): void {\n if (responsive) {\n const size = this.element.nativeElement.clientWidth;\n this.responsiveMode = Math.max(Math.floor(size / SiStatusBarComponent.itemMaxWidth) - 1, 2);\n } else {\n this.responsiveMode = 0;\n }\n\n if (this.responsiveMode) {\n this.contentHeight.set(this.expanded() ? this.content().nativeElement.scrollHeight : 0);\n } else {\n this.expanded.set(0);\n this.placeholderHeight.set(0);\n this.contentHeight.set(undefined);\n }\n }\n\n private calcResponsiveItems(): void {\n const activeItems: ExtendedStatusBarItem[] = this.items()\n .filter(item => item.value)\n .sort(itemSortFunction);\n\n if (activeItems.length > this.responsiveMode) {\n activeItems[this.responsiveMode - 1] = {\n status: activeItems[this.responsiveMode - 1].status,\n color: activeItems[this.responsiveMode - 1].color,\n value: activeItems.length - this.responsiveMode + 1 + '+',\n title: '',\n action: () => this.toggleExpand(),\n isSpecial: true\n };\n activeItems.length = this.responsiveMode;\n } else if (!activeItems.length) {\n activeItems.push({\n status: 'success',\n title: '',\n value: this.allOkText(),\n isSpecial: true\n });\n }\n if (activeItems.length === this.responsiveMode) {\n activeItems[activeItems.length - 1].mutePadding = true;\n }\n this.responsiveItems.set(activeItems);\n }\n\n private calculateRequiredWidth(muteWidth: number, customWidth: number): void {\n const keys: string[] = [];\n for (const item of this.items()) {\n keys.push(item.title, item.value.toString());\n }\n this.translateService\n .translateAsync(keys)\n .pipe(first())\n .subscribe(translations => {\n const size = this.element.nativeElement.clientWidth;\n\n const requiredWidth = this.items().reduce(\n (acc, item) => {\n const titleWidth = this.measureService.measureText(translations[item.title]);\n const valueWidth = this.measureService.measureText(\n translations[item.value],\n undefined,\n { fontWeight: 'bold' }\n );\n const textWidth = Math.max(titleWidth, valueWidth);\n const itemWidth =\n Math.max(\n SiStatusBarComponent.itemMinWidth,\n textWidth +\n (item.color\n ? SiStatusBarComponent.itemPaddingXdeprecated\n : SiStatusBarComponent.itemPaddingX)\n ) + SiStatusBarComponent.itemSpacing;\n return acc + itemWidth;\n },\n muteWidth + customWidth + SiStatusBarComponent.itemSpacing\n );\n\n this.setResponsiveMode(size < requiredWidth);\n });\n }\n}\n","<div\n class=\"expand-placeholder\"\n [class.expanded]=\"expanded()\"\n [style.height.px]=\"placeholderHeight()\"\n></div>\n<div\n #thebar\n aria-busy=\"true\"\n [class]=\"responsiveMode ? `responsive-${responsiveMode}` : ''\"\n [class.responsive]=\"responsiveMode\"\n [class.expanded]=\"expanded()\"\n [class.compact]=\"responsiveMode || compact()\"\n [class.pulse-off]=\"blinkOnOff() === false\"\n [class.pulse-on]=\"blinkOnOff()\"\n>\n <div\n class=\"status-bar-wrapper rounded-2\"\n [class.elevation-2]=\"expanded()\"\n [class.pe-2]=\"muteButton() !== undefined\"\n >\n @if (responsiveMode) {\n <div class=\"align-items-center overflow-hidden\">\n <div class=\"d-flex flex-fill position-relative\">\n @for (item of responsiveItems(); track $index) {\n <si-status-bar-item\n class=\"bar-item compact\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink() && !expanded()\"\n [clickable]=\"!!item.action\"\n [class.mute-padding]=\"item.mutePadding && muteButton() !== undefined\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n [valueOnly]=\"item.isSpecial\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n @if (muteButton() !== undefined) {\n <div class=\"mobile-mute\">\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n </div>\n }\n </div>\n }\n <div\n #content\n class=\"main-content align-items-center overflow-hidden\"\n [style.max-height.px]=\"contentHeight()\"\n >\n @if (responsiveMode) {\n <div class=\"mobile-spacer\"></div>\n }\n <div\n class=\"d-flex flex-fill position-relative\"\n [id]=\"statusId\"\n [class.d-none]=\"responsiveMode && !expanded()\"\n [class.flex-wrap]=\"responsiveMode\"\n >\n @for (item of items(); track $index) {\n <si-status-bar-item\n class=\"bar-item\"\n [class.compact]=\"responsiveMode || compact()\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink()\"\n [clickable]=\"!!item.action\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n <div class=\"custom-content bar-item d-flex\">\n <div #custom [class.pb-2]=\"responsiveMode && expanded\" (siResizeObserver)=\"resizeHandler()\">\n <ng-content />\n </div>\n </div>\n @if (muteButton() !== undefined && !responsiveMode) {\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n }\n </div>\n </div>\n @if (responsiveMode) {\n <div class=\"d-flex align-items-center justify-content-center\">\n <a\n class=\"collapse-expand text-center p-0 focus-force\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(expanded() ? collapseButtonText() : expandButtonText()) | translate\"\n [attr.aria-expanded]=\"!!expanded()\"\n [attr.aria-controls]=\"statusId\"\n [class.expanded]=\"expanded() === 2\"\n (keydown.enter)=\"toggleExpand()\"\n (click)=\"toggleExpand()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementDown2\" />\n </a>\n </div>\n }\n</div>\n\n<ng-template #muteButtonTemplate>\n <button\n type=\"button\"\n class=\"bar-item mute-button btn btn-circle btn-tertiary ms-5\"\n [attr.aria-label]=\"muteButtonText() | translate\"\n (click)=\"muteToggle.emit()\"\n >\n <si-icon class=\"icon\" [icon]=\"muteButton() ? icons.elementSoundOn : icons.elementSoundMute\" />\n </button>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiStatusBarComponent } from './si-status-bar.component';\n\n@NgModule({\n imports: [SiStatusBarComponent],\n exports: [SiStatusBarComponent]\n})\nexport class SiStatusBarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-status-bar-item.component';\nexport * from './si-status-bar-item.model';\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-status-bar.component';\nexport * from './si-status-bar.module';\nexport * from './si-status-bar-item/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;AAGG;MAuBU,wBAAwB,CAAA;AAClB,IAAA,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAChD,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AACpC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAA+B;AACrD,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,kDAAsB;IAC9C,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;;IAEvB,KAAK,GAAG,KAAK,CAAC,KAAK,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAErD,SAAS,GAAG,KAAK,CAA+B,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAEvF,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjD,IAAA,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAa,IAAI,CAAC;AAEvC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACtE,IAAA,CAAC,uDAAC;AACiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS;AACtD,IAAA,CAAC,sDAAC;AACiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,sDACzF;IAEO,oBAAoB,GAAA;;QAE1B,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa;AACjD,aAAA,eAAe,EAAE,KAAK,CAAC,MAAM;cAC5B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,QAAA,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG;IACxF;uGAhCW,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,oBAAA,EAAA,MAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,IAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BrC,4xCAsCA,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnBY,eAAe,iEAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAO/B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,eAAe,EAAE,eAAe,CAAC,EAAA,IAAA,EAGrC;AACJ,wBAAA,mBAAmB,EAAE;AACtB,qBAAA,EAAA,QAAA,EAAA,4xCAAA,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA;0sBAeoD,IAAI,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEvC3D;;;AAGG;AA0CH;AACA;AACA,SAAS,gBAAgB,CAAC,CAAgB,EAAE,CAAgB,EAAA;AAC1D,IAAA,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC;AACnG;AAEA,IAAI,SAAS,GAAG,CAAC;AAEjB;;;AAGG;MAcU,oBAAoB,CAAA;AACvB,IAAA,OAAgB,YAAY,GAAG,GAAG;AAClC,IAAA,OAAgB,YAAY,GAAG,GAAG;AAClC,IAAA,OAAgB,WAAW,GAAG,CAAC;AAC/B,IAAA,OAAgB,YAAY,GAAG,EAAE,CAAC;AAClC,IAAA,OAAgB,sBAAsB,GAAG,EAAE,CAAC;AAC5C,IAAA,OAAgB,eAAe,GAAG,EAAE;AAE5C;;AAEG;AACM,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAmB;AAClD;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAC,KAAK,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC9D;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;AACtC;;;;;;;AAOG;AACM,IAAA,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,iCAAA,CAAmC,CAAC,0DAAC;AACtF;;;;;;;AAOG;AACM,IAAA,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,8BAAA,CAAgC,CAAC,qDAAC;AAC9E;;;;AAIG;IACM,OAAO,GAAG,KAAK,CAAC,KAAK,oDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAChE;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;AAClD;;;;;;;AAOG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,8BAAA,CAAgC,CAAC,4DAAC;AACrF;;;;;;;AAOG;AACM,IAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,kCAAA,CAAoC,CAAC,8DAAC;AAE3F;;AAEG;IACM,UAAU,GAAG,MAAM,EAAE;AAEb,IAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC;AACjD,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAa,SAAS,CAAC;AACnD,IAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC;AAE/C,IAAA,eAAe,GAAG,MAAM,CAA0B,EAAE,2DAAC;IAC9D,cAAc,GAAG,CAAC;AACT,IAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,oDAAC;AACpB,IAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,6DAAC;AAC7B,IAAA,aAAa,GAAG,MAAM,CAAqB,SAAS,yDAAC;AACrD,IAAA,UAAU,GAAG,MAAM,CAAsB,SAAS,sDAAC;IACnD,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC7E,IAAA,QAAQ,GAAG,CAAA,gBAAA,EAAmB,SAAS,EAAE,EAAE;AAE7C,IAAA,KAAK;AAEL,IAAA,SAAS;AAEA,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACnC,gBAAgB,GAAG,wBAAwB,EAAE;AAC7C,IAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,IAAA,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE5D,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC;aACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI;aAC7C,IAAI,CAAC,kBAAkB,EAAE;aACzB,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC;aACnB,IAAI,CAAC,kBAAkB,EAAE;aACzB,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC1C;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM;gBAC3D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,IAAG;AACvC,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,gBAAA,CAAC,CAAC;YACJ;QACF;QACA,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,mBAAmB,EAAE;QAC5B;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;IAC/B;AAEU,IAAA,aAAa,CAAC,IAAmB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AAClC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;AACjE,gBAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,CAAC,EAAE,GAAG,CAAC;YACT,CAAC,EAAE,EAAE,CAAC;QACR;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;AACjE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpB,YAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,gBAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,CAAC,EAAE,GAAG,CAAC;YACT,CAAC,EAAE,EAAE,CAAC;QACR;IACF;IAEU,aAAa,GAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AACnD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,GAAG,oBAAoB,CAAC,eAAe,GAAG,CAAC;AAC5F,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC;AAChE,QAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,oBAAoB,CAAC,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC;AAC5F,YAAA,oBAAoB,CAAC,WAAW;YAChC,SAAS;AACT,YAAA,WAAW;AACb,QAAA,IAAI,IAAI,GAAG,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;AAAO,aAAA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC;QACrD;IACF;AAEQ,IAAA,iBAAiB,CAAC,UAAmB,EAAA;QAC3C,IAAI,UAAU,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;YACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACzB;AAEA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC;QACzF;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QACnC;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,WAAW,GAA4B,IAAI,CAAC,KAAK;aACpD,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;aACzB,IAAI,CAAC,gBAAgB,CAAC;QAEzB,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG;gBACrC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,MAAM;gBACnD,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK;gBACjD,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,GAAG;AACzD,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,gBAAA,SAAS,EAAE;aACZ;AACD,YAAA,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc;QAC1C;AAAO,aAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9B,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;AACvB,gBAAA,SAAS,EAAE;AACZ,aAAA,CAAC;QACJ;QACA,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;YAC9C,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI;QACxD;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;IACvC;IAEQ,sBAAsB,CAAC,SAAiB,EAAE,WAAmB,EAAA;QACnE,MAAM,IAAI,GAAa,EAAE;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9C;AACA,QAAA,IAAI,CAAC;aACF,cAAc,CAAC,IAAI;aACnB,IAAI,CAAC,KAAK,EAAE;aACZ,SAAS,CAAC,YAAY,IAAG;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AAEnD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,IAAI,KAAI;AACZ,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAChD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,SAAS,EACT,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;gBAClD,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,CACN,oBAAoB,CAAC,YAAY,EACjC,SAAS;qBACN,IAAI,CAAC;0BACF,oBAAoB,CAAC;0BACrB,oBAAoB,CAAC,YAAY,CAAC,CACzC,GAAG,oBAAoB,CAAC,WAAW;gBACtC,OAAO,GAAG,GAAG,SAAS;YACxB,CAAC,EACD,SAAS,GAAG,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAC3D;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,aAAa,CAAC;AAC9C,QAAA,CAAC,CAAC;IACN;uGApQW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEjC,4lIAoHA,EAAA,MAAA,EAAA,CAAA,ihDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDxDI,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,wBAAwB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACzB,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMN,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAChB;wBACP,gBAAgB;wBAChB,eAAe;wBACf,wBAAwB;wBACxB,yBAAyB;wBACzB;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4lIAAA,EAAA,MAAA,EAAA,CAAA,ihDAAA,CAAA,EAAA;kiCA4EU,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACP,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACV,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AElJnE;;;AAGG;MASU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAjB,iBAAiB,EAAA,OAAA,EAAA,CAHlB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACpB,oBAAoB,CAAA,EAAA,CAAA;AAEnB,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,oBAAoB,CAAA,EAAA,CAAA;;2FAGnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,oBAAoB;AAC/B,iBAAA;;;ACXD;;;AAGG;;ACHH;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-status-bar.mjs","sources":["../../../../projects/element-ng/status-bar/si-status-bar-item/si-status-bar-item.component.ts","../../../../projects/element-ng/status-bar/si-status-bar-item/si-status-bar-item.component.html","../../../../projects/element-ng/status-bar/si-status-bar.component.ts","../../../../projects/element-ng/status-bar/si-status-bar.component.html","../../../../projects/element-ng/status-bar/si-status-bar.module.ts","../../../../projects/element-ng/status-bar/si-status-bar-item/index.ts","../../../../projects/element-ng/status-bar/index.ts","../../../../projects/element-ng/status-bar/siemens-element-ng-status-bar.ts"],"sourcesContent":["/**\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 viewChild\n} from '@angular/core';\nimport { ExtendedStatusType } from '@siemens/element-ng/common';\nimport { SiIconComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-status-bar-item',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-status-bar-item.component.html',\n styleUrl: './si-status-bar-item.component.scss',\n host: {\n '[class.clickable]': 'clickable()'\n }\n})\nexport class SiStatusBarItemComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n readonly status = input<ExtendedStatusType>();\n readonly value = input.required<TranslatableString | number>();\n readonly heading = input.required<TranslatableString>();\n readonly color = input<string>();\n /** @defaultValue false */\n readonly blink = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly valueOnly = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly clickable = input(false, { transform: booleanAttribute });\n\n private readonly bg = viewChild.required<ElementRef>('bg');\n\n protected readonly contrastFix = computed(() => {\n return !!this.color() && this.blink() && this.calculateContrastFix();\n });\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n protected readonly background = computed(() =>\n this.blink() && this.status() !== 'success' ? (this.statusIcon()?.background ?? '') : ''\n );\n\n private calculateContrastFix(): boolean {\n // see https://www.w3.org/TR/AERT/#color-contrast\n const rgb = getComputedStyle(this.bg().nativeElement)\n .backgroundColor?.match(/\\d+/g)\n ?.map(v => +v);\n return !!rgb && Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000) <= 128;\n }\n}\n","<div\n class=\"status-item rounded-2 focus-inside d-flex align-items-center\"\n [class.text-muted]=\"!value()\"\n [class.blink]=\"blink() && value()\"\n [attr.tabindex]=\"clickable() ? '0' : ''\"\n [attr.aria-disabled]=\"!value()\"\n>\n <div\n #bg\n role=\"none\"\n class=\"bg focus-sub-inside\"\n [class]=\"background()\"\n [class.custom-color]=\"color()\"\n [class.contrast-fix]=\"contrastFix()\"\n [class.d-none]=\"!value()\"\n [style.background-color]=\"blink() && color() ? color() : null\"\n ></div>\n @let icon = statusIcon();\n @if (!icon) {\n <div\n class=\"color-bar me-3 mt-1 mb-1\"\n [style.background-color]=\"value() && color() ? color() : null\"\n ></div>\n } @else {\n <span class=\"indicator icon me-4 icon-stack\">\n <si-icon [class]=\"value() ? icon.color : 'indicator-disabled'\" [icon]=\"icon.icon\" />\n <si-icon [class]=\"value() ? icon.stackedColor : 'text-inverse'\" [icon]=\"icon.stacked\" />\n </span>\n }\n <div class=\"overflow-hidden\">\n @if (value() !== undefined) {\n <div class=\"item-value si-h5 text-truncate\">{{ value().toString() | translate }}</div>\n }\n @if (!valueOnly()) {\n <div class=\"item-title text-truncate\">{{ heading() | translate }}</div>\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { elementDown2, elementSoundMute, elementSoundOn } from '@siemens/element-icons';\nimport { BlinkService, STATUS_ICON, TextMeasureService } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport {\n ResizeObserverService,\n SiResizeObserverDirective\n} from '@siemens/element-ng/resize-observer';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} from '@siemens/element-translate-ng/translate';\nimport { Observable, Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { SiStatusBarItemComponent } from './si-status-bar-item/si-status-bar-item.component';\nimport { StatusBarItem } from './si-status-bar-item/si-status-bar-item.model';\n\ninterface ExtendedStatusBarItem extends StatusBarItem {\n isSpecial?: boolean;\n mutePadding?: boolean;\n}\n\n// this is a function because Angular compiler exports arrows for no good reason\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\nfunction itemSortFunction(a: StatusBarItem, b: StatusBarItem): number {\n return a.status && b.status ? STATUS_ICON[a.status].severity - STATUS_ICON[b.status].severity : 0;\n}\n\nlet idCounter = 1;\n\n/**\n * The status bar is the main component within an application to inform users at all times\n * about important status information.\n */\n@Component({\n selector: 'si-status-bar',\n imports: [\n NgTemplateOutlet,\n SiIconComponent,\n SiStatusBarItemComponent,\n SiResizeObserverDirective,\n SiTranslatePipe\n ],\n templateUrl: './si-status-bar.component.html',\n styleUrl: './si-status-bar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiStatusBarComponent implements DoCheck, OnDestroy, OnChanges {\n private static readonly itemMinWidth = 100;\n private static readonly itemMaxWidth = 152;\n private static readonly itemSpacing = 4;\n private static readonly itemPaddingX = 44; // padding + icon size + icon margin\n private static readonly itemPaddingXdeprecated = 20; // padding + color bar\n private static readonly muteButtonWidth = 48;\n\n /**\n * Array of status bar items.\n */\n readonly items = input.required<StatusBarItem[]>();\n /**\n * When true, items with a value have a blinking background\n *\n * @defaultValue false\n */\n readonly blink = input(false, { transform: booleanAttribute });\n /**\n * State of the mute button. Set to `undefined` for no button.\n */\n readonly muteButton = input<boolean>();\n /**\n * Text/translation key on mute button for screen reader\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.MUTE:Mute/unmute`)\n * ```\n */\n readonly muteButtonText = input(t(() => $localize`:@@SI_STATUS_BAR.MUTE:Mute/unmute`));\n /**\n * Text/translation key for \"All OK\" status in mobile\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.ALL_OK:All OK`)\n * ```\n */\n readonly allOkText = input(t(() => $localize`:@@SI_STATUS_BAR.ALL_OK:All OK`));\n /**\n * compact mode\n *\n * @defaultValue false\n */\n readonly compact = input(false, { transform: booleanAttribute });\n /**\n * blink pulse generator for synchronized blinking with other components\n */\n readonly blinkPulse = input<Observable<boolean>>();\n /**\n * Text for the navbar expand button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.EXPAND:Expand`)\n * ```\n */\n readonly expandButtonText = input(t(() => $localize`:@@SI_STATUS_BAR.EXPAND:Expand`));\n /**\n * Text for the navbar collapse button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_STATUS_BAR.COLLAPSE:Collapse`)\n * ```\n */\n readonly collapseButtonText = input(t(() => $localize`:@@SI_STATUS_BAR.COLLAPSE:Collapse`));\n\n /**\n * Emitted when the mute toggle button is clicked\n */\n readonly muteToggle = output();\n\n private readonly theBar = viewChild.required<ElementRef>('thebar');\n private readonly content = viewChild.required<ElementRef>('content');\n private readonly custom = viewChild.required<ElementRef>('custom');\n\n protected readonly responsiveItems = signal<ExtendedStatusBarItem[]>([]);\n protected responsiveMode = 0;\n protected readonly expanded = signal(0);\n protected readonly placeholderHeight = signal(0);\n protected readonly contentHeight = signal<number | undefined>(undefined);\n protected readonly blinkOnOff = signal<boolean | undefined>(undefined);\n protected readonly icons = addIcons({ elementDown2, elementSoundMute, elementSoundOn });\n protected statusId = `__si-status-bar-${idCounter++}`;\n\n private timer: any;\n\n private blinkSubs?: Subscription;\n\n private readonly element = inject(ElementRef);\n private readonly blinkService = inject(BlinkService);\n private readonly translateService = injectSiTranslateService();\n private readonly resizeObserver = inject(ResizeObserverService);\n private readonly measureService = inject(TextMeasureService);\n\n constructor() {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.resizeHandler());\n this.translateService.translationChange\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.resizeHandler());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.blinkService && changes.blink) {\n this.blinkSubs?.unsubscribe();\n if (this.blink()) {\n const pulse = this.blinkPulse() ?? this.blinkService.pulse$;\n this.blinkSubs = pulse.subscribe(onOff => {\n this.blinkOnOff.set(onOff);\n });\n }\n }\n this.resizeHandler();\n }\n\n ngDoCheck(): void {\n if (this.responsiveMode) {\n this.calcResponsiveItems();\n }\n }\n\n ngOnDestroy(): void {\n this.blinkSubs?.unsubscribe();\n }\n\n protected onItemClicked(item: StatusBarItem): void {\n if (item.action) {\n item.action(item);\n }\n }\n\n protected toggleExpand(): void {\n clearTimeout(this.timer);\n if (!this.expanded()) {\n this.expanded.set(2);\n this.placeholderHeight.set(this.theBar().nativeElement.offsetHeight);\n this.contentHeight.set(0);\n\n this.timer = window.setTimeout(() => {\n this.contentHeight.set(this.content().nativeElement.scrollHeight);\n window.setTimeout(() => {\n this.contentHeight.set(undefined);\n }, 500);\n }, 10);\n } else {\n this.contentHeight.set(this.content().nativeElement.scrollHeight);\n this.expanded.set(1);\n\n window.setTimeout(() => {\n this.contentHeight.set(0);\n window.setTimeout(() => {\n this.placeholderHeight.set(0);\n this.expanded.set(0);\n }, 500);\n }, 10);\n }\n }\n\n protected resizeHandler(): void {\n const size = this.element.nativeElement.clientWidth;\n const muteWidth = this.muteButton() !== undefined ? SiStatusBarComponent.muteButtonWidth : 0;\n const customWidth = this.custom().nativeElement.scrollWidth ?? 0;\n const minWidth =\n this.items().length * (SiStatusBarComponent.itemMinWidth + SiStatusBarComponent.itemSpacing) +\n SiStatusBarComponent.itemSpacing +\n muteWidth +\n customWidth;\n if (size < minWidth) {\n this.setResponsiveMode(true);\n } else if (this.items().length) {\n this.calculateRequiredWidth(muteWidth, customWidth);\n }\n }\n\n private setResponsiveMode(responsive: boolean): void {\n if (responsive) {\n const size = this.element.nativeElement.clientWidth;\n this.responsiveMode = Math.max(Math.floor(size / SiStatusBarComponent.itemMaxWidth) - 1, 2);\n } else {\n this.responsiveMode = 0;\n }\n\n if (this.responsiveMode) {\n this.contentHeight.set(this.expanded() ? this.content().nativeElement.scrollHeight : 0);\n } else {\n this.expanded.set(0);\n this.placeholderHeight.set(0);\n this.contentHeight.set(undefined);\n }\n }\n\n private calcResponsiveItems(): void {\n const activeItems: ExtendedStatusBarItem[] = this.items()\n .filter(item => item.value)\n .sort(itemSortFunction);\n\n if (activeItems.length > this.responsiveMode) {\n activeItems[this.responsiveMode - 1] = {\n status: activeItems[this.responsiveMode - 1].status,\n color: activeItems[this.responsiveMode - 1].color,\n value: activeItems.length - this.responsiveMode + 1 + '+',\n title: '',\n action: () => this.toggleExpand(),\n isSpecial: true\n };\n activeItems.length = this.responsiveMode;\n } else if (!activeItems.length) {\n activeItems.push({\n status: 'success',\n title: '',\n value: this.allOkText(),\n isSpecial: true\n });\n }\n if (activeItems.length === this.responsiveMode) {\n activeItems[activeItems.length - 1].mutePadding = true;\n }\n this.responsiveItems.set(activeItems);\n }\n\n private calculateRequiredWidth(muteWidth: number, customWidth: number): void {\n const keys: string[] = [];\n for (const item of this.items()) {\n keys.push(item.title, item.value.toString());\n }\n this.translateService\n .translateAsync(keys)\n .pipe(first())\n .subscribe(translations => {\n const size = this.element.nativeElement.clientWidth;\n\n const requiredWidth = this.items().reduce(\n (acc, item) => {\n const titleWidth = this.measureService.measureText(translations[item.title]);\n const valueWidth = this.measureService.measureText(\n translations[item.value],\n undefined,\n { fontWeight: 'bold' }\n );\n const textWidth = Math.max(titleWidth, valueWidth);\n const itemWidth =\n Math.max(\n SiStatusBarComponent.itemMinWidth,\n textWidth +\n (item.color\n ? SiStatusBarComponent.itemPaddingXdeprecated\n : SiStatusBarComponent.itemPaddingX)\n ) + SiStatusBarComponent.itemSpacing;\n return acc + itemWidth;\n },\n muteWidth + customWidth + SiStatusBarComponent.itemSpacing\n );\n\n this.setResponsiveMode(size < requiredWidth);\n });\n }\n}\n","<div\n class=\"expand-placeholder\"\n [class.expanded]=\"expanded()\"\n [style.height.px]=\"placeholderHeight()\"\n></div>\n<div\n #thebar\n aria-busy=\"true\"\n [class]=\"responsiveMode ? `responsive-${responsiveMode}` : ''\"\n [class.responsive]=\"responsiveMode\"\n [class.expanded]=\"expanded()\"\n [class.compact]=\"responsiveMode || compact()\"\n [class.pulse-off]=\"blinkOnOff() === false\"\n [class.pulse-on]=\"blinkOnOff()\"\n>\n <div\n class=\"status-bar-wrapper rounded-2\"\n [class.elevation-2]=\"expanded()\"\n [class.pe-2]=\"muteButton() !== undefined\"\n >\n @if (responsiveMode) {\n <div class=\"align-items-center overflow-hidden\">\n <div class=\"d-flex flex-fill position-relative\">\n @for (item of responsiveItems(); track $index) {\n <si-status-bar-item\n class=\"bar-item compact\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink() && !expanded()\"\n [clickable]=\"!!item.action\"\n [class.mute-padding]=\"item.mutePadding && muteButton() !== undefined\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n [valueOnly]=\"item.isSpecial\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n @if (muteButton() !== undefined) {\n <div class=\"mobile-mute\">\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n </div>\n }\n </div>\n }\n <div\n #content\n class=\"main-content align-items-center overflow-hidden\"\n [style.max-height.px]=\"contentHeight()\"\n >\n @if (responsiveMode) {\n <div class=\"mobile-spacer\"></div>\n }\n <div\n class=\"d-flex flex-fill position-relative\"\n [id]=\"statusId\"\n [class.d-none]=\"responsiveMode && !expanded()\"\n [class.flex-wrap]=\"responsiveMode\"\n >\n @for (item of items(); track $index) {\n <si-status-bar-item\n class=\"bar-item\"\n [class.compact]=\"responsiveMode || compact()\"\n [value]=\"item.value\"\n [heading]=\"item.title\"\n [status]=\"item.status\"\n [color]=\"item.color\"\n [blink]=\"item.blink !== false && blink()\"\n [clickable]=\"!!item.action\"\n [style.flex-basis.%]=\"responsiveMode ? 100 / responsiveMode : null\"\n (click)=\"onItemClicked(item)\"\n (keydown.enter)=\"onItemClicked(item)\"\n />\n }\n </div>\n <div class=\"custom-content bar-item d-flex\">\n <div #custom [class.pb-2]=\"responsiveMode && expanded\" (siResizeObserver)=\"resizeHandler()\">\n <ng-content />\n </div>\n </div>\n @if (muteButton() !== undefined && !responsiveMode) {\n <ng-container *ngTemplateOutlet=\"muteButtonTemplate\" />\n }\n </div>\n </div>\n @if (responsiveMode) {\n <div class=\"d-flex align-items-center justify-content-center\">\n <a\n class=\"collapse-expand text-center p-0 focus-force\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(expanded() ? collapseButtonText() : expandButtonText()) | translate\"\n [attr.aria-expanded]=\"!!expanded()\"\n [attr.aria-controls]=\"statusId\"\n [class.expanded]=\"expanded() === 2\"\n (keydown.enter)=\"toggleExpand()\"\n (click)=\"toggleExpand()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementDown2\" />\n </a>\n </div>\n }\n</div>\n\n<ng-template #muteButtonTemplate>\n <button\n type=\"button\"\n class=\"bar-item mute-button btn btn-circle btn-tertiary ms-5\"\n [attr.aria-label]=\"muteButtonText() | translate\"\n (click)=\"muteToggle.emit()\"\n >\n <si-icon class=\"icon\" [icon]=\"muteButton() ? icons.elementSoundOn : icons.elementSoundMute\" />\n </button>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiStatusBarComponent } from './si-status-bar.component';\n\n@NgModule({\n imports: [SiStatusBarComponent],\n exports: [SiStatusBarComponent]\n})\nexport class SiStatusBarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-status-bar-item.component';\nexport * from './si-status-bar-item.model';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-status-bar.component';\nexport * from './si-status-bar.module';\nexport * from './si-status-bar-item/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;AAGG;MAuBU,wBAAwB,CAAA;AAClB,IAAA,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAChD,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AACpC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAA+B;AACrD,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,kDAAsB;IAC9C,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;;IAEvB,KAAK,GAAG,KAAK,CAAC,KAAK,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAErD,SAAS,GAAG,KAAK,CAA+B,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAEvF,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjD,IAAA,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAa,IAAI,CAAC;AAEvC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACtE,IAAA,CAAC,uDAAC;AACiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS;AACtD,IAAA,CAAC,sDAAC;AACiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,sDACzF;IAEO,oBAAoB,GAAA;;QAE1B,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa;AACjD,aAAA,eAAe,EAAE,KAAK,CAAC,MAAM;cAC5B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,QAAA,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG;IACxF;uGAhCW,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,oBAAA,EAAA,MAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,IAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BrC,4xCAsCA,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnBY,eAAe,iEAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAO/B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,eAAe,EAAE,eAAe,CAAC,EAAA,IAAA,EAGrC;AACJ,wBAAA,mBAAmB,EAAE;AACtB,qBAAA,EAAA,QAAA,EAAA,4xCAAA,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA;0sBAeoD,IAAI,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEvC3D;;;AAGG;AA0CH;AACA;AACA,SAAS,gBAAgB,CAAC,CAAgB,EAAE,CAAgB,EAAA;AAC1D,IAAA,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC;AACnG;AAEA,IAAI,SAAS,GAAG,CAAC;AAEjB;;;AAGG;MAcU,oBAAoB,CAAA;AACvB,IAAA,OAAgB,YAAY,GAAG,GAAG;AAClC,IAAA,OAAgB,YAAY,GAAG,GAAG;AAClC,IAAA,OAAgB,WAAW,GAAG,CAAC;AAC/B,IAAA,OAAgB,YAAY,GAAG,EAAE,CAAC;AAClC,IAAA,OAAgB,sBAAsB,GAAG,EAAE,CAAC;AAC5C,IAAA,OAAgB,eAAe,GAAG,EAAE;AAE5C;;AAEG;AACM,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAmB;AAClD;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAC,KAAK,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC9D;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;AACtC;;;;;;;AAOG;AACM,IAAA,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,iCAAA,CAAmC,CAAC,0DAAC;AACtF;;;;;;;AAOG;AACM,IAAA,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,8BAAA,CAAgC,CAAC,qDAAC;AAC9E;;;;AAIG;IACM,OAAO,GAAG,KAAK,CAAC,KAAK,oDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAChE;;AAEG;IACM,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;AAClD;;;;;;;AAOG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,8BAAA,CAAgC,CAAC,4DAAC;AACrF;;;;;;;AAOG;AACM,IAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,kCAAA,CAAoC,CAAC,8DAAC;AAE3F;;AAEG;IACM,UAAU,GAAG,MAAM,EAAE;AAEb,IAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC;AACjD,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAa,SAAS,CAAC;AACnD,IAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC;AAE/C,IAAA,eAAe,GAAG,MAAM,CAA0B,EAAE,2DAAC;IAC9D,cAAc,GAAG,CAAC;AACT,IAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,oDAAC;AACpB,IAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,6DAAC;AAC7B,IAAA,aAAa,GAAG,MAAM,CAAqB,SAAS,yDAAC;AACrD,IAAA,UAAU,GAAG,MAAM,CAAsB,SAAS,sDAAC;IACnD,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC7E,IAAA,QAAQ,GAAG,CAAA,gBAAA,EAAmB,SAAS,EAAE,EAAE;AAE7C,IAAA,KAAK;AAEL,IAAA,SAAS;AAEA,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACnC,gBAAgB,GAAG,wBAAwB,EAAE;AAC7C,IAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,IAAA,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE5D,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC;aACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI;aAC7C,IAAI,CAAC,kBAAkB,EAAE;aACzB,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC;aACnB,IAAI,CAAC,kBAAkB,EAAE;aACzB,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC1C;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM;gBAC3D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,IAAG;AACvC,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,gBAAA,CAAC,CAAC;YACJ;QACF;QACA,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,mBAAmB,EAAE;QAC5B;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;IAC/B;AAEU,IAAA,aAAa,CAAC,IAAmB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AAClC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;AACjE,gBAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,CAAC,EAAE,GAAG,CAAC;YACT,CAAC,EAAE,EAAE,CAAC;QACR;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;AACjE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpB,YAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,gBAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,CAAC,EAAE,GAAG,CAAC;YACT,CAAC,EAAE,EAAE,CAAC;QACR;IACF;IAEU,aAAa,GAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AACnD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,GAAG,oBAAoB,CAAC,eAAe,GAAG,CAAC;AAC5F,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC;AAChE,QAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,oBAAoB,CAAC,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC;AAC5F,YAAA,oBAAoB,CAAC,WAAW;YAChC,SAAS;AACT,YAAA,WAAW;AACb,QAAA,IAAI,IAAI,GAAG,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;AAAO,aAAA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC;QACrD;IACF;AAEQ,IAAA,iBAAiB,CAAC,UAAmB,EAAA;QAC3C,IAAI,UAAU,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;YACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACzB;AAEA,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC;QACzF;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QACnC;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,WAAW,GAA4B,IAAI,CAAC,KAAK;aACpD,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;aACzB,IAAI,CAAC,gBAAgB,CAAC;QAEzB,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG;gBACrC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,MAAM;gBACnD,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK;gBACjD,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,GAAG;AACzD,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,gBAAA,SAAS,EAAE;aACZ;AACD,YAAA,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc;QAC1C;AAAO,aAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC9B,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;AACvB,gBAAA,SAAS,EAAE;AACZ,aAAA,CAAC;QACJ;QACA,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;YAC9C,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI;QACxD;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;IACvC;IAEQ,sBAAsB,CAAC,SAAiB,EAAE,WAAmB,EAAA;QACnE,MAAM,IAAI,GAAa,EAAE;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9C;AACA,QAAA,IAAI,CAAC;aACF,cAAc,CAAC,IAAI;aACnB,IAAI,CAAC,KAAK,EAAE;aACZ,SAAS,CAAC,YAAY,IAAG;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AAEnD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,IAAI,KAAI;AACZ,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAChD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,SAAS,EACT,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;gBAClD,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,CACN,oBAAoB,CAAC,YAAY,EACjC,SAAS;qBACN,IAAI,CAAC;0BACF,oBAAoB,CAAC;0BACrB,oBAAoB,CAAC,YAAY,CAAC,CACzC,GAAG,oBAAoB,CAAC,WAAW;gBACtC,OAAO,GAAG,GAAG,SAAS;YACxB,CAAC,EACD,SAAS,GAAG,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAC3D;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,aAAa,CAAC;AAC9C,QAAA,CAAC,CAAC;IACN;uGApQW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEjC,4lIAoHA,EAAA,MAAA,EAAA,CAAA,ihDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDxDI,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,wBAAwB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACzB,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMN,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAChB;wBACP,gBAAgB;wBAChB,eAAe;wBACf,wBAAwB;wBACxB,yBAAyB;wBACzB;qBACD,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4lIAAA,EAAA,MAAA,EAAA,CAAA,ihDAAA,CAAA,EAAA;kiCA4EU,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACP,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACV,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AElJnE;;;AAGG;MASU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAjB,iBAAiB,EAAA,OAAA,EAAA,CAHlB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACpB,oBAAoB,CAAA,EAAA,CAAA;AAEnB,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,oBAAoB,CAAA,EAAA,CAAA;;2FAGnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,oBAAoB;AAC/B,iBAAA;;;ACXD;;;AAGG;;ACHH;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -3,7 +3,7 @@ import { input, numberAttribute, booleanAttribute, computed, ChangeDetectionStra
|
|
|
3
3
|
import { SiIconComponent } from '@siemens/element-ng/icon';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright (c) Siemens 2016 -
|
|
6
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
*/
|
|
9
9
|
class SiStatusCounterComponent {
|
|
@@ -35,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
35
35
|
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], stackedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "stackedIcon", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* Copyright (c) Siemens 2016 -
|
|
38
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
39
39
|
* SPDX-License-Identifier: MIT
|
|
40
40
|
*/
|
|
41
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-status-counter.mjs","sources":["../../../../projects/element-ng/status-counter/si-status-counter.component.ts","../../../../projects/element-ng/status-counter/si-status-counter.component.html","../../../../projects/element-ng/status-counter/index.ts","../../../../projects/element-ng/status-counter/siemens-element-ng-status-counter.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 -
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-status-counter.mjs","sources":["../../../../projects/element-ng/status-counter/si-status-counter.component.ts","../../../../projects/element-ng/status-counter/si-status-counter.component.html","../../../../projects/element-ng/status-counter/index.ts","../../../../projects/element-ng/status-counter/siemens-element-ng-status-counter.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute\n} from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\n\n@Component({\n selector: 'si-status-counter, si-icon-status',\n imports: [SiIconComponent],\n templateUrl: './si-status-counter.component.html',\n styleUrl: './si-status-counter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiStatusCounterComponent {\n /** Icon to display. */\n readonly icon = input.required<string>();\n /** Stacked icon to display. */\n readonly stackedIcon = input<string>();\n /**\n * Counter below the icon\n *\n * @defaultValue 0\n */\n readonly count = input(0, { transform: numberAttribute });\n /** Color of the icon */\n readonly color = input<string>();\n /**\n * Whether the icon is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly isDisabledOrCountZero = computed(() => !!this.disabled() || this.count() === 0);\n}\n","@let iconValue = icon();\n<span class=\"icon icon-stack\">\n <si-icon\n [class]=\"isDisabledOrCountZero() ? undefined : color()\"\n [class.inactive]=\"isDisabledOrCountZero()\"\n [icon]=\"iconValue\"\n />\n @let stackedValue = stackedIcon();\n @if (stackedValue) {\n <si-icon\n [class]=\"isDisabledOrCountZero() ? 'inactive-contrast' : `${color()}-contrast`\"\n [icon]=\"stackedValue\"\n />\n }\n</span>\n@if (!disabled()) {\n <span>{{ count() }}</span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-status-counter.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;MAkBU,wBAAwB,CAAA;;AAE1B,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAU;;IAE/B,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACtC;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAC,CAAC,kDAAI,SAAS,EAAE,eAAe,EAAA,CAAG;;IAEhD,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAChC;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAExD,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,iEAAC;uGApB7E,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBrC,2eAkBA,EAAA,MAAA,EAAA,CAAA,2KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKd,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,WACpC,CAAC,eAAe,CAAC,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2eAAA,EAAA,MAAA,EAAA,CAAA,2KAAA,CAAA,EAAA;;;AEnBjD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -6,7 +6,7 @@ import { SiIconComponent } from '@siemens/element-ng/icon';
|
|
|
6
6
|
import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright (c) Siemens 2016 -
|
|
9
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
10
10
|
* SPDX-License-Identifier: MIT
|
|
11
11
|
*/
|
|
12
12
|
class SiStatusToggleComponent {
|
|
@@ -182,7 +182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
182
182
|
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], containerElement: [{ type: i0.ViewChild, args: ['container', { isSignal: true }] }], draggableElement: [{ type: i0.ViewChild, args: ['draggable', { isSignal: true }] }] } });
|
|
183
183
|
|
|
184
184
|
/**
|
|
185
|
-
* Copyright (c) Siemens 2016 -
|
|
185
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
186
186
|
* SPDX-License-Identifier: MIT
|
|
187
187
|
*/
|
|
188
188
|
|