@progress/kendo-angular-dropdowns 11.3.0-develop.8 → 11.3.0-develop.9
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/autocomplete/autocomplete.component.d.ts +1 -0
- package/comboboxes/combobox.component.d.ts +4 -0
- package/common/localization/messages.d.ts +9 -1
- package/common/searchbar.component.d.ts +3 -4
- package/common/util.d.ts +1 -1
- package/dropdownlist/dropdownlist.component.d.ts +1 -2
- package/dropdowntrees/dropdowntree.component.d.ts +1 -1
- package/dropdowntrees/multiselecttree.component.d.ts +1 -1
- package/esm2020/autocomplete/autocomplete.component.mjs +26 -11
- package/esm2020/comboboxes/combobox.component.mjs +24 -8
- package/esm2020/comboboxes/multicolumncombobox.component.mjs +13 -11
- package/esm2020/common/list.component.mjs +6 -0
- package/esm2020/common/localization/messages.mjs +5 -1
- package/esm2020/common/searchbar.component.mjs +10 -12
- package/esm2020/common/util.mjs +2 -2
- package/esm2020/dropdownlist/dropdownlist.component.mjs +40 -31
- package/esm2020/dropdowntrees/dropdowntree.component.mjs +24 -15
- package/esm2020/dropdowntrees/multiselecttree.component.mjs +25 -6
- package/esm2020/multiselect/multiselect.component.mjs +23 -7
- package/esm2020/package-metadata.mjs +2 -2
- package/fesm2015/progress-kendo-angular-dropdowns.mjs +200 -106
- package/fesm2020/progress-kendo-angular-dropdowns.mjs +200 -106
- package/multiselect/multiselect.component.d.ts +4 -0
- package/package.json +8 -8
- package/schematics/ngAdd/index.js +2 -2
|
@@ -32,8 +32,8 @@ const packageMetadata = {
|
|
|
32
32
|
name: '@progress/kendo-angular-dropdowns',
|
|
33
33
|
productName: 'Kendo UI for Angular',
|
|
34
34
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
35
|
-
publishDate:
|
|
36
|
-
version: '11.3.0-develop.
|
|
35
|
+
publishDate: 1677099903,
|
|
36
|
+
version: '11.3.0-develop.9',
|
|
37
37
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
38
38
|
};
|
|
39
39
|
|
|
@@ -389,8 +389,8 @@ const getTextField = (field, level) => {
|
|
|
389
389
|
/**
|
|
390
390
|
* @hidden
|
|
391
391
|
*/
|
|
392
|
-
const getSearchableItems = (
|
|
393
|
-
const nodeSeletor = `kendo-
|
|
392
|
+
const getSearchableItems = (treeViewId, popupElement) => {
|
|
393
|
+
const nodeSeletor = `kendo-treeview[id='${treeViewId}'] li.k-treeview-item`;
|
|
394
394
|
const liElements = Array.from(popupElement.querySelectorAll(nodeSeletor));
|
|
395
395
|
return liElements.map((liElement) => {
|
|
396
396
|
return { text: liElement.innerText, index: liElement.getAttribute('data-treeindex') };
|
|
@@ -404,6 +404,7 @@ class SearchBarComponent {
|
|
|
404
404
|
constructor(localization, renderer, injector) {
|
|
405
405
|
this.localization = localization;
|
|
406
406
|
this.injector = injector;
|
|
407
|
+
this.ariaExpanded = null;
|
|
407
408
|
this.valueChange = new EventEmitter();
|
|
408
409
|
this.onBlur = new EventEmitter();
|
|
409
410
|
this.onFocus = new EventEmitter();
|
|
@@ -460,9 +461,6 @@ class SearchBarComponent {
|
|
|
460
461
|
get placeholder() {
|
|
461
462
|
return this._placeholder;
|
|
462
463
|
}
|
|
463
|
-
get ariaExpanded() {
|
|
464
|
-
return this.role === 'combobox' ? this.popupOpen : null;
|
|
465
|
-
}
|
|
466
464
|
ngOnInit() {
|
|
467
465
|
this.subs.add(this.localization
|
|
468
466
|
.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr'));
|
|
@@ -577,14 +575,14 @@ class SearchBarComponent {
|
|
|
577
575
|
}
|
|
578
576
|
}
|
|
579
577
|
SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
580
|
-
SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SearchBarComponent, selector: "kendo-searchbar", inputs: { id: "id",
|
|
578
|
+
SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SearchBarComponent, selector: "kendo-searchbar", inputs: { id: "id", tagListId: "tagListId", activeDescendant: "activeDescendant", disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", role: "role", isLoading: "isLoading", ariaControls: "ariaControls", ariaExpanded: "ariaExpanded", isSuggestable: "isSuggestable", isFilterable: "isFilterable", userInput: "userInput", suggestedText: "suggestedText", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "class.k-searchbar": "this.searchBarClass" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
581
579
|
<input #input
|
|
582
580
|
autocomplete="off"
|
|
583
581
|
[id]="id"
|
|
584
582
|
[disabled]="disabled"
|
|
585
583
|
[readonly]="readonly"
|
|
586
584
|
[placeholder]="placeholder"
|
|
587
|
-
|
|
585
|
+
class="k-input-inner"
|
|
588
586
|
(input)="handleInput($event)"
|
|
589
587
|
(keydown)="handleKeydown($event)"
|
|
590
588
|
[kendoEventsOutsideAngular]="{
|
|
@@ -597,7 +595,7 @@ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
597
595
|
[attr.role]="role"
|
|
598
596
|
aria-haspopup="listbox"
|
|
599
597
|
[attr.aria-expanded]="ariaExpanded"
|
|
600
|
-
[attr.aria-controls]="
|
|
598
|
+
[attr.aria-controls]="ariaControls"
|
|
601
599
|
[attr.aria-describedby]="tagListId"
|
|
602
600
|
[attr.aria-activedescendant]="activeDescendant"
|
|
603
601
|
[attr.aria-busy]="isLoading"
|
|
@@ -615,7 +613,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
615
613
|
[disabled]="disabled"
|
|
616
614
|
[readonly]="readonly"
|
|
617
615
|
[placeholder]="placeholder"
|
|
618
|
-
|
|
616
|
+
class="k-input-inner"
|
|
619
617
|
(input)="handleInput($event)"
|
|
620
618
|
(keydown)="handleKeydown($event)"
|
|
621
619
|
[kendoEventsOutsideAngular]="{
|
|
@@ -628,7 +626,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
628
626
|
[attr.role]="role"
|
|
629
627
|
aria-haspopup="listbox"
|
|
630
628
|
[attr.aria-expanded]="ariaExpanded"
|
|
631
|
-
[attr.aria-controls]="
|
|
629
|
+
[attr.aria-controls]="ariaControls"
|
|
632
630
|
[attr.aria-describedby]="tagListId"
|
|
633
631
|
[attr.aria-activedescendant]="activeDescendant"
|
|
634
632
|
[attr.aria-busy]="isLoading"
|
|
@@ -638,8 +636,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
638
636
|
}]
|
|
639
637
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { id: [{
|
|
640
638
|
type: Input
|
|
641
|
-
}], listId: [{
|
|
642
|
-
type: Input
|
|
643
639
|
}], tagListId: [{
|
|
644
640
|
type: Input
|
|
645
641
|
}], activeDescendant: [{
|
|
@@ -650,12 +646,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
650
646
|
type: Input
|
|
651
647
|
}], tabIndex: [{
|
|
652
648
|
type: Input
|
|
653
|
-
}], popupOpen: [{
|
|
654
|
-
type: Input
|
|
655
649
|
}], role: [{
|
|
656
650
|
type: Input
|
|
657
651
|
}], isLoading: [{
|
|
658
652
|
type: Input
|
|
653
|
+
}], ariaControls: [{
|
|
654
|
+
type: Input
|
|
655
|
+
}], ariaExpanded: [{
|
|
656
|
+
type: Input
|
|
659
657
|
}], isSuggestable: [{
|
|
660
658
|
type: Input
|
|
661
659
|
}], isFilterable: [{
|
|
@@ -2130,6 +2128,9 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
2130
2128
|
*ngIf="checkboxes.enabled"
|
|
2131
2129
|
type="checkbox"
|
|
2132
2130
|
class="k-checkbox"
|
|
2131
|
+
role="presentation"
|
|
2132
|
+
tabindex="-1"
|
|
2133
|
+
aria-hidden="true"
|
|
2133
2134
|
[ngClass]="checkboxClasses"
|
|
2134
2135
|
(change)="onCheckedChange($event, itemIndex)"
|
|
2135
2136
|
[checked]="isChecked(itemIndex)"
|
|
@@ -2258,6 +2259,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2258
2259
|
*ngIf="checkboxes.enabled"
|
|
2259
2260
|
type="checkbox"
|
|
2260
2261
|
class="k-checkbox"
|
|
2262
|
+
role="presentation"
|
|
2263
|
+
tabindex="-1"
|
|
2264
|
+
aria-hidden="true"
|
|
2261
2265
|
[ngClass]="checkboxClasses"
|
|
2262
2266
|
(change)="onCheckedChange($event, itemIndex)"
|
|
2263
2267
|
[checked]="isChecked(itemIndex)"
|
|
@@ -2426,7 +2430,7 @@ const TOUCH_ENABLED = new InjectionToken('dropdowns-touch-enabled');
|
|
|
2426
2430
|
class Messages extends ComponentMessages {
|
|
2427
2431
|
}
|
|
2428
2432
|
Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2429
|
-
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText" }, usesInheritance: true, ngImport: i0 });
|
|
2433
|
+
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel" }, usesInheritance: true, ngImport: i0 });
|
|
2430
2434
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
|
|
2431
2435
|
type: Directive
|
|
2432
2436
|
}], propDecorators: { noDataText: [{
|
|
@@ -2437,6 +2441,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2437
2441
|
type: Input
|
|
2438
2442
|
}], selectButtonText: [{
|
|
2439
2443
|
type: Input
|
|
2444
|
+
}], filterInputLabel: [{
|
|
2445
|
+
type: Input
|
|
2446
|
+
}], popupLabel: [{
|
|
2447
|
+
type: Input
|
|
2440
2448
|
}] } });
|
|
2441
2449
|
|
|
2442
2450
|
/**
|
|
@@ -2611,8 +2619,8 @@ class AutoCompleteComponent {
|
|
|
2611
2619
|
*/
|
|
2612
2620
|
this.onBlur = new EventEmitter();
|
|
2613
2621
|
this.widgetClasses = true;
|
|
2614
|
-
this.listBoxId = guid()
|
|
2615
|
-
this.optionPrefix = guid()
|
|
2622
|
+
this.listBoxId = `k-${guid()}`;
|
|
2623
|
+
this.optionPrefix = `k-${guid()}`;
|
|
2616
2624
|
this.onChangeCallback = noop;
|
|
2617
2625
|
this.onTouchedCallback = noop;
|
|
2618
2626
|
this.popupMouseDownHandler = (event) => event.preventDefault();
|
|
@@ -2676,6 +2684,9 @@ class AutoCompleteComponent {
|
|
|
2676
2684
|
return 'visible';
|
|
2677
2685
|
}
|
|
2678
2686
|
}
|
|
2687
|
+
get ariaControls() {
|
|
2688
|
+
return this.isOpen ? this.listBoxId : undefined;
|
|
2689
|
+
}
|
|
2679
2690
|
/**
|
|
2680
2691
|
* Toggles the visibility of the popup.
|
|
2681
2692
|
* If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.
|
|
@@ -3248,9 +3259,9 @@ class AutoCompleteComponent {
|
|
|
3248
3259
|
if (this.virtual) {
|
|
3249
3260
|
this.virtual.skip = 0;
|
|
3250
3261
|
}
|
|
3251
|
-
const horizontalAlign = this.direction ===
|
|
3252
|
-
const anchorPosition = { horizontal: horizontalAlign, vertical:
|
|
3253
|
-
const popupPosition = { horizontal: horizontalAlign, vertical:
|
|
3262
|
+
const horizontalAlign = this.direction === 'rtl' ? 'right' : 'left';
|
|
3263
|
+
const anchorPosition = { horizontal: horizontalAlign, vertical: 'bottom' };
|
|
3264
|
+
const popupPosition = { horizontal: horizontalAlign, vertical: 'top' };
|
|
3254
3265
|
this.popupRef = this.popupService.open({
|
|
3255
3266
|
anchor: this.wrapper,
|
|
3256
3267
|
animate: this.popupSettings.animate,
|
|
@@ -3267,7 +3278,11 @@ class AutoCompleteComponent {
|
|
|
3267
3278
|
popupWrapper.style.minWidth = min;
|
|
3268
3279
|
popupWrapper.style.width = max;
|
|
3269
3280
|
popupWrapper.style.height = this.height;
|
|
3270
|
-
popupWrapper.setAttribute(
|
|
3281
|
+
popupWrapper.setAttribute('dir', this.direction);
|
|
3282
|
+
if (!this.appendTo) {
|
|
3283
|
+
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
3284
|
+
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
3285
|
+
}
|
|
3271
3286
|
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
3272
3287
|
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
3273
3288
|
if (ariaLabel) {
|
|
@@ -3372,22 +3387,26 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3372
3387
|
|
|
3373
3388
|
i18n-clearTitle="kendo.autocomplete.clearTitle|The title of the clear button"
|
|
3374
3389
|
clearTitle="clear"
|
|
3390
|
+
|
|
3391
|
+
i18n-popupLabel="kendo.autocomplete.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
3392
|
+
popupLabel="Options list"
|
|
3375
3393
|
>
|
|
3376
3394
|
</ng-container>
|
|
3377
3395
|
<kendo-searchbar #searchbar
|
|
3378
3396
|
[role]="'combobox'"
|
|
3397
|
+
[ariaExpanded]="isOpen"
|
|
3398
|
+
[ariaControls]="ariaControls"
|
|
3379
3399
|
[isSuggestable]="suggest"
|
|
3380
3400
|
[isFilterable]="filterable"
|
|
3381
3401
|
[isLoading]="isLoading"
|
|
3402
|
+
[ariaControls]="ariaControls"
|
|
3382
3403
|
[id]="focusableId"
|
|
3383
|
-
[listId]="listBoxId"
|
|
3384
3404
|
[activeDescendant]="activeDescendant"
|
|
3385
3405
|
[userInput]="text"
|
|
3386
3406
|
[suggestedText]="suggestion"
|
|
3387
3407
|
[disabled]="disabled"
|
|
3388
3408
|
[readonly]="readonly"
|
|
3389
3409
|
[tabIndex]="tabIndex"
|
|
3390
|
-
[popupOpen]="isOpen"
|
|
3391
3410
|
[placeholder]="placeholder"
|
|
3392
3411
|
(onNavigate)="handleNavigate($event)"
|
|
3393
3412
|
(valueChange)="searchBarChange($event)"
|
|
@@ -3459,7 +3478,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
3459
3478
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
3460
3479
|
</ng-template>
|
|
3461
3480
|
<ng-container #container></ng-container>
|
|
3462
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "
|
|
3481
|
+
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
3463
3482
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
3464
3483
|
type: Component,
|
|
3465
3484
|
args: [{
|
|
@@ -3492,22 +3511,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
3492
3511
|
|
|
3493
3512
|
i18n-clearTitle="kendo.autocomplete.clearTitle|The title of the clear button"
|
|
3494
3513
|
clearTitle="clear"
|
|
3514
|
+
|
|
3515
|
+
i18n-popupLabel="kendo.autocomplete.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
3516
|
+
popupLabel="Options list"
|
|
3495
3517
|
>
|
|
3496
3518
|
</ng-container>
|
|
3497
3519
|
<kendo-searchbar #searchbar
|
|
3498
3520
|
[role]="'combobox'"
|
|
3521
|
+
[ariaExpanded]="isOpen"
|
|
3522
|
+
[ariaControls]="ariaControls"
|
|
3499
3523
|
[isSuggestable]="suggest"
|
|
3500
3524
|
[isFilterable]="filterable"
|
|
3501
3525
|
[isLoading]="isLoading"
|
|
3526
|
+
[ariaControls]="ariaControls"
|
|
3502
3527
|
[id]="focusableId"
|
|
3503
|
-
[listId]="listBoxId"
|
|
3504
3528
|
[activeDescendant]="activeDescendant"
|
|
3505
3529
|
[userInput]="text"
|
|
3506
3530
|
[suggestedText]="suggestion"
|
|
3507
3531
|
[disabled]="disabled"
|
|
3508
3532
|
[readonly]="readonly"
|
|
3509
3533
|
[tabIndex]="tabIndex"
|
|
3510
|
-
[popupOpen]="isOpen"
|
|
3511
3534
|
[placeholder]="placeholder"
|
|
3512
3535
|
(onNavigate)="handleNavigate($event)"
|
|
3513
3536
|
(valueChange)="searchBarChange($event)"
|
|
@@ -3942,8 +3965,8 @@ class ComboBoxComponent {
|
|
|
3942
3965
|
this.onBlur = new EventEmitter();
|
|
3943
3966
|
this.widgetClasses = true;
|
|
3944
3967
|
this._isFocused = false;
|
|
3945
|
-
this.listBoxId = guid()
|
|
3946
|
-
this.optionPrefix = guid()
|
|
3968
|
+
this.listBoxId = `k-${guid()}`;
|
|
3969
|
+
this.optionPrefix = `k-${guid()}`;
|
|
3947
3970
|
this.onChangeCallback = (_) => { };
|
|
3948
3971
|
this.onTouchedCallback = (_) => { };
|
|
3949
3972
|
/**
|
|
@@ -3977,6 +4000,12 @@ class ComboBoxComponent {
|
|
|
3977
4000
|
get text() {
|
|
3978
4001
|
return this._text;
|
|
3979
4002
|
}
|
|
4003
|
+
/**
|
|
4004
|
+
* @hidden
|
|
4005
|
+
*/
|
|
4006
|
+
get ariaControls() {
|
|
4007
|
+
return this.isOpen ? this.listBoxId : undefined;
|
|
4008
|
+
}
|
|
3980
4009
|
/**
|
|
3981
4010
|
* @hidden
|
|
3982
4011
|
*/
|
|
@@ -4915,7 +4944,11 @@ class ComboBoxComponent {
|
|
|
4915
4944
|
popupWrapper.style.minWidth = min;
|
|
4916
4945
|
popupWrapper.style.width = max;
|
|
4917
4946
|
popupWrapper.style.height = this.popupHeight;
|
|
4918
|
-
popupWrapper.setAttribute(
|
|
4947
|
+
popupWrapper.setAttribute('dir', this.direction);
|
|
4948
|
+
if (!this.appendTo) {
|
|
4949
|
+
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
4950
|
+
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
4951
|
+
}
|
|
4919
4952
|
const listBox = this.popupRef.popupElement.querySelector('ul');
|
|
4920
4953
|
const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby');
|
|
4921
4954
|
if (ariaLabel) {
|
|
@@ -5019,12 +5052,16 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5019
5052
|
|
|
5020
5053
|
i18n-selectButtonText="kendo.combobox.selectButtonText|The text set as aria-label on the select button"
|
|
5021
5054
|
selectButtonText="Select"
|
|
5055
|
+
|
|
5056
|
+
i18n-popupLabel="kendo.combobox.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
5057
|
+
popupLabel="Options list"
|
|
5022
5058
|
>
|
|
5023
5059
|
</ng-container>
|
|
5024
5060
|
<kendo-searchbar #searchbar
|
|
5025
5061
|
[role]="'combobox'"
|
|
5062
|
+
[ariaExpanded]="isOpen"
|
|
5063
|
+
[ariaControls]="ariaControls"
|
|
5026
5064
|
[id]="focusableId"
|
|
5027
|
-
[listId]="listBoxId"
|
|
5028
5065
|
[isLoading]="loading"
|
|
5029
5066
|
[isSuggestable]="suggest"
|
|
5030
5067
|
[isFilterable]="filterable"
|
|
@@ -5034,7 +5071,6 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5034
5071
|
[disabled]="disabled"
|
|
5035
5072
|
[readonly]="readonly"
|
|
5036
5073
|
[tabIndex]="tabIndex"
|
|
5037
|
-
[popupOpen]="isOpen"
|
|
5038
5074
|
[placeholder]="placeholder"
|
|
5039
5075
|
(onNavigate)="handleNavigate($event)"
|
|
5040
5076
|
(valueChange)="searchBarChange($event)"
|
|
@@ -5126,7 +5162,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
5126
5162
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
5127
5163
|
</ng-template>
|
|
5128
5164
|
<ng-container #container></ng-container>
|
|
5129
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "
|
|
5165
|
+
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
5130
5166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
5131
5167
|
type: Component,
|
|
5132
5168
|
args: [{
|
|
@@ -5160,12 +5196,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
5160
5196
|
|
|
5161
5197
|
i18n-selectButtonText="kendo.combobox.selectButtonText|The text set as aria-label on the select button"
|
|
5162
5198
|
selectButtonText="Select"
|
|
5199
|
+
|
|
5200
|
+
i18n-popupLabel="kendo.combobox.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
5201
|
+
popupLabel="Options list"
|
|
5163
5202
|
>
|
|
5164
5203
|
</ng-container>
|
|
5165
5204
|
<kendo-searchbar #searchbar
|
|
5166
5205
|
[role]="'combobox'"
|
|
5206
|
+
[ariaExpanded]="isOpen"
|
|
5207
|
+
[ariaControls]="ariaControls"
|
|
5167
5208
|
[id]="focusableId"
|
|
5168
|
-
[listId]="listBoxId"
|
|
5169
5209
|
[isLoading]="loading"
|
|
5170
5210
|
[isSuggestable]="suggest"
|
|
5171
5211
|
[isFilterable]="filterable"
|
|
@@ -5175,7 +5215,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
5175
5215
|
[disabled]="disabled"
|
|
5176
5216
|
[readonly]="readonly"
|
|
5177
5217
|
[tabIndex]="tabIndex"
|
|
5178
|
-
[popupOpen]="isOpen"
|
|
5179
5218
|
[placeholder]="placeholder"
|
|
5180
5219
|
(onNavigate)="handleNavigate($event)"
|
|
5181
5220
|
(valueChange)="searchBarChange($event)"
|
|
@@ -5517,6 +5556,7 @@ class DropDownListComponent {
|
|
|
5517
5556
|
* @hidden
|
|
5518
5557
|
*/
|
|
5519
5558
|
this.caretAltDownIcon = caretAltDownIcon;
|
|
5559
|
+
this.listBoxId = `k-${guid()}`;
|
|
5520
5560
|
/**
|
|
5521
5561
|
* Sets the height of the options list. By default, `listHeight` is 200px.
|
|
5522
5562
|
*
|
|
@@ -5598,9 +5638,8 @@ class DropDownListComponent {
|
|
|
5598
5638
|
this.role = 'combobox';
|
|
5599
5639
|
this.haspopup = 'listbox';
|
|
5600
5640
|
this.groupIndices = [];
|
|
5601
|
-
this.
|
|
5602
|
-
this.
|
|
5603
|
-
this.filterText = "";
|
|
5641
|
+
this.optionPrefix = `k-${guid()}`;
|
|
5642
|
+
this.filterText = '';
|
|
5604
5643
|
this.subs = new Subscription();
|
|
5605
5644
|
this._isFocused = false;
|
|
5606
5645
|
this.onTouchedCallback = (_) => { };
|
|
@@ -5906,9 +5945,6 @@ class DropDownListComponent {
|
|
|
5906
5945
|
get isAriaExpanded() {
|
|
5907
5946
|
return this.ariaExpanded;
|
|
5908
5947
|
}
|
|
5909
|
-
get hostAriaControls() {
|
|
5910
|
-
return this.ariaControls;
|
|
5911
|
-
}
|
|
5912
5948
|
get hostAriaInvalid() {
|
|
5913
5949
|
return this.formControl ? this.formControl?.invalid.toString() : null;
|
|
5914
5950
|
}
|
|
@@ -6249,7 +6285,11 @@ class DropDownListComponent {
|
|
|
6249
6285
|
popupWrapper.style.minWidth = min;
|
|
6250
6286
|
popupWrapper.style.width = max;
|
|
6251
6287
|
popupWrapper.style.height = this.height;
|
|
6252
|
-
popupWrapper.setAttribute(
|
|
6288
|
+
popupWrapper.setAttribute('dir', this.direction);
|
|
6289
|
+
if (!this.appendTo) {
|
|
6290
|
+
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
6291
|
+
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
6292
|
+
}
|
|
6253
6293
|
const listBox = popupWrapper.querySelector('ul.k-list-ul');
|
|
6254
6294
|
const ariaLabel = this.wrapper.nativeElement.getAttribute('aria-labelledby');
|
|
6255
6295
|
if (ariaLabel) {
|
|
@@ -6641,7 +6681,7 @@ class DropDownListComponent {
|
|
|
6641
6681
|
const currentValue = this.wrapper.nativeElement.getAttribute('aria-describedby') || '';
|
|
6642
6682
|
const trimmed = currentValue.replace(this.valueLabelId, '').trim();
|
|
6643
6683
|
// reset the value label ID to force readers to read the new value
|
|
6644
|
-
this.valueLabelId = guid()
|
|
6684
|
+
this.valueLabelId = `k-${guid()}`;
|
|
6645
6685
|
// add to the current value - don't replace it
|
|
6646
6686
|
const newValue = `${this.valueLabelId} ${trimmed}`.trim();
|
|
6647
6687
|
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-describedby', newValue);
|
|
@@ -6659,7 +6699,7 @@ class DropDownListComponent {
|
|
|
6659
6699
|
}
|
|
6660
6700
|
}
|
|
6661
6701
|
DropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: TOUCH_ENABLED, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
6662
|
-
DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: { iconClass: "iconClass", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", popupSettings: "popupSettings", listHeight: "listHeight", defaultItem: "defaultItem", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", filterable: "filterable", virtual: "virtual", ignoreCase: "ignoreCase", delay: "delay", valuePrimitive: "valuePrimitive", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", focusableId: ["id", "focusableId"] }, outputs: { valueChange: "valueChange", filterChange: "filterChange", selectionChange: "selectionChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keypress": "keypress($event)", "click": "click($event)" }, properties: { "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.disabled": "this.isDisabledAttribute", "class.k-loading": "this.isLoading", "attr.id": "this.focusableId", "attr.dir": "this.dir", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.readonlyAttr", "attr.aria-busy": "this.isBusy", "attr.role": "this.role", "attr.aria-haspopup": "this.haspopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-
|
|
6702
|
+
DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: { iconClass: "iconClass", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", popupSettings: "popupSettings", listHeight: "listHeight", defaultItem: "defaultItem", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", filterable: "filterable", virtual: "virtual", ignoreCase: "ignoreCase", delay: "delay", valuePrimitive: "valuePrimitive", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", focusableId: ["id", "focusableId"] }, outputs: { valueChange: "valueChange", filterChange: "filterChange", selectionChange: "selectionChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keypress": "keypress($event)", "click": "click($event)" }, properties: { "attr.aria-controls": "this.ariaControls", "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.disabled": "this.isDisabledAttribute", "class.k-loading": "this.isLoading", "attr.id": "this.focusableId", "attr.dir": "this.dir", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.readonlyAttr", "attr.aria-busy": "this.isBusy", "attr.role": "this.role", "attr.aria-haspopup": "this.haspopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-activedescendant": "this.hostAriaActivedescendant" } }, providers: [
|
|
6663
6703
|
DROPDOWNLIST_VALUE_ACCESSOR,
|
|
6664
6704
|
DataService,
|
|
6665
6705
|
SelectionService,
|
|
@@ -6683,6 +6723,12 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6683
6723
|
|
|
6684
6724
|
i18n-selectButtonText="kendo.dropdownlist.selectButtonText|The text set as aria-label on the select button"
|
|
6685
6725
|
selectButtonText="Select"
|
|
6726
|
+
|
|
6727
|
+
i18n-filterInputLabel="kendo.dropdownlist.filterInputLabel|The text set as aria-label on the filter input"
|
|
6728
|
+
filterInputLabel="Filter"
|
|
6729
|
+
|
|
6730
|
+
i18n-popupLabel="kendo.dropdownlist.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
6731
|
+
popupLabel="Options list"
|
|
6686
6732
|
>
|
|
6687
6733
|
</ng-container>
|
|
6688
6734
|
<span class="k-input-inner" unselectable="on" [id]="valueLabelId">
|
|
@@ -6718,27 +6764,26 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6718
6764
|
</button>
|
|
6719
6765
|
<ng-template #popupTemplate>
|
|
6720
6766
|
<!--filterable-->
|
|
6721
|
-
|
|
6722
6767
|
<ng-template [ngIf]="filterable">
|
|
6723
6768
|
<div class="k-list-filter" (click)="$event.stopImmediatePropagation()">
|
|
6724
6769
|
<span
|
|
6725
6770
|
class="k-searchbox k-input"
|
|
6726
|
-
[ngClass]="filterInputClasses"
|
|
6727
|
-
>
|
|
6771
|
+
[ngClass]="filterInputClasses">
|
|
6728
6772
|
<kendo-icon-wrapper
|
|
6729
6773
|
class="k-icon"
|
|
6774
|
+
innerCssClass="k-input-icon"
|
|
6730
6775
|
name="search"
|
|
6731
|
-
[svgIcon]="searchIcon"
|
|
6732
|
-
>
|
|
6776
|
+
[svgIcon]="searchIcon">
|
|
6733
6777
|
</kendo-icon-wrapper>
|
|
6734
6778
|
<input
|
|
6735
6779
|
role="searchbox"
|
|
6736
6780
|
aria-autocomplete="list"
|
|
6737
6781
|
aria-haspopup="listbox"
|
|
6738
|
-
[attr.aria-controls]="ariaControls"
|
|
6782
|
+
[attr.aria-controls]="isOpen ? ariaControls : undefined"
|
|
6739
6783
|
[attr.aria-activedescendant]="ariaActivedescendant"
|
|
6740
6784
|
tabindex="-1"
|
|
6741
6785
|
[filterInput]="isFocused && !touchEnabled"
|
|
6786
|
+
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
6742
6787
|
[dir]="direction"
|
|
6743
6788
|
[(ngModel)]="filterText"
|
|
6744
6789
|
class="k-input-inner"
|
|
@@ -6784,9 +6829,9 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6784
6829
|
<!--list-->
|
|
6785
6830
|
<kendo-list
|
|
6786
6831
|
#optionsList
|
|
6832
|
+
[id]="listBoxId"
|
|
6787
6833
|
[size]="size"
|
|
6788
6834
|
[rounded]="rounded"
|
|
6789
|
-
[id]="listBoxId"
|
|
6790
6835
|
[optionPrefix]="optionPrefix"
|
|
6791
6836
|
[data]="data"
|
|
6792
6837
|
[textField]="textField"
|
|
@@ -6798,8 +6843,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
6798
6843
|
[show]="isOpen"
|
|
6799
6844
|
[virtual]="virtual"
|
|
6800
6845
|
[ariaLive]="ariaLive"
|
|
6801
|
-
(pageChange)="pageChange($event)"
|
|
6802
|
-
>
|
|
6846
|
+
(pageChange)="pageChange($event)">
|
|
6803
6847
|
</kendo-list>
|
|
6804
6848
|
<!--no-data template-->
|
|
6805
6849
|
<div class="k-no-data" *ngIf="data.length === 0">
|
|
@@ -6854,6 +6898,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6854
6898
|
|
|
6855
6899
|
i18n-selectButtonText="kendo.dropdownlist.selectButtonText|The text set as aria-label on the select button"
|
|
6856
6900
|
selectButtonText="Select"
|
|
6901
|
+
|
|
6902
|
+
i18n-filterInputLabel="kendo.dropdownlist.filterInputLabel|The text set as aria-label on the filter input"
|
|
6903
|
+
filterInputLabel="Filter"
|
|
6904
|
+
|
|
6905
|
+
i18n-popupLabel="kendo.dropdownlist.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
6906
|
+
popupLabel="Options list"
|
|
6857
6907
|
>
|
|
6858
6908
|
</ng-container>
|
|
6859
6909
|
<span class="k-input-inner" unselectable="on" [id]="valueLabelId">
|
|
@@ -6889,27 +6939,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6889
6939
|
</button>
|
|
6890
6940
|
<ng-template #popupTemplate>
|
|
6891
6941
|
<!--filterable-->
|
|
6892
|
-
|
|
6893
6942
|
<ng-template [ngIf]="filterable">
|
|
6894
6943
|
<div class="k-list-filter" (click)="$event.stopImmediatePropagation()">
|
|
6895
6944
|
<span
|
|
6896
6945
|
class="k-searchbox k-input"
|
|
6897
|
-
[ngClass]="filterInputClasses"
|
|
6898
|
-
>
|
|
6946
|
+
[ngClass]="filterInputClasses">
|
|
6899
6947
|
<kendo-icon-wrapper
|
|
6900
6948
|
class="k-icon"
|
|
6949
|
+
innerCssClass="k-input-icon"
|
|
6901
6950
|
name="search"
|
|
6902
|
-
[svgIcon]="searchIcon"
|
|
6903
|
-
>
|
|
6951
|
+
[svgIcon]="searchIcon">
|
|
6904
6952
|
</kendo-icon-wrapper>
|
|
6905
6953
|
<input
|
|
6906
6954
|
role="searchbox"
|
|
6907
6955
|
aria-autocomplete="list"
|
|
6908
6956
|
aria-haspopup="listbox"
|
|
6909
|
-
[attr.aria-controls]="ariaControls"
|
|
6957
|
+
[attr.aria-controls]="isOpen ? ariaControls : undefined"
|
|
6910
6958
|
[attr.aria-activedescendant]="ariaActivedescendant"
|
|
6911
6959
|
tabindex="-1"
|
|
6912
6960
|
[filterInput]="isFocused && !touchEnabled"
|
|
6961
|
+
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
6913
6962
|
[dir]="direction"
|
|
6914
6963
|
[(ngModel)]="filterText"
|
|
6915
6964
|
class="k-input-inner"
|
|
@@ -6955,9 +7004,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6955
7004
|
<!--list-->
|
|
6956
7005
|
<kendo-list
|
|
6957
7006
|
#optionsList
|
|
7007
|
+
[id]="listBoxId"
|
|
6958
7008
|
[size]="size"
|
|
6959
7009
|
[rounded]="rounded"
|
|
6960
|
-
[id]="listBoxId"
|
|
6961
7010
|
[optionPrefix]="optionPrefix"
|
|
6962
7011
|
[data]="data"
|
|
6963
7012
|
[textField]="textField"
|
|
@@ -6969,8 +7018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
6969
7018
|
[show]="isOpen"
|
|
6970
7019
|
[virtual]="virtual"
|
|
6971
7020
|
[ariaLive]="ariaLive"
|
|
6972
|
-
(pageChange)="pageChange($event)"
|
|
6973
|
-
>
|
|
7021
|
+
(pageChange)="pageChange($event)">
|
|
6974
7022
|
</kendo-list>
|
|
6975
7023
|
<!--no-data template-->
|
|
6976
7024
|
<div class="k-no-data" *ngIf="data.length === 0">
|
|
@@ -7001,7 +7049,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7001
7049
|
}, {
|
|
7002
7050
|
type: Inject,
|
|
7003
7051
|
args: [TOUCH_ENABLED]
|
|
7004
|
-
}] }, { type: i0.Injector }]; }, propDecorators: {
|
|
7052
|
+
}] }, { type: i0.Injector }]; }, propDecorators: { ariaControls: [{
|
|
7053
|
+
type: HostBinding,
|
|
7054
|
+
args: ['attr.aria-controls']
|
|
7055
|
+
}], iconClass: [{
|
|
7005
7056
|
type: Input
|
|
7006
7057
|
}], loading: [{
|
|
7007
7058
|
type: Input
|
|
@@ -7141,9 +7192,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7141
7192
|
}], isAriaExpanded: [{
|
|
7142
7193
|
type: HostBinding,
|
|
7143
7194
|
args: ['attr.aria-expanded']
|
|
7144
|
-
}], hostAriaControls: [{
|
|
7145
|
-
type: HostBinding,
|
|
7146
|
-
args: ['attr.aria-controls']
|
|
7147
7195
|
}], hostAriaInvalid: [{
|
|
7148
7196
|
type: HostBinding,
|
|
7149
7197
|
args: ['attr.aria-invalid']
|
|
@@ -7605,8 +7653,8 @@ class MultiSelectComponent {
|
|
|
7605
7653
|
* @hidden
|
|
7606
7654
|
*/
|
|
7607
7655
|
this.plusIcon = plusIcon;
|
|
7608
|
-
this.listBoxId = guid()
|
|
7609
|
-
this.tagListId = guid()
|
|
7656
|
+
this.listBoxId = `k-${guid()}`;
|
|
7657
|
+
this.tagListId = `k-${guid()}`;
|
|
7610
7658
|
this.tagPrefix = "tag-" + guid();
|
|
7611
7659
|
this.optionPrefix = "option-" + guid();
|
|
7612
7660
|
this.focusedTagIndex = undefined;
|
|
@@ -7787,6 +7835,12 @@ class MultiSelectComponent {
|
|
|
7787
7835
|
this.subscribeEvents();
|
|
7788
7836
|
this.subscribeTouchEvents();
|
|
7789
7837
|
}
|
|
7838
|
+
/**
|
|
7839
|
+
* @hidden
|
|
7840
|
+
*/
|
|
7841
|
+
get ariaControls() {
|
|
7842
|
+
return this.isOpen ? this.listBoxId : undefined;
|
|
7843
|
+
}
|
|
7790
7844
|
/**
|
|
7791
7845
|
* Focuses a specific item of the MultiSelect based on a provided index.
|
|
7792
7846
|
* If there is a custom item it is positioned at index -1.
|
|
@@ -8911,6 +8965,10 @@ class MultiSelectComponent {
|
|
|
8911
8965
|
});
|
|
8912
8966
|
const popupWrapper = this.popupRef.popupElement;
|
|
8913
8967
|
const { min, max } = this.width;
|
|
8968
|
+
if (!this.appendTo) {
|
|
8969
|
+
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
8970
|
+
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
8971
|
+
}
|
|
8914
8972
|
popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);
|
|
8915
8973
|
popupWrapper.style.minWidth = min;
|
|
8916
8974
|
popupWrapper.style.width = max;
|
|
@@ -9003,6 +9061,9 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9003
9061
|
|
|
9004
9062
|
i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
|
|
9005
9063
|
clearTitle="clear"
|
|
9064
|
+
|
|
9065
|
+
i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
9066
|
+
popupLabel="Options list"
|
|
9006
9067
|
>
|
|
9007
9068
|
</ng-container>
|
|
9008
9069
|
<kendo-taglist
|
|
@@ -9023,10 +9084,11 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9023
9084
|
>
|
|
9024
9085
|
<kendo-searchbar
|
|
9025
9086
|
#searchbar
|
|
9087
|
+
[ariaExpanded]="isOpen"
|
|
9088
|
+
[ariaControls]="ariaControls"
|
|
9026
9089
|
[id]="focusableId"
|
|
9027
9090
|
[role]="'combobox'"
|
|
9028
9091
|
[tagListId]="tagListId"
|
|
9029
|
-
[listId]="listBoxId"
|
|
9030
9092
|
[isLoading]="loading"
|
|
9031
9093
|
[isFilterable]="filterable"
|
|
9032
9094
|
[activeDescendant]="activeDescendant"
|
|
@@ -9034,7 +9096,6 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9034
9096
|
[disabled]="disabled"
|
|
9035
9097
|
[readonly]="readonly"
|
|
9036
9098
|
[tabIndex]="tabIndex"
|
|
9037
|
-
[popupOpen]="isOpen"
|
|
9038
9099
|
[placeholder]="placeholder"
|
|
9039
9100
|
(onNavigate)="handleNavigate($event)"
|
|
9040
9101
|
(valueChange)="handleFilter($event)"
|
|
@@ -9138,7 +9199,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
9138
9199
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9139
9200
|
</ng-template>
|
|
9140
9201
|
<ng-container #container></ng-container>
|
|
9141
|
-
`, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "
|
|
9202
|
+
`, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
|
|
9142
9203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
9143
9204
|
type: Component,
|
|
9144
9205
|
args: [{
|
|
@@ -9169,6 +9230,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9169
9230
|
|
|
9170
9231
|
i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
|
|
9171
9232
|
clearTitle="clear"
|
|
9233
|
+
|
|
9234
|
+
i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
9235
|
+
popupLabel="Options list"
|
|
9172
9236
|
>
|
|
9173
9237
|
</ng-container>
|
|
9174
9238
|
<kendo-taglist
|
|
@@ -9189,10 +9253,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9189
9253
|
>
|
|
9190
9254
|
<kendo-searchbar
|
|
9191
9255
|
#searchbar
|
|
9256
|
+
[ariaExpanded]="isOpen"
|
|
9257
|
+
[ariaControls]="ariaControls"
|
|
9192
9258
|
[id]="focusableId"
|
|
9193
9259
|
[role]="'combobox'"
|
|
9194
9260
|
[tagListId]="tagListId"
|
|
9195
|
-
[listId]="listBoxId"
|
|
9196
9261
|
[isLoading]="loading"
|
|
9197
9262
|
[isFilterable]="filterable"
|
|
9198
9263
|
[activeDescendant]="activeDescendant"
|
|
@@ -9200,7 +9265,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
9200
9265
|
[disabled]="disabled"
|
|
9201
9266
|
[readonly]="readonly"
|
|
9202
9267
|
[tabIndex]="tabIndex"
|
|
9203
|
-
[popupOpen]="isOpen"
|
|
9204
9268
|
[placeholder]="placeholder"
|
|
9205
9269
|
(onNavigate)="handleNavigate($event)"
|
|
9206
9270
|
(valueChange)="handleFilter($event)"
|
|
@@ -9744,13 +9808,16 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9744
9808
|
|
|
9745
9809
|
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
9746
9810
|
selectButtonText="Select"
|
|
9747
|
-
|
|
9748
|
-
|
|
9811
|
+
|
|
9812
|
+
i18n-popupLabel="kendo.multicolumncombobox.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
9813
|
+
popupLabel="Options list"
|
|
9814
|
+
></ng-container>
|
|
9749
9815
|
<kendo-searchbar
|
|
9750
9816
|
#searchbar
|
|
9751
9817
|
[role]="'combobox'"
|
|
9818
|
+
[ariaExpanded]="isOpen"
|
|
9819
|
+
[ariaControls]="ariaControls"
|
|
9752
9820
|
[id]="focusableId"
|
|
9753
|
-
[listId]="listBoxId"
|
|
9754
9821
|
[isLoading]="loading"
|
|
9755
9822
|
[isSuggestable]="suggest"
|
|
9756
9823
|
[isFilterable]="filterable"
|
|
@@ -9760,7 +9827,6 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9760
9827
|
[disabled]="disabled"
|
|
9761
9828
|
[readonly]="readonly"
|
|
9762
9829
|
[tabIndex]="tabIndex"
|
|
9763
|
-
[popupOpen]="isOpen"
|
|
9764
9830
|
[placeholder]="placeholder"
|
|
9765
9831
|
(onNavigate)="handleNavigate($event)"
|
|
9766
9832
|
(valueChange)="searchBarChange($event)"
|
|
@@ -9896,7 +9962,6 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9896
9962
|
<!--list-->
|
|
9897
9963
|
<kendo-list
|
|
9898
9964
|
#optionsList
|
|
9899
|
-
[id]="listBoxId"
|
|
9900
9965
|
[optionPrefix]="optionPrefix"
|
|
9901
9966
|
[data]="data"
|
|
9902
9967
|
[textField]="textField"
|
|
@@ -9962,7 +10027,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
9962
10027
|
|
|
9963
10028
|
<!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
|
|
9964
10029
|
<ng-container #container></ng-container>
|
|
9965
|
-
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "
|
|
10030
|
+
`, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
9966
10031
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
|
|
9967
10032
|
type: Component,
|
|
9968
10033
|
args: [{
|
|
@@ -10003,13 +10068,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10003
10068
|
|
|
10004
10069
|
i18n-selectButtonText="kendo.multicolumncombobox.selectButtonText|The title of the select button"
|
|
10005
10070
|
selectButtonText="Select"
|
|
10006
|
-
|
|
10007
|
-
|
|
10071
|
+
|
|
10072
|
+
i18n-popupLabel="kendo.multicolumncombobox.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
10073
|
+
popupLabel="Options list"
|
|
10074
|
+
></ng-container>
|
|
10008
10075
|
<kendo-searchbar
|
|
10009
10076
|
#searchbar
|
|
10010
10077
|
[role]="'combobox'"
|
|
10078
|
+
[ariaExpanded]="isOpen"
|
|
10079
|
+
[ariaControls]="ariaControls"
|
|
10011
10080
|
[id]="focusableId"
|
|
10012
|
-
[listId]="listBoxId"
|
|
10013
10081
|
[isLoading]="loading"
|
|
10014
10082
|
[isSuggestable]="suggest"
|
|
10015
10083
|
[isFilterable]="filterable"
|
|
@@ -10019,7 +10087,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10019
10087
|
[disabled]="disabled"
|
|
10020
10088
|
[readonly]="readonly"
|
|
10021
10089
|
[tabIndex]="tabIndex"
|
|
10022
|
-
[popupOpen]="isOpen"
|
|
10023
10090
|
[placeholder]="placeholder"
|
|
10024
10091
|
(onNavigate)="handleNavigate($event)"
|
|
10025
10092
|
(valueChange)="searchBarChange($event)"
|
|
@@ -10155,7 +10222,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
10155
10222
|
<!--list-->
|
|
10156
10223
|
<kendo-list
|
|
10157
10224
|
#optionsList
|
|
10158
|
-
[id]="listBoxId"
|
|
10159
10225
|
[optionPrefix]="optionPrefix"
|
|
10160
10226
|
[data]="data"
|
|
10161
10227
|
[textField]="textField"
|
|
@@ -10431,10 +10497,10 @@ class DropDownTreeComponent {
|
|
|
10431
10497
|
* Used to associate the value label with the wrapper via aria-describedby.
|
|
10432
10498
|
*/
|
|
10433
10499
|
this.valueLabelId = `k-${guid$1()}`;
|
|
10500
|
+
this.treeViewId = `k-${guid$1()}`;
|
|
10434
10501
|
this._popupSettings = DEFAULT_POPUP_SETTINGS$1;
|
|
10435
10502
|
this._tabindex = 0;
|
|
10436
10503
|
this._isFocused = false;
|
|
10437
|
-
this._popupId = guid$1();
|
|
10438
10504
|
this._size = 'medium';
|
|
10439
10505
|
this._rounded = 'medium';
|
|
10440
10506
|
this._fillMode = 'solid';
|
|
@@ -10465,7 +10531,7 @@ class DropDownTreeComponent {
|
|
|
10465
10531
|
return this.loading ? 'true' : null;
|
|
10466
10532
|
}
|
|
10467
10533
|
get hostAriaControls() {
|
|
10468
|
-
return this.isOpen ? this.
|
|
10534
|
+
return this.isOpen ? this.treeViewId : undefined;
|
|
10469
10535
|
}
|
|
10470
10536
|
get id() {
|
|
10471
10537
|
return this.focusableId;
|
|
@@ -11061,7 +11127,7 @@ class DropDownTreeComponent {
|
|
|
11061
11127
|
onChildrenLoaded() {
|
|
11062
11128
|
setTimeout(() => {
|
|
11063
11129
|
if (this.popupRef) {
|
|
11064
|
-
this._searchableNodes = getSearchableItems(this.
|
|
11130
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.popupRef.popupElement);
|
|
11065
11131
|
}
|
|
11066
11132
|
});
|
|
11067
11133
|
}
|
|
@@ -11117,11 +11183,14 @@ class DropDownTreeComponent {
|
|
|
11117
11183
|
this.renderer.setStyle(popupWrapper, 'width', max);
|
|
11118
11184
|
this.renderer.setStyle(popupWrapper, 'height', this.height);
|
|
11119
11185
|
this.renderer.setAttribute(popupWrapper, 'dir', this.direction);
|
|
11120
|
-
|
|
11186
|
+
if (!this.appendTo) {
|
|
11187
|
+
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
11188
|
+
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
11189
|
+
}
|
|
11121
11190
|
this.popupRef.popupOpen.subscribe(() => {
|
|
11122
11191
|
this.cdr.detectChanges();
|
|
11123
11192
|
this.opened.emit();
|
|
11124
|
-
this._searchableNodes = getSearchableItems(this.
|
|
11193
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.popupRef.popupElement);
|
|
11125
11194
|
});
|
|
11126
11195
|
this.popupRef.popupClose.subscribe(() => {
|
|
11127
11196
|
this.closed.emit();
|
|
@@ -11341,6 +11410,12 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11341
11410
|
|
|
11342
11411
|
i18n-selectButtonText="kendo.dropdowntree.selectButtonText|The text set as aria-label on the select button"
|
|
11343
11412
|
selectButtonText="Select"
|
|
11413
|
+
|
|
11414
|
+
i18n-filterInputLabel="kendo.dropdowntree.filterInputLabel|The text set as aria-label on the filter input"
|
|
11415
|
+
filterInputLabel="Filter"
|
|
11416
|
+
|
|
11417
|
+
i18n-popupLabel="kendo.dropdowntree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
11418
|
+
popupLabel="Options list"
|
|
11344
11419
|
>
|
|
11345
11420
|
</ng-container>
|
|
11346
11421
|
<span
|
|
@@ -11411,14 +11486,10 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11411
11486
|
[filterInput]="filterable && !touchEnabled"
|
|
11412
11487
|
(keydown.arrowdown)="handleKeydown($event)"
|
|
11413
11488
|
(keydown.alt.arrowup)="handleKeydown($event)"
|
|
11489
|
+
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
11414
11490
|
[(ngModel)]="filter"
|
|
11415
11491
|
class="k-input-inner"
|
|
11416
11492
|
role="textbox"
|
|
11417
|
-
aria-haspopup="true"
|
|
11418
|
-
aria-expanded="false"
|
|
11419
|
-
tabindex="0"
|
|
11420
|
-
aria-disabled="false"
|
|
11421
|
-
aria-readonly="false"
|
|
11422
11493
|
[kendoEventsOutsideAngular]="{
|
|
11423
11494
|
blur: handleBlur
|
|
11424
11495
|
}"
|
|
@@ -11435,6 +11506,7 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11435
11506
|
</ng-template>
|
|
11436
11507
|
<kendo-treeview
|
|
11437
11508
|
#treeview
|
|
11509
|
+
[attr.id]="treeViewId"
|
|
11438
11510
|
*ngIf="data.length !== 0 && !allNodesHidden"
|
|
11439
11511
|
[size]="size"
|
|
11440
11512
|
[nodes]="data"
|
|
@@ -11524,6 +11596,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11524
11596
|
|
|
11525
11597
|
i18n-selectButtonText="kendo.dropdowntree.selectButtonText|The text set as aria-label on the select button"
|
|
11526
11598
|
selectButtonText="Select"
|
|
11599
|
+
|
|
11600
|
+
i18n-filterInputLabel="kendo.dropdowntree.filterInputLabel|The text set as aria-label on the filter input"
|
|
11601
|
+
filterInputLabel="Filter"
|
|
11602
|
+
|
|
11603
|
+
i18n-popupLabel="kendo.dropdowntree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
11604
|
+
popupLabel="Options list"
|
|
11527
11605
|
>
|
|
11528
11606
|
</ng-container>
|
|
11529
11607
|
<span
|
|
@@ -11594,14 +11672,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11594
11672
|
[filterInput]="filterable && !touchEnabled"
|
|
11595
11673
|
(keydown.arrowdown)="handleKeydown($event)"
|
|
11596
11674
|
(keydown.alt.arrowup)="handleKeydown($event)"
|
|
11675
|
+
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
11597
11676
|
[(ngModel)]="filter"
|
|
11598
11677
|
class="k-input-inner"
|
|
11599
11678
|
role="textbox"
|
|
11600
|
-
aria-haspopup="true"
|
|
11601
|
-
aria-expanded="false"
|
|
11602
|
-
tabindex="0"
|
|
11603
|
-
aria-disabled="false"
|
|
11604
|
-
aria-readonly="false"
|
|
11605
11679
|
[kendoEventsOutsideAngular]="{
|
|
11606
11680
|
blur: handleBlur
|
|
11607
11681
|
}"
|
|
@@ -11618,6 +11692,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11618
11692
|
</ng-template>
|
|
11619
11693
|
<kendo-treeview
|
|
11620
11694
|
#treeview
|
|
11695
|
+
[attr.id]="treeViewId"
|
|
11621
11696
|
*ngIf="data.length !== 0 && !allNodesHidden"
|
|
11622
11697
|
[size]="size"
|
|
11623
11698
|
[nodes]="data"
|
|
@@ -12285,6 +12360,7 @@ class MultiSelectTreeComponent {
|
|
|
12285
12360
|
*/
|
|
12286
12361
|
this.xIcon = xIcon;
|
|
12287
12362
|
this.hostClasses = true;
|
|
12363
|
+
this.treeViewId = `k-${guid$1()}`;
|
|
12288
12364
|
this.role = 'combobox';
|
|
12289
12365
|
this.ariaHasPopup = 'tree';
|
|
12290
12366
|
/**
|
|
@@ -12437,7 +12513,7 @@ class MultiSelectTreeComponent {
|
|
|
12437
12513
|
* @hidden
|
|
12438
12514
|
*/
|
|
12439
12515
|
this.allNodesHidden = false;
|
|
12440
|
-
this.tagListId = guid$1()
|
|
12516
|
+
this.tagListId = `k-${guid$1()}`;
|
|
12441
12517
|
this.tagPrefix = "tag-" + guid$1();
|
|
12442
12518
|
this.focusedTagIndex = undefined;
|
|
12443
12519
|
this._value = [];
|
|
@@ -12445,7 +12521,6 @@ class MultiSelectTreeComponent {
|
|
|
12445
12521
|
this._popupSettings = DEFAULT_POPUP_SETTINGS;
|
|
12446
12522
|
this._checkableSettings = DEFAULT_CHECKABLE_SETTINGS;
|
|
12447
12523
|
this._isFocused = false;
|
|
12448
|
-
this._popupId = guid$1();
|
|
12449
12524
|
this._size = 'medium';
|
|
12450
12525
|
this._rounded = 'medium';
|
|
12451
12526
|
this._fillMode = 'solid';
|
|
@@ -12464,7 +12539,7 @@ class MultiSelectTreeComponent {
|
|
|
12464
12539
|
return this.disabled;
|
|
12465
12540
|
}
|
|
12466
12541
|
get hostAriaControls() {
|
|
12467
|
-
return this.isOpen ? this.
|
|
12542
|
+
return this.isOpen ? this.treeViewId : null;
|
|
12468
12543
|
}
|
|
12469
12544
|
get hostAriaAutocomplete() {
|
|
12470
12545
|
return this.filterable ? 'list' : null;
|
|
@@ -13265,16 +13340,19 @@ class MultiSelectTreeComponent {
|
|
|
13265
13340
|
});
|
|
13266
13341
|
const popupWrapper = this.popupRef.popupElement;
|
|
13267
13342
|
const { min, max } = this.width;
|
|
13343
|
+
if (!this.appendTo) {
|
|
13344
|
+
this.renderer.setAttribute(popupWrapper, 'role', 'region');
|
|
13345
|
+
this.renderer.setAttribute(popupWrapper, 'aria-label', this.messageFor('popupLabel'));
|
|
13346
|
+
}
|
|
13268
13347
|
popupWrapper.style.minWidth = min;
|
|
13269
13348
|
popupWrapper.style.width = max;
|
|
13270
13349
|
popupWrapper.style.height = this.height;
|
|
13271
13350
|
this.renderer.setAttribute(popupWrapper, 'dir', this.direction);
|
|
13272
13351
|
this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
|
|
13273
|
-
this.renderer.setAttribute(popupWrapper, 'id', this._popupId);
|
|
13274
13352
|
this.popupRef.popupOpen.subscribe(() => {
|
|
13275
13353
|
this.cdr.detectChanges();
|
|
13276
13354
|
this.opened.emit();
|
|
13277
|
-
this._searchableNodes = getSearchableItems(this.
|
|
13355
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.popupRef.popupElement);
|
|
13278
13356
|
});
|
|
13279
13357
|
this.popupRef.popupClose.subscribe(() => {
|
|
13280
13358
|
this.closed.emit();
|
|
@@ -13503,7 +13581,7 @@ class MultiSelectTreeComponent {
|
|
|
13503
13581
|
onChildrenLoaded() {
|
|
13504
13582
|
setTimeout(() => {
|
|
13505
13583
|
if (this.popupRef) {
|
|
13506
|
-
this._searchableNodes = getSearchableItems(this.
|
|
13584
|
+
this._searchableNodes = getSearchableItems(this.treeViewId, this.popupRef.popupElement);
|
|
13507
13585
|
}
|
|
13508
13586
|
});
|
|
13509
13587
|
}
|
|
@@ -13609,6 +13687,12 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13609
13687
|
|
|
13610
13688
|
i18n-checkAllText="kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox"
|
|
13611
13689
|
checkAllText="Check all"
|
|
13690
|
+
|
|
13691
|
+
i18n-filterInputLabel="kendo.multiselecttree.filterInputLabel|The text set as aria-label on the filter input"
|
|
13692
|
+
filterInputLabel="Filter"
|
|
13693
|
+
|
|
13694
|
+
i18n-popupLabel="kendo.multiselecttree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
13695
|
+
popupLabel="Options list"
|
|
13612
13696
|
>
|
|
13613
13697
|
</ng-container>
|
|
13614
13698
|
<kendo-taglist
|
|
@@ -13675,6 +13759,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13675
13759
|
#filterInput
|
|
13676
13760
|
(input)="handleFilterInputChange($event.target)"
|
|
13677
13761
|
[filterInput]="filterable && !touchEnabled"
|
|
13762
|
+
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
13678
13763
|
(keydown)="handleKeydown($event)"
|
|
13679
13764
|
[(ngModel)]="filter"
|
|
13680
13765
|
class="k-input-inner"
|
|
@@ -13731,6 +13816,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
13731
13816
|
<kendo-treeview
|
|
13732
13817
|
#treeview
|
|
13733
13818
|
[size]="size"
|
|
13819
|
+
[attr.id]="treeViewId"
|
|
13734
13820
|
[nodes]="data"
|
|
13735
13821
|
[style.maxHeight.px]="listHeight"
|
|
13736
13822
|
[animate]="false"
|
|
@@ -13825,6 +13911,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13825
13911
|
|
|
13826
13912
|
i18n-checkAllText="kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox"
|
|
13827
13913
|
checkAllText="Check all"
|
|
13914
|
+
|
|
13915
|
+
i18n-filterInputLabel="kendo.multiselecttree.filterInputLabel|The text set as aria-label on the filter input"
|
|
13916
|
+
filterInputLabel="Filter"
|
|
13917
|
+
|
|
13918
|
+
i18n-popupLabel="kendo.multiselecttree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
|
|
13919
|
+
popupLabel="Options list"
|
|
13828
13920
|
>
|
|
13829
13921
|
</ng-container>
|
|
13830
13922
|
<kendo-taglist
|
|
@@ -13891,6 +13983,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13891
13983
|
#filterInput
|
|
13892
13984
|
(input)="handleFilterInputChange($event.target)"
|
|
13893
13985
|
[filterInput]="filterable && !touchEnabled"
|
|
13986
|
+
[attr.aria-label]="messageFor('filterInputLabel')"
|
|
13894
13987
|
(keydown)="handleKeydown($event)"
|
|
13895
13988
|
[(ngModel)]="filter"
|
|
13896
13989
|
class="k-input-inner"
|
|
@@ -13947,6 +14040,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13947
14040
|
<kendo-treeview
|
|
13948
14041
|
#treeview
|
|
13949
14042
|
[size]="size"
|
|
14043
|
+
[attr.id]="treeViewId"
|
|
13950
14044
|
[nodes]="data"
|
|
13951
14045
|
[style.maxHeight.px]="listHeight"
|
|
13952
14046
|
[animate]="false"
|