@progress/kendo-angular-dropdowns 14.4.0-develop.9 → 15.0.0-develop.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.
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Renderer2, forwardRef, ElementRef, Input, Output, EventEmitter, ContentChild, ViewChild, ViewContainerRef, TemplateRef, HostBinding, isDevMode, ChangeDetectorRef, NgZone, Optional, Inject, Injector } from '@angular/core';
6
- import { isDocumentAvailable, KendoInput, hasObservers } from '@progress/kendo-angular-common';
6
+ import { isDocumentAvailable, KendoInput, hasObservers, SuffixTemplateDirective, PrefixTemplateDirective } from '@progress/kendo-angular-common';
7
7
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
8
8
  import { validatePackage } from '@progress/kendo-licensing';
9
9
  import { packageMetadata } from '../package-metadata';
@@ -37,14 +37,15 @@ import * as i3 from "@progress/kendo-angular-popup";
37
37
  import * as i4 from "../common/selection/selection.service";
38
38
  import * as i5 from "../common/navigation/navigation.service";
39
39
  import * as i6 from "../common/disabled-items/disabled-items.service";
40
- import * as i7 from "../common/searchbar.component";
41
- import * as i8 from "@progress/kendo-angular-icons";
42
- import * as i9 from "@progress/kendo-angular-common";
40
+ import * as i7 from "@progress/kendo-angular-common";
41
+ import * as i8 from "../common/searchbar.component";
42
+ import * as i9 from "@progress/kendo-angular-icons";
43
43
  import * as i10 from "../common/action-sheet.component";
44
44
  import * as i11 from "../common/list.component";
45
45
  import * as i12 from "../common/localization/localized-messages.directive";
46
- import * as i13 from "@angular/common";
47
- import * as i14 from "../common/templates/template-context.directive";
46
+ import * as i13 from "../common/shared-events.directive";
47
+ import * as i14 from "@angular/common";
48
+ import * as i15 from "../common/templates/template-context.directive";
48
49
  const NO_VALUE = "";
49
50
  const DEFAULT_SIZE = 'medium';
50
51
  const DEFAULT_ROUNDED = 'medium';
@@ -192,6 +193,14 @@ export class AutoCompleteComponent {
192
193
  * Fires each time the AutoComplete gets blurred.
193
194
  */
194
195
  this.onBlur = new EventEmitter();
196
+ /**
197
+ * Fires each time the user focuses the `input` element.
198
+ */
199
+ this.inputFocus = new EventEmitter();
200
+ /**
201
+ * Fires each time the `input` element gets blurred.
202
+ */
203
+ this.inputBlur = new EventEmitter();
195
204
  this.widgetClasses = true;
196
205
  this.listBoxId = `k-${guid()}`;
197
206
  this.optionPrefix = `k-${guid()}`;
@@ -814,18 +823,55 @@ export class AutoCompleteComponent {
814
823
  /**
815
824
  * @hidden
816
825
  */
817
- handleFocus() {
818
- this.isFocused = true;
819
- if (hasObservers(this.onFocus)) {
826
+ handleInputFocus() {
827
+ this.handleFocus();
828
+ if (hasObservers(this.inputFocus)) {
820
829
  this._zone.run(() => {
821
- this.onFocus.emit();
830
+ this.inputFocus.emit();
822
831
  });
823
832
  }
824
833
  }
834
+ /**
835
+ * @hidden
836
+ */
837
+ handleFocus() {
838
+ this._zone.run(() => {
839
+ if (!this.isFocused && hasObservers(this.onFocus)) {
840
+ this.onFocus.emit();
841
+ }
842
+ this.isFocused = true;
843
+ });
844
+ }
825
845
  /**
826
846
  * @hidden
827
847
  */
828
848
  handleBlur() {
849
+ if (!this.isActionSheetExpanded) {
850
+ this.isFocused = false;
851
+ const valueHasChanged = this.value !== this.text;
852
+ const runInZone = hasObservers(this.onBlur) ||
853
+ hasObservers(this.close) ||
854
+ isUntouched(this.wrapper) ||
855
+ valueHasChanged;
856
+ if (runInZone) {
857
+ this._zone.run(() => {
858
+ if (valueHasChanged) {
859
+ this.change(this.searchbar.value);
860
+ }
861
+ this.onBlur.emit();
862
+ this.onTouchedCallback();
863
+ this.togglePopup(false);
864
+ });
865
+ }
866
+ else {
867
+ this.togglePopup(false);
868
+ }
869
+ }
870
+ }
871
+ /**
872
+ * @hidden
873
+ */
874
+ handleInputBlur() {
829
875
  if (!this.isActionSheetExpanded) {
830
876
  const focused = this.filterable ? this.selectionService.focused : -1;
831
877
  this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers
@@ -843,9 +889,8 @@ export class AutoCompleteComponent {
843
889
  if (!exactMatch && insensitiveMatch) {
844
890
  this.selectionService.resetSelection([]);
845
891
  }
846
- this.isFocused = false;
847
892
  const valueHasChanged = this.value !== this.text;
848
- const runInZone = hasObservers(this.onBlur) ||
893
+ const runInZone = hasObservers(this.inputBlur) ||
849
894
  hasObservers(this.close) ||
850
895
  isUntouched(this.wrapper) ||
851
896
  valueHasChanged ||
@@ -855,7 +900,7 @@ export class AutoCompleteComponent {
855
900
  if (valueHasChanged) {
856
901
  this.change(this.searchbar.value);
857
902
  }
858
- this.onBlur.emit();
903
+ this.inputBlur.emit();
859
904
  this.onTouchedCallback();
860
905
  this.togglePopup(false);
861
906
  });
@@ -1079,7 +1124,7 @@ export class AutoCompleteComponent {
1079
1124
  }
1080
1125
  }
1081
1126
  AutoCompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: i2.DataService }, { token: i3.PopupService }, { token: i4.SelectionService }, { token: i5.NavigationService }, { token: i6.DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: TOUCH_ENABLED, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1082
- AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", showStickyHeader: "showStickyHeader", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
1127
+ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteComponent, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", showStickyHeader: "showStickyHeader", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur" }, host: { properties: { "class.k-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
1083
1128
  AUTOCOMPLETE_VALUE_ACCESSOR,
1084
1129
  DataService,
1085
1130
  SelectionService,
@@ -1098,7 +1143,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
1098
1143
  provide: KendoInput,
1099
1144
  useExisting: forwardRef(() => AutoCompleteComponent)
1100
1145
  }
1101
- ], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoAutoComplete"], usesOnChanges: true, ngImport: i0, template: `
1146
+ ], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoAutoComplete"], usesOnChanges: true, ngImport: i0, template: `
1102
1147
  <ng-container kendoAutoCompleteLocalizedMessages
1103
1148
  i18n-noDataText="kendo.autocomplete.noDataText|The text displayed in the popup when there are no items"
1104
1149
  noDataText="NO DATA FOUND"
@@ -1110,44 +1155,64 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
1110
1155
  popupLabel="Options list"
1111
1156
  >
1112
1157
  </ng-container>
1113
- <kendo-searchbar #searchbar
1114
- [role]="'combobox'"
1115
- [ariaExpanded]="isOpen"
1116
- [isSuggestable]="suggest"
1117
- [isFilterable]="filterable"
1118
- [isLoading]="isLoading"
1119
- [ariaControls]="ariaControls"
1120
- [id]="focusableId"
1121
- [activeDescendant]="activeDescendant"
1122
- [userInput]="text"
1123
- [suggestedText]="suggestion"
1124
- [disabled]="disabled"
1125
- [readonly]="readonly || this.isAdaptive"
1126
- [tabIndex]="tabIndex"
1127
- [placeholder]="placeholder"
1128
- (onNavigate)="handleNavigate($event)"
1129
- (valueChange)="searchBarChange($event)"
1130
- (onBlur)="handleBlur()"
1158
+
1159
+ <ng-container
1160
+ kendoDropDownSharedEvents
1161
+ [hostElement]="hostElement"
1162
+ [(isFocused)]="isFocused"
1163
+ (handleBlur)="handleBlur()"
1131
1164
  (onFocus)="handleFocus()"
1132
- (click)="handleClick()"
1133
- ></kendo-searchbar>
1134
- <span
1135
- *ngIf="!loading && !readonly && (clearButton && text?.length)"
1136
- class="k-clear-value"
1137
- [style.visibility]="clearButtonVisiblity"
1138
- [attr.title]="messageFor('clearTitle')"
1139
- role="button"
1140
- tabindex="-1"
1141
- (click)="clearValue($event)"
1142
- (mousedown)="$event.preventDefault()"
1143
1165
  >
1144
- <kendo-icon-wrapper
1145
- name="x"
1146
- [svgIcon]="xIcon"
1166
+ <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
1167
+ <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
1168
+ </ng-template>
1169
+ </span>
1170
+ <kendo-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-separator>
1171
+ <kendo-searchbar #searchbar
1172
+ [role]="'combobox'"
1173
+ [ariaExpanded]="isOpen"
1174
+ [isSuggestable]="suggest"
1175
+ [isFilterable]="filterable"
1176
+ [isLoading]="isLoading"
1177
+ [ariaControls]="ariaControls"
1178
+ [id]="focusableId"
1179
+ [activeDescendant]="activeDescendant"
1180
+ [userInput]="text"
1181
+ [suggestedText]="suggestion"
1182
+ [disabled]="disabled"
1183
+ [readonly]="readonly || this.isAdaptive"
1184
+ [tabIndex]="tabIndex"
1185
+ [placeholder]="placeholder"
1186
+ (onNavigate)="handleNavigate($event)"
1187
+ (valueChange)="searchBarChange($event)"
1188
+ (onBlur)="handleInputBlur()"
1189
+ (onFocus)="handleInputFocus()"
1190
+ (click)="handleClick()"
1191
+ ></kendo-searchbar>
1192
+ <span
1193
+ *ngIf="!loading && !readonly && (clearButton && text?.length)"
1194
+ class="k-clear-value"
1195
+ [style.visibility]="clearButtonVisiblity"
1196
+ [attr.title]="messageFor('clearTitle')"
1197
+ role="button"
1198
+ tabindex="-1"
1199
+ (click)="clearValue($event)"
1200
+ (mousedown)="$event.preventDefault()"
1147
1201
  >
1148
- </kendo-icon-wrapper>
1149
- </span>
1150
- <span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
1202
+ <kendo-icon-wrapper
1203
+ name="x"
1204
+ [svgIcon]="xIcon"
1205
+ >
1206
+ </kendo-icon-wrapper>
1207
+ </span>
1208
+ <span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
1209
+ <kendo-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-separator>
1210
+ <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
1211
+ <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
1212
+ </ng-template>
1213
+ </span>
1214
+ </ng-container>
1215
+
1151
1216
  <ng-template #popupTemplate>
1152
1217
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
1153
1218
  </ng-template>
@@ -1213,7 +1278,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
1213
1278
  }">
1214
1279
  </ng-template>
1215
1280
  </ng-template>
1216
- `, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i10.ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: i11.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: i12.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
1281
+ `, isInline: true, components: [{ type: i7.SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { type: i8.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i9.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i7.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i10.ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: i11.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }], directives: [{ type: i12.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i15.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
1217
1282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
1218
1283
  type: Component,
1219
1284
  args: [{
@@ -1251,44 +1316,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1251
1316
  popupLabel="Options list"
1252
1317
  >
1253
1318
  </ng-container>
1254
- <kendo-searchbar #searchbar
1255
- [role]="'combobox'"
1256
- [ariaExpanded]="isOpen"
1257
- [isSuggestable]="suggest"
1258
- [isFilterable]="filterable"
1259
- [isLoading]="isLoading"
1260
- [ariaControls]="ariaControls"
1261
- [id]="focusableId"
1262
- [activeDescendant]="activeDescendant"
1263
- [userInput]="text"
1264
- [suggestedText]="suggestion"
1265
- [disabled]="disabled"
1266
- [readonly]="readonly || this.isAdaptive"
1267
- [tabIndex]="tabIndex"
1268
- [placeholder]="placeholder"
1269
- (onNavigate)="handleNavigate($event)"
1270
- (valueChange)="searchBarChange($event)"
1271
- (onBlur)="handleBlur()"
1319
+
1320
+ <ng-container
1321
+ kendoDropDownSharedEvents
1322
+ [hostElement]="hostElement"
1323
+ [(isFocused)]="isFocused"
1324
+ (handleBlur)="handleBlur()"
1272
1325
  (onFocus)="handleFocus()"
1273
- (click)="handleClick()"
1274
- ></kendo-searchbar>
1275
- <span
1276
- *ngIf="!loading && !readonly && (clearButton && text?.length)"
1277
- class="k-clear-value"
1278
- [style.visibility]="clearButtonVisiblity"
1279
- [attr.title]="messageFor('clearTitle')"
1280
- role="button"
1281
- tabindex="-1"
1282
- (click)="clearValue($event)"
1283
- (mousedown)="$event.preventDefault()"
1284
1326
  >
1285
- <kendo-icon-wrapper
1286
- name="x"
1287
- [svgIcon]="xIcon"
1327
+ <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
1328
+ <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
1329
+ </ng-template>
1330
+ </span>
1331
+ <kendo-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-separator>
1332
+ <kendo-searchbar #searchbar
1333
+ [role]="'combobox'"
1334
+ [ariaExpanded]="isOpen"
1335
+ [isSuggestable]="suggest"
1336
+ [isFilterable]="filterable"
1337
+ [isLoading]="isLoading"
1338
+ [ariaControls]="ariaControls"
1339
+ [id]="focusableId"
1340
+ [activeDescendant]="activeDescendant"
1341
+ [userInput]="text"
1342
+ [suggestedText]="suggestion"
1343
+ [disabled]="disabled"
1344
+ [readonly]="readonly || this.isAdaptive"
1345
+ [tabIndex]="tabIndex"
1346
+ [placeholder]="placeholder"
1347
+ (onNavigate)="handleNavigate($event)"
1348
+ (valueChange)="searchBarChange($event)"
1349
+ (onBlur)="handleInputBlur()"
1350
+ (onFocus)="handleInputFocus()"
1351
+ (click)="handleClick()"
1352
+ ></kendo-searchbar>
1353
+ <span
1354
+ *ngIf="!loading && !readonly && (clearButton && text?.length)"
1355
+ class="k-clear-value"
1356
+ [style.visibility]="clearButtonVisiblity"
1357
+ [attr.title]="messageFor('clearTitle')"
1358
+ role="button"
1359
+ tabindex="-1"
1360
+ (click)="clearValue($event)"
1361
+ (mousedown)="$event.preventDefault()"
1288
1362
  >
1289
- </kendo-icon-wrapper>
1290
- </span>
1291
- <span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
1363
+ <kendo-icon-wrapper
1364
+ name="x"
1365
+ [svgIcon]="xIcon"
1366
+ >
1367
+ </kendo-icon-wrapper>
1368
+ </span>
1369
+ <span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
1370
+ <kendo-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-separator>
1371
+ <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
1372
+ <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
1373
+ </ng-template>
1374
+ </span>
1375
+ </ng-container>
1376
+
1292
1377
  <ng-template #popupTemplate>
1293
1378
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
1294
1379
  </ng-template>
@@ -1433,6 +1518,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1433
1518
  }], onBlur: [{
1434
1519
  type: Output,
1435
1520
  args: ['blur']
1521
+ }], inputFocus: [{
1522
+ type: Output
1523
+ }], inputBlur: [{
1524
+ type: Output
1436
1525
  }], template: [{
1437
1526
  type: ContentChild,
1438
1527
  args: [ItemTemplateDirective, { static: false }]
@@ -1451,6 +1540,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1451
1540
  }], fixedGroupTemplate: [{
1452
1541
  type: ContentChild,
1453
1542
  args: [FixedGroupTemplateDirective, { static: false }]
1543
+ }], suffixTemplate: [{
1544
+ type: ContentChild,
1545
+ args: [SuffixTemplateDirective]
1546
+ }], prefixTemplate: [{
1547
+ type: ContentChild,
1548
+ args: [PrefixTemplateDirective]
1454
1549
  }], container: [{
1455
1550
  type: ViewChild,
1456
1551
  args: ['container', { read: ViewContainerRef, static: true }]
@@ -6,6 +6,8 @@ import { NgModule } from '@angular/core';
6
6
  import { AutoCompleteComponent } from './autocomplete.component';
7
7
  import { SharedModule } from '../common/shared.module';
8
8
  import { SharedDirectivesModule } from '../common/shared-directives.module';
9
+ import { AdornmentsModule } from '@progress/kendo-angular-common';
10
+ import { SharedEventsModule } from '../common/shared-events.module';
9
11
  import * as i0 from "@angular/core";
10
12
  const AUTOCOMPLETE_DIRECTIVES = [
11
13
  AutoCompleteComponent
@@ -24,13 +26,13 @@ const AUTOCOMPLETE_DIRECTIVES = [
24
26
  export class AutoCompleteModule {
25
27
  }
26
28
  AutoCompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
- AutoCompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteModule, declarations: [AutoCompleteComponent], imports: [SharedModule], exports: [AutoCompleteComponent, SharedDirectivesModule] });
28
- AutoCompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteModule, imports: [[SharedModule], SharedDirectivesModule] });
29
+ AutoCompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteModule, declarations: [AutoCompleteComponent], imports: [SharedModule, AdornmentsModule, SharedEventsModule], exports: [AutoCompleteComponent, SharedDirectivesModule, AdornmentsModule] });
30
+ AutoCompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteModule, imports: [[SharedModule, AdornmentsModule, SharedEventsModule], SharedDirectivesModule, AdornmentsModule] });
29
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteModule, decorators: [{
30
32
  type: NgModule,
31
33
  args: [{
32
34
  declarations: [AUTOCOMPLETE_DIRECTIVES],
33
- exports: [AUTOCOMPLETE_DIRECTIVES, SharedDirectivesModule],
34
- imports: [SharedModule]
35
+ exports: [AUTOCOMPLETE_DIRECTIVES, SharedDirectivesModule, AdornmentsModule],
36
+ imports: [SharedModule, AdornmentsModule, SharedEventsModule]
35
37
  }]
36
38
  }] });