@progress/kendo-angular-dropdowns 7.1.0-dev.202208301349 → 7.2.0-dev.202209121509

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 (30) hide show
  1. package/autocomplete/autocomplete.component.d.ts +0 -1
  2. package/bundles/kendo-angular-dropdowns.umd.js +1 -1
  3. package/comboboxes/combobox.component.d.ts +0 -1
  4. package/common/data.service.d.ts +5 -0
  5. package/common/list.component.d.ts +4 -1
  6. package/common/navigation/navigation-action.d.ts +6 -1
  7. package/common/navigation/navigation.service.d.ts +5 -0
  8. package/common/searchbar.component.d.ts +17 -6
  9. package/common/selection/selection.service.d.ts +18 -4
  10. package/common/shared.module.d.ts +1 -1
  11. package/common/util.d.ts +4 -0
  12. package/dropdownlist/dropdownlist.component.d.ts +22 -10
  13. package/esm2015/autocomplete/autocomplete.component.js +12 -8
  14. package/esm2015/comboboxes/combobox.component.js +14 -8
  15. package/esm2015/comboboxes/multicolumncombobox.component.js +13 -3
  16. package/esm2015/common/data.service.js +11 -1
  17. package/esm2015/common/list.component.js +17 -2
  18. package/esm2015/common/navigation/navigation-action.js +5 -0
  19. package/esm2015/common/navigation/navigation.service.js +22 -0
  20. package/esm2015/common/searchbar.component.js +79 -19
  21. package/esm2015/common/selection/selectable.directive.js +2 -1
  22. package/esm2015/common/selection/selection.service.js +70 -7
  23. package/esm2015/common/shared.module.js +6 -6
  24. package/esm2015/common/util.js +4 -0
  25. package/esm2015/dropdownlist/dropdownlist.component.js +73 -42
  26. package/esm2015/multiselect/multiselect.component.js +160 -44
  27. package/esm2015/package-metadata.js +1 -1
  28. package/fesm2015/kendo-angular-dropdowns.js +595 -251
  29. package/multiselect/multiselect.component.d.ts +14 -4
  30. package/package.json +1 -1
@@ -248,7 +248,6 @@ export class MultiSelectComponent {
248
248
  */
249
249
  this.removeTag = new EventEmitter();
250
250
  this.hostClasses = true;
251
- this.role = 'combobox';
252
251
  this.initialized = false;
253
252
  this._size = 'medium';
254
253
  this._rounded = 'medium';
@@ -561,8 +560,15 @@ export class MultiSelectComponent {
561
560
  get isLoading() {
562
561
  return this.loading;
563
562
  }
564
- get isAriaExpanded() {
565
- return this.isOpen;
563
+ /**
564
+ * @hidden
565
+ */
566
+ handleKeyboardEvent(event) {
567
+ if (event.ctrlKey && event.keyCode === Keys.KeyA) {
568
+ event.preventDefault();
569
+ event.stopImmediatePropagation();
570
+ this.handleSelectAll();
571
+ }
566
572
  }
567
573
  /**
568
574
  * @hidden
@@ -625,11 +631,6 @@ export class MultiSelectComponent {
625
631
  }
626
632
  return prefix + "-" + getter(item, this.valueField);
627
633
  }
628
- get noDataLabel() {
629
- if (this.dataService.itemsCount === 0) {
630
- return this.messageFor('noDataText');
631
- }
632
- }
633
634
  get clearButtonVisiblity() {
634
635
  if (this.touchEnabled) {
635
636
  return 'visible';
@@ -660,23 +661,45 @@ export class MultiSelectComponent {
660
661
  * @hidden
661
662
  */
662
663
  change(event) {
663
- const isCustomItem = (isPresent(event.added) || isPresent(event.removed)) && (event.added === -1 || event.removed === -1);
664
- if (isCustomItem) {
665
- this.addCustomValue(this.text);
666
- return; // The change is emited asynchronosly.
667
- }
668
- // Existing items.
669
- if (isPresent(event.added)) {
670
- const dataItem = this.dataService.itemAt(event.added);
671
- const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
672
- this.value = [...this.value, newItem];
673
- }
674
- if (isPresent(event.removed)) {
675
- const dataItem = this.dataService.itemAt(event.removed);
676
- const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
677
- this.value = this.value.filter(filter);
678
- this.selectionService.focused = event.removed;
679
- this.cdr.detectChanges();
664
+ if (event.isMultipleSelection) {
665
+ // Existing items.
666
+ if (isPresent(event.added) && event.added.length > 0) {
667
+ event.added.forEach((itemIndex) => {
668
+ const dataItem = this.dataService.itemAt(itemIndex);
669
+ const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
670
+ if (newItem) {
671
+ this.value = [...this.value, newItem];
672
+ }
673
+ });
674
+ }
675
+ if (isPresent(event.removed) && event.removed.length > 0) {
676
+ event.removed.forEach((itemIndex) => {
677
+ const dataItem = this.dataService.itemAt(itemIndex);
678
+ const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
679
+ this.value = this.value.filter(filter);
680
+ });
681
+ this.cdr.detectChanges();
682
+ }
683
+ }
684
+ else {
685
+ const isCustomItem = (isPresent(event.added) || isPresent(event.removed)) && (event.added === -1 || event.removed === -1);
686
+ if (isCustomItem) {
687
+ this.addCustomValue(this.text);
688
+ return; // The change is emited asynchronosly.
689
+ }
690
+ // Existing items.
691
+ if (isPresent(event.added)) {
692
+ const dataItem = this.dataService.itemAt(event.added);
693
+ const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;
694
+ this.value = [...this.value, newItem];
695
+ }
696
+ if (isPresent(event.removed)) {
697
+ const dataItem = this.dataService.itemAt(event.removed);
698
+ const filter = (item) => getter(item, this.valueField) !== getter(dataItem, this.valueField);
699
+ this.value = this.value.filter(filter);
700
+ this.selectionService.focused = event.removed;
701
+ this.cdr.detectChanges();
702
+ }
680
703
  }
681
704
  this.emitValueChange();
682
705
  }
@@ -809,10 +832,11 @@ export class MultiSelectComponent {
809
832
  * @hidden
810
833
  */
811
834
  clearAll(event) {
812
- event.stopImmediatePropagation();
813
- event.preventDefault();
835
+ event === null || event === void 0 ? void 0 : event.stopImmediatePropagation();
836
+ event === null || event === void 0 ? void 0 : event.preventDefault();
814
837
  this.focus();
815
838
  this.clearFilter();
839
+ this.selectionService.lastClickedIndex = null;
816
840
  const selected = this.selectionService.selected;
817
841
  this.value = this.value.filter((_item, index) => this.disabledItemsService.isIndexDisabled(selected[index]));
818
842
  this.emitValueChange();
@@ -961,7 +985,11 @@ export class MultiSelectComponent {
961
985
  this.navigationService.delete.pipe(filter(isTagFocused)).subscribe(this.handleDelete.bind(this)),
962
986
  this.navigationService.left.subscribe(this.direction === 'rtl' ? this.handleRightKey.bind(this) : this.handleLeftKey.bind(this)),
963
987
  this.navigationService.right.subscribe(this.direction === 'rtl' ? this.handleLeftKey.bind(this) : this.handleRightKey.bind(this)),
964
- this.navigationService.down.subscribe((event) => this.handleDownKey(event.index))
988
+ this.navigationService.down.subscribe((event) => this.handleDownKey(event.index)),
989
+ this.navigationService.selectprevious.pipe(filter(isOpen)).subscribe((event) => this.handleSelectUpDown(event)),
990
+ this.navigationService.selectnext.pipe(filter(isOpen)).subscribe((event) => this.handleSelectUpDown(event)),
991
+ this.navigationService.selectalltobeginning.pipe(filter(isOpen)).subscribe(() => this.handleSelectAllToBeginning()),
992
+ this.navigationService.selectalltoend.pipe(filter(isOpen)).subscribe(() => this.handleSelectAllToEnd())
965
993
  ].forEach(s => this.observableSubscriptions.add(s));
966
994
  }
967
995
  subscribeTouchEvents() {
@@ -1020,7 +1048,7 @@ export class MultiSelectComponent {
1020
1048
  return;
1021
1049
  }
1022
1050
  if (isNumber(index)) {
1023
- this.selectionService.unselect(index);
1051
+ this.selectionService.deselect(index);
1024
1052
  this.selectionService.focused = index;
1025
1053
  this.togglePopup(false);
1026
1054
  }
@@ -1085,7 +1113,7 @@ export class MultiSelectComponent {
1085
1113
  }
1086
1114
  else {
1087
1115
  if (!customItem && this.selectionService.isSelected(itemIndex)) {
1088
- this.selectionService.unselect(itemIndex);
1116
+ this.selectionService.deselect(itemIndex);
1089
1117
  this.selectionService.focused = itemIndex;
1090
1118
  }
1091
1119
  else {
@@ -1107,7 +1135,7 @@ export class MultiSelectComponent {
1107
1135
  }
1108
1136
  handleItemChange(event) {
1109
1137
  this.change(event);
1110
- if (this.autoClose) {
1138
+ if (this.autoClose && !event.preventClosingPopup) {
1111
1139
  this.togglePopup(false);
1112
1140
  }
1113
1141
  if (this.autoClose || !this.filterable) {
@@ -1117,6 +1145,7 @@ export class MultiSelectComponent {
1117
1145
  handleEnter(event) {
1118
1146
  const service = this.selectionService;
1119
1147
  const focusedIndex = this.selectionService.focused;
1148
+ this.selectionService.lastClickedIndex = focusedIndex;
1120
1149
  if (this.isOpen) {
1121
1150
  event.originalEvent.preventDefault();
1122
1151
  }
@@ -1127,7 +1156,7 @@ export class MultiSelectComponent {
1127
1156
  return; // Clear filter & close are done at customValueSubscription due to race conditions.
1128
1157
  }
1129
1158
  if (service.isSelected(focusedIndex)) {
1130
- service.unselect(focusedIndex);
1159
+ service.deselect(focusedIndex);
1131
1160
  service.focused = focusedIndex;
1132
1161
  }
1133
1162
  else {
@@ -1150,6 +1179,85 @@ export class MultiSelectComponent {
1150
1179
  handleHome() {
1151
1180
  this.focusedTagIndex = 0;
1152
1181
  }
1182
+ sortSelectionAscending() {
1183
+ return this.selectionService.selected.sort((a, b) => a - b);
1184
+ }
1185
+ handleSelectAll() {
1186
+ const selectedItemsCount = this.selectionService.selected.length;
1187
+ const dataItemsCount = this.dataService.data.length;
1188
+ const dataItemsWithoutHeadersCount = this.dataService.data.filter(i => !i.header).length;
1189
+ if ((!this.dataService.grouped && selectedItemsCount === dataItemsCount) ||
1190
+ (this.dataService.grouped && selectedItemsCount === dataItemsWithoutHeadersCount)) {
1191
+ this.clearAll();
1192
+ }
1193
+ else {
1194
+ this.selectionService.selectFromTo(0, dataItemsCount - 1);
1195
+ this.selectionService.emitMultipleAddedRemoved();
1196
+ }
1197
+ }
1198
+ handleSelectAllToBeginning() {
1199
+ const selectedItemsCount = this.selectionService.selected.length;
1200
+ const dataItemsCount = this.dataService.data.length;
1201
+ const focusedItem = this.selectionService.focused;
1202
+ const largestIndex = this.sortSelectionAscending()[selectedItemsCount - 1];
1203
+ if (selectedItemsCount !== dataItemsCount) {
1204
+ this.selectionService.unselectFromTo(largestIndex, focusedItem + 1);
1205
+ this.selectionService.selectFromTo(0, focusedItem);
1206
+ }
1207
+ this.nextTick(() => this.selectionService.focus(0));
1208
+ this.selectionService.emitMultipleAddedRemoved();
1209
+ }
1210
+ handleSelectAllToEnd() {
1211
+ const selectedItemsCount = this.selectionService.selected.length;
1212
+ const dataItemsCount = this.dataService.data.length;
1213
+ const focusedItem = this.selectionService.focused;
1214
+ if (selectedItemsCount !== dataItemsCount) {
1215
+ this.selectionService.unselectFromTo(focusedItem - 1, 0);
1216
+ this.selectionService.selectFromTo(focusedItem, dataItemsCount - 1);
1217
+ }
1218
+ if (this.dataService.grouped) {
1219
+ const lastItemIndex = this.dataService.groupIndices[this.dataService.groupIndices.length - 1] - 1;
1220
+ this.nextTick(() => this.selectionService.focus(lastItemIndex));
1221
+ }
1222
+ else {
1223
+ this.nextTick(() => this.selectionService.focus(dataItemsCount - 1));
1224
+ }
1225
+ this.selectionService.emitMultipleAddedRemoved();
1226
+ }
1227
+ handleSelectUpDown(event) {
1228
+ const focusedIndex = this.selectionService.focused;
1229
+ if (!isPresent(focusedIndex)) {
1230
+ return;
1231
+ }
1232
+ let indexToSelect;
1233
+ if (event.originalEvent.key === 'ArrowUp') {
1234
+ indexToSelect = focusedIndex > 0 ? focusedIndex - 1 : focusedIndex;
1235
+ }
1236
+ else {
1237
+ indexToSelect = focusedIndex < this.dataService.data.length - 1 ? focusedIndex + 1 : focusedIndex;
1238
+ }
1239
+ if (!isPresent(this.selectionService.lastClickedIndex)) {
1240
+ this.selectionService.lastClickedIndex = focusedIndex;
1241
+ }
1242
+ this.selectRangeFromTo(indexToSelect);
1243
+ }
1244
+ /**
1245
+ * Selects all items between the focused item and the last clicked item (index). Also removes all other selected items.
1246
+ */
1247
+ selectRangeFromTo(indexToSelect) {
1248
+ const lastClickedIndex = this.selectionService.lastClickedIndex;
1249
+ if (lastClickedIndex > indexToSelect) {
1250
+ this.selectionService.unselectNotNeededIndices(indexToSelect, lastClickedIndex, this.dataService.data.length);
1251
+ this.selectionService.selectFromTo(indexToSelect, this.selectionService.lastClickedIndex);
1252
+ this.selectionService.emitMultipleAddedRemoved();
1253
+ }
1254
+ else {
1255
+ this.selectionService.unselectNotNeededIndices(lastClickedIndex, indexToSelect, this.dataService.data.length);
1256
+ this.selectionService.selectFromTo(lastClickedIndex, indexToSelect);
1257
+ this.selectionService.emitMultipleAddedRemoved();
1258
+ }
1259
+ this.nextTick(() => this.selectionService.focus(indexToSelect));
1260
+ }
1153
1261
  handleUp(index) {
1154
1262
  this.selectionService.focused = index;
1155
1263
  }
@@ -1285,6 +1393,11 @@ export class MultiSelectComponent {
1285
1393
  popupWrapper.style.width = max;
1286
1394
  popupWrapper.style.height = this.height;
1287
1395
  popupWrapper.setAttribute("dir", this.direction);
1396
+ const listBox = popupWrapper.querySelector('ul.k-list-ul');
1397
+ const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
1398
+ if (ariaLabel) {
1399
+ listBox.setAttribute('aria-labelledby', ariaLabel);
1400
+ }
1288
1401
  this.popupRef.popupOpen.subscribe(() => {
1289
1402
  this.cdr.detectChanges();
1290
1403
  this.optionsList.scrollToItem(this.selectionService.focused);
@@ -1343,7 +1456,7 @@ export class MultiSelectComponent {
1343
1456
  }
1344
1457
  }
1345
1458
  MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: i3.DataService }, { token: i4.SelectionService }, { token: i5.NavigationService }, { token: i6.DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1346
- MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MultiSelectComponent, selector: "kendo-multiselect", inputs: { focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", removeTag: "removeTag" }, host: { listeners: { "mousedown": "hostMousedown($event)" }, properties: { "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading", "attr.role": "this.role", "attr.aria-expanded": "this.isAriaExpanded" } }, providers: [
1459
+ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MultiSelectComponent, selector: "kendo-multiselect", inputs: { focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", removeTag: "removeTag" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)", "mousedown": "hostMousedown($event)" }, properties: { "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
1347
1460
  MULTISELECT_VALUE_ACCESSOR,
1348
1461
  DataService,
1349
1462
  SelectionService,
@@ -1388,10 +1501,12 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
1388
1501
  <kendo-searchbar
1389
1502
  #searchbar
1390
1503
  [id]="focusableId"
1391
- [role]="'textbox'"
1504
+ [role]="'combobox'"
1392
1505
  [tagListId]="tagListId"
1506
+ [listId]="listBoxId"
1507
+ [isLoading]="loading"
1508
+ [isFilterable]="filterable"
1393
1509
  [activeDescendant]="activeDescendant"
1394
- [noDataLabel]="noDataLabel"
1395
1510
  [userInput]="text"
1396
1511
  [disabled]="disabled"
1397
1512
  [readonly]="readonly"
@@ -1465,6 +1580,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
1465
1580
  [virtual]="virtual"
1466
1581
  (pageChange)="pageChange($event)"
1467
1582
  [checkboxes]="checkboxes"
1583
+ [isMultiselect]="true"
1468
1584
  >
1469
1585
  </kendo-list>
1470
1586
  <!--no data template-->
@@ -1489,7 +1605,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
1489
1605
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
1490
1606
  </ng-template>
1491
1607
  <ng-container #container></ng-container>
1492
- `, isInline: true, components: [{ type: i7.TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: i8.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "noDataLabel", "disabled", "readonly", "tabIndex", "popupOpen", "role", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i9.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
1608
+ `, isInline: true, components: [{ type: i7.TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: i8.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i9.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i14.SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
1493
1609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiSelectComponent, decorators: [{
1494
1610
  type: Component,
1495
1611
  args: [{
@@ -1541,10 +1657,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1541
1657
  <kendo-searchbar
1542
1658
  #searchbar
1543
1659
  [id]="focusableId"
1544
- [role]="'textbox'"
1660
+ [role]="'combobox'"
1545
1661
  [tagListId]="tagListId"
1662
+ [listId]="listBoxId"
1663
+ [isLoading]="loading"
1664
+ [isFilterable]="filterable"
1546
1665
  [activeDescendant]="activeDescendant"
1547
- [noDataLabel]="noDataLabel"
1548
1666
  [userInput]="text"
1549
1667
  [disabled]="disabled"
1550
1668
  [readonly]="readonly"
@@ -1618,6 +1736,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1618
1736
  [virtual]="virtual"
1619
1737
  (pageChange)="pageChange($event)"
1620
1738
  [checkboxes]="checkboxes"
1739
+ [isMultiselect]="true"
1621
1740
  >
1622
1741
  </kendo-list>
1623
1742
  <!--no data template-->
@@ -1776,12 +1895,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1776
1895
  }], isLoading: [{
1777
1896
  type: HostBinding,
1778
1897
  args: ['class.k-loading']
1779
- }], role: [{
1780
- type: HostBinding,
1781
- args: ['attr.role']
1782
- }], isAriaExpanded: [{
1783
- type: HostBinding,
1784
- args: ['attr.aria-expanded']
1898
+ }], handleKeyboardEvent: [{
1899
+ type: HostListener,
1900
+ args: ['document:keydown', ['$event']]
1785
1901
  }], hostMousedown: [{
1786
1902
  type: HostListener,
1787
1903
  args: ['mousedown', ['$event']]
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-dropdowns',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1661867343,
12
+ publishDate: 1662995282,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };