@progress/kendo-angular-dropdowns 19.0.0-develop.3 → 19.0.0-develop.31

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.
Files changed (44) hide show
  1. package/autocomplete/autocomplete.component.d.ts +11 -17
  2. package/codemods/template-transformer/index.js +94 -0
  3. package/codemods/utils.js +553 -0
  4. package/codemods/v19/autocomplete-subtitle.js +50 -0
  5. package/codemods/v19/autocomplete-title.js +51 -0
  6. package/codemods/v19/combobox-subtitle.js +50 -0
  7. package/codemods/v19/combobox-title.js +52 -0
  8. package/codemods/v19/dropdownlist-subtitle.js +49 -0
  9. package/codemods/v19/dropdownlist-title.js +51 -0
  10. package/codemods/v19/dropdowntree-subtitle.js +49 -0
  11. package/codemods/v19/dropdowntree-title.js +51 -0
  12. package/codemods/v19/multicolumncombobox-subtitle.js +49 -0
  13. package/codemods/v19/multicolumncombobox-title.js +51 -0
  14. package/codemods/v19/multiselect-subtitle.js +49 -0
  15. package/codemods/v19/multiselect-title.js +51 -0
  16. package/codemods/v19/multiselecttree-subtitle.js +49 -0
  17. package/codemods/v19/multiselecttree-title.js +51 -0
  18. package/comboboxes/combobox.component.d.ts +12 -14
  19. package/common/{action-sheet.component.d.ts → adaptive-renderer.component.d.ts} +10 -13
  20. package/common/list.component.d.ts +8 -1
  21. package/common/localization/messages.d.ts +5 -5
  22. package/common/util.d.ts +0 -6
  23. package/dropdownlist/dropdownlist.component.d.ts +7 -19
  24. package/dropdowntrees/dropdowntree.component.d.ts +9 -16
  25. package/dropdowntrees/multiselecttree.component.d.ts +9 -28
  26. package/esm2022/autocomplete/autocomplete.component.mjs +71 -94
  27. package/esm2022/comboboxes/combobox.component.mjs +85 -100
  28. package/esm2022/comboboxes/multicolumncombobox.component.mjs +23 -26
  29. package/esm2022/common/{action-sheet.component.mjs → adaptive-renderer.component.mjs} +71 -107
  30. package/esm2022/common/list.component.mjs +300 -213
  31. package/esm2022/common/localization/messages.mjs +7 -7
  32. package/esm2022/common/searchbar.component.mjs +2 -3
  33. package/esm2022/common/util.mjs +0 -22
  34. package/esm2022/dropdownlist/dropdownlist.component.mjs +50 -123
  35. package/esm2022/dropdowntrees/dropdowntree.component.mjs +63 -72
  36. package/esm2022/dropdowntrees/multiselecttree.component.mjs +65 -122
  37. package/esm2022/index.mjs +1 -1
  38. package/esm2022/multiselect/multiselect.component.mjs +133 -190
  39. package/esm2022/package-metadata.mjs +2 -2
  40. package/fesm2022/progress-kendo-angular-dropdowns.mjs +920 -1130
  41. package/index.d.ts +1 -1
  42. package/multiselect/multiselect.component.d.ts +13 -26
  43. package/package.json +90 -10
  44. package/schematics/ngAdd/index.js +2 -2
@@ -5,7 +5,7 @@
5
5
  import * as i0 from '@angular/core';
6
6
  import { EventEmitter, Component, Input, HostBinding, Output, Directive, Injectable, HostListener, ViewChildren, ViewChild, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
7
7
  import * as i10 from '@progress/kendo-angular-common';
8
- import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, Keys, setHTMLAttributes, EventsOutsideAngularDirective, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, isControlRequired, hasObservers, KendoInput, SuffixTemplateDirective, PrefixTemplateDirective, SeparatorComponent, MultiTabStop, anyChanged, guid as guid$1, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
8
+ import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, Keys, setHTMLAttributes, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, isControlRequired, hasObservers, KendoInput, SuffixTemplateDirective, PrefixTemplateDirective, SeparatorComponent, MultiTabStop, anyChanged, EventsOutsideAngularDirective, guid as guid$1, 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,7 +20,7 @@ import * as i2 from '@progress/kendo-angular-popup';
20
20
  import { PopupService } from '@progress/kendo-angular-popup';
21
21
  import { map, switchMap, take, auditTime, tap, filter, partition, throttleTime, catchError, skipWhile, concatMap, takeUntil, debounceTime } from 'rxjs/operators';
22
22
  import { NgIf, NgStyle, NgFor, NgClass, NgTemplateOutlet } from '@angular/common';
23
- import { xIcon, caretAltDownIcon, searchIcon, xCircleIcon, plusIcon } from '@progress/kendo-svg-icons';
23
+ import { checkIcon, xIcon, caretAltDownIcon, searchIcon, xCircleIcon } from '@progress/kendo-svg-icons';
24
24
  import { IconComponent, IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
25
25
  import { ActionSheetComponent, ActionSheetTemplateDirective } from '@progress/kendo-angular-navigation';
26
26
  import { TextBoxComponent, TextBoxPrefixTemplateDirective } from '@progress/kendo-angular-inputs';
@@ -37,8 +37,8 @@ const packageMetadata = {
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCode: 'KENDOUIANGULAR',
39
39
  productCodes: ['KENDOUIANGULAR'],
40
- publishDate: 1745498596,
41
- version: '19.0.0-develop.3',
40
+ publishDate: 1747923818,
41
+ version: '19.0.0-develop.31',
42
42
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
43
43
  };
44
44
 
@@ -405,28 +405,6 @@ const getSearchableItems = (treeViewId, element) => {
405
405
  * @hidden
406
406
  */
407
407
  const isTruthy = (value) => !!value;
408
- /**
409
- * @hidden
410
- */
411
- const updateActionSheetAdaptiveAppearance = (actionSheet, windowSize, renderer) => {
412
- const element = actionSheet['element'].nativeElement.querySelector('.k-actionsheet');
413
- const animationContainer = actionSheet['element'].nativeElement.querySelector('.k-child-animation-container');
414
- if (windowSize === 'medium') {
415
- renderer.removeClass(element, 'k-actionsheet-fullscreen');
416
- renderer.addClass(element, 'k-actionsheet-bottom');
417
- renderer.addClass(element, 'k-adaptive-actionsheet');
418
- renderer.removeStyle(animationContainer, 'top');
419
- renderer.removeStyle(animationContainer, 'height');
420
- renderer.setStyle(animationContainer, 'bottom', '0px');
421
- }
422
- else if (windowSize === 'small') {
423
- renderer.removeClass(element, 'k-actionsheet-bottom');
424
- renderer.addClass(element, 'k-actionsheet-fullscreen');
425
- renderer.addClass(element, 'k-adaptive-actionsheet');
426
- renderer.setStyle(animationContainer, 'bottom', '0px');
427
- renderer.setStyle(animationContainer, 'height', '100%');
428
- }
429
- };
430
408
  /**
431
409
  * @hidden
432
410
  */
@@ -748,8 +726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
748
726
  args: [{
749
727
  selector: 'input[kendoSearchbar]',
750
728
  template: ``,
751
- standalone: true,
752
- imports: [EventsOutsideAngularDirective]
729
+ standalone: true
753
730
  }]
754
731
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { tagListId: [{
755
732
  type: Input
@@ -1894,6 +1871,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1894
1871
  args: ['click', ['$event']]
1895
1872
  }] } });
1896
1873
 
1874
+ /**
1875
+ * Renders the content of the custom list item in the MultiSelect
1876
+ * ([see example](slug:templates_multiselect#toc-rendering-custom-item-content)).
1877
+ * The template context is set to the current component.
1878
+ * To get a reference to the current text that is typed by the
1879
+ * user, use the `let-customItem` directive.
1880
+ *
1881
+ * > The `CustomItemTemplate` directive can only be used with the MultiSelect component.
1882
+ *
1883
+ * @example
1884
+ * ```ts
1885
+ * _@Component({
1886
+ * selector: 'my-app',
1887
+ * template: `
1888
+ * <kendo-multiselect [data]="listItems" [allowCustom]="true">
1889
+ * <ng-template kendoMultiSelectCustomItemTemplate let-customItem>
1890
+ * <span>New Item: {{customItem}}</span>
1891
+ * </ng-template>
1892
+ * </kendo-multiselect>
1893
+ * `
1894
+ * })
1895
+ * class AppComponent {
1896
+ * public listItems: Array<string> = ["Item 1", "Item 2", "Item 3", "Item 4"];
1897
+ * }
1898
+ * ```
1899
+ *
1900
+ */
1901
+ class CustomItemTemplateDirective {
1902
+ templateRef;
1903
+ constructor(templateRef) {
1904
+ this.templateRef = templateRef;
1905
+ }
1906
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1907
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomItemTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectCustomItemTemplate]", ngImport: i0 });
1908
+ }
1909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomItemTemplateDirective, decorators: [{
1910
+ type: Directive,
1911
+ args: [{
1912
+ selector: '[kendoMultiSelectCustomItemTemplate]',
1913
+ standalone: true
1914
+ }]
1915
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
1916
+
1897
1917
  /**
1898
1918
  * @hidden
1899
1919
  */
@@ -1925,6 +1945,10 @@ class ListComponent {
1925
1945
  isActionSheetExpanded;
1926
1946
  showStickyHeader;
1927
1947
  rowWidth;
1948
+ customItemTemplate;
1949
+ text;
1950
+ allowCustom;
1951
+ defaultItem;
1928
1952
  set data(data) {
1929
1953
  this._data = data[0] && data[0].header ? data.slice(0) : data;
1930
1954
  }
@@ -2269,6 +2293,12 @@ class ListComponent {
2269
2293
  isItemSelected(index) {
2270
2294
  return this.selectionService.isSelected(index) || null;
2271
2295
  }
2296
+ get isDisabledDefaultItem() {
2297
+ return this.disabledItemsService.isItemDisabled(this.defaultItem);
2298
+ }
2299
+ getDefaultItemText() {
2300
+ return getter(this.defaultItem, this.textField);
2301
+ }
2272
2302
  /**
2273
2303
  * Sets the list's content overflow (hides/shows scrollbar)
2274
2304
  */
@@ -2316,7 +2346,41 @@ class ListComponent {
2316
2346
  }
2317
2347
  }
2318
2348
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [{ token: DataService }, { token: i0.ElementRef }, { token: SelectionService }, { token: DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2319
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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", 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, static: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2349
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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, static: true }, { propertyName: "virtualContainer", first: true, predicate: ["virtualContainer"], descendants: true }, { propertyName: "items", predicate: ListItemDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2350
+ <div *ngIf="defaultItem && !template"
2351
+ class="k-list-optionlabel"
2352
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
2353
+ kendoDropDownsSelectable
2354
+ [index]="-1">
2355
+ {{ getDefaultItemText() }}
2356
+ </div>
2357
+ <div *ngIf="defaultItem && template"
2358
+ class="k-list-optionlabel"
2359
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
2360
+ kendoDropDownsSelectable
2361
+ [index]="-1">
2362
+ <ng-template
2363
+ [templateContext]="{
2364
+ templateRef: template.templateRef,
2365
+ $implicit: defaultItem
2366
+ }">
2367
+ </ng-template>
2368
+ </div>
2369
+ <div *ngIf="allowCustom && text"
2370
+ kendoDropDownsSelectable
2371
+ [multipleSelection]="true"
2372
+ [index]="-1"
2373
+ class="k-list-custom-value">
2374
+ <ng-template *ngIf="customItemTemplate; else default_custom_item_template"
2375
+ [templateContext]="{
2376
+ templateRef: customItemTemplate.templateRef,
2377
+ $implicit: text
2378
+ }">
2379
+ </ng-template>
2380
+ <ng-template #default_custom_item_template>
2381
+ Use "{{text}}"
2382
+ </ng-template>
2383
+ </div>
2320
2384
  <div *ngIf="dataService.grouped && showStickyHeader"
2321
2385
  [class]="listGroupStickyHeaderClass"
2322
2386
  [ngStyle]="{
@@ -2337,116 +2401,116 @@ class ListComponent {
2337
2401
  [style.maxHeight.px]="height"
2338
2402
  unselectable="on"
2339
2403
  (scroll)="popupListScroll.emit($event)">
2340
- <ul #list
2341
- role="listbox"
2342
- [class]="listClass"
2343
- [attr.id]="id"
2344
- [attr.aria-live]="ariaLive"
2345
- [attr.aria-multiselectable]="isMultiselect"
2346
- [attr.aria-hidden]="!show">
2347
- <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2348
- <li
2349
- role="option"
2350
- kendoDropDownsSelectable
2351
- [checkboxes]="checkboxes"
2352
- [height]="virtual?.itemHeight"
2353
- [index]="itemIndex + startFrom"
2354
- [multipleSelection]="multipleSelection"
2355
- [attr.id]="optionPrefix + '-' + itemIndex"
2356
- [attr.tabIndex]="-1"
2357
- [attr.aria-selected]="isItemSelected(itemIndex)"
2358
- [class]="listItemClass"
2359
- [ngClass]="{
2360
- 'k-disabled': isDisabled(itemIndex),
2361
- 'k-table-alt-row': isAltRow(itemIndex)
2362
- }"
2363
- [style.width.px]="rowWidth ?? null"
2364
- >
2365
- <input
2366
- *ngIf="checkboxes.enabled"
2367
- type="checkbox"
2368
- class="k-checkbox"
2369
- role="presentation"
2370
- tabindex="-1"
2371
- aria-hidden="true"
2372
- [ngClass]="checkboxClasses"
2373
- (change)="onCheckedChange($event, itemIndex + startFrom)"
2374
- [checked]="isChecked(itemIndex)"
2375
- />
2376
- <ng-template *ngIf="template"
2377
- [templateContext]="{
2378
- templateRef: template.templateRef,
2379
- $implicit: dataItem
2380
- }">
2381
- </ng-template>
2382
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
2383
- </li>
2384
- </ng-template>
2385
- <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2386
- <li
2387
- #li
2388
- *ngIf="dataItem.header"
2389
- role="group"
2390
- [class]="listGroupItemClass"
2391
- [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
2392
- [ngStyle]="{
2393
- 'height.px': virtual?.itemHeight,
2394
- 'minHeight.px' : virtual?.itemHeight,
2395
- 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
2396
- [attr.group-index]="dataItem.index"
2397
- [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
2398
- [attr.tabIndex]="-1"
2399
- [style.width.px]="rowWidth ?? null">
2400
- <span [class]="listGroupItemTextClass">
2401
- <ng-template *ngIf="groupTemplate"
2402
- [templateContext]="{
2403
- templateRef: groupTemplate.templateRef,
2404
- $implicit: dataItem.value
2404
+ <ul #list
2405
+ role="listbox"
2406
+ [class]="listClass"
2407
+ [attr.id]="id"
2408
+ [attr.aria-live]="ariaLive"
2409
+ [attr.aria-multiselectable]="isMultiselect"
2410
+ [attr.aria-hidden]="!show">
2411
+ <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2412
+ <li
2413
+ role="option"
2414
+ kendoDropDownsSelectable
2415
+ [checkboxes]="checkboxes"
2416
+ [height]="virtual?.itemHeight"
2417
+ [index]="itemIndex + startFrom"
2418
+ [multipleSelection]="multipleSelection"
2419
+ [attr.id]="optionPrefix + '-' + itemIndex"
2420
+ [attr.tabIndex]="-1"
2421
+ [attr.aria-selected]="isItemSelected(itemIndex)"
2422
+ [class]="listItemClass"
2423
+ [ngClass]="{
2424
+ 'k-disabled': isDisabled(itemIndex),
2425
+ 'k-table-alt-row': isAltRow(itemIndex)
2426
+ }"
2427
+ [style.width.px]="rowWidth ?? null"
2428
+ >
2429
+ <input
2430
+ *ngIf="checkboxes.enabled"
2431
+ type="checkbox"
2432
+ class="k-checkbox"
2433
+ role="presentation"
2434
+ tabindex="-1"
2435
+ aria-hidden="true"
2436
+ [ngClass]="checkboxClasses"
2437
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
2438
+ [checked]="isChecked(itemIndex)"
2439
+ />
2440
+ <ng-template *ngIf="template"
2441
+ [templateContext]="{
2442
+ templateRef: template.templateRef,
2443
+ $implicit: dataItem
2405
2444
  }">
2406
- </ng-template>
2407
- <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
2408
- </span>
2409
- </li>
2410
- <li
2411
- #li
2412
- *ngIf="!dataItem.header"
2413
- role="option"
2414
- kendoDropDownsSelectable
2415
- [height]="virtual?.itemHeight"
2416
- [index]="dataItem.offsetIndex"
2417
- [multipleSelection]="multipleSelection"
2418
- [attr.absolute-index]="dataItem.index"
2419
- [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
2420
- [attr.tabIndex]="-1"
2421
- [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
2422
- [class]="listItemClass"
2423
- [ngClass]="{
2424
- 'k-disabled': isDisabled(dataItem.offsetIndex),
2425
- 'k-table-alt-row': isAltRow(itemIndex - 1)
2426
- }"
2427
- [style.width.px]="rowWidth ?? null"
2445
+ </ng-template>
2446
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
2447
+ </li>
2448
+ </ng-template>
2449
+ <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2450
+ <li
2451
+ #li
2452
+ *ngIf="dataItem.header"
2453
+ role="group"
2454
+ [class]="listGroupItemClass"
2455
+ [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
2456
+ [ngStyle]="{
2457
+ 'height.px': virtual?.itemHeight,
2458
+ 'minHeight.px' : virtual?.itemHeight,
2459
+ 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
2460
+ [attr.group-index]="dataItem.index"
2461
+ [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
2462
+ [attr.tabIndex]="-1"
2463
+ [style.width.px]="rowWidth ?? null">
2464
+ <span [class]="listGroupItemTextClass">
2465
+ <ng-template *ngIf="groupTemplate"
2466
+ [templateContext]="{
2467
+ templateRef: groupTemplate.templateRef,
2468
+ $implicit: dataItem.value
2469
+ }">
2470
+ </ng-template>
2471
+ <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
2472
+ </span>
2473
+ </li>
2474
+ <li
2475
+ #li
2476
+ *ngIf="!dataItem.header"
2477
+ role="option"
2478
+ kendoDropDownsSelectable
2479
+ [height]="virtual?.itemHeight"
2480
+ [index]="dataItem.offsetIndex"
2481
+ [multipleSelection]="multipleSelection"
2482
+ [attr.absolute-index]="dataItem.index"
2483
+ [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
2484
+ [attr.tabIndex]="-1"
2485
+ [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
2486
+ [class]="listItemClass"
2487
+ [ngClass]="{
2488
+ 'k-disabled': isDisabled(dataItem.offsetIndex),
2489
+ 'k-table-alt-row': isAltRow(itemIndex - 1)
2490
+ }"
2491
+ [style.width.px]="rowWidth ?? null"
2492
+ >
2493
+ <ng-template *ngIf="template"
2494
+ [templateContext]="{
2495
+ templateRef: template.templateRef,
2496
+ $implicit: dataItem.value
2497
+ }">
2498
+ </ng-template>
2499
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
2500
+ </li>
2501
+ </ng-template>
2502
+ <kendo-resize-sensor
2503
+ *ngIf="!virtual"
2504
+ (resize)="listResize.emit()"
2428
2505
  >
2429
- <ng-template *ngIf="template"
2430
- [templateContext]="{
2431
- templateRef: template.templateRef,
2432
- $implicit: dataItem.value
2433
- }">
2434
- </ng-template>
2435
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
2436
- </li>
2437
- </ng-template>
2438
- <kendo-resize-sensor
2439
- *ngIf="!virtual"
2440
- (resize)="listResize.emit()"
2441
- >
2442
- </kendo-resize-sensor>
2443
- </ul>
2444
- <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
2445
- <div [style.height.px]="scrollHeight">
2446
- <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
2506
+ </kendo-resize-sensor>
2507
+ </ul>
2508
+ <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
2509
+ <div [style.height.px]="scrollHeight">
2510
+ <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
2511
+ </div>
2447
2512
  </div>
2448
2513
  </div>
2449
- </div>
2450
2514
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ListItemDirective, selector: "\"li[role=option], li[role=group]\"" }, { 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"] }] });
2451
2515
  }
2452
2516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
@@ -2454,6 +2518,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2454
2518
  args: [{
2455
2519
  selector: 'kendo-list',
2456
2520
  template: `
2521
+ <div *ngIf="defaultItem && !template"
2522
+ class="k-list-optionlabel"
2523
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
2524
+ kendoDropDownsSelectable
2525
+ [index]="-1">
2526
+ {{ getDefaultItemText() }}
2527
+ </div>
2528
+ <div *ngIf="defaultItem && template"
2529
+ class="k-list-optionlabel"
2530
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
2531
+ kendoDropDownsSelectable
2532
+ [index]="-1">
2533
+ <ng-template
2534
+ [templateContext]="{
2535
+ templateRef: template.templateRef,
2536
+ $implicit: defaultItem
2537
+ }">
2538
+ </ng-template>
2539
+ </div>
2540
+ <div *ngIf="allowCustom && text"
2541
+ kendoDropDownsSelectable
2542
+ [multipleSelection]="true"
2543
+ [index]="-1"
2544
+ class="k-list-custom-value">
2545
+ <ng-template *ngIf="customItemTemplate; else default_custom_item_template"
2546
+ [templateContext]="{
2547
+ templateRef: customItemTemplate.templateRef,
2548
+ $implicit: text
2549
+ }">
2550
+ </ng-template>
2551
+ <ng-template #default_custom_item_template>
2552
+ Use "{{text}}"
2553
+ </ng-template>
2554
+ </div>
2457
2555
  <div *ngIf="dataService.grouped && showStickyHeader"
2458
2556
  [class]="listGroupStickyHeaderClass"
2459
2557
  [ngStyle]="{
@@ -2474,116 +2572,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2474
2572
  [style.maxHeight.px]="height"
2475
2573
  unselectable="on"
2476
2574
  (scroll)="popupListScroll.emit($event)">
2477
- <ul #list
2478
- role="listbox"
2479
- [class]="listClass"
2480
- [attr.id]="id"
2481
- [attr.aria-live]="ariaLive"
2482
- [attr.aria-multiselectable]="isMultiselect"
2483
- [attr.aria-hidden]="!show">
2484
- <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2485
- <li
2486
- role="option"
2487
- kendoDropDownsSelectable
2488
- [checkboxes]="checkboxes"
2489
- [height]="virtual?.itemHeight"
2490
- [index]="itemIndex + startFrom"
2491
- [multipleSelection]="multipleSelection"
2492
- [attr.id]="optionPrefix + '-' + itemIndex"
2493
- [attr.tabIndex]="-1"
2494
- [attr.aria-selected]="isItemSelected(itemIndex)"
2495
- [class]="listItemClass"
2496
- [ngClass]="{
2497
- 'k-disabled': isDisabled(itemIndex),
2498
- 'k-table-alt-row': isAltRow(itemIndex)
2499
- }"
2500
- [style.width.px]="rowWidth ?? null"
2501
- >
2502
- <input
2503
- *ngIf="checkboxes.enabled"
2504
- type="checkbox"
2505
- class="k-checkbox"
2506
- role="presentation"
2507
- tabindex="-1"
2508
- aria-hidden="true"
2509
- [ngClass]="checkboxClasses"
2510
- (change)="onCheckedChange($event, itemIndex + startFrom)"
2511
- [checked]="isChecked(itemIndex)"
2512
- />
2513
- <ng-template *ngIf="template"
2514
- [templateContext]="{
2515
- templateRef: template.templateRef,
2516
- $implicit: dataItem
2517
- }">
2518
- </ng-template>
2519
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
2520
- </li>
2521
- </ng-template>
2522
- <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2523
- <li
2524
- #li
2525
- *ngIf="dataItem.header"
2526
- role="group"
2527
- [class]="listGroupItemClass"
2528
- [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
2529
- [ngStyle]="{
2530
- 'height.px': virtual?.itemHeight,
2531
- 'minHeight.px' : virtual?.itemHeight,
2532
- 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
2533
- [attr.group-index]="dataItem.index"
2534
- [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
2535
- [attr.tabIndex]="-1"
2536
- [style.width.px]="rowWidth ?? null">
2537
- <span [class]="listGroupItemTextClass">
2538
- <ng-template *ngIf="groupTemplate"
2539
- [templateContext]="{
2540
- templateRef: groupTemplate.templateRef,
2541
- $implicit: dataItem.value
2575
+ <ul #list
2576
+ role="listbox"
2577
+ [class]="listClass"
2578
+ [attr.id]="id"
2579
+ [attr.aria-live]="ariaLive"
2580
+ [attr.aria-multiselectable]="isMultiselect"
2581
+ [attr.aria-hidden]="!show">
2582
+ <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2583
+ <li
2584
+ role="option"
2585
+ kendoDropDownsSelectable
2586
+ [checkboxes]="checkboxes"
2587
+ [height]="virtual?.itemHeight"
2588
+ [index]="itemIndex + startFrom"
2589
+ [multipleSelection]="multipleSelection"
2590
+ [attr.id]="optionPrefix + '-' + itemIndex"
2591
+ [attr.tabIndex]="-1"
2592
+ [attr.aria-selected]="isItemSelected(itemIndex)"
2593
+ [class]="listItemClass"
2594
+ [ngClass]="{
2595
+ 'k-disabled': isDisabled(itemIndex),
2596
+ 'k-table-alt-row': isAltRow(itemIndex)
2597
+ }"
2598
+ [style.width.px]="rowWidth ?? null"
2599
+ >
2600
+ <input
2601
+ *ngIf="checkboxes.enabled"
2602
+ type="checkbox"
2603
+ class="k-checkbox"
2604
+ role="presentation"
2605
+ tabindex="-1"
2606
+ aria-hidden="true"
2607
+ [ngClass]="checkboxClasses"
2608
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
2609
+ [checked]="isChecked(itemIndex)"
2610
+ />
2611
+ <ng-template *ngIf="template"
2612
+ [templateContext]="{
2613
+ templateRef: template.templateRef,
2614
+ $implicit: dataItem
2542
2615
  }">
2543
- </ng-template>
2544
- <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
2545
- </span>
2546
- </li>
2547
- <li
2548
- #li
2549
- *ngIf="!dataItem.header"
2550
- role="option"
2551
- kendoDropDownsSelectable
2552
- [height]="virtual?.itemHeight"
2553
- [index]="dataItem.offsetIndex"
2554
- [multipleSelection]="multipleSelection"
2555
- [attr.absolute-index]="dataItem.index"
2556
- [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
2557
- [attr.tabIndex]="-1"
2558
- [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
2559
- [class]="listItemClass"
2560
- [ngClass]="{
2561
- 'k-disabled': isDisabled(dataItem.offsetIndex),
2562
- 'k-table-alt-row': isAltRow(itemIndex - 1)
2563
- }"
2564
- [style.width.px]="rowWidth ?? null"
2616
+ </ng-template>
2617
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
2618
+ </li>
2619
+ </ng-template>
2620
+ <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
2621
+ <li
2622
+ #li
2623
+ *ngIf="dataItem.header"
2624
+ role="group"
2625
+ [class]="listGroupItemClass"
2626
+ [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
2627
+ [ngStyle]="{
2628
+ 'height.px': virtual?.itemHeight,
2629
+ 'minHeight.px' : virtual?.itemHeight,
2630
+ 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
2631
+ [attr.group-index]="dataItem.index"
2632
+ [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
2633
+ [attr.tabIndex]="-1"
2634
+ [style.width.px]="rowWidth ?? null">
2635
+ <span [class]="listGroupItemTextClass">
2636
+ <ng-template *ngIf="groupTemplate"
2637
+ [templateContext]="{
2638
+ templateRef: groupTemplate.templateRef,
2639
+ $implicit: dataItem.value
2640
+ }">
2641
+ </ng-template>
2642
+ <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
2643
+ </span>
2644
+ </li>
2645
+ <li
2646
+ #li
2647
+ *ngIf="!dataItem.header"
2648
+ role="option"
2649
+ kendoDropDownsSelectable
2650
+ [height]="virtual?.itemHeight"
2651
+ [index]="dataItem.offsetIndex"
2652
+ [multipleSelection]="multipleSelection"
2653
+ [attr.absolute-index]="dataItem.index"
2654
+ [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
2655
+ [attr.tabIndex]="-1"
2656
+ [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
2657
+ [class]="listItemClass"
2658
+ [ngClass]="{
2659
+ 'k-disabled': isDisabled(dataItem.offsetIndex),
2660
+ 'k-table-alt-row': isAltRow(itemIndex - 1)
2661
+ }"
2662
+ [style.width.px]="rowWidth ?? null"
2663
+ >
2664
+ <ng-template *ngIf="template"
2665
+ [templateContext]="{
2666
+ templateRef: template.templateRef,
2667
+ $implicit: dataItem.value
2668
+ }">
2669
+ </ng-template>
2670
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
2671
+ </li>
2672
+ </ng-template>
2673
+ <kendo-resize-sensor
2674
+ *ngIf="!virtual"
2675
+ (resize)="listResize.emit()"
2565
2676
  >
2566
- <ng-template *ngIf="template"
2567
- [templateContext]="{
2568
- templateRef: template.templateRef,
2569
- $implicit: dataItem.value
2570
- }">
2571
- </ng-template>
2572
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
2573
- </li>
2574
- </ng-template>
2575
- <kendo-resize-sensor
2576
- *ngIf="!virtual"
2577
- (resize)="listResize.emit()"
2578
- >
2579
- </kendo-resize-sensor>
2580
- </ul>
2581
- <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
2582
- <div [style.height.px]="scrollHeight">
2583
- <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
2677
+ </kendo-resize-sensor>
2678
+ </ul>
2679
+ <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
2680
+ <div [style.height.px]="scrollHeight">
2681
+ <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
2682
+ </div>
2584
2683
  </div>
2585
2684
  </div>
2586
- </div>
2587
2685
  `,
2588
2686
  standalone: true,
2589
2687
  imports: [NgIf, NgStyle, TemplateContextDirective, NgFor, ListItemDirective, SelectableDirective, NgClass, ResizeSensorComponent]
@@ -2628,6 +2726,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2628
2726
  type: Input
2629
2727
  }], rowWidth: [{
2630
2728
  type: Input
2729
+ }], customItemTemplate: [{
2730
+ type: Input
2731
+ }], text: [{
2732
+ type: Input
2733
+ }], allowCustom: [{
2734
+ type: Input
2735
+ }], defaultItem: [{
2736
+ type: Input
2631
2737
  }], data: [{
2632
2738
  type: Input
2633
2739
  }], size: [{
@@ -2680,32 +2786,29 @@ const normalizeVirtualizationSettings = (settings, defaultOverrides) => {
2680
2786
  /**
2681
2787
  * @hidden
2682
2788
  */
2683
- class ResponsiveRendererComponent {
2789
+ class AdaptiveRendererComponent {
2684
2790
  localization;
2791
+ adaptiveService;
2685
2792
  title;
2686
- showActionButtons;
2687
2793
  subtitle;
2688
- size;
2689
2794
  showTextInput;
2690
2795
  sharedPopupActionSheetTemplate;
2691
- isActionSheetExpanded;
2692
2796
  text;
2693
2797
  placeholder;
2798
+ searchBarValue;
2799
+ filterable;
2694
2800
  closePopup = new EventEmitter();
2695
2801
  textInputChange = new EventEmitter();
2696
2802
  navigate = new EventEmitter();
2697
2803
  onExpand = new EventEmitter();
2698
- onCollapse = new EventEmitter();
2699
- onApply = new EventEmitter();
2700
- onCancel = new EventEmitter();
2701
2804
  actionSheet;
2702
2805
  actionSheetSearchBar;
2703
- constructor(localization) {
2806
+ constructor(localization, adaptiveService) {
2704
2807
  this.localization = localization;
2808
+ this.adaptiveService = adaptiveService;
2705
2809
  }
2706
- searchBarValue = '';
2707
2810
  animationDuration = animationDuration;
2708
- xIcon = xIcon;
2811
+ checkIcon = checkIcon;
2709
2812
  expanded = false;
2710
2813
  messageFor(key) {
2711
2814
  return this.localization.get(key);
@@ -2727,33 +2830,45 @@ class ResponsiveRendererComponent {
2727
2830
  this.closePopup.emit();
2728
2831
  this.expanded = false;
2729
2832
  }
2730
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveRendererComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
2731
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResponsiveRendererComponent, isStandalone: true, selector: "responsive-renderer", inputs: { title: "title", showActionButtons: "showActionButtons", subtitle: "subtitle", size: "size", showTextInput: "showTextInput", sharedPopupActionSheetTemplate: "sharedPopupActionSheetTemplate", isActionSheetExpanded: "isActionSheetExpanded", text: "text", placeholder: "placeholder" }, outputs: { closePopup: "closePopup", textInputChange: "textInputChange", navigate: "navigate", onExpand: "onExpand", onCollapse: "onCollapse", onApply: "onApply", onCancel: "onCancel" }, viewQueries: [{ propertyName: "actionSheet", first: true, predicate: ActionSheetComponent, descendants: true }, { propertyName: "actionSheetSearchBar", first: true, predicate: ["actionSheetSearchBar"], descendants: true }], ngImport: i0, template: `
2833
+ get windowSize() {
2834
+ return this.adaptiveService.size;
2835
+ }
2836
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, deps: [{ token: i1.LocalizationService }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
2837
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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: `
2732
2838
  <kendo-actionsheet
2733
2839
  #actionSheet
2734
2840
  [animation]="{ duration: animationDuration }"
2735
- [expanded]="isActionSheetExpanded"
2841
+ [initialFocus]="false"
2842
+ [cssClass]="{
2843
+ 'k-adaptive-actionsheet': true,
2844
+ 'k-actionsheet-fullscreen': windowSize === 'small',
2845
+ 'k-actionsheet-bottom': windowSize === 'medium'
2846
+ }"
2847
+ [cssStyle]="{
2848
+ height: windowSize === 'small' ? '100vh' : '60vh'
2849
+ }"
2736
2850
  (overlayClick)="onOverlayClick()"
2737
2851
  (keydown)="navigate.emit($event)"
2738
2852
  (expand)="handleExpand()"
2739
- (collapse)="onCollapse.emit()"
2853
+ (collapse)="closePopup.emit()"
2740
2854
  >
2741
2855
  <ng-template kendoActionSheetTemplate>
2742
2856
  <div class="k-text-center k-actionsheet-titlebar">
2743
- <div class="k-actionsheet-titlebar-group k-hbox">
2857
+ <div class="k-actionsheet-titlebar-group">
2744
2858
  <div class="k-actionsheet-title">
2745
- <div class="k-text-center">{{ title }}</div>
2746
- <div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
2859
+ <div class="k-text-center" *ngIf="title">{{ title }}</div>
2860
+ <div class="k-actionsheet-subtitle k-text-center" *ngIf="subtitle">{{ subtitle }}</div>
2747
2861
  </div>
2748
2862
  <div class="k-actionsheet-actions">
2749
2863
  <button
2750
2864
  kendoButton
2751
- icon="x"
2865
+ icon="check"
2752
2866
  type="button"
2753
- [attr.title]="messageFor('clearTitle')"
2754
- [svgIcon]="xIcon"
2867
+ [attr.title]="messageFor('adaptiveCloseButtonTitle')"
2868
+ [svgIcon]="checkIcon"
2755
2869
  fillMode="flat"
2756
- [size]="size"
2870
+ themeColor="primary"
2871
+ size="large"
2757
2872
  [tabIndex]="-1"
2758
2873
  aria-hidden="true"
2759
2874
  innerCssClass="k-button-icon"
@@ -2761,85 +2876,70 @@ class ResponsiveRendererComponent {
2761
2876
  ></button>
2762
2877
  </div>
2763
2878
  </div>
2764
- <div class="k-actionsheet-titlebar-group k-actionsheet-filter">
2879
+ <div class="k-actionsheet-titlebar-group k-actionsheet-filter" *ngIf="showTextInput">
2765
2880
  <kendo-textbox
2766
- *ngIf="showTextInput"
2767
2881
  #actionSheetSearchBar
2768
- [value]="searchBarValue"
2769
- [size]="size"
2770
- placeholder="Filter"
2882
+ [value]="searchBarValue || ''"
2883
+ size="large"
2884
+ [placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
2771
2885
  class="k-searchbox"
2772
2886
  autocomplete="off"
2773
2887
  (valueChange)="onValueChange($event)"
2774
2888
  >
2775
- <ng-template kendoTextBoxPrefixTemplate>
2889
+ <ng-template kendoTextBoxPrefixTemplate *ngIf="filterable">
2776
2890
  <kendo-icon name="search"></kendo-icon>
2777
2891
  </ng-template>
2778
2892
  </kendo-textbox>
2779
2893
  </div>
2780
2894
  </div>
2781
- <div class="k-actionsheet-content !k-overflow-hidden">
2895
+ <div class="k-actionsheet-content">
2782
2896
  <div class="k-list-container">
2783
2897
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
2784
2898
  </div>
2785
2899
  </div>
2786
-
2787
- <div *ngIf="showActionButtons" class="k-actionsheet-footer k-actions k-actions-stretched">
2788
- <button kendoButton
2789
- tabindex="0"
2790
- aria-disabled="false"
2791
- type="button"
2792
- [size]="size"
2793
- themeColor="base"
2794
- (click)="onCancel.emit()"
2795
- (keydown.enter)="$event.stopImmediatePropagation()">
2796
- {{messageFor('cancelButton')}}
2797
- </button>
2798
- <button kendoButton
2799
- tabindex="0"
2800
- aria-disabled="false"
2801
- type="button"
2802
- [size]="size"
2803
- themeColor="primary"
2804
- (click)="onApply.emit()"
2805
- (keydown.enter)="$event.stopImmediatePropagation()">
2806
- {{messageFor('applyButton')}}
2807
- </button>
2808
- </div>
2809
2900
  </ng-template>
2810
2901
  </kendo-actionsheet>
2811
- `, isInline: true, dependencies: [{ kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId"], 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", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
2902
+ `, 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", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
2812
2903
  }
2813
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveRendererComponent, decorators: [{
2904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptiveRendererComponent, decorators: [{
2814
2905
  type: Component,
2815
2906
  args: [{
2816
- selector: 'responsive-renderer',
2907
+ selector: 'kendo-adaptive-renderer',
2817
2908
  template: `
2818
2909
  <kendo-actionsheet
2819
2910
  #actionSheet
2820
2911
  [animation]="{ duration: animationDuration }"
2821
- [expanded]="isActionSheetExpanded"
2912
+ [initialFocus]="false"
2913
+ [cssClass]="{
2914
+ 'k-adaptive-actionsheet': true,
2915
+ 'k-actionsheet-fullscreen': windowSize === 'small',
2916
+ 'k-actionsheet-bottom': windowSize === 'medium'
2917
+ }"
2918
+ [cssStyle]="{
2919
+ height: windowSize === 'small' ? '100vh' : '60vh'
2920
+ }"
2822
2921
  (overlayClick)="onOverlayClick()"
2823
2922
  (keydown)="navigate.emit($event)"
2824
2923
  (expand)="handleExpand()"
2825
- (collapse)="onCollapse.emit()"
2924
+ (collapse)="closePopup.emit()"
2826
2925
  >
2827
2926
  <ng-template kendoActionSheetTemplate>
2828
2927
  <div class="k-text-center k-actionsheet-titlebar">
2829
- <div class="k-actionsheet-titlebar-group k-hbox">
2928
+ <div class="k-actionsheet-titlebar-group">
2830
2929
  <div class="k-actionsheet-title">
2831
- <div class="k-text-center">{{ title }}</div>
2832
- <div class="k-actionsheet-subtitle k-text-center">{{ subtitle }}</div>
2930
+ <div class="k-text-center" *ngIf="title">{{ title }}</div>
2931
+ <div class="k-actionsheet-subtitle k-text-center" *ngIf="subtitle">{{ subtitle }}</div>
2833
2932
  </div>
2834
2933
  <div class="k-actionsheet-actions">
2835
2934
  <button
2836
2935
  kendoButton
2837
- icon="x"
2936
+ icon="check"
2838
2937
  type="button"
2839
- [attr.title]="messageFor('clearTitle')"
2840
- [svgIcon]="xIcon"
2938
+ [attr.title]="messageFor('adaptiveCloseButtonTitle')"
2939
+ [svgIcon]="checkIcon"
2841
2940
  fillMode="flat"
2842
- [size]="size"
2941
+ themeColor="primary"
2942
+ size="large"
2843
2943
  [tabIndex]="-1"
2844
2944
  aria-hidden="true"
2845
2945
  innerCssClass="k-button-icon"
@@ -2847,75 +2947,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2847
2947
  ></button>
2848
2948
  </div>
2849
2949
  </div>
2850
- <div class="k-actionsheet-titlebar-group k-actionsheet-filter">
2950
+ <div class="k-actionsheet-titlebar-group k-actionsheet-filter" *ngIf="showTextInput">
2851
2951
  <kendo-textbox
2852
- *ngIf="showTextInput"
2853
2952
  #actionSheetSearchBar
2854
- [value]="searchBarValue"
2855
- [size]="size"
2856
- placeholder="Filter"
2953
+ [value]="searchBarValue || ''"
2954
+ size="large"
2955
+ [placeholder]="filterable ? messageFor('filterInputPlaceholder') : placeholder"
2857
2956
  class="k-searchbox"
2858
2957
  autocomplete="off"
2859
2958
  (valueChange)="onValueChange($event)"
2860
2959
  >
2861
- <ng-template kendoTextBoxPrefixTemplate>
2960
+ <ng-template kendoTextBoxPrefixTemplate *ngIf="filterable">
2862
2961
  <kendo-icon name="search"></kendo-icon>
2863
2962
  </ng-template>
2864
2963
  </kendo-textbox>
2865
2964
  </div>
2866
2965
  </div>
2867
- <div class="k-actionsheet-content !k-overflow-hidden">
2966
+ <div class="k-actionsheet-content">
2868
2967
  <div class="k-list-container">
2869
2968
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
2870
2969
  </div>
2871
2970
  </div>
2872
-
2873
- <div *ngIf="showActionButtons" class="k-actionsheet-footer k-actions k-actions-stretched">
2874
- <button kendoButton
2875
- tabindex="0"
2876
- aria-disabled="false"
2877
- type="button"
2878
- [size]="size"
2879
- themeColor="base"
2880
- (click)="onCancel.emit()"
2881
- (keydown.enter)="$event.stopImmediatePropagation()">
2882
- {{messageFor('cancelButton')}}
2883
- </button>
2884
- <button kendoButton
2885
- tabindex="0"
2886
- aria-disabled="false"
2887
- type="button"
2888
- [size]="size"
2889
- themeColor="primary"
2890
- (click)="onApply.emit()"
2891
- (keydown.enter)="$event.stopImmediatePropagation()">
2892
- {{messageFor('applyButton')}}
2893
- </button>
2894
- </div>
2895
2971
  </ng-template>
2896
2972
  </kendo-actionsheet>
2897
2973
  `,
2898
2974
  standalone: true,
2899
2975
  imports: [ActionSheetComponent, ActionSheetTemplateDirective, ButtonComponent, NgIf, TextBoxComponent, TextBoxPrefixTemplateDirective, IconComponent, NgTemplateOutlet]
2900
2976
  }]
2901
- }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { title: [{
2902
- type: Input
2903
- }], showActionButtons: [{
2977
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i7.AdaptiveService }]; }, propDecorators: { title: [{
2904
2978
  type: Input
2905
2979
  }], subtitle: [{
2906
2980
  type: Input
2907
- }], size: [{
2908
- type: Input
2909
2981
  }], showTextInput: [{
2910
2982
  type: Input
2911
2983
  }], sharedPopupActionSheetTemplate: [{
2912
2984
  type: Input
2913
- }], isActionSheetExpanded: [{
2914
- type: Input
2915
2985
  }], text: [{
2916
2986
  type: Input
2917
2987
  }], placeholder: [{
2918
2988
  type: Input
2989
+ }], searchBarValue: [{
2990
+ type: Input
2991
+ }], filterable: [{
2992
+ type: Input
2919
2993
  }], closePopup: [{
2920
2994
  type: Output
2921
2995
  }], textInputChange: [{
@@ -2924,12 +2998,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2924
2998
  type: Output
2925
2999
  }], onExpand: [{
2926
3000
  type: Output
2927
- }], onCollapse: [{
2928
- type: Output
2929
- }], onApply: [{
2930
- type: Output
2931
- }], onCancel: [{
2932
- type: Output
2933
3001
  }], actionSheet: [{
2934
3002
  type: ViewChild,
2935
3003
  args: [ActionSheetComponent]
@@ -3061,15 +3129,15 @@ class Messages extends ComponentMessages {
3061
3129
  */
3062
3130
  popupLabel;
3063
3131
  /**
3064
- * The text of the Apply button in the MultiSelect action sheet.
3132
+ * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
3065
3133
  */
3066
- applyButton;
3134
+ adaptiveCloseButtonTitle;
3067
3135
  /**
3068
- * The text of the Cancel button in the MultiSelect action sheet.
3136
+ * The text for the input's placeholder when filtering is enabled.
3069
3137
  */
3070
- cancelButton;
3138
+ filterInputPlaceholder;
3071
3139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3072
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", applyButton: "applyButton", cancelButton: "cancelButton" }, usesInheritance: true, ngImport: i0 });
3140
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, inputs: { noDataText: "noDataText", clearTitle: "clearTitle", checkAllText: "checkAllText", selectButtonText: "selectButtonText", filterInputLabel: "filterInputLabel", popupLabel: "popupLabel", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", filterInputPlaceholder: "filterInputPlaceholder" }, usesInheritance: true, ngImport: i0 });
3073
3141
  }
3074
3142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
3075
3143
  type: Directive
@@ -3085,9 +3153,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3085
3153
  type: Input
3086
3154
  }], popupLabel: [{
3087
3155
  type: Input
3088
- }], applyButton: [{
3156
+ }], adaptiveCloseButtonTitle: [{
3089
3157
  type: Input
3090
- }], cancelButton: [{
3158
+ }], filterInputPlaceholder: [{
3091
3159
  type: Input
3092
3160
  }] } });
3093
3161
 
@@ -3186,18 +3254,18 @@ class AutoCompleteComponent {
3186
3254
  /**
3187
3255
  * @hidden
3188
3256
  */
3189
- responsiveRendererComponent;
3257
+ adaptiveRendererComponent;
3190
3258
  /**
3191
3259
  * @hidden
3192
3260
  */
3193
3261
  get actionSheet() {
3194
- return this.responsiveRendererComponent?.actionSheet;
3262
+ return this.adaptiveRendererComponent?.actionSheet;
3195
3263
  }
3196
3264
  /**
3197
3265
  * @hidden
3198
3266
  */
3199
3267
  get actionSheetSearchBar() {
3200
- return this.responsiveRendererComponent?.actionSheetSearchBar;
3268
+ return this.adaptiveRendererComponent?.actionSheetSearchBar;
3201
3269
  }
3202
3270
  get width() {
3203
3271
  let wrapperOffsetWidth = 0;
@@ -3373,17 +3441,12 @@ class AutoCompleteComponent {
3373
3441
  * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
3374
3442
  * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
3375
3443
  */
3376
- title = '';
3444
+ adaptiveTitle = '';
3377
3445
  /**
3378
3446
  * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
3379
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
3447
+ * By default the ActionSheet does not render a subtitle.
3380
3448
  */
3381
- set subtitle(_subtitle) {
3382
- this._subtitle = _subtitle;
3383
- }
3384
- get subtitle() {
3385
- return this._subtitle || this.placeholder;
3386
- }
3449
+ adaptiveSubtitle;
3387
3450
  /**
3388
3451
  * @hidden
3389
3452
  */
@@ -3702,11 +3765,6 @@ class AutoCompleteComponent {
3702
3765
  ngAfterViewInit() {
3703
3766
  this.windowSize = this.adaptiveService.size;
3704
3767
  this.cdr.detectChanges();
3705
- if (this.actionSheet && isDocumentAvailable()) {
3706
- // The following syntax is used as it does not violate CSP compliance
3707
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
3708
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
3709
- }
3710
3768
  }
3711
3769
  ngOnDestroy() {
3712
3770
  this.destroyPopup();
@@ -3736,12 +3794,6 @@ class AutoCompleteComponent {
3736
3794
  messageFor(key) {
3737
3795
  return this.localization.get(key);
3738
3796
  }
3739
- /**
3740
- * @hidden
3741
- */
3742
- onAdaptiveTextBoxChange(text) {
3743
- this.search(text);
3744
- }
3745
3797
  /**
3746
3798
  * @hidden
3747
3799
  */
@@ -3932,7 +3984,7 @@ class AutoCompleteComponent {
3932
3984
  */
3933
3985
  searchBarChange(text) {
3934
3986
  const currentTextLength = isPresent(this.text) ? this.text.length : 0;
3935
- this.backspacePressed = (text.length < currentTextLength) ? true : false;
3987
+ this.backspacePressed = Boolean(text.length < currentTextLength);
3936
3988
  this.text = text;
3937
3989
  this.togglePopup(text.length > 0);
3938
3990
  if (!this.highlightFirst) {
@@ -3945,17 +3997,6 @@ class AutoCompleteComponent {
3945
3997
  this.search(text);
3946
3998
  }
3947
3999
  }
3948
- /**
3949
- * @hidden
3950
- */
3951
- onFilterChange(text) {
3952
- if (this.filterable) {
3953
- this.filterChange.emit(text);
3954
- }
3955
- else if (this.highlightFirst) {
3956
- this.search(text);
3957
- }
3958
- }
3959
4000
  /**
3960
4001
  * @hidden
3961
4002
  */
@@ -3983,25 +4024,7 @@ class AutoCompleteComponent {
3983
4024
  */
3984
4025
  handleBlur() {
3985
4026
  if (!this.isActionSheetExpanded) {
3986
- this.isFocused = false;
3987
- const valueHasChanged = this.value !== this.text;
3988
- const runInZone = hasObservers(this.onBlur) ||
3989
- hasObservers(this.close) ||
3990
- isUntouched(this.wrapper) ||
3991
- valueHasChanged;
3992
- if (runInZone) {
3993
- this._zone.run(() => {
3994
- if (valueHasChanged) {
3995
- this.change(this.searchbar.value);
3996
- }
3997
- this.onBlur.emit();
3998
- this.onTouchedCallback();
3999
- this.togglePopup(false);
4000
- });
4001
- }
4002
- else {
4003
- this.togglePopup(false);
4004
- }
4027
+ this.blurComponent();
4005
4028
  }
4006
4029
  }
4007
4030
  /**
@@ -4053,6 +4076,13 @@ class AutoCompleteComponent {
4053
4076
  const virtual = this.virtual;
4054
4077
  virtual.skip = event.skip;
4055
4078
  }
4079
+ /**
4080
+ * @hidden
4081
+ */
4082
+ closeActionSheet() {
4083
+ this.blurComponent();
4084
+ this.closed.emit();
4085
+ }
4056
4086
  change(value) {
4057
4087
  this.togglePopup(false);
4058
4088
  this.valueChangeSubject.next(value);
@@ -4067,7 +4097,6 @@ class AutoCompleteComponent {
4067
4097
  subs = new Subscription();
4068
4098
  valueChangeSubject = new Subject();
4069
4099
  touchstartDisposeHandler;
4070
- _subtitle;
4071
4100
  wrapper;
4072
4101
  _isFocused = false;
4073
4102
  direction;
@@ -4201,7 +4230,8 @@ class AutoCompleteComponent {
4201
4230
  this._open = open;
4202
4231
  this.destroyPopup();
4203
4232
  if (this.isActionSheetExpanded) {
4204
- this.closeActionSheet();
4233
+ this.actionSheet.toggle(false);
4234
+ this.focus();
4205
4235
  }
4206
4236
  if (this._open) {
4207
4237
  this.createPopup();
@@ -4253,27 +4283,40 @@ class AutoCompleteComponent {
4253
4283
  this.renderer.addClass(this.wrapper, getFillModeClass('input', this.fillMode));
4254
4284
  }
4255
4285
  }
4256
- closeActionSheet() {
4257
- this.actionSheet.toggle(false);
4258
- this.filterable && this.filterChange.emit('');
4259
- this.searchbar.input.nativeElement.focus();
4260
- this.responsiveRendererComponent.searchBarValue = '';
4261
- this.closed.emit();
4262
- }
4263
4286
  openActionSheet() {
4264
4287
  this.actionSheet.toggle(true);
4265
4288
  this.cdr.detectChanges();
4266
4289
  setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
4267
- this.title = setActionSheetTitle(this.searchbar.input, this.title);
4268
- updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
4290
+ this.adaptiveTitle = setActionSheetTitle(this.searchbar.input, this.adaptiveTitle);
4269
4291
  this.cdr.detectChanges();
4270
4292
  this.opened.emit();
4271
4293
  this.optionsList.scrollToItem(this.selectionService.focused);
4272
4294
  this.selectionService.focus(this.selectionService.focused);
4273
4295
  this.actionSheetSearchBar.focus();
4274
4296
  }
4297
+ blurComponent() {
4298
+ this.isFocused = false;
4299
+ const valueHasChanged = this.value !== this.text;
4300
+ const runInZone = hasObservers(this.onBlur) ||
4301
+ hasObservers(this.close) ||
4302
+ isUntouched(this.wrapper) ||
4303
+ valueHasChanged;
4304
+ if (runInZone) {
4305
+ this._zone.run(() => {
4306
+ if (valueHasChanged) {
4307
+ this.change(this.searchbar.value);
4308
+ }
4309
+ this.onBlur.emit();
4310
+ this.onTouchedCallback();
4311
+ this.togglePopup(false);
4312
+ });
4313
+ }
4314
+ else {
4315
+ this.togglePopup(false);
4316
+ }
4317
+ }
4275
4318
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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 });
4276
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutoCompleteComponent, isStandalone: true, selector: "kendo-autocomplete", inputs: { highlightFirst: "highlightFirst", showStickyHeader: "showStickyHeader", focusableId: "focusableId", data: "data", value: "value", valueField: "valueField", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", 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-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
4319
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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-autocomplete": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
4277
4320
  AUTOCOMPLETE_VALUE_ACCESSOR,
4278
4321
  DataService,
4279
4322
  SelectionService,
@@ -4292,7 +4335,7 @@ class AutoCompleteComponent {
4292
4335
  provide: KendoInput,
4293
4336
  useExisting: forwardRef(() => AutoCompleteComponent)
4294
4337
  }
4295
- ], 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: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, 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: `
4338
+ ], 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: `
4296
4339
  <ng-container kendoAutoCompleteLocalizedMessages
4297
4340
  i18n-noDataText="kendo.autocomplete.noDataText|The text displayed in the popup when there are no items"
4298
4341
  noDataText="NO DATA FOUND"
@@ -4302,6 +4345,9 @@ class AutoCompleteComponent {
4302
4345
 
4303
4346
  i18n-popupLabel="kendo.autocomplete.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
4304
4347
  popupLabel="Options list"
4348
+
4349
+ 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"
4350
+ adaptiveCloseButtonTitle="Close"
4305
4351
  >
4306
4352
  </ng-container>
4307
4353
 
@@ -4370,19 +4416,17 @@ class AutoCompleteComponent {
4370
4416
  <ng-container #container></ng-container>
4371
4417
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
4372
4418
 
4373
- <!--adaptive rendering-->
4374
- <responsive-renderer
4419
+ <kendo-adaptive-renderer
4375
4420
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
4376
- [isActionSheetExpanded]="isActionSheetExpanded"
4377
- [title]="title"
4421
+ [title]="adaptiveTitle"
4378
4422
  [showTextInput]="true"
4379
- [subtitle]="subtitle"
4380
- (closePopup)="togglePopup(false)"
4381
- (textInputChange)="onFilterChange($event)"
4423
+ [subtitle]="adaptiveSubtitle"
4424
+ (closePopup)="closeActionSheet()"
4425
+ (textInputChange)="searchBarChange($event)"
4382
4426
  (navigate)="handleNavigate($event)"
4383
4427
  [placeholder]="placeholder"
4384
- >
4385
- </responsive-renderer>
4428
+ [searchBarValue]="text">
4429
+ </kendo-adaptive-renderer>
4386
4430
 
4387
4431
  <ng-template #sharedPopupActionSheetTemplate>
4388
4432
  <!--header template-->
@@ -4394,7 +4438,7 @@ class AutoCompleteComponent {
4394
4438
  <!--list-->
4395
4439
  <kendo-list
4396
4440
  #optionsList
4397
- [size]="size"
4441
+ [size]="isAdaptive ? 'large' : size"
4398
4442
  [rounded]="rounded"
4399
4443
  [id]="listBoxId"
4400
4444
  [optionPrefix]="optionPrefix"
@@ -4429,7 +4473,7 @@ class AutoCompleteComponent {
4429
4473
  }">
4430
4474
  </ng-template>
4431
4475
  </ng-template>
4432
- `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { 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", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
4476
+ `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
4433
4477
  }
4434
4478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
4435
4479
  type: Component,
@@ -4466,6 +4510,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4466
4510
 
4467
4511
  i18n-popupLabel="kendo.autocomplete.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
4468
4512
  popupLabel="Options list"
4513
+
4514
+ 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"
4515
+ adaptiveCloseButtonTitle="Close"
4469
4516
  >
4470
4517
  </ng-container>
4471
4518
 
@@ -4534,19 +4581,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4534
4581
  <ng-container #container></ng-container>
4535
4582
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
4536
4583
 
4537
- <!--adaptive rendering-->
4538
- <responsive-renderer
4584
+ <kendo-adaptive-renderer
4539
4585
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
4540
- [isActionSheetExpanded]="isActionSheetExpanded"
4541
- [title]="title"
4586
+ [title]="adaptiveTitle"
4542
4587
  [showTextInput]="true"
4543
- [subtitle]="subtitle"
4544
- (closePopup)="togglePopup(false)"
4545
- (textInputChange)="onFilterChange($event)"
4588
+ [subtitle]="adaptiveSubtitle"
4589
+ (closePopup)="closeActionSheet()"
4590
+ (textInputChange)="searchBarChange($event)"
4546
4591
  (navigate)="handleNavigate($event)"
4547
4592
  [placeholder]="placeholder"
4548
- >
4549
- </responsive-renderer>
4593
+ [searchBarValue]="text">
4594
+ </kendo-adaptive-renderer>
4550
4595
 
4551
4596
  <ng-template #sharedPopupActionSheetTemplate>
4552
4597
  <!--header template-->
@@ -4558,7 +4603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4558
4603
  <!--list-->
4559
4604
  <kendo-list
4560
4605
  #optionsList
4561
- [size]="size"
4606
+ [size]="isAdaptive ? 'large' : size"
4562
4607
  [rounded]="rounded"
4563
4608
  [id]="listBoxId"
4564
4609
  [optionPrefix]="optionPrefix"
@@ -4595,11 +4640,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4595
4640
  </ng-template>
4596
4641
  `,
4597
4642
  standalone: true,
4598
- imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, SearchBarComponent, IconWrapperComponent, ResizeSensorComponent, ResponsiveRendererComponent, TemplateContextDirective, ListComponent]
4643
+ imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, SearchBarComponent, IconWrapperComponent, ResizeSensorComponent, AdaptiveRendererComponent, TemplateContextDirective, ListComponent]
4599
4644
  }]
4600
- }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: DataService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i7.AdaptiveService }]; }, propDecorators: { responsiveRendererComponent: [{
4645
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: DataService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i7.AdaptiveService }]; }, propDecorators: { adaptiveRendererComponent: [{
4601
4646
  type: ViewChild,
4602
- args: [ResponsiveRendererComponent]
4647
+ args: [AdaptiveRendererComponent]
4603
4648
  }], highlightFirst: [{
4604
4649
  type: Input
4605
4650
  }], showStickyHeader: [{
@@ -4616,9 +4661,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4616
4661
  type: Input
4617
4662
  }], adaptiveMode: [{
4618
4663
  type: Input
4619
- }], title: [{
4664
+ }], adaptiveTitle: [{
4620
4665
  type: Input
4621
- }], subtitle: [{
4666
+ }], adaptiveSubtitle: [{
4622
4667
  type: Input
4623
4668
  }], popupSettings: [{
4624
4669
  type: Input
@@ -4854,18 +4899,18 @@ class ComboBoxComponent extends MultiTabStop {
4854
4899
  /**
4855
4900
  * @hidden
4856
4901
  */
4857
- responsiveRendererComponent;
4902
+ adaptiveRendererComponent;
4858
4903
  /**
4859
4904
  * @hidden
4860
4905
  */
4861
4906
  get actionSheet() {
4862
- return this.responsiveRendererComponent?.actionSheet;
4907
+ return this.adaptiveRendererComponent?.actionSheet;
4863
4908
  }
4864
4909
  /**
4865
4910
  * @hidden
4866
4911
  */
4867
4912
  get actionSheetSearchBar() {
4868
- return this.responsiveRendererComponent?.actionSheetSearchBar;
4913
+ return this.adaptiveRendererComponent?.actionSheetSearchBar;
4869
4914
  }
4870
4915
  /**
4871
4916
  * @hidden
@@ -5065,19 +5110,14 @@ class ComboBoxComponent extends MultiTabStop {
5065
5110
  adaptiveMode = 'none';
5066
5111
  /**
5067
5112
  * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
5068
- * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
5113
+ * By default the ActionSheet title uses the text provided for the label of the Combobox.
5069
5114
  */
5070
- title = '';
5115
+ adaptiveTitle = '';
5071
5116
  /**
5072
5117
  * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
5073
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
5118
+ * By default the ActionSheet does not render a subtitle.
5074
5119
  */
5075
- set subtitle(_subtitle) {
5076
- this._subtitle = _subtitle;
5077
- }
5078
- get subtitle() {
5079
- return this._subtitle || this.placeholder;
5080
- }
5120
+ adaptiveSubtitle;
5081
5121
  /**
5082
5122
  * @hidden
5083
5123
  */
@@ -5407,7 +5447,6 @@ class ComboBoxComponent extends MultiTabStop {
5407
5447
  backspacePressed;
5408
5448
  _popupSettings = { animate: true };
5409
5449
  _virtualSettings;
5410
- _subtitle;
5411
5450
  popupMouseDownHandler = (event) => event.preventDefault();
5412
5451
  customValueSubject = new Subject();
5413
5452
  valueSubject = new Subject();
@@ -5449,11 +5488,6 @@ class ComboBoxComponent extends MultiTabStop {
5449
5488
  ngAfterViewInit() {
5450
5489
  this.windowSize = this.adaptiveService.size;
5451
5490
  this.cdr.detectChanges();
5452
- if (this.actionSheet && isDocumentAvailable()) {
5453
- // The following syntax is used as it does not violate CSP compliance
5454
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
5455
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
5456
- }
5457
5491
  }
5458
5492
  createValueStream() {
5459
5493
  const valueStream = this.valueSubject.pipe(filter((candidate) => {
@@ -5888,18 +5922,6 @@ class ComboBoxComponent extends MultiTabStop {
5888
5922
  }
5889
5923
  }
5890
5924
  }
5891
- /**
5892
- * @hidden
5893
- */
5894
- onAdaptiveTextBoxChange(text) {
5895
- if (this.filterable && this.filterText !== text) {
5896
- this.filterText = text;
5897
- this.filterChange.emit(text);
5898
- }
5899
- else {
5900
- this.search(text);
5901
- }
5902
- }
5903
5925
  /**
5904
5926
  * @hidden
5905
5927
  */
@@ -6004,36 +6026,7 @@ class ComboBoxComponent extends MultiTabStop {
6004
6026
  */
6005
6027
  handleBlur() {
6006
6028
  if (!this.isActionSheetExpanded) {
6007
- this._filtering = false;
6008
- this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers
6009
- this.isFocused = false;
6010
- const unresolvedSelection = getter(this.dataItem, this.valueField) !== getter(this.value, this.valueField);
6011
- const currentText = this.searchbar.value;
6012
- const textHasChanged = currentText !== (getter(this.dataItem, this.textField) || '');
6013
- const valueHasChanged = unresolvedSelection || textHasChanged;
6014
- const runInZone = valueHasChanged ||
6015
- hasObservers(this.onBlur) ||
6016
- hasObservers(this.close) ||
6017
- isUntouched(this.wrapper.nativeElement);
6018
- if (runInZone) {
6019
- this.zone.run(() => {
6020
- if (valueHasChanged) {
6021
- const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
6022
- if (lowerCaseMatch || unresolvedSelection) {
6023
- this.selectionService.change(this.selectionService.focused);
6024
- }
6025
- else {
6026
- this.change(currentText, true);
6027
- }
6028
- }
6029
- this.onBlur.emit();
6030
- this.onTouchedCallback();
6031
- this.togglePopup(false);
6032
- });
6033
- }
6034
- else {
6035
- this.togglePopup(false);
6036
- }
6029
+ this.blurComponent();
6037
6030
  }
6038
6031
  }
6039
6032
  /**
@@ -6098,7 +6091,7 @@ class ComboBoxComponent extends MultiTabStop {
6098
6091
  */
6099
6092
  searchBarChange(text) {
6100
6093
  const currentTextLength = this.text ? this.text.length : 0;
6101
- this.backspacePressed = (text.length < currentTextLength) ? true : false;
6094
+ this.backspacePressed = Boolean(text.length < currentTextLength);
6102
6095
  this.text = text;
6103
6096
  // Reset the selection prior to filter. If a match is present, it will be resolved. If a match is not present, it is not needed.
6104
6097
  this.selectionService.resetSelection([]);
@@ -6128,6 +6121,13 @@ class ComboBoxComponent extends MultiTabStop {
6128
6121
  const virtual = this.virtual;
6129
6122
  virtual.skip = event.skip;
6130
6123
  }
6124
+ /**
6125
+ * @hidden
6126
+ */
6127
+ closeActionSheet() {
6128
+ this.blurComponent();
6129
+ this.closed.emit();
6130
+ }
6131
6131
  change(candidate, isCustom = false) {
6132
6132
  if (isCustom) {
6133
6133
  this.customValueSubject.next(candidate);
@@ -6257,7 +6257,8 @@ class ComboBoxComponent extends MultiTabStop {
6257
6257
  this._open = open;
6258
6258
  this.destroyPopup();
6259
6259
  if (this.isActionSheetExpanded) {
6260
- this.closeActionSheet();
6260
+ this.actionSheet.toggle(false);
6261
+ this.focus();
6261
6262
  }
6262
6263
  if (this._open) {
6263
6264
  this.windowSize = this.adaptiveService.size;
@@ -6326,27 +6327,52 @@ class ComboBoxComponent extends MultiTabStop {
6326
6327
  }
6327
6328
  return index;
6328
6329
  }
6329
- closeActionSheet() {
6330
- this.actionSheet.toggle(false);
6331
- this.searchbar.input.nativeElement.focus();
6332
- this.responsiveRendererComponent.searchBarValue = '';
6333
- this.closed.emit();
6334
- }
6335
6330
  openActionSheet() {
6336
6331
  this.windowSize = this.adaptiveService.size;
6337
6332
  this.actionSheet.toggle(true);
6338
6333
  this.cdr.detectChanges();
6339
6334
  setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
6340
- this.title = setActionSheetTitle(this.searchbar.input, this.title);
6341
- updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
6335
+ this.adaptiveTitle = setActionSheetTitle(this.searchbar.input, this.adaptiveTitle);
6342
6336
  this.cdr.detectChanges();
6343
6337
  this.opened.emit();
6344
6338
  this.optionsList.scrollToItem(this.selectionService.focused);
6345
6339
  this.selectionService.focus(this.selectionService.focused);
6346
6340
  this.actionSheetSearchBar.focus();
6347
6341
  }
6342
+ blurComponent() {
6343
+ this._filtering = false;
6344
+ this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers
6345
+ this.isFocused = false;
6346
+ const unresolvedSelection = getter(this.dataItem, this.valueField) !== getter(this.value, this.valueField);
6347
+ const currentText = this.searchbar.value;
6348
+ const textHasChanged = currentText !== (getter(this.dataItem, this.textField) || '');
6349
+ const valueHasChanged = unresolvedSelection || textHasChanged;
6350
+ const runInZone = valueHasChanged ||
6351
+ hasObservers(this.onBlur) ||
6352
+ hasObservers(this.close) ||
6353
+ isUntouched(this.wrapper.nativeElement);
6354
+ if (runInZone) {
6355
+ this.zone.run(() => {
6356
+ if (valueHasChanged) {
6357
+ const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
6358
+ if (lowerCaseMatch || unresolvedSelection) {
6359
+ this.selectionService.change(this.selectionService.focused);
6360
+ }
6361
+ else {
6362
+ this.change(currentText, true);
6363
+ }
6364
+ }
6365
+ this.onBlur.emit();
6366
+ this.onTouchedCallback();
6367
+ this.togglePopup(false);
6368
+ });
6369
+ }
6370
+ else {
6371
+ this.togglePopup(false);
6372
+ }
6373
+ }
6348
6374
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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 });
6349
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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", title: "title", subtitle: "subtitle", 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-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
6375
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
6350
6376
  COMBOBOX_VALUE_ACCESSOR,
6351
6377
  DataService,
6352
6378
  SelectionService,
@@ -6366,7 +6392,7 @@ class ComboBoxComponent extends MultiTabStop {
6366
6392
  {
6367
6393
  provide: MultiTabStop, useExisting: forwardRef(() => ComboBoxComponent)
6368
6394
  }
6369
- ], 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: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, 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: `
6395
+ ], 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: `
6370
6396
  <ng-container kendoComboBoxLocalizedMessages
6371
6397
  i18n-noDataText="kendo.combobox.noDataText|The text displayed in the popup when there are no items"
6372
6398
  noDataText="NO DATA FOUND"
@@ -6379,6 +6405,9 @@ class ComboBoxComponent extends MultiTabStop {
6379
6405
 
6380
6406
  i18n-popupLabel="kendo.combobox.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
6381
6407
  popupLabel="Options list"
6408
+
6409
+ 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"
6410
+ adaptiveCloseButtonTitle="Close"
6382
6411
  >
6383
6412
  </ng-container>
6384
6413
 
@@ -6469,19 +6498,18 @@ class ComboBoxComponent extends MultiTabStop {
6469
6498
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
6470
6499
  <ng-container #container></ng-container>
6471
6500
 
6472
- <!--adaptive rendering-->
6473
- <responsive-renderer
6501
+ <kendo-adaptive-renderer
6474
6502
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
6475
- [isActionSheetExpanded]="isActionSheetExpanded"
6476
- [title]="title"
6503
+ [title]="adaptiveTitle"
6477
6504
  [showTextInput]="true"
6478
- [subtitle]="subtitle"
6479
- (closePopup)="togglePopup(false)"
6480
- (textInputChange)="onAdaptiveTextBoxChange($event)"
6505
+ [subtitle]="adaptiveSubtitle"
6506
+ (closePopup)="closeActionSheet()"
6507
+ (textInputChange)="searchBarChange($event)"
6481
6508
  (navigate)="handleNavigate($event)"
6482
6509
  [placeholder]="placeholder"
6483
- >
6484
- </responsive-renderer>
6510
+ [searchBarValue]="text"
6511
+ >
6512
+ </kendo-adaptive-renderer>
6485
6513
  <ng-template #sharedPopupActionSheetTemplate>
6486
6514
  <!--header template-->
6487
6515
  <ng-template *ngIf="headerTemplate"
@@ -6492,7 +6520,7 @@ class ComboBoxComponent extends MultiTabStop {
6492
6520
  <!--list-->
6493
6521
  <kendo-list
6494
6522
  #optionsList
6495
- [size]="size"
6523
+ [size]="isAdaptive ? 'large' : size"
6496
6524
  [rounded]="rounded"
6497
6525
  [id]="listBoxId"
6498
6526
  [optionPrefix]="optionPrefix"
@@ -6527,7 +6555,7 @@ class ComboBoxComponent extends MultiTabStop {
6527
6555
  }">
6528
6556
  </ng-template>
6529
6557
  </ng-template>
6530
- `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { 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", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
6558
+ `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
6531
6559
  }
6532
6560
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComboBoxComponent, decorators: [{
6533
6561
  type: Component,
@@ -6568,6 +6596,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6568
6596
 
6569
6597
  i18n-popupLabel="kendo.combobox.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
6570
6598
  popupLabel="Options list"
6599
+
6600
+ 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"
6601
+ adaptiveCloseButtonTitle="Close"
6571
6602
  >
6572
6603
  </ng-container>
6573
6604
 
@@ -6658,19 +6689,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6658
6689
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
6659
6690
  <ng-container #container></ng-container>
6660
6691
 
6661
- <!--adaptive rendering-->
6662
- <responsive-renderer
6692
+ <kendo-adaptive-renderer
6663
6693
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
6664
- [isActionSheetExpanded]="isActionSheetExpanded"
6665
- [title]="title"
6694
+ [title]="adaptiveTitle"
6666
6695
  [showTextInput]="true"
6667
- [subtitle]="subtitle"
6668
- (closePopup)="togglePopup(false)"
6669
- (textInputChange)="onAdaptiveTextBoxChange($event)"
6696
+ [subtitle]="adaptiveSubtitle"
6697
+ (closePopup)="closeActionSheet()"
6698
+ (textInputChange)="searchBarChange($event)"
6670
6699
  (navigate)="handleNavigate($event)"
6671
6700
  [placeholder]="placeholder"
6672
- >
6673
- </responsive-renderer>
6701
+ [searchBarValue]="text"
6702
+ >
6703
+ </kendo-adaptive-renderer>
6674
6704
  <ng-template #sharedPopupActionSheetTemplate>
6675
6705
  <!--header template-->
6676
6706
  <ng-template *ngIf="headerTemplate"
@@ -6681,7 +6711,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6681
6711
  <!--list-->
6682
6712
  <kendo-list
6683
6713
  #optionsList
6684
- [size]="size"
6714
+ [size]="isAdaptive ? 'large' : size"
6685
6715
  [rounded]="rounded"
6686
6716
  [id]="listBoxId"
6687
6717
  [optionPrefix]="optionPrefix"
@@ -6718,7 +6748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6718
6748
  </ng-template>
6719
6749
  `,
6720
6750
  standalone: true,
6721
- imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, SearchBarComponent, EventsOutsideAngularDirective, IconWrapperComponent, NgClass, ResizeSensorComponent, ResponsiveRendererComponent, TemplateContextDirective, ListComponent]
6751
+ imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, SearchBarComponent, EventsOutsideAngularDirective, IconWrapperComponent, NgClass, ResizeSensorComponent, AdaptiveRendererComponent, TemplateContextDirective, ListComponent]
6722
6752
  }]
6723
6753
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i7.AdaptiveService }]; }, propDecorators: { icon: [{
6724
6754
  type: Input
@@ -6726,9 +6756,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6726
6756
  type: Input
6727
6757
  }], inputAttributes: [{
6728
6758
  type: Input
6729
- }], responsiveRendererComponent: [{
6759
+ }], adaptiveRendererComponent: [{
6730
6760
  type: ViewChild,
6731
- args: [ResponsiveRendererComponent]
6761
+ args: [AdaptiveRendererComponent]
6732
6762
  }], showStickyHeader: [{
6733
6763
  type: Input
6734
6764
  }], focusableId: [{
@@ -6751,9 +6781,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6751
6781
  type: Input
6752
6782
  }], adaptiveMode: [{
6753
6783
  type: Input
6754
- }], title: [{
6784
+ }], adaptiveTitle: [{
6755
6785
  type: Input
6756
- }], subtitle: [{
6786
+ }], adaptiveSubtitle: [{
6757
6787
  type: Input
6758
6788
  }], popupSettings: [{
6759
6789
  type: Input
@@ -7018,18 +7048,18 @@ class DropDownListComponent {
7018
7048
  /**
7019
7049
  * @hidden
7020
7050
  */
7021
- responsiveRendererComponent;
7051
+ adaptiveRenderer;
7022
7052
  /**
7023
7053
  * @hidden
7024
7054
  */
7025
7055
  get actionSheet() {
7026
- return this.responsiveRendererComponent?.actionSheet;
7056
+ return this.adaptiveRenderer?.actionSheet;
7027
7057
  }
7028
7058
  /**
7029
7059
  * @hidden
7030
7060
  */
7031
7061
  get actionSheetSearchBar() {
7032
- return this.responsiveRendererComponent?.actionSheetSearchBar;
7062
+ return this.adaptiveRenderer?.actionSheetSearchBar;
7033
7063
  }
7034
7064
  get width() {
7035
7065
  const wrapperWidth = isDocumentAvailable() ? this.wrapper.nativeElement.offsetWidth : 0;
@@ -7155,14 +7185,14 @@ class DropDownListComponent {
7155
7185
  adaptiveMode = 'none';
7156
7186
  /**
7157
7187
  * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
7158
- * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
7188
+ * By default the ActionSheet title uses the text provided for the label of the DropDownList.
7159
7189
  */
7160
- title = '';
7190
+ adaptiveTitle = '';
7161
7191
  /**
7162
7192
  * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
7163
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
7193
+ * By default the ActionSheet does not render a subtitle.
7164
7194
  */
7165
- subtitle = '';
7195
+ adaptiveSubtitle = '';
7166
7196
  /**
7167
7197
  * @hidden
7168
7198
  */
@@ -7646,11 +7676,6 @@ class DropDownListComponent {
7646
7676
  }
7647
7677
  ngAfterViewInit() {
7648
7678
  this.windowSize = this.adaptiveService.size;
7649
- if (this.actionSheet && isDocumentAvailable()) {
7650
- // The following syntax is used as it does not violate CSP compliance
7651
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
7652
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
7653
- }
7654
7679
  }
7655
7680
  /**
7656
7681
  * @hidden
@@ -7847,12 +7872,6 @@ class DropDownListComponent {
7847
7872
  get filterInputClasses() {
7848
7873
  return `${this.size ? getSizeClass('input', this.size) : ''} ${this.fillMode ? 'k-input-' + this.fillMode : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;
7849
7874
  }
7850
- /**
7851
- * @hidden
7852
- */
7853
- get optionLabelSizeClass() {
7854
- return `${this.size ? getSizeClass('list', this.size) : ''}`;
7855
- }
7856
7875
  /**
7857
7876
  * @hidden
7858
7877
  */
@@ -7863,24 +7882,12 @@ class DropDownListComponent {
7863
7882
  }
7864
7883
  return containerClasses;
7865
7884
  }
7866
- /**
7867
- * @hidden
7868
- */
7869
- get isDisabledDefaultItem() {
7870
- return this.disabledItemsService.isItemDisabled(this.defaultItem);
7871
- }
7872
7885
  /**
7873
7886
  * @hidden
7874
7887
  */
7875
7888
  getText() {
7876
7889
  return this.text;
7877
7890
  }
7878
- /**
7879
- * @hidden
7880
- */
7881
- getDefaultItemText() {
7882
- return getter(this.defaultItem, this.textField);
7883
- }
7884
7891
  createPopup() {
7885
7892
  if (this.virtual) {
7886
7893
  this.virtual.skip = 0;
@@ -8361,31 +8368,26 @@ class DropDownListComponent {
8361
8368
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
8362
8369
  this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
8363
8370
  if (this.filterable) {
8364
- this.responsiveRendererComponent.searchBarValue = '';
8371
+ this.adaptiveRenderer.searchBarValue = '';
8365
8372
  this.filterChange.emit('');
8366
8373
  }
8367
8374
  this.closed.emit();
8368
8375
  }
8369
8376
  openActionSheet() {
8370
- this.windowSize = this.adaptiveService.size;
8371
8377
  this.actionSheet.toggle(true);
8372
8378
  this.cdr.detectChanges();
8373
8379
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
8374
8380
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.listBoxId);
8375
8381
  setListBoxAriaLabelledBy(this.optionsList, this.wrapper, this.renderer);
8376
8382
  this.setAriaactivedescendant();
8377
- this.title = setActionSheetTitle(this.wrapper, this.title);
8378
- updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
8383
+ this.adaptiveTitle = setActionSheetTitle(this.wrapper, this.adaptiveTitle);
8379
8384
  this.cdr.detectChanges();
8380
- this.opened.emit();
8381
8385
  this.optionsList.scrollToItem(this.selectionService.focused);
8382
8386
  this.selectionService.focus(this.selectionService.focused);
8383
- if (this.filterable) {
8384
- this.actionSheetSearchBar.focus();
8385
- }
8387
+ this.opened.emit();
8386
8388
  }
8387
8389
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: SelectionService }, { token: NavigationService }, { token: DisabledItemsService }, { token: DataService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
8388
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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", title: "title", subtitle: "subtitle", 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: [
8390
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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: [
8389
8391
  DROPDOWNLIST_VALUE_ACCESSOR,
8390
8392
  DataService,
8391
8393
  SelectionService,
@@ -8402,7 +8404,7 @@ class DropDownListComponent {
8402
8404
  {
8403
8405
  provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)
8404
8406
  }
8405
- ], 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: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, 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: `
8407
+ ], 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: "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: `
8406
8408
  <ng-container kendoDropDownListLocalizedMessages
8407
8409
  i18n-noDataText="kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items"
8408
8410
  noDataText="NO DATA FOUND"
@@ -8415,6 +8417,12 @@ class DropDownListComponent {
8415
8417
 
8416
8418
  i18n-popupLabel="kendo.dropdownlist.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
8417
8419
  popupLabel="Options list"
8420
+
8421
+ i18n-adaptiveCloseButtonTitle="kendo.dropdownlist.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"
8422
+ adaptiveCloseButtonTitle="Close"
8423
+
8424
+ i18n-filterPlaceholder="kendo.dropdownlist.filterPlaceholder|The text for the input's placeholder when filtering is enabled"
8425
+ filterInputPlaceholder="Filter"
8418
8426
  >
8419
8427
  </ng-container>
8420
8428
  <span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
@@ -8446,8 +8454,7 @@ class DropDownListComponent {
8446
8454
  [name]="icon || 'caret-alt-down'"
8447
8455
  innerCssClass="k-button-icon"
8448
8456
  [customFontClass]="customIconClass"
8449
- [svgIcon]="svgIcon || caretAltDownSVGIcon"
8450
- >
8457
+ [svgIcon]="svgIcon || caretAltDownSVGIcon">
8451
8458
  </kendo-icon-wrapper>
8452
8459
  </button>
8453
8460
  <ng-template #popupTemplate>
@@ -8456,17 +8463,15 @@ class DropDownListComponent {
8456
8463
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
8457
8464
  <ng-container #container></ng-container>
8458
8465
 
8459
- <!--adaptive rendering-->
8460
- <responsive-renderer
8466
+ <kendo-adaptive-renderer
8461
8467
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
8462
- [isActionSheetExpanded]="isActionSheetExpanded"
8463
- [title]="title"
8468
+ [title]="adaptiveTitle"
8464
8469
  [showTextInput]="filterable"
8465
- [subtitle]="subtitle"
8470
+ [subtitle]="adaptiveSubtitle"
8466
8471
  (closePopup)="togglePopup(false)"
8467
8472
  (textInputChange)="onFilterChange($event)"
8468
- >
8469
- </responsive-renderer>
8473
+ [filterable]="filterable">
8474
+ </kendo-adaptive-renderer>
8470
8475
 
8471
8476
  <ng-template #sharedPopupActionSheetTemplate>
8472
8477
  <!--filterable-->
@@ -8501,32 +8506,6 @@ class DropDownListComponent {
8501
8506
  </span>
8502
8507
  </div>
8503
8508
  </ng-template>
8504
- <!--default item-->
8505
- <ng-template [ngIf]="defaultItem && !itemTemplate">
8506
- <div
8507
- class="k-list"
8508
- [ngClass]="optionLabelSizeClass"
8509
- >
8510
- <div class="k-list-optionlabel" [ngClass]="{ 'k-disabled': isDisabledDefaultItem }" kendoDropDownsSelectable [index]="-1">
8511
- {{ getDefaultItemText() }}
8512
- </div>
8513
- </div>
8514
- </ng-template>
8515
- <ng-template [ngIf]="defaultItem && itemTemplate">
8516
- <div
8517
- class="k-list"
8518
- [ngClass]="optionLabelSizeClass"
8519
- >
8520
- <div class="k-list-optionlabel" [ngClass]="{ 'k-disabled': isDisabledDefaultItem }" kendoDropDownsSelectable [index]="-1">
8521
- <ng-template
8522
- [templateContext]="{
8523
- templateRef: itemTemplate.templateRef,
8524
- $implicit: defaultItem
8525
- }">
8526
- </ng-template>
8527
- </div>
8528
- </div>
8529
- </ng-template>
8530
8509
  <!--header template-->
8531
8510
  <ng-template *ngIf="headerTemplate"
8532
8511
  [templateContext]="{
@@ -8537,7 +8516,7 @@ class DropDownListComponent {
8537
8516
  <kendo-list
8538
8517
  #optionsList
8539
8518
  [id]="listBoxId"
8540
- [size]="size"
8519
+ [size]="isAdaptive ? 'large' : size"
8541
8520
  [rounded]="rounded"
8542
8521
  [optionPrefix]="optionPrefix"
8543
8522
  [data]="data"
@@ -8551,7 +8530,8 @@ class DropDownListComponent {
8551
8530
  [virtual]="virtual"
8552
8531
  [ariaLive]="ariaLive"
8553
8532
  [showStickyHeader]="showStickyHeader"
8554
- (pageChange)="pageChange($event)">
8533
+ (pageChange)="pageChange($event)"
8534
+ [defaultItem]="defaultItem">
8555
8535
  </kendo-list>
8556
8536
  <!--no-data template-->
8557
8537
  <div class="k-no-data" *ngIf="data.length === 0">
@@ -8571,7 +8551,7 @@ class DropDownListComponent {
8571
8551
  }">
8572
8552
  </ng-template>
8573
8553
  </ng-template>
8574
- `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { 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: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { 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", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
8554
+ `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
8575
8555
  }
8576
8556
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownListComponent, decorators: [{
8577
8557
  type: Component,
@@ -8609,6 +8589,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8609
8589
 
8610
8590
  i18n-popupLabel="kendo.dropdownlist.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
8611
8591
  popupLabel="Options list"
8592
+
8593
+ i18n-adaptiveCloseButtonTitle="kendo.dropdownlist.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"
8594
+ adaptiveCloseButtonTitle="Close"
8595
+
8596
+ i18n-filterPlaceholder="kendo.dropdownlist.filterPlaceholder|The text for the input's placeholder when filtering is enabled"
8597
+ filterInputPlaceholder="Filter"
8612
8598
  >
8613
8599
  </ng-container>
8614
8600
  <span class="k-input-inner" unselectable="on" [id]="valueLabelId" (click)="$event.preventDefault()">
@@ -8640,8 +8626,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8640
8626
  [name]="icon || 'caret-alt-down'"
8641
8627
  innerCssClass="k-button-icon"
8642
8628
  [customFontClass]="customIconClass"
8643
- [svgIcon]="svgIcon || caretAltDownSVGIcon"
8644
- >
8629
+ [svgIcon]="svgIcon || caretAltDownSVGIcon">
8645
8630
  </kendo-icon-wrapper>
8646
8631
  </button>
8647
8632
  <ng-template #popupTemplate>
@@ -8650,17 +8635,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8650
8635
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
8651
8636
  <ng-container #container></ng-container>
8652
8637
 
8653
- <!--adaptive rendering-->
8654
- <responsive-renderer
8638
+ <kendo-adaptive-renderer
8655
8639
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
8656
- [isActionSheetExpanded]="isActionSheetExpanded"
8657
- [title]="title"
8640
+ [title]="adaptiveTitle"
8658
8641
  [showTextInput]="filterable"
8659
- [subtitle]="subtitle"
8642
+ [subtitle]="adaptiveSubtitle"
8660
8643
  (closePopup)="togglePopup(false)"
8661
8644
  (textInputChange)="onFilterChange($event)"
8662
- >
8663
- </responsive-renderer>
8645
+ [filterable]="filterable">
8646
+ </kendo-adaptive-renderer>
8664
8647
 
8665
8648
  <ng-template #sharedPopupActionSheetTemplate>
8666
8649
  <!--filterable-->
@@ -8695,32 +8678,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8695
8678
  </span>
8696
8679
  </div>
8697
8680
  </ng-template>
8698
- <!--default item-->
8699
- <ng-template [ngIf]="defaultItem && !itemTemplate">
8700
- <div
8701
- class="k-list"
8702
- [ngClass]="optionLabelSizeClass"
8703
- >
8704
- <div class="k-list-optionlabel" [ngClass]="{ 'k-disabled': isDisabledDefaultItem }" kendoDropDownsSelectable [index]="-1">
8705
- {{ getDefaultItemText() }}
8706
- </div>
8707
- </div>
8708
- </ng-template>
8709
- <ng-template [ngIf]="defaultItem && itemTemplate">
8710
- <div
8711
- class="k-list"
8712
- [ngClass]="optionLabelSizeClass"
8713
- >
8714
- <div class="k-list-optionlabel" [ngClass]="{ 'k-disabled': isDisabledDefaultItem }" kendoDropDownsSelectable [index]="-1">
8715
- <ng-template
8716
- [templateContext]="{
8717
- templateRef: itemTemplate.templateRef,
8718
- $implicit: defaultItem
8719
- }">
8720
- </ng-template>
8721
- </div>
8722
- </div>
8723
- </ng-template>
8724
8681
  <!--header template-->
8725
8682
  <ng-template *ngIf="headerTemplate"
8726
8683
  [templateContext]="{
@@ -8731,7 +8688,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8731
8688
  <kendo-list
8732
8689
  #optionsList
8733
8690
  [id]="listBoxId"
8734
- [size]="size"
8691
+ [size]="isAdaptive ? 'large' : size"
8735
8692
  [rounded]="rounded"
8736
8693
  [optionPrefix]="optionPrefix"
8737
8694
  [data]="data"
@@ -8745,7 +8702,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8745
8702
  [virtual]="virtual"
8746
8703
  [ariaLive]="ariaLive"
8747
8704
  [showStickyHeader]="showStickyHeader"
8748
- (pageChange)="pageChange($event)">
8705
+ (pageChange)="pageChange($event)"
8706
+ [defaultItem]="defaultItem">
8749
8707
  </kendo-list>
8750
8708
  <!--no-data template-->
8751
8709
  <div class="k-no-data" *ngIf="data.length === 0">
@@ -8767,13 +8725,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8767
8725
  </ng-template>
8768
8726
  `,
8769
8727
  standalone: true,
8770
- imports: [LocalizedMessagesDirective, NgIf, TemplateContextDirective, NgClass, EventsOutsideAngularDirective, IconWrapperComponent, NgTemplateOutlet, ResizeSensorComponent, ResponsiveRendererComponent, ReactiveFormsModule, FilterInputDirective, FormsModule, SelectableDirective, ListComponent]
8728
+ imports: [LocalizedMessagesDirective, NgIf, TemplateContextDirective, NgClass, EventsOutsideAngularDirective, IconWrapperComponent, NgTemplateOutlet, ResizeSensorComponent, AdaptiveRendererComponent, ReactiveFormsModule, FilterInputDirective, FormsModule, ListComponent]
8771
8729
  }]
8772
8730
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i7.AdaptiveService }]; }, propDecorators: { customIconClass: [{
8773
8731
  type: Input
8774
- }], responsiveRendererComponent: [{
8732
+ }], adaptiveRenderer: [{
8775
8733
  type: ViewChild,
8776
- args: [ResponsiveRendererComponent]
8734
+ args: [AdaptiveRendererComponent]
8777
8735
  }], showStickyHeader: [{
8778
8736
  type: Input
8779
8737
  }], icon: [{
@@ -8792,9 +8750,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8792
8750
  type: Input
8793
8751
  }], adaptiveMode: [{
8794
8752
  type: Input
8795
- }], title: [{
8753
+ }], adaptiveTitle: [{
8796
8754
  type: Input
8797
- }], subtitle: [{
8755
+ }], adaptiveSubtitle: [{
8798
8756
  type: Input
8799
8757
  }], popupSettings: [{
8800
8758
  type: Input
@@ -8917,71 +8875,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
8917
8875
  }], readonlyAttr: [{
8918
8876
  type: HostBinding,
8919
8877
  args: ['attr.readonly']
8920
- }], isBusy: [{
8921
- type: HostBinding,
8922
- args: ['attr.aria-busy']
8923
- }], role: [{
8924
- type: HostBinding,
8925
- args: ['attr.role']
8926
- }], haspopup: [{
8927
- type: HostBinding,
8928
- args: ['attr.aria-haspopup']
8929
- }], hostAriaInvalid: [{
8930
- type: HostBinding,
8931
- args: ['attr.aria-invalid']
8932
- }], keydown: [{
8933
- type: HostListener,
8934
- args: ['keydown', ['$event']]
8935
- }], keypress: [{
8936
- type: HostListener,
8937
- args: ['keypress', ['$event']]
8938
- }], click: [{
8939
- type: HostListener,
8940
- args: ['click']
8941
- }] } });
8942
-
8943
- /**
8944
- * Renders the content of the custom list item in the MultiSelect
8945
- * ([see example](slug:templates_multiselect#toc-rendering-custom-item-content)).
8946
- * The template context is set to the current component.
8947
- * To get a reference to the current text that is typed by the
8948
- * user, use the `let-customItem` directive.
8949
- *
8950
- * > The `CustomItemTemplate` directive can only be used with the MultiSelect component.
8951
- *
8952
- * @example
8953
- * ```ts
8954
- * _@Component({
8955
- * selector: 'my-app',
8956
- * template: `
8957
- * <kendo-multiselect [data]="listItems" [allowCustom]="true">
8958
- * <ng-template kendoMultiSelectCustomItemTemplate let-customItem>
8959
- * <span>New Item: {{customItem}}</span>
8960
- * </ng-template>
8961
- * </kendo-multiselect>
8962
- * `
8963
- * })
8964
- * class AppComponent {
8965
- * public listItems: Array<string> = ["Item 1", "Item 2", "Item 3", "Item 4"];
8966
- * }
8967
- * ```
8968
- *
8969
- */
8970
- class CustomItemTemplateDirective {
8971
- templateRef;
8972
- constructor(templateRef) {
8973
- this.templateRef = templateRef;
8974
- }
8975
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
8976
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomItemTemplateDirective, isStandalone: true, selector: "[kendoMultiSelectCustomItemTemplate]", ngImport: i0 });
8977
- }
8978
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomItemTemplateDirective, decorators: [{
8979
- type: Directive,
8980
- args: [{
8981
- selector: '[kendoMultiSelectCustomItemTemplate]',
8982
- standalone: true
8983
- }]
8984
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
8878
+ }], isBusy: [{
8879
+ type: HostBinding,
8880
+ args: ['attr.aria-busy']
8881
+ }], role: [{
8882
+ type: HostBinding,
8883
+ args: ['attr.role']
8884
+ }], haspopup: [{
8885
+ type: HostBinding,
8886
+ args: ['attr.aria-haspopup']
8887
+ }], hostAriaInvalid: [{
8888
+ type: HostBinding,
8889
+ args: ['attr.aria-invalid']
8890
+ }], keydown: [{
8891
+ type: HostListener,
8892
+ args: ['keydown', ['$event']]
8893
+ }], keypress: [{
8894
+ type: HostListener,
8895
+ args: ['keypress', ['$event']]
8896
+ }], click: [{
8897
+ type: HostListener,
8898
+ args: ['click']
8899
+ }] } });
8985
8900
 
8986
8901
  /**
8987
8902
  * Renders the selected tag value of the MultiSelect
@@ -9413,10 +9328,6 @@ class MultiSelectComponent {
9413
9328
  * @hidden
9414
9329
  */
9415
9330
  xIcon = xIcon;
9416
- /**
9417
- * @hidden
9418
- */
9419
- plusIcon = plusIcon;
9420
9331
  listBoxId = `k-${guid()}`;
9421
9332
  tagListId = `k-${guid()}`;
9422
9333
  tagPrefix = "tag-" + guid();
@@ -9428,18 +9339,18 @@ class MultiSelectComponent {
9428
9339
  /**
9429
9340
  * @hidden
9430
9341
  */
9431
- responsiveRendererComponent;
9342
+ adaptiveRendererComponent;
9432
9343
  /**
9433
9344
  * @hidden
9434
9345
  */
9435
9346
  get actionSheet() {
9436
- return this.responsiveRendererComponent?.actionSheet;
9347
+ return this.adaptiveRendererComponent?.actionSheet;
9437
9348
  }
9438
9349
  /**
9439
9350
  * @hidden
9440
9351
  */
9441
9352
  get actionSheetSearchBar() {
9442
- return this.responsiveRendererComponent?.actionSheetSearchBar;
9353
+ return this.adaptiveRendererComponent?.actionSheetSearchBar;
9443
9354
  }
9444
9355
  /**
9445
9356
  * @hidden
@@ -9494,16 +9405,6 @@ class MultiSelectComponent {
9494
9405
  });
9495
9406
  }
9496
9407
  }
9497
- /**
9498
- * @hidden
9499
- */
9500
- onAdaptiveTextBoxChange(text) {
9501
- if (this.filterable) {
9502
- this.filterChange.emit(text);
9503
- return;
9504
- }
9505
- this.searchTextAndFocus(text);
9506
- }
9507
9408
  /**
9508
9409
  * Blurs the MultiSelect.
9509
9410
  */
@@ -9528,29 +9429,7 @@ class MultiSelectComponent {
9528
9429
  */
9529
9430
  handleBlur() {
9530
9431
  if (!this.isActionSheetExpanded) {
9531
- if (!this.isFocused) {
9532
- return;
9533
- }
9534
- this.isFocused = false;
9535
- if (hasObservers(this.onBlur) ||
9536
- hasObservers(this.filterChange) ||
9537
- hasObservers(this.close) ||
9538
- isUntouched(this.wrapper.nativeElement)) {
9539
- this._zone.run(() => {
9540
- this.closePopup();
9541
- if (!(this.isOpen && this.allowCustom)) {
9542
- this.clearFilter();
9543
- }
9544
- this.onBlur.emit();
9545
- this.onTouchedCallback();
9546
- });
9547
- }
9548
- else {
9549
- if (!this.allowCustom) {
9550
- this.clearFilter();
9551
- }
9552
- this.closePopup();
9553
- }
9432
+ this.blurComponent();
9554
9433
  }
9555
9434
  }
9556
9435
  /**
@@ -9785,19 +9664,14 @@ class MultiSelectComponent {
9785
9664
  adaptiveMode = 'none';
9786
9665
  /**
9787
9666
  * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
9788
- * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
9667
+ * By default the ActionSheet title uses the text provided for the label of the MultiSelect.
9789
9668
  */
9790
- title = '';
9669
+ adaptiveTitle = '';
9791
9670
  /**
9792
9671
  * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
9793
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
9672
+ * By default the ActionSheet does not render a subtitle.
9794
9673
  */
9795
- set subtitle(_subtitle) {
9796
- this._subtitle = _subtitle;
9797
- }
9798
- get subtitle() {
9799
- return this._subtitle || this.placeholder;
9800
- }
9674
+ adaptiveSubtitle;
9801
9675
  /**
9802
9676
  * @hidden
9803
9677
  */
@@ -10077,13 +9951,32 @@ class MultiSelectComponent {
10077
9951
  get isAdaptive() {
10078
9952
  return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
10079
9953
  }
9954
+ /**
9955
+ * @hidden
9956
+ */
9957
+ applyValue() {
9958
+ if (!this.isActionSheetExpanded) {
9959
+ return;
9960
+ }
9961
+ const isValueChanged = !(this.value.every(i => this._valueHolder.find(item => i === item)) && this._valueHolder.length === this.value.length);
9962
+ if (isValueChanged) {
9963
+ this.value = this._valueHolder;
9964
+ this._valueHolder = [];
9965
+ this.emitValueChange();
9966
+ }
9967
+ this.clearFilter();
9968
+ this.togglePopup(false);
9969
+ if (this.allowCustom && this.isCustomValueSelected) {
9970
+ this.isCustomValueSelected = false;
9971
+ }
9972
+ }
10080
9973
  disabledIndices;
10081
9974
  initialized = false;
10082
9975
  _size = 'medium';
10083
9976
  _rounded = 'medium';
10084
9977
  _fillMode = 'solid';
10085
- _subtitle;
10086
9978
  _valueHolder = [];
9979
+ isCustomValueSelected = false;
10087
9980
  constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, injector, hostElement, adaptiveService) {
10088
9981
  this.wrapper = wrapper;
10089
9982
  this.localization = localization;
@@ -10117,7 +10010,8 @@ class MultiSelectComponent {
10117
10010
  * @hidden
10118
10011
  */
10119
10012
  get customItemSizeClass() {
10120
- return `${this.size ? getSizeClass('list', this.size) : ''}`;
10013
+ const currentSize = this.isAdaptive ? 'large' : this.size;
10014
+ return `${currentSize ? getSizeClass('list', currentSize) : ''}`;
10121
10015
  }
10122
10016
  get width() {
10123
10017
  let wrapperOffsetWidth = 0;
@@ -10156,22 +10050,6 @@ class MultiSelectComponent {
10156
10050
  return 'visible';
10157
10051
  }
10158
10052
  }
10159
- /**
10160
- * @hidden
10161
- */
10162
- applyValue() {
10163
- this.value = this._valueHolder;
10164
- this._valueHolder = [];
10165
- this.emitValueChange();
10166
- this.togglePopup(false);
10167
- }
10168
- /**
10169
- * @hidden
10170
- */
10171
- cancelValue() {
10172
- this._valueHolder = [];
10173
- this.togglePopup(false);
10174
- }
10175
10053
  /**
10176
10054
  * @hidden
10177
10055
  */
@@ -10277,6 +10155,9 @@ class MultiSelectComponent {
10277
10155
  if (this.isOpen && this.selectionService.focused === undefined) {
10278
10156
  if (this.dataService.itemsCount > 0) {
10279
10157
  this.selectionService.focused = this.firstFocusableIndex(0);
10158
+ if (this.allowCustom) {
10159
+ this.selectionService.focused = 0;
10160
+ }
10280
10161
  }
10281
10162
  else if (this.allowCustom) {
10282
10163
  this.selectionService.focused = -1;
@@ -10304,6 +10185,10 @@ class MultiSelectComponent {
10304
10185
  * @hidden
10305
10186
  */
10306
10187
  handleFilter(text) {
10188
+ if (this.isActionSheetExpanded && this.allowCustom && this.isCustomValueSelected) {
10189
+ this.addCustomValue(this.text);
10190
+ this.addCustomValue(text);
10191
+ }
10307
10192
  this.text = text;
10308
10193
  if (text && !this.isOpen) {
10309
10194
  this.openPopup();
@@ -10450,11 +10335,6 @@ class MultiSelectComponent {
10450
10335
  this.searchbar.setInputSize();
10451
10336
  this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'mousedown', this.handleMousedown.bind(this)));
10452
10337
  this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
10453
- if (this.actionSheet && isDocumentAvailable()) {
10454
- // The following syntax is used as it does not violate CSP compliance
10455
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
10456
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
10457
- }
10458
10338
  this._zone.onStable.pipe(take(1)).subscribe(() => {
10459
10339
  const ariaLabel = this.searchbar.input.nativeElement.getAttribute('aria-labelledby') ||
10460
10340
  this.searchbar.input.nativeElement.getAttribute('data-kendo-label-id');
@@ -10714,34 +10594,49 @@ class MultiSelectComponent {
10714
10594
  const itemIndex = this.dataService.indexOf(newValue);
10715
10595
  const customItem = itemIndex === -1;
10716
10596
  if (this.value.indexOf(newValue) === -1) {
10717
- this.tags = this.tagMapper([...this.selectedDataItems, normalizedValue]);
10597
+ !this.isActionSheetExpanded && (this.tags = this.tagMapper([...this.selectedDataItems, normalizedValue]));
10718
10598
  if (!customItem) {
10719
10599
  this.selectionService.add(itemIndex);
10720
10600
  }
10601
+ else if (this.isActionSheetExpanded) {
10602
+ const isValueInHolder = this._valueHolder.some(item => getter(item, this.valueField) === newValue);
10603
+ if (isValueInHolder) {
10604
+ this._valueHolder = this._valueHolder.filter(item => getter(item, this.valueField) !== newValue);
10605
+ this.isCustomValueSelected = false;
10606
+ }
10607
+ else {
10608
+ this._valueHolder = [...this._valueHolder, newValue];
10609
+ this.isCustomValueSelected = true;
10610
+ }
10611
+ }
10721
10612
  else {
10722
10613
  this.value = [...this.value, newValue];
10723
10614
  }
10724
10615
  }
10616
+ else if (!customItem && this.selectionService.isSelected(itemIndex)) {
10617
+ this.selectionService.deselect(itemIndex);
10618
+ this.selectionService.focused = itemIndex;
10619
+ }
10620
+ else if (this.isActionSheetExpanded) {
10621
+ this._valueHolder = this._valueHolder.filter(item => getter(item, this.valueField) !== newValue);
10622
+ this.isCustomValueSelected = false;
10623
+ }
10725
10624
  else {
10726
- if (!customItem && this.selectionService.isSelected(itemIndex)) {
10727
- this.selectionService.deselect(itemIndex);
10728
- this.selectionService.focused = itemIndex;
10729
- }
10730
- else {
10731
- this.value = this.value.filter(item => getter(item, this.valueField) !== newValue);
10732
- }
10625
+ this.value = this.value.filter(item => getter(item, this.valueField) !== newValue);
10733
10626
  }
10734
- this.emitValueChange();
10627
+ !this.isActionSheetExpanded && this.emitValueChange();
10735
10628
  }
10736
10629
  if (this.autoClose) {
10737
10630
  this.togglePopup(false);
10738
10631
  }
10739
- if (this.autoClose || !this.filterable) {
10632
+ if ((this.autoClose || !this.filterable) && !this.isActionSheetExpanded) {
10740
10633
  this.clearFilter();
10741
10634
  }
10742
- this.nextTick(() => {
10743
- this.searchbar.focus();
10744
- });
10635
+ if (!this.isActionSheetExpanded) {
10636
+ this.nextTick(() => {
10637
+ this.searchbar.focus();
10638
+ });
10639
+ }
10745
10640
  });
10746
10641
  }
10747
10642
  handleItemChange(event) {
@@ -10749,7 +10644,7 @@ class MultiSelectComponent {
10749
10644
  if (this.autoClose && !event.preventClosingPopup && !this.isActionSheetExpanded) {
10750
10645
  this.togglePopup(false);
10751
10646
  }
10752
- if (this.autoClose || !this.filterable) {
10647
+ if ((this.autoClose || !this.filterable) && !this.isActionSheetExpanded) {
10753
10648
  this.clearFilter();
10754
10649
  }
10755
10650
  }
@@ -11004,8 +10899,9 @@ class MultiSelectComponent {
11004
10899
  this._open = open;
11005
10900
  this.destroyPopup();
11006
10901
  if (this.isActionSheetExpanded) {
11007
- this.closeActionSheet();
11008
- this.focus();
10902
+ this.actionSheet.toggle(false);
10903
+ this.closed.emit();
10904
+ this.isFocused = false;
11009
10905
  }
11010
10906
  if (this._open) {
11011
10907
  this.createPopup();
@@ -11111,29 +11007,46 @@ class MultiSelectComponent {
11111
11007
  this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
11112
11008
  }
11113
11009
  }
11114
- closeActionSheet() {
11115
- this.actionSheet.toggle(false);
11116
- this.filterable && this.filterChange.emit('');
11117
- this.responsiveRendererComponent.searchBarValue = '';
11118
- this.closed.emit();
11119
- }
11120
11010
  openActionSheet() {
11121
- this.windowSize = this.adaptiveService.size;
11122
11011
  this.actionSheet.toggle(true);
11123
11012
  // Stores the current value state until the user either accepts or cancels it
11124
11013
  this._valueHolder = [...this.value];
11125
11014
  this.cdr.detectChanges();
11126
11015
  setListBoxAriaLabelledBy(this.optionsList, this.searchbar.input, this.renderer);
11127
- this.title = setActionSheetTitle(this.searchbar.input, this.title);
11128
- updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
11016
+ this.adaptiveTitle = setActionSheetTitle(this.searchbar.input, this.adaptiveTitle);
11129
11017
  this.cdr.detectChanges();
11130
11018
  this.opened.emit();
11131
11019
  this.optionsList.scrollToItem(this.selectionService.focused);
11132
11020
  this.selectionService.focus(this.selectionService.focused);
11133
11021
  this.actionSheetSearchBar.focus();
11134
11022
  }
11023
+ blurComponent() {
11024
+ if (!this.isFocused) {
11025
+ return;
11026
+ }
11027
+ this.isFocused = false;
11028
+ if (hasObservers(this.onBlur) ||
11029
+ hasObservers(this.filterChange) ||
11030
+ hasObservers(this.close) ||
11031
+ isUntouched(this.wrapper.nativeElement)) {
11032
+ this._zone.run(() => {
11033
+ this.closePopup();
11034
+ if (!(this.isOpen && this.allowCustom)) {
11035
+ this.clearFilter();
11036
+ }
11037
+ this.onBlur.emit();
11038
+ this.onTouchedCallback();
11039
+ });
11040
+ }
11041
+ else {
11042
+ if (!this.allowCustom) {
11043
+ this.clearFilter();
11044
+ }
11045
+ this.closePopup();
11046
+ }
11047
+ }
11135
11048
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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: i0.ElementRef }, { token: i7.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
11136
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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", title: "title", subtitle: "subtitle", 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", "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
11049
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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", "class.k-multiselect": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.dir", "class.k-disabled": "this.disabledClass", "class.k-loading": "this.isLoading" } }, providers: [
11137
11050
  MULTISELECT_VALUE_ACCESSOR,
11138
11051
  DataService,
11139
11052
  SelectionService,
@@ -11150,7 +11063,7 @@ class MultiSelectComponent {
11150
11063
  {
11151
11064
  provide: KendoInput, useExisting: forwardRef(() => MultiSelectComponent)
11152
11065
  }
11153
- ], 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: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, 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: `
11066
+ ], 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: `
11154
11067
  <ng-container kendoMultiSelectLocalizedMessages
11155
11068
  i18n-noDataText="kendo.multiselect.noDataText|The text displayed in the popup when there are no items"
11156
11069
  noDataText="NO DATA FOUND"
@@ -11161,11 +11074,8 @@ class MultiSelectComponent {
11161
11074
  i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
11162
11075
  popupLabel="Options list"
11163
11076
 
11164
- i18n-applyButton="kendo.multiselect.applyButton|The text of the Apply button in the action sheet"
11165
- applyButton="Apply"
11166
-
11167
- i18n-cancelButton="kendo.multiselect.cancelButton|The text of the Cancel button in the action sheet"
11168
- cancelButton="Cancel"
11077
+ i18n-adaptiveCloseButtonTitle="kendo.multiselect.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."
11078
+ adaptiveCloseButtonTitle="Close"
11169
11079
  >
11170
11080
  </ng-container>
11171
11081
 
@@ -11257,22 +11167,17 @@ class MultiSelectComponent {
11257
11167
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
11258
11168
  <ng-container #container></ng-container>
11259
11169
 
11260
- <!--adaptive rendering-->
11261
- <responsive-renderer
11170
+ <kendo-adaptive-renderer
11262
11171
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
11263
- [isActionSheetExpanded]="isActionSheetExpanded"
11264
- [title]="title"
11172
+ [title]="adaptiveTitle"
11265
11173
  [showTextInput]="true"
11266
- [showActionButtons]="true"
11267
- [subtitle]="subtitle"
11268
- (closePopup)="togglePopup(false)"
11269
- (textInputChange)="onAdaptiveTextBoxChange($event)"
11174
+ [subtitle]="adaptiveSubtitle"
11175
+ (closePopup)="applyValue()"
11176
+ (textInputChange)="handleFilter($event)"
11270
11177
  [placeholder]="placeholder"
11271
11178
  (navigate)="handleNavigate($event)"
11272
- (onApply)="applyValue()"
11273
- (onCancel)="cancelValue()"
11274
- >
11275
- </responsive-renderer>
11179
+ [searchBarValue]="text">
11180
+ </kendo-adaptive-renderer>
11276
11181
 
11277
11182
  <ng-template #sharedPopupActionSheetTemplate>
11278
11183
  <!--header template-->
@@ -11281,32 +11186,10 @@ class MultiSelectComponent {
11281
11186
  templateRef: headerTemplate.templateRef
11282
11187
  }">
11283
11188
  </ng-template>
11284
- <!--custom item template-->
11285
- <div
11286
- *ngIf="allowCustom && text"
11287
- class="k-list"
11288
- [ngClass]="customItemSizeClass"
11289
- >
11290
- <div class="k-list-item k-custom-item" kendoDropDownsSelectable [multipleSelection]="true" [index]="-1">
11291
- <ng-template *ngIf="customItemTemplate;else default_custom_item_template"
11292
- [templateContext]="{
11293
- templateRef: customItemTemplate.templateRef,
11294
- $implicit: text
11295
- }">
11296
- </ng-template>
11297
- <ng-template #default_custom_item_template>{{ text }}</ng-template>
11298
- <kendo-icon-wrapper
11299
- class="k-icon"
11300
- name="plus"
11301
- [svgIcon]="plusIcon"
11302
- >
11303
- </kendo-icon-wrapper>
11304
- </div>
11305
- </div>
11306
11189
  <!--list-->
11307
11190
  <kendo-list
11308
11191
  #optionsList
11309
- [size]="size"
11192
+ [size]="isAdaptive ? 'large' : size"
11310
11193
  [rounded]="rounded"
11311
11194
  [id]="listBoxId"
11312
11195
  [optionPrefix]="optionPrefix"
@@ -11325,6 +11208,9 @@ class MultiSelectComponent {
11325
11208
  [isMultiselect]="true"
11326
11209
  [isActionSheetExpanded]="isActionSheetExpanded"
11327
11210
  [showStickyHeader]="showStickyHeader"
11211
+ [customItemTemplate]="customItemTemplate"
11212
+ [text]="text"
11213
+ [allowCustom]="allowCustom"
11328
11214
  >
11329
11215
  </kendo-list>
11330
11216
  <!--no data template-->
@@ -11345,7 +11231,7 @@ class MultiSelectComponent {
11345
11231
  }">
11346
11232
  </ng-template>
11347
11233
  </ng-template>
11348
- `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SelectableDirective, selector: "[kendoDropDownsSelectable]", inputs: ["index", "checkboxes", "height", "isMultiselect", "multipleSelection"] }, { 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", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
11234
+ `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
11349
11235
  }
11350
11236
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
11351
11237
  type: Component,
@@ -11381,11 +11267,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11381
11267
  i18n-popupLabel="kendo.multiselect.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
11382
11268
  popupLabel="Options list"
11383
11269
 
11384
- i18n-applyButton="kendo.multiselect.applyButton|The text of the Apply button in the action sheet"
11385
- applyButton="Apply"
11386
-
11387
- i18n-cancelButton="kendo.multiselect.cancelButton|The text of the Cancel button in the action sheet"
11388
- cancelButton="Cancel"
11270
+ i18n-adaptiveCloseButtonTitle="kendo.multiselect.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."
11271
+ adaptiveCloseButtonTitle="Close"
11389
11272
  >
11390
11273
  </ng-container>
11391
11274
 
@@ -11477,22 +11360,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11477
11360
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
11478
11361
  <ng-container #container></ng-container>
11479
11362
 
11480
- <!--adaptive rendering-->
11481
- <responsive-renderer
11363
+ <kendo-adaptive-renderer
11482
11364
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
11483
- [isActionSheetExpanded]="isActionSheetExpanded"
11484
- [title]="title"
11365
+ [title]="adaptiveTitle"
11485
11366
  [showTextInput]="true"
11486
- [showActionButtons]="true"
11487
- [subtitle]="subtitle"
11488
- (closePopup)="togglePopup(false)"
11489
- (textInputChange)="onAdaptiveTextBoxChange($event)"
11367
+ [subtitle]="adaptiveSubtitle"
11368
+ (closePopup)="applyValue()"
11369
+ (textInputChange)="handleFilter($event)"
11490
11370
  [placeholder]="placeholder"
11491
11371
  (navigate)="handleNavigate($event)"
11492
- (onApply)="applyValue()"
11493
- (onCancel)="cancelValue()"
11494
- >
11495
- </responsive-renderer>
11372
+ [searchBarValue]="text">
11373
+ </kendo-adaptive-renderer>
11496
11374
 
11497
11375
  <ng-template #sharedPopupActionSheetTemplate>
11498
11376
  <!--header template-->
@@ -11501,32 +11379,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11501
11379
  templateRef: headerTemplate.templateRef
11502
11380
  }">
11503
11381
  </ng-template>
11504
- <!--custom item template-->
11505
- <div
11506
- *ngIf="allowCustom && text"
11507
- class="k-list"
11508
- [ngClass]="customItemSizeClass"
11509
- >
11510
- <div class="k-list-item k-custom-item" kendoDropDownsSelectable [multipleSelection]="true" [index]="-1">
11511
- <ng-template *ngIf="customItemTemplate;else default_custom_item_template"
11512
- [templateContext]="{
11513
- templateRef: customItemTemplate.templateRef,
11514
- $implicit: text
11515
- }">
11516
- </ng-template>
11517
- <ng-template #default_custom_item_template>{{ text }}</ng-template>
11518
- <kendo-icon-wrapper
11519
- class="k-icon"
11520
- name="plus"
11521
- [svgIcon]="plusIcon"
11522
- >
11523
- </kendo-icon-wrapper>
11524
- </div>
11525
- </div>
11526
11382
  <!--list-->
11527
11383
  <kendo-list
11528
11384
  #optionsList
11529
- [size]="size"
11385
+ [size]="isAdaptive ? 'large' : size"
11530
11386
  [rounded]="rounded"
11531
11387
  [id]="listBoxId"
11532
11388
  [optionPrefix]="optionPrefix"
@@ -11545,6 +11401,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11545
11401
  [isMultiselect]="true"
11546
11402
  [isActionSheetExpanded]="isActionSheetExpanded"
11547
11403
  [showStickyHeader]="showStickyHeader"
11404
+ [customItemTemplate]="customItemTemplate"
11405
+ [text]="text"
11406
+ [allowCustom]="allowCustom"
11548
11407
  >
11549
11408
  </kendo-list>
11550
11409
  <!--no data template-->
@@ -11567,11 +11426,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11567
11426
  </ng-template>
11568
11427
  `,
11569
11428
  standalone: true,
11570
- imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, TagListComponent, SearchBarComponent, IconWrapperComponent, ResizeSensorComponent, ResponsiveRendererComponent, TemplateContextDirective, NgClass, SelectableDirective, ListComponent]
11429
+ imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, TagListComponent, SearchBarComponent, IconWrapperComponent, ResizeSensorComponent, AdaptiveRendererComponent, TemplateContextDirective, ListComponent]
11571
11430
  }]
11572
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: DataService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i7.AdaptiveService }]; }, propDecorators: { responsiveRendererComponent: [{
11431
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: DataService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i7.AdaptiveService }]; }, propDecorators: { adaptiveRendererComponent: [{
11573
11432
  type: ViewChild,
11574
- args: [ResponsiveRendererComponent]
11433
+ args: [AdaptiveRendererComponent]
11575
11434
  }], showStickyHeader: [{
11576
11435
  type: Input
11577
11436
  }], focusableId: [{
@@ -11603,9 +11462,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
11603
11462
  type: Input
11604
11463
  }], adaptiveMode: [{
11605
11464
  type: Input
11606
- }], title: [{
11465
+ }], adaptiveTitle: [{
11607
11466
  type: Input
11608
- }], subtitle: [{
11467
+ }], adaptiveSubtitle: [{
11609
11468
  type: Input
11610
11469
  }], disabled: [{
11611
11470
  type: Input
@@ -12030,11 +11889,6 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12030
11889
  this.totalColumnsWidth = this.columns.reduce((total, currentColumn) => total + currentColumn.width, 0);
12031
11890
  });
12032
11891
  this.cdr.detectChanges();
12033
- if (this.actionSheet && isDocumentAvailable()) {
12034
- // The following syntax is used as it does not violate CSP compliance
12035
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
12036
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
12037
- }
12038
11892
  }
12039
11893
  ngOnDestroy() {
12040
11894
  super.ngOnDestroy();
@@ -12163,6 +12017,8 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12163
12017
  when its role is 'region'
12164
12018
  "
12165
12019
  popupLabel="Options list"
12020
+ 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"
12021
+ adaptiveCloseButtonTitle="Close"
12166
12022
  ></ng-container>
12167
12023
 
12168
12024
  <ng-container
@@ -12253,19 +12109,17 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12253
12109
  <!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
12254
12110
  <ng-container #container></ng-container>
12255
12111
 
12256
- <!--adaptive rendering-->
12257
- <responsive-renderer
12112
+ <kendo-adaptive-renderer
12258
12113
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
12259
- [isActionSheetExpanded]="isActionSheetExpanded"
12260
- [title]="title"
12114
+ [title]="adaptiveTitle"
12261
12115
  [showTextInput]="true"
12262
- [subtitle]="subtitle"
12263
- (closePopup)="togglePopup(false)"
12264
- (textInputChange)="onAdaptiveTextBoxChange($event)"
12116
+ [subtitle]="adaptiveSubtitle"
12117
+ (closePopup)="closeActionSheet()"
12118
+ (textInputChange)="searchBarChange($event)"
12265
12119
  (navigate)="handleNavigate($event)"
12266
12120
  [placeholder]="placeholder"
12267
- >
12268
- </responsive-renderer>
12121
+ [searchBarValue]="text">
12122
+ </kendo-adaptive-renderer>
12269
12123
 
12270
12124
  <ng-template #sharedPopupActionSheetTemplate>
12271
12125
  <!--user-defined header template -->
@@ -12347,6 +12201,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12347
12201
  #optionsList
12348
12202
  [optionPrefix]="optionPrefix"
12349
12203
  [data]="data"
12204
+ [size]="isAdaptive ? 'large' : size"
12350
12205
  [textField]="textField"
12351
12206
  [valueField]="valueField"
12352
12207
  [template]="{ templateRef: rowTemplate }"
@@ -12400,7 +12255,7 @@ class MultiColumnComboBoxComponent extends ComboBoxComponent {
12400
12255
  </ng-container>
12401
12256
  </div>
12402
12257
  </ng-template>
12403
- `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize", "popupListScroll"] }] });
12258
+ `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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"] }] });
12404
12259
  }
12405
12260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiColumnComboBoxComponent, decorators: [{
12406
12261
  type: Component,
@@ -12450,6 +12305,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12450
12305
  when its role is 'region'
12451
12306
  "
12452
12307
  popupLabel="Options list"
12308
+ 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"
12309
+ adaptiveCloseButtonTitle="Close"
12453
12310
  ></ng-container>
12454
12311
 
12455
12312
  <ng-container
@@ -12540,19 +12397,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12540
12397
  <!-- when the popupSettings.appendTo value is set to 'component', this container is used -->
12541
12398
  <ng-container #container></ng-container>
12542
12399
 
12543
- <!--adaptive rendering-->
12544
- <responsive-renderer
12400
+ <kendo-adaptive-renderer
12545
12401
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
12546
- [isActionSheetExpanded]="isActionSheetExpanded"
12547
- [title]="title"
12402
+ [title]="adaptiveTitle"
12548
12403
  [showTextInput]="true"
12549
- [subtitle]="subtitle"
12550
- (closePopup)="togglePopup(false)"
12551
- (textInputChange)="onAdaptiveTextBoxChange($event)"
12404
+ [subtitle]="adaptiveSubtitle"
12405
+ (closePopup)="closeActionSheet()"
12406
+ (textInputChange)="searchBarChange($event)"
12552
12407
  (navigate)="handleNavigate($event)"
12553
12408
  [placeholder]="placeholder"
12554
- >
12555
- </responsive-renderer>
12409
+ [searchBarValue]="text">
12410
+ </kendo-adaptive-renderer>
12556
12411
 
12557
12412
  <ng-template #sharedPopupActionSheetTemplate>
12558
12413
  <!--user-defined header template -->
@@ -12634,6 +12489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12634
12489
  #optionsList
12635
12490
  [optionPrefix]="optionPrefix"
12636
12491
  [data]="data"
12492
+ [size]="isAdaptive ? 'large' : size"
12637
12493
  [textField]="textField"
12638
12494
  [valueField]="valueField"
12639
12495
  [template]="{ templateRef: rowTemplate }"
@@ -12689,7 +12545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
12689
12545
  </ng-template>
12690
12546
  `,
12691
12547
  standalone: true,
12692
- imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, SearchBarComponent, EventsOutsideAngularDirective, IconWrapperComponent, NgClass, ResizeSensorComponent, ResponsiveRendererComponent, TemplateContextDirective, NgFor, NgStyle, ListComponent]
12548
+ imports: [LocalizedMessagesDirective, SharedDropDownEventsDirective, NgIf, NgTemplateOutlet, SeparatorComponent, SearchBarComponent, EventsOutsideAngularDirective, IconWrapperComponent, NgClass, ResizeSensorComponent, AdaptiveRendererComponent, TemplateContextDirective, NgFor, NgStyle, ListComponent]
12693
12549
  }]
12694
12550
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i7.AdaptiveService }]; }, propDecorators: { hostClasses: [{
12695
12551
  type: HostBinding,
@@ -12789,18 +12645,18 @@ class DropDownTreeComponent {
12789
12645
  /**
12790
12646
  * @hidden
12791
12647
  */
12792
- responsiveRendererComponent;
12648
+ adaptiveRendererComponent;
12793
12649
  /**
12794
12650
  * @hidden
12795
12651
  */
12796
12652
  get actionSheet() {
12797
- return this.responsiveRendererComponent?.actionSheet;
12653
+ return this.adaptiveRendererComponent?.actionSheet;
12798
12654
  }
12799
12655
  /**
12800
12656
  * @hidden
12801
12657
  */
12802
12658
  get actionSheetSearchBar() {
12803
- return this.responsiveRendererComponent?.actionSheetSearchBar;
12659
+ return this.adaptiveRendererComponent?.actionSheetSearchBar;
12804
12660
  }
12805
12661
  hostClasses = true;
12806
12662
  get isReadonly() {
@@ -13201,14 +13057,14 @@ class DropDownTreeComponent {
13201
13057
  adaptiveMode = 'none';
13202
13058
  /**
13203
13059
  * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
13204
- * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
13060
+ * By default the ActionSheet title uses the text provided for the label of the DropDownTree.
13205
13061
  */
13206
- title = '';
13062
+ adaptiveTitle = '';
13207
13063
  /**
13208
13064
  * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
13209
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
13065
+ * By default the ActionSheet does not render a subtitle.
13210
13066
  */
13211
- subtitle = '';
13067
+ adaptiveSubtitle = '';
13212
13068
  /**
13213
13069
  * @hidden
13214
13070
  */
@@ -13222,7 +13078,9 @@ class DropDownTreeComponent {
13222
13078
  /**
13223
13079
  * @hidden
13224
13080
  */
13225
- isActionSheetExpanded = false;
13081
+ get isActionSheetExpanded() {
13082
+ return this.actionSheet?.expanded;
13083
+ }
13226
13084
  /**
13227
13085
  * @hidden
13228
13086
  */
@@ -13403,11 +13261,6 @@ class DropDownTreeComponent {
13403
13261
  this.windowSize = this.adaptiveService.size;
13404
13262
  this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'click', this.handleClick.bind(this)));
13405
13263
  this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
13406
- if (this.actionSheet && isDocumentAvailable()) {
13407
- // The following syntax is used as it does not violate CSP compliance
13408
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
13409
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
13410
- }
13411
13264
  }
13412
13265
  /**
13413
13266
  * @hidden
@@ -13739,19 +13592,6 @@ class DropDownTreeComponent {
13739
13592
  }
13740
13593
  });
13741
13594
  }
13742
- /**
13743
- * @hidden
13744
- */
13745
- onExpand() {
13746
- this._searchableNodes = getSearchableItems(this.treeViewId, this.actionSheet.element.nativeElement);
13747
- this.isActionSheetExpanded = true;
13748
- }
13749
- /**
13750
- * @hidden
13751
- */
13752
- onCollapse() {
13753
- this.isActionSheetExpanded = false;
13754
- }
13755
13595
  /**
13756
13596
  * @hidden
13757
13597
  *
@@ -13838,14 +13678,17 @@ class DropDownTreeComponent {
13838
13678
  this.popupRef.popupElement.removeEventListener('click', (event) => stopPropagation(event));
13839
13679
  this.popupRef.close();
13840
13680
  this.popupRef = null;
13841
- if (this.filter !== "") {
13842
- this.filter = "";
13843
- this.allNodesHidden = false;
13844
- if (hasObservers(this.filterChange)) {
13845
- this._zone.run(() => {
13846
- this.filterChange.emit("");
13847
- });
13848
- }
13681
+ this.clearFilter();
13682
+ }
13683
+ }
13684
+ clearFilter() {
13685
+ if (this.filter !== "") {
13686
+ this.filter = "";
13687
+ this.allNodesHidden = false;
13688
+ if (hasObservers(this.filterChange)) {
13689
+ this._zone.run(() => {
13690
+ this.filterChange.emit("");
13691
+ });
13849
13692
  }
13850
13693
  }
13851
13694
  }
@@ -14020,26 +13863,20 @@ class DropDownTreeComponent {
14020
13863
  closeActionSheet() {
14021
13864
  this.actionSheet.toggle(false);
14022
13865
  if (this.filterable) {
14023
- this.actionSheetSearchBar.value = '';
14024
- this.filterChange.emit('');
13866
+ this.clearFilter();
14025
13867
  }
14026
13868
  this.wrapper.nativeElement.focus();
14027
13869
  this.closed.emit();
14028
13870
  }
14029
13871
  openActionSheet() {
14030
- this.windowSize = this.adaptiveService.size;
14031
- this.isActionSheetExpanded = true;
14032
13872
  this.actionSheet.toggle(true);
14033
- this.title = setActionSheetTitle(this.wrapper, this.title);
14034
- this.cdr.detectChanges();
14035
- updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
13873
+ this.adaptiveTitle = setActionSheetTitle(this.wrapper, this.adaptiveTitle);
14036
13874
  this.cdr.detectChanges();
14037
13875
  this.opened.emit();
14038
13876
  this.removeTreeViewFromTabOrder();
14039
- this.filterable && this.actionSheetSearchBar.focus();
14040
13877
  }
14041
13878
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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 });
14042
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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", title: "title", subtitle: "subtitle" }, 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: [
13879
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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: [
14043
13880
  DataService,
14044
13881
  SelectionService,
14045
13882
  NavigationService,
@@ -14066,7 +13903,7 @@ class DropDownTreeComponent {
14066
13903
  provide: ExpandableComponent,
14067
13904
  useExisting: forwardRef(() => DropDownTreeComponent)
14068
13905
  }
14069
- ], 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: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, 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: `
13906
+ ], 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: `
14070
13907
  <ng-container kendoDropDownTreeLocalizedMessages
14071
13908
  i18n-noDataText="kendo.dropdowntree.noDataText|The text displayed in the popup when there are no items"
14072
13909
  noDataText="NO DATA FOUND"
@@ -14082,6 +13919,12 @@ class DropDownTreeComponent {
14082
13919
 
14083
13920
  i18n-popupLabel="kendo.dropdowntree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
14084
13921
  popupLabel="Options list"
13922
+
13923
+ i18n-adaptiveCloseButtonTitle="kendo.dropdowntree.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"
13924
+ adaptiveCloseButtonTitle="Close"
13925
+
13926
+ i18n-filterInputPlaceholder="kendo.dropdowntree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
13927
+ filterInputPlaceholder="Filter"
14085
13928
  >
14086
13929
  </ng-container>
14087
13930
  <span
@@ -14135,19 +13978,18 @@ class DropDownTreeComponent {
14135
13978
  </ng-template>
14136
13979
  <ng-container #container></ng-container>
14137
13980
 
14138
- <!--adaptive rendering-->
14139
- <responsive-renderer
13981
+ <kendo-adaptive-renderer
14140
13982
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
14141
- [isActionSheetExpanded]="isActionSheetExpanded"
14142
- [title]="title"
13983
+ [title]="adaptiveTitle"
14143
13984
  [showTextInput]="filterable"
14144
- [subtitle]="subtitle"
13985
+ [subtitle]="adaptiveSubtitle"
14145
13986
  (closePopup)="togglePopup(false)"
14146
- (onExpand)="onExpand()"
14147
- (onCollapse)="onCollapse()"
14148
13987
  (textInputChange)="handleFilterInputChange($event)"
14149
- >
14150
- </responsive-renderer>
13988
+ [placeholder]="placeholder"
13989
+ [searchBarValue]="filter"
13990
+ [filterable]="filterable">
13991
+ </kendo-adaptive-renderer>
13992
+
14151
13993
  <ng-template #sharedPopupActionSheetTemplate>
14152
13994
  <span
14153
13995
  *ngIf="filterable && !isActionSheetExpanded"
@@ -14194,7 +14036,7 @@ class DropDownTreeComponent {
14194
14036
  #treeview
14195
14037
  [attr.id]="treeViewId"
14196
14038
  *ngIf="data.length !== 0 && !allNodesHidden"
14197
- [size]="size"
14039
+ [size]="windowSize !== 'large' ? 'large' : size"
14198
14040
  [nodes]="data"
14199
14041
  [style.maxHeight.px]="listHeight"
14200
14042
  [animate]="false"
@@ -14239,7 +14081,7 @@ class DropDownTreeComponent {
14239
14081
  </ng-template>
14240
14082
 
14241
14083
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
14242
- `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { 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 });
14084
+ `, 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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 });
14243
14085
  }
14244
14086
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownTreeComponent, decorators: [{
14245
14087
  type: Component,
@@ -14290,6 +14132,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14290
14132
 
14291
14133
  i18n-popupLabel="kendo.dropdowntree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
14292
14134
  popupLabel="Options list"
14135
+
14136
+ i18n-adaptiveCloseButtonTitle="kendo.dropdowntree.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"
14137
+ adaptiveCloseButtonTitle="Close"
14138
+
14139
+ i18n-filterInputPlaceholder="kendo.dropdowntree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
14140
+ filterInputPlaceholder="Filter"
14293
14141
  >
14294
14142
  </ng-container>
14295
14143
  <span
@@ -14343,19 +14191,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14343
14191
  </ng-template>
14344
14192
  <ng-container #container></ng-container>
14345
14193
 
14346
- <!--adaptive rendering-->
14347
- <responsive-renderer
14194
+ <kendo-adaptive-renderer
14348
14195
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
14349
- [isActionSheetExpanded]="isActionSheetExpanded"
14350
- [title]="title"
14196
+ [title]="adaptiveTitle"
14351
14197
  [showTextInput]="filterable"
14352
- [subtitle]="subtitle"
14198
+ [subtitle]="adaptiveSubtitle"
14353
14199
  (closePopup)="togglePopup(false)"
14354
- (onExpand)="onExpand()"
14355
- (onCollapse)="onCollapse()"
14356
14200
  (textInputChange)="handleFilterInputChange($event)"
14357
- >
14358
- </responsive-renderer>
14201
+ [placeholder]="placeholder"
14202
+ [searchBarValue]="filter"
14203
+ [filterable]="filterable">
14204
+ </kendo-adaptive-renderer>
14205
+
14359
14206
  <ng-template #sharedPopupActionSheetTemplate>
14360
14207
  <span
14361
14208
  *ngIf="filterable && !isActionSheetExpanded"
@@ -14402,7 +14249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14402
14249
  #treeview
14403
14250
  [attr.id]="treeViewId"
14404
14251
  *ngIf="data.length !== 0 && !allNodesHidden"
14405
- [size]="size"
14252
+ [size]="windowSize !== 'large' ? 'large' : size"
14406
14253
  [nodes]="data"
14407
14254
  [style.maxHeight.px]="listHeight"
14408
14255
  [animate]="false"
@@ -14450,15 +14297,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14450
14297
  `,
14451
14298
  changeDetection: ChangeDetectionStrategy.OnPush,
14452
14299
  standalone: true,
14453
- imports: [LocalizedMessagesDirective, NgIf, TemplateContextDirective, IconWrapperComponent, NgClass, NgTemplateOutlet, ResponsiveRendererComponent, FilterInputDirective, EventsOutsideAngularDirective, TreeViewComponent, SelectDirective, ResizeSensorComponent]
14300
+ imports: [LocalizedMessagesDirective, NgIf, TemplateContextDirective, IconWrapperComponent, NgClass, NgTemplateOutlet, AdaptiveRendererComponent, FilterInputDirective, EventsOutsideAngularDirective, TreeViewComponent, SelectDirective, ResizeSensorComponent]
14454
14301
  }]
14455
14302
  }], ctorParameters: function () { return [{ 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: [{
14456
14303
  type: Input
14457
14304
  }], svgIcon: [{
14458
14305
  type: Input
14459
- }], responsiveRendererComponent: [{
14306
+ }], adaptiveRendererComponent: [{
14460
14307
  type: ViewChild,
14461
- args: [ResponsiveRendererComponent]
14308
+ args: [AdaptiveRendererComponent]
14462
14309
  }], hostClasses: [{
14463
14310
  type: HostBinding,
14464
14311
  args: ['class.k-dropdowntree']
@@ -14615,9 +14462,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14615
14462
  type: Input
14616
14463
  }], adaptiveMode: [{
14617
14464
  type: Input
14618
- }], title: [{
14465
+ }], adaptiveTitle: [{
14619
14466
  type: Input
14620
- }], subtitle: [{
14467
+ }], adaptiveSubtitle: [{
14621
14468
  type: Input
14622
14469
  }] } });
14623
14470
 
@@ -15179,41 +15026,24 @@ class MultiSelectTreeComponent {
15179
15026
  */
15180
15027
  onFilterChange(text) {
15181
15028
  if (this.filterable) {
15029
+ this.filter = text;
15182
15030
  this.filterChange.emit(text);
15183
15031
  }
15184
15032
  }
15185
- /**
15186
- * @hidden
15187
- */
15188
- onExpand() {
15189
- this._searchableNodes = getSearchableItems(this.treeViewId, this.actionSheet.element.nativeElement);
15190
- this.isActionSheetExpanded = true;
15191
- }
15192
- /**
15193
- * @hidden
15194
- */
15195
- onCollapse() {
15196
- this.isActionSheetExpanded = false;
15197
- }
15198
15033
  /**
15199
15034
  * Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
15200
15035
  */
15201
15036
  adaptiveMode = 'none';
15202
15037
  /**
15203
15038
  * Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
15204
- * By default the ActionSheet title uses the text provided for the label of the AutoComplete.
15039
+ * By default the ActionSheet title uses the text provided for the label of the MultiSelectTree.
15205
15040
  */
15206
- title = '';
15041
+ adaptiveTitle = '';
15207
15042
  /**
15208
15043
  * Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
15209
- * By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
15044
+ * By default the ActionSheet does not render a subtitle.
15210
15045
  */
15211
- set subtitle(_subtitle) {
15212
- this._subtitle = _subtitle;
15213
- }
15214
- get subtitle() {
15215
- return this._subtitle || this.placeholder;
15216
- }
15046
+ adaptiveSubtitle;
15217
15047
  /**
15218
15048
  * @hidden
15219
15049
  */
@@ -15227,7 +15057,9 @@ class MultiSelectTreeComponent {
15227
15057
  /**
15228
15058
  * @hidden
15229
15059
  */
15230
- isActionSheetExpanded = false;
15060
+ get isActionSheetExpanded() {
15061
+ return this.actionSheet?.expanded;
15062
+ }
15231
15063
  /**
15232
15064
  * @hidden
15233
15065
  */
@@ -15267,18 +15099,18 @@ class MultiSelectTreeComponent {
15267
15099
  /**
15268
15100
  * @hidden
15269
15101
  */
15270
- responsiveRendererComponent;
15102
+ adaptiveRendererComponent;
15271
15103
  /**
15272
15104
  * @hidden
15273
15105
  */
15274
15106
  get actionSheet() {
15275
- return this.responsiveRendererComponent?.actionSheet;
15107
+ return this.adaptiveRendererComponent?.actionSheet;
15276
15108
  }
15277
15109
  /**
15278
15110
  * @hidden
15279
15111
  */
15280
15112
  get actionSheetSearchBar() {
15281
- return this.responsiveRendererComponent?.actionSheetSearchBar;
15113
+ return this.adaptiveRendererComponent?.actionSheetSearchBar;
15282
15114
  }
15283
15115
  /**
15284
15116
  * @hidden
@@ -15836,7 +15668,6 @@ class MultiSelectTreeComponent {
15836
15668
  tags;
15837
15669
  focusedTagIndex = undefined;
15838
15670
  disabledIndices;
15839
- _subtitle;
15840
15671
  _nodes;
15841
15672
  _value = [];
15842
15673
  _tabindex = 0;
@@ -15845,8 +15676,6 @@ class MultiSelectTreeComponent {
15845
15676
  _isFocused = false;
15846
15677
  _treeview;
15847
15678
  _dataItems;
15848
- _tempValue;
15849
- _initiallyCheckedItems = [];
15850
15679
  _size = 'medium';
15851
15680
  _rounded = 'medium';
15852
15681
  _fillMode = 'solid';
@@ -15892,17 +15721,11 @@ class MultiSelectTreeComponent {
15892
15721
  this.cdr.markForCheck();
15893
15722
  }));
15894
15723
  this.setComponentClasses();
15895
- this._initiallyCheckedItems = [...this.checkedItems];
15896
15724
  }
15897
15725
  ngAfterViewInit() {
15898
15726
  this.windowSize = this.adaptiveService.size;
15899
15727
  this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'click', this.handleClick.bind(this)));
15900
15728
  this.subs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', this.handleKeydown.bind(this)));
15901
- if (this.actionSheet && isDocumentAvailable()) {
15902
- // The following syntax is used as it does not violate CSP compliance
15903
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-height', '60vh');
15904
- this.actionSheet.element.nativeElement.style.setProperty('--kendo-actionsheet-max-height', 'none');
15905
- }
15906
15729
  }
15907
15730
  /**
15908
15731
  * @hidden
@@ -15948,23 +15771,6 @@ class MultiSelectTreeComponent {
15948
15771
  this.allNodesHidden = this.areNodesHidden(this.data);
15949
15772
  }
15950
15773
  }
15951
- /**
15952
- * @hidden
15953
- */
15954
- applyValue() {
15955
- this.value = this._tempValue;
15956
- this._initiallyCheckedItems = [...this.checkedItems];
15957
- this.emitValueChange(this.value);
15958
- this.setTags();
15959
- this.toggle(false);
15960
- }
15961
- /**
15962
- * @hidden
15963
- */
15964
- cancelValue() {
15965
- this.checkedItems = [...this._initiallyCheckedItems];
15966
- this.togglePopup(false);
15967
- }
15968
15774
  ngAfterContentInit() {
15969
15775
  this.isContentInit = true;
15970
15776
  // Still need to keep the call of 'registerLookupItems()' from ngAfterContentInit in the cases when the data is passed initially
@@ -16388,14 +16194,17 @@ class MultiSelectTreeComponent {
16388
16194
  this.popupRef = null;
16389
16195
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
16390
16196
  this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
16391
- if (this.filter !== "") {
16392
- this.filter = "";
16393
- this.allNodesHidden = false;
16394
- if (hasObservers(this.filterChange)) {
16395
- this._zone.run(() => {
16396
- this.filterChange.emit("");
16397
- });
16398
- }
16197
+ this.clearFilter();
16198
+ }
16199
+ }
16200
+ clearFilter() {
16201
+ if (this.filter !== "") {
16202
+ this.filter = "";
16203
+ this.allNodesHidden = false;
16204
+ if (hasObservers(this.filterChange)) {
16205
+ this._zone.run(() => {
16206
+ this.filterChange.emit("");
16207
+ });
16399
16208
  }
16400
16209
  }
16401
16210
  }
@@ -16587,9 +16396,7 @@ class MultiSelectTreeComponent {
16587
16396
  }
16588
16397
  setState() {
16589
16398
  if (isPresent(this.dataItems) && isPresent(this.valueField)) {
16590
- if (!this.isActionSheetExpanded) {
16591
- this.setTags();
16592
- }
16399
+ this.setTags();
16593
16400
  this.checkedItems = this.dataItems.slice();
16594
16401
  }
16595
16402
  this.cdr.markForCheck();
@@ -16612,13 +16419,8 @@ class MultiSelectTreeComponent {
16612
16419
  const newValue = this.valuePrimitive ?
16613
16420
  value.map(item => valueFrom(item, this.valueField)) :
16614
16421
  value.map(item => item.dataItem);
16615
- if (this.isActionSheetExpanded) {
16616
- this._tempValue = newValue.slice();
16617
- }
16618
- else {
16619
- this.value = newValue;
16620
- this.emitValueChange(this.value);
16621
- }
16422
+ this.value = newValue;
16423
+ this.emitValueChange(this.value);
16622
16424
  }
16623
16425
  /**
16624
16426
  * @hidden
@@ -16700,26 +16502,20 @@ class MultiSelectTreeComponent {
16700
16502
  this.actionSheet.toggle(false);
16701
16503
  this.renderer.removeAttribute(this.wrapper.nativeElement, 'aria-controls');
16702
16504
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');
16703
- if (this.filterable) {
16704
- this.actionSheetSearchBar.value = '';
16705
- this.filterChange.emit('');
16706
- }
16505
+ this.clearFilter();
16707
16506
  this.closed.emit();
16708
16507
  }
16709
16508
  openActionSheet() {
16710
- this.windowSize = this.adaptiveService.size;
16711
16509
  this.actionSheet.toggle(true);
16712
- this.title = setActionSheetTitle(this.wrapper, this.title);
16510
+ this.adaptiveTitle = setActionSheetTitle(this.wrapper, this.adaptiveTitle);
16713
16511
  this.cdr.detectChanges();
16714
16512
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-controls', this.treeViewId);
16715
16513
  this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');
16716
- updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
16717
16514
  this.cdr.detectChanges();
16718
16515
  this.opened.emit();
16719
- this.filterable && this.actionSheetSearchBar.focus();
16720
16516
  }
16721
16517
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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 });
16722
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectTreeComponent, isStandalone: true, selector: "kendo-multiselecttree", inputs: { adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", 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-multiselecttree": "this.hostClasses", "class.k-input": "this.hostClasses", "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: [
16518
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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-multiselecttree": "this.hostClasses", "class.k-input": "this.hostClasses", "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: [
16723
16519
  LocalizationService,
16724
16520
  NavigationService,
16725
16521
  DataService,
@@ -16747,7 +16543,7 @@ class MultiSelectTreeComponent {
16747
16543
  provide: KendoInput,
16748
16544
  useExisting: forwardRef(() => MultiSelectTreeComponent)
16749
16545
  }
16750
- ], 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: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, 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: `
16546
+ ], 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: `
16751
16547
  <ng-container kendoMultiSelectTreeLocalizedMessages
16752
16548
  i18n-noDataText="kendo.multiselecttree.noDataText|The text displayed in the popup when there are no items"
16753
16549
  noDataText="NO DATA FOUND"
@@ -16764,11 +16560,11 @@ class MultiSelectTreeComponent {
16764
16560
  i18n-popupLabel="kendo.multiselecttree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
16765
16561
  popupLabel="Options list"
16766
16562
 
16767
- i18n-applyButton="kendo.multiselecttree.applyButton|The text of the Apply button in the action sheet"
16768
- applyButton="Apply"
16563
+ i18n-adaptiveCloseButtonTitle="kendo.multiselecttree.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"
16564
+ adaptiveCloseButtonTitle="Close"
16769
16565
 
16770
- i18n-cancelButton="kendo.multiselecttree.cancelButton|The text of the Cancel button in the action sheet"
16771
- cancelButton="Cancel"
16566
+ i18n-filterInputPlaceholder="kendo.multiselecttree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
16567
+ filterInputPlaceholder="Filter"
16772
16568
  >
16773
16569
  </ng-container>
16774
16570
  <kendo-taglist
@@ -16822,22 +16618,19 @@ class MultiSelectTreeComponent {
16822
16618
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
16823
16619
  </ng-template>
16824
16620
  <ng-container #container></ng-container>
16825
- <!--adaptive rendering-->
16826
- <responsive-renderer
16621
+
16622
+ <kendo-adaptive-renderer
16827
16623
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
16828
- [isActionSheetExpanded]="isActionSheetExpanded"
16829
- [title]="title"
16624
+ [title]="adaptiveTitle"
16830
16625
  [showTextInput]="filterable"
16831
- [showActionButtons]="true"
16832
- [subtitle]="subtitle"
16626
+ [subtitle]="adaptiveSubtitle"
16833
16627
  (closePopup)="togglePopup(false)"
16834
- (onExpand)="onExpand()"
16835
- (onCollapse)="onCollapse()"
16836
16628
  (textInputChange)="onFilterChange($event)"
16837
- (onApply)="applyValue()"
16838
- (onCancel)="cancelValue()"
16839
- >
16840
- </responsive-renderer>
16629
+ [searchBarValue]="filter"
16630
+ [placeholder]="placeholder"
16631
+ [filterable]="filterable">
16632
+ </kendo-adaptive-renderer>
16633
+
16841
16634
  <ng-template #sharedPopupActionSheetTemplate>
16842
16635
  <div
16843
16636
  *ngIf="filterable && !isActionSheetExpanded"
@@ -16915,7 +16708,7 @@ class MultiSelectTreeComponent {
16915
16708
  </div>
16916
16709
  <kendo-treeview
16917
16710
  #treeview
16918
- [size]="size"
16711
+ [size]="windowSize !== 'large' ? 'large' : size"
16919
16712
  [attr.id]="treeViewId"
16920
16713
  [nodes]="data"
16921
16714
  [style.maxHeight.px]="listHeight"
@@ -16967,7 +16760,7 @@ class MultiSelectTreeComponent {
16967
16760
  </ng-template>
16968
16761
 
16969
16762
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
16970
- `, 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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { 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"] }] });
16763
+ `, 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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
16971
16764
  }
16972
16765
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectTreeComponent, decorators: [{
16973
16766
  type: Component,
@@ -17020,11 +16813,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17020
16813
  i18n-popupLabel="kendo.multiselecttree.popupLabel|The label of the popup element that contains the list of options when its role is 'region'"
17021
16814
  popupLabel="Options list"
17022
16815
 
17023
- i18n-applyButton="kendo.multiselecttree.applyButton|The text of the Apply button in the action sheet"
17024
- applyButton="Apply"
16816
+ i18n-adaptiveCloseButtonTitle="kendo.multiselecttree.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"
16817
+ adaptiveCloseButtonTitle="Close"
17025
16818
 
17026
- i18n-cancelButton="kendo.multiselecttree.cancelButton|The text of the Cancel button in the action sheet"
17027
- cancelButton="Cancel"
16819
+ i18n-filterInputPlaceholder="kendo.multiselecttree.filterInputPlaceholder|The text for the input's placeholder when filtering is enabled"
16820
+ filterInputPlaceholder="Filter"
17028
16821
  >
17029
16822
  </ng-container>
17030
16823
  <kendo-taglist
@@ -17078,22 +16871,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17078
16871
  <ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
17079
16872
  </ng-template>
17080
16873
  <ng-container #container></ng-container>
17081
- <!--adaptive rendering-->
17082
- <responsive-renderer
16874
+
16875
+ <kendo-adaptive-renderer
17083
16876
  [sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
17084
- [isActionSheetExpanded]="isActionSheetExpanded"
17085
- [title]="title"
16877
+ [title]="adaptiveTitle"
17086
16878
  [showTextInput]="filterable"
17087
- [showActionButtons]="true"
17088
- [subtitle]="subtitle"
16879
+ [subtitle]="adaptiveSubtitle"
17089
16880
  (closePopup)="togglePopup(false)"
17090
- (onExpand)="onExpand()"
17091
- (onCollapse)="onCollapse()"
17092
16881
  (textInputChange)="onFilterChange($event)"
17093
- (onApply)="applyValue()"
17094
- (onCancel)="cancelValue()"
17095
- >
17096
- </responsive-renderer>
16882
+ [searchBarValue]="filter"
16883
+ [placeholder]="placeholder"
16884
+ [filterable]="filterable">
16885
+ </kendo-adaptive-renderer>
16886
+
17097
16887
  <ng-template #sharedPopupActionSheetTemplate>
17098
16888
  <div
17099
16889
  *ngIf="filterable && !isActionSheetExpanded"
@@ -17171,7 +16961,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17171
16961
  </div>
17172
16962
  <kendo-treeview
17173
16963
  #treeview
17174
- [size]="size"
16964
+ [size]="windowSize !== 'large' ? 'large' : size"
17175
16965
  [attr.id]="treeViewId"
17176
16966
  [nodes]="data"
17177
16967
  [style.maxHeight.px]="listHeight"
@@ -17225,7 +17015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17225
17015
  <kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
17226
17016
  `,
17227
17017
  standalone: true,
17228
- imports: [LocalizedMessagesDirective, TagListComponent, NgIf, IconWrapperComponent, NgTemplateOutlet, ResponsiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent]
17018
+ imports: [LocalizedMessagesDirective, TagListComponent, NgIf, IconWrapperComponent, NgTemplateOutlet, AdaptiveRendererComponent, NgClass, FilterInputDirective, EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, TreeViewComponent, CheckDirective, ResizeSensorComponent]
17229
17019
  }]
17230
17020
  }], ctorParameters: function () { return [{ 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: { hostClasses: [{
17231
17021
  type: HostBinding,
@@ -17277,13 +17067,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17277
17067
  args: ['attr.aria-activedescendant']
17278
17068
  }], adaptiveMode: [{
17279
17069
  type: Input
17280
- }], title: [{
17070
+ }], adaptiveTitle: [{
17281
17071
  type: Input
17282
- }], subtitle: [{
17072
+ }], adaptiveSubtitle: [{
17283
17073
  type: Input
17284
- }], responsiveRendererComponent: [{
17074
+ }], adaptiveRendererComponent: [{
17285
17075
  type: ViewChild,
17286
- args: [ResponsiveRendererComponent]
17076
+ args: [AdaptiveRendererComponent]
17287
17077
  }], headerTemplate: [{
17288
17078
  type: ContentChild,
17289
17079
  args: [HeaderTemplateDirective, { static: false }]
@@ -18324,5 +18114,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
18324
18114
  * Generated bundle index. Do not edit.
18325
18115
  */
18326
18116
 
18327
- export { AutoCompleteComponent, AutoCompleteModule, CheckAllDirective, CheckDirective, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, ComboBoxColumnComponent, ComboBoxComponent, ComboBoxModule, CustomItemTemplateDirective, CustomMessagesComponent, 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, NoDataTemplateDirective, NodeTemplateDirective, PreventableEvent, RemoveTagEvent, ResponsiveRendererComponent, SearchBarComponent, SelectableDirective, SummaryTagDirective, TagListComponent, TagTemplateDirective, ValueTemplateDirective };
18117
+ export { AdaptiveRendererComponent, AutoCompleteComponent, AutoCompleteModule, CheckAllDirective, CheckDirective, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, ComboBoxColumnComponent, ComboBoxComponent, ComboBoxModule, CustomItemTemplateDirective, CustomMessagesComponent, 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, NoDataTemplateDirective, NodeTemplateDirective, PreventableEvent, RemoveTagEvent, SearchBarComponent, SelectableDirective, SummaryTagDirective, TagListComponent, TagTemplateDirective, ValueTemplateDirective };
18328
18118