@progress/kendo-angular-treelist 18.2.1-develop.2 → 18.3.0-develop.1

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 (109) hide show
  1. package/column-menu/column-chooser-item-checked.directive.d.ts +21 -0
  2. package/column-menu/column-chooser.component.d.ts +14 -3
  3. package/column-menu/column-list-kb-nav.service.d.ts +22 -0
  4. package/column-menu/column-list.component.d.ts +20 -5
  5. package/column-menu/column-menu-autosize-all.component.d.ts +39 -0
  6. package/column-menu/column-menu-autosize.component.d.ts +43 -0
  7. package/column-menu/column-menu-chooser.component.d.ts +16 -4
  8. package/column-menu/column-menu-container.component.d.ts +21 -0
  9. package/column-menu/column-menu-expandable-item.interface.d.ts +14 -0
  10. package/column-menu/column-menu-filter.component.d.ts +16 -3
  11. package/column-menu/column-menu-item.component.d.ts +11 -3
  12. package/column-menu/column-menu-item.directive.d.ts +45 -0
  13. package/column-menu/column-menu-settings.interface.d.ts +11 -2
  14. package/column-menu/column-menu.component.d.ts +40 -15
  15. package/column-menu/column-menu.service.d.ts +14 -0
  16. package/column-menu/utils.d.ts +13 -0
  17. package/columns/sort-settings.d.ts +12 -0
  18. package/common/error-messages.d.ts +8 -0
  19. package/common/id.service.d.ts +3 -0
  20. package/common/provider.service.d.ts +3 -1
  21. package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +45 -0
  22. package/esm2022/column-menu/column-chooser.component.mjs +69 -14
  23. package/esm2022/column-menu/column-list-kb-nav.service.mjs +40 -0
  24. package/esm2022/column-menu/column-list.component.mjs +172 -50
  25. package/esm2022/column-menu/column-menu-autosize-all.component.mjs +79 -0
  26. package/esm2022/column-menu/column-menu-autosize.component.mjs +87 -0
  27. package/esm2022/column-menu/column-menu-chooser.component.mjs +44 -12
  28. package/esm2022/column-menu/column-menu-container.component.mjs +58 -0
  29. package/esm2022/column-menu/column-menu-expandable-item.interface.mjs +5 -0
  30. package/esm2022/column-menu/column-menu-filter.component.mjs +58 -25
  31. package/esm2022/column-menu/column-menu-item-base.mjs +2 -1
  32. package/esm2022/column-menu/column-menu-item.component.mjs +34 -5
  33. package/esm2022/column-menu/column-menu-item.directive.mjs +125 -0
  34. package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
  35. package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
  36. package/esm2022/column-menu/column-menu.component.mjs +264 -67
  37. package/esm2022/column-menu/column-menu.service.mjs +18 -2
  38. package/esm2022/column-menu/utils.mjs +21 -1
  39. package/esm2022/common/error-messages.mjs +15 -0
  40. package/esm2022/common/id.service.mjs +9 -0
  41. package/esm2022/common/provider.service.mjs +7 -3
  42. package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +5 -2
  43. package/esm2022/filtering/cell/date-filter-cell.component.mjs +20 -3
  44. package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +17 -3
  45. package/esm2022/filtering/filter-row.component.mjs +1 -1
  46. package/esm2022/filtering/filter.service.mjs +17 -3
  47. package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +40 -14
  48. package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +47 -17
  49. package/esm2022/filtering/menu/date-filter-menu.component.mjs +27 -7
  50. package/esm2022/filtering/menu/filter-menu-container.component.mjs +83 -31
  51. package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +44 -0
  52. package/esm2022/filtering/menu/filter-menu-host.directive.mjs +6 -1
  53. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +52 -9
  54. package/esm2022/filtering/menu/filter-menu.component.mjs +111 -16
  55. package/esm2022/filtering/menu/menu-tabbing.service.mjs +22 -0
  56. package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +49 -35
  57. package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +37 -7
  58. package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +13 -4
  59. package/esm2022/filtering/menu/string-filter-menu.component.mjs +27 -8
  60. package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +2 -2
  61. package/esm2022/filtering/operators/after-filter-operator.component.mjs +2 -2
  62. package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +2 -2
  63. package/esm2022/filtering/operators/before-filter-operator.component.mjs +2 -2
  64. package/esm2022/filtering/operators/contains-filter-operator.component.mjs +1 -1
  65. package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
  66. package/esm2022/filtering/operators/eq-filter-operator.component.mjs +1 -1
  67. package/esm2022/filtering/operators/filter-operator.base.mjs +18 -18
  68. package/esm2022/filtering/operators/gt-filter-operator.component.mjs +1 -1
  69. package/esm2022/filtering/operators/gte-filter-operator.component.mjs +1 -1
  70. package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
  71. package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
  72. package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
  73. package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +1 -1
  74. package/esm2022/filtering/operators/lt-filter-operator.component.mjs +1 -1
  75. package/esm2022/filtering/operators/lte-filter-operator.component.mjs +1 -1
  76. package/esm2022/filtering/operators/neq-filter-operator.component.mjs +1 -1
  77. package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
  78. package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
  79. package/esm2022/localization/messages.mjs +97 -3
  80. package/esm2022/navigation/logical-cell.directive.mjs +4 -1
  81. package/esm2022/navigation/navigation.service.mjs +4 -4
  82. package/esm2022/package-metadata.mjs +2 -2
  83. package/esm2022/rendering/header/header.component.mjs +336 -178
  84. package/esm2022/rendering/table-body.component.mjs +1 -1
  85. package/esm2022/selection/selection.service.mjs +2 -2
  86. package/esm2022/treelist.component.mjs +73 -9
  87. package/fesm2022/progress-kendo-angular-treelist.mjs +2231 -628
  88. package/filtering/cell/date-filter-cell.component.d.ts +4 -0
  89. package/filtering/cell/numeric-filter-cell.component.d.ts +4 -0
  90. package/filtering/filter.service.d.ts +10 -1
  91. package/filtering/menu/boolean-filter-menu.component.d.ts +19 -7
  92. package/filtering/menu/date-filter-menu-input.component.d.ts +10 -3
  93. package/filtering/menu/date-filter-menu.component.d.ts +7 -1
  94. package/filtering/menu/filter-menu-container.component.d.ts +23 -6
  95. package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +19 -0
  96. package/filtering/menu/filter-menu-host.directive.d.ts +3 -1
  97. package/filtering/menu/filter-menu-input-wrapper.component.d.ts +12 -2
  98. package/filtering/menu/filter-menu.component.d.ts +30 -7
  99. package/filtering/menu/menu-tabbing.service.d.ts +18 -0
  100. package/filtering/menu/numeric-filter-menu-input.component.d.ts +12 -26
  101. package/filtering/menu/numeric-filter-menu.component.d.ts +13 -1
  102. package/filtering/menu/string-filter-menu-input.component.d.ts +4 -1
  103. package/filtering/menu/string-filter-menu.component.d.ts +7 -1
  104. package/index.d.ts +1 -0
  105. package/localization/messages.d.ts +79 -3
  106. package/navigation/logical-cell.directive.d.ts +2 -1
  107. package/package.json +18 -18
  108. package/rendering/header/header.component.d.ts +43 -10
  109. package/schematics/ngAdd/index.js +3 -3
@@ -0,0 +1,21 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { ElementRef } from '@angular/core';
6
+ import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * @hidden
10
+ */
11
+ export declare class ColumnMenuChooserItemCheckedDirective {
12
+ host: ElementRef;
13
+ kendoColumnMenuChooserItemChecked: boolean;
14
+ checkbox: CheckBoxComponent;
15
+ private checkedChangeSub;
16
+ constructor(host: ElementRef);
17
+ ngAfterViewInit(): void;
18
+ ngOnDestroy(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuChooserItemCheckedDirective, never>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnMenuChooserItemCheckedDirective, "[kendoColumnMenuChooserItemChecked]", never, { "kendoColumnMenuChooserItemChecked": { "alias": "kendoColumnMenuChooserItemChecked"; "required": false; }; }, {}, ["checkbox"], never, true, never>;
21
+ }
@@ -10,8 +10,9 @@ import { Button } from '@progress/kendo-angular-buttons';
10
10
  import { ColumnInfoService } from '../common/column-info.service';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
- * Represents the component for selecting columns in the TreeList. To enable the user to show or hide columns,
14
- * add the component inside a [`ToolbarTemplate`]({% slug api_treelist_toolbartemplatedirective %}) directive.
13
+ * Represents the component for selecting columns in the TreeList.
14
+ * To show and hide the columns without including the column chooser item in the [Column Menu](slug:columnmenu_treelist),
15
+ * add the component inside the [`ToolbarTemplate`]({% slug api_treelist_toolbartemplatedirective %}) directive.
15
16
  *
16
17
  * @example
17
18
  * ```html
@@ -31,18 +32,24 @@ export declare class ColumnChooserComponent implements OnDestroy {
31
32
  private changeDetector;
32
33
  /**
33
34
  * Specifies if the changes in the visibility of the column will be immediately applied.
35
+ *
34
36
  * @default false
35
37
  */
36
38
  autoSync: boolean;
37
39
  /**
38
40
  * Specifies if all columns can be hidden.
41
+ *
39
42
  * @default true
40
43
  */
41
44
  allowHideAll: boolean;
45
+ private anchor;
46
+ private columnList;
42
47
  get columns(): any[];
43
48
  columnsIcon: SVGIcon;
44
- private popupRef;
49
+ popupRef: any;
50
+ popupId: string;
45
51
  private closeClick;
52
+ private escapeListener;
46
53
  constructor(localization: LocalizationService, columnInfoService: ColumnInfoService, popupService: PopupService, ngZone: NgZone, renderer: Renderer2, changeDetector: ChangeDetectorRef);
47
54
  ngOnDestroy(): void;
48
55
  /**
@@ -57,6 +64,10 @@ export declare class ColumnChooserComponent implements OnDestroy {
57
64
  * @hidden
58
65
  */
59
66
  onChange(changed: any[]): void;
67
+ /**
68
+ * @hidden
69
+ */
70
+ onShiftTab(e: Event): void;
60
71
  private close;
61
72
  private detachClose;
62
73
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnChooserComponent, never>;
@@ -0,0 +1,22 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Renderer2 } from '@angular/core';
6
+ import { ColumnMenuChooserItemCheckedDirective } from './column-chooser-item-checked.directive';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * @hidden
10
+ */
11
+ export declare class ColumnListKeyboardNavigation {
12
+ private renderer;
13
+ items: ColumnMenuChooserItemCheckedDirective[];
14
+ activeIndex: number;
15
+ constructor(renderer: Renderer2);
16
+ next(): void;
17
+ prev(): void;
18
+ toggle(index: number, active: boolean): void;
19
+ toggleCheckedState(): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnListKeyboardNavigation, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<ColumnListKeyboardNavigation>;
22
+ }
@@ -2,7 +2,9 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ElementRef, NgZone, Renderer2, EventEmitter, OnInit, OnDestroy } from '@angular/core';
5
+ import { ElementRef, NgZone, Renderer2, EventEmitter, OnInit, OnDestroy, SimpleChanges } from '@angular/core';
6
+ import { ColumnMenuService } from './column-menu.service';
7
+ import { ColumnListKeyboardNavigation } from './column-list-kb-nav.service';
6
8
  import * as i0 from "@angular/core";
7
9
  /**
8
10
  * @hidden
@@ -11,17 +13,25 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
11
13
  private element;
12
14
  private ngZone;
13
15
  private renderer;
14
- get className(): boolean;
16
+ private listNavigationService;
17
+ className: boolean;
15
18
  reset: EventEmitter<any>;
16
19
  apply: EventEmitter<any>;
17
20
  columnChange: EventEmitter<any>;
18
21
  set columns(value: any[]);
19
22
  get columns(): any[];
20
23
  autoSync: boolean;
24
+ ariaLabel: string;
21
25
  allowHideAll: boolean;
22
26
  applyText: string;
23
27
  resetText: string;
24
28
  actionsClass: string;
29
+ isLast: boolean;
30
+ isExpanded: boolean;
31
+ service: ColumnMenuService;
32
+ resetButton: ElementRef;
33
+ private applyButton;
34
+ private options;
25
35
  private checkboxes;
26
36
  private hasLocked;
27
37
  private hasVisibleLocked;
@@ -31,15 +41,20 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
31
41
  private _columns;
32
42
  private allColumns;
33
43
  private domSubscriptions;
34
- constructor(element: ElementRef, ngZone: NgZone, renderer: Renderer2);
35
- isDisabled(column: any): boolean;
44
+ constructor(element: ElementRef, ngZone: NgZone, renderer: Renderer2, listNavigationService: ColumnListKeyboardNavigation);
36
45
  ngOnInit(): void;
46
+ ngAfterViewInit(): void;
47
+ ngOnChanges(changes: SimpleChanges): void;
37
48
  ngOnDestroy(): void;
49
+ isDisabled(column: any): boolean;
38
50
  cancelChanges(): void;
39
51
  applyChanges(): void;
52
+ onTab(e: Event): void;
53
+ onKeydown: (e: KeyboardEvent) => void;
40
54
  private updateDisabled;
41
55
  private updateColumnState;
56
+ private setDisabledState;
42
57
  private handleCheckBoxClick;
43
58
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnListComponent, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<ColumnListComponent, "kendo-treelist-columnlist", never, { "columns": { "alias": "columns"; "required": false; }; "autoSync": { "alias": "autoSync"; "required": false; }; "allowHideAll": { "alias": "allowHideAll"; "required": false; }; "applyText": { "alias": "applyText"; "required": false; }; "resetText": { "alias": "resetText"; "required": false; }; "actionsClass": { "alias": "actionsClass"; "required": false; }; }, { "reset": "reset"; "apply": "apply"; "columnChange": "columnChange"; }, never, never, true, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnListComponent, "kendo-treelist-columnlist", never, { "columns": { "alias": "columns"; "required": false; }; "autoSync": { "alias": "autoSync"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "allowHideAll": { "alias": "allowHideAll"; "required": false; }; "applyText": { "alias": "applyText"; "required": false; }; "resetText": { "alias": "resetText"; "required": false; }; "actionsClass": { "alias": "actionsClass"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "service": { "alias": "service"; "required": false; }; }, { "reset": "reset"; "apply": "apply"; "columnChange": "columnChange"; }, never, never, true, never>;
45
60
  }
@@ -0,0 +1,39 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { OnInit } from '@angular/core';
6
+ import { SVGIcon } from '@progress/kendo-svg-icons';
7
+ import { ContextService } from '../common/provider.service';
8
+ import { ColumnMenuItemBase } from './column-menu-item-base';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * Represents the column-menu item for resizing all columns to the minimum possible width so that they fit the widest header or cell content without wrapping.
12
+ * [See example](slug:columnmenu_treelist#toc-autosize-all-columns-item).
13
+ *
14
+ * The component can be placed inside a [ColumnMenuTemplate]({% slug api_treelist_columnmenutemplatedirective %}) directive.
15
+ * To register the component as a known column menu item, set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by
16
+ * the template to the `service` input of the `kendo-treelist-columnmenu-autosize-all-columns` component. [See example](slug:columnmenu_treelist#toc-customizing-the-content).
17
+ *
18
+ * @example
19
+ * ```html
20
+ * <kendo-treelist [columnMenu]="true" ...>
21
+ * <ng-template kendoTreeListColumnMenuTemplate let-service="service">
22
+ * <kendo-treelist-columnmenu-autosize-all-columns [service]="service">
23
+ * </kendo-treelist-columnmenu-autosize-all-columns>
24
+ * </ng-template>
25
+ * </kendo-treelist>
26
+ * ```
27
+ */
28
+ export declare class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase implements OnInit {
29
+ ctx: ContextService;
30
+ displayInlineFlexIcon: SVGIcon;
31
+ constructor(ctx: ContextService);
32
+ ngOnInit(): void;
33
+ /**
34
+ * Resizes all columns to the minimum possible width so that they fit the widest header or cell content without wrapping.
35
+ */
36
+ autoSizeAllColumns(): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuAutoSizeAllColumnsComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuAutoSizeAllColumnsComponent, "kendo-treelist-columnmenu-autosize-all-columns", never, {}, {}, never, never, true, never>;
39
+ }
@@ -0,0 +1,43 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { OnInit } from '@angular/core';
6
+ import { SVGIcon } from '@progress/kendo-svg-icons';
7
+ import { ContextService } from '../common/provider.service';
8
+ import { ColumnMenuItemBase } from './column-menu-item-base';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * Represents the column-menu item for resizing the specified column to the minimum possible width so that it fits the header or cell content without wrapping.
12
+ * The component can be placed inside a [ColumnMenuTemplate]({% slug api_treelist_columnmenutemplatedirective %}) directive.
13
+ * [See example](slug:columnmenu_treelist#toc-customizing-the-content).
14
+ *
15
+ * You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) and `column` that are passed by
16
+ * the template to the `service` and `column` input of the `kendo-treelist-columnmenu-autosize-column` component.
17
+ *
18
+ * @example
19
+ * ```html
20
+ * <kendo-treelist [columnMenu]="true" ...>
21
+ * <ng-template kendoTreeListColumnMenuTemplate let-service="service" let-column="column">
22
+ * <kendo-treelist-columnmenu-autosize-column [column]="column" [service]="service">
23
+ * </kendo-treelist-columnmenu-autosize-column>
24
+ * </ng-template>
25
+ * </kendo-treelist>
26
+ * ```
27
+ */
28
+ export declare class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase implements OnInit {
29
+ ctx: ContextService;
30
+ /**
31
+ * The TreeList column instance which will be resized through the auto size column option.
32
+ */
33
+ column: any;
34
+ maxWidthIcon: SVGIcon;
35
+ constructor(ctx: ContextService);
36
+ ngOnInit(): void;
37
+ /**
38
+ * Resizes a specified column to the minimum possible width so that it fits the widest header or cell content without wrapping.
39
+ */
40
+ autoSizeColumn(): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuAutoSizeColumnComponent, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuAutoSizeColumnComponent, "kendo-treelist-columnmenu-autosize-column", never, { "column": { "alias": "column"; "required": false; }; }, {}, never, never, true, never>;
43
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { EventEmitter, ChangeDetectorRef } from '@angular/core';
5
+ import { EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
6
6
  import { ColumnInfoService } from '../common/column-info.service';
7
7
  import { LocalizationService } from "@progress/kendo-angular-l10n";
8
8
  import { ColumnMenuItemBase } from './column-menu-item-base';
@@ -15,12 +15,12 @@ import * as i0 from "@angular/core";
15
15
  *
16
16
  * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})
17
17
  * that is passed by the template to the service input of the `kendo-treelist-columnmenu-chooser` component.
18
- *
19
18
  */
20
19
  export declare class ColumnMenuChooserComponent extends ColumnMenuItemBase {
21
20
  localization: LocalizationService;
22
21
  private columnInfoService;
23
22
  private changeDetector;
23
+ private hostElement;
24
24
  /**
25
25
  * Fires when the content is expanded.
26
26
  */
@@ -34,17 +34,29 @@ export declare class ColumnMenuChooserComponent extends ColumnMenuItemBase {
34
34
  * @default false
35
35
  */
36
36
  expanded: boolean;
37
+ /**
38
+ * @hidden
39
+ */
40
+ isLast: boolean;
37
41
  /**
38
42
  * @hidden
39
43
  */
40
44
  actionsClass: string;
41
45
  get columns(): any;
42
46
  columnsIcon: SVGIcon;
43
- constructor(localization: LocalizationService, columnInfoService: ColumnInfoService, changeDetector: ChangeDetectorRef);
47
+ constructor(localization: LocalizationService, columnInfoService: ColumnInfoService, changeDetector: ChangeDetectorRef, hostElement: ElementRef);
44
48
  /**
45
49
  * @hidden
46
50
  */
47
51
  onApply(changed: any[]): void;
52
+ /**
53
+ * @hidden
54
+ */
55
+ onCollapse(): void;
56
+ /**
57
+ * @hidden
58
+ */
59
+ onExpand(): void;
48
60
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuChooserComponent, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuChooserComponent, "kendo-treelist-columnmenu-chooser", never, { "expanded": { "alias": "expanded"; "required": false; }; }, { "expand": "expand"; "collapse": "collapse"; }, never, never, true, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuChooserComponent, "kendo-treelist-columnmenu-chooser", never, { "expanded": { "alias": "expanded"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; }, { "expand": "expand"; "collapse": "collapse"; }, never, never, true, never>;
50
62
  }
@@ -0,0 +1,21 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { AfterViewInit, NgZone, QueryList } from '@angular/core';
6
+ import { ColumnMenuService } from './column-menu.service';
7
+ import { ColumnMenuItemDirective } from './column-menu-item.directive';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * @hidden
11
+ */
12
+ export declare class ColumnMenuContainerComponent implements AfterViewInit {
13
+ private service;
14
+ private ngZone;
15
+ columnMenuItems: QueryList<ColumnMenuItemDirective>;
16
+ templateMenuItems: any[];
17
+ constructor(service: ColumnMenuService, ngZone: NgZone);
18
+ ngAfterViewInit(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuContainerComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuContainerComponent, "kendo-treelist-columnmenu-container", never, {}, {}, ["columnMenuItems"], ["*"], true, never>;
21
+ }
@@ -0,0 +1,14 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ /**
6
+ * The configuration option used to determine whether a column menu item is initially expanded.
7
+ * Can be set to the `columnChooser` and `filter` [ColumnMenuSettings]({% slug api_grid_columnmenusettings %}) options.
8
+ */
9
+ export interface ExpandableColumnMenuItem {
10
+ /**
11
+ * Used to determine whether an expandable column menu item is initially expanded.
12
+ */
13
+ expanded: boolean;
14
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { EventEmitter } from '@angular/core';
5
+ import { EventEmitter, ElementRef } from '@angular/core';
6
6
  import { LocalizationService } from "@progress/kendo-angular-l10n";
7
7
  import { ColumnMenuItemBase } from './column-menu-item-base';
8
8
  import { SVGIcon } from '@progress/kendo-svg-icons';
@@ -18,6 +18,7 @@ import * as i0 from "@angular/core";
18
18
  */
19
19
  export declare class ColumnMenuFilterComponent extends ColumnMenuItemBase {
20
20
  localization: LocalizationService;
21
+ private hostElement;
21
22
  /**
22
23
  * Fires when the content is expanded.
23
24
  */
@@ -31,12 +32,24 @@ export declare class ColumnMenuFilterComponent extends ColumnMenuItemBase {
31
32
  * @default false
32
33
  */
33
34
  expanded: boolean;
35
+ /**
36
+ * @hidden
37
+ */
38
+ isLast: boolean;
34
39
  /**
35
40
  * @hidden
36
41
  */
37
42
  actionsClass: string;
38
43
  filterIcon: SVGIcon;
39
- constructor(localization: LocalizationService);
44
+ constructor(localization: LocalizationService, hostElement: ElementRef);
45
+ /**
46
+ * @hidden
47
+ */
48
+ onCollapse(): void;
49
+ /**
50
+ * @hidden
51
+ */
52
+ onExpand(): void;
40
53
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuFilterComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuFilterComponent, "kendo-treelist-columnmenu-filter", never, { "expanded": { "alias": "expanded"; "required": false; }; }, { "expand": "expand"; "collapse": "collapse"; }, never, never, true, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuFilterComponent, "kendo-treelist-columnmenu-filter", never, { "expanded": { "alias": "expanded"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; }, { "expand": "expand"; "collapse": "collapse"; }, never, never, true, never>;
42
55
  }
@@ -2,9 +2,10 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { EventEmitter, OnChanges } from '@angular/core';
5
+ import { EventEmitter, OnChanges, AfterViewInit } from '@angular/core';
6
6
  import { SVGIcon } from '@progress/kendo-svg-icons';
7
7
  import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
8
+ import { ColumnMenuService } from './column-menu.service';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * Represents an item that can be placed inside a
@@ -19,7 +20,7 @@ import * as i0 from "@angular/core";
19
20
  * </kendo-treelist>
20
21
  * ```
21
22
  */
22
- export declare class ColumnMenuItemComponent implements OnChanges {
23
+ export declare class ColumnMenuItemComponent implements AfterViewInit, OnChanges {
23
24
  /**
24
25
  * Fires when the item is clicked.
25
26
  */
@@ -58,12 +59,19 @@ export declare class ColumnMenuItemComponent implements OnChanges {
58
59
  * Specifies if the item is expanded.
59
60
  */
60
61
  expanded: boolean;
62
+ /**
63
+ * Represents the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) class.
64
+ * Required to include the item in the column menu keyboard navigation sequence.
65
+ */
66
+ service: ColumnMenuService;
61
67
  contentTemplate: ColumnMenuItemContentTemplateDirective;
62
68
  contentState: string;
69
+ contentId: string;
63
70
  chevronUpIcon: SVGIcon;
64
71
  chevronDownIcon: SVGIcon;
65
72
  get expandedIcon(): string;
66
73
  get expandedSvgIcon(): SVGIcon;
74
+ ngAfterViewInit(): void;
67
75
  ngOnChanges(changes: any): void;
68
76
  /**
69
77
  * @hidden
@@ -71,5 +79,5 @@ export declare class ColumnMenuItemComponent implements OnChanges {
71
79
  onClick(e: any): void;
72
80
  private updateContentState;
73
81
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuItemComponent, never>;
74
- static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemComponent, "kendo-treelist-columnmenu-item", never, { "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, { "itemClick": "itemClick"; "expand": "expand"; "collapse": "collapse"; }, ["contentTemplate"], never, true, never>;
82
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuItemComponent, "kendo-treelist-columnmenu-item", never, { "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "text": { "alias": "text"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "service": { "alias": "service"; "required": false; }; }, { "itemClick": "itemClick"; "expand": "expand"; "collapse": "collapse"; }, ["contentTemplate"], never, true, never>;
75
83
  }
@@ -0,0 +1,45 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { ElementRef, NgZone, Renderer2 } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ export declare class ColumnMenuItemDirective {
8
+ hostElement: ElementRef;
9
+ private renderer;
10
+ private ngZone;
11
+ /**
12
+ * The reference to the TreeList column menu item. Required to include the item in the built-in keyboard navigation.
13
+ */
14
+ menuItemComponent: any;
15
+ firstFocusableElement: HTMLElement;
16
+ lastFocusableElement: HTMLElement;
17
+ /**
18
+ * @hidden
19
+ */
20
+ set isFirst(value: boolean);
21
+ /**
22
+ * @hidden
23
+ */
24
+ get isFirst(): boolean;
25
+ /**
26
+ * @hidden
27
+ */
28
+ set isLast(value: boolean);
29
+ /**
30
+ * @hidden
31
+ */
32
+ get isLast(): boolean;
33
+ private _isFirst;
34
+ private _isLast;
35
+ private columnMenuItems;
36
+ private subs;
37
+ constructor(hostElement: ElementRef, renderer: Renderer2, ngZone: NgZone);
38
+ ngAfterViewInit(): void;
39
+ ngOnDestroy(): void;
40
+ private onTab;
41
+ private getLastColumnMenuItem;
42
+ private isExpandableItem;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuItemDirective, never>;
44
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnMenuItemDirective, "[kendoTreeListColumnMenuItem]", never, { "menuItemComponent": { "alias": "kendoTreeListColumnMenuItem"; "required": false; }; }, {}, never, never, true, never>;
45
+ }
@@ -2,6 +2,7 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ import { ExpandableColumnMenuItem } from "./column-menu-expandable-item.interface";
5
6
  /**
6
7
  * The settings of the column menu in the TreeList component.
7
8
  *
@@ -23,14 +24,22 @@ export interface ColumnMenuSettings {
23
24
  * Specifies if the columns can be filtered in the column menu.
24
25
  * If [filtering]({% slug api_treelist_treelistcomponent %}#toc-filterable) is enabled, defaults to `true`.
25
26
  */
26
- filter?: boolean;
27
+ filter?: boolean | ExpandableColumnMenuItem;
27
28
  /**
28
29
  * Specifies if the item for column selection will be displayed in the column menu.
29
30
  */
30
- columnChooser?: boolean;
31
+ columnChooser?: boolean | ExpandableColumnMenuItem;
31
32
  /**
32
33
  * Specifies if the columns can be locked and unlocked from the column menu.
33
34
  * This option follows the prerequisites and limitations of the [locked columns]({% slug locked_columns_treelist %}).
34
35
  */
35
36
  lock?: boolean;
37
+ /**
38
+ * Applies the minimum possible width for the specified column, so that the whole text fits without wrapping.
39
+ */
40
+ autoSizeColumn?: boolean;
41
+ /**
42
+ * Adjusts the width of all columns to fit their entire content, including headers, without wrapping.
43
+ */
44
+ autoSizeAllColumns?: boolean;
36
45
  }
@@ -2,21 +2,29 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { TemplateRef, OnChanges, OnDestroy, ChangeDetectorRef } from '@angular/core';
6
- import { LocalizationService } from "@progress/kendo-angular-l10n";
5
+ import { TemplateRef, OnChanges, OnDestroy, ChangeDetectorRef, ElementRef, Renderer2, AfterViewInit } from '@angular/core';
7
6
  import { SVGIcon } from '@progress/kendo-svg-icons';
8
7
  import { SinglePopupService } from '../common/single-popup.service';
9
8
  import { ColumnMenuService } from './column-menu.service';
10
9
  import { ColumnMenuSettings } from './column-menu-settings.interface';
10
+ import { NavigationService } from '../navigation/navigation.service';
11
+ import { IdService } from '../common/id.service';
12
+ import { ContextService } from '../common/provider.service';
11
13
  import * as i0 from "@angular/core";
12
14
  /**
13
15
  * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
14
16
  */
15
- export declare class ColumnMenuComponent implements OnChanges, OnDestroy {
17
+ export declare class ColumnMenuComponent implements AfterViewInit, OnChanges, OnDestroy {
18
+ protected navigationService: NavigationService;
16
19
  protected popupService: SinglePopupService;
17
- localization: LocalizationService;
20
+ ctx: ContextService;
18
21
  service: ColumnMenuService;
19
22
  private cdr;
23
+ private renderer;
24
+ private idService;
25
+ anchor: ElementRef;
26
+ template: TemplateRef<any>;
27
+ defaultTemplate: TemplateRef<any>;
20
28
  /**
21
29
  * @hidden
22
30
  */
@@ -47,6 +55,11 @@ export declare class ColumnMenuComponent implements OnChanges, OnDestroy {
47
55
  * @hidden
48
56
  */
49
57
  columnMenuTemplate: TemplateRef<any>;
58
+ /**
59
+ * @hidden
60
+ */
61
+ tabIndex: string;
62
+ moreVerticalIcon: SVGIcon;
50
63
  /**
51
64
  * @hidden
52
65
  */
@@ -55,10 +68,13 @@ export declare class ColumnMenuComponent implements OnChanges, OnDestroy {
55
68
  * @hidden
56
69
  */
57
70
  expandedColumns: boolean;
58
- moreVerticalIcon: SVGIcon;
59
- private popupRef;
71
+ popupRef: any;
60
72
  private closeSubscription;
61
- constructor(popupService: SinglePopupService, localization: LocalizationService, service: ColumnMenuService, cdr: ChangeDetectorRef);
73
+ private popupSubs;
74
+ constructor(navigationService: NavigationService, popupService: SinglePopupService, ctx: ContextService, service: ColumnMenuService, cdr: ChangeDetectorRef, renderer: Renderer2, idService: IdService);
75
+ ngAfterViewInit(): void;
76
+ ngOnChanges(): void;
77
+ ngOnDestroy(): void;
62
78
  /**
63
79
  * @hidden
64
80
  */
@@ -79,24 +95,33 @@ export declare class ColumnMenuComponent implements OnChanges, OnDestroy {
79
95
  * @hidden
80
96
  */
81
97
  get hasLock(): boolean;
82
- ngOnChanges(): void;
83
- ngOnDestroy(): void;
84
98
  /**
85
99
  * @hidden
86
100
  */
87
- toggle(e: any, anchor: any, template: any): void;
101
+ get hasAutoSizeColumn(): boolean;
102
+ /**
103
+ * @hidden
104
+ */
105
+ get hasAutoSizeAllColumns(): boolean;
88
106
  /**
89
107
  * @hidden
90
108
  */
91
- close(): void;
109
+ get isNavigable(): boolean;
110
+ /**
111
+ * @hidden
112
+ */
113
+ toggle(e: any, anchor: any, template: any): void;
92
114
  /**
93
115
  * @hidden
94
116
  */
95
- onColumnsExpand(): void;
117
+ close(triggerFocus?: boolean): void;
96
118
  /**
97
119
  * @hidden
98
120
  */
99
- onFilterExpand(): void;
100
- static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuComponent, never>;
101
- static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuComponent, "kendo-treelist-column-menu", never, { "standalone": { "alias": "standalone"; "required": false; }; "column": { "alias": "column"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "columnMenuTemplate": { "alias": "columnMenuTemplate"; "required": false; }; }, {}, never, never, true, never>;
121
+ get columnMenuTitle(): string;
122
+ private getExpandedState;
123
+ private updateAria;
124
+ private focusRoot;
125
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnMenuComponent, [null, null, null, null, null, null, { optional: true; }]>;
126
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnMenuComponent, "kendo-treelist-column-menu", never, { "standalone": { "alias": "standalone"; "required": false; }; "column": { "alias": "column"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "columnMenuTemplate": { "alias": "columnMenuTemplate"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
102
127
  }
@@ -3,6 +3,8 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { EventEmitter } from '@angular/core';
6
+ import { MenuTabbingService } from '../filtering/menu/menu-tabbing.service';
7
+ import type { ColumnMenuContainerComponent } from './column-menu-container.component';
6
8
  import * as i0 from "@angular/core";
7
9
  /**
8
10
  * Represents the service that is passed to the
@@ -21,6 +23,10 @@ import * as i0 from "@angular/core";
21
23
  * ```
22
24
  */
23
25
  export declare class ColumnMenuService {
26
+ /**
27
+ * @hidden
28
+ */
29
+ menuTabbingService: MenuTabbingService;
24
30
  /**
25
31
  * @hidden
26
32
  */
@@ -41,6 +47,14 @@ export declare class ColumnMenuService {
41
47
  * @hidden
42
48
  */
43
49
  sortable: any;
50
+ /**
51
+ * @hidden
52
+ */
53
+ columnMenuContainer: ColumnMenuContainerComponent;
54
+ /**
55
+ * @hidden
56
+ */
57
+ constructor(menuTabbingService?: MenuTabbingService);
44
58
  /**
45
59
  * Closes the column menu.
46
60
  */