@progress/kendo-angular-dropdowns 17.0.0-develop.9 → 17.0.1-develop.1

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 (129) hide show
  1. package/README.md +40 -99
  2. package/autocomplete/autocomplete.component.d.ts +1 -1
  3. package/autocomplete/autocomplete.module.d.ts +1 -1
  4. package/comboboxes/combobox-column/combobox-column.component.d.ts +1 -1
  5. package/comboboxes/combobox.component.d.ts +1 -1
  6. package/comboboxes/combobox.module.d.ts +1 -1
  7. package/common/action-sheet.component.d.ts +1 -1
  8. package/common/disabled-items/item-disabled.d.ts +1 -1
  9. package/common/filter-input.directive.d.ts +1 -1
  10. package/common/filtering/filter.directive.d.ts +1 -1
  11. package/common/list.component.d.ts +1 -1
  12. package/common/localization/messages.d.ts +1 -1
  13. package/common/models/direction.d.ts +1 -1
  14. package/common/models/fillmode.d.ts +1 -1
  15. package/common/models/list-type.d.ts +1 -1
  16. package/common/models/rounded.d.ts +1 -1
  17. package/common/models/size.d.ts +1 -1
  18. package/common/searchbar.component.d.ts +1 -1
  19. package/common/selection/selectable.directive.d.ts +1 -1
  20. package/common/shared-events.directive.d.ts +1 -1
  21. package/common/taglist.component.d.ts +2 -2
  22. package/common/util.d.ts +2 -2
  23. package/dropdownlist/dropdownlist.component.d.ts +1 -1
  24. package/dropdowns.module.d.ts +1 -1
  25. package/dropdowntrees/checked-state/base-check.directive.d.ts +1 -1
  26. package/dropdowntrees/checked-state/check-all.directive.d.ts +1 -1
  27. package/dropdowntrees/checked-state/check.directive.d.ts +1 -1
  28. package/dropdowntrees/data-binding/dropdowntree/flat-binding.directive.d.ts +1 -1
  29. package/dropdowntrees/data-binding/dropdowntree/hierarchy-binding.directive.d.ts +1 -1
  30. package/dropdowntrees/data-binding/multiselecttree/flat-binding.directive.d.ts +1 -1
  31. package/dropdowntrees/data-binding/multiselecttree/hierarchy-binding.directive.d.ts +1 -1
  32. package/dropdowntrees/dropdowntree.component.d.ts +1 -1
  33. package/dropdowntrees/expanded-state/expand.directive.d.ts +1 -1
  34. package/dropdowntrees/multiselecttree.component.d.ts +1 -1
  35. package/dropdowntrees/summary-tag/summary-tag.directive.d.ts +1 -1
  36. package/{esm2020 → esm2022}/autocomplete/autocomplete.component.mjs +235 -173
  37. package/{esm2020 → esm2022}/autocomplete/autocomplete.module.mjs +11 -11
  38. package/{esm2020 → esm2022}/comboboxes/combobox-column/column-cell-template.directive.mjs +4 -3
  39. package/{esm2020 → esm2022}/comboboxes/combobox-column/column-header-template.directive.mjs +4 -3
  40. package/esm2022/comboboxes/combobox-column/combobox-column.component.mjs +105 -0
  41. package/{esm2020 → esm2022}/comboboxes/combobox.component.mjs +326 -248
  42. package/{esm2020 → esm2022}/comboboxes/combobox.module.mjs +11 -11
  43. package/{esm2020 → esm2022}/comboboxes/multicolumncombobox.component.mjs +53 -48
  44. package/{esm2020 → esm2022}/common/action-sheet.component.mjs +26 -14
  45. package/{esm2020 → esm2022}/common/data.service.mjs +8 -7
  46. package/{esm2020 → esm2022}/common/disabled-items/disabled-items.service.mjs +6 -4
  47. package/{esm2020 → esm2022}/common/filter-input.directive.mjs +6 -3
  48. package/{esm2020 → esm2022}/common/filtering/filter.directive.mjs +20 -13
  49. package/{esm2020 → esm2022}/common/filtering/filterable-component.mjs +21 -0
  50. package/{esm2020 → esm2022}/common/list-item.directive.mjs +4 -3
  51. package/{esm2020 → esm2022}/common/list.component.mjs +72 -36
  52. package/{esm2020 → esm2022}/common/localization/custom-messages.component.mjs +9 -8
  53. package/{esm2020 → esm2022}/common/localization/localized-messages.directive.mjs +9 -8
  54. package/esm2022/common/localization/messages.mjs +65 -0
  55. package/{esm2020 → esm2022}/common/models/preventable-event.mjs +1 -3
  56. package/{esm2020 → esm2022}/common/models/remove-tag-event.mjs +4 -0
  57. package/{esm2020 → esm2022}/common/navigation/navigation.service.mjs +27 -23
  58. package/{esm2020 → esm2022}/common/searchbar.component.mjs +45 -28
  59. package/{esm2020 → esm2022}/common/selection/selectable.directive.mjs +9 -5
  60. package/{esm2020 → esm2022}/common/selection/selection.service.mjs +13 -10
  61. package/{esm2020 → esm2022}/common/shared-events.directive.mjs +13 -7
  62. package/{esm2020 → esm2022}/common/taglist.component.mjs +36 -27
  63. package/{esm2020 → esm2022}/common/templates/custom-item-template.directive.mjs +4 -3
  64. package/{esm2020 → esm2022}/common/templates/fixed-group-template.directive.mjs +4 -3
  65. package/{esm2020 → esm2022}/common/templates/footer-template.directive.mjs +4 -3
  66. package/{esm2020 → esm2022}/common/templates/group-tag-template.directive.mjs +4 -3
  67. package/{esm2020 → esm2022}/common/templates/group-template.directive.mjs +4 -3
  68. package/{esm2020 → esm2022}/common/templates/header-template.directive.mjs +4 -3
  69. package/{esm2020 → esm2022}/common/templates/item-template.directive.mjs +4 -3
  70. package/{esm2020 → esm2022}/common/templates/no-data-template.directive.mjs +4 -3
  71. package/{esm2020 → esm2022}/common/templates/tag-template.directive.mjs +4 -3
  72. package/{esm2020 → esm2022}/common/templates/value-template.directive.mjs +4 -3
  73. package/{esm2020 → esm2022}/dropdownlist/dropdownlist.component.mjs +259 -184
  74. package/{esm2020 → esm2022}/dropdownlist/dropdownlist.module.mjs +8 -8
  75. package/esm2022/dropdowns.module.mjs +87 -0
  76. package/{esm2020 → esm2022}/dropdowntrees/checked-state/base-check.directive.mjs +10 -3
  77. package/{esm2020 → esm2022}/dropdowntrees/checked-state/check-all.directive.mjs +38 -21
  78. package/{esm2020 → esm2022}/dropdowntrees/checked-state/check.directive.mjs +31 -15
  79. package/{esm2020 → esm2022}/dropdowntrees/data-binding/dropdowntree/flat-binding.directive.mjs +12 -7
  80. package/{esm2020 → esm2022}/dropdowntrees/data-binding/dropdowntree/hierarchy-binding.directive.mjs +8 -7
  81. package/{esm2020 → esm2022}/dropdowntrees/data-binding/multiselecttree/flat-binding.directive.mjs +12 -7
  82. package/{esm2020 → esm2022}/dropdowntrees/data-binding/multiselecttree/hierarchy-binding.directive.mjs +8 -7
  83. package/{esm2020 → esm2022}/dropdowntrees/dropdowntree.component.mjs +309 -232
  84. package/{esm2020 → esm2022}/dropdowntrees/dropdowntrees.module.mjs +12 -12
  85. package/{esm2020 → esm2022}/dropdowntrees/expanded-state/expand.directive.mjs +8 -7
  86. package/{esm2020 → esm2022}/dropdowntrees/lookup/lookup.service.mjs +4 -6
  87. package/{esm2020 → esm2022}/dropdowntrees/multiselecttree.component.mjs +324 -254
  88. package/{esm2020 → esm2022}/dropdowntrees/summary-tag/summary-tag.directive.mjs +8 -7
  89. package/{esm2020 → esm2022}/dropdowntrees/templates/node-template.directive.mjs +4 -3
  90. package/{esm2020 → esm2022}/index.mjs +0 -2
  91. package/{esm2020 → esm2022}/multiselect/multiselect.component.mjs +328 -254
  92. package/{esm2020 → esm2022}/multiselect/multiselect.module.mjs +11 -11
  93. package/{esm2020 → esm2022}/multiselect/summary-tag.directive.mjs +8 -7
  94. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  95. package/{fesm2020 → fesm2022}/progress-kendo-angular-dropdowns.mjs +2528 -1927
  96. package/index.d.ts +0 -2
  97. package/multiselect/multiselect.component.d.ts +1 -1
  98. package/multiselect/multiselect.module.d.ts +1 -1
  99. package/multiselect/summary-tag.directive.d.ts +1 -1
  100. package/package.json +18 -24
  101. package/schematics/ngAdd/index.js +3 -3
  102. package/common/shared-directives.module.d.ts +0 -37
  103. package/common/shared.module.d.ts +0 -29
  104. package/esm2020/comboboxes/combobox-column/combobox-column.component.mjs +0 -60
  105. package/esm2020/common/localization/messages.mjs +0 -33
  106. package/esm2020/common/shared-directives.module.mjs +0 -84
  107. package/esm2020/common/shared.module.mjs +0 -68
  108. package/esm2020/dropdowns.module.mjs +0 -87
  109. package/fesm2015/progress-kendo-angular-dropdowns.mjs +0 -17609
  110. /package/{esm2020 → esm2022}/comboboxes/combobox-column/util.mjs +0 -0
  111. /package/{esm2020 → esm2022}/common/constants/error-messages.mjs +0 -0
  112. /package/{esm2020 → esm2022}/common/disabled-items/item-disabled.mjs +0 -0
  113. /package/{esm2020 → esm2022}/common/filtering/filter-settings.mjs +0 -0
  114. /package/{esm2020 → esm2022}/common/models/checkboxes-settings.mjs +0 -0
  115. /package/{esm2020 → esm2022}/common/models/direction.mjs +0 -0
  116. /package/{esm2020 → esm2022}/common/models/fillmode.mjs +0 -0
  117. /package/{esm2020 → esm2022}/common/models/list-type.mjs +0 -0
  118. /package/{esm2020 → esm2022}/common/models/page-change-event.mjs +0 -0
  119. /package/{esm2020 → esm2022}/common/models/popup-settings.mjs +0 -0
  120. /package/{esm2020 → esm2022}/common/models/rounded.mjs +0 -0
  121. /package/{esm2020 → esm2022}/common/models/size.mjs +0 -0
  122. /package/{esm2020 → esm2022}/common/models/virtualization-settings.mjs +0 -0
  123. /package/{esm2020 → esm2022}/common/navigation/navigation-action.mjs +0 -0
  124. /package/{esm2020 → esm2022}/common/util.mjs +0 -0
  125. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  126. /package/{esm2020 → esm2022}/dropdowntrees/checked-state/checkable-settings.mjs +0 -0
  127. /package/{esm2020 → esm2022}/dropdowntrees/checked-state/checked-item.mjs +0 -0
  128. /package/{esm2020 → esm2022}/dropdowntrees/lookup/lookup.mjs +0 -0
  129. /package/{esm2020 → esm2022}/progress-kendo-angular-dropdowns.mjs +0 -0
@@ -74,169 +74,45 @@ const DEFAULT_FILL_MODE = 'solid';
74
74
  * ```
75
75
  */
76
76
  export class DropDownListComponent {
77
- constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, cdr, injector) {
78
- this.wrapper = wrapper;
79
- this.localization = localization;
80
- this.popupService = popupService;
81
- this.selectionService = selectionService;
82
- this.navigationService = navigationService;
83
- this.disabledItemsService = disabledItemsService;
84
- this.dataService = dataService;
85
- this._zone = _zone;
86
- this.renderer = renderer;
87
- this.cdr = cdr;
88
- this.injector = injector;
89
- /**
90
- * @hidden
91
- */
92
- this.touchEnabled = touchEnabled;
93
- /**
94
- * @hidden
95
- */
96
- this.animationDuration = animationDuration;
97
- /**
98
- * @hidden
99
- */
100
- this.xIcon = xIcon;
101
- /**
102
- * @hidden
103
- */
104
- this.searchIcon = searchIcon;
105
- /**
106
- * @hidden
107
- */
108
- this.caretAltDownSVGIcon = caretAltDownIcon;
109
- /**
110
- * Shows or hides the current group sticky header when using grouped data.
111
- * By default the sticky header is displayed ([see example]({% slug grouping_autocomplete %}#toc-sticky-header)).
112
- */
113
- this.showStickyHeader = true;
114
- /**
115
- * Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
116
- */
117
- this.adaptiveMode = 'none';
118
- /**
119
- * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
120
- * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
121
- */
122
- this.title = '';
123
- /**
124
- * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
125
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
126
- */
127
- this.subtitle = '';
128
- /**
129
- * @hidden
130
- */
131
- this.windowSize = 'large';
132
- this._listHeight = 200;
133
- /**
134
- * Sets the read-only state of the component.
135
- *
136
- * @default false
137
- */
138
- this.readonly = false;
139
- /**
140
- * Enables the [filtering]({% slug filtering_ddl %}) functionality of the DropDownList.
141
- */
142
- this.filterable = false;
143
- /**
144
- * Enables a case-insensitive search. When filtration is disabled, use this option.
145
- */
146
- this.ignoreCase = true;
147
- /**
148
- * Sets the delay before an item search is performed. When filtration is disabled, use this option.
149
- */
150
- this.delay = 500;
151
- /**
152
- * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
153
- */
154
- this.tabindex = 0;
155
- /**
156
- * Toggles the left and right arrow keys navigation functionality.
157
- * @hidden
158
- */
159
- this.leftRightArrowsNavigation = true;
160
- /**
161
- * Fires each time the value is changed ([see example](slug:events_ddl)).
162
- */
163
- this.valueChange = new EventEmitter();
164
- /**
165
- * Fires each time the user types in the input field
166
- * ([see example](slug:events_ddl)).
167
- * You can filter the source based on the passed filtration value.
168
- * When the value of the component is programmatically changed to `ngModel` or `formControl`
169
- * through its API or form binding, the `valueChange` event is not triggered because it
170
- * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
171
- */
172
- this.filterChange = new EventEmitter();
173
- /**
174
- * Fires each time the item selection is changed
175
- * ([see example](slug:events_ddl)).
176
- */
177
- this.selectionChange = new EventEmitter();
178
- /**
179
- * Fires each time the popup is about to open
180
- * ([see example]({% slug openstate_ddl %}#toc-preventing-opening-and-closing)).
181
- * This event is preventable. If you cancel it, the popup will remain closed.
182
- */
183
- this.open = new EventEmitter();
184
- /**
185
- * Fires after the popup has been opened.
186
- */
187
- this.opened = new EventEmitter();
188
- /**
189
- * Fires each time the popup is about to close
190
- * ([see example]({% slug openstate_ddl %}#toc-preventing-opening-and-closing)).
191
- * This event is preventable. If you cancel it, the popup will remain open.
192
- */
193
- this.close = new EventEmitter();
194
- /**
195
- * Fires after the popup has been closed.
196
- */
197
- this.closed = new EventEmitter();
198
- /**
199
- * Fires each time the user focuses the DropDownList.
200
- */
201
- this.onFocus = new EventEmitter();
202
- /**
203
- * Fires each time the DropDownList gets blurred.
204
- */
205
- this.onBlur = new EventEmitter();
206
- this.hostClasses = true;
207
- /**
208
- * @hidden
209
- */
210
- this.focusableId = `k-${guid()}`;
211
- this.role = 'combobox';
212
- this.haspopup = 'listbox';
213
- this.groupIndices = [];
214
- this.optionPrefix = `k-${guid()}`;
215
- this.filterText = '';
216
- this.listBoxId = `k-${guid()}`;
217
- this.subs = new Subscription();
218
- this._isFocused = false;
219
- this.onTouchedCallback = (_) => { };
220
- this.onChangeCallback = (_) => { };
221
- this.word = "";
222
- this.last = "";
223
- this.filterFocused = new EventEmitter();
224
- this.filterBlurred = new EventEmitter();
225
- this.hostElementFocused = new EventEmitter();
226
- this.hostElementBlurred = new EventEmitter();
227
- this._open = false;
228
- this._popupSettings = { animate: true };
229
- this._size = 'medium';
230
- this._rounded = 'medium';
231
- this._fillMode = 'solid';
232
- validatePackage(packageMetadata);
233
- this.direction = localization.rtl ? 'rtl' : 'ltr';
234
- this.data = [];
235
- this.subscribeEvents();
236
- this.subscribeTouchEvents();
237
- this.subscribeFocusEvents();
238
- this.popupMouseDownHandler = this.onMouseDown.bind(this);
239
- }
77
+ wrapper;
78
+ localization;
79
+ popupService;
80
+ selectionService;
81
+ navigationService;
82
+ disabledItemsService;
83
+ dataService;
84
+ _zone;
85
+ renderer;
86
+ cdr;
87
+ injector;
88
+ /**
89
+ * @hidden
90
+ */
91
+ touchEnabled = touchEnabled;
92
+ /**
93
+ * @hidden
94
+ */
95
+ animationDuration = animationDuration;
96
+ /**
97
+ * @hidden
98
+ */
99
+ xIcon = xIcon;
100
+ /**
101
+ * @hidden
102
+ */
103
+ searchIcon = searchIcon;
104
+ /**
105
+ * @hidden
106
+ */
107
+ caretAltDownSVGIcon = caretAltDownIcon;
108
+ /**
109
+ * @hidden
110
+ */
111
+ customIconClass;
112
+ /**
113
+ * @hidden
114
+ */
115
+ responsiveRendererComponent;
240
116
  /**
241
117
  * @hidden
242
118
  */
@@ -295,6 +171,23 @@ export class DropDownListComponent {
295
171
  get ariaLive() {
296
172
  return this.filterable ? 'polite' : 'off';
297
173
  }
174
+ /**
175
+ * Shows or hides the current group sticky header when using grouped data.
176
+ * By default the sticky header is displayed ([see example]({% slug grouping_autocomplete %}#toc-sticky-header)).
177
+ */
178
+ showStickyHeader = true;
179
+ /**
180
+ * @hidden
181
+ */
182
+ icon;
183
+ /**
184
+ * @hidden
185
+ */
186
+ svgIcon;
187
+ /**
188
+ * Sets and gets the loading state of the DropDownList.
189
+ */
190
+ loading;
298
191
  /**
299
192
  * Sets the data of the DropDownList.
300
193
  *
@@ -336,12 +229,44 @@ export class DropDownListComponent {
336
229
  get value() {
337
230
  return this._value;
338
231
  }
232
+ /**
233
+ * Sets the data item field that represents the item text.
234
+ * If the data contains only primitive values, do not define it.
235
+ *
236
+ * > The `textField` property can be set to point to a nested property value - e.g. `category.name`.
237
+ */
238
+ textField;
239
+ /**
240
+ * Sets the data item field that represents the item value.
241
+ * If the data contains only primitive values, do not define it.
242
+ *
243
+ * > The `valueField` property can be set to point to a nested property value - e.g. `category.id`.
244
+ */
245
+ valueField;
246
+ /**
247
+ * Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
248
+ */
249
+ adaptiveMode = 'none';
250
+ /**
251
+ * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
252
+ * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
253
+ */
254
+ title = '';
255
+ /**
256
+ * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
257
+ * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
258
+ */
259
+ subtitle = '';
339
260
  /**
340
261
  * @hidden
341
262
  */
342
263
  get isAdaptiveModeEnabled() {
343
264
  return this.adaptiveMode === 'auto';
344
265
  }
266
+ /**
267
+ * @hidden
268
+ */
269
+ windowSize = 'large';
345
270
  /**
346
271
  * @hidden
347
272
  */
@@ -387,6 +312,15 @@ export class DropDownListComponent {
387
312
  }
388
313
  return this._listHeight;
389
314
  }
315
+ _listHeight = 200;
316
+ /**
317
+ * Sets the text of the default empty item. The type of the defined value has to match the data type.
318
+ */
319
+ defaultItem;
320
+ /**
321
+ * Sets the disabled state of the component. To learn how to disable the component in reactive forms, refer to the article on [Forms Support](slug:formssupport_ddl#toc-managing-the-dropdownlist-disabled-state-in-reactive-forms).
322
+ */
323
+ disabled;
390
324
  /**
391
325
  * Defines a Boolean function that is executed for each data item in the component
392
326
  * ([see examples]({% slug disableditems_ddl %})). Determines whether the item will be disabled.
@@ -397,6 +331,16 @@ export class DropDownListComponent {
397
331
  }
398
332
  this.disabledItemsService.itemDisabled = fn;
399
333
  }
334
+ /**
335
+ * Sets the read-only state of the component.
336
+ *
337
+ * @default false
338
+ */
339
+ readonly = false;
340
+ /**
341
+ * Enables the [filtering]({% slug filtering_ddl %}) functionality of the DropDownList.
342
+ */
343
+ filterable = false;
400
344
  /**
401
345
  * Enables the [virtualization]({% slug virtualization_ddl %}) functionality.
402
346
  */
@@ -406,6 +350,14 @@ export class DropDownListComponent {
406
350
  get virtual() {
407
351
  return this._virtualSettings;
408
352
  }
353
+ /**
354
+ * Enables a case-insensitive search. When filtration is disabled, use this option.
355
+ */
356
+ ignoreCase = true;
357
+ /**
358
+ * Sets the delay before an item search is performed. When filtration is disabled, use this option.
359
+ */
360
+ delay = 500;
409
361
  /**
410
362
  * Specifies the type of the selected value
411
363
  * ([more information and example]({% slug valuebinding_ddl %}#toc-primitive-values-from-object-fields)).
@@ -420,6 +372,10 @@ export class DropDownListComponent {
420
372
  }
421
373
  return this._valuePrimitive;
422
374
  }
375
+ /**
376
+ * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
377
+ */
378
+ tabindex = 0;
423
379
  /**
424
380
  * @hidden
425
381
  */
@@ -493,6 +449,67 @@ export class DropDownListComponent {
493
449
  get fillMode() {
494
450
  return this._fillMode;
495
451
  }
452
+ /**
453
+ * Toggles the left and right arrow keys navigation functionality.
454
+ * @hidden
455
+ */
456
+ leftRightArrowsNavigation = true;
457
+ /**
458
+ * Fires each time the value is changed ([see example](slug:events_ddl)).
459
+ */
460
+ valueChange = new EventEmitter();
461
+ /**
462
+ * Fires each time the user types in the input field
463
+ * ([see example](slug:events_ddl)).
464
+ * You can filter the source based on the passed filtration value.
465
+ * When the value of the component is programmatically changed to `ngModel` or `formControl`
466
+ * through its API or form binding, the `valueChange` event is not triggered because it
467
+ * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
468
+ */
469
+ filterChange = new EventEmitter();
470
+ /**
471
+ * Fires each time the item selection is changed
472
+ * ([see example](slug:events_ddl)).
473
+ */
474
+ selectionChange = new EventEmitter();
475
+ /**
476
+ * Fires each time the popup is about to open
477
+ * ([see example]({% slug openstate_ddl %}#toc-preventing-opening-and-closing)).
478
+ * This event is preventable. If you cancel it, the popup will remain closed.
479
+ */
480
+ open = new EventEmitter();
481
+ /**
482
+ * Fires after the popup has been opened.
483
+ */
484
+ opened = new EventEmitter();
485
+ /**
486
+ * Fires each time the popup is about to close
487
+ * ([see example]({% slug openstate_ddl %}#toc-preventing-opening-and-closing)).
488
+ * This event is preventable. If you cancel it, the popup will remain open.
489
+ */
490
+ close = new EventEmitter();
491
+ /**
492
+ * Fires after the popup has been closed.
493
+ */
494
+ closed = new EventEmitter();
495
+ /**
496
+ * Fires each time the user focuses the DropDownList.
497
+ */
498
+ onFocus = new EventEmitter();
499
+ /**
500
+ * Fires each time the DropDownList gets blurred.
501
+ */
502
+ onBlur = new EventEmitter();
503
+ itemTemplate;
504
+ groupTemplate;
505
+ fixedGroupTemplate;
506
+ valueTemplate;
507
+ headerTemplate;
508
+ footerTemplate;
509
+ noDataTemplate;
510
+ container;
511
+ popupTemplate;
512
+ optionsList;
496
513
  /**
497
514
  * @hidden
498
515
  */
@@ -544,12 +561,17 @@ export class DropDownListComponent {
544
561
  popupWrapper.style.width = max;
545
562
  }
546
563
  }
564
+ hostClasses = true;
547
565
  get isDisabledClass() {
548
566
  return this.disabled || null;
549
567
  }
550
568
  get isLoading() {
551
569
  return this.loading;
552
570
  }
571
+ /**
572
+ * @hidden
573
+ */
574
+ focusableId = `k-${guid()}`;
553
575
  get dir() {
554
576
  return this.direction;
555
577
  }
@@ -565,6 +587,8 @@ export class DropDownListComponent {
565
587
  get isBusy() {
566
588
  return this.isLoading;
567
589
  }
590
+ role = 'combobox';
591
+ haspopup = 'listbox';
568
592
  get hostAriaInvalid() {
569
593
  return this.formControl ? this.formControl?.invalid.toString() : null;
570
594
  }
@@ -640,6 +664,13 @@ export class DropDownListComponent {
640
664
  this.togglePopup(!this.isOpen);
641
665
  }
642
666
  }
667
+ groupIndices = [];
668
+ optionPrefix = `k-${guid()}`;
669
+ valueLabelId;
670
+ filterText = '';
671
+ listBoxId = `k-${guid()}`;
672
+ subs = new Subscription();
673
+ _isFocused = false;
643
674
  set isFocused(isFocused) {
644
675
  this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
645
676
  this._isFocused = isFocused;
@@ -647,6 +678,50 @@ export class DropDownListComponent {
647
678
  get isFocused() {
648
679
  return this._isFocused;
649
680
  }
681
+ direction;
682
+ dataItem;
683
+ popupRef;
684
+ onTouchedCallback = (_) => { };
685
+ onChangeCallback = (_) => { };
686
+ popupMouseDownHandler;
687
+ word = "";
688
+ last = "";
689
+ typingTimeout;
690
+ filterFocused = new EventEmitter();
691
+ filterBlurred = new EventEmitter();
692
+ hostElementFocused = new EventEmitter();
693
+ hostElementBlurred = new EventEmitter();
694
+ touchstartDisposeHandler;
695
+ _value;
696
+ _open = false;
697
+ _previousDataItem;
698
+ _valuePrimitive;
699
+ text;
700
+ _popupSettings = { animate: true };
701
+ _virtualSettings;
702
+ _size = 'medium';
703
+ _rounded = 'medium';
704
+ _fillMode = 'solid';
705
+ constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, cdr, injector) {
706
+ this.wrapper = wrapper;
707
+ this.localization = localization;
708
+ this.popupService = popupService;
709
+ this.selectionService = selectionService;
710
+ this.navigationService = navigationService;
711
+ this.disabledItemsService = disabledItemsService;
712
+ this.dataService = dataService;
713
+ this._zone = _zone;
714
+ this.renderer = renderer;
715
+ this.cdr = cdr;
716
+ this.injector = injector;
717
+ validatePackage(packageMetadata);
718
+ this.direction = localization.rtl ? 'rtl' : 'ltr';
719
+ this.data = [];
720
+ this.subscribeEvents();
721
+ this.subscribeTouchEvents();
722
+ this.subscribeFocusEvents();
723
+ this.popupMouseDownHandler = this.onMouseDown.bind(this);
724
+ }
650
725
  ngOnInit() {
651
726
  this.renderer.removeAttribute(this.wrapper.nativeElement, "tabindex");
652
727
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
@@ -1395,26 +1470,25 @@ export class DropDownListComponent {
1395
1470
  this.actionSheetSearchBar.focus();
1396
1471
  }
1397
1472
  }
1398
- }
1399
- DropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: i3.SelectionService }, { token: i4.NavigationService }, { token: i5.DisabledItemsService }, { token: i6.DataService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1400
- DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DropDownListComponent, isStandalone: true, selector: "kendo-dropdownlist", inputs: { customIconClass: "customIconClass", showStickyHeader: "showStickyHeader", icon: "icon", svgIcon: "svgIcon", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", defaultItem: "defaultItem", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", filterable: "filterable", virtual: "virtual", ignoreCase: "ignoreCase", delay: "delay", valuePrimitive: "valuePrimitive", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", leftRightArrowsNavigation: "leftRightArrowsNavigation", focusableId: ["id", "focusableId"] }, outputs: { valueChange: "valueChange", filterChange: "filterChange", selectionChange: "selectionChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keypress": "keypress($event)", "click": "click()" }, properties: { "class.k-readonly": "this.readonly", "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.aria-disabled": "this.isDisabledClass", "class.k-loading": "this.isLoading", "attr.id": "this.focusableId", "attr.dir": "this.dir", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.readonlyAttr", "attr.aria-busy": "this.isBusy", "attr.role": "this.role", "attr.aria-haspopup": "this.haspopup", "attr.aria-invalid": "this.hostAriaInvalid" } }, providers: [
1401
- DROPDOWNLIST_VALUE_ACCESSOR,
1402
- DataService,
1403
- SelectionService,
1404
- NavigationService,
1405
- DisabledItemsService,
1406
- LocalizationService,
1407
- {
1408
- provide: L10N_PREFIX,
1409
- useValue: 'kendo.dropdownlist'
1410
- },
1411
- {
1412
- provide: FilterableComponent, useExisting: forwardRef(() => DropDownListComponent)
1413
- },
1414
- {
1415
- provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)
1416
- }
1417
- ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, 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 }], 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: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoDropDownList"], usesOnChanges: true, ngImport: i0, template: `
1473
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: i3.SelectionService }, { token: i4.NavigationService }, { token: i5.DisabledItemsService }, { token: i6.DataService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1474
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropDownListComponent, isStandalone: true, selector: "kendo-dropdownlist", inputs: { customIconClass: "customIconClass", showStickyHeader: "showStickyHeader", icon: "icon", svgIcon: "svgIcon", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", defaultItem: "defaultItem", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", filterable: "filterable", virtual: "virtual", ignoreCase: "ignoreCase", delay: "delay", valuePrimitive: "valuePrimitive", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", leftRightArrowsNavigation: "leftRightArrowsNavigation", focusableId: ["id", "focusableId"] }, outputs: { valueChange: "valueChange", filterChange: "filterChange", selectionChange: "selectionChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keypress": "keypress($event)", "click": "click()" }, properties: { "class.k-readonly": "this.readonly", "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.aria-disabled": "this.isDisabledClass", "class.k-loading": "this.isLoading", "attr.id": "this.focusableId", "attr.dir": "this.dir", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.readonlyAttr", "attr.aria-busy": "this.isBusy", "attr.role": "this.role", "attr.aria-haspopup": "this.haspopup", "attr.aria-invalid": "this.hostAriaInvalid" } }, providers: [
1475
+ DROPDOWNLIST_VALUE_ACCESSOR,
1476
+ DataService,
1477
+ SelectionService,
1478
+ NavigationService,
1479
+ DisabledItemsService,
1480
+ LocalizationService,
1481
+ {
1482
+ provide: L10N_PREFIX,
1483
+ useValue: 'kendo.dropdownlist'
1484
+ },
1485
+ {
1486
+ provide: FilterableComponent, useExisting: forwardRef(() => DropDownListComponent)
1487
+ },
1488
+ {
1489
+ provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)
1490
+ }
1491
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, 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 }], 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: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoDropDownList"], usesOnChanges: true, ngImport: i0, template: `
1418
1492
  <ng-container kendoDropDownListLocalizedMessages
1419
1493
  i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
1420
1494
  noDataText="NO DATA FOUND"
@@ -1583,7 +1657,8 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1583
1657
  </ng-template>
1584
1658
  </ng-template>
1585
1659
  `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "component", type: 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"] }] });
1586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListComponent, decorators: [{
1660
+ }
1661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListComponent, decorators: [{
1587
1662
  type: Component,
1588
1663
  args: [{
1589
1664
  exportAs: 'kendoDropDownList',
@@ -36,15 +36,15 @@ import * as i10 from "../common/localization/custom-messages.component";
36
36
  * - `CustomMessagesComponent`&mdash;The custom messages component.
37
37
  */
38
38
  export class DropDownListModule {
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DropDownListModule, imports: [i1.DropDownListComponent, i2.FixedGroupTemplateDirective, i3.FooterTemplateDirective, i4.GroupTemplateDirective, i5.HeaderTemplateDirective, i6.ItemTemplateDirective, i7.ValueTemplateDirective, i8.NoDataTemplateDirective, i9.FilterDirective, i10.CustomMessagesComponent], exports: [i1.DropDownListComponent, i2.FixedGroupTemplateDirective, i3.FooterTemplateDirective, i4.GroupTemplateDirective, i5.HeaderTemplateDirective, i6.ItemTemplateDirective, i7.ValueTemplateDirective, i8.NoDataTemplateDirective, i9.FilterDirective, i10.CustomMessagesComponent] });
41
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListModule, providers: [
42
+ PopupService,
43
+ ResizeBatchService,
44
+ IconsService
45
+ ], imports: [i1.DropDownListComponent] });
39
46
  }
40
- DropDownListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
41
- DropDownListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DropDownListModule, imports: [i1.DropDownListComponent, i2.FixedGroupTemplateDirective, i3.FooterTemplateDirective, i4.GroupTemplateDirective, i5.HeaderTemplateDirective, i6.ItemTemplateDirective, i7.ValueTemplateDirective, i8.NoDataTemplateDirective, i9.FilterDirective, i10.CustomMessagesComponent], exports: [i1.DropDownListComponent, i2.FixedGroupTemplateDirective, i3.FooterTemplateDirective, i4.GroupTemplateDirective, i5.HeaderTemplateDirective, i6.ItemTemplateDirective, i7.ValueTemplateDirective, i8.NoDataTemplateDirective, i9.FilterDirective, i10.CustomMessagesComponent] });
42
- DropDownListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListModule, providers: [
43
- PopupService,
44
- ResizeBatchService,
45
- IconsService
46
- ], imports: [i1.DropDownListComponent, i10.CustomMessagesComponent] });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListModule, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListModule, decorators: [{
48
48
  type: NgModule,
49
49
  args: [{
50
50
  imports: [...KENDO_DROPDOWNLIST],