@progress/kendo-angular-dropdowns 6.0.1 → 6.0.2-dev.202202221633
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 +2 -2
- 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/checked-state/base-check.directive.js +19 -5
- 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 +28 -23
- 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 +17 -18
- package/dist/es2015/dropdowntrees/checked-state/base-check.directive.d.ts +7 -0
- package/dist/es2015/dropdowntrees/checked-state/base-check.directive.js +19 -5
- 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 +8 -5
- package/dist/es2015/multiselect/multiselect.component.js +27 -21
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/fesm2015/index.js +112 -88
- package/dist/fesm5/index.js +103 -93
- 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/checked-state/base-check.directive.js +18 -4
- 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 +28 -23
- package/dist/npm/package-metadata.js +1 -1
- package/dist/systemjs/kendo-angular-dropdowns.js +1 -1
- package/package.json +3 -5
package/dist/fesm2015/index.js
CHANGED
|
@@ -23,7 +23,7 @@ const packageMetadata = {
|
|
|
23
23
|
name: '@progress/kendo-angular-dropdowns',
|
|
24
24
|
productName: 'Kendo UI for Angular',
|
|
25
25
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
26
|
-
publishDate:
|
|
26
|
+
publishDate: 1645547418,
|
|
27
27
|
version: '',
|
|
28
28
|
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'
|
|
29
29
|
};
|
|
@@ -343,6 +343,9 @@ let SearchBarComponent = class SearchBarComponent {
|
|
|
343
343
|
get placeholder() {
|
|
344
344
|
return this._placeholder;
|
|
345
345
|
}
|
|
346
|
+
get ariaExpanded() {
|
|
347
|
+
return this.role === 'combobox' ? this.popupOpen : null;
|
|
348
|
+
}
|
|
346
349
|
ngOnInit() {
|
|
347
350
|
this.localizationChangeSubscription = this.localization
|
|
348
351
|
.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
|
|
@@ -542,7 +545,7 @@ SearchBarComponent = __decorate([
|
|
|
542
545
|
[attr.aria-disabled]="disabled"
|
|
543
546
|
[attr.aria-readonly]="readonly"
|
|
544
547
|
aria-haspopup="listbox"
|
|
545
|
-
[attr.aria-expanded]="
|
|
548
|
+
[attr.aria-expanded]="ariaExpanded"
|
|
546
549
|
[attr.aria-owns]="listId"
|
|
547
550
|
[attr.aria-describedby]="tagListId"
|
|
548
551
|
[attr.aria-activedescendant]="activeDescendant"
|
|
@@ -2207,12 +2210,9 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
2207
2210
|
}
|
|
2208
2211
|
get noDataLabel() {
|
|
2209
2212
|
if (this.data.length === 0) {
|
|
2210
|
-
return this.noDataText;
|
|
2213
|
+
return this.messageFor('noDataText');
|
|
2211
2214
|
}
|
|
2212
2215
|
}
|
|
2213
|
-
get clearTitle() {
|
|
2214
|
-
return this.localization.get('clearTitle');
|
|
2215
|
-
}
|
|
2216
2216
|
/**
|
|
2217
2217
|
* Sets the data of the AutoComplete.
|
|
2218
2218
|
*
|
|
@@ -2381,15 +2381,13 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
2381
2381
|
.changes
|
|
2382
2382
|
.subscribe(({ rtl }) => {
|
|
2383
2383
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
2384
|
-
this.
|
|
2384
|
+
this.cdr.detectChanges();
|
|
2385
2385
|
});
|
|
2386
|
-
this.setMessages();
|
|
2387
2386
|
this.setComponentClasses();
|
|
2388
2387
|
}
|
|
2389
2388
|
ngOnDestroy() {
|
|
2390
2389
|
this.destroyPopup();
|
|
2391
2390
|
this.unsubscribeEvents();
|
|
2392
|
-
clearTimeout(this.messagesTimeout);
|
|
2393
2391
|
if (this.localizationChangeSubscription) {
|
|
2394
2392
|
this.localizationChangeSubscription.unsubscribe();
|
|
2395
2393
|
}
|
|
@@ -2409,6 +2407,12 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
2409
2407
|
reset() {
|
|
2410
2408
|
this.value = NO_VALUE;
|
|
2411
2409
|
}
|
|
2410
|
+
/**
|
|
2411
|
+
* @hidden
|
|
2412
|
+
*/
|
|
2413
|
+
messageFor(key) {
|
|
2414
|
+
return this.localization.get(key);
|
|
2415
|
+
}
|
|
2412
2416
|
/**
|
|
2413
2417
|
* @hidden
|
|
2414
2418
|
*/
|
|
@@ -2803,15 +2807,6 @@ let AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponen
|
|
|
2803
2807
|
};
|
|
2804
2808
|
}
|
|
2805
2809
|
}
|
|
2806
|
-
setMessages() {
|
|
2807
|
-
this._zone.runOutsideAngular(() => {
|
|
2808
|
-
clearTimeout(this.messagesTimeout);
|
|
2809
|
-
this.messagesTimeout = setTimeout(() => {
|
|
2810
|
-
this.noDataText = this.localization.get('noDataText');
|
|
2811
|
-
this.cdr.detectChanges();
|
|
2812
|
-
});
|
|
2813
|
-
});
|
|
2814
|
-
}
|
|
2815
2810
|
setComponentClasses() {
|
|
2816
2811
|
if (this.size) {
|
|
2817
2812
|
this.renderer.addClass(this.wrapper, getSizeClass('input', this.size));
|
|
@@ -3064,7 +3059,7 @@ AutoCompleteComponent = AutoCompleteComponent_1 = __decorate([
|
|
|
3064
3059
|
*ngIf="!loading && !readonly && (clearButton && text?.length)"
|
|
3065
3060
|
class="k-clear-value"
|
|
3066
3061
|
[style.visibility]="clearButtonVisiblity"
|
|
3067
|
-
[attr.title]="clearTitle"
|
|
3062
|
+
[attr.title]="messageFor('clearTitle')"
|
|
3068
3063
|
role="button"
|
|
3069
3064
|
tabindex="-1"
|
|
3070
3065
|
(click)="clearValue($event)"
|
|
@@ -3107,7 +3102,7 @@ AutoCompleteComponent = AutoCompleteComponent_1 = __decorate([
|
|
|
3107
3102
|
}">
|
|
3108
3103
|
</ng-template>
|
|
3109
3104
|
<ng-template [ngIf]="!noDataTemplate">
|
|
3110
|
-
<div>{{ noDataText }}</div>
|
|
3105
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
3111
3106
|
</ng-template>
|
|
3112
3107
|
</div>
|
|
3113
3108
|
<!--footer template-->
|
|
@@ -3434,12 +3429,9 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
3434
3429
|
}
|
|
3435
3430
|
get noDataLabel() {
|
|
3436
3431
|
if (this.data.length === 0) {
|
|
3437
|
-
return this.noDataText;
|
|
3432
|
+
return this.messageFor('noDataText');
|
|
3438
3433
|
}
|
|
3439
3434
|
}
|
|
3440
|
-
get clearTitle() {
|
|
3441
|
-
return this.localization.get('clearTitle');
|
|
3442
|
-
}
|
|
3443
3435
|
get appendTo() {
|
|
3444
3436
|
const { appendTo } = this.popupSettings;
|
|
3445
3437
|
if (!appendTo || appendTo === 'root') {
|
|
@@ -3657,7 +3649,6 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
3657
3649
|
this.createValueStream();
|
|
3658
3650
|
this.subscribeTouchEvents();
|
|
3659
3651
|
this.attachSelectClickHandler();
|
|
3660
|
-
this.setMessages();
|
|
3661
3652
|
this.setComponentClasses();
|
|
3662
3653
|
}
|
|
3663
3654
|
createValueStream() {
|
|
@@ -3764,7 +3755,7 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
3764
3755
|
this.subs.add(this.localization
|
|
3765
3756
|
.changes.subscribe(({ rtl }) => {
|
|
3766
3757
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
3767
|
-
this.
|
|
3758
|
+
this.cdr.detectChanges();
|
|
3768
3759
|
}));
|
|
3769
3760
|
this.subs.add(merge(this.navigationService.up, this.navigationService.down, this.navigationService.home, this.navigationService.end)
|
|
3770
3761
|
.pipe(filter((event) => isPresent(event.index)))
|
|
@@ -3797,7 +3788,6 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
3797
3788
|
}
|
|
3798
3789
|
ngOnDestroy() {
|
|
3799
3790
|
this.destroyPopup();
|
|
3800
|
-
clearTimeout(this.messagesTimeout);
|
|
3801
3791
|
this.subs.unsubscribe();
|
|
3802
3792
|
if (isPresent(this.valueSubscription)) {
|
|
3803
3793
|
this.valueSubscription.unsubscribe();
|
|
@@ -3894,6 +3884,12 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
3894
3884
|
const valueEmpty = !isPresent(this.value) || isEmptyString(this.value);
|
|
3895
3885
|
return textEmpty && valueEmpty;
|
|
3896
3886
|
}
|
|
3887
|
+
/**
|
|
3888
|
+
* @hidden
|
|
3889
|
+
*/
|
|
3890
|
+
messageFor(key) {
|
|
3891
|
+
return this.localization.get(key);
|
|
3892
|
+
}
|
|
3897
3893
|
/**
|
|
3898
3894
|
* @hidden
|
|
3899
3895
|
*/
|
|
@@ -4376,15 +4372,6 @@ let ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {
|
|
|
4376
4372
|
this.filterText = '';
|
|
4377
4373
|
this.filterChange.emit(this.filterText);
|
|
4378
4374
|
}
|
|
4379
|
-
setMessages() {
|
|
4380
|
-
this.zone.runOutsideAngular(() => {
|
|
4381
|
-
clearTimeout(this.messagesTimeout);
|
|
4382
|
-
this.messagesTimeout = setTimeout(() => {
|
|
4383
|
-
this.noDataText = this.localization.get('noDataText');
|
|
4384
|
-
this.cdr.detectChanges();
|
|
4385
|
-
});
|
|
4386
|
-
});
|
|
4387
|
-
}
|
|
4388
4375
|
subscribeTouchEvents() {
|
|
4389
4376
|
if (!isDocumentAvailable() || !this.touchEnabled) {
|
|
4390
4377
|
return;
|
|
@@ -4660,6 +4647,9 @@ ComboBoxComponent = ComboBoxComponent_1 = __decorate([
|
|
|
4660
4647
|
|
|
4661
4648
|
i18n-clearTitle="kendo.combobox.clearTitle|The title of the clear button"
|
|
4662
4649
|
clearTitle="clear"
|
|
4650
|
+
|
|
4651
|
+
i18n-selectButtonText="kendo.combobox.selectButtonText|The text set as aria-label on the select button"
|
|
4652
|
+
selectButtonText="Select"
|
|
4663
4653
|
>
|
|
4664
4654
|
</ng-container>
|
|
4665
4655
|
<kendo-searchbar #searchbar
|
|
@@ -4685,7 +4675,7 @@ ComboBoxComponent = ComboBoxComponent_1 = __decorate([
|
|
|
4685
4675
|
class="k-clear-value"
|
|
4686
4676
|
[style.visibility]="clearButtonVisiblity"
|
|
4687
4677
|
aria-hidden="true"
|
|
4688
|
-
[attr.title]="clearTitle"
|
|
4678
|
+
[attr.title]="messageFor('clearTitle')"
|
|
4689
4679
|
(click)="clearValue($event)"
|
|
4690
4680
|
[kendoEventsOutsideAngular]="{
|
|
4691
4681
|
mousedown: preventEventDefault
|
|
@@ -4695,11 +4685,11 @@ ComboBoxComponent = ComboBoxComponent_1 = __decorate([
|
|
|
4695
4685
|
</span>
|
|
4696
4686
|
<button
|
|
4697
4687
|
#select
|
|
4698
|
-
aria-hidden="true"
|
|
4699
4688
|
unselectable="on"
|
|
4700
4689
|
type="button"
|
|
4701
4690
|
class="k-input-button k-button k-icon-button"
|
|
4702
4691
|
[ngClass]="selectButtonClasses"
|
|
4692
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
4703
4693
|
[kendoEventsOutsideAngular]="{
|
|
4704
4694
|
mousedown: preventEventDefault
|
|
4705
4695
|
}"
|
|
@@ -4740,7 +4730,7 @@ ComboBoxComponent = ComboBoxComponent_1 = __decorate([
|
|
|
4740
4730
|
}">
|
|
4741
4731
|
</ng-template>
|
|
4742
4732
|
<ng-template [ngIf]="!noDataTemplate">
|
|
4743
|
-
<div>{{ noDataText }}</div>
|
|
4733
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
4744
4734
|
</ng-template>
|
|
4745
4735
|
</div>
|
|
4746
4736
|
<!--footer template-->
|
|
@@ -4989,14 +4979,14 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
4989
4979
|
return this.listBoxId;
|
|
4990
4980
|
}
|
|
4991
4981
|
get ariaActivedescendant() {
|
|
4992
|
-
if (!isPresent(this.dataItem)) {
|
|
4982
|
+
if (!isPresent(this.dataItem) || !this.isOpen) {
|
|
4993
4983
|
return;
|
|
4994
4984
|
}
|
|
4995
4985
|
return this.optionPrefix + "-" + getter$1(this.dataItem, this.valueField);
|
|
4996
4986
|
}
|
|
4997
4987
|
get noDataLabel() {
|
|
4998
4988
|
if (this.dataService.itemsCount === 0) {
|
|
4999
|
-
return this.noDataText;
|
|
4989
|
+
return this.messageFor('noDataText');
|
|
5000
4990
|
}
|
|
5001
4991
|
}
|
|
5002
4992
|
get appendTo() {
|
|
@@ -5310,9 +5300,8 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
5310
5300
|
this.localizationChangesSubscription = this.localization
|
|
5311
5301
|
.changes.subscribe(({ rtl }) => {
|
|
5312
5302
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
5313
|
-
this.
|
|
5303
|
+
this.cdr.detectChanges();
|
|
5314
5304
|
});
|
|
5315
|
-
this.setMessages();
|
|
5316
5305
|
this.assignAriaDescribedBy();
|
|
5317
5306
|
this.setComponentClasses();
|
|
5318
5307
|
}
|
|
@@ -5336,7 +5325,6 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
5336
5325
|
ngOnDestroy() {
|
|
5337
5326
|
this.destroyPopup();
|
|
5338
5327
|
this.unsubscribeEvents();
|
|
5339
|
-
clearTimeout(this.messagesTimeout);
|
|
5340
5328
|
if (this.localizationChangesSubscription) {
|
|
5341
5329
|
this.localizationChangesSubscription.unsubscribe();
|
|
5342
5330
|
}
|
|
@@ -5457,6 +5445,12 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
5457
5445
|
reset() {
|
|
5458
5446
|
this.value = undefined;
|
|
5459
5447
|
}
|
|
5448
|
+
/**
|
|
5449
|
+
* @hidden
|
|
5450
|
+
*/
|
|
5451
|
+
messageFor(key) {
|
|
5452
|
+
return this.localization.get(key);
|
|
5453
|
+
}
|
|
5460
5454
|
/**
|
|
5461
5455
|
* @hidden
|
|
5462
5456
|
*/
|
|
@@ -5951,15 +5945,6 @@ let DropDownListComponent = DropDownListComponent_1 = class DropDownListComponen
|
|
|
5951
5945
|
const virtual = this.virtual;
|
|
5952
5946
|
virtual.skip = event.skip;
|
|
5953
5947
|
}
|
|
5954
|
-
setMessages() {
|
|
5955
|
-
this._zone.runOutsideAngular(() => {
|
|
5956
|
-
clearTimeout(this.messagesTimeout);
|
|
5957
|
-
this.messagesTimeout = setTimeout(() => {
|
|
5958
|
-
this.noDataText = this.localization.get('noDataText');
|
|
5959
|
-
this.cdr.detectChanges();
|
|
5960
|
-
});
|
|
5961
|
-
});
|
|
5962
|
-
}
|
|
5963
5948
|
assignAriaDescribedBy() {
|
|
5964
5949
|
const currentValue = this.wrapper.nativeElement.getAttribute('aria-describedby') || '';
|
|
5965
5950
|
const trimmed = currentValue.replace(this.valueLabelId, '').trim();
|
|
@@ -6261,9 +6246,12 @@ DropDownListComponent = DropDownListComponent_1 = __decorate([
|
|
|
6261
6246
|
<ng-container kendoDropDownListLocalizedMessages
|
|
6262
6247
|
i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
|
|
6263
6248
|
noDataText="NO DATA FOUND"
|
|
6249
|
+
|
|
6250
|
+
i18n-selectButtonText="kendo.dropdownlist.selectButtonText|The text set as aria-label on the select button"
|
|
6251
|
+
selectButtonText="Select"
|
|
6264
6252
|
>
|
|
6265
6253
|
</ng-container>
|
|
6266
|
-
<span class="k-input-inner" unselectable="on" [id]="valueLabelId">
|
|
6254
|
+
<span class="k-input-inner" unselectable="on" role="option" [id]="valueLabelId">
|
|
6267
6255
|
<span class="k-input-value-text">
|
|
6268
6256
|
<ng-template *ngIf="valueTemplate"
|
|
6269
6257
|
[templateContext]="{
|
|
@@ -6280,6 +6268,7 @@ DropDownListComponent = DropDownListComponent_1 = __decorate([
|
|
|
6280
6268
|
type="button"
|
|
6281
6269
|
class="k-input-button k-button k-icon-button"
|
|
6282
6270
|
[ngClass]="selectButtonClasses"
|
|
6271
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
6283
6272
|
[kendoEventsOutsideAngular]="{
|
|
6284
6273
|
mousedown: onMouseDown
|
|
6285
6274
|
}"
|
|
@@ -6322,7 +6311,7 @@ DropDownListComponent = DropDownListComponent_1 = __decorate([
|
|
|
6322
6311
|
class="k-list"
|
|
6323
6312
|
[ngClass]="optionLabelSizeClass"
|
|
6324
6313
|
>
|
|
6325
|
-
<div class="k-list-optionlabel
|
|
6314
|
+
<div class="k-list-optionlabel" [ngClass]="{ 'k-disabled': isDisabledDefaultItem }" kendoDropDownsSelectable [index]="-1">
|
|
6326
6315
|
{{ getDefaultItemText() }}
|
|
6327
6316
|
</div>
|
|
6328
6317
|
</div>
|
|
@@ -6332,7 +6321,7 @@ DropDownListComponent = DropDownListComponent_1 = __decorate([
|
|
|
6332
6321
|
class="k-list"
|
|
6333
6322
|
[ngClass]="optionLabelSizeClass"
|
|
6334
6323
|
>
|
|
6335
|
-
<div class="k-list-optionlabel
|
|
6324
|
+
<div class="k-list-optionlabel" [ngClass]="{ 'k-disabled': isDisabledDefaultItem }" kendoDropDownsSelectable [index]="-1">
|
|
6336
6325
|
<ng-template
|
|
6337
6326
|
[templateContext]="{
|
|
6338
6327
|
templateRef: itemTemplate.templateRef,
|
|
@@ -6375,7 +6364,7 @@ DropDownListComponent = DropDownListComponent_1 = __decorate([
|
|
|
6375
6364
|
}">
|
|
6376
6365
|
</ng-template>
|
|
6377
6366
|
<ng-template [ngIf]="!noDataTemplate">
|
|
6378
|
-
<div>{{ noDataText }}</div>
|
|
6367
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
6379
6368
|
</ng-template>
|
|
6380
6369
|
</div>
|
|
6381
6370
|
<!--footer template-->
|
|
@@ -6627,7 +6616,8 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
6627
6616
|
*/
|
|
6628
6617
|
this.clearButton = true;
|
|
6629
6618
|
/**
|
|
6630
|
-
* A user-defined callback function which receives an array of selected data items and maps them to an array of tags
|
|
6619
|
+
* A user-defined callback function which receives an array of selected data items and maps them to an array of tags
|
|
6620
|
+
* ([see examples]({% slug summarytagmode_multiselect %}#toc-rendering-of-tags)).
|
|
6631
6621
|
*
|
|
6632
6622
|
* @param { Any[] } dataItems - The selected data items from the list.
|
|
6633
6623
|
* @returns { Any[] } - The tags that will be rendered by the component.
|
|
@@ -6742,6 +6732,7 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
6742
6732
|
*/
|
|
6743
6733
|
this.removeTag = new EventEmitter();
|
|
6744
6734
|
this.hostClasses = true;
|
|
6735
|
+
this.role = 'combobox';
|
|
6745
6736
|
this.initialized = false;
|
|
6746
6737
|
this._size = 'medium';
|
|
6747
6738
|
this._rounded = 'medium';
|
|
@@ -7051,6 +7042,9 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
7051
7042
|
get isLoading() {
|
|
7052
7043
|
return this.loading;
|
|
7053
7044
|
}
|
|
7045
|
+
get isAriaExpanded() {
|
|
7046
|
+
return this.isOpen;
|
|
7047
|
+
}
|
|
7054
7048
|
/**
|
|
7055
7049
|
* @hidden
|
|
7056
7050
|
*/
|
|
@@ -7114,12 +7108,9 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
7114
7108
|
}
|
|
7115
7109
|
get noDataLabel() {
|
|
7116
7110
|
if (this.dataService.itemsCount === 0) {
|
|
7117
|
-
return this.noDataText;
|
|
7111
|
+
return this.messageFor('noDataText');
|
|
7118
7112
|
}
|
|
7119
7113
|
}
|
|
7120
|
-
get clearTitle() {
|
|
7121
|
-
return this.localization.get('clearTitle');
|
|
7122
|
-
}
|
|
7123
7114
|
get clearButtonVisiblity() {
|
|
7124
7115
|
if (this.touchEnabled) {
|
|
7125
7116
|
return 'visible';
|
|
@@ -7329,9 +7320,8 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
7329
7320
|
this.localizationChangeSubscription = this.localization
|
|
7330
7321
|
.changes.subscribe(({ rtl }) => {
|
|
7331
7322
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
7332
|
-
this.
|
|
7323
|
+
this.cdr.markForCheck();
|
|
7333
7324
|
});
|
|
7334
|
-
this.setMessages();
|
|
7335
7325
|
this.setState(this.value);
|
|
7336
7326
|
this.setComponentClasses();
|
|
7337
7327
|
this.initialized = true;
|
|
@@ -7355,7 +7345,6 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
7355
7345
|
ngOnDestroy() {
|
|
7356
7346
|
this._toggle(false);
|
|
7357
7347
|
this.unsubscribeEvents();
|
|
7358
|
-
clearTimeout(this.messagesTimeout);
|
|
7359
7348
|
}
|
|
7360
7349
|
/**
|
|
7361
7350
|
* Toggles the visibility of the popup
|
|
@@ -7388,6 +7377,12 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
7388
7377
|
this.text = "";
|
|
7389
7378
|
this.value = [];
|
|
7390
7379
|
}
|
|
7380
|
+
/**
|
|
7381
|
+
* @hidden
|
|
7382
|
+
*/
|
|
7383
|
+
messageFor(key) {
|
|
7384
|
+
return this.localization.get(key);
|
|
7385
|
+
}
|
|
7391
7386
|
// NG MODEL BINDINGS
|
|
7392
7387
|
/**
|
|
7393
7388
|
* @hidden
|
|
@@ -7816,15 +7811,6 @@ let MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {
|
|
|
7816
7811
|
setTimeout(() => this._zone.run(f));
|
|
7817
7812
|
});
|
|
7818
7813
|
}
|
|
7819
|
-
setMessages() {
|
|
7820
|
-
this._zone.runOutsideAngular(() => {
|
|
7821
|
-
clearTimeout(this.messagesTimeout);
|
|
7822
|
-
this.messagesTimeout = setTimeout(() => {
|
|
7823
|
-
this.noDataText = this.localization.get('noDataText');
|
|
7824
|
-
this.cdr.detectChanges();
|
|
7825
|
-
});
|
|
7826
|
-
});
|
|
7827
|
-
}
|
|
7828
7814
|
setComponentClasses() {
|
|
7829
7815
|
if (this.size) {
|
|
7830
7816
|
this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
|
|
@@ -8061,6 +8047,15 @@ __decorate([
|
|
|
8061
8047
|
__metadata("design:type", Boolean),
|
|
8062
8048
|
__metadata("design:paramtypes", [])
|
|
8063
8049
|
], MultiSelectComponent.prototype, "isLoading", null);
|
|
8050
|
+
__decorate([
|
|
8051
|
+
HostBinding('attr.role'),
|
|
8052
|
+
__metadata("design:type", String)
|
|
8053
|
+
], MultiSelectComponent.prototype, "role", void 0);
|
|
8054
|
+
__decorate([
|
|
8055
|
+
HostBinding('attr.aria-expanded'),
|
|
8056
|
+
__metadata("design:type", Boolean),
|
|
8057
|
+
__metadata("design:paramtypes", [])
|
|
8058
|
+
], MultiSelectComponent.prototype, "isAriaExpanded", null);
|
|
8064
8059
|
__decorate([
|
|
8065
8060
|
HostListener('mousedown', ['$event']),
|
|
8066
8061
|
__metadata("design:type", Function),
|
|
@@ -8094,7 +8089,7 @@ MultiSelectComponent = MultiSelectComponent_1 = __decorate([
|
|
|
8094
8089
|
i18n-noDataText="kendo.multiselect.noDataText|The text displayed in the popup when there are no items"
|
|
8095
8090
|
noDataText="NO DATA FOUND"
|
|
8096
8091
|
|
|
8097
|
-
i18n-clearTitle="kendo.
|
|
8092
|
+
i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
|
|
8098
8093
|
clearTitle="clear"
|
|
8099
8094
|
>
|
|
8100
8095
|
</ng-container>
|
|
@@ -8117,7 +8112,7 @@ MultiSelectComponent = MultiSelectComponent_1 = __decorate([
|
|
|
8117
8112
|
<kendo-searchbar
|
|
8118
8113
|
#searchbar
|
|
8119
8114
|
[id]="focusableId"
|
|
8120
|
-
[role]="'
|
|
8115
|
+
[role]="'textbox'"
|
|
8121
8116
|
[tagListId]="tagListId"
|
|
8122
8117
|
[activeDescendant]="activeDescendant"
|
|
8123
8118
|
[noDataLabel]="noDataLabel"
|
|
@@ -8139,7 +8134,7 @@ MultiSelectComponent = MultiSelectComponent_1 = __decorate([
|
|
|
8139
8134
|
*ngIf="!loading && !readonly && clearButton && (tags?.length || text?.length)"
|
|
8140
8135
|
class="k-clear-value"
|
|
8141
8136
|
[style.visibility]="clearButtonVisiblity"
|
|
8142
|
-
[attr.title]="clearTitle"
|
|
8137
|
+
[attr.title]="messageFor('clearTitle')"
|
|
8143
8138
|
role="button"
|
|
8144
8139
|
tabindex="-1"
|
|
8145
8140
|
(mousedown)="clearAll($event)"
|
|
@@ -8204,7 +8199,7 @@ MultiSelectComponent = MultiSelectComponent_1 = __decorate([
|
|
|
8204
8199
|
}">
|
|
8205
8200
|
</ng-template>
|
|
8206
8201
|
<ng-template [ngIf]="!noDataTemplate">
|
|
8207
|
-
<div>{{ noDataText }}</div>
|
|
8202
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
8208
8203
|
</ng-template>
|
|
8209
8204
|
</div>
|
|
8210
8205
|
<!--footer template-->
|
|
@@ -8602,7 +8597,7 @@ MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = __decorate([
|
|
|
8602
8597
|
class="k-clear-value"
|
|
8603
8598
|
[style.visibility]="clearButtonVisiblity"
|
|
8604
8599
|
aria-hidden="true"
|
|
8605
|
-
[attr.title]="clearTitle"
|
|
8600
|
+
[attr.title]="messageFor('clearTitle')"
|
|
8606
8601
|
(click)="clearValue($event)"
|
|
8607
8602
|
[kendoEventsOutsideAngular]="{
|
|
8608
8603
|
mousedown: preventEventDefault
|
|
@@ -8619,6 +8614,7 @@ MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = __decorate([
|
|
|
8619
8614
|
type="button"
|
|
8620
8615
|
class="k-input-button k-button k-icon-button"
|
|
8621
8616
|
[ngClass]="selectButtonClasses"
|
|
8617
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
8622
8618
|
[kendoEventsOutsideAngular]="{
|
|
8623
8619
|
mousedown: preventEventDefault
|
|
8624
8620
|
}"
|
|
@@ -8743,7 +8739,7 @@ MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = __decorate([
|
|
|
8743
8739
|
>
|
|
8744
8740
|
</ng-template>
|
|
8745
8741
|
<ng-template [ngIf]="!noDataTemplate">
|
|
8746
|
-
<div>{{ noDataText }}</div>
|
|
8742
|
+
<div>{{ messageFor('noDataText') }}</div>
|
|
8747
8743
|
</ng-template>
|
|
8748
8744
|
</div>
|
|
8749
8745
|
|
|
@@ -10032,11 +10028,15 @@ DropDownTreeComponent = DropDownTreeComponent_1 = __decorate([
|
|
|
10032
10028
|
|
|
10033
10029
|
i18n-clearTitle="kendo.dropdowntree.clearTitle|The title of the clear button"
|
|
10034
10030
|
clearTitle="clear"
|
|
10031
|
+
|
|
10032
|
+
i18n-selectButtonText="kendo.dropdowntree.selectButtonText|The text set as aria-label on the select button"
|
|
10033
|
+
selectButtonText="Select"
|
|
10035
10034
|
>
|
|
10036
10035
|
</ng-container>
|
|
10037
10036
|
<span
|
|
10038
10037
|
[attr.id]="valueLabelId"
|
|
10039
10038
|
class="k-input-inner"
|
|
10039
|
+
role="option"
|
|
10040
10040
|
>
|
|
10041
10041
|
<span class="k-input-value-text">
|
|
10042
10042
|
<ng-template *ngIf="valueTemplate"
|
|
@@ -10064,6 +10064,7 @@ DropDownTreeComponent = DropDownTreeComponent_1 = __decorate([
|
|
|
10064
10064
|
aria-hidden="true"
|
|
10065
10065
|
class="k-input-button k-button k-icon-button"
|
|
10066
10066
|
[ngClass]="selectButtonClasses"
|
|
10067
|
+
[attr.aria-label]="messageFor('selectButtonText')"
|
|
10067
10068
|
>
|
|
10068
10069
|
<span
|
|
10069
10070
|
class="k-button-icon k-icon"
|
|
@@ -10191,7 +10192,7 @@ let MultiSelectTreeComponent = MultiSelectTreeComponent_1 = class MultiSelectTre
|
|
|
10191
10192
|
this.cdr = cdr;
|
|
10192
10193
|
this.touchEnabled = touchEnabled$$1;
|
|
10193
10194
|
this.hostClasses = true;
|
|
10194
|
-
this.role = '
|
|
10195
|
+
this.role = 'combobox';
|
|
10195
10196
|
this.ariaHasPopup = 'tree';
|
|
10196
10197
|
/**
|
|
10197
10198
|
* Sets the levels in the data set where the values can be found when `valueField` is an Array.
|
|
@@ -10378,6 +10379,9 @@ let MultiSelectTreeComponent = MultiSelectTreeComponent_1 = class MultiSelectTre
|
|
|
10378
10379
|
get hostTabIndex() {
|
|
10379
10380
|
return this.tabindex;
|
|
10380
10381
|
}
|
|
10382
|
+
get isAriaExpanded() {
|
|
10383
|
+
return this.isOpen;
|
|
10384
|
+
}
|
|
10381
10385
|
get isReadonly() {
|
|
10382
10386
|
return this.readonly;
|
|
10383
10387
|
}
|
|
@@ -11345,6 +11349,11 @@ __decorate([
|
|
|
11345
11349
|
HostBinding('attr.role'),
|
|
11346
11350
|
__metadata("design:type", String)
|
|
11347
11351
|
], MultiSelectTreeComponent.prototype, "role", void 0);
|
|
11352
|
+
__decorate([
|
|
11353
|
+
HostBinding('attr.aria-expanded'),
|
|
11354
|
+
__metadata("design:type", Boolean),
|
|
11355
|
+
__metadata("design:paramtypes", [])
|
|
11356
|
+
], MultiSelectTreeComponent.prototype, "isAriaExpanded", null);
|
|
11348
11357
|
__decorate([
|
|
11349
11358
|
HostBinding('attr.aria-haspopup'),
|
|
11350
11359
|
__metadata("design:type", String)
|
|
@@ -12082,11 +12091,8 @@ TagListComponent = __decorate([
|
|
|
12082
12091
|
template: `
|
|
12083
12092
|
<div
|
|
12084
12093
|
*ngFor="let tag of tags; let index = index;"
|
|
12085
|
-
role="option"
|
|
12086
12094
|
[attr.id]="itemId(tag, index)"
|
|
12087
12095
|
[attr.aria-hidden]="tagAriaHidden(index)"
|
|
12088
|
-
aria-selected="true"
|
|
12089
|
-
[attr.aria-setsize]="tags?.length"
|
|
12090
12096
|
class="k-chip"
|
|
12091
12097
|
[ngClass]="{
|
|
12092
12098
|
'k-focus': index === focused,
|
|
@@ -12160,6 +12166,10 @@ __decorate([
|
|
|
12160
12166
|
Input(),
|
|
12161
12167
|
__metadata("design:type", String)
|
|
12162
12168
|
], Messages.prototype, "checkAllText", void 0);
|
|
12169
|
+
__decorate([
|
|
12170
|
+
Input(),
|
|
12171
|
+
__metadata("design:type", String)
|
|
12172
|
+
], Messages.prototype, "selectButtonText", void 0);
|
|
12163
12173
|
|
|
12164
12174
|
var LocalizedMessagesDirective_1;
|
|
12165
12175
|
/**
|
|
@@ -12528,7 +12538,7 @@ class BaseCheckDirective {
|
|
|
12528
12538
|
const level = getHierarchicalItemLevel(item.index);
|
|
12529
12539
|
const candidate = Object.assign({}, item, { level });
|
|
12530
12540
|
this.checkedItems.push(candidate);
|
|
12531
|
-
this.checkedKeys.add(
|
|
12541
|
+
this.checkedKeys.add(this.getKey(candidate));
|
|
12532
12542
|
}
|
|
12533
12543
|
removeItem(item) {
|
|
12534
12544
|
if (!this.isItemChecked(item)) {
|
|
@@ -12538,14 +12548,28 @@ class BaseCheckDirective {
|
|
|
12538
12548
|
const candidate = Object.assign({}, item, { level });
|
|
12539
12549
|
this.checkedItems = this.checkedItems
|
|
12540
12550
|
.filter(item => valueFrom(item, this.valueField) !== valueFrom(candidate, this.valueField));
|
|
12541
|
-
this.checkedKeys.delete(
|
|
12551
|
+
this.checkedKeys.delete(this.getKey(candidate));
|
|
12542
12552
|
}
|
|
12543
12553
|
isItemChecked(item) {
|
|
12544
|
-
|
|
12554
|
+
const level = item.index.split('_').length - 1;
|
|
12555
|
+
item.level = level;
|
|
12556
|
+
return this.checkedKeys.has(this.getKey(item));
|
|
12545
12557
|
}
|
|
12546
12558
|
updateItems() {
|
|
12547
12559
|
this.checkedItems = this.checkedItems || [];
|
|
12548
|
-
this.checkedKeys = new Set(this.checkedItems.map(item =>
|
|
12560
|
+
this.checkedKeys = new Set(this.checkedItems.map(item => this.getKey(item)));
|
|
12561
|
+
}
|
|
12562
|
+
/**
|
|
12563
|
+
* Adds the item's depth to the item's value to allow duplicate values on different levels.
|
|
12564
|
+
*
|
|
12565
|
+
* @param item - The checked key.
|
|
12566
|
+
* @returns { string } - A string key consisting of the item's `valueField` value and its depth.
|
|
12567
|
+
*/
|
|
12568
|
+
getKey(item) {
|
|
12569
|
+
if (isArray(this.valueField)) {
|
|
12570
|
+
return valueFrom(item, this.valueField) + '_' + item.level;
|
|
12571
|
+
}
|
|
12572
|
+
return valueFrom(item, this.valueField);
|
|
12549
12573
|
}
|
|
12550
12574
|
}
|
|
12551
12575
|
__decorate([
|