@siemens/element-ng 48.10.0 → 49.0.0-rc.2
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/package.json +2 -1
- package/accordion/package.json +2 -1
- package/action-modal/package.json +2 -1
- package/ag-grid/package.json +2 -1
- package/application-header/package.json +2 -1
- package/auto-collapsable-list/package.json +2 -1
- package/autocomplete/package.json +2 -1
- package/avatar/package.json +2 -1
- package/badge/package.json +2 -1
- package/breadcrumb/package.json +2 -1
- package/breadcrumb-router/package.json +2 -1
- package/card/package.json +2 -1
- package/chat-messages/package.json +2 -1
- package/circle-status/package.json +2 -1
- package/color-picker/package.json +2 -1
- package/column-selection-dialog/package.json +2 -1
- package/common/package.json +2 -1
- package/connection-strength/package.json +2 -1
- package/content-action-bar/package.json +2 -1
- package/copyright-notice/package.json +2 -1
- package/dashboard/package.json +2 -1
- package/datatable/package.json +2 -1
- package/date-range-filter/package.json +2 -1
- package/datepicker/package.json +2 -1
- package/electron-titlebar/package.json +2 -1
- package/empty-state/package.json +2 -1
- package/fesm2022/siemens-element-ng-about.mjs +25 -24
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +49 -75
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +59 -55
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +33 -37
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +122 -150
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +30 -32
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -48
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +23 -24
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +6 -6
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +16 -16
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -17
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +32 -34
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +204 -109
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +26 -26
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +18 -17
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +36 -35
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +13 -38
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +11 -11
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +33 -30
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +13 -13
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +161 -169
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +9 -9
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +128 -149
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +260 -271
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +19 -18
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +11 -11
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +66 -69
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +23 -23
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +141 -159
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +10 -10
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +99 -85
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +96 -94
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +33 -33
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +7 -6
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon-status.mjs +4 -4
- package/fesm2022/siemens-element-ng-icon.mjs +53 -135
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +11 -12
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +15 -16
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +16 -16
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +71 -71
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +13 -13
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +22 -23
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +68 -86
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +38 -52
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +14 -11
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +30 -30
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +5 -5
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +55 -54
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +10 -13
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +183 -298
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +43 -43
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +14 -13
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +32 -32
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +21 -20
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +21 -21
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -15
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +56 -50
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +48 -47
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +45 -44
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +31 -31
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +29 -29
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +15 -15
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +25 -61
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +13 -12
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +25 -24
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +204 -347
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +144 -69
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +13 -13
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +30 -29
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +14 -13
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +26 -28
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +42 -43
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +11 -12
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +15 -16
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +16 -17
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +16 -16
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +7 -7
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -16
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +44 -47
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +4 -4
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +51 -71
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +26 -52
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +60 -68
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +20 -20
- 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 +92 -117
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +46 -62
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +49 -48
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/file-uploader/package.json +2 -1
- package/filter-bar/package.json +2 -1
- package/filtered-search/package.json +2 -1
- package/footer/package.json +2 -1
- package/form/package.json +2 -1
- package/formly/package.json +2 -1
- package/header-dropdown/package.json +2 -1
- package/help-button/package.json +2 -1
- package/icon/package.json +2 -1
- package/icon-status/package.json +2 -1
- package/info-page/package.json +2 -1
- package/inline-notification/package.json +2 -1
- package/ip-input/package.json +2 -1
- package/landing-page/package.json +2 -1
- package/language-switcher/package.json +2 -1
- package/link/package.json +2 -1
- package/list-details/package.json +2 -1
- package/loading-spinner/package.json +2 -1
- package/localization/package.json +2 -1
- package/main-detail-container/package.json +2 -1
- package/markdown-renderer/package.json +2 -1
- package/menu/package.json +2 -1
- package/modal/package.json +2 -1
- package/navbar/package.json +2 -1
- package/navbar-vertical/package.json +2 -1
- package/notification-item/package.json +2 -1
- package/number-input/package.json +2 -1
- package/package.json +115 -107
- package/pagination/package.json +2 -1
- package/password-strength/package.json +2 -1
- package/password-toggle/package.json +2 -1
- package/phone-number/package.json +2 -1
- package/photo-upload/package.json +2 -1
- package/pills-input/package.json +2 -1
- package/popover/package.json +2 -1
- package/popover-legacy/package.json +2 -1
- package/progressbar/package.json +2 -1
- package/resize-observer/package.json +2 -1
- package/result-details-list/package.json +2 -1
- package/schematics/collection.json +0 -12
- package/schematics/migration.json +15 -0
- package/schematics/migrations/data/attribute-selectors.js +1 -6
- package/schematics/migrations/data/component-names.js +9 -68
- package/schematics/migrations/data/element-selectors.js +9 -8
- package/schematics/migrations/data/index.js +0 -1
- package/schematics/migrations/data/migration-test-data.js +167 -0
- package/schematics/migrations/data/output-names.js +1 -7
- package/schematics/migrations/data/symbol-removals.js +4 -45
- package/schematics/migrations/element-migration/element-migration.js +1 -3
- package/schematics/migrations/index.js +15 -5
- package/schematics/migrations/ngx-translate/index.js +93 -0
- package/schematics/ng-update/index.js +17 -0
- package/schematics/ng-update/schema.json +15 -0
- package/schematics/simpl-siemens-migration/index.js +1 -5
- package/schematics/utils/ts-utils.js +135 -0
- package/search-bar/package.json +2 -1
- package/select/package.json +2 -1
- package/shadow-root/package.json +2 -1
- package/side-panel/package.json +2 -1
- package/skip-links/package.json +2 -1
- package/slider/package.json +2 -1
- package/sort-bar/package.json +2 -1
- package/split/package.json +2 -1
- package/status-bar/package.json +2 -1
- package/status-counter/package.json +2 -1
- package/status-toggle/package.json +2 -1
- package/summary-chip/package.json +2 -1
- package/summary-widget/package.json +2 -1
- package/system-banner/package.json +2 -1
- package/tabs/package.json +2 -1
- package/tabs-legacy/package.json +2 -1
- package/template-i18n.json +32 -25
- package/test-styles.scss +5 -0
- package/theme/package.json +2 -1
- package/threshold/package.json +2 -1
- package/toast-notification/package.json +2 -1
- package/tooltip/package.json +2 -1
- package/tour/package.json +2 -1
- package/translate/package.json +2 -1
- package/tree-view/package.json +2 -1
- package/typeahead/package.json +2 -1
- package/{accordion/index.d.ts → types/siemens-element-ng-accordion.d.ts} +2 -3
- package/{application-header/index.d.ts → types/siemens-element-ng-application-header.d.ts} +19 -18
- package/{autocomplete/index.d.ts → types/siemens-element-ng-autocomplete.d.ts} +1 -3
- package/{breadcrumb/index.d.ts → types/siemens-element-ng-breadcrumb.d.ts} +2 -2
- package/{chat-messages/index.d.ts → types/siemens-element-ng-chat-messages.d.ts} +72 -10
- package/{common/index.d.ts → types/siemens-element-ng-common.d.ts} +2 -30
- package/{content-action-bar/index.d.ts → types/siemens-element-ng-content-action-bar.d.ts} +2 -2
- package/{dashboard/index.d.ts → types/siemens-element-ng-dashboard.d.ts} +6 -6
- package/{date-range-filter/index.d.ts → types/siemens-element-ng-date-range-filter.d.ts} +28 -27
- package/{datepicker/index.d.ts → types/siemens-element-ng-datepicker.d.ts} +5 -6
- package/{electron-titlebar/index.d.ts → types/siemens-element-ng-electron-titlebar.d.ts} +4 -4
- package/{file-uploader/index.d.ts → types/siemens-element-ng-file-uploader.d.ts} +26 -26
- package/{filter-bar/index.d.ts → types/siemens-element-ng-filter-bar.d.ts} +4 -4
- package/{filtered-search/index.d.ts → types/siemens-element-ng-filtered-search.d.ts} +6 -21
- package/{form/index.d.ts → types/siemens-element-ng-form.d.ts} +4 -6
- package/{formly/index.d.ts → types/siemens-element-ng-formly.d.ts} +1 -1
- package/types/siemens-element-ng-icon.d.ts +203 -0
- package/{landing-page/index.d.ts → types/siemens-element-ng-landing-page.d.ts} +15 -15
- package/{language-switcher/index.d.ts → types/siemens-element-ng-language-switcher.d.ts} +1 -2
- package/{list-details/index.d.ts → types/siemens-element-ng-list-details.d.ts} +4 -11
- package/{loading-spinner/index.d.ts → types/siemens-element-ng-loading-spinner.d.ts} +2 -3
- package/{modal/index.d.ts → types/siemens-element-ng-modal.d.ts} +0 -6
- package/{navbar-vertical/index.d.ts → types/siemens-element-ng-navbar-vertical.d.ts} +12 -7
- package/{navbar/index.d.ts → types/siemens-element-ng-navbar.d.ts} +11 -11
- package/{notification-item/index.d.ts → types/siemens-element-ng-notification-item.d.ts} +15 -3
- package/{pagination/index.d.ts → types/siemens-element-ng-pagination.d.ts} +4 -4
- package/{password-toggle/index.d.ts → types/siemens-element-ng-password-toggle.d.ts} +6 -4
- package/{phone-number/index.d.ts → types/siemens-element-ng-phone-number.d.ts} +8 -11
- package/{pills-input/index.d.ts → types/siemens-element-ng-pills-input.d.ts} +3 -3
- package/{popover/index.d.ts → types/siemens-element-ng-popover.d.ts} +2 -2
- package/{resize-observer/index.d.ts → types/siemens-element-ng-resize-observer.d.ts} +0 -30
- package/{search-bar/index.d.ts → types/siemens-element-ng-search-bar.d.ts} +2 -2
- package/{select/index.d.ts → types/siemens-element-ng-select.d.ts} +18 -97
- package/{side-panel/index.d.ts → types/siemens-element-ng-side-panel.d.ts} +26 -5
- package/{slider/index.d.ts → types/siemens-element-ng-slider.d.ts} +4 -4
- package/{split/index.d.ts → types/siemens-element-ng-split.d.ts} +1 -3
- package/{status-bar/index.d.ts → types/siemens-element-ng-status-bar.d.ts} +6 -6
- package/{tabs-legacy/index.d.ts → types/siemens-element-ng-tabs-legacy.d.ts} +5 -0
- package/{threshold/index.d.ts → types/siemens-element-ng-threshold.d.ts} +7 -7
- package/{toast-notification/index.d.ts → types/siemens-element-ng-toast-notification.d.ts} +3 -4
- package/{tooltip/index.d.ts → types/siemens-element-ng-tooltip.d.ts} +3 -6
- package/{tour/index.d.ts → types/siemens-element-ng-tour.d.ts} +1 -10
- package/{translate/index.d.ts → types/siemens-element-ng-translate.d.ts} +8 -1
- package/{tree-view/index.d.ts → types/siemens-element-ng-tree-view.d.ts} +0 -1
- package/{typeahead/index.d.ts → types/siemens-element-ng-typeahead.d.ts} +0 -2
- package/{wizard/index.d.ts → types/siemens-element-ng-wizard.d.ts} +6 -6
- package/wizard/package.json +2 -1
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs +0 -75
- package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +0 -1
- package/icon/index.d.ts +0 -285
- package/schematics/migrations/action-modal-migration/action-modal-migration.js +0 -162
- package/schematics/migrations/action-modal-migration/action-modal.mappings.js +0 -98
- package/schematics/migrations/action-modal-migration/index.js +0 -5
- package/schematics/migrations/wizard-migration/index.js +0 -80
- package/schematics/scss-import-to-siemens-migration/index.js +0 -101
- package/schematics/scss-import-to-siemens-migration/schema.json +0 -16
- package/schematics/scss-import-to-siemens-migration/style-mappings.js +0 -62
- package/schematics/ts-import-to-siemens-migration/index.js +0 -230
- package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +0 -71
- package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +0 -54
- package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +0 -705
- package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +0 -21
- package/schematics/ts-import-to-siemens-migration/mappings/index.js +0 -10
- package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +0 -47
- package/schematics/ts-import-to-siemens-migration/mappings/native-charts-ng-mappings.js +0 -33
- package/schematics/ts-import-to-siemens-migration/model.js +0 -4
- package/schematics/ts-import-to-siemens-migration/schema.json +0 -16
- package/unauthorized-page/index.d.ts +0 -44
- package/unauthorized-page/package.json +0 -3
- /package/{about/index.d.ts → types/siemens-element-ng-about.d.ts} +0 -0
- /package/{action-modal/index.d.ts → types/siemens-element-ng-action-modal.d.ts} +0 -0
- /package/{ag-grid/index.d.ts → types/siemens-element-ng-ag-grid.d.ts} +0 -0
- /package/{auto-collapsable-list/index.d.ts → types/siemens-element-ng-auto-collapsable-list.d.ts} +0 -0
- /package/{avatar/index.d.ts → types/siemens-element-ng-avatar.d.ts} +0 -0
- /package/{badge/index.d.ts → types/siemens-element-ng-badge.d.ts} +0 -0
- /package/{breadcrumb-router/index.d.ts → types/siemens-element-ng-breadcrumb-router.d.ts} +0 -0
- /package/{card/index.d.ts → types/siemens-element-ng-card.d.ts} +0 -0
- /package/{circle-status/index.d.ts → types/siemens-element-ng-circle-status.d.ts} +0 -0
- /package/{color-picker/index.d.ts → types/siemens-element-ng-color-picker.d.ts} +0 -0
- /package/{column-selection-dialog/index.d.ts → types/siemens-element-ng-column-selection-dialog.d.ts} +0 -0
- /package/{connection-strength/index.d.ts → types/siemens-element-ng-connection-strength.d.ts} +0 -0
- /package/{copyright-notice/index.d.ts → types/siemens-element-ng-copyright-notice.d.ts} +0 -0
- /package/{datatable/index.d.ts → types/siemens-element-ng-datatable.d.ts} +0 -0
- /package/{empty-state/index.d.ts → types/siemens-element-ng-empty-state.d.ts} +0 -0
- /package/{footer/index.d.ts → types/siemens-element-ng-footer.d.ts} +0 -0
- /package/{header-dropdown/index.d.ts → types/siemens-element-ng-header-dropdown.d.ts} +0 -0
- /package/{help-button/index.d.ts → types/siemens-element-ng-help-button.d.ts} +0 -0
- /package/{icon-status/index.d.ts → types/siemens-element-ng-icon-status.d.ts} +0 -0
- /package/{info-page/index.d.ts → types/siemens-element-ng-info-page.d.ts} +0 -0
- /package/{inline-notification/index.d.ts → types/siemens-element-ng-inline-notification.d.ts} +0 -0
- /package/{ip-input/index.d.ts → types/siemens-element-ng-ip-input.d.ts} +0 -0
- /package/{link/index.d.ts → types/siemens-element-ng-link.d.ts} +0 -0
- /package/{localization/index.d.ts → types/siemens-element-ng-localization.d.ts} +0 -0
- /package/{main-detail-container/index.d.ts → types/siemens-element-ng-main-detail-container.d.ts} +0 -0
- /package/{markdown-renderer/index.d.ts → types/siemens-element-ng-markdown-renderer.d.ts} +0 -0
- /package/{menu/index.d.ts → types/siemens-element-ng-menu.d.ts} +0 -0
- /package/{number-input/index.d.ts → types/siemens-element-ng-number-input.d.ts} +0 -0
- /package/{password-strength/index.d.ts → types/siemens-element-ng-password-strength.d.ts} +0 -0
- /package/{photo-upload/index.d.ts → types/siemens-element-ng-photo-upload.d.ts} +0 -0
- /package/{popover-legacy/index.d.ts → types/siemens-element-ng-popover-legacy.d.ts} +0 -0
- /package/{progressbar/index.d.ts → types/siemens-element-ng-progressbar.d.ts} +0 -0
- /package/{result-details-list/index.d.ts → types/siemens-element-ng-result-details-list.d.ts} +0 -0
- /package/{shadow-root/index.d.ts → types/siemens-element-ng-shadow-root.d.ts} +0 -0
- /package/{skip-links/index.d.ts → types/siemens-element-ng-skip-links.d.ts} +0 -0
- /package/{sort-bar/index.d.ts → types/siemens-element-ng-sort-bar.d.ts} +0 -0
- /package/{status-counter/index.d.ts → types/siemens-element-ng-status-counter.d.ts} +0 -0
- /package/{status-toggle/index.d.ts → types/siemens-element-ng-status-toggle.d.ts} +0 -0
- /package/{summary-chip/index.d.ts → types/siemens-element-ng-summary-chip.d.ts} +0 -0
- /package/{summary-widget/index.d.ts → types/siemens-element-ng-summary-widget.d.ts} +0 -0
- /package/{system-banner/index.d.ts → types/siemens-element-ng-system-banner.d.ts} +0 -0
- /package/{tabs/index.d.ts → types/siemens-element-ng-tabs.d.ts} +0 -0
- /package/{theme/index.d.ts → types/siemens-element-ng-theme.d.ts} +0 -0
- /package/{index.d.ts → types/siemens-element-ng.d.ts} +0 -0
|
@@ -3,8 +3,9 @@ import { model, input, output, signal, Directive, inject, LOCALE_ID, viewChild,
|
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import * as i1 from '@angular/forms';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
|
+
import { elementCancel, elementSearch } from '@siemens/element-icons';
|
|
6
7
|
import { isRTL } from '@siemens/element-ng/common';
|
|
7
|
-
import { addIcons,
|
|
8
|
+
import { addIcons, SiIconComponent } from '@siemens/element-ng/icon';
|
|
8
9
|
import { SiTypeaheadDirective } from '@siemens/element-ng/typeahead';
|
|
9
10
|
import { SiTranslatePipe, injectSiTranslateService, t } from '@siemens/element-translate-ng/translate';
|
|
10
11
|
import { BehaviorSubject, switchMap, of, Subject } from 'rxjs';
|
|
@@ -57,11 +58,11 @@ const getISODateString = (date, format, locale) => {
|
|
|
57
58
|
* SPDX-License-Identifier: MIT
|
|
58
59
|
*/
|
|
59
60
|
class SiFilteredSearchValueBase {
|
|
60
|
-
active = model.required();
|
|
61
|
-
criterionValue = model.required();
|
|
62
|
-
definition = input.required();
|
|
63
|
-
disabled = input.required();
|
|
64
|
-
searchLabel = input.required();
|
|
61
|
+
active = model.required(...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
62
|
+
criterionValue = model.required(...(ngDevMode ? [{ debugName: "criterionValue" }] : []));
|
|
63
|
+
definition = input.required(...(ngDevMode ? [{ debugName: "definition" }] : []));
|
|
64
|
+
disabled = input.required(...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
65
|
+
searchLabel = input.required(...(ngDevMode ? [{ debugName: "searchLabel" }] : []));
|
|
65
66
|
submitValue = output();
|
|
66
67
|
editValue = output();
|
|
67
68
|
backspaceOverflow = output();
|
|
@@ -81,10 +82,10 @@ class SiFilteredSearchValueBase {
|
|
|
81
82
|
this.backspaceOverflow.emit();
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
85
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchValueBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: SiFilteredSearchValueBase, isStandalone: true, inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null }, criterionValue: { classPropertyName: "criterionValue", publicName: "criterionValue", isSignal: true, isRequired: true, transformFunction: null }, definition: { classPropertyName: "definition", publicName: "definition", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: true, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { active: "activeChange", criterionValue: "criterionValueChange", submitValue: "submitValue", editValue: "editValue", backspaceOverflow: "backspaceOverflow" }, host: { properties: { "class.invalid-criterion": "!validValue()" }, classAttribute: "pill pill-interactive px-0 criterion-value-section" }, ngImport: i0 });
|
|
86
87
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchValueBase, decorators: [{
|
|
88
89
|
type: Directive,
|
|
89
90
|
args: [{
|
|
90
91
|
host: {
|
|
@@ -92,7 +93,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
92
93
|
'class': 'pill pill-interactive px-0 criterion-value-section'
|
|
93
94
|
}
|
|
94
95
|
}]
|
|
95
|
-
}] });
|
|
96
|
+
}], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: true }] }, { type: i0.Output, args: ["activeChange"] }], criterionValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "criterionValue", required: true }] }, { type: i0.Output, args: ["criterionValueChange"] }], definition: [{ type: i0.Input, args: [{ isSignal: true, alias: "definition", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: true }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: true }] }], submitValue: [{ type: i0.Output, args: ["submitValue"] }], editValue: [{ type: i0.Output, args: ["editValue"] }], backspaceOverflow: [{ type: i0.Output, args: ["backspaceOverflow"] }] } });
|
|
96
97
|
|
|
97
98
|
/**
|
|
98
99
|
* Copyright (c) Siemens 2016 - 2025
|
|
@@ -100,20 +101,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
100
101
|
*/
|
|
101
102
|
class SiFilteredSearchDateValueComponent extends SiFilteredSearchValueBase {
|
|
102
103
|
locale = inject(LOCALE_ID).toString();
|
|
103
|
-
valueInput = viewChild('valueInput');
|
|
104
|
-
datepickerOverlay = viewChild(SiDatepickerOverlayDirective);
|
|
105
|
-
disableTime = signal(false);
|
|
104
|
+
valueInput = viewChild('valueInput', ...(ngDevMode ? [{ debugName: "valueInput" }] : []));
|
|
105
|
+
datepickerOverlay = viewChild(SiDatepickerOverlayDirective, ...(ngDevMode ? [{ debugName: "datepickerOverlay" }] : []));
|
|
106
|
+
disableTime = signal(false, ...(ngDevMode ? [{ debugName: "disableTime" }] : []));
|
|
106
107
|
shortDateFormat;
|
|
107
|
-
focusInOverlay = computed(() => !!this.datepickerOverlay()?.isShown());
|
|
108
|
-
validFormat = computed(() => isValid(this.criterionValue().dateValue));
|
|
108
|
+
focusInOverlay = computed(() => !!this.datepickerOverlay()?.isShown(), ...(ngDevMode ? [{ debugName: "focusInOverlay" }] : []));
|
|
109
|
+
validFormat = computed(() => isValid(this.criterionValue().dateValue), ...(ngDevMode ? [{ debugName: "validFormat" }] : []));
|
|
109
110
|
// The information if the time is currently disabled is only present in the
|
|
110
111
|
// current search criterion instance and not in the generic configuration.
|
|
111
112
|
// So we need to merge the initial config with the current instance config.
|
|
112
113
|
dateConfig = computed(() => ({
|
|
113
114
|
...this.definition().datepickerConfig,
|
|
114
115
|
disabledTime: this.disableTime()
|
|
115
|
-
}));
|
|
116
|
-
dateFormat = computed(() => getDatepickerFormat(this.locale, this.dateConfig()));
|
|
116
|
+
}), ...(ngDevMode ? [{ debugName: "dateConfig" }] : []));
|
|
117
|
+
dateFormat = computed(() => getDatepickerFormat(this.locale, this.dateConfig()), ...(ngDevMode ? [{ debugName: "dateFormat" }] : []));
|
|
117
118
|
validValue = computed(() => {
|
|
118
119
|
const dateConfig = this.dateConfig();
|
|
119
120
|
const minDate = dateConfig?.minDate ?? false;
|
|
@@ -121,7 +122,7 @@ class SiFilteredSearchDateValueComponent extends SiFilteredSearchValueBase {
|
|
|
121
122
|
const dateValue = this.criterionValue().dateValue ?? false;
|
|
122
123
|
return ((!minDate || (minDate && dateValue && dateValue >= minDate)) &&
|
|
123
124
|
(!maxDate || (maxDate && dateValue && dateValue <= maxDate)));
|
|
124
|
-
});
|
|
125
|
+
}, ...(ngDevMode ? [{ debugName: "validValue" }] : []));
|
|
125
126
|
constructor() {
|
|
126
127
|
super();
|
|
127
128
|
this.shortDateFormat = getNamedFormat(this.locale, 'shortDate');
|
|
@@ -150,25 +151,25 @@ class SiFilteredSearchDateValueComponent extends SiFilteredSearchValueBase {
|
|
|
150
151
|
}
|
|
151
152
|
this.criterionValue.update(v => ({ ...v, value, dateValue: date }));
|
|
152
153
|
}
|
|
153
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
154
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
154
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchDateValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFilteredSearchDateValueComponent, isStandalone: true, selector: "si-filtered-search-date-value", providers: [
|
|
155
156
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchDateValueComponent }
|
|
156
|
-
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }, { propertyName: "datepickerOverlay", first: true, predicate: SiDatepickerOverlayDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let dateValue = criterionValue().dateValue;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!validFormat()) {\n <!-- DatePipe throws an error if the date is invalid, so we have to do it on our own. -->\n <!-- We may should have a better solution here. Ideally we would keep the broken string so that a user can fix it later. -->\n\n {{ $any(dateValue)?.toString() }}\n } @else if (!disableTime() || definition().validationType === 'date-time') {\n {{ dateValue | date: dateFormat() }}\n } @else {\n {{ dateValue | date: shortDateFormat }}\n }\n </div>\n} @else {\n <input\n #valueInput\n type=\"text\"\n siDatepicker\n class=\"px-4 py-0 border-0 focus-inside\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [siDatepickerConfig]=\"dateConfig()\"\n [ngModel]=\"dateValue\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (siDatepickerDisabledTime)=\"disableTime.set($event)\"\n (ngModelChange)=\"valueDateSelect($event)\"\n />\n}\n", styles: ["input{background:transparent}\n"], dependencies: [{ kind: "
|
|
157
|
+
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }, { propertyName: "datepickerOverlay", first: true, predicate: SiDatepickerOverlayDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let dateValue = criterionValue().dateValue;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!validFormat()) {\n <!-- DatePipe throws an error if the date is invalid, so we have to do it on our own. -->\n <!-- We may should have a better solution here. Ideally we would keep the broken string so that a user can fix it later. -->\n\n {{ $any(dateValue)?.toString() }}\n } @else if (!disableTime() || definition().validationType === 'date-time') {\n {{ dateValue | date: dateFormat() }}\n } @else {\n {{ dateValue | date: shortDateFormat }}\n }\n </div>\n} @else {\n <input\n #valueInput\n type=\"text\"\n siDatepicker\n class=\"px-4 py-0 border-0 focus-inside\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [siDatepickerConfig]=\"dateConfig()\"\n [ngModel]=\"dateValue\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (siDatepickerDisabledTime)=\"disableTime.set($event)\"\n (ngModelChange)=\"valueDateSelect($event)\"\n />\n}\n", styles: ["input{background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: SiDatepickerDirective, selector: "[siDatepicker]", inputs: ["autoClose"], exportAs: ["siDatepicker"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
157
158
|
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchDateValueComponent, decorators: [{
|
|
159
160
|
type: Component,
|
|
160
161
|
args: [{ selector: 'si-filtered-search-date-value', imports: [DatePipe, FormsModule, SiDatepickerDirective, SiTranslatePipe], providers: [
|
|
161
162
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchDateValueComponent }
|
|
162
163
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let dateValue = criterionValue().dateValue;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!validFormat()) {\n <!-- DatePipe throws an error if the date is invalid, so we have to do it on our own. -->\n <!-- We may should have a better solution here. Ideally we would keep the broken string so that a user can fix it later. -->\n\n {{ $any(dateValue)?.toString() }}\n } @else if (!disableTime() || definition().validationType === 'date-time') {\n {{ dateValue | date: dateFormat() }}\n } @else {\n {{ dateValue | date: shortDateFormat }}\n }\n </div>\n} @else {\n <input\n #valueInput\n type=\"text\"\n siDatepicker\n class=\"px-4 py-0 border-0 focus-inside\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [siDatepickerConfig]=\"dateConfig()\"\n [ngModel]=\"dateValue\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (siDatepickerDisabledTime)=\"disableTime.set($event)\"\n (ngModelChange)=\"valueDateSelect($event)\"\n />\n}\n", styles: ["input{background:transparent}\n"] }]
|
|
163
|
-
}], ctorParameters: () => [] });
|
|
164
|
+
}], ctorParameters: () => [], propDecorators: { valueInput: [{ type: i0.ViewChild, args: ['valueInput', { isSignal: true }] }], datepickerOverlay: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SiDatepickerOverlayDirective), { isSignal: true }] }] } });
|
|
164
165
|
|
|
165
166
|
/**
|
|
166
167
|
* Copyright (c) Siemens 2016 - 2025
|
|
167
168
|
* SPDX-License-Identifier: MIT
|
|
168
169
|
*/
|
|
169
170
|
class SiFilteredSearchFreeTextComponent extends SiFilteredSearchValueBase {
|
|
170
|
-
valueInput = viewChild('freeTextInput');
|
|
171
|
-
validValue = computed(() => true);
|
|
171
|
+
valueInput = viewChild('freeTextInput', ...(ngDevMode ? [{ debugName: "valueInput" }] : []));
|
|
172
|
+
validValue = computed(() => true, ...(ngDevMode ? [{ debugName: "validValue" }] : []));
|
|
172
173
|
freeTextValueChange(event) {
|
|
173
174
|
const inputElement = event.target;
|
|
174
175
|
this.criterionValue.update(v => ({ ...v, value: inputElement.value }));
|
|
@@ -177,39 +178,38 @@ class SiFilteredSearchFreeTextComponent extends SiFilteredSearchValueBase {
|
|
|
177
178
|
this.active.set(false);
|
|
178
179
|
this.submitValue.emit();
|
|
179
180
|
}
|
|
180
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
181
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchFreeTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
182
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFilteredSearchFreeTextComponent, isStandalone: true, selector: "si-filtered-search-free-text", providers: [
|
|
182
183
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchFreeTextComponent }
|
|
183
184
|
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["freeTextInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n {{ criterionValue().value }}\n </div>\n} @else {\n <input\n #freeTextInput\n type=\"text\"\n class=\"px-4 py-0 border-0 focus-inside\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [disabled]=\"disabled()\"\n [value]=\"criterionValue().value\"\n (input)=\"freeTextValueChange($event)\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (blur)=\"active.set(false)\"\n />\n}\n", styles: ["input{background:transparent}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
184
185
|
}
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchFreeTextComponent, decorators: [{
|
|
186
187
|
type: Component,
|
|
187
188
|
args: [{ selector: 'si-filtered-search-free-text', imports: [SiTranslatePipe], providers: [
|
|
188
189
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchFreeTextComponent }
|
|
189
190
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n {{ criterionValue().value }}\n </div>\n} @else {\n <input\n #freeTextInput\n type=\"text\"\n class=\"px-4 py-0 border-0 focus-inside\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [disabled]=\"disabled()\"\n [value]=\"criterionValue().value\"\n (input)=\"freeTextValueChange($event)\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (blur)=\"active.set(false)\"\n />\n}\n", styles: ["input{background:transparent}\n"] }]
|
|
190
|
-
}] });
|
|
191
|
+
}], propDecorators: { valueInput: [{ type: i0.ViewChild, args: ['freeTextInput', { isSignal: true }] }] } });
|
|
191
192
|
|
|
192
193
|
/**
|
|
193
194
|
* Copyright (c) Siemens 2016 - 2025
|
|
194
195
|
* SPDX-License-Identifier: MIT
|
|
195
196
|
*/
|
|
196
197
|
class SiFilteredSearchOptionValueBase extends SiFilteredSearchValueBase {
|
|
197
|
-
lazyValueProvider = input();
|
|
198
|
-
searchDebounceTime = input.required();
|
|
199
|
-
onlySelectValue = input.required();
|
|
200
|
-
maxCriteriaOptions = input.required();
|
|
201
|
-
optionsInScrollableView = input.required();
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
isStrictOrOnlySelectValue = input.required();
|
|
198
|
+
lazyValueProvider = input(...(ngDevMode ? [undefined, { debugName: "lazyValueProvider" }] : []));
|
|
199
|
+
searchDebounceTime = input.required(...(ngDevMode ? [{ debugName: "searchDebounceTime" }] : []));
|
|
200
|
+
onlySelectValue = input.required(...(ngDevMode ? [{ debugName: "onlySelectValue" }] : []));
|
|
201
|
+
maxCriteriaOptions = input.required(...(ngDevMode ? [{ debugName: "maxCriteriaOptions" }] : []));
|
|
202
|
+
optionsInScrollableView = input.required(...(ngDevMode ? [{ debugName: "optionsInScrollableView" }] : []));
|
|
203
|
+
disableSelectionByColonAndSemicolon = input.required(...(ngDevMode ? [{ debugName: "disableSelectionByColonAndSemicolon" }] : []));
|
|
204
|
+
isStrictOrOnlySelectValue = input.required(...(ngDevMode ? [{ debugName: "isStrictOrOnlySelectValue" }] : []));
|
|
205
205
|
inputChange = new BehaviorSubject('');
|
|
206
206
|
destroyRef = inject(DestroyRef);
|
|
207
207
|
translateService = injectSiTranslateService();
|
|
208
208
|
inputType = computed(() => this.definition().validationType === 'integer' || this.definition().validationType === 'float'
|
|
209
209
|
? 'number'
|
|
210
|
-
: 'text');
|
|
211
|
-
step = computed(() => (this.definition().validationType === 'integer' ? '1' : 'any'));
|
|
212
|
-
options = computed(() => this.buildOptions());
|
|
210
|
+
: 'text', ...(ngDevMode ? [{ debugName: "inputType" }] : []));
|
|
211
|
+
step = computed(() => (this.definition().validationType === 'integer' ? '1' : 'any'), ...(ngDevMode ? [{ debugName: "step" }] : []));
|
|
212
|
+
options = computed(() => this.buildOptions(), ...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
213
213
|
validValue = computed(() => {
|
|
214
214
|
const config = this.definition();
|
|
215
215
|
if (!this.isStrictOrOnlySelectValue() && !config.strictValue && !config.onlySelectValue) {
|
|
@@ -219,7 +219,7 @@ class SiFilteredSearchOptionValueBase extends SiFilteredSearchValueBase {
|
|
|
219
219
|
// TODO: checking if options are empty is also questionable. Should be changed v47.
|
|
220
220
|
return ((config.options?.length && this.hasOptionValue()) ||
|
|
221
221
|
(!config.options?.length && !!this.criterionValue().value));
|
|
222
|
-
});
|
|
222
|
+
}, ...(ngDevMode ? [{ debugName: "validValue" }] : []));
|
|
223
223
|
buildOptions() {
|
|
224
224
|
let optionsStream;
|
|
225
225
|
if (this.lazyValueProvider()) {
|
|
@@ -248,23 +248,23 @@ class SiFilteredSearchOptionValueBase extends SiFilteredSearchValueBase {
|
|
|
248
248
|
.subscribe(options => this.processTypeaheadOptions(options));
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
252
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
251
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchOptionValueBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
252
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: SiFilteredSearchOptionValueBase, isStandalone: true, inputs: { lazyValueProvider: { classPropertyName: "lazyValueProvider", publicName: "lazyValueProvider", isSignal: true, isRequired: false, transformFunction: null }, searchDebounceTime: { classPropertyName: "searchDebounceTime", publicName: "searchDebounceTime", isSignal: true, isRequired: true, transformFunction: null }, onlySelectValue: { classPropertyName: "onlySelectValue", publicName: "onlySelectValue", isSignal: true, isRequired: true, transformFunction: null }, maxCriteriaOptions: { classPropertyName: "maxCriteriaOptions", publicName: "maxCriteriaOptions", isSignal: true, isRequired: true, transformFunction: null }, optionsInScrollableView: { classPropertyName: "optionsInScrollableView", publicName: "optionsInScrollableView", isSignal: true, isRequired: true, transformFunction: null }, disableSelectionByColonAndSemicolon: { classPropertyName: "disableSelectionByColonAndSemicolon", publicName: "disableSelectionByColonAndSemicolon", isSignal: true, isRequired: true, transformFunction: null }, isStrictOrOnlySelectValue: { classPropertyName: "isStrictOrOnlySelectValue", publicName: "isStrictOrOnlySelectValue", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
|
|
253
253
|
}
|
|
254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchOptionValueBase, decorators: [{
|
|
255
255
|
type: Directive
|
|
256
|
-
}] });
|
|
256
|
+
}], propDecorators: { lazyValueProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyValueProvider", required: false }] }], searchDebounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchDebounceTime", required: true }] }], onlySelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlySelectValue", required: true }] }], maxCriteriaOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxCriteriaOptions", required: true }] }], optionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsInScrollableView", required: true }] }], disableSelectionByColonAndSemicolon: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableSelectionByColonAndSemicolon", required: true }] }], isStrictOrOnlySelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "isStrictOrOnlySelectValue", required: true }] }] } });
|
|
257
257
|
|
|
258
258
|
/**
|
|
259
259
|
* Copyright (c) Siemens 2016 - 2025
|
|
260
260
|
* SPDX-License-Identifier: MIT
|
|
261
261
|
*/
|
|
262
262
|
class SiFilteredSearchMultiSelectComponent extends SiFilteredSearchOptionValueBase {
|
|
263
|
-
itemCountText = input.required();
|
|
264
|
-
valueInput = viewChild('valueInput');
|
|
265
|
-
optionValue = signal([]);
|
|
263
|
+
itemCountText = input.required(...(ngDevMode ? [{ debugName: "itemCountText" }] : []));
|
|
264
|
+
valueInput = viewChild('valueInput', ...(ngDevMode ? [{ debugName: "valueInput" }] : []));
|
|
265
|
+
optionValue = signal([], ...(ngDevMode ? [{ debugName: "optionValue" }] : []));
|
|
266
266
|
selectionChange = new BehaviorSubject([]);
|
|
267
|
-
hasMultiSelections = computed(() => Array.isArray(this.criterionValue().value) && this.criterionValue().value.length > 1);
|
|
267
|
+
hasMultiSelections = computed(() => Array.isArray(this.criterionValue().value) && this.criterionValue().value.length > 1, ...(ngDevMode ? [{ debugName: "hasMultiSelections" }] : []));
|
|
268
268
|
ngOnChanges(changes) {
|
|
269
269
|
if (changes.criterionValue &&
|
|
270
270
|
this.criterionValue().value?.length !== this.optionValue().length) {
|
|
@@ -314,27 +314,27 @@ class SiFilteredSearchMultiSelectComponent extends SiFilteredSearchOptionValueBa
|
|
|
314
314
|
hasOptionValue() {
|
|
315
315
|
return !!this.optionValue().length;
|
|
316
316
|
}
|
|
317
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
318
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
317
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
318
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFilteredSearchMultiSelectComponent, isStandalone: true, selector: "si-filtered-search-multi-select", inputs: { itemCountText: { classPropertyName: "itemCountText", publicName: "itemCountText", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
|
|
319
319
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchMultiSelectComponent }
|
|
320
|
-
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!!value && hasMultiSelections()) {\n {{ itemCountText() | translate: { itemCount: value.length } }}\n } @else if (optionValue()[0]) {\n {{ optionValue()[0].label ?? optionValue()[0].value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n typeaheadMultiSelect\n [type]=\"inputType()\"\n [step]=\"step()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [readOnly]=\"
|
|
320
|
+
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!!value && hasMultiSelections()) {\n {{ itemCountText() | translate: { itemCount: value.length } }}\n } @else if (optionValue()[0]) {\n {{ optionValue()[0].label ?? optionValue()[0].value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n typeaheadMultiSelect\n [type]=\"inputType()\"\n [step]=\"step()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [readOnly]=\"onlySelectValue()\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (typeaheadOnSelect)=\"valueTypeaheadSelect($event)\"\n (typeaheadOnInput)=\"inputChange.next($event)\"\n />\n}\n", styles: ["input{background:transparent}\n"], dependencies: [{ kind: "directive", type: SiTypeaheadDirective, selector: "[siTypeahead]", inputs: ["siTypeahead", "typeaheadProcess", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadOptionsLimit", "typeaheadScrollableAdditionalHeight", "typeaheadAutoSelectIndex", "typeaheadCloseOnEsc", "typeaheadClearValueOnSelect", "typeaheadWaitMs", "typeaheadMinLength", "typeaheadOptionField", "typeaheadMultiSelect", "typeaheadTokenize", "typeaheadMatchAllTokens", "typeaheadItemTemplate", "typeaheadSkipSortingMatches", "typeaheadAutocompleteListLabel", "typeaheadFullWidth", "typeaheadCreateOption"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange", "typeaheadOnCreateOption"], exportAs: ["si-typeahead"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
321
321
|
}
|
|
322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
322
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchMultiSelectComponent, decorators: [{
|
|
323
323
|
type: Component,
|
|
324
324
|
args: [{ selector: 'si-filtered-search-multi-select', imports: [SiTranslatePipe, SiTypeaheadDirective], providers: [
|
|
325
325
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchMultiSelectComponent }
|
|
326
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!!value && hasMultiSelections()) {\n {{ itemCountText() | translate: { itemCount: value.length } }}\n } @else if (optionValue()[0]) {\n {{ optionValue()[0].label ?? optionValue()[0].value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n typeaheadMultiSelect\n [type]=\"inputType()\"\n [step]=\"step()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [readOnly]=\"
|
|
327
|
-
}] });
|
|
326
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @if (!!value && hasMultiSelections()) {\n {{ itemCountText() | translate: { itemCount: value.length } }}\n } @else if (optionValue()[0]) {\n {{ optionValue()[0].label ?? optionValue()[0].value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n typeaheadMultiSelect\n [type]=\"inputType()\"\n [step]=\"step()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [readOnly]=\"onlySelectValue()\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (typeaheadOnSelect)=\"valueTypeaheadSelect($event)\"\n (typeaheadOnInput)=\"inputChange.next($event)\"\n />\n}\n", styles: ["input{background:transparent}\n"] }]
|
|
327
|
+
}], propDecorators: { itemCountText: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemCountText", required: true }] }], valueInput: [{ type: i0.ViewChild, args: ['valueInput', { isSignal: true }] }] } });
|
|
328
328
|
|
|
329
329
|
/**
|
|
330
330
|
* Copyright (c) Siemens 2016 - 2025
|
|
331
331
|
* SPDX-License-Identifier: MIT
|
|
332
332
|
*/
|
|
333
333
|
class SiFilteredSearchTypeaheadComponent extends SiFilteredSearchOptionValueBase {
|
|
334
|
-
valueInput = viewChild('valueInput');
|
|
335
|
-
optionValue = signal(undefined);
|
|
334
|
+
valueInput = viewChild('valueInput', ...(ngDevMode ? [{ debugName: "valueInput" }] : []));
|
|
335
|
+
optionValue = signal(undefined, ...(ngDevMode ? [{ debugName: "optionValue" }] : []));
|
|
336
336
|
// This must be a separate signal as it should only emit when the actual empty state changes.
|
|
337
|
-
inputEmpty = computed(() => !this.criterionValue().value);
|
|
337
|
+
inputEmpty = computed(() => !this.criterionValue().value, ...(ngDevMode ? [{ debugName: "inputEmpty" }] : []));
|
|
338
338
|
// This MUST only be updated if the active state changes.
|
|
339
339
|
// Otherwise, user values might be overridden.
|
|
340
340
|
// It is only used to pass the initial input value if the user starts editing the input.
|
|
@@ -354,7 +354,7 @@ class SiFilteredSearchTypeaheadComponent extends SiFilteredSearchOptionValueBase
|
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
356
|
return '';
|
|
357
|
-
});
|
|
357
|
+
}, ...(ngDevMode ? [{ debugName: "valueLabel" }] : []));
|
|
358
358
|
ngOnChanges(changes) {
|
|
359
359
|
if (changes.criterionValue && this.criterionValue().value !== this.optionValue()?.value) {
|
|
360
360
|
this.optionValue.set(undefined);
|
|
@@ -412,53 +412,51 @@ class SiFilteredSearchTypeaheadComponent extends SiFilteredSearchOptionValueBase
|
|
|
412
412
|
// We should consider dropping this, but there is currently a unit test checking this behavior.
|
|
413
413
|
const optionValue = this.optionValue();
|
|
414
414
|
if (optionValue) {
|
|
415
|
-
|
|
416
|
-
this.criterionValue().value = optionValue.value ?? optionValue.label;
|
|
415
|
+
this.criterionValue().value = optionValue.value;
|
|
417
416
|
}
|
|
418
417
|
}
|
|
419
418
|
hasOptionValue() {
|
|
420
419
|
return !!this.optionValue();
|
|
421
420
|
}
|
|
422
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
423
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
421
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchTypeaheadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
422
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFilteredSearchTypeaheadComponent, isStandalone: true, selector: "si-filtered-search-typeahead", providers: [
|
|
424
423
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchTypeaheadComponent }
|
|
425
|
-
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @let optionValue = this.optionValue();\n @if (optionValue) {\n {{ optionValue.label ?? optionValue.value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n [type]=\"inputType()\"\n [step]=\"step()\"\n [ngModel]=\"valueLabel()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadProcess]=\"!onlySelectValue()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [typeaheadAutoSelectIndex]=\"value?.length ? 0 : -1\"\n [readOnly]=\"
|
|
424
|
+
], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @let optionValue = this.optionValue();\n @if (optionValue) {\n {{ optionValue.label ?? optionValue.value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n [type]=\"inputType()\"\n [step]=\"step()\"\n [ngModel]=\"valueLabel()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadProcess]=\"!onlySelectValue()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [typeaheadAutoSelectIndex]=\"value?.length ? 0 : -1\"\n [readOnly]=\"onlySelectValue() || definition().onlySelectValue\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n (keydown)=\"valueFilterKeys($event)\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (ngModelChange)=\"valueChange($event)\"\n (typeaheadOnFullMatch)=\"valueTypeaheadFullMatch($event)\"\n (typeaheadOnSelect)=\"valueTypeaheadSelect($event)\"\n />\n}\n", styles: ["input{background:transparent;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: SiTypeaheadDirective, selector: "[siTypeahead]", inputs: ["siTypeahead", "typeaheadProcess", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadOptionsLimit", "typeaheadScrollableAdditionalHeight", "typeaheadAutoSelectIndex", "typeaheadCloseOnEsc", "typeaheadClearValueOnSelect", "typeaheadWaitMs", "typeaheadMinLength", "typeaheadOptionField", "typeaheadMultiSelect", "typeaheadTokenize", "typeaheadMatchAllTokens", "typeaheadItemTemplate", "typeaheadSkipSortingMatches", "typeaheadAutocompleteListLabel", "typeaheadFullWidth", "typeaheadCreateOption"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange", "typeaheadOnCreateOption"], exportAs: ["si-typeahead"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
426
425
|
}
|
|
427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchTypeaheadComponent, decorators: [{
|
|
428
427
|
type: Component,
|
|
429
428
|
args: [{ selector: 'si-filtered-search-typeahead', imports: [SiTypeaheadDirective, FormsModule, SiTranslatePipe], providers: [
|
|
430
429
|
{ provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchTypeaheadComponent }
|
|
431
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @let optionValue = this.optionValue();\n @if (optionValue) {\n {{ optionValue.label ?? optionValue.value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n [type]=\"inputType()\"\n [step]=\"step()\"\n [ngModel]=\"valueLabel()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadProcess]=\"!onlySelectValue()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [typeaheadAutoSelectIndex]=\"value?.length ? 0 : -1\"\n [readOnly]=\"
|
|
432
|
-
}] });
|
|
430
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let value = criterionValue().value;\n@if (!active()) {\n <div\n class=\"criterion-value-text focus-inside px-4\"\n [tabindex]=\"disabled() ? -1 : 0\"\n (keydown.enter)=\"editValue.emit()\"\n (click)=\"editValue.emit()\"\n >\n @let optionValue = this.optionValue();\n @if (optionValue) {\n {{ optionValue.label ?? optionValue.value | translate }}\n } @else {\n {{ value }}\n }\n </div>\n} @else {\n <input\n #valueInput\n typeaheadOptionField=\"translatedLabel\"\n class=\"px-4 py-0 border-0 focus-inside\"\n typeaheadScrollable\n [type]=\"inputType()\"\n [step]=\"step()\"\n [ngModel]=\"valueLabel()\"\n [siTypeahead]=\"options() ?? []\"\n [typeaheadProcess]=\"!onlySelectValue()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"maxCriteriaOptions()\"\n [typeaheadAutoSelectIndex]=\"value?.length ? 0 : -1\"\n [readOnly]=\"onlySelectValue() || definition().onlySelectValue\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n (keydown)=\"valueFilterKeys($event)\"\n (keydown.backspace)=\"valueBackspace()\"\n (keydown.enter)=\"valueEnter()\"\n (ngModelChange)=\"valueChange($event)\"\n (typeaheadOnFullMatch)=\"valueTypeaheadFullMatch($event)\"\n (typeaheadOnSelect)=\"valueTypeaheadSelect($event)\"\n />\n}\n", styles: ["input{background:transparent;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
431
|
+
}], propDecorators: { valueInput: [{ type: i0.ViewChild, args: ['valueInput', { isSignal: true }] }] } });
|
|
433
432
|
|
|
434
433
|
/**
|
|
435
434
|
* Copyright (c) Siemens 2016 - 2025
|
|
436
435
|
* SPDX-License-Identifier: MIT
|
|
437
436
|
*/
|
|
438
437
|
class SiFilteredSearchValueComponent {
|
|
439
|
-
value = model.required();
|
|
440
|
-
definition = input.required();
|
|
441
|
-
disabled = input.required();
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
editOnCreation = input.required();
|
|
438
|
+
value = model.required(...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
439
|
+
definition = input.required(...(ngDevMode ? [{ debugName: "definition" }] : []));
|
|
440
|
+
disabled = input.required(...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
441
|
+
onlySelectValue = input.required(...(ngDevMode ? [{ debugName: "onlySelectValue" }] : []));
|
|
442
|
+
maxCriteriaOptions = input.required(...(ngDevMode ? [{ debugName: "maxCriteriaOptions" }] : []));
|
|
443
|
+
optionsInScrollableView = input.required(...(ngDevMode ? [{ debugName: "optionsInScrollableView" }] : []));
|
|
444
|
+
clearButtonLabel = input.required(...(ngDevMode ? [{ debugName: "clearButtonLabel" }] : []));
|
|
445
|
+
lazyValueProvider = input(...(ngDevMode ? [undefined, { debugName: "lazyValueProvider" }] : []));
|
|
446
|
+
searchDebounceTime = input.required(...(ngDevMode ? [{ debugName: "searchDebounceTime" }] : []));
|
|
447
|
+
itemCountText = input.required(...(ngDevMode ? [{ debugName: "itemCountText" }] : []));
|
|
448
|
+
disableSelectionByColonAndSemicolon = input.required(...(ngDevMode ? [{ debugName: "disableSelectionByColonAndSemicolon" }] : []));
|
|
449
|
+
searchLabel = input.required(...(ngDevMode ? [{ debugName: "searchLabel" }] : []));
|
|
450
|
+
invalidCriterion = input.required(...(ngDevMode ? [{ debugName: "invalidCriterion" }] : []));
|
|
451
|
+
isStrictOrOnlySelectValue = input.required(...(ngDevMode ? [{ debugName: "isStrictOrOnlySelectValue" }] : []));
|
|
452
|
+
editOnCreation = input.required(...(ngDevMode ? [{ debugName: "editOnCreation" }] : []));
|
|
455
453
|
deleteCriterion = output();
|
|
456
454
|
submitCriterion = output();
|
|
457
|
-
active = signal(false);
|
|
455
|
+
active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
458
456
|
icons = addIcons({ elementCancel });
|
|
459
457
|
hasPendingFocus = false;
|
|
460
|
-
operatorInput = viewChild('operatorInput');
|
|
461
|
-
valueInput = viewChild(SiFilteredSearchValueBase);
|
|
458
|
+
operatorInput = viewChild('operatorInput', ...(ngDevMode ? [{ debugName: "operatorInput" }] : []));
|
|
459
|
+
valueInput = viewChild(SiFilteredSearchValueBase, ...(ngDevMode ? [{ debugName: "valueInput" }] : []));
|
|
462
460
|
type = computed(() => {
|
|
463
461
|
// Check if this is a free text criterion first
|
|
464
462
|
const definition = this.definition();
|
|
@@ -471,7 +469,7 @@ class SiFilteredSearchValueComponent {
|
|
|
471
469
|
}
|
|
472
470
|
// Handle multi-select vs single-select for other validation types.
|
|
473
471
|
return definition.multiSelect ? 'multi-select' : 'typeahead';
|
|
474
|
-
});
|
|
472
|
+
}, ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
475
473
|
selectedOperatorIndex = computed(() => {
|
|
476
474
|
const operator = this.value().operator;
|
|
477
475
|
const operators = this.definition().operators;
|
|
@@ -479,14 +477,14 @@ class SiFilteredSearchValueComponent {
|
|
|
479
477
|
return -1;
|
|
480
478
|
}
|
|
481
479
|
return operators.findIndex(op => op.includes(operator));
|
|
482
|
-
});
|
|
480
|
+
}, ...(ngDevMode ? [{ debugName: "selectedOperatorIndex" }] : []));
|
|
483
481
|
longestOperatorLength = computed(() => {
|
|
484
482
|
const operators = this.definition().operators;
|
|
485
483
|
if (!operators) {
|
|
486
484
|
return 0;
|
|
487
485
|
}
|
|
488
486
|
return Math.max(...operators.map(a => a.length));
|
|
489
|
-
});
|
|
487
|
+
}, ...(ngDevMode ? [{ debugName: "longestOperatorLength" }] : []));
|
|
490
488
|
ngOnInit() {
|
|
491
489
|
if (this.editOnCreation() && this.type() !== 'free-text') {
|
|
492
490
|
this.edit();
|
|
@@ -498,9 +496,6 @@ class SiFilteredSearchValueComponent {
|
|
|
498
496
|
}
|
|
499
497
|
}
|
|
500
498
|
edit(field) {
|
|
501
|
-
if (this.readonly()) {
|
|
502
|
-
return;
|
|
503
|
-
}
|
|
504
499
|
this.active.set(true);
|
|
505
500
|
this.hasPendingFocus = true;
|
|
506
501
|
setTimeout(() => {
|
|
@@ -569,10 +564,10 @@ class SiFilteredSearchValueComponent {
|
|
|
569
564
|
this.deleteCriterion.emit({ triggerSearch: true });
|
|
570
565
|
}
|
|
571
566
|
}
|
|
572
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
573
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiFilteredSearchValueComponent, isStandalone: true, selector: "si-filtered-search-value", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, definition: { classPropertyName: "definition", publicName: "definition", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: true, transformFunction: null }, onlySelectValue: { classPropertyName: "onlySelectValue", publicName: "onlySelectValue", isSignal: true, isRequired: true, transformFunction: null }, maxCriteriaOptions: { classPropertyName: "maxCriteriaOptions", publicName: "maxCriteriaOptions", isSignal: true, isRequired: true, transformFunction: null }, optionsInScrollableView: { classPropertyName: "optionsInScrollableView", publicName: "optionsInScrollableView", isSignal: true, isRequired: true, transformFunction: null }, clearButtonLabel: { classPropertyName: "clearButtonLabel", publicName: "clearButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, lazyValueProvider: { classPropertyName: "lazyValueProvider", publicName: "lazyValueProvider", isSignal: true, isRequired: false, transformFunction: null }, searchDebounceTime: { classPropertyName: "searchDebounceTime", publicName: "searchDebounceTime", isSignal: true, isRequired: true, transformFunction: null }, itemCountText: { classPropertyName: "itemCountText", publicName: "itemCountText", isSignal: true, isRequired: true, transformFunction: null }, disableSelectionByColonAndSemicolon: { classPropertyName: "disableSelectionByColonAndSemicolon", publicName: "disableSelectionByColonAndSemicolon", isSignal: true, isRequired: true, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: true, transformFunction: null }, invalidCriterion: { classPropertyName: "invalidCriterion", publicName: "invalidCriterion", isSignal: true, isRequired: true, transformFunction: null }, isStrictOrOnlySelectValue: { classPropertyName: "isStrictOrOnlySelectValue", publicName: "isStrictOrOnlySelectValue", isSignal: true, isRequired: true, transformFunction: null }, editOnCreation: { classPropertyName: "editOnCreation", publicName: "editOnCreation", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { value: "valueChange", deleteCriterion: "deleteCriterion", submitCriterion: "submitCriterion" }, viewQueries: [{ propertyName: "operatorInput", first: true, predicate: ["operatorInput"], descendants: true, isSignal: true }, { propertyName: "valueInput", first: true, predicate: SiFilteredSearchValueBase, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n cdkMonitorSubtreeFocus\n class=\"criteria pill-group\"\n [class.disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled()\"\n [class.invalid-criterion]=\"invalidCriterion()\"\n (cdkFocusChange)=\"focusChange($event)\"\n>\n @if (type() !== 'free-text') {\n <div class=\"pill pill-interactive criterion-label si-h5\" (click)=\"edit()\">\n {{ definition().label | translate }}\n </div>\n }\n @if (definition().operators?.length) {\n <div class=\"pill pill-interactive px-0 criterion-operator-section\">\n <!-- criterion operator input -->\n @if (active()) {\n <input\n #operatorInput\n type=\"text\"\n class=\"focus-inside operator-input py-0 border-0\"\n [siTypeahead]=\"definition().operators!\"\n [typeaheadProcess]=\"false\"\n [typeaheadAutoSelectIndex]=\"selectedOperatorIndex()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"0\"\n [readOnly]=\"false\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [attr.size]=\"longestOperatorLength()\"\n [ngModel]=\"value().operator\"\n (ngModelChange)=\"operatorUpdate($event)\"\n (keydown.backspace)=\"operatorBackspace()\"\n (keydown.enter)=\"operatorEnter()\"\n (typeaheadOnSelect)=\"operatorEnter()\"\n (blur)=\"operatorBlur()\"\n />\n } @else {\n <!-- criterion operator field -->\n <div\n class=\"criterion-operator-text px-2 focus-inside\"\n [tabindex]=\"!disabled() ? 0 : -1\"\n (keydown.enter)=\"edit('operator')\"\n (click)=\"edit('operator')\"\n >\n {{ value().operator }}\n </div>\n }\n </div>\n }\n @switch (type()) {\n @case ('free-text') {\n <si-filtered-search-free-text\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n (activeChange)=\"freeTextActiveChange($event)\"\n />\n }\n @case ('date') {\n <si-filtered-search-date-value\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('multi-select') {\n <si-filtered-search-multi-select\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [itemCountText]=\"itemCountText()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [readonly]=\"readonly()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('typeahead') {\n <si-filtered-search-typeahead\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [readonly]=\"readonly()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n }\n @if (!readonly()) {\n <div class=\"pill px-0 ms-n1\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-xs btn-ghost focus-inside\"\n [attr.aria-label]=\"clearButtonLabel() | translate\"\n [disabled]=\"disabled()\"\n (click)=\"clear()\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n</div>\n", styles: [":host-context(.disabled) input,:host-context(.disabled) ::placeholder{color:var(--element-text-disabled)}.pill{background:var(--filter-pill-background-color)}.criteria{display:flex;cursor:pointer;white-space:nowrap;border-radius:12px}.criteria.invalid-criterion{box-shadow:0 0 0 1px var(--element-status-danger)}.criteria:not(.invalid-criterion) .invalid-criterion{box-shadow:inset 0 0 0 1px var(--element-status-danger)}.criteria.disabled{cursor:inherit;pointer-events:none}.operator-input{background:var(--filter-pill-background-color);padding-inline:4px;inline-size:calc(1ch + 8px)}input{background:transparent}\n"], dependencies: [{ kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: SiTypeaheadDirective, selector: "[siTypeahead]", inputs: ["siTypeahead", "typeaheadProcess", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadOptionsLimit", "typeaheadScrollableAdditionalHeight", "typeaheadAutoSelectIndex", "typeaheadCloseOnEsc", "typeaheadClearValueOnSelect", "typeaheadWaitMs", "typeaheadMinLength", "typeaheadOptionField", "typeaheadMultiSelect", "typeaheadTokenize", "typeaheadMatchAllTokens", "typeaheadItemTemplate", "typeaheadSkipSortingMatches", "typeaheadAutocompleteListLabel", "typeaheadFullWidth", "typeaheadCreateOption"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange", "typeaheadOnCreateOption"], exportAs: ["si-typeahead"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiFilteredSearchDateValueComponent, selector: "si-filtered-search-date-value" }, { kind: "component", type: SiFilteredSearchFreeTextComponent, selector: "si-filtered-search-free-text" }, { kind: "component", type: SiFilteredSearchTypeaheadComponent, selector: "si-filtered-search-typeahead" }, { kind: "component", type: SiFilteredSearchMultiSelectComponent, selector: "si-filtered-search-multi-select", inputs: ["itemCountText"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
567
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
568
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFilteredSearchValueComponent, isStandalone: true, selector: "si-filtered-search-value", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, definition: { classPropertyName: "definition", publicName: "definition", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: true, transformFunction: null }, onlySelectValue: { classPropertyName: "onlySelectValue", publicName: "onlySelectValue", isSignal: true, isRequired: true, transformFunction: null }, maxCriteriaOptions: { classPropertyName: "maxCriteriaOptions", publicName: "maxCriteriaOptions", isSignal: true, isRequired: true, transformFunction: null }, optionsInScrollableView: { classPropertyName: "optionsInScrollableView", publicName: "optionsInScrollableView", isSignal: true, isRequired: true, transformFunction: null }, clearButtonLabel: { classPropertyName: "clearButtonLabel", publicName: "clearButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, lazyValueProvider: { classPropertyName: "lazyValueProvider", publicName: "lazyValueProvider", isSignal: true, isRequired: false, transformFunction: null }, searchDebounceTime: { classPropertyName: "searchDebounceTime", publicName: "searchDebounceTime", isSignal: true, isRequired: true, transformFunction: null }, itemCountText: { classPropertyName: "itemCountText", publicName: "itemCountText", isSignal: true, isRequired: true, transformFunction: null }, disableSelectionByColonAndSemicolon: { classPropertyName: "disableSelectionByColonAndSemicolon", publicName: "disableSelectionByColonAndSemicolon", isSignal: true, isRequired: true, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: true, transformFunction: null }, invalidCriterion: { classPropertyName: "invalidCriterion", publicName: "invalidCriterion", isSignal: true, isRequired: true, transformFunction: null }, isStrictOrOnlySelectValue: { classPropertyName: "isStrictOrOnlySelectValue", publicName: "isStrictOrOnlySelectValue", isSignal: true, isRequired: true, transformFunction: null }, editOnCreation: { classPropertyName: "editOnCreation", publicName: "editOnCreation", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { value: "valueChange", deleteCriterion: "deleteCriterion", submitCriterion: "submitCriterion" }, viewQueries: [{ propertyName: "operatorInput", first: true, predicate: ["operatorInput"], descendants: true, isSignal: true }, { propertyName: "valueInput", first: true, predicate: SiFilteredSearchValueBase, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n cdkMonitorSubtreeFocus\n class=\"criteria pill-group\"\n [class.disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled()\"\n [class.invalid-criterion]=\"invalidCriterion()\"\n (cdkFocusChange)=\"focusChange($event)\"\n>\n @if (type() !== 'free-text') {\n <div class=\"pill pill-interactive criterion-label si-h5\" (click)=\"edit()\">\n {{ definition().label | translate }}\n </div>\n }\n @if (definition().operators?.length) {\n <div class=\"pill pill-interactive px-0 criterion-operator-section\">\n <!-- criterion operator input -->\n @if (active()) {\n <input\n #operatorInput\n type=\"text\"\n class=\"focus-inside operator-input py-0 border-0\"\n [siTypeahead]=\"definition().operators!\"\n [typeaheadProcess]=\"false\"\n [typeaheadAutoSelectIndex]=\"selectedOperatorIndex()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"0\"\n [readOnly]=\"false\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [attr.size]=\"longestOperatorLength()\"\n [ngModel]=\"value().operator\"\n (ngModelChange)=\"operatorUpdate($event)\"\n (keydown.backspace)=\"operatorBackspace()\"\n (keydown.enter)=\"operatorEnter()\"\n (typeaheadOnSelect)=\"operatorEnter()\"\n (blur)=\"operatorBlur()\"\n />\n } @else {\n <!-- criterion operator field -->\n <div\n class=\"criterion-operator-text px-2 focus-inside\"\n [tabindex]=\"!disabled() ? 0 : -1\"\n (keydown.enter)=\"edit('operator')\"\n (click)=\"edit('operator')\"\n >\n {{ value().operator }}\n </div>\n }\n </div>\n }\n @switch (type()) {\n @case ('free-text') {\n <si-filtered-search-free-text\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n (activeChange)=\"freeTextActiveChange($event)\"\n />\n }\n @case ('date') {\n <si-filtered-search-date-value\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('multi-select') {\n <si-filtered-search-multi-select\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [itemCountText]=\"itemCountText()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('typeahead') {\n <si-filtered-search-typeahead\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n }\n <div class=\"pill px-0 ms-n1\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost focus-inside\"\n [attr.aria-label]=\"clearButtonLabel() | translate\"\n [disabled]=\"disabled()\"\n (click)=\"clear()\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n</div>\n", styles: [":host-context(.disabled) input,:host-context(.disabled) ::placeholder{color:var(--element-text-disabled)}.pill{background:var(--filter-pill-background-color)}.criteria{display:flex;cursor:pointer;white-space:nowrap;border-radius:12px}.criteria.invalid-criterion{box-shadow:0 0 0 1px var(--element-status-danger)}.criteria:not(.invalid-criterion) .invalid-criterion{box-shadow:inset 0 0 0 1px var(--element-status-danger)}.criteria.disabled{cursor:inherit;pointer-events:none}.operator-input{background:var(--filter-pill-background-color);padding-inline:4px;inline-size:calc(1ch + 8px)}input{background:transparent}\n"], dependencies: [{ kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: SiTypeaheadDirective, selector: "[siTypeahead]", inputs: ["siTypeahead", "typeaheadProcess", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadOptionsLimit", "typeaheadScrollableAdditionalHeight", "typeaheadAutoSelectIndex", "typeaheadCloseOnEsc", "typeaheadClearValueOnSelect", "typeaheadWaitMs", "typeaheadMinLength", "typeaheadOptionField", "typeaheadMultiSelect", "typeaheadTokenize", "typeaheadMatchAllTokens", "typeaheadItemTemplate", "typeaheadSkipSortingMatches", "typeaheadAutocompleteListLabel", "typeaheadFullWidth", "typeaheadCreateOption"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange", "typeaheadOnCreateOption"], exportAs: ["si-typeahead"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SiFilteredSearchDateValueComponent, selector: "si-filtered-search-date-value" }, { kind: "component", type: SiFilteredSearchFreeTextComponent, selector: "si-filtered-search-free-text" }, { kind: "component", type: SiFilteredSearchTypeaheadComponent, selector: "si-filtered-search-typeahead" }, { kind: "component", type: SiFilteredSearchMultiSelectComponent, selector: "si-filtered-search-multi-select", inputs: ["itemCountText"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
574
569
|
}
|
|
575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchValueComponent, decorators: [{
|
|
576
571
|
type: Component,
|
|
577
572
|
args: [{ selector: 'si-filtered-search-value', imports: [
|
|
578
573
|
CdkMonitorFocus,
|
|
@@ -584,8 +579,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
584
579
|
SiFilteredSearchTypeaheadComponent,
|
|
585
580
|
SiFilteredSearchMultiSelectComponent,
|
|
586
581
|
SiIconComponent
|
|
587
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n cdkMonitorSubtreeFocus\n class=\"criteria pill-group\"\n [class.disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled()\"\n [class.invalid-criterion]=\"invalidCriterion()\"\n (cdkFocusChange)=\"focusChange($event)\"\n>\n @if (type() !== 'free-text') {\n <div class=\"pill pill-interactive criterion-label si-h5\" (click)=\"edit()\">\n {{ definition().label | translate }}\n </div>\n }\n @if (definition().operators?.length) {\n <div class=\"pill pill-interactive px-0 criterion-operator-section\">\n <!-- criterion operator input -->\n @if (active()) {\n <input\n #operatorInput\n type=\"text\"\n class=\"focus-inside operator-input py-0 border-0\"\n [siTypeahead]=\"definition().operators!\"\n [typeaheadProcess]=\"false\"\n [typeaheadAutoSelectIndex]=\"selectedOperatorIndex()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"0\"\n [readOnly]=\"false\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [attr.size]=\"longestOperatorLength()\"\n [ngModel]=\"value().operator\"\n (ngModelChange)=\"operatorUpdate($event)\"\n (keydown.backspace)=\"operatorBackspace()\"\n (keydown.enter)=\"operatorEnter()\"\n (typeaheadOnSelect)=\"operatorEnter()\"\n (blur)=\"operatorBlur()\"\n />\n } @else {\n <!-- criterion operator field -->\n <div\n class=\"criterion-operator-text px-2 focus-inside\"\n [tabindex]=\"!disabled() ? 0 : -1\"\n (keydown.enter)=\"edit('operator')\"\n (click)=\"edit('operator')\"\n >\n {{ value().operator }}\n </div>\n }\n </div>\n }\n @switch (type()) {\n @case ('free-text') {\n <si-filtered-search-free-text\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n (activeChange)=\"freeTextActiveChange($event)\"\n />\n }\n @case ('date') {\n <si-filtered-search-date-value\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('multi-select') {\n <si-filtered-search-multi-select\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [itemCountText]=\"itemCountText()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [
|
|
588
|
-
}] });
|
|
582
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n cdkMonitorSubtreeFocus\n class=\"criteria pill-group\"\n [class.disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled()\"\n [class.invalid-criterion]=\"invalidCriterion()\"\n (cdkFocusChange)=\"focusChange($event)\"\n>\n @if (type() !== 'free-text') {\n <div class=\"pill pill-interactive criterion-label si-h5\" (click)=\"edit()\">\n {{ definition().label | translate }}\n </div>\n }\n @if (definition().operators?.length) {\n <div class=\"pill pill-interactive px-0 criterion-operator-section\">\n <!-- criterion operator input -->\n @if (active()) {\n <input\n #operatorInput\n type=\"text\"\n class=\"focus-inside operator-input py-0 border-0\"\n [siTypeahead]=\"definition().operators!\"\n [typeaheadProcess]=\"false\"\n [typeaheadAutoSelectIndex]=\"selectedOperatorIndex()\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"0\"\n [readOnly]=\"false\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [attr.size]=\"longestOperatorLength()\"\n [ngModel]=\"value().operator\"\n (ngModelChange)=\"operatorUpdate($event)\"\n (keydown.backspace)=\"operatorBackspace()\"\n (keydown.enter)=\"operatorEnter()\"\n (typeaheadOnSelect)=\"operatorEnter()\"\n (blur)=\"operatorBlur()\"\n />\n } @else {\n <!-- criterion operator field -->\n <div\n class=\"criterion-operator-text px-2 focus-inside\"\n [tabindex]=\"!disabled() ? 0 : -1\"\n (keydown.enter)=\"edit('operator')\"\n (click)=\"edit('operator')\"\n >\n {{ value().operator }}\n </div>\n }\n </div>\n }\n @switch (type()) {\n @case ('free-text') {\n <si-filtered-search-free-text\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n (activeChange)=\"freeTextActiveChange($event)\"\n />\n }\n @case ('date') {\n <si-filtered-search-date-value\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('multi-select') {\n <si-filtered-search-multi-select\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [itemCountText]=\"itemCountText()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n @case ('typeahead') {\n <si-filtered-search-typeahead\n [definition]=\"definition()\"\n [disabled]=\"disabled()\"\n [searchLabel]=\"searchLabel()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [(active)]=\"active\"\n [(criterionValue)]=\"value\"\n (backspaceOverflow)=\"backspaceOverflow()\"\n (editValue)=\"edit('value')\"\n (submitValue)=\"submitCriterion.emit($event)\"\n />\n }\n }\n <div class=\"pill px-0 ms-n1\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost focus-inside\"\n [attr.aria-label]=\"clearButtonLabel() | translate\"\n [disabled]=\"disabled()\"\n (click)=\"clear()\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n</div>\n", styles: [":host-context(.disabled) input,:host-context(.disabled) ::placeholder{color:var(--element-text-disabled)}.pill{background:var(--filter-pill-background-color)}.criteria{display:flex;cursor:pointer;white-space:nowrap;border-radius:12px}.criteria.invalid-criterion{box-shadow:0 0 0 1px var(--element-status-danger)}.criteria:not(.invalid-criterion) .invalid-criterion{box-shadow:inset 0 0 0 1px var(--element-status-danger)}.criteria.disabled{cursor:inherit;pointer-events:none}.operator-input{background:var(--filter-pill-background-color);padding-inline:4px;inline-size:calc(1ch + 8px)}input{background:transparent}\n"] }]
|
|
583
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }, { type: i0.Output, args: ["valueChange"] }], definition: [{ type: i0.Input, args: [{ isSignal: true, alias: "definition", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: true }] }], onlySelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlySelectValue", required: true }] }], maxCriteriaOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxCriteriaOptions", required: true }] }], optionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsInScrollableView", required: true }] }], clearButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButtonLabel", required: true }] }], lazyValueProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyValueProvider", required: false }] }], searchDebounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchDebounceTime", required: true }] }], itemCountText: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemCountText", required: true }] }], disableSelectionByColonAndSemicolon: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableSelectionByColonAndSemicolon", required: true }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: true }] }], invalidCriterion: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidCriterion", required: true }] }], isStrictOrOnlySelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "isStrictOrOnlySelectValue", required: true }] }], editOnCreation: [{ type: i0.Input, args: [{ isSignal: true, alias: "editOnCreation", required: true }] }], deleteCriterion: [{ type: i0.Output, args: ["deleteCriterion"] }], submitCriterion: [{ type: i0.Output, args: ["submitCriterion"] }], operatorInput: [{ type: i0.ViewChild, args: ['operatorInput', { isSignal: true }] }], valueInput: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SiFilteredSearchValueBase), { isSignal: true }] }] } });
|
|
589
584
|
|
|
590
585
|
/**
|
|
591
586
|
* Copyright (c) Siemens 2016 - 2025
|
|
@@ -605,59 +600,49 @@ class SiFilteredSearchComponent {
|
|
|
605
600
|
*
|
|
606
601
|
* @defaultValue false
|
|
607
602
|
*/
|
|
608
|
-
doSearchOnInputChange = input(false, {
|
|
609
|
-
transform: booleanAttribute
|
|
610
|
-
});
|
|
603
|
+
doSearchOnInputChange = input(false, { ...(ngDevMode ? { debugName: "doSearchOnInputChange" } : {}), transform: booleanAttribute });
|
|
611
604
|
/**
|
|
612
605
|
* In addition to lazy loaded value, you can also lazy load the criteria itself
|
|
613
606
|
*/
|
|
614
|
-
lazyCriterionProvider = input();
|
|
607
|
+
lazyCriterionProvider = input(...(ngDevMode ? [undefined, { debugName: "lazyCriterionProvider" }] : []));
|
|
615
608
|
/**
|
|
616
609
|
* In many cases, your application defines the criteria, but the values need
|
|
617
610
|
* to be loaded from a server. In this case you can provide a function that
|
|
618
611
|
* returns the possible criterion options as an Observable.
|
|
619
612
|
*/
|
|
620
|
-
lazyValueProvider = input();
|
|
613
|
+
lazyValueProvider = input(...(ngDevMode ? [undefined, { debugName: "lazyValueProvider" }] : []));
|
|
621
614
|
/**
|
|
622
615
|
* Disable any interactivity.
|
|
623
616
|
*
|
|
624
617
|
* @defaultValue false
|
|
625
618
|
*/
|
|
626
|
-
disabled = input(false, { transform: booleanAttribute });
|
|
627
|
-
/**
|
|
628
|
-
* Do not allow changes. Search can still be triggered.
|
|
629
|
-
*
|
|
630
|
-
* @deprecated Use {@link disabled} instead.
|
|
631
|
-
*
|
|
632
|
-
* @defaultValue false
|
|
633
|
-
*/
|
|
634
|
-
readonly = input(false, { transform: booleanAttribute });
|
|
619
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
635
620
|
/**
|
|
636
621
|
* Limit criteria to the predefined ones.
|
|
637
622
|
*
|
|
638
623
|
* @defaultValue false
|
|
639
624
|
*/
|
|
640
|
-
strictCriterion = input(false, { transform: booleanAttribute });
|
|
625
|
+
strictCriterion = input(false, { ...(ngDevMode ? { debugName: "strictCriterion" } : {}), transform: booleanAttribute });
|
|
641
626
|
/**
|
|
642
627
|
* Limit criterion options to the predefined ones. `[strictValue]`
|
|
643
628
|
* enforces `[strictCriterion]` to true automatically.
|
|
644
629
|
*
|
|
645
630
|
* @defaultValue false
|
|
646
631
|
*/
|
|
647
|
-
strictValue = input(false, { transform: booleanAttribute });
|
|
632
|
+
strictValue = input(false, { ...(ngDevMode ? { debugName: "strictValue" } : {}), transform: booleanAttribute });
|
|
648
633
|
/**
|
|
649
634
|
* Limit criterion options to the predefined ones and prevent typing. `[onlySelectValue]`
|
|
650
635
|
* enforces `[strictValue]` and `[strictCriterion]` to true automatically.
|
|
651
636
|
*
|
|
652
637
|
* @defaultValue false
|
|
653
638
|
*/
|
|
654
|
-
onlySelectValue = input(false, { transform: booleanAttribute });
|
|
639
|
+
onlySelectValue = input(false, { ...(ngDevMode ? { debugName: "onlySelectValue" } : {}), transform: booleanAttribute });
|
|
655
640
|
/**
|
|
656
641
|
* Custom debounce time for lazy loading of criteria data.
|
|
657
642
|
*
|
|
658
643
|
* @defaultValue 500
|
|
659
644
|
*/
|
|
660
|
-
lazyLoadingDebounceTime = input(500);
|
|
645
|
+
lazyLoadingDebounceTime = input(500, ...(ngDevMode ? [{ debugName: "lazyLoadingDebounceTime" }] : []));
|
|
661
646
|
/**
|
|
662
647
|
* Custom debounce time (in mills) to delay the search emission.
|
|
663
648
|
* (Default is 0 as in most cases a users manually triggers a search.
|
|
@@ -665,19 +650,19 @@ class SiFilteredSearchComponent {
|
|
|
665
650
|
*
|
|
666
651
|
* @defaultValue 0
|
|
667
652
|
*/
|
|
668
|
-
searchDebounceTime = input(0);
|
|
653
|
+
searchDebounceTime = input(0, ...(ngDevMode ? [{ debugName: "searchDebounceTime" }] : []));
|
|
669
654
|
/**
|
|
670
655
|
* The placeholder for input field.
|
|
671
656
|
*
|
|
672
657
|
* @defaultValue ''
|
|
673
658
|
*/
|
|
674
|
-
placeholder = input('');
|
|
659
|
+
placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
|
|
675
660
|
/**
|
|
676
661
|
* Defines the number of criteria, criteria values and operators visible at once.
|
|
677
662
|
*
|
|
678
663
|
* @defaultValue 10
|
|
679
664
|
*/
|
|
680
|
-
optionsInScrollableView = input(10);
|
|
665
|
+
optionsInScrollableView = input(10, ...(ngDevMode ? [{ debugName: "optionsInScrollableView" }] : []));
|
|
681
666
|
/**
|
|
682
667
|
* The current selected search criteria and entered search text.
|
|
683
668
|
*
|
|
@@ -686,21 +671,19 @@ class SiFilteredSearchComponent {
|
|
|
686
671
|
* { criteria: [], value: '' }
|
|
687
672
|
* ```
|
|
688
673
|
*/
|
|
689
|
-
searchCriteria = model({ criteria: [], value: '' });
|
|
674
|
+
searchCriteria = model({ criteria: [], value: '' }, ...(ngDevMode ? [{ debugName: "searchCriteria" }] : []));
|
|
690
675
|
/**
|
|
691
676
|
* Predefine criteria options.
|
|
692
677
|
*
|
|
693
678
|
* @defaultValue []
|
|
694
679
|
*/
|
|
695
|
-
criteria = input([]);
|
|
680
|
+
criteria = input([], ...(ngDevMode ? [{ debugName: "criteria" }] : []));
|
|
696
681
|
/**
|
|
697
682
|
* Opt-in to search for each criterion only once.
|
|
698
683
|
*
|
|
699
684
|
* @defaultValue false
|
|
700
685
|
*/
|
|
701
|
-
exclusiveCriteria = input(false, {
|
|
702
|
-
transform: booleanAttribute
|
|
703
|
-
});
|
|
686
|
+
exclusiveCriteria = input(false, { ...(ngDevMode ? { debugName: "exclusiveCriteria" } : {}), transform: booleanAttribute });
|
|
704
687
|
/**
|
|
705
688
|
* Limit the number of possible criteria. The default is undefined so that any number of criteria can be used.
|
|
706
689
|
* For example, setting the value to 1 let you only select one criterion that you need to remove before being
|
|
@@ -708,13 +691,13 @@ class SiFilteredSearchComponent {
|
|
|
708
691
|
*
|
|
709
692
|
* @defaultValue undefined
|
|
710
693
|
*/
|
|
711
|
-
maxCriteria = input(undefined);
|
|
694
|
+
maxCriteria = input(undefined, ...(ngDevMode ? [{ debugName: "maxCriteria" }] : []));
|
|
712
695
|
/**
|
|
713
696
|
* Defines the maximum options within one criterion. The default is 20 and 0 means unlimited.
|
|
714
697
|
*
|
|
715
698
|
* @defaultValue 20
|
|
716
699
|
*/
|
|
717
|
-
maxCriteriaOptions = input(20);
|
|
700
|
+
maxCriteriaOptions = input(20, ...(ngDevMode ? [{ debugName: "maxCriteriaOptions" }] : []));
|
|
718
701
|
/**
|
|
719
702
|
* Search input aria label, Needed by a11y
|
|
720
703
|
*
|
|
@@ -723,7 +706,7 @@ class SiFilteredSearchComponent {
|
|
|
723
706
|
* t(() => $localize`:@@SI_FILTERED_SEARCH.SEARCH:Search`)
|
|
724
707
|
* ```
|
|
725
708
|
*/
|
|
726
|
-
searchLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.SEARCH:Search`));
|
|
709
|
+
searchLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.SEARCH:Search`), ...(ngDevMode ? [{ debugName: "searchLabel" }] : []));
|
|
727
710
|
/**
|
|
728
711
|
* Clear button aria label. Needed for a11y
|
|
729
712
|
*
|
|
@@ -732,7 +715,7 @@ class SiFilteredSearchComponent {
|
|
|
732
715
|
* t(() => $localize`:@@SI_FILTERED_SEARCH.CLEAR:Clear`)
|
|
733
716
|
* ```
|
|
734
717
|
*/
|
|
735
|
-
clearButtonLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.CLEAR:Clear`));
|
|
718
|
+
clearButtonLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.CLEAR:Clear`), ...(ngDevMode ? [{ debugName: "clearButtonLabel" }] : []));
|
|
736
719
|
/**
|
|
737
720
|
* The accessible label of the search button.
|
|
738
721
|
*
|
|
@@ -741,7 +724,7 @@ class SiFilteredSearchComponent {
|
|
|
741
724
|
* t(() => $localize`:@@SI_FILTERED_SEARCH.SUBMIT_BUTTON:Submit search`)
|
|
742
725
|
* ```
|
|
743
726
|
*/
|
|
744
|
-
submitButtonLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.SUBMIT_BUTTON:Submit search`));
|
|
727
|
+
submitButtonLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.SUBMIT_BUTTON:Submit search`), ...(ngDevMode ? [{ debugName: "submitButtonLabel" }] : []));
|
|
745
728
|
/**
|
|
746
729
|
* Items count text appended to the count in case of multi-selection of values.
|
|
747
730
|
* Translation key, `{{itemCount}}` in the translation will be replaced with the actual value.
|
|
@@ -751,25 +734,25 @@ class SiFilteredSearchComponent {
|
|
|
751
734
|
* t(() => $localize`:@@SI_FILTERED_SEARCH.ITEM_COUNT:{{itemCount}} items`)
|
|
752
735
|
* ```
|
|
753
736
|
*/
|
|
754
|
-
itemCountText = input(t(() => $localize `:@@SI_FILTERED_SEARCH.ITEM_COUNT:{{itemCount}} items`));
|
|
737
|
+
itemCountText = input(t(() => $localize `:@@SI_FILTERED_SEARCH.ITEM_COUNT:{{itemCount}} items`), ...(ngDevMode ? [{ debugName: "itemCountText" }] : []));
|
|
755
738
|
/**
|
|
756
739
|
* Color variant to determine component background
|
|
757
740
|
*
|
|
758
741
|
* @defaultValue 'base-1'
|
|
759
742
|
*/
|
|
760
|
-
colorVariant = input('base-1');
|
|
743
|
+
colorVariant = input('base-1', ...(ngDevMode ? [{ debugName: "colorVariant" }] : []));
|
|
761
744
|
/**
|
|
762
745
|
* Disables the free text search to only use the criterion for filtering.
|
|
763
746
|
*
|
|
764
747
|
* @defaultValue false
|
|
765
748
|
*/
|
|
766
|
-
disableFreeTextSearch = input(false, { transform: booleanAttribute });
|
|
749
|
+
disableFreeTextSearch = input(false, { ...(ngDevMode ? { debugName: "disableFreeTextSearch" } : {}), transform: booleanAttribute });
|
|
767
750
|
/**
|
|
768
751
|
* Limit on the number of criteria/criteria value to be displayed by the typeahead
|
|
769
752
|
*
|
|
770
753
|
* @defaultValue 20
|
|
771
754
|
*/
|
|
772
|
-
typeaheadOptionsLimit = input(20);
|
|
755
|
+
typeaheadOptionsLimit = input(20, ...(ngDevMode ? [{ debugName: "typeaheadOptionsLimit" }] : []));
|
|
773
756
|
/**
|
|
774
757
|
* By default, the Filtered Search will treat `:` as a special character
|
|
775
758
|
* to submit the current input in the freetext and immediately create a criterion.
|
|
@@ -777,7 +760,7 @@ class SiFilteredSearchComponent {
|
|
|
777
760
|
*
|
|
778
761
|
* @defaultValue false
|
|
779
762
|
*/
|
|
780
|
-
disableSelectionByColonAndSemicolon = input(false, { transform: booleanAttribute });
|
|
763
|
+
disableSelectionByColonAndSemicolon = input(false, { ...(ngDevMode ? { debugName: "disableSelectionByColonAndSemicolon" } : {}), transform: booleanAttribute });
|
|
781
764
|
/**
|
|
782
765
|
* Criterion definition for free-text pills.
|
|
783
766
|
* When set, free-text values will be added as a pill with this criterion.
|
|
@@ -789,7 +772,7 @@ class SiFilteredSearchComponent {
|
|
|
789
772
|
*
|
|
790
773
|
* @experimental
|
|
791
774
|
*/
|
|
792
|
-
freeTextCriterion = input();
|
|
775
|
+
freeTextCriterion = input(...(ngDevMode ? [undefined, { debugName: "freeTextCriterion" }] : []));
|
|
793
776
|
/**
|
|
794
777
|
* The value to be shown for creating free-text pills.
|
|
795
778
|
* Use the `{{query}}` placeholder to show the user input in the label.
|
|
@@ -802,7 +785,7 @@ class SiFilteredSearchComponent {
|
|
|
802
785
|
*
|
|
803
786
|
* @experimental
|
|
804
787
|
*/
|
|
805
|
-
searchForFreeTextLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT:Search for "{{query}}"`));
|
|
788
|
+
searchForFreeTextLabel = input(t(() => $localize `:@@SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT:Search for "{{query}}"`), ...(ngDevMode ? [{ debugName: "searchForFreeTextLabel" }] : []));
|
|
806
789
|
/**
|
|
807
790
|
* The interceptor is called when the list of criteria is shown as soon as the user starts typing in the input field.
|
|
808
791
|
* The interceptor's {@link DisplayedCriteriaEventArgs.allow} method can be used to filter the list of displayed criteria.
|
|
@@ -825,7 +808,7 @@ class SiFilteredSearchComponent {
|
|
|
825
808
|
interceptDisplayedCriteria = output();
|
|
826
809
|
freeTextInputElement = viewChild.required('freeTextInputElement');
|
|
827
810
|
scrollContainer = viewChild.required('scrollContainer', { read: ElementRef });
|
|
828
|
-
valueComponents = viewChildren(SiFilteredSearchValueComponent);
|
|
811
|
+
valueComponents = viewChildren(SiFilteredSearchValueComponent, ...(ngDevMode ? [{ debugName: "valueComponents" }] : []));
|
|
829
812
|
dataSource;
|
|
830
813
|
autoEditCriteria = false;
|
|
831
814
|
values = [];
|
|
@@ -846,17 +829,17 @@ class SiFilteredSearchComponent {
|
|
|
846
829
|
* Every time a criteria gain the focus we have to reset the cache to call the interceptor.
|
|
847
830
|
*/
|
|
848
831
|
allowedCriteriaCache;
|
|
849
|
-
allowFreeTextCache = signal(true);
|
|
832
|
+
allowFreeTextCache = signal(true, ...(ngDevMode ? [{ debugName: "allowFreeTextCache" }] : []));
|
|
850
833
|
// Angular also calls ngOnChanges if we emitted a change and then two-way-databinding writes back our own change.
|
|
851
834
|
// We use this to ensure that we do not write our own change back to the input.
|
|
852
835
|
lastEmittedSearchCriteria;
|
|
853
836
|
isStrictOrOnlySelectValue = computed(() => {
|
|
854
837
|
return this.strictValue() || this.onlySelectValue();
|
|
855
|
-
});
|
|
838
|
+
}, ...(ngDevMode ? [{ debugName: "isStrictOrOnlySelectValue" }] : []));
|
|
856
839
|
strictCriterionOrValue = computed(() => {
|
|
857
840
|
return this.strictCriterion() || this.isStrictOrOnlySelectValue();
|
|
858
|
-
});
|
|
859
|
-
lazyLoadedCriteria = signal(undefined);
|
|
841
|
+
}, ...(ngDevMode ? [{ debugName: "strictCriterionOrValue" }] : []));
|
|
842
|
+
lazyLoadedCriteria = signal(undefined, ...(ngDevMode ? [{ debugName: "lazyLoadedCriteria" }] : []));
|
|
860
843
|
loadedCriteria = computed(() => {
|
|
861
844
|
const lazyLoadedCriteria = this.lazyLoadedCriteria();
|
|
862
845
|
if (lazyLoadedCriteria) {
|
|
@@ -865,7 +848,7 @@ class SiFilteredSearchComponent {
|
|
|
865
848
|
else {
|
|
866
849
|
return this.criteria() ?? [];
|
|
867
850
|
}
|
|
868
|
-
});
|
|
851
|
+
}, ...(ngDevMode ? [{ debugName: "loadedCriteria" }] : []));
|
|
869
852
|
internalFreeTextCriterion = computed(() => {
|
|
870
853
|
const freeTextDef = this.freeTextCriterion();
|
|
871
854
|
if (!freeTextDef) {
|
|
@@ -877,8 +860,7 @@ class SiFilteredSearchComponent {
|
|
|
877
860
|
translatedLabel: freeTextDef.label ?? freeTextDef.name,
|
|
878
861
|
type: 'free-text'
|
|
879
862
|
};
|
|
880
|
-
});
|
|
881
|
-
isReadOnly = computed(() => this.readonly() || this.disabled());
|
|
863
|
+
}, ...(ngDevMode ? [{ debugName: "internalFreeTextCriterion" }] : []));
|
|
882
864
|
constructor() {
|
|
883
865
|
this.dataSource = this.typeaheadInputChange.pipe(switchMap(value => {
|
|
884
866
|
if (this.lazyCriterionProvider()) {
|
|
@@ -929,7 +911,7 @@ class SiFilteredSearchComponent {
|
|
|
929
911
|
}
|
|
930
912
|
// Check if this matches the freeTextCriterion
|
|
931
913
|
const freeTextDef = this.internalFreeTextCriterion();
|
|
932
|
-
if (freeTextDef
|
|
914
|
+
if (freeTextDef?.name === criterionValue.name) {
|
|
933
915
|
return freeTextDef;
|
|
934
916
|
}
|
|
935
917
|
return undefined;
|
|
@@ -942,8 +924,8 @@ class SiFilteredSearchComponent {
|
|
|
942
924
|
const config = this.findCriterionConfig(c) ??
|
|
943
925
|
{
|
|
944
926
|
name: c.name,
|
|
945
|
-
label: c.
|
|
946
|
-
translatedLabel: c.
|
|
927
|
+
label: c.name,
|
|
928
|
+
translatedLabel: c.name
|
|
947
929
|
};
|
|
948
930
|
let value = c.value ?? '';
|
|
949
931
|
// Fix input, in case the user provided the value as string for the multi-select use case.
|
|
@@ -974,7 +956,7 @@ class SiFilteredSearchComponent {
|
|
|
974
956
|
* Deletes all currently selected criteria and effectively resets the filtered search.
|
|
975
957
|
*/
|
|
976
958
|
deleteAllCriteria(event) {
|
|
977
|
-
if (this.
|
|
959
|
+
if (this.disabled()) {
|
|
978
960
|
return;
|
|
979
961
|
}
|
|
980
962
|
event?.stopPropagation();
|
|
@@ -986,8 +968,8 @@ class SiFilteredSearchComponent {
|
|
|
986
968
|
this.typeaheadInputChange.next(this.searchValue);
|
|
987
969
|
this.submit();
|
|
988
970
|
}
|
|
989
|
-
deleteCriterion(
|
|
990
|
-
if (this.
|
|
971
|
+
deleteCriterion(index, event) {
|
|
972
|
+
if (this.disabled()) {
|
|
991
973
|
return;
|
|
992
974
|
}
|
|
993
975
|
// Close any active overlays before deleting the criterion
|
|
@@ -997,7 +979,7 @@ class SiFilteredSearchComponent {
|
|
|
997
979
|
component.closeOverlay();
|
|
998
980
|
});
|
|
999
981
|
this.cdRef.detectChanges();
|
|
1000
|
-
this.values = this.values.filter(
|
|
982
|
+
this.values = this.values.filter((_, i) => i !== index);
|
|
1001
983
|
this.emitChangeEvent();
|
|
1002
984
|
this.allowedCriteriaCache = undefined;
|
|
1003
985
|
if (this.values.length !== index) {
|
|
@@ -1225,10 +1207,10 @@ class SiFilteredSearchComponent {
|
|
|
1225
1207
|
this.allowedCriteriaCache = undefined;
|
|
1226
1208
|
this.emitChangeEvent();
|
|
1227
1209
|
}
|
|
1228
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1229
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiFilteredSearchComponent, isStandalone: true, selector: "si-filtered-search", inputs: { doSearchOnInputChange: { classPropertyName: "doSearchOnInputChange", publicName: "doSearchOnInputChange", isSignal: true, isRequired: false, transformFunction: null }, lazyCriterionProvider: { classPropertyName: "lazyCriterionProvider", publicName: "lazyCriterionProvider", isSignal: true, isRequired: false, transformFunction: null }, lazyValueProvider: { classPropertyName: "lazyValueProvider", publicName: "lazyValueProvider", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, strictCriterion: { classPropertyName: "strictCriterion", publicName: "strictCriterion", isSignal: true, isRequired: false, transformFunction: null }, strictValue: { classPropertyName: "strictValue", publicName: "strictValue", isSignal: true, isRequired: false, transformFunction: null }, onlySelectValue: { classPropertyName: "onlySelectValue", publicName: "onlySelectValue", isSignal: true, isRequired: false, transformFunction: null }, lazyLoadingDebounceTime: { classPropertyName: "lazyLoadingDebounceTime", publicName: "lazyLoadingDebounceTime", isSignal: true, isRequired: false, transformFunction: null }, searchDebounceTime: { classPropertyName: "searchDebounceTime", publicName: "searchDebounceTime", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, optionsInScrollableView: { classPropertyName: "optionsInScrollableView", publicName: "optionsInScrollableView", isSignal: true, isRequired: false, transformFunction: null }, searchCriteria: { classPropertyName: "searchCriteria", publicName: "searchCriteria", isSignal: true, isRequired: false, transformFunction: null }, criteria: { classPropertyName: "criteria", publicName: "criteria", isSignal: true, isRequired: false, transformFunction: null }, exclusiveCriteria: { classPropertyName: "exclusiveCriteria", publicName: "exclusiveCriteria", isSignal: true, isRequired: false, transformFunction: null }, maxCriteria: { classPropertyName: "maxCriteria", publicName: "maxCriteria", isSignal: true, isRequired: false, transformFunction: null }, maxCriteriaOptions: { classPropertyName: "maxCriteriaOptions", publicName: "maxCriteriaOptions", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, clearButtonLabel: { classPropertyName: "clearButtonLabel", publicName: "clearButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, submitButtonLabel: { classPropertyName: "submitButtonLabel", publicName: "submitButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, itemCountText: { classPropertyName: "itemCountText", publicName: "itemCountText", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, disableFreeTextSearch: { classPropertyName: "disableFreeTextSearch", publicName: "disableFreeTextSearch", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsLimit: { classPropertyName: "typeaheadOptionsLimit", publicName: "typeaheadOptionsLimit", isSignal: true, isRequired: false, transformFunction: null }, disableSelectionByColonAndSemicolon: { classPropertyName: "disableSelectionByColonAndSemicolon", publicName: "disableSelectionByColonAndSemicolon", isSignal: true, isRequired: false, transformFunction: null }, freeTextCriterion: { classPropertyName: "freeTextCriterion", publicName: "freeTextCriterion", isSignal: true, isRequired: false, transformFunction: null }, searchForFreeTextLabel: { classPropertyName: "searchForFreeTextLabel", publicName: "searchForFreeTextLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { doSearch: "doSearch", searchCriteria: "searchCriteriaChange", interceptDisplayedCriteria: "interceptDisplayedCriteria" }, host: { properties: { "class.disabled": "disabled()", "class.dark-background": "colorVariant() === 'base-0'" } }, viewQueries: [{ propertyName: "freeTextInputElement", first: true, predicate: ["freeTextInputElement"], descendants: true, isSignal: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "valueComponents", predicate: SiFilteredSearchValueComponent, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #scrollContainer\n class=\"search-container d-flex align-items-center overflow-auto py-2 w-100 ps-2 pe-2\"\n>\n @for (criterion of values; track criterion) {\n <si-filtered-search-value\n [editOnCreation]=\"autoEditCriteria\"\n [definition]=\"criterion.config\"\n [value]=\"criterion.value\"\n [invalidCriterion]=\"!validateCriterionLabel(criterion.config)\"\n [disabled]=\"disabled()\"\n [clearButtonLabel]=\"clearButtonLabel()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [itemCountText]=\"itemCountText()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [readonly]=\"readonly()\"\n [searchLabel]=\"searchLabel()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n (submitCriterion)=\"focusNext($index, $event)\"\n (deleteCriterion)=\"deleteCriterion(criterion.value, $index, $event)\"\n (valueChange)=\"valueChange($event, criterion)\"\n />\n }\n <!-- criterion input -->\n <input\n #freeTextInputElement\n type=\"text\"\n class=\"value-input ps-2 me-2 flex-grow-1\"\n typeaheadOptionField=\"translatedLabel\"\n [siTypeahead]=\"dataSource\"\n [typeaheadMinLength]=\"readonly() ? 1 : 0\"\n [typeaheadOptionsLimit]=\"typeaheadOptionsLimit()\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [typeaheadAutoSelectIndex]=\"searchValue ? 0 : -1\"\n [typeaheadCreateOption]=\"\n freeTextCriterion() &&\n (!maxCriteria() || values.length < maxCriteria()!) &&\n allowFreeTextCache()\n ? searchForFreeTextLabel()\n : undefined\n \"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [value]=\"searchValue\"\n (focus)=\"freeTextFocus()\"\n (input)=\"freeTextInput($event)\"\n (blur)=\"freeTextBlur()\"\n (keydown.backspace)=\"freeTextBackspace($event)\"\n (keydown.enter)=\"submit()\"\n (typeaheadOnSelect)=\"typeaheadOnSelectCriterion($event.option)\"\n (typeaheadOnCreateOption)=\"createFreeTextPill($event)\"\n />\n</div>\n<!-- clear all searchCriteria -->\n@if ((values.length || searchValue.length) && !readonly()) {\n <div class=\"clear-button-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-xs btn-ghost mx-2\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"clearButtonLabel() | translate\"\n (click)=\"deleteAllCriteria($event)\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n}\n\n@if (!disabled()) {\n <button\n type=\"button\"\n class=\"search-button btn btn-circle btn-xs btn-secondary focus-inside\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"submitButtonLabel() | translate\"\n (click)=\"submit()\"\n >\n <si-icon [icon]=\"icons.elementSearch\" />\n </button>\n}\n", styles: [":host{--search-bar-icon-color: var(--element-text-primary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1);--filter-search-background-color: var(--element-base-1);--filter-pill-background-color: var(--element-base-4);display:flex;align-items:center;line-height:24px;min-inline-size:0}:host.dark-background{--input-background-color: var(--element-base-4);--input-background-hover-color: var(--element-ui-4);--filter-search-background-color: var(--element-base-4);--filter-pill-background-color: var(--element-base-1)}:host.disabled{color:var(--element-text-disabled)}:host.disabled input,:host.disabled ::placeholder{color:var(--element-text-disabled)}:host si-filtered-search-value+input::placeholder{color:transparent}.search-container{border-start-start-radius:4px;border-end-start-radius:4px;background-color:var(--filter-search-background-color);gap:4px}input{background:transparent;border:0;padding-block:0}input:hover::placeholder{opacity:1}:host(.disabled) input::placeholder{opacity:var(--element-action-disabled-opacity)}.clear-button-container{display:flex;align-items:flex-start;align-self:stretch;padding-block:4px;background-color:var(--filter-search-background-color)}.search-button{align-self:stretch;background-color:var(--filter-search-background-color);border:0;border-radius:0;border-end-end-radius:4px;border-start-end-radius:4px;margin-block:0;margin-inline:1px 0;block-size:auto;inline-size:auto;padding-inline:4px!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiTypeaheadDirective, selector: "[siTypeahead]", inputs: ["siTypeahead", "typeaheadProcess", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadOptionsLimit", "typeaheadScrollableAdditionalHeight", "typeaheadAutoSelectIndex", "typeaheadCloseOnEsc", "typeaheadClearValueOnSelect", "typeaheadWaitMs", "typeaheadMinLength", "typeaheadOptionField", "typeaheadMultiSelect", "typeaheadTokenize", "typeaheadMatchAllTokens", "typeaheadItemTemplate", "typeaheadSkipSortingMatches", "typeaheadAutocompleteListLabel", "typeaheadFullWidth", "typeaheadCreateOption"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange", "typeaheadOnCreateOption"], exportAs: ["si-typeahead"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "component", type: SiFilteredSearchValueComponent, selector: "si-filtered-search-value", inputs: ["value", "definition", "disabled", "readonly", "onlySelectValue", "maxCriteriaOptions", "optionsInScrollableView", "clearButtonLabel", "lazyValueProvider", "searchDebounceTime", "itemCountText", "disableSelectionByColonAndSemicolon", "searchLabel", "invalidCriterion", "isStrictOrOnlySelectValue", "editOnCreation"], outputs: ["valueChange", "deleteCriterion", "submitCriterion"] }] });
|
|
1210
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1211
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFilteredSearchComponent, isStandalone: true, selector: "si-filtered-search", inputs: { doSearchOnInputChange: { classPropertyName: "doSearchOnInputChange", publicName: "doSearchOnInputChange", isSignal: true, isRequired: false, transformFunction: null }, lazyCriterionProvider: { classPropertyName: "lazyCriterionProvider", publicName: "lazyCriterionProvider", isSignal: true, isRequired: false, transformFunction: null }, lazyValueProvider: { classPropertyName: "lazyValueProvider", publicName: "lazyValueProvider", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, strictCriterion: { classPropertyName: "strictCriterion", publicName: "strictCriterion", isSignal: true, isRequired: false, transformFunction: null }, strictValue: { classPropertyName: "strictValue", publicName: "strictValue", isSignal: true, isRequired: false, transformFunction: null }, onlySelectValue: { classPropertyName: "onlySelectValue", publicName: "onlySelectValue", isSignal: true, isRequired: false, transformFunction: null }, lazyLoadingDebounceTime: { classPropertyName: "lazyLoadingDebounceTime", publicName: "lazyLoadingDebounceTime", isSignal: true, isRequired: false, transformFunction: null }, searchDebounceTime: { classPropertyName: "searchDebounceTime", publicName: "searchDebounceTime", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, optionsInScrollableView: { classPropertyName: "optionsInScrollableView", publicName: "optionsInScrollableView", isSignal: true, isRequired: false, transformFunction: null }, searchCriteria: { classPropertyName: "searchCriteria", publicName: "searchCriteria", isSignal: true, isRequired: false, transformFunction: null }, criteria: { classPropertyName: "criteria", publicName: "criteria", isSignal: true, isRequired: false, transformFunction: null }, exclusiveCriteria: { classPropertyName: "exclusiveCriteria", publicName: "exclusiveCriteria", isSignal: true, isRequired: false, transformFunction: null }, maxCriteria: { classPropertyName: "maxCriteria", publicName: "maxCriteria", isSignal: true, isRequired: false, transformFunction: null }, maxCriteriaOptions: { classPropertyName: "maxCriteriaOptions", publicName: "maxCriteriaOptions", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, clearButtonLabel: { classPropertyName: "clearButtonLabel", publicName: "clearButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, submitButtonLabel: { classPropertyName: "submitButtonLabel", publicName: "submitButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, itemCountText: { classPropertyName: "itemCountText", publicName: "itemCountText", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, disableFreeTextSearch: { classPropertyName: "disableFreeTextSearch", publicName: "disableFreeTextSearch", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsLimit: { classPropertyName: "typeaheadOptionsLimit", publicName: "typeaheadOptionsLimit", isSignal: true, isRequired: false, transformFunction: null }, disableSelectionByColonAndSemicolon: { classPropertyName: "disableSelectionByColonAndSemicolon", publicName: "disableSelectionByColonAndSemicolon", isSignal: true, isRequired: false, transformFunction: null }, freeTextCriterion: { classPropertyName: "freeTextCriterion", publicName: "freeTextCriterion", isSignal: true, isRequired: false, transformFunction: null }, searchForFreeTextLabel: { classPropertyName: "searchForFreeTextLabel", publicName: "searchForFreeTextLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { doSearch: "doSearch", searchCriteria: "searchCriteriaChange", interceptDisplayedCriteria: "interceptDisplayedCriteria" }, host: { properties: { "class.disabled": "disabled()", "class.dark-background": "colorVariant() === 'base-0'" } }, viewQueries: [{ propertyName: "freeTextInputElement", first: true, predicate: ["freeTextInputElement"], descendants: true, isSignal: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "valueComponents", predicate: SiFilteredSearchValueComponent, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #scrollContainer\n class=\"search-container d-flex align-items-center overflow-auto py-2 w-100 ps-2 pe-2\"\n>\n @for (criterion of values; track criterion) {\n <si-filtered-search-value\n [editOnCreation]=\"autoEditCriteria\"\n [definition]=\"criterion.config\"\n [value]=\"criterion.value\"\n [invalidCriterion]=\"!validateCriterionLabel(criterion.config)\"\n [disabled]=\"disabled()\"\n [clearButtonLabel]=\"clearButtonLabel()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [itemCountText]=\"itemCountText()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [searchLabel]=\"searchLabel()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n (submitCriterion)=\"focusNext($index, $event)\"\n (deleteCriterion)=\"deleteCriterion($index, $event)\"\n (valueChange)=\"valueChange($event, criterion)\"\n />\n }\n <!-- criterion input -->\n <input\n #freeTextInputElement\n type=\"text\"\n class=\"value-input ps-2 me-2 flex-grow-1\"\n typeaheadOptionField=\"translatedLabel\"\n [siTypeahead]=\"dataSource\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"typeaheadOptionsLimit()\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [typeaheadAutoSelectIndex]=\"searchValue ? 0 : -1\"\n [typeaheadCreateOption]=\"\n freeTextCriterion() &&\n (!maxCriteria() || values.length < maxCriteria()!) &&\n allowFreeTextCache()\n ? searchForFreeTextLabel()\n : undefined\n \"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [value]=\"searchValue\"\n (focus)=\"freeTextFocus()\"\n (input)=\"freeTextInput($event)\"\n (blur)=\"freeTextBlur()\"\n (keydown.backspace)=\"freeTextBackspace($event)\"\n (keydown.enter)=\"submit()\"\n (typeaheadOnSelect)=\"typeaheadOnSelectCriterion($event.option)\"\n (typeaheadOnCreateOption)=\"createFreeTextPill($event)\"\n />\n</div>\n<!-- clear all searchCriteria -->\n@if (values.length || searchValue.length) {\n <div class=\"clear-button-container\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-sm btn-ghost mx-2\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"clearButtonLabel() | translate\"\n (click)=\"deleteAllCriteria($event)\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n}\n\n@if (!disabled()) {\n <button\n type=\"button\"\n class=\"search-button btn btn-icon btn-sm btn-secondary focus-inside\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"submitButtonLabel() | translate\"\n (click)=\"submit()\"\n >\n <si-icon [icon]=\"icons.elementSearch\" />\n </button>\n}\n", styles: [":host{--search-bar-icon-color: var(--element-text-primary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1);--filter-search-background-color: var(--element-base-1);--filter-pill-background-color: var(--element-base-4)}:host.dark-background{--input-background-color: var(--element-base-4);--input-background-hover-color: var(--element-ui-4);--filter-search-background-color: var(--element-base-4);--filter-pill-background-color: var(--element-base-1)}:host{display:flex;align-items:center;line-height:24px;min-inline-size:0}:host.disabled{color:var(--element-text-disabled)}:host.disabled input,:host.disabled ::placeholder{color:var(--element-text-disabled)}:host si-filtered-search-value+input::placeholder{color:transparent}.search-container{border-start-start-radius:4px;border-end-start-radius:4px;background-color:var(--filter-search-background-color);gap:4px}input{background:transparent;border:0;padding-block:0}input:hover::placeholder{opacity:1}:host(.disabled) input::placeholder{opacity:var(--element-action-disabled-opacity)}.clear-button-container{display:flex;align-items:flex-start;align-self:stretch;padding-block:4px;background-color:var(--filter-search-background-color)}.search-button{align-self:stretch;background-color:var(--filter-search-background-color);border:0;border-radius:0;border-end-end-radius:4px;border-start-end-radius:4px;margin-block:0;margin-inline:1px 0;block-size:auto;inline-size:auto;padding-inline:4px!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiTypeaheadDirective, selector: "[siTypeahead]", inputs: ["siTypeahead", "typeaheadProcess", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadOptionsLimit", "typeaheadScrollableAdditionalHeight", "typeaheadAutoSelectIndex", "typeaheadCloseOnEsc", "typeaheadClearValueOnSelect", "typeaheadWaitMs", "typeaheadMinLength", "typeaheadOptionField", "typeaheadMultiSelect", "typeaheadTokenize", "typeaheadMatchAllTokens", "typeaheadItemTemplate", "typeaheadSkipSortingMatches", "typeaheadAutocompleteListLabel", "typeaheadFullWidth", "typeaheadCreateOption"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange", "typeaheadOnCreateOption"], exportAs: ["si-typeahead"] }, { kind: "component", type: SiFilteredSearchValueComponent, selector: "si-filtered-search-value", inputs: ["value", "definition", "disabled", "onlySelectValue", "maxCriteriaOptions", "optionsInScrollableView", "clearButtonLabel", "lazyValueProvider", "searchDebounceTime", "itemCountText", "disableSelectionByColonAndSemicolon", "searchLabel", "invalidCriterion", "isStrictOrOnlySelectValue", "editOnCreation"], outputs: ["valueChange", "deleteCriterion", "submitCriterion"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
1230
1212
|
}
|
|
1231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchComponent, decorators: [{
|
|
1232
1214
|
type: Component,
|
|
1233
1215
|
args: [{ selector: 'si-filtered-search', imports: [
|
|
1234
1216
|
FormsModule,
|
|
@@ -1239,19 +1221,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
1239
1221
|
], host: {
|
|
1240
1222
|
'[class.disabled]': 'disabled()',
|
|
1241
1223
|
'[class.dark-background]': "colorVariant() === 'base-0'"
|
|
1242
|
-
}, template: "<div\n #scrollContainer\n class=\"search-container d-flex align-items-center overflow-auto py-2 w-100 ps-2 pe-2\"\n>\n @for (criterion of values; track criterion) {\n <si-filtered-search-value\n [editOnCreation]=\"autoEditCriteria\"\n [definition]=\"criterion.config\"\n [value]=\"criterion.value\"\n [invalidCriterion]=\"!validateCriterionLabel(criterion.config)\"\n [disabled]=\"disabled()\"\n [clearButtonLabel]=\"clearButtonLabel()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [itemCountText]=\"itemCountText()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [
|
|
1243
|
-
}], ctorParameters: () => [] });
|
|
1224
|
+
}, template: "<div\n #scrollContainer\n class=\"search-container d-flex align-items-center overflow-auto py-2 w-100 ps-2 pe-2\"\n>\n @for (criterion of values; track criterion) {\n <si-filtered-search-value\n [editOnCreation]=\"autoEditCriteria\"\n [definition]=\"criterion.config\"\n [value]=\"criterion.value\"\n [invalidCriterion]=\"!validateCriterionLabel(criterion.config)\"\n [disabled]=\"disabled()\"\n [clearButtonLabel]=\"clearButtonLabel()\"\n [disableSelectionByColonAndSemicolon]=\"disableSelectionByColonAndSemicolon()\"\n [isStrictOrOnlySelectValue]=\"isStrictOrOnlySelectValue()\"\n [itemCountText]=\"itemCountText()\"\n [lazyValueProvider]=\"lazyValueProvider()\"\n [maxCriteriaOptions]=\"maxCriteriaOptions()\"\n [optionsInScrollableView]=\"optionsInScrollableView()\"\n [searchLabel]=\"searchLabel()\"\n [onlySelectValue]=\"onlySelectValue()\"\n [searchDebounceTime]=\"searchDebounceTime()\"\n (submitCriterion)=\"focusNext($index, $event)\"\n (deleteCriterion)=\"deleteCriterion($index, $event)\"\n (valueChange)=\"valueChange($event, criterion)\"\n />\n }\n <!-- criterion input -->\n <input\n #freeTextInputElement\n type=\"text\"\n class=\"value-input ps-2 me-2 flex-grow-1\"\n typeaheadOptionField=\"translatedLabel\"\n [siTypeahead]=\"dataSource\"\n [typeaheadMinLength]=\"0\"\n [typeaheadOptionsLimit]=\"typeaheadOptionsLimit()\"\n [typeaheadScrollable]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionsInScrollableView()\"\n [typeaheadAutoSelectIndex]=\"searchValue ? 0 : -1\"\n [typeaheadCreateOption]=\"\n freeTextCriterion() &&\n (!maxCriteria() || values.length < maxCriteria()!) &&\n allowFreeTextCache()\n ? searchForFreeTextLabel()\n : undefined\n \"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"searchLabel() | translate\"\n [value]=\"searchValue\"\n (focus)=\"freeTextFocus()\"\n (input)=\"freeTextInput($event)\"\n (blur)=\"freeTextBlur()\"\n (keydown.backspace)=\"freeTextBackspace($event)\"\n (keydown.enter)=\"submit()\"\n (typeaheadOnSelect)=\"typeaheadOnSelectCriterion($event.option)\"\n (typeaheadOnCreateOption)=\"createFreeTextPill($event)\"\n />\n</div>\n<!-- clear all searchCriteria -->\n@if (values.length || searchValue.length) {\n <div class=\"clear-button-container\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-sm btn-ghost mx-2\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"clearButtonLabel() | translate\"\n (click)=\"deleteAllCriteria($event)\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n}\n\n@if (!disabled()) {\n <button\n type=\"button\"\n class=\"search-button btn btn-icon btn-sm btn-secondary focus-inside\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"submitButtonLabel() | translate\"\n (click)=\"submit()\"\n >\n <si-icon [icon]=\"icons.elementSearch\" />\n </button>\n}\n", styles: [":host{--search-bar-icon-color: var(--element-text-primary);--input-background-color: var(--element-base-1);--input-background-hover-color: var(--element-base-1);--filter-search-background-color: var(--element-base-1);--filter-pill-background-color: var(--element-base-4)}:host.dark-background{--input-background-color: var(--element-base-4);--input-background-hover-color: var(--element-ui-4);--filter-search-background-color: var(--element-base-4);--filter-pill-background-color: var(--element-base-1)}:host{display:flex;align-items:center;line-height:24px;min-inline-size:0}:host.disabled{color:var(--element-text-disabled)}:host.disabled input,:host.disabled ::placeholder{color:var(--element-text-disabled)}:host si-filtered-search-value+input::placeholder{color:transparent}.search-container{border-start-start-radius:4px;border-end-start-radius:4px;background-color:var(--filter-search-background-color);gap:4px}input{background:transparent;border:0;padding-block:0}input:hover::placeholder{opacity:1}:host(.disabled) input::placeholder{opacity:var(--element-action-disabled-opacity)}.clear-button-container{display:flex;align-items:flex-start;align-self:stretch;padding-block:4px;background-color:var(--filter-search-background-color)}.search-button{align-self:stretch;background-color:var(--filter-search-background-color);border:0;border-radius:0;border-end-end-radius:4px;border-start-end-radius:4px;margin-block:0;margin-inline:1px 0;block-size:auto;inline-size:auto;padding-inline:4px!important}\n"] }]
|
|
1225
|
+
}], ctorParameters: () => [], propDecorators: { doSearch: [{ type: i0.Output, args: ["doSearch"] }], doSearchOnInputChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "doSearchOnInputChange", required: false }] }], lazyCriterionProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyCriterionProvider", required: false }] }], lazyValueProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyValueProvider", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], strictCriterion: [{ type: i0.Input, args: [{ isSignal: true, alias: "strictCriterion", required: false }] }], strictValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "strictValue", required: false }] }], onlySelectValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlySelectValue", required: false }] }], lazyLoadingDebounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyLoadingDebounceTime", required: false }] }], searchDebounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchDebounceTime", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], optionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsInScrollableView", required: false }] }], searchCriteria: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchCriteria", required: false }] }, { type: i0.Output, args: ["searchCriteriaChange"] }], criteria: [{ type: i0.Input, args: [{ isSignal: true, alias: "criteria", required: false }] }], exclusiveCriteria: [{ type: i0.Input, args: [{ isSignal: true, alias: "exclusiveCriteria", required: false }] }], maxCriteria: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxCriteria", required: false }] }], maxCriteriaOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxCriteriaOptions", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], clearButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButtonLabel", required: false }] }], submitButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitButtonLabel", required: false }] }], itemCountText: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemCountText", required: false }] }], colorVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorVariant", required: false }] }], disableFreeTextSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableFreeTextSearch", required: false }] }], typeaheadOptionsLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsLimit", required: false }] }], disableSelectionByColonAndSemicolon: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableSelectionByColonAndSemicolon", required: false }] }], freeTextCriterion: [{ type: i0.Input, args: [{ isSignal: true, alias: "freeTextCriterion", required: false }] }], searchForFreeTextLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchForFreeTextLabel", required: false }] }], interceptDisplayedCriteria: [{ type: i0.Output, args: ["interceptDisplayedCriteria"] }], freeTextInputElement: [{ type: i0.ViewChild, args: ['freeTextInputElement', { isSignal: true }] }], scrollContainer: [{ type: i0.ViewChild, args: ['scrollContainer', { ...{ read: ElementRef }, isSignal: true }] }], valueComponents: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => SiFilteredSearchValueComponent), { isSignal: true }] }] } });
|
|
1244
1226
|
|
|
1245
1227
|
/**
|
|
1246
1228
|
* Copyright (c) Siemens 2016 - 2025
|
|
1247
1229
|
* SPDX-License-Identifier: MIT
|
|
1248
1230
|
*/
|
|
1249
1231
|
class SiFilteredSearchModule {
|
|
1250
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1251
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1252
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1232
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1233
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchModule, imports: [SiFilteredSearchComponent], exports: [SiFilteredSearchComponent] });
|
|
1234
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchModule, imports: [SiFilteredSearchComponent] });
|
|
1253
1235
|
}
|
|
1254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFilteredSearchModule, decorators: [{
|
|
1255
1237
|
type: NgModule,
|
|
1256
1238
|
args: [{
|
|
1257
1239
|
imports: [SiFilteredSearchComponent],
|