@progress/kendo-angular-dropdowns 25.0.0-develop.7 → 25.0.0

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.
@@ -5,7 +5,7 @@
5
5
  import * as i0 from '@angular/core';
6
6
  import { EventEmitter, Output, HostBinding, Input, Component, Directive, Injectable, HostListener, afterNextRender, ViewChild, ViewChildren, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, signal, ChangeDetectionStrategy, NgModule } from '@angular/core';
7
7
  import * as i10 from '@progress/kendo-angular-common';
8
- import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, normalizeKeys, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, hasFocusableParent, parseCSSClassNames, isControlRequired, guid, hasObservers, SeparatorComponent, SuffixTemplateDirective, PrefixTemplateDirective, KendoInput, KENDO_WEBMCP_HOST, MultiTabStop, anyChanged, EventsOutsideAngularDirective, scrollbarWidth, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
8
+ import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, normalizeKeys, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, hasFocusableParent, parseCSSClassNames, isControlRequired, guid, hasObservers, SeparatorComponent, SuffixTemplateDirective, PrefixTemplateDirective, KendoInput, KENDO_WEBMCP_HOST, provideComponentName, MultiTabStop, anyChanged, EventsOutsideAngularDirective, scrollbarWidth, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
9
9
  export { PrefixTemplateDirective, SeparatorComponent, SuffixTemplateDirective, ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
10
10
  import * as i7 from '@progress/kendo-angular-utils';
11
11
  import { AdaptiveService } from '@progress/kendo-angular-utils';
@@ -20,10 +20,10 @@ import { map, switchMap, take, auditTime, tap, filter, partition, throttleTime,
20
20
  import * as i2 from '@progress/kendo-angular-popup';
21
21
  import { PopupService } from '@progress/kendo-angular-popup';
22
22
  import { NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
23
- import { checkIcon, xIcon, chevronDownIcon, searchIcon, xCircleIcon } from '@progress/kendo-svg-icons';
24
- import { IconComponent, IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
23
+ import { CheckBoxComponent, TextBoxComponent, TextBoxPrefixTemplateDirective } from '@progress/kendo-angular-inputs';
24
+ import { checkIcon, searchIcon, xIcon, chevronDownIcon, xCircleIcon } from '@progress/kendo-svg-icons';
25
+ import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
25
26
  import { ActionSheetComponent, ActionSheetTemplateDirective } from '@progress/kendo-angular-navigation';
26
- import { TextBoxComponent, TextBoxPrefixTemplateDirective } from '@progress/kendo-angular-inputs';
27
27
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
28
28
  import * as i1$1 from '@progress/kendo-angular-treeview';
29
29
  import { TreeViewComponent, SelectDirective, DataBoundComponent, ExpandableComponent, FlatDataBindingDirective, HierarchyBindingDirective, ExpandDirective } from '@progress/kendo-angular-treeview';
@@ -37,8 +37,8 @@ const packageMetadata = {
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCode: 'KENDOUIANGULAR',
39
39
  productCodes: ['KENDOUIANGULAR'],
40
- publishDate: 1784618821,
41
- version: '25.0.0-develop.7',
40
+ publishDate: 1786525923,
41
+ version: '25.0.0',
42
42
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
43
43
  };
44
44
 
@@ -477,12 +477,12 @@ class SearchBarComponent {
477
477
  get isSuggestable() {
478
478
  return this._isSuggestable;
479
479
  }
480
- set isFilterable(isFilterable) {
481
- this._isFilterable = isFilterable;
480
+ set hasListAutocomplete(hasListAutocomplete) {
481
+ this._hasListAutocomplete = hasListAutocomplete;
482
482
  this.setAriaAutocomplete();
483
483
  }
484
- get isFilterable() {
485
- return this._isFilterable;
484
+ get hasListAutocomplete() {
485
+ return this._hasListAutocomplete;
486
486
  }
487
487
  get userInput() {
488
488
  return this._userInput;
@@ -521,7 +521,7 @@ class SearchBarComponent {
521
521
  ariaControls;
522
522
  ariaExpanded = null;
523
523
  get attrAriaInvalid() {
524
- return this.formControl?.invalid ? true : null;
524
+ return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
525
525
  }
526
526
  set placeholder(text) {
527
527
  this._placeholder = text || '';
@@ -549,7 +549,7 @@ class SearchBarComponent {
549
549
  _previousValue = "";
550
550
  _placeholder = "";
551
551
  _isSuggestable = false;
552
- _isFilterable = false;
552
+ _hasListAutocomplete = false;
553
553
  renderer;
554
554
  subs = new Subscription();
555
555
  _inputAttributes;
@@ -569,7 +569,7 @@ class SearchBarComponent {
569
569
  'aria-controls': this.ariaControls,
570
570
  'aria-activedescendant': this.activeDescendant,
571
571
  'aria-busy': this.isLoading,
572
- 'aria-invalid': this.formControl?.invalid
572
+ 'aria-invalid': this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)
573
573
  };
574
574
  }
575
575
  get mutableAttributes() {
@@ -618,7 +618,7 @@ class SearchBarComponent {
618
618
  this.setInputSelection(this.userInput.length, this.suggestedText.length);
619
619
  }
620
620
  else if (isSafari(navigator.userAgent) && !caretAtEnd) {
621
- this.setInputSelection(caretStart, this.userInput.length);
621
+ this.setInputSelection(caretStart, caretStart);
622
622
  }
623
623
  else if (caretAtEnd) {
624
624
  this.setInputSelection(this.userInput.length, this.userInput.length);
@@ -654,16 +654,16 @@ class SearchBarComponent {
654
654
  }
655
655
  }
656
656
  setAriaAutocomplete() {
657
- if (this.isFilterable) {
657
+ if (this.hasListAutocomplete) {
658
658
  this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'list');
659
659
  }
660
660
  if (this.isSuggestable) {
661
661
  this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'inline');
662
662
  }
663
- if (this.isFilterable && this.isSuggestable) {
663
+ if (this.hasListAutocomplete && this.isSuggestable) {
664
664
  this.renderer.setAttribute(this.input.nativeElement, 'aria-autocomplete', 'both');
665
665
  }
666
- if (!this.isFilterable && !this.isSuggestable) {
666
+ if (!this.hasListAutocomplete && !this.isSuggestable) {
667
667
  this.renderer.removeAttribute(this.input.nativeElement, 'aria-autocomplete');
668
668
  }
669
669
  }
@@ -715,10 +715,10 @@ class SearchBarComponent {
715
715
  const attributesToRender = Object.assign({}, this.mutableAttributes, this.parsedAttributes);
716
716
  setHTMLAttributes(attributesToRender, this.renderer, this.input.nativeElement, this.injector);
717
717
  }
718
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
719
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: SearchBarComponent, isStandalone: true, selector: "input[kendoSearchbar]", inputs: { tagListId: "tagListId", readonly: "readonly", disabled: "disabled", isRequired: "isRequired", isSuggestable: "isSuggestable", isFilterable: "isFilterable", userInput: "userInput", suggestedText: "suggestedText", inputAttributes: "inputAttributes", id: "id", activeDescendant: "activeDescendant", tabIndex: "tabIndex", isLoading: "isLoading", ariaControls: "ariaControls", ariaExpanded: "ariaExpanded", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "attr.id": "this.id", "attr.aria-activedescendant": "this.activeDescendant", "attr.tabindex": "this.tabIndex", "attr.aria-busy": "this.isLoading", "attr.aria-controls": "this.ariaControls", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-invalid": "this.attrAriaInvalid", "attr.placeholder": "this.placeholder", "attr.role": "this.role", "attr.dir": "this.dir" } }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
718
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SearchBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
719
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: SearchBarComponent, isStandalone: true, selector: "input[kendoSearchbar]", inputs: { tagListId: "tagListId", readonly: "readonly", disabled: "disabled", isRequired: "isRequired", isSuggestable: "isSuggestable", hasListAutocomplete: "hasListAutocomplete", userInput: "userInput", suggestedText: "suggestedText", inputAttributes: "inputAttributes", id: "id", activeDescendant: "activeDescendant", tabIndex: "tabIndex", isLoading: "isLoading", ariaControls: "ariaControls", ariaExpanded: "ariaExpanded", placeholder: "placeholder" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", onNavigate: "onNavigate" }, host: { properties: { "attr.id": "this.id", "attr.aria-activedescendant": "this.activeDescendant", "attr.tabindex": "this.tabIndex", "attr.aria-busy": "this.isLoading", "attr.aria-controls": "this.ariaControls", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-invalid": "this.attrAriaInvalid", "attr.placeholder": "this.placeholder", "attr.role": "this.role", "attr.dir": "this.dir" } }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
720
720
  }
721
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SearchBarComponent, decorators: [{
721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SearchBarComponent, decorators: [{
722
722
  type: Component,
723
723
  args: [{
724
724
  selector: 'input[kendoSearchbar]',
@@ -735,7 +735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
735
735
  type: Input
736
736
  }], isSuggestable: [{
737
737
  type: Input
738
- }], isFilterable: [{
738
+ }], hasListAutocomplete: [{
739
739
  type: Input
740
740
  }], userInput: [{
741
741
  type: Input
@@ -831,10 +831,10 @@ class ItemTemplateDirective {
831
831
  constructor(templateRef) {
832
832
  this.templateRef = templateRef;
833
833
  }
834
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
835
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]", ngImport: i0 });
834
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
835
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: ItemTemplateDirective, isStandalone: true, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]", ngImport: i0 });
836
836
  }
837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ItemTemplateDirective, decorators: [{
837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ItemTemplateDirective, decorators: [{
838
838
  type: Directive,
839
839
  args: [{
840
840
  selector: '[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]',
@@ -875,10 +875,10 @@ class HeaderTemplateDirective {
875
875
  constructor(templateRef) {
876
876
  this.templateRef = templateRef;
877
877
  }
878
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
879
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]", ngImport: i0 });
878
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: HeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
879
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: HeaderTemplateDirective, isStandalone: true, selector: "[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]", ngImport: i0 });
880
880
  }
881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: HeaderTemplateDirective, decorators: [{
882
882
  type: Directive,
883
883
  args: [{
884
884
  selector: '[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]',
@@ -919,10 +919,10 @@ class FooterTemplateDirective {
919
919
  constructor(templateRef) {
920
920
  this.templateRef = templateRef;
921
921
  }
922
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
923
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]", ngImport: i0 });
922
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FooterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
923
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: FooterTemplateDirective, isStandalone: true, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]", ngImport: i0 });
924
924
  }
925
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FooterTemplateDirective, decorators: [{
925
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FooterTemplateDirective, decorators: [{
926
926
  type: Directive,
927
927
  args: [{
928
928
  selector: '[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]',
@@ -969,10 +969,10 @@ class GroupTemplateDirective {
969
969
  constructor(templateRef) {
970
970
  this.templateRef = templateRef;
971
971
  }
972
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
973
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: GroupTemplateDirective, isStandalone: true, selector: "[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoMultiColumnComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]", ngImport: i0 });
972
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: GroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
973
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: GroupTemplateDirective, isStandalone: true, selector: "[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoMultiColumnComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]", ngImport: i0 });
974
974
  }
975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GroupTemplateDirective, decorators: [{
975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: GroupTemplateDirective, decorators: [{
976
976
  type: Directive,
977
977
  args: [{
978
978
  selector: '[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoMultiColumnComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]',
@@ -1019,10 +1019,10 @@ class FixedGroupTemplateDirective {
1019
1019
  constructor(templateRef) {
1020
1020
  this.templateRef = templateRef;
1021
1021
  }
1022
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FixedGroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1023
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: FixedGroupTemplateDirective, isStandalone: true, selector: "[kendoDropDownListFixedGroupTemplate],[kendoComboBoxFixedGroupTemplate],[kendoMultiColumnComboBoxFixedGroupTemplate],[kendoAutoCompleteFixedGroupTemplate],[kendoMultiSelectFixedGroupTemplate]", ngImport: i0 });
1022
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FixedGroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1023
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: FixedGroupTemplateDirective, isStandalone: true, selector: "[kendoDropDownListFixedGroupTemplate],[kendoComboBoxFixedGroupTemplate],[kendoMultiColumnComboBoxFixedGroupTemplate],[kendoAutoCompleteFixedGroupTemplate],[kendoMultiSelectFixedGroupTemplate]", ngImport: i0 });
1024
1024
  }
1025
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FixedGroupTemplateDirective, decorators: [{
1025
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FixedGroupTemplateDirective, decorators: [{
1026
1026
  type: Directive,
1027
1027
  args: [{
1028
1028
  selector: '[kendoDropDownListFixedGroupTemplate],[kendoComboBoxFixedGroupTemplate],[kendoMultiColumnComboBoxFixedGroupTemplate],[kendoAutoCompleteFixedGroupTemplate],[kendoMultiSelectFixedGroupTemplate]',
@@ -1265,10 +1265,10 @@ class DataService {
1265
1265
  }
1266
1266
  return flat;
1267
1267
  }
1268
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1269
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataService });
1268
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1269
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DataService });
1270
1270
  }
1271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DataService, decorators: [{
1271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DataService, decorators: [{
1272
1272
  type: Injectable
1273
1273
  }] });
1274
1274
 
@@ -1304,10 +1304,10 @@ class DisabledItemsService {
1304
1304
  }
1305
1305
  }
1306
1306
  }
1307
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DisabledItemsService, deps: [{ token: DataService }], target: i0.ɵɵFactoryTarget.Injectable });
1308
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DisabledItemsService });
1307
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DisabledItemsService, deps: [{ token: DataService }], target: i0.ɵɵFactoryTarget.Injectable });
1308
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DisabledItemsService });
1309
1309
  }
1310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DisabledItemsService, decorators: [{
1310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DisabledItemsService, decorators: [{
1311
1311
  type: Injectable
1312
1312
  }], ctorParameters: () => [{ type: DataService }] });
1313
1313
 
@@ -1462,10 +1462,10 @@ class SelectionService {
1462
1462
  }
1463
1463
  this.unselectMultiple(indicesToBeUnselected);
1464
1464
  }
1465
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectionService, deps: [{ token: DisabledItemsService }], target: i0.ɵɵFactoryTarget.Injectable });
1466
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectionService });
1465
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SelectionService, deps: [{ token: DisabledItemsService }], target: i0.ɵɵFactoryTarget.Injectable });
1466
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SelectionService });
1467
1467
  }
1468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectionService, decorators: [{
1468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SelectionService, decorators: [{
1469
1469
  type: Injectable
1470
1470
  }], ctorParameters: () => [{ type: DisabledItemsService }] });
1471
1471
 
@@ -1666,10 +1666,10 @@ class NavigationService {
1666
1666
  return this.disabledItemsService.isIndexDisabled(index);
1667
1667
  }
1668
1668
  }
1669
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NavigationService, deps: [{ token: DisabledItemsService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Injectable });
1670
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NavigationService });
1669
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NavigationService, deps: [{ token: DisabledItemsService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Injectable });
1670
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NavigationService });
1671
1671
  }
1672
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NavigationService, decorators: [{
1672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NavigationService, decorators: [{
1673
1673
  type: Injectable
1674
1674
  }], ctorParameters: () => [{ type: DisabledItemsService }, { type: SelectionService }] });
1675
1675
 
@@ -1706,10 +1706,10 @@ class NoDataTemplateDirective {
1706
1706
  constructor(templateRef) {
1707
1707
  this.templateRef = templateRef;
1708
1708
  }
1709
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NoDataTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1710
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: NoDataTemplateDirective, isStandalone: true, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]", ngImport: i0 });
1709
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NoDataTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1710
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NoDataTemplateDirective, isStandalone: true, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]", ngImport: i0 });
1711
1711
  }
1712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NoDataTemplateDirective, decorators: [{
1712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NoDataTemplateDirective, decorators: [{
1713
1713
  type: Directive,
1714
1714
  args: [{
1715
1715
  selector: '[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]',
@@ -1778,10 +1778,10 @@ class ListItemDirective {
1778
1778
  constructor(element) {
1779
1779
  this.element = element;
1780
1780
  }
1781
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1782
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ListItemDirective, isStandalone: true, selector: "\"li[role=option], li[role=group], li[role=presentation]\"", ngImport: i0 });
1781
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ListItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1782
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: ListItemDirective, isStandalone: true, selector: "\"li[role=option], li[role=group], li[role=presentation]\"", ngImport: i0 });
1783
1783
  }
1784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListItemDirective, decorators: [{
1784
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ListItemDirective, decorators: [{
1785
1785
  type: Directive,
1786
1786
  args: [{
1787
1787
  selector: '"li[role=option], li[role=group], li[role=presentation]"',
@@ -1814,6 +1814,9 @@ class SelectableDirective {
1814
1814
  if (this.checkboxes.enabled && !this.checkboxes.checkOnClick) {
1815
1815
  return;
1816
1816
  }
1817
+ if (this.index === -2) {
1818
+ return;
1819
+ }
1817
1820
  if (this.multipleSelection) {
1818
1821
  if (this.selectionService.isSelected(this.index)) {
1819
1822
  this.selectionService.deselect(this.index);
@@ -1826,10 +1829,10 @@ class SelectableDirective {
1826
1829
  this.selectionService.change(this.index);
1827
1830
  }
1828
1831
  }
1829
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectableDirective, deps: [{ token: SelectionService }], target: i0.ɵɵFactoryTarget.Directive });
1830
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: SelectableDirective, isStandalone: true, selector: "[kendoDropDownsSelectable]", inputs: { index: "index", checkboxes: "checkboxes", height: "height", isMultiselect: "isMultiselect", multipleSelection: "multipleSelection" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.index": "this.index", "style.height.px": "this.height", "style.minHeight.px": "this.height", "class.k-focus": "this.focusedClassName", "class.k-selected": "this.selectedClassName" } }, ngImport: i0 });
1832
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SelectableDirective, deps: [{ token: SelectionService }], target: i0.ɵɵFactoryTarget.Directive });
1833
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: SelectableDirective, isStandalone: true, selector: "[kendoDropDownsSelectable]", inputs: { index: "index", checkboxes: "checkboxes", height: "height", isMultiselect: "isMultiselect", multipleSelection: "multipleSelection" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.index": "this.index", "style.height.px": "this.height", "style.minHeight.px": "this.height", "class.k-focus": "this.focusedClassName", "class.k-selected": "this.selectedClassName" } }, ngImport: i0 });
1831
1834
  }
1832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SelectableDirective, decorators: [{
1835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SelectableDirective, decorators: [{
1833
1836
  type: Directive,
1834
1837
  args: [{
1835
1838
  selector: '[kendoDropDownsSelectable]',
@@ -1897,10 +1900,10 @@ class CustomItemTemplateDirective {
1897
1900
  constructor(templateRef) {
1898
1901
  this.templateRef = templateRef;
1899
1902
  }
1900
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1901
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: CustomItemTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectCustomItemTemplate]", ngImport: i0 });
1903
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CustomItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1904
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: CustomItemTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectCustomItemTemplate]", ngImport: i0 });
1902
1905
  }
1903
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomItemTemplateDirective, decorators: [{
1906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CustomItemTemplateDirective, decorators: [{
1904
1907
  type: Directive,
1905
1908
  args: [{
1906
1909
  selector: '[kendoMultiSelectCustomItemTemplate]',
@@ -1937,14 +1940,21 @@ class ListComponent {
1937
1940
  type = 'list';
1938
1941
  checkboxes = { enabled: false };
1939
1942
  ariaLive;
1943
+ ariaLabel;
1940
1944
  isMultiselect;
1941
1945
  isActionSheetExpanded;
1942
1946
  showStickyHeader;
1943
1947
  rowWidth;
1948
+ columnsWidths;
1944
1949
  customItemTemplate;
1945
1950
  text;
1946
1951
  allowCustom;
1947
1952
  defaultItem;
1953
+ selectAll = false;
1954
+ selectAllText;
1955
+ isAllSelected = false;
1956
+ isPartiallySelected = false;
1957
+ selectAllClick = new EventEmitter();
1948
1958
  set data(data) {
1949
1959
  this._data = data[0]?.header ? data.slice(0) : data;
1950
1960
  if (this.dataService.grouped) {
@@ -1965,12 +1975,12 @@ class ListComponent {
1965
1975
  }
1966
1976
  set size(size) {
1967
1977
  if (this.type === 'list') {
1968
- this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this.size));
1978
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this._size));
1969
1979
  if (size) {
1970
1980
  this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('list', size));
1971
1981
  }
1972
- this._size = size;
1973
1982
  }
1983
+ this._size = size;
1974
1984
  }
1975
1985
  get size() {
1976
1986
  return this._size;
@@ -2002,6 +2012,7 @@ class ListComponent {
2002
2012
  scrollSubscription;
2003
2013
  selectSubscription;
2004
2014
  _size;
2015
+ selectAllCheckboxState = false;
2005
2016
  get pageSize() {
2006
2017
  if (this.virtual.pageSize) {
2007
2018
  return this.virtual.pageSize;
@@ -2031,6 +2042,12 @@ class ListComponent {
2031
2042
  get checkboxClasses() {
2032
2043
  return `${this.size ? getSizeClass('checkbox', this.size) : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;
2033
2044
  }
2045
+ /**
2046
+ * @hidden
2047
+ */
2048
+ isSelectAllFocused() {
2049
+ return this.selectionService.isFocused(-2);
2050
+ }
2034
2051
  /* tslint:disable:member-ordering */
2035
2052
  constructor(dataService, wrapper, selectionService, disabledItemsService, cdr, zone, renderer, localization, injector) {
2036
2053
  this.dataService = dataService;
@@ -2048,6 +2065,7 @@ class ListComponent {
2048
2065
  switchMap(event => this.zone.onStable.pipe(take(1), map(() => event))))
2049
2066
  .subscribe(this.scrollToItem.bind(this));
2050
2067
  this.prepareClasses();
2068
+ this.initSelectAllCheckboxState();
2051
2069
  }
2052
2070
  ngOnChanges(changes) {
2053
2071
  if (isChanged('data', changes, false)) {
@@ -2063,6 +2081,9 @@ class ListComponent {
2063
2081
  if (isChanged('type', changes, false)) {
2064
2082
  this.prepareClasses();
2065
2083
  }
2084
+ if (isChanged('isAllSelected', changes, false) || isChanged('isPartiallySelected', changes, false)) {
2085
+ this.updateSelectAllCheckboxState();
2086
+ }
2066
2087
  }
2067
2088
  ngAfterViewInit() {
2068
2089
  this.setComponentClasses();
@@ -2092,8 +2113,8 @@ class ListComponent {
2092
2113
  this.scrollSubscription.unsubscribe();
2093
2114
  }
2094
2115
  }
2095
- onCheckedChange(e, index) {
2096
- const isChecked = e.target['checked'];
2116
+ onCheckboxStateChange(state, index) {
2117
+ const isChecked = state === true;
2097
2118
  if (isChecked && !this.selectionService.isSelected(index)) {
2098
2119
  this.selectionService.add(index);
2099
2120
  }
@@ -2101,6 +2122,13 @@ class ListComponent {
2101
2122
  this.selectionService.deselect(index);
2102
2123
  }
2103
2124
  }
2125
+ handleSelectAllClick() {
2126
+ const newState = !this.isAllSelected;
2127
+ this.selectAllClick.emit(newState);
2128
+ }
2129
+ handleSelectAllStateChange(state) {
2130
+ this.selectAllClick.emit(state);
2131
+ }
2104
2132
  prepareClasses() {
2105
2133
  if (this.type === 'list') {
2106
2134
  this.listContentClass = 'k-list-content';
@@ -2284,6 +2312,10 @@ class ListComponent {
2284
2312
  isItemSelected(index) {
2285
2313
  return this.selectionService.isSelected(index) || null;
2286
2314
  }
2315
+ itemAriaSelected(index) {
2316
+ const selected = this.isItemSelected(index);
2317
+ return this.type === 'list' ? (selected ?? false) : selected;
2318
+ }
2287
2319
  get isDisabledDefaultItem() {
2288
2320
  return this.disabledItemsService.isItemDisabled(this.defaultItem);
2289
2321
  }
@@ -2324,13 +2356,57 @@ class ListComponent {
2324
2356
  }
2325
2357
  if (this.type === 'dropdowngrid') {
2326
2358
  this.renderer.setStyle(this.wrapper.nativeElement, 'overflow-y', 'scroll');
2359
+ if (this.size) {
2360
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this.size));
2361
+ }
2327
2362
  }
2328
2363
  if (isPresent(this.virtual)) {
2329
2364
  this.renderer.addClass(this.wrapper.nativeElement, this.listVirtualClass);
2330
2365
  }
2331
2366
  }
2332
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2333
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ListComponent, isStandalone: true, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", rowWidth: "rowWidth", customItemTemplate: "customItemTemplate", text: "text", allowCustom: "allowCustom", defaultItem: "defaultItem", data: "data", size: "size", rounded: "rounded" }, outputs: { onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2367
+ updateSelectAllCheckboxState() {
2368
+ if (this.isAllSelected) {
2369
+ this.selectAllCheckboxState = true;
2370
+ }
2371
+ else if (this.isPartiallySelected) {
2372
+ this.selectAllCheckboxState = 'indeterminate';
2373
+ }
2374
+ else {
2375
+ this.selectAllCheckboxState = false;
2376
+ }
2377
+ }
2378
+ initSelectAllCheckboxState() {
2379
+ this.updateSelectAllCheckboxState();
2380
+ }
2381
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
2382
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: ListComponent, isStandalone: true, selector: "kendo-list", inputs: { selected: "selected", focused: "focused", textField: "textField", valueField: "valueField", height: "height", template: "template", groupTemplate: "groupTemplate", fixedGroupTemplate: "fixedGroupTemplate", show: "show", id: "id", optionPrefix: "optionPrefix", multipleSelection: "multipleSelection", virtual: "virtual", type: "type", checkboxes: "checkboxes", ariaLive: "ariaLive", ariaLabel: "ariaLabel", isMultiselect: "isMultiselect", isActionSheetExpanded: "isActionSheetExpanded", showStickyHeader: "showStickyHeader", rowWidth: "rowWidth", columnsWidths: "columnsWidths", customItemTemplate: "customItemTemplate", text: "text", allowCustom: "allowCustom", defaultItem: "defaultItem", selectAll: "selectAll", selectAllText: "selectAllText", isAllSelected: "isAllSelected", isPartiallySelected: "isPartiallySelected", data: "data", size: "size", rounded: "rounded" }, outputs: { selectAllClick: "selectAllClick", onClick: "onClick", pageChange: "pageChange", listResize: "listResize", popupListScroll: "popupListScroll" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2383
+ @if (selectAll) {
2384
+ <div class="k-list-sticky-header">
2385
+ <div
2386
+ class="k-list-sticky-header-item"
2387
+ [class.k-selected]="!checkboxes.enabled && isAllSelected"
2388
+ [class.k-focus]="isSelectAllFocused()"
2389
+ kendoDropDownsSelectable
2390
+ [checkboxes]="checkboxes"
2391
+ [index]="-2"
2392
+ tabindex="0"
2393
+ [attr.aria-selected]="isAllSelected"
2394
+ [attr.aria-label]="selectAllText"
2395
+ (click)="handleSelectAllClick()">
2396
+ @if (checkboxes.enabled) {
2397
+ <kendo-checkbox
2398
+ [checkedState]="selectAllCheckboxState"
2399
+ [ngClass]="checkboxClasses"
2400
+ [inputAttributes]="{ 'aria-label': selectAllText }"
2401
+ (click)="$event.stopPropagation()"
2402
+ (checkedStateChange)="handleSelectAllStateChange($event)"
2403
+ >
2404
+ </kendo-checkbox>
2405
+ }
2406
+ <span class="k-list-item-text">{{ selectAllText }}</span>
2407
+ </div>
2408
+ </div>
2409
+ }
2334
2410
  @if (defaultItem && !template) {
2335
2411
  <div
2336
2412
  class="k-list-optionlabel"
@@ -2400,11 +2476,12 @@ class ListComponent {
2400
2476
  [style.maxHeight.px]="height"
2401
2477
  unselectable="on"
2402
2478
  (scroll)="popupListScroll.emit($event)"
2403
- [attr.role]="dataService.grouped ? 'listbox' : null"
2404
- [attr.id]="dataService.grouped ? id : null"
2405
- [attr.aria-live]="dataService.grouped ? ariaLive : null"
2406
- [attr.aria-multiselectable]="dataService.grouped ? isMultiselect : null"
2407
- [attr.aria-hidden]="dataService.grouped ? !show : null"
2479
+ [attr.role]="(dataService.grouped && type === 'list') ? 'listbox' : null"
2480
+ [attr.id]="(dataService.grouped && type === 'list') ? id : null"
2481
+ [attr.aria-live]="(dataService.grouped && type === 'list') ? ariaLive : null"
2482
+ [attr.aria-multiselectable]="(dataService.grouped && type === 'list') ? isMultiselect : null"
2483
+ [attr.aria-hidden]="(dataService.grouped && type === 'list') ? (!show ? true : null) : null"
2484
+ [attr.aria-label]="(dataService.grouped && type === 'list') ? (ariaLabel || null) : null"
2408
2485
  >
2409
2486
  @if (!dataService.grouped) {
2410
2487
  <ul #list
@@ -2413,7 +2490,8 @@ class ListComponent {
2413
2490
  [attr.id]="id"
2414
2491
  [attr.aria-live]="ariaLive"
2415
2492
  [attr.aria-multiselectable]="isMultiselect"
2416
- [attr.aria-hidden]="!show">
2493
+ [attr.aria-hidden]="!show ? true : null"
2494
+ [attr.aria-label]="ariaLabel || null">
2417
2495
  @for (dataItem of data; track $index; let itemIndex = $index) {
2418
2496
  <li
2419
2497
  role="option"
@@ -2424,7 +2502,7 @@ class ListComponent {
2424
2502
  [multipleSelection]="multipleSelection"
2425
2503
  [attr.id]="optionPrefix + '-' + itemIndex"
2426
2504
  [attr.tabIndex]="-1"
2427
- [attr.aria-selected]="isItemSelected(itemIndex)"
2505
+ [attr.aria-selected]="itemAriaSelected(itemIndex)"
2428
2506
  [class]="listItemClass"
2429
2507
  [ngClass]="{
2430
2508
  'k-disabled': isDisabled(itemIndex),
@@ -2433,15 +2511,14 @@ class ListComponent {
2433
2511
  [style.width.px]="rowWidth ?? null"
2434
2512
  >
2435
2513
  @if (checkboxes.enabled) {
2436
- <input
2437
- type="checkbox"
2438
- class="k-checkbox"
2514
+ <kendo-checkbox
2515
+ [checkedState]="isChecked(itemIndex)"
2439
2516
  role="presentation"
2440
- tabindex="-1"
2517
+ [tabindex]="-1"
2441
2518
  [ngClass]="checkboxClasses"
2442
- (change)="onCheckedChange($event, itemIndex + startFrom)"
2443
- [checked]="isChecked(itemIndex)"
2444
- />
2519
+ (checkedStateChange)="onCheckboxStateChange($event, itemIndex + startFrom)"
2520
+ >
2521
+ </kendo-checkbox>
2445
2522
  }
2446
2523
  @if (template) {
2447
2524
  <ng-template
@@ -2465,7 +2542,7 @@ class ListComponent {
2465
2542
  </ul>
2466
2543
  }
2467
2544
 
2468
- @if (dataService.grouped) {
2545
+ @if (dataService.grouped && type === 'list') {
2469
2546
  <ng-container #list>
2470
2547
  @for (dataItem of groupedData; track dataItem.groupIndex) {
2471
2548
  <ul
@@ -2512,7 +2589,7 @@ class ListComponent {
2512
2589
  [attr.absolute-index]="item.index"
2513
2590
  [attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
2514
2591
  [attr.tabIndex]="-1"
2515
- [attr.aria-selected]="isItemSelected(item.offsetIndex)"
2592
+ [attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
2516
2593
  [class]="listItemClass"
2517
2594
  [ngClass]="{
2518
2595
  'k-disabled': isDisabled(item.offsetIndex),
@@ -2542,21 +2619,130 @@ class ListComponent {
2542
2619
  }
2543
2620
  </ng-container>
2544
2621
  }
2622
+
2623
+ @if (dataService.grouped && type === 'dropdowngrid') {
2624
+ <ul #list
2625
+ [attr.role]="'listbox'"
2626
+ [class]="listClass"
2627
+ [attr.id]="id"
2628
+ [attr.aria-live]="ariaLive"
2629
+ [attr.aria-label]="ariaLabel || null">
2630
+ @if (columnsWidths?.length) {
2631
+ <div
2632
+ role="presentation"
2633
+ aria-hidden="true"
2634
+ [style.display]="'table-column-group'"
2635
+ >
2636
+ @for (columnWidth of columnsWidths; track $index) {
2637
+ <div [style.display]="'table-column'" [style.width.px]="columnWidth ?? null"></div>
2638
+ }
2639
+ </div>
2640
+ }
2641
+ @for (dataItem of groupedData; track dataItem.groupIndex) {
2642
+ @if (dataItem.header) {
2643
+ <li
2644
+ role="presentation"
2645
+ [class]="listGroupItemClass"
2646
+ [attr.group-index]="dataItem.index"
2647
+ [style.width.px]="rowWidth ?? null"
2648
+ >
2649
+ <span [class]="listGroupItemTextClass">
2650
+ @if (groupTemplate) {
2651
+ <ng-template
2652
+ [templateContext]="{
2653
+ templateRef: groupTemplate.templateRef,
2654
+ $implicit: dataItem.value
2655
+ }">
2656
+ </ng-template>
2657
+ }
2658
+ @if (!groupTemplate) {
2659
+ {{ dataItem.value }}
2660
+ }
2661
+ </span>
2662
+ </li>
2663
+ }
2664
+ @for (item of dataItem.items; track item.offsetIndex) {
2665
+ <li
2666
+ role="option"
2667
+ kendoDropDownsSelectable
2668
+ [height]="virtual?.itemHeight"
2669
+ [index]="item.offsetIndex"
2670
+ [multipleSelection]="multipleSelection"
2671
+ [attr.absolute-index]="item.index"
2672
+ [attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
2673
+ [attr.tabIndex]="-1"
2674
+ [attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
2675
+ [class]="listItemClass"
2676
+ [ngClass]="{
2677
+ 'k-disabled': isDisabled(item.offsetIndex),
2678
+ 'k-table-alt-row': isAltRow(item.index - 1)
2679
+ }"
2680
+ [style.width.px]="rowWidth ?? null">
2681
+ @if (template) {
2682
+ <ng-template
2683
+ [templateContext]="{
2684
+ templateRef: template.templateRef,
2685
+ $implicit: item.value
2686
+ }">
2687
+ </ng-template>
2688
+ }
2689
+ @if (!template) {
2690
+ <span class="k-list-item-text">{{ getText(item.value) }}</span>
2691
+ }
2692
+ </li>
2693
+ }
2694
+ }
2695
+ @if (!virtual) {
2696
+ <kendo-resize-sensor
2697
+ (resize)="listResize.emit()"
2698
+ >
2699
+ </kendo-resize-sensor>
2700
+ }
2701
+ </ul>
2702
+ }
2545
2703
  @if (virtual) {
2546
- <div #virtualContainer class="k-height-container" role="presentation">
2704
+ <div #virtualContainer class="k-height-container">
2547
2705
  <div [style.height.px]="scrollHeight">
2548
2706
  <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
2549
2707
  </div>
2550
2708
  </div>
2551
2709
  }
2552
2710
  </div>
2553
- `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: ListItemDirective, selector: "\"li[role=option], li[role=group], li[role=presentation]\"" }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
2711
+ <ng-content select=".k-no-data"></ng-content>
2712
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: ListItemDirective, selector: "\"li[role=option], li[role=group], li[role=presentation]\"" }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
2554
2713
  }
2555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ListComponent, decorators: [{
2714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ListComponent, decorators: [{
2556
2715
  type: Component,
2557
2716
  args: [{
2558
2717
  selector: 'kendo-list',
2559
2718
  template: `
2719
+ @if (selectAll) {
2720
+ <div class="k-list-sticky-header">
2721
+ <div
2722
+ class="k-list-sticky-header-item"
2723
+ [class.k-selected]="!checkboxes.enabled && isAllSelected"
2724
+ [class.k-focus]="isSelectAllFocused()"
2725
+ kendoDropDownsSelectable
2726
+ [checkboxes]="checkboxes"
2727
+ [index]="-2"
2728
+ tabindex="0"
2729
+ [attr.aria-selected]="isAllSelected"
2730
+ [attr.aria-label]="selectAllText"
2731
+ (click)="handleSelectAllClick()">
2732
+ @if (checkboxes.enabled) {
2733
+ <kendo-checkbox
2734
+ [checkedState]="selectAllCheckboxState"
2735
+ [ngClass]="checkboxClasses"
2736
+ [inputAttributes]="{ 'aria-label': selectAllText }"
2737
+ (click)="$event.stopPropagation()"
2738
+ (checkedStateChange)="handleSelectAllStateChange($event)"
2739
+ >
2740
+ </kendo-checkbox>
2741
+ }
2742
+ <span class="k-list-item-text">{{ selectAllText }}</span>
2743
+ </div>
2744
+ </div>
2745
+ }
2560
2746
  @if (defaultItem && !template) {
2561
2747
  <div
2562
2748
  class="k-list-optionlabel"
@@ -2626,11 +2812,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2626
2812
  [style.maxHeight.px]="height"
2627
2813
  unselectable="on"
2628
2814
  (scroll)="popupListScroll.emit($event)"
2629
- [attr.role]="dataService.grouped ? 'listbox' : null"
2630
- [attr.id]="dataService.grouped ? id : null"
2631
- [attr.aria-live]="dataService.grouped ? ariaLive : null"
2632
- [attr.aria-multiselectable]="dataService.grouped ? isMultiselect : null"
2633
- [attr.aria-hidden]="dataService.grouped ? !show : null"
2815
+ [attr.role]="(dataService.grouped && type === 'list') ? 'listbox' : null"
2816
+ [attr.id]="(dataService.grouped && type === 'list') ? id : null"
2817
+ [attr.aria-live]="(dataService.grouped && type === 'list') ? ariaLive : null"
2818
+ [attr.aria-multiselectable]="(dataService.grouped && type === 'list') ? isMultiselect : null"
2819
+ [attr.aria-hidden]="(dataService.grouped && type === 'list') ? (!show ? true : null) : null"
2820
+ [attr.aria-label]="(dataService.grouped && type === 'list') ? (ariaLabel || null) : null"
2634
2821
  >
2635
2822
  @if (!dataService.grouped) {
2636
2823
  <ul #list
@@ -2639,7 +2826,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2639
2826
  [attr.id]="id"
2640
2827
  [attr.aria-live]="ariaLive"
2641
2828
  [attr.aria-multiselectable]="isMultiselect"
2642
- [attr.aria-hidden]="!show">
2829
+ [attr.aria-hidden]="!show ? true : null"
2830
+ [attr.aria-label]="ariaLabel || null">
2643
2831
  @for (dataItem of data; track $index; let itemIndex = $index) {
2644
2832
  <li
2645
2833
  role="option"
@@ -2650,7 +2838,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2650
2838
  [multipleSelection]="multipleSelection"
2651
2839
  [attr.id]="optionPrefix + '-' + itemIndex"
2652
2840
  [attr.tabIndex]="-1"
2653
- [attr.aria-selected]="isItemSelected(itemIndex)"
2841
+ [attr.aria-selected]="itemAriaSelected(itemIndex)"
2654
2842
  [class]="listItemClass"
2655
2843
  [ngClass]="{
2656
2844
  'k-disabled': isDisabled(itemIndex),
@@ -2659,15 +2847,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2659
2847
  [style.width.px]="rowWidth ?? null"
2660
2848
  >
2661
2849
  @if (checkboxes.enabled) {
2662
- <input
2663
- type="checkbox"
2664
- class="k-checkbox"
2850
+ <kendo-checkbox
2851
+ [checkedState]="isChecked(itemIndex)"
2665
2852
  role="presentation"
2666
- tabindex="-1"
2853
+ [tabindex]="-1"
2667
2854
  [ngClass]="checkboxClasses"
2668
- (change)="onCheckedChange($event, itemIndex + startFrom)"
2669
- [checked]="isChecked(itemIndex)"
2670
- />
2855
+ (checkedStateChange)="onCheckboxStateChange($event, itemIndex + startFrom)"
2856
+ >
2857
+ </kendo-checkbox>
2671
2858
  }
2672
2859
  @if (template) {
2673
2860
  <ng-template
@@ -2691,7 +2878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2691
2878
  </ul>
2692
2879
  }
2693
2880
 
2694
- @if (dataService.grouped) {
2881
+ @if (dataService.grouped && type === 'list') {
2695
2882
  <ng-container #list>
2696
2883
  @for (dataItem of groupedData; track dataItem.groupIndex) {
2697
2884
  <ul
@@ -2738,7 +2925,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2738
2925
  [attr.absolute-index]="item.index"
2739
2926
  [attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
2740
2927
  [attr.tabIndex]="-1"
2741
- [attr.aria-selected]="isItemSelected(item.offsetIndex)"
2928
+ [attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
2742
2929
  [class]="listItemClass"
2743
2930
  [ngClass]="{
2744
2931
  'k-disabled': isDisabled(item.offsetIndex),
@@ -2768,17 +2955,99 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2768
2955
  }
2769
2956
  </ng-container>
2770
2957
  }
2958
+
2959
+ @if (dataService.grouped && type === 'dropdowngrid') {
2960
+ <ul #list
2961
+ [attr.role]="'listbox'"
2962
+ [class]="listClass"
2963
+ [attr.id]="id"
2964
+ [attr.aria-live]="ariaLive"
2965
+ [attr.aria-label]="ariaLabel || null">
2966
+ @if (columnsWidths?.length) {
2967
+ <div
2968
+ role="presentation"
2969
+ aria-hidden="true"
2970
+ [style.display]="'table-column-group'"
2971
+ >
2972
+ @for (columnWidth of columnsWidths; track $index) {
2973
+ <div [style.display]="'table-column'" [style.width.px]="columnWidth ?? null"></div>
2974
+ }
2975
+ </div>
2976
+ }
2977
+ @for (dataItem of groupedData; track dataItem.groupIndex) {
2978
+ @if (dataItem.header) {
2979
+ <li
2980
+ role="presentation"
2981
+ [class]="listGroupItemClass"
2982
+ [attr.group-index]="dataItem.index"
2983
+ [style.width.px]="rowWidth ?? null"
2984
+ >
2985
+ <span [class]="listGroupItemTextClass">
2986
+ @if (groupTemplate) {
2987
+ <ng-template
2988
+ [templateContext]="{
2989
+ templateRef: groupTemplate.templateRef,
2990
+ $implicit: dataItem.value
2991
+ }">
2992
+ </ng-template>
2993
+ }
2994
+ @if (!groupTemplate) {
2995
+ {{ dataItem.value }}
2996
+ }
2997
+ </span>
2998
+ </li>
2999
+ }
3000
+ @for (item of dataItem.items; track item.offsetIndex) {
3001
+ <li
3002
+ role="option"
3003
+ kendoDropDownsSelectable
3004
+ [height]="virtual?.itemHeight"
3005
+ [index]="item.offsetIndex"
3006
+ [multipleSelection]="multipleSelection"
3007
+ [attr.absolute-index]="item.index"
3008
+ [attr.id]="optionPrefix + '-' + (item.index - 1 - item.groupIndex)"
3009
+ [attr.tabIndex]="-1"
3010
+ [attr.aria-selected]="itemAriaSelected(item.offsetIndex)"
3011
+ [class]="listItemClass"
3012
+ [ngClass]="{
3013
+ 'k-disabled': isDisabled(item.offsetIndex),
3014
+ 'k-table-alt-row': isAltRow(item.index - 1)
3015
+ }"
3016
+ [style.width.px]="rowWidth ?? null">
3017
+ @if (template) {
3018
+ <ng-template
3019
+ [templateContext]="{
3020
+ templateRef: template.templateRef,
3021
+ $implicit: item.value
3022
+ }">
3023
+ </ng-template>
3024
+ }
3025
+ @if (!template) {
3026
+ <span class="k-list-item-text">{{ getText(item.value) }}</span>
3027
+ }
3028
+ </li>
3029
+ }
3030
+ }
3031
+ @if (!virtual) {
3032
+ <kendo-resize-sensor
3033
+ (resize)="listResize.emit()"
3034
+ >
3035
+ </kendo-resize-sensor>
3036
+ }
3037
+ </ul>
3038
+ }
2771
3039
  @if (virtual) {
2772
- <div #virtualContainer class="k-height-container" role="presentation">
3040
+ <div #virtualContainer class="k-height-container">
2773
3041
  <div [style.height.px]="scrollHeight">
2774
3042
  <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
2775
3043
  </div>
2776
3044
  </div>
2777
3045
  }
2778
3046
  </div>
3047
+ <ng-content select=".k-no-data"></ng-content>
2779
3048
  `,
2780
3049
  standalone: true,
2781
- imports: [NgStyle, TemplateContextDirective, ListItemDirective, SelectableDirective, NgClass, ResizeSensorComponent]
3050
+ imports: [NgStyle, TemplateContextDirective, ListItemDirective, SelectableDirective, NgClass, ResizeSensorComponent, CheckBoxComponent]
2782
3051
  }]
2783
3052
  }], ctorParameters: () => [{ type: DataService }, { type: i0.ElementRef }, { type: SelectionService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.Injector }], propDecorators: { selected: [{
2784
3053
  type: Input
@@ -2812,6 +3081,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2812
3081
  type: Input
2813
3082
  }], ariaLive: [{
2814
3083
  type: Input
3084
+ }], ariaLabel: [{
3085
+ type: Input
2815
3086
  }], isMultiselect: [{
2816
3087
  type: Input
2817
3088
  }], isActionSheetExpanded: [{
@@ -2820,6 +3091,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2820
3091
  type: Input
2821
3092
  }], rowWidth: [{
2822
3093
  type: Input
3094
+ }], columnsWidths: [{
3095
+ type: Input
2823
3096
  }], customItemTemplate: [{
2824
3097
  type: Input
2825
3098
  }], text: [{
@@ -2828,6 +3101,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2828
3101
  type: Input
2829
3102
  }], defaultItem: [{
2830
3103
  type: Input
3104
+ }], selectAll: [{
3105
+ type: Input
3106
+ }], selectAllText: [{
3107
+ type: Input
3108
+ }], isAllSelected: [{
3109
+ type: Input
3110
+ }], isPartiallySelected: [{
3111
+ type: Input
3112
+ }], selectAllClick: [{
3113
+ type: Output
2831
3114
  }], data: [{
2832
3115
  type: Input
2833
3116
  }], size: [{
@@ -2891,6 +3174,7 @@ class AdaptiveRendererComponent {
2891
3174
  placeholder;
2892
3175
  searchBarValue;
2893
3176
  filterable;
3177
+ showListContainer = true;
2894
3178
  closePopup = new EventEmitter();
2895
3179
  textInputChange = new EventEmitter();
2896
3180
  navigate = new EventEmitter();
@@ -2903,6 +3187,7 @@ class AdaptiveRendererComponent {
2903
3187
  }
2904
3188
  animationDuration = animationDuration;
2905
3189
  checkIcon = checkIcon;
3190
+ searchIcon = searchIcon;
2906
3191
  expanded = false;
2907
3192
  messageFor(key) {
2908
3193
  return this.localization.get(key);
@@ -2927,8 +3212,8 @@ class AdaptiveRendererComponent {
2927
3212
  get windowSize() {
2928
3213
  return this.adaptiveService.size;
2929
3214
  }
2930
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AdaptiveRendererComponent, deps: [{ token: i1.LocalizationService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
2931
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AdaptiveRendererComponent, isStandalone: true, selector: "kendo-adaptive-renderer", inputs: { title: "title", subtitle: "subtitle", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", text: "text", placeholder: "placeholder", searchBarValue: "searchBarValue", filterable: "filterable" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
3215
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AdaptiveRendererComponent, deps: [{ token: i1.LocalizationService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
3216
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: AdaptiveRendererComponent, isStandalone: true, selector: "kendo-adaptive-renderer", inputs: { title: "title", subtitle: "subtitle", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", text: "text", placeholder: "placeholder", searchBarValue: "searchBarValue", filterable: "filterable", showListContainer: "showListContainer" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
2932
3217
  <kendo-actionsheet
2933
3218
  #actionSheet
2934
3219
  [animation]="{ duration: animationDuration }"
@@ -2947,7 +3232,7 @@ class AdaptiveRendererComponent {
2947
3232
  (collapse)="closePopup.emit()"
2948
3233
  >
2949
3234
  <ng-template kendoActionSheetTemplate>
2950
- <div class="k-text-center k-actionsheet-titlebar">
3235
+ <div class="k-actionsheet-titlebar">
2951
3236
  <div class="k-actionsheet-titlebar-group">
2952
3237
  <div class="k-actionsheet-title">
2953
3238
  @if (title) {
@@ -2963,6 +3248,7 @@ class AdaptiveRendererComponent {
2963
3248
  icon="check"
2964
3249
  type="button"
2965
3250
  [attr.title]="messageFor('adaptiveCloseButtonTitle')"
3251
+ [attr.aria-label]="messageFor('adaptiveCloseButtonTitle')"
2966
3252
  [svgIcon]="checkIcon"
2967
3253
  fillMode="flat"
2968
3254
  themeColor="primary"
@@ -2980,13 +3266,13 @@ class AdaptiveRendererComponent {
2980
3266
  [value]="searchBarValue || ''"
2981
3267
  size="large"
2982
3268
  [placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
2983
- class="k-searchbox"
3269
+ [inputAttributes]="{'aria-label': title}"
2984
3270
  autocomplete="off"
2985
3271
  (valueChange)="onValueChange($event)"
2986
3272
  >
2987
3273
  @if (filterable) {
2988
3274
  <ng-template kendoTextBoxPrefixTemplate>
2989
- <kendo-icon name="search"></kendo-icon>
3275
+ <kendo-icon-wrapper name="search" [svgIcon]="searchIcon"></kendo-icon-wrapper>
2990
3276
  </ng-template>
2991
3277
  }
2992
3278
  </kendo-textbox>
@@ -2994,15 +3280,19 @@ class AdaptiveRendererComponent {
2994
3280
  }
2995
3281
  </div>
2996
3282
  <div class="k-actionsheet-content">
3283
+ @if (showListContainer) {
2997
3284
  <div class="k-list-container">
2998
3285
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
2999
3286
  </div>
3287
+ } @else {
3288
+ <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
3289
+ }
3000
3290
  </div>
3001
3291
  </ng-template>
3002
3292
  </kendo-actionsheet>
3003
- `, isInline: true, dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
3293
+ `, isInline: true, dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
3004
3294
  }
3005
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
3295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
3006
3296
  type: Component,
3007
3297
  args: [{
3008
3298
  selector: 'kendo-adaptive-renderer',
@@ -3025,7 +3315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3025
3315
  (collapse)="closePopup.emit()"
3026
3316
  >
3027
3317
  <ng-template kendoActionSheetTemplate>
3028
- <div class="k-text-center k-actionsheet-titlebar">
3318
+ <div class="k-actionsheet-titlebar">
3029
3319
  <div class="k-actionsheet-titlebar-group">
3030
3320
  <div class="k-actionsheet-title">
3031
3321
  @if (title) {
@@ -3041,6 +3331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3041
3331
  icon="check"
3042
3332
  type="button"
3043
3333
  [attr.title]="messageFor('adaptiveCloseButtonTitle')"
3334
+ [attr.aria-label]="messageFor('adaptiveCloseButtonTitle')"
3044
3335
  [svgIcon]="checkIcon"
3045
3336
  fillMode="flat"
3046
3337
  themeColor="primary"
@@ -3058,13 +3349,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3058
3349
  [value]="searchBarValue || ''"
3059
3350
  size="large"
3060
3351
  [placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
3061
- class="k-searchbox"
3352
+ [inputAttributes]="{'aria-label': title}"
3062
3353
  autocomplete="off"
3063
3354
  (valueChange)="onValueChange($event)"
3064
3355
  >
3065
3356
  @if (filterable) {
3066
3357
  <ng-template kendoTextBoxPrefixTemplate>
3067
- <kendo-icon name="search"></kendo-icon>
3358
+ <kendo-icon-wrapper name="search" [svgIcon]="searchIcon"></kendo-icon-wrapper>
3068
3359
  </ng-template>
3069
3360
  }
3070
3361
  </kendo-textbox>
@@ -3072,15 +3363,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3072
3363
  }
3073
3364
  </div>
3074
3365
  <div class="k-actionsheet-content">
3366
+ @if (showListContainer) {
3075
3367
  <div class="k-list-container">
3076
3368
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
3077
3369
  </div>
3370
+ } @else {
3371
+ <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
3372
+ }
3078
3373
  </div>
3079
3374
  </ng-template>
3080
3375
  </kendo-actionsheet>
3081
3376
  `,
3082
3377
  standalone: true,
3083
- imports: [ActionSheetComponent, ActionSheetTemplateDirective, ButtonComponent, TextBoxComponent, TextBoxPrefixTemplateDirective, IconComponent, NgTemplateOutlet]
3378
+ imports: [ActionSheetComponent, ActionSheetTemplateDirective, ButtonComponent, TextBoxComponent, TextBoxPrefixTemplateDirective, IconWrapperComponent, NgTemplateOutlet]
3084
3379
  }]
3085
3380
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i7.AdaptiveService }], propDecorators: { title: [{
3086
3381
  type: Input
@@ -3098,6 +3393,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3098
3393
  type: Input
3099
3394
  }], filterable: [{
3100
3395
  type: Input
3396
+ }], showListContainer: [{
3397
+ type: Input
3101
3398
  }], closePopup: [{
3102
3399
  type: Output
3103
3400
  }], textInputChange: [{
@@ -3196,10 +3493,10 @@ class SharedDropDownEventsDirective {
3196
3493
  ngOnDestroy() {
3197
3494
  this.subscriptions.unsubscribe();
3198
3495
  }
3199
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SharedDropDownEventsDirective, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
3200
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: SharedDropDownEventsDirective, isStandalone: true, selector: "[kendoDropDownSharedEvents]", inputs: { hostElement: "hostElement", clearButtonClicked: "clearButtonClicked", isFocused: "isFocused" }, outputs: { isFocusedChange: "isFocusedChange", onFocus: "onFocus", handleBlur: "handleBlur" }, ngImport: i0 });
3496
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SharedDropDownEventsDirective, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
3497
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: SharedDropDownEventsDirective, isStandalone: true, selector: "[kendoDropDownSharedEvents]", inputs: { hostElement: "hostElement", clearButtonClicked: "clearButtonClicked", isFocused: "isFocused" }, outputs: { isFocusedChange: "isFocusedChange", onFocus: "onFocus", handleBlur: "handleBlur" }, ngImport: i0 });
3201
3498
  }
3202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SharedDropDownEventsDirective, decorators: [{
3499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SharedDropDownEventsDirective, decorators: [{
3203
3500
  type: Directive,
3204
3501
  args: [{
3205
3502
  selector: '[kendoDropDownSharedEvents]',
@@ -3232,15 +3529,19 @@ class Messages extends ComponentMessages {
3232
3529
  */
3233
3530
  clearTitle;
3234
3531
  /**
3235
- * The text displayed for the check-all checkbox.
3532
+ * The text of the Select All item in the popup.
3533
+ */
3534
+ selectAllText;
3535
+ /**
3536
+ * The text of the Check All checkbox label in the tree popup.
3236
3537
  */
3237
3538
  checkAllText;
3238
3539
  /**
3239
- * The text set as aria-label on the select button.
3540
+ * The text set as aria-label on the select button. Available for DropDownList, ComboBox, MultiColumnComboBox, and DropDownTree.
3240
3541
  */
3241
3542
  selectButtonText;
3242
3543
  /**
3243
- * The text set as aria-label on the list filter input.
3544
+ * The text set as aria-label on the list filter input. Available for DropDownList, DropDownTree, and MultiSelectTree.
3244
3545
  */
3245
3546
  filterInputLabel;
3246
3547
  /**
@@ -3252,11 +3553,15 @@ class Messages extends ComponentMessages {
3252
3553
  */
3253
3554
  adaptiveCloseButtonTitle;
3254
3555
  /**
3255
- * The text for the input's placeholder when filtering is enabled.
3556
+ * The text for the input's placeholder when filtering is enabled. Available for DropDownTree and MultiSelectTree.
3256
3557
  */
3257
3558
  filterInputPlaceholder;
3258
3559
  /**
3259
- * The text displayed when the user types a custom value that is not in the list of options.
3560
+ * The accessible label of the tag list element that contains the selected items. Available for MultiSelect and MultiSelectTree.
3561
+ */
3562
+ chipListLabel;
3563
+ /**
3564
+ * The text displayed when the user types a custom value that is not in the list of options. Available for ComboBox and MultiSelect.
3260
3565
  *
3261
3566
  * The text includes a localizable string and the custom value.
3262
3567
  * For example, when adding a custom value **Test**, the default text is **Use "Test"**.
@@ -3265,15 +3570,25 @@ class Messages extends ComponentMessages {
3265
3570
  * Use `{customValue}` to insert the value, for example, **Add: {customValue}**.
3266
3571
  */
3267
3572
  useCustomValueText;
3268
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3269
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: Messages, isStandalone: true, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder", useCustomValueText: "useCustomValueText" }, usesInheritance: true, ngImport: i0 });
3573
+ /**
3574
+ * The accessible label of the listbox that contains the list of options. Available for DropDownList, ComboBox, MultiColumnComboBox, AutoComplete, and MultiSelect.
3575
+ */
3576
+ listboxLabel;
3577
+ /**
3578
+ * The accessible label of the input element. Available for MultiSelectTree.
3579
+ */
3580
+ inputLabel;
3581
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3582
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", selectAllText: "selectAllText", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder", chipListLabel: "chipListLabel", useCustomValueText: "useCustomValueText", listboxLabel: "listboxLabel", inputLabel: "inputLabel" }, usesInheritance: true, ngImport: i0 });
3270
3583
  }
3271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Messages, decorators: [{
3584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, decorators: [{
3272
3585
  type: Directive
3273
3586
  }], propDecorators: { noDataText: [{
3274
3587
  type: Input
3275
3588
  }], clearTitle: [{
3276
3589
  type: Input
3590
+ }], selectAllText: [{
3591
+ type: Input
3277
3592
  }], checkAllText: [{
3278
3593
  type: Input
3279
3594
  }], selectButtonText: [{
@@ -3286,8 +3601,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3286
3601
  type: Input
3287
3602
  }], filterInputPlaceholder: [{
3288
3603
  type: Input
3604
+ }], chipListLabel: [{
3605
+ type: Input
3289
3606
  }], useCustomValueText: [{
3290
3607
  type: Input
3608
+ }], listboxLabel: [{
3609
+ type: Input
3610
+ }], inputLabel: [{
3611
+ type: Input
3291
3612
  }] } });
3292
3613
 
3293
3614
  /**
@@ -3299,15 +3620,15 @@ class LocalizedMessagesDirective extends Messages {
3299
3620
  super();
3300
3621
  this.service = service;
3301
3622
  }
3302
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
3303
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: LocalizedMessagesDirective, isStandalone: true, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n ", providers: [
3623
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
3624
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: LocalizedMessagesDirective, isStandalone: true, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n ", providers: [
3304
3625
  {
3305
3626
  provide: Messages,
3306
3627
  useExisting: forwardRef(() => LocalizedMessagesDirective)
3307
3628
  }
3308
3629
  ], usesInheritance: true, ngImport: i0 });
3309
3630
  }
3310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
3631
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
3311
3632
  type: Directive,
3312
3633
  args: [{
3313
3634
  providers: [
@@ -3444,7 +3765,7 @@ class AutoCompleteComponent {
3444
3765
  * @hidden
3445
3766
  */
3446
3767
  get ariaControls() {
3447
- return this.isOpen ? this.listBoxId : undefined;
3768
+ return (!this.isAdaptive && this.isOpen) ? this.listBoxId : undefined;
3448
3769
  }
3449
3770
  /**
3450
3771
  * @hidden
@@ -4464,8 +4785,8 @@ class AutoCompleteComponent {
4464
4785
  this.togglePopup(false);
4465
4786
  }
4466
4787
  }
4467
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: DataService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
4468
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AutoCompleteComponent, isStandalone: true, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", showStickyHeader: "showStickyHeader", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode", inputAttributes: "inputAttributes" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur" }, host: { properties: { "class.k-readonly": "this.readonly", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
4788
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.LocalizationService }, { token: DataService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
4789
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: AutoCompleteComponent, isStandalone: true, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", showStickyHeader: "showStickyHeader", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", clearButton: "clearButton", suggest: "suggest", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode", inputAttributes: "inputAttributes" }, outputs: { valueChange: "valueChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur" }, host: { properties: { "class.k-readonly": "this.readonly", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
4469
4790
  AUTOCOMPLETE_VALUE_ACCESSOR,
4470
4791
  DataService,
4471
4792
  SelectionService,
@@ -4484,7 +4805,8 @@ class AutoCompleteComponent {
4484
4805
  provide: KendoInput,
4485
4806
  useExisting: forwardRef(() => AutoCompleteComponent)
4486
4807
  },
4487
- { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => AutoCompleteComponent) }
4808
+ { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => AutoCompleteComponent) },
4809
+ provideComponentName('autocomplete')
4488
4810
  ], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "adaptiveRendererComponent", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoAutoComplete"], usesOnChanges: true, ngImport: i0, template: `
4489
4811
  <ng-container kendoAutoCompleteLocalizedMessages
4490
4812
  i18n-noDataText="kendo.autocomplete.noDataText|The text displayed in the popup when there are no items"
@@ -4498,6 +4820,9 @@ class AutoCompleteComponent {
4498
4820
 
4499
4821
  i18n-adaptiveCloseButtonTitle="kendo.autocomplete.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
4500
4822
  adaptiveCloseButtonTitle="Close"
4823
+
4824
+ i18n-listboxLabel="kendo.autocomplete.listboxLabel|The accessible label of the list of suggestions"
4825
+ listboxLabel="Suggestions"
4501
4826
  >
4502
4827
  </ng-container>
4503
4828
 
@@ -4519,9 +4844,9 @@ class AutoCompleteComponent {
4519
4844
  }
4520
4845
  <input
4521
4846
  kendoSearchbar
4522
- [ariaExpanded]="isOpen"
4847
+ [ariaExpanded]="isAdaptive ? false : isOpen"
4523
4848
  [isSuggestable]="suggest"
4524
- [isFilterable]="filterable"
4849
+ [hasListAutocomplete]="filterable"
4525
4850
  [isLoading]="isLoading"
4526
4851
  [ariaControls]="ariaControls"
4527
4852
  [id]="focusableId"
@@ -4617,24 +4942,25 @@ class AutoCompleteComponent {
4617
4942
  [show]="isOpen"
4618
4943
  [virtual]="virtual"
4619
4944
  [showStickyHeader]="showStickyHeader"
4945
+ [ariaLabel]="messageFor('listboxLabel')"
4620
4946
  (pageChange)="pageChange($event)"
4621
4947
  >
4948
+ <!--no-data template-->
4949
+ @if (data.length === 0) {
4950
+ <div class="k-no-data" [attr.aria-live]="'polite'">
4951
+ @if (noDataTemplate) {
4952
+ <ng-template
4953
+ [templateContext]="{
4954
+ templateRef: noDataTemplate?.templateRef
4955
+ }">
4956
+ </ng-template>
4957
+ }
4958
+ @if (!noDataTemplate) {
4959
+ <div>{{ messageFor('noDataText') }}</div>
4960
+ }
4961
+ </div>
4962
+ }
4622
4963
  </kendo-list>
4623
- <!--no-data template-->
4624
- @if (data.length === 0) {
4625
- <div class="k-no-data" [attr.aria-live]="'polite'">
4626
- @if (noDataTemplate) {
4627
- <ng-template
4628
- [templateContext]="{
4629
- templateRef: noDataTemplate?.templateRef
4630
- }">
4631
- </ng-template>
4632
- }
4633
- @if (!noDataTemplate) {
4634
- <div>{{ messageFor('noDataText') }}</div>
4635
- }
4636
- </div>
4637
- }
4638
4964
  <!--footer template-->
4639
4965
  @if (footerTemplate) {
4640
4966
  <ng-template
@@ -4644,9 +4970,9 @@ class AutoCompleteComponent {
4644
4970
  </ng-template>
4645
4971
  }
4646
4972
  </ng-template>
4647
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "isFilterable", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
4973
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
4648
4974
  }
4649
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteComponent, decorators: [{
4975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteComponent, decorators: [{
4650
4976
  type: Component,
4651
4977
  args: [{
4652
4978
  exportAs: 'kendoAutoComplete',
@@ -4669,7 +4995,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4669
4995
  provide: KendoInput,
4670
4996
  useExisting: forwardRef(() => AutoCompleteComponent)
4671
4997
  },
4672
- { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => AutoCompleteComponent) }
4998
+ { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => AutoCompleteComponent) },
4999
+ provideComponentName('autocomplete')
4673
5000
  ],
4674
5001
  selector: 'kendo-autocomplete',
4675
5002
  template: `
@@ -4685,6 +5012,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4685
5012
 
4686
5013
  i18n-adaptiveCloseButtonTitle="kendo.autocomplete.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
4687
5014
  adaptiveCloseButtonTitle="Close"
5015
+
5016
+ i18n-listboxLabel="kendo.autocomplete.listboxLabel|The accessible label of the list of suggestions"
5017
+ listboxLabel="Suggestions"
4688
5018
  >
4689
5019
  </ng-container>
4690
5020
 
@@ -4706,9 +5036,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4706
5036
  }
4707
5037
  <input
4708
5038
  kendoSearchbar
4709
- [ariaExpanded]="isOpen"
5039
+ [ariaExpanded]="isAdaptive ? false : isOpen"
4710
5040
  [isSuggestable]="suggest"
4711
- [isFilterable]="filterable"
5041
+ [hasListAutocomplete]="filterable"
4712
5042
  [isLoading]="isLoading"
4713
5043
  [ariaControls]="ariaControls"
4714
5044
  [id]="focusableId"
@@ -4804,24 +5134,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4804
5134
  [show]="isOpen"
4805
5135
  [virtual]="virtual"
4806
5136
  [showStickyHeader]="showStickyHeader"
5137
+ [ariaLabel]="messageFor('listboxLabel')"
4807
5138
  (pageChange)="pageChange($event)"
4808
5139
  >
5140
+ <!--no-data template-->
5141
+ @if (data.length === 0) {
5142
+ <div class="k-no-data" [attr.aria-live]="'polite'">
5143
+ @if (noDataTemplate) {
5144
+ <ng-template
5145
+ [templateContext]="{
5146
+ templateRef: noDataTemplate?.templateRef
5147
+ }">
5148
+ </ng-template>
5149
+ }
5150
+ @if (!noDataTemplate) {
5151
+ <div>{{ messageFor('noDataText') }}</div>
5152
+ }
5153
+ </div>
5154
+ }
4809
5155
  </kendo-list>
4810
- <!--no-data template-->
4811
- @if (data.length === 0) {
4812
- <div class="k-no-data" [attr.aria-live]="'polite'">
4813
- @if (noDataTemplate) {
4814
- <ng-template
4815
- [templateContext]="{
4816
- templateRef: noDataTemplate?.templateRef
4817
- }">
4818
- </ng-template>
4819
- }
4820
- @if (!noDataTemplate) {
4821
- <div>{{ messageFor('noDataText') }}</div>
4822
- }
4823
- </div>
4824
- }
4825
5156
  <!--footer template-->
4826
5157
  @if (footerTemplate) {
4827
5158
  <ng-template
@@ -5105,7 +5436,7 @@ class ComboBoxComponent extends MultiTabStop {
5105
5436
  * @hidden
5106
5437
  */
5107
5438
  get ariaControls() {
5108
- return this.isOpen ? this.listBoxId : undefined;
5439
+ return (!this.isAdaptive && this.isOpen) ? this.listBoxId : undefined;
5109
5440
  }
5110
5441
  /**
5111
5442
  * @hidden
@@ -5928,7 +6259,7 @@ class ComboBoxComponent extends MultiTabStop {
5928
6259
  * @hidden
5929
6260
  */
5930
6261
  get selectButtonClasses() {
5931
- return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''}`;
6262
+ return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''} ${this.disabled ? 'k-disabled' : ''}`;
5932
6263
  }
5933
6264
  /**
5934
6265
  * @hidden
@@ -6195,7 +6526,7 @@ class ComboBoxComponent extends MultiTabStop {
6195
6526
  this.zone.run(() => {
6196
6527
  if (valueHasChanged) {
6197
6528
  const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
6198
- if (lowerCaseMatch || unresolvedSelection) {
6529
+ if ((lowerCaseMatch && this.shouldResolveSuggestedItem(currentText)) || unresolvedSelection) {
6199
6530
  this.selectionService.change(this.selectionService.focused);
6200
6531
  }
6201
6532
  else {
@@ -6328,6 +6659,9 @@ class ComboBoxComponent extends MultiTabStop {
6328
6659
  const itemText = getter(this.dataService.itemAt(focused), this.textField);
6329
6660
  return !isPresent(itemText) ? "" : itemText.toString();
6330
6661
  }
6662
+ shouldResolveSuggestedItem(currentText) {
6663
+ return !(this.allowCustom && this.suggest && this.focusedItemText !== currentText);
6664
+ }
6331
6665
  /**
6332
6666
  * Focuses the first match when there's text in the input field, but no focused item.
6333
6667
  */
@@ -6516,7 +6850,7 @@ class ComboBoxComponent extends MultiTabStop {
6516
6850
  this.zone.run(() => {
6517
6851
  if (valueHasChanged) {
6518
6852
  const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
6519
- if (lowerCaseMatch || unresolvedSelection) {
6853
+ if ((lowerCaseMatch && this.shouldResolveSuggestedItem(currentText)) || unresolvedSelection) {
6520
6854
  this.selectionService.change(this.selectionService.focused);
6521
6855
  }
6522
6856
  else {
@@ -6532,8 +6866,8 @@ class ComboBoxComponent extends MultiTabStop {
6532
6866
  this.togglePopup(false);
6533
6867
  }
6534
6868
  }
6535
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
6536
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ComboBoxComponent, isStandalone: true, selector: "kendo-combobox", inputs: { icon: "icon", svgIcon: "svgIcon", inputAttributes: "inputAttributes", showStickyHeader: "showStickyHeader", focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur", escape: "escape" }, host: { properties: { "class.k-readonly": "this.readonly", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
6869
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
6870
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: ComboBoxComponent, isStandalone: true, selector: "kendo-combobox", inputs: { icon: "icon", svgIcon: "svgIcon", inputAttributes: "inputAttributes", showStickyHeader: "showStickyHeader", focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", popupSettings: "popupSettings", listHeight: "listHeight", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur", escape: "escape" }, host: { properties: { "class.k-readonly": "this.readonly", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
6537
6871
  COMBOBOX_VALUE_ACCESSOR,
6538
6872
  DataService,
6539
6873
  SelectionService,
@@ -6553,7 +6887,8 @@ class ComboBoxComponent extends MultiTabStop {
6553
6887
  {
6554
6888
  provide: MultiTabStop, useExisting: forwardRef(() => ComboBoxComponent)
6555
6889
  },
6556
- { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ComboBoxComponent) }
6890
+ { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ComboBoxComponent) },
6891
+ provideComponentName('combobox')
6557
6892
  ], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "adaptiveRendererComponent", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], exportAs: ["kendoComboBox"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
6558
6893
  <ng-container kendoComboBoxLocalizedMessages
6559
6894
  i18n-noDataText="kendo.combobox.noDataText|The text displayed in the popup when there are no items"
@@ -6570,6 +6905,12 @@ class ComboBoxComponent extends MultiTabStop {
6570
6905
 
6571
6906
  i18n-adaptiveCloseButtonTitle="kendo.combobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
6572
6907
  adaptiveCloseButtonTitle="Close"
6908
+
6909
+ i18n-listboxLabel="kendo.combobox.listboxLabel|The accessible label of the listbox that contains the list of options"
6910
+ listboxLabel="Options"
6911
+
6912
+ i18n-useCustomValueText="kendo.combobox.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
6913
+ useCustomValueText="{{ 'Use &quot;{customValue}&quot;' }}"
6573
6914
  >
6574
6915
  </ng-container>
6575
6916
 
@@ -6591,12 +6932,12 @@ class ComboBoxComponent extends MultiTabStop {
6591
6932
  }
6592
6933
  <input
6593
6934
  kendoSearchbar
6594
- [ariaExpanded]="isOpen"
6935
+ [ariaExpanded]="isAdaptive ? false : isOpen"
6595
6936
  [ariaControls]="ariaControls"
6596
6937
  [id]="focusableId"
6597
6938
  [isLoading]="loading"
6598
6939
  [isSuggestable]="suggest"
6599
- [isFilterable]="filterable"
6940
+ [hasListAutocomplete]="filterable"
6600
6941
  [activeDescendant]="activeDescendant"
6601
6942
  [userInput]="text"
6602
6943
  [suggestedText]="getSuggestion()"
@@ -6616,7 +6957,6 @@ class ComboBoxComponent extends MultiTabStop {
6616
6957
  <span
6617
6958
  class="k-clear-value"
6618
6959
  [style.visibility]="clearButtonVisibility"
6619
- aria-hidden="true"
6620
6960
  [attr.title]="messageFor('clearTitle')"
6621
6961
  (click)="clearValue($event)"
6622
6962
  [kendoEventsOutsideAngular]="{
@@ -6711,24 +7051,27 @@ class ComboBoxComponent extends MultiTabStop {
6711
7051
  [show]="isOpen"
6712
7052
  [virtual]="virtual"
6713
7053
  [showStickyHeader]="showStickyHeader"
7054
+ [ariaLabel]="messageFor('listboxLabel')"
7055
+ [text]="text"
7056
+ [allowCustom]="allowCustom"
6714
7057
  (pageChange)="pageChange($event)"
6715
7058
  >
7059
+ <!--no-data template-->
7060
+ @if (data.length === 0) {
7061
+ <div class="k-no-data" [attr.aria-live]="'polite'">
7062
+ @if (noDataTemplate) {
7063
+ <ng-template
7064
+ [templateContext]="{
7065
+ templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
7066
+ }">
7067
+ </ng-template>
7068
+ }
7069
+ @if (!noDataTemplate) {
7070
+ <div>{{ messageFor('noDataText') }}</div>
7071
+ }
7072
+ </div>
7073
+ }
6716
7074
  </kendo-list>
6717
- <!--no-data template-->
6718
- @if (data.length === 0) {
6719
- <div class="k-no-data" [attr.aria-live]="'polite'">
6720
- @if (noDataTemplate) {
6721
- <ng-template
6722
- [templateContext]="{
6723
- templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
6724
- }">
6725
- </ng-template>
6726
- }
6727
- @if (!noDataTemplate) {
6728
- <div>{{ messageFor('noDataText') }}</div>
6729
- }
6730
- </div>
6731
- }
6732
7075
  <!--footer template-->
6733
7076
  @if (footerTemplate) {
6734
7077
  <ng-template
@@ -6738,9 +7081,9 @@ class ComboBoxComponent extends MultiTabStop {
6738
7081
  </ng-template>
6739
7082
  }
6740
7083
  </ng-template>
6741
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "isFilterable", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
7084
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
6742
7085
  }
6743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxComponent, decorators: [{
7086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxComponent, decorators: [{
6744
7087
  type: Component,
6745
7088
  args: [{
6746
7089
  exportAs: 'kendoComboBox',
@@ -6764,7 +7107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
6764
7107
  {
6765
7108
  provide: MultiTabStop, useExisting: forwardRef(() => ComboBoxComponent)
6766
7109
  },
6767
- { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ComboBoxComponent) }
7110
+ { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ComboBoxComponent) },
7111
+ provideComponentName('combobox')
6768
7112
  ],
6769
7113
  selector: 'kendo-combobox',
6770
7114
  template: `
@@ -6783,6 +7127,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
6783
7127
 
6784
7128
  i18n-adaptiveCloseButtonTitle="kendo.combobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
6785
7129
  adaptiveCloseButtonTitle="Close"
7130
+
7131
+ i18n-listboxLabel="kendo.combobox.listboxLabel|The accessible label of the listbox that contains the list of options"
7132
+ listboxLabel="Options"
7133
+
7134
+ i18n-useCustomValueText="kendo.combobox.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
7135
+ useCustomValueText="{{ 'Use &quot;{customValue}&quot;' }}"
6786
7136
  >
6787
7137
  </ng-container>
6788
7138
 
@@ -6804,12 +7154,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
6804
7154
  }
6805
7155
  <input
6806
7156
  kendoSearchbar
6807
- [ariaExpanded]="isOpen"
7157
+ [ariaExpanded]="isAdaptive ? false : isOpen"
6808
7158
  [ariaControls]="ariaControls"
6809
7159
  [id]="focusableId"
6810
7160
  [isLoading]="loading"
6811
7161
  [isSuggestable]="suggest"
6812
- [isFilterable]="filterable"
7162
+ [hasListAutocomplete]="filterable"
6813
7163
  [activeDescendant]="activeDescendant"
6814
7164
  [userInput]="text"
6815
7165
  [suggestedText]="getSuggestion()"
@@ -6829,7 +7179,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
6829
7179
  <span
6830
7180
  class="k-clear-value"
6831
7181
  [style.visibility]="clearButtonVisibility"
6832
- aria-hidden="true"
6833
7182
  [attr.title]="messageFor('clearTitle')"
6834
7183
  (click)="clearValue($event)"
6835
7184
  [kendoEventsOutsideAngular]="{
@@ -6924,24 +7273,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
6924
7273
  [show]="isOpen"
6925
7274
  [virtual]="virtual"
6926
7275
  [showStickyHeader]="showStickyHeader"
7276
+ [ariaLabel]="messageFor('listboxLabel')"
7277
+ [text]="text"
7278
+ [allowCustom]="allowCustom"
6927
7279
  (pageChange)="pageChange($event)"
6928
7280
  >
7281
+ <!--no-data template-->
7282
+ @if (data.length === 0) {
7283
+ <div class="k-no-data" [attr.aria-live]="'polite'">
7284
+ @if (noDataTemplate) {
7285
+ <ng-template
7286
+ [templateContext]="{
7287
+ templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
7288
+ }">
7289
+ </ng-template>
7290
+ }
7291
+ @if (!noDataTemplate) {
7292
+ <div>{{ messageFor('noDataText') }}</div>
7293
+ }
7294
+ </div>
7295
+ }
6929
7296
  </kendo-list>
6930
- <!--no-data template-->
6931
- @if (data.length === 0) {
6932
- <div class="k-no-data" [attr.aria-live]="'polite'">
6933
- @if (noDataTemplate) {
6934
- <ng-template
6935
- [templateContext]="{
6936
- templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
6937
- }">
6938
- </ng-template>
6939
- }
6940
- @if (!noDataTemplate) {
6941
- <div>{{ messageFor('noDataText') }}</div>
6942
- }
6943
- </div>
6944
- }
6945
7297
  <!--footer template-->
6946
7298
  @if (footerTemplate) {
6947
7299
  <ng-template
@@ -7134,10 +7486,10 @@ class ValueTemplateDirective {
7134
7486
  constructor(templateRef) {
7135
7487
  this.templateRef = templateRef;
7136
7488
  }
7137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ValueTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
7138
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ValueTemplateDirective, isStandalone: true, selector: "[kendoDropDownListValueTemplate],[kendoDropDownTreeValueTemplate]", ngImport: i0 });
7489
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ValueTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
7490
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: ValueTemplateDirective, isStandalone: true, selector: "[kendoDropDownListValueTemplate],[kendoDropDownTreeValueTemplate]", ngImport: i0 });
7139
7491
  }
7140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ValueTemplateDirective, decorators: [{
7492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ValueTemplateDirective, decorators: [{
7141
7493
  type: Directive,
7142
7494
  args: [{
7143
7495
  selector: '[kendoDropDownListValueTemplate],[kendoDropDownTreeValueTemplate]',
@@ -7164,10 +7516,10 @@ class FilterInputDirective {
7164
7516
  nextTick(fn) {
7165
7517
  this.zone.runOutsideAngular(() => setTimeout(fn));
7166
7518
  }
7167
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FilterInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
7168
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: FilterInputDirective, isStandalone: true, selector: "[filterInput]", inputs: { focused: ["filterInput", "focused"] }, usesOnChanges: true, ngImport: i0 });
7519
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FilterInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
7520
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: FilterInputDirective, isStandalone: true, selector: "[filterInput]", inputs: { focused: ["filterInput", "focused"] }, usesOnChanges: true, ngImport: i0 });
7169
7521
  }
7170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FilterInputDirective, decorators: [{
7522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FilterInputDirective, decorators: [{
7171
7523
  type: Directive,
7172
7524
  args: [{
7173
7525
  selector: '[filterInput]',
@@ -7300,7 +7652,7 @@ class DropDownListComponent {
7300
7652
  * @hidden
7301
7653
  */
7302
7654
  get ariaLive() {
7303
- return this.filterable ? 'polite' : 'off';
7655
+ return this.filterable ? 'polite' : null;
7304
7656
  }
7305
7657
  /**
7306
7658
  * Shows or hides the current group sticky header when using grouped data.
@@ -7689,7 +8041,7 @@ class DropDownListComponent {
7689
8041
  role = 'combobox';
7690
8042
  haspopup = 'listbox';
7691
8043
  get hostAriaInvalid() {
7692
- return this.formControl?.invalid ? true : null;
8044
+ return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
7693
8045
  }
7694
8046
  /**
7695
8047
  * @hidden
@@ -8538,8 +8890,6 @@ class DropDownListComponent {
8538
8890
  }
8539
8891
  closeActionSheet() {
8540
8892
  this.actionSheet.toggle(false);
8541
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
8542
- this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
8543
8893
  if (this.filterable) {
8544
8894
  this.adaptiveRenderer.searchBarValue = '';
8545
8895
  this.filterChange.emit('');
@@ -8549,8 +8899,6 @@ class DropDownListComponent {
8549
8899
  openActionSheet() {
8550
8900
  this.actionSheet.toggle(true);
8551
8901
  this.cdr.detectChanges();
8552
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
8553
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
8554
8902
  if (!this.dataService.grouped) {
8555
8903
  setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
8556
8904
  }
@@ -8564,8 +8912,8 @@ class DropDownListComponent {
8564
8912
  this.selectionService.focus(this.selectionService.focused);
8565
8913
  this.opened.emit();
8566
8914
  }
8567
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", 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: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
8568
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DropDownListComponent, isStandalone: true, selector: "kendo-dropdownlist", inputs: { customIconClass: "customIconClass", showStickyHeader: "showStickyHeader", icon: "icon", svgIcon: "svgIcon", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", 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", leftRightArrowsNavigation: "leftRightArrowsNavigation", 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()" }, properties: { "class.k-readonly": "this.readonly", "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.aria-disabled": "this.isDisabledClass", "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-invalid": "this.hostAriaInvalid" } }, providers: [
8915
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", 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: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
8916
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: DropDownListComponent, isStandalone: true, selector: "kendo-dropdownlist", inputs: { customIconClass: "customIconClass", showStickyHeader: "showStickyHeader", icon: "icon", svgIcon: "svgIcon", loading: "loading", data: "data", value: "value", textField: "textField", valueField: "valueField", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", 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", leftRightArrowsNavigation: "leftRightArrowsNavigation", 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()" }, properties: { "class.k-readonly": "this.readonly", "class.k-dropdownlist": "this.hostClasses", "class.k-picker": "this.hostClasses", "class.k-disabled": "this.isDisabledClass", "attr.aria-disabled": "this.isDisabledClass", "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-invalid": "this.hostAriaInvalid" } }, providers: [
8569
8917
  DROPDOWNLIST_VALUE_ACCESSOR,
8570
8918
  DataService,
8571
8919
  SelectionService,
@@ -8582,7 +8930,8 @@ class DropDownListComponent {
8582
8930
  {
8583
8931
  provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)
8584
8932
  },
8585
- { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DropDownListComponent) }
8933
+ { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DropDownListComponent) },
8934
+ provideComponentName('dropdownlist')
8586
8935
  ], queries: [{ propertyName: "itemTemplate", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "adaptiveRenderer", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoDropDownList"], usesOnChanges: true, ngImport: i0, template: `
8587
8936
  <ng-container kendoDropDownListLocalizedMessages
8588
8937
  i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
@@ -8602,6 +8951,9 @@ class DropDownListComponent {
8602
8951
 
8603
8952
  i18n-filterPlaceholder="kendo.dropdownlist.filterPlaceholder|The text for the input's placeholder when filtering is enabled"
8604
8953
  filterInputPlaceholder="Filter"
8954
+
8955
+ i18n-listboxLabel="kendo.dropdownlist.listboxLabel|The accessible label of the listbox that contains the list of options"
8956
+ listboxLabel="Options"
8605
8957
  >
8606
8958
  </ng-container>
8607
8959
  <span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
@@ -8666,7 +9018,6 @@ class DropDownListComponent {
8666
9018
  class="k-searchbox k-input"
8667
9019
  [ngClass]="filterInputClasses">
8668
9020
  <kendo-icon-wrapper
8669
- class="k-icon"
8670
9021
  innerCssClass="k-input-icon"
8671
9022
  name="search"
8672
9023
  [svgIcon]="searchIcon">
@@ -8717,24 +9068,25 @@ class DropDownListComponent {
8717
9068
  [virtual]="virtual"
8718
9069
  [ariaLive]="ariaLive"
8719
9070
  [showStickyHeader]="showStickyHeader"
9071
+ [ariaLabel]="messageFor('listboxLabel')"
8720
9072
  (pageChange)="pageChange($event)"
8721
9073
  [defaultItem]="defaultItem">
9074
+ <!--no-data template-->
9075
+ @if (data.length === 0) {
9076
+ <div class="k-no-data" [attr.aria-live]="'polite'">
9077
+ @if (noDataTemplate) {
9078
+ <ng-template
9079
+ [templateContext]="{
9080
+ templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
9081
+ }">
9082
+ </ng-template>
9083
+ }
9084
+ @if (!noDataTemplate) {
9085
+ <div>{{ messageFor('noDataText') }}</div>
9086
+ }
9087
+ </div>
9088
+ }
8722
9089
  </kendo-list>
8723
- <!--no-data template-->
8724
- @if (data.length === 0) {
8725
- <div class="k-no-data" [attr.aria-live]="'polite'">
8726
- @if (noDataTemplate) {
8727
- <ng-template
8728
- [templateContext]="{
8729
- templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
8730
- }">
8731
- </ng-template>
8732
- }
8733
- @if (!noDataTemplate) {
8734
- <div>{{ messageFor('noDataText') }}</div>
8735
- }
8736
- </div>
8737
- }
8738
9090
  <!--footer template-->
8739
9091
  @if (footerTemplate) {
8740
9092
  <ng-template
@@ -8744,9 +9096,9 @@ class DropDownListComponent {
8744
9096
  </ng-template>
8745
9097
  }
8746
9098
  </ng-template>
8747
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
9099
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
8748
9100
  }
8749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownListComponent, decorators: [{
9101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownListComponent, decorators: [{
8750
9102
  type: Component,
8751
9103
  args: [{
8752
9104
  exportAs: 'kendoDropDownList',
@@ -8767,7 +9119,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8767
9119
  {
8768
9120
  provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)
8769
9121
  },
8770
- { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DropDownListComponent) }
9122
+ { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => DropDownListComponent) },
9123
+ provideComponentName('dropdownlist')
8771
9124
  ],
8772
9125
  selector: 'kendo-dropdownlist',
8773
9126
  template: `
@@ -8789,6 +9142,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8789
9142
 
8790
9143
  i18n-filterPlaceholder="kendo.dropdownlist.filterPlaceholder|The text for the input's placeholder when filtering is enabled"
8791
9144
  filterInputPlaceholder="Filter"
9145
+
9146
+ i18n-listboxLabel="kendo.dropdownlist.listboxLabel|The accessible label of the listbox that contains the list of options"
9147
+ listboxLabel="Options"
8792
9148
  >
8793
9149
  </ng-container>
8794
9150
  <span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
@@ -8853,7 +9209,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8853
9209
  class="k-searchbox k-input"
8854
9210
  [ngClass]="filterInputClasses">
8855
9211
  <kendo-icon-wrapper
8856
- class="k-icon"
8857
9212
  innerCssClass="k-input-icon"
8858
9213
  name="search"
8859
9214
  [svgIcon]="searchIcon">
@@ -8904,24 +9259,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8904
9259
  [virtual]="virtual"
8905
9260
  [ariaLive]="ariaLive"
8906
9261
  [showStickyHeader]="showStickyHeader"
9262
+ [ariaLabel]="messageFor('listboxLabel')"
8907
9263
  (pageChange)="pageChange($event)"
8908
9264
  [defaultItem]="defaultItem">
9265
+ <!--no-data template-->
9266
+ @if (data.length === 0) {
9267
+ <div class="k-no-data" [attr.aria-live]="'polite'">
9268
+ @if (noDataTemplate) {
9269
+ <ng-template
9270
+ [templateContext]="{
9271
+ templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
9272
+ }">
9273
+ </ng-template>
9274
+ }
9275
+ @if (!noDataTemplate) {
9276
+ <div>{{ messageFor('noDataText') }}</div>
9277
+ }
9278
+ </div>
9279
+ }
8909
9280
  </kendo-list>
8910
- <!--no-data template-->
8911
- @if (data.length === 0) {
8912
- <div class="k-no-data" [attr.aria-live]="'polite'">
8913
- @if (noDataTemplate) {
8914
- <ng-template
8915
- [templateContext]="{
8916
- templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
8917
- }">
8918
- </ng-template>
8919
- }
8920
- @if (!noDataTemplate) {
8921
- <div>{{ messageFor('noDataText') }}</div>
8922
- }
8923
- </div>
8924
- }
8925
9281
  <!--footer template-->
8926
9282
  @if (footerTemplate) {
8927
9283
  <ng-template
@@ -9139,10 +9495,10 @@ class TagTemplateDirective {
9139
9495
  constructor(templateRef) {
9140
9496
  this.templateRef = templateRef;
9141
9497
  }
9142
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9143
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: TagTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectTagTemplate],[kendoMultiSelectTreeTagTemplate]", ngImport: i0 });
9498
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TagTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9499
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: TagTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectTagTemplate],[kendoMultiSelectTreeTagTemplate]", ngImport: i0 });
9144
9500
  }
9145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagTemplateDirective, decorators: [{
9501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TagTemplateDirective, decorators: [{
9146
9502
  type: Directive,
9147
9503
  args: [{
9148
9504
  selector: '[kendoMultiSelectTagTemplate],[kendoMultiSelectTreeTagTemplate]',
@@ -9161,10 +9517,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9161
9517
  *
9162
9518
  * @example
9163
9519
  * ```ts
9164
- * _@Component({
9520
+ * @Component({
9165
9521
  * selector: 'my-app',
9166
9522
  * template: `
9167
- * <kendo-multiselect kendoMultiSelectSummaryTag [data]="items">
9523
+ * <kendo-multiselect [summaryTagAfter]="1" [data]="items">
9168
9524
  * <ng-template kendoMultiSelectGroupTagTemplate let-dataItems>
9169
9525
  * <span>{{dataItems.length}} item(s) selected</span>
9170
9526
  * </ng-template>
@@ -9181,10 +9537,10 @@ class GroupTagTemplateDirective {
9181
9537
  constructor(templateRef) {
9182
9538
  this.templateRef = templateRef;
9183
9539
  }
9184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GroupTagTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9185
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: GroupTagTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectGroupTagTemplate],[kendoMultiSelectTreeGroupTagTemplate]", ngImport: i0 });
9540
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: GroupTagTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9541
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: GroupTagTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectGroupTagTemplate],[kendoMultiSelectTreeGroupTagTemplate]", ngImport: i0 });
9186
9542
  }
9187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GroupTagTemplateDirective, decorators: [{
9543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: GroupTagTemplateDirective, decorators: [{
9188
9544
  type: Directive,
9189
9545
  args: [{
9190
9546
  selector: '[kendoMultiSelectGroupTagTemplate],[kendoMultiSelectTreeGroupTagTemplate]',
@@ -9242,6 +9598,7 @@ class TagListComponent {
9242
9598
  disabled;
9243
9599
  tagPrefix;
9244
9600
  id;
9601
+ ariaLabel;
9245
9602
  set size(size) {
9246
9603
  this.renderer.removeClass(this.hostElement.nativeElement, getSizeClass('chip-list', this.size));
9247
9604
  if (size) {
@@ -9264,7 +9621,11 @@ class TagListComponent {
9264
9621
  return this.id;
9265
9622
  }
9266
9623
  taglistRole = 'listbox';
9624
+ get hostAriaLabel() {
9625
+ return this.ariaLabel || null;
9626
+ }
9267
9627
  multiselectable = true;
9628
+ ariaOrientation = 'horizontal';
9268
9629
  _size;
9269
9630
  constructor(renderer, hostElement) {
9270
9631
  this.renderer = renderer;
@@ -9318,8 +9679,8 @@ class TagListComponent {
9318
9679
  return prop.find(item => item in tag);
9319
9680
  }
9320
9681
  }
9321
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9322
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TagListComponent, isStandalone: true, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClass", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-multiselectable": "this.multiselectable" } }, ngImport: i0, template: `
9682
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TagListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9683
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: TagListComponent, isStandalone: true, selector: "kendo-taglist", inputs: { tags: "tags", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", focused: "focused", template: "template", groupTemplate: "groupTemplate", disabled: "disabled", tagPrefix: "tagPrefix", id: "id", ariaLabel: "ariaLabel", size: "size", rounded: "rounded", fillMode: "fillMode", disabledIndices: "disabledIndices" }, outputs: { removeTag: "removeTag" }, host: { properties: { "class.k-chip-list": "this.hostClass", "attr.id": "this.hostId", "attr.role": "this.taglistRole", "attr.aria-label": "this.hostAriaLabel", "attr.aria-multiselectable": "this.multiselectable", "attr.aria-orientation": "this.ariaOrientation" } }, ngImport: i0, template: `
9323
9684
  @for (tag of tags; track $index; let index = $index) {
9324
9685
  <div
9325
9686
  [attr.id]="itemId(tag, index)"
@@ -9345,7 +9706,7 @@ class TagListComponent {
9345
9706
  >
9346
9707
  <span class="k-chip-content">
9347
9708
  @if (isGroupTag(tag)) {
9348
- <span class="k-chip-label k-text-ellipsis">
9709
+ <span class="k-chip-label">
9349
9710
  @if (groupTemplate) {
9350
9711
  <ng-template
9351
9712
  [templateContext]="{
@@ -9359,7 +9720,7 @@ class TagListComponent {
9359
9720
  }
9360
9721
  </span>
9361
9722
  } @else {
9362
- <span class="k-chip-label k-text-ellipsis">
9723
+ <span class="k-chip-label">
9363
9724
  @if (template) {
9364
9725
  <ng-template
9365
9726
  [templateContext]="{
@@ -9375,11 +9736,13 @@ class TagListComponent {
9375
9736
  }
9376
9737
  </span>
9377
9738
  <span class="k-chip-actions">
9378
- <span aria-label="delete" [attr.aria-hidden]="index !== focused" class="k-chip-action k-chip-remove-action">
9739
+ <span class="k-chip-action k-chip-remove-action">
9379
9740
  <kendo-icon-wrapper
9741
+ [attr.aria-hidden]="index !== focused"
9380
9742
  (mousedown)="deleteTag($event, tag, index)"
9381
9743
  name="x-circle"
9382
9744
  [svgIcon]="xCircleIcon"
9745
+ size="small"
9383
9746
  >
9384
9747
  </kendo-icon-wrapper>
9385
9748
  </span>
@@ -9389,7 +9752,7 @@ class TagListComponent {
9389
9752
  <ng-content></ng-content>
9390
9753
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
9391
9754
  }
9392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagListComponent, decorators: [{
9755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: TagListComponent, decorators: [{
9393
9756
  type: Component,
9394
9757
  args: [{
9395
9758
  selector: 'kendo-taglist',
@@ -9419,7 +9782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9419
9782
  >
9420
9783
  <span class="k-chip-content">
9421
9784
  @if (isGroupTag(tag)) {
9422
- <span class="k-chip-label k-text-ellipsis">
9785
+ <span class="k-chip-label">
9423
9786
  @if (groupTemplate) {
9424
9787
  <ng-template
9425
9788
  [templateContext]="{
@@ -9433,7 +9796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9433
9796
  }
9434
9797
  </span>
9435
9798
  } @else {
9436
- <span class="k-chip-label k-text-ellipsis">
9799
+ <span class="k-chip-label">
9437
9800
  @if (template) {
9438
9801
  <ng-template
9439
9802
  [templateContext]="{
@@ -9449,11 +9812,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9449
9812
  }
9450
9813
  </span>
9451
9814
  <span class="k-chip-actions">
9452
- <span aria-label="delete" [attr.aria-hidden]="index !== focused" class="k-chip-action k-chip-remove-action">
9815
+ <span class="k-chip-action k-chip-remove-action">
9453
9816
  <kendo-icon-wrapper
9817
+ [attr.aria-hidden]="index !== focused"
9454
9818
  (mousedown)="deleteTag($event, tag, index)"
9455
9819
  name="x-circle"
9456
9820
  [svgIcon]="xCircleIcon"
9821
+ size="small"
9457
9822
  >
9458
9823
  </kendo-icon-wrapper>
9459
9824
  </span>
@@ -9485,6 +9850,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9485
9850
  type: Input
9486
9851
  }], id: [{
9487
9852
  type: Input
9853
+ }], ariaLabel: [{
9854
+ type: Input
9488
9855
  }], size: [{
9489
9856
  type: Input
9490
9857
  }], rounded: [{
@@ -9504,9 +9871,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9504
9871
  }], taglistRole: [{
9505
9872
  type: HostBinding,
9506
9873
  args: ['attr.role']
9874
+ }], hostAriaLabel: [{
9875
+ type: HostBinding,
9876
+ args: ['attr.aria-label']
9507
9877
  }], multiselectable: [{
9508
9878
  type: HostBinding,
9509
9879
  args: ['attr.aria-multiselectable']
9880
+ }], ariaOrientation: [{
9881
+ type: HostBinding,
9882
+ args: ['attr.aria-orientation']
9510
9883
  }] } });
9511
9884
 
9512
9885
  const MULTISELECT_VALUE_ACCESSOR = {
@@ -9573,6 +9946,8 @@ class MultiSelectComponent {
9573
9946
  popupRef;
9574
9947
  text;
9575
9948
  tags;
9949
+ isAllSelected = false;
9950
+ isPartiallySelected = false;
9576
9951
  focusedTagIndex = undefined;
9577
9952
  /**
9578
9953
  * @hidden
@@ -9594,7 +9969,7 @@ class MultiSelectComponent {
9594
9969
  * @hidden
9595
9970
  */
9596
9971
  get ariaControls() {
9597
- return this.isOpen ? this.listBoxId : undefined;
9972
+ return (!this.isAdaptive && this.isOpen) ? this.listBoxId : undefined;
9598
9973
  }
9599
9974
  /**
9600
9975
  * @hidden
@@ -9611,12 +9986,12 @@ class MultiSelectComponent {
9611
9986
  }
9612
9987
  /**
9613
9988
  * Focuses a specific item in the MultiSelect based on the provided index.
9614
- * Sets the index to `-1` to focus the custom item if available.
9989
+ * Sets the index to `-1` to focus the custom item if available, or `-2` to focus the Select All item.
9615
9990
  * Pass `null` or an invalid index to remove focus.
9616
9991
  */
9617
9992
  focusItemAt(index) {
9618
- const minIndex = this.allowCustom ? -1 : 0;
9619
- const isInRange = minIndex <= 0 && index < this.data.length;
9993
+ const minIndex = this.selectAll ? -2 : this.allowCustom ? -1 : 0;
9994
+ const isInRange = minIndex <= index && index < this.data.length;
9620
9995
  if (isPresent(index) && isInRange && !this.disabledItemsService.isIndexDisabled(index)) {
9621
9996
  this.selectionService.focus(index);
9622
9997
  }
@@ -9632,6 +10007,31 @@ class MultiSelectComponent {
9632
10007
  this.searchbar.focus();
9633
10008
  }
9634
10009
  }
10010
+ /**
10011
+ * @hidden
10012
+ */
10013
+ handleSelectAllStateChange(checkBoxState) {
10014
+ const availableItems = this.availableItemsForSelectAll;
10015
+ let newValue;
10016
+ if (checkBoxState === true) {
10017
+ const toAdd = availableItems.filter(item => !this.isItemSelected(item));
10018
+ newValue = [...this.value, ...toAdd];
10019
+ }
10020
+ else if (checkBoxState === false) {
10021
+ newValue = this.value.filter(v => !availableItems.some(item => getter(item, this.valueField) === getter(v, this.valueField)));
10022
+ }
10023
+ else {
10024
+ return;
10025
+ }
10026
+ this.preserveFocusIndex = -2;
10027
+ this.value = newValue;
10028
+ this.isAllSelected = this.isAllSelectedComputed;
10029
+ this.isPartiallySelected = this.isPartiallySelectedComputed;
10030
+ this.emitValueChange();
10031
+ this.cdr.markForCheck();
10032
+ const state = this.isAllSelected ? 'checked' : this.isPartiallySelected ? 'indeterminate' : 'unchecked';
10033
+ this.selectAllChange.emit(state);
10034
+ }
9635
10035
  /**
9636
10036
  * @hidden
9637
10037
  */
@@ -9684,8 +10084,9 @@ class MultiSelectComponent {
9684
10084
  isUntouched(this.wrapper.nativeElement) ||
9685
10085
  this.formControl?.updateOn === 'blur') {
9686
10086
  this._zone.run(() => {
10087
+ const preserveFilter = this.allowCustom && !!this.text;
9687
10088
  this.closePopup();
9688
- if (!(this.isOpen && this.allowCustom)) {
10089
+ if (!preserveFilter) {
9689
10090
  this.clearFilter();
9690
10091
  }
9691
10092
  this.inputBlur.emit();
@@ -9737,6 +10138,22 @@ class MultiSelectComponent {
9737
10138
  * By default the sticky header is displayed ([see example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/grouping#sticky-header)).
9738
10139
  */
9739
10140
  showStickyHeader = true;
10141
+ /**
10142
+ * Renders a Select All sticky header item at the top of the popup list.
10143
+ * Clicking it selects or deselects all currently available items and triggers the `valueChange` event.
10144
+ *
10145
+ * @default false
10146
+ */
10147
+ selectAll = false;
10148
+ /**
10149
+ * Sets the number of selected items after which a summary chip replaces the remaining individual chips.
10150
+ * Set to `0` to always show a single summary chip.
10151
+ * Pass `null` to disable summarization.
10152
+ * When `selectAll` is enabled and this input is not explicitly set, defaults to `10`.
10153
+ *
10154
+ * @default null
10155
+ */
10156
+ summaryTagAfter;
9740
10157
  /**
9741
10158
  * @hidden
9742
10159
  */
@@ -10081,6 +10498,11 @@ class MultiSelectComponent {
10081
10498
  * You can prevent tag removal by calling `preventDefault()` on the event.
10082
10499
  */
10083
10500
  removeTag = new EventEmitter();
10501
+ /**
10502
+ * Emitted when the Select All item state changes.
10503
+ * Useful for virtualization scenarios where the consumer manages the full dataset.
10504
+ */
10505
+ selectAllChange = new EventEmitter();
10084
10506
  container;
10085
10507
  searchbar;
10086
10508
  tagList;
@@ -10154,6 +10576,33 @@ class MultiSelectComponent {
10154
10576
  _fillMode;
10155
10577
  _valueHolder = [];
10156
10578
  isCustomValueSelected = false;
10579
+ preserveFocusIndex = null;
10580
+ get isAllSelectedComputed() {
10581
+ const availableItems = this.availableItemsForSelectAll;
10582
+ if (availableItems.length === 0) {
10583
+ return false;
10584
+ }
10585
+ const allItemsSelected = availableItems.every(item => this.isItemSelected(item));
10586
+ return allItemsSelected;
10587
+ }
10588
+ get isPartiallySelectedComputed() {
10589
+ if (this.isAllSelected) {
10590
+ return false;
10591
+ }
10592
+ const availableItems = this.availableItemsForSelectAll;
10593
+ const hasPartialSelection = availableItems.some(item => this.isItemSelected(item));
10594
+ return hasPartialSelection;
10595
+ }
10596
+ get hasCustomValueItem() {
10597
+ return this.allowCustom && !!this.text;
10598
+ }
10599
+ get availableItemsForSelectAll() {
10600
+ const pageData = this.data;
10601
+ const data = this.dataService.grouped
10602
+ ? pageData.filter(item => !item.header).map(item => item.value)
10603
+ : pageData;
10604
+ return data;
10605
+ }
10157
10606
  constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, injector, adaptiveService) {
10158
10607
  this.wrapper = wrapper;
10159
10608
  this.localization = localization;
@@ -10257,6 +10706,7 @@ class MultiSelectComponent {
10257
10706
  * @hidden
10258
10707
  */
10259
10708
  change(event) {
10709
+ this.preserveFocusIndex = null;
10260
10710
  if (event.isMultipleSelection) {
10261
10711
  // Existing items.
10262
10712
  if (isPresent(event.added) && event.added.length > 0) {
@@ -10328,14 +10778,17 @@ class MultiSelectComponent {
10328
10778
  const data = this.getDataItems();
10329
10779
  const selection = selectedIndices(this.value, data, this.valueField);
10330
10780
  this.selectionService.resetSelection(selection);
10331
- if (this.disabledItemsService.isIndexDisabled(this.selectionService.focused)) {
10781
+ if (this.preserveFocusIndex !== null) {
10782
+ this.selectionService.focused = this.preserveFocusIndex;
10783
+ }
10784
+ else if (this.disabledItemsService.isIndexDisabled(this.selectionService.focused)) {
10332
10785
  this.selectionService.focused = this.firstFocusableIndex(0);
10333
10786
  }
10334
10787
  if (this.isOpen && this.selectionService.focused === undefined) {
10335
10788
  if (this.dataService.itemsCount > 0) {
10336
10789
  this.selectionService.focused = this.firstFocusableIndex(0);
10337
- if (this.allowCustom) {
10338
- this.selectionService.focused = 0;
10790
+ if (this.hasCustomValueItem) {
10791
+ this.selectionService.focused = -1;
10339
10792
  }
10340
10793
  }
10341
10794
  else if (this.allowCustom) {
@@ -10356,8 +10809,9 @@ class MultiSelectComponent {
10356
10809
  })
10357
10810
  .filter(dataItem => isPresent(dataItem));
10358
10811
  }
10359
- this.tags = this.tagMapper(this.selectedDataItems.slice(0));
10812
+ this.tags = this.buildTags(this.selectedDataItems.slice(0));
10360
10813
  this.disabledIndices = this.disabledItemsMapper();
10814
+ this.updateSelectAllState();
10361
10815
  this.cdr.markForCheck();
10362
10816
  }
10363
10817
  /**
@@ -10378,6 +10832,9 @@ class MultiSelectComponent {
10378
10832
  else {
10379
10833
  this.searchTextAndFocus(text);
10380
10834
  }
10835
+ if (this.selectAll && this.allowCustom && text) {
10836
+ this.selectionService.focused = -1;
10837
+ }
10381
10838
  this.searchbar.setInputSize();
10382
10839
  }
10383
10840
  /**
@@ -10386,6 +10843,7 @@ class MultiSelectComponent {
10386
10843
  pageChange(event) {
10387
10844
  const virtual = this.virtual;
10388
10845
  virtual.skip = event.skip;
10846
+ this.updateSelectAllState();
10389
10847
  }
10390
10848
  /**
10391
10849
  * @hidden
@@ -10424,7 +10882,7 @@ class MultiSelectComponent {
10424
10882
  const action = this.navigationService.process({
10425
10883
  current: focused,
10426
10884
  max: this.dataService.itemsCount - 1,
10427
- min: this.allowCustom && this.text ? -1 : 0,
10885
+ min: this.selectAll ? -2 : (this.hasCustomValueItem ? -1 : 0),
10428
10886
  open: this.isOpen,
10429
10887
  originalEvent: eventData
10430
10888
  });
@@ -10512,7 +10970,10 @@ class MultiSelectComponent {
10512
10970
  if (isChanged('valueNormalizer', changes)) {
10513
10971
  this.createCustomValueStream();
10514
10972
  }
10515
- if (anyChanged(['textField', 'valueField', 'valuePrimitive'], changes)) {
10973
+ if (anyChanged(['selectAll', 'summaryTagAfter'], changes, false)) {
10974
+ this.refreshSummaryTagMapper();
10975
+ }
10976
+ if (anyChanged(['textField', 'valueField', 'valuePrimitive', 'selectAll', 'summaryTagAfter'], changes)) {
10516
10977
  this.setState(this.value);
10517
10978
  }
10518
10979
  }
@@ -10596,13 +11057,6 @@ class MultiSelectComponent {
10596
11057
  this.cdr.markForCheck();
10597
11058
  this.disabled = isDisabled;
10598
11059
  }
10599
- /**
10600
- * @hidden
10601
- */
10602
- onTagMapperChange() {
10603
- this.tags = this.tagMapper(this.selectedDataItems.slice(0));
10604
- this.cdr.markForCheck();
10605
- }
10606
11060
  /**
10607
11061
  * @hidden
10608
11062
  */
@@ -10789,7 +11243,7 @@ class MultiSelectComponent {
10789
11243
  const itemIndex = this.dataService.indexOf(newValue);
10790
11244
  const customItem = itemIndex === -1;
10791
11245
  if (this.value.indexOf(newValue) === -1) {
10792
- !this.isActionSheetExpanded && (this.tags = this.tagMapper([...this.selectedDataItems, normalizedValue]));
11246
+ !this.isActionSheetExpanded && (this.tags = this.buildTags([...this.selectedDataItems, normalizedValue]));
10793
11247
  if (!customItem) {
10794
11248
  this.selectionService.add(itemIndex);
10795
11249
  }
@@ -10880,6 +11334,13 @@ class MultiSelectComponent {
10880
11334
  if (this.isOpen) {
10881
11335
  event.originalEvent.preventDefault();
10882
11336
  }
11337
+ if (focusedIndex === -2) {
11338
+ if (this.selectAll && this.data.length > 0) {
11339
+ const newState = !this.isAllSelected;
11340
+ this.handleSelectAllStateChange(newState);
11341
+ }
11342
+ return;
11343
+ }
10883
11344
  if (focusedIndex === -1) {
10884
11345
  if (this.allowCustom && this.text) {
10885
11346
  this.addCustomValue(this.text);
@@ -10990,7 +11451,8 @@ class MultiSelectComponent {
10990
11451
  this.nextTick(() => this.selectionService.focus(indexToSelect));
10991
11452
  }
10992
11453
  handleUp(index) {
10993
- this.selectionService.focused = index;
11454
+ this.preserveFocusIndex = null;
11455
+ this.selectionService.focused = this.calculateNavigationIndex(index);
10994
11456
  }
10995
11457
  handleBackspace() {
10996
11458
  if (this.focusedTagIndex !== undefined) {
@@ -11016,13 +11478,24 @@ class MultiSelectComponent {
11016
11478
  }
11017
11479
  }
11018
11480
  handleDownKey(index) {
11481
+ this.preserveFocusIndex = null;
11019
11482
  if (this.isOpen) {
11483
+ index = this.calculateNavigationIndex(index);
11020
11484
  this.selectionService.focused = index || this.firstFocusableIndex(0);
11021
11485
  }
11022
11486
  else {
11023
11487
  this.openPopup();
11024
11488
  }
11025
11489
  }
11490
+ calculateNavigationIndex(index) {
11491
+ if (index === 0 && !isPresent(this.selectionService.focused)) {
11492
+ return this.hasCustomValueItem ? -1 : (this.selectAll ? -2 : 0);
11493
+ }
11494
+ if (index === -1 && !this.hasCustomValueItem) {
11495
+ return this.selectionService.focused < index ? 0 : (this.selectAll ? -2 : 0);
11496
+ }
11497
+ return index;
11498
+ }
11026
11499
  handleRightKey() {
11027
11500
  const last = this.tags.length - 1;
11028
11501
  if (this.focusedTagIndex === last) {
@@ -11162,6 +11635,71 @@ class MultiSelectComponent {
11162
11635
  this.togglePopup(false);
11163
11636
  });
11164
11637
  }
11638
+ buildTags(items) {
11639
+ if (this.allowCustom && this.selectAll && this.valueField) {
11640
+ const data = this.getDataItems();
11641
+ const dataItemValues = new Set(data.map(item => getter(item, this.valueField)));
11642
+ const listItems = [];
11643
+ const customItems = [];
11644
+ items.forEach(item => {
11645
+ const itemValue = getter(item, this.valueField);
11646
+ if (dataItemValues.has(itemValue)) {
11647
+ listItems.push(item);
11648
+ }
11649
+ else {
11650
+ customItems.push(item);
11651
+ }
11652
+ });
11653
+ const hasExplicitSummaryTagAfter = this.summaryTagAfter !== undefined;
11654
+ const totalItems = listItems.length + customItems.length;
11655
+ const result = [];
11656
+ const effectiveSummaryAfter = hasExplicitSummaryTagAfter ? this.summaryTagAfter : (this.selectAll ? 10 : null);
11657
+ const shouldCreateSummaryTag = listItems.length > 0 &&
11658
+ (effectiveSummaryAfter !== null && totalItems > effectiveSummaryAfter);
11659
+ if (shouldCreateSummaryTag) {
11660
+ result.push(listItems);
11661
+ customItems.forEach(item => {
11662
+ result.push(item);
11663
+ });
11664
+ }
11665
+ else {
11666
+ if (listItems.length > 0) {
11667
+ listItems.forEach(item => {
11668
+ result.push(item);
11669
+ });
11670
+ }
11671
+ customItems.forEach(item => {
11672
+ result.push(item);
11673
+ });
11674
+ if (effectiveSummaryAfter !== null && result.length > effectiveSummaryAfter) {
11675
+ const summarized = result.slice(0, effectiveSummaryAfter);
11676
+ summarized.push(result.slice(effectiveSummaryAfter));
11677
+ return summarized;
11678
+ }
11679
+ }
11680
+ return result;
11681
+ }
11682
+ return this.tagMapper(items);
11683
+ }
11684
+ refreshSummaryTagMapper() {
11685
+ const effectiveSummaryAfter = this.summaryTagAfter !== undefined
11686
+ ? this.summaryTagAfter
11687
+ : (this.selectAll ? 10 : null);
11688
+ if (effectiveSummaryAfter !== null) {
11689
+ const showAfter = effectiveSummaryAfter;
11690
+ this.tagMapper = (tags) => {
11691
+ if (tags.length > showAfter) {
11692
+ const result = tags.slice(0, showAfter);
11693
+ result.push(tags.slice(showAfter, tags.length));
11694
+ return result;
11695
+ }
11696
+ return tags.slice ? tags.slice() : tags;
11697
+ };
11698
+ }
11699
+ else {
11700
+ this.tagMapper = (tags) => tags || [];
11701
+ }
11702
+ }
11165
11703
  emitValueChange() {
11166
11704
  this.onChangeCallback(this.value);
11167
11705
  this.valueChange.emit(this.value);
@@ -11234,8 +11772,9 @@ class MultiSelectComponent {
11234
11772
  hasObservers(this.close) ||
11235
11773
  isUntouched(this.wrapper.nativeElement)) {
11236
11774
  this._zone.run(() => {
11775
+ const preserveFilter = this.allowCustom && !!this.text;
11237
11776
  this.closePopup();
11238
- if (!(this.isOpen && this.allowCustom)) {
11777
+ if (!preserveFilter) {
11239
11778
  this.clearFilter();
11240
11779
  }
11241
11780
  this.onBlur.emit();
@@ -11249,8 +11788,17 @@ class MultiSelectComponent {
11249
11788
  this.closePopup();
11250
11789
  }
11251
11790
  }
11252
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: DataService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
11253
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiSelectComponent, isStandalone: true, selector: "kendo-multiselect", inputs: { showStickyHeader: "showStickyHeader", focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer", inputAttributes: "inputAttributes" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur", removeTag: "removeTag" }, host: { properties: { "class.k-readonly": "this.readonly", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
11791
+ isItemSelected(item) {
11792
+ return this.value.some(v => getter(v, this.valueField) === getter(item, this.valueField));
11793
+ }
11794
+ updateSelectAllState() {
11795
+ if (this.selectAll) {
11796
+ this.isAllSelected = this.isAllSelectedComputed;
11797
+ this.isPartiallySelected = this.isPartiallySelectedComputed;
11798
+ }
11799
+ }
11800
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: DataService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
11801
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MultiSelectComponent, isStandalone: true, selector: "kendo-multiselect", inputs: { showStickyHeader: "showStickyHeader", selectAll: "selectAll", summaryTagAfter: "summaryTagAfter", focusableId: "focusableId", autoClose: "autoClose", loading: "loading", data: "data", value: "value", valueField: "valueField", textField: "textField", tabindex: "tabindex", tabIndex: "tabIndex", size: "size", rounded: "rounded", fillMode: "fillMode", placeholder: "placeholder", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", disabled: "disabled", itemDisabled: "itemDisabled", checkboxes: "checkboxes", readonly: "readonly", filterable: "filterable", virtual: "virtual", popupSettings: "popupSettings", listHeight: "listHeight", valuePrimitive: "valuePrimitive", clearButton: "clearButton", tagMapper: "tagMapper", allowCustom: "allowCustom", valueNormalizer: "valueNormalizer", inputAttributes: "inputAttributes" }, outputs: { filterChange: "filterChange", valueChange: "valueChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur", inputFocus: "inputFocus", inputBlur: "inputBlur", removeTag: "removeTag", selectAllChange: "selectAllChange" }, host: { properties: { "class.k-readonly": "this.readonly", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
11254
11802
  MULTISELECT_VALUE_ACCESSOR,
11255
11803
  DataService,
11256
11804
  SelectionService,
@@ -11269,7 +11817,8 @@ class MultiSelectComponent {
11269
11817
  },
11270
11818
  {
11271
11819
  provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => MultiSelectComponent)
11272
- }
11820
+ },
11821
+ provideComponentName('multiselect')
11273
11822
  ], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "customItemTemplate", first: true, predicate: CustomItemTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "adaptiveRendererComponent", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "tagList", first: true, predicate: TagListComponent, descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], exportAs: ["kendoMultiSelect"], usesOnChanges: true, ngImport: i0, template: `
11274
11823
  <ng-container kendoMultiSelectLocalizedMessages
11275
11824
  i18n-noDataText="kendo.multiselect.noDataText|The text displayed in the popup when there are no items"
@@ -11278,6 +11827,9 @@ class MultiSelectComponent {
11278
11827
  i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
11279
11828
  clearTitle="clear"
11280
11829
 
11830
+ i18n-chipListLabel="kendo.multiselect.chipListLabel|The accessible label of the tag list element that contains the selected items"
11831
+ chipListLabel="chip list"
11832
+
11281
11833
  i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
11282
11834
  popupLabel="Options list"
11283
11835
 
@@ -11286,6 +11838,12 @@ class MultiSelectComponent {
11286
11838
 
11287
11839
  i18n-useCustomValueText="kendo.multiselect.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
11288
11840
  useCustomValueText="Use &quot;[[customValue]]&quot;"
11841
+
11842
+ i18n-listboxLabel="kendo.multiselect.listboxLabel|The accessible label of the listbox that contains the list of options"
11843
+ listboxLabel="Options"
11844
+
11845
+ i18n-selectAllText="kendo.multiselect.selectAllText|The text of the Select All item in the popup"
11846
+ selectAllText="Select All"
11289
11847
  >
11290
11848
  </ng-container>
11291
11849
 
@@ -11320,17 +11878,18 @@ class MultiSelectComponent {
11320
11878
  [groupTemplate]="groupTagTemplate"
11321
11879
  [tagPrefix]="tagPrefix"
11322
11880
  [disabledIndices]="disabledIndices"
11881
+ [ariaLabel]="messageFor('chipListLabel')"
11323
11882
  (removeTag)="handleRemoveTag($event)"
11324
11883
  >
11325
11884
  </kendo-taglist>
11326
11885
  <input
11327
11886
  kendoSearchbar
11328
11887
  [ariaControls]="ariaControls"
11329
- [ariaExpanded]="isOpen"
11888
+ [ariaExpanded]="isAdaptive ? false : isOpen"
11330
11889
  [id]="focusableId"
11331
11890
  [tagListId]="tagListId"
11332
11891
  [isLoading]="loading"
11333
- [isFilterable]="filterable"
11892
+ [hasListAutocomplete]="filterable"
11334
11893
  [activeDescendant]="activeDescendant"
11335
11894
  [userInput]="text"
11336
11895
  [disabled]="disabled"
@@ -11357,7 +11916,6 @@ class MultiSelectComponent {
11357
11916
  (mousedown)="clearAll($event)"
11358
11917
  >
11359
11918
  <kendo-icon-wrapper
11360
- class="k-icon"
11361
11919
  name="x"
11362
11920
  [svgIcon]="xIcon"
11363
11921
  >
@@ -11432,26 +11990,32 @@ class MultiSelectComponent {
11432
11990
  [isMultiselect]="true"
11433
11991
  [isActionSheetExpanded]="isActionSheetExpanded"
11434
11992
  [showStickyHeader]="showStickyHeader"
11993
+ [selectAll]="selectAll && data.length > 0"
11994
+ [selectAllText]="messageFor('selectAllText')"
11995
+ [isAllSelected]="isAllSelected"
11996
+ [isPartiallySelected]="isPartiallySelected"
11997
+ (selectAllClick)="handleSelectAllStateChange($event)"
11435
11998
  [customItemTemplate]="customItemTemplate"
11436
11999
  [text]="text"
11437
12000
  [allowCustom]="allowCustom"
12001
+ [ariaLabel]="messageFor('listboxLabel')"
11438
12002
  >
12003
+ <!--no data template-->
12004
+ @if (data.length === 0) {
12005
+ <div class="k-no-data" [attr.aria-live]="'polite'">
12006
+ @if (noDataTemplate) {
12007
+ <ng-template
12008
+ [templateContext]="{
12009
+ templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
12010
+ }">
12011
+ </ng-template>
12012
+ }
12013
+ @if (!noDataTemplate) {
12014
+ <div>{{ messageFor('noDataText') }}</div>
12015
+ }
12016
+ </div>
12017
+ }
11439
12018
  </kendo-list>
11440
- <!--no data template-->
11441
- @if (data.length === 0) {
11442
- <div class="k-no-data" [attr.aria-live]="'polite'">
11443
- @if (noDataTemplate) {
11444
- <ng-template
11445
- [templateContext]="{
11446
- templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
11447
- }">
11448
- </ng-template>
11449
- }
11450
- @if (!noDataTemplate) {
11451
- <div>{{ messageFor('noDataText') }}</div>
11452
- }
11453
- </div>
11454
- }
11455
12019
  <!--footer template-->
11456
12020
  @if (footerTemplate) {
11457
12021
  <ng-template
@@ -11461,9 +12025,9 @@ class MultiSelectComponent {
11461
12025
  </ng-template>
11462
12026
  }
11463
12027
  </ng-template>
11464
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "isFilterable", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
12028
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
11465
12029
  }
11466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectComponent, decorators: [{
12030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectComponent, decorators: [{
11467
12031
  type: Component,
11468
12032
  args: [{
11469
12033
  exportAs: 'kendoMultiSelect',
@@ -11486,7 +12050,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11486
12050
  },
11487
12051
  {
11488
12052
  provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => MultiSelectComponent)
11489
- }
12053
+ },
12054
+ provideComponentName('multiselect')
11490
12055
  ],
11491
12056
  selector: 'kendo-multiselect',
11492
12057
  template: `
@@ -11497,6 +12062,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11497
12062
  i18n-clearTitle="kendo.multiselect.clearTitle|The title of the clear button"
11498
12063
  clearTitle="clear"
11499
12064
 
12065
+ i18n-chipListLabel="kendo.multiselect.chipListLabel|The accessible label of the tag list element that contains the selected items"
12066
+ chipListLabel="chip list"
12067
+
11500
12068
  i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
11501
12069
  popupLabel="Options list"
11502
12070
 
@@ -11505,6 +12073,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11505
12073
 
11506
12074
  i18n-useCustomValueText="kendo.multiselect.useCustomValueText|The text displayed when the user types a custom value that is not in the list of options."
11507
12075
  useCustomValueText="Use &quot;[[customValue]]&quot;"
12076
+
12077
+ i18n-listboxLabel="kendo.multiselect.listboxLabel|The accessible label of the listbox that contains the list of options"
12078
+ listboxLabel="Options"
12079
+
12080
+ i18n-selectAllText="kendo.multiselect.selectAllText|The text of the Select All item in the popup"
12081
+ selectAllText="Select All"
11508
12082
  >
11509
12083
  </ng-container>
11510
12084
 
@@ -11539,17 +12113,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11539
12113
  [groupTemplate]="groupTagTemplate"
11540
12114
  [tagPrefix]="tagPrefix"
11541
12115
  [disabledIndices]="disabledIndices"
12116
+ [ariaLabel]="messageFor('chipListLabel')"
11542
12117
  (removeTag)="handleRemoveTag($event)"
11543
12118
  >
11544
12119
  </kendo-taglist>
11545
12120
  <input
11546
12121
  kendoSearchbar
11547
12122
  [ariaControls]="ariaControls"
11548
- [ariaExpanded]="isOpen"
12123
+ [ariaExpanded]="isAdaptive ? false : isOpen"
11549
12124
  [id]="focusableId"
11550
12125
  [tagListId]="tagListId"
11551
12126
  [isLoading]="loading"
11552
- [isFilterable]="filterable"
12127
+ [hasListAutocomplete]="filterable"
11553
12128
  [activeDescendant]="activeDescendant"
11554
12129
  [userInput]="text"
11555
12130
  [disabled]="disabled"
@@ -11576,7 +12151,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11576
12151
  (mousedown)="clearAll($event)"
11577
12152
  >
11578
12153
  <kendo-icon-wrapper
11579
- class="k-icon"
11580
12154
  name="x"
11581
12155
  [svgIcon]="xIcon"
11582
12156
  >
@@ -11651,26 +12225,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11651
12225
  [isMultiselect]="true"
11652
12226
  [isActionSheetExpanded]="isActionSheetExpanded"
11653
12227
  [showStickyHeader]="showStickyHeader"
12228
+ [selectAll]="selectAll && data.length > 0"
12229
+ [selectAllText]="messageFor('selectAllText')"
12230
+ [isAllSelected]="isAllSelected"
12231
+ [isPartiallySelected]="isPartiallySelected"
12232
+ (selectAllClick)="handleSelectAllStateChange($event)"
11654
12233
  [customItemTemplate]="customItemTemplate"
11655
12234
  [text]="text"
11656
12235
  [allowCustom]="allowCustom"
12236
+ [ariaLabel]="messageFor('listboxLabel')"
11657
12237
  >
12238
+ <!--no data template-->
12239
+ @if (data.length === 0) {
12240
+ <div class="k-no-data" [attr.aria-live]="'polite'">
12241
+ @if (noDataTemplate) {
12242
+ <ng-template
12243
+ [templateContext]="{
12244
+ templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
12245
+ }">
12246
+ </ng-template>
12247
+ }
12248
+ @if (!noDataTemplate) {
12249
+ <div>{{ messageFor('noDataText') }}</div>
12250
+ }
12251
+ </div>
12252
+ }
11658
12253
  </kendo-list>
11659
- <!--no data template-->
11660
- @if (data.length === 0) {
11661
- <div class="k-no-data" [attr.aria-live]="'polite'">
11662
- @if (noDataTemplate) {
11663
- <ng-template
11664
- [templateContext]="{
11665
- templateRef: noDataTemplate ? noDataTemplate.templateRef : undefined
11666
- }">
11667
- </ng-template>
11668
- }
11669
- @if (!noDataTemplate) {
11670
- <div>{{ messageFor('noDataText') }}</div>
11671
- }
11672
- </div>
11673
- }
11674
12254
  <!--footer template-->
11675
12255
  @if (footerTemplate) {
11676
12256
  <ng-template
@@ -11689,6 +12269,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11689
12269
  args: [AdaptiveRendererComponent]
11690
12270
  }], showStickyHeader: [{
11691
12271
  type: Input
12272
+ }], selectAll: [{
12273
+ type: Input
12274
+ }], summaryTagAfter: [{
12275
+ type: Input
11692
12276
  }], focusableId: [{
11693
12277
  type: Input
11694
12278
  }], autoClose: [{
@@ -11777,6 +12361,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11777
12361
  type: Output
11778
12362
  }], removeTag: [{
11779
12363
  type: Output
12364
+ }], selectAllChange: [{
12365
+ type: Output
11780
12366
  }], container: [{
11781
12367
  type: ViewChild,
11782
12368
  args: ['container', { read: ViewContainerRef, static: true }]
@@ -11862,10 +12448,10 @@ class ColumnCellTemplateDirective {
11862
12448
  constructor(templateRef) {
11863
12449
  this.templateRef = templateRef;
11864
12450
  }
11865
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ColumnCellTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11866
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ColumnCellTemplateDirective, isStandalone: true, selector: "[kendoMultiColumnComboBoxColumnCellTemplate]", ngImport: i0 });
12451
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ColumnCellTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
12452
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: ColumnCellTemplateDirective, isStandalone: true, selector: "[kendoMultiColumnComboBoxColumnCellTemplate]", ngImport: i0 });
11867
12453
  }
11868
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ColumnCellTemplateDirective, decorators: [{
12454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ColumnCellTemplateDirective, decorators: [{
11869
12455
  type: Directive,
11870
12456
  args: [{
11871
12457
  selector: '[kendoMultiColumnComboBoxColumnCellTemplate]',
@@ -11897,10 +12483,10 @@ class ColumnHeaderTemplateDirective {
11897
12483
  constructor(templateRef) {
11898
12484
  this.templateRef = templateRef;
11899
12485
  }
11900
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ColumnHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11901
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ColumnHeaderTemplateDirective, isStandalone: true, selector: "[kendoMultiColumnComboBoxColumnHeaderTemplate]", ngImport: i0 });
12486
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ColumnHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
12487
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: ColumnHeaderTemplateDirective, isStandalone: true, selector: "[kendoMultiColumnComboBoxColumnHeaderTemplate]", ngImport: i0 });
11902
12488
  }
11903
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ColumnHeaderTemplateDirective, decorators: [{
12489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ColumnHeaderTemplateDirective, decorators: [{
11904
12490
  type: Directive,
11905
12491
  args: [{
11906
12492
  selector: '[kendoMultiColumnComboBoxColumnHeaderTemplate]',
@@ -11981,10 +12567,10 @@ class ComboBoxColumnComponent {
11981
12567
  * @hidden
11982
12568
  */
11983
12569
  matchesMedia = true;
11984
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11985
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ComboBoxColumnComponent, isStandalone: true, selector: "kendo-combobox-column", inputs: { field: "field", title: "title", width: "width", hidden: "hidden", style: "style", headerStyle: "headerStyle", class: "class", headerClass: "headerClass", media: "media" }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ColumnCellTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ColumnHeaderTemplateDirective, descendants: true }], ngImport: i0, template: '', isInline: true });
12570
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12571
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: ComboBoxColumnComponent, isStandalone: true, selector: "kendo-combobox-column", inputs: { field: "field", title: "title", width: "width", hidden: "hidden", style: "style", headerStyle: "headerStyle", class: "class", headerClass: "headerClass", media: "media" }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ColumnCellTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ColumnHeaderTemplateDirective, descendants: true }], ngImport: i0, template: '', isInline: true });
11986
12572
  }
11987
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxColumnComponent, decorators: [{
12573
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxColumnComponent, decorators: [{
11988
12574
  type: Component,
11989
12575
  args: [{
11990
12576
  selector: 'kendo-combobox-column',
@@ -12126,6 +12712,17 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12126
12712
  * @hidden
12127
12713
  */
12128
12714
  totalColumnsWidth;
12715
+ /**
12716
+ * @hidden
12717
+ */
12718
+ get visibleColumnsWidths() {
12719
+ return this.columns.reduce((widths, column, index) => {
12720
+ if (!column.hidden && column.matchesMedia) {
12721
+ widths.push(this.getColumnWidth(index));
12722
+ }
12723
+ return widths;
12724
+ }, []);
12725
+ }
12129
12726
  get popupWidth() {
12130
12727
  const wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;
12131
12728
  const min = `${wrapperOffsetWidth}px`;
@@ -12140,7 +12737,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12140
12737
  * @hidden
12141
12738
  */
12142
12739
  get tableSizeClass() {
12143
- return `${this.size ? getSizeClass('table', this.size) : ''}`;
12740
+ const effectiveSize = this.isAdaptive ? 'large' : this.size;
12741
+ return `${effectiveSize ? getSizeClass('table', effectiveSize) : ''}`;
12144
12742
  }
12145
12743
  /**
12146
12744
  * @hidden
@@ -12259,8 +12857,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12259
12857
  }
12260
12858
  return this.headerTable?.nativeElement.offsetWidth;
12261
12859
  }
12262
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiColumnComboBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
12263
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiColumnComboBoxComponent, isStandalone: true, selector: "kendo-multicolumncombobox", host: { properties: { "class.k-dropdowngrid": "this.hostClasses", "class.k-disabled": "this.isDisabled" } }, providers: [
12860
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiColumnComboBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
12861
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MultiColumnComboBoxComponent, isStandalone: true, selector: "kendo-multicolumncombobox", host: { properties: { "class.k-dropdowngrid": "this.hostClasses", "class.k-disabled": "this.isDisabled" } }, providers: [
12264
12862
  SelectionService,
12265
12863
  DataService,
12266
12864
  NavigationService,
@@ -12290,7 +12888,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12290
12888
  {
12291
12889
  provide: KENDO_WEBMCP_HOST,
12292
12890
  useExisting: forwardRef(() => MultiColumnComboBoxComponent)
12293
- }
12891
+ },
12892
+ provideComponentName('multicolumncombobox')
12294
12893
  ], queries: [{ propertyName: "columns", predicate: ComboBoxColumnComponent }], viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "headerColumns", predicate: ["columnHeader"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
12295
12894
  <ng-container
12296
12895
  kendoMultiColumnComboBoxLocalizedMessages
@@ -12309,6 +12908,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12309
12908
  popupLabel="Options list"
12310
12909
  i18n-adaptiveCloseButtonTitle="kendo.multicolumncombobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
12311
12910
  adaptiveCloseButtonTitle="Close"
12911
+ i18n-listboxLabel="kendo.multicolumncombobox.listboxLabel|The accessible label of the listbox that contains the list of options"
12912
+ listboxLabel="Options"
12312
12913
  ></ng-container>
12313
12914
 
12314
12915
  <ng-container
@@ -12330,11 +12931,11 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12330
12931
  <input
12331
12932
  kendoSearchbar
12332
12933
  [ariaControls]="ariaControls"
12333
- [ariaExpanded]="isOpen"
12934
+ [ariaExpanded]="isAdaptive ? false : isOpen"
12334
12935
  [id]="focusableId"
12335
12936
  [isLoading]="loading"
12336
12937
  [isSuggestable]="suggest"
12337
- [isFilterable]="filterable"
12938
+ [hasListAutocomplete]="filterable"
12338
12939
  [activeDescendant]="activeDescendant"
12339
12940
  [userInput]="text"
12340
12941
  [suggestedText]="getSuggestion()"
@@ -12438,7 +13039,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12438
13039
  <!--grid header-->
12439
13040
  <div #header class="k-table-header">
12440
13041
  <div #headerWrap class="k-table-header-wrap">
12441
- <table #headerTable class="k-table" role="presentation">
13042
+ <table #headerTable class="k-table">
12442
13043
  <colgroup>
12443
13044
  @for (column of columns; track column) {
12444
13045
  @if (!column.hidden && column.matchesMedia) {
@@ -12522,7 +13123,9 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12522
13123
  [virtual]="virtual"
12523
13124
  [type]="'dropdowngrid'"
12524
13125
  [rowWidth]="rowWidth"
13126
+ [columnsWidths]="visibleColumnsWidths"
12525
13127
  [showStickyHeader]="showStickyHeader"
13128
+ [ariaLabel]="messageFor('listboxLabel')"
12526
13129
  (pageChange)="pageChange($event)"
12527
13130
  (listResize)="updateHeaderPadding(header)"
12528
13131
  (popupListScroll)="headerWrap.scrollLeft = $event.target.scrollLeft;"
@@ -12549,27 +13152,21 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12549
13152
  <!--user-defined footer template-->
12550
13153
  @if (footerTemplate) {
12551
13154
  <div class="k-table-footer">
12552
- <table class="k-table">
12553
- <tfoot class="k-table-tfoot">
12554
- <tr class="k-table-row">
12555
- <td class="k-table-td">
12556
- <ng-template
13155
+ <span class="k-table-td">
13156
+ <ng-template
12557
13157
  [templateContext]="{
12558
13158
  templateRef: footerTemplate.templateRef
12559
13159
  }"
12560
- >
12561
- </ng-template>
12562
- </td>
12563
- </tr>
12564
- </tfoot>
12565
- </table>
13160
+ >
13161
+ </ng-template>
13162
+ </span>
12566
13163
  </div>
12567
13164
  }
12568
13165
  </div>
12569
13166
  </ng-template>
12570
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "isFilterable", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "customItemTemplate", "text", "allowCustom", "defaultItem", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
13167
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: SharedDropDownEventsDirective, selector: "[kendoDropDownSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }, { kind: "component", type: SearchBarComponent, selector: "input[kendoSearchbar]", inputs: ["tagListId", "readonly", "disabled", "isRequired", "isSuggestable", "hasListAutocomplete", "userInput", "suggestedText", "inputAttributes", "id", "activeDescendant", "tabIndex", "isLoading", "ariaControls", "ariaExpanded", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "ariaLabel", "isMultiselect", "isActionSheetExpanded", "showStickyHeader", "rowWidth", "columnsWidths", "customItemTemplate", "text", "allowCustom", "defaultItem", "selectAll", "selectAllText", "isAllSelected", "isPartiallySelected", "data", "size", "rounded"], outputs: ["selectAllClick", "onClick", "pageChange", "listResize", "popupListScroll"] }] });
12571
13168
  }
12572
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
13169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
12573
13170
  type: Component,
12574
13171
  args: [{
12575
13172
  providers: [
@@ -12602,7 +13199,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
12602
13199
  {
12603
13200
  provide: KENDO_WEBMCP_HOST,
12604
13201
  useExisting: forwardRef(() => MultiColumnComboBoxComponent)
12605
- }
13202
+ },
13203
+ provideComponentName('multicolumncombobox')
12606
13204
  ],
12607
13205
  selector: 'kendo-multicolumncombobox',
12608
13206
  template: `
@@ -12623,6 +13221,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
12623
13221
  popupLabel="Options list"
12624
13222
  i18n-adaptiveCloseButtonTitle="kendo.multicolumncombobox.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
12625
13223
  adaptiveCloseButtonTitle="Close"
13224
+ i18n-listboxLabel="kendo.multicolumncombobox.listboxLabel|The accessible label of the listbox that contains the list of options"
13225
+ listboxLabel="Options"
12626
13226
  ></ng-container>
12627
13227
 
12628
13228
  <ng-container
@@ -12644,11 +13244,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
12644
13244
  <input
12645
13245
  kendoSearchbar
12646
13246
  [ariaControls]="ariaControls"
12647
- [ariaExpanded]="isOpen"
13247
+ [ariaExpanded]="isAdaptive ? false : isOpen"
12648
13248
  [id]="focusableId"
12649
13249
  [isLoading]="loading"
12650
13250
  [isSuggestable]="suggest"
12651
- [isFilterable]="filterable"
13251
+ [hasListAutocomplete]="filterable"
12652
13252
  [activeDescendant]="activeDescendant"
12653
13253
  [userInput]="text"
12654
13254
  [suggestedText]="getSuggestion()"
@@ -12752,7 +13352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
12752
13352
  <!--grid header-->
12753
13353
  <div #header class="k-table-header">
12754
13354
  <div #headerWrap class="k-table-header-wrap">
12755
- <table #headerTable class="k-table" role="presentation">
13355
+ <table #headerTable class="k-table">
12756
13356
  <colgroup>
12757
13357
  @for (column of columns; track column) {
12758
13358
  @if (!column.hidden && column.matchesMedia) {
@@ -12836,7 +13436,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
12836
13436
  [virtual]="virtual"
12837
13437
  [type]="'dropdowngrid'"
12838
13438
  [rowWidth]="rowWidth"
13439
+ [columnsWidths]="visibleColumnsWidths"
12839
13440
  [showStickyHeader]="showStickyHeader"
13441
+ [ariaLabel]="messageFor('listboxLabel')"
12840
13442
  (pageChange)="pageChange($event)"
12841
13443
  (listResize)="updateHeaderPadding(header)"
12842
13444
  (popupListScroll)="headerWrap.scrollLeft = $event.target.scrollLeft;"
@@ -12863,20 +13465,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
12863
13465
  <!--user-defined footer template-->
12864
13466
  @if (footerTemplate) {
12865
13467
  <div class="k-table-footer">
12866
- <table class="k-table">
12867
- <tfoot class="k-table-tfoot">
12868
- <tr class="k-table-row">
12869
- <td class="k-table-td">
12870
- <ng-template
13468
+ <span class="k-table-td">
13469
+ <ng-template
12871
13470
  [templateContext]="{
12872
13471
  templateRef: footerTemplate.templateRef
12873
13472
  }"
12874
- >
12875
- </ng-template>
12876
- </td>
12877
- </tr>
12878
- </tfoot>
12879
- </table>
13473
+ >
13474
+ </ng-template>
13475
+ </span>
12880
13476
  </div>
12881
13477
  }
12882
13478
  </div>
@@ -12920,10 +13516,10 @@ class NodeTemplateDirective {
12920
13516
  constructor(templateRef) {
12921
13517
  this.templateRef = templateRef;
12922
13518
  }
12923
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NodeTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
12924
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: NodeTemplateDirective, isStandalone: true, selector: "[kendoDropDownTreeNodeTemplate], [kendoMultiSelectTreeNodeTemplate]", ngImport: i0 });
13519
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NodeTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
13520
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: NodeTemplateDirective, isStandalone: true, selector: "[kendoDropDownTreeNodeTemplate], [kendoMultiSelectTreeNodeTemplate]", ngImport: i0 });
12925
13521
  }
12926
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NodeTemplateDirective, decorators: [{
13522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: NodeTemplateDirective, decorators: [{
12927
13523
  type: Directive,
12928
13524
  args: [{
12929
13525
  selector: '[kendoDropDownTreeNodeTemplate], [kendoMultiSelectTreeNodeTemplate]',
@@ -13006,7 +13602,7 @@ class DropDownTreeComponent {
13006
13602
  return this.readonly ? '' : null;
13007
13603
  }
13008
13604
  get hostAriaInvalid() {
13009
- return this.formControl?.invalid ? true : null;
13605
+ return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
13010
13606
  }
13011
13607
  get isDisabled() {
13012
13608
  return this.disabled || null;
@@ -13018,7 +13614,7 @@ class DropDownTreeComponent {
13018
13614
  return this.loading ? 'true' : null;
13019
13615
  }
13020
13616
  get hostAriaControls() {
13021
- return this.isOpen ? this.treeViewId : null;
13617
+ return (!this.isAdaptive && this.isOpen) ? this.treeViewId : null;
13022
13618
  }
13023
13619
  get id() {
13024
13620
  return this.focusableId;
@@ -13030,7 +13626,7 @@ class DropDownTreeComponent {
13030
13626
  role = 'combobox';
13031
13627
  ariaHasPopup = 'tree';
13032
13628
  get isAriaExpanded() {
13033
- return this.isOpen;
13629
+ return this.isAdaptive ? false : this.isOpen;
13034
13630
  }
13035
13631
  get hostAriaAutocomplete() {
13036
13632
  return this.filterable ? 'list' : null;
@@ -13050,6 +13646,7 @@ class DropDownTreeComponent {
13050
13646
  // the treeview animations are initially disabled (we don't want expand animations during popup opening)
13051
13647
  // re-enables the animations for user interaction
13052
13648
  treeview.animate = true;
13649
+ treeview.loadMoreButtonRole = 'treeitem';
13053
13650
  this._treeview = treeview;
13054
13651
  }
13055
13652
  }
@@ -13755,7 +14352,7 @@ class DropDownTreeComponent {
13755
14352
  * @hidden
13756
14353
  */
13757
14354
  get popupContainerClasses() {
13758
- const containerClasses = ['k-dropdowntree-popup'];
14355
+ const containerClasses = ['k-list-container', 'k-dropdowntree-popup'];
13759
14356
  if (!this.popupSettings.popupClass) {
13760
14357
  return containerClasses;
13761
14358
  }
@@ -14213,8 +14810,8 @@ class DropDownTreeComponent {
14213
14810
  this.opened.emit();
14214
14811
  this.removeTreeViewFromTabOrder();
14215
14812
  }
14216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
14217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DropDownTreeComponent, isStandalone: true, selector: "kendo-dropdowntree", inputs: { icon: "icon", svgIcon: "svgIcon", loading: "loading", clearButton: "clearButton", data: "data", value: "value", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", hasChildren: "hasChildren", fetchChildren: "fetchChildren", placeholder: "placeholder", popupSettings: "popupSettings", dataItem: "dataItem", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", itemDisabled: "itemDisabled", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", loadOnDemand: "loadOnDemand", filterable: "filterable", filter: "filter", focusableId: "focusableId", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle" }, outputs: { open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", onFocus: "focus", onBlur: "blur", valueChange: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.k-dropdowntree": "this.hostClasses", "class.k-picker": "this.hostClasses", "attr.readonly": "this.isReadonly", "attr.aria-invalid": "this.hostAriaInvalid", "class.k-disabled": "this.isDisabled", "attr.aria-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.aria-busy": "this.isBusy", "attr.aria-controls": "this.hostAriaControls", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-autocomplete": "this.hostAriaAutocomplete", "class.k-readonly": "this.readonly" } }, providers: [
14813
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
14814
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: DropDownTreeComponent, isStandalone: true, selector: "kendo-dropdowntree", inputs: { icon: "icon", svgIcon: "svgIcon", loading: "loading", clearButton: "clearButton", data: "data", value: "value", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", hasChildren: "hasChildren", fetchChildren: "fetchChildren", placeholder: "placeholder", popupSettings: "popupSettings", dataItem: "dataItem", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", itemDisabled: "itemDisabled", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", loadOnDemand: "loadOnDemand", filterable: "filterable", filter: "filter", focusableId: "focusableId", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle" }, outputs: { open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", onFocus: "focus", onBlur: "blur", valueChange: "valueChange", filterChange: "filterChange" }, host: { properties: { "class.k-dropdowntree": "this.hostClasses", "class.k-picker": "this.hostClasses", "attr.readonly": "this.isReadonly", "attr.aria-invalid": "this.hostAriaInvalid", "class.k-disabled": "this.isDisabled", "attr.aria-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.aria-busy": "this.isBusy", "attr.aria-controls": "this.hostAriaControls", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.isAriaExpanded", "attr.aria-autocomplete": "this.hostAriaAutocomplete", "class.k-readonly": "this.readonly" } }, providers: [
14218
14815
  DataService,
14219
14816
  SelectionService,
14220
14817
  NavigationService,
@@ -14244,7 +14841,8 @@ class DropDownTreeComponent {
14244
14841
  {
14245
14842
  provide: KENDO_WEBMCP_HOST,
14246
14843
  useExisting: forwardRef(() => DropDownTreeComponent)
14247
- }
14844
+ },
14845
+ provideComponentName('dropdowntree')
14248
14846
  ], queries: [{ propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "nodeTemplate", first: true, predicate: NodeTemplateDirective, descendants: true }, { propertyName: "valueTemplate", first: true, predicate: ValueTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "adaptiveRendererComponent", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "treeview", first: true, predicate: ["treeview"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], exportAs: ["kendoDropDownTree"], usesOnChanges: true, ngImport: i0, template: `
14249
14847
  <ng-container kendoDropDownTreeLocalizedMessages
14250
14848
  i18n-noDataText="kendo.dropdowntree.noDataText|The text displayed in the popup when there are no items"
@@ -14333,6 +14931,7 @@ class DropDownTreeComponent {
14333
14931
  [title]="adaptiveTitle"
14334
14932
  [showTextInput]="filterable"
14335
14933
  [subtitle]="adaptiveSubtitle"
14934
+ [showListContainer]="false"
14336
14935
  (closePopup)="togglePopup(false)"
14337
14936
  (textInputChange)="handleFilterInputChange($event)"
14338
14937
  [placeholder]="placeholder"
@@ -14349,14 +14948,14 @@ class DropDownTreeComponent {
14349
14948
  class="k-textbox k-input"
14350
14949
  [ngClass]="filterInputClasses"
14351
14950
  >
14352
- <span class="k-input-prefix">
14951
+ <span class="k-input-prefix k-input-prefix-horizontal">
14353
14952
  <kendo-icon-wrapper
14354
- class="k-icon"
14355
14953
  name="search"
14356
14954
  [svgIcon]="searchIcon"
14357
14955
  >
14358
14956
  </kendo-icon-wrapper>
14359
14957
  </span>
14958
+ <kendo-separator></kendo-separator>
14360
14959
  <input
14361
14960
  #filterInput
14362
14961
  (input)="handleFilterInputChange($event.target)"
@@ -14388,7 +14987,7 @@ class DropDownTreeComponent {
14388
14987
  <kendo-treeview
14389
14988
  #treeview
14390
14989
  [attr.id]="treeViewId"
14391
- [size]="windowSize !== 'large' ? 'large' : size"
14990
+ [size]="isAdaptive ? 'large' : size"
14392
14991
  [nodes]="data"
14393
14992
  [style.maxHeight.px]="listHeight"
14394
14993
  [animate]="false"
@@ -14441,9 +15040,9 @@ class DropDownTreeComponent {
14441
15040
  @if (isOpen || isAdaptiveModeEnabled) {
14442
15041
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
14443
15042
  }
14444
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15043
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14445
15044
  }
14446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeComponent, decorators: [{
15045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeComponent, decorators: [{
14447
15046
  type: Component,
14448
15047
  args: [{
14449
15048
  exportAs: 'kendoDropDownTree',
@@ -14477,7 +15076,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
14477
15076
  {
14478
15077
  provide: KENDO_WEBMCP_HOST,
14479
15078
  useExisting: forwardRef(() => DropDownTreeComponent)
14480
- }
15079
+ },
15080
+ provideComponentName('dropdowntree')
14481
15081
  ],
14482
15082
  selector: 'kendo-dropdowntree',
14483
15083
  template: `
@@ -14568,6 +15168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
14568
15168
  [title]="adaptiveTitle"
14569
15169
  [showTextInput]="filterable"
14570
15170
  [subtitle]="adaptiveSubtitle"
15171
+ [showListContainer]="false"
14571
15172
  (closePopup)="togglePopup(false)"
14572
15173
  (textInputChange)="handleFilterInputChange($event)"
14573
15174
  [placeholder]="placeholder"
@@ -14584,14 +15185,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
14584
15185
  class="k-textbox k-input"
14585
15186
  [ngClass]="filterInputClasses"
14586
15187
  >
14587
- <span class="k-input-prefix">
15188
+ <span class="k-input-prefix k-input-prefix-horizontal">
14588
15189
  <kendo-icon-wrapper
14589
- class="k-icon"
14590
15190
  name="search"
14591
15191
  [svgIcon]="searchIcon"
14592
15192
  >
14593
15193
  </kendo-icon-wrapper>
14594
15194
  </span>
15195
+ <kendo-separator></kendo-separator>
14595
15196
  <input
14596
15197
  #filterInput
14597
15198
  (input)="handleFilterInputChange($event.target)"
@@ -14623,7 +15224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
14623
15224
  <kendo-treeview
14624
15225
  #treeview
14625
15226
  [attr.id]="treeViewId"
14626
- [size]="windowSize !== 'large' ? 'large' : size"
15227
+ [size]="isAdaptive ? 'large' : size"
14627
15228
  [nodes]="data"
14628
15229
  [style.maxHeight.px]="listHeight"
14629
15230
  [animate]="false"
@@ -14679,7 +15280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
14679
15280
  `,
14680
15281
  changeDetection: ChangeDetectionStrategy.OnPush,
14681
15282
  standalone: true,
14682
- imports: [LocalizedMessagesDirective, TemplateContextDirective, IconWrapperComponent, NgClass, NgTemplateOutlet, AdaptiveRendererComponent, FilterInputDirective, EventsOutsideAngularDirective, TreeViewComponent, SelectDirective, ResizeSensorComponent]
15283
+ imports: [LocalizedMessagesDirective, TemplateContextDirective, IconWrapperComponent, NgClass, NgTemplateOutlet, AdaptiveRendererComponent, FilterInputDirective, EventsOutsideAngularDirective, TreeViewComponent, SelectDirective, ResizeSensorComponent, SeparatorComponent]
14683
15284
  }]
14684
15285
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2.PopupService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: i7.AdaptiveService }], propDecorators: { icon: [{
14685
15286
  type: Input
@@ -14919,10 +15520,10 @@ class MultiSelectTreeLookupService {
14919
15520
  };
14920
15521
  });
14921
15522
  }
14922
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeLookupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14923
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeLookupService });
15523
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeLookupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15524
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeLookupService });
14924
15525
  }
14925
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeLookupService, decorators: [{
15526
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeLookupService, decorators: [{
14926
15527
  type: Injectable
14927
15528
  }] });
14928
15529
 
@@ -14983,10 +15584,10 @@ class BaseCheckDirective {
14983
15584
  getKey(item, level) {
14984
15585
  return valueFrom(item, this.valueField) + '_' + (this.isHeterogeneous ? level : 0);
14985
15586
  }
14986
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BaseCheckDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14987
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: BaseCheckDirective, isStandalone: true, inputs: { valueField: "valueField", checkedItems: "checkedItems", isHeterogeneous: "isHeterogeneous" }, ngImport: i0 });
15587
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: BaseCheckDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
15588
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: BaseCheckDirective, isStandalone: true, inputs: { valueField: "valueField", checkedItems: "checkedItems", isHeterogeneous: "isHeterogeneous" }, ngImport: i0 });
14988
15589
  }
14989
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BaseCheckDirective, decorators: [{
15590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: BaseCheckDirective, decorators: [{
14990
15591
  type: Directive
14991
15592
  }], propDecorators: { valueField: [{
14992
15593
  type: Input
@@ -15134,10 +15735,10 @@ class CheckDirective extends BaseCheckDirective {
15134
15735
  }
15135
15736
  return false;
15136
15737
  }
15137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CheckDirective, deps: [{ token: i1$1.TreeViewComponent }], target: i0.ɵɵFactoryTarget.Directive });
15138
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: CheckDirective, isStandalone: true, selector: "[kendoMultiSelectTreeCheckable]", inputs: { checkable: "checkable", valueField: "valueField", checkedItems: "checkedItems" }, outputs: { checkedItemsChange: "checkedItemsChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
15738
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CheckDirective, deps: [{ token: i1$1.TreeViewComponent }], target: i0.ɵɵFactoryTarget.Directive });
15739
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: CheckDirective, isStandalone: true, selector: "[kendoMultiSelectTreeCheckable]", inputs: { checkable: "checkable", valueField: "valueField", checkedItems: "checkedItems" }, outputs: { checkedItemsChange: "checkedItemsChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
15139
15740
  }
15140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CheckDirective, decorators: [{
15741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CheckDirective, decorators: [{
15141
15742
  type: Directive,
15142
15743
  args: [{
15143
15744
  selector: '[kendoMultiSelectTreeCheckable]',
@@ -15287,10 +15888,10 @@ class CheckAllDirective extends BaseCheckDirective {
15287
15888
  });
15288
15889
  return childrenChecked || this.isItemChecked(lookup.item);
15289
15890
  }
15290
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CheckAllDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
15291
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: CheckAllDirective, isStandalone: true, selector: "[checkAll]", inputs: { lastAction: "lastAction", treeview: "treeview", checkedItems: "checkedItems", valueField: "valueField", focused: ["checkAll", "focused"] }, outputs: { checkedItemsChange: "checkedItemsChange" }, host: { listeners: { "change": "handleChange($event.target)" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
15891
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CheckAllDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
15892
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: CheckAllDirective, isStandalone: true, selector: "[checkAll]", inputs: { lastAction: "lastAction", treeview: "treeview", checkedItems: "checkedItems", valueField: "valueField", focused: ["checkAll", "focused"] }, outputs: { checkedItemsChange: "checkedItemsChange" }, host: { listeners: { "change": "handleChange($event.target)" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
15292
15893
  }
15293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CheckAllDirective, decorators: [{
15894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CheckAllDirective, decorators: [{
15294
15895
  type: Directive,
15295
15896
  args: [{
15296
15897
  selector: '[checkAll]',
@@ -15383,14 +15984,11 @@ class MultiSelectTreeComponent {
15383
15984
  return this.disabled || null;
15384
15985
  }
15385
15986
  treeViewId = `k-${guid()}`;
15386
- get hostAriaAutocomplete() {
15387
- return this.filterable ? 'list' : null;
15388
- }
15389
15987
  get isLoading() {
15390
15988
  return this.loading;
15391
15989
  }
15392
15990
  get hostAriaInvalid() {
15393
- return this.formControl?.invalid ? true : null;
15991
+ return (this.formControl?.invalid && (this.formControl?.touched || this.formControl?.dirty)) ? true : null;
15394
15992
  }
15395
15993
  get isBusy() {
15396
15994
  return this.loading ? 'true' : null;
@@ -15402,14 +16000,9 @@ class MultiSelectTreeComponent {
15402
16000
  get hostTabIndex() {
15403
16001
  return this.tabindex;
15404
16002
  }
15405
- role = 'combobox';
15406
- ariaHasPopup = 'tree';
15407
16003
  get isReadonly() {
15408
16004
  return this.readonly ? '' : null;
15409
16005
  }
15410
- get ariaDescribedBy() {
15411
- return this.tagListId;
15412
- }
15413
16006
  get ariaActiveDescendant() {
15414
16007
  return this.focusedTagId;
15415
16008
  }
@@ -16104,7 +16697,6 @@ class MultiSelectTreeComponent {
16104
16697
  this._typedValue = '';
16105
16698
  }));
16106
16699
  this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
16107
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', String(this.isOpen));
16108
16700
  this.subs.add(this.localization
16109
16701
  .changes.subscribe(({ rtl }) => {
16110
16702
  this.direction = rtl ? 'rtl' : 'ltr';
@@ -16558,9 +17150,7 @@ class MultiSelectTreeComponent {
16558
17150
  popupWrapper.style.minWidth = min;
16559
17151
  popupWrapper.style.width = max;
16560
17152
  popupWrapper.style.height = this.height;
16561
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
16562
17153
  this.renderer.setAttribute(popupWrapper, 'dir', this.direction);
16563
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
16564
17154
  this.popupRef.popupOpen.subscribe(() => {
16565
17155
  this.cdr.detectChanges();
16566
17156
  this.opened.emit();
@@ -16581,8 +17171,6 @@ class MultiSelectTreeComponent {
16581
17171
  if (this.popupRef) {
16582
17172
  this.popupRef.close();
16583
17173
  this.popupRef = null;
16584
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
16585
- this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
16586
17174
  this.clearFilter();
16587
17175
  }
16588
17176
  }
@@ -16896,8 +17484,6 @@ class MultiSelectTreeComponent {
16896
17484
  closeActionSheet() {
16897
17485
  this.wrapper.nativeElement.focus();
16898
17486
  this.actionSheet.toggle(false);
16899
- this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
16900
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
16901
17487
  this.clearFilter();
16902
17488
  this.closed.emit();
16903
17489
  }
@@ -16905,13 +17491,11 @@ class MultiSelectTreeComponent {
16905
17491
  this.actionSheet.toggle(true);
16906
17492
  this.adaptiveTitle = setActionSheetTitle(this.wrapper, this.adaptiveTitle);
16907
17493
  this.cdr.detectChanges();
16908
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
16909
- this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
16910
17494
  this.cdr.detectChanges();
16911
17495
  this.opened.emit();
16912
17496
  }
16913
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: i0.Renderer2 }, { token: NavigationService }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: MultiSelectTreeLookupService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
16914
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-disabled": "this.isDisabled", "attr.aria-disabled": "this.isDisabled", "attr.aria-autocomplete": "this.hostAriaAutocomplete", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.readonly": "this.isReadonly", "attr.aria-describedby": "this.ariaDescribedBy", "attr.aria-activedescendant": "this.ariaActiveDescendant", "class.k-readonly": "this.readonly" } }, providers: [
17497
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i2.PopupService }, { token: i0.Renderer2 }, { token: NavigationService }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: MultiSelectTreeLookupService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
17498
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", popupSettings: "popupSettings", checkableSettings: "checkableSettings", data: "data", value: "value", dataItems: "dataItems", textField: "textField", valueField: "valueField", valueDepth: "valueDepth", loading: "loading", placeholder: "placeholder", listHeight: "listHeight", disabled: "disabled", readonly: "readonly", valuePrimitive: "valuePrimitive", loadOnDemand: "loadOnDemand", focusableId: "focusableId", clearButton: "clearButton", filterable: "filterable", checkAll: "checkAll", hasChildren: "hasChildren", fetchChildren: "fetchChildren", isNodeExpanded: "isNodeExpanded", isNodeVisible: "isNodeVisible", itemDisabled: "itemDisabled", tagMapper: "tagMapper" }, outputs: { onFocus: "focus", onBlur: "blur", open: "open", opened: "opened", close: "close", closed: "closed", nodeExpand: "nodeExpand", nodeCollapse: "nodeCollapse", valueChange: "valueChange", removeTag: "removeTag", filterChange: "filterChange" }, host: { properties: { "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.aria-invalid": "this.hostAriaInvalid", "attr.aria-busy": "this.isBusy", "attr.id": "this.id", "attr.dir": "this.direction", "attr.tabindex": "this.hostTabIndex", "attr.readonly": "this.isReadonly", "attr.aria-activedescendant": "this.ariaActiveDescendant", "class.k-readonly": "this.readonly" } }, providers: [
16915
17499
  LocalizationService,
16916
17500
  NavigationService,
16917
17501
  DataService,
@@ -16938,7 +17522,8 @@ class MultiSelectTreeComponent {
16938
17522
  {
16939
17523
  provide: KendoInput,
16940
17524
  useExisting: forwardRef(() => MultiSelectTreeComponent)
16941
- }
17525
+ },
17526
+ provideComponentName('multiselecttree')
16942
17527
  ], queries: [{ propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "nodeTemplate", first: true, predicate: NodeTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "tagTemplate", first: true, predicate: TagTemplateDirective, descendants: true }, { propertyName: "groupTagTemplate", first: true, predicate: GroupTagTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "adaptiveRendererComponent", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "treeview", first: true, predicate: ["treeview"], descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "checkAllInput", first: true, predicate: ["checkAllInput"], descendants: true }], exportAs: ["kendoMultiSelectTree"], usesOnChanges: true, ngImport: i0, template: `
16943
17528
  <ng-container kendoMultiSelectTreeLocalizedMessages
16944
17529
  i18n-noDataText="kendo.multiselecttree.noDataText|The text displayed in the popup when there are no items"
@@ -16947,6 +17532,9 @@ class MultiSelectTreeComponent {
16947
17532
  i18n-clearTitle="kendo.multiselecttree.clearTitle|The title of the clear button"
16948
17533
  clearTitle="clear"
16949
17534
 
17535
+ i18n-chipListLabel="kendo.multiselecttree.chipListLabel|The accessible label of the tag list element that contains the selected items"
17536
+ chipListLabel="chip list"
17537
+
16950
17538
  i18n-checkAllText="kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox"
16951
17539
  checkAllText="Check all"
16952
17540
 
@@ -16961,6 +17549,9 @@ class MultiSelectTreeComponent {
16961
17549
 
16962
17550
  i18n-filterInputPlaceholder="kendo.multiselecttree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
16963
17551
  filterInputPlaceholder="Filter"
17552
+
17553
+ i18n-inputLabel="kendo.multiselecttree.inputLabel|The text set as aria-label on the combobox input element"
17554
+ inputLabel="Select items"
16964
17555
  >
16965
17556
  </ng-container>
16966
17557
  <kendo-taglist
@@ -16979,10 +17570,19 @@ class MultiSelectTreeComponent {
16979
17570
  [template]="tagTemplate"
16980
17571
  [groupTemplate]="groupTagTemplate"
16981
17572
  [disabledIndices]="disabledIndices"
17573
+ [ariaLabel]="messageFor('chipListLabel')"
16982
17574
  (removeTag)="handleRemoveTag($event)"
16983
17575
  >
16984
17576
  </kendo-taglist>
16985
- <span class="k-input-inner">
17577
+ <span class="k-input-inner"
17578
+ role="combobox"
17579
+ aria-haspopup="tree"
17580
+ [attr.aria-expanded]="isOpen"
17581
+ [attr.aria-autocomplete]="filterable ? 'list' : null"
17582
+ [attr.aria-controls]="isOpen ? treeViewId : null"
17583
+ [attr.aria-describedby]="tags?.length ? tagListId : null"
17584
+ [attr.aria-disabled]="disabled || null"
17585
+ [attr.aria-label]="messageFor('inputLabel')">
16986
17586
  @if (!tags || !tags.length) {
16987
17587
  <span
16988
17588
  class="k-input-value-text"
@@ -17000,7 +17600,6 @@ class MultiSelectTreeComponent {
17000
17600
  (click)="clearAll($event)"
17001
17601
  >
17002
17602
  <kendo-icon-wrapper
17003
- class="k-icon"
17004
17603
  name="x"
17005
17604
  [svgIcon]="xIcon"
17006
17605
  >
@@ -17023,6 +17622,7 @@ class MultiSelectTreeComponent {
17023
17622
  [title]="adaptiveTitle"
17024
17623
  [showTextInput]="filterable"
17025
17624
  [subtitle]="adaptiveSubtitle"
17625
+ [showListContainer]="false"
17026
17626
  (closePopup)="togglePopup(false)"
17027
17627
  (textInputChange)="onFilterChange($event)"
17028
17628
  [searchBarValue]="filter"
@@ -17039,7 +17639,7 @@ class MultiSelectTreeComponent {
17039
17639
  class="k-textbox k-input"
17040
17640
  [ngClass]="filterInputClasses"
17041
17641
  >
17042
- <span class="k-input-prefix">
17642
+ <span class="k-input-prefix k-input-prefix-horizontal">
17043
17643
  <kendo-icon-wrapper
17044
17644
  class="k-icon"
17045
17645
  name="search"
@@ -17047,6 +17647,7 @@ class MultiSelectTreeComponent {
17047
17647
  >
17048
17648
  </kendo-icon-wrapper>
17049
17649
  </span>
17650
+ <kendo-separator></kendo-separator>
17050
17651
  <input
17051
17652
  #filterInput
17052
17653
  (input)="handleFilterInputChange($event.target)"
@@ -17170,9 +17771,9 @@ class MultiSelectTreeComponent {
17170
17771
  @if (isOpen || isAdaptiveModeEnabled) {
17171
17772
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
17172
17773
  }
17173
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
17774
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { kind: "component", type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "ariaLabel", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-adaptive-renderer", inputs: ["title", "subtitle", "showTextInput", "sharedPopupActionSheetTemplate", "text", "placeholder", "searchBarValue", "filterable", "showListContainer"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: SeparatorComponent, selector: "kendo-separator", inputs: ["orientation"] }] });
17174
17775
  }
17175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
17776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
17176
17777
  type: Component,
17177
17778
  args: [{
17178
17779
  exportAs: 'kendoMultiSelectTree',
@@ -17203,7 +17804,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17203
17804
  {
17204
17805
  provide: KendoInput,
17205
17806
  useExisting: forwardRef(() => MultiSelectTreeComponent)
17206
- }
17807
+ },
17808
+ provideComponentName('multiselecttree')
17207
17809
  ],
17208
17810
  selector: 'kendo-multiselecttree',
17209
17811
  template: `
@@ -17214,6 +17816,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17214
17816
  i18n-clearTitle="kendo.multiselecttree.clearTitle|The title of the clear button"
17215
17817
  clearTitle="clear"
17216
17818
 
17819
+ i18n-chipListLabel="kendo.multiselecttree.chipListLabel|The accessible label of the tag list element that contains the selected items"
17820
+ chipListLabel="chip list"
17821
+
17217
17822
  i18n-checkAllText="kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox"
17218
17823
  checkAllText="Check all"
17219
17824
 
@@ -17228,6 +17833,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17228
17833
 
17229
17834
  i18n-filterInputPlaceholder="kendo.multiselecttree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
17230
17835
  filterInputPlaceholder="Filter"
17836
+
17837
+ i18n-inputLabel="kendo.multiselecttree.inputLabel|The text set as aria-label on the combobox input element"
17838
+ inputLabel="Select items"
17231
17839
  >
17232
17840
  </ng-container>
17233
17841
  <kendo-taglist
@@ -17246,10 +17854,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17246
17854
  [template]="tagTemplate"
17247
17855
  [groupTemplate]="groupTagTemplate"
17248
17856
  [disabledIndices]="disabledIndices"
17857
+ [ariaLabel]="messageFor('chipListLabel')"
17249
17858
  (removeTag)="handleRemoveTag($event)"
17250
17859
  >
17251
17860
  </kendo-taglist>
17252
- <span class="k-input-inner">
17861
+ <span class="k-input-inner"
17862
+ role="combobox"
17863
+ aria-haspopup="tree"
17864
+ [attr.aria-expanded]="isOpen"
17865
+ [attr.aria-autocomplete]="filterable ? 'list' : null"
17866
+ [attr.aria-controls]="isOpen ? treeViewId : null"
17867
+ [attr.aria-describedby]="tags?.length ? tagListId : null"
17868
+ [attr.aria-disabled]="disabled || null"
17869
+ [attr.aria-label]="messageFor('inputLabel')">
17253
17870
  @if (!tags || !tags.length) {
17254
17871
  <span
17255
17872
  class="k-input-value-text"
@@ -17267,7 +17884,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17267
17884
  (click)="clearAll($event)"
17268
17885
  >
17269
17886
  <kendo-icon-wrapper
17270
- class="k-icon"
17271
17887
  name="x"
17272
17888
  [svgIcon]="xIcon"
17273
17889
  >
@@ -17290,6 +17906,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17290
17906
  [title]="adaptiveTitle"
17291
17907
  [showTextInput]="filterable"
17292
17908
  [subtitle]="adaptiveSubtitle"
17909
+ [showListContainer]="false"
17293
17910
  (closePopup)="togglePopup(false)"
17294
17911
  (textInputChange)="onFilterChange($event)"
17295
17912
  [searchBarValue]="filter"
@@ -17306,7 +17923,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17306
17923
  class="k-textbox k-input"
17307
17924
  [ngClass]="filterInputClasses"
17308
17925
  >
17309
- <span class="k-input-prefix">
17926
+ <span class="k-input-prefix k-input-prefix-horizontal">
17310
17927
  <kendo-icon-wrapper
17311
17928
  class="k-icon"
17312
17929
  name="search"
@@ -17314,6 +17931,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17314
17931
  >
17315
17932
  </kendo-icon-wrapper>
17316
17933
  </span>
17934
+ <kendo-separator></kendo-separator>
17317
17935
  <input
17318
17936
  #filterInput
17319
17937
  (input)="handleFilterInputChange($event.target)"
@@ -17439,17 +18057,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17439
18057
  }
17440
18058
  `,
17441
18059
  standalone: true,
17442
- imports: [LocalizedMessagesDirective, TagListComponent, IconWrapperComponent, NgTemplateOutlet, AdaptiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent]
18060
+ imports: [LocalizedMessagesDirective, TagListComponent, IconWrapperComponent, NgTemplateOutlet, AdaptiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent, SeparatorComponent]
17443
18061
  }]
17444
18062
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i2.PopupService }, { type: i0.Renderer2 }, { type: NavigationService }, { type: i0.NgZone }, { type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: MultiSelectTreeLookupService }, { type: i7.AdaptiveService }], propDecorators: { isDisabled: [{
17445
18063
  type: HostBinding,
17446
18064
  args: ['class.k-disabled']
17447
- }, {
17448
- type: HostBinding,
17449
- args: ['attr.aria-disabled']
17450
- }], hostAriaAutocomplete: [{
17451
- type: HostBinding,
17452
- args: ['attr.aria-autocomplete']
17453
18065
  }], isLoading: [{
17454
18066
  type: HostBinding,
17455
18067
  args: ['class.k-loading']
@@ -17468,18 +18080,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
17468
18080
  }], hostTabIndex: [{
17469
18081
  type: HostBinding,
17470
18082
  args: ['attr.tabindex']
17471
- }], role: [{
17472
- type: HostBinding,
17473
- args: ['attr.role']
17474
- }], ariaHasPopup: [{
17475
- type: HostBinding,
17476
- args: ['attr.aria-haspopup']
17477
18083
  }], isReadonly: [{
17478
18084
  type: HostBinding,
17479
18085
  args: ['attr.readonly']
17480
- }], ariaDescribedBy: [{
17481
- type: HostBinding,
17482
- args: ['attr.aria-describedby']
17483
18086
  }], ariaActiveDescendant: [{
17484
18087
  type: HostBinding,
17485
18088
  args: ['attr.aria-activedescendant']
@@ -17656,10 +18259,10 @@ class DropDownTreeFlatBindingDirective extends FlatDataBindingDirective {
17656
18259
  }
17657
18260
  super.ngOnChanges(changes);
17658
18261
  }
17659
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeFlatBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
17660
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DropDownTreeFlatBindingDirective, isStandalone: true, selector: "[kendoDropDownTreeFlatBinding]", inputs: { nodes: ["kendoDropDownTreeFlatBinding", "nodes"], idField: ["valueField", "idField"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
18262
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeFlatBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
18263
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DropDownTreeFlatBindingDirective, isStandalone: true, selector: "[kendoDropDownTreeFlatBinding]", inputs: { nodes: ["kendoDropDownTreeFlatBinding", "nodes"], idField: ["valueField", "idField"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
17661
18264
  }
17662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeFlatBindingDirective, decorators: [{
18265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeFlatBindingDirective, decorators: [{
17663
18266
  type: Directive,
17664
18267
  args: [{
17665
18268
  selector: '[kendoDropDownTreeFlatBinding]',
@@ -17713,10 +18316,10 @@ class DropDownTreeHierarchyBindingDirective extends HierarchyBindingDirective {
17713
18316
  }
17714
18317
  super.ngOnChanges(changes);
17715
18318
  }
17716
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeHierarchyBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
17717
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DropDownTreeHierarchyBindingDirective, isStandalone: true, selector: "[kendoDropDownTreeHierarchyBinding]", inputs: { nodes: ["kendoDropDownTreeHierarchyBinding", "nodes"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
18319
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeHierarchyBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
18320
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DropDownTreeHierarchyBindingDirective, isStandalone: true, selector: "[kendoDropDownTreeHierarchyBinding]", inputs: { nodes: ["kendoDropDownTreeHierarchyBinding", "nodes"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
17718
18321
  }
17719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreeHierarchyBindingDirective, decorators: [{
18322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreeHierarchyBindingDirective, decorators: [{
17720
18323
  type: Directive,
17721
18324
  args: [{
17722
18325
  selector: '[kendoDropDownTreeHierarchyBinding]',
@@ -17771,10 +18374,10 @@ class MultiSelectTreeFlatBindingDirective extends FlatDataBindingDirective {
17771
18374
  }
17772
18375
  super.ngOnChanges(changes);
17773
18376
  }
17774
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeFlatBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
17775
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: MultiSelectTreeFlatBindingDirective, isStandalone: true, selector: "[kendoMultiSelectTreeFlatBinding]", inputs: { nodes: ["kendoMultiSelectTreeFlatBinding", "nodes"], idField: ["valueField", "idField"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
18377
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeFlatBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
18378
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: MultiSelectTreeFlatBindingDirective, isStandalone: true, selector: "[kendoMultiSelectTreeFlatBinding]", inputs: { nodes: ["kendoMultiSelectTreeFlatBinding", "nodes"], idField: ["valueField", "idField"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
17776
18379
  }
17777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeFlatBindingDirective, decorators: [{
18380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeFlatBindingDirective, decorators: [{
17778
18381
  type: Directive,
17779
18382
  args: [{
17780
18383
  selector: '[kendoMultiSelectTreeFlatBinding]',
@@ -17828,10 +18431,10 @@ class MultiSelectTreeHierarchyBindingDirective extends HierarchyBindingDirective
17828
18431
  }
17829
18432
  super.ngOnChanges(changes);
17830
18433
  }
17831
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeHierarchyBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
17832
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: MultiSelectTreeHierarchyBindingDirective, isStandalone: true, selector: "[kendoMultiSelectTreeHierarchyBinding]", inputs: { nodes: ["kendoMultiSelectTreeHierarchyBinding", "nodes"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
18434
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeHierarchyBindingDirective, deps: [{ token: i1$1.DataBoundComponent }], target: i0.ɵɵFactoryTarget.Directive });
18435
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: MultiSelectTreeHierarchyBindingDirective, isStandalone: true, selector: "[kendoMultiSelectTreeHierarchyBinding]", inputs: { nodes: ["kendoMultiSelectTreeHierarchyBinding", "nodes"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
17833
18436
  }
17834
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeHierarchyBindingDirective, decorators: [{
18437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeHierarchyBindingDirective, decorators: [{
17835
18438
  type: Directive,
17836
18439
  args: [{
17837
18440
  selector: '[kendoMultiSelectTreeHierarchyBinding]',
@@ -17879,10 +18482,10 @@ class DropDownTreesExpandDirective extends ExpandDirective {
17879
18482
  super(dropDownTree);
17880
18483
  this.dropDownTree = dropDownTree;
17881
18484
  }
17882
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreesExpandDirective, deps: [{ token: i1$1.ExpandableComponent }], target: i0.ɵɵFactoryTarget.Directive });
17883
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: DropDownTreesExpandDirective, isStandalone: true, selector: "[kendoDropDownTreeExpandable], [kendoMultiSelectTreeExpandable]", inputs: { isExpanded: ["isNodeExpanded", "isExpanded"] }, usesInheritance: true, ngImport: i0 });
18485
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreesExpandDirective, deps: [{ token: i1$1.ExpandableComponent }], target: i0.ɵɵFactoryTarget.Directive });
18486
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: DropDownTreesExpandDirective, isStandalone: true, selector: "[kendoDropDownTreeExpandable], [kendoMultiSelectTreeExpandable]", inputs: { isExpanded: ["isNodeExpanded", "isExpanded"] }, usesInheritance: true, ngImport: i0 });
17884
18487
  }
17885
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreesExpandDirective, decorators: [{
18488
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreesExpandDirective, decorators: [{
17886
18489
  type: Directive,
17887
18490
  args: [{
17888
18491
  selector: '[kendoDropDownTreeExpandable], [kendoMultiSelectTreeExpandable]',
@@ -18009,10 +18612,10 @@ class FilterDirective {
18009
18612
  const providedFields = isPresent(settings) && typeof settings === 'object' ? settings.fields : [];
18010
18613
  return Object.assign({}, DEFAULT_FILTER_SETTINGS, settings, { fields: this.getFilterFields(providedFields) });
18011
18614
  }
18012
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FilterDirective, deps: [{ token: FilterableComponent }], target: i0.ɵɵFactoryTarget.Directive });
18013
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: FilterDirective, isStandalone: true, selector: "[kendoDropDownFilter]", inputs: { data: "data", rawSettings: ["kendoDropDownFilter", "rawSettings"], filterable: "filterable" }, ngImport: i0 });
18615
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FilterDirective, deps: [{ token: FilterableComponent }], target: i0.ɵɵFactoryTarget.Directive });
18616
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: FilterDirective, isStandalone: true, selector: "[kendoDropDownFilter]", inputs: { data: "data", rawSettings: ["kendoDropDownFilter", "rawSettings"], filterable: "filterable" }, ngImport: i0 });
18014
18617
  }
18015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FilterDirective, decorators: [{
18618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FilterDirective, decorators: [{
18016
18619
  type: Directive,
18017
18620
  args: [{
18018
18621
  selector: '[kendoDropDownFilter]',
@@ -18043,7 +18646,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18043
18646
  * <kendo-combobox>
18044
18647
  * <kendo-combobox-messages
18045
18648
  * noDataText="No items found"
18046
- * filterInputPlaceholder="Search items">
18649
+ * filterInputPlaceholder="Search items"
18650
+ * clearTitle="Clear selection">
18047
18651
  * </kendo-combobox-messages>
18048
18652
  * </kendo-combobox>
18049
18653
  *
@@ -18057,7 +18661,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18057
18661
  * <kendo-autocomplete>
18058
18662
  * <kendo-autocomplete-messages
18059
18663
  * noDataText="No items found"
18060
- * filterInputPlaceholder="Type to search">
18664
+ * filterInputPlaceholder="Type to search"
18665
+ * clearTitle="Clear input">
18061
18666
  * </kendo-autocomplete-messages>
18062
18667
  * </kendo-autocomplete>
18063
18668
  *
@@ -18092,15 +18697,15 @@ class CustomMessagesComponent extends Messages {
18092
18697
  get override() {
18093
18698
  return true;
18094
18699
  }
18095
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
18096
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-dropdownlist-messages,kendo-combobox-messages,kendo-multicolumncombobox-messages,kendo-autocomplete-messages,kendo-multiselect-messages,kendo-dropdowntree-messages,kendo-multiselecttree-messages", providers: [
18700
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
18701
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-dropdownlist-messages,kendo-combobox-messages,kendo-multicolumncombobox-messages,kendo-autocomplete-messages,kendo-multiselect-messages,kendo-dropdowntree-messages,kendo-multiselecttree-messages", providers: [
18097
18702
  {
18098
18703
  provide: Messages,
18099
18704
  useExisting: forwardRef(() => CustomMessagesComponent)
18100
18705
  }
18101
18706
  ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
18102
18707
  }
18103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomMessagesComponent, decorators: [{
18708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: CustomMessagesComponent, decorators: [{
18104
18709
  type: Component,
18105
18710
  args: [{
18106
18711
  providers: [
@@ -18115,66 +18720,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18115
18720
  }]
18116
18721
  }], ctorParameters: () => [{ type: i1.LocalizationService }] });
18117
18722
 
18118
- /**
18119
- * Configures the MultiSelect to show one summary tag for all selected items.
18120
- * Set a number to display the summary tag after the respective number of items are selected.
18121
- * [See example](https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/summary-tag-mode).
18122
- *
18123
- * @example
18124
- * ```ts-no-run
18125
- * <kendo-multiselect kendoMultiSelectSummaryTag [data]="data"></kendo-multiselect>
18126
- * ```
18127
- *
18128
- * @example
18129
- * ```ts-no-run
18130
- * <kendo-multiselect [kendoMultiSelectSummaryTag]="2" [data]="data"></kendo-multiselect>
18131
- * ```
18132
- */
18133
- class SummaryTagDirective {
18134
- multiSelectComponent;
18135
- /**
18136
- * Sets the number of selected items after which the summary tag appears.
18137
- *
18138
- * @default 0
18139
- */
18140
- showAfter = 0;
18141
- constructor(multiSelectComponent) {
18142
- this.multiSelectComponent = multiSelectComponent;
18143
- this.createTagMapper();
18144
- }
18145
- ngOnChanges(changes) {
18146
- if (isPresent(changes.showAfter)) {
18147
- this.createTagMapper();
18148
- this.multiSelectComponent.onTagMapperChange();
18149
- }
18150
- }
18151
- createTagMapper() {
18152
- const showAfter = parseNumber(this.showAfter);
18153
- this.multiSelectComponent.tagMapper = (tags) => {
18154
- if (tags.length > showAfter) {
18155
- const result = tags.slice(0, showAfter);
18156
- result.push(tags.slice(showAfter, tags.length));
18157
- return result;
18158
- }
18159
- else {
18160
- return tags;
18161
- }
18162
- };
18163
- }
18164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SummaryTagDirective, deps: [{ token: MultiSelectComponent }], target: i0.ɵɵFactoryTarget.Directive });
18165
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: SummaryTagDirective, isStandalone: true, selector: "[kendoMultiSelectSummaryTag]", inputs: { showAfter: ["kendoMultiSelectSummaryTag", "showAfter"] }, usesOnChanges: true, ngImport: i0 });
18166
- }
18167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SummaryTagDirective, decorators: [{
18168
- type: Directive,
18169
- args: [{
18170
- selector: '[kendoMultiSelectSummaryTag]',
18171
- standalone: true
18172
- }]
18173
- }], ctorParameters: () => [{ type: MultiSelectComponent }], propDecorators: { showAfter: [{
18174
- type: Input,
18175
- args: ['kendoMultiSelectSummaryTag']
18176
- }] } });
18177
-
18178
18723
  /**
18179
18724
  * Configures the MultiSelectTree to show one single summary tag for all selected data items.
18180
18725
  * When a number is set, the summary tag is shown after the corresponding number of data items are selected (see examples).
@@ -18223,10 +18768,10 @@ class MultiSelectTreeSummaryTagDirective {
18223
18768
  }
18224
18769
  };
18225
18770
  }
18226
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeSummaryTagDirective, deps: [{ token: MultiSelectTreeComponent }], target: i0.ɵɵFactoryTarget.Directive });
18227
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: MultiSelectTreeSummaryTagDirective, isStandalone: true, selector: "[kendoMultiSelectTreeSummaryTag]", inputs: { showAfter: ["kendoMultiSelectTreeSummaryTag", "showAfter"] }, usesOnChanges: true, ngImport: i0 });
18771
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeSummaryTagDirective, deps: [{ token: MultiSelectTreeComponent }], target: i0.ɵɵFactoryTarget.Directive });
18772
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: MultiSelectTreeSummaryTagDirective, isStandalone: true, selector: "[kendoMultiSelectTreeSummaryTag]", inputs: { showAfter: ["kendoMultiSelectTreeSummaryTag", "showAfter"] }, usesOnChanges: true, ngImport: i0 });
18228
18773
  }
18229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectTreeSummaryTagDirective, decorators: [{
18774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectTreeSummaryTagDirective, decorators: [{
18230
18775
  type: Directive,
18231
18776
  args: [{
18232
18777
  selector: '[kendoMultiSelectTreeSummaryTag]',
@@ -18313,7 +18858,6 @@ const KENDO_DROPDOWNLIST = [
18313
18858
  */
18314
18859
  const KENDO_MULTISELECT = [
18315
18860
  MultiSelectComponent,
18316
- SummaryTagDirective,
18317
18861
  CustomItemTemplateDirective,
18318
18862
  FixedGroupTemplateDirective,
18319
18863
  FooterTemplateDirective,
@@ -18396,9 +18940,9 @@ const KENDO_DROPDOWNS = [
18396
18940
  * - `CustomMessagesComponent`&mdash;The custom messages component.
18397
18941
  */
18398
18942
  class DropDownTreesModule {
18399
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18400
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreesModule, imports: [DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent], exports: [DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent] });
18401
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreesModule, providers: [
18943
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18944
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreesModule, imports: [DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent], exports: [DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent] });
18945
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreesModule, providers: [
18402
18946
  IconsService,
18403
18947
  PopupService,
18404
18948
  ResizeBatchService,
@@ -18409,7 +18953,7 @@ class DropDownTreesModule {
18409
18953
  AdaptiveService
18410
18954
  ], imports: [DropDownTreeComponent, MultiSelectTreeComponent] });
18411
18955
  }
18412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownTreesModule, decorators: [{
18956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownTreesModule, decorators: [{
18413
18957
  type: NgModule,
18414
18958
  args: [{
18415
18959
  imports: [...KENDO_DROPDOWNTREE, ...KENDO_MULTISELECTTREE],
@@ -18448,11 +18992,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18448
18992
  * ```
18449
18993
  */
18450
18994
  class DropDownsModule {
18451
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18452
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DropDownsModule, imports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, MultiSelectComponent, SummaryTagDirective, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective], exports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, MultiSelectComponent, SummaryTagDirective, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective] });
18453
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownsModule, providers: [PopupService, ResizeBatchService, IconsService, DialogContainerService, DialogService, WindowService, WindowContainerService, AdaptiveService], imports: [AutoCompleteComponent, i10.SeparatorComponent, ComboBoxComponent, i10.SeparatorComponent, MultiColumnComboBoxComponent, i10.SeparatorComponent, DropDownListComponent, MultiSelectComponent, i10.SeparatorComponent, DropDownTreeComponent, MultiSelectTreeComponent, i10.SeparatorComponent] });
18995
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18996
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: DropDownsModule, imports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, MultiSelectComponent, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective], exports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, MultiSelectComponent, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, CustomMessagesComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective] });
18997
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownsModule, providers: [PopupService, ResizeBatchService, IconsService, DialogContainerService, DialogService, WindowService, WindowContainerService, AdaptiveService], imports: [AutoCompleteComponent, i10.SeparatorComponent, ComboBoxComponent, i10.SeparatorComponent, MultiColumnComboBoxComponent, i10.SeparatorComponent, DropDownListComponent, MultiSelectComponent, i10.SeparatorComponent, DropDownTreeComponent, MultiSelectTreeComponent, i10.SeparatorComponent] });
18454
18998
  }
18455
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownsModule, decorators: [{
18999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownsModule, decorators: [{
18456
19000
  type: NgModule,
18457
19001
  args: [{
18458
19002
  exports: [...KENDO_DROPDOWNS, ...KENDO_ADORNMENTS, ...KENDO_TOGGLEBUTTONTABSTOP],
@@ -18467,7 +19011,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18467
19011
  *
18468
19012
  * This module exports all MultiSelect-related components and directives:
18469
19013
  * - `MultiSelectComponent`&mdash;The main MultiSelect component class.
18470
- * - `SummaryTagDirective`&mdash;The summary tag directive for MultiSelect.
18471
19014
  * - `ItemTemplateDirective`&mdash;The item template directive.
18472
19015
  * - `CustomItemTemplateDirective`&mdash;The custom item template directive.
18473
19016
  * - `TagTemplateDirective`&mdash;The tag template directive.
@@ -18493,16 +19036,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18493
19036
  * ```
18494
19037
  */
18495
19038
  class MultiSelectModule {
18496
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18497
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectModule, imports: [MultiSelectComponent, SummaryTagDirective, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent], exports: [MultiSelectComponent, SummaryTagDirective, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent] });
18498
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectModule, providers: [
19039
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19040
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectModule, imports: [MultiSelectComponent, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent], exports: [MultiSelectComponent, CustomItemTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, GroupTagTemplateDirective, TagTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent] });
19041
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectModule, providers: [
18499
19042
  PopupService,
18500
19043
  ResizeBatchService,
18501
19044
  IconsService,
18502
19045
  AdaptiveService
18503
19046
  ], imports: [MultiSelectComponent, i10.SeparatorComponent, i10.SeparatorComponent] });
18504
19047
  }
18505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiSelectModule, decorators: [{
19048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MultiSelectModule, decorators: [{
18506
19049
  type: NgModule,
18507
19050
  args: [{
18508
19051
  imports: [...KENDO_MULTISELECT, ...KENDO_ADORNMENTS],
@@ -18543,16 +19086,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18543
19086
  * - `PrefixTemplateDirective`&mdash;The prefix template directive.
18544
19087
  */
18545
19088
  class AutoCompleteModule {
18546
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18547
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteModule, imports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent], exports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent] });
18548
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteModule, providers: [
19089
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19090
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteModule, imports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent], exports: [AutoCompleteComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent] });
19091
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteModule, providers: [
18549
19092
  PopupService,
18550
19093
  ResizeBatchService,
18551
19094
  IconsService,
18552
19095
  AdaptiveService
18553
19096
  ], imports: [AutoCompleteComponent, i10.SeparatorComponent, i10.SeparatorComponent] });
18554
19097
  }
18555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AutoCompleteModule, decorators: [{
19098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: AutoCompleteModule, decorators: [{
18556
19099
  type: NgModule,
18557
19100
  args: [{
18558
19101
  imports: [...KENDO_AUTOCOMPLETE, ...KENDO_ADORNMENTS],
@@ -18596,16 +19139,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18596
19139
  * ```
18597
19140
  */
18598
19141
  class ComboBoxModule {
18599
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18600
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxModule, imports: [ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective], exports: [ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective] });
18601
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxModule, providers: [
19142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19143
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxModule, imports: [ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective], exports: [ComboBoxComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent, i10.SuffixTemplateDirective, i10.PrefixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective, i10.PrefixTemplateDirective, i10.SuffixTemplateDirective, i10.SeparatorComponent, i10.ToggleButtonTabStopDirective] });
19144
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxModule, providers: [
18602
19145
  PopupService,
18603
19146
  ResizeBatchService,
18604
19147
  IconsService,
18605
19148
  AdaptiveService
18606
19149
  ], imports: [ComboBoxComponent, i10.SeparatorComponent, MultiColumnComboBoxComponent, i10.SeparatorComponent, i10.SeparatorComponent] });
18607
19150
  }
18608
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComboBoxModule, decorators: [{
19151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: ComboBoxModule, decorators: [{
18609
19152
  type: NgModule,
18610
19153
  args: [{
18611
19154
  imports: [...KENDO_COMBOBOX, ...KENDO_MULTICOLUMNCOMBOBOX, ...KENDO_ADORNMENTS, ...KENDO_TOGGLEBUTTONTABSTOP],
@@ -18655,16 +19198,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18655
19198
  * ```
18656
19199
  */
18657
19200
  class DropDownListModule {
18658
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18659
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: DropDownListModule, imports: [DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent], exports: [DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent] });
18660
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownListModule, providers: [
19201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19202
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: DropDownListModule, imports: [DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent], exports: [DropDownListComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, ValueTemplateDirective, NoDataTemplateDirective, FilterDirective, CustomMessagesComponent] });
19203
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownListModule, providers: [
18661
19204
  PopupService,
18662
19205
  ResizeBatchService,
18663
19206
  IconsService,
18664
19207
  AdaptiveService
18665
19208
  ], imports: [DropDownListComponent] });
18666
19209
  }
18667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropDownListModule, decorators: [{
19210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: DropDownListModule, decorators: [{
18668
19211
  type: NgModule,
18669
19212
  args: [{
18670
19213
  imports: [...KENDO_DROPDOWNLIST],
@@ -18682,5 +19225,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
18682
19225
  * Generated bundle index. Do not edit.
18683
19226
  */
18684
19227
 
18685
- export { AdaptiveRendererComponent, AutoCompleteComponent, AutoCompleteModule, CheckAllDirective, CheckDirective, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, ComboBoxColumnComponent, ComboBoxComponent, ComboBoxModule, CustomItemTemplateDirective, CustomMessagesComponent, DataService, DisabledItemsService, DropDownListComponent, DropDownListModule, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, DropDownTreesModule, DropDownsModule, FilterDirective, FilterInputDirective, FilterableComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTagTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, KENDO_AUTOCOMPLETE, KENDO_COMBOBOX, KENDO_DROPDOWNLIST, KENDO_DROPDOWNS, KENDO_DROPDOWNTREE, KENDO_MULTICOLUMNCOMBOBOX, KENDO_MULTISELECT, KENDO_MULTISELECTTREE, ListComponent, ListItemDirective, LocalizedMessagesDirective, MultiColumnComboBoxComponent, MultiSelectComponent, MultiSelectModule, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, MultiSelectTreeSummaryTagDirective, NavigationService, NoDataTemplateDirective, NodeTemplateDirective, PreventableEvent, RemoveTagEvent, SearchBarComponent, SelectableDirective, SelectionService, SummaryTagDirective, TagListComponent, TagTemplateDirective, ValueTemplateDirective };
19228
+ export { AdaptiveRendererComponent, AutoCompleteComponent, AutoCompleteModule, CheckAllDirective, CheckDirective, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, ComboBoxColumnComponent, ComboBoxComponent, ComboBoxModule, CustomItemTemplateDirective, CustomMessagesComponent, DataService, DisabledItemsService, DropDownListComponent, DropDownListModule, DropDownTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, DropDownTreesExpandDirective, DropDownTreesModule, DropDownsModule, FilterDirective, FilterInputDirective, FilterableComponent, FixedGroupTemplateDirective, FooterTemplateDirective, GroupTagTemplateDirective, GroupTemplateDirective, HeaderTemplateDirective, ItemTemplateDirective, KENDO_AUTOCOMPLETE, KENDO_COMBOBOX, KENDO_DROPDOWNLIST, KENDO_DROPDOWNS, KENDO_DROPDOWNTREE, KENDO_MULTICOLUMNCOMBOBOX, KENDO_MULTISELECT, KENDO_MULTISELECTTREE, ListComponent, ListItemDirective, LocalizedMessagesDirective, MultiColumnComboBoxComponent, MultiSelectComponent, MultiSelectModule, MultiSelectTreeComponent, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, MultiSelectTreeSummaryTagDirective, NavigationService, NoDataTemplateDirective, NodeTemplateDirective, PreventableEvent, RemoveTagEvent, SearchBarComponent, SelectableDirective, SelectionService, TagListComponent, TagTemplateDirective, ValueTemplateDirective };
18686
19229