@siemens/element-ng 47.2.0 → 47.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -6
- package/autocomplete/index.d.ts +8 -0
- package/autocomplete/package.json +3 -0
- package/autocomplete/si-autocomplete-listbox.directive.d.ts +31 -0
- package/autocomplete/si-autocomplete-option.directive.d.ts +31 -0
- package/autocomplete/si-autocomplete.directive.d.ts +14 -0
- package/autocomplete/si-autocomplete.model.d.ts +7 -0
- package/autocomplete/si-autocomplete.module.d.ts +9 -0
- package/badge/index.d.ts +5 -0
- package/badge/package.json +3 -0
- package/badge/si-badge.component.d.ts +17 -0
- package/breadcrumb/breadcrumb-item.model.d.ts +36 -0
- package/breadcrumb/index.d.ts +7 -0
- package/breadcrumb/package.json +3 -0
- package/breadcrumb/si-breadcrumb-item-template.directive.d.ts +10 -0
- package/breadcrumb/si-breadcrumb.component.d.ts +46 -0
- package/breadcrumb/si-breadcrumb.module.d.ts +7 -0
- package/card/index.d.ts +6 -0
- package/card/package.json +3 -0
- package/card/si-card.component.d.ts +79 -0
- package/card/si-card.module.d.ts +7 -0
- package/circle-status/index.d.ts +6 -0
- package/circle-status/package.json +3 -0
- package/circle-status/si-circle-status.component.d.ts +66 -0
- package/circle-status/si-circle-status.module.d.ts +7 -0
- package/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.d.ts +23 -0
- package/column-selection-dialog/index.d.ts +6 -0
- package/column-selection-dialog/package.json +3 -0
- package/column-selection-dialog/si-column-selection-dialog.component.d.ts +114 -0
- package/column-selection-dialog/si-column-selection-dialog.service.d.ts +20 -0
- package/column-selection-dialog/si-column-selection-dialog.types.d.ts +68 -0
- package/common/models/status-type.model.d.ts +2 -2
- package/content-action-bar/index.d.ts +7 -0
- package/content-action-bar/package.json +3 -0
- package/content-action-bar/si-content-action-bar-toggle.component.d.ts +6 -0
- package/content-action-bar/si-content-action-bar.component.d.ts +72 -0
- package/content-action-bar/si-content-action-bar.model.d.ts +9 -0
- package/content-action-bar/si-content-action-bar.module.d.ts +7 -0
- package/date-range-filter/index.d.ts +8 -0
- package/date-range-filter/package.json +3 -0
- package/date-range-filter/si-date-range-calculation.service.d.ts +33 -0
- package/date-range-filter/si-date-range-filter.component.d.ts +248 -0
- package/date-range-filter/si-date-range-filter.module.d.ts +7 -0
- package/date-range-filter/si-date-range-filter.types.d.ts +40 -0
- package/date-range-filter/si-relative-date.component.d.ts +31 -0
- package/datepicker/components/si-calendar-body.component.d.ts +137 -0
- package/datepicker/components/si-calendar-date-cell.directive.d.ts +16 -0
- package/datepicker/components/si-calendar-direction-button.component.d.ts +18 -0
- package/datepicker/components/si-compare-adapter.d.ts +37 -0
- package/datepicker/components/si-day-selection.component.d.ts +76 -0
- package/datepicker/components/si-initial-focus.component.d.ts +74 -0
- package/datepicker/components/si-month-selection.component.d.ts +62 -0
- package/datepicker/components/si-year-selection.component.d.ts +65 -0
- package/datepicker/date-time-helper.d.ts +302 -0
- package/datepicker/index.d.ts +15 -0
- package/datepicker/package.json +3 -0
- package/datepicker/si-calendar-button.component.d.ts +49 -0
- package/datepicker/si-date-input.directive.d.ts +114 -0
- package/datepicker/si-date-range.component.d.ts +150 -0
- package/datepicker/si-datepicker-overlay.component.d.ts +82 -0
- package/datepicker/si-datepicker-overlay.directive.d.ts +104 -0
- package/datepicker/si-datepicker.component.d.ts +228 -0
- package/datepicker/si-datepicker.directive.d.ts +62 -0
- package/datepicker/si-datepicker.model.d.ts +129 -0
- package/datepicker/si-datepicker.module.d.ts +12 -0
- package/datepicker/si-timepicker.component.d.ts +214 -0
- package/electron-titlebar/electron.helpers.d.ts +5 -0
- package/electron-titlebar/index.d.ts +7 -0
- package/electron-titlebar/package.json +3 -0
- package/electron-titlebar/si-electron-titlebar.component.d.ts +72 -0
- package/electron-titlebar/si-electron-titlebar.module.d.ts +7 -0
- package/fesm2022/siemens-element-ng-application-header.mjs +2 -2
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +235 -0
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-badge.mjs +59 -0
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +302 -0
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-card.mjs +122 -0
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-circle-status.mjs +146 -0
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +369 -0
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-common.mjs +1 -1
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +200 -0
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +649 -0
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-datepicker.mjs +4231 -0
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +142 -0
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-file-uploader.mjs +751 -0
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-filter-bar.mjs +153 -0
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-form.mjs +827 -0
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-icon-status.mjs +65 -0
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-icon.mjs +22 -2
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +63 -0
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-inline-notification.mjs +4 -6
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +451 -0
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-language-switcher.mjs +90 -0
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-localization.mjs +306 -0
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-number-input.mjs +267 -0
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-password-strength.mjs +177 -0
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-photo-upload.mjs +480 -0
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-pills-input.mjs +397 -0
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-popover-next.mjs +259 -0
- package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-popover.mjs +256 -0
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-progressbar.mjs +83 -0
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-search-bar.mjs +193 -0
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-select.mjs +1166 -0
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-skip-links.mjs +117 -0
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-slider.mjs +313 -0
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-sort-bar.mjs +89 -0
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-split.mjs +575 -0
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-status-toggle.mjs +196 -0
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-summary-widget.mjs +77 -0
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-system-banner.mjs +47 -0
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-tabs.mjs +395 -0
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-toast-notification.mjs +227 -0
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +746 -0
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs +76 -0
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-wizard.mjs +465 -0
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -0
- package/file-uploader/index.d.ts +8 -0
- package/file-uploader/package.json +3 -0
- package/file-uploader/si-file-dropzone.component.d.ts +106 -0
- package/file-uploader/si-file-uploader.component.d.ts +296 -0
- package/file-uploader/si-file-uploader.model.d.ts +12 -0
- package/file-uploader/si-file-uploader.module.d.ts +8 -0
- package/filter-bar/filter.d.ts +26 -0
- package/filter-bar/index.d.ts +8 -0
- package/filter-bar/package.json +3 -0
- package/filter-bar/si-filter-bar.component.d.ts +65 -0
- package/filter-bar/si-filter-bar.module.d.ts +7 -0
- package/filter-bar/si-filter-pill.component.d.ts +20 -0
- package/form/form-fieldset/si-form-fieldset.component.d.ts +40 -0
- package/form/index.d.ts +14 -0
- package/form/package.json +3 -0
- package/form/si-form-container/si-form-container.component.d.ts +155 -0
- package/form/si-form-item/si-form-field-native.control.d.ts +22 -0
- package/form/si-form-item/si-form-item.component.d.ts +90 -0
- package/form/si-form-item-control-input.directive.d.ts +18 -0
- package/form/si-form-item.control.d.ts +35 -0
- package/form/si-form-validation-error.model.d.ts +55 -0
- package/form/si-form-validation-error.provider.d.ts +11 -0
- package/form/si-form-validation-error.service.d.ts +42 -0
- package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +13 -0
- package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +42 -0
- package/form/si-form.module.d.ts +25 -0
- package/icon/element-icons.d.ts +20 -0
- package/icon-status/index.d.ts +6 -0
- package/icon-status/package.json +3 -0
- package/icon-status/si-icon-status.component.d.ts +24 -0
- package/icon-status/si-icon-status.module.d.ts +7 -0
- package/info-page/index.d.ts +5 -0
- package/info-page/package.json +3 -0
- package/info-page/si-info-page.component.d.ts +38 -0
- package/inline-notification/si-inline-notification.component.d.ts +0 -2
- package/ip-input/address-utils.d.ts +28 -0
- package/ip-input/address-validators.d.ts +21 -0
- package/ip-input/index.d.ts +7 -0
- package/ip-input/package.json +3 -0
- package/ip-input/si-ip-input.directive.d.ts +53 -0
- package/ip-input/si-ip4-input.directive.d.ts +9 -0
- package/ip-input/si-ip6-input.directive.d.ts +10 -0
- package/language-switcher/index.d.ts +7 -0
- package/language-switcher/iso-language-value.d.ts +14 -0
- package/language-switcher/package.json +3 -0
- package/language-switcher/si-language-switcher.component.d.ts +32 -0
- package/language-switcher/si-language-switcher.module.d.ts +7 -0
- package/localization/index.d.ts +8 -0
- package/localization/package.json +3 -0
- package/localization/si-directionality.d.ts +41 -0
- package/localization/si-locale-id.d.ts +22 -0
- package/localization/si-locale-store.d.ts +16 -0
- package/localization/si-locale.service.d.ts +73 -0
- package/number-input/index.d.ts +6 -0
- package/number-input/package.json +3 -0
- package/number-input/si-number-input.component.d.ts +106 -0
- package/number-input/si-number-input.module.d.ts +7 -0
- package/package.json +163 -3
- package/password-strength/index.d.ts +7 -0
- package/password-strength/package.json +3 -0
- package/password-strength/si-password-strength.component.d.ts +25 -0
- package/password-strength/si-password-strength.directive.d.ts +54 -0
- package/password-strength/si-password-strength.module.d.ts +8 -0
- package/photo-upload/index.d.ts +6 -0
- package/photo-upload/package.json +3 -0
- package/photo-upload/si-image-cropper-style.component.d.ts +5 -0
- package/photo-upload/si-photo-upload.component.d.ts +298 -0
- package/pills-input/index.d.ts +9 -0
- package/pills-input/package.json +3 -0
- package/pills-input/si-input-pill.component.d.ts +9 -0
- package/pills-input/si-pills-input-csv.directive.d.ts +8 -0
- package/pills-input/si-pills-input-email.directive.d.ts +10 -0
- package/pills-input/si-pills-input-pattern-base.d.ts +19 -0
- package/pills-input/si-pills-input-value-handler.d.ts +12 -0
- package/pills-input/si-pills-input.component.d.ts +87 -0
- package/pills-input/si-pills-input.module.d.ts +9 -0
- package/popover/index.d.ts +6 -0
- package/popover/package.json +3 -0
- package/popover/si-popover.component.d.ts +26 -0
- package/popover/si-popover.directive.d.ts +89 -0
- package/popover/si-popover.module.d.ts +7 -0
- package/popover-next/index.d.ts +7 -0
- package/popover-next/package.json +3 -0
- package/popover-next/si-popover-description.directive.d.ts +7 -0
- package/popover-next/si-popover-next.directive.d.ts +61 -0
- package/popover-next/si-popover-title.directive.d.ts +7 -0
- package/popover-next/si-popover.component.d.ts +27 -0
- package/progressbar/index.d.ts +6 -0
- package/progressbar/package.json +3 -0
- package/progressbar/si-progressbar.component.d.ts +43 -0
- package/progressbar/si-progressbar.module.d.ts +7 -0
- package/search-bar/index.d.ts +6 -0
- package/search-bar/package.json +3 -0
- package/search-bar/si-search-bar.component.d.ts +87 -0
- package/search-bar/si-search-bar.module.d.ts +7 -0
- package/select/index.d.ts +18 -0
- package/select/options/si-select-complex-options.directive.d.ts +69 -0
- package/select/options/si-select-lazy-options.directive.d.ts +38 -0
- package/select/options/si-select-option.source.d.ts +49 -0
- package/select/options/si-select-options-strategy.base.d.ts +35 -0
- package/select/options/si-select-options-strategy.d.ts +37 -0
- package/select/options/si-select-simple-options.directive.d.ts +34 -0
- package/select/package.json +3 -0
- package/select/select-input/si-select-input.component.d.ts +43 -0
- package/select/select-list/si-select-list-has-filter.component.d.ts +20 -0
- package/select/select-list/si-select-list.base.d.ts +37 -0
- package/select/select-list/si-select-list.component.d.ts +15 -0
- package/select/select-option/si-select-option-row.component.d.ts +16 -0
- package/select/select-option/si-select-option.component.d.ts +9 -0
- package/select/selection/si-select-multi-value.directive.d.ts +26 -0
- package/select/selection/si-select-selection-strategy.d.ts +58 -0
- package/select/selection/si-select-single-value.directive.d.ts +26 -0
- package/select/si-select-action.directive.d.ts +12 -0
- package/select/si-select-actions.directive.d.ts +5 -0
- package/select/si-select-group-template.directive.d.ts +20 -0
- package/select/si-select-option-row-template.directive.d.ts +9 -0
- package/select/si-select-option-template.directive.d.ts +21 -0
- package/select/si-select.component.d.ts +96 -0
- package/select/si-select.module.d.ts +15 -0
- package/select/si-select.types.d.ts +65 -0
- package/skip-links/index.d.ts +5 -0
- package/skip-links/package.json +3 -0
- package/skip-links/si-skip-link-target.directive.d.ts +27 -0
- package/skip-links/si-skip-links.component.d.ts +9 -0
- package/skip-links/skip-link.service.d.ts +14 -0
- package/slider/index.d.ts +6 -0
- package/slider/package.json +3 -0
- package/slider/si-slider.component.d.ts +129 -0
- package/slider/si-slider.module.d.ts +7 -0
- package/sort-bar/index.d.ts +6 -0
- package/sort-bar/package.json +3 -0
- package/sort-bar/si-sort-bar.component.d.ts +42 -0
- package/sort-bar/si-sort-bar.module.d.ts +7 -0
- package/split/index.d.ts +8 -0
- package/split/package.json +3 -0
- package/split/si-split-part.component.d.ts +154 -0
- package/split/si-split.component.d.ts +48 -0
- package/split/si-split.interfaces.d.ts +17 -0
- package/split/si-split.module.d.ts +8 -0
- package/status-toggle/index.d.ts +6 -0
- package/status-toggle/package.json +3 -0
- package/status-toggle/si-status-toggle.component.d.ts +54 -0
- package/status-toggle/status-toggle.model.d.ts +26 -0
- package/summary-widget/index.d.ts +5 -0
- package/summary-widget/package.json +3 -0
- package/summary-widget/si-summary-widget.component.d.ts +44 -0
- package/system-banner/index.d.ts +5 -0
- package/system-banner/package.json +3 -0
- package/system-banner/system-banner.component.d.ts +23 -0
- package/tabs/index.d.ts +7 -0
- package/tabs/package.json +3 -0
- package/tabs/si-tab/index.d.ts +5 -0
- package/tabs/si-tab/si-tab.component.d.ts +58 -0
- package/tabs/si-tabs.module.d.ts +8 -0
- package/tabs/si-tabset/index.d.ts +5 -0
- package/tabs/si-tabset/si-tabset.component.d.ts +100 -0
- package/template-i18n.json +111 -1
- package/toast-notification/index.d.ts +6 -0
- package/toast-notification/package.json +3 -0
- package/toast-notification/si-toast-notification/si-toast-notification.component.d.ts +17 -0
- package/toast-notification/si-toast-notification-drawer/si-toast-notification-drawer.component.d.ts +9 -0
- package/toast-notification/si-toast-notification.service.d.ts +41 -0
- package/toast-notification/si-toast.model.d.ts +25 -0
- package/translate/si-translatable-keys.interface.d.ts +110 -0
- package/typeahead/index.d.ts +8 -0
- package/typeahead/package.json +3 -0
- package/typeahead/si-typeahead-item-template.directive.d.ts +7 -0
- package/typeahead/si-typeahead.component.d.ts +22 -0
- package/typeahead/si-typeahead.directive.d.ts +196 -0
- package/typeahead/si-typeahead.model.d.ts +60 -0
- package/typeahead/si-typeahead.module.d.ts +8 -0
- package/typeahead/si-typeahead.sorting.d.ts +10 -0
- package/unauthorized-page/index.d.ts +6 -0
- package/unauthorized-page/package.json +3 -0
- package/unauthorized-page/si-unauthorized-page.component.d.ts +35 -0
- package/unauthorized-page/si-unauthorized-page.module.d.ts +7 -0
- package/wizard/index.d.ts +7 -0
- package/wizard/package.json +3 -0
- package/wizard/si-wizard-step.component.d.ts +21 -0
- package/wizard/si-wizard.component.d.ts +196 -0
- package/wizard/si-wizard.module.d.ts +8 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@siemens/element-translate-ng/translate';
|
|
4
|
+
import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Copyright Siemens 2016 - 2025.
|
|
8
|
+
* SPDX-License-Identifier: MIT
|
|
9
|
+
*/
|
|
10
|
+
class SiProgressbarComponent {
|
|
11
|
+
/**
|
|
12
|
+
* Needed for a11y
|
|
13
|
+
*
|
|
14
|
+
* @defaultValue
|
|
15
|
+
* ```
|
|
16
|
+
* $localize`:@@SI_PROGRESSBAR.LABEL:Progress`
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
ariaLabel = input($localize `:@@SI_PROGRESSBAR.LABEL:Progress`);
|
|
20
|
+
/**
|
|
21
|
+
* Max value for progressbar
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue 100
|
|
24
|
+
*/
|
|
25
|
+
max = input(100);
|
|
26
|
+
/**
|
|
27
|
+
* Current value
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue 0
|
|
30
|
+
*/
|
|
31
|
+
value = input(0);
|
|
32
|
+
/**
|
|
33
|
+
* Heading to display on top of progress bar.
|
|
34
|
+
*/
|
|
35
|
+
heading = input();
|
|
36
|
+
/**
|
|
37
|
+
* Optional progress text to be shown on top right (in LTR).
|
|
38
|
+
* It can be percentage value or a progress status. E.g `50 %` or `Downloading 2/8`.
|
|
39
|
+
*/
|
|
40
|
+
progress = input();
|
|
41
|
+
/**
|
|
42
|
+
* Height for progress bar.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue 'normal'
|
|
45
|
+
*/
|
|
46
|
+
height = input('normal');
|
|
47
|
+
percent = computed(() => (100 * Number(this.value() ?? 0)) / Number(this.max() ?? 100));
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiProgressbarComponent, isStandalone: true, selector: "si-progressbar", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n", styles: [".si-progress-small{block-size:.125rem;border-radius:.0625rem}\n"], dependencies: [{ kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'si-progressbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SiTranslateModule], template: "@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n", styles: [".si-progress-small{block-size:.125rem;border-radius:.0625rem}\n"] }]
|
|
54
|
+
}] });
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Copyright Siemens 2016 - 2025.
|
|
58
|
+
* SPDX-License-Identifier: MIT
|
|
59
|
+
*/
|
|
60
|
+
class SiProgressbarModule {
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
62
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, imports: [SiProgressbarComponent], exports: [SiProgressbarComponent] });
|
|
63
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, imports: [SiProgressbarComponent] });
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiProgressbarModule, decorators: [{
|
|
66
|
+
type: NgModule,
|
|
67
|
+
args: [{
|
|
68
|
+
imports: [SiProgressbarComponent],
|
|
69
|
+
exports: [SiProgressbarComponent]
|
|
70
|
+
}]
|
|
71
|
+
}] });
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Copyright Siemens 2016 - 2025.
|
|
75
|
+
* SPDX-License-Identifier: MIT
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Generated bundle index. Do not edit.
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
export { SiProgressbarComponent, SiProgressbarModule };
|
|
83
|
+
//# sourceMappingURL=siemens-element-ng-progressbar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-progressbar.mjs","sources":["../../../../projects/element-ng/progressbar/si-progressbar.component.ts","../../../../projects/element-ng/progressbar/si-progressbar.component.html","../../../../projects/element-ng/progressbar/si-progressbar.module.ts","../../../../projects/element-ng/progressbar/index.ts","../../../../projects/element-ng/progressbar/siemens-element-ng-progressbar.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-progressbar',\n templateUrl: './si-progressbar.component.html',\n styleUrl: './si-progressbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SiTranslateModule]\n})\nexport class SiProgressbarComponent {\n /**\n * Needed for a11y\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_PROGRESSBAR.LABEL:Progress`\n * ```\n */\n readonly ariaLabel = input($localize`:@@SI_PROGRESSBAR.LABEL:Progress`);\n\n /**\n * Max value for progressbar\n *\n * @defaultValue 100\n */\n readonly max = input(100);\n\n /**\n * Current value\n *\n * @defaultValue 0\n */\n readonly value = input<number | undefined>(0);\n\n /**\n * Heading to display on top of progress bar.\n */\n readonly heading = input<string>();\n\n /**\n * Optional progress text to be shown on top right (in LTR).\n * It can be percentage value or a progress status. E.g `50 %` or `Downloading 2/8`.\n */\n readonly progress = input<string>();\n\n /**\n * Height for progress bar.\n *\n * @defaultValue 'normal'\n */\n readonly height = input<ProgressbarHeight>('normal');\n\n protected readonly percent = computed(\n () => (100 * Number(this.value() ?? 0)) / Number(this.max() ?? 100)\n );\n}\n\nexport type ProgressbarHeight = 'small' | 'normal';\n","@if (heading() || progress()) {\n <div\n class=\"d-flex align-items-baseline\"\n [class.justify-content-end]=\"!heading()\"\n [class.justify-content-between]=\"heading()\"\n >\n @if (heading()) {\n <span class=\"si-title-2 mb-2\">{{ heading() | translate }}</span>\n }\n @if (progress()) {\n <small class=\"text-nowrap\">{{ progress() }}</small>\n }\n </div>\n}\n<div class=\"progress\" [class.si-progress-small]=\"height() === 'small'\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-valuetext]=\"value() !== undefined ? percent().toFixed(0) + '%' : null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [style.width.%]=\"percent()\"\n >\n </div>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiProgressbarComponent } from './si-progressbar.component';\n\n@NgModule({\n imports: [SiProgressbarComponent],\n exports: [SiProgressbarComponent]\n})\nexport class SiProgressbarModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-progressbar.component';\nexport * from './si-progressbar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { viewChild, signal, input, numberAttribute, booleanAttribute, output, computed, HostListener, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { addIcons, elementSearch, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import { debounceTime } from 'rxjs/operators';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Copyright Siemens 2016 - 2025.
|
|
10
|
+
* SPDX-License-Identifier: MIT
|
|
11
|
+
*/
|
|
12
|
+
class SiSearchBarComponent {
|
|
13
|
+
inputRef = viewChild.required('inputRef');
|
|
14
|
+
debouncer = new Subject();
|
|
15
|
+
disabledNgControl = signal(false);
|
|
16
|
+
/**
|
|
17
|
+
* Time unit change of search input takes effect.
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue 400
|
|
20
|
+
*/
|
|
21
|
+
debounceTime = input(400, { transform: numberAttribute });
|
|
22
|
+
/**
|
|
23
|
+
* Prohibited characters restricting search.
|
|
24
|
+
*/
|
|
25
|
+
prohibitedCharacters = input();
|
|
26
|
+
/**
|
|
27
|
+
* Define search input placeholder.
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue ''
|
|
30
|
+
*/
|
|
31
|
+
placeholder = input('');
|
|
32
|
+
/**
|
|
33
|
+
* Display search icon before search input.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue false
|
|
36
|
+
*/
|
|
37
|
+
showIcon = input(false, { transform: booleanAttribute });
|
|
38
|
+
/**
|
|
39
|
+
* Whether the search is tabbable or not.
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue true
|
|
42
|
+
*/
|
|
43
|
+
tabbable = input(true, { transform: booleanAttribute });
|
|
44
|
+
/**
|
|
45
|
+
* Define search input content.
|
|
46
|
+
*/
|
|
47
|
+
value = input();
|
|
48
|
+
/** @defaultValue false */
|
|
49
|
+
readonly = input(false, { transform: booleanAttribute });
|
|
50
|
+
/**
|
|
51
|
+
* Color to use for component background
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue 'base-1'
|
|
54
|
+
*/
|
|
55
|
+
colorVariant = input('base-1');
|
|
56
|
+
/** @defaultValue false */
|
|
57
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
58
|
+
disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });
|
|
59
|
+
/**
|
|
60
|
+
* Output callback event will provide you with search term if search input changes.
|
|
61
|
+
*/
|
|
62
|
+
searchChange = output();
|
|
63
|
+
isInvalid = false;
|
|
64
|
+
inFocus = false;
|
|
65
|
+
onChange = (val) => { };
|
|
66
|
+
onTouch = () => { };
|
|
67
|
+
disabled = computed(() => this.disabledInput() || this.disabledNgControl());
|
|
68
|
+
searchValue = signal('');
|
|
69
|
+
icons = addIcons({ elementCancel, elementSearch });
|
|
70
|
+
/** @internal */
|
|
71
|
+
writeValue(value) {
|
|
72
|
+
this.setSearch(value);
|
|
73
|
+
}
|
|
74
|
+
/** @internal */
|
|
75
|
+
registerOnChange(fn) {
|
|
76
|
+
this.onChange = fn;
|
|
77
|
+
}
|
|
78
|
+
/** @internal */
|
|
79
|
+
registerOnTouched(fn) {
|
|
80
|
+
this.onTouch = fn;
|
|
81
|
+
}
|
|
82
|
+
/** @internal */
|
|
83
|
+
setDisabledState(disabled) {
|
|
84
|
+
this.disabledNgControl.set(disabled);
|
|
85
|
+
}
|
|
86
|
+
ngOnChanges(changes) {
|
|
87
|
+
if (changes.value) {
|
|
88
|
+
this.setSearch(changes.value.currentValue);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
ngOnInit() {
|
|
92
|
+
this.debouncer.pipe(debounceTime(this.debounceTime())).subscribe(value => {
|
|
93
|
+
this.setSearch(value);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
ngOnDestroy() {
|
|
97
|
+
this.debouncer.complete();
|
|
98
|
+
}
|
|
99
|
+
setSearch(value) {
|
|
100
|
+
if (value !== this.searchValue()) {
|
|
101
|
+
// FIXME: in v48, move outside the `if` so we don't emit when `value === undefined`
|
|
102
|
+
const searchVal = value ?? '';
|
|
103
|
+
this.searchValue.set(searchVal);
|
|
104
|
+
this.inputRef().nativeElement.value = searchVal;
|
|
105
|
+
this.onChange(searchVal);
|
|
106
|
+
this.searchChange.emit(searchVal);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
isProhibitedCharactersUsed(searchString) {
|
|
110
|
+
const prohibitedCharacters = this.prohibitedCharacters();
|
|
111
|
+
if (!prohibitedCharacters || !searchString) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
for (const prohibitedCharacter of prohibitedCharacters) {
|
|
115
|
+
if (searchString.includes(prohibitedCharacter)) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
/** @internal */
|
|
122
|
+
focus() {
|
|
123
|
+
this.inputRef().nativeElement.focus();
|
|
124
|
+
}
|
|
125
|
+
onCancelFocus(event) {
|
|
126
|
+
event.stopPropagation();
|
|
127
|
+
}
|
|
128
|
+
input(event) {
|
|
129
|
+
const value = event.target.value;
|
|
130
|
+
if (!this.isProhibitedCharactersUsed(value)) {
|
|
131
|
+
this.debouncer.next(value);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
onBlur() {
|
|
135
|
+
this.inFocus = false;
|
|
136
|
+
this.onTouch();
|
|
137
|
+
}
|
|
138
|
+
resetForm() {
|
|
139
|
+
this.setSearch('');
|
|
140
|
+
}
|
|
141
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiSearchBarComponent, isStandalone: true, selector: "si-search-bar", inputs: { debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, prohibitedCharacters: { classPropertyName: "prohibitedCharacters", publicName: "prohibitedCharacters", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, tabbable: { classPropertyName: "tabbable", publicName: "tabbable", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchChange: "searchChange" }, host: { listeners: { "focus": "focus()" }, properties: { "class.readonly": "readonly()" } }, providers: [
|
|
143
|
+
{
|
|
144
|
+
provide: NG_VALUE_ACCESSOR,
|
|
145
|
+
useExisting: SiSearchBarComponent,
|
|
146
|
+
multi: true
|
|
147
|
+
}
|
|
148
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [":host{--search-bar-icon-color: var(--element-text-secondary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1)}:host div:hover .search-bar-icon,:host div:hover ::placeholder,:host div.focus .search-bar-icon,:host div.focus ::placeholder{color:var(--element-text-primary)!important}.dark-background{--input-background-color: var(--element-base-0);--input-background-hover-color: var(--element-ui-4)}input{transition:none;background-color:var(--input-background-color);border-radius:4px;border-width:0}input.form-control:focus-visible{background-color:var(--input-background-color)}.cancel-button{position:absolute;inset-block-start:4px;inset-inline-end:4px}.is-invalid~.cancel-button{color:var(--element-status-danger)}.search-bar-icon{position:absolute;inset-block-start:4px;inset-inline-start:4px;color:var(--search-bar-icon-color);line-height:1}.icon-end{padding-inline-end:1.5rem}::placeholder{color:var(--element-text-secondary);padding-inline-start:2px}.disabled .search-bar-icon,.disabled input,.disabled .cancel-button,.disabled ::placeholder{color:var(--element-text-disabled)}.disabled input{background-color:var(--input-background-color)}\n"], dependencies: [{ kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarComponent, decorators: [{
|
|
151
|
+
type: Component,
|
|
152
|
+
args: [{ selector: 'si-search-bar', providers: [
|
|
153
|
+
{
|
|
154
|
+
provide: NG_VALUE_ACCESSOR,
|
|
155
|
+
useExisting: SiSearchBarComponent,
|
|
156
|
+
multi: true
|
|
157
|
+
}
|
|
158
|
+
], imports: [SiIconNextComponent], host: {
|
|
159
|
+
'[class.readonly]': 'readonly()'
|
|
160
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [":host{--search-bar-icon-color: var(--element-text-secondary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1)}:host div:hover .search-bar-icon,:host div:hover ::placeholder,:host div.focus .search-bar-icon,:host div.focus ::placeholder{color:var(--element-text-primary)!important}.dark-background{--input-background-color: var(--element-base-0);--input-background-hover-color: var(--element-ui-4)}input{transition:none;background-color:var(--input-background-color);border-radius:4px;border-width:0}input.form-control:focus-visible{background-color:var(--input-background-color)}.cancel-button{position:absolute;inset-block-start:4px;inset-inline-end:4px}.is-invalid~.cancel-button{color:var(--element-status-danger)}.search-bar-icon{position:absolute;inset-block-start:4px;inset-inline-start:4px;color:var(--search-bar-icon-color);line-height:1}.icon-end{padding-inline-end:1.5rem}::placeholder{color:var(--element-text-secondary);padding-inline-start:2px}.disabled .search-bar-icon,.disabled input,.disabled .cancel-button,.disabled ::placeholder{color:var(--element-text-disabled)}.disabled input{background-color:var(--input-background-color)}\n"] }]
|
|
161
|
+
}], propDecorators: { focus: [{
|
|
162
|
+
type: HostListener,
|
|
163
|
+
args: ['focus']
|
|
164
|
+
}] } });
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Copyright Siemens 2016 - 2025.
|
|
168
|
+
* SPDX-License-Identifier: MIT
|
|
169
|
+
*/
|
|
170
|
+
class SiSearchBarModule {
|
|
171
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
172
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarModule, imports: [SiSearchBarComponent], exports: [SiSearchBarComponent] });
|
|
173
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarModule, imports: [SiSearchBarComponent] });
|
|
174
|
+
}
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiSearchBarModule, decorators: [{
|
|
176
|
+
type: NgModule,
|
|
177
|
+
args: [{
|
|
178
|
+
imports: [SiSearchBarComponent],
|
|
179
|
+
exports: [SiSearchBarComponent]
|
|
180
|
+
}]
|
|
181
|
+
}] });
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Copyright Siemens 2016 - 2025.
|
|
185
|
+
* SPDX-License-Identifier: MIT
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Generated bundle index. Do not edit.
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
export { SiSearchBarComponent, SiSearchBarModule };
|
|
193
|
+
//# sourceMappingURL=siemens-element-ng-search-bar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-search-bar.mjs","sources":["../../../../projects/element-ng/search-bar/si-search-bar.component.ts","../../../../projects/element-ng/search-bar/si-search-bar.component.html","../../../../projects/element-ng/search-bar/si-search-bar.module.ts","../../../../projects/element-ng/search-bar/index.ts","../../../../projects/element-ng/search-bar/siemens-element-ng-search-bar.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n HostListener,\n input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport {\n elementCancel,\n elementSearch,\n addIcons,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'si-search-bar',\n templateUrl: './si-search-bar.component.html',\n styleUrl: './si-search-bar.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSearchBarComponent,\n multi: true\n }\n ],\n imports: [SiIconNextComponent],\n host: {\n '[class.readonly]': 'readonly()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiSearchBarComponent implements OnInit, OnDestroy, ControlValueAccessor, OnChanges {\n private readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('inputRef');\n private debouncer = new Subject<string>();\n private readonly disabledNgControl = signal(false);\n\n /**\n * Time unit change of search input takes effect.\n *\n * @defaultValue 400\n */\n readonly debounceTime = input(400, { transform: numberAttribute });\n /**\n * Prohibited characters restricting search.\n */\n readonly prohibitedCharacters = input<string>();\n /**\n * Define search input placeholder.\n *\n * @defaultValue ''\n */\n readonly placeholder = input('');\n /**\n * Display search icon before search input.\n *\n * @defaultValue false\n */\n readonly showIcon = input(false, { transform: booleanAttribute });\n /**\n * Whether the search is tabbable or not.\n *\n * @defaultValue true\n */\n readonly tabbable = input(true, { transform: booleanAttribute });\n\n /**\n * Define search input content.\n */\n readonly value = input<string>();\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n /**\n * Color to use for component background\n *\n * @defaultValue 'base-1'\n */\n readonly colorVariant = input<BackgroundColorVariant>('base-1');\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * Output callback event will provide you with search term if search input changes.\n */\n readonly searchChange = output<string>();\n\n protected isInvalid = false;\n protected inFocus = false;\n\n protected onChange = (val: any): void => {};\n protected onTouch = (): void => {};\n\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n\n protected readonly searchValue = signal('');\n protected readonly icons = addIcons({ elementCancel, elementSearch });\n\n /** @internal */\n writeValue(value: string): void {\n this.setSearch(value);\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n /** @internal */\n setDisabledState(disabled: boolean): void {\n this.disabledNgControl.set(disabled);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.setSearch(changes.value.currentValue);\n }\n }\n\n ngOnInit(): void {\n this.debouncer.pipe(debounceTime(this.debounceTime())).subscribe(value => {\n this.setSearch(value);\n });\n }\n\n ngOnDestroy(): void {\n this.debouncer.complete();\n }\n\n private setSearch(value?: string): void {\n if (value !== this.searchValue()) {\n // FIXME: in v48, move outside the `if` so we don't emit when `value === undefined`\n const searchVal = value ?? '';\n this.searchValue.set(searchVal);\n this.inputRef().nativeElement.value = searchVal;\n this.onChange(searchVal);\n this.searchChange.emit(searchVal);\n }\n }\n\n private isProhibitedCharactersUsed(searchString: string | null): boolean {\n const prohibitedCharacters = this.prohibitedCharacters();\n if (!prohibitedCharacters || !searchString) {\n return false;\n }\n\n for (const prohibitedCharacter of prohibitedCharacters) {\n if (searchString.includes(prohibitedCharacter)) {\n return true;\n }\n }\n\n return false;\n }\n\n /** @internal */\n @HostListener('focus')\n focus(): void {\n this.inputRef().nativeElement.focus();\n }\n\n protected onCancelFocus(event: Event): void {\n event.stopPropagation();\n }\n\n protected input(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n if (!this.isProhibitedCharactersUsed(value)) {\n this.debouncer.next(value);\n }\n }\n\n protected onBlur(): void {\n this.inFocus = false;\n this.onTouch();\n }\n\n protected resetForm(): void {\n this.setSearch('');\n }\n}\n","<div class=\"position-relative\" [class.disabled]=\"disabled()\" [class.focus]=\"inFocus\">\n @if (showIcon()) {\n <si-icon-next class=\"search-bar-icon icon text-secondary\" [icon]=\"icons.elementSearch\" />\n }\n <input\n #inputRef\n type=\"text\"\n class=\"form-control\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [class.dark-background]=\"colorVariant() === 'base-0'\"\n [class.ps-9]=\"showIcon()\"\n [class.is-invalid]=\"isInvalid\"\n [class.icon-end]=\"searchValue()\"\n [attr.tabindex]=\"tabbable() ? '' : '-1'\"\n [readonly]=\"readonly()\"\n (focus)=\"inFocus = true\"\n (blur)=\"onBlur()\"\n (input)=\"input($event)\"\n />\n @if (searchValue()) {\n <button\n type=\"button\"\n aria-label=\"clear\"\n class=\"btn btn-circle btn-xs btn-ghost cancel-button\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"resetForm()\"\n (focusin)=\"onCancelFocus($event)\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSearchBarComponent } from './si-search-bar.component';\n\n@NgModule({\n imports: [SiSearchBarComponent],\n exports: [SiSearchBarComponent]\n})\nexport class SiSearchBarModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-search-bar.component';\nexport * from './si-search-bar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|