@siemens/element-ng 51.0.0-rc.3 → 51.0.0-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/siemens-element-ng-about.mjs +8 -8
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +33 -22
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +83 -30
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +134 -127
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +160 -129
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +25 -20
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +30 -16
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +10 -10
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +3 -3
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +10 -10
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +15 -14
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +37 -20
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +9 -8
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +82 -51
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +10 -9
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +32 -24
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +42 -13
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +32 -14
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +8 -8
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +14 -13
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +7 -7
- package/fesm2022/siemens-element-ng-dashboard.mjs +101 -83
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +9 -12
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +53 -26
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +154 -81
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +10 -10
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +8 -8
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +34 -32
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +27 -19
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +142 -72
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +8 -8
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +129 -78
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly-legacy.mjs +7 -7
- package/fesm2022/siemens-element-ng-formly.mjs +81 -77
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +22 -19
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +17 -16
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +4 -4
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +7 -7
- package/fesm2022/siemens-element-ng-ip-input.mjs +15 -19
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +24 -24
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +8 -8
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +20 -11
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +28 -27
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +31 -53
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +9 -9
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +8 -8
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +102 -0
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +3 -3
- package/fesm2022/siemens-element-ng-markdown.mjs +501 -0
- package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-menu.mjs +66 -40
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +8 -7
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +171 -162
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +49 -37
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +19 -17
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +4 -4
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +22 -12
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +7 -7
- package/fesm2022/siemens-element-ng-password-strength.mjs +13 -13
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +7 -7
- package/fesm2022/siemens-element-ng-phone-number.mjs +38 -16
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +20 -18
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +27 -22
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +23 -12
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +55 -47
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +7 -7
- package/fesm2022/siemens-element-ng-resize-observer.mjs +34 -16
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +8 -8
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +27 -20
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +158 -88
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +34 -7
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +35 -37
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +23 -23
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +11 -10
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs +79 -0
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-split.mjs +86 -111
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +50 -19
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +4 -4
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +9 -7
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +4 -4
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +4 -4
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +4 -4
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +15 -13
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +40 -45
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +27 -5
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +24 -14
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +19 -12
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +79 -46
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +11 -11
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +65 -38
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +20 -20
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +74 -17
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/maplibre/package.json +4 -0
- package/maplibre/styles/_index.scss +1 -0
- package/maplibre/styles/maplibre-gl.scss +716 -0
- package/markdown/package.json +4 -0
- package/package.json +56 -4
- package/schematics/migrations/data/css-custom-properties.js +158 -0
- package/schematics/migrations/data/element-class-changes.js +76 -1
- package/schematics/migrations/data/element-migration-data.js +2 -0
- package/schematics/migrations/data/element-selectors.js +3 -1
- package/schematics/migrations/data/migration-test-data.js +32 -0
- package/schematics/migrations/data/symbol-removals.js +5 -0
- package/schematics/migrations/data/symbol-renaming.js +7 -1
- package/schematics/migrations/element-migration/element-migration.js +4 -2
- package/schematics/migrations/utilities/css-custom-property.migration.js +50 -0
- package/schematics/migrations/utilities/element-class-change.migration.js +10 -5
- package/schematics/migrations/utilities/index.js +1 -0
- package/schematics/ng-update/migrate-split-sizes.js +105 -0
- package/schematics/ng-update/migrate-to-v51.js +2 -2
- package/source-chip/package.json +4 -0
- package/template-i18n.json +70 -41
- package/types/siemens-element-ng-accordion.d.ts +12 -3
- package/types/siemens-element-ng-application-header.d.ts +16 -21
- package/types/siemens-element-ng-auto-collapsable-list.d.ts +6 -1
- package/types/siemens-element-ng-autocomplete.d.ts +17 -3
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-card.d.ts +21 -4
- package/types/siemens-element-ng-chat-messages.d.ts +27 -8
- package/types/siemens-element-ng-color-picker.d.ts +8 -1
- package/types/siemens-element-ng-common.d.ts +12 -2
- package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +7 -2
- package/types/siemens-element-ng-datatable.d.ts +5 -56
- package/types/siemens-element-ng-date-range-filter.d.ts +13 -1
- package/types/siemens-element-ng-datepicker.d.ts +64 -11
- package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +8 -8
- package/types/siemens-element-ng-filter-bar.d.ts +12 -5
- package/types/siemens-element-ng-filtered-search.d.ts +11 -4
- package/types/siemens-element-ng-form.d.ts +49 -8
- package/types/siemens-element-ng-formly.d.ts +3 -1
- package/types/siemens-element-ng-header-dropdown.d.ts +5 -3
- package/types/siemens-element-ng-icon.d.ts +1 -0
- 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-link.d.ts +10 -1
- package/types/siemens-element-ng-loading-spinner.d.ts +11 -17
- package/types/siemens-element-ng-maplibre.d.ts +53 -0
- package/types/siemens-element-ng-markdown.d.ts +281 -0
- package/types/siemens-element-ng-menu.d.ts +17 -2
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +82 -37
- package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
- package/types/siemens-element-ng-navbar.d.ts +4 -3
- package/types/siemens-element-ng-number-input.d.ts +11 -2
- package/types/siemens-element-ng-phone-number.d.ts +23 -3
- package/types/siemens-element-ng-photo-upload.d.ts +4 -4
- package/types/siemens-element-ng-popover.d.ts +10 -7
- package/types/siemens-element-ng-resize-observer.d.ts +21 -3
- package/types/siemens-element-ng-search-bar.d.ts +11 -3
- package/types/siemens-element-ng-select.d.ts +35 -3
- package/types/siemens-element-ng-shadow-root.d.ts +1 -0
- package/types/siemens-element-ng-side-panel.d.ts +3 -3
- package/types/siemens-element-ng-source-chip.d.ts +53 -0
- package/types/siemens-element-ng-split.d.ts +25 -19
- package/types/siemens-element-ng-status-bar.d.ts +30 -3
- package/types/siemens-element-ng-tabs.d.ts +1 -2
- package/types/siemens-element-ng-theme.d.ts +12 -2
- package/types/siemens-element-ng-threshold.d.ts +9 -2
- package/types/siemens-element-ng-toast-notification.d.ts +3 -1
- package/types/siemens-element-ng-tooltip.d.ts +13 -11
- package/types/siemens-element-ng-translate.d.ts +29 -0
- package/types/siemens-element-ng-tree-view.d.ts +19 -4
- package/types/siemens-element-ng-typeahead.d.ts +6 -4
- package/types/siemens-element-ng-wizard.d.ts +31 -4
- package/schematics/migrations/icon-path-migration/icon-path-migration.js +0 -95
- package/schematics/migrations/icon-path-migration/index.js +0 -5
|
@@ -138,10 +138,10 @@ class SiAboutComponent {
|
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
141
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAboutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiAboutComponent, isStandalone: true, selector: "si-about", inputs: { logoAlt: { classPropertyName: "logoAlt", publicName: "logoAlt", isSignal: true, isRequired: false, transformFunction: null }, aboutTitle: { classPropertyName: "aboutTitle", publicName: "aboutTitle", isSignal: true, isRequired: true, transformFunction: null }, licenseInfo: { classPropertyName: "licenseInfo", publicName: "licenseInfo", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: true, transformFunction: null }, subheading: { classPropertyName: "subheading", publicName: "subheading", isSignal: true, isRequired: false, transformFunction: null }, acceptableUsePolicyLink: { classPropertyName: "acceptableUsePolicyLink", publicName: "acceptableUsePolicyLink", isSignal: true, isRequired: false, transformFunction: null }, imprintLink: { classPropertyName: "imprintLink", publicName: "imprintLink", isSignal: true, isRequired: false, transformFunction: null }, privacyLink: { classPropertyName: "privacyLink", publicName: "privacyLink", isSignal: true, isRequired: false, transformFunction: null }, cookieNoticeLink: { classPropertyName: "cookieNoticeLink", publicName: "cookieNoticeLink", isSignal: true, isRequired: false, transformFunction: null }, termsLink: { classPropertyName: "termsLink", publicName: "termsLink", isSignal: true, isRequired: false, transformFunction: null }, links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null }, copyrightDetails: { classPropertyName: "copyrightDetails", publicName: "copyrightDetails", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"row mx-6 mt-6\">\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\">\n <div class=\"card-header text-truncate\">\n {{ aboutTitle() }}\n </div>\n\n <div class=\"list-group\">\n <div class=\"list-group-item text-center\">\n @let appIcon = iconName();\n @if (icon()) {\n <img\n class=\"rounded-circle\"\n height=\"150\"\n [src]=\"icon()\"\n [alt]=\"logoAlt() | translate: { appName: appName() }\"\n />\n } @else if (appIcon) {\n <si-icon class=\"app-icon\" [icon]=\"appIcon\" />\n }\n <h3>{{ appName() }}</h3>\n @for (item of subheading(); track $index) {\n <p>{{ item }}</p>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n\n @if (imprintLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: imprintLink() }\"\n />\n }\n @if (privacyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: privacyLink() }\"\n />\n }\n @if (cookieNoticeLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: cookieNoticeLink() }\"\n />\n }\n @if (termsLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: termsLink() }\"\n />\n }\n @if (acceptableUsePolicyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: acceptableUsePolicyLink() }\"\n />\n }\n @for (item of links(); track $index) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: item }\"\n />\n }\n </div>\n </div>\n </div>\n\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\" [class.h-100]=\"licenseInfo().iframe\">\n <div class=\"card-header text-truncate\">\n {{ licenseInfo().title }}\n </div>\n\n <div class=\"h-100\">\n @if (licenseInfo().text) {\n <pre class=\"border-0 border-bottom my-0 px-6 py-4\">{{ licenseInfo().text }}</pre>\n }\n\n @if (sanitizedUrl()) {\n <iframe class=\"w-100 h-100\" [src]=\"sanitizedUrl()\" [title]=\"licenseInfo().title\"></iframe>\n }\n\n @if (licenseInfo().api) {\n @for (api of licenseApi(); track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api\"\n [heading]=\"api.name\"\n (panelToggle)=\"toggleLoadLicenseApi(api)\"\n >\n @for (file of api.files; track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api-file\"\n [icon]=\"licenseInfo().icon ? licenseInfo().icon : icons.elementDocument\"\n [heading]=\"file.name\"\n (panelToggle)=\"toggleLoadLicenseContent(file)\"\n >\n <pre class=\"license-api-file-content px-6 py-6 my-0 border-0\">{{\n file.content\n }}</pre>\n </si-collapsible-panel>\n }\n </si-collapsible-panel>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #linkTemplate let-link=\"link\">\n <a\n class=\"list-group-item si-h5 text-body focus-inside\"\n siLinkDefaultTarget=\"_blank\"\n [siLink]=\"link\"\n >\n {{ link.title | translate }}\n </a>\n</ng-template>\n", styles: [".list-group-item{border-width:0 0 1px;padding-inline:16px}.list-group-item.with-border:first-child{border-block-start-width:1px}.list-group-item:last-child{border-block-end-width:0}.app-icon{font-size:150px}iframe{border-style:none;min-block-size:500px;margin-block-end:-5px}pre{word-break:break-word;white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiCollapsiblePanelComponent, selector: "si-collapsible-panel", inputs: ["heading", "headerCssClasses", "contentBgClasses", "contentCssClasses", "opened", "icon", "disabled", "colorVariant", "badge", "badgeColor"], outputs: ["openedChange", "panelToggle"] }, { kind: "component", type: SiCopyrightNoticeComponent, selector: "si-copyright-notice", inputs: ["copyright"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
143
143
|
}
|
|
144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAboutComponent, decorators: [{
|
|
145
145
|
type: Component,
|
|
146
146
|
args: [{ selector: 'si-about', imports: [
|
|
147
147
|
NgTemplateOutlet,
|
|
@@ -150,7 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
150
150
|
SiIconComponent,
|
|
151
151
|
SiLinkDirective,
|
|
152
152
|
SiTranslatePipe
|
|
153
|
-
], template: "<div class=\"row mx-6 mt-6\">\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\">\n <div class=\"card-header text-truncate\">\n {{ aboutTitle() }}\n </div>\n\n <div>\n <div class=\"list-group-item text-center\">\n @let appIcon = iconName();\n @if (icon()) {\n <img\n class=\"rounded-circle\"\n height=\"150\"\n [src]=\"icon()\"\n [alt]=\"logoAlt() | translate: { appName: appName() }\"\n />\n } @else if (appIcon) {\n <si-icon class=\"app-icon\" [icon]=\"appIcon\" />\n }\n <h3>{{ appName() }}</h3>\n @for (item of subheading(); track $index) {\n <p>{{ item }}</p>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n\n @if (imprintLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: imprintLink() }\"\n />\n }\n @if (privacyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: privacyLink() }\"\n />\n }\n @if (cookieNoticeLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: cookieNoticeLink() }\"\n />\n }\n @if (termsLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: termsLink() }\"\n />\n }\n @if (acceptableUsePolicyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: acceptableUsePolicyLink() }\"\n />\n }\n @for (item of links(); track $index) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: item }\"\n />\n }\n </div>\n </div>\n </div>\n\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\" [class.h-100]=\"licenseInfo().iframe\">\n <div class=\"card-header text-truncate\">\n {{ licenseInfo().title }}\n </div>\n\n <div class=\"h-100\">\n @if (licenseInfo().text) {\n <pre class=\"
|
|
153
|
+
], template: "<div class=\"row mx-6 mt-6\">\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\">\n <div class=\"card-header text-truncate\">\n {{ aboutTitle() }}\n </div>\n\n <div class=\"list-group\">\n <div class=\"list-group-item text-center\">\n @let appIcon = iconName();\n @if (icon()) {\n <img\n class=\"rounded-circle\"\n height=\"150\"\n [src]=\"icon()\"\n [alt]=\"logoAlt() | translate: { appName: appName() }\"\n />\n } @else if (appIcon) {\n <si-icon class=\"app-icon\" [icon]=\"appIcon\" />\n }\n <h3>{{ appName() }}</h3>\n @for (item of subheading(); track $index) {\n <p>{{ item }}</p>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n\n @if (imprintLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: imprintLink() }\"\n />\n }\n @if (privacyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: privacyLink() }\"\n />\n }\n @if (cookieNoticeLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: cookieNoticeLink() }\"\n />\n }\n @if (termsLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: termsLink() }\"\n />\n }\n @if (acceptableUsePolicyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: acceptableUsePolicyLink() }\"\n />\n }\n @for (item of links(); track $index) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: item }\"\n />\n }\n </div>\n </div>\n </div>\n\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\" [class.h-100]=\"licenseInfo().iframe\">\n <div class=\"card-header text-truncate\">\n {{ licenseInfo().title }}\n </div>\n\n <div class=\"h-100\">\n @if (licenseInfo().text) {\n <pre class=\"border-0 border-bottom my-0 px-6 py-4\">{{ licenseInfo().text }}</pre>\n }\n\n @if (sanitizedUrl()) {\n <iframe class=\"w-100 h-100\" [src]=\"sanitizedUrl()\" [title]=\"licenseInfo().title\"></iframe>\n }\n\n @if (licenseInfo().api) {\n @for (api of licenseApi(); track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api\"\n [heading]=\"api.name\"\n (panelToggle)=\"toggleLoadLicenseApi(api)\"\n >\n @for (file of api.files; track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api-file\"\n [icon]=\"licenseInfo().icon ? licenseInfo().icon : icons.elementDocument\"\n [heading]=\"file.name\"\n (panelToggle)=\"toggleLoadLicenseContent(file)\"\n >\n <pre class=\"license-api-file-content px-6 py-6 my-0 border-0\">{{\n file.content\n }}</pre>\n </si-collapsible-panel>\n }\n </si-collapsible-panel>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #linkTemplate let-link=\"link\">\n <a\n class=\"list-group-item si-h5 text-body focus-inside\"\n siLinkDefaultTarget=\"_blank\"\n [siLink]=\"link\"\n >\n {{ link.title | translate }}\n </a>\n</ng-template>\n", styles: [".list-group-item{border-width:0 0 1px;padding-inline:16px}.list-group-item.with-border:first-child{border-block-start-width:1px}.list-group-item:last-child{border-block-end-width:0}.app-icon{font-size:150px}iframe{border-style:none;min-block-size:500px;margin-block-end:-5px}pre{word-break:break-word;white-space:pre-wrap}\n"] }]
|
|
154
154
|
}], propDecorators: { logoAlt: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoAlt", required: false }] }], aboutTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "aboutTitle", required: true }] }], licenseInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "licenseInfo", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconName", required: false }] }], appName: [{ type: i0.Input, args: [{ isSignal: true, alias: "appName", required: true }] }], subheading: [{ type: i0.Input, args: [{ isSignal: true, alias: "subheading", required: false }] }], acceptableUsePolicyLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "acceptableUsePolicyLink", required: false }] }], imprintLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "imprintLink", required: false }] }], privacyLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "privacyLink", required: false }] }], cookieNoticeLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "cookieNoticeLink", required: false }] }], termsLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "termsLink", required: false }] }], links: [{ type: i0.Input, args: [{ isSignal: true, alias: "links", required: false }] }], copyrightDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyrightDetails", required: false }] }] } });
|
|
155
155
|
|
|
156
156
|
/**
|
|
@@ -158,11 +158,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
158
158
|
* SPDX-License-Identifier: MIT
|
|
159
159
|
*/
|
|
160
160
|
class SiAboutModule {
|
|
161
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
162
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.
|
|
163
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.
|
|
161
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
162
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SiAboutModule, imports: [SiAboutComponent], exports: [SiAboutComponent] });
|
|
163
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAboutModule, imports: [SiAboutComponent] });
|
|
164
164
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAboutModule, decorators: [{
|
|
166
166
|
type: NgModule,
|
|
167
167
|
args: [{
|
|
168
168
|
imports: [SiAboutComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-about.mjs","sources":["../../../../projects/element-ng/about/si-about.component.ts","../../../../projects/element-ng/about/si-about.component.html","../../../../projects/element-ng/about/si-about.module.ts","../../../../projects/element-ng/about/index.ts","../../../../projects/element-ng/about/siemens-element-ng-about.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, computed, inject, input, OnInit, signal } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { elementDocument } from '@siemens/element-icons';\nimport { SiCollapsiblePanelComponent } from '@siemens/element-ng/accordion';\nimport { CopyrightDetails, SiCopyrightNoticeComponent } from '@siemens/element-ng/copyright-notice';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { ApiInfo, LicenseInfo } from './si-about-data.model';\n\n@Component({\n selector: 'si-about',\n imports: [\n NgTemplateOutlet,\n SiCollapsiblePanelComponent,\n SiCopyrightNoticeComponent,\n SiIconComponent,\n SiLinkDirective,\n SiTranslatePipe\n ],\n templateUrl: './si-about.component.html',\n styleUrl: './si-about.component.scss'\n})\nexport class SiAboutComponent implements OnInit {\n private http = inject(HttpClient);\n private sanitizer = inject(DomSanitizer);\n\n /**\n * Alt text for the application logo. Supports `{{appName}}` placeholder for interpolation.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_ABOUT.LOGO_ALT:{{appName}} logo`)\n * ```\n */\n readonly logoAlt = input(t(() => $localize`:@@SI_ABOUT.LOGO_ALT:{{appName}} logo`));\n\n /**\n * Title shown above the about information.\n */\n readonly aboutTitle = input.required<string>();\n /**\n * Define mode to display the licenses. See {@link LicenseInfo}\n */\n readonly licenseInfo = input.required<LicenseInfo>();\n /**\n * Path to the application logo. Use for image\n */\n readonly icon = input<string>();\n /**\n * Name of element icon. Use as alternative to image\n */\n readonly iconName = input<string>();\n /**\n * Title of this application.\n */\n readonly appName = input.required<string>();\n /**\n * Sub titles of the application. Shown as a list below the application name. (Optional)\n */\n readonly subheading = input<string[]>();\n /**\n * Link to `Acceptable Use Policy`.\n */\n readonly acceptableUsePolicyLink = input<Link>();\n /**\n * Link to `Corporate Information`.\n */\n readonly imprintLink = input<Link>();\n /**\n * Link to `Privacy Notice`.\n */\n readonly privacyLink = input<Link>();\n /**\n * Link to `Cookie Notice`.\n */\n readonly cookieNoticeLink = input<Link>();\n /**\n * Link to `Terms of Use`.\n */\n readonly termsLink = input<Link>();\n /**\n * Additional links listed in the about section.\n *\n * @defaultValue []\n */\n readonly links = input<Link[]>([]);\n /**\n * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.\n */\n readonly copyrightDetails = input<CopyrightDetails>();\n\n protected readonly sanitizedUrl = computed(() => {\n const licenseInfo = this.licenseInfo();\n return licenseInfo.iframe != null\n ? this.sanitizer.bypassSecurityTrustResourceUrl(licenseInfo.iframe)\n : undefined;\n });\n\n protected readonly licenseApi = signal<ApiInfo[]>([]);\n protected readonly icons = addIcons({ elementDocument });\n\n ngOnInit(): void {\n const licenseInfo = this.licenseInfo();\n if (licenseInfo.api) {\n this.http.get<ApiInfo[]>(licenseInfo.api, { responseType: 'json' }).subscribe(data => {\n this.licenseApi.set(data);\n if (this.licenseApi().length === 1) {\n data[0].isOpen = false;\n this.licenseApi.set([...data]);\n this.toggleLoadLicenseApi(this.licenseApi()[0]);\n }\n });\n }\n }\n\n protected toggleLoadLicenseApi(apiInfo: ApiInfo): void {\n const licenseApi = this.licenseApi();\n if (!apiInfo.isOpen && !apiInfo.files) {\n this.http.get<ApiInfo[]>(apiInfo.href, { responseType: 'json' }).subscribe(files => {\n apiInfo.files = files;\n this.licenseApi.set([...licenseApi]);\n });\n }\n apiInfo.isOpen = !apiInfo.isOpen;\n this.licenseApi.set([...licenseApi]);\n }\n\n protected toggleLoadLicenseContent(apiInfo: ApiInfo): void {\n const licenseApi = this.licenseApi();\n apiInfo.isOpen = !apiInfo.isOpen;\n if (!apiInfo.content) {\n this.http.get(apiInfo.href, { responseType: 'text' }).subscribe((content: string) => {\n apiInfo.content = content;\n this.licenseApi.set([...licenseApi]);\n });\n }\n }\n}\n","<div class=\"row mx-6 mt-6\">\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\">\n <div class=\"card-header text-truncate\">\n {{ aboutTitle() }}\n </div>\n\n <div>\n <div class=\"list-group-item text-center\">\n @let appIcon = iconName();\n @if (icon()) {\n <img\n class=\"rounded-circle\"\n height=\"150\"\n [src]=\"icon()\"\n [alt]=\"logoAlt() | translate: { appName: appName() }\"\n />\n } @else if (appIcon) {\n <si-icon class=\"app-icon\" [icon]=\"appIcon\" />\n }\n <h3>{{ appName() }}</h3>\n @for (item of subheading(); track $index) {\n <p>{{ item }}</p>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n\n @if (imprintLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: imprintLink() }\"\n />\n }\n @if (privacyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: privacyLink() }\"\n />\n }\n @if (cookieNoticeLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: cookieNoticeLink() }\"\n />\n }\n @if (termsLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: termsLink() }\"\n />\n }\n @if (acceptableUsePolicyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: acceptableUsePolicyLink() }\"\n />\n }\n @for (item of links(); track $index) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: item }\"\n />\n }\n </div>\n </div>\n </div>\n\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\" [class.h-100]=\"licenseInfo().iframe\">\n <div class=\"card-header text-truncate\">\n {{ licenseInfo().title }}\n </div>\n\n <div class=\"h-100\">\n @if (licenseInfo().text) {\n <pre class=\"list-group-item\">{{ licenseInfo().text }}</pre>\n }\n\n @if (sanitizedUrl()) {\n <iframe class=\"w-100 h-100\" [src]=\"sanitizedUrl()\" [title]=\"licenseInfo().title\"></iframe>\n }\n\n @if (licenseInfo().api) {\n @for (api of licenseApi(); track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api\"\n [heading]=\"api.name\"\n (panelToggle)=\"toggleLoadLicenseApi(api)\"\n >\n @for (file of api.files; track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api-file\"\n [icon]=\"licenseInfo().icon ? licenseInfo().icon : icons.elementDocument\"\n [heading]=\"file.name\"\n (panelToggle)=\"toggleLoadLicenseContent(file)\"\n >\n <pre class=\"license-api-file-content px-6 py-6 my-0 border-0\">{{\n file.content\n }}</pre>\n </si-collapsible-panel>\n }\n </si-collapsible-panel>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #linkTemplate let-link=\"link\">\n <a\n class=\"list-group-item si-h5 text-body focus-inside\"\n siLinkDefaultTarget=\"_blank\"\n [siLink]=\"link\"\n >\n {{ link.title | translate }}\n </a>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAboutComponent } from './si-about.component';\n\n@NgModule({\n imports: [SiAboutComponent],\n exports: [SiAboutComponent]\n})\nexport class SiAboutModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-about.component';\nexport * from './si-about.module';\nexport * from './si-about-data.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-about.mjs","sources":["../../../../projects/element-ng/about/si-about.component.ts","../../../../projects/element-ng/about/si-about.component.html","../../../../projects/element-ng/about/si-about.module.ts","../../../../projects/element-ng/about/index.ts","../../../../projects/element-ng/about/siemens-element-ng-about.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, computed, inject, input, OnInit, signal } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { elementDocument } from '@siemens/element-icons';\nimport { SiCollapsiblePanelComponent } from '@siemens/element-ng/accordion';\nimport { CopyrightDetails, SiCopyrightNoticeComponent } from '@siemens/element-ng/copyright-notice';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { ApiInfo, LicenseInfo } from './si-about-data.model';\n\n@Component({\n selector: 'si-about',\n imports: [\n NgTemplateOutlet,\n SiCollapsiblePanelComponent,\n SiCopyrightNoticeComponent,\n SiIconComponent,\n SiLinkDirective,\n SiTranslatePipe\n ],\n templateUrl: './si-about.component.html',\n styleUrl: './si-about.component.scss'\n})\nexport class SiAboutComponent implements OnInit {\n private http = inject(HttpClient);\n private sanitizer = inject(DomSanitizer);\n\n /**\n * Alt text for the application logo. Supports `{{appName}}` placeholder for interpolation.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_ABOUT.LOGO_ALT:{{appName}} logo`)\n * ```\n */\n readonly logoAlt = input(t(() => $localize`:@@SI_ABOUT.LOGO_ALT:{{appName}} logo`));\n\n /**\n * Title shown above the about information.\n */\n readonly aboutTitle = input.required<string>();\n /**\n * Define mode to display the licenses. See {@link LicenseInfo}\n */\n readonly licenseInfo = input.required<LicenseInfo>();\n /**\n * Path to the application logo. Use for image\n */\n readonly icon = input<string>();\n /**\n * Name of element icon. Use as alternative to image\n */\n readonly iconName = input<string>();\n /**\n * Title of this application.\n */\n readonly appName = input.required<string>();\n /**\n * Sub titles of the application. Shown as a list below the application name. (Optional)\n */\n readonly subheading = input<string[]>();\n /**\n * Link to `Acceptable Use Policy`.\n */\n readonly acceptableUsePolicyLink = input<Link>();\n /**\n * Link to `Corporate Information`.\n */\n readonly imprintLink = input<Link>();\n /**\n * Link to `Privacy Notice`.\n */\n readonly privacyLink = input<Link>();\n /**\n * Link to `Cookie Notice`.\n */\n readonly cookieNoticeLink = input<Link>();\n /**\n * Link to `Terms of Use`.\n */\n readonly termsLink = input<Link>();\n /**\n * Additional links listed in the about section.\n *\n * @defaultValue []\n */\n readonly links = input<Link[]>([]);\n /**\n * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.\n */\n readonly copyrightDetails = input<CopyrightDetails>();\n\n protected readonly sanitizedUrl = computed(() => {\n const licenseInfo = this.licenseInfo();\n return licenseInfo.iframe != null\n ? this.sanitizer.bypassSecurityTrustResourceUrl(licenseInfo.iframe)\n : undefined;\n });\n\n protected readonly licenseApi = signal<ApiInfo[]>([]);\n protected readonly icons = addIcons({ elementDocument });\n\n ngOnInit(): void {\n const licenseInfo = this.licenseInfo();\n if (licenseInfo.api) {\n this.http.get<ApiInfo[]>(licenseInfo.api, { responseType: 'json' }).subscribe(data => {\n this.licenseApi.set(data);\n if (this.licenseApi().length === 1) {\n data[0].isOpen = false;\n this.licenseApi.set([...data]);\n this.toggleLoadLicenseApi(this.licenseApi()[0]);\n }\n });\n }\n }\n\n protected toggleLoadLicenseApi(apiInfo: ApiInfo): void {\n const licenseApi = this.licenseApi();\n if (!apiInfo.isOpen && !apiInfo.files) {\n this.http.get<ApiInfo[]>(apiInfo.href, { responseType: 'json' }).subscribe(files => {\n apiInfo.files = files;\n this.licenseApi.set([...licenseApi]);\n });\n }\n apiInfo.isOpen = !apiInfo.isOpen;\n this.licenseApi.set([...licenseApi]);\n }\n\n protected toggleLoadLicenseContent(apiInfo: ApiInfo): void {\n const licenseApi = this.licenseApi();\n apiInfo.isOpen = !apiInfo.isOpen;\n if (!apiInfo.content) {\n this.http.get(apiInfo.href, { responseType: 'text' }).subscribe((content: string) => {\n apiInfo.content = content;\n this.licenseApi.set([...licenseApi]);\n });\n }\n }\n}\n","<div class=\"row mx-6 mt-6\">\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\">\n <div class=\"card-header text-truncate\">\n {{ aboutTitle() }}\n </div>\n\n <div class=\"list-group\">\n <div class=\"list-group-item text-center\">\n @let appIcon = iconName();\n @if (icon()) {\n <img\n class=\"rounded-circle\"\n height=\"150\"\n [src]=\"icon()\"\n [alt]=\"logoAlt() | translate: { appName: appName() }\"\n />\n } @else if (appIcon) {\n <si-icon class=\"app-icon\" [icon]=\"appIcon\" />\n }\n <h3>{{ appName() }}</h3>\n @for (item of subheading(); track $index) {\n <p>{{ item }}</p>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n\n @if (imprintLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: imprintLink() }\"\n />\n }\n @if (privacyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: privacyLink() }\"\n />\n }\n @if (cookieNoticeLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: cookieNoticeLink() }\"\n />\n }\n @if (termsLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: termsLink() }\"\n />\n }\n @if (acceptableUsePolicyLink()) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: acceptableUsePolicyLink() }\"\n />\n }\n @for (item of links(); track $index) {\n <ng-container\n [ngTemplateOutlet]=\"linkTemplate\"\n [ngTemplateOutletContext]=\"{ link: item }\"\n />\n }\n </div>\n </div>\n </div>\n\n <div class=\"col-md-6 mb-6\">\n <div class=\"card overflow-hidden\" [class.h-100]=\"licenseInfo().iframe\">\n <div class=\"card-header text-truncate\">\n {{ licenseInfo().title }}\n </div>\n\n <div class=\"h-100\">\n @if (licenseInfo().text) {\n <pre class=\"border-0 border-bottom my-0 px-6 py-4\">{{ licenseInfo().text }}</pre>\n }\n\n @if (sanitizedUrl()) {\n <iframe class=\"w-100 h-100\" [src]=\"sanitizedUrl()\" [title]=\"licenseInfo().title\"></iframe>\n }\n\n @if (licenseInfo().api) {\n @for (api of licenseApi(); track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api\"\n [heading]=\"api.name\"\n (panelToggle)=\"toggleLoadLicenseApi(api)\"\n >\n @for (file of api.files; track $index) {\n <si-collapsible-panel\n colorVariant=\"base-0\"\n class=\"license-api-file\"\n [icon]=\"licenseInfo().icon ? licenseInfo().icon : icons.elementDocument\"\n [heading]=\"file.name\"\n (panelToggle)=\"toggleLoadLicenseContent(file)\"\n >\n <pre class=\"license-api-file-content px-6 py-6 my-0 border-0\">{{\n file.content\n }}</pre>\n </si-collapsible-panel>\n }\n </si-collapsible-panel>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #linkTemplate let-link=\"link\">\n <a\n class=\"list-group-item si-h5 text-body focus-inside\"\n siLinkDefaultTarget=\"_blank\"\n [siLink]=\"link\"\n >\n {{ link.title | translate }}\n </a>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAboutComponent } from './si-about.component';\n\n@NgModule({\n imports: [SiAboutComponent],\n exports: [SiAboutComponent]\n})\nexport class SiAboutModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-about.component';\nexport * from './si-about.module';\nexport * from './si-about-data.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;AAGG;MA2BU,gBAAgB,CAAA;AACnB,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAExC;;;;;;;AAOG;IACM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,qCAAA,CAAuC,CAAC;gFAAC;AAEnF;;AAEG;IACM,UAAU,GAAG,KAAK,CAAC,QAAQ;mFAAU;AAC9C;;AAEG;IACM,WAAW,GAAG,KAAK,CAAC,QAAQ;oFAAe;AACpD;;AAEG;AACM,IAAA,IAAI,GAAG,KAAK;wFAAU;AAC/B;;AAEG;AACM,IAAA,QAAQ,GAAG,KAAK;4FAAU;AACnC;;AAEG;IACM,OAAO,GAAG,KAAK,CAAC,QAAQ;gFAAU;AAC3C;;AAEG;AACM,IAAA,UAAU,GAAG,KAAK;8FAAY;AACvC;;AAEG;AACM,IAAA,uBAAuB,GAAG,KAAK;2GAAQ;AAChD;;AAEG;AACM,IAAA,WAAW,GAAG,KAAK;+FAAQ;AACpC;;AAEG;AACM,IAAA,WAAW,GAAG,KAAK;+FAAQ;AACpC;;AAEG;AACM,IAAA,gBAAgB,GAAG,KAAK;oGAAQ;AACzC;;AAEG;AACM,IAAA,SAAS,GAAG,KAAK;6FAAQ;AAClC;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AAClC;;AAEG;AACM,IAAA,gBAAgB,GAAG,KAAK;oGAAoB;AAElC,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,OAAO,WAAW,CAAC,MAAM,IAAI;cACzB,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,WAAW,CAAC,MAAM;cAChE,SAAS;IACf,CAAC;qFAAC;IAEiB,UAAU,GAAG,MAAM,CAAY,EAAE;mFAAC;AAClC,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAExD,QAAQ,GAAA;AACN,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,WAAW,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,WAAW,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AACnF,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,oBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK;oBACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjD;AACF,YAAA,CAAC,CAAC;QACJ;IACF;AAEU,IAAA,oBAAoB,CAAC,OAAgB,EAAA;AAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,OAAO,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACjF,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK;gBACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC;QACJ;AACA,QAAA,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;IACtC;AAEU,IAAA,wBAAwB,CAAC,OAAgB,EAAA;AACjD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,QAAA,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAe,KAAI;AAClF,gBAAA,OAAO,CAAC,OAAO,GAAG,OAAO;gBACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC;QACJ;IACF;uGAlHW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B7B,s3HAwHA,EAAA,MAAA,EAAA,CAAA,sUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpGI,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,uMACf,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAKN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EACX;wBACP,gBAAgB;wBAChB,2BAA2B;wBAC3B,0BAA0B;wBAC1B,eAAe;wBACf,eAAe;wBACf;AACD,qBAAA,EAAA,QAAA,EAAA,s3HAAA,EAAA,MAAA,EAAA,CAAA,sUAAA,CAAA,EAAA;;;AE1BH;;;AAGG;MASU,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAb,aAAa,EAAA,OAAA,EAAA,CAHd,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAChB,gBAAgB,CAAA,EAAA,CAAA;AAEf,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,CAAA,EAAA,CAAA;;2FAGf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB;AAC3B,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -25,10 +25,10 @@ class SiAccordionHCollapseService {
|
|
|
25
25
|
* Subject to emit to open the accordion.
|
|
26
26
|
*/
|
|
27
27
|
open$ = new Subject();
|
|
28
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
29
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionHCollapseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionHCollapseService, providedIn: null });
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionHCollapseService, decorators: [{
|
|
32
32
|
type: Injectable,
|
|
33
33
|
args: [{
|
|
34
34
|
providedIn: null
|
|
@@ -52,10 +52,10 @@ class SiAccordionService {
|
|
|
52
52
|
*/
|
|
53
53
|
fullHeight = signal(null, /* @ts-ignore */
|
|
54
54
|
...(ngDevMode ? [{ debugName: "fullHeight" }] : /* istanbul ignore next */ []));
|
|
55
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
56
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
55
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
56
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionService, providedIn: null });
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionService, decorators: [{
|
|
59
59
|
type: Injectable,
|
|
60
60
|
args: [{
|
|
61
61
|
providedIn: null
|
|
@@ -151,7 +151,8 @@ class SiCollapsiblePanelComponent {
|
|
|
151
151
|
});
|
|
152
152
|
/** Restore the content scroll position between open/close of the panel. */
|
|
153
153
|
lastScrollPos = 0;
|
|
154
|
-
contentRef = viewChild.required('content'
|
|
154
|
+
contentRef = viewChild.required('content', /* @ts-ignore */
|
|
155
|
+
...(ngDevMode ? [{ debugName: "contentRef" }] : /* istanbul ignore next */ []));
|
|
155
156
|
constructor() {
|
|
156
157
|
this.isHCollapsible = !!this.accordionHCollapseService;
|
|
157
158
|
this.accordionService?.toggle$
|
|
@@ -195,18 +196,19 @@ class SiCollapsiblePanelComponent {
|
|
|
195
196
|
this.doToggle(undefined);
|
|
196
197
|
}
|
|
197
198
|
}
|
|
198
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
199
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
199
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiCollapsiblePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
200
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiCollapsiblePanelComponent, isStandalone: true, selector: "si-collapsible-panel", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, headerCssClasses: { classPropertyName: "headerCssClasses", publicName: "headerCssClasses", isSignal: true, isRequired: false, transformFunction: null }, contentBgClasses: { classPropertyName: "contentBgClasses", publicName: "contentBgClasses", isSignal: true, isRequired: false, transformFunction: null }, contentCssClasses: { classPropertyName: "contentCssClasses", publicName: "contentCssClasses", isSignal: true, isRequired: false, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "openedChange", panelToggle: "panelToggle" }, host: { attributes: { "animate.enter": "disable-animations" }, properties: { "class": "colorVariant()", "class.opened": "opened()", "class.hcollapsed": "hcollapsed()", "class.full-height": "fullHeight()", "class.disable-animations": "disableAnimation()" } }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.enter=\"content-enter\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--si-sys-background-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--si-sys-background-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--si-sys-background-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--si-sys-background-1);color:var(--si-sys-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--si-sys-text-disabled);cursor:default}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--si-sys-background-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--si-sys-text-primary)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;background:var(--si-sys-background-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}.content-motion{display:grid;grid-template-rows:1fr}.content-motion.content-enter,.content-motion.content-leave{transition:grid-template-rows calc(.5s * var(--element-animations-enabled, 1))}@starting-style{.content-motion.content-enter{grid-template-rows:0fr}}.content-motion.content-leave{grid-template-rows:0fr}:host(.full-height) .content-motion{display:flex}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiTooltipDirective, selector: "[siTooltip]", inputs: ["siTooltip", "placement", "isDisabled", "tooltipScrollStrategy", "tooltipContext"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
200
201
|
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiCollapsiblePanelComponent, decorators: [{
|
|
202
203
|
type: Component,
|
|
203
204
|
args: [{ selector: 'si-collapsible-panel', imports: [SiIconComponent, SiTranslatePipe, SiTooltipDirective], host: {
|
|
204
205
|
'[class]': 'colorVariant()',
|
|
205
206
|
'[class.opened]': 'opened()',
|
|
206
207
|
'[class.hcollapsed]': 'hcollapsed()',
|
|
207
208
|
'[class.full-height]': 'fullHeight()',
|
|
208
|
-
'[
|
|
209
|
-
|
|
209
|
+
'[class.disable-animations]': 'disableAnimation()',
|
|
210
|
+
'animate.enter': 'disable-animations'
|
|
211
|
+
}, template: "<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.enter=\"content-enter\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--si-sys-background-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--si-sys-background-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--si-sys-background-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--si-sys-background-1);color:var(--si-sys-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--si-sys-text-disabled);cursor:default}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--si-sys-background-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--si-sys-text-primary)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;background:var(--si-sys-background-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}.content-motion{display:grid;grid-template-rows:1fr}.content-motion.content-enter,.content-motion.content-leave{transition:grid-template-rows calc(.5s * var(--element-animations-enabled, 1))}@starting-style{.content-motion.content-enter{grid-template-rows:0fr}}.content-motion.content-leave{grid-template-rows:0fr}:host(.full-height) .content-motion{display:flex}\n"] }]
|
|
210
212
|
}], ctorParameters: () => [], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], headerCssClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerCssClasses", required: false }] }], contentBgClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentBgClasses", required: false }] }], contentCssClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentCssClasses", required: false }] }], opened: [{ type: i0.Input, args: [{ isSignal: true, alias: "opened", required: false }] }, { type: i0.Output, args: ["openedChange"] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], colorVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorVariant", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], badgeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeColor", required: false }] }], panelToggle: [{ type: i0.Output, args: ["panelToggle"] }], contentRef: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }] } });
|
|
211
213
|
|
|
212
214
|
/**
|
|
@@ -215,11 +217,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
215
217
|
*/
|
|
216
218
|
const PANEL_MIN_HEIGHT = 100;
|
|
217
219
|
class SiAccordionComponent {
|
|
218
|
-
/**
|
|
220
|
+
/**
|
|
221
|
+
* Whether the first panel is expanded initially.
|
|
222
|
+
* @defaultValue true
|
|
223
|
+
*/
|
|
219
224
|
expandFirstPanel = input(true, { ...(ngDevMode ? { debugName: "expandFirstPanel" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
220
|
-
/**
|
|
225
|
+
/**
|
|
226
|
+
* Whether panels expand to fill the accordion height.
|
|
227
|
+
* @defaultValue false
|
|
228
|
+
*/
|
|
221
229
|
fullHeight = input(false, { ...(ngDevMode ? { debugName: "fullHeight" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
222
|
-
/**
|
|
230
|
+
/**
|
|
231
|
+
* Whether the accordion is horizontally collapsed.
|
|
232
|
+
* @defaultValue false
|
|
233
|
+
*/
|
|
223
234
|
hcollapsed = input(false, /* @ts-ignore */
|
|
224
235
|
...(ngDevMode ? [{ debugName: "hcollapsed" }] : /* istanbul ignore next */ []));
|
|
225
236
|
/**
|
|
@@ -253,10 +264,10 @@ class SiAccordionComponent {
|
|
|
253
264
|
this.service.fullHeight.set(this.fullHeight() && !this.responsive);
|
|
254
265
|
}
|
|
255
266
|
}
|
|
256
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
257
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.
|
|
267
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
268
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: SiAccordionComponent, isStandalone: true, selector: "si-accordion", inputs: { expandFirstPanel: { classPropertyName: "expandFirstPanel", publicName: "expandFirstPanel", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null }, hcollapsed: { classPropertyName: "hcollapsed", publicName: "hcollapsed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.full-height": "fullHeight()", "class.hcollapsed": "collapsed()" } }, providers: [SiAccordionService], queries: [{ propertyName: "panels", predicate: SiCollapsiblePanelComponent, isSignal: true }], usesOnChanges: true, ngImport: i0, template: '<div><ng-content /></div>', isInline: true, styles: [":host,:host>div{display:flex;flex-direction:column}:host.full-height{block-size:100%}:host.full-height>div{overflow-y:auto;flex:1 1 0}:host.full-height.hcollapsed>div{overflow-y:unset;flex-basis:auto}\n"] });
|
|
258
269
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionComponent, decorators: [{
|
|
260
271
|
type: Component,
|
|
261
272
|
args: [{ selector: 'si-accordion', template: '<div><ng-content /></div>', providers: [SiAccordionService], host: {
|
|
262
273
|
'[class.full-height]': 'fullHeight()',
|
|
@@ -269,11 +280,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
269
280
|
* SPDX-License-Identifier: MIT
|
|
270
281
|
*/
|
|
271
282
|
class SiAccordionModule {
|
|
272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
273
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.
|
|
274
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.
|
|
283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
284
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionModule, imports: [SiAccordionComponent, SiCollapsiblePanelComponent], exports: [SiAccordionComponent, SiCollapsiblePanelComponent] });
|
|
285
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionModule, imports: [SiCollapsiblePanelComponent] });
|
|
275
286
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAccordionModule, decorators: [{
|
|
277
288
|
type: NgModule,
|
|
278
289
|
args: [{
|
|
279
290
|
imports: [SiAccordionComponent, SiCollapsiblePanelComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-accordion.mjs","sources":["../../../../projects/element-ng/accordion/si-accordion-hcollapse.service.ts","../../../../projects/element-ng/accordion/si-accordion.service.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.html","../../../../projects/element-ng/accordion/si-accordion.component.ts","../../../../projects/element-ng/accordion/si-accordion.module.ts","../../../../projects/element-ng/accordion/index.ts","../../../../projects/element-ng/accordion/siemens-element-ng-accordion.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionHCollapseService {\n /**\n * Emitting the current horizontal collapsed state.\n *\n * @defaultValue undefined\n */\n readonly hcollapsed = signal<boolean | undefined>(undefined);\n /**\n * Subject to emit to open the accordion.\n */\n readonly open$ = new Subject();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionService {\n /**\n * Emit an item in the accordion which should be toggled.\n */\n readonly toggle$ = new Subject<any>();\n /**\n * Subject to emit when the items should be expanded to their full height or restored to normal height.\n *\n * @defaultValue null\n */\n readonly fullHeight = signal<boolean | null>(null);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { filter } from 'rxjs';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\n\nlet controlIdCounter = 1;\n\n@Component({\n selector: 'si-collapsible-panel',\n imports: [SiIconComponent, SiTranslatePipe, SiTooltipDirective],\n templateUrl: './si-collapsible-panel.component.html',\n styleUrl: './si-collapsible-panel.component.scss',\n host: {\n '[class]': 'colorVariant()',\n '[class.opened]': 'opened()',\n '[class.hcollapsed]': 'hcollapsed()',\n '[class.full-height]': 'fullHeight()',\n '[style.--element-animations-enabled]': 'disableAnimation() ? \"0\" : undefined'\n }\n})\nexport class SiCollapsiblePanelComponent {\n /**\n * Heading for the collapsible panel.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Additional CSS classes for the top element.\n *\n * @defaultValue ''\n */\n readonly headerCssClasses = input('');\n /**\n * Additional CSS classes for the collapsible content region.\n *\n * @defaultValue ''\n */\n readonly contentBgClasses = input('');\n /**\n * Additional CSS classes for the wrapping content element.\n *\n * @defaultValue ''\n */\n readonly contentCssClasses = input('');\n /**\n * Expand/collapse the panel.\n *\n * @defaultValue false\n */\n readonly opened = model(false);\n /**\n * The icon to be displayed besides the heading.\n */\n readonly icon = input<string>();\n /**\n * Whether the si-collapsible-panel is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Color variant for component background.\n *\n * @deprecated This input has no effect on the component styling.\n */\n readonly colorVariant = input<BackgroundColorVariant>();\n /**\n * Defines the content of the optional badge. Should be a number or something like \"100+\".\n * if undefined or empty string, no badge is displayed\n */\n readonly badge = input<string | number>();\n /**\n * Defines the background color of the badge. Default is specific to Element flavour.\n */\n readonly badgeColor = input<string>();\n\n /**\n * An event emitted when the user triggered expand/collapse and emit with the new open state.\n * The event is emitted before the animation happens.\n */\n readonly panelToggle = output<boolean>();\n\n protected readonly hcollapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? false\n );\n protected readonly fullHeight = computed(() => this.accordionService?.fullHeight() ?? false);\n protected controlId = '__si-collapsible-' + controlIdCounter++;\n protected headerId = this.controlId + '-header';\n protected isHCollapsible = false;\n protected readonly icons = addIcons({ elementDown2 });\n protected readonly disableAnimation = signal(false);\n\n private readonly accordionService = inject(SiAccordionService, { optional: true });\n private readonly accordionHCollapseService = inject(SiAccordionHCollapseService, {\n optional: true\n });\n /** Restore the content scroll position between open/close of the panel. */\n private lastScrollPos = 0;\n private readonly contentRef = viewChild.required<ElementRef<HTMLElement>>('content');\n\n constructor() {\n this.isHCollapsible = !!this.accordionHCollapseService;\n this.accordionService?.toggle$\n .pipe(\n takeUntilDestroyed(),\n filter(item => item !== this)\n )\n .subscribe(() => this.openClose(false));\n }\n\n /**\n * Expand/collapse panel.\n * @param open - indicate the panel shall open or close\n * @param enableAnimation - with animation\n */\n openClose(open: boolean, enableAnimation = true): void {\n this.opened.set(open);\n this.disableAnimation.set(!enableAnimation);\n\n if (open) {\n // Restore scroll position after opening\n setTimeout(() => {\n this.contentRef().nativeElement.scrollTop = this.lastScrollPos;\n });\n } else {\n // Save scroll position before closing\n this.lastScrollPos = this.contentRef().nativeElement.scrollTop;\n }\n }\n\n protected doToggle(event?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n event?.preventDefault();\n const opened = this.opened();\n this.panelToggle.emit(!opened);\n this.openClose(this.hcollapsed() || !opened);\n this.accordionService?.toggle$.next(this);\n if (this.hcollapsed()) {\n this.accordionHCollapseService?.open$.next(this);\n }\n }\n\n protected keydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === 'Space' || event.key === ' ') {\n this.doToggle(undefined);\n }\n }\n}\n","<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterContentInit,\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnChanges\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\nconst PANEL_MIN_HEIGHT = 100;\n\n@Component({\n selector: 'si-accordion',\n template: '<div><ng-content /></div>',\n styleUrl: './si-accordion.component.scss',\n providers: [SiAccordionService],\n host: {\n '[class.full-height]': 'fullHeight()',\n '[class.hcollapsed]': 'collapsed()'\n }\n})\nexport class SiAccordionComponent implements AfterContentInit, OnChanges {\n /** @defaultValue true */\n readonly expandFirstPanel = input(true, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly fullHeight = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly hcollapsed = input(false);\n /**\n * Indicate whether the accordion is collapsed.\n * @internal\n */\n readonly collapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? this.hcollapsed()\n );\n\n private readonly panels = contentChildren(SiCollapsiblePanelComponent);\n private responsive = false;\n private destroyer = inject(DestroyRef);\n private service = inject(SiAccordionService);\n private resizeObserver = inject(ResizeObserverService);\n private element = inject(ElementRef);\n private accordionHCollapseService = inject(SiAccordionHCollapseService, { optional: true });\n\n ngOnChanges(): void {\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n\n ngAfterContentInit(): void {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true, true)\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() => this.calcFullHeight());\n\n this.panels().at(0)?.openClose(this.expandFirstPanel(), false);\n }\n\n private calcFullHeight(): void {\n if (this.panels()?.length) {\n const height = (this.element.nativeElement as HTMLElement).offsetHeight;\n this.responsive = !this.hcollapsed() && height < this.panels().length * PANEL_MIN_HEIGHT;\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAccordionComponent } from './si-accordion.component';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\n@NgModule({\n imports: [SiAccordionComponent, SiCollapsiblePanelComponent],\n exports: [SiAccordionComponent, SiCollapsiblePanelComponent]\n})\nexport class SiAccordionModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-collapsible-panel.component';\nexport * from './si-accordion.component';\nexport * from './si-accordion.service';\nexport * from './si-accordion-hcollapse.service';\nexport * from './si-accordion.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;;;AAGG;AAIH;MAIa,2BAA2B,CAAA;AACtC;;;;AAIG;IACM,UAAU,GAAG,MAAM,CAAsB,SAAS;mFAAC;AAC5D;;AAEG;AACM,IAAA,KAAK,GAAG,IAAI,OAAO,EAAE;uGAVnB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,IAAI,EAAA,CAAA;;2FAEL,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;;AAGG;AAIH;MAIa,kBAAkB,CAAA;AAC7B;;AAEG;AACM,IAAA,OAAO,GAAG,IAAI,OAAO,EAAO;AACrC;;;;AAIG;IACM,UAAU,GAAG,MAAM,CAAiB,IAAI;mFAAC;uGAVvC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,IAAI,EAAA,CAAA;;2FAEL,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;;AAGG;AAwBH,IAAI,gBAAgB,GAAG,CAAC;MAeX,2BAA2B,CAAA;AACtC;;AAEG;AACM,IAAA,OAAO,GAAG,KAAK;2FAAsB;AAC9C;;;;AAIG;IACM,gBAAgB,GAAG,KAAK,CAAC,EAAE;yFAAC;AACrC;;;;AAIG;IACM,gBAAgB,GAAG,KAAK,CAAC,EAAE;yFAAC;AACrC;;;;AAIG;IACM,iBAAiB,GAAG,KAAK,CAAC,EAAE;0FAAC;AACtC;;;;AAIG;IACM,MAAM,GAAG,KAAK,CAAC,KAAK;+EAAC;AAC9B;;AAEG;AACM,IAAA,IAAI,GAAG,KAAK;wFAAU;AAC/B;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACjE;;;;AAIG;AACM,IAAA,YAAY,GAAG,KAAK;gGAA0B;AACvD;;;AAGG;AACM,IAAA,KAAK,GAAG,KAAK;yFAAmB;AACzC;;AAEG;AACM,IAAA,UAAU,GAAG,KAAK;8FAAU;AAErC;;;AAGG;IACM,WAAW,GAAG,MAAM,EAAW;AAErB,IAAA,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,KAAK;mFAC5D;AACkB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,KAAK;mFAAC;AAClF,IAAA,SAAS,GAAG,mBAAmB,GAAG,gBAAgB,EAAE;AACpD,IAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS;IACrC,cAAc,GAAG,KAAK;AACb,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,gBAAgB,GAAG,MAAM,CAAC,KAAK;yFAAC;IAElC,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,IAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,EAAE;AAC/E,QAAA,QAAQ,EAAE;AACX,KAAA,CAAC;;IAEM,aAAa,GAAG,CAAC;AACR,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA0B,SAAS,CAAC;AAEpF,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB;QACtD,IAAI,CAAC,gBAAgB,EAAE;AACpB,aAAA,IAAI,CACH,kBAAkB,EAAE,EACpB,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;aAE9B,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3C;AAEA;;;;AAIG;AACH,IAAA,SAAS,CAAC,IAAa,EAAE,eAAe,GAAG,IAAI,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;QAE3C,IAAI,IAAI,EAAE;;YAER,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AAChE,YAAA,CAAC,CAAC;QACJ;aAAO;;YAEL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,SAAS;QAChE;IACF;AAEU,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QAEA,KAAK,EAAE,cAAc,EAAE;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD;IACF;AAEU,IAAA,OAAO,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACvE,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B;IACF;uGAhIW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,u0DC1CxC,s5DAiEA,EAAA,MAAA,EAAA,CAAA,k1DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlCY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAmB,kBAAkB,gJAAnC,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAW/B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAbvC,SAAS;+BACE,sBAAsB,EAAA,OAAA,EACvB,CAAC,eAAe,EAAE,eAAe,EAAE,kBAAkB,CAAC,EAAA,IAAA,EAGzD;AACJ,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,gBAAgB,EAAE,UAAU;AAC5B,wBAAA,oBAAoB,EAAE,cAAc;AACpC,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,sCAAsC,EAAE;AACzC,qBAAA,EAAA,QAAA,EAAA,s5DAAA,EAAA,MAAA,EAAA,CAAA,k1DAAA,CAAA,EAAA;orCA+EyE,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEvHrF;;;AAGG;AAoBH,MAAM,gBAAgB,GAAG,GAAG;MAYf,oBAAoB,CAAA;;IAEtB,gBAAgB,GAAG,KAAK,CAAC,IAAI,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAE/D,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAE1D,UAAU,GAAG,KAAK,CAAC,KAAK;mFAAC;AAClC;;;AAGG;AACM,IAAA,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;kFACxE;IAEgB,MAAM,GAAG,eAAe,CAAC,2BAA2B;+EAAC;IAC9D,UAAU,GAAG,KAAK;AAClB,IAAA,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,IAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACpC,IAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAC5B,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE3F,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACpE;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC;AACF,aAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;AACnD,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;aACvC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC;IAChE;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE;YACzB,MAAM,MAAM,GAAI,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,YAAY;AACvE,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,gBAAgB;AACxF,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACpE;IACF;uGA1CW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,glBANpB,CAAC,kBAAkB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAqBW,2BAA2B,kEAvB3D,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4MAAA,CAAA,EAAA,CAAA;;2FAQ1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,YACd,2BAA2B,EAAA,SAAA,EAE1B,CAAC,kBAAkB,CAAC,EAAA,IAAA,EACzB;AACJ,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,oBAAoB,EAAE;AACvB,qBAAA,EAAA,MAAA,EAAA,CAAA,4MAAA,CAAA,EAAA;sZAiByC,2BAA2B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AClDvE;;;AAGG;MAUU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHlB,oBAAoB,EAAE,2BAA2B,CAAA,EAAA,OAAA,EAAA,CACjD,oBAAoB,EAAE,2BAA2B,CAAA,EAAA,CAAA;AAEhD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHI,2BAA2B,CAAA,EAAA,CAAA;;2FAGhD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;AAC5D,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,2BAA2B;AAC5D,iBAAA;;;ACZD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-accordion.mjs","sources":["../../../../projects/element-ng/accordion/si-accordion-hcollapse.service.ts","../../../../projects/element-ng/accordion/si-accordion.service.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.html","../../../../projects/element-ng/accordion/si-accordion.component.ts","../../../../projects/element-ng/accordion/si-accordion.module.ts","../../../../projects/element-ng/accordion/index.ts","../../../../projects/element-ng/accordion/siemens-element-ng-accordion.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionHCollapseService {\n /**\n * Emitting the current horizontal collapsed state.\n *\n * @defaultValue undefined\n */\n readonly hcollapsed = signal<boolean | undefined>(undefined);\n /**\n * Subject to emit to open the accordion.\n */\n readonly open$ = new Subject();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionService {\n /**\n * Emit an item in the accordion which should be toggled.\n */\n readonly toggle$ = new Subject<any>();\n /**\n * Subject to emit when the items should be expanded to their full height or restored to normal height.\n *\n * @defaultValue null\n */\n readonly fullHeight = signal<boolean | null>(null);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { filter } from 'rxjs';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\n\nlet controlIdCounter = 1;\n\n@Component({\n selector: 'si-collapsible-panel',\n imports: [SiIconComponent, SiTranslatePipe, SiTooltipDirective],\n templateUrl: './si-collapsible-panel.component.html',\n styleUrl: './si-collapsible-panel.component.scss',\n host: {\n '[class]': 'colorVariant()',\n '[class.opened]': 'opened()',\n '[class.hcollapsed]': 'hcollapsed()',\n '[class.full-height]': 'fullHeight()',\n '[class.disable-animations]': 'disableAnimation()',\n 'animate.enter': 'disable-animations'\n }\n})\nexport class SiCollapsiblePanelComponent {\n /**\n * Heading for the collapsible panel.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Additional CSS classes for the top element.\n *\n * @defaultValue ''\n */\n readonly headerCssClasses = input('');\n /**\n * Additional CSS classes for the collapsible content region.\n *\n * @defaultValue ''\n */\n readonly contentBgClasses = input('');\n /**\n * Additional CSS classes for the wrapping content element.\n *\n * @defaultValue ''\n */\n readonly contentCssClasses = input('');\n /**\n * Expand/collapse the panel.\n *\n * @defaultValue false\n */\n readonly opened = model(false);\n /**\n * The icon to be displayed besides the heading.\n */\n readonly icon = input<string>();\n /**\n * Whether the si-collapsible-panel is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Color variant for component background.\n *\n * @deprecated This input has no effect on the component styling.\n */\n readonly colorVariant = input<BackgroundColorVariant>();\n /**\n * Defines the content of the optional badge. Should be a number or something like \"100+\".\n * if undefined or empty string, no badge is displayed\n */\n readonly badge = input<string | number>();\n /**\n * Defines the background color of the badge. Default is specific to Element flavour.\n */\n readonly badgeColor = input<string>();\n\n /**\n * An event emitted when the user triggered expand/collapse and emit with the new open state.\n * The event is emitted before the animation happens.\n */\n readonly panelToggle = output<boolean>();\n\n protected readonly hcollapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? false\n );\n protected readonly fullHeight = computed(() => this.accordionService?.fullHeight() ?? false);\n protected controlId = '__si-collapsible-' + controlIdCounter++;\n protected headerId = this.controlId + '-header';\n protected isHCollapsible = false;\n protected readonly icons = addIcons({ elementDown2 });\n protected readonly disableAnimation = signal(false);\n\n private readonly accordionService = inject(SiAccordionService, { optional: true });\n private readonly accordionHCollapseService = inject(SiAccordionHCollapseService, {\n optional: true\n });\n /** Restore the content scroll position between open/close of the panel. */\n private lastScrollPos = 0;\n private readonly contentRef = viewChild.required<ElementRef<HTMLElement>>('content');\n\n constructor() {\n this.isHCollapsible = !!this.accordionHCollapseService;\n this.accordionService?.toggle$\n .pipe(\n takeUntilDestroyed(),\n filter(item => item !== this)\n )\n .subscribe(() => this.openClose(false));\n }\n\n /**\n * Expand/collapse panel.\n * @param open - indicate the panel shall open or close\n * @param enableAnimation - with animation\n */\n openClose(open: boolean, enableAnimation = true): void {\n this.opened.set(open);\n this.disableAnimation.set(!enableAnimation);\n\n if (open) {\n // Restore scroll position after opening\n setTimeout(() => {\n this.contentRef().nativeElement.scrollTop = this.lastScrollPos;\n });\n } else {\n // Save scroll position before closing\n this.lastScrollPos = this.contentRef().nativeElement.scrollTop;\n }\n }\n\n protected doToggle(event?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n event?.preventDefault();\n const opened = this.opened();\n this.panelToggle.emit(!opened);\n this.openClose(this.hcollapsed() || !opened);\n this.accordionService?.toggle$.next(this);\n if (this.hcollapsed()) {\n this.accordionHCollapseService?.open$.next(this);\n }\n }\n\n protected keydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === 'Space' || event.key === ' ') {\n this.doToggle(undefined);\n }\n }\n}\n","<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.enter=\"content-enter\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterContentInit,\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnChanges\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\nconst PANEL_MIN_HEIGHT = 100;\n\n@Component({\n selector: 'si-accordion',\n template: '<div><ng-content /></div>',\n styleUrl: './si-accordion.component.scss',\n providers: [SiAccordionService],\n host: {\n '[class.full-height]': 'fullHeight()',\n '[class.hcollapsed]': 'collapsed()'\n }\n})\nexport class SiAccordionComponent implements AfterContentInit, OnChanges {\n /**\n * Whether the first panel is expanded initially.\n * @defaultValue true\n */\n readonly expandFirstPanel = input(true, { transform: booleanAttribute });\n /**\n * Whether panels expand to fill the accordion height.\n * @defaultValue false\n */\n readonly fullHeight = input(false, { transform: booleanAttribute });\n /**\n * Whether the accordion is horizontally collapsed.\n * @defaultValue false\n */\n readonly hcollapsed = input(false);\n /**\n * Indicate whether the accordion is collapsed.\n * @internal\n */\n readonly collapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? this.hcollapsed()\n );\n\n private readonly panels = contentChildren(SiCollapsiblePanelComponent);\n private responsive = false;\n private destroyer = inject(DestroyRef);\n private service = inject(SiAccordionService);\n private resizeObserver = inject(ResizeObserverService);\n private element = inject(ElementRef);\n private accordionHCollapseService = inject(SiAccordionHCollapseService, { optional: true });\n\n ngOnChanges(): void {\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n\n ngAfterContentInit(): void {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true, true)\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() => this.calcFullHeight());\n\n this.panels().at(0)?.openClose(this.expandFirstPanel(), false);\n }\n\n private calcFullHeight(): void {\n if (this.panels()?.length) {\n const height = (this.element.nativeElement as HTMLElement).offsetHeight;\n this.responsive = !this.hcollapsed() && height < this.panels().length * PANEL_MIN_HEIGHT;\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAccordionComponent } from './si-accordion.component';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\n@NgModule({\n imports: [SiAccordionComponent, SiCollapsiblePanelComponent],\n exports: [SiAccordionComponent, SiCollapsiblePanelComponent]\n})\nexport class SiAccordionModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-collapsible-panel.component';\nexport * from './si-accordion.component';\nexport * from './si-accordion.service';\nexport * from './si-accordion-hcollapse.service';\nexport * from './si-accordion.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;;;AAGG;AAIH;MAIa,2BAA2B,CAAA;AACtC;;;;AAIG;IACM,UAAU,GAAG,MAAM,CAAsB,SAAS;mFAAC;AAC5D;;AAEG;AACM,IAAA,KAAK,GAAG,IAAI,OAAO,EAAE;uGAVnB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,IAAI,EAAA,CAAA;;2FAEL,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;;AAGG;AAIH;MAIa,kBAAkB,CAAA;AAC7B;;AAEG;AACM,IAAA,OAAO,GAAG,IAAI,OAAO,EAAO;AACrC;;;;AAIG;IACM,UAAU,GAAG,MAAM,CAAiB,IAAI;mFAAC;uGAVvC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,IAAI,EAAA,CAAA;;2FAEL,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;;AAGG;AAwBH,IAAI,gBAAgB,GAAG,CAAC;MAgBX,2BAA2B,CAAA;AACtC;;AAEG;AACM,IAAA,OAAO,GAAG,KAAK;2FAAsB;AAC9C;;;;AAIG;IACM,gBAAgB,GAAG,KAAK,CAAC,EAAE;yFAAC;AACrC;;;;AAIG;IACM,gBAAgB,GAAG,KAAK,CAAC,EAAE;yFAAC;AACrC;;;;AAIG;IACM,iBAAiB,GAAG,KAAK,CAAC,EAAE;0FAAC;AACtC;;;;AAIG;IACM,MAAM,GAAG,KAAK,CAAC,KAAK;+EAAC;AAC9B;;AAEG;AACM,IAAA,IAAI,GAAG,KAAK;wFAAU;AAC/B;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACjE;;;;AAIG;AACM,IAAA,YAAY,GAAG,KAAK;gGAA0B;AACvD;;;AAGG;AACM,IAAA,KAAK,GAAG,KAAK;yFAAmB;AACzC;;AAEG;AACM,IAAA,UAAU,GAAG,KAAK;8FAAU;AAErC;;;AAGG;IACM,WAAW,GAAG,MAAM,EAAW;AAErB,IAAA,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,KAAK;mFAC5D;AACkB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,KAAK;mFAAC;AAClF,IAAA,SAAS,GAAG,mBAAmB,GAAG,gBAAgB,EAAE;AACpD,IAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS;IACrC,cAAc,GAAG,KAAK;AACb,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,gBAAgB,GAAG,MAAM,CAAC,KAAK;yFAAC;IAElC,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,IAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,EAAE;AAC/E,QAAA,QAAQ,EAAE;AACX,KAAA,CAAC;;IAEM,aAAa,GAAG,CAAC;AACR,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA0B,SAAS;mFAAC;AAEpF,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB;QACtD,IAAI,CAAC,gBAAgB,EAAE;AACpB,aAAA,IAAI,CACH,kBAAkB,EAAE,EACpB,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;aAE9B,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3C;AAEA;;;;AAIG;AACH,IAAA,SAAS,CAAC,IAAa,EAAE,eAAe,GAAG,IAAI,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;QAE3C,IAAI,IAAI,EAAE;;YAER,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AAChE,YAAA,CAAC,CAAC;QACJ;aAAO;;YAEL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,SAAS;QAChE;IACF;AAEU,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QAEA,KAAK,EAAE,cAAc,EAAE;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD;IACF;AAEU,IAAA,OAAO,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACvE,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B;IACF;uGAhIW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,g2DC3CxC,s7DAiEA,EAAA,MAAA,EAAA,CAAA,27DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlCY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAmB,kBAAkB,gJAAnC,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAY/B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAdvC,SAAS;+BACE,sBAAsB,EAAA,OAAA,EACvB,CAAC,eAAe,EAAE,eAAe,EAAE,kBAAkB,CAAC,EAAA,IAAA,EAGzD;AACJ,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,gBAAgB,EAAE,UAAU;AAC5B,wBAAA,oBAAoB,EAAE,cAAc;AACpC,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,4BAA4B,EAAE,oBAAoB;AAClD,wBAAA,eAAe,EAAE;AAClB,qBAAA,EAAA,QAAA,EAAA,s7DAAA,EAAA,MAAA,EAAA,CAAA,27DAAA,CAAA,EAAA;orCA+EyE,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AExHrF;;;AAGG;AAoBH,MAAM,gBAAgB,GAAG,GAAG;MAYf,oBAAoB,CAAA;AAC/B;;;AAGG;IACM,gBAAgB,GAAG,KAAK,CAAC,IAAI,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxE;;;AAGG;IACM,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACnE;;;AAGG;IACM,UAAU,GAAG,KAAK,CAAC,KAAK;mFAAC;AAClC;;;AAGG;AACM,IAAA,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;kFACxE;IAEgB,MAAM,GAAG,eAAe,CAAC,2BAA2B;+EAAC;IAC9D,UAAU,GAAG,KAAK;AAClB,IAAA,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,IAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACpC,IAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC9C,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IAC5B,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE3F,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACpE;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC;AACF,aAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;AACnD,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;aACvC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC;IAChE;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE;YACzB,MAAM,MAAM,GAAI,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,YAAY;AACvE,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,gBAAgB;AACxF,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACpE;IACF;uGAnDW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,glBANpB,CAAC,kBAAkB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EA8BW,2BAA2B,kEAhC3D,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4MAAA,CAAA,EAAA,CAAA;;2FAQ1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,YACd,2BAA2B,EAAA,SAAA,EAE1B,CAAC,kBAAkB,CAAC,EAAA,IAAA,EACzB;AACJ,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,oBAAoB,EAAE;AACvB,qBAAA,EAAA,MAAA,EAAA,CAAA,4MAAA,CAAA,EAAA;sZA0ByC,2BAA2B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC3DvE;;;AAGG;MAUU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHlB,oBAAoB,EAAE,2BAA2B,CAAA,EAAA,OAAA,EAAA,CACjD,oBAAoB,EAAE,2BAA2B,CAAA,EAAA,CAAA;AAEhD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHI,2BAA2B,CAAA,EAAA,CAAA;;2FAGhD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;AAC5D,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,2BAA2B;AAC5D,iBAAA;;;ACZD;;;AAGG;;ACHH;;AAEG;;;;"}
|