@progress/kendo-angular-dropdowns 16.4.0-develop.4 → 16.4.0-develop.6

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.
@@ -298,7 +298,7 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
298
298
  /**
299
299
  * Fires each time the value is changed—
300
300
  * when the component is blurred or the value is cleared through the **Clear** button
301
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
301
+ * ([see example](slug:events_autocomplete)).
302
302
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
303
303
  * through its API or form binding, the `valueChange` event is not triggered because it
304
304
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -307,7 +307,7 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
307
307
  /**
308
308
  * Fires each time the user types in the input field.
309
309
  * You can filter the source based on the passed filtration value
310
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
310
+ * ([see example](slug:events_autocomplete)).
311
311
  */
312
312
  filterChange: EventEmitter<string>;
313
313
  /**
@@ -359,7 +359,7 @@ export declare class ComboBoxComponent extends MultiTabStop implements ControlVa
359
359
  /**
360
360
  * Fires each time the value is changed&mdash;
361
361
  * when the component is blurred or the value is cleared through the **Clear** button
362
- * ([see example]({% slug overview_combobox %}#toc-events)).
362
+ * ([see example](slug:events_combobox)).
363
363
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
364
364
  * through its API or form binding, the `valueChange` event is not triggered because it
365
365
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -367,13 +367,13 @@ export declare class ComboBoxComponent extends MultiTabStop implements ControlVa
367
367
  valueChange: EventEmitter<any>;
368
368
  /**
369
369
  * Fires each time an item selection is changed
370
- * ([see example]({% slug overview_combobox %}#toc-events)).
370
+ * ([see example](slug:events_combobox)).
371
371
  */
372
372
  selectionChange: EventEmitter<any>;
373
373
  /**
374
374
  * Fires each time the user types in the input field.
375
375
  * You can filter the source based on the passed filtration value
376
- * ([see example]({% slug overview_combobox %}#toc-events)).
376
+ * ([see example](slug:events_combobox)).
377
377
  */
378
378
  filterChange: EventEmitter<any>;
379
379
  /**
@@ -41,9 +41,8 @@ export declare class TagListComponent {
41
41
  removeTag: EventEmitter<any>;
42
42
  hostClasses: boolean;
43
43
  get hostId(): string;
44
- get taglistRole(): string;
44
+ taglistRole: string;
45
45
  multiselectable: boolean;
46
- get taglistLabel(): string;
47
46
  private _size;
48
47
  constructor(renderer: Renderer2, hostElement: ElementRef<HTMLElement>);
49
48
  tagProp(tag: any, prop: string | string[], index: number): string;
@@ -6,7 +6,7 @@ import { TemplateRef } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * Renders the content of the custom list item in the MultiSelect
9
- * ([see example]({% slug templates_multiselect %}#toc-customizing-the-item-content)).
9
+ * ([see example](slug:templates_multiselect#toc-rendering-custom-item-content)).
10
10
  * The template context is set to the current component.
11
11
  * To get a reference to the current text that is typed by the
12
12
  * user, use the `let-customItem` directive.
@@ -9,11 +9,11 @@ import * as i0 from "@angular/core";
9
9
  * with the `kendo<ComponentName>FixedGroupTemplate` directive inside the component tag. The template context is
10
10
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
11
11
  *
12
- * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-template)
13
- * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-template)
14
- * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-template)
15
- * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-template)
16
- * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-template)
12
+ * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-header-template)
13
+ * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-header-template)
14
+ * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-header-template)
15
+ * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-header-template)
16
+ * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-header-template)
17
17
  *
18
18
  * @example
19
19
  * ```ts
@@ -9,11 +9,11 @@ import * as i0 from "@angular/core";
9
9
  * with the `kendo<ComponentName>GroupTemplate` directive inside the component tag. The template context is
10
10
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
11
11
  *
12
- * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-template)
13
- * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-template)
14
- * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-template)
15
- * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-template)
16
- * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-template)
12
+ * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-header-template)
13
+ * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-header-template)
14
+ * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-header-template)
15
+ * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-header-template)
16
+ * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-header-template)
17
17
  *
18
18
  * @example
19
19
  * ```ts
@@ -311,12 +311,12 @@ export declare class DropDownListComponent implements ControlValueAccessor, Afte
311
311
  */
312
312
  leftRightArrowsNavigation: boolean;
313
313
  /**
314
- * Fires each time the value is changed ([see example]({% slug overview_ddl %}#toc-events)).
314
+ * Fires each time the value is changed ([see example](slug:events_ddl)).
315
315
  */
316
316
  valueChange: EventEmitter<any>;
317
317
  /**
318
318
  * Fires each time the user types in the input field
319
- * ([see example]({% slug overview_ddl %}#toc-events)).
319
+ * ([see example](slug:events_ddl)).
320
320
  * You can filter the source based on the passed filtration value.
321
321
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
322
322
  * through its API or form binding, the `valueChange` event is not triggered because it
@@ -325,7 +325,7 @@ export declare class DropDownListComponent implements ControlValueAccessor, Afte
325
325
  filterChange: EventEmitter<any>;
326
326
  /**
327
327
  * Fires each time the item selection is changed
328
- * ([see example]({% slug overview_ddl %}#toc-events)).
328
+ * ([see example](slug:events_ddl)).
329
329
  */
330
330
  selectionChange: EventEmitter<any>;
331
331
  /**
@@ -138,7 +138,7 @@ export declare class DropDownTreeComponent implements OnInit, OnDestroy, OnChang
138
138
  onBlur: EventEmitter<any>;
139
139
  /**
140
140
  * Fires each time the value is changed
141
- * ([see example]({% slug overview_ddt %}#toc-events)).
141
+ * ([see example](slug:events_ddt)).
142
142
  */
143
143
  valueChange: EventEmitter<any>;
144
144
  /**
@@ -384,7 +384,7 @@ export declare class MultiSelectTreeComponent implements OnInit, OnDestroy, OnCh
384
384
  nodeCollapse: EventEmitter<TreeItem>;
385
385
  /**
386
386
  * Fires each time the value is changed
387
- * ([see example]({% slug overview_multiselecttree %}#toc-events)).
387
+ * ([see example](slug:events_multiselecttree)).
388
388
  */
389
389
  valueChange: EventEmitter<any>;
390
390
  /**
@@ -157,7 +157,7 @@ export class AutoCompleteComponent {
157
157
  /**
158
158
  * Fires each time the value is changed&mdash;
159
159
  * when the component is blurred or the value is cleared through the **Clear** button
160
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
160
+ * ([see example](slug:events_autocomplete)).
161
161
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
162
162
  * through its API or form binding, the `valueChange` event is not triggered because it
163
163
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -166,7 +166,7 @@ export class AutoCompleteComponent {
166
166
  /**
167
167
  * Fires each time the user types in the input field.
168
168
  * You can filter the source based on the passed filtration value
169
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
169
+ * ([see example](slug:events_autocomplete)).
170
170
  */
171
171
  this.filterChange = new EventEmitter();
172
172
  /**
@@ -214,7 +214,7 @@ export class ComboBoxComponent extends MultiTabStop {
214
214
  /**
215
215
  * Fires each time the value is changed&mdash;
216
216
  * when the component is blurred or the value is cleared through the **Clear** button
217
- * ([see example]({% slug overview_combobox %}#toc-events)).
217
+ * ([see example](slug:events_combobox)).
218
218
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
219
219
  * through its API or form binding, the `valueChange` event is not triggered because it
220
220
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -222,13 +222,13 @@ export class ComboBoxComponent extends MultiTabStop {
222
222
  this.valueChange = new EventEmitter();
223
223
  /**
224
224
  * Fires each time an item selection is changed
225
- * ([see example]({% slug overview_combobox %}#toc-events)).
225
+ * ([see example](slug:events_combobox)).
226
226
  */
227
227
  this.selectionChange = new EventEmitter();
228
228
  /**
229
229
  * Fires each time the user types in the input field.
230
230
  * You can filter the source based on the passed filtration value
231
- * ([see example]({% slug overview_combobox %}#toc-events)).
231
+ * ([see example](slug:events_combobox)).
232
232
  */
233
233
  this.filterChange = new EventEmitter();
234
234
  /**
@@ -30,6 +30,7 @@ export class TagListComponent {
30
30
  this.disabledIndices = new Set();
31
31
  this.removeTag = new EventEmitter();
32
32
  this.hostClasses = true;
33
+ this.taglistRole = 'listbox';
33
34
  this.multiselectable = true;
34
35
  this._size = 'medium';
35
36
  }
@@ -46,12 +47,6 @@ export class TagListComponent {
46
47
  get hostId() {
47
48
  return this.id;
48
49
  }
49
- get taglistRole() {
50
- return 'listbox';
51
- }
52
- get taglistLabel() {
53
- return 'taglist';
54
- }
55
50
  tagProp(tag, prop, index) {
56
51
  const propField = prop && this.getPropField(tag, prop, index);
57
52
  return getter(tag, propField);
@@ -77,7 +72,7 @@ export class TagListComponent {
77
72
  }
78
73
  itemId(tag, index) {
79
74
  if (tag) { //because of custom values
80
- return this.tagPrefix + "-" + this.tagProp(tag, this.valueField, index);
75
+ return this.tagPrefix + "-" + index;
81
76
  }
82
77
  }
83
78
  isGroupTag(tag) {
@@ -102,11 +97,11 @@ export class TagListComponent {
102
97
  }
103
98
  }
104
99
  TagListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
105
- TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagListComponent, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClasses", "class.k-selection-multiple": "this.hostClasses", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable", "attr.aria-label": "this.taglistLabel" } }, ngImport: i0, template: `
100
+ TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagListComponent, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClasses", "class.k-selection-multiple": "this.hostClasses", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable" } }, ngImport: i0, template: `
106
101
  <div
107
102
  *ngFor="let tag of tags; let index = index;"
108
103
  [attr.id]="itemId(tag, index)"
109
- [attr.aria-hidden]="tagAriaHidden(index)"
104
+ [attr.aria-selected]="true"
110
105
  [attr.role]="'option'"
111
106
  class="k-chip"
112
107
  [ngClass]="{
@@ -170,7 +165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
170
165
  <div
171
166
  *ngFor="let tag of tags; let index = index;"
172
167
  [attr.id]="itemId(tag, index)"
173
- [attr.aria-hidden]="tagAriaHidden(index)"
168
+ [attr.aria-selected]="true"
174
169
  [attr.role]="'option'"
175
170
  class="k-chip"
176
171
  [ngClass]="{
@@ -272,7 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
272
267
  }], multiselectable: [{
273
268
  type: HostBinding,
274
269
  args: ['attr.aria-multiselectable']
275
- }], taglistLabel: [{
276
- type: HostBinding,
277
- args: ['attr.aria-label']
278
270
  }] } });
@@ -6,7 +6,7 @@ import { Directive, TemplateRef } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * Renders the content of the custom list item in the MultiSelect
9
- * ([see example]({% slug templates_multiselect %}#toc-customizing-the-item-content)).
9
+ * ([see example](slug:templates_multiselect#toc-rendering-custom-item-content)).
10
10
  * The template context is set to the current component.
11
11
  * To get a reference to the current text that is typed by the
12
12
  * user, use the `let-customItem` directive.
@@ -9,11 +9,11 @@ import * as i0 from "@angular/core";
9
9
  * with the `kendo<ComponentName>FixedGroupTemplate` directive inside the component tag. The template context is
10
10
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
11
11
  *
12
- * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-template)
13
- * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-template)
14
- * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-template)
15
- * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-template)
16
- * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-template)
12
+ * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-header-template)
13
+ * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-header-template)
14
+ * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-header-template)
15
+ * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-header-template)
16
+ * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-header-template)
17
17
  *
18
18
  * @example
19
19
  * ```ts
@@ -9,11 +9,11 @@ import * as i0 from "@angular/core";
9
9
  * with the `kendo<ComponentName>GroupTemplate` directive inside the component tag. The template context is
10
10
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
11
11
  *
12
- * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-template)
13
- * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-template)
14
- * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-template)
15
- * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-template)
16
- * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-template)
12
+ * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-header-template)
13
+ * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-header-template)
14
+ * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-header-template)
15
+ * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-header-template)
16
+ * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-header-template)
17
17
  *
18
18
  * @example
19
19
  * ```ts
@@ -161,12 +161,12 @@ export class DropDownListComponent {
161
161
  */
162
162
  this.leftRightArrowsNavigation = true;
163
163
  /**
164
- * Fires each time the value is changed ([see example]({% slug overview_ddl %}#toc-events)).
164
+ * Fires each time the value is changed ([see example](slug:events_ddl)).
165
165
  */
166
166
  this.valueChange = new EventEmitter();
167
167
  /**
168
168
  * Fires each time the user types in the input field
169
- * ([see example]({% slug overview_ddl %}#toc-events)).
169
+ * ([see example](slug:events_ddl)).
170
170
  * You can filter the source based on the passed filtration value.
171
171
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
172
172
  * through its API or form binding, the `valueChange` event is not triggered because it
@@ -175,7 +175,7 @@ export class DropDownListComponent {
175
175
  this.filterChange = new EventEmitter();
176
176
  /**
177
177
  * Fires each time the item selection is changed
178
- * ([see example]({% slug overview_ddl %}#toc-events)).
178
+ * ([see example](slug:events_ddl)).
179
179
  */
180
180
  this.selectionChange = new EventEmitter();
181
181
  /**
@@ -118,7 +118,7 @@ export class DropDownTreeComponent {
118
118
  this.onBlur = new EventEmitter();
119
119
  /**
120
120
  * Fires each time the value is changed
121
- * ([see example]({% slug overview_ddt %}#toc-events)).
121
+ * ([see example](slug:events_ddt)).
122
122
  */
123
123
  this.valueChange = new EventEmitter();
124
124
  /**
@@ -220,7 +220,7 @@ export class MultiSelectTreeComponent {
220
220
  this.nodeCollapse = new EventEmitter();
221
221
  /**
222
222
  * Fires each time the value is changed
223
- * ([see example]({% slug overview_multiselecttree %}#toc-events)).
223
+ * ([see example](slug:events_multiselecttree)).
224
224
  */
225
225
  this.valueChange = new EventEmitter();
226
226
  /**
@@ -360,7 +360,7 @@ export class MultiSelectTreeComponent {
360
360
  */
361
361
  handleKeydown(event, input) {
362
362
  if (event.target === this.filterInput?.nativeElement &&
363
- event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight) {
363
+ (event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight)) {
364
364
  return;
365
365
  }
366
366
  if (input) {
@@ -618,8 +618,7 @@ export class MultiSelectTreeComponent {
618
618
  if (!isPresent(this.focusedTagIndex) || this.isOpen) {
619
619
  return null;
620
620
  }
621
- const dataItem = this.tags[this.focusedTagIndex];
622
- return `${this.tagPrefix}-${valueFrom({ dataItem }, this.valueField)}`;
621
+ return this.tagPrefix + '-' + this.focusedTagIndex;
623
622
  }
624
623
  set isFocused(isFocused) {
625
624
  this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
@@ -6,7 +6,7 @@ import { guid, isPresent, isArray, isObjectArray, resolveAllValues, selectedIndi
6
6
  import { SearchBarComponent } from '../common/searchbar.component';
7
7
  import { ViewChild, Renderer2, ViewContainerRef, Component, HostBinding, Input, ElementRef, TemplateRef, Output, EventEmitter, isDevMode, forwardRef, ContentChild, ChangeDetectorRef, KeyValueDiffers, NgZone, Optional, Inject, Injector } from '@angular/core';
8
8
  import { Subscription, Subject, of, merge } from 'rxjs';
9
- import { catchError, filter, map, tap } from 'rxjs/operators';
9
+ import { catchError, filter, map, take, tap } from 'rxjs/operators';
10
10
  import { isChanged, isDocumentAvailable, KendoInput, hasObservers, anyChanged, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired } from '@progress/kendo-angular-common';
11
11
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
12
12
  import { validatePackage } from '@progress/kendo-licensing';
@@ -242,7 +242,7 @@ export class MultiSelectComponent {
242
242
  /**
243
243
  * Fires each time the value is changed&mdash;
244
244
  * when the component is blurred or the value is cleared through the **Clear** button
245
- * ([see example]({% slug overview_multiselect %}#toc-events)).
245
+ * ([see example](slug:events_multiselect)).
246
246
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
247
247
  * through its API or form binding, the `valueChange` event is not triggered because it
248
248
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -772,19 +772,19 @@ export class MultiSelectComponent {
772
772
  const focusedTagIndex = this.focusedTagIndex;
773
773
  const focusedListIndex = this.selectionService.focused;
774
774
  let prefix;
775
- let item;
775
+ let focusedIndex;
776
776
  if (isPresent(focusedTagIndex) && !this.isOpen) {
777
- item = this.tags[focusedTagIndex];
777
+ focusedIndex = focusedTagIndex;
778
778
  prefix = this.tagPrefix;
779
779
  }
780
780
  else if (isPresent(focusedListIndex) && focusedListIndex !== -1 && this.isOpen) {
781
- item = this.dataService.itemAt(focusedListIndex);
781
+ focusedIndex = focusedListIndex;
782
782
  prefix = this.optionPrefix;
783
783
  }
784
784
  else {
785
785
  return null;
786
786
  }
787
- return prefix + "-" + getter(item, this.valueField);
787
+ return prefix + "-" + focusedIndex;
788
788
  }
789
789
  get clearButtonVisiblity() {
790
790
  if (this.touchEnabled) {
@@ -1091,6 +1091,13 @@ export class MultiSelectComponent {
1091
1091
  this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
1092
1092
  this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
1093
1093
  }
1094
+ this._zone.onStable.pipe(take(1)).subscribe(() => {
1095
+ const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby') ||
1096
+ this.searchbar.input.nativeElement.getAttribute('data-kendo-label-id');
1097
+ if (ariaLabel) {
1098
+ this.renderer.setAttribute(this.tagList.hostElement.nativeElement, 'aria-labelledby', ariaLabel);
1099
+ }
1100
+ });
1094
1101
  }
1095
1102
  ngOnDestroy() {
1096
1103
  this._toggle(false);
@@ -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: 1719995904,
13
- version: '16.4.0-develop.4',
12
+ publishDate: 1720184984,
13
+ version: '16.4.0-develop.6',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -38,8 +38,8 @@ const packageMetadata = {
38
38
  name: '@progress/kendo-angular-dropdowns',
39
39
  productName: 'Kendo UI for Angular',
40
40
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
41
- publishDate: 1719995904,
42
- version: '16.4.0-develop.4',
41
+ publishDate: 1720184984,
42
+ version: '16.4.0-develop.6',
43
43
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
44
44
  };
45
45
 
@@ -955,11 +955,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
955
955
  * with the `kendo<ComponentName>GroupTemplate` directive inside the component tag. The template context is
956
956
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
957
957
  *
958
- * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-template)
959
- * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-template)
960
- * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-template)
961
- * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-template)
962
- * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-template)
958
+ * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-header-template)
959
+ * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-header-template)
960
+ * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-header-template)
961
+ * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-header-template)
962
+ * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-header-template)
963
963
  *
964
964
  * @example
965
965
  * ```ts
@@ -1003,11 +1003,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1003
1003
  * with the `kendo<ComponentName>FixedGroupTemplate` directive inside the component tag. The template context is
1004
1004
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
1005
1005
  *
1006
- * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-template)
1007
- * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-template)
1008
- * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-template)
1009
- * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-template)
1010
- * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-template)
1006
+ * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-header-template)
1007
+ * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-header-template)
1008
+ * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-header-template)
1009
+ * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-header-template)
1010
+ * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-header-template)
1011
1011
  *
1012
1012
  * @example
1013
1013
  * ```ts
@@ -3107,7 +3107,7 @@ class AutoCompleteComponent {
3107
3107
  /**
3108
3108
  * Fires each time the value is changed&mdash;
3109
3109
  * when the component is blurred or the value is cleared through the **Clear** button
3110
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
3110
+ * ([see example](slug:events_autocomplete)).
3111
3111
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
3112
3112
  * through its API or form binding, the `valueChange` event is not triggered because it
3113
3113
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -3116,7 +3116,7 @@ class AutoCompleteComponent {
3116
3116
  /**
3117
3117
  * Fires each time the user types in the input field.
3118
3118
  * You can filter the source based on the passed filtration value
3119
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
3119
+ * ([see example](slug:events_autocomplete)).
3120
3120
  */
3121
3121
  this.filterChange = new EventEmitter();
3122
3122
  /**
@@ -4766,7 +4766,7 @@ class ComboBoxComponent extends MultiTabStop {
4766
4766
  /**
4767
4767
  * Fires each time the value is changed&mdash;
4768
4768
  * when the component is blurred or the value is cleared through the **Clear** button
4769
- * ([see example]({% slug overview_combobox %}#toc-events)).
4769
+ * ([see example](slug:events_combobox)).
4770
4770
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
4771
4771
  * through its API or form binding, the `valueChange` event is not triggered because it
4772
4772
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -4774,13 +4774,13 @@ class ComboBoxComponent extends MultiTabStop {
4774
4774
  this.valueChange = new EventEmitter();
4775
4775
  /**
4776
4776
  * Fires each time an item selection is changed
4777
- * ([see example]({% slug overview_combobox %}#toc-events)).
4777
+ * ([see example](slug:events_combobox)).
4778
4778
  */
4779
4779
  this.selectionChange = new EventEmitter();
4780
4780
  /**
4781
4781
  * Fires each time the user types in the input field.
4782
4782
  * You can filter the source based on the passed filtration value
4783
- * ([see example]({% slug overview_combobox %}#toc-events)).
4783
+ * ([see example](slug:events_combobox)).
4784
4784
  */
4785
4785
  this.filterChange = new EventEmitter();
4786
4786
  /**
@@ -6794,12 +6794,12 @@ class DropDownListComponent {
6794
6794
  */
6795
6795
  this.leftRightArrowsNavigation = true;
6796
6796
  /**
6797
- * Fires each time the value is changed ([see example]({% slug overview_ddl %}#toc-events)).
6797
+ * Fires each time the value is changed ([see example](slug:events_ddl)).
6798
6798
  */
6799
6799
  this.valueChange = new EventEmitter();
6800
6800
  /**
6801
6801
  * Fires each time the user types in the input field
6802
- * ([see example]({% slug overview_ddl %}#toc-events)).
6802
+ * ([see example](slug:events_ddl)).
6803
6803
  * You can filter the source based on the passed filtration value.
6804
6804
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
6805
6805
  * through its API or form binding, the `valueChange` event is not triggered because it
@@ -6808,7 +6808,7 @@ class DropDownListComponent {
6808
6808
  this.filterChange = new EventEmitter();
6809
6809
  /**
6810
6810
  * Fires each time the item selection is changed
6811
- * ([see example]({% slug overview_ddl %}#toc-events)).
6811
+ * ([see example](slug:events_ddl)).
6812
6812
  */
6813
6813
  this.selectionChange = new EventEmitter();
6814
6814
  /**
@@ -8601,7 +8601,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8601
8601
 
8602
8602
  /**
8603
8603
  * Renders the content of the custom list item in the MultiSelect
8604
- * ([see example]({% slug templates_multiselect %}#toc-customizing-the-item-content)).
8604
+ * ([see example](slug:templates_multiselect#toc-rendering-custom-item-content)).
8605
8605
  * The template context is set to the current component.
8606
8606
  * To get a reference to the current text that is typed by the
8607
8607
  * user, use the `let-customItem` directive.
@@ -8764,6 +8764,7 @@ class TagListComponent {
8764
8764
  this.disabledIndices = new Set();
8765
8765
  this.removeTag = new EventEmitter();
8766
8766
  this.hostClasses = true;
8767
+ this.taglistRole = 'listbox';
8767
8768
  this.multiselectable = true;
8768
8769
  this._size = 'medium';
8769
8770
  }
@@ -8780,12 +8781,6 @@ class TagListComponent {
8780
8781
  get hostId() {
8781
8782
  return this.id;
8782
8783
  }
8783
- get taglistRole() {
8784
- return 'listbox';
8785
- }
8786
- get taglistLabel() {
8787
- return 'taglist';
8788
- }
8789
8784
  tagProp(tag, prop, index) {
8790
8785
  const propField = prop && this.getPropField(tag, prop, index);
8791
8786
  return getter(tag, propField);
@@ -8811,7 +8806,7 @@ class TagListComponent {
8811
8806
  }
8812
8807
  itemId(tag, index) {
8813
8808
  if (tag) { //because of custom values
8814
- return this.tagPrefix + "-" + this.tagProp(tag, this.valueField, index);
8809
+ return this.tagPrefix + "-" + index;
8815
8810
  }
8816
8811
  }
8817
8812
  isGroupTag(tag) {
@@ -8836,11 +8831,11 @@ class TagListComponent {
8836
8831
  }
8837
8832
  }
8838
8833
  TagListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8839
- TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagListComponent, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClasses", "class.k-selection-multiple": "this.hostClasses", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable", "attr.aria-label": "this.taglistLabel" } }, ngImport: i0, template: `
8834
+ TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagListComponent, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClasses", "class.k-selection-multiple": "this.hostClasses", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable" } }, ngImport: i0, template: `
8840
8835
  <div
8841
8836
  *ngFor="let tag of tags; let index = index;"
8842
8837
  [attr.id]="itemId(tag, index)"
8843
- [attr.aria-hidden]="tagAriaHidden(index)"
8838
+ [attr.aria-selected]="true"
8844
8839
  [attr.role]="'option'"
8845
8840
  class="k-chip"
8846
8841
  [ngClass]="{
@@ -8904,7 +8899,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8904
8899
  <div
8905
8900
  *ngFor="let tag of tags; let index = index;"
8906
8901
  [attr.id]="itemId(tag, index)"
8907
- [attr.aria-hidden]="tagAriaHidden(index)"
8902
+ [attr.aria-selected]="true"
8908
8903
  [attr.role]="'option'"
8909
8904
  class="k-chip"
8910
8905
  [ngClass]="{
@@ -9006,9 +9001,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
9006
9001
  }], multiselectable: [{
9007
9002
  type: HostBinding,
9008
9003
  args: ['attr.aria-multiselectable']
9009
- }], taglistLabel: [{
9010
- type: HostBinding,
9011
- args: ['attr.aria-label']
9012
9004
  }] } });
9013
9005
 
9014
9006
  const MULTISELECT_VALUE_ACCESSOR = {
@@ -9196,7 +9188,7 @@ class MultiSelectComponent {
9196
9188
  /**
9197
9189
  * Fires each time the value is changed&mdash;
9198
9190
  * when the component is blurred or the value is cleared through the **Clear** button
9199
- * ([see example]({% slug overview_multiselect %}#toc-events)).
9191
+ * ([see example](slug:events_multiselect)).
9200
9192
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
9201
9193
  * through its API or form binding, the `valueChange` event is not triggered because it
9202
9194
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -9730,19 +9722,19 @@ class MultiSelectComponent {
9730
9722
  const focusedTagIndex = this.focusedTagIndex;
9731
9723
  const focusedListIndex = this.selectionService.focused;
9732
9724
  let prefix;
9733
- let item;
9725
+ let focusedIndex;
9734
9726
  if (isPresent(focusedTagIndex) && !this.isOpen) {
9735
- item = this.tags[focusedTagIndex];
9727
+ focusedIndex = focusedTagIndex;
9736
9728
  prefix = this.tagPrefix;
9737
9729
  }
9738
9730
  else if (isPresent(focusedListIndex) && focusedListIndex !== -1 && this.isOpen) {
9739
- item = this.dataService.itemAt(focusedListIndex);
9731
+ focusedIndex = focusedListIndex;
9740
9732
  prefix = this.optionPrefix;
9741
9733
  }
9742
9734
  else {
9743
9735
  return null;
9744
9736
  }
9745
- return prefix + "-" + getter(item, this.valueField);
9737
+ return prefix + "-" + focusedIndex;
9746
9738
  }
9747
9739
  get clearButtonVisiblity() {
9748
9740
  if (this.touchEnabled) {
@@ -10049,6 +10041,13 @@ class MultiSelectComponent {
10049
10041
  this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
10050
10042
  this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
10051
10043
  }
10044
+ this._zone.onStable.pipe(take(1)).subscribe(() => {
10045
+ const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby') ||
10046
+ this.searchbar.input.nativeElement.getAttribute('data-kendo-label-id');
10047
+ if (ariaLabel) {
10048
+ this.renderer.setAttribute(this.tagList.hostElement.nativeElement, 'aria-labelledby', ariaLabel);
10049
+ }
10050
+ });
10052
10051
  }
10053
10052
  ngOnDestroy() {
10054
10053
  this._toggle(false);
@@ -12253,7 +12252,7 @@ class DropDownTreeComponent {
12253
12252
  this.onBlur = new EventEmitter();
12254
12253
  /**
12255
12254
  * Fires each time the value is changed
12256
- * ([see example]({% slug overview_ddt %}#toc-events)).
12255
+ * ([see example](slug:events_ddt)).
12257
12256
  */
12258
12257
  this.valueChange = new EventEmitter();
12259
12258
  /**
@@ -14576,7 +14575,7 @@ class MultiSelectTreeComponent {
14576
14575
  this.nodeCollapse = new EventEmitter();
14577
14576
  /**
14578
14577
  * Fires each time the value is changed
14579
- * ([see example]({% slug overview_multiselecttree %}#toc-events)).
14578
+ * ([see example](slug:events_multiselecttree)).
14580
14579
  */
14581
14580
  this.valueChange = new EventEmitter();
14582
14581
  /**
@@ -14717,7 +14716,7 @@ class MultiSelectTreeComponent {
14717
14716
  handleKeydown(event, input) {
14718
14717
  var _a, _b, _c;
14719
14718
  if (event.target === ((_a = this.filterInput) === null || _a === void 0 ? void 0 : _a.nativeElement) &&
14720
- event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight) {
14719
+ (event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight)) {
14721
14720
  return;
14722
14721
  }
14723
14722
  if (input) {
@@ -14977,8 +14976,7 @@ class MultiSelectTreeComponent {
14977
14976
  if (!isPresent(this.focusedTagIndex) || this.isOpen) {
14978
14977
  return null;
14979
14978
  }
14980
- const dataItem = this.tags[this.focusedTagIndex];
14981
- return `${this.tagPrefix}-${valueFrom({ dataItem }, this.valueField)}`;
14979
+ return this.tagPrefix + '-' + this.focusedTagIndex;
14982
14980
  }
14983
14981
  set isFocused(isFocused) {
14984
14982
  this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
@@ -38,8 +38,8 @@ const packageMetadata = {
38
38
  name: '@progress/kendo-angular-dropdowns',
39
39
  productName: 'Kendo UI for Angular',
40
40
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
41
- publishDate: 1719995904,
42
- version: '16.4.0-develop.4',
41
+ publishDate: 1720184984,
42
+ version: '16.4.0-develop.6',
43
43
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
44
44
  };
45
45
 
@@ -953,11 +953,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
953
953
  * with the `kendo<ComponentName>GroupTemplate` directive inside the component tag. The template context is
954
954
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
955
955
  *
956
- * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-template)
957
- * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-template)
958
- * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-template)
959
- * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-template)
960
- * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-template)
956
+ * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-header-template)
957
+ * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-header-template)
958
+ * - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-header-template)
959
+ * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-header-template)
960
+ * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-header-template)
961
961
  *
962
962
  * @example
963
963
  * ```ts
@@ -1001,11 +1001,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1001
1001
  * with the `kendo<ComponentName>FixedGroupTemplate` directive inside the component tag. The template context is
1002
1002
  * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
1003
1003
  *
1004
- * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-template)
1005
- * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-template)
1006
- * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-template)
1007
- * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-template)
1008
- * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-template)
1004
+ * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-header-template)
1005
+ * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-header-template)
1006
+ * - [Using `FixedGroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-fixed-group-header-template)
1007
+ * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-header-template)
1008
+ * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-header-template)
1009
1009
  *
1010
1010
  * @example
1011
1011
  * ```ts
@@ -3104,7 +3104,7 @@ class AutoCompleteComponent {
3104
3104
  /**
3105
3105
  * Fires each time the value is changed&mdash;
3106
3106
  * when the component is blurred or the value is cleared through the **Clear** button
3107
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
3107
+ * ([see example](slug:events_autocomplete)).
3108
3108
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
3109
3109
  * through its API or form binding, the `valueChange` event is not triggered because it
3110
3110
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -3113,7 +3113,7 @@ class AutoCompleteComponent {
3113
3113
  /**
3114
3114
  * Fires each time the user types in the input field.
3115
3115
  * You can filter the source based on the passed filtration value
3116
- * ([see example]({% slug overview_autocomplete %}#toc-events)).
3116
+ * ([see example](slug:events_autocomplete)).
3117
3117
  */
3118
3118
  this.filterChange = new EventEmitter();
3119
3119
  /**
@@ -4757,7 +4757,7 @@ class ComboBoxComponent extends MultiTabStop {
4757
4757
  /**
4758
4758
  * Fires each time the value is changed&mdash;
4759
4759
  * when the component is blurred or the value is cleared through the **Clear** button
4760
- * ([see example]({% slug overview_combobox %}#toc-events)).
4760
+ * ([see example](slug:events_combobox)).
4761
4761
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
4762
4762
  * through its API or form binding, the `valueChange` event is not triggered because it
4763
4763
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -4765,13 +4765,13 @@ class ComboBoxComponent extends MultiTabStop {
4765
4765
  this.valueChange = new EventEmitter();
4766
4766
  /**
4767
4767
  * Fires each time an item selection is changed
4768
- * ([see example]({% slug overview_combobox %}#toc-events)).
4768
+ * ([see example](slug:events_combobox)).
4769
4769
  */
4770
4770
  this.selectionChange = new EventEmitter();
4771
4771
  /**
4772
4772
  * Fires each time the user types in the input field.
4773
4773
  * You can filter the source based on the passed filtration value
4774
- * ([see example]({% slug overview_combobox %}#toc-events)).
4774
+ * ([see example](slug:events_combobox)).
4775
4775
  */
4776
4776
  this.filterChange = new EventEmitter();
4777
4777
  /**
@@ -6779,12 +6779,12 @@ class DropDownListComponent {
6779
6779
  */
6780
6780
  this.leftRightArrowsNavigation = true;
6781
6781
  /**
6782
- * Fires each time the value is changed ([see example]({% slug overview_ddl %}#toc-events)).
6782
+ * Fires each time the value is changed ([see example](slug:events_ddl)).
6783
6783
  */
6784
6784
  this.valueChange = new EventEmitter();
6785
6785
  /**
6786
6786
  * Fires each time the user types in the input field
6787
- * ([see example]({% slug overview_ddl %}#toc-events)).
6787
+ * ([see example](slug:events_ddl)).
6788
6788
  * You can filter the source based on the passed filtration value.
6789
6789
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
6790
6790
  * through its API or form binding, the `valueChange` event is not triggered because it
@@ -6793,7 +6793,7 @@ class DropDownListComponent {
6793
6793
  this.filterChange = new EventEmitter();
6794
6794
  /**
6795
6795
  * Fires each time the item selection is changed
6796
- * ([see example]({% slug overview_ddl %}#toc-events)).
6796
+ * ([see example](slug:events_ddl)).
6797
6797
  */
6798
6798
  this.selectionChange = new EventEmitter();
6799
6799
  /**
@@ -8579,7 +8579,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8579
8579
 
8580
8580
  /**
8581
8581
  * Renders the content of the custom list item in the MultiSelect
8582
- * ([see example]({% slug templates_multiselect %}#toc-customizing-the-item-content)).
8582
+ * ([see example](slug:templates_multiselect#toc-rendering-custom-item-content)).
8583
8583
  * The template context is set to the current component.
8584
8584
  * To get a reference to the current text that is typed by the
8585
8585
  * user, use the `let-customItem` directive.
@@ -8742,6 +8742,7 @@ class TagListComponent {
8742
8742
  this.disabledIndices = new Set();
8743
8743
  this.removeTag = new EventEmitter();
8744
8744
  this.hostClasses = true;
8745
+ this.taglistRole = 'listbox';
8745
8746
  this.multiselectable = true;
8746
8747
  this._size = 'medium';
8747
8748
  }
@@ -8758,12 +8759,6 @@ class TagListComponent {
8758
8759
  get hostId() {
8759
8760
  return this.id;
8760
8761
  }
8761
- get taglistRole() {
8762
- return 'listbox';
8763
- }
8764
- get taglistLabel() {
8765
- return 'taglist';
8766
- }
8767
8762
  tagProp(tag, prop, index) {
8768
8763
  const propField = prop && this.getPropField(tag, prop, index);
8769
8764
  return getter(tag, propField);
@@ -8789,7 +8784,7 @@ class TagListComponent {
8789
8784
  }
8790
8785
  itemId(tag, index) {
8791
8786
  if (tag) { //because of custom values
8792
- return this.tagPrefix + "-" + this.tagProp(tag, this.valueField, index);
8787
+ return this.tagPrefix + "-" + index;
8793
8788
  }
8794
8789
  }
8795
8790
  isGroupTag(tag) {
@@ -8814,11 +8809,11 @@ class TagListComponent {
8814
8809
  }
8815
8810
  }
8816
8811
  TagListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8817
- TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagListComponent, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClasses", "class.k-selection-multiple": "this.hostClasses", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable", "attr.aria-label": "this.taglistLabel" } }, ngImport: i0, template: `
8812
+ TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagListComponent, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClasses", "class.k-selection-multiple": "this.hostClasses", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable" } }, ngImport: i0, template: `
8818
8813
  <div
8819
8814
  *ngFor="let tag of tags; let index = index;"
8820
8815
  [attr.id]="itemId(tag, index)"
8821
- [attr.aria-hidden]="tagAriaHidden(index)"
8816
+ [attr.aria-selected]="true"
8822
8817
  [attr.role]="'option'"
8823
8818
  class="k-chip"
8824
8819
  [ngClass]="{
@@ -8882,7 +8877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8882
8877
  <div
8883
8878
  *ngFor="let tag of tags; let index = index;"
8884
8879
  [attr.id]="itemId(tag, index)"
8885
- [attr.aria-hidden]="tagAriaHidden(index)"
8880
+ [attr.aria-selected]="true"
8886
8881
  [attr.role]="'option'"
8887
8882
  class="k-chip"
8888
8883
  [ngClass]="{
@@ -8984,9 +8979,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
8984
8979
  }], multiselectable: [{
8985
8980
  type: HostBinding,
8986
8981
  args: ['attr.aria-multiselectable']
8987
- }], taglistLabel: [{
8988
- type: HostBinding,
8989
- args: ['attr.aria-label']
8990
8982
  }] } });
8991
8983
 
8992
8984
  const MULTISELECT_VALUE_ACCESSOR = {
@@ -9174,7 +9166,7 @@ class MultiSelectComponent {
9174
9166
  /**
9175
9167
  * Fires each time the value is changed&mdash;
9176
9168
  * when the component is blurred or the value is cleared through the **Clear** button
9177
- * ([see example]({% slug overview_multiselect %}#toc-events)).
9169
+ * ([see example](slug:events_multiselect)).
9178
9170
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
9179
9171
  * through its API or form binding, the `valueChange` event is not triggered because it
9180
9172
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
@@ -9704,19 +9696,19 @@ class MultiSelectComponent {
9704
9696
  const focusedTagIndex = this.focusedTagIndex;
9705
9697
  const focusedListIndex = this.selectionService.focused;
9706
9698
  let prefix;
9707
- let item;
9699
+ let focusedIndex;
9708
9700
  if (isPresent(focusedTagIndex) && !this.isOpen) {
9709
- item = this.tags[focusedTagIndex];
9701
+ focusedIndex = focusedTagIndex;
9710
9702
  prefix = this.tagPrefix;
9711
9703
  }
9712
9704
  else if (isPresent(focusedListIndex) && focusedListIndex !== -1 && this.isOpen) {
9713
- item = this.dataService.itemAt(focusedListIndex);
9705
+ focusedIndex = focusedListIndex;
9714
9706
  prefix = this.optionPrefix;
9715
9707
  }
9716
9708
  else {
9717
9709
  return null;
9718
9710
  }
9719
- return prefix + "-" + getter(item, this.valueField);
9711
+ return prefix + "-" + focusedIndex;
9720
9712
  }
9721
9713
  get clearButtonVisiblity() {
9722
9714
  if (this.touchEnabled) {
@@ -10023,6 +10015,13 @@ class MultiSelectComponent {
10023
10015
  this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
10024
10016
  this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
10025
10017
  }
10018
+ this._zone.onStable.pipe(take(1)).subscribe(() => {
10019
+ const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby') ||
10020
+ this.searchbar.input.nativeElement.getAttribute('data-kendo-label-id');
10021
+ if (ariaLabel) {
10022
+ this.renderer.setAttribute(this.tagList.hostElement.nativeElement, 'aria-labelledby', ariaLabel);
10023
+ }
10024
+ });
10026
10025
  }
10027
10026
  ngOnDestroy() {
10028
10027
  this._toggle(false);
@@ -12223,7 +12222,7 @@ class DropDownTreeComponent {
12223
12222
  this.onBlur = new EventEmitter();
12224
12223
  /**
12225
12224
  * Fires each time the value is changed
12226
- * ([see example]({% slug overview_ddt %}#toc-events)).
12225
+ * ([see example](slug:events_ddt)).
12227
12226
  */
12228
12227
  this.valueChange = new EventEmitter();
12229
12228
  /**
@@ -14539,7 +14538,7 @@ class MultiSelectTreeComponent {
14539
14538
  this.nodeCollapse = new EventEmitter();
14540
14539
  /**
14541
14540
  * Fires each time the value is changed
14542
- * ([see example]({% slug overview_multiselecttree %}#toc-events)).
14541
+ * ([see example](slug:events_multiselecttree)).
14543
14542
  */
14544
14543
  this.valueChange = new EventEmitter();
14545
14544
  /**
@@ -14679,7 +14678,7 @@ class MultiSelectTreeComponent {
14679
14678
  */
14680
14679
  handleKeydown(event, input) {
14681
14680
  if (event.target === this.filterInput?.nativeElement &&
14682
- event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight) {
14681
+ (event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight)) {
14683
14682
  return;
14684
14683
  }
14685
14684
  if (input) {
@@ -14937,8 +14936,7 @@ class MultiSelectTreeComponent {
14937
14936
  if (!isPresent(this.focusedTagIndex) || this.isOpen) {
14938
14937
  return null;
14939
14938
  }
14940
- const dataItem = this.tags[this.focusedTagIndex];
14941
- return `${this.tagPrefix}-${valueFrom({ dataItem }, this.valueField)}`;
14939
+ return this.tagPrefix + '-' + this.focusedTagIndex;
14942
14940
  }
14943
14941
  set isFocused(isFocused) {
14944
14942
  this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');
@@ -420,7 +420,7 @@ export declare class MultiSelectComponent implements OnDestroy, OnChanges, OnIni
420
420
  /**
421
421
  * Fires each time the value is changed&mdash;
422
422
  * when the component is blurred or the value is cleared through the **Clear** button
423
- * ([see example]({% slug overview_multiselect %}#toc-events)).
423
+ * ([see example](slug:events_multiselect)).
424
424
  * When the value of the component is programmatically changed to `ngModel` or `formControl`
425
425
  * through its API or form binding, the `valueChange` event is not triggered because it
426
426
  * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-dropdowns",
3
- "version": "16.4.0-develop.4",
3
+ "version": "16.4.0-develop.6",
4
4
  "description": "A wide variety of native Angular dropdown components including AutoComplete, ComboBox, DropDownList, DropDownTree, MultiColumnComboBox, MultiSelect, and MultiSelectTree ",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -25,17 +25,17 @@
25
25
  "@angular/forms": "15 - 18",
26
26
  "@angular/platform-browser": "15 - 18",
27
27
  "@progress/kendo-licensing": "^1.0.2",
28
- "@progress/kendo-angular-common": "16.4.0-develop.4",
29
- "@progress/kendo-angular-l10n": "16.4.0-develop.4",
30
- "@progress/kendo-angular-navigation": "16.4.0-develop.4",
31
- "@progress/kendo-angular-popup": "16.4.0-develop.4",
32
- "@progress/kendo-angular-icons": "16.4.0-develop.4",
33
- "@progress/kendo-angular-treeview": "16.4.0-develop.4",
28
+ "@progress/kendo-angular-common": "16.4.0-develop.6",
29
+ "@progress/kendo-angular-l10n": "16.4.0-develop.6",
30
+ "@progress/kendo-angular-navigation": "16.4.0-develop.6",
31
+ "@progress/kendo-angular-popup": "16.4.0-develop.6",
32
+ "@progress/kendo-angular-icons": "16.4.0-develop.6",
33
+ "@progress/kendo-angular-treeview": "16.4.0-develop.6",
34
34
  "rxjs": "^6.5.3 || ^7.0.0"
35
35
  },
36
36
  "dependencies": {
37
37
  "tslib": "^2.3.1",
38
- "@progress/kendo-angular-schematics": "16.4.0-develop.4",
38
+ "@progress/kendo-angular-schematics": "16.4.0-develop.6",
39
39
  "@progress/kendo-common": "^0.2.1"
40
40
  },
41
41
  "schematics": "./schematics/collection.json",
@@ -4,9 +4,9 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DropDownsModule', package: 'dropdowns', peerDependencies: {
6
6
  // peers of the treeview
7
- '@progress/kendo-angular-inputs': '16.4.0-develop.4',
7
+ '@progress/kendo-angular-inputs': '16.4.0-develop.6',
8
8
  // peers of inputs
9
- '@progress/kendo-angular-intl': '16.4.0-develop.4',
9
+ '@progress/kendo-angular-intl': '16.4.0-develop.6',
10
10
  '@progress/kendo-drawing': '^1.17.2',
11
11
  // Peer dependency of icons
12
12
  '@progress/kendo-svg-icons': '^3.0.0'