@siemens/element-ng 47.8.0 → 48.0.0-next.1
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/about/index.d.ts +127 -3
- package/accordion/index.d.ts +152 -9
- package/action-modal/index.d.ts +92 -2
- package/application-header/index.d.ts +357 -13
- package/auto-collapsable-list/index.d.ts +114 -10
- package/autocomplete/index.d.ts +77 -8
- package/avatar/index.d.ts +83 -4
- package/badge/index.d.ts +21 -5
- package/breadcrumb/index.d.ts +90 -3
- package/breadcrumb-router/index.d.ts +104 -4
- package/card/index.d.ts +88 -6
- package/circle-status/index.d.ts +75 -6
- package/color-picker/index.d.ts +65 -5
- package/column-selection-dialog/index.d.ts +89 -2
- package/common/index.d.ts +421 -4
- package/connection-strength/index.d.ts +29 -6
- package/content-action-bar/index.d.ts +88 -3
- package/copyright-notice/index.d.ts +48 -3
- package/dashboard/index.d.ts +782 -16
- package/datatable/index.d.ts +45 -6
- package/date-range-filter/index.d.ts +333 -4
- package/datepicker/index.d.ts +1409 -11
- package/electron-titlebar/index.d.ts +84 -3
- package/empty-state/index.d.ts +27 -6
- package/fesm2022/siemens-element-ng-about.mjs +7 -7
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +17 -30
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +41 -125
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +69 -65
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +47 -43
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +35 -35
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +6 -6
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +3 -3
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +10 -10
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +13 -13
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +7 -7
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +7 -7
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +11 -12
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +28 -31
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +14 -14
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +7 -7
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +13 -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-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +61 -61
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +7 -7
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +87 -73
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +104 -142
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +14 -14
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +7 -7
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +54 -54
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +18 -18
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +31 -74
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +7 -7
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +125 -271
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +78 -83
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +18 -17
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +63 -0
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-icon-status.mjs +7 -7
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +28 -27
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +3 -3
- 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-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +10 -9
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +7 -7
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +10 -10
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +10 -10
- package/fesm2022/siemens-element-ng-list-details.mjs +27 -27
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +19 -19
- 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-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +10 -10
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +34 -34
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +8 -8
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +43 -57
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +29 -29
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +7 -7
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +14 -14
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +13 -16
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +12 -12
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +19 -19
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +25 -25
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +22 -22
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-next.mjs +34 -23
- package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +10 -10
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +10 -10
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +13 -13
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +8 -20
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +18 -15
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +66 -66
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -5
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +24 -24
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +12 -13
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +14 -14
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +10 -10
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +13 -29
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +19 -19
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +7 -7
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +3 -3
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +5 -5
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +3 -3
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-next.mjs +147 -176
- package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +12 -11
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +5 -5
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +22 -22
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +11 -11
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +22 -16
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +19 -19
- 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 +44 -55
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +19 -36
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs +7 -7
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +76 -109
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/file-uploader/index.d.ts +419 -4
- package/filter-bar/index.d.ts +117 -4
- package/filtered-search/index.d.ts +433 -3
- package/footer/index.d.ts +23 -6
- package/form/index.d.ts +411 -10
- package/formly/index.d.ts +217 -2
- package/header-dropdown/index.d.ts +150 -5
- package/help-button/index.d.ts +26 -0
- package/help-button/package.json +3 -0
- package/icon/index.d.ts +210 -7
- package/icon-status/index.d.ts +33 -6
- package/index.d.ts +5 -3
- package/info-page/index.d.ts +39 -3
- package/inline-notification/index.d.ts +49 -6
- package/ip-input/index.d.ts +87 -3
- package/landing-page/index.d.ts +95 -3
- package/language-switcher/index.d.ts +53 -3
- package/link/index.d.ts +127 -4
- package/list-details/index.d.ts +176 -12
- package/loading-spinner/index.d.ts +128 -9
- package/localization/index.d.ts +147 -4
- package/main-detail-container/index.d.ts +161 -6
- package/menu/index.d.ts +195 -11
- package/modal/index.d.ts +129 -3
- package/navbar/index.d.ts +304 -4
- package/navbar-vertical/index.d.ts +226 -3
- package/number-input/index.d.ts +111 -6
- package/package.json +17 -13
- package/pagination/index.d.ts +75 -6
- package/password-strength/index.d.ts +96 -7
- package/password-toggle/index.d.ts +49 -6
- package/phone-number/index.d.ts +192 -3
- package/photo-upload/index.d.ts +304 -4
- package/pills-input/index.d.ts +135 -9
- package/popover/index.d.ts +98 -6
- package/popover-next/index.d.ts +112 -7
- package/progressbar/index.d.ts +54 -6
- package/resize-observer/index.d.ts +143 -6
- package/result-details-list/index.d.ts +58 -3
- package/search-bar/index.d.ts +93 -6
- package/select/index.d.ts +605 -14
- package/shadow-root/index.d.ts +39 -1
- package/side-panel/index.d.ts +276 -5
- package/skip-links/index.d.ts +24 -3
- package/slider/index.d.ts +139 -6
- package/sort-bar/index.d.ts +49 -6
- package/split/index.d.ts +207 -4
- package/status-bar/index.d.ts +178 -3
- package/status-toggle/index.d.ts +81 -2
- package/summary-chip/index.d.ts +48 -5
- package/summary-widget/index.d.ts +48 -5
- package/system-banner/index.d.ts +24 -3
- package/tabs/index.d.ts +161 -7
- package/tabs-next/index.d.ts +121 -7
- package/template-i18n.json +0 -3
- package/theme/index.d.ts +259 -3
- package/threshold/index.d.ts +156 -4
- package/toast-notification/index.d.ts +66 -2
- package/tooltip/index.d.ts +92 -3
- package/tour/index.d.ts +114 -2
- package/translate/index.d.ts +199 -3
- package/tree-view/index.d.ts +818 -8
- package/typeahead/index.d.ts +262 -4
- package/unauthorized-page/index.d.ts +42 -4
- package/wizard/index.d.ts +209 -7
- package/about/si-about-data.model.d.ts +0 -49
- package/about/si-about.component.d.ts +0 -71
- package/about/si-about.module.d.ts +0 -7
- package/accordion/si-accordion-hcollapse.service.d.ts +0 -17
- package/accordion/si-accordion.component.d.ts +0 -37
- package/accordion/si-accordion.module.d.ts +0 -8
- package/accordion/si-accordion.service.d.ts +0 -17
- package/accordion/si-collapsible-panel.component.d.ts +0 -89
- package/action-modal/si-action-dialog.service.d.ts +0 -49
- package/action-modal/si-action-dialog.types.d.ts +0 -92
- package/action-modal/si-alert-dialog/si-alert-dialog.component.d.ts +0 -32
- package/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.d.ts +0 -40
- package/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.d.ts +0 -45
- package/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.d.ts +0 -68
- package/application-header/launchpad/si-launchpad-app.component.d.ts +0 -21
- package/application-header/launchpad/si-launchpad-factory.component.d.ts +0 -83
- package/application-header/launchpad/si-launchpad.model.d.ts +0 -33
- package/application-header/si-application-header.component.d.ts +0 -60
- package/application-header/si-header-account-item.component.d.ts +0 -13
- package/application-header/si-header-action-item-icon-base.directive.d.ts +0 -26
- package/application-header/si-header-action-item.base.d.ts +0 -19
- package/application-header/si-header-action-item.component.d.ts +0 -9
- package/application-header/si-header-actions.directive.d.ts +0 -5
- package/application-header/si-header-brand.directive.d.ts +0 -5
- package/application-header/si-header-collapsible-actions.component.d.ts +0 -33
- package/application-header/si-header-logo.directive.d.ts +0 -16
- package/application-header/si-header-navigation-item.component.d.ts +0 -10
- package/application-header/si-header-navigation.component.d.ts +0 -11
- package/application-header/si-header-selection-item.component.d.ts +0 -12
- package/application-header/si-header-siemens-logo.component.d.ts +0 -21
- package/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.d.ts +0 -6
- package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +0 -29
- package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +0 -16
- package/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.d.ts +0 -12
- package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +0 -47
- package/auto-collapsable-list/si-auto-collapsable-list.module.d.ts +0 -10
- package/autocomplete/si-autocomplete-listbox.directive.d.ts +0 -31
- package/autocomplete/si-autocomplete-option.directive.d.ts +0 -31
- package/autocomplete/si-autocomplete.directive.d.ts +0 -14
- package/autocomplete/si-autocomplete.model.d.ts +0 -7
- package/autocomplete/si-autocomplete.module.d.ts +0 -9
- package/avatar/si-avatar-background-color.directive.d.ts +0 -35
- package/avatar/si-avatar.component.d.ts +0 -51
- package/badge/si-badge.component.d.ts +0 -17
- package/breadcrumb/breadcrumb-item.model.d.ts +0 -36
- package/breadcrumb/si-breadcrumb-item-template.directive.d.ts +0 -10
- package/breadcrumb/si-breadcrumb.component.d.ts +0 -46
- package/breadcrumb/si-breadcrumb.module.d.ts +0 -7
- package/breadcrumb-router/si-breadcrumb-default-resolver.service.d.ts +0 -23
- package/breadcrumb-router/si-breadcrumb-router.component.d.ts +0 -30
- package/breadcrumb-router/si-breadcrumb-router.model.d.ts +0 -53
- package/breadcrumb-router/si-breadcrumb-router.module.d.ts +0 -7
- package/card/si-card.component.d.ts +0 -79
- package/card/si-card.module.d.ts +0 -7
- package/circle-status/si-circle-status.component.d.ts +0 -66
- package/circle-status/si-circle-status.module.d.ts +0 -7
- package/color-picker/si-color-picker.component.d.ts +0 -61
- package/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.d.ts +0 -23
- package/column-selection-dialog/si-column-selection-dialog.component.d.ts +0 -114
- package/column-selection-dialog/si-column-selection-dialog.service.d.ts +0 -20
- package/column-selection-dialog/si-column-selection-dialog.types.d.ts +0 -68
- package/common/decorators/index.d.ts +0 -5
- package/common/decorators/webcomponent.decorator.d.ts +0 -6
- package/common/helpers/animation.helpers.d.ts +0 -10
- package/common/helpers/global-events.helpers.d.ts +0 -5
- package/common/helpers/index.d.ts +0 -10
- package/common/helpers/overlay-helper.d.ts +0 -24
- package/common/helpers/positioning.helpers.d.ts +0 -58
- package/common/helpers/rtl.d.ts +0 -6
- package/common/helpers/track-by.helper.d.ts +0 -27
- package/common/models/color-variant.model.d.ts +0 -8
- package/common/models/index.d.ts +0 -8
- package/common/models/menu.model.d.ts +0 -85
- package/common/models/positions.model.d.ts +0 -18
- package/common/models/status-type.model.d.ts +0 -21
- package/common/services/blink.service.d.ts +0 -41
- package/common/services/index.d.ts +0 -8
- package/common/services/scrollbar-helper.service.d.ts +0 -17
- package/common/services/si-uistate.service.d.ts +0 -61
- package/common/services/text-measure.service.d.ts +0 -21
- package/connection-strength/si-connection-strength.component.d.ts +0 -19
- package/connection-strength/si-connection-strength.module.d.ts +0 -7
- package/content-action-bar/si-content-action-bar-toggle.component.d.ts +0 -6
- package/content-action-bar/si-content-action-bar.component.d.ts +0 -72
- package/content-action-bar/si-content-action-bar.model.d.ts +0 -9
- package/content-action-bar/si-content-action-bar.module.d.ts +0 -7
- package/copyright-notice/si-copyright-notice.component.d.ts +0 -18
- package/copyright-notice/si-copyright-notice.d.ts +0 -23
- package/copyright-notice/si-copyright-notice.module.d.ts +0 -7
- package/dashboard/si-dashboard-card.component.d.ts +0 -82
- package/dashboard/si-dashboard.component.d.ts +0 -75
- package/dashboard/si-dashboard.module.d.ts +0 -8
- package/dashboard/si-dashboard.service.d.ts +0 -21
- package/dashboard/widgets/si-link-widget.component.d.ts +0 -25
- package/dashboard/widgets/si-list-widget/si-list-widget-body.component.d.ts +0 -98
- package/dashboard/widgets/si-list-widget/si-list-widget-item.component.d.ts +0 -39
- package/dashboard/widgets/si-list-widget/si-list-widget.component.d.ts +0 -115
- package/dashboard/widgets/si-timeline-widget/si-timeline-widget-body.component.d.ts +0 -21
- package/dashboard/widgets/si-timeline-widget/si-timeline-widget-item.component.d.ts +0 -103
- package/dashboard/widgets/si-timeline-widget/si-timeline-widget.component.d.ts +0 -52
- package/dashboard/widgets/si-value-widget-body.component.d.ts +0 -33
- package/dashboard/widgets/si-value-widget.component.d.ts +0 -115
- package/dashboard/widgets/si-widget-base.component.d.ts +0 -48
- package/datatable/si-datatable-interaction.directive.d.ts +0 -34
- package/datatable/si-datatable.module.d.ts +0 -7
- package/date-range-filter/si-date-range-calculation.service.d.ts +0 -33
- package/date-range-filter/si-date-range-filter.component.d.ts +0 -252
- package/date-range-filter/si-date-range-filter.module.d.ts +0 -7
- package/date-range-filter/si-date-range-filter.types.d.ts +0 -40
- package/date-range-filter/si-relative-date.component.d.ts +0 -31
- package/datepicker/components/si-calendar-body.component.d.ts +0 -137
- package/datepicker/components/si-calendar-date-cell.directive.d.ts +0 -16
- package/datepicker/components/si-calendar-direction-button.component.d.ts +0 -18
- package/datepicker/components/si-compare-adapter.d.ts +0 -37
- package/datepicker/components/si-day-selection.component.d.ts +0 -76
- package/datepicker/components/si-initial-focus.component.d.ts +0 -74
- package/datepicker/components/si-month-selection.component.d.ts +0 -62
- package/datepicker/components/si-year-selection.component.d.ts +0 -65
- package/datepicker/date-time-helper.d.ts +0 -302
- package/datepicker/si-calendar-button.component.d.ts +0 -49
- package/datepicker/si-date-input.directive.d.ts +0 -114
- package/datepicker/si-date-range.component.d.ts +0 -150
- package/datepicker/si-datepicker-overlay.component.d.ts +0 -82
- package/datepicker/si-datepicker-overlay.directive.d.ts +0 -104
- package/datepicker/si-datepicker.component.d.ts +0 -228
- package/datepicker/si-datepicker.directive.d.ts +0 -62
- package/datepicker/si-datepicker.model.d.ts +0 -129
- package/datepicker/si-datepicker.module.d.ts +0 -12
- package/datepicker/si-timepicker.component.d.ts +0 -214
- package/electron-titlebar/electron.helpers.d.ts +0 -5
- package/electron-titlebar/si-electron-titlebar.component.d.ts +0 -72
- package/electron-titlebar/si-electron-titlebar.module.d.ts +0 -7
- package/empty-state/si-empty-state.component.d.ts +0 -18
- package/empty-state/si-empty-state.module.d.ts +0 -7
- package/file-uploader/si-file-dropzone.component.d.ts +0 -106
- package/file-uploader/si-file-uploader.component.d.ts +0 -296
- package/file-uploader/si-file-uploader.model.d.ts +0 -12
- package/file-uploader/si-file-uploader.module.d.ts +0 -8
- package/filter-bar/filter.d.ts +0 -26
- package/filter-bar/si-filter-bar.component.d.ts +0 -65
- package/filter-bar/si-filter-bar.module.d.ts +0 -7
- package/filter-bar/si-filter-pill.component.d.ts +0 -20
- package/filtered-search/si-filtered-search-helper.d.ts +0 -22
- package/filtered-search/si-filtered-search-value.component.d.ts +0 -53
- package/filtered-search/si-filtered-search.component.d.ts +0 -329
- package/filtered-search/si-filtered-search.model.d.ts +0 -139
- package/filtered-search/si-filtered-search.module.d.ts +0 -7
- package/filtered-search/values/date-value/si-filtered-search-date-value.component.d.ts +0 -57
- package/filtered-search/values/si-filtered-search-value.base.d.ts +0 -27
- package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +0 -45
- package/footer/si-footer.component.d.ts +0 -14
- package/footer/si-footer.module.d.ts +0 -7
- package/form/form-fieldset/si-form-fieldset.component.d.ts +0 -40
- package/form/si-form-container/si-form-container.component.d.ts +0 -155
- package/form/si-form-item/si-form-field-native.control.d.ts +0 -22
- package/form/si-form-item/si-form-item.component.d.ts +0 -90
- package/form/si-form-item-control-input.directive.d.ts +0 -18
- package/form/si-form-item.control.d.ts +0 -35
- package/form/si-form-validation-error.model.d.ts +0 -55
- package/form/si-form-validation-error.provider.d.ts +0 -11
- package/form/si-form-validation-error.service.d.ts +0 -42
- package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +0 -13
- package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +0 -42
- package/form/si-form.module.d.ts +0 -25
- package/formly/fields/button/si-formly-button.component.d.ts +0 -7
- package/formly/fields/date-range/si-formly-date-range.component.d.ts +0 -6
- package/formly/fields/datetime/si-formly-datetime.component.d.ts +0 -13
- package/formly/fields/email/si-formly-email.component.d.ts +0 -6
- package/formly/fields/ip-input/si-formly-ip-input.component.d.ts +0 -6
- package/formly/fields/number/si-formly-number.component.d.ts +0 -6
- package/formly/fields/password/si-formly-password.component.d.ts +0 -6
- package/formly/fields/select/si-formly-select.component.d.ts +0 -6
- package/formly/fields/text/si-formly-text-display.component.d.ts +0 -7
- package/formly/fields/textarea/si-formly-textarea.component.d.ts +0 -18
- package/formly/fields/time/si-formly-time.component.d.ts +0 -13
- package/formly/si-formly-translate.extension.d.ts +0 -9
- package/formly/si-formly.component.d.ts +0 -62
- package/formly/si-formly.module.d.ts +0 -35
- package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +0 -13
- package/formly/structural/si-formly-array/si-formly-array.component.d.ts +0 -6
- package/formly/structural/si-formly-object/si-formly-object.component.d.ts +0 -6
- package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +0 -22
- package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +0 -21
- package/formly/structural/si-formly-object-plain/si-formly-object-plain.component.d.ts +0 -6
- package/formly/structural/si-formly-tabset/si-formly-object-tabset.component.d.ts +0 -7
- package/formly/utils.d.ts +0 -6
- package/formly/wrapper/si-formly-fieldset.component.d.ts +0 -8
- package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +0 -19
- package/formly/wrapper/si-formly-horizontal-wrapper.component.d.ts +0 -6
- package/formly/wrapper/si-formly-icon-wrapper.component.d.ts +0 -6
- package/formly/wrapper/si-formly-wrapper.component.d.ts +0 -8
- package/header-dropdown/si-header-dropdown-item.component.d.ts +0 -23
- package/header-dropdown/si-header-dropdown-items-factory.component.d.ts +0 -14
- package/header-dropdown/si-header-dropdown-trigger.directive.d.ts +0 -57
- package/header-dropdown/si-header-dropdown.component.d.ts +0 -20
- package/header-dropdown/si-header.model.d.ts +0 -37
- package/icon/element-icons.d.ts +0 -59
- package/icon/icon-status.d.ts +0 -22
- package/icon/si-icon-next.component.d.ts +0 -64
- package/icon/si-icon.component.d.ts +0 -23
- package/icon/si-icon.module.d.ts +0 -7
- package/icon/si-icons.d.ts +0 -31
- package/icon/si-status-icon.component.d.ts +0 -9
- package/icon-status/si-icon-status.component.d.ts +0 -24
- package/icon-status/si-icon-status.module.d.ts +0 -7
- package/info-page/si-info-page.component.d.ts +0 -38
- package/inline-notification/si-inline-notification.component.d.ts +0 -40
- package/inline-notification/si-inline-notification.module.d.ts +0 -7
- package/ip-input/address-utils.d.ts +0 -28
- package/ip-input/address-validators.d.ts +0 -21
- package/ip-input/si-ip-input.directive.d.ts +0 -53
- package/ip-input/si-ip4-input.directive.d.ts +0 -9
- package/ip-input/si-ip6-input.directive.d.ts +0 -10
- package/landing-page/alert-config.model.d.ts +0 -15
- package/landing-page/si-landing-page.component.d.ts +0 -74
- package/landing-page/si-landing-page.module.d.ts +0 -7
- package/language-switcher/iso-language-value.d.ts +0 -14
- package/language-switcher/si-language-switcher.component.d.ts +0 -31
- package/language-switcher/si-language-switcher.module.d.ts +0 -7
- package/link/aria-current.model.d.ts +0 -5
- package/link/link.model.d.ts +0 -57
- package/link/si-link-action.service.d.ts +0 -17
- package/link/si-link.directive.d.ts +0 -42
- package/link/si-link.module.d.ts +0 -7
- package/list-details/si-details-pane/si-details-pane.component.d.ts +0 -8
- package/list-details/si-details-pane-body/si-details-pane-body.component.d.ts +0 -6
- package/list-details/si-details-pane-footer/si-details-pane-footer.component.d.ts +0 -6
- package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +0 -38
- package/list-details/si-list-details.component.d.ts +0 -100
- package/list-details/si-list-pane/si-list-pane.component.d.ts +0 -10
- package/list-details/si-list-pane-body/si-list-pane-body.component.d.ts +0 -6
- package/list-details/si-list-pane-header/si-list-pane-header.component.d.ts +0 -6
- package/loading-spinner/si-loading-button.component.d.ts +0 -31
- package/loading-spinner/si-loading-spinner.component.d.ts +0 -32
- package/loading-spinner/si-loading-spinner.directive.d.ts +0 -37
- package/loading-spinner/si-loading-spinner.module.d.ts +0 -8
- package/loading-spinner/si-loading-spinner.service.d.ts +0 -18
- package/localization/si-directionality.d.ts +0 -41
- package/localization/si-locale-id.d.ts +0 -22
- package/localization/si-locale-store.d.ts +0 -16
- package/localization/si-locale.service.d.ts +0 -73
- package/main-detail-container/si-main-detail-container.component.d.ts +0 -151
- package/main-detail-container/si-main-detail-container.module.d.ts +0 -7
- package/menu/si-menu-action.service.d.ts +0 -13
- package/menu/si-menu-bar.directive.d.ts +0 -12
- package/menu/si-menu-divider.directive.d.ts +0 -5
- package/menu/si-menu-factory-item-guard.directive.d.ts +0 -11
- package/menu/si-menu-factory.component.d.ts +0 -15
- package/menu/si-menu-header.directive.d.ts +0 -5
- package/menu/si-menu-item-base.directive.d.ts +0 -16
- package/menu/si-menu-item-checkbox.component.d.ts +0 -11
- package/menu/si-menu-item-radio.component.d.ts +0 -10
- package/menu/si-menu-item.component.d.ts +0 -10
- package/menu/si-menu-model.d.ts +0 -91
- package/menu/si-menu.directive.d.ts +0 -6
- package/menu/si-menu.module.d.ts +0 -14
- package/modal/modal.helpers.d.ts +0 -8
- package/modal/modalref.d.ts +0 -64
- package/modal/si-modal.component.d.ts +0 -32
- package/modal/si-modal.service.d.ts +0 -57
- package/navbar/account.model.d.ts +0 -39
- package/navbar/si-navbar-item/index.d.ts +0 -5
- package/navbar/si-navbar-item/si-navbar-item.component.d.ts +0 -29
- package/navbar/si-navbar-primary/index.d.ts +0 -6
- package/navbar/si-navbar-primary/si-navbar-primary.component.d.ts +0 -198
- package/navbar/si-navbar-primary/si-navbar-primary.model.d.ts +0 -34
- package/navbar/si-navbar.module.d.ts +0 -9
- package/navbar-vertical/si-navbar-vertical-divider.component.d.ts +0 -5
- package/navbar-vertical/si-navbar-vertical-group-trigger.directive.d.ts +0 -38
- package/navbar-vertical/si-navbar-vertical-group.component.d.ts +0 -16
- package/navbar-vertical/si-navbar-vertical-header.component.d.ts +0 -6
- package/navbar-vertical/si-navbar-vertical-item-legacy.component.d.ts +0 -17
- package/navbar-vertical/si-navbar-vertical-item.component.d.ts +0 -21
- package/navbar-vertical/si-navbar-vertical.component.d.ts +0 -148
- package/navbar-vertical/si-navbar-vertical.model.d.ts +0 -77
- package/navbar-vertical/si-navbar-vertical.module.d.ts +0 -7
- package/navbar-vertical/si-navbar-vertical.provider.d.ts +0 -7
- package/number-input/si-number-input.component.d.ts +0 -106
- package/number-input/si-number-input.module.d.ts +0 -7
- package/pagination/si-pagination.component.d.ts +0 -65
- package/pagination/si-pagination.module.d.ts +0 -7
- package/password-strength/si-password-strength.component.d.ts +0 -25
- package/password-strength/si-password-strength.directive.d.ts +0 -65
- package/password-strength/si-password-strength.module.d.ts +0 -8
- package/password-toggle/si-password-toggle.component.d.ts +0 -39
- package/password-toggle/si-password-toggle.module.d.ts +0 -7
- package/phone-number/si-phone-number-input-select.directive.d.ts +0 -10
- package/phone-number/si-phone-number-input.component.d.ts +0 -137
- package/phone-number/si-phone-number-input.models.d.ts +0 -48
- package/phone-number/si-phone-number-input.module.d.ts +0 -7
- package/photo-upload/si-image-cropper-style.component.d.ts +0 -5
- package/photo-upload/si-photo-upload.component.d.ts +0 -298
- package/pills-input/si-input-pill.component.d.ts +0 -9
- package/pills-input/si-pills-input-csv.directive.d.ts +0 -8
- package/pills-input/si-pills-input-email.directive.d.ts +0 -10
- package/pills-input/si-pills-input-pattern-base.d.ts +0 -19
- package/pills-input/si-pills-input-value-handler.d.ts +0 -12
- package/pills-input/si-pills-input.component.d.ts +0 -87
- package/pills-input/si-pills-input.module.d.ts +0 -9
- package/popover/si-popover.component.d.ts +0 -26
- package/popover/si-popover.directive.d.ts +0 -89
- package/popover/si-popover.module.d.ts +0 -7
- package/popover-next/si-popover-description.directive.d.ts +0 -7
- package/popover-next/si-popover-next.directive.d.ts +0 -61
- package/popover-next/si-popover-title.directive.d.ts +0 -7
- package/popover-next/si-popover.component.d.ts +0 -27
- package/progressbar/si-progressbar.component.d.ts +0 -43
- package/progressbar/si-progressbar.module.d.ts +0 -7
- package/public-api.d.ts +0 -5
- package/resize-observer/resize-observer.service.d.ts +0 -41
- package/resize-observer/si-resize-observer.directive.d.ts +0 -31
- package/resize-observer/si-resize-observer.module.d.ts +0 -8
- package/resize-observer/si-responsive-container.directive.d.ts +0 -73
- package/result-details-list/si-result-details-list.component.d.ts +0 -14
- package/result-details-list/si-result-details-list.datamodel.d.ts +0 -48
- package/result-details-list/si-result-details-list.module.d.ts +0 -7
- package/search-bar/si-search-bar.component.d.ts +0 -87
- package/search-bar/si-search-bar.module.d.ts +0 -7
- package/select/options/si-select-complex-options.directive.d.ts +0 -69
- package/select/options/si-select-lazy-options.directive.d.ts +0 -38
- package/select/options/si-select-option.source.d.ts +0 -49
- package/select/options/si-select-options-strategy.base.d.ts +0 -35
- package/select/options/si-select-options-strategy.d.ts +0 -37
- package/select/options/si-select-simple-options.directive.d.ts +0 -34
- package/select/select-input/si-select-input.component.d.ts +0 -43
- package/select/select-list/si-select-list-has-filter.component.d.ts +0 -20
- package/select/select-list/si-select-list.base.d.ts +0 -37
- package/select/select-list/si-select-list.component.d.ts +0 -15
- package/select/select-option/si-select-option-row.component.d.ts +0 -16
- package/select/select-option/si-select-option.component.d.ts +0 -9
- package/select/selection/si-select-multi-value.directive.d.ts +0 -26
- package/select/selection/si-select-selection-strategy.d.ts +0 -58
- package/select/selection/si-select-single-value.directive.d.ts +0 -26
- package/select/si-select-action.directive.d.ts +0 -12
- package/select/si-select-actions.directive.d.ts +0 -5
- package/select/si-select-group-template.directive.d.ts +0 -20
- package/select/si-select-option-row-template.directive.d.ts +0 -9
- package/select/si-select-option-template.directive.d.ts +0 -21
- package/select/si-select.component.d.ts +0 -96
- package/select/si-select.module.d.ts +0 -15
- package/select/si-select.types.d.ts +0 -65
- package/shadow-root/si-shadow-root.directive.d.ts +0 -39
- package/side-panel/si-side-panel-content.component.d.ts +0 -105
- package/side-panel/si-side-panel.component.d.ts +0 -108
- package/side-panel/si-side-panel.module.d.ts +0 -8
- package/side-panel/si-side-panel.service.d.ts +0 -45
- package/side-panel/side-panel.model.d.ts +0 -16
- package/skip-links/si-skip-link-target.directive.d.ts +0 -27
- package/skip-links/si-skip-links.component.d.ts +0 -9
- package/skip-links/skip-link.service.d.ts +0 -14
- package/slider/si-slider.component.d.ts +0 -129
- package/slider/si-slider.module.d.ts +0 -7
- package/sort-bar/si-sort-bar.component.d.ts +0 -42
- package/sort-bar/si-sort-bar.module.d.ts +0 -7
- package/split/si-split-part.component.d.ts +0 -154
- package/split/si-split.component.d.ts +0 -48
- package/split/si-split.interfaces.d.ts +0 -17
- package/split/si-split.module.d.ts +0 -8
- package/status-bar/si-status-bar-item/index.d.ts +0 -6
- package/status-bar/si-status-bar-item/si-status-bar-item.component.d.ts +0 -22
- package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +0 -33
- package/status-bar/si-status-bar.component.d.ts +0 -116
- package/status-bar/si-status-bar.module.d.ts +0 -7
- package/status-toggle/si-status-toggle.component.d.ts +0 -54
- package/status-toggle/status-toggle.model.d.ts +0 -26
- package/summary-chip/si-summary-chip.component.d.ts +0 -44
- package/summary-widget/si-summary-widget.component.d.ts +0 -44
- package/system-banner/system-banner.component.d.ts +0 -23
- package/tabs/si-tab/index.d.ts +0 -5
- package/tabs/si-tab/si-tab.component.d.ts +0 -58
- package/tabs/si-tabs.module.d.ts +0 -8
- package/tabs/si-tabset/index.d.ts +0 -5
- package/tabs/si-tabset/si-tabset.component.d.ts +0 -100
- package/tabs-next/si-tab-next-base.directive.d.ts +0 -63
- package/tabs-next/si-tab-next-link.component.d.ts +0 -16
- package/tabs-next/si-tab-next.component.d.ts +0 -16
- package/tabs-next/si-tabs-tokens.d.ts +0 -7
- package/tabs-next/si-tabset-next.component.d.ts +0 -57
- package/theme/si-theme-store.d.ts +0 -82
- package/theme/si-theme.model.d.ts +0 -48
- package/theme/si-theme.service.d.ts +0 -129
- package/threshold/si-readonly-threshold-option.component.d.ts +0 -11
- package/threshold/si-threshold.component.d.ts +0 -147
- package/threshold/si-threshold.module.d.ts +0 -7
- package/toast-notification/si-toast-notification/si-toast-notification.component.d.ts +0 -17
- package/toast-notification/si-toast-notification-drawer/si-toast-notification-drawer.component.d.ts +0 -9
- package/toast-notification/si-toast-notification.service.d.ts +0 -41
- package/toast-notification/si-toast.model.d.ts +0 -25
- package/tooltip/si-tooltip.component.d.ts +0 -25
- package/tooltip/si-tooltip.directive.d.ts +0 -45
- package/tooltip/si-tooltip.module.d.ts +0 -7
- package/tooltip/si-tooltip.service.d.ts +0 -44
- package/tour/si-tour-highlight.component.d.ts +0 -15
- package/tour/si-tour-token.model.d.ts +0 -27
- package/tour/si-tour.component.d.ts +0 -31
- package/tour/si-tour.model.d.ts +0 -51
- package/tour/si-tour.service.d.ts +0 -62
- package/translate/si-translatable-keys.interface.d.ts +0 -193
- package/translate/si-translatable-overrides.provider.d.ts +0 -7
- package/tree-view/drag-drop.util.d.ts +0 -32
- package/tree-view/si-tree-view-converter.service.d.ts +0 -41
- package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +0 -104
- package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +0 -24
- package/tree-view/si-tree-view-item-context.d.ts +0 -11
- package/tree-view/si-tree-view-item-height.service.d.ts +0 -49
- package/tree-view/si-tree-view-item-template.directive.d.ts +0 -18
- package/tree-view/si-tree-view-virtualization.service.d.ts +0 -150
- package/tree-view/si-tree-view.component.d.ts +0 -467
- package/tree-view/si-tree-view.model.d.ts +0 -146
- package/tree-view/si-tree-view.module.d.ts +0 -10
- package/tree-view/si-tree-view.service.d.ts +0 -55
- package/tree-view/si-tree-view.utils.d.ts +0 -46
- package/typeahead/si-typeahead-item-template.directive.d.ts +0 -7
- package/typeahead/si-typeahead.component.d.ts +0 -22
- package/typeahead/si-typeahead.directive.d.ts +0 -196
- package/typeahead/si-typeahead.model.d.ts +0 -60
- package/typeahead/si-typeahead.module.d.ts +0 -8
- package/typeahead/si-typeahead.sorting.d.ts +0 -10
- package/unauthorized-page/si-unauthorized-page.component.d.ts +0 -35
- package/unauthorized-page/si-unauthorized-page.module.d.ts +0 -7
- package/wizard/si-wizard-step.component.d.ts +0 -21
- package/wizard/si-wizard.component.d.ts +0 -196
- package/wizard/si-wizard.module.d.ts +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-theme.mjs","sources":["../../../../projects/element-ng/theme/si-theme-store.ts","../../../../projects/element-ng/theme/si-theme.model.ts","../../../../projects/element-ng/theme/si-theme.service.ts","../../../../projects/element-ng/theme/index.ts","../../../../projects/element-ng/theme/siemens-element-ng-theme.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Observable, of } from 'rxjs';\n\nimport { Theme } from './si-theme.model';\n\n/**\n * SiThemeStore object is used by the theme service to load and\n * store the themes. You can inject your own implementation to provide\n * a backend implementation. Otherwise a localStorage based implementation\n * is used.\n */\nexport abstract class SiThemeStore {\n /**\n * Load and return an alternative custom theme, other then\n * the default element theme. This method is invoked initially\n * to check for an alternative custom theme.\n * @returns The active theme to be used, or undefined if the\n * default element theme shall be used. All wrapped in an observable\n * that can also emit errors.\n */\n abstract loadActiveTheme(): Observable<Theme | undefined>;\n /**\n * Sets the theme with the given name to active.\n * @param name - The name of the theme to become active.\n * @returns True on success, otherwise false.\n */\n abstract activateTheme(name: string): Observable<boolean>;\n /**\n * Deactivate any active theme and makes the element theme the default one.\n * @returns True on success, otherwise false.\n */\n abstract deactivateTheme(): Observable<boolean>;\n /**\n * Load and return the available theme names.\n * @returns An `Observable` of available theme names, other than the\n * default element theme.\n */\n abstract loadThemeNames(): Observable<string[]>;\n /**\n * Load theme with the given `name`.\n * @param name - The name of the theme to be returned.\n * @returns Observable with the named theme or `undefined` if no such theme exist.\n */\n abstract loadTheme(name: string): Observable<Theme | undefined>;\n /**\n * Saves a theme to the store. The name shall not be empty. A theme with\n * identical name gets overwritten.\n * @param theme - The theme to be saved.\n * @returns True on success, otherwise false. All nicely wrapped in\n * an observable that may also emit errors.\n */\n abstract saveTheme(theme: Theme): Observable<boolean>;\n /**\n * Deletes the theme with the given name from the store.\n * @param name - The name of the theme to be deleted.\n * @returns True on success, otherwise false. All nicely wrapped in\n * an observable that may also emit errors. Returns false,\n * if the theme does not exist.\n */\n abstract deleteTheme(name: string): Observable<boolean>;\n}\n\nexport const SI_THEME_LOCAL_STORAGE_KEY = 'si-themes';\n\nexport interface ThemeStorage {\n activeTheme: string | undefined;\n themes: { [key: string]: Theme };\n}\n\nexport class SiDefaultThemeStore extends SiThemeStore {\n private isBrowser: boolean;\n\n constructor(isBrowser: boolean) {\n super();\n this.isBrowser = isBrowser;\n }\n\n loadActiveTheme(): Observable<Theme | undefined> {\n if (!this.isBrowser) {\n return of(undefined);\n }\n\n const store = this.loadStore();\n if (store.activeTheme) {\n return of(store.themes[store.activeTheme]);\n } else {\n return of(undefined);\n }\n }\n\n activateTheme(name: string): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n if (store.themes[name]) {\n store.activeTheme = name;\n this.saveStore(store);\n return of(true);\n } else {\n return of(false);\n }\n }\n\n deactivateTheme(): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n store.activeTheme = undefined;\n this.saveStore(store);\n return of(true);\n }\n\n loadThemeNames(): Observable<string[]> {\n if (!this.isBrowser) {\n return of([]);\n }\n const store = this.loadStore();\n return of(Array.from(Object.keys(store.themes)));\n }\n\n saveTheme(theme: Theme): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n store.themes[theme.name] = theme;\n this.saveStore(store);\n return of(true);\n }\n\n loadTheme(name: string): Observable<Theme | undefined> {\n if (!this.isBrowser) {\n return of(undefined);\n }\n const store = this.loadStore();\n return of(store.themes[name]);\n }\n\n deleteTheme(name: string): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n delete store.themes[name];\n if (store.activeTheme === name) {\n store.activeTheme = undefined;\n }\n this.saveStore(store);\n return of(true);\n }\n\n private loadStore(): ThemeStorage {\n const storeStr = localStorage.getItem(SI_THEME_LOCAL_STORAGE_KEY);\n if (storeStr) {\n return JSON.parse(storeStr) as ThemeStorage;\n } else {\n return { activeTheme: undefined, themes: {} };\n }\n }\n\n private saveStore(store: ThemeStorage): void {\n localStorage.setItem(SI_THEME_LOCAL_STORAGE_KEY, JSON.stringify(store));\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport interface ThemeDescription {\n name: string;\n groups: ThemePropertyGroup[];\n}\n\nexport interface ThemePropertyGroup {\n name: string;\n description?: string;\n properties: ThemeProperty[];\n}\n\nexport interface ThemeProperty {\n name: string;\n usage: string;\n type: ThemePropertyType;\n}\n\nexport type ThemePropertyType = 'color' | 'gradient' | 'font' | 'url' | 'text' | 'number';\n\nexport interface Theme {\n name: string;\n schemes: ThemeColorSchemes;\n /**\n * A map of icons that overrides the default Element icons.\n * The key must be the key of the original icon that should be overridden.\n * The value has to be a data SVG string.\n *\n * @example\n * ```ts\n * {\n * elementUser: \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'>...</svg>\"\n * }\n * ```\n *\n * @experimental\n */\n icons?: Record<string, string>;\n}\n\nexport interface ThemeColorSchemes {\n light?: ThemeColorScheme;\n dark?: ThemeColorScheme;\n}\n\nexport type ThemeColorScheme = { [key: string]: string };\n\nexport type ThemeType = 'dark' | 'light' | 'auto';\n\nexport const ELEMENT_THEME_NAME = 'element';\n\nexport const elementTheme: ThemeDescription = {\n name: 'element',\n groups: [\n {\n name: 'Branding',\n description: 'Configure the brand logo.',\n properties: [\n {\n name: '--element-brand-logo',\n usage: 'Enter a brand logo in the format: \\'url(\"https://company/logo.svg\")\\'',\n type: 'text'\n },\n {\n name: '--element-brand-logo-width',\n usage: \"Enter the width of the logo as CSS width value. Example: '100px'\",\n type: 'text'\n },\n {\n name: '--element-brand-logo-height',\n usage: \"Enter the height of the logo as CSS width value. Max: 48px; Example: '16px'\",\n type: 'text'\n },\n {\n name: '--element-brand-logo-text',\n usage:\n 'Enter a textual representation of the logo. Example: \\'\"Siemens logo\"\\'. The text must be wrapped in double quotes.',\n type: 'text'\n }\n ]\n },\n {\n name: 'Basic definitions',\n description: 'Basic definitions',\n properties: [\n {\n name: '--element-body-font-family',\n usage: 'The theme only uses one font everywhere.',\n type: 'font'\n },\n { name: '--element-button-radius', usage: 'Button border radius', type: 'text' },\n { name: '--element-button-focus-width', usage: 'Focus width', type: 'text' },\n {\n name: '--element-button-focus-overlay-width',\n usage: 'Focus overlay width',\n type: 'text'\n },\n {\n name: '--element-button-focus-overlay-color',\n usage: 'Focus overlay color',\n type: 'text'\n },\n { name: '--element-input-radius', usage: 'Input field border radius', type: 'text' },\n { name: '--element-logo-color', usage: 'Logo color', type: 'text' },\n { name: '--element-radius-1', usage: 'Border radius-1', type: 'text' },\n { name: '--element-radius-2', usage: 'Border radius-2', type: 'text' },\n { name: '--element-radius-3', usage: 'Border radius-3', type: 'text' }\n ]\n },\n {\n name: 'UI',\n description:\n 'UI colors are used on structural properties and icons and provide good contrast when used over any background.',\n properties: [\n { name: '--element-ui-0', usage: 'Logo, selected (active) elements', type: 'color' },\n { name: '--element-ui-0-hover', usage: 'Selected hover', type: 'color' },\n { name: '--element-ui-1', usage: 'Primary icons', type: 'color' },\n { name: '--element-ui-2', usage: 'Secondary icons', type: 'color' },\n { name: '--element-ui-3', usage: 'Disabled', type: 'color' },\n { name: '--element-ui-4', usage: 'Borders', type: 'color' },\n { name: '--element-ui-5', usage: 'Inverse', type: 'color' },\n { name: '--element-ui-6', usage: 'Shadows', type: 'color' },\n { name: '--element-box-shadow-color-1', usage: 'Box shadow color 1', type: 'color' },\n { name: '--element-box-shadow-color-2', usage: 'Box shadow color 2', type: 'color' },\n { name: '--element-focus-default', usage: 'Default focus color', type: 'color' }\n ]\n },\n {\n name: 'Base',\n description: 'Base colors are used as backgrounds of containers.',\n properties: [\n { name: '--element-base-0', usage: 'Page background, row background', type: 'color' },\n {\n name: '--element-base-1',\n usage: 'Header, navigation, card, table background',\n type: 'color'\n },\n {\n name: '--element-base-1-hover',\n usage: 'Hover on base-1 backgrounds, like table, tree, or menu',\n type: 'color'\n },\n {\n name: '--element-base-1-selected',\n usage: 'Selected on base-1 backgrounds, like table, tree, or menu',\n type: 'color'\n },\n {\n name: '--element-base-2',\n usage: 'Page background with higher contrast pages in dark mode',\n type: 'color'\n },\n {\n name: '--element-base-information',\n usage: 'Informational component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-success',\n usage: 'Success component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-caution',\n usage: 'Caution component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-warning',\n usage: 'Warning component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-danger',\n usage: 'Danger component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-translucent-1',\n usage: 'Translucent background, e.g. backdrop',\n type: 'gradient'\n },\n {\n name: '--element-base-translucent-2',\n usage: 'Slightly translucent background, e.g. toasts',\n type: 'gradient'\n }\n ]\n },\n {\n name: 'Actions',\n description: 'Action colors are used to indicate actions that users can perform.',\n properties: [\n { name: '--element-action-primary', usage: 'Primary interaction', type: 'gradient' },\n {\n name: '--element-action-primary-hover',\n usage: 'Primary action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-primary-text', usage: 'Primary text color', type: 'color' },\n { name: '--element-action-secondary', usage: 'Secondary interaction', type: 'gradient' },\n {\n name: '--element-action-secondary-hover',\n usage: 'Secondary action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-secondary-text', usage: 'Secondary text color', type: 'color' },\n {\n name: '--element-action-secondary-text-hover',\n usage: 'Secondary text color on hover',\n type: 'color'\n },\n {\n name: '--element-action-secondary-border',\n usage: 'Secondary border color',\n type: 'color'\n },\n {\n name: '--element-action-secondary-border-hover',\n usage: 'Secondary border color on hover',\n type: 'color'\n },\n { name: '--element-action-warning', usage: 'Warning', type: 'gradient' },\n {\n name: '--element-action-warning-hover',\n usage: 'Warning action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-warning-text', usage: 'Warning text color', type: 'color' },\n { name: '--element-action-danger', usage: 'Danger', type: 'gradient' },\n {\n name: '--element-action-danger-hover',\n usage: 'Danger action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-danger-text', usage: 'Danger text color', type: 'color' },\n {\n name: '--element-action-disabled-opacity',\n usage: 'Disabled action opacity',\n type: 'number'\n }\n ]\n },\n {\n name: 'Text',\n description: 'Similarly, categories for typography colors are also defined in this system.',\n properties: [\n { name: '--element-text-primary', usage: 'Primary', type: 'color' },\n { name: '--element-text-secondary', usage: 'Secondary', type: 'color' },\n { name: '--element-text-disabled', usage: 'Disabled', type: 'color' },\n { name: '--element-text-inverse', usage: 'Inverse', type: 'color' },\n { name: '--element-text-active', usage: 'Active', type: 'color' },\n { name: '--element-text-information', usage: 'Informational', type: 'color' },\n { name: '--element-text-success', usage: 'Success', type: 'color' },\n { name: '--element-text-caution', usage: 'Caution', type: 'color' },\n { name: '--element-text-warning', usage: 'Warning', type: 'color' },\n { name: '--element-text-danger', usage: 'Danger', type: 'color' }\n ]\n },\n {\n name: 'Status',\n description:\n 'Status colors are used to describe and/or report on the status of different things.',\n properties: [\n { name: '--element-status-information', usage: 'Informational', type: 'color' },\n {\n name: '--element-status-information-contrast',\n usage: 'Informational contrast',\n type: 'color'\n },\n { name: '--element-status-success', usage: 'Success', type: 'color' },\n { name: '--element-status-success-contrast', usage: 'Success contrast', type: 'color' },\n { name: '--element-status-caution', usage: 'Caution', type: 'color' },\n { name: '--element-status-caution-contrast', usage: 'Caution contrast', type: 'color' },\n { name: '--element-status-warning', usage: 'Warning', type: 'color' },\n { name: '--element-status-warning-contrast', usage: 'Warning contrast', type: 'color' },\n { name: '--element-status-danger', usage: 'Danger', type: 'color' },\n { name: '--element-status-danger-contrast', usage: 'Danger contrast', type: 'color' }\n ]\n },\n {\n name: 'Form feedback icons',\n description: 'Icons that are used to indicate a form item status',\n properties: [{ name: '--element-invalid-feedback-icon', usage: 'Danger', type: 'text' }]\n }\n ]\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { EventEmitter, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport { DomSanitizer, Meta, SafeHtml } from '@angular/platform-browser';\nimport { Observable, of, ReplaySubject, throwError } from 'rxjs';\nimport { map, switchMap, take, tap } from 'rxjs/operators';\n\nimport { SiDefaultThemeStore, SiThemeStore } from './si-theme-store';\nimport {\n ELEMENT_THEME_NAME,\n Theme,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeType\n} from './si-theme.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SiThemeService {\n /**\n * The current color scheme. (e.g. light or dark).\n */\n private _resolvedColorScheme: ThemeType | undefined = 'light';\n private resolvedColorSchemeSub = new ReplaySubject<keyof ThemeColorSchemes>(1);\n /**\n * Emits events when the color scheme changes.\n *\n * @defaultValue this.resolvedColorSchemeSub.asObservable()\n */\n readonly resolvedColorScheme$ = this.resolvedColorSchemeSub.asObservable();\n /**\n * The current color scheme. (e.g. light or dark).\n */\n get resolvedColorScheme(): ThemeType | undefined {\n return this._resolvedColorScheme;\n }\n\n /**\n * All available theme names, including element theme name.\n */\n private _themeNames: string[] = [ELEMENT_THEME_NAME];\n private themeNamesSub = new ReplaySubject<string[]>(1);\n /**\n * Emits events when the list of available theme names changes.\n *\n * @defaultValue this.themeNamesSub.asObservable()\n */\n readonly themeNames$ = this.themeNamesSub.asObservable();\n\n /**\n * All available theme names, including element theme name.\n */\n get themeNames(): string[] {\n return this._themeNames;\n }\n\n /**\n * Emits events when the currently applied theme changes. Either by\n * changing to another theme or by re-applying a theme with updated\n * properties. When switching to default theme element, `undefined`\n * is emitted.\n */\n readonly themeChange = new EventEmitter<Theme | undefined>();\n\n /**\n * The name of the theme that is active. Theme name `element` is the default.\n */\n activeThemeName?: string;\n /**\n * Icon overrides by the currently activeTheme.\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly themeIcons = signal<Record<string, SafeHtml>>({});\n\n private themes: Map<string, Theme> = new Map();\n private darkMediaQuery?: MediaQueryList;\n private mediaQueryListener?: () => void;\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private previewTheme?: Theme;\n\n private themeStore =\n inject(SiThemeStore, { optional: true }) ?? new SiDefaultThemeStore(this.isBrowser);\n private meta = inject(Meta);\n private document = inject(DOCUMENT);\n private domSanitizer = inject(DomSanitizer);\n\n constructor() {\n this.resolvedColorScheme$.subscribe(scheme => (this._resolvedColorScheme = scheme));\n this.themeNames$.subscribe(names => (this._themeNames = names));\n\n if (this.isBrowser) {\n this.darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.mediaQueryListener = () => this.toggleDark(this.darkMediaQuery!.matches);\n }\n\n this.getActiveTheme()\n .pipe(take(1))\n .subscribe({\n next: theme => this.applyThemeStyle(theme, this._resolvedColorScheme),\n error: error => console.error('Cannot load active theme', error)\n });\n\n this.themeStore\n .loadThemeNames()\n .pipe(take(1))\n .subscribe({\n next: names => {\n names.push(ELEMENT_THEME_NAME);\n this.themeNamesSub.next(names);\n },\n error: error => console.error('Cannot load theme names', error)\n });\n }\n\n /**\n * Returns `true` if a theme with the given name is available.\n */\n hasTheme(name: string): boolean {\n return this._themeNames.includes(name);\n }\n\n /**\n * Returns a clone of the theme with the given name or `undefined` if not\n * available or name is `element`.\n * @param name - The name of the theme to be returned.\n * @returns The theme with the given name and `undefined` if name is `element`.\n */\n getTheme(name: string): Observable<Theme | undefined> {\n if (name === ELEMENT_THEME_NAME || !this.hasTheme(name)) {\n return of(undefined);\n }\n\n if (this.themes.has(name)) {\n const theme = this.themes.get(name)!;\n // return a clone to avoid changes as a side effect\n return of(this.cloneTheme(theme));\n }\n\n return this.themeStore.loadTheme(name).pipe(\n tap(theme => {\n if (theme) {\n this.themes.set(theme.name, this.cloneTheme(theme));\n }\n })\n );\n }\n\n /**\n * Loads and returns the currently active theme. Returns undefined if no custom theme is used.\n * @returns A custom theme or `undefined` if the default element theme is used.\n */\n getActiveTheme(): Observable<Theme | undefined> {\n if (this.activeThemeName) {\n return of(this.themes.get(this.activeThemeName));\n }\n return this.themeStore.loadActiveTheme().pipe(\n map(theme => {\n if (theme) {\n this.activeThemeName = theme.name;\n this.themes.set(theme.name, theme);\n this.applyTheme(theme, this._resolvedColorScheme);\n return theme;\n }\n this.activeThemeName = ELEMENT_THEME_NAME;\n return undefined;\n })\n );\n }\n\n /**\n * Adds or updates the given theme in the theme store.\n * @param theme - The theme to be saved.\n * @returns `true` if the theme was saved successfully.\n */\n addOrUpdateTheme(theme: Theme): Observable<boolean> {\n const result = new ReplaySubject<boolean>(1);\n\n this.themeStore.saveTheme(theme).subscribe({\n next: saveResult => {\n if (saveResult) {\n this.themes.set(theme.name, this.cloneTheme(theme));\n // Update list of theme names when this is a new one\n if (!this.hasTheme(theme.name)) {\n const names = this._themeNames.concat(theme.name);\n this.themeNamesSub.next(names);\n }\n }\n result.next(saveResult);\n result.complete();\n },\n error: error => result.error(error),\n complete: () => result.complete()\n });\n return result;\n }\n\n /**\n * Deletes the theme with the given name from the theme store.\n */\n deleteTheme(name: string): Observable<boolean> {\n const result = new ReplaySubject<boolean>(1);\n if (!this.hasTheme(name) || name === ELEMENT_THEME_NAME) {\n result.next(false);\n result.complete();\n } else {\n this.removeThemeCSS(name);\n this.themeStore.deleteTheme(name).subscribe({\n next: deleteResult => {\n if (deleteResult) {\n this.themes.delete(name);\n const names = this._themeNames.filter(themeName => themeName !== name);\n this.themeNamesSub.next(names);\n }\n result.next(deleteResult);\n result.complete();\n },\n error: error => result.error(error),\n complete: () => result.complete()\n });\n }\n return result;\n }\n\n /**\n * Resets the preview theme to the default element theme.\n */\n resetPreview(): void {\n this.previewTheme = { name: '__preview', schemes: { dark: {}, light: {} } };\n this.removeThemeCSS(this.previewTheme.name);\n }\n\n /**\n * Sets the active theme to the given name. If no name is given, the default element theme is used.\n */\n setActiveTheme(name?: string, type?: ThemeType): Observable<boolean> {\n const theType = type ?? this._resolvedColorScheme ?? 'auto';\n const theName = name ?? this.activeThemeName ?? ELEMENT_THEME_NAME;\n\n if (theName === this.activeThemeName) {\n return of(true);\n }\n if (!this.hasTheme(theName)) {\n return of(false);\n }\n\n const result = new ReplaySubject<boolean>(1);\n this.activeThemeName = theName;\n // Make the change in the remove store\n const store =\n theName !== ELEMENT_THEME_NAME\n ? this.themeStore.activateTheme(theName)\n : this.themeStore.deactivateTheme();\n store\n .pipe(\n // On success, load the theme\n switchMap(storeResult => {\n if (storeResult) {\n return this.getTheme(theName);\n } else {\n return throwError(() => 'Cannot change active theme in theme store.');\n }\n }),\n // Only take one to avoid unsubscription issues\n take(1)\n )\n .subscribe({\n next: theme => {\n this.applyTheme(theme, theType);\n result.next(true);\n },\n error: error => {\n console.error(`Activating theme ${name} failed`, error);\n result.next(false);\n },\n complete: () => result.complete()\n });\n return result;\n }\n\n /**\n * Apply `light` or `dark` theme to the document.\n */\n applyThemeType(type: ThemeType): void {\n if (type === this._resolvedColorScheme || !this.darkMediaQuery || !this.mediaQueryListener) {\n return;\n }\n\n this.darkMediaQuery.removeEventListener('change', this.mediaQueryListener);\n\n if (type === 'light') {\n this.toggleDark(false);\n } else if (type === 'dark') {\n this.toggleDark(true);\n } else {\n this.mediaQueryListener();\n this.darkMediaQuery.addEventListener('change', this.mediaQueryListener);\n }\n }\n\n /**\n * Applies the given theme to the document. If no theme is given, the active theme is applied.\n */\n applyTheme(theme?: Theme, type?: ThemeType, overwrite?: boolean): void {\n if (theme) {\n this.applyThemeStyle(theme, type, overwrite);\n } else {\n this.getActiveTheme()\n .pipe(take(1))\n .subscribe({\n next: loadedTheme => this.applyThemeStyle(loadedTheme, type),\n error: error => console.error('Cannot load active theme', error)\n });\n }\n }\n\n /**\n * Updates the given property of the preview theme.\n */\n updateProperty(name: string, value: string, type: keyof ThemeColorSchemes): void {\n if (!this.previewTheme) {\n this.resetPreview();\n }\n this.previewTheme!.schemes[type]![name] = value;\n this.createThemeCSS(this.previewTheme!);\n this.document.documentElement.classList.add('theme-__preview');\n this.dispatchThemeSwitchEvent();\n }\n\n /**\n * Checks if the given theme JSON object is a valid theme.\n */\n isThemeValid(data: unknown): boolean {\n const theme = data as Theme;\n return (\n !!data &&\n typeof data === 'object' &&\n 'name' in data &&\n 'schemes' in data &&\n typeof theme.name === 'string' &&\n typeof theme.schemes === 'object' &&\n this.isThemeTypeValid(theme, 'light') &&\n this.isThemeTypeValid(theme, 'dark')\n );\n }\n\n private isThemeTypeValid(theme: Theme, type: 'light' | 'dark'): boolean {\n return (\n !(type in theme.schemes) ||\n (typeof theme.schemes[type] === 'object' &&\n Object.values(theme.schemes[type] as ThemeColorScheme).every(\n item => typeof item === 'string'\n ) &&\n Object.keys(theme.schemes[type] as ThemeColorScheme).every(\n item => typeof item === 'string'\n ))\n );\n }\n\n private applyThemeStyle(theme?: Theme, type?: ThemeType, overwrite?: boolean): void {\n if (!this.isBrowser) {\n return;\n }\n this.resetPreview();\n\n if (theme && theme.name !== ELEMENT_THEME_NAME && (overwrite || !this.hasThemeCSS(theme))) {\n this.createThemeCSS(theme);\n }\n this.activateTheme(theme);\n\n if (type && type !== this._resolvedColorScheme) {\n this.applyThemeType(type);\n }\n\n this.themeIcons.set(\n Object.fromEntries(\n Object.entries(theme?.icons ?? {}).map(([key, icon]) => [key, this.parseDataSvgIcon(icon)])\n )\n );\n this.themeChange.emit(theme);\n }\n\n private activateTheme(theme?: Theme): void {\n const classList = this.document.documentElement.classList;\n classList.forEach(c => {\n if (c.startsWith('theme-')) {\n classList.remove(c);\n }\n });\n if (theme) {\n classList.add(`theme-${theme.name}`);\n }\n }\n\n private hasThemeCSS(theme: Theme): boolean {\n const id = `__theme-${theme.name}`;\n return !!this.document.getElementById(id);\n }\n\n private createThemeCSS(theme: Theme): void {\n let css = '';\n const themeSelector = `:root.theme-${theme.name}`;\n if (theme.schemes.light) {\n css = this.createThemeVariantCSS(css, themeSelector, theme.schemes.light);\n }\n if (theme.schemes.dark) {\n css = this.createThemeVariantCSS(css, themeSelector + '.app--dark', theme.schemes.dark);\n }\n\n this.removeThemeCSS(theme.name);\n const cssElement = this.document.createElement('style');\n cssElement.id = `__theme-${theme.name}`;\n cssElement.textContent = css;\n\n this.document.body.appendChild(cssElement);\n }\n\n private createThemeVariantCSS(css: string, selector: string, scheme: ThemeColorScheme): string {\n css += `${selector} {\\n`;\n for (const key of Object.keys(scheme)) {\n css += `${key}: ${scheme[key]};\\n`;\n }\n css += '}\\n';\n return css;\n }\n\n private removeThemeCSS(name: string): void {\n const id = `__theme-${name}`;\n this.document.getElementById(id)?.remove();\n this.document.documentElement.classList.remove(`theme-${name}`);\n }\n\n private toggleDark(dark: boolean): void {\n if (!this.isBrowser) {\n return;\n }\n\n this.document.documentElement.classList.toggle('app--dark', dark);\n const colorScheme = dark ? 'dark' : 'light';\n this.meta.updateTag({ name: 'color-scheme', content: colorScheme });\n this.resolvedColorSchemeSub.next(colorScheme);\n this.dispatchThemeSwitchEvent();\n }\n\n private cloneTheme(theme: Theme): Theme {\n const clone: Theme = { ...theme, schemes: {} };\n if (theme.schemes.light) {\n clone.schemes.light = { ...theme.schemes.light };\n }\n if (theme.schemes.dark) {\n clone.schemes.dark = { ...theme.schemes.dark };\n }\n return clone;\n }\n\n private dispatchThemeSwitchEvent(): void {\n window.dispatchEvent(\n new CustomEvent('theme-switch', {\n detail: {\n dark: this._resolvedColorScheme === 'dark',\n colorScheme: this._resolvedColorScheme\n }\n })\n );\n }\n\n private parseDataSvgIcon(icon: string): SafeHtml {\n // This method is currently a copy of parseDataSvgIcon in si-icon.registry.ts.\n // Those are likely to diverge in the future, as this version will get support for other formats like:\n // - URLs\n // - Plain SVG data\n // - Promises to enable lazy icon loading using import()\n const parsed = /^data:image\\/svg\\+xml;utf8,(.*)$/.exec(icon);\n if (!parsed) {\n console.error('Failed to parse icon', icon);\n return '';\n }\n return this.domSanitizer.bypassSecurityTrustHtml(parsed[1]);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-theme-store';\nexport * from './si-theme.service';\nexport * from './si-theme.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-theme.mjs","sources":["../../../../projects/element-ng/theme/si-theme-store.ts","../../../../projects/element-ng/theme/si-theme.model.ts","../../../../projects/element-ng/theme/si-theme.service.ts","../../../../projects/element-ng/theme/index.ts","../../../../projects/element-ng/theme/siemens-element-ng-theme.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Observable, of } from 'rxjs';\n\nimport { Theme } from './si-theme.model';\n\n/**\n * SiThemeStore object is used by the theme service to load and\n * store the themes. You can inject your own implementation to provide\n * a backend implementation. Otherwise a localStorage based implementation\n * is used.\n */\nexport abstract class SiThemeStore {\n /**\n * Load and return an alternative custom theme, other then\n * the default element theme. This method is invoked initially\n * to check for an alternative custom theme.\n * @returns The active theme to be used, or undefined if the\n * default element theme shall be used. All wrapped in an observable\n * that can also emit errors.\n */\n abstract loadActiveTheme(): Observable<Theme | undefined>;\n /**\n * Sets the theme with the given name to active.\n * @param name - The name of the theme to become active.\n * @returns True on success, otherwise false.\n */\n abstract activateTheme(name: string): Observable<boolean>;\n /**\n * Deactivate any active theme and makes the element theme the default one.\n * @returns True on success, otherwise false.\n */\n abstract deactivateTheme(): Observable<boolean>;\n /**\n * Load and return the available theme names.\n * @returns An `Observable` of available theme names, other than the\n * default element theme.\n */\n abstract loadThemeNames(): Observable<string[]>;\n /**\n * Load theme with the given `name`.\n * @param name - The name of the theme to be returned.\n * @returns Observable with the named theme or `undefined` if no such theme exist.\n */\n abstract loadTheme(name: string): Observable<Theme | undefined>;\n /**\n * Saves a theme to the store. The name shall not be empty. A theme with\n * identical name gets overwritten.\n * @param theme - The theme to be saved.\n * @returns True on success, otherwise false. All nicely wrapped in\n * an observable that may also emit errors.\n */\n abstract saveTheme(theme: Theme): Observable<boolean>;\n /**\n * Deletes the theme with the given name from the store.\n * @param name - The name of the theme to be deleted.\n * @returns True on success, otherwise false. All nicely wrapped in\n * an observable that may also emit errors. Returns false,\n * if the theme does not exist.\n */\n abstract deleteTheme(name: string): Observable<boolean>;\n}\n\nexport const SI_THEME_LOCAL_STORAGE_KEY = 'si-themes';\n\nexport interface ThemeStorage {\n activeTheme: string | undefined;\n themes: { [key: string]: Theme };\n}\n\nexport class SiDefaultThemeStore extends SiThemeStore {\n private isBrowser: boolean;\n\n constructor(isBrowser: boolean) {\n super();\n this.isBrowser = isBrowser;\n }\n\n loadActiveTheme(): Observable<Theme | undefined> {\n if (!this.isBrowser) {\n return of(undefined);\n }\n\n const store = this.loadStore();\n if (store.activeTheme) {\n return of(store.themes[store.activeTheme]);\n } else {\n return of(undefined);\n }\n }\n\n activateTheme(name: string): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n if (store.themes[name]) {\n store.activeTheme = name;\n this.saveStore(store);\n return of(true);\n } else {\n return of(false);\n }\n }\n\n deactivateTheme(): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n store.activeTheme = undefined;\n this.saveStore(store);\n return of(true);\n }\n\n loadThemeNames(): Observable<string[]> {\n if (!this.isBrowser) {\n return of([]);\n }\n const store = this.loadStore();\n return of(Array.from(Object.keys(store.themes)));\n }\n\n saveTheme(theme: Theme): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n store.themes[theme.name] = theme;\n this.saveStore(store);\n return of(true);\n }\n\n loadTheme(name: string): Observable<Theme | undefined> {\n if (!this.isBrowser) {\n return of(undefined);\n }\n const store = this.loadStore();\n return of(store.themes[name]);\n }\n\n deleteTheme(name: string): Observable<boolean> {\n if (!this.isBrowser) {\n return of(false);\n }\n\n const store = this.loadStore();\n delete store.themes[name];\n if (store.activeTheme === name) {\n store.activeTheme = undefined;\n }\n this.saveStore(store);\n return of(true);\n }\n\n private loadStore(): ThemeStorage {\n const storeStr = localStorage.getItem(SI_THEME_LOCAL_STORAGE_KEY);\n if (storeStr) {\n return JSON.parse(storeStr) as ThemeStorage;\n } else {\n return { activeTheme: undefined, themes: {} };\n }\n }\n\n private saveStore(store: ThemeStorage): void {\n localStorage.setItem(SI_THEME_LOCAL_STORAGE_KEY, JSON.stringify(store));\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport interface ThemeDescription {\n name: string;\n groups: ThemePropertyGroup[];\n}\n\nexport interface ThemePropertyGroup {\n name: string;\n description?: string;\n properties: ThemeProperty[];\n}\n\nexport interface ThemeProperty {\n name: string;\n usage: string;\n type: ThemePropertyType;\n}\n\nexport type ThemePropertyType = 'color' | 'gradient' | 'font' | 'url' | 'text' | 'number';\n\nexport interface Theme {\n name: string;\n schemes: ThemeColorSchemes;\n /**\n * A map of icons that overrides the default Element icons.\n * The key must be the key of the original icon that should be overridden.\n * The value has to be a data SVG string.\n *\n * @example\n * ```ts\n * {\n * elementUser: \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'>...</svg>\"\n * }\n * ```\n *\n * @experimental\n */\n icons?: Record<string, string>;\n}\n\nexport interface ThemeColorSchemes {\n light?: ThemeColorScheme;\n dark?: ThemeColorScheme;\n}\n\nexport type ThemeColorScheme = { [key: string]: string };\n\nexport type ThemeType = 'dark' | 'light' | 'auto';\n\nexport const ELEMENT_THEME_NAME = 'element';\n\nexport const elementTheme: ThemeDescription = {\n name: 'element',\n groups: [\n {\n name: 'Branding',\n description: 'Configure the brand logo.',\n properties: [\n {\n name: '--element-brand-logo',\n usage: 'Enter a brand logo in the format: \\'url(\"https://company/logo.svg\")\\'',\n type: 'text'\n },\n {\n name: '--element-brand-logo-width',\n usage: \"Enter the width of the logo as CSS width value. Example: '100px'\",\n type: 'text'\n },\n {\n name: '--element-brand-logo-height',\n usage: \"Enter the height of the logo as CSS width value. Max: 48px; Example: '16px'\",\n type: 'text'\n },\n {\n name: '--element-brand-logo-text',\n usage:\n 'Enter a textual representation of the logo. Example: \\'\"Siemens logo\"\\'. The text must be wrapped in double quotes.',\n type: 'text'\n }\n ]\n },\n {\n name: 'Basic definitions',\n description: 'Basic definitions',\n properties: [\n {\n name: '--element-body-font-family',\n usage: 'The theme only uses one font everywhere.',\n type: 'font'\n },\n { name: '--element-button-radius', usage: 'Button border radius', type: 'text' },\n { name: '--element-button-focus-width', usage: 'Focus width', type: 'text' },\n {\n name: '--element-button-focus-overlay-width',\n usage: 'Focus overlay width',\n type: 'text'\n },\n {\n name: '--element-button-focus-overlay-color',\n usage: 'Focus overlay color',\n type: 'text'\n },\n { name: '--element-input-radius', usage: 'Input field border radius', type: 'text' },\n { name: '--element-logo-color', usage: 'Logo color', type: 'text' },\n { name: '--element-radius-1', usage: 'Border radius-1', type: 'text' },\n { name: '--element-radius-2', usage: 'Border radius-2', type: 'text' },\n { name: '--element-radius-3', usage: 'Border radius-3', type: 'text' }\n ]\n },\n {\n name: 'UI',\n description:\n 'UI colors are used on structural properties and icons and provide good contrast when used over any background.',\n properties: [\n { name: '--element-ui-0', usage: 'Logo, selected (active) elements', type: 'color' },\n { name: '--element-ui-0-hover', usage: 'Selected hover', type: 'color' },\n { name: '--element-ui-1', usage: 'Primary icons', type: 'color' },\n { name: '--element-ui-2', usage: 'Secondary icons', type: 'color' },\n { name: '--element-ui-3', usage: 'Disabled', type: 'color' },\n { name: '--element-ui-4', usage: 'Borders', type: 'color' },\n { name: '--element-ui-5', usage: 'Inverse', type: 'color' },\n { name: '--element-ui-6', usage: 'Shadows', type: 'color' },\n { name: '--element-box-shadow-color-1', usage: 'Box shadow color 1', type: 'color' },\n { name: '--element-box-shadow-color-2', usage: 'Box shadow color 2', type: 'color' },\n { name: '--element-focus-default', usage: 'Default focus color', type: 'color' }\n ]\n },\n {\n name: 'Base',\n description: 'Base colors are used as backgrounds of containers.',\n properties: [\n { name: '--element-base-0', usage: 'Page background, row background', type: 'color' },\n {\n name: '--element-base-1',\n usage: 'Header, navigation, card, table background',\n type: 'color'\n },\n {\n name: '--element-base-1-hover',\n usage: 'Hover on base-1 backgrounds, like table, tree, or menu',\n type: 'color'\n },\n {\n name: '--element-base-1-selected',\n usage: 'Selected on base-1 backgrounds, like table, tree, or menu',\n type: 'color'\n },\n {\n name: '--element-base-2',\n usage: 'Page background with higher contrast pages in dark mode',\n type: 'color'\n },\n {\n name: '--element-base-information',\n usage: 'Informational component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-success',\n usage: 'Success component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-caution',\n usage: 'Caution component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-warning',\n usage: 'Warning component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-danger',\n usage: 'Danger component background for e.g. badges',\n type: 'gradient'\n },\n {\n name: '--element-base-translucent-1',\n usage: 'Translucent background, e.g. backdrop',\n type: 'gradient'\n },\n {\n name: '--element-base-translucent-2',\n usage: 'Slightly translucent background, e.g. toasts',\n type: 'gradient'\n }\n ]\n },\n {\n name: 'Actions',\n description: 'Action colors are used to indicate actions that users can perform.',\n properties: [\n { name: '--element-action-primary', usage: 'Primary interaction', type: 'gradient' },\n {\n name: '--element-action-primary-hover',\n usage: 'Primary action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-primary-text', usage: 'Primary text color', type: 'color' },\n { name: '--element-action-secondary', usage: 'Secondary interaction', type: 'gradient' },\n {\n name: '--element-action-secondary-hover',\n usage: 'Secondary action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-secondary-text', usage: 'Secondary text color', type: 'color' },\n {\n name: '--element-action-secondary-text-hover',\n usage: 'Secondary text color on hover',\n type: 'color'\n },\n {\n name: '--element-action-secondary-border',\n usage: 'Secondary border color',\n type: 'color'\n },\n {\n name: '--element-action-secondary-border-hover',\n usage: 'Secondary border color on hover',\n type: 'color'\n },\n { name: '--element-action-warning', usage: 'Warning', type: 'gradient' },\n {\n name: '--element-action-warning-hover',\n usage: 'Warning action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-warning-text', usage: 'Warning text color', type: 'color' },\n { name: '--element-action-danger', usage: 'Danger', type: 'gradient' },\n {\n name: '--element-action-danger-hover',\n usage: 'Danger action background on hover',\n type: 'gradient'\n },\n { name: '--element-action-danger-text', usage: 'Danger text color', type: 'color' },\n {\n name: '--element-action-disabled-opacity',\n usage: 'Disabled action opacity',\n type: 'number'\n }\n ]\n },\n {\n name: 'Text',\n description: 'Similarly, categories for typography colors are also defined in this system.',\n properties: [\n { name: '--element-text-primary', usage: 'Primary', type: 'color' },\n { name: '--element-text-secondary', usage: 'Secondary', type: 'color' },\n { name: '--element-text-disabled', usage: 'Disabled', type: 'color' },\n { name: '--element-text-inverse', usage: 'Inverse', type: 'color' },\n { name: '--element-text-active', usage: 'Active', type: 'color' },\n { name: '--element-text-information', usage: 'Informational', type: 'color' },\n { name: '--element-text-success', usage: 'Success', type: 'color' },\n { name: '--element-text-caution', usage: 'Caution', type: 'color' },\n { name: '--element-text-warning', usage: 'Warning', type: 'color' },\n { name: '--element-text-danger', usage: 'Danger', type: 'color' }\n ]\n },\n {\n name: 'Status',\n description:\n 'Status colors are used to describe and/or report on the status of different things.',\n properties: [\n { name: '--element-status-information', usage: 'Informational', type: 'color' },\n {\n name: '--element-status-information-contrast',\n usage: 'Informational contrast',\n type: 'color'\n },\n { name: '--element-status-success', usage: 'Success', type: 'color' },\n { name: '--element-status-success-contrast', usage: 'Success contrast', type: 'color' },\n { name: '--element-status-caution', usage: 'Caution', type: 'color' },\n { name: '--element-status-caution-contrast', usage: 'Caution contrast', type: 'color' },\n { name: '--element-status-warning', usage: 'Warning', type: 'color' },\n { name: '--element-status-warning-contrast', usage: 'Warning contrast', type: 'color' },\n { name: '--element-status-danger', usage: 'Danger', type: 'color' },\n { name: '--element-status-danger-contrast', usage: 'Danger contrast', type: 'color' }\n ]\n },\n {\n name: 'Form feedback icons',\n description: 'Icons that are used to indicate a form item status',\n properties: [{ name: '--element-invalid-feedback-icon', usage: 'Danger', type: 'text' }]\n }\n ]\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { EventEmitter, inject, Injectable, PLATFORM_ID, signal, DOCUMENT } from '@angular/core';\nimport { DomSanitizer, Meta, SafeHtml } from '@angular/platform-browser';\nimport { Observable, of, ReplaySubject, throwError } from 'rxjs';\nimport { map, switchMap, take, tap } from 'rxjs/operators';\n\nimport { SiDefaultThemeStore, SiThemeStore } from './si-theme-store';\nimport {\n ELEMENT_THEME_NAME,\n Theme,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeType\n} from './si-theme.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SiThemeService {\n /**\n * The current color scheme. (e.g. light or dark).\n */\n private _resolvedColorScheme: ThemeType | undefined = 'light';\n private resolvedColorSchemeSub = new ReplaySubject<keyof ThemeColorSchemes>(1);\n /**\n * Emits events when the color scheme changes.\n *\n * @defaultValue this.resolvedColorSchemeSub.asObservable()\n */\n readonly resolvedColorScheme$ = this.resolvedColorSchemeSub.asObservable();\n /**\n * The current color scheme. (e.g. light or dark).\n */\n get resolvedColorScheme(): ThemeType | undefined {\n return this._resolvedColorScheme;\n }\n\n /**\n * All available theme names, including element theme name.\n */\n private _themeNames: string[] = [ELEMENT_THEME_NAME];\n private themeNamesSub = new ReplaySubject<string[]>(1);\n /**\n * Emits events when the list of available theme names changes.\n *\n * @defaultValue this.themeNamesSub.asObservable()\n */\n readonly themeNames$ = this.themeNamesSub.asObservable();\n\n /**\n * All available theme names, including element theme name.\n */\n get themeNames(): string[] {\n return this._themeNames;\n }\n\n /**\n * Emits events when the currently applied theme changes. Either by\n * changing to another theme or by re-applying a theme with updated\n * properties. When switching to default theme element, `undefined`\n * is emitted.\n */\n readonly themeChange = new EventEmitter<Theme | undefined>();\n\n /**\n * The name of the theme that is active. Theme name `element` is the default.\n */\n activeThemeName?: string;\n /**\n * Icon overrides by the currently activeTheme.\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly themeIcons = signal<Record<string, SafeHtml>>({});\n\n private themes: Map<string, Theme> = new Map();\n private darkMediaQuery?: MediaQueryList;\n private mediaQueryListener?: () => void;\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private previewTheme?: Theme;\n\n private themeStore =\n inject(SiThemeStore, { optional: true }) ?? new SiDefaultThemeStore(this.isBrowser);\n private meta = inject(Meta);\n private document = inject(DOCUMENT);\n private domSanitizer = inject(DomSanitizer);\n\n constructor() {\n this.resolvedColorScheme$.subscribe(scheme => (this._resolvedColorScheme = scheme));\n this.themeNames$.subscribe(names => (this._themeNames = names));\n\n if (this.isBrowser) {\n this.darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.mediaQueryListener = () => this.toggleDark(this.darkMediaQuery!.matches);\n }\n\n this.getActiveTheme()\n .pipe(take(1))\n .subscribe({\n next: theme => this.applyThemeStyle(theme, this._resolvedColorScheme),\n error: error => console.error('Cannot load active theme', error)\n });\n\n this.themeStore\n .loadThemeNames()\n .pipe(take(1))\n .subscribe({\n next: names => {\n names.push(ELEMENT_THEME_NAME);\n this.themeNamesSub.next(names);\n },\n error: error => console.error('Cannot load theme names', error)\n });\n }\n\n /**\n * Returns `true` if a theme with the given name is available.\n */\n hasTheme(name: string): boolean {\n return this._themeNames.includes(name);\n }\n\n /**\n * Returns a clone of the theme with the given name or `undefined` if not\n * available or name is `element`.\n * @param name - The name of the theme to be returned.\n * @returns The theme with the given name and `undefined` if name is `element`.\n */\n getTheme(name: string): Observable<Theme | undefined> {\n if (name === ELEMENT_THEME_NAME || !this.hasTheme(name)) {\n return of(undefined);\n }\n\n if (this.themes.has(name)) {\n const theme = this.themes.get(name)!;\n // return a clone to avoid changes as a side effect\n return of(this.cloneTheme(theme));\n }\n\n return this.themeStore.loadTheme(name).pipe(\n tap(theme => {\n if (theme) {\n this.themes.set(theme.name, this.cloneTheme(theme));\n }\n })\n );\n }\n\n /**\n * Loads and returns the currently active theme. Returns undefined if no custom theme is used.\n * @returns A custom theme or `undefined` if the default element theme is used.\n */\n getActiveTheme(): Observable<Theme | undefined> {\n if (this.activeThemeName) {\n return of(this.themes.get(this.activeThemeName));\n }\n return this.themeStore.loadActiveTheme().pipe(\n map(theme => {\n if (theme) {\n this.activeThemeName = theme.name;\n this.themes.set(theme.name, theme);\n this.applyTheme(theme, this._resolvedColorScheme);\n return theme;\n }\n this.activeThemeName = ELEMENT_THEME_NAME;\n return undefined;\n })\n );\n }\n\n /**\n * Adds or updates the given theme in the theme store.\n * @param theme - The theme to be saved.\n * @returns `true` if the theme was saved successfully.\n */\n addOrUpdateTheme(theme: Theme): Observable<boolean> {\n const result = new ReplaySubject<boolean>(1);\n\n this.themeStore.saveTheme(theme).subscribe({\n next: saveResult => {\n if (saveResult) {\n this.themes.set(theme.name, this.cloneTheme(theme));\n // Update list of theme names when this is a new one\n if (!this.hasTheme(theme.name)) {\n const names = this._themeNames.concat(theme.name);\n this.themeNamesSub.next(names);\n }\n }\n result.next(saveResult);\n result.complete();\n },\n error: error => result.error(error),\n complete: () => result.complete()\n });\n return result;\n }\n\n /**\n * Deletes the theme with the given name from the theme store.\n */\n deleteTheme(name: string): Observable<boolean> {\n const result = new ReplaySubject<boolean>(1);\n if (!this.hasTheme(name) || name === ELEMENT_THEME_NAME) {\n result.next(false);\n result.complete();\n } else {\n this.removeThemeCSS(name);\n this.themeStore.deleteTheme(name).subscribe({\n next: deleteResult => {\n if (deleteResult) {\n this.themes.delete(name);\n const names = this._themeNames.filter(themeName => themeName !== name);\n this.themeNamesSub.next(names);\n }\n result.next(deleteResult);\n result.complete();\n },\n error: error => result.error(error),\n complete: () => result.complete()\n });\n }\n return result;\n }\n\n /**\n * Resets the preview theme to the default element theme.\n */\n resetPreview(): void {\n this.previewTheme = { name: '__preview', schemes: { dark: {}, light: {} } };\n this.removeThemeCSS(this.previewTheme.name);\n }\n\n /**\n * Sets the active theme to the given name. If no name is given, the default element theme is used.\n */\n setActiveTheme(name?: string, type?: ThemeType): Observable<boolean> {\n const theType = type ?? this._resolvedColorScheme ?? 'auto';\n const theName = name ?? this.activeThemeName ?? ELEMENT_THEME_NAME;\n\n if (theName === this.activeThemeName) {\n return of(true);\n }\n if (!this.hasTheme(theName)) {\n return of(false);\n }\n\n const result = new ReplaySubject<boolean>(1);\n this.activeThemeName = theName;\n // Make the change in the remove store\n const store =\n theName !== ELEMENT_THEME_NAME\n ? this.themeStore.activateTheme(theName)\n : this.themeStore.deactivateTheme();\n store\n .pipe(\n // On success, load the theme\n switchMap(storeResult => {\n if (storeResult) {\n return this.getTheme(theName);\n } else {\n return throwError(() => 'Cannot change active theme in theme store.');\n }\n }),\n // Only take one to avoid unsubscription issues\n take(1)\n )\n .subscribe({\n next: theme => {\n this.applyTheme(theme, theType);\n result.next(true);\n },\n error: error => {\n console.error(`Activating theme ${name} failed`, error);\n result.next(false);\n },\n complete: () => result.complete()\n });\n return result;\n }\n\n /**\n * Apply `light` or `dark` theme to the document.\n */\n applyThemeType(type: ThemeType): void {\n if (type === this._resolvedColorScheme || !this.darkMediaQuery || !this.mediaQueryListener) {\n return;\n }\n\n this.darkMediaQuery.removeEventListener('change', this.mediaQueryListener);\n\n if (type === 'light') {\n this.toggleDark(false);\n } else if (type === 'dark') {\n this.toggleDark(true);\n } else {\n this.mediaQueryListener();\n this.darkMediaQuery.addEventListener('change', this.mediaQueryListener);\n }\n }\n\n /**\n * Applies the given theme to the document. If no theme is given, the active theme is applied.\n */\n applyTheme(theme?: Theme, type?: ThemeType, overwrite?: boolean): void {\n if (theme) {\n this.applyThemeStyle(theme, type, overwrite);\n } else {\n this.getActiveTheme()\n .pipe(take(1))\n .subscribe({\n next: loadedTheme => this.applyThemeStyle(loadedTheme, type),\n error: error => console.error('Cannot load active theme', error)\n });\n }\n }\n\n /**\n * Updates the given property of the preview theme.\n */\n updateProperty(name: string, value: string, type: keyof ThemeColorSchemes): void {\n if (!this.previewTheme) {\n this.resetPreview();\n }\n this.previewTheme!.schemes[type]![name] = value;\n this.createThemeCSS(this.previewTheme!);\n this.document.documentElement.classList.add('theme-__preview');\n this.dispatchThemeSwitchEvent();\n }\n\n /**\n * Checks if the given theme JSON object is a valid theme.\n */\n isThemeValid(data: unknown): boolean {\n const theme = data as Theme;\n return (\n !!data &&\n typeof data === 'object' &&\n 'name' in data &&\n 'schemes' in data &&\n typeof theme.name === 'string' &&\n typeof theme.schemes === 'object' &&\n this.isThemeTypeValid(theme, 'light') &&\n this.isThemeTypeValid(theme, 'dark')\n );\n }\n\n private isThemeTypeValid(theme: Theme, type: 'light' | 'dark'): boolean {\n return (\n !(type in theme.schemes) ||\n (typeof theme.schemes[type] === 'object' &&\n Object.values(theme.schemes[type] as ThemeColorScheme).every(\n item => typeof item === 'string'\n ) &&\n Object.keys(theme.schemes[type] as ThemeColorScheme).every(\n item => typeof item === 'string'\n ))\n );\n }\n\n private applyThemeStyle(theme?: Theme, type?: ThemeType, overwrite?: boolean): void {\n if (!this.isBrowser) {\n return;\n }\n this.resetPreview();\n\n if (theme && theme.name !== ELEMENT_THEME_NAME && (overwrite || !this.hasThemeCSS(theme))) {\n this.createThemeCSS(theme);\n }\n this.activateTheme(theme);\n\n if (type && type !== this._resolvedColorScheme) {\n this.applyThemeType(type);\n }\n\n this.themeIcons.set(\n Object.fromEntries(\n Object.entries(theme?.icons ?? {}).map(([key, icon]) => [key, this.parseDataSvgIcon(icon)])\n )\n );\n this.themeChange.emit(theme);\n }\n\n private activateTheme(theme?: Theme): void {\n const classList = this.document.documentElement.classList;\n classList.forEach(c => {\n if (c.startsWith('theme-')) {\n classList.remove(c);\n }\n });\n if (theme) {\n classList.add(`theme-${theme.name}`);\n }\n }\n\n private hasThemeCSS(theme: Theme): boolean {\n const id = `__theme-${theme.name}`;\n return !!this.document.getElementById(id);\n }\n\n private createThemeCSS(theme: Theme): void {\n let css = '';\n const themeSelector = `:root.theme-${theme.name}`;\n if (theme.schemes.light) {\n css = this.createThemeVariantCSS(css, themeSelector, theme.schemes.light);\n }\n if (theme.schemes.dark) {\n css = this.createThemeVariantCSS(css, themeSelector + '.app--dark', theme.schemes.dark);\n }\n\n this.removeThemeCSS(theme.name);\n const cssElement = this.document.createElement('style');\n cssElement.id = `__theme-${theme.name}`;\n cssElement.textContent = css;\n\n this.document.body.appendChild(cssElement);\n }\n\n private createThemeVariantCSS(css: string, selector: string, scheme: ThemeColorScheme): string {\n css += `${selector} {\\n`;\n for (const key of Object.keys(scheme)) {\n css += `${key}: ${scheme[key]};\\n`;\n }\n css += '}\\n';\n return css;\n }\n\n private removeThemeCSS(name: string): void {\n const id = `__theme-${name}`;\n this.document.getElementById(id)?.remove();\n this.document.documentElement.classList.remove(`theme-${name}`);\n }\n\n private toggleDark(dark: boolean): void {\n if (!this.isBrowser) {\n return;\n }\n\n this.document.documentElement.classList.toggle('app--dark', dark);\n const colorScheme = dark ? 'dark' : 'light';\n this.meta.updateTag({ name: 'color-scheme', content: colorScheme });\n this.resolvedColorSchemeSub.next(colorScheme);\n this.dispatchThemeSwitchEvent();\n }\n\n private cloneTheme(theme: Theme): Theme {\n const clone: Theme = { ...theme, schemes: {} };\n if (theme.schemes.light) {\n clone.schemes.light = { ...theme.schemes.light };\n }\n if (theme.schemes.dark) {\n clone.schemes.dark = { ...theme.schemes.dark };\n }\n return clone;\n }\n\n private dispatchThemeSwitchEvent(): void {\n window.dispatchEvent(\n new CustomEvent('theme-switch', {\n detail: {\n dark: this._resolvedColorScheme === 'dark',\n colorScheme: this._resolvedColorScheme\n }\n })\n );\n }\n\n private parseDataSvgIcon(icon: string): SafeHtml {\n // This method is currently a copy of parseDataSvgIcon in si-icon.registry.ts.\n // Those are likely to diverge in the future, as this version will get support for other formats like:\n // - URLs\n // - Plain SVG data\n // - Promises to enable lazy icon loading using import()\n const parsed = /^data:image\\/svg\\+xml;utf8,(.*)$/.exec(icon);\n if (!parsed) {\n console.error('Failed to parse icon', icon);\n return '';\n }\n return this.domSanitizer.bypassSecurityTrustHtml(parsed[1]);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-theme-store';\nexport * from './si-theme.service';\nexport * from './si-theme.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { input, computed, Component, model, booleanAttribute, output,
|
|
3
|
+
import { input, computed, Component, model, booleanAttribute, output, viewChildren, NgModule } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/forms';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
6
|
import { SiIconNextComponent, addIcons, elementPlus } from '@siemens/element-ng/icon';
|
|
7
7
|
import { SiNumberInputComponent } from '@siemens/element-ng/number-input';
|
|
8
8
|
import { SiSelectComponent, SiSelectSingleValueDirective, SiSelectSimpleOptionsDirective } from '@siemens/element-ng/select';
|
|
9
|
-
import { SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
9
|
+
import { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Copyright (c) Siemens 2016 - 2025
|
|
@@ -35,8 +35,8 @@ class SiReadonlyThresholdOptionComponent {
|
|
|
35
35
|
const option = this.option();
|
|
36
36
|
return option?.type === 'option' ? option.label : option?.title;
|
|
37
37
|
});
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
39
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiReadonlyThresholdOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiReadonlyThresholdOptionComponent, isStandalone: true, selector: "si-readonly-threshold-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "d-flex align-items-center py-2 my-4 px-4 si-title-2" }, ngImport: i0, template: `@let opt = option();
|
|
40
40
|
@if (opt && opt.icon) {
|
|
41
41
|
<i class="icon-stack">
|
|
42
42
|
<si-icon-next
|
|
@@ -55,7 +55,7 @@ class SiReadonlyThresholdOptionComponent {
|
|
|
55
55
|
}
|
|
56
56
|
<span class="text-truncate">{{ label() | translate }}</span>`, isInline: true, styles: [":host{block-size:2rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }] });
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiReadonlyThresholdOptionComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
60
|
args: [{ selector: 'si-readonly-threshold-option', imports: [NgClass, SiTranslatePipe, SiIconNextComponent], template: `@let opt = option();
|
|
61
61
|
@if (opt && opt.icon) {
|
|
@@ -165,37 +165,37 @@ class SiThresholdComponent {
|
|
|
165
165
|
*
|
|
166
166
|
* @defaultValue
|
|
167
167
|
* ```
|
|
168
|
-
* $localize`:@@SI_THRESHOLD.DELETE:Delete step`
|
|
168
|
+
* t(() => $localize`:@@SI_THRESHOLD.DELETE:Delete step`)
|
|
169
169
|
* ```
|
|
170
170
|
*/
|
|
171
|
-
deleteAriaLabel = input($localize `:@@SI_THRESHOLD.DELETE:Delete step`);
|
|
171
|
+
deleteAriaLabel = input(t(() => $localize `:@@SI_THRESHOLD.DELETE:Delete step`));
|
|
172
172
|
/**
|
|
173
173
|
* The aria-label for add button
|
|
174
174
|
*
|
|
175
175
|
* @defaultValue
|
|
176
176
|
* ```
|
|
177
|
-
* $localize`:@@SI_THRESHOLD.ADD:Add step`
|
|
177
|
+
* t(() => $localize`:@@SI_THRESHOLD.ADD:Add step`)
|
|
178
178
|
* ```
|
|
179
179
|
*/
|
|
180
|
-
addAriaLabel = input($localize `:@@SI_THRESHOLD.ADD:Add step`);
|
|
180
|
+
addAriaLabel = input(t(() => $localize `:@@SI_THRESHOLD.ADD:Add step`));
|
|
181
181
|
/**
|
|
182
182
|
* The aria-label for input field
|
|
183
183
|
*
|
|
184
184
|
* @defaultValue
|
|
185
185
|
* ```
|
|
186
|
-
* $localize`:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`
|
|
186
|
+
* t(() => $localize`:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`)
|
|
187
187
|
* ```
|
|
188
188
|
*/
|
|
189
|
-
inputAriaLabel = input($localize `:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`);
|
|
189
|
+
inputAriaLabel = input(t(() => $localize `:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`));
|
|
190
190
|
/**
|
|
191
191
|
* The aria-label for status selection
|
|
192
192
|
*
|
|
193
193
|
* @defaultValue
|
|
194
194
|
* ```
|
|
195
|
-
* $localize`:@@SI_THRESHOLD.STATUS:Status`
|
|
195
|
+
* t(() => $localize`:@@SI_THRESHOLD.STATUS:Status`)
|
|
196
196
|
* ```
|
|
197
197
|
*/
|
|
198
|
-
statusAriaLabel = input($localize `:@@SI_THRESHOLD.STATUS:Status`);
|
|
198
|
+
statusAriaLabel = input(t(() => $localize `:@@SI_THRESHOLD.STATUS:Status`));
|
|
199
199
|
/** Fired when validation status changes */
|
|
200
200
|
validChange = output();
|
|
201
201
|
colors = computed(() => {
|
|
@@ -218,7 +218,7 @@ class SiThresholdComponent {
|
|
|
218
218
|
get valid() {
|
|
219
219
|
return this._valid;
|
|
220
220
|
}
|
|
221
|
-
|
|
221
|
+
numberInputs = viewChildren(SiNumberInputComponent);
|
|
222
222
|
ngOnChanges() {
|
|
223
223
|
this.validate();
|
|
224
224
|
}
|
|
@@ -234,7 +234,7 @@ class SiThresholdComponent {
|
|
|
234
234
|
updated.splice(index + 1, 0, newStep);
|
|
235
235
|
this.thresholdSteps.set(updated);
|
|
236
236
|
this.validate();
|
|
237
|
-
setTimeout(() => this.
|
|
237
|
+
setTimeout(() => this.numberInputs()[index].inputElement().nativeElement.focus());
|
|
238
238
|
}
|
|
239
239
|
stepChange() {
|
|
240
240
|
this.thresholdSteps.set([...this.thresholdSteps()]);
|
|
@@ -265,10 +265,10 @@ class SiThresholdComponent {
|
|
|
265
265
|
this.validChange.emit(this.valid);
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
269
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
268
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiThresholdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
269
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiThresholdComponent, isStandalone: true, selector: "si-threshold", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, thresholdSteps: { classPropertyName: "thresholdSteps", publicName: "thresholdSteps", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, stepSize: { classPropertyName: "stepSize", publicName: "stepSize", isSignal: true, isRequired: false, transformFunction: null }, maxSteps: { classPropertyName: "maxSteps", publicName: "maxSteps", isSignal: true, isRequired: false, transformFunction: null }, validation: { classPropertyName: "validation", publicName: "validation", isSignal: true, isRequired: false, transformFunction: null }, canAddRemoveSteps: { classPropertyName: "canAddRemoveSteps", publicName: "canAddRemoveSteps", isSignal: true, isRequired: false, transformFunction: null }, horizontalLayout: { classPropertyName: "horizontalLayout", publicName: "horizontalLayout", isSignal: true, isRequired: false, transformFunction: null }, showDecIncButtons: { classPropertyName: "showDecIncButtons", publicName: "showDecIncButtons", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, readonlyConditions: { classPropertyName: "readonlyConditions", publicName: "readonlyConditions", isSignal: true, isRequired: false, transformFunction: null }, deleteAriaLabel: { classPropertyName: "deleteAriaLabel", publicName: "deleteAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, addAriaLabel: { classPropertyName: "addAriaLabel", publicName: "addAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, inputAriaLabel: { classPropertyName: "inputAriaLabel", publicName: "inputAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, statusAriaLabel: { classPropertyName: "statusAriaLabel", publicName: "statusAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thresholdSteps: "thresholdStepsChange", validChange: "validChange" }, host: { properties: { "class.add-remove": "canAddRemoveSteps()", "class.horizontal": "horizontalLayout()", "class.dec-inc-buttons": "showDecIncButtons()" } }, viewQueries: [{ propertyName: "numberInputs", predicate: SiNumberInputComponent, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@for (step of thresholdSteps(); track step) {\n <div class=\"ths-step\">\n @if (!$first) {\n <div class=\"ths-value d-flex align-items-center\">\n @if (canAddRemoveSteps() && !readonly() && !readonlyConditions()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-delete m-4\"\n [attr.aria-label]=\"deleteAriaLabel() | translate\"\n (click)=\"deleteStep($index)\"\n ></button>\n }\n @if (!canAddRemoveSteps() || readonly() || readonlyConditions()) {\n <div class=\"py-4 my-4\">​</div>\n }\n <div class=\"line\">\n <div class=\"segment\" [ngClass]=\"colors()[$index - 1]\"></div>\n <div class=\"dot\"></div>\n <div class=\"segment\" [ngClass]=\"colors()[$index]\"></div>\n </div>\n <div class=\"d-flex align-items-center text-nowrap m-4\">\n <si-number-input\n #valueInput=\"ngModel\"\n class=\"form-control text-end\"\n [class.is-invalid]=\"step.valid === false\"\n [aria-label]=\"inputAriaLabel() | translate\"\n [readonly]=\"readonly()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [min]=\"minValue()\"\n [max]=\"maxValue()\"\n [step]=\"stepSize()\"\n [unit]=\"unit()\"\n [showButtons]=\"showDecIncButtons()\"\n [required]=\"true\"\n [(ngModel)]=\"step.value\"\n (ngModelChange)=\"stepChange()\"\n />\n </div>\n </div>\n }\n @if ($first && horizontalLayout()) {\n <ng-container\n [ngTemplateOutlet]=\"startend\"\n [ngTemplateOutletContext]=\"{ color: colors()[$index] }\"\n />\n }\n <div class=\"ths-option d-flex align-items-center\">\n @if (canAddRemoveSteps() && !readonly() && !readonlyConditions()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-secondary m-4\"\n [disabled]=\"maxSteps() && $count >= maxSteps()\"\n [attr.aria-label]=\"addAriaLabel() | translate\"\n (click)=\"addStep($index)\"\n >\n <si-icon-next [icon]=\"icons.elementPlus\" />\n </button>\n }\n @if (!canAddRemoveSteps() || readonly() || readonlyConditions()) {\n <div class=\"py-4 my-4\">​</div>\n }\n <div class=\"line\" [ngClass]=\"colors()[$index]\">\n <div class=\"segment\"></div>\n </div>\n @if (!readonly() && !readonlyConditions()) {\n <si-select\n class=\"my-4\"\n [ariaLabel]=\"statusAriaLabel() | translate\"\n [readonly]=\"readonly()\"\n [options]=\"options()\"\n [(value)]=\"step.optionValue\"\n (valueChange)=\"stepChange()\"\n />\n }\n @if (readonly() || readonlyConditions()) {\n <si-readonly-threshold-option [options]=\"options()\" [value]=\"step.optionValue\" />\n }\n </div>\n @if ($last && horizontalLayout()) {\n <ng-container\n [ngTemplateOutlet]=\"startend\"\n [ngTemplateOutletContext]=\"{ color: colors()[$index] }\"\n />\n }\n </div>\n}\n\n<ng-template #startend let-color=\"color\">\n <div class=\"ths-value d-flex align-items-center startend\">\n <div class=\"py-4 my-4\">​</div>\n <div class=\"line\">\n <div class=\"segment\" [ngClass]=\"color\"></div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{--direction-main: column;--direction-option: row;--direction-value: row;--input-width: calc(var(--input-base-width, 90px) + var(--buttons-width, 0px))}:host.horizontal{--direction-main: row;--direction-option: column;--direction-value: column-reverse;--value-margin: -24px;padding-inline:calc(var(--value-margin) * -1)}:host.dec-inc-buttons{--buttons-width: 48px}:host,.ths-step{display:flex;flex-direction:var(--direction-main)}.ths-option{flex-direction:var(--direction-option);min-inline-size:var(--option-width, 160px)}.ths-value{flex-direction:var(--direction-value);margin-inline:var(--value-margin)}si-select{border-radius:var(--element-button-radius);overflow:hidden}.form-control{inline-size:var(--input-width);block-size:calc(1rem + 16px)}.line{align-self:stretch;flex-basis:16px;display:flex;flex-direction:var(--direction-main);align-items:center;color:var(--element-ui-2);gap:4px}.segment{flex:1;border:1px solid currentColor}.dot{inline-size:6px;block-size:6px;border:1px solid var(--element-ui-2);border-radius:50%}.startend{inline-size:calc(var(--input-width) / 2)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "component", type: SiNumberInputComponent, selector: "si-number-input", inputs: ["min", "max", "step", "value", "unit", "showButtons", "aria-label", "inputId", "disabled", "readonly", "placeholder"], outputs: ["valueChange"] }, { kind: "component", type: SiSelectComponent, selector: "si-select", inputs: ["id", "ariaLabel", "labelledby", "filterPlaceholder", "noResultsFoundLabel", "placeholder", "readonly", "hasFilter"], outputs: ["dropdownClose", "openChange"] }, { kind: "directive", type: SiSelectSingleValueDirective, selector: "si-select:not([multi])" }, { kind: "directive", type: SiSelectSimpleOptionsDirective, selector: "si-select[options]", inputs: ["options", "optionEqualCheckFn"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiReadonlyThresholdOptionComponent, selector: "si-readonly-threshold-option", inputs: ["value", "options"] }] });
|
|
270
270
|
}
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiThresholdComponent, decorators: [{
|
|
272
272
|
type: Component,
|
|
273
273
|
args: [{ selector: 'si-threshold', imports: [
|
|
274
274
|
FormsModule,
|
|
@@ -293,11 +293,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
|
|
|
293
293
|
* SPDX-License-Identifier: MIT
|
|
294
294
|
*/
|
|
295
295
|
class SiThresholdModule {
|
|
296
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
297
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
298
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
296
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiThresholdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
297
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SiThresholdModule, imports: [SiThresholdComponent], exports: [SiThresholdComponent] });
|
|
298
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiThresholdModule, imports: [SiThresholdComponent] });
|
|
299
299
|
}
|
|
300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiThresholdModule, decorators: [{
|
|
301
301
|
type: NgModule,
|
|
302
302
|
args: [{
|
|
303
303
|
imports: [SiThresholdComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-threshold.mjs","sources":["../../../../projects/element-ng/threshold/si-readonly-threshold-option.component.ts","../../../../projects/element-ng/threshold/si-threshold.component.ts","../../../../projects/element-ng/threshold/si-threshold.component.html","../../../../projects/element-ng/threshold/si-threshold.module.ts","../../../../projects/element-ng/threshold/index.ts","../../../../projects/element-ng/threshold/siemens-element-ng-threshold.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SelectOption, SelectOptionLegacy } from '@siemens/element-ng/select';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-readonly-threshold-option',\n imports: [NgClass, SiTranslatePipe, SiIconNextComponent],\n template: `@let opt = option();\n @if (opt && opt.icon) {\n <i class=\"icon-stack\">\n <si-icon-next\n class=\"icon me-2\"\n [icon]=\"opt.icon\"\n [ngClass]=\"[(!opt.disabled && color()) || '']\"\n />\n @if (opt.type === 'option' && opt.stackedIcon) {\n <si-icon-next\n class=\"icon me-2\"\n [icon]=\"opt.stackedIcon\"\n [ngClass]=\"opt.stackedIconColor\"\n />\n }\n </i>\n }\n <span class=\"text-truncate\">{{ label() | translate }}</span>`,\n styleUrl: './si-readonly-threshold-option.component.scss',\n host: { class: 'd-flex align-items-center py-2 my-4 px-4 si-title-2' }\n})\nexport class SiReadonlyThresholdOptionComponent {\n readonly value = input.required<string>();\n readonly options = input.required<SelectOptionLegacy[] | SelectOption<unknown>[]>();\n\n protected readonly option = computed(() => {\n const options = this.options();\n const value = this.value();\n if (value && options) {\n return options.find(opt => (opt.type === 'option' ? opt.value === value : opt.id === value));\n }\n return undefined;\n });\n\n protected readonly color = computed(() => {\n const option = this.option();\n return !option || option.disabled\n ? undefined\n : option.type === 'option'\n ? option.iconColor\n : option.color;\n });\n\n protected readonly label = computed(() => {\n const option = this.option();\n return option?.type === 'option' ? option.label : option?.title;\n });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n output\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { addIcons, elementPlus, SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiNumberInputComponent } from '@siemens/element-ng/number-input';\nimport {\n SelectOption,\n SelectOptionLegacy,\n SiSelectComponent,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n} from '@siemens/element-ng/select';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiReadonlyThresholdOptionComponent } from './si-readonly-threshold-option.component';\n\n/**\n * One step in a list of thresholds\n */\nexport interface ThresholdStep {\n /** Threshold value, the first step has no value */\n value?: number;\n /** One of the `SelectOption.id` */\n optionValue: string;\n /** When set to `false`, input fields are highlighted as invalid */\n valid?: boolean;\n}\n\n@Component({\n selector: 'si-threshold',\n imports: [\n FormsModule,\n NgClass,\n NgTemplateOutlet,\n SiIconNextComponent,\n SiNumberInputComponent,\n SiSelectComponent,\n SiSelectSingleValueDirective,\n SiSelectSimpleOptionsDirective,\n SiTranslatePipe,\n SiReadonlyThresholdOptionComponent\n ],\n templateUrl: './si-threshold.component.html',\n styleUrl: './si-threshold.component.scss',\n host: {\n '[class.add-remove]': 'canAddRemoveSteps()',\n '[class.horizontal]': 'horizontalLayout()',\n '[class.dec-inc-buttons]': 'showDecIncButtons()'\n }\n})\nexport class SiThresholdComponent implements OnChanges {\n /**\n * Options to be shown in select dropdown\n *\n * @defaultValue []\n */\n readonly options = input<SelectOptionLegacy[] | SelectOption<unknown>[]>([]);\n /**\n * The thresholds\n *\n * @defaultValue []\n */\n readonly thresholdSteps = model<ThresholdStep[]>([]);\n /**\n * The unit to show\n *\n * @defaultValue ''\n */\n readonly unit = input('');\n /**\n * The min. value for the threshold value\n *\n * @defaultValue 0\n */\n readonly minValue = input(0);\n /**\n * The max. value for the threshold value\n *\n * @defaultValue 100\n */\n readonly maxValue = input(100);\n /**\n * The step size for the threshold value\n *\n * @defaultValue 1\n */\n readonly stepSize = input(1);\n /**\n * Max. number of steps, 0 for no hard limit\n *\n * @defaultValue 0\n */\n readonly maxSteps = input(0);\n /**\n * Do validation?\n *\n * @defaultValue true\n */\n readonly validation = input(true, { transform: booleanAttribute });\n /**\n * When disabled, steps cannot be added/removed\n *\n * @defaultValue true\n */\n readonly canAddRemoveSteps = input(true, { transform: booleanAttribute });\n /**\n * Use horizontal layout?\n *\n * @defaultValue false\n */\n readonly horizontalLayout = input(false, { transform: booleanAttribute });\n /**\n * Show dec/inc buttons?\n *\n * @defaultValue true\n */\n readonly showDecIncButtons = input(true, { transform: booleanAttribute });\n /**\n * The obvious\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Indicate that the threshold options are readonly and cannot be changed. This will also disable adding / removing steps.\n *\n * @defaultValue false\n */\n readonly readonlyConditions = input(false, { transform: booleanAttribute });\n /**\n * The aria-label for delete button\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_THRESHOLD.DELETE:Delete step`\n * ```\n */\n readonly deleteAriaLabel = input($localize`:@@SI_THRESHOLD.DELETE:Delete step`);\n /**\n * The aria-label for add button\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_THRESHOLD.ADD:Add step`\n * ```\n */\n readonly addAriaLabel = input($localize`:@@SI_THRESHOLD.ADD:Add step`);\n /**\n * The aria-label for input field\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`\n * ```\n */\n readonly inputAriaLabel = input($localize`:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`);\n /**\n * The aria-label for status selection\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_THRESHOLD.STATUS:Status`\n * ```\n */\n readonly statusAriaLabel = input($localize`:@@SI_THRESHOLD.STATUS:Status`);\n\n /** Fired when validation status changes */\n readonly validChange = output<boolean>();\n\n protected readonly colors = computed(() => {\n const colorMap = new Map<unknown, string>();\n for (const opt of this.options()) {\n if (opt.type === 'option') {\n colorMap.set(opt.value, opt.iconColor ?? '');\n } else if (!opt.type) {\n colorMap.set(opt.id, opt.color ?? '');\n }\n }\n return this.thresholdSteps().map(ths => colorMap.get(ths.optionValue) ?? '');\n });\n\n protected readonly icons = addIcons({ elementPlus });\n private _valid = true;\n /**\n * Whether the current input value is valid or not.\n */\n get valid(): boolean {\n return this._valid;\n }\n private element = inject(ElementRef);\n\n ngOnChanges(): void {\n this.validate();\n }\n\n protected deleteStep(index: number): void {\n const updated = [...this.thresholdSteps()];\n updated.splice(index, 1);\n this.thresholdSteps.set(updated);\n this.validate();\n }\n\n protected addStep(index: number): void {\n const newStep: ThresholdStep = { ...this.thresholdSteps()[index], value: undefined };\n const updated = [...this.thresholdSteps()];\n updated.splice(index + 1, 0, newStep);\n this.thresholdSteps.set(updated);\n this.validate();\n setTimeout(() =>\n this.element.nativeElement.querySelectorAll('input.form-control')[index]?.focus()\n );\n }\n\n protected stepChange(): void {\n this.thresholdSteps.set([...this.thresholdSteps()]);\n this.validate();\n }\n\n private validate(): void {\n const prevValid = this.valid;\n this._valid = true;\n for (let i = 1; i < this.thresholdSteps().length; i++) {\n const step = this.thresholdSteps()[i];\n\n if (this.validation()) {\n const prev = this.thresholdSteps()[i - 1];\n const next = this.thresholdSteps()[i + 1];\n\n // valid: withing min/max, each step is lower than next step with step size between\n step.valid =\n step.value != null &&\n step.value >= this.minValue() &&\n step.value <= this.maxValue() &&\n (prev.value == null || step.value - this.stepSize() >= prev.value) &&\n (next?.value == null || step.value + this.stepSize() <= next.value);\n this._valid &&= step.valid;\n } else {\n step.valid = true;\n }\n }\n if (this.valid !== prevValid) {\n this.validChange.emit(this.valid);\n }\n }\n}\n","@for (step of thresholdSteps(); track step) {\n <div class=\"ths-step\">\n @if (!$first) {\n <div class=\"ths-value d-flex align-items-center\">\n @if (canAddRemoveSteps() && !readonly() && !readonlyConditions()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-delete m-4\"\n [attr.aria-label]=\"deleteAriaLabel() | translate\"\n (click)=\"deleteStep($index)\"\n ></button>\n }\n @if (!canAddRemoveSteps() || readonly() || readonlyConditions()) {\n <div class=\"py-4 my-4\">​</div>\n }\n <div class=\"line\">\n <div class=\"segment\" [ngClass]=\"colors()[$index - 1]\"></div>\n <div class=\"dot\"></div>\n <div class=\"segment\" [ngClass]=\"colors()[$index]\"></div>\n </div>\n <div class=\"d-flex align-items-center text-nowrap m-4\">\n <si-number-input\n #valueInput=\"ngModel\"\n class=\"form-control text-end\"\n [class.is-invalid]=\"step.valid === false\"\n [aria-label]=\"inputAriaLabel() | translate\"\n [readonly]=\"readonly()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [min]=\"minValue()\"\n [max]=\"maxValue()\"\n [step]=\"stepSize()\"\n [unit]=\"unit()\"\n [showButtons]=\"showDecIncButtons()\"\n [required]=\"true\"\n [(ngModel)]=\"step.value\"\n (ngModelChange)=\"stepChange()\"\n />\n </div>\n </div>\n }\n @if ($first && horizontalLayout()) {\n <ng-container\n [ngTemplateOutlet]=\"startend\"\n [ngTemplateOutletContext]=\"{ color: colors()[$index] }\"\n />\n }\n <div class=\"ths-option d-flex align-items-center\">\n @if (canAddRemoveSteps() && !readonly() && !readonlyConditions()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-secondary m-4\"\n [disabled]=\"maxSteps() && $count >= maxSteps()\"\n [attr.aria-label]=\"addAriaLabel() | translate\"\n (click)=\"addStep($index)\"\n >\n <si-icon-next [icon]=\"icons.elementPlus\" />\n </button>\n }\n @if (!canAddRemoveSteps() || readonly() || readonlyConditions()) {\n <div class=\"py-4 my-4\">​</div>\n }\n <div class=\"line\" [ngClass]=\"colors()[$index]\">\n <div class=\"segment\"></div>\n </div>\n @if (!readonly() && !readonlyConditions()) {\n <si-select\n class=\"my-4\"\n [ariaLabel]=\"statusAriaLabel() | translate\"\n [readonly]=\"readonly()\"\n [options]=\"options()\"\n [(value)]=\"step.optionValue\"\n (valueChange)=\"stepChange()\"\n />\n }\n @if (readonly() || readonlyConditions()) {\n <si-readonly-threshold-option [options]=\"options()\" [value]=\"step.optionValue\" />\n }\n </div>\n @if ($last && horizontalLayout()) {\n <ng-container\n [ngTemplateOutlet]=\"startend\"\n [ngTemplateOutletContext]=\"{ color: colors()[$index] }\"\n />\n }\n </div>\n}\n\n<ng-template #startend let-color=\"color\">\n <div class=\"ths-value d-flex align-items-center startend\">\n <div class=\"py-4 my-4\">​</div>\n <div class=\"line\">\n <div class=\"segment\" [ngClass]=\"color\"></div>\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiThresholdComponent } from './si-threshold.component';\n\n@NgModule({\n imports: [SiThresholdComponent],\n exports: [SiThresholdComponent]\n})\nexport class SiThresholdModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-threshold.component';\nexport * from './si-threshold.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-threshold.mjs","sources":["../../../../projects/element-ng/threshold/si-readonly-threshold-option.component.ts","../../../../projects/element-ng/threshold/si-threshold.component.ts","../../../../projects/element-ng/threshold/si-threshold.component.html","../../../../projects/element-ng/threshold/si-threshold.module.ts","../../../../projects/element-ng/threshold/index.ts","../../../../projects/element-ng/threshold/siemens-element-ng-threshold.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SelectOption, SelectOptionLegacy } from '@siemens/element-ng/select';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-readonly-threshold-option',\n imports: [NgClass, SiTranslatePipe, SiIconNextComponent],\n template: `@let opt = option();\n @if (opt && opt.icon) {\n <i class=\"icon-stack\">\n <si-icon-next\n class=\"icon me-2\"\n [icon]=\"opt.icon\"\n [ngClass]=\"[(!opt.disabled && color()) || '']\"\n />\n @if (opt.type === 'option' && opt.stackedIcon) {\n <si-icon-next\n class=\"icon me-2\"\n [icon]=\"opt.stackedIcon\"\n [ngClass]=\"opt.stackedIconColor\"\n />\n }\n </i>\n }\n <span class=\"text-truncate\">{{ label() | translate }}</span>`,\n styleUrl: './si-readonly-threshold-option.component.scss',\n host: { class: 'd-flex align-items-center py-2 my-4 px-4 si-title-2' }\n})\nexport class SiReadonlyThresholdOptionComponent {\n readonly value = input.required<string>();\n readonly options = input.required<SelectOptionLegacy[] | SelectOption<unknown>[]>();\n\n protected readonly option = computed(() => {\n const options = this.options();\n const value = this.value();\n if (value && options) {\n return options.find(opt => (opt.type === 'option' ? opt.value === value : opt.id === value));\n }\n return undefined;\n });\n\n protected readonly color = computed(() => {\n const option = this.option();\n return !option || option.disabled\n ? undefined\n : option.type === 'option'\n ? option.iconColor\n : option.color;\n });\n\n protected readonly label = computed(() => {\n const option = this.option();\n return option?.type === 'option' ? option.label : option?.title;\n });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n input,\n model,\n OnChanges,\n output,\n viewChildren\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { addIcons, elementPlus, SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiNumberInputComponent } from '@siemens/element-ng/number-input';\nimport {\n SelectOption,\n SelectOptionLegacy,\n SiSelectComponent,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n} from '@siemens/element-ng/select';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiReadonlyThresholdOptionComponent } from './si-readonly-threshold-option.component';\n\n/**\n * One step in a list of thresholds\n */\nexport interface ThresholdStep {\n /** Threshold value, the first step has no value */\n value?: number;\n /** One of the `SelectOption.id` */\n optionValue: string;\n /** When set to `false`, input fields are highlighted as invalid */\n valid?: boolean;\n}\n\n@Component({\n selector: 'si-threshold',\n imports: [\n FormsModule,\n NgClass,\n NgTemplateOutlet,\n SiIconNextComponent,\n SiNumberInputComponent,\n SiSelectComponent,\n SiSelectSingleValueDirective,\n SiSelectSimpleOptionsDirective,\n SiTranslatePipe,\n SiReadonlyThresholdOptionComponent\n ],\n templateUrl: './si-threshold.component.html',\n styleUrl: './si-threshold.component.scss',\n host: {\n '[class.add-remove]': 'canAddRemoveSteps()',\n '[class.horizontal]': 'horizontalLayout()',\n '[class.dec-inc-buttons]': 'showDecIncButtons()'\n }\n})\nexport class SiThresholdComponent implements OnChanges {\n /**\n * Options to be shown in select dropdown\n *\n * @defaultValue []\n */\n readonly options = input<SelectOptionLegacy[] | SelectOption<unknown>[]>([]);\n /**\n * The thresholds\n *\n * @defaultValue []\n */\n readonly thresholdSteps = model<ThresholdStep[]>([]);\n /**\n * The unit to show\n *\n * @defaultValue ''\n */\n readonly unit = input('');\n /**\n * The min. value for the threshold value\n *\n * @defaultValue 0\n */\n readonly minValue = input(0);\n /**\n * The max. value for the threshold value\n *\n * @defaultValue 100\n */\n readonly maxValue = input(100);\n /**\n * The step size for the threshold value\n *\n * @defaultValue 1\n */\n readonly stepSize = input(1);\n /**\n * Max. number of steps, 0 for no hard limit\n *\n * @defaultValue 0\n */\n readonly maxSteps = input(0);\n /**\n * Do validation?\n *\n * @defaultValue true\n */\n readonly validation = input(true, { transform: booleanAttribute });\n /**\n * When disabled, steps cannot be added/removed\n *\n * @defaultValue true\n */\n readonly canAddRemoveSteps = input(true, { transform: booleanAttribute });\n /**\n * Use horizontal layout?\n *\n * @defaultValue false\n */\n readonly horizontalLayout = input(false, { transform: booleanAttribute });\n /**\n * Show dec/inc buttons?\n *\n * @defaultValue true\n */\n readonly showDecIncButtons = input(true, { transform: booleanAttribute });\n /**\n * The obvious\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Indicate that the threshold options are readonly and cannot be changed. This will also disable adding / removing steps.\n *\n * @defaultValue false\n */\n readonly readonlyConditions = input(false, { transform: booleanAttribute });\n /**\n * The aria-label for delete button\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_THRESHOLD.DELETE:Delete step`)\n * ```\n */\n readonly deleteAriaLabel = input(t(() => $localize`:@@SI_THRESHOLD.DELETE:Delete step`));\n /**\n * The aria-label for add button\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_THRESHOLD.ADD:Add step`)\n * ```\n */\n readonly addAriaLabel = input(t(() => $localize`:@@SI_THRESHOLD.ADD:Add step`));\n /**\n * The aria-label for input field\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`)\n * ```\n */\n readonly inputAriaLabel = input(t(() => $localize`:@@SI_THRESHOLD.INPUT_LABEL:Threshold value`));\n /**\n * The aria-label for status selection\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_THRESHOLD.STATUS:Status`)\n * ```\n */\n readonly statusAriaLabel = input(t(() => $localize`:@@SI_THRESHOLD.STATUS:Status`));\n\n /** Fired when validation status changes */\n readonly validChange = output<boolean>();\n\n protected readonly colors = computed(() => {\n const colorMap = new Map<unknown, string>();\n for (const opt of this.options()) {\n if (opt.type === 'option') {\n colorMap.set(opt.value, opt.iconColor ?? '');\n } else if (!opt.type) {\n colorMap.set(opt.id, opt.color ?? '');\n }\n }\n return this.thresholdSteps().map(ths => colorMap.get(ths.optionValue) ?? '');\n });\n\n protected readonly icons = addIcons({ elementPlus });\n private _valid = true;\n /**\n * Whether the current input value is valid or not.\n */\n get valid(): boolean {\n return this._valid;\n }\n\n private readonly numberInputs = viewChildren(SiNumberInputComponent);\n\n ngOnChanges(): void {\n this.validate();\n }\n\n protected deleteStep(index: number): void {\n const updated = [...this.thresholdSteps()];\n updated.splice(index, 1);\n this.thresholdSteps.set(updated);\n this.validate();\n }\n\n protected addStep(index: number): void {\n const newStep: ThresholdStep = { ...this.thresholdSteps()[index], value: undefined };\n const updated = [...this.thresholdSteps()];\n updated.splice(index + 1, 0, newStep);\n this.thresholdSteps.set(updated);\n this.validate();\n setTimeout(() => this.numberInputs()[index].inputElement().nativeElement.focus());\n }\n\n protected stepChange(): void {\n this.thresholdSteps.set([...this.thresholdSteps()]);\n this.validate();\n }\n\n private validate(): void {\n const prevValid = this.valid;\n this._valid = true;\n for (let i = 1; i < this.thresholdSteps().length; i++) {\n const step = this.thresholdSteps()[i];\n\n if (this.validation()) {\n const prev = this.thresholdSteps()[i - 1];\n const next = this.thresholdSteps()[i + 1];\n\n // valid: withing min/max, each step is lower than next step with step size between\n step.valid =\n step.value != null &&\n step.value >= this.minValue() &&\n step.value <= this.maxValue() &&\n (prev.value == null || step.value - this.stepSize() >= prev.value) &&\n (next?.value == null || step.value + this.stepSize() <= next.value);\n this._valid &&= step.valid;\n } else {\n step.valid = true;\n }\n }\n if (this.valid !== prevValid) {\n this.validChange.emit(this.valid);\n }\n }\n}\n","@for (step of thresholdSteps(); track step) {\n <div class=\"ths-step\">\n @if (!$first) {\n <div class=\"ths-value d-flex align-items-center\">\n @if (canAddRemoveSteps() && !readonly() && !readonlyConditions()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-delete m-4\"\n [attr.aria-label]=\"deleteAriaLabel() | translate\"\n (click)=\"deleteStep($index)\"\n ></button>\n }\n @if (!canAddRemoveSteps() || readonly() || readonlyConditions()) {\n <div class=\"py-4 my-4\">​</div>\n }\n <div class=\"line\">\n <div class=\"segment\" [ngClass]=\"colors()[$index - 1]\"></div>\n <div class=\"dot\"></div>\n <div class=\"segment\" [ngClass]=\"colors()[$index]\"></div>\n </div>\n <div class=\"d-flex align-items-center text-nowrap m-4\">\n <si-number-input\n #valueInput=\"ngModel\"\n class=\"form-control text-end\"\n [class.is-invalid]=\"step.valid === false\"\n [aria-label]=\"inputAriaLabel() | translate\"\n [readonly]=\"readonly()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [min]=\"minValue()\"\n [max]=\"maxValue()\"\n [step]=\"stepSize()\"\n [unit]=\"unit()\"\n [showButtons]=\"showDecIncButtons()\"\n [required]=\"true\"\n [(ngModel)]=\"step.value\"\n (ngModelChange)=\"stepChange()\"\n />\n </div>\n </div>\n }\n @if ($first && horizontalLayout()) {\n <ng-container\n [ngTemplateOutlet]=\"startend\"\n [ngTemplateOutletContext]=\"{ color: colors()[$index] }\"\n />\n }\n <div class=\"ths-option d-flex align-items-center\">\n @if (canAddRemoveSteps() && !readonly() && !readonlyConditions()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-secondary m-4\"\n [disabled]=\"maxSteps() && $count >= maxSteps()\"\n [attr.aria-label]=\"addAriaLabel() | translate\"\n (click)=\"addStep($index)\"\n >\n <si-icon-next [icon]=\"icons.elementPlus\" />\n </button>\n }\n @if (!canAddRemoveSteps() || readonly() || readonlyConditions()) {\n <div class=\"py-4 my-4\">​</div>\n }\n <div class=\"line\" [ngClass]=\"colors()[$index]\">\n <div class=\"segment\"></div>\n </div>\n @if (!readonly() && !readonlyConditions()) {\n <si-select\n class=\"my-4\"\n [ariaLabel]=\"statusAriaLabel() | translate\"\n [readonly]=\"readonly()\"\n [options]=\"options()\"\n [(value)]=\"step.optionValue\"\n (valueChange)=\"stepChange()\"\n />\n }\n @if (readonly() || readonlyConditions()) {\n <si-readonly-threshold-option [options]=\"options()\" [value]=\"step.optionValue\" />\n }\n </div>\n @if ($last && horizontalLayout()) {\n <ng-container\n [ngTemplateOutlet]=\"startend\"\n [ngTemplateOutletContext]=\"{ color: colors()[$index] }\"\n />\n }\n </div>\n}\n\n<ng-template #startend let-color=\"color\">\n <div class=\"ths-value d-flex align-items-center startend\">\n <div class=\"py-4 my-4\">​</div>\n <div class=\"line\">\n <div class=\"segment\" [ngClass]=\"color\"></div>\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiThresholdComponent } from './si-threshold.component';\n\n@NgModule({\n imports: [SiThresholdComponent],\n exports: [SiThresholdComponent]\n})\nexport class SiThresholdModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-threshold.component';\nexport * from './si-threshold.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|