@progress/kendo-angular-dropdowns 19.0.0-develop.2 → 19.0.0-develop.20

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 (28) hide show
  1. package/autocomplete/autocomplete.component.d.ts +11 -17
  2. package/comboboxes/combobox.component.d.ts +12 -14
  3. package/common/{action-sheet.component.d.ts → adaptive-renderer.component.d.ts} +10 -13
  4. package/common/list.component.d.ts +8 -1
  5. package/common/localization/messages.d.ts +5 -5
  6. package/common/util.d.ts +0 -6
  7. package/dropdownlist/dropdownlist.component.d.ts +7 -19
  8. package/dropdowntrees/dropdowntree.component.d.ts +9 -16
  9. package/dropdowntrees/multiselecttree.component.d.ts +9 -28
  10. package/esm2022/autocomplete/autocomplete.component.mjs +71 -94
  11. package/esm2022/comboboxes/combobox.component.mjs +85 -100
  12. package/esm2022/comboboxes/multicolumncombobox.component.mjs +23 -26
  13. package/esm2022/common/{action-sheet.component.mjs → adaptive-renderer.component.mjs} +71 -107
  14. package/esm2022/common/list.component.mjs +300 -213
  15. package/esm2022/common/localization/messages.mjs +7 -7
  16. package/esm2022/common/searchbar.component.mjs +2 -3
  17. package/esm2022/common/util.mjs +0 -22
  18. package/esm2022/dropdownlist/dropdownlist.component.mjs +50 -123
  19. package/esm2022/dropdowntrees/dropdowntree.component.mjs +63 -72
  20. package/esm2022/dropdowntrees/multiselecttree.component.mjs +65 -122
  21. package/esm2022/index.mjs +1 -1
  22. package/esm2022/multiselect/multiselect.component.mjs +133 -190
  23. package/esm2022/package-metadata.mjs +2 -2
  24. package/fesm2022/progress-kendo-angular-dropdowns.mjs +920 -1130
  25. package/index.d.ts +1 -1
  26. package/multiselect/multiselect.component.d.ts +13 -26
  27. package/package.json +10 -10
  28. package/schematics/ngAdd/index.js +2 -2
@@ -17,6 +17,7 @@ import { DataService } from './data.service';
17
17
  import { NavigationAction } from './navigation/navigation-action';
18
18
  import { SelectableDirective } from './selection/selectable.directive';
19
19
  import { NgIf, NgStyle, NgFor, NgClass } from '@angular/common';
20
+ import { CustomItemTemplateDirective } from './templates/custom-item-template.directive';
20
21
  import * as i0 from "@angular/core";
21
22
  import * as i1 from "./data.service";
22
23
  import * as i2 from "./selection/selection.service";
@@ -52,6 +53,10 @@ export class ListComponent {
52
53
  isActionSheetExpanded;
53
54
  showStickyHeader;
54
55
  rowWidth;
56
+ customItemTemplate;
57
+ text;
58
+ allowCustom;
59
+ defaultItem;
55
60
  set data(data) {
56
61
  this._data = data[0] && data[0].header ? data.slice(0) : data;
57
62
  }
@@ -396,6 +401,12 @@ export class ListComponent {
396
401
  isItemSelected(index) {
397
402
  return this.selectionService.isSelected(index) || null;
398
403
  }
404
+ get isDisabledDefaultItem() {
405
+ return this.disabledItemsService.isItemDisabled(this.defaultItem);
406
+ }
407
+ getDefaultItemText() {
408
+ return getter(this.defaultItem, this.textField);
409
+ }
399
410
  /**
400
411
  * Sets the list's content overflow (hides/shows scrollbar)
401
412
  */
@@ -443,7 +454,41 @@ export class ListComponent {
443
454
  }
444
455
  }
445
456
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [{ token: i1.DataService }, { token: i0.ElementRef }, { token: i2.SelectionService }, { token: i3.DisabledItemsService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
446
- 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: `
457
+ 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: `
458
+ <div *ngIf="defaultItem && !template"
459
+ class="k-list-optionlabel"
460
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
461
+ kendoDropDownsSelectable
462
+ [index]="-1">
463
+ {{ getDefaultItemText() }}
464
+ </div>
465
+ <div *ngIf="defaultItem && template"
466
+ class="k-list-optionlabel"
467
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
468
+ kendoDropDownsSelectable
469
+ [index]="-1">
470
+ <ng-template
471
+ [templateContext]="{
472
+ templateRef: template.templateRef,
473
+ $implicit: defaultItem
474
+ }">
475
+ </ng-template>
476
+ </div>
477
+ <div *ngIf="allowCustom && text"
478
+ kendoDropDownsSelectable
479
+ [multipleSelection]="true"
480
+ [index]="-1"
481
+ class="k-list-custom-value">
482
+ <ng-template *ngIf="customItemTemplate; else default_custom_item_template"
483
+ [templateContext]="{
484
+ templateRef: customItemTemplate.templateRef,
485
+ $implicit: text
486
+ }">
487
+ </ng-template>
488
+ <ng-template #default_custom_item_template>
489
+ Use "{{text}}"
490
+ </ng-template>
491
+ </div>
447
492
  <div *ngIf="dataService.grouped && showStickyHeader"
448
493
  [class]="listGroupStickyHeaderClass"
449
494
  [ngStyle]="{
@@ -464,116 +509,116 @@ export class ListComponent {
464
509
  [style.maxHeight.px]="height"
465
510
  unselectable="on"
466
511
  (scroll)="popupListScroll.emit($event)">
467
- <ul #list
468
- role="listbox"
469
- [class]="listClass"
470
- [attr.id]="id"
471
- [attr.aria-live]="ariaLive"
472
- [attr.aria-multiselectable]="isMultiselect"
473
- [attr.aria-hidden]="!show">
474
- <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
475
- <li
476
- role="option"
477
- kendoDropDownsSelectable
478
- [checkboxes]="checkboxes"
479
- [height]="virtual?.itemHeight"
480
- [index]="itemIndex + startFrom"
481
- [multipleSelection]="multipleSelection"
482
- [attr.id]="optionPrefix + '-' + itemIndex"
483
- [attr.tabIndex]="-1"
484
- [attr.aria-selected]="isItemSelected(itemIndex)"
485
- [class]="listItemClass"
486
- [ngClass]="{
487
- 'k-disabled': isDisabled(itemIndex),
488
- 'k-table-alt-row': isAltRow(itemIndex)
489
- }"
490
- [style.width.px]="rowWidth ?? null"
491
- >
492
- <input
493
- *ngIf="checkboxes.enabled"
494
- type="checkbox"
495
- class="k-checkbox"
496
- role="presentation"
497
- tabindex="-1"
498
- aria-hidden="true"
499
- [ngClass]="checkboxClasses"
500
- (change)="onCheckedChange($event, itemIndex + startFrom)"
501
- [checked]="isChecked(itemIndex)"
502
- />
503
- <ng-template *ngIf="template"
504
- [templateContext]="{
505
- templateRef: template.templateRef,
506
- $implicit: dataItem
507
- }">
508
- </ng-template>
509
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
510
- </li>
511
- </ng-template>
512
- <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
513
- <li
514
- #li
515
- *ngIf="dataItem.header"
516
- role="group"
517
- [class]="listGroupItemClass"
518
- [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
519
- [ngStyle]="{
520
- 'height.px': virtual?.itemHeight,
521
- 'minHeight.px' : virtual?.itemHeight,
522
- 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
523
- [attr.group-index]="dataItem.index"
524
- [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
525
- [attr.tabIndex]="-1"
526
- [style.width.px]="rowWidth ?? null">
527
- <span [class]="listGroupItemTextClass">
528
- <ng-template *ngIf="groupTemplate"
529
- [templateContext]="{
530
- templateRef: groupTemplate.templateRef,
531
- $implicit: dataItem.value
512
+ <ul #list
513
+ role="listbox"
514
+ [class]="listClass"
515
+ [attr.id]="id"
516
+ [attr.aria-live]="ariaLive"
517
+ [attr.aria-multiselectable]="isMultiselect"
518
+ [attr.aria-hidden]="!show">
519
+ <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
520
+ <li
521
+ role="option"
522
+ kendoDropDownsSelectable
523
+ [checkboxes]="checkboxes"
524
+ [height]="virtual?.itemHeight"
525
+ [index]="itemIndex + startFrom"
526
+ [multipleSelection]="multipleSelection"
527
+ [attr.id]="optionPrefix + '-' + itemIndex"
528
+ [attr.tabIndex]="-1"
529
+ [attr.aria-selected]="isItemSelected(itemIndex)"
530
+ [class]="listItemClass"
531
+ [ngClass]="{
532
+ 'k-disabled': isDisabled(itemIndex),
533
+ 'k-table-alt-row': isAltRow(itemIndex)
534
+ }"
535
+ [style.width.px]="rowWidth ?? null"
536
+ >
537
+ <input
538
+ *ngIf="checkboxes.enabled"
539
+ type="checkbox"
540
+ class="k-checkbox"
541
+ role="presentation"
542
+ tabindex="-1"
543
+ aria-hidden="true"
544
+ [ngClass]="checkboxClasses"
545
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
546
+ [checked]="isChecked(itemIndex)"
547
+ />
548
+ <ng-template *ngIf="template"
549
+ [templateContext]="{
550
+ templateRef: template.templateRef,
551
+ $implicit: dataItem
552
+ }">
553
+ </ng-template>
554
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
555
+ </li>
556
+ </ng-template>
557
+ <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
558
+ <li
559
+ #li
560
+ *ngIf="dataItem.header"
561
+ role="group"
562
+ [class]="listGroupItemClass"
563
+ [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
564
+ [ngStyle]="{
565
+ 'height.px': virtual?.itemHeight,
566
+ 'minHeight.px' : virtual?.itemHeight,
567
+ 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
568
+ [attr.group-index]="dataItem.index"
569
+ [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
570
+ [attr.tabIndex]="-1"
571
+ [style.width.px]="rowWidth ?? null">
572
+ <span [class]="listGroupItemTextClass">
573
+ <ng-template *ngIf="groupTemplate"
574
+ [templateContext]="{
575
+ templateRef: groupTemplate.templateRef,
576
+ $implicit: dataItem.value
577
+ }">
578
+ </ng-template>
579
+ <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
580
+ </span>
581
+ </li>
582
+ <li
583
+ #li
584
+ *ngIf="!dataItem.header"
585
+ role="option"
586
+ kendoDropDownsSelectable
587
+ [height]="virtual?.itemHeight"
588
+ [index]="dataItem.offsetIndex"
589
+ [multipleSelection]="multipleSelection"
590
+ [attr.absolute-index]="dataItem.index"
591
+ [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
592
+ [attr.tabIndex]="-1"
593
+ [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
594
+ [class]="listItemClass"
595
+ [ngClass]="{
596
+ 'k-disabled': isDisabled(dataItem.offsetIndex),
597
+ 'k-table-alt-row': isAltRow(itemIndex - 1)
598
+ }"
599
+ [style.width.px]="rowWidth ?? null"
600
+ >
601
+ <ng-template *ngIf="template"
602
+ [templateContext]="{
603
+ templateRef: template.templateRef,
604
+ $implicit: dataItem.value
532
605
  }">
533
- </ng-template>
534
- <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
535
- </span>
536
- </li>
537
- <li
538
- #li
539
- *ngIf="!dataItem.header"
540
- role="option"
541
- kendoDropDownsSelectable
542
- [height]="virtual?.itemHeight"
543
- [index]="dataItem.offsetIndex"
544
- [multipleSelection]="multipleSelection"
545
- [attr.absolute-index]="dataItem.index"
546
- [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
547
- [attr.tabIndex]="-1"
548
- [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
549
- [class]="listItemClass"
550
- [ngClass]="{
551
- 'k-disabled': isDisabled(dataItem.offsetIndex),
552
- 'k-table-alt-row': isAltRow(itemIndex - 1)
553
- }"
554
- [style.width.px]="rowWidth ?? null"
606
+ </ng-template>
607
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
608
+ </li>
609
+ </ng-template>
610
+ <kendo-resize-sensor
611
+ *ngIf="!virtual"
612
+ (resize)="listResize.emit()"
555
613
  >
556
- <ng-template *ngIf="template"
557
- [templateContext]="{
558
- templateRef: template.templateRef,
559
- $implicit: dataItem.value
560
- }">
561
- </ng-template>
562
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
563
- </li>
564
- </ng-template>
565
- <kendo-resize-sensor
566
- *ngIf="!virtual"
567
- (resize)="listResize.emit()"
568
- >
569
- </kendo-resize-sensor>
570
- </ul>
571
- <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
572
- <div [style.height.px]="scrollHeight">
573
- <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
614
+ </kendo-resize-sensor>
615
+ </ul>
616
+ <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
617
+ <div [style.height.px]="scrollHeight">
618
+ <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
619
+ </div>
574
620
  </div>
575
621
  </div>
576
- </div>
577
622
  `, 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"] }] });
578
623
  }
579
624
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
@@ -581,6 +626,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
581
626
  args: [{
582
627
  selector: 'kendo-list',
583
628
  template: `
629
+ <div *ngIf="defaultItem && !template"
630
+ class="k-list-optionlabel"
631
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
632
+ kendoDropDownsSelectable
633
+ [index]="-1">
634
+ {{ getDefaultItemText() }}
635
+ </div>
636
+ <div *ngIf="defaultItem && template"
637
+ class="k-list-optionlabel"
638
+ [ngClass]="{ 'k-disabled': isDisabledDefaultItem }"
639
+ kendoDropDownsSelectable
640
+ [index]="-1">
641
+ <ng-template
642
+ [templateContext]="{
643
+ templateRef: template.templateRef,
644
+ $implicit: defaultItem
645
+ }">
646
+ </ng-template>
647
+ </div>
648
+ <div *ngIf="allowCustom && text"
649
+ kendoDropDownsSelectable
650
+ [multipleSelection]="true"
651
+ [index]="-1"
652
+ class="k-list-custom-value">
653
+ <ng-template *ngIf="customItemTemplate; else default_custom_item_template"
654
+ [templateContext]="{
655
+ templateRef: customItemTemplate.templateRef,
656
+ $implicit: text
657
+ }">
658
+ </ng-template>
659
+ <ng-template #default_custom_item_template>
660
+ Use "{{text}}"
661
+ </ng-template>
662
+ </div>
584
663
  <div *ngIf="dataService.grouped && showStickyHeader"
585
664
  [class]="listGroupStickyHeaderClass"
586
665
  [ngStyle]="{
@@ -601,116 +680,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
601
680
  [style.maxHeight.px]="height"
602
681
  unselectable="on"
603
682
  (scroll)="popupListScroll.emit($event)">
604
- <ul #list
605
- role="listbox"
606
- [class]="listClass"
607
- [attr.id]="id"
608
- [attr.aria-live]="ariaLive"
609
- [attr.aria-multiselectable]="isMultiselect"
610
- [attr.aria-hidden]="!show">
611
- <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
612
- <li
613
- role="option"
614
- kendoDropDownsSelectable
615
- [checkboxes]="checkboxes"
616
- [height]="virtual?.itemHeight"
617
- [index]="itemIndex + startFrom"
618
- [multipleSelection]="multipleSelection"
619
- [attr.id]="optionPrefix + '-' + itemIndex"
620
- [attr.tabIndex]="-1"
621
- [attr.aria-selected]="isItemSelected(itemIndex)"
622
- [class]="listItemClass"
623
- [ngClass]="{
624
- 'k-disabled': isDisabled(itemIndex),
625
- 'k-table-alt-row': isAltRow(itemIndex)
626
- }"
627
- [style.width.px]="rowWidth ?? null"
628
- >
629
- <input
630
- *ngIf="checkboxes.enabled"
631
- type="checkbox"
632
- class="k-checkbox"
633
- role="presentation"
634
- tabindex="-1"
635
- aria-hidden="true"
636
- [ngClass]="checkboxClasses"
637
- (change)="onCheckedChange($event, itemIndex + startFrom)"
638
- [checked]="isChecked(itemIndex)"
639
- />
640
- <ng-template *ngIf="template"
641
- [templateContext]="{
642
- templateRef: template.templateRef,
643
- $implicit: dataItem
644
- }">
645
- </ng-template>
646
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
647
- </li>
648
- </ng-template>
649
- <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
650
- <li
651
- #li
652
- *ngIf="dataItem.header"
653
- role="group"
654
- [class]="listGroupItemClass"
655
- [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
656
- [ngStyle]="{
657
- 'height.px': virtual?.itemHeight,
658
- 'minHeight.px' : virtual?.itemHeight,
659
- 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
660
- [attr.group-index]="dataItem.index"
661
- [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
662
- [attr.tabIndex]="-1"
663
- [style.width.px]="rowWidth ?? null">
664
- <span [class]="listGroupItemTextClass">
665
- <ng-template *ngIf="groupTemplate"
666
- [templateContext]="{
667
- templateRef: groupTemplate.templateRef,
668
- $implicit: dataItem.value
683
+ <ul #list
684
+ role="listbox"
685
+ [class]="listClass"
686
+ [attr.id]="id"
687
+ [attr.aria-live]="ariaLive"
688
+ [attr.aria-multiselectable]="isMultiselect"
689
+ [attr.aria-hidden]="!show">
690
+ <ng-template *ngIf="!dataService.grouped && show" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
691
+ <li
692
+ role="option"
693
+ kendoDropDownsSelectable
694
+ [checkboxes]="checkboxes"
695
+ [height]="virtual?.itemHeight"
696
+ [index]="itemIndex + startFrom"
697
+ [multipleSelection]="multipleSelection"
698
+ [attr.id]="optionPrefix + '-' + itemIndex"
699
+ [attr.tabIndex]="-1"
700
+ [attr.aria-selected]="isItemSelected(itemIndex)"
701
+ [class]="listItemClass"
702
+ [ngClass]="{
703
+ 'k-disabled': isDisabled(itemIndex),
704
+ 'k-table-alt-row': isAltRow(itemIndex)
705
+ }"
706
+ [style.width.px]="rowWidth ?? null"
707
+ >
708
+ <input
709
+ *ngIf="checkboxes.enabled"
710
+ type="checkbox"
711
+ class="k-checkbox"
712
+ role="presentation"
713
+ tabindex="-1"
714
+ aria-hidden="true"
715
+ [ngClass]="checkboxClasses"
716
+ (change)="onCheckedChange($event, itemIndex + startFrom)"
717
+ [checked]="isChecked(itemIndex)"
718
+ />
719
+ <ng-template *ngIf="template"
720
+ [templateContext]="{
721
+ templateRef: template.templateRef,
722
+ $implicit: dataItem
723
+ }">
724
+ </ng-template>
725
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem) }}</span></ng-template>
726
+ </li>
727
+ </ng-template>
728
+ <ng-template *ngIf="dataService.grouped" ngFor let-dataItem let-itemIndex="index" [ngForOf]="data">
729
+ <li
730
+ #li
731
+ *ngIf="dataItem.header"
732
+ role="group"
733
+ [class]="listGroupItemClass"
734
+ [class.k-table-alt-row]="isAltRow(itemIndex - 1)"
735
+ [ngStyle]="{
736
+ 'height.px': virtual?.itemHeight,
737
+ 'minHeight.px' : virtual?.itemHeight,
738
+ 'boxSizing' : virtual ? 'border-box' : 'inherit'}"
739
+ [attr.group-index]="dataItem.index"
740
+ [attr.id]="optionPrefix + '-' + dataItem.groupIndex + '-' + dataItem.value.toString().split(' ').join('')"
741
+ [attr.tabIndex]="-1"
742
+ [style.width.px]="rowWidth ?? null">
743
+ <span [class]="listGroupItemTextClass">
744
+ <ng-template *ngIf="groupTemplate"
745
+ [templateContext]="{
746
+ templateRef: groupTemplate.templateRef,
747
+ $implicit: dataItem.value
748
+ }">
749
+ </ng-template>
750
+ <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
751
+ </span>
752
+ </li>
753
+ <li
754
+ #li
755
+ *ngIf="!dataItem.header"
756
+ role="option"
757
+ kendoDropDownsSelectable
758
+ [height]="virtual?.itemHeight"
759
+ [index]="dataItem.offsetIndex"
760
+ [multipleSelection]="multipleSelection"
761
+ [attr.absolute-index]="dataItem.index"
762
+ [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
763
+ [attr.tabIndex]="-1"
764
+ [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
765
+ [class]="listItemClass"
766
+ [ngClass]="{
767
+ 'k-disabled': isDisabled(dataItem.offsetIndex),
768
+ 'k-table-alt-row': isAltRow(itemIndex - 1)
769
+ }"
770
+ [style.width.px]="rowWidth ?? null"
771
+ >
772
+ <ng-template *ngIf="template"
773
+ [templateContext]="{
774
+ templateRef: template.templateRef,
775
+ $implicit: dataItem.value
669
776
  }">
670
- </ng-template>
671
- <ng-template [ngIf]="!groupTemplate">{{ dataItem.value }}</ng-template>
672
- </span>
673
- </li>
674
- <li
675
- #li
676
- *ngIf="!dataItem.header"
677
- role="option"
678
- kendoDropDownsSelectable
679
- [height]="virtual?.itemHeight"
680
- [index]="dataItem.offsetIndex"
681
- [multipleSelection]="multipleSelection"
682
- [attr.absolute-index]="dataItem.index"
683
- [attr.id]="optionPrefix + '-' + (itemIndex - 1 - dataItem.groupIndex)"
684
- [attr.tabIndex]="-1"
685
- [attr.aria-selected]="isItemSelected(dataItem.offsetIndex)"
686
- [class]="listItemClass"
687
- [ngClass]="{
688
- 'k-disabled': isDisabled(dataItem.offsetIndex),
689
- 'k-table-alt-row': isAltRow(itemIndex - 1)
690
- }"
691
- [style.width.px]="rowWidth ?? null"
777
+ </ng-template>
778
+ <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
779
+ </li>
780
+ </ng-template>
781
+ <kendo-resize-sensor
782
+ *ngIf="!virtual"
783
+ (resize)="listResize.emit()"
692
784
  >
693
- <ng-template *ngIf="template"
694
- [templateContext]="{
695
- templateRef: template.templateRef,
696
- $implicit: dataItem.value
697
- }">
698
- </ng-template>
699
- <ng-template [ngIf]="!template"><span class="k-list-item-text">{{ getText(dataItem.value) }}</span></ng-template>
700
- </li>
701
- </ng-template>
702
- <kendo-resize-sensor
703
- *ngIf="!virtual"
704
- (resize)="listResize.emit()"
705
- >
706
- </kendo-resize-sensor>
707
- </ul>
708
- <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
709
- <div [style.height.px]="scrollHeight">
710
- <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
785
+ </kendo-resize-sensor>
786
+ </ul>
787
+ <div *ngIf="virtual" #virtualContainer class="k-height-container" role="presentation">
788
+ <div [style.height.px]="scrollHeight">
789
+ <kendo-resize-sensor (resize)="listResize.emit()"></kendo-resize-sensor>
790
+ </div>
711
791
  </div>
712
792
  </div>
713
- </div>
714
793
  `,
715
794
  standalone: true,
716
795
  imports: [NgIf, NgStyle, TemplateContextDirective, NgFor, ListItemDirective, SelectableDirective, NgClass, ResizeSensorComponent]
@@ -755,6 +834,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
755
834
  type: Input
756
835
  }], rowWidth: [{
757
836
  type: Input
837
+ }], customItemTemplate: [{
838
+ type: Input
839
+ }], text: [{
840
+ type: Input
841
+ }], allowCustom: [{
842
+ type: Input
843
+ }], defaultItem: [{
844
+ type: Input
758
845
  }], data: [{
759
846
  type: Input
760
847
  }], size: [{
@@ -34,15 +34,15 @@ export class Messages extends ComponentMessages {
34
34
  */
35
35
  popupLabel;
36
36
  /**
37
- * The text of the Apply button in the MultiSelect action sheet.
37
+ * The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode.
38
38
  */
39
- applyButton;
39
+ adaptiveCloseButtonTitle;
40
40
  /**
41
- * The text of the Cancel button in the MultiSelect action sheet.
41
+ * The text for the input's placeholder when filtering is enabled.
42
42
  */
43
- cancelButton;
43
+ filterInputPlaceholder;
44
44
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
45
- 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 });
45
+ 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 });
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
48
48
  type: Directive
@@ -58,8 +58,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
58
58
  type: Input
59
59
  }], popupLabel: [{
60
60
  type: Input
61
- }], applyButton: [{
61
+ }], adaptiveCloseButtonTitle: [{
62
62
  type: Input
63
- }], cancelButton: [{
63
+ }], filterInputPlaceholder: [{
64
64
  type: Input
65
65
  }] } });
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Renderer2, Input, Output, EventEmitter, ElementRef, HostBinding, Injector, NgZone } from '@angular/core';
6
- import { isDocumentAvailable, isObjectPresent, isSafari, removeHTMLAttributes, setHTMLAttributes, Keys, parseAttributes, EventsOutsideAngularDirective } from '@progress/kendo-angular-common';
6
+ import { isDocumentAvailable, isObjectPresent, isSafari, removeHTMLAttributes, setHTMLAttributes, Keys, parseAttributes } from '@progress/kendo-angular-common';
7
7
  import { combineStr, isJapanese } from './util';
8
8
  import { LocalizationService } from '@progress/kendo-angular-l10n';
9
9
  import { Subscription } from 'rxjs';
@@ -306,8 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
306
306
  args: [{
307
307
  selector: 'input[kendoSearchbar]',
308
308
  template: ``,
309
- standalone: true,
310
- imports: [EventsOutsideAngularDirective]
309
+ standalone: true
311
310
  }]
312
311
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { tagListId: [{
313
312
  type: Input