@progress/kendo-angular-dropdowns 21.0.0-develop.2 → 21.0.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.
- package/codemods/utils.js +485 -324
- package/codemods/v19/autocomplete-subtitle.js +7 -5
- package/codemods/v19/autocomplete-title.js +7 -6
- package/codemods/v19/combobox-subtitle.js +7 -5
- package/codemods/v19/combobox-title.js +7 -6
- package/codemods/v19/dropdownlist-subtitle.js +7 -4
- package/codemods/v19/dropdownlist-title.js +7 -5
- package/codemods/v19/dropdowntree-subtitle.js +7 -4
- package/codemods/v19/dropdowntree-title.js +7 -6
- package/codemods/v19/multicolumncombobox-subtitle.js +7 -4
- package/codemods/v19/multicolumncombobox-title.js +7 -6
- package/codemods/v19/multiselect-subtitle.js +7 -4
- package/codemods/v19/multiselect-title.js +7 -6
- package/codemods/v19/multiselecttree-subtitle.js +7 -4
- package/codemods/v19/multiselecttree-title.js +7 -6
- package/common/list-item.directive.d.ts +1 -1
- package/common/list.component.d.ts +2 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +6 -2
- package/esm2022/comboboxes/combobox.component.mjs +6 -2
- package/esm2022/common/list-item.directive.mjs +2 -2
- package/esm2022/common/list.component.mjs +136 -126
- package/esm2022/dropdownlist/dropdownlist.component.mjs +6 -7
- package/esm2022/multiselect/multiselect.component.mjs +6 -2
- package/esm2022/package-metadata.mjs +2 -2
- package/fesm2022/progress-kendo-angular-dropdowns.mjs +164 -143
- package/package.json +10 -10
- package/schematics/ngAdd/index.js +2 -2
|
@@ -37,8 +37,8 @@ const packageMetadata = {
|
|
|
37
37
|
productName: 'Kendo UI for Angular',
|
|
38
38
|
productCode: 'KENDOUIANGULAR',
|
|
39
39
|
productCodes: ['KENDOUIANGULAR'],
|
|
40
|
-
publishDate:
|
|
41
|
-
version: '21.0.0-develop.
|
|
40
|
+
publishDate: 1762426753,
|
|
41
|
+
version: '21.0.0-develop.21',
|
|
42
42
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
43
43
|
};
|
|
44
44
|
|
|
@@ -1771,12 +1771,12 @@ class ListItemDirective {
|
|
|
1771
1771
|
this.element = element;
|
|
1772
1772
|
}
|
|
1773
1773
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1774
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ListItemDirective, isStandalone: true, selector: "\"li[role=option], li[role=group]\"", ngImport: i0 });
|
|
1774
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ListItemDirective, isStandalone: true, selector: "\"li[role=option], li[role=group], li[role=presentation]\"", ngImport: i0 });
|
|
1775
1775
|
}
|
|
1776
1776
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListItemDirective, decorators: [{
|
|
1777
1777
|
type: Directive,
|
|
1778
1778
|
args: [{
|
|
1779
|
-
selector: '"li[role=option], li[role=group]"' // eslint-disable-line
|
|
1779
|
+
selector: '"li[role=option], li[role=group], li[role=presentation]"' // eslint-disable-line
|
|
1780
1780
|
,
|
|
1781
1781
|
standalone: true
|
|
1782
1782
|
}]
|
|
@@ -1938,7 +1938,19 @@ class ListComponent {
|
|
|
1938
1938
|
allowCustom;
|
|
1939
1939
|
defaultItem;
|
|
1940
1940
|
set data(data) {
|
|
1941
|
-
this._data = data[0]
|
|
1941
|
+
this._data = data[0]?.header ? data.slice(0) : data;
|
|
1942
|
+
if (this.dataService.grouped) {
|
|
1943
|
+
if (this.virtual) {
|
|
1944
|
+
const firstGroupItem = this.dataService.data.find(item => item.header && item.groupIndex === this.data[0].groupIndex);
|
|
1945
|
+
if (!this.data[0].header) {
|
|
1946
|
+
this._data = [firstGroupItem, ...this._data.slice(1)];
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
this.groupedData = this._data.filter(item => item?.header);
|
|
1950
|
+
this.groupedData.forEach(group => {
|
|
1951
|
+
group.items = this._data.filter(item => !item.header && item.groupIndex === group.groupIndex);
|
|
1952
|
+
});
|
|
1953
|
+
}
|
|
1942
1954
|
}
|
|
1943
1955
|
get data() {
|
|
1944
1956
|
return this._data;
|
|
@@ -1955,6 +1967,7 @@ class ListComponent {
|
|
|
1955
1967
|
get size() {
|
|
1956
1968
|
return this._size;
|
|
1957
1969
|
}
|
|
1970
|
+
groupedData;
|
|
1958
1971
|
rounded = 'medium';
|
|
1959
1972
|
onClick = new EventEmitter();
|
|
1960
1973
|
pageChange = new EventEmitter();
|
|
@@ -2034,9 +2047,6 @@ class ListComponent {
|
|
|
2034
2047
|
this.scrollToFocused = !changes['data'].isFirstChange();
|
|
2035
2048
|
}
|
|
2036
2049
|
this.setOverflow();
|
|
2037
|
-
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
2038
|
-
this.setGroupAttributes();
|
|
2039
|
-
});
|
|
2040
2050
|
}
|
|
2041
2051
|
if (isChanged('virtual', changes, false)) {
|
|
2042
2052
|
this.setOverflow();
|
|
@@ -2052,31 +2062,8 @@ class ListComponent {
|
|
|
2052
2062
|
this.lastScrollTop = this.content.nativeElement.scrollTop;
|
|
2053
2063
|
});
|
|
2054
2064
|
});
|
|
2055
|
-
this.setGroupAttributes();
|
|
2056
2065
|
this.setOverflow();
|
|
2057
2066
|
}
|
|
2058
|
-
setGroupAttributes() {
|
|
2059
|
-
const liItems = document.querySelectorAll('li');
|
|
2060
|
-
let isGroup;
|
|
2061
|
-
let childrenliItemsIds = [];
|
|
2062
|
-
let firstGroupReached = false;
|
|
2063
|
-
let previousGroup;
|
|
2064
|
-
liItems.forEach((li, idx) => {
|
|
2065
|
-
isGroup = li.getAttribute('role') === 'group';
|
|
2066
|
-
if (!isGroup && firstGroupReached) {
|
|
2067
|
-
this.renderer.setAttribute(li, 'aria-describedby', previousGroup.getAttribute('id'));
|
|
2068
|
-
childrenliItemsIds.push(li.getAttribute('id'));
|
|
2069
|
-
if (idx + 1 >= liItems.length || liItems[idx + 1]?.getAttribute('role') === 'group') {
|
|
2070
|
-
this.renderer.setAttribute(previousGroup, 'aria-owns', childrenliItemsIds.join(' '));
|
|
2071
|
-
childrenliItemsIds = [];
|
|
2072
|
-
}
|
|
2073
|
-
}
|
|
2074
|
-
if (isGroup) {
|
|
2075
|
-
firstGroupReached = true;
|
|
2076
|
-
previousGroup = li;
|
|
2077
|
-
}
|
|
2078
|
-
});
|
|
2079
|
-
}
|
|
2080
2067
|
ngAfterViewChecked() {
|
|
2081
2068
|
if (this.virtual) {
|
|
2082
2069
|
this.positionItems();
|
|
@@ -2151,7 +2138,7 @@ class ListComponent {
|
|
|
2151
2138
|
const item = this.firstVisibleItem();
|
|
2152
2139
|
if (item) {
|
|
2153
2140
|
let index;
|
|
2154
|
-
if (item.getAttribute("role") === "
|
|
2141
|
+
if (item.getAttribute("role") === "presentation") {
|
|
2155
2142
|
index = parseInt(item.getAttribute("group-index"), 10);
|
|
2156
2143
|
this.currentGroup = this.dataService.groupAt(index)?.value;
|
|
2157
2144
|
}
|
|
@@ -2197,7 +2184,6 @@ class ListComponent {
|
|
|
2197
2184
|
this.lastLoaded = end;
|
|
2198
2185
|
this.pageChange.emit({ skip: start, take: this.pageSize });
|
|
2199
2186
|
});
|
|
2200
|
-
this.setGroupAttributes();
|
|
2201
2187
|
}
|
|
2202
2188
|
index(groupIndex, itemIndex) {
|
|
2203
2189
|
return groupIndex > 0 ? (this.dataService.groupIndices[groupIndex - 1] + itemIndex) : itemIndex;
|
|
@@ -2208,6 +2194,9 @@ class ListComponent {
|
|
|
2208
2194
|
getValue(dataItem) {
|
|
2209
2195
|
return getter(dataItem, this.valueField);
|
|
2210
2196
|
}
|
|
2197
|
+
generateGroupId(dataItem) {
|
|
2198
|
+
return `${this.optionPrefix}-${dataItem.groupIndex}-${dataItem.value.toString().split(' ').join('')}`;
|
|
2199
|
+
}
|
|
2211
2200
|
isDisabled(index) {
|
|
2212
2201
|
if (isPresent(this.virtual) && !this.dataService.grouped) {
|
|
2213
2202
|
index += this.virtual.skip;
|
|
@@ -2318,15 +2307,6 @@ class ListComponent {
|
|
|
2318
2307
|
this.renderer.setStyle(item.element.nativeElement, "transform", `translateY(${offsetY}px`);
|
|
2319
2308
|
});
|
|
2320
2309
|
}
|
|
2321
|
-
/**
|
|
2322
|
-
* Indicates whether the first group header from the data set is in the targeted virtual page.
|
|
2323
|
-
*/
|
|
2324
|
-
firstGroupHeaderInTargetedPage(itemIndex) {
|
|
2325
|
-
if (!isPresent(this.virtual)) {
|
|
2326
|
-
return true;
|
|
2327
|
-
}
|
|
2328
|
-
return this.virtual.skip === 0 && (this.virtual.pageSize > itemIndex);
|
|
2329
|
-
}
|
|
2330
2310
|
setComponentClasses() {
|
|
2331
2311
|
if (this.type === 'list') {
|
|
2332
2312
|
this.renderer.addClass(this.wrapper.nativeElement, 'k-list');
|
|
@@ -2342,7 +2322,7 @@ class ListComponent {
|
|
|
2342
2322
|
}
|
|
2343
2323
|
}
|
|
2344
2324
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2345
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ListComponent, isStandalone: true, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", rowWidth: "rowWidth", customItemTemplate: "customItemTemplate", text: "text", allowCustom: "allowCustom", defaultItem: "defaultItem", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true
|
|
2325
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ListComponent, isStandalone: true, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", rowWidth: "rowWidth", customItemTemplate: "customItemTemplate", text: "text", allowCustom: "allowCustom", defaultItem: "defaultItem", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
2346
2326
|
<div *ngIf="defaultItem && !template"
|
|
2347
2327
|
class="k-list-optionlabel"
|
|
2348
2328
|
[ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
|
|
@@ -2396,15 +2376,22 @@ class ListComponent {
|
|
|
2396
2376
|
[class]="listContentClass"
|
|
2397
2377
|
[style.maxHeight.px]="height"
|
|
2398
2378
|
unselectable="on"
|
|
2399
|
-
(scroll)="popupListScroll.emit($event)"
|
|
2379
|
+
(scroll)="popupListScroll.emit($event)"
|
|
2380
|
+
[attr.role]="dataService.grouped ? 'listbox' : null"
|
|
2381
|
+
[attr.id]="dataService.grouped ? id : null"
|
|
2382
|
+
[attr.aria-live]="dataService.grouped ? ariaLive : null"
|
|
2383
|
+
[attr.aria-multiselectable]="dataService.grouped ? isMultiselect : null"
|
|
2384
|
+
[attr.aria-hidden]="dataService.grouped ? !show : null"
|
|
2385
|
+
>
|
|
2400
2386
|
<ul #list
|
|
2401
|
-
|
|
2387
|
+
*ngIf="!dataService.grouped"
|
|
2388
|
+
[attr.role]="'listbox'"
|
|
2402
2389
|
[class]="listClass"
|
|
2403
2390
|
[attr.id]="id"
|
|
2404
2391
|
[attr.aria-live]="ariaLive"
|
|
2405
2392
|
[attr.aria-multiselectable]="isMultiselect"
|
|
2406
2393
|
[attr.aria-hidden]="!show">
|
|
2407
|
-
<ng-
|
|
2394
|
+
<ng-container *ngFor="let dataItem of data; let itemIndex = index">
|
|
2408
2395
|
<li
|
|
2409
2396
|
role="option"
|
|
2410
2397
|
kendoDropDownsSelectable
|
|
@@ -2440,73 +2427,81 @@ class ListComponent {
|
|
|
2440
2427
|
</ng-template>
|
|
2441
2428
|
<ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
|
|
2442
2429
|
</li>
|
|
2443
|
-
</ng-
|
|
2444
|
-
<
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2430
|
+
</ng-container>
|
|
2431
|
+
<kendo-resize-sensor
|
|
2432
|
+
*ngIf="!virtual"
|
|
2433
|
+
(resize)="listResize.emit()"
|
|
2434
|
+
>
|
|
2435
|
+
</kendo-resize-sensor>
|
|
2436
|
+
</ul>
|
|
2437
|
+
|
|
2438
|
+
<ng-container *ngIf="dataService.grouped" #list>
|
|
2439
|
+
<ul *ngFor="let dataItem of groupedData"
|
|
2440
|
+
#groupUl
|
|
2441
|
+
class="k-list-ul"
|
|
2442
|
+
[attr.role]="'group'"
|
|
2443
|
+
[attr.aria-labelledby]="generateGroupId(dataItem)"
|
|
2444
|
+
>
|
|
2445
|
+
<li *ngIf="dataItem.header"
|
|
2446
|
+
role="presentation"
|
|
2449
2447
|
[class]="listGroupItemClass"
|
|
2450
|
-
[class.k-table-alt-row]="isAltRow(
|
|
2448
|
+
[class.k-table-alt-row]="isAltRow(dataItem.index - 1)"
|
|
2451
2449
|
[ngStyle]="{
|
|
2452
2450
|
'height.px': virtual?.itemHeight,
|
|
2453
2451
|
'minHeight.px' : virtual?.itemHeight,
|
|
2454
2452
|
'boxSizing' : virtual ? 'border-box' : 'inherit'}"
|
|
2455
2453
|
[attr.group-index]="dataItem.index"
|
|
2456
|
-
[attr.id]="
|
|
2457
|
-
[
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2454
|
+
[attr.id]="groupUl.getAttribute('aria-labelledby')"
|
|
2455
|
+
[style.width.px]="rowWidth ?? null"
|
|
2456
|
+
>
|
|
2457
|
+
<span [class]="listGroupItemTextClass">
|
|
2458
|
+
<ng-template *ngIf="groupTemplate"
|
|
2459
|
+
[templateContext]="{
|
|
2460
|
+
templateRef: groupTemplate.templateRef,
|
|
2461
|
+
$implicit: dataItem.value
|
|
2462
|
+
}">
|
|
2463
|
+
</ng-template>
|
|
2464
|
+
<ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
|
|
2465
|
+
</span>
|
|
2468
2466
|
</li>
|
|
2469
|
-
<li
|
|
2470
|
-
#li
|
|
2471
|
-
*ngIf="!dataItem.header"
|
|
2467
|
+
<li *ngFor="let item of dataItem.items"
|
|
2472
2468
|
role="option"
|
|
2473
2469
|
kendoDropDownsSelectable
|
|
2474
2470
|
[height]="virtual?.itemHeight"
|
|
2475
|
-
[index]="
|
|
2471
|
+
[index]="item.offsetIndex"
|
|
2476
2472
|
[multipleSelection]="multipleSelection"
|
|
2477
|
-
[attr.absolute-index]="
|
|
2478
|
-
[attr.id]="optionPrefix + '-' + (
|
|
2473
|
+
[attr.absolute-index]="item.index"
|
|
2474
|
+
[attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
|
|
2479
2475
|
[attr.tabIndex]="-1"
|
|
2480
|
-
[attr.aria-selected]="isItemSelected(
|
|
2476
|
+
[attr.aria-selected]="isItemSelected(item.offsetIndex)"
|
|
2481
2477
|
[class]="listItemClass"
|
|
2482
2478
|
[ngClass]="{
|
|
2483
|
-
'k-disabled': isDisabled(
|
|
2484
|
-
'k-table-alt-row': isAltRow(
|
|
2479
|
+
'k-disabled': isDisabled(item.offsetIndex),
|
|
2480
|
+
'k-table-alt-row': isAltRow(item.index - 1)
|
|
2485
2481
|
}"
|
|
2486
|
-
[style.width.px]="rowWidth ?? null"
|
|
2487
|
-
>
|
|
2482
|
+
[style.width.px]="rowWidth ?? null">
|
|
2488
2483
|
<ng-template *ngIf="template"
|
|
2489
2484
|
[templateContext]="{
|
|
2490
2485
|
templateRef: template.templateRef,
|
|
2491
|
-
$implicit:
|
|
2486
|
+
$implicit: item.value
|
|
2492
2487
|
}">
|
|
2493
2488
|
</ng-template>
|
|
2494
|
-
<ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(
|
|
2489
|
+
<ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(item.value) }}</span></ng-template>
|
|
2495
2490
|
</li>
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
</
|
|
2502
|
-
</
|
|
2491
|
+
<kendo-resize-sensor
|
|
2492
|
+
*ngIf="!virtual"
|
|
2493
|
+
(resize)="listResize.emit()"
|
|
2494
|
+
>
|
|
2495
|
+
</kendo-resize-sensor>
|
|
2496
|
+
</ul>
|
|
2497
|
+
</ng-container>
|
|
2503
2498
|
<div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
|
|
2504
2499
|
<div [style.height.px]="scrollHeight">
|
|
2505
2500
|
<kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
|
|
2506
2501
|
</div>
|
|
2507
2502
|
</div>
|
|
2508
2503
|
</div>
|
|
2509
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ListItemDirective, selector: "\"li[role=option], li[role=group]\"" }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
|
|
2504
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ListItemDirective, selector: "\"li[role=option], li[role=group], li[role=presentation]\"" }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
|
|
2510
2505
|
}
|
|
2511
2506
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListComponent, decorators: [{
|
|
2512
2507
|
type: Component,
|
|
@@ -2566,15 +2561,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2566
2561
|
[class]="listContentClass"
|
|
2567
2562
|
[style.maxHeight.px]="height"
|
|
2568
2563
|
unselectable="on"
|
|
2569
|
-
(scroll)="popupListScroll.emit($event)"
|
|
2564
|
+
(scroll)="popupListScroll.emit($event)"
|
|
2565
|
+
[attr.role]="dataService.grouped ? 'listbox' : null"
|
|
2566
|
+
[attr.id]="dataService.grouped ? id : null"
|
|
2567
|
+
[attr.aria-live]="dataService.grouped ? ariaLive : null"
|
|
2568
|
+
[attr.aria-multiselectable]="dataService.grouped ? isMultiselect : null"
|
|
2569
|
+
[attr.aria-hidden]="dataService.grouped ? !show : null"
|
|
2570
|
+
>
|
|
2570
2571
|
<ul #list
|
|
2571
|
-
|
|
2572
|
+
*ngIf="!dataService.grouped"
|
|
2573
|
+
[attr.role]="'listbox'"
|
|
2572
2574
|
[class]="listClass"
|
|
2573
2575
|
[attr.id]="id"
|
|
2574
2576
|
[attr.aria-live]="ariaLive"
|
|
2575
2577
|
[attr.aria-multiselectable]="isMultiselect"
|
|
2576
2578
|
[attr.aria-hidden]="!show">
|
|
2577
|
-
<ng-
|
|
2579
|
+
<ng-container *ngFor="let dataItem of data; let itemIndex = index">
|
|
2578
2580
|
<li
|
|
2579
2581
|
role="option"
|
|
2580
2582
|
kendoDropDownsSelectable
|
|
@@ -2610,66 +2612,74 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2610
2612
|
</ng-template>
|
|
2611
2613
|
<ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
|
|
2612
2614
|
</li>
|
|
2613
|
-
</ng-
|
|
2614
|
-
<
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2615
|
+
</ng-container>
|
|
2616
|
+
<kendo-resize-sensor
|
|
2617
|
+
*ngIf="!virtual"
|
|
2618
|
+
(resize)="listResize.emit()"
|
|
2619
|
+
>
|
|
2620
|
+
</kendo-resize-sensor>
|
|
2621
|
+
</ul>
|
|
2622
|
+
|
|
2623
|
+
<ng-container *ngIf="dataService.grouped" #list>
|
|
2624
|
+
<ul *ngFor="let dataItem of groupedData"
|
|
2625
|
+
#groupUl
|
|
2626
|
+
class="k-list-ul"
|
|
2627
|
+
[attr.role]="'group'"
|
|
2628
|
+
[attr.aria-labelledby]="generateGroupId(dataItem)"
|
|
2629
|
+
>
|
|
2630
|
+
<li *ngIf="dataItem.header"
|
|
2631
|
+
role="presentation"
|
|
2619
2632
|
[class]="listGroupItemClass"
|
|
2620
|
-
[class.k-table-alt-row]="isAltRow(
|
|
2633
|
+
[class.k-table-alt-row]="isAltRow(dataItem.index - 1)"
|
|
2621
2634
|
[ngStyle]="{
|
|
2622
2635
|
'height.px': virtual?.itemHeight,
|
|
2623
2636
|
'minHeight.px' : virtual?.itemHeight,
|
|
2624
2637
|
'boxSizing' : virtual ? 'border-box' : 'inherit'}"
|
|
2625
2638
|
[attr.group-index]="dataItem.index"
|
|
2626
|
-
[attr.id]="
|
|
2627
|
-
[
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2639
|
+
[attr.id]="groupUl.getAttribute('aria-labelledby')"
|
|
2640
|
+
[style.width.px]="rowWidth ?? null"
|
|
2641
|
+
>
|
|
2642
|
+
<span [class]="listGroupItemTextClass">
|
|
2643
|
+
<ng-template *ngIf="groupTemplate"
|
|
2644
|
+
[templateContext]="{
|
|
2645
|
+
templateRef: groupTemplate.templateRef,
|
|
2646
|
+
$implicit: dataItem.value
|
|
2647
|
+
}">
|
|
2648
|
+
</ng-template>
|
|
2649
|
+
<ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
|
|
2650
|
+
</span>
|
|
2638
2651
|
</li>
|
|
2639
|
-
<li
|
|
2640
|
-
#li
|
|
2641
|
-
*ngIf="!dataItem.header"
|
|
2652
|
+
<li *ngFor="let item of dataItem.items"
|
|
2642
2653
|
role="option"
|
|
2643
2654
|
kendoDropDownsSelectable
|
|
2644
2655
|
[height]="virtual?.itemHeight"
|
|
2645
|
-
[index]="
|
|
2656
|
+
[index]="item.offsetIndex"
|
|
2646
2657
|
[multipleSelection]="multipleSelection"
|
|
2647
|
-
[attr.absolute-index]="
|
|
2648
|
-
[attr.id]="optionPrefix + '-' + (
|
|
2658
|
+
[attr.absolute-index]="item.index"
|
|
2659
|
+
[attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
|
|
2649
2660
|
[attr.tabIndex]="-1"
|
|
2650
|
-
[attr.aria-selected]="isItemSelected(
|
|
2661
|
+
[attr.aria-selected]="isItemSelected(item.offsetIndex)"
|
|
2651
2662
|
[class]="listItemClass"
|
|
2652
2663
|
[ngClass]="{
|
|
2653
|
-
'k-disabled': isDisabled(
|
|
2654
|
-
'k-table-alt-row': isAltRow(
|
|
2664
|
+
'k-disabled': isDisabled(item.offsetIndex),
|
|
2665
|
+
'k-table-alt-row': isAltRow(item.index - 1)
|
|
2655
2666
|
}"
|
|
2656
|
-
[style.width.px]="rowWidth ?? null"
|
|
2657
|
-
>
|
|
2667
|
+
[style.width.px]="rowWidth ?? null">
|
|
2658
2668
|
<ng-template *ngIf="template"
|
|
2659
2669
|
[templateContext]="{
|
|
2660
2670
|
templateRef: template.templateRef,
|
|
2661
|
-
$implicit:
|
|
2671
|
+
$implicit: item.value
|
|
2662
2672
|
}">
|
|
2663
2673
|
</ng-template>
|
|
2664
|
-
<ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(
|
|
2674
|
+
<ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(item.value) }}</span></ng-template>
|
|
2665
2675
|
</li>
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
</
|
|
2672
|
-
</
|
|
2676
|
+
<kendo-resize-sensor
|
|
2677
|
+
*ngIf="!virtual"
|
|
2678
|
+
(resize)="listResize.emit()"
|
|
2679
|
+
>
|
|
2680
|
+
</kendo-resize-sensor>
|
|
2681
|
+
</ul>
|
|
2682
|
+
</ng-container>
|
|
2673
2683
|
<div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
|
|
2674
2684
|
<div [style.height.px]="scrollHeight">
|
|
2675
2685
|
<kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
|
|
@@ -2750,10 +2760,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2750
2760
|
args: ['content', { static: true }]
|
|
2751
2761
|
}], list: [{
|
|
2752
2762
|
type: ViewChild,
|
|
2753
|
-
args: ['list'
|
|
2763
|
+
args: ['list']
|
|
2754
2764
|
}], virtualContainer: [{
|
|
2755
2765
|
type: ViewChild,
|
|
2756
|
-
args: ['virtualContainer'
|
|
2766
|
+
args: ['virtualContainer']
|
|
2757
2767
|
}] } });
|
|
2758
2768
|
|
|
2759
2769
|
/**
|
|
@@ -4225,7 +4235,9 @@ class AutoCompleteComponent {
|
|
|
4225
4235
|
}
|
|
4226
4236
|
this.subs.add(this.popupRef.popupOpen.subscribe(() => {
|
|
4227
4237
|
this.cdr.detectChanges();
|
|
4228
|
-
|
|
4238
|
+
if (!this.dataService.grouped) {
|
|
4239
|
+
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
4240
|
+
}
|
|
4229
4241
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
4230
4242
|
this.selectionService.focus(this.selectionService.focused);
|
|
4231
4243
|
this.opened.emit();
|
|
@@ -4303,7 +4315,9 @@ class AutoCompleteComponent {
|
|
|
4303
4315
|
openActionSheet() {
|
|
4304
4316
|
this.actionSheet.toggle(true);
|
|
4305
4317
|
this.cdr.detectChanges();
|
|
4306
|
-
|
|
4318
|
+
if (!this.dataService.grouped) {
|
|
4319
|
+
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
4320
|
+
}
|
|
4307
4321
|
this.adaptiveTitle = setActionSheetTitle(this.searchbar.input, this.adaptiveTitle);
|
|
4308
4322
|
this.cdr.detectChanges();
|
|
4309
4323
|
this.opened.emit();
|
|
@@ -6249,7 +6263,9 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6249
6263
|
}
|
|
6250
6264
|
this.popupRef.popupOpen.subscribe(() => {
|
|
6251
6265
|
this.cdr.detectChanges();
|
|
6252
|
-
|
|
6266
|
+
if (!this.dataService.grouped) {
|
|
6267
|
+
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
6268
|
+
}
|
|
6253
6269
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
6254
6270
|
this.selectionService.focus(this.selectionService.focused);
|
|
6255
6271
|
this.opened.emit();
|
|
@@ -6337,7 +6353,9 @@ class ComboBoxComponent extends MultiTabStop {
|
|
|
6337
6353
|
this.windowSize = this.adaptiveService.size;
|
|
6338
6354
|
this.actionSheet.toggle(true);
|
|
6339
6355
|
this.cdr.detectChanges();
|
|
6340
|
-
|
|
6356
|
+
if (!this.dataService.grouped) {
|
|
6357
|
+
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
6358
|
+
}
|
|
6341
6359
|
this.adaptiveTitle = setActionSheetTitle(this.searchbar.input, this.adaptiveTitle);
|
|
6342
6360
|
this.cdr.detectChanges();
|
|
6343
6361
|
this.opened.emit();
|
|
@@ -7918,14 +7936,11 @@ class DropDownListComponent {
|
|
|
7918
7936
|
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
7919
7937
|
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
7920
7938
|
}
|
|
7921
|
-
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
7922
|
-
const ariaLabel = this.wrapper.nativeElement.getAttribute('aria-labelledby');
|
|
7923
|
-
if (ariaLabel) {
|
|
7924
|
-
listBox.setAttribute('aria-labelledby', ariaLabel);
|
|
7925
|
-
}
|
|
7926
7939
|
this.subs.add(this.popupRef.popupOpen.subscribe(() => {
|
|
7927
7940
|
this.cdr.detectChanges();
|
|
7928
|
-
|
|
7941
|
+
if (!this.dataService.grouped) {
|
|
7942
|
+
setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
|
|
7943
|
+
}
|
|
7929
7944
|
this.setAriaactivedescendant();
|
|
7930
7945
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
7931
7946
|
this.selectionService.focus(this.selectionService.focused);
|
|
@@ -8384,7 +8399,9 @@ class DropDownListComponent {
|
|
|
8384
8399
|
this.cdr.detectChanges();
|
|
8385
8400
|
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
|
|
8386
8401
|
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
|
|
8387
|
-
|
|
8402
|
+
if (!this.dataService.grouped) {
|
|
8403
|
+
setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
|
|
8404
|
+
}
|
|
8388
8405
|
this.setAriaactivedescendant();
|
|
8389
8406
|
this.adaptiveTitle = setActionSheetTitle(this.wrapper, this.adaptiveTitle);
|
|
8390
8407
|
this.cdr.detectChanges();
|
|
@@ -10927,7 +10944,9 @@ class MultiSelectComponent {
|
|
|
10927
10944
|
popupWrapper.setAttribute("dir", this.direction);
|
|
10928
10945
|
this.popupRef.popupOpen.subscribe(() => {
|
|
10929
10946
|
this.cdr.detectChanges();
|
|
10930
|
-
|
|
10947
|
+
if (!this.dataService.grouped) {
|
|
10948
|
+
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
10949
|
+
}
|
|
10931
10950
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
10932
10951
|
this.selectionService.focus(this.selectionService.focused);
|
|
10933
10952
|
this.opened.emit();
|
|
@@ -10988,7 +11007,9 @@ class MultiSelectComponent {
|
|
|
10988
11007
|
// Stores the current value state until the user either accepts or cancels it
|
|
10989
11008
|
this._valueHolder = [...this.value];
|
|
10990
11009
|
this.cdr.detectChanges();
|
|
10991
|
-
|
|
11010
|
+
if (!this.dataService.grouped) {
|
|
11011
|
+
setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
11012
|
+
}
|
|
10992
11013
|
this.adaptiveTitle = setActionSheetTitle(this.searchbar.input, this.adaptiveTitle);
|
|
10993
11014
|
this.cdr.detectChanges();
|
|
10994
11015
|
this.opened.emit();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-dropdowns",
|
|
3
|
-
"version": "21.0.0-develop.
|
|
3
|
+
"version": "21.0.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",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"package": {
|
|
101
101
|
"productName": "Kendo UI for Angular",
|
|
102
102
|
"productCode": "KENDOUIANGULAR",
|
|
103
|
-
"publishDate":
|
|
103
|
+
"publishDate": 1762426753,
|
|
104
104
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
105
105
|
}
|
|
106
106
|
},
|
|
@@ -111,18 +111,18 @@
|
|
|
111
111
|
"@angular/forms": "18 - 20",
|
|
112
112
|
"@angular/platform-browser": "18 - 20",
|
|
113
113
|
"@progress/kendo-licensing": "^1.7.0",
|
|
114
|
-
"@progress/kendo-angular-common": "21.0.0-develop.
|
|
115
|
-
"@progress/kendo-angular-utils": "21.0.0-develop.
|
|
116
|
-
"@progress/kendo-angular-l10n": "21.0.0-develop.
|
|
117
|
-
"@progress/kendo-angular-navigation": "21.0.0-develop.
|
|
118
|
-
"@progress/kendo-angular-popup": "21.0.0-develop.
|
|
119
|
-
"@progress/kendo-angular-icons": "21.0.0-develop.
|
|
120
|
-
"@progress/kendo-angular-treeview": "21.0.0-develop.
|
|
114
|
+
"@progress/kendo-angular-common": "21.0.0-develop.21",
|
|
115
|
+
"@progress/kendo-angular-utils": "21.0.0-develop.21",
|
|
116
|
+
"@progress/kendo-angular-l10n": "21.0.0-develop.21",
|
|
117
|
+
"@progress/kendo-angular-navigation": "21.0.0-develop.21",
|
|
118
|
+
"@progress/kendo-angular-popup": "21.0.0-develop.21",
|
|
119
|
+
"@progress/kendo-angular-icons": "21.0.0-develop.21",
|
|
120
|
+
"@progress/kendo-angular-treeview": "21.0.0-develop.21",
|
|
121
121
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
122
122
|
},
|
|
123
123
|
"dependencies": {
|
|
124
124
|
"tslib": "^2.3.1",
|
|
125
|
-
"@progress/kendo-angular-schematics": "21.0.0-develop.
|
|
125
|
+
"@progress/kendo-angular-schematics": "21.0.0-develop.21",
|
|
126
126
|
"@progress/kendo-common": "^1.0.1",
|
|
127
127
|
"node-html-parser": "^7.0.1"
|
|
128
128
|
},
|
|
@@ -5,9 +5,9 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
|
5
5
|
function default_1(options) {
|
|
6
6
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DropDownsModule', package: 'dropdowns', peerDependencies: {
|
|
7
7
|
// peers of the treeview
|
|
8
|
-
'@progress/kendo-angular-inputs': '21.0.0-develop.
|
|
8
|
+
'@progress/kendo-angular-inputs': '21.0.0-develop.21',
|
|
9
9
|
// peers of inputs
|
|
10
|
-
'@progress/kendo-angular-intl': '21.0.0-develop.
|
|
10
|
+
'@progress/kendo-angular-intl': '21.0.0-develop.21',
|
|
11
11
|
'@progress/kendo-drawing': '^1.17.2',
|
|
12
12
|
// Peer dependency of icons
|
|
13
13
|
'@progress/kendo-svg-icons': '^4.0.0'
|