@progress/kendo-angular-grid 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.
- package/adaptiveness/adaptive-mode.d.ts +12 -0
- package/adaptiveness/adaptive-renderer.component.d.ts +84 -0
- package/column-menu/column-chooser.component.d.ts +4 -0
- package/column-menu/column-list.component.d.ts +9 -3
- package/column-menu/column-menu-item.component.d.ts +38 -2
- package/column-menu/column-menu-item.directive.d.ts +5 -2
- package/column-menu/column-menu.component.d.ts +4 -2
- package/columns/column-base.d.ts +5 -0
- package/columns/span-column.component.d.ts +2 -2
- package/common/adaptiveness.service.d.ts +50 -0
- package/common/single-popup.service.d.ts +3 -1
- package/common/toolbar-tool-base.directive.d.ts +26 -0
- package/directives.d.ts +12 -5
- package/dragdrop/drag-hint.service.d.ts +3 -2
- package/editing/add-command-tool.directive.d.ts +7 -6
- package/editing/cancel-command-tool.directive.d.ts +38 -0
- package/editing/edit-command-tool.directive.d.ts +38 -0
- package/editing/edit.service.d.ts +1 -1
- package/editing/remove-command-tool.directive.d.ts +39 -0
- package/editing/save-command-tool.directive.d.ts +38 -0
- package/editing/toolbar-editing-tool-base.directive.d.ts +29 -0
- package/editing-directives/external-editing.directive.d.ts +3 -1
- package/esm2022/adaptiveness/adaptive-mode.mjs +5 -0
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1106 -0
- package/esm2022/column-menu/column-chooser.component.mjs +13 -11
- package/esm2022/column-menu/column-list.component.mjs +43 -8
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-container.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +106 -11
- package/esm2022/column-menu/column-menu-item.directive.mjs +14 -5
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
- package/esm2022/column-menu/column-menu.component.mjs +68 -44
- package/esm2022/column-resizing/column-handle.directive.mjs +2 -2
- package/esm2022/columns/column-base.mjs +9 -0
- package/esm2022/columns/columns-container.mjs +1 -1
- package/esm2022/columns/span-column.component.mjs +9 -9
- package/esm2022/common/adaptiveness.service.mjs +72 -0
- package/esm2022/common/single-popup.service.mjs +9 -3
- package/esm2022/common/toolbar-tool-base.directive.mjs +81 -0
- package/esm2022/directives.mjs +18 -3
- package/esm2022/dragdrop/drag-hint.service.mjs +7 -4
- package/esm2022/editing/add-command-tool.directive.mjs +12 -15
- package/esm2022/editing/cancel-command-tool.directive.mjs +64 -0
- package/esm2022/editing/edit-command-tool.directive.mjs +59 -0
- package/esm2022/editing/form/form-formfield.component.mjs +1 -1
- package/esm2022/editing/remove-command-tool.directive.mjs +60 -0
- package/esm2022/editing/remove-command.directive.mjs +1 -0
- package/esm2022/editing/save-command-tool.directive.mjs +64 -0
- package/esm2022/editing/toolbar-editing-tool-base.directive.mjs +89 -0
- package/esm2022/editing-directives/external-editing.directive.mjs +28 -14
- package/esm2022/excel/excel-command-tool.directive.mjs +12 -17
- package/esm2022/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/date-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/filter-cell-operators.component.mjs +1 -1
- package/esm2022/filtering/filter-input.directive.mjs +14 -2
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +2 -2
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +3 -1
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +5 -1
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +21 -10
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +25 -5
- package/esm2022/filtering/menu/filter-menu.component.mjs +44 -29
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +5 -1
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +5 -1
- package/esm2022/grid.component.mjs +291 -55
- package/esm2022/grid.module.mjs +114 -101
- package/esm2022/index.mjs +10 -1
- package/esm2022/localization/messages.mjs +104 -2
- package/esm2022/navigation/navigation.service.mjs +1 -1
- package/esm2022/navigation/toolbar-tool-name.mjs +17 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdf/pdf-command-tool.directive.mjs +12 -15
- package/esm2022/rendering/cell.component.mjs +4 -4
- package/esm2022/rendering/header/header.component.mjs +1 -1
- package/esm2022/rendering/list.component.mjs +1 -1
- package/esm2022/rendering/table-body.component.mjs +11 -3
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +201 -0
- package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +49 -33
- package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +28 -8
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +26 -4
- package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +33 -17
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +24 -8
- package/esm2022/row-reordering/row-reorder.service.mjs +15 -0
- package/esm2022/selection/selection.service.mjs +11 -0
- package/esm2022/state-management/grid-state.models.mjs +26 -0
- package/esm2022/state-management/redo-command-tool.mjs +66 -0
- package/esm2022/state-management/undo-command-tool.mjs +66 -0
- package/esm2022/state-management/undo-redo.directive.mjs +178 -0
- package/esm2022/state-management/undo-redo.service.mjs +22 -0
- package/esm2022/state-management/undo-redo.stack.mjs +232 -0
- package/esm2022/utils.mjs +13 -13
- package/excel/excel-command-tool.directive.d.ts +5 -5
- package/fesm2022/progress-kendo-angular-grid.mjs +4066 -1351
- package/filtering/filter-input.directive.d.ts +1 -0
- package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/filter-menu-container.component.d.ts +14 -4
- package/filtering/menu/filter-menu-input-wrapper.component.d.ts +8 -3
- package/filtering/menu/filter-menu.component.d.ts +6 -3
- package/grid.component.d.ts +71 -21
- package/grid.module.d.ts +107 -100
- package/index.d.ts +9 -1
- package/localization/messages.d.ts +70 -2
- package/navigation/toolbar-tool-name.d.ts +17 -0
- package/package.json +21 -20
- package/pdf/pdf-command-tool.directive.d.ts +6 -5
- package/rendering/cell.component.d.ts +1 -1
- package/{column-menu → rendering/toolbar/tools}/column-chooser-tool.directive.d.ts +17 -6
- package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +4 -1
- package/rendering/toolbar/tools/filter-tool-wrapper.component.d.ts +6 -5
- package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +4 -1
- package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +4 -1
- package/rendering/toolbar/tools/sort-toolbar-tool.component.d.ts +5 -1
- package/row-reordering/row-reorder.service.d.ts +2 -0
- package/schematics/ngAdd/index.js +4 -4
- package/selection/selection.service.d.ts +1 -0
- package/state-management/grid-state.models.d.ts +58 -0
- package/state-management/redo-command-tool.d.ts +38 -0
- package/state-management/undo-command-tool.d.ts +38 -0
- package/state-management/undo-redo.directive.d.ts +51 -0
- package/state-management/undo-redo.service.d.ts +19 -0
- package/state-management/undo-redo.stack.d.ts +104 -0
- package/utils.d.ts +11 -5
- package/esm2022/column-menu/column-chooser-tool.directive.mjs +0 -172
|
@@ -12,10 +12,12 @@ import { ColumnMenuItemComponent } from '../../../column-menu/column-menu-item.c
|
|
|
12
12
|
import { ColumnMenuItemContentTemplateDirective } from '../../../column-menu/column-menu-item-content-template.directive';
|
|
13
13
|
import { ColumnInfoService } from '../../../common/column-info.service';
|
|
14
14
|
import { cloneFilters } from '../../../common/filter-descriptor-differ';
|
|
15
|
+
import { AdaptiveGridService } from '../../../common/adaptiveness.service';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "../../../filtering/filter.service";
|
|
17
18
|
import * as i2 from "../../../common/provider.service";
|
|
18
19
|
import * as i3 from "../../../common/column-info.service";
|
|
20
|
+
import * as i4 from "../../../common/adaptiveness.service";
|
|
19
21
|
/**
|
|
20
22
|
* @hidden
|
|
21
23
|
*/
|
|
@@ -24,6 +26,7 @@ export class FilterToolbarToolComponent {
|
|
|
24
26
|
filterService;
|
|
25
27
|
ctx;
|
|
26
28
|
columnInfoService;
|
|
29
|
+
adaptiveGridService;
|
|
27
30
|
filterItems;
|
|
28
31
|
menuItems;
|
|
29
32
|
filterContainers;
|
|
@@ -39,11 +42,12 @@ export class FilterToolbarToolComponent {
|
|
|
39
42
|
columns;
|
|
40
43
|
filter;
|
|
41
44
|
subscriptions;
|
|
42
|
-
constructor(element, filterService, ctx, columnInfoService) {
|
|
45
|
+
constructor(element, filterService, ctx, columnInfoService, adaptiveGridService) {
|
|
43
46
|
this.element = element;
|
|
44
47
|
this.filterService = filterService;
|
|
45
48
|
this.ctx = ctx;
|
|
46
49
|
this.columnInfoService = columnInfoService;
|
|
50
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
47
51
|
}
|
|
48
52
|
ngOnInit() {
|
|
49
53
|
this.columns = this.columnInfoService.leafNamedColumns.filter(column => column?.filterable);
|
|
@@ -60,6 +64,20 @@ export class FilterToolbarToolComponent {
|
|
|
60
64
|
this.subscriptions.unsubscribe();
|
|
61
65
|
}
|
|
62
66
|
}
|
|
67
|
+
navigateView(column) {
|
|
68
|
+
if (this.ctx.grid.isActionSheetExpanded && this.adaptiveGridService.viewType === 'filterToolbarTool') {
|
|
69
|
+
const componentRef = this.ctx.grid.adaptiveRenderer.filterToolbarToolTemplate.createComponent(FilterMenuContainerComponent);
|
|
70
|
+
componentRef.instance.column = this.getColumnComponent(column);
|
|
71
|
+
componentRef.instance.filter = this.filter;
|
|
72
|
+
this.subscriptions.add(componentRef.instance.close.subscribe(() => {
|
|
73
|
+
this.adaptiveGridService.reset();
|
|
74
|
+
}));
|
|
75
|
+
this.adaptiveGridService.filterMenuContainerComponentRef = componentRef;
|
|
76
|
+
this.adaptiveGridService.secondaryView = 'columnFilter';
|
|
77
|
+
this.adaptiveGridService.column = this.getColumnComponent(column);
|
|
78
|
+
this.ctx.grid.adaptiveRenderer.actionSheet.nextView();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
63
81
|
getColumnComponent(column) {
|
|
64
82
|
return column;
|
|
65
83
|
}
|
|
@@ -83,15 +101,17 @@ export class FilterToolbarToolComponent {
|
|
|
83
101
|
menuItem.contentState = 'expanded';
|
|
84
102
|
}
|
|
85
103
|
}
|
|
86
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, deps: [{ token: i0.ElementRef }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i3.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, deps: [{ token: i0.ElementRef }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i3.ColumnInfoService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
105
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterToolbarToolComponent, isStandalone: true, selector: "kendo-filter-toolbar-tool", outputs: { close: "close" }, viewQueries: [{ propertyName: "filterItems", predicate: ["filterItem"], descendants: true, read: ElementRef }, { propertyName: "menuItems", predicate: ["filterItem"], descendants: true }, { propertyName: "filterContainers", predicate: ["filterContainer"], descendants: true }], ngImport: i0, template: `
|
|
88
106
|
<div [style]="hostStyles">
|
|
89
107
|
<kendo-grid-columnmenu-item *ngFor="let column of columns; let i = index"
|
|
90
108
|
class="k-columnmenu-item-wrapper" #filterItem
|
|
91
109
|
role="button"
|
|
92
110
|
tabindex="0"
|
|
111
|
+
[column]="getColumnComponent(column)"
|
|
93
112
|
[text]="column.title || getColumnComponent(column).field"
|
|
94
113
|
(keydown.enter)="toggleItem($event, i)"
|
|
114
|
+
(itemClick)="navigateView(getColumnComponent(column))"
|
|
95
115
|
[expanded]="false">
|
|
96
116
|
<ng-template kendoGridColumnMenuItemContentTemplate>
|
|
97
117
|
<kendo-grid-filter-menu-container
|
|
@@ -105,7 +125,7 @@ export class FilterToolbarToolComponent {
|
|
|
105
125
|
</ng-template>
|
|
106
126
|
</kendo-grid-columnmenu-item>
|
|
107
127
|
</div>
|
|
108
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
128
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
109
129
|
}
|
|
110
130
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, decorators: [{
|
|
111
131
|
type: Component,
|
|
@@ -117,8 +137,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
117
137
|
class="k-columnmenu-item-wrapper" #filterItem
|
|
118
138
|
role="button"
|
|
119
139
|
tabindex="0"
|
|
140
|
+
[column]="getColumnComponent(column)"
|
|
120
141
|
[text]="column.title || getColumnComponent(column).field"
|
|
121
142
|
(keydown.enter)="toggleItem($event, i)"
|
|
143
|
+
(itemClick)="navigateView(getColumnComponent(column))"
|
|
122
144
|
[expanded]="false">
|
|
123
145
|
<ng-template kendoGridColumnMenuItemContentTemplate>
|
|
124
146
|
<kendo-grid-filter-menu-container
|
|
@@ -136,7 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
136
158
|
standalone: true,
|
|
137
159
|
imports: [NgFor, KENDO_BUTTON, FilterMenuContainerComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective]
|
|
138
160
|
}]
|
|
139
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i3.ColumnInfoService }]; }, propDecorators: { filterItems: [{
|
|
161
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i3.ColumnInfoService }, { type: i4.AdaptiveGridService }]; }, propDecorators: { filterItems: [{
|
|
140
162
|
type: ViewChildren,
|
|
141
163
|
args: ['filterItem', { read: ElementRef }]
|
|
142
164
|
}], menuItems: [{
|
|
@@ -13,12 +13,14 @@ import { SortService } from '../../../common/sort.service';
|
|
|
13
13
|
import { closest, isDocumentAvailable, isPresent } from '@progress/kendo-angular-common';
|
|
14
14
|
import { ColumnInfoService } from '../../../common/column-info.service';
|
|
15
15
|
import { take } from 'rxjs/operators';
|
|
16
|
+
import { AdaptiveGridService } from '../../../common/adaptiveness.service';
|
|
16
17
|
import * as i0 from "@angular/core";
|
|
17
18
|
import * as i1 from "@progress/kendo-angular-toolbar";
|
|
18
19
|
import * as i2 from "@progress/kendo-angular-popup";
|
|
19
20
|
import * as i3 from "../../../common/provider.service";
|
|
20
21
|
import * as i4 from "../../../common/sort.service";
|
|
21
22
|
import * as i5 from "../../../common/column-info.service";
|
|
23
|
+
import * as i6 from "../../../common/adaptiveness.service";
|
|
22
24
|
let incrementingId = 0;
|
|
23
25
|
/**
|
|
24
26
|
* Represents the toolbar tool for sorting columns of the Grid.
|
|
@@ -45,12 +47,13 @@ export class SortCommandToolbarDirective {
|
|
|
45
47
|
columnInfoService;
|
|
46
48
|
ngZone;
|
|
47
49
|
renderer;
|
|
50
|
+
adaptiveGridService;
|
|
48
51
|
popupRef;
|
|
49
52
|
nextId = incrementingId++;
|
|
50
53
|
toolSubs = new Subscription();
|
|
51
54
|
popupSubs;
|
|
52
55
|
removeClickListener;
|
|
53
|
-
constructor(host, popupService, ctx, sortService, columnInfoService, ngZone, renderer) {
|
|
56
|
+
constructor(host, popupService, ctx, sortService, columnInfoService, ngZone, renderer, adaptiveGridService) {
|
|
54
57
|
this.host = host;
|
|
55
58
|
this.popupService = popupService;
|
|
56
59
|
this.ctx = ctx;
|
|
@@ -58,6 +61,7 @@ export class SortCommandToolbarDirective {
|
|
|
58
61
|
this.columnInfoService = columnInfoService;
|
|
59
62
|
this.ngZone = ngZone;
|
|
60
63
|
this.renderer = renderer;
|
|
64
|
+
this.adaptiveGridService = adaptiveGridService;
|
|
61
65
|
}
|
|
62
66
|
ngOnInit() {
|
|
63
67
|
this.toolSubs = this.host.click.subscribe(e => this.onClick(e));
|
|
@@ -70,7 +74,7 @@ export class SortCommandToolbarDirective {
|
|
|
70
74
|
const hasIcon = hasToolbarIcon && hasOverflowIcon;
|
|
71
75
|
const hasSvgIcon = isPresent(this.host.toolbarOptions.svgIcon) && isPresent(this.host.overflowOptions.svgIcon);
|
|
72
76
|
if (!hasIcon) {
|
|
73
|
-
this.host.icon = '
|
|
77
|
+
this.host.icon = 'arrows-swap';
|
|
74
78
|
}
|
|
75
79
|
if (!hasSvgIcon) {
|
|
76
80
|
this.host.svgIcon = arrowsSwapIcon;
|
|
@@ -82,9 +86,9 @@ export class SortCommandToolbarDirective {
|
|
|
82
86
|
this.host.text = this.ctx.localization.get(`sortToolbarToolText`);
|
|
83
87
|
});
|
|
84
88
|
}
|
|
85
|
-
this.
|
|
86
|
-
this.
|
|
87
|
-
this.
|
|
89
|
+
this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
|
|
90
|
+
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
91
|
+
this.buttonElement?.setAttribute('title', this.ctx.localization.get('sortable'));
|
|
88
92
|
}
|
|
89
93
|
ngOnDestroy() {
|
|
90
94
|
if (this.toolSubs) {
|
|
@@ -104,29 +108,38 @@ export class SortCommandToolbarDirective {
|
|
|
104
108
|
}
|
|
105
109
|
onClick(e) {
|
|
106
110
|
e.preventDefault();
|
|
107
|
-
if (this.
|
|
108
|
-
this.
|
|
109
|
-
|
|
111
|
+
if (this.ctx.grid.adaptiveMode === 'auto' && this.adaptiveGridService.windowSize !== 'large') {
|
|
112
|
+
if (!this.ctx.grid.isActionSheetExpanded) {
|
|
113
|
+
this.adaptiveGridService.viewType = 'sortToolbarTool';
|
|
114
|
+
this.ctx.grid.adaptiveRenderer.actionSheet.toggle(true);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
if (this.popupRef) {
|
|
119
|
+
this.closePopup();
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.openPopup();
|
|
110
123
|
}
|
|
111
|
-
this.openPopup();
|
|
112
124
|
}
|
|
113
125
|
openPopup() {
|
|
114
126
|
const direction = this.ctx.localization.rtl ? 'right' : 'left';
|
|
115
127
|
this.popupRef = this.popupService.open({
|
|
116
|
-
anchor: this.
|
|
128
|
+
anchor: this.buttonElement,
|
|
117
129
|
content: SortToolbarToolComponent,
|
|
118
130
|
popupClass: 'k-grid-columnmenu-popup',
|
|
119
131
|
positionMode: 'absolute',
|
|
120
132
|
anchorAlign: { vertical: 'bottom', horizontal: direction },
|
|
121
133
|
popupAlign: { vertical: 'top', horizontal: direction }
|
|
122
134
|
});
|
|
135
|
+
this.adaptiveGridService.popupRef = this.popupRef;
|
|
123
136
|
this.setPopupAttributes();
|
|
124
137
|
this.ngZone.runOutsideAngular(() => {
|
|
125
138
|
if (!isDocumentAvailable()) {
|
|
126
139
|
return;
|
|
127
140
|
}
|
|
128
141
|
this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
|
|
129
|
-
if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.
|
|
142
|
+
if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
|
|
130
143
|
this.closePopup();
|
|
131
144
|
}
|
|
132
145
|
});
|
|
@@ -145,8 +158,8 @@ export class SortCommandToolbarDirective {
|
|
|
145
158
|
this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
|
|
146
159
|
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
147
160
|
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
148
|
-
this.
|
|
149
|
-
this.
|
|
161
|
+
this.buttonElement?.setAttribute('aria-expanded', 'true');
|
|
162
|
+
this.buttonElement?.setAttribute('aria-controls', popupId);
|
|
150
163
|
}
|
|
151
164
|
initPopupProperties() {
|
|
152
165
|
this.popupRef.content.instance.columnInfoService = this.columnInfoService;
|
|
@@ -161,8 +174,8 @@ export class SortCommandToolbarDirective {
|
|
|
161
174
|
}));
|
|
162
175
|
}
|
|
163
176
|
closePopup() {
|
|
164
|
-
this.
|
|
165
|
-
this.
|
|
177
|
+
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
178
|
+
this.buttonElement?.removeAttribute('aria-controls');
|
|
166
179
|
if (this.popupRef) {
|
|
167
180
|
this.popupRef.close();
|
|
168
181
|
this.popupRef = null;
|
|
@@ -176,7 +189,10 @@ export class SortCommandToolbarDirective {
|
|
|
176
189
|
this.removeClickListener = null;
|
|
177
190
|
}
|
|
178
191
|
}
|
|
179
|
-
|
|
192
|
+
get buttonElement() {
|
|
193
|
+
return this.host.getButton();
|
|
194
|
+
}
|
|
195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortCommandToolbarDirective, deps: [{ token: i1.ToolBarButtonComponent }, { token: i2.PopupService }, { token: i3.ContextService }, { token: i4.SortService }, { token: i5.ColumnInfoService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i6.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
180
196
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SortCommandToolbarDirective, isStandalone: true, selector: "[kendoGridSortTool]", ngImport: i0 });
|
|
181
197
|
}
|
|
182
198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortCommandToolbarDirective, decorators: [{
|
|
@@ -185,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
185
201
|
selector: '[kendoGridSortTool]',
|
|
186
202
|
standalone: true
|
|
187
203
|
}]
|
|
188
|
-
}], ctorParameters: function () { return [{ type: i1.ToolBarButtonComponent }, { type: i2.PopupService }, { type: i3.ContextService }, { type: i4.SortService }, { type: i5.ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }]; } });
|
|
204
|
+
}], ctorParameters: function () { return [{ type: i1.ToolBarButtonComponent }, { type: i2.PopupService }, { type: i3.ContextService }, { type: i4.SortService }, { type: i5.ColumnInfoService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i6.AdaptiveGridService }]; } });
|
|
@@ -12,7 +12,10 @@ import { normalize } from '../../../columns/sort-settings';
|
|
|
12
12
|
import { take } from 'rxjs/operators';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@progress/kendo-angular-buttons";
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
export const directions = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
|
|
16
19
|
/**
|
|
17
20
|
* @hidden
|
|
18
21
|
*/
|
|
@@ -75,7 +78,10 @@ export class SortToolbarToolComponent {
|
|
|
75
78
|
this.subscription.unsubscribe();
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
|
-
toggleSort(column) {
|
|
81
|
+
toggleSort(column, ev) {
|
|
82
|
+
if (this.hostButton.location !== 'toolbar') {
|
|
83
|
+
ev.stopImmediatePropagation();
|
|
84
|
+
}
|
|
79
85
|
const field = column?.field;
|
|
80
86
|
if (!field) {
|
|
81
87
|
return;
|
|
@@ -142,8 +148,8 @@ export class SortToolbarToolComponent {
|
|
|
142
148
|
#sortItem
|
|
143
149
|
role="button"
|
|
144
150
|
class="k-columnmenu-item"
|
|
145
|
-
(click)="toggleSort(column)"
|
|
146
|
-
(keydown.enter)="toggleSort(column)"
|
|
151
|
+
(click)="toggleSort(column, $event)"
|
|
152
|
+
(keydown.enter)="toggleSort(column, $event)"
|
|
147
153
|
[tabindex]="'0'"
|
|
148
154
|
>
|
|
149
155
|
{{column.title || getColumnComponent(column).field}}
|
|
@@ -160,7 +166,12 @@ export class SortToolbarToolComponent {
|
|
|
160
166
|
</div>
|
|
161
167
|
|
|
162
168
|
<div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
|
|
163
|
-
<button kendoButton
|
|
169
|
+
<button kendoButton
|
|
170
|
+
[svgIcon]="clearIcon"
|
|
171
|
+
icon="x"
|
|
172
|
+
(click)="clearSorting()">
|
|
173
|
+
{{ctx?.localization.get('sortClearButton')}}
|
|
174
|
+
</button>
|
|
164
175
|
</div>
|
|
165
176
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "component", type: i1.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"] }] });
|
|
166
177
|
}
|
|
@@ -179,8 +190,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
179
190
|
#sortItem
|
|
180
191
|
role="button"
|
|
181
192
|
class="k-columnmenu-item"
|
|
182
|
-
(click)="toggleSort(column)"
|
|
183
|
-
(keydown.enter)="toggleSort(column)"
|
|
193
|
+
(click)="toggleSort(column, $event)"
|
|
194
|
+
(keydown.enter)="toggleSort(column, $event)"
|
|
184
195
|
[tabindex]="'0'"
|
|
185
196
|
>
|
|
186
197
|
{{column.title || getColumnComponent(column).field}}
|
|
@@ -197,7 +208,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
197
208
|
</div>
|
|
198
209
|
|
|
199
210
|
<div class="k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer">
|
|
200
|
-
<button kendoButton
|
|
211
|
+
<button kendoButton
|
|
212
|
+
[svgIcon]="clearIcon"
|
|
213
|
+
icon="x"
|
|
214
|
+
(click)="clearSorting()">
|
|
215
|
+
{{ctx?.localization.get('sortClearButton')}}
|
|
216
|
+
</button>
|
|
201
217
|
</div>
|
|
202
218
|
`,
|
|
203
219
|
standalone: true,
|
|
@@ -24,6 +24,10 @@ export class RowReorderService {
|
|
|
24
24
|
constructor(renderer) {
|
|
25
25
|
this.renderer = renderer;
|
|
26
26
|
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this.destroyDropIndicator();
|
|
29
|
+
this.destroyHintElement();
|
|
30
|
+
}
|
|
27
31
|
press(ev) {
|
|
28
32
|
this.dragTarget = ev.dragTarget;
|
|
29
33
|
this.offsetY = ev.dragEvent.offsetY;
|
|
@@ -55,12 +59,14 @@ export class RowReorderService {
|
|
|
55
59
|
}
|
|
56
60
|
dragEnd() {
|
|
57
61
|
this.destroyDropIndicator();
|
|
62
|
+
this.destroyHintElement();
|
|
58
63
|
this.dragTarget = null;
|
|
59
64
|
this.dropTarget = null;
|
|
60
65
|
this.hintElement = null;
|
|
61
66
|
}
|
|
62
67
|
drop(ev) {
|
|
63
68
|
this.destroyDropIndicator();
|
|
69
|
+
this.destroyHintElement();
|
|
64
70
|
const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
|
|
65
71
|
this.rowReorder.emit(rowReorderArgs);
|
|
66
72
|
}
|
|
@@ -142,6 +148,15 @@ export class RowReorderService {
|
|
|
142
148
|
this.dropIndicator = null;
|
|
143
149
|
}
|
|
144
150
|
}
|
|
151
|
+
destroyHintElement() {
|
|
152
|
+
if (!isDocumentAvailable()) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (this.hintElement?.parentElement) {
|
|
156
|
+
this.hintElement.parentElement.removeChild(this.hintElement);
|
|
157
|
+
this.hintElement = null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
145
160
|
decorateHint() {
|
|
146
161
|
hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
|
|
147
162
|
Object.keys(hintStyles)
|
|
@@ -144,6 +144,7 @@ export class SelectionService {
|
|
|
144
144
|
ev.rangeStartRow = { dataItem: this.lastSelectionData, index: this.lastSelectionStartIndex };
|
|
145
145
|
ev.rangeEndRow = { dataItem: item.data, index: item.index };
|
|
146
146
|
}
|
|
147
|
+
this.syncCurrentSelection(ev);
|
|
147
148
|
this.changes.emit(ev);
|
|
148
149
|
}
|
|
149
150
|
toggle(item) {
|
|
@@ -223,6 +224,7 @@ export class SelectionService {
|
|
|
223
224
|
deselectedRows: [rowArgs],
|
|
224
225
|
selectedRows: []
|
|
225
226
|
};
|
|
227
|
+
this.syncCurrentSelection(ev);
|
|
226
228
|
this.changes.emit(ev);
|
|
227
229
|
}
|
|
228
230
|
}
|
|
@@ -295,6 +297,7 @@ export class SelectionService {
|
|
|
295
297
|
if (this.options.cellAggregates) {
|
|
296
298
|
ev.cellAggregates = this.aggregateService.onSelectionChange(ev);
|
|
297
299
|
}
|
|
300
|
+
this.syncCurrentSelection(ev);
|
|
298
301
|
this.changes.emit(ev);
|
|
299
302
|
}
|
|
300
303
|
selectRange(startIndex, endIndex, preserveSelection, existingSelections = []) {
|
|
@@ -428,6 +431,14 @@ export class SelectionService {
|
|
|
428
431
|
this.dataChangedSubscription = null;
|
|
429
432
|
}
|
|
430
433
|
}
|
|
434
|
+
syncCurrentSelection(ev) {
|
|
435
|
+
for (const row of ev.deselectedRows) {
|
|
436
|
+
this.currentSelection.splice(row.index, 1);
|
|
437
|
+
}
|
|
438
|
+
for (const row of ev.selectedRows) {
|
|
439
|
+
this.currentSelection[row.index] = row;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
431
442
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionService, deps: [{ token: i1.DomEventsService }, { token: i2.CellSelectionAggregateService }, { token: i3.LocalDataChangesService }, { token: i4.NavigationService }, { token: i5.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
432
443
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionService });
|
|
433
444
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 { PreventableEvent } from "@progress/kendo-angular-common";
|
|
6
|
+
/**
|
|
7
|
+
* Arguments for the `undo` and `redo` events.
|
|
8
|
+
*/
|
|
9
|
+
export class UndoRedoEvent extends PreventableEvent {
|
|
10
|
+
/**
|
|
11
|
+
* The event data of the original action that triggered the state change.
|
|
12
|
+
*/
|
|
13
|
+
originalEvent;
|
|
14
|
+
/**
|
|
15
|
+
* The grid state and rendered data at the time of the action.
|
|
16
|
+
*/
|
|
17
|
+
gridState;
|
|
18
|
+
/**
|
|
19
|
+
* @hidden
|
|
20
|
+
*/
|
|
21
|
+
constructor({ originalEvent, gridState }) {
|
|
22
|
+
super();
|
|
23
|
+
this.originalEvent = originalEvent;
|
|
24
|
+
this.gridState = gridState;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 { Directive } from '@angular/core';
|
|
6
|
+
import { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
7
|
+
import { Subscription } from 'rxjs';
|
|
8
|
+
import { redoIcon } from '@progress/kendo-svg-icons';
|
|
9
|
+
import { UndoRedoService } from './undo-redo.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "./undo-redo.service";
|
|
12
|
+
import * as i2 from "@progress/kendo-angular-toolbar";
|
|
13
|
+
/**
|
|
14
|
+
* Represents the command for triggering the redo action in the Grid.
|
|
15
|
+
* You can apply this directive to any `kendo-toolbar-button` element inside a
|
|
16
|
+
* ToolbarComponent used in the Grid.
|
|
17
|
+
*
|
|
18
|
+
* When the user clicks the toolbar button that is associated with the directive, the
|
|
19
|
+
* [redo]({% slug api_grid_undoredodirective %}#toc-redo) event is triggered.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```html-no-run
|
|
23
|
+
* <kendo-grid>
|
|
24
|
+
* <kendo-toolbar>
|
|
25
|
+
* <kendo-toolbar-button kendoGridRedoTool></kendo-toolbar-button>
|
|
26
|
+
* </kendo-toolbar>
|
|
27
|
+
* </kendo-grid>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export class RedoCommandToolbarDirective {
|
|
31
|
+
undoRedoService;
|
|
32
|
+
host;
|
|
33
|
+
subs = new Subscription();
|
|
34
|
+
constructor(undoRedoService, host) {
|
|
35
|
+
this.undoRedoService = undoRedoService;
|
|
36
|
+
this.host = host;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.subs = this.host.click.subscribe(e => this.onClick(e));
|
|
40
|
+
this.host.className = 'k-grid-redo-command';
|
|
41
|
+
this.host.svgIcon = redoIcon;
|
|
42
|
+
this.host.icon = 'redo';
|
|
43
|
+
this.host.text = 'Redo';
|
|
44
|
+
this.host.disabled = true;
|
|
45
|
+
this.subs.add(this.undoRedoService.stackEndReached.subscribe((stackEnd) => this.host.disabled = stackEnd === 'end'));
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
this.subs.unsubscribe();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @hidden
|
|
52
|
+
*/
|
|
53
|
+
onClick(e) {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
this.undoRedoService.onRedo.next();
|
|
56
|
+
}
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RedoCommandToolbarDirective, deps: [{ token: i1.UndoRedoService }, { token: i2.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RedoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridRedoTool]", ngImport: i0 });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RedoCommandToolbarDirective, decorators: [{
|
|
61
|
+
type: Directive,
|
|
62
|
+
args: [{
|
|
63
|
+
selector: '[kendoGridRedoTool]',
|
|
64
|
+
standalone: true
|
|
65
|
+
}]
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.UndoRedoService }, { type: i2.ToolBarButtonComponent }]; } });
|
|
@@ -0,0 +1,66 @@
|
|
|
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 { Directive } from '@angular/core';
|
|
6
|
+
import { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
7
|
+
import { Subscription } from 'rxjs';
|
|
8
|
+
import { undoIcon } from '@progress/kendo-svg-icons';
|
|
9
|
+
import { UndoRedoService } from './undo-redo.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "./undo-redo.service";
|
|
12
|
+
import * as i2 from "@progress/kendo-angular-toolbar";
|
|
13
|
+
/**
|
|
14
|
+
* Represents the command for triggering the undo action in the Grid.
|
|
15
|
+
* You can apply this directive to any `kendo-toolbar-button` element inside a
|
|
16
|
+
* ToolbarComponent used in the Grid.
|
|
17
|
+
*
|
|
18
|
+
* When the user clicks the toolbar button that is associated with the directive, the
|
|
19
|
+
* [undo]({% slug api_grid_undoredodirective %}#toc-undo) event is triggered.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```html-no-run
|
|
23
|
+
* <kendo-grid>
|
|
24
|
+
* <kendo-toolbar>
|
|
25
|
+
* <kendo-toolbar-button kendoGridUndoTool></kendo-toolbar-button>
|
|
26
|
+
* </kendo-toolbar>
|
|
27
|
+
* </kendo-grid>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export class UndoCommandToolbarDirective {
|
|
31
|
+
undoRedoService;
|
|
32
|
+
host;
|
|
33
|
+
subs = new Subscription();
|
|
34
|
+
constructor(undoRedoService, host) {
|
|
35
|
+
this.undoRedoService = undoRedoService;
|
|
36
|
+
this.host = host;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.subs = this.host.click.subscribe(e => this.onClick(e));
|
|
40
|
+
this.host.className = 'k-grid-undo-command';
|
|
41
|
+
this.host.svgIcon = undoIcon;
|
|
42
|
+
this.host.icon = 'undo';
|
|
43
|
+
this.host.text = 'Undo';
|
|
44
|
+
this.host.disabled = true;
|
|
45
|
+
this.subs.add(this.undoRedoService.stackEndReached.subscribe((stackEnd) => this.host.disabled = stackEnd === 'start'));
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
this.subs.unsubscribe();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @hidden
|
|
52
|
+
*/
|
|
53
|
+
onClick(e) {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
this.undoRedoService.onUndo.next();
|
|
56
|
+
}
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UndoCommandToolbarDirective, deps: [{ token: i1.UndoRedoService }, { token: i2.ToolBarButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: UndoCommandToolbarDirective, isStandalone: true, selector: "[kendoGridUndoTool]", ngImport: i0 });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UndoCommandToolbarDirective, decorators: [{
|
|
61
|
+
type: Directive,
|
|
62
|
+
args: [{
|
|
63
|
+
selector: '[kendoGridUndoTool]',
|
|
64
|
+
standalone: true
|
|
65
|
+
}]
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.UndoRedoService }, { type: i2.ToolBarButtonComponent }]; } });
|