@siemens/element-ng 49.14.0 → 51.0.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/siemens-element-ng-about.mjs +41 -25
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +58 -40
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +15 -12
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +176 -166
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +31 -21
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +9 -8
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +71 -46
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +57 -33
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +181 -117
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +26 -17
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +56 -35
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +12 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +36 -27
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +335 -221
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +8 -8
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +119 -72
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +376 -244
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +32 -24
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +251 -153
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +12 -10
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +345 -113
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
- package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-formly.mjs +222 -316
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +46 -47
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +25 -25
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +120 -74
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +31 -21
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +76 -56
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +46 -63
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +14 -12
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +47 -30
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +42 -0
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +6 -5
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +56 -48
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +14 -11
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +249 -204
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +120 -83
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +40 -28
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +32 -23
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +18 -13
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +123 -139
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +84 -51
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +63 -58
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +35 -27
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +38 -31
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +218 -163
- 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-side-panel.mjs +128 -86
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +44 -29
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +273 -293
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +65 -51
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +11 -8
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +73 -70
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +29 -6
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +60 -41
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +45 -40
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +105 -82
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +24 -18
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs +0 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +96 -75
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +76 -70
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +72 -48
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/formly-legacy/package.json +4 -0
- package/maplibre/package.json +4 -0
- package/maplibre/styles/_index.scss +1 -0
- package/maplibre/styles/maplibre-gl.scss +715 -0
- package/package.json +37 -23
- package/schematics/migration.json +4 -4
- package/schematics/migrations/data/class-member-replacement.js +1 -19
- package/schematics/migrations/data/component-property-names.js +1 -25
- package/schematics/migrations/data/element-class-changes.js +1 -28
- package/schematics/migrations/data/element-migration-data.js +2 -0
- package/schematics/migrations/data/element-selectors.js +1 -11
- package/schematics/migrations/data/index.js +0 -4
- package/schematics/migrations/data/migration-test-data.js +9 -6
- package/schematics/migrations/data/provider-function-removals.js +7 -0
- package/schematics/migrations/data/symbol-removals.js +7 -7
- package/schematics/migrations/data/symbol-renaming.js +1 -48
- package/schematics/migrations/element-migration/element-migration.js +3 -6
- package/schematics/migrations/utilities/import-removal.js +39 -0
- package/schematics/migrations/utilities/index.js +2 -0
- package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/migrate-split-sizes.js +105 -0
- package/schematics/ng-update/{migrate-to-v49.js → migrate-to-v51.js} +5 -3
- package/template-i18n.json +45 -47
- package/types/siemens-element-ng-application-header.d.ts +8 -28
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +11 -9
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +2 -2
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +3 -14
- package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +13 -31
- package/types/siemens-element-ng-filter-bar.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +4 -4
- package/types/siemens-element-ng-form.d.ts +180 -44
- package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
- package/types/siemens-element-ng-formly.d.ts +34 -167
- package/types/siemens-element-ng-icon.d.ts +2 -19
- package/types/siemens-element-ng-ip-input.d.ts +1 -1
- package/types/siemens-element-ng-landing-page.d.ts +2 -2
- package/types/siemens-element-ng-loading-spinner.d.ts +7 -17
- package/types/siemens-element-ng-maplibre.d.ts +26 -0
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +86 -38
- package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
- package/types/siemens-element-ng-navbar.d.ts +3 -3
- package/types/siemens-element-ng-notification-item.d.ts +12 -0
- package/types/siemens-element-ng-phone-number.d.ts +5 -8
- package/types/siemens-element-ng-photo-upload.d.ts +4 -4
- package/types/siemens-element-ng-resize-observer.d.ts +0 -17
- package/types/siemens-element-ng-search-bar.d.ts +1 -1
- package/types/siemens-element-ng-select.d.ts +1 -1
- package/types/siemens-element-ng-side-panel.d.ts +3 -3
- package/types/siemens-element-ng-split.d.ts +99 -70
- package/types/siemens-element-ng-status-bar.d.ts +5 -13
- package/types/siemens-element-ng-status-counter.d.ts +1 -1
- package/types/siemens-element-ng-tabs.d.ts +1 -2
- package/types/siemens-element-ng-theme.d.ts +12 -2
- package/types/siemens-element-ng-threshold.d.ts +1 -1
- package/types/siemens-element-ng-toast-notification.d.ts +0 -1
- package/types/siemens-element-ng-tooltip.d.ts +7 -7
- package/types/siemens-element-ng-translate.d.ts +2 -5
- package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
- package/icon-status/package.json +0 -4
- package/schematics/vitest-setup.js +0 -5
- package/sort-bar/package.json +0 -4
- package/types/siemens-element-ng-icon-status.d.ts +0 -25
- package/types/siemens-element-ng-sort-bar.d.ts +0 -59
- /package/{LICENSE.md → LICENSE} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Overlay } from '@angular/cdk/overlay';
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Directive, inject, computed, viewChild, ElementRef,
|
|
4
|
+
import { Directive, inject, computed, viewChild, ElementRef, Component, untracked, input, booleanAttribute, numberAttribute, output, signal, Injector, effect, NgModule } from '@angular/core';
|
|
5
5
|
import { toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
6
6
|
import * as i1 from '@siemens/element-ng/autocomplete';
|
|
7
7
|
import { SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective } from '@siemens/element-ng/autocomplete';
|
|
@@ -20,10 +20,10 @@ class SiTypeaheadItemTemplateDirective {
|
|
|
20
20
|
static ngTemplateContextGuard(dir, ctx) {
|
|
21
21
|
return true;
|
|
22
22
|
}
|
|
23
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadItemTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
24
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: SiTypeaheadItemTemplateDirective, isStandalone: true, selector: "[siTypeaheadItemTemplate]", ngImport: i0 });
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadItemTemplateDirective, decorators: [{
|
|
27
27
|
type: Directive,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: '[siTypeaheadItemTemplate]'
|
|
@@ -38,18 +38,15 @@ class SiTypeaheadComponent {
|
|
|
38
38
|
parent = inject(SiTypeaheadDirective);
|
|
39
39
|
matches = computed(() => this.parent.typeaheadOptionsLimit()
|
|
40
40
|
? this.parent.foundMatches().slice(0, this.parent.typeaheadOptionsLimit())
|
|
41
|
-
: this.parent.foundMatches(),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
41
|
+
: this.parent.foundMatches(), /* @ts-ignore */
|
|
42
|
+
...(ngDevMode ? [{ debugName: "matches" }] : /* istanbul ignore next */ []));
|
|
43
|
+
multiselect = computed(() => this.parent.typeaheadMultiSelect(), /* @ts-ignore */
|
|
44
|
+
...(ngDevMode ? [{ debugName: "multiselect" }] : /* istanbul ignore next */ []));
|
|
45
|
+
typeaheadElement = viewChild.required('typeahead', { ...(ngDevMode ? { debugName: "typeaheadElement" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
46
46
|
autocompleteDirective = inject(SiAutocompleteDirective);
|
|
47
47
|
ngAfterViewInit() {
|
|
48
48
|
this.setHeight(this.typeaheadElement());
|
|
49
49
|
}
|
|
50
|
-
onMouseDown(event) {
|
|
51
|
-
event.preventDefault();
|
|
52
|
-
}
|
|
53
50
|
/*
|
|
54
51
|
* Set the height of the element passed to it (typeahead) if there are items displayed,
|
|
55
52
|
* the number of displayed items changed and it is scrollable.
|
|
@@ -80,10 +77,10 @@ class SiTypeaheadComponent {
|
|
|
80
77
|
this.parent.createOption();
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
84
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiTypeaheadComponent, isStandalone: true, selector: "si-typeahead", host: { listeners: { "mousedown": "$event.preventDefault()" }, classAttribute: "w-100" }, viewQueries: [{ propertyName: "typeaheadElement", first: true, predicate: ["typeahead"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<!-- Template to be used for every match, can be replaced using an input. -->\n<ng-template #defaultItemTemplate let-match=\"match\" siTypeaheadItemTemplate>\n @if (multiselect()) {\n <div class=\"d-flex pe-4\" aria-hidden=\"true\">\n <span class=\"form-check-input si-form-checkbox\" [class.checked]=\"match.itemSelected\"></span>\n </div>\n }\n @if (match.iconClass) {\n <si-icon class=\"icon me-2\" [icon]=\"match.iconClass\" />\n }\n @for (segment of match.result; track $index) {\n <span [class.typeahead-match-segment-matching]=\"segment.isMatching\">{{ segment.text }}</span>\n }\n</ng-template>\n\n@let createOption = parent.typeaheadCreateOption();\n\n<!-- Only display the component if there are any matches and set the CSS transform to properly position the typeahead -->\n<ul\n #typeahead\n class=\"typeahead dropdown-menu\"\n [class.empty-loading]=\"parent.typeaheadLoading() && matches().length === 0\"\n [siLoading]=\"parent.typeaheadLoading() && matches().length === 0\"\n [initialDelay]=\"false\"\n [siAutocompleteListboxFor]=\"autocompleteDirective\"\n [siAutocompleteDefaultIndex]=\"parent.typeaheadAutoSelectIndex()\"\n [attr.aria-label]=\"parent.typeaheadAutocompleteListLabel() | translate\"\n (siAutocompleteOptionSubmitted)=\"selectMatch($event)\"\n>\n @if (parent.typeaheadLoading() && matches().length) {\n <li class=\"dropdown-item\" [siLoading]=\"true\" [initialDelay]=\"false\"></li>\n }\n <!-- Loop through every match and bind events, the mousedown prevent default is to prevent the host from losing focus on click -->\n @for (match of matches(); track $index) {\n <li\n #typeaheadMatch\n class=\"dropdown-item\"\n [siAutocompleteOption]=\"match\"\n [attr.aria-label]=\"match.text\"\n [attr.aria-selected]=\"multiselect() ? match.itemSelected : null\"\n (click)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <!-- Display either a template set as the input or the template above -->\n <ng-template\n [ngTemplateOutlet]=\"parent.typeaheadItemTemplate() || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{\n item: match.option,\n index: $index,\n match: match,\n query: parent.query()\n }\"\n />\n </li>\n }\n @if (createOption && parent.query().length) {\n <li class=\"dropdown-item\" [siAutocompleteOption]=\"undefined\">\n {{ createOption | translate: { query: parent.query() } }}\n </li>\n }\n</ul>\n", styles: [":host{--loading-spinner-size: 24px}.dropdown-menu{display:block;position:relative;inset-block-start:0;inset-inline-start:0;margin-block-start:1px;overflow-y:auto;overflow-x:hidden;max-block-size:100%}.dropdown-menu.empty-loading{min-block-size:176px}.typeahead-match-segment-matching{font-weight:600}.dropdown-item *{flex-shrink:0}.dropdown-item span{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: SiAutocompleteListboxDirective, selector: "[siAutocompleteListboxFor]", inputs: ["id", "siAutocompleteListboxFor", "siAutocompleteDefaultIndex"], outputs: ["siAutocompleteOptionSubmitted"], exportAs: ["siAutocompleteListbox"] }, { kind: "directive", type: SiAutocompleteOptionDirective, selector: "[siAutocompleteOption]", inputs: ["id", "disabled", "siAutocompleteOption"], exportAs: ["siAutocompleteOption"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SiTypeaheadItemTemplateDirective, selector: "[siTypeaheadItemTemplate]" }, { kind: "directive", type: SiLoadingSpinnerDirective, selector: "[siLoading]", inputs: ["siLoading", "blocking", "initialDelay"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
85
82
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadComponent, decorators: [{
|
|
87
84
|
type: Component,
|
|
88
85
|
args: [{ selector: 'si-typeahead', imports: [
|
|
89
86
|
SiAutocompleteListboxDirective,
|
|
@@ -93,13 +90,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
93
90
|
SiTranslatePipe,
|
|
94
91
|
SiTypeaheadItemTemplateDirective,
|
|
95
92
|
SiLoadingSpinnerDirective
|
|
96
|
-
],
|
|
93
|
+
], host: { class: 'w-100', '(mousedown)': '$event.preventDefault()' }, template: "<!-- Template to be used for every match, can be replaced using an input. -->\n<ng-template #defaultItemTemplate let-match=\"match\" siTypeaheadItemTemplate>\n @if (multiselect()) {\n <div class=\"d-flex pe-4\" aria-hidden=\"true\">\n <span class=\"form-check-input si-form-checkbox\" [class.checked]=\"match.itemSelected\"></span>\n </div>\n }\n @if (match.iconClass) {\n <si-icon class=\"icon me-2\" [icon]=\"match.iconClass\" />\n }\n @for (segment of match.result; track $index) {\n <span [class.typeahead-match-segment-matching]=\"segment.isMatching\">{{ segment.text }}</span>\n }\n</ng-template>\n\n@let createOption = parent.typeaheadCreateOption();\n\n<!-- Only display the component if there are any matches and set the CSS transform to properly position the typeahead -->\n<ul\n #typeahead\n class=\"typeahead dropdown-menu\"\n [class.empty-loading]=\"parent.typeaheadLoading() && matches().length === 0\"\n [siLoading]=\"parent.typeaheadLoading() && matches().length === 0\"\n [initialDelay]=\"false\"\n [siAutocompleteListboxFor]=\"autocompleteDirective\"\n [siAutocompleteDefaultIndex]=\"parent.typeaheadAutoSelectIndex()\"\n [attr.aria-label]=\"parent.typeaheadAutocompleteListLabel() | translate\"\n (siAutocompleteOptionSubmitted)=\"selectMatch($event)\"\n>\n @if (parent.typeaheadLoading() && matches().length) {\n <li class=\"dropdown-item\" [siLoading]=\"true\" [initialDelay]=\"false\"></li>\n }\n <!-- Loop through every match and bind events, the mousedown prevent default is to prevent the host from losing focus on click -->\n @for (match of matches(); track $index) {\n <li\n #typeaheadMatch\n class=\"dropdown-item\"\n [siAutocompleteOption]=\"match\"\n [attr.aria-label]=\"match.text\"\n [attr.aria-selected]=\"multiselect() ? match.itemSelected : null\"\n (click)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <!-- Display either a template set as the input or the template above -->\n <ng-template\n [ngTemplateOutlet]=\"parent.typeaheadItemTemplate() || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{\n item: match.option,\n index: $index,\n match: match,\n query: parent.query()\n }\"\n />\n </li>\n }\n @if (createOption && parent.query().length) {\n <li class=\"dropdown-item\" [siAutocompleteOption]=\"undefined\">\n {{ createOption | translate: { query: parent.query() } }}\n </li>\n }\n</ul>\n", styles: [":host{--loading-spinner-size: 24px}.dropdown-menu{display:block;position:relative;inset-block-start:0;inset-inline-start:0;margin-block-start:1px;overflow-y:auto;overflow-x:hidden;max-block-size:100%}.dropdown-menu.empty-loading{min-block-size:176px}.typeahead-match-segment-matching{font-weight:600}.dropdown-item *{flex-shrink:0}.dropdown-item span{white-space:pre-wrap}\n"] }]
|
|
97
94
|
}], propDecorators: { typeaheadElement: [{ type: i0.ViewChild, args: ['typeahead', { ...{
|
|
98
95
|
read: ElementRef
|
|
99
|
-
}, isSignal: true }] }]
|
|
100
|
-
type: HostListener,
|
|
101
|
-
args: ['mousedown', ['$event']]
|
|
102
|
-
}] } });
|
|
96
|
+
}, isSignal: true }] }] } });
|
|
103
97
|
|
|
104
98
|
/**
|
|
105
99
|
* Copyright (c) Siemens 2016 - 2026
|
|
@@ -128,7 +122,8 @@ class TypeaheadSearch {
|
|
|
128
122
|
datasource;
|
|
129
123
|
query;
|
|
130
124
|
options;
|
|
131
|
-
matches = computed(() => this.search(this.datasource(), this.readQuery()),
|
|
125
|
+
matches = computed(() => this.search(this.datasource(), this.readQuery()), /* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [{ debugName: "matches" }] : /* istanbul ignore next */ []));
|
|
132
127
|
constructor(datasource, query, options) {
|
|
133
128
|
this.datasource = datasource;
|
|
134
129
|
this.query = query;
|
|
@@ -373,90 +368,97 @@ class SiTypeaheadDirective {
|
|
|
373
368
|
* Has to be either an Array or an Observable of an Array
|
|
374
369
|
* of options (string or object)
|
|
375
370
|
*/
|
|
376
|
-
siTypeahead = input.required(
|
|
371
|
+
siTypeahead = input.required(/* @ts-ignore */
|
|
372
|
+
...(ngDevMode ? [{ debugName: "siTypeahead" }] : /* istanbul ignore next */ []));
|
|
377
373
|
/**
|
|
378
374
|
* Turns on/off the processing (searching and sorting) of the typeahead options.
|
|
379
375
|
* Is used when searching and sorting is done externally.
|
|
380
376
|
*
|
|
381
377
|
* @defaultValue true
|
|
382
378
|
*/
|
|
383
|
-
typeaheadProcess = input(true, { ...(ngDevMode ? { debugName: "typeaheadProcess" } : {}), transform: booleanAttribute });
|
|
379
|
+
typeaheadProcess = input(true, { ...(ngDevMode ? { debugName: "typeaheadProcess" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
384
380
|
/**
|
|
385
381
|
* Makes the typeahead scrollable and sets its height.
|
|
386
382
|
* Uses {@link typeaheadOptionsInScrollableView} and {@link typeaheadScrollableAdditionalHeight}.
|
|
387
383
|
*
|
|
388
384
|
* @defaultValue false
|
|
389
385
|
*/
|
|
390
|
-
typeaheadScrollable = input(false, { ...(ngDevMode ? { debugName: "typeaheadScrollable" } : {}), transform: booleanAttribute });
|
|
386
|
+
typeaheadScrollable = input(false, { ...(ngDevMode ? { debugName: "typeaheadScrollable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
391
387
|
/**
|
|
392
388
|
* If {@link typeaheadScrollable} is `true`, defines the number of items visible at once.
|
|
393
389
|
*
|
|
394
390
|
* @defaultValue 10
|
|
395
391
|
*/
|
|
396
|
-
typeaheadOptionsInScrollableView = input(10,
|
|
392
|
+
typeaheadOptionsInScrollableView = input(10, /* @ts-ignore */
|
|
393
|
+
...(ngDevMode ? [{ debugName: "typeaheadOptionsInScrollableView" }] : /* istanbul ignore next */ []));
|
|
397
394
|
/**
|
|
398
395
|
* Defines the maximum number of items added into the DOM. Default is 20 and 0 means unlimited.
|
|
399
396
|
*
|
|
400
397
|
* @defaultValue 20
|
|
401
398
|
*/
|
|
402
|
-
typeaheadOptionsLimit = input(20,
|
|
399
|
+
typeaheadOptionsLimit = input(20, /* @ts-ignore */
|
|
400
|
+
...(ngDevMode ? [{ debugName: "typeaheadOptionsLimit" }] : /* istanbul ignore next */ []));
|
|
403
401
|
/**
|
|
404
402
|
* If {@link typeaheadScrollable} is `true`, defines the number of additional pixels
|
|
405
403
|
* to be added the the bottom of the typeahead to show users that it is scrollable.
|
|
406
404
|
*
|
|
407
405
|
* @defaultValue 13
|
|
408
406
|
*/
|
|
409
|
-
typeaheadScrollableAdditionalHeight = input(13,
|
|
407
|
+
typeaheadScrollableAdditionalHeight = input(13, /* @ts-ignore */
|
|
408
|
+
...(ngDevMode ? [{ debugName: "typeaheadScrollableAdditionalHeight" }] : /* istanbul ignore next */ []));
|
|
410
409
|
/**
|
|
411
410
|
* Defines the index of the item which should automatically be selected.
|
|
412
411
|
*
|
|
413
412
|
* @defaultValue 0
|
|
414
413
|
*/
|
|
415
|
-
typeaheadAutoSelectIndex = input(0, { ...(ngDevMode ? { debugName: "typeaheadAutoSelectIndex" } : {}), transform: numberAttribute });
|
|
414
|
+
typeaheadAutoSelectIndex = input(0, { ...(ngDevMode ? { debugName: "typeaheadAutoSelectIndex" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
416
415
|
/**
|
|
417
416
|
* Defines whether the typeahead can be closed using escape.
|
|
418
417
|
*
|
|
419
418
|
* @defaultValue true
|
|
420
419
|
*/
|
|
421
|
-
typeaheadCloseOnEsc = input(true, { ...(ngDevMode ? { debugName: "typeaheadCloseOnEsc" } : {}), transform: booleanAttribute });
|
|
420
|
+
typeaheadCloseOnEsc = input(true, { ...(ngDevMode ? { debugName: "typeaheadCloseOnEsc" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
422
421
|
/**
|
|
423
422
|
* Defines whether the host value should be cleared when a value is selected.
|
|
424
423
|
*
|
|
425
424
|
* @defaultValue false
|
|
426
425
|
*/
|
|
427
|
-
typeaheadClearValueOnSelect = input(false, { ...(ngDevMode ? { debugName: "typeaheadClearValueOnSelect" } : {}), transform: booleanAttribute });
|
|
426
|
+
typeaheadClearValueOnSelect = input(false, { ...(ngDevMode ? { debugName: "typeaheadClearValueOnSelect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
428
427
|
/**
|
|
429
428
|
* Defines the number of milliseconds to wait before displaying a typeahead after the host was
|
|
430
429
|
* focused or a value inputted.
|
|
431
430
|
*
|
|
432
431
|
* @defaultValue 0
|
|
433
432
|
*/
|
|
434
|
-
typeaheadWaitMs = input(0,
|
|
433
|
+
typeaheadWaitMs = input(0, /* @ts-ignore */
|
|
434
|
+
...(ngDevMode ? [{ debugName: "typeaheadWaitMs" }] : /* istanbul ignore next */ []));
|
|
435
435
|
/**
|
|
436
436
|
* Defines the number of characters the value of the host needs to be before a typeahead is displayed.
|
|
437
437
|
* Use `0` to have it display when focussing the host (clicking or tabbing into it).
|
|
438
438
|
*
|
|
439
439
|
* @defaultValue 1
|
|
440
440
|
*/
|
|
441
|
-
typeaheadMinLength = input(1,
|
|
441
|
+
typeaheadMinLength = input(1, /* @ts-ignore */
|
|
442
|
+
...(ngDevMode ? [{ debugName: "typeaheadMinLength" }] : /* istanbul ignore next */ []));
|
|
442
443
|
/**
|
|
443
444
|
* Defines the name of the field/property the option string is in when the typeahead options are objects.
|
|
444
445
|
*
|
|
445
446
|
* @defaultValue 'name'
|
|
446
447
|
*/
|
|
447
|
-
typeaheadOptionField = input('name',
|
|
448
|
+
typeaheadOptionField = input('name', /* @ts-ignore */
|
|
449
|
+
...(ngDevMode ? [{ debugName: "typeaheadOptionField" }] : /* istanbul ignore next */ []));
|
|
448
450
|
/**
|
|
449
451
|
* Defines whether multiselection of typeahead is possible with checkboxes.
|
|
450
452
|
*
|
|
451
453
|
* @defaultValue false
|
|
452
454
|
*/
|
|
453
|
-
typeaheadMultiSelect = input(false, { ...(ngDevMode ? { debugName: "typeaheadMultiSelect" } : {}), transform: booleanAttribute });
|
|
455
|
+
typeaheadMultiSelect = input(false, { ...(ngDevMode ? { debugName: "typeaheadMultiSelect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
454
456
|
/**
|
|
455
457
|
* Defines whether to tokenize the search or match the whole search.
|
|
456
458
|
*
|
|
457
459
|
* @defaultValue true
|
|
458
460
|
*/
|
|
459
|
-
typeaheadTokenize = input(true, { ...(ngDevMode ? { debugName: "typeaheadTokenize" } : {}), transform: booleanAttribute });
|
|
461
|
+
typeaheadTokenize = input(true, { ...(ngDevMode ? { debugName: "typeaheadTokenize" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
460
462
|
/**
|
|
461
463
|
* Defines whether and how to require to match with all the tokens if {@link typeaheadTokenize} is enabled.
|
|
462
464
|
* - `no` does not require all of the tokens to match.
|
|
@@ -467,19 +469,21 @@ class SiTypeaheadDirective {
|
|
|
467
469
|
*
|
|
468
470
|
* @defaultValue 'separately'
|
|
469
471
|
*/
|
|
470
|
-
typeaheadMatchAllTokens = input('separately',
|
|
472
|
+
typeaheadMatchAllTokens = input('separately', /* @ts-ignore */
|
|
473
|
+
...(ngDevMode ? [{ debugName: "typeaheadMatchAllTokens" }] : /* istanbul ignore next */ []));
|
|
471
474
|
/**
|
|
472
475
|
* Defines an optional template to use as the typeahead match item instead of the one built in.
|
|
473
476
|
* Gets the {@link TypeaheadOptionItemContext} passed to it.
|
|
474
477
|
*/
|
|
475
|
-
typeaheadItemTemplate = input(
|
|
478
|
+
typeaheadItemTemplate = input(/* @ts-ignore */
|
|
479
|
+
...(ngDevMode ? [undefined, { debugName: "typeaheadItemTemplate" }] : /* istanbul ignore next */ []));
|
|
476
480
|
/**
|
|
477
481
|
* Skip the sorting of matches.
|
|
478
482
|
* If the value is `true`, the matches are sorted according to {@link SiTypeaheadSorting}.
|
|
479
483
|
*
|
|
480
484
|
* @defaultValue false
|
|
481
485
|
*/
|
|
482
|
-
typeaheadSkipSortingMatches = input(false, { ...(ngDevMode ? { debugName: "typeaheadSkipSortingMatches" } : {}), transform: booleanAttribute });
|
|
486
|
+
typeaheadSkipSortingMatches = input(false, { ...(ngDevMode ? { debugName: "typeaheadSkipSortingMatches" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
483
487
|
/**
|
|
484
488
|
* Screen reader only label for the autocomplete list.
|
|
485
489
|
*
|
|
@@ -488,18 +492,20 @@ class SiTypeaheadDirective {
|
|
|
488
492
|
* t(() => $localize`:@@SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL:Suggestions`)
|
|
489
493
|
* ```
|
|
490
494
|
*/
|
|
491
|
-
typeaheadAutocompleteListLabel = input(t(() => $localize `:@@SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL:Suggestions`),
|
|
495
|
+
typeaheadAutocompleteListLabel = input(t(() => $localize `:@@SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL:Suggestions`), /* @ts-ignore */
|
|
496
|
+
...(ngDevMode ? [{ debugName: "typeaheadAutocompleteListLabel" }] : /* istanbul ignore next */ []));
|
|
492
497
|
/**
|
|
493
498
|
* If set, the typeahead will at minium have the width of the connected input field.
|
|
494
499
|
*
|
|
495
500
|
* @defaultValue false
|
|
496
501
|
*/
|
|
497
|
-
typeaheadFullWidth = input(false, { ...(ngDevMode ? { debugName: "typeaheadFullWidth" } : {}), transform: booleanAttribute });
|
|
502
|
+
typeaheadFullWidth = input(false, { ...(ngDevMode ? { debugName: "typeaheadFullWidth" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
498
503
|
/**
|
|
499
504
|
* Optional CDK scroll strategy used for the typeahead overlay.
|
|
500
505
|
* If not provided, no strategy is set explicitly and CDK will apply its default behavior.
|
|
501
506
|
*/
|
|
502
|
-
typeaheadScrollStrategy = input(
|
|
507
|
+
typeaheadScrollStrategy = input(/* @ts-ignore */
|
|
508
|
+
...(ngDevMode ? [undefined, { debugName: "typeaheadScrollStrategy" }] : /* istanbul ignore next */ []));
|
|
503
509
|
/**
|
|
504
510
|
* This option will be shown at the end of the typeahead.
|
|
505
511
|
* Use it to allow users to create new options on the fly.
|
|
@@ -508,7 +514,8 @@ class SiTypeaheadDirective {
|
|
|
508
514
|
*
|
|
509
515
|
* @experimental
|
|
510
516
|
*/
|
|
511
|
-
typeaheadCreateOption = input(
|
|
517
|
+
typeaheadCreateOption = input(/* @ts-ignore */
|
|
518
|
+
...(ngDevMode ? [undefined, { debugName: "typeaheadCreateOption" }] : /* istanbul ignore next */ []));
|
|
512
519
|
/**
|
|
513
520
|
* Emits an Event when the input field is changed.
|
|
514
521
|
*/
|
|
@@ -534,9 +541,11 @@ class SiTypeaheadDirective {
|
|
|
534
541
|
*/
|
|
535
542
|
typeaheadOnCreateOption = output();
|
|
536
543
|
/** @internal */
|
|
537
|
-
foundMatches = computed(() => this.typeaheadProcess() ? this.processedSearch() : this.unprocessedSearch(),
|
|
544
|
+
foundMatches = computed(() => this.typeaheadProcess() ? this.processedSearch() : this.unprocessedSearch(), /* @ts-ignore */
|
|
545
|
+
...(ngDevMode ? [{ debugName: "foundMatches" }] : /* istanbul ignore next */ []));
|
|
538
546
|
/** @internal */
|
|
539
|
-
query = signal('',
|
|
547
|
+
query = signal('', /* @ts-ignore */
|
|
548
|
+
...(ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []));
|
|
540
549
|
/**
|
|
541
550
|
* Indicates whether the typeahead is shown.
|
|
542
551
|
*/
|
|
@@ -561,15 +570,18 @@ class SiTypeaheadDirective {
|
|
|
561
570
|
* @internal
|
|
562
571
|
* @defaultValue false
|
|
563
572
|
*/
|
|
564
|
-
typeaheadLoading = signal(false,
|
|
573
|
+
typeaheadLoading = signal(false, /* @ts-ignore */
|
|
574
|
+
...(ngDevMode ? [{ debugName: "typeaheadLoading" }] : /* istanbul ignore next */ []));
|
|
565
575
|
/**
|
|
566
576
|
* Indicates that the typeahead can be potentially open.
|
|
567
577
|
* This signal is typically `true` when the input is focussed.
|
|
568
578
|
* It may be overridden and set to `false` when escape is pressed
|
|
569
579
|
* or when an option was selected.
|
|
570
580
|
*/
|
|
571
|
-
canBeOpen = signal(false,
|
|
572
|
-
|
|
581
|
+
canBeOpen = signal(false, /* @ts-ignore */
|
|
582
|
+
...(ngDevMode ? [{ debugName: "canBeOpen" }] : /* istanbul ignore next */ []));
|
|
583
|
+
selectionCounter = signal(0, /* @ts-ignore */
|
|
584
|
+
...(ngDevMode ? [{ debugName: "selectionCounter" }] : /* istanbul ignore next */ []));
|
|
573
585
|
typeaheadOptions = toSignal(this.$typeahead.pipe(map(options => options.map(option => ({
|
|
574
586
|
text: this.getOptionValue(option),
|
|
575
587
|
option
|
|
@@ -595,7 +607,8 @@ class SiTypeaheadDirective {
|
|
|
595
607
|
else {
|
|
596
608
|
return this.matchSorter.sortMatches(matches);
|
|
597
609
|
}
|
|
598
|
-
},
|
|
610
|
+
}, /* @ts-ignore */
|
|
611
|
+
...(ngDevMode ? [{ debugName: "processedSearch" }] : /* istanbul ignore next */ []));
|
|
599
612
|
unprocessedSearch = computed(() => {
|
|
600
613
|
this.selectionCounter(); // This is a workaround for the multi-select which needs to trigger a change detection in the typeahead component.
|
|
601
614
|
return this.typeaheadOptions().map(option => {
|
|
@@ -621,7 +634,8 @@ class SiTypeaheadDirective {
|
|
|
621
634
|
active: false
|
|
622
635
|
};
|
|
623
636
|
});
|
|
624
|
-
},
|
|
637
|
+
}, /* @ts-ignore */
|
|
638
|
+
...(ngDevMode ? [{ debugName: "unprocessedSearch" }] : /* istanbul ignore next */ []));
|
|
625
639
|
constructor() {
|
|
626
640
|
effect(() => {
|
|
627
641
|
// The value needs to fulfil the minimum length requirement set.
|
|
@@ -821,43 +835,35 @@ class SiTypeaheadDirective {
|
|
|
821
835
|
escapeRegex(query) {
|
|
822
836
|
return query.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
|
|
823
837
|
}
|
|
824
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
825
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
838
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
839
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: SiTypeaheadDirective, isStandalone: true, selector: "[siTypeahead]", inputs: { siTypeahead: { classPropertyName: "siTypeahead", publicName: "siTypeahead", isSignal: true, isRequired: true, transformFunction: null }, typeaheadProcess: { classPropertyName: "typeaheadProcess", publicName: "typeaheadProcess", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollable: { classPropertyName: "typeaheadScrollable", publicName: "typeaheadScrollable", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsInScrollableView: { classPropertyName: "typeaheadOptionsInScrollableView", publicName: "typeaheadOptionsInScrollableView", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsLimit: { classPropertyName: "typeaheadOptionsLimit", publicName: "typeaheadOptionsLimit", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollableAdditionalHeight: { classPropertyName: "typeaheadScrollableAdditionalHeight", publicName: "typeaheadScrollableAdditionalHeight", isSignal: true, isRequired: false, transformFunction: null }, typeaheadAutoSelectIndex: { classPropertyName: "typeaheadAutoSelectIndex", publicName: "typeaheadAutoSelectIndex", isSignal: true, isRequired: false, transformFunction: null }, typeaheadCloseOnEsc: { classPropertyName: "typeaheadCloseOnEsc", publicName: "typeaheadCloseOnEsc", isSignal: true, isRequired: false, transformFunction: null }, typeaheadClearValueOnSelect: { classPropertyName: "typeaheadClearValueOnSelect", publicName: "typeaheadClearValueOnSelect", isSignal: true, isRequired: false, transformFunction: null }, typeaheadWaitMs: { classPropertyName: "typeaheadWaitMs", publicName: "typeaheadWaitMs", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMinLength: { classPropertyName: "typeaheadMinLength", publicName: "typeaheadMinLength", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionField: { classPropertyName: "typeaheadOptionField", publicName: "typeaheadOptionField", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMultiSelect: { classPropertyName: "typeaheadMultiSelect", publicName: "typeaheadMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTokenize: { classPropertyName: "typeaheadTokenize", publicName: "typeaheadTokenize", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMatchAllTokens: { classPropertyName: "typeaheadMatchAllTokens", publicName: "typeaheadMatchAllTokens", isSignal: true, isRequired: false, transformFunction: null }, typeaheadItemTemplate: { classPropertyName: "typeaheadItemTemplate", publicName: "typeaheadItemTemplate", isSignal: true, isRequired: false, transformFunction: null }, typeaheadSkipSortingMatches: { classPropertyName: "typeaheadSkipSortingMatches", publicName: "typeaheadSkipSortingMatches", isSignal: true, isRequired: false, transformFunction: null }, typeaheadAutocompleteListLabel: { classPropertyName: "typeaheadAutocompleteListLabel", publicName: "typeaheadAutocompleteListLabel", isSignal: true, isRequired: false, transformFunction: null }, typeaheadFullWidth: { classPropertyName: "typeaheadFullWidth", publicName: "typeaheadFullWidth", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollStrategy: { classPropertyName: "typeaheadScrollStrategy", publicName: "typeaheadScrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, typeaheadCreateOption: { classPropertyName: "typeaheadCreateOption", publicName: "typeaheadCreateOption", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { typeaheadOnInput: "typeaheadOnInput", typeaheadOnSelect: "typeaheadOnSelect", typeaheadOnFullMatch: "typeaheadOnFullMatch", typeaheadOpenChange: "typeaheadOpenChange", typeaheadOnCreateOption: "typeaheadOnCreateOption" }, host: { listeners: { "focusout": "onBlur()", "focusin": "onInput($event)", "input": "onInput($event)", "keydown.escape": "onKeydownEscape()" }, classAttribute: "si-typeahead" }, exportAs: ["si-typeahead"], usesOnChanges: true, hostDirectives: [{ directive: i1.SiAutocompleteDirective }], ngImport: i0 });
|
|
826
840
|
}
|
|
827
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
841
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadDirective, decorators: [{
|
|
828
842
|
type: Directive,
|
|
829
843
|
args: [{
|
|
830
844
|
selector: '[siTypeahead]',
|
|
831
845
|
host: {
|
|
832
|
-
class: 'si-typeahead'
|
|
846
|
+
class: 'si-typeahead',
|
|
847
|
+
'(focusout)': 'onBlur()',
|
|
848
|
+
'(focusin)': 'onInput($event)',
|
|
849
|
+
'(input)': 'onInput($event)',
|
|
850
|
+
'(keydown.escape)': 'onKeydownEscape()'
|
|
833
851
|
},
|
|
834
852
|
hostDirectives: [SiAutocompleteDirective],
|
|
835
853
|
exportAs: 'si-typeahead'
|
|
836
854
|
}]
|
|
837
|
-
}], ctorParameters: () => [], propDecorators: { siTypeahead: [{ type: i0.Input, args: [{ isSignal: true, alias: "siTypeahead", required: true }] }], typeaheadProcess: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadProcess", required: false }] }], typeaheadScrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollable", required: false }] }], typeaheadOptionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsInScrollableView", required: false }] }], typeaheadOptionsLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsLimit", required: false }] }], typeaheadScrollableAdditionalHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollableAdditionalHeight", required: false }] }], typeaheadAutoSelectIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutoSelectIndex", required: false }] }], typeaheadCloseOnEsc: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCloseOnEsc", required: false }] }], typeaheadClearValueOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadClearValueOnSelect", required: false }] }], typeaheadWaitMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadWaitMs", required: false }] }], typeaheadMinLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMinLength", required: false }] }], typeaheadOptionField: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionField", required: false }] }], typeaheadMultiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMultiSelect", required: false }] }], typeaheadTokenize: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadTokenize", required: false }] }], typeaheadMatchAllTokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMatchAllTokens", required: false }] }], typeaheadItemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadItemTemplate", required: false }] }], typeaheadSkipSortingMatches: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadSkipSortingMatches", required: false }] }], typeaheadAutocompleteListLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutocompleteListLabel", required: false }] }], typeaheadFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadFullWidth", required: false }] }], typeaheadScrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollStrategy", required: false }] }], typeaheadCreateOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCreateOption", required: false }] }], typeaheadOnInput: [{ type: i0.Output, args: ["typeaheadOnInput"] }], typeaheadOnSelect: [{ type: i0.Output, args: ["typeaheadOnSelect"] }], typeaheadOnFullMatch: [{ type: i0.Output, args: ["typeaheadOnFullMatch"] }], typeaheadOpenChange: [{ type: i0.Output, args: ["typeaheadOpenChange"] }], typeaheadOnCreateOption: [{ type: i0.Output, args: ["typeaheadOnCreateOption"] }]
|
|
838
|
-
type: HostListener,
|
|
839
|
-
args: ['focusout']
|
|
840
|
-
}], onInput: [{
|
|
841
|
-
type: HostListener,
|
|
842
|
-
args: ['focusin', ['$event']]
|
|
843
|
-
}, {
|
|
844
|
-
type: HostListener,
|
|
845
|
-
args: ['input', ['$event']]
|
|
846
|
-
}], onKeydownEscape: [{
|
|
847
|
-
type: HostListener,
|
|
848
|
-
args: ['keydown.escape']
|
|
849
|
-
}] } });
|
|
855
|
+
}], ctorParameters: () => [], propDecorators: { siTypeahead: [{ type: i0.Input, args: [{ isSignal: true, alias: "siTypeahead", required: true }] }], typeaheadProcess: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadProcess", required: false }] }], typeaheadScrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollable", required: false }] }], typeaheadOptionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsInScrollableView", required: false }] }], typeaheadOptionsLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsLimit", required: false }] }], typeaheadScrollableAdditionalHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollableAdditionalHeight", required: false }] }], typeaheadAutoSelectIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutoSelectIndex", required: false }] }], typeaheadCloseOnEsc: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCloseOnEsc", required: false }] }], typeaheadClearValueOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadClearValueOnSelect", required: false }] }], typeaheadWaitMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadWaitMs", required: false }] }], typeaheadMinLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMinLength", required: false }] }], typeaheadOptionField: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionField", required: false }] }], typeaheadMultiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMultiSelect", required: false }] }], typeaheadTokenize: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadTokenize", required: false }] }], typeaheadMatchAllTokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMatchAllTokens", required: false }] }], typeaheadItemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadItemTemplate", required: false }] }], typeaheadSkipSortingMatches: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadSkipSortingMatches", required: false }] }], typeaheadAutocompleteListLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutocompleteListLabel", required: false }] }], typeaheadFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadFullWidth", required: false }] }], typeaheadScrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollStrategy", required: false }] }], typeaheadCreateOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCreateOption", required: false }] }], typeaheadOnInput: [{ type: i0.Output, args: ["typeaheadOnInput"] }], typeaheadOnSelect: [{ type: i0.Output, args: ["typeaheadOnSelect"] }], typeaheadOnFullMatch: [{ type: i0.Output, args: ["typeaheadOnFullMatch"] }], typeaheadOpenChange: [{ type: i0.Output, args: ["typeaheadOpenChange"] }], typeaheadOnCreateOption: [{ type: i0.Output, args: ["typeaheadOnCreateOption"] }] } });
|
|
850
856
|
|
|
851
857
|
/**
|
|
852
858
|
* Copyright (c) Siemens 2016 - 2026
|
|
853
859
|
* SPDX-License-Identifier: MIT
|
|
854
860
|
*/
|
|
855
861
|
class SiTypeaheadModule {
|
|
856
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
857
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
858
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
862
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
863
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadModule, imports: [SiTypeaheadDirective, SiTypeaheadItemTemplateDirective], exports: [SiTypeaheadDirective, SiTypeaheadItemTemplateDirective] });
|
|
864
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadModule });
|
|
859
865
|
}
|
|
860
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
866
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiTypeaheadModule, decorators: [{
|
|
861
867
|
type: NgModule,
|
|
862
868
|
args: [{
|
|
863
869
|
imports: [SiTypeaheadDirective, SiTypeaheadItemTemplateDirective],
|