@siemens/element-ng 48.1.0 → 48.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +5 -0
  2. package/card/index.d.ts +68 -29
  3. package/common/index.d.ts +11 -0
  4. package/dashboard/index.d.ts +1 -0
  5. package/datepicker/index.d.ts +30 -34
  6. package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
  7. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-card.mjs +103 -37
  9. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-common.mjs +6 -0
  11. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-connection-strength.mjs +2 -2
  13. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
  15. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-dashboard.mjs +10 -8
  17. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-datatable.mjs +5 -0
  19. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-date-range-filter.mjs +1 -1
  21. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-datepicker.mjs +173 -151
  23. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-file-uploader.mjs +2 -2
  25. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-filter-bar.mjs +5 -5
  27. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-filtered-search.mjs +15 -3
  29. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-form.mjs +7 -1
  31. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-formly.mjs +2 -2
  33. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-header-dropdown.mjs +13 -1
  35. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-ip-input.mjs +62 -28
  37. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  38. package/fesm2022/siemens-element-ng-language-switcher.mjs +1 -1
  39. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  40. package/fesm2022/siemens-element-ng-list-details.mjs +2 -2
  41. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  42. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +1 -1
  43. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  44. package/fesm2022/siemens-element-ng-pagination.mjs +2 -2
  45. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  46. package/fesm2022/siemens-element-ng-photo-upload.mjs +1 -1
  47. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  48. package/fesm2022/siemens-element-ng-search-bar.mjs +14 -4
  49. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  50. package/fesm2022/siemens-element-ng-side-panel.mjs +2 -2
  51. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  52. package/fesm2022/siemens-element-ng-status-bar.mjs +2 -2
  53. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  54. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +2 -2
  55. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  56. package/fesm2022/siemens-element-ng-tabs.mjs +5 -5
  57. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  58. package/fesm2022/siemens-element-ng-tooltip.mjs +5 -6
  59. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  60. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-tree-view.mjs +4 -4
  62. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-typeahead.mjs +329 -257
  64. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  65. package/filter-bar/index.d.ts +9 -3
  66. package/header-dropdown/index.d.ts +7 -0
  67. package/ip-input/index.d.ts +42 -5
  68. package/package.json +23 -19
  69. package/schematics/collection.json +34 -0
  70. package/schematics/migrations/action-modal-migration/action-modal-migration.js +121 -0
  71. package/schematics/migrations/action-modal-migration/action-modal.mappings.js +98 -0
  72. package/schematics/migrations/action-modal-migration/index.js +5 -0
  73. package/schematics/migrations/index.js +13 -0
  74. package/schematics/migrations/schema.json +16 -0
  75. package/schematics/migrations/to-legacy-migration/to-legacy-migration.js +55 -0
  76. package/schematics/migrations/to-legacy-migration/to-legacy-replacement.js +35 -0
  77. package/schematics/ng-add/index.js +16 -0
  78. package/schematics/ng-add/schema.json +16 -0
  79. package/schematics/scss-import-to-siemens-migration/index.js +101 -0
  80. package/schematics/scss-import-to-siemens-migration/schema.json +16 -0
  81. package/schematics/scss-import-to-siemens-migration/style-mappings.js +46 -0
  82. package/schematics/simpl-siemens-migration/index.js +18 -0
  83. package/schematics/simpl-siemens-migration/schema.json +16 -0
  84. package/schematics/ts-import-to-siemens-migration/index.js +118 -0
  85. package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +70 -0
  86. package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +52 -0
  87. package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +651 -0
  88. package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +21 -0
  89. package/schematics/ts-import-to-siemens-migration/mappings/index.js +9 -0
  90. package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +46 -0
  91. package/schematics/ts-import-to-siemens-migration/model.js +4 -0
  92. package/schematics/ts-import-to-siemens-migration/schema.json +16 -0
  93. package/schematics/utils/html-utils.js +72 -0
  94. package/schematics/utils/index.js +10 -0
  95. package/schematics/utils/project-utils.js +75 -0
  96. package/schematics/utils/schematics-file-system.js +22 -0
  97. package/schematics/utils/template-utils.js +114 -0
  98. package/schematics/utils/testing.js +41 -0
  99. package/schematics/utils/ts-utils.js +195 -0
  100. package/search-bar/index.d.ts +11 -1
  101. package/template-i18n.json +7 -0
  102. package/tooltip/index.d.ts +1 -1
  103. package/translate/index.d.ts +7 -0
  104. package/typeahead/index.d.ts +85 -4
@@ -154,13 +154,13 @@ class SiFilteredSearchDateValueComponent extends SiFilteredSearchValueBase {
154
154
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiFilteredSearchDateValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
155
155
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiFilteredSearchDateValueComponent, isStandalone: true, selector: "si-filtered-search-date-value", providers: [
156
156
  { provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchDateValueComponent }
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 <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\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: "pipe", type: DatePipe, name: "date" }, { 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: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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: "pipe", type: DatePipe, name: "date" }, { 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: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
158
158
  }
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiFilteredSearchDateValueComponent, decorators: [{
160
160
  type: Component,
161
161
  args: [{ selector: 'si-filtered-search-date-value', imports: [DatePipe, FormsModule, SiDatepickerDirective, SiTranslatePipe], providers: [
162
162
  { provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchDateValueComponent }
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 <!-- eslint-disable-next-line @angular-eslint/template/no-any -->\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
+ ], 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"] }]
164
164
  }], ctorParameters: () => [] });
165
165
 
166
166
  /**
@@ -307,10 +307,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
307
307
  class SiFilteredSearchTypeaheadComponent extends SiFilteredSearchOptionValueBase {
308
308
  valueInput = viewChild('valueInput');
309
309
  optionValue = signal(undefined);
310
+ // This must be a separate signal as it should only emit when the actual empty state changes.
311
+ inputEmpty = computed(() => !this.criterionValue().value);
310
312
  // This MUST only be updated if the active state changes.
311
313
  // Otherwise, user values might be overridden.
312
314
  // It is only used to pass the initial input value if the user starts editing the input.
313
315
  valueLabel = computed(() => {
316
+ // This is needed for the clear button.
317
+ // But we cannot subscribe to the value changes itself, as those would cause to many updates.
318
+ if (this.inputEmpty()) {
319
+ return '';
320
+ }
314
321
  if (this.active()) {
315
322
  const option = untracked(() => this.optionValue());
316
323
  if (option) {
@@ -322,6 +329,11 @@ class SiFilteredSearchTypeaheadComponent extends SiFilteredSearchOptionValueBase
322
329
  }
323
330
  return '';
324
331
  });
332
+ ngOnChanges(changes) {
333
+ if (changes.criterionValue && this.criterionValue().value !== this.optionValue()?.value) {
334
+ this.optionValue.set(undefined);
335
+ }
336
+ }
325
337
  ngOnInit() {
326
338
  this.inputChange.next(this.criterionValue().value ?? '');
327
339
  this.buildOptionValue();
@@ -384,7 +396,7 @@ class SiFilteredSearchTypeaheadComponent extends SiFilteredSearchOptionValueBase
384
396
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiFilteredSearchTypeaheadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
385
397
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiFilteredSearchTypeaheadComponent, isStandalone: true, selector: "si-filtered-search-typeahead", providers: [
386
398
  { provide: SiFilteredSearchValueBase, useExisting: SiFilteredSearchTypeaheadComponent }
387
- ], viewQueries: [{ propertyName: "valueInput", first: true, predicate: ["valueInput"], descendants: true, isSignal: true }], usesInheritance: 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]=\"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"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange"], 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 });
399
+ ], 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]=\"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"], outputs: ["typeaheadOnInput", "typeaheadOnSelect", "typeaheadOnFullMatch", "typeaheadOpenChange"], 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 });
388
400
  }
389
401
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiFilteredSearchTypeaheadComponent, decorators: [{
390
402
  type: Component,