@progress/kendo-angular-dropdowns 11.0.0-develop.92 → 11.0.0-develop.94

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.
@@ -4,9 +4,9 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
6
  import { EventEmitter, Component, Input, Output, ViewChild, HostBinding, Directive, Injectable, HostListener, ViewChildren, InjectionToken, forwardRef, isDevMode, ViewContainerRef, Optional, Inject, ContentChild, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
7
- import * as i9 from '@progress/kendo-angular-common';
7
+ import * as i10 from '@progress/kendo-angular-common';
8
8
  import { isDocumentAvailable, Keys, isChanged, hasObservers, KendoInput, anyChanged, guid as guid$1, ResizeSensorModule, EventsModule } from '@progress/kendo-angular-common';
9
- import * as i12 from '@angular/forms';
9
+ import * as i13 from '@angular/forms';
10
10
  import { NgControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
11
11
  import { validatePackage } from '@progress/kendo-licensing';
12
12
  import { getter as getter$1, detectDesktopBrowser, detectMobileOS, pointers, touchEnabled } from '@progress/kendo-common';
@@ -16,9 +16,12 @@ import { Subscription, merge, fromEvent, Subject, of, interval } from 'rxjs';
16
16
  import * as i2 from '@progress/kendo-angular-popup';
17
17
  import { PopupModule } from '@progress/kendo-angular-popup';
18
18
  export { PopupComponent } from '@progress/kendo-angular-popup';
19
- import { map, switchMap, take, auditTime, tap, filter, partition, throttleTime, catchError, skipWhile, concatMap, takeUntil } from 'rxjs/operators';
20
- import * as i11 from '@angular/common';
19
+ import { map, switchMap, take, auditTime, tap, filter, partition, throttleTime, catchError, skipWhile, concatMap, takeUntil, debounceTime } from 'rxjs/operators';
20
+ import * as i12 from '@angular/common';
21
21
  import { CommonModule } from '@angular/common';
22
+ import { xIcon, caretAltDownIcon, searchIcon, xCircleIcon, plusIcon } from '@progress/kendo-svg-icons';
23
+ import * as i8 from '@progress/kendo-angular-icons';
24
+ import { IconsModule } from '@progress/kendo-angular-icons';
22
25
  import * as i1$1 from '@progress/kendo-angular-treeview';
23
26
  import { DataBoundComponent, ExpandableComponent, FlatDataBindingDirective, HierarchyBindingDirective, ExpandDirective, TreeViewModule } from '@progress/kendo-angular-treeview';
24
27
 
@@ -29,7 +32,7 @@ const packageMetadata = {
29
32
  name: '@progress/kendo-angular-dropdowns',
30
33
  productName: 'Kendo UI for Angular',
31
34
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
32
- publishDate: 1673253284,
35
+ publishDate: 1673372510,
33
36
  version: '',
34
37
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
35
38
  };
@@ -376,6 +379,32 @@ const isJapanese = (input) => {
376
379
  const japaneseRegex = /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g;
377
380
  return japaneseRegex.test(input);
378
381
  };
382
+ /**
383
+ * @hidden
384
+ */
385
+ const isLetter = (text) => {
386
+ const isLetter = /[a-zA-Z]/;
387
+ return isLetter.test(text) && text?.length === 1;
388
+ };
389
+ /**
390
+ * @hidden
391
+ */
392
+ const getTextField = (field, level) => {
393
+ if (isArray(field)) {
394
+ return field[level];
395
+ }
396
+ return field;
397
+ };
398
+ /**
399
+ * @hidden
400
+ */
401
+ const getSearchableItems = (popupId, popupElement) => {
402
+ const nodeSeletor = `kendo-popup[id='${popupId}'] li.k-treeview-item`;
403
+ const liElements = Array.from(popupElement.querySelectorAll(nodeSeletor));
404
+ return liElements.map((liElement) => {
405
+ return { text: liElement.innerText, index: liElement.getAttribute('data-treeindex') };
406
+ });
407
+ };
379
408
 
380
409
  /**
381
410
  * @hidden
@@ -583,7 +612,7 @@ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
583
612
  [attr.aria-busy]="isLoading"
584
613
  [attr.aria-invalid]="formControl?.invalid"
585
614
  />
586
- `, isInline: true, directives: [{ type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
615
+ `, isInline: true, directives: [{ type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
587
616
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SearchBarComponent, decorators: [{
588
617
  type: Component,
589
618
  args: [{
@@ -2184,7 +2213,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
2184
2213
  </div>
2185
2214
  </div>
2186
2215
  </div>
2187
- `, isInline: true, components: [{ type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ListItemDirective, selector: "\"li[role=option], li[role=group]\"" }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2216
+ `, isInline: true, components: [{ type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ListItemDirective, selector: "\"li[role=option], li[role=group]\"" }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2188
2217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ListComponent, decorators: [{
2189
2218
  type: Component,
2190
2219
  args: [{
@@ -2501,6 +2530,10 @@ class AutoCompleteComponent {
2501
2530
  this.renderer = renderer;
2502
2531
  this.hostElement = hostElement;
2503
2532
  this.touchEnabled = touchEnabled;
2533
+ /**
2534
+ * @hidden
2535
+ */
2536
+ this.xIcon = xIcon;
2504
2537
  /**
2505
2538
  * Defines whether the first match from the suggestions list will be automatically focused.
2506
2539
  * By default, `highlightFirst` is set to `true`.
@@ -3380,7 +3413,11 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
3380
3413
  (click)="clearValue($event)"
3381
3414
  (mousedown)="$event.preventDefault()"
3382
3415
  >
3383
- <span class="k-icon k-i-x"></span>
3416
+ <kendo-icon-wrapper
3417
+ name="x"
3418
+ [svgIcon]="xIcon"
3419
+ >
3420
+ </kendo-icon-wrapper>
3384
3421
  </span>
3385
3422
  <span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
3386
3423
  <ng-template #popupTemplate>
@@ -3431,7 +3468,7 @@ AutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
3431
3468
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
3432
3469
  </ng-template>
3433
3470
  <ng-container #container></ng-container>
3434
- `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
3471
+ `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
3435
3472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AutoCompleteComponent, decorators: [{
3436
3473
  type: Component,
3437
3474
  args: [{
@@ -3496,7 +3533,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3496
3533
  (click)="clearValue($event)"
3497
3534
  (mousedown)="$event.preventDefault()"
3498
3535
  >
3499
- <span class="k-icon k-i-x"></span>
3536
+ <kendo-icon-wrapper
3537
+ name="x"
3538
+ [svgIcon]="xIcon"
3539
+ >
3540
+ </kendo-icon-wrapper>
3500
3541
  </span>
3501
3542
  <span *ngIf="loading" class="k-icon k-i-loading k-input-loading-icon"></span>
3502
3543
  <ng-template #popupTemplate>
@@ -3761,6 +3802,14 @@ class ComboBoxComponent {
3761
3802
  this.cdr = cdr;
3762
3803
  this.renderer = renderer;
3763
3804
  this.touchEnabled = touchEnabled;
3805
+ /**
3806
+ * @hidden
3807
+ */
3808
+ this.xIcon = xIcon;
3809
+ /**
3810
+ * @hidden
3811
+ */
3812
+ this.caretAltDownIcon = caretAltDownIcon;
3764
3813
  this.selected = [];
3765
3814
  /**
3766
3815
  * @hidden
@@ -4466,7 +4515,7 @@ class ComboBoxComponent {
4466
4515
  * @hidden
4467
4516
  */
4468
4517
  get buttonClasses() {
4469
- return this.loading ? 'k-i-loading k-input-loading-icon' : this.iconClass || 'k-i-caret-alt-down';
4518
+ return this.loading ? 'k-i-loading k-input-loading-icon' : this.iconClass;
4470
4519
  }
4471
4520
  /**
4472
4521
  * @hidden
@@ -5012,7 +5061,11 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
5012
5061
  mousedown: preventEventDefault
5013
5062
  }"
5014
5063
  >
5015
- <span class="k-icon k-i-x"></span>
5064
+ <kendo-icon-wrapper
5065
+ name="x"
5066
+ [svgIcon]="xIcon"
5067
+ >
5068
+ </kendo-icon-wrapper>
5016
5069
  </span>
5017
5070
  <button
5018
5071
  #select
@@ -5026,7 +5079,13 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
5026
5079
  mousedown: preventEventDefault
5027
5080
  }"
5028
5081
  >
5029
- <span class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
5082
+ <kendo-icon-wrapper
5083
+ *ngIf="!loading && !iconClass"
5084
+ name="caret-alt-down"
5085
+ [svgIcon]="caretAltDownIcon"
5086
+ >
5087
+ </kendo-icon-wrapper>
5088
+ <span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
5030
5089
  </button>
5031
5090
  <ng-template #popupTemplate>
5032
5091
  <!--header template-->
@@ -5076,7 +5135,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
5076
5135
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
5077
5136
  </ng-template>
5078
5137
  <ng-container #container></ng-container>
5079
- `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
5138
+ `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
5080
5139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ComboBoxComponent, decorators: [{
5081
5140
  type: Component,
5082
5141
  args: [{
@@ -5143,7 +5202,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
5143
5202
  mousedown: preventEventDefault
5144
5203
  }"
5145
5204
  >
5146
- <span class="k-icon k-i-x"></span>
5205
+ <kendo-icon-wrapper
5206
+ name="x"
5207
+ [svgIcon]="xIcon"
5208
+ >
5209
+ </kendo-icon-wrapper>
5147
5210
  </span>
5148
5211
  <button
5149
5212
  #select
@@ -5157,7 +5220,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
5157
5220
  mousedown: preventEventDefault
5158
5221
  }"
5159
5222
  >
5160
- <span class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
5223
+ <kendo-icon-wrapper
5224
+ *ngIf="!loading && !iconClass"
5225
+ name="caret-alt-down"
5226
+ [svgIcon]="caretAltDownIcon"
5227
+ >
5228
+ </kendo-icon-wrapper>
5229
+ <span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
5161
5230
  </button>
5162
5231
  <ng-template #popupTemplate>
5163
5232
  <!--header template-->
@@ -5449,6 +5518,14 @@ class DropDownListComponent {
5449
5518
  this.cdr = cdr;
5450
5519
  this.touchEnabled = touchEnabled;
5451
5520
  this.injector = injector;
5521
+ /**
5522
+ * @hidden
5523
+ */
5524
+ this.searchIcon = searchIcon;
5525
+ /**
5526
+ * @hidden
5527
+ */
5528
+ this.caretAltDownIcon = caretAltDownIcon;
5452
5529
  /**
5453
5530
  * Sets the height of the options list. By default, `listHeight` is 200px.
5454
5531
  *
@@ -6110,7 +6187,7 @@ class DropDownListComponent {
6110
6187
  * @hidden
6111
6188
  */
6112
6189
  get buttonClasses() {
6113
- return this.loading ? 'k-i-loading k-input-loading-icon' : this.iconClass || 'k-i-caret-alt-down';
6190
+ return this.loading ? 'k-i-loading k-input-loading-icon' : this.iconClass;
6114
6191
  }
6115
6192
  /**
6116
6193
  * @hidden
@@ -6639,12 +6716,15 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
6639
6716
  mousedown: onMouseDown
6640
6717
  }"
6641
6718
  >
6642
- <span
6643
- class="k-button-icon k-icon"
6719
+ <kendo-icon-wrapper
6720
+ *ngIf="!loading && !iconClass"
6644
6721
  unselectable="on"
6645
- [ngClass]="buttonClasses"
6646
- ></span>
6647
- </button>
6722
+ name="caret-alt-down"
6723
+ [svgIcon]="caretAltDownIcon"
6724
+ >
6725
+ </kendo-icon-wrapper>
6726
+ <span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
6727
+ </button>
6648
6728
  <ng-template #popupTemplate>
6649
6729
  <!--filterable-->
6650
6730
 
@@ -6654,7 +6734,12 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
6654
6734
  class="k-searchbox k-input"
6655
6735
  [ngClass]="filterInputClasses"
6656
6736
  >
6657
- <span class="k-input-icon k-icon k-i-search" unselectable="on"></span>
6737
+ <kendo-icon-wrapper
6738
+ class="k-icon"
6739
+ name="search"
6740
+ [svgIcon]="searchIcon"
6741
+ >
6742
+ </kendo-icon-wrapper>
6658
6743
  <input
6659
6744
  role="searchbox"
6660
6745
  aria-autocomplete="list"
@@ -6747,7 +6832,7 @@ DropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
6747
6832
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
6748
6833
  </ng-template>
6749
6834
  <ng-container #container></ng-container>
6750
- `, isInline: true, components: [{ type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
6835
+ `, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
6751
6836
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DropDownListComponent, decorators: [{
6752
6837
  type: Component,
6753
6838
  args: [{
@@ -6802,12 +6887,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
6802
6887
  mousedown: onMouseDown
6803
6888
  }"
6804
6889
  >
6805
- <span
6806
- class="k-button-icon k-icon"
6890
+ <kendo-icon-wrapper
6891
+ *ngIf="!loading && !iconClass"
6807
6892
  unselectable="on"
6808
- [ngClass]="buttonClasses"
6809
- ></span>
6810
- </button>
6893
+ name="caret-alt-down"
6894
+ [svgIcon]="caretAltDownIcon"
6895
+ >
6896
+ </kendo-icon-wrapper>
6897
+ <span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
6898
+ </button>
6811
6899
  <ng-template #popupTemplate>
6812
6900
  <!--filterable-->
6813
6901
 
@@ -6817,7 +6905,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
6817
6905
  class="k-searchbox k-input"
6818
6906
  [ngClass]="filterInputClasses"
6819
6907
  >
6820
- <span class="k-input-icon k-icon k-i-search" unselectable="on"></span>
6908
+ <kendo-icon-wrapper
6909
+ class="k-icon"
6910
+ name="search"
6911
+ [svgIcon]="searchIcon"
6912
+ >
6913
+ </kendo-icon-wrapper>
6821
6914
  <input
6822
6915
  role="searchbox"
6823
6916
  aria-autocomplete="list"
@@ -7230,6 +7323,10 @@ class TagListComponent {
7230
7323
  constructor(renderer, hostElement) {
7231
7324
  this.renderer = renderer;
7232
7325
  this.hostElement = hostElement;
7326
+ /**
7327
+ * @hidden
7328
+ */
7329
+ this.xCircleIcon = xCircleIcon;
7233
7330
  this.rounded = 'medium';
7234
7331
  this.fillMode = 'solid';
7235
7332
  /**
@@ -7349,16 +7446,19 @@ TagListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7349
7446
  </span>
7350
7447
  </ng-template>
7351
7448
  </span>
7352
-
7353
7449
  <span class="k-chip-actions">
7354
7450
  <span aria-label="delete" [attr.aria-hidden]="index !== focused" class="k-chip-action k-chip-remove-action">
7355
- <span class="k-icon k-i-x-circle" (mousedown)="deleteTag($event, tag, index)">
7356
- </span>
7451
+ <kendo-icon-wrapper
7452
+ (mousedown)="deleteTag($event, tag, index)"
7453
+ name="x-circle"
7454
+ [svgIcon]="xCircleIcon"
7455
+ >
7456
+ </kendo-icon-wrapper>
7357
7457
  </span>
7358
7458
  </span>
7359
7459
  </div>
7360
7460
  <ng-content></ng-content>
7361
- `, isInline: true, directives: [{ type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
7461
+ `, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
7362
7462
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TagListComponent, decorators: [{
7363
7463
  type: Component,
7364
7464
  args: [{
@@ -7409,11 +7509,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
7409
7509
  </span>
7410
7510
  </ng-template>
7411
7511
  </span>
7412
-
7413
7512
  <span class="k-chip-actions">
7414
7513
  <span aria-label="delete" [attr.aria-hidden]="index !== focused" class="k-chip-action k-chip-remove-action">
7415
- <span class="k-icon k-i-x-circle" (mousedown)="deleteTag($event, tag, index)">
7416
- </span>
7514
+ <kendo-icon-wrapper
7515
+ (mousedown)="deleteTag($event, tag, index)"
7516
+ name="x-circle"
7517
+ [svgIcon]="xCircleIcon"
7518
+ >
7519
+ </kendo-icon-wrapper>
7417
7520
  </span>
7418
7521
  </span>
7419
7522
  </div>
@@ -7503,6 +7606,14 @@ class MultiSelectComponent {
7503
7606
  this.renderer = renderer;
7504
7607
  this._zone = _zone;
7505
7608
  this.touchEnabled = touchEnabled;
7609
+ /**
7610
+ * @hidden
7611
+ */
7612
+ this.xIcon = xIcon;
7613
+ /**
7614
+ * @hidden
7615
+ */
7616
+ this.plusIcon = plusIcon;
7506
7617
  this.listBoxId = guid();
7507
7618
  this.tagListId = guid();
7508
7619
  this.tagPrefix = "tag-" + guid();
@@ -8950,7 +9061,12 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
8950
9061
  tabindex="-1"
8951
9062
  (mousedown)="clearAll($event)"
8952
9063
  >
8953
- <span class="k-icon k-i-x"></span>
9064
+ <kendo-icon-wrapper
9065
+ class="k-icon"
9066
+ name="x"
9067
+ [svgIcon]="xIcon"
9068
+ >
9069
+ </kendo-icon-wrapper>
8954
9070
  </span>
8955
9071
  <span
8956
9072
  *ngIf="loading"
@@ -8978,7 +9094,12 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
8978
9094
  }">
8979
9095
  </ng-template>
8980
9096
  <ng-template #default_custom_item_template>{{ text }}</ng-template>
8981
- <span class="k-icon k-i-plus" [style]="'float: right;'"></span>
9097
+ <kendo-icon-wrapper
9098
+ class="k-icon"
9099
+ name="plus"
9100
+ [svgIcon]="plusIcon"
9101
+ >
9102
+ </kendo-icon-wrapper>
8982
9103
  </div>
8983
9104
  </div>
8984
9105
  <!--list-->
@@ -9025,7 +9146,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
9025
9146
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
9026
9147
  </ng-template>
9027
9148
  <ng-container #container></ng-container>
9028
- `, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
9149
+ `, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "multipleSelection"] }] });
9029
9150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiSelectComponent, decorators: [{
9030
9151
  type: Component,
9031
9152
  args: [{
@@ -9106,7 +9227,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
9106
9227
  tabindex="-1"
9107
9228
  (mousedown)="clearAll($event)"
9108
9229
  >
9109
- <span class="k-icon k-i-x"></span>
9230
+ <kendo-icon-wrapper
9231
+ class="k-icon"
9232
+ name="x"
9233
+ [svgIcon]="xIcon"
9234
+ >
9235
+ </kendo-icon-wrapper>
9110
9236
  </span>
9111
9237
  <span
9112
9238
  *ngIf="loading"
@@ -9134,7 +9260,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
9134
9260
  }">
9135
9261
  </ng-template>
9136
9262
  <ng-template #default_custom_item_template>{{ text }}</ng-template>
9137
- <span class="k-icon k-i-plus" [style]="'float: right;'"></span>
9263
+ <kendo-icon-wrapper
9264
+ class="k-icon"
9265
+ name="plus"
9266
+ [svgIcon]="plusIcon"
9267
+ >
9268
+ </kendo-icon-wrapper>
9138
9269
  </div>
9139
9270
  </div>
9140
9271
  <!--list-->
@@ -9663,7 +9794,11 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
9663
9794
  mousedown: preventEventDefault
9664
9795
  }"
9665
9796
  >
9666
- <span class="k-icon k-i-x"></span>
9797
+ <kendo-icon-wrapper
9798
+ name="x"
9799
+ [svgIcon]="xIcon"
9800
+ >
9801
+ </kendo-icon-wrapper>
9667
9802
  </span>
9668
9803
 
9669
9804
  <button
@@ -9679,7 +9814,13 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
9679
9814
  mousedown: preventEventDefault
9680
9815
  }"
9681
9816
  >
9682
- <span class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
9817
+ <kendo-icon-wrapper
9818
+ *ngIf="!loading && !iconClass"
9819
+ name="caret-alt-down"
9820
+ [svgIcon]="caretAltDownIcon"
9821
+ >
9822
+ </kendo-icon-wrapper>
9823
+ <span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
9683
9824
  </button>
9684
9825
 
9685
9826
  <ng-template #popupTemplate>
@@ -9835,7 +9976,7 @@ MultiColumnComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
9835
9976
 
9836
9977
  <!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
9837
9978
  <ng-container #container></ng-container>
9838
- `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
9979
+ `, isInline: true, components: [{ type: SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "listId", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "popupOpen", "role", "isLoading", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
9839
9980
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
9840
9981
  type: Component,
9841
9982
  args: [{
@@ -9912,7 +10053,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
9912
10053
  mousedown: preventEventDefault
9913
10054
  }"
9914
10055
  >
9915
- <span class="k-icon k-i-x"></span>
10056
+ <kendo-icon-wrapper
10057
+ name="x"
10058
+ [svgIcon]="xIcon"
10059
+ >
10060
+ </kendo-icon-wrapper>
9916
10061
  </span>
9917
10062
 
9918
10063
  <button
@@ -9928,7 +10073,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
9928
10073
  mousedown: preventEventDefault
9929
10074
  }"
9930
10075
  >
9931
- <span class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
10076
+ <kendo-icon-wrapper
10077
+ *ngIf="!loading && !iconClass"
10078
+ name="caret-alt-down"
10079
+ [svgIcon]="caretAltDownIcon"
10080
+ >
10081
+ </kendo-icon-wrapper>
10082
+ <span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
9932
10083
  </button>
9933
10084
 
9934
10085
  <ng-template #popupTemplate>
@@ -10148,6 +10299,18 @@ class DropDownTreeComponent {
10148
10299
  this.cdr = cdr;
10149
10300
  this.localization = localization;
10150
10301
  this.touchEnabled = touchEnabled;
10302
+ /**
10303
+ * @hidden
10304
+ */
10305
+ this.searchIcon = searchIcon;
10306
+ /**
10307
+ * @hidden
10308
+ */
10309
+ this.caretAltDownIcon = caretAltDownIcon;
10310
+ /**
10311
+ * @hidden
10312
+ */
10313
+ this.xIcon = xIcon;
10151
10314
  this.hostClasses = true;
10152
10315
  this.role = 'combobox';
10153
10316
  this.ariaHasPopup = 'tree';
@@ -10289,7 +10452,10 @@ class DropDownTreeComponent {
10289
10452
  this._size = 'medium';
10290
10453
  this._rounded = 'medium';
10291
10454
  this._fillMode = 'solid';
10292
- this.subscriptions = [];
10455
+ this._searchableNodes = [];
10456
+ this._typedValue = '';
10457
+ this.printableCharacters = new Subject();
10458
+ this.subs = new Subscription();
10293
10459
  this.onTouchedCallback = noop;
10294
10460
  this.onChangeCallback = noop;
10295
10461
  this.direction = localization.rtl ? 'rtl' : 'ltr';
@@ -10343,6 +10509,9 @@ class DropDownTreeComponent {
10343
10509
  if (this.disabled || this.readonly) {
10344
10510
  return;
10345
10511
  }
10512
+ if (isLetter(event.key)) {
10513
+ this.printableCharacters.next(event.key);
10514
+ }
10346
10515
  const eventData = event;
10347
10516
  this.navigationService.process({
10348
10517
  originalEvent: eventData
@@ -10592,9 +10761,20 @@ class DropDownTreeComponent {
10592
10761
  return ngControl?.control || null;
10593
10762
  }
10594
10763
  ngOnInit() {
10764
+ this.subs.add(this.printableCharacters.pipe(tap((char) => {
10765
+ this._typedValue += char;
10766
+ const itemToFocus = this._searchableNodes.find((node) => {
10767
+ return node.text.toLowerCase().indexOf(this._typedValue) === 0;
10768
+ });
10769
+ this.treeview.focus(itemToFocus?.index);
10770
+ const htmlItem = document.querySelector(`kendo-popup[id='${this._popupId}'] li.k-treeview-item[data-treeindex='${itemToFocus?.index}']`);
10771
+ htmlItem?.scrollIntoView();
10772
+ }), debounceTime(1000)).subscribe(() => {
10773
+ this._typedValue = '';
10774
+ }));
10595
10775
  this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
10596
10776
  this.assignAriaDescribedBy();
10597
- this.subscriptions.push(this.localization
10777
+ this.subs.add(this.localization
10598
10778
  .changes.subscribe(({ rtl }) => {
10599
10779
  this.direction = rtl ? 'rtl' : 'ltr';
10600
10780
  this.cdr.markForCheck();
@@ -10848,7 +11028,7 @@ class DropDownTreeComponent {
10848
11028
  * @hidden
10849
11029
  */
10850
11030
  get buttonClasses() {
10851
- return this.loading ? 'k-i-loading k-input-loading-icon' : 'k-i-caret-alt-down';
11031
+ return this.loading ? 'k-i-loading k-input-loading-icon' : null;
10852
11032
  }
10853
11033
  /**
10854
11034
  * @hidden
@@ -10893,6 +11073,16 @@ class DropDownTreeComponent {
10893
11073
  }
10894
11074
  return null;
10895
11075
  }
11076
+ /**
11077
+ * @hidden
11078
+ */
11079
+ onChildrenLoaded() {
11080
+ setTimeout(() => {
11081
+ if (this.popupRef) {
11082
+ this._searchableNodes = getSearchableItems(this._popupId, this.popupRef.popupElement);
11083
+ }
11084
+ });
11085
+ }
10896
11086
  /**
10897
11087
  * @hidden
10898
11088
  *
@@ -10949,6 +11139,7 @@ class DropDownTreeComponent {
10949
11139
  this.popupRef.popupOpen.subscribe(() => {
10950
11140
  this.cdr.detectChanges();
10951
11141
  this.opened.emit();
11142
+ this._searchableNodes = getSearchableItems(this._popupId, this.popupRef.popupElement);
10952
11143
  });
10953
11144
  this.popupRef.popupClose.subscribe(() => {
10954
11145
  this.closed.emit();
@@ -10990,33 +11181,41 @@ class DropDownTreeComponent {
10990
11181
  this.selectedKeys = [];
10991
11182
  }
10992
11183
  subscribeEvents() {
10993
- this.subscriptions.push(this.navigationService.open.subscribe((event) => {
10994
- event.originalEvent.preventDefault();
10995
- this.togglePopup(true);
10996
- }), this.navigationService.close.subscribe((event) => {
10997
- event.originalEvent.preventDefault();
10998
- this.togglePopup(false);
10999
- this.focus();
11000
- }), this.navigationService.enter
11001
- .pipe(tap((event) => event.originalEvent.preventDefault()))
11002
- .subscribe(() => this.togglePopup(true)), this.navigationService.esc
11003
- .subscribe(() => this.handleEscape()), this.navigationService.tab.subscribe(() => this.focus()), this.navigationService.down.subscribe((event) => {
11004
- if (!this.treeview) {
11005
- return;
11006
- }
11007
- event.originalEvent.preventDefault();
11008
- if (!this.treeview.isActive) {
11009
- this.treeview.focus();
11010
- }
11011
- }), this.navigationService.up.subscribe((event) => {
11012
- if (!this.treeview) {
11013
- return;
11014
- }
11015
- event.originalEvent.preventDefault();
11016
- if (this.filterable && this.treeview['navigationService']['activeIndex'] === '0') {
11017
- this.filterInput.nativeElement.focus();
11018
- }
11019
- }));
11184
+ [
11185
+ this.navigationService.open.subscribe((event) => {
11186
+ event.originalEvent.preventDefault();
11187
+ this.togglePopup(true);
11188
+ }),
11189
+ this.navigationService.close.subscribe((event) => {
11190
+ event.originalEvent.preventDefault();
11191
+ this.togglePopup(false);
11192
+ this.focus();
11193
+ }),
11194
+ this.navigationService.enter
11195
+ .pipe(tap((event) => event.originalEvent.preventDefault()))
11196
+ .subscribe(() => this.togglePopup(true)),
11197
+ this.navigationService.esc
11198
+ .subscribe(() => this.handleEscape()),
11199
+ this.navigationService.tab.subscribe(() => this.focus()),
11200
+ this.navigationService.down.subscribe((event) => {
11201
+ if (!this.treeview) {
11202
+ return;
11203
+ }
11204
+ event.originalEvent.preventDefault();
11205
+ if (!this.treeview.isActive) {
11206
+ this.treeview.focus();
11207
+ }
11208
+ }),
11209
+ this.navigationService.up.subscribe((event) => {
11210
+ if (!this.treeview) {
11211
+ return;
11212
+ }
11213
+ event.originalEvent.preventDefault();
11214
+ if (this.filterable && this.treeview['navigationService']['activeIndex'] === '0') {
11215
+ this.filterInput.nativeElement.focus();
11216
+ }
11217
+ })
11218
+ ].forEach(sub => this.subs.add(sub));
11020
11219
  }
11021
11220
  subscribeTouchEvents() {
11022
11221
  if (!isDocumentAvailable() || !this.touchEnabled) {
@@ -11055,7 +11254,7 @@ class DropDownTreeComponent {
11055
11254
  }
11056
11255
  }
11057
11256
  unsubscribeEvents() {
11058
- this.subscriptions.forEach(sub => sub.unsubscribe());
11257
+ this.subs.unsubscribe();
11059
11258
  this.unSubscribeFocusEvents();
11060
11259
  if (this.touchstartDisposeHandler) {
11061
11260
  this.touchstartDisposeHandler();
@@ -11148,7 +11347,12 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11148
11347
  [attr.title]="messageFor('clearTitle')"
11149
11348
  (click)="clearValue($event)"
11150
11349
  >
11151
- <span class="k-icon k-i-x"></span>
11350
+ <kendo-icon-wrapper
11351
+ class="k-icon"
11352
+ name="x"
11353
+ [svgIcon]="xIcon"
11354
+ >
11355
+ </kendo-icon-wrapper>
11152
11356
  </span>
11153
11357
  <button
11154
11358
  tabindex="-1"
@@ -11158,10 +11362,13 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11158
11362
  [ngClass]="selectButtonClasses"
11159
11363
  [attr.aria-label]="messageFor('selectButtonText')"
11160
11364
  >
11161
- <span
11162
- class="k-button-icon k-icon"
11163
- [ngClass]="buttonClasses"
11164
- ></span>
11365
+ <span *ngIf="loading" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
11366
+ <kendo-icon-wrapper
11367
+ *ngIf="!loading"
11368
+ name="caret-alt-down"
11369
+ [svgIcon]="caretAltDownIcon"
11370
+ >
11371
+ </kendo-icon-wrapper>
11165
11372
  </button>
11166
11373
  <ng-template #popupTemplate>
11167
11374
  <span
@@ -11173,7 +11380,12 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11173
11380
  [ngClass]="filterInputClasses"
11174
11381
  >
11175
11382
  <span class="k-input-prefix">
11176
- <span class="k-input-icon k-icon k-i-search"></span>
11383
+ <kendo-icon-wrapper
11384
+ class="k-icon"
11385
+ name="search"
11386
+ [svgIcon]="searchIcon"
11387
+ >
11388
+ </kendo-icon-wrapper>
11177
11389
  </span>
11178
11390
  <input
11179
11391
  #filterInput
@@ -11227,6 +11439,7 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11227
11439
  (selectionChange)="onSelectionChange($event)"
11228
11440
  (expand)="nodeExpand.emit($event)"
11229
11441
  (collapse)="nodeCollapse.emit($event)"
11442
+ (childrenLoaded)="onChildrenLoaded()"
11230
11443
  >
11231
11444
  </kendo-treeview>
11232
11445
  <!--footer template-->
@@ -11249,7 +11462,7 @@ DropDownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11249
11462
  </div>
11250
11463
  </ng-template>
11251
11464
  <ng-container #container></ng-container>
11252
- `, isInline: true, components: [{ type: i1$1.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "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"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i1$1.SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11465
+ `, isInline: true, components: [{ type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i1$1.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "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"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i1$1.SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11253
11466
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DropDownTreeComponent, decorators: [{
11254
11467
  type: Component,
11255
11468
  args: [{
@@ -11317,7 +11530,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
11317
11530
  [attr.title]="messageFor('clearTitle')"
11318
11531
  (click)="clearValue($event)"
11319
11532
  >
11320
- <span class="k-icon k-i-x"></span>
11533
+ <kendo-icon-wrapper
11534
+ class="k-icon"
11535
+ name="x"
11536
+ [svgIcon]="xIcon"
11537
+ >
11538
+ </kendo-icon-wrapper>
11321
11539
  </span>
11322
11540
  <button
11323
11541
  tabindex="-1"
@@ -11327,10 +11545,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
11327
11545
  [ngClass]="selectButtonClasses"
11328
11546
  [attr.aria-label]="messageFor('selectButtonText')"
11329
11547
  >
11330
- <span
11331
- class="k-button-icon k-icon"
11332
- [ngClass]="buttonClasses"
11333
- ></span>
11548
+ <span *ngIf="loading" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
11549
+ <kendo-icon-wrapper
11550
+ *ngIf="!loading"
11551
+ name="caret-alt-down"
11552
+ [svgIcon]="caretAltDownIcon"
11553
+ >
11554
+ </kendo-icon-wrapper>
11334
11555
  </button>
11335
11556
  <ng-template #popupTemplate>
11336
11557
  <span
@@ -11342,7 +11563,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
11342
11563
  [ngClass]="filterInputClasses"
11343
11564
  >
11344
11565
  <span class="k-input-prefix">
11345
- <span class="k-input-icon k-icon k-i-search"></span>
11566
+ <kendo-icon-wrapper
11567
+ class="k-icon"
11568
+ name="search"
11569
+ [svgIcon]="searchIcon"
11570
+ >
11571
+ </kendo-icon-wrapper>
11346
11572
  </span>
11347
11573
  <input
11348
11574
  #filterInput
@@ -11396,6 +11622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
11396
11622
  (selectionChange)="onSelectionChange($event)"
11397
11623
  (expand)="nodeExpand.emit($event)"
11398
11624
  (collapse)="nodeCollapse.emit($event)"
11625
+ (childrenLoaded)="onChildrenLoaded()"
11399
11626
  >
11400
11627
  </kendo-treeview>
11401
11628
  <!--footer template-->
@@ -12037,6 +12264,14 @@ class MultiSelectTreeComponent {
12037
12264
  this.cdr = cdr;
12038
12265
  this.lookup = lookup;
12039
12266
  this.touchEnabled = touchEnabled;
12267
+ /**
12268
+ * @hidden
12269
+ */
12270
+ this.searchIcon = searchIcon;
12271
+ /**
12272
+ * @hidden
12273
+ */
12274
+ this.xIcon = xIcon;
12040
12275
  this.hostClasses = true;
12041
12276
  this.role = 'combobox';
12042
12277
  this.ariaHasPopup = 'tree';
@@ -12202,7 +12437,10 @@ class MultiSelectTreeComponent {
12202
12437
  this._size = 'medium';
12203
12438
  this._rounded = 'medium';
12204
12439
  this._fillMode = 'solid';
12205
- this.subscriptions = [];
12440
+ this._searchableNodes = [];
12441
+ this._typedValue = '';
12442
+ this.printableCharacters = new Subject();
12443
+ this.subs = new Subscription();
12206
12444
  this.lastAction = 'check';
12207
12445
  this.onTouchedCallback = noop;
12208
12446
  this.onChangeCallback = noop;
@@ -12271,6 +12509,9 @@ class MultiSelectTreeComponent {
12271
12509
  if (this.disabled || this.readonly) {
12272
12510
  return;
12273
12511
  }
12512
+ if (isLetter(event.key)) {
12513
+ this.printableCharacters.next(event.key);
12514
+ }
12274
12515
  const eventData = event;
12275
12516
  const action = this.navigationService.process({
12276
12517
  originalEvent: eventData
@@ -12601,9 +12842,20 @@ class MultiSelectTreeComponent {
12601
12842
  return this.checkAllInput && document.activeElement === this.checkAllInput.nativeElement;
12602
12843
  }
12603
12844
  ngOnInit() {
12845
+ this.subs.add(this.printableCharacters.pipe(tap((char) => {
12846
+ this._typedValue += char;
12847
+ const itemToFocus = this._searchableNodes.find((node) => {
12848
+ return node.text.toLowerCase().indexOf(this._typedValue) === 0;
12849
+ });
12850
+ this.treeview.focus(itemToFocus?.index);
12851
+ const htmlItem = document.querySelector(`kendo-popup[id='${this._popupId}'] li.k-treeview-item[data-treeindex='${itemToFocus?.index}']`);
12852
+ htmlItem?.scrollIntoView();
12853
+ }), debounceTime(1000)).subscribe(() => {
12854
+ this._typedValue = '';
12855
+ }));
12604
12856
  this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
12605
12857
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', String(this.isOpen));
12606
- this.subscriptions.push(this.localization
12858
+ this.subs.add(this.localization
12607
12859
  .changes.subscribe(({ rtl }) => {
12608
12860
  this.direction = rtl ? 'rtl' : 'ltr';
12609
12861
  this.cdr.markForCheck();
@@ -13010,9 +13262,11 @@ class MultiSelectTreeComponent {
13010
13262
  popupWrapper.style.height = this.height;
13011
13263
  this.renderer.setAttribute(popupWrapper, 'dir', this.direction);
13012
13264
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
13265
+ this.renderer.setAttribute(popupWrapper, 'id', this._popupId);
13013
13266
  this.popupRef.popupOpen.subscribe(() => {
13014
13267
  this.cdr.detectChanges();
13015
13268
  this.opened.emit();
13269
+ this._searchableNodes = getSearchableItems(this._popupId, this.popupRef.popupElement);
13016
13270
  });
13017
13271
  this.popupRef.popupClose.subscribe(() => {
13018
13272
  this.closed.emit();
@@ -13035,20 +13289,33 @@ class MultiSelectTreeComponent {
13035
13289
  }
13036
13290
  }
13037
13291
  subscribeEvents() {
13038
- this.subscriptions.push(this.navigationService.open.subscribe((event) => {
13039
- event.originalEvent.preventDefault();
13040
- this.togglePopup(true);
13041
- }), this.navigationService.enter
13042
- .pipe(tap((event) => event.originalEvent.preventDefault()))
13043
- .subscribe(() => this.togglePopup(true)), merge(this.navigationService.close, this.navigationService.esc).subscribe((event) => {
13044
- event.originalEvent.preventDefault();
13045
- this.focus();
13046
- this.togglePopup(false);
13047
- }), this.navigationService.tab.subscribe(this.handleTabKey.bind(this)), this.navigationService.up.subscribe(this.handleUpKey.bind(this)), this.navigationService.down.subscribe(this.handleDownKey.bind(this)), this.navigationService.left
13048
- .pipe(filter(() => !this.isTreeViewActive))
13049
- .subscribe(this.direction === 'rtl' ? this.handleRightKey.bind(this) : this.handleLeftKey.bind(this)), this.navigationService.right
13050
- .pipe(filter(() => !this.isTreeViewActive))
13051
- .subscribe(this.direction === 'rtl' ? this.handleLeftKey.bind(this) : this.handleRightKey.bind(this)), this.navigationService.home.pipe(filter(() => !this.isOpen)).subscribe(this.handleHome.bind(this)), this.navigationService.end.pipe(filter(() => !this.isOpen)).subscribe(this.handleEnd.bind(this)), this.navigationService.backspace.pipe(filter(() => this.isTagFocused)).subscribe(this.handleBackspace.bind(this)), this.navigationService.delete.pipe(filter(() => this.isTagFocused)).subscribe(this.handleDelete.bind(this)));
13292
+ [
13293
+ this.navigationService.open.subscribe((event) => {
13294
+ event.originalEvent.preventDefault();
13295
+ this.togglePopup(true);
13296
+ }),
13297
+ this.navigationService.enter
13298
+ .pipe(tap((event) => event.originalEvent.preventDefault()))
13299
+ .subscribe(() => this.togglePopup(true)),
13300
+ merge(this.navigationService.close, this.navigationService.esc).subscribe((event) => {
13301
+ event.originalEvent.preventDefault();
13302
+ this.focus();
13303
+ this.togglePopup(false);
13304
+ }),
13305
+ this.navigationService.tab.subscribe(this.handleTabKey.bind(this)),
13306
+ this.navigationService.up.subscribe(this.handleUpKey.bind(this)),
13307
+ this.navigationService.down.subscribe(this.handleDownKey.bind(this)),
13308
+ this.navigationService.left
13309
+ .pipe(filter(() => !this.isTreeViewActive))
13310
+ .subscribe(this.direction === 'rtl' ? this.handleRightKey.bind(this) : this.handleLeftKey.bind(this)),
13311
+ this.navigationService.right
13312
+ .pipe(filter(() => !this.isTreeViewActive))
13313
+ .subscribe(this.direction === 'rtl' ? this.handleLeftKey.bind(this) : this.handleRightKey.bind(this)),
13314
+ this.navigationService.home.pipe(filter(() => !this.isOpen)).subscribe(this.handleHome.bind(this)),
13315
+ this.navigationService.end.pipe(filter(() => !this.isOpen)).subscribe(this.handleEnd.bind(this)),
13316
+ this.navigationService.backspace.pipe(filter(() => this.isTagFocused)).subscribe(this.handleBackspace.bind(this)),
13317
+ this.navigationService.delete.pipe(filter(() => this.isTagFocused)).subscribe(this.handleDelete.bind(this))
13318
+ ].forEach(sub => this.subs.add(sub));
13052
13319
  }
13053
13320
  subscribeFocusEvents() {
13054
13321
  if (isDocumentAvailable()) {
@@ -13179,7 +13446,7 @@ class MultiSelectTreeComponent {
13179
13446
  }
13180
13447
  }
13181
13448
  unsubscribeEvents() {
13182
- this.subscriptions.forEach(sub => sub.unsubscribe());
13449
+ this.subs.unsubscribe();
13183
13450
  this.unSubscribeFocusEvents();
13184
13451
  }
13185
13452
  /**
@@ -13214,6 +13481,16 @@ class MultiSelectTreeComponent {
13214
13481
  this.value = newValue;
13215
13482
  this.emitValueChange(this.value);
13216
13483
  }
13484
+ /**
13485
+ * @hidden
13486
+ */
13487
+ onChildrenLoaded() {
13488
+ setTimeout(() => {
13489
+ if (this.popupRef) {
13490
+ this._searchableNodes = getSearchableItems(this._popupId, this.popupRef.popupElement);
13491
+ }
13492
+ });
13493
+ }
13217
13494
  /**
13218
13495
  * @hidden
13219
13496
  *
@@ -13349,7 +13626,12 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
13349
13626
  tabindex="-1"
13350
13627
  (click)="clearAll($event)"
13351
13628
  >
13352
- <span class="k-icon k-i-x"></span>
13629
+ <kendo-icon-wrapper
13630
+ class="k-icon"
13631
+ name="x"
13632
+ [svgIcon]="xIcon"
13633
+ >
13634
+ </kendo-icon-wrapper>
13353
13635
  </span>
13354
13636
  <span
13355
13637
  *ngIf="loading"
@@ -13366,7 +13648,12 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
13366
13648
  [ngClass]="filterInputClasses"
13367
13649
  >
13368
13650
  <span class="k-input-prefix">
13369
- <span class="k-input-icon k-icon k-i-search"></span>
13651
+ <kendo-icon-wrapper
13652
+ class="k-icon"
13653
+ name="search"
13654
+ [svgIcon]="searchIcon"
13655
+ >
13656
+ </kendo-icon-wrapper>
13370
13657
  </span>
13371
13658
  <input
13372
13659
  #filterInput
@@ -13454,6 +13741,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
13454
13741
  focusout: handleBlur
13455
13742
  }"
13456
13743
  [scope]="this"
13744
+ (childrenLoaded)="onChildrenLoaded()"
13457
13745
  >
13458
13746
  </kendo-treeview>
13459
13747
  <!--footer template-->
@@ -13476,7 +13764,7 @@ MultiSelectTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
13476
13764
  </div>
13477
13765
  </ng-template>
13478
13766
  <ng-container #container></ng-container>
13479
- `, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: i1$1.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "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"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }] });
13767
+ `, isInline: true, components: [{ type: TagListComponent, selector: "kendo-taglist", inputs: ["tags", "textField", "valueField", "valueDepth", "focused", "template", "groupTemplate", "disabled", "tagPrefix", "id", "size", "rounded", "fillMode", "disabledIndices"], outputs: ["removeTag"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i1$1.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "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"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FilterInputDirective, selector: "[filterInput]", inputs: ["filterInput"] }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: CheckAllDirective, selector: "[checkAll]", inputs: ["lastAction", "treeview", "checkedItems", "valueField", "checkAll"], outputs: ["checkedItemsChange"] }, { type: CheckDirective, selector: "[kendoMultiSelectTreeCheckable]", inputs: ["checkable", "valueField", "checkedItems"], outputs: ["checkedItemsChange"] }] });
13480
13768
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
13481
13769
  type: Component,
13482
13770
  args: [{
@@ -13554,7 +13842,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
13554
13842
  tabindex="-1"
13555
13843
  (click)="clearAll($event)"
13556
13844
  >
13557
- <span class="k-icon k-i-x"></span>
13845
+ <kendo-icon-wrapper
13846
+ class="k-icon"
13847
+ name="x"
13848
+ [svgIcon]="xIcon"
13849
+ >
13850
+ </kendo-icon-wrapper>
13558
13851
  </span>
13559
13852
  <span
13560
13853
  *ngIf="loading"
@@ -13571,7 +13864,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
13571
13864
  [ngClass]="filterInputClasses"
13572
13865
  >
13573
13866
  <span class="k-input-prefix">
13574
- <span class="k-input-icon k-icon k-i-search"></span>
13867
+ <kendo-icon-wrapper
13868
+ class="k-icon"
13869
+ name="search"
13870
+ [svgIcon]="searchIcon"
13871
+ >
13872
+ </kendo-icon-wrapper>
13575
13873
  </span>
13576
13874
  <input
13577
13875
  #filterInput
@@ -13659,6 +13957,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
13659
13957
  focusout: handleBlur
13660
13958
  }"
13661
13959
  [scope]="this"
13960
+ (childrenLoaded)="onChildrenLoaded()"
13662
13961
  >
13663
13962
  </kendo-treeview>
13664
13963
  <!--footer template-->
@@ -14300,21 +14599,21 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
14300
14599
  TemplateContextDirective,
14301
14600
  TagListComponent,
14302
14601
  CheckDirective,
14303
- CheckAllDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], exports: [ListComponent,
14602
+ CheckAllDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule], exports: [ListComponent,
14304
14603
  ListItemDirective,
14305
14604
  SelectableDirective,
14306
14605
  SearchBarComponent,
14307
14606
  TemplateContextDirective,
14308
14607
  TagListComponent,
14309
14608
  CheckDirective,
14310
- CheckAllDirective, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
14311
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });
14609
+ CheckAllDirective, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule] });
14610
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SharedModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule], CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule] });
14312
14611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SharedModule, decorators: [{
14313
14612
  type: NgModule,
14314
14613
  args: [{
14315
14614
  declarations: [INTERNAL_DIRECTIVES],
14316
- exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule],
14317
- imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]
14615
+ exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule],
14616
+ imports: [CommonModule, FormsModule, ReactiveFormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule, IconsModule]
14318
14617
  }]
14319
14618
  }] });
14320
14619