@progress/kendo-angular-dropdowns 18.1.0-develop.2 → 18.1.0-develop.21

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.
@@ -22,8 +22,8 @@ export declare abstract class BaseCheckDirective {
22
22
  /**
23
23
  * @hidden
24
24
  * The flag is needed in order to determine how to construct the items map keys.
25
- * If `true`, then the key consists of the item's value and 0 (no leveling required),
26
- * else the key consists of the item's value and level (depth)
25
+ * If `true`, then the key consists of the item's value and level (depth),
26
+ * else the key consists of the item's value and 0 (no leveling required)
27
27
  */
28
28
  isHeterogeneous: boolean;
29
29
  /**
@@ -489,8 +489,8 @@ export declare class MultiSelectTreeComponent implements OnInit, OnDestroy, OnCh
489
489
  /**
490
490
  * @hidden
491
491
  * The flag is needed in order to determine how to construct the items map keys.
492
- * If `true`, then the key consists of the item's value and 0 (no leveling required),
493
- * else the key consists of the item's value and level (depth)
492
+ * If `true`, then the key consists of the item's value and level (depth),
493
+ * else the key consists of the item's value and 0 (no leveling required)
494
494
  */
495
495
  isHeterogeneous: boolean;
496
496
  /**
@@ -179,14 +179,10 @@ export class MultiColumnComboBoxComponent extends ComboBoxComponent {
179
179
  * @hidden
180
180
  */
181
181
  getColumnWidth(index) {
182
- const popupWidthNumber = +(this.popupWidth.max.slice(0, -2));
183
- if (this.totalColumnsWidth >= popupWidthNumber) {
182
+ if (!this.virtual) {
184
183
  return this.columns.get(index).width;
185
184
  }
186
- if (this.virtual && isPresent(this.headerColumnWidths[index])) {
187
- return this.headerColumnWidths[index];
188
- }
189
- return this.columns.get(index).width;
185
+ return this.headerColumnWidths[index];
190
186
  }
191
187
  verifySettings() {
192
188
  if (!isDevMode()) {
@@ -257,7 +257,7 @@ export class ListComponent {
257
257
  let index;
258
258
  if (item.getAttribute("role") === "group") {
259
259
  index = parseInt(item.getAttribute("group-index"), 10);
260
- this.currentGroup = this.dataService.groupAt(index).value;
260
+ this.currentGroup = this.dataService.groupAt(index)?.value;
261
261
  }
262
262
  else {
263
263
  index = parseInt(item.getAttribute("index"), 10);
@@ -495,7 +495,7 @@ export class ListComponent {
495
495
  tabindex="-1"
496
496
  aria-hidden="true"
497
497
  [ngClass]="checkboxClasses"
498
- (change)="onCheckedChange($event, itemIndex)"
498
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
499
499
  [checked]="isChecked(itemIndex)"
500
500
  />
501
501
  <ng-template *ngIf="template"
@@ -633,7 +633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
633
633
  tabindex="-1"
634
634
  aria-hidden="true"
635
635
  [ngClass]="checkboxClasses"
636
- (change)="onCheckedChange($event, itemIndex)"
636
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
637
637
  [checked]="isChecked(itemIndex)"
638
638
  />
639
639
  <ng-template *ngIf="template"
@@ -1003,7 +1003,6 @@ export class DropDownListComponent {
1003
1003
  });
1004
1004
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
1005
1005
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
1006
- this.setAriaactivedescendant();
1007
1006
  const popupWrapper = this.popupRef.popupElement;
1008
1007
  const { min, max } = this.width;
1009
1008
  popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);
@@ -1023,6 +1022,7 @@ export class DropDownListComponent {
1023
1022
  this.subs.add(this.popupRef.popupOpen.subscribe(() => {
1024
1023
  this.cdr.detectChanges();
1025
1024
  setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
1025
+ this.setAriaactivedescendant();
1026
1026
  this.optionsList.scrollToItem(this.selectionService.focused);
1027
1027
  this.selectionService.focus(this.selectionService.focused);
1028
1028
  this.opened.emit();
@@ -1126,7 +1126,7 @@ export class DropDownListComponent {
1126
1126
  setAriaactivedescendant() {
1127
1127
  if (this.ariaActivedescendant) {
1128
1128
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-activedescendant', this.ariaActivedescendant);
1129
- const searchInput = this.popupRef.popupElement.querySelector('input[role="searchbox"]');
1129
+ const searchInput = this.popupRef?.popupElement.querySelector('input[role="searchbox"]') || this.actionSheetSearchBar?.input.nativeElement;
1130
1130
  if (searchInput) {
1131
1131
  this.renderer.setAttribute(searchInput, 'aria-activedescendant', this.ariaActivedescendant);
1132
1132
  }
@@ -1455,6 +1455,8 @@ export class DropDownListComponent {
1455
1455
  }
1456
1456
  closeActionSheet() {
1457
1457
  this.actionSheet.toggle(false);
1458
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
1459
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
1458
1460
  if (this.filterable) {
1459
1461
  this.actionSheetSearchBar.value = '';
1460
1462
  this.filterChange.emit('');
@@ -1465,7 +1467,10 @@ export class DropDownListComponent {
1465
1467
  this.windowSize = this.adaptiveService.size;
1466
1468
  this.actionSheet.toggle(true);
1467
1469
  this.cdr.detectChanges();
1470
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
1471
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
1468
1472
  setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
1473
+ this.setAriaactivedescendant();
1469
1474
  this.title = setActionSheetTitle(this.wrapper, this.title);
1470
1475
  updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
1471
1476
  this.cdr.detectChanges();
@@ -14,8 +14,8 @@ export class BaseCheckDirective {
14
14
  /**
15
15
  * @hidden
16
16
  * The flag is needed in order to determine how to construct the items map keys.
17
- * If `true`, then the key consists of the item's value and 0 (no leveling required),
18
- * else the key consists of the item's value and level (depth)
17
+ * If `true`, then the key consists of the item's value and level (depth),
18
+ * else the key consists of the item's value and 0 (no leveling required)
19
19
  */
20
20
  isHeterogeneous;
21
21
  addItem(item) {
@@ -36,7 +36,11 @@ export class BaseCheckDirective {
36
36
  const key = this.getKey(item, level);
37
37
  const candidate = { ...item, level, key };
38
38
  this.checkedItems = this.checkedItems
39
- .filter(item => valueFrom(item, this.valueField) !== valueFrom(candidate, this.valueField));
39
+ .filter(item => {
40
+ const valueMatch = valueFrom(item, this.valueField) === valueFrom(candidate, this.valueField);
41
+ const levelMatch = item.level === candidate.level;
42
+ return this.isHeterogeneous ? !(valueMatch && levelMatch) : !valueMatch;
43
+ });
40
44
  this.checkedKeys.delete(key);
41
45
  }
42
46
  isItemChecked(item) {
@@ -768,8 +768,8 @@ export class MultiSelectTreeComponent {
768
768
  /**
769
769
  * @hidden
770
770
  * The flag is needed in order to determine how to construct the items map keys.
771
- * If `true`, then the key consists of the item's value and 0 (no leveling required),
772
- * else the key consists of the item's value and level (depth)
771
+ * If `true`, then the key consists of the item's value and level (depth),
772
+ * else the key consists of the item's value and 0 (no leveling required)
773
773
  */
774
774
  isHeterogeneous;
775
775
  /**
@@ -1116,7 +1116,7 @@ export class MultiSelectTreeComponent {
1116
1116
  }
1117
1117
  else {
1118
1118
  // Remove single tag when the child items are pre-fetched
1119
- const dataItem = this.dataItems[index];
1119
+ const dataItem = this.dataItems.find(item => item.tagPositionIndex === index);
1120
1120
  const itemKey = dataItem.key;
1121
1121
  const lookup = this.lookup.itemLookup(itemKey);
1122
1122
  const pendingCheck = [lookup.item];
@@ -1126,10 +1126,20 @@ export class MultiSelectTreeComponent {
1126
1126
  pendingCheck.push(...this.removeParents(lookup.parent));
1127
1127
  }
1128
1128
  const keysToRemove = pendingCheck.map(item => item.key);
1129
+ // Holds the position indexes of the items to be removed
1130
+ const valueDepthIndices = [];
1129
1131
  this.dataItems = this.dataItems.filter((_item, i) => {
1130
- return !keysToRemove.includes(_item.key) || this.disabledIndices.has(i);
1132
+ const shouldStay = !keysToRemove.includes(_item.key) || this.disabledIndices.has(i);
1133
+ if (!shouldStay) {
1134
+ // We need to know the index position of the data item to be able to update the valueDepth array accordignly
1135
+ // as each data item's position is corresponding to the same position in valueDepth
1136
+ valueDepthIndices.push(i);
1137
+ }
1138
+ return shouldStay;
1139
+ });
1140
+ this.valueDepth = this.valueDepth.filter((_item, i) => {
1141
+ return !valueDepthIndices.includes(i) || this.disabledIndices.has(i);
1131
1142
  });
1132
- this.valueDepth = this.dataItems.map(i => i.level);
1133
1143
  }
1134
1144
  this.updateValue(this.dataItems);
1135
1145
  if (!this.isFocused) {
@@ -1538,7 +1548,15 @@ export class MultiSelectTreeComponent {
1538
1548
  const source = this.dataItems.map(item => item.dataItem);
1539
1549
  this.tags = this.tagMapper(source);
1540
1550
  this.disabledIndices = this.disabledItemsMapper();
1541
- this.dataItems.sort((a, b) => this.tags.indexOf(a.dataItem) - this.tags.indexOf(b.dataItem));
1551
+ // Create a mapping of tags to position indices
1552
+ const tagIndexMap = new Map(this.tags.map((tag, index) => [JSON.stringify(tag), index]));
1553
+ // Modify dataItems by adding a property to hold the item's position as displayed in the tags
1554
+ this.dataItems.forEach(item => {
1555
+ const serializedDataItem = JSON.stringify(item.dataItem);
1556
+ item.tagPositionIndex = tagIndexMap.has(serializedDataItem)
1557
+ ? tagIndexMap.get(serializedDataItem) // Use the index from tags if it exists
1558
+ : null; // Assign a null value if the dataItem is not visible in the tags
1559
+ });
1542
1560
  }
1543
1561
  updateValue(value) {
1544
1562
  const newValue = this.valuePrimitive ?
@@ -1630,6 +1648,8 @@ export class MultiSelectTreeComponent {
1630
1648
  closeActionSheet() {
1631
1649
  this.wrapper.nativeElement.focus();
1632
1650
  this.actionSheet.toggle(false);
1651
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
1652
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
1633
1653
  if (this.filterable) {
1634
1654
  this.actionSheetSearchBar.value = '';
1635
1655
  this.filterChange.emit('');
@@ -1641,6 +1661,8 @@ export class MultiSelectTreeComponent {
1641
1661
  this.actionSheet.toggle(true);
1642
1662
  this.title = setActionSheetTitle(this.wrapper, this.title);
1643
1663
  this.cdr.detectChanges();
1664
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
1665
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
1644
1666
  updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
1645
1667
  this.cdr.detectChanges();
1646
1668
  this.opened.emit();
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1738227210,
14
- version: '18.1.0-develop.2',
13
+ publishDate: 1738836730,
14
+ version: '18.1.0-develop.21',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -37,8 +37,8 @@ const packageMetadata = {
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCode: 'KENDOUIANGULAR',
39
39
  productCodes: ['KENDOUIANGULAR'],
40
- publishDate: 1738227210,
41
- version: '18.1.0-develop.2',
40
+ publishDate: 1738836730,
41
+ version: '18.1.0-develop.21',
42
42
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
43
43
  };
44
44
 
@@ -2130,7 +2130,7 @@ class ListComponent {
2130
2130
  let index;
2131
2131
  if (item.getAttribute("role") === "group") {
2132
2132
  index = parseInt(item.getAttribute("group-index"), 10);
2133
- this.currentGroup = this.dataService.groupAt(index).value;
2133
+ this.currentGroup = this.dataService.groupAt(index)?.value;
2134
2134
  }
2135
2135
  else {
2136
2136
  index = parseInt(item.getAttribute("index"), 10);
@@ -2368,7 +2368,7 @@ class ListComponent {
2368
2368
  tabindex="-1"
2369
2369
  aria-hidden="true"
2370
2370
  [ngClass]="checkboxClasses"
2371
- (change)="onCheckedChange($event, itemIndex)"
2371
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
2372
2372
  [checked]="isChecked(itemIndex)"
2373
2373
  />
2374
2374
  <ng-template *ngIf="template"
@@ -2506,7 +2506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2506
2506
  tabindex="-1"
2507
2507
  aria-hidden="true"
2508
2508
  [ngClass]="checkboxClasses"
2509
- (change)="onCheckedChange($event, itemIndex)"
2509
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
2510
2510
  [checked]="isChecked(itemIndex)"
2511
2511
  />
2512
2512
  <ng-template *ngIf="template"
@@ -7895,7 +7895,6 @@ class DropDownListComponent {
7895
7895
  });
7896
7896
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
7897
7897
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
7898
- this.setAriaactivedescendant();
7899
7898
  const popupWrapper = this.popupRef.popupElement;
7900
7899
  const { min, max } = this.width;
7901
7900
  popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);
@@ -7915,6 +7914,7 @@ class DropDownListComponent {
7915
7914
  this.subs.add(this.popupRef.popupOpen.subscribe(() => {
7916
7915
  this.cdr.detectChanges();
7917
7916
  setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
7917
+ this.setAriaactivedescendant();
7918
7918
  this.optionsList.scrollToItem(this.selectionService.focused);
7919
7919
  this.selectionService.focus(this.selectionService.focused);
7920
7920
  this.opened.emit();
@@ -8018,7 +8018,7 @@ class DropDownListComponent {
8018
8018
  setAriaactivedescendant() {
8019
8019
  if (this.ariaActivedescendant) {
8020
8020
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-activedescendant', this.ariaActivedescendant);
8021
- const searchInput = this.popupRef.popupElement.querySelector('input[role="searchbox"]');
8021
+ const searchInput = this.popupRef?.popupElement.querySelector('input[role="searchbox"]') || this.actionSheetSearchBar?.input.nativeElement;
8022
8022
  if (searchInput) {
8023
8023
  this.renderer.setAttribute(searchInput, 'aria-activedescendant', this.ariaActivedescendant);
8024
8024
  }
@@ -8347,6 +8347,8 @@ class DropDownListComponent {
8347
8347
  }
8348
8348
  closeActionSheet() {
8349
8349
  this.actionSheet.toggle(false);
8350
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
8351
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
8350
8352
  if (this.filterable) {
8351
8353
  this.actionSheetSearchBar.value = '';
8352
8354
  this.filterChange.emit('');
@@ -8357,7 +8359,10 @@ class DropDownListComponent {
8357
8359
  this.windowSize = this.adaptiveService.size;
8358
8360
  this.actionSheet.toggle(true);
8359
8361
  this.cdr.detectChanges();
8362
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
8363
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
8360
8364
  setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
8365
+ this.setAriaactivedescendant();
8361
8366
  this.title = setActionSheetTitle(this.wrapper, this.title);
8362
8367
  updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
8363
8368
  this.cdr.detectChanges();
@@ -12050,14 +12055,10 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12050
12055
  * @hidden
12051
12056
  */
12052
12057
  getColumnWidth(index) {
12053
- const popupWidthNumber = +(this.popupWidth.max.slice(0, -2));
12054
- if (this.totalColumnsWidth >= popupWidthNumber) {
12058
+ if (!this.virtual) {
12055
12059
  return this.columns.get(index).width;
12056
12060
  }
12057
- if (this.virtual && isPresent(this.headerColumnWidths[index])) {
12058
- return this.headerColumnWidths[index];
12059
- }
12060
- return this.columns.get(index).width;
12061
+ return this.headerColumnWidths[index];
12061
12062
  }
12062
12063
  verifySettings() {
12063
12064
  if (!isDevMode()) {
@@ -14682,8 +14683,8 @@ class BaseCheckDirective {
14682
14683
  /**
14683
14684
  * @hidden
14684
14685
  * The flag is needed in order to determine how to construct the items map keys.
14685
- * If `true`, then the key consists of the item's value and 0 (no leveling required),
14686
- * else the key consists of the item's value and level (depth)
14686
+ * If `true`, then the key consists of the item's value and level (depth),
14687
+ * else the key consists of the item's value and 0 (no leveling required)
14687
14688
  */
14688
14689
  isHeterogeneous;
14689
14690
  addItem(item) {
@@ -14704,7 +14705,11 @@ class BaseCheckDirective {
14704
14705
  const key = this.getKey(item, level);
14705
14706
  const candidate = { ...item, level, key };
14706
14707
  this.checkedItems = this.checkedItems
14707
- .filter(item => valueFrom(item, this.valueField) !== valueFrom(candidate, this.valueField));
14708
+ .filter(item => {
14709
+ const valueMatch = valueFrom(item, this.valueField) === valueFrom(candidate, this.valueField);
14710
+ const levelMatch = item.level === candidate.level;
14711
+ return this.isHeterogeneous ? !(valueMatch && levelMatch) : !valueMatch;
14712
+ });
14708
14713
  this.checkedKeys.delete(key);
14709
14714
  }
14710
14715
  isItemChecked(item) {
@@ -15790,8 +15795,8 @@ class MultiSelectTreeComponent {
15790
15795
  /**
15791
15796
  * @hidden
15792
15797
  * The flag is needed in order to determine how to construct the items map keys.
15793
- * If `true`, then the key consists of the item's value and 0 (no leveling required),
15794
- * else the key consists of the item's value and level (depth)
15798
+ * If `true`, then the key consists of the item's value and level (depth),
15799
+ * else the key consists of the item's value and 0 (no leveling required)
15795
15800
  */
15796
15801
  isHeterogeneous;
15797
15802
  /**
@@ -16138,7 +16143,7 @@ class MultiSelectTreeComponent {
16138
16143
  }
16139
16144
  else {
16140
16145
  // Remove single tag when the child items are pre-fetched
16141
- const dataItem = this.dataItems[index];
16146
+ const dataItem = this.dataItems.find(item => item.tagPositionIndex === index);
16142
16147
  const itemKey = dataItem.key;
16143
16148
  const lookup = this.lookup.itemLookup(itemKey);
16144
16149
  const pendingCheck = [lookup.item];
@@ -16148,10 +16153,20 @@ class MultiSelectTreeComponent {
16148
16153
  pendingCheck.push(...this.removeParents(lookup.parent));
16149
16154
  }
16150
16155
  const keysToRemove = pendingCheck.map(item => item.key);
16156
+ // Holds the position indexes of the items to be removed
16157
+ const valueDepthIndices = [];
16151
16158
  this.dataItems = this.dataItems.filter((_item, i) => {
16152
- return !keysToRemove.includes(_item.key) || this.disabledIndices.has(i);
16159
+ const shouldStay = !keysToRemove.includes(_item.key) || this.disabledIndices.has(i);
16160
+ if (!shouldStay) {
16161
+ // We need to know the index position of the data item to be able to update the valueDepth array accordignly
16162
+ // as each data item's position is corresponding to the same position in valueDepth
16163
+ valueDepthIndices.push(i);
16164
+ }
16165
+ return shouldStay;
16166
+ });
16167
+ this.valueDepth = this.valueDepth.filter((_item, i) => {
16168
+ return !valueDepthIndices.includes(i) || this.disabledIndices.has(i);
16153
16169
  });
16154
- this.valueDepth = this.dataItems.map(i => i.level);
16155
16170
  }
16156
16171
  this.updateValue(this.dataItems);
16157
16172
  if (!this.isFocused) {
@@ -16560,7 +16575,15 @@ class MultiSelectTreeComponent {
16560
16575
  const source = this.dataItems.map(item => item.dataItem);
16561
16576
  this.tags = this.tagMapper(source);
16562
16577
  this.disabledIndices = this.disabledItemsMapper();
16563
- this.dataItems.sort((a, b) => this.tags.indexOf(a.dataItem) - this.tags.indexOf(b.dataItem));
16578
+ // Create a mapping of tags to position indices
16579
+ const tagIndexMap = new Map(this.tags.map((tag, index) => [JSON.stringify(tag), index]));
16580
+ // Modify dataItems by adding a property to hold the item's position as displayed in the tags
16581
+ this.dataItems.forEach(item => {
16582
+ const serializedDataItem = JSON.stringify(item.dataItem);
16583
+ item.tagPositionIndex = tagIndexMap.has(serializedDataItem)
16584
+ ? tagIndexMap.get(serializedDataItem) // Use the index from tags if it exists
16585
+ : null; // Assign a null value if the dataItem is not visible in the tags
16586
+ });
16564
16587
  }
16565
16588
  updateValue(value) {
16566
16589
  const newValue = this.valuePrimitive ?
@@ -16652,6 +16675,8 @@ class MultiSelectTreeComponent {
16652
16675
  closeActionSheet() {
16653
16676
  this.wrapper.nativeElement.focus();
16654
16677
  this.actionSheet.toggle(false);
16678
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
16679
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
16655
16680
  if (this.filterable) {
16656
16681
  this.actionSheetSearchBar.value = '';
16657
16682
  this.filterChange.emit('');
@@ -16663,6 +16688,8 @@ class MultiSelectTreeComponent {
16663
16688
  this.actionSheet.toggle(true);
16664
16689
  this.title = setActionSheetTitle(this.wrapper, this.title);
16665
16690
  this.cdr.detectChanges();
16691
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
16692
+ this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
16666
16693
  updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
16667
16694
  this.cdr.detectChanges();
16668
16695
  this.opened.emit();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-dropdowns",
3
- "version": "18.1.0-develop.2",
3
+ "version": "18.1.0-develop.21",
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",
@@ -20,7 +20,7 @@
20
20
  "package": {
21
21
  "productName": "Kendo UI for Angular",
22
22
  "productCode": "KENDOUIANGULAR",
23
- "publishDate": 1738227210,
23
+ "publishDate": 1738836730,
24
24
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
25
25
  }
26
26
  },
@@ -31,18 +31,18 @@
31
31
  "@angular/forms": "16 - 19",
32
32
  "@angular/platform-browser": "16 - 19",
33
33
  "@progress/kendo-licensing": "^1.0.2",
34
- "@progress/kendo-angular-common": "18.1.0-develop.2",
35
- "@progress/kendo-angular-utils": "18.1.0-develop.2",
36
- "@progress/kendo-angular-l10n": "18.1.0-develop.2",
37
- "@progress/kendo-angular-navigation": "18.1.0-develop.2",
38
- "@progress/kendo-angular-popup": "18.1.0-develop.2",
39
- "@progress/kendo-angular-icons": "18.1.0-develop.2",
40
- "@progress/kendo-angular-treeview": "18.1.0-develop.2",
34
+ "@progress/kendo-angular-common": "18.1.0-develop.21",
35
+ "@progress/kendo-angular-utils": "18.1.0-develop.21",
36
+ "@progress/kendo-angular-l10n": "18.1.0-develop.21",
37
+ "@progress/kendo-angular-navigation": "18.1.0-develop.21",
38
+ "@progress/kendo-angular-popup": "18.1.0-develop.21",
39
+ "@progress/kendo-angular-icons": "18.1.0-develop.21",
40
+ "@progress/kendo-angular-treeview": "18.1.0-develop.21",
41
41
  "rxjs": "^6.5.3 || ^7.0.0"
42
42
  },
43
43
  "dependencies": {
44
44
  "tslib": "^2.3.1",
45
- "@progress/kendo-angular-schematics": "18.1.0-develop.2",
45
+ "@progress/kendo-angular-schematics": "18.1.0-develop.21",
46
46
  "@progress/kendo-common": "^1.0.1"
47
47
  },
48
48
  "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': '18.1.0-develop.2',
7
+ '@progress/kendo-angular-inputs': '18.1.0-develop.21',
8
8
  // peers of inputs
9
- '@progress/kendo-angular-intl': '18.1.0-develop.2',
9
+ '@progress/kendo-angular-intl': '18.1.0-develop.21',
10
10
  '@progress/kendo-drawing': '^1.17.2',
11
11
  // Peer dependency of icons
12
12
  '@progress/kendo-svg-icons': '^4.0.0'