@progress/kendo-angular-dropdowns 6.0.2-dev.202202171128 → 6.0.2-dev.202202221531
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/dist/cdn/js/kendo-angular-dropdowns.js +1 -1
- package/dist/cdn/main.js +1 -1
- package/dist/es/autocomplete/autocomplete.component.js +9 -22
- package/dist/es/comboboxes/combobox.component.js +9 -22
- package/dist/es/comboboxes/multicolumncombobox.component.js +1 -1
- package/dist/es/common/localization/messages.js +4 -0
- package/dist/es/common/searchbar.component.js +8 -1
- package/dist/es/common/taglist.component.js +1 -1
- package/dist/es/dropdownlist/dropdownlist.component.js +10 -16
- package/dist/es/dropdowntrees/dropdowntree.component.js +1 -1
- package/dist/es/dropdowntrees/multiselecttree.component.js +13 -1
- package/dist/es/multiselect/multiselect.component.js +26 -22
- package/dist/es/package-metadata.js +1 -1
- package/dist/es2015/autocomplete/autocomplete.component.d.ts +4 -4
- package/dist/es2015/autocomplete/autocomplete.component.js +10 -18
- package/dist/es2015/comboboxes/combobox.component.d.ts +4 -4
- package/dist/es2015/comboboxes/combobox.component.js +14 -19
- package/dist/es2015/comboboxes/multicolumncombobox.component.js +3 -2
- package/dist/es2015/common/localization/messages.d.ts +4 -0
- package/dist/es2015/common/localization/messages.js +4 -0
- package/dist/es2015/common/searchbar.component.d.ts +1 -0
- package/dist/es2015/common/searchbar.component.js +4 -1
- package/dist/es2015/common/taglist.component.js +0 -3
- package/dist/es2015/dropdownlist/dropdownlist.component.d.ts +4 -3
- package/dist/es2015/dropdownlist/dropdownlist.component.js +15 -16
- package/dist/es2015/dropdowntrees/dropdowntree.component.js +5 -0
- package/dist/es2015/dropdowntrees/multiselecttree.component.d.ts +1 -0
- package/dist/es2015/dropdowntrees/multiselecttree.component.js +9 -1
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/multiselect/multiselect.component.d.ts +6 -4
- package/dist/es2015/multiselect/multiselect.component.js +25 -20
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/fesm2015/index.js +90 -81
- package/dist/fesm5/index.js +83 -88
- package/dist/npm/autocomplete/autocomplete.component.js +9 -22
- package/dist/npm/comboboxes/combobox.component.js +9 -22
- package/dist/npm/comboboxes/multicolumncombobox.component.js +1 -1
- package/dist/npm/common/localization/messages.js +4 -0
- package/dist/npm/common/searchbar.component.js +8 -1
- package/dist/npm/common/taglist.component.js +1 -1
- package/dist/npm/dropdownlist/dropdownlist.component.js +10 -16
- package/dist/npm/dropdowntrees/dropdowntree.component.js +1 -1
- package/dist/npm/dropdowntrees/multiselecttree.component.js +13 -1
- package/dist/npm/multiselect/multiselect.component.js +26 -22
- package/dist/npm/package-metadata.js +1 -1
- package/dist/systemjs/kendo-angular-dropdowns.js +1 -1
- package/package.json +1 -1
|
@@ -236,6 +236,7 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
236
236
|
*/
|
|
237
237
|
this.removeTag = new EventEmitter();
|
|
238
238
|
this.hostClasses = true;
|
|
239
|
+
this.role = 'combobox';
|
|
239
240
|
this.initialized = false;
|
|
240
241
|
this._size = 'medium';
|
|
241
242
|
this._rounded = 'medium';
|
|
@@ -612,6 +613,13 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
612
613
|
enumerable: true,
|
|
613
614
|
configurable: true
|
|
614
615
|
});
|
|
616
|
+
Object.defineProperty(MultiSelectComponent.prototype, "isAriaExpanded", {
|
|
617
|
+
get: function () {
|
|
618
|
+
return this.isOpen;
|
|
619
|
+
},
|
|
620
|
+
enumerable: true,
|
|
621
|
+
configurable: true
|
|
622
|
+
});
|
|
615
623
|
/**
|
|
616
624
|
* @hidden
|
|
617
625
|
*/
|
|
@@ -696,19 +704,12 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
696
704
|
Object.defineProperty(MultiSelectComponent.prototype, "noDataLabel", {
|
|
697
705
|
get: function () {
|
|
698
706
|
if (this.dataService.itemsCount === 0) {
|
|
699
|
-
return this.noDataText;
|
|
707
|
+
return this.messageFor('noDataText');
|
|
700
708
|
}
|
|
701
709
|
},
|
|
702
710
|
enumerable: true,
|
|
703
711
|
configurable: true
|
|
704
712
|
});
|
|
705
|
-
Object.defineProperty(MultiSelectComponent.prototype, "clearTitle", {
|
|
706
|
-
get: function () {
|
|
707
|
-
return this.localization.get('clearTitle');
|
|
708
|
-
},
|
|
709
|
-
enumerable: true,
|
|
710
|
-
configurable: true
|
|
711
|
-
});
|
|
712
713
|
Object.defineProperty(MultiSelectComponent.prototype, "clearButtonVisiblity", {
|
|
713
714
|
get: function () {
|
|
714
715
|
if (this.touchEnabled) {
|
|
@@ -928,9 +929,8 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
928
929
|
.changes.subscribe(function (_a) {
|
|
929
930
|
var rtl = _a.rtl;
|
|
930
931
|
_this.direction = rtl ? 'rtl' : 'ltr';
|
|
931
|
-
_this.
|
|
932
|
+
_this.cdr.markForCheck();
|
|
932
933
|
});
|
|
933
|
-
this.setMessages();
|
|
934
934
|
this.setState(this.value);
|
|
935
935
|
this.setComponentClasses();
|
|
936
936
|
this.initialized = true;
|
|
@@ -954,7 +954,6 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
954
954
|
MultiSelectComponent.prototype.ngOnDestroy = function () {
|
|
955
955
|
this._toggle(false);
|
|
956
956
|
this.unsubscribeEvents();
|
|
957
|
-
clearTimeout(this.messagesTimeout);
|
|
958
957
|
};
|
|
959
958
|
/**
|
|
960
959
|
* Toggles the visibility of the popup
|
|
@@ -992,6 +991,12 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
992
991
|
this.text = "";
|
|
993
992
|
this.value = [];
|
|
994
993
|
};
|
|
994
|
+
/**
|
|
995
|
+
* @hidden
|
|
996
|
+
*/
|
|
997
|
+
MultiSelectComponent.prototype.messageFor = function (key) {
|
|
998
|
+
return this.localization.get(key);
|
|
999
|
+
};
|
|
995
1000
|
// NG MODEL BINDINGS
|
|
996
1001
|
/**
|
|
997
1002
|
* @hidden
|
|
@@ -1436,16 +1441,6 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
1436
1441
|
setTimeout(function () { return _this._zone.run(f); });
|
|
1437
1442
|
});
|
|
1438
1443
|
};
|
|
1439
|
-
MultiSelectComponent.prototype.setMessages = function () {
|
|
1440
|
-
var _this = this;
|
|
1441
|
-
this._zone.runOutsideAngular(function () {
|
|
1442
|
-
clearTimeout(_this.messagesTimeout);
|
|
1443
|
-
_this.messagesTimeout = setTimeout(function () {
|
|
1444
|
-
_this.noDataText = _this.localization.get('noDataText');
|
|
1445
|
-
_this.cdr.detectChanges();
|
|
1446
|
-
});
|
|
1447
|
-
});
|
|
1448
|
-
};
|
|
1449
1444
|
MultiSelectComponent.prototype.setComponentClasses = function () {
|
|
1450
1445
|
if (this.size) {
|
|
1451
1446
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
|
|
@@ -1682,6 +1677,15 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
1682
1677
|
tslib_1.__metadata("design:type", Boolean),
|
|
1683
1678
|
tslib_1.__metadata("design:paramtypes", [])
|
|
1684
1679
|
], MultiSelectComponent.prototype, "isLoading", null);
|
|
1680
|
+
tslib_1.__decorate([
|
|
1681
|
+
HostBinding('attr.role'),
|
|
1682
|
+
tslib_1.__metadata("design:type", String)
|
|
1683
|
+
], MultiSelectComponent.prototype, "role", void 0);
|
|
1684
|
+
tslib_1.__decorate([
|
|
1685
|
+
HostBinding('attr.aria-expanded'),
|
|
1686
|
+
tslib_1.__metadata("design:type", Boolean),
|
|
1687
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
1688
|
+
], MultiSelectComponent.prototype, "isAriaExpanded", null);
|
|
1685
1689
|
tslib_1.__decorate([
|
|
1686
1690
|
HostListener('mousedown', ['$event']),
|
|
1687
1691
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -1710,7 +1714,7 @@ var MultiSelectComponent = /** @class */ (function () {
|
|
|
1710
1714
|
}
|
|
1711
1715
|
],
|
|
1712
1716
|
selector: 'kendo-multiselect',
|
|
1713
|
-
template: "\n <ng-container kendoMultiSelectLocalizedMessages\n i18n-noDataText=\"kendo.multiselect.noDataText|The text displayed in the popup when there are no items\"\n noDataText=\"NO DATA FOUND\"\n\n i18n-clearTitle=\"kendo.
|
|
1717
|
+
template: "\n <ng-container kendoMultiSelectLocalizedMessages\n i18n-noDataText=\"kendo.multiselect.noDataText|The text displayed in the popup when there are no items\"\n noDataText=\"NO DATA FOUND\"\n\n i18n-clearTitle=\"kendo.multiselect.clearTitle|The title of the clear button\"\n clearTitle=\"clear\"\n >\n </ng-container>\n <kendo-taglist\n [size]=\"size\"\n [rounded]=\"rounded\"\n [fillMode]=\"fillMode\"\n [id]=\"tagListId\"\n [tags]=\"tags\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [focused]=\"focusedTagIndex\"\n [disabled]=\"disabled\"\n [template]=\"tagTemplate\"\n [groupTemplate]=\"groupTagTemplate\"\n [tagPrefix]=\"tagPrefix\"\n [disabledIndices]=\"disabledIndices\"\n (removeTag)=\"handleRemoveTag($event)\"\n >\n <kendo-searchbar\n #searchbar\n [id]=\"focusableId\"\n [role]=\"'textbox'\"\n [tagListId]=\"tagListId\"\n [activeDescendant]=\"activeDescendant\"\n [noDataLabel]=\"noDataLabel\"\n [userInput]=\"text\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabIndex]=\"tabIndex\"\n [popupOpen]=\"isOpen\"\n [placeholder]=\"placeholder\"\n (onNavigate)=\"handleNavigate($event)\"\n (valueChange)=\"handleFilter($event)\"\n (onBlur)=\"onSearchBarBlur()\"\n (onFocus)=\"onSearchBarFocus()\"\n >\n </kendo-searchbar>\n </kendo-taglist>\n\n <span\n *ngIf=\"!loading && !readonly && clearButton && (tags?.length || text?.length)\"\n class=\"k-clear-value\"\n [style.visibility]=\"clearButtonVisiblity\"\n [attr.title]=\"messageFor('clearTitle')\"\n role=\"button\"\n tabindex=\"-1\"\n (mousedown)=\"clearAll($event)\"\n >\n <span class=\"k-icon k-i-x\"></span>\n </span>\n <span\n *ngIf=\"loading\"\n class=\"k-icon k-i-loading\"\n >\n </span>\n <ng-template #popupTemplate>\n <!--header template-->\n <ng-template *ngIf=\"headerTemplate\"\n [templateContext]=\"{\n templateRef: headerTemplate.templateRef\n }\">\n </ng-template>\n <!--custom item template-->\n <div\n *ngIf=\"allowCustom && text\"\n class=\"k-list\"\n [ngClass]=\"customItemSizeClass\"\n >\n <div class=\"k-list-item k-custom-item\" kendoDropDownsSelectable [multipleSelection]=\"true\" [index]=\"-1\">\n <ng-template *ngIf=\"customItemTemplate;else default_custom_item_template\"\n [templateContext]=\"{\n templateRef: customItemTemplate.templateRef,\n $implicit: text\n }\">\n </ng-template>\n <ng-template #default_custom_item_template>{{ text }}</ng-template>\n <span class=\"k-icon k-i-plus\" style=\"float: right\"></span>\n </div>\n </div>\n <!--list-->\n <kendo-list\n #optionsList\n [size]=\"size\"\n [rounded]=\"rounded\"\n [id]=\"listBoxId\"\n [optionPrefix]=\"optionPrefix\"\n [data]=\"data\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [height]=\"listHeight\"\n [template]=\"template\"\n [groupTemplate]=\"groupTemplate\"\n [fixedGroupTemplate]=\"fixedGroupTemplate\"\n [show]=\"isOpen\"\n [multipleSelection]=\"true\"\n [virtual]=\"virtual\"\n (pageChange)=\"pageChange($event)\"\n [checkboxes]=\"checkboxes\"\n >\n </kendo-list>\n <!--no data template-->\n <div class=\"k-no-data\" *ngIf=\"data.length === 0\">\n <ng-template [ngIf]=\"noDataTemplate\"\n [templateContext]=\"{\n templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!noDataTemplate\">\n <div>{{ messageFor('noDataText') }}</div>\n </ng-template>\n </div>\n <!--footer template-->\n <ng-template *ngIf=\"footerTemplate\"\n [templateContext]=\"{\n templateRef: footerTemplate.templateRef\n }\">\n </ng-template>\n </ng-template>\n <ng-template [ngIf]=\"isOpen\">\n <kendo-resize-sensor (resize)=\"onResize()\"></kendo-resize-sensor>\n </ng-template>\n <ng-container #container></ng-container>\n "
|
|
1714
1718
|
}),
|
|
1715
1719
|
tslib_1.__param(11, Optional()), tslib_1.__param(11, Inject(TOUCH_ENABLED)),
|
|
1716
1720
|
tslib_1.__metadata("design:paramtypes", [ElementRef,
|
|
@@ -9,7 +9,7 @@ export var packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-dropdowns',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
12
|
+
publishDate: 1645543730,
|
|
13
13
|
version: '',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
15
15
|
};
|
|
@@ -87,7 +87,6 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
|
|
|
87
87
|
togglePopup(open: boolean): void;
|
|
88
88
|
readonly activeDescendant: string;
|
|
89
89
|
readonly noDataLabel: string;
|
|
90
|
-
readonly clearTitle: string;
|
|
91
90
|
/**
|
|
92
91
|
* Defines whether the first match from the suggestions list will be automatically focused.
|
|
93
92
|
* By default, `highlightFirst` is set to `true`.
|
|
@@ -276,7 +275,6 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
|
|
|
276
275
|
listBoxId: string;
|
|
277
276
|
optionPrefix: string;
|
|
278
277
|
popupRef: PopupRef;
|
|
279
|
-
noDataText: string;
|
|
280
278
|
protected onChangeCallback: Function;
|
|
281
279
|
protected onTouchedCallback: Function;
|
|
282
280
|
constructor(localization: LocalizationService, dataService: DataService, popupService: PopupService, selectionService: SelectionService, navigationService: NavigationService, disabledItemsService: DisabledItemsService, _zone: NgZone, cdr: ChangeDetectorRef, renderer: Renderer2, hostElement: ElementRef, touchEnabled: boolean);
|
|
@@ -289,6 +287,10 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
|
|
|
289
287
|
* the model will not update automatically and the `selectionChange` and `valueChange` events will not be fired.
|
|
290
288
|
*/
|
|
291
289
|
reset(): void;
|
|
290
|
+
/**
|
|
291
|
+
* @hidden
|
|
292
|
+
*/
|
|
293
|
+
messageFor(key: string): string;
|
|
292
294
|
/**
|
|
293
295
|
* @hidden
|
|
294
296
|
*/
|
|
@@ -370,7 +372,6 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
|
|
|
370
372
|
private closeSubscription;
|
|
371
373
|
private localizationChangeSubscription;
|
|
372
374
|
private touchstartDisposeHandler;
|
|
373
|
-
private messagesTimeout;
|
|
374
375
|
private wrapper;
|
|
375
376
|
private _isFocused;
|
|
376
377
|
private direction;
|
|
@@ -388,6 +389,5 @@ export declare class AutoCompleteComponent implements ControlValueAccessor, OnDe
|
|
|
388
389
|
private triggerPopupEvents;
|
|
389
390
|
private firstFocusableIndex;
|
|
390
391
|
private findIndexPredicate;
|
|
391
|
-
private setMessages;
|
|
392
392
|
private setComponentClasses;
|
|
393
393
|
}
|
|
@@ -265,12 +265,9 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
265
265
|
}
|
|
266
266
|
get noDataLabel() {
|
|
267
267
|
if (this.data.length === 0) {
|
|
268
|
-
return this.noDataText;
|
|
268
|
+
return this.messageFor('noDataText');
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
|
-
get clearTitle() {
|
|
272
|
-
return this.localization.get('clearTitle');
|
|
273
|
-
}
|
|
274
271
|
/**
|
|
275
272
|
* Sets the data of the AutoComplete.
|
|
276
273
|
*
|
|
@@ -439,15 +436,13 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
439
436
|
.changes
|
|
440
437
|
.subscribe(({ rtl }) => {
|
|
441
438
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
442
|
-
this.
|
|
439
|
+
this.cdr.detectChanges();
|
|
443
440
|
});
|
|
444
|
-
this.setMessages();
|
|
445
441
|
this.setComponentClasses();
|
|
446
442
|
}
|
|
447
443
|
ngOnDestroy() {
|
|
448
444
|
this.destroyPopup();
|
|
449
445
|
this.unsubscribeEvents();
|
|
450
|
-
clearTimeout(this.messagesTimeout);
|
|
451
446
|
if (this.localizationChangeSubscription) {
|
|
452
447
|
this.localizationChangeSubscription.unsubscribe();
|
|
453
448
|
}
|
|
@@ -467,6 +462,12 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
467
462
|
reset() {
|
|
468
463
|
this.value = NO_VALUE;
|
|
469
464
|
}
|
|
465
|
+
/**
|
|
466
|
+
* @hidden
|
|
467
|
+
*/
|
|
468
|
+
messageFor(key) {
|
|
469
|
+
return this.localization.get(key);
|
|
470
|
+
}
|
|
470
471
|
/**
|
|
471
472
|
* @hidden
|
|
472
473
|
*/
|
|
@@ -861,15 +862,6 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
861
862
|
};
|
|
862
863
|
}
|
|
863
864
|
}
|
|
864
|
-
setMessages() {
|
|
865
|
-
this._zone.runOutsideAngular(() => {
|
|
866
|
-
clearTimeout(this.messagesTimeout);
|
|
867
|
-
this.messagesTimeout = setTimeout(() => {
|
|
868
|
-
this.noDataText = this.localization.get('noDataText');
|
|
869
|
-
this.cdr.detectChanges();
|
|
870
|
-
});
|
|
871
|
-
});
|
|
872
|
-
}
|
|
873
865
|
setComponentClasses() {
|
|
874
866
|
if (this.size) {
|
|
875
867
|
this.renderer.addClass(this.wrapper, getSizeClass('input', this.size));
|
|
@@ -1122,7 +1114,7 @@ AutoCompleteComponent = AutoCompleteComponent_1 = tslib_1.__decorate([
|
|
|
1122
1114
|
*ngIf="!loading && !readonly && (clearButton && text?.length)"
|
|
1123
1115
|
class="k-clear-value"
|
|
1124
1116
|
[style.visibility]="clearButtonVisiblity"
|
|
1125
|
-
[attr.title]="clearTitle"
|
|
1117
|
+
[attr.title]="messageFor('clearTitle')"
|
|
1126
1118
|
role="button"
|
|
1127
1119
|
tabindex="-1"
|
|
1128
1120
|
(click)="clearValue($event)"
|
|
@@ -1165,7 +1157,7 @@ AutoCompleteComponent = AutoCompleteComponent_1 = tslib_1.__decorate([
|
|
|
1165
1157
|
}">
|
|
1166
1158
|
</ng-template>
|
|
1167
1159
|
<ng-template [ngIf]="!noDataTemplate">
|
|
1168
|
-
<div>{{ noDataText }}</div>
|
|
1160
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
1169
1161
|
</ng-template>
|
|
1170
1162
|
</div>
|
|
1171
1163
|
<!--footer template-->
|
|
@@ -68,7 +68,6 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
68
68
|
togglePopup(open: boolean): void;
|
|
69
69
|
readonly activeDescendant: string;
|
|
70
70
|
readonly noDataLabel: string;
|
|
71
|
-
readonly clearTitle: string;
|
|
72
71
|
readonly appendTo: ViewContainerRef;
|
|
73
72
|
dataItem: any;
|
|
74
73
|
selected: any[];
|
|
@@ -332,7 +331,6 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
332
331
|
listBoxId: string;
|
|
333
332
|
optionPrefix: string;
|
|
334
333
|
popupRef: PopupRef;
|
|
335
|
-
noDataText: string;
|
|
336
334
|
protected readonly popupWidth: {
|
|
337
335
|
min: string;
|
|
338
336
|
max: string;
|
|
@@ -349,7 +347,6 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
349
347
|
*/
|
|
350
348
|
protected defaultVirtualPageSize: number;
|
|
351
349
|
private valueSubscription;
|
|
352
|
-
private messagesTimeout;
|
|
353
350
|
private _filtering;
|
|
354
351
|
private _text;
|
|
355
352
|
private filterText;
|
|
@@ -416,6 +413,10 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
416
413
|
* should be rendered in the input when the component is not focused.
|
|
417
414
|
*/
|
|
418
415
|
isEmpty(): boolean;
|
|
416
|
+
/**
|
|
417
|
+
* @hidden
|
|
418
|
+
*/
|
|
419
|
+
messageFor(key: string): string;
|
|
419
420
|
/**
|
|
420
421
|
* @hidden
|
|
421
422
|
*/
|
|
@@ -519,7 +520,6 @@ export declare class ComboBoxComponent implements ControlValueAccessor, OnDestro
|
|
|
519
520
|
private _toggle;
|
|
520
521
|
private triggerPopupEvents;
|
|
521
522
|
private clearFilter;
|
|
522
|
-
private setMessages;
|
|
523
523
|
private subscribeTouchEvents;
|
|
524
524
|
private attachSelectClickHandler;
|
|
525
525
|
private setComponentClasses;
|
|
@@ -272,12 +272,9 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
272
272
|
}
|
|
273
273
|
get noDataLabel() {
|
|
274
274
|
if (this.data.length === 0) {
|
|
275
|
-
return this.noDataText;
|
|
275
|
+
return this.messageFor('noDataText');
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
|
-
get clearTitle() {
|
|
279
|
-
return this.localization.get('clearTitle');
|
|
280
|
-
}
|
|
281
278
|
get appendTo() {
|
|
282
279
|
const { appendTo } = this.popupSettings;
|
|
283
280
|
if (!appendTo || appendTo === 'root') {
|
|
@@ -495,7 +492,6 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
495
492
|
this.createValueStream();
|
|
496
493
|
this.subscribeTouchEvents();
|
|
497
494
|
this.attachSelectClickHandler();
|
|
498
|
-
this.setMessages();
|
|
499
495
|
this.setComponentClasses();
|
|
500
496
|
}
|
|
501
497
|
createValueStream() {
|
|
@@ -602,7 +598,7 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
602
598
|
this.subs.add(this.localization
|
|
603
599
|
.changes.subscribe(({ rtl }) => {
|
|
604
600
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
605
|
-
this.
|
|
601
|
+
this.cdr.detectChanges();
|
|
606
602
|
}));
|
|
607
603
|
this.subs.add(merge(this.navigationService.up, this.navigationService.down, this.navigationService.home, this.navigationService.end)
|
|
608
604
|
.pipe(filter((event) => isPresent(event.index)))
|
|
@@ -635,7 +631,6 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
635
631
|
}
|
|
636
632
|
ngOnDestroy() {
|
|
637
633
|
this.destroyPopup();
|
|
638
|
-
clearTimeout(this.messagesTimeout);
|
|
639
634
|
this.subs.unsubscribe();
|
|
640
635
|
if (isPresent(this.valueSubscription)) {
|
|
641
636
|
this.valueSubscription.unsubscribe();
|
|
@@ -732,6 +727,12 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
732
727
|
const valueEmpty = !isPresent(this.value) || isEmptyString(this.value);
|
|
733
728
|
return textEmpty && valueEmpty;
|
|
734
729
|
}
|
|
730
|
+
/**
|
|
731
|
+
* @hidden
|
|
732
|
+
*/
|
|
733
|
+
messageFor(key) {
|
|
734
|
+
return this.localization.get(key);
|
|
735
|
+
}
|
|
735
736
|
/**
|
|
736
737
|
* @hidden
|
|
737
738
|
*/
|
|
@@ -1214,15 +1215,6 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
1214
1215
|
this.filterText = '';
|
|
1215
1216
|
this.filterChange.emit(this.filterText);
|
|
1216
1217
|
}
|
|
1217
|
-
setMessages() {
|
|
1218
|
-
this.zone.runOutsideAngular(() => {
|
|
1219
|
-
clearTimeout(this.messagesTimeout);
|
|
1220
|
-
this.messagesTimeout = setTimeout(() => {
|
|
1221
|
-
this.noDataText = this.localization.get('noDataText');
|
|
1222
|
-
this.cdr.detectChanges();
|
|
1223
|
-
});
|
|
1224
|
-
});
|
|
1225
|
-
}
|
|
1226
1218
|
subscribeTouchEvents() {
|
|
1227
1219
|
if (!isDocumentAvailable() || !this.touchEnabled) {
|
|
1228
1220
|
return;
|
|
@@ -1498,6 +1490,9 @@ ComboBoxComponent = ComboBoxComponent_1 = tslib_1.__decorate([
|
|
|
1498
1490
|
|
|
1499
1491
|
i18n-clearTitle="kendo.combobox.clearTitle|The title of the clear button"
|
|
1500
1492
|
clearTitle="clear"
|
|
1493
|
+
|
|
1494
|
+
i18n-selectButtonText="kendo.combobox.selectButtonText|The text set as aria-label on the select button"
|
|
1495
|
+
selectButtonText="Select"
|
|
1501
1496
|
>
|
|
1502
1497
|
</ng-container>
|
|
1503
1498
|
<kendo-searchbar #searchbar
|
|
@@ -1523,7 +1518,7 @@ ComboBoxComponent = ComboBoxComponent_1 = tslib_1.__decorate([
|
|
|
1523
1518
|
class="k-clear-value"
|
|
1524
1519
|
[style.visibility]="clearButtonVisiblity"
|
|
1525
1520
|
aria-hidden="true"
|
|
1526
|
-
[attr.title]="clearTitle"
|
|
1521
|
+
[attr.title]="messageFor('clearTitle')"
|
|
1527
1522
|
(click)="clearValue($event)"
|
|
1528
1523
|
[kendoEventsOutsideAngular]="{
|
|
1529
1524
|
mousedown: preventEventDefault
|
|
@@ -1533,11 +1528,11 @@ ComboBoxComponent = ComboBoxComponent_1 = tslib_1.__decorate([
|
|
|
1533
1528
|
</span>
|
|
1534
1529
|
<button
|
|
1535
1530
|
#select
|
|
1536
|
-
aria-hidden="true"
|
|
1537
1531
|
unselectable="on"
|
|
1538
1532
|
type="button"
|
|
1539
1533
|
class="k-input-button k-button k-icon-button"
|
|
1540
1534
|
[ngClass]="selectButtonClasses"
|
|
1535
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
1541
1536
|
[kendoEventsOutsideAngular]="{
|
|
1542
1537
|
mousedown: preventEventDefault
|
|
1543
1538
|
}"
|
|
@@ -1578,7 +1573,7 @@ ComboBoxComponent = ComboBoxComponent_1 = tslib_1.__decorate([
|
|
|
1578
1573
|
}">
|
|
1579
1574
|
</ng-template>
|
|
1580
1575
|
<ng-template [ngIf]="!noDataTemplate">
|
|
1581
|
-
<div>{{ noDataText }}</div>
|
|
1576
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
1582
1577
|
</ng-template>
|
|
1583
1578
|
</div>
|
|
1584
1579
|
<!--footer template-->
|
|
@@ -222,7 +222,7 @@ MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = tslib_1.__decora
|
|
|
222
222
|
class="k-clear-value"
|
|
223
223
|
[style.visibility]="clearButtonVisiblity"
|
|
224
224
|
aria-hidden="true"
|
|
225
|
-
[attr.title]="clearTitle"
|
|
225
|
+
[attr.title]="messageFor('clearTitle')"
|
|
226
226
|
(click)="clearValue($event)"
|
|
227
227
|
[kendoEventsOutsideAngular]="{
|
|
228
228
|
mousedown: preventEventDefault
|
|
@@ -239,6 +239,7 @@ MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = tslib_1.__decora
|
|
|
239
239
|
type="button"
|
|
240
240
|
class="k-input-button k-button k-icon-button"
|
|
241
241
|
[ngClass]="selectButtonClasses"
|
|
242
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
242
243
|
[kendoEventsOutsideAngular]="{
|
|
243
244
|
mousedown: preventEventDefault
|
|
244
245
|
}"
|
|
@@ -363,7 +364,7 @@ MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = tslib_1.__decora
|
|
|
363
364
|
>
|
|
364
365
|
</ng-template>
|
|
365
366
|
<ng-template [ngIf]="!noDataTemplate">
|
|
366
|
-
<div>{{ noDataText }}</div>
|
|
367
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
367
368
|
</ng-template>
|
|
368
369
|
</div>
|
|
369
370
|
|
|
@@ -32,6 +32,7 @@ export declare class SearchBarComponent implements OnChanges, OnInit, OnDestroy
|
|
|
32
32
|
searchBarClass: boolean;
|
|
33
33
|
readonly value: string;
|
|
34
34
|
placeholder: string;
|
|
35
|
+
readonly ariaExpanded: boolean;
|
|
35
36
|
private _userInput;
|
|
36
37
|
private _previousValue;
|
|
37
38
|
private _placeholder;
|
|
@@ -43,6 +43,9 @@ let SearchBarComponent = class SearchBarComponent {
|
|
|
43
43
|
get placeholder() {
|
|
44
44
|
return this._placeholder;
|
|
45
45
|
}
|
|
46
|
+
get ariaExpanded() {
|
|
47
|
+
return this.role === 'combobox' ? this.popupOpen : null;
|
|
48
|
+
}
|
|
46
49
|
ngOnInit() {
|
|
47
50
|
this.localizationChangeSubscription = this.localization
|
|
48
51
|
.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
@@ -242,7 +245,7 @@ SearchBarComponent = tslib_1.__decorate([
|
|
|
242
245
|
[attr.aria-disabled]="disabled"
|
|
243
246
|
[attr.aria-readonly]="readonly"
|
|
244
247
|
aria-haspopup="listbox"
|
|
245
|
-
[attr.aria-expanded]="
|
|
248
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
246
249
|
[attr.aria-owns]="listId"
|
|
247
250
|
[attr.aria-describedby]="tagListId"
|
|
248
251
|
[attr.aria-activedescendant]="activeDescendant"
|
|
@@ -164,11 +164,8 @@ TagListComponent = tslib_1.__decorate([
|
|
|
164
164
|
template: `
|
|
165
165
|
<div
|
|
166
166
|
*ngFor="let tag of tags; let index = index;"
|
|
167
|
-
role="option"
|
|
168
167
|
[attr.id]="itemId(tag, index)"
|
|
169
168
|
[attr.aria-hidden]="tagAriaHidden(index)"
|
|
170
|
-
aria-selected="true"
|
|
171
|
-
[attr.aria-setsize]="tags?.length"
|
|
172
169
|
class="k-chip"
|
|
173
170
|
[ngClass]="{
|
|
174
171
|
'k-focus': index === focused,
|
|
@@ -313,7 +313,6 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
313
313
|
direction: Direction;
|
|
314
314
|
dataItem: any;
|
|
315
315
|
popupRef: PopupRef;
|
|
316
|
-
noDataText: string;
|
|
317
316
|
protected onTouchedCallback: Function;
|
|
318
317
|
protected onChangeCallback: Function;
|
|
319
318
|
private popupMouseDownHandler;
|
|
@@ -341,7 +340,6 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
341
340
|
private _popupSettings;
|
|
342
341
|
private _virtualSettings;
|
|
343
342
|
private localizationChangesSubscription;
|
|
344
|
-
private messagesTimeout;
|
|
345
343
|
private _size;
|
|
346
344
|
private _rounded;
|
|
347
345
|
private _fillMode;
|
|
@@ -406,6 +404,10 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
406
404
|
* the model will not update automatically and the `selectionChange` and `valueChange` events will not be fired.
|
|
407
405
|
*/
|
|
408
406
|
reset(): void;
|
|
407
|
+
/**
|
|
408
|
+
* @hidden
|
|
409
|
+
*/
|
|
410
|
+
messageFor(key: string): string;
|
|
409
411
|
/**
|
|
410
412
|
* @hidden
|
|
411
413
|
*/
|
|
@@ -498,7 +500,6 @@ export declare class DropDownListComponent implements ControlValueAccessor, OnDe
|
|
|
498
500
|
* @hidden
|
|
499
501
|
*/
|
|
500
502
|
pageChange(event: PageChangeEvent): void;
|
|
501
|
-
private setMessages;
|
|
502
503
|
private assignAriaDescribedBy;
|
|
503
504
|
private setComponentClasses;
|
|
504
505
|
}
|
|
@@ -211,14 +211,14 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
211
211
|
return this.listBoxId;
|
|
212
212
|
}
|
|
213
213
|
get ariaActivedescendant() {
|
|
214
|
-
if (!isPresent(this.dataItem)) {
|
|
214
|
+
if (!isPresent(this.dataItem) || !this.isOpen) {
|
|
215
215
|
return;
|
|
216
216
|
}
|
|
217
217
|
return this.optionPrefix + "-" + getter(this.dataItem, this.valueField);
|
|
218
218
|
}
|
|
219
219
|
get noDataLabel() {
|
|
220
220
|
if (this.dataService.itemsCount === 0) {
|
|
221
|
-
return this.noDataText;
|
|
221
|
+
return this.messageFor('noDataText');
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
get appendTo() {
|
|
@@ -532,9 +532,8 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
532
532
|
this.localizationChangesSubscription = this.localization
|
|
533
533
|
.changes.subscribe(({ rtl }) => {
|
|
534
534
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
535
|
-
this.
|
|
535
|
+
this.cdr.detectChanges();
|
|
536
536
|
});
|
|
537
|
-
this.setMessages();
|
|
538
537
|
this.assignAriaDescribedBy();
|
|
539
538
|
this.setComponentClasses();
|
|
540
539
|
}
|
|
@@ -558,7 +557,6 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
558
557
|
ngOnDestroy() {
|
|
559
558
|
this.destroyPopup();
|
|
560
559
|
this.unsubscribeEvents();
|
|
561
|
-
clearTimeout(this.messagesTimeout);
|
|
562
560
|
if (this.localizationChangesSubscription) {
|
|
563
561
|
this.localizationChangesSubscription.unsubscribe();
|
|
564
562
|
}
|
|
@@ -679,6 +677,12 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
679
677
|
reset() {
|
|
680
678
|
this.value = undefined;
|
|
681
679
|
}
|
|
680
|
+
/**
|
|
681
|
+
* @hidden
|
|
682
|
+
*/
|
|
683
|
+
messageFor(key) {
|
|
684
|
+
return this.localization.get(key);
|
|
685
|
+
}
|
|
682
686
|
/**
|
|
683
687
|
* @hidden
|
|
684
688
|
*/
|
|
@@ -1173,15 +1177,6 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
1173
1177
|
const virtual = this.virtual;
|
|
1174
1178
|
virtual.skip = event.skip;
|
|
1175
1179
|
}
|
|
1176
|
-
setMessages() {
|
|
1177
|
-
this._zone.runOutsideAngular(() => {
|
|
1178
|
-
clearTimeout(this.messagesTimeout);
|
|
1179
|
-
this.messagesTimeout = setTimeout(() => {
|
|
1180
|
-
this.noDataText = this.localization.get('noDataText');
|
|
1181
|
-
this.cdr.detectChanges();
|
|
1182
|
-
});
|
|
1183
|
-
});
|
|
1184
|
-
}
|
|
1185
1180
|
assignAriaDescribedBy() {
|
|
1186
1181
|
const currentValue = this.wrapper.nativeElement.getAttribute('aria-describedby') || '';
|
|
1187
1182
|
const trimmed = currentValue.replace(this.valueLabelId, '').trim();
|
|
@@ -1483,9 +1478,12 @@ DropDownListComponent = DropDownListComponent_1 = tslib_1.__decorate([
|
|
|
1483
1478
|
<ng-container kendoDropDownListLocalizedMessages
|
|
1484
1479
|
i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
|
|
1485
1480
|
noDataText="NO DATA FOUND"
|
|
1481
|
+
|
|
1482
|
+
i18n-selectButtonText="kendo.dropdownlist.selectButtonText|The text set as aria-label on the select button"
|
|
1483
|
+
selectButtonText="Select"
|
|
1486
1484
|
>
|
|
1487
1485
|
</ng-container>
|
|
1488
|
-
<span class="k-input-inner" unselectable="on" [id]="valueLabelId">
|
|
1486
|
+
<span class="k-input-inner" unselectable="on" role="option" [id]="valueLabelId">
|
|
1489
1487
|
<span class="k-input-value-text">
|
|
1490
1488
|
<ng-template *ngIf="valueTemplate"
|
|
1491
1489
|
[templateContext]="{
|
|
@@ -1502,6 +1500,7 @@ DropDownListComponent = DropDownListComponent_1 = tslib_1.__decorate([
|
|
|
1502
1500
|
type="button"
|
|
1503
1501
|
class="k-input-button k-button k-icon-button"
|
|
1504
1502
|
[ngClass]="selectButtonClasses"
|
|
1503
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
1505
1504
|
[kendoEventsOutsideAngular]="{
|
|
1506
1505
|
mousedown: onMouseDown
|
|
1507
1506
|
}"
|
|
@@ -1597,7 +1596,7 @@ DropDownListComponent = DropDownListComponent_1 = tslib_1.__decorate([
|
|
|
1597
1596
|
}">
|
|
1598
1597
|
</ng-template>
|
|
1599
1598
|
<ng-template [ngIf]="!noDataTemplate">
|
|
1600
|
-
<div>{{ noDataText }}</div>
|
|
1599
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
1601
1600
|
</ng-template>
|
|
1602
1601
|
</div>
|
|
1603
1602
|
<!--footer template-->
|
|
@@ -1246,11 +1246,15 @@ DropDownTreeComponent = DropDownTreeComponent_1 = tslib_1.__decorate([
|
|
|
1246
1246
|
|
|
1247
1247
|
i18n-clearTitle="kendo.dropdowntree.clearTitle|The title of the clear button"
|
|
1248
1248
|
clearTitle="clear"
|
|
1249
|
+
|
|
1250
|
+
i18n-selectButtonText="kendo.dropdowntree.selectButtonText|The text set as aria-label on the select button"
|
|
1251
|
+
selectButtonText="Select"
|
|
1249
1252
|
>
|
|
1250
1253
|
</ng-container>
|
|
1251
1254
|
<span
|
|
1252
1255
|
[attr.id]="valueLabelId"
|
|
1253
1256
|
class="k-input-inner"
|
|
1257
|
+
role="option"
|
|
1254
1258
|
>
|
|
1255
1259
|
<span class="k-input-value-text">
|
|
1256
1260
|
<ng-template *ngIf="valueTemplate"
|
|
@@ -1278,6 +1282,7 @@ DropDownTreeComponent = DropDownTreeComponent_1 = tslib_1.__decorate([
|
|
|
1278
1282
|
aria-hidden="true"
|
|
1279
1283
|
class="k-input-button k-button k-icon-button"
|
|
1280
1284
|
[ngClass]="selectButtonClasses"
|
|
1285
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
1281
1286
|
>
|
|
1282
1287
|
<span
|
|
1283
1288
|
class="k-button-icon k-icon"
|
|
@@ -43,6 +43,7 @@ export declare class MultiSelectTreeComponent implements OnInit, OnDestroy, OnCh
|
|
|
43
43
|
direction: Direction;
|
|
44
44
|
readonly hostTabIndex: number;
|
|
45
45
|
role: string;
|
|
46
|
+
readonly isAriaExpanded: boolean;
|
|
46
47
|
ariaHasPopup: string;
|
|
47
48
|
readonly isReadonly: boolean;
|
|
48
49
|
readonly ariaDescribedBy: string;
|