@progress/kendo-angular-grid 19.0.0-develop.10 → 19.0.0-develop.12
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/column-menu/column-chooser-tool.directive.d.ts +6 -6
- package/columns/column-base.d.ts +5 -0
- package/columns/span-column.component.d.ts +2 -2
- package/common/toolbar-tool-base.directive.d.ts +26 -0
- package/directives.d.ts +11 -4
- 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/esm2022/column-menu/column-chooser-tool.directive.mjs +17 -30
- 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/toolbar-tool-base.directive.mjs +81 -0
- package/esm2022/directives.mjs +17 -2
- 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/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 +91 -0
- package/esm2022/excel/excel-command-tool.directive.mjs +12 -17
- package/esm2022/grid.component.mjs +155 -40
- package/esm2022/grid.module.mjs +114 -101
- package/esm2022/index.mjs +9 -0
- package/esm2022/localization/messages.mjs +43 -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 +3 -3
- package/esm2022/rendering/header/header.component.mjs +1 -1
- package/esm2022/rendering/list.component.mjs +1 -1
- package/esm2022/rendering/table-body.component.mjs +1 -1
- 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 -0
- package/excel/excel-command-tool.directive.d.ts +5 -5
- package/fesm2022/progress-kendo-angular-grid.mjs +1213 -162
- package/grid.component.d.ts +42 -19
- package/grid.module.d.ts +107 -100
- package/index.d.ts +8 -0
- package/localization/messages.d.ts +29 -1
- package/navigation/toolbar-tool-name.d.ts +17 -0
- package/package.json +20 -20
- package/pdf/pdf-command-tool.directive.d.ts +6 -5
- package/rendering/cell.component.d.ts +1 -1
- 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 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "19.0.0-develop.
|
|
3
|
+
"version": "19.0.0-develop.12",
|
|
4
4
|
"description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"package": {
|
|
27
27
|
"productName": "Kendo UI for Angular",
|
|
28
28
|
"productCode": "KENDOUIANGULAR",
|
|
29
|
-
"publishDate":
|
|
29
|
+
"publishDate": 1747069795,
|
|
30
30
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
31
31
|
}
|
|
32
32
|
},
|
|
@@ -39,28 +39,28 @@
|
|
|
39
39
|
"@progress/kendo-data-query": "^1.0.0",
|
|
40
40
|
"@progress/kendo-drawing": "^1.21.0",
|
|
41
41
|
"@progress/kendo-licensing": "^1.5.0",
|
|
42
|
-
"@progress/kendo-angular-buttons": "19.0.0-develop.
|
|
43
|
-
"@progress/kendo-angular-common": "19.0.0-develop.
|
|
44
|
-
"@progress/kendo-angular-dateinputs": "19.0.0-develop.
|
|
45
|
-
"@progress/kendo-angular-layout": "19.0.0-develop.
|
|
46
|
-
"@progress/kendo-angular-dropdowns": "19.0.0-develop.
|
|
47
|
-
"@progress/kendo-angular-excel-export": "19.0.0-develop.
|
|
48
|
-
"@progress/kendo-angular-icons": "19.0.0-develop.
|
|
49
|
-
"@progress/kendo-angular-inputs": "19.0.0-develop.
|
|
50
|
-
"@progress/kendo-angular-indicators": "19.0.0-develop.
|
|
51
|
-
"@progress/kendo-angular-intl": "19.0.0-develop.
|
|
52
|
-
"@progress/kendo-angular-l10n": "19.0.0-develop.
|
|
53
|
-
"@progress/kendo-angular-label": "19.0.0-develop.
|
|
54
|
-
"@progress/kendo-angular-pager": "19.0.0-develop.
|
|
55
|
-
"@progress/kendo-angular-pdf-export": "19.0.0-develop.
|
|
56
|
-
"@progress/kendo-angular-popup": "19.0.0-develop.
|
|
57
|
-
"@progress/kendo-angular-toolbar": "19.0.0-develop.
|
|
58
|
-
"@progress/kendo-angular-utils": "19.0.0-develop.
|
|
42
|
+
"@progress/kendo-angular-buttons": "19.0.0-develop.12",
|
|
43
|
+
"@progress/kendo-angular-common": "19.0.0-develop.12",
|
|
44
|
+
"@progress/kendo-angular-dateinputs": "19.0.0-develop.12",
|
|
45
|
+
"@progress/kendo-angular-layout": "19.0.0-develop.12",
|
|
46
|
+
"@progress/kendo-angular-dropdowns": "19.0.0-develop.12",
|
|
47
|
+
"@progress/kendo-angular-excel-export": "19.0.0-develop.12",
|
|
48
|
+
"@progress/kendo-angular-icons": "19.0.0-develop.12",
|
|
49
|
+
"@progress/kendo-angular-inputs": "19.0.0-develop.12",
|
|
50
|
+
"@progress/kendo-angular-indicators": "19.0.0-develop.12",
|
|
51
|
+
"@progress/kendo-angular-intl": "19.0.0-develop.12",
|
|
52
|
+
"@progress/kendo-angular-l10n": "19.0.0-develop.12",
|
|
53
|
+
"@progress/kendo-angular-label": "19.0.0-develop.12",
|
|
54
|
+
"@progress/kendo-angular-pager": "19.0.0-develop.12",
|
|
55
|
+
"@progress/kendo-angular-pdf-export": "19.0.0-develop.12",
|
|
56
|
+
"@progress/kendo-angular-popup": "19.0.0-develop.12",
|
|
57
|
+
"@progress/kendo-angular-toolbar": "19.0.0-develop.12",
|
|
58
|
+
"@progress/kendo-angular-utils": "19.0.0-develop.12",
|
|
59
59
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"tslib": "^2.3.1",
|
|
63
|
-
"@progress/kendo-angular-schematics": "19.0.0-develop.
|
|
63
|
+
"@progress/kendo-angular-schematics": "19.0.0-develop.12",
|
|
64
64
|
"@progress/kendo-common": "^1.0.1",
|
|
65
65
|
"@progress/kendo-file-saver": "^1.0.0"
|
|
66
66
|
},
|
|
@@ -2,8 +2,11 @@
|
|
|
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 { ChangeDetectorRef, NgZone } from '@angular/core';
|
|
5
6
|
import { PDFService } from './pdf.service';
|
|
6
7
|
import { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
8
|
+
import { ContextService } from '../common/provider.service';
|
|
9
|
+
import { ToolbarToolBase } from '../common/toolbar-tool-base.directive';
|
|
7
10
|
import * as i0 from "@angular/core";
|
|
8
11
|
/**
|
|
9
12
|
* Represents the `export-to-PDF` toolbar tool of the Grid.
|
|
@@ -25,13 +28,11 @@ import * as i0 from "@angular/core";
|
|
|
25
28
|
* </kendo-grid>
|
|
26
29
|
* ```
|
|
27
30
|
*/
|
|
28
|
-
export declare class PDFCommandToolbarDirective {
|
|
31
|
+
export declare class PDFCommandToolbarDirective extends ToolbarToolBase {
|
|
29
32
|
private pdfService;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
constructor(pdfService: PDFService, host: ToolBarButtonComponent);
|
|
33
|
+
host: ToolBarButtonComponent;
|
|
34
|
+
constructor(pdfService: PDFService, host: ToolBarButtonComponent, ctx: ContextService, zone: NgZone, cdr: ChangeDetectorRef);
|
|
33
35
|
ngOnInit(): void;
|
|
34
|
-
ngOnDestroy(): void;
|
|
35
36
|
/**
|
|
36
37
|
* @hidden
|
|
37
38
|
*/
|
|
@@ -44,7 +44,7 @@ export declare class CellComponent implements DoCheck {
|
|
|
44
44
|
get selectionCheckboxId(): string;
|
|
45
45
|
get selectionCheckboxLabel(): string;
|
|
46
46
|
get isSpanColumn(): boolean;
|
|
47
|
-
get
|
|
47
|
+
get children(): ColumnComponent[];
|
|
48
48
|
get isRowReorderColumn(): boolean;
|
|
49
49
|
get isRowSelectable(): boolean;
|
|
50
50
|
private _rowIndex;
|
|
@@ -4,14 +4,14 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
|
4
4
|
function default_1(options) {
|
|
5
5
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
|
|
6
6
|
// peer deps of the dropdowns
|
|
7
|
-
'@progress/kendo-angular-treeview': '19.0.0-develop.
|
|
8
|
-
'@progress/kendo-angular-navigation': '19.0.0-develop.
|
|
7
|
+
'@progress/kendo-angular-treeview': '19.0.0-develop.12',
|
|
8
|
+
'@progress/kendo-angular-navigation': '19.0.0-develop.12',
|
|
9
9
|
// peer dependency of kendo-angular-inputs
|
|
10
|
-
'@progress/kendo-angular-dialog': '19.0.0-develop.
|
|
10
|
+
'@progress/kendo-angular-dialog': '19.0.0-develop.12',
|
|
11
11
|
// peer dependency of kendo-angular-icons
|
|
12
12
|
'@progress/kendo-svg-icons': '^4.0.0',
|
|
13
13
|
// peer dependency of kendo-angular-layout
|
|
14
|
-
'@progress/kendo-angular-progressbar': '19.0.0-develop.
|
|
14
|
+
'@progress/kendo-angular-progressbar': '19.0.0-develop.12'
|
|
15
15
|
} });
|
|
16
16
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
|
17
17
|
}
|
|
@@ -70,6 +70,7 @@ export declare class SelectionService implements OnDestroy {
|
|
|
70
70
|
addSubscriptions(): void;
|
|
71
71
|
private getIterator;
|
|
72
72
|
private removeSubscriptions;
|
|
73
|
+
private syncCurrentSelection;
|
|
73
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectionService, never>;
|
|
74
75
|
static ɵprov: i0.ɵɵInjectableDeclaration<SelectionService>;
|
|
75
76
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 { State } from "@progress/kendo-data-query";
|
|
6
|
+
import { GridDataResult } from "../data/data.collection";
|
|
7
|
+
import { PreventableEvent } from "@progress/kendo-angular-common";
|
|
8
|
+
/**
|
|
9
|
+
* Represent the state of each Grid column that can be changed by the user.
|
|
10
|
+
*/
|
|
11
|
+
export interface ColumnState {
|
|
12
|
+
/**
|
|
13
|
+
* The column identifier that is unique in the scope of its `GridComponent` owner.
|
|
14
|
+
*/
|
|
15
|
+
id: string;
|
|
16
|
+
/**
|
|
17
|
+
* The column width in pixels.
|
|
18
|
+
*/
|
|
19
|
+
width?: number;
|
|
20
|
+
/**
|
|
21
|
+
* The column visibility.
|
|
22
|
+
*/
|
|
23
|
+
hidden?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The column locked state.
|
|
26
|
+
*/
|
|
27
|
+
locked?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The column sticky state.
|
|
30
|
+
*/
|
|
31
|
+
sticky?: boolean;
|
|
32
|
+
orderIndex?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The state of the grid component.
|
|
36
|
+
* It includes the current `State`, data, and columns state.
|
|
37
|
+
*/
|
|
38
|
+
export interface GridState extends State {
|
|
39
|
+
columnsState?: ColumnState[];
|
|
40
|
+
currentData?: Array<any> | GridDataResult | null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Arguments for the `undo` and `redo` events.
|
|
44
|
+
*/
|
|
45
|
+
export declare class UndoRedoEvent extends PreventableEvent {
|
|
46
|
+
/**
|
|
47
|
+
* The event data of the original action that triggered the state change.
|
|
48
|
+
*/
|
|
49
|
+
readonly originalEvent: any;
|
|
50
|
+
/**
|
|
51
|
+
* The grid state and rendered data at the time of the action.
|
|
52
|
+
*/
|
|
53
|
+
readonly gridState: GridState;
|
|
54
|
+
/**
|
|
55
|
+
* @hidden
|
|
56
|
+
*/
|
|
57
|
+
constructor({ originalEvent, gridState }: any);
|
|
58
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
6
|
+
import { UndoRedoService } from './undo-redo.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Represents the command for triggering the redo action in the Grid.
|
|
10
|
+
* You can apply this directive to any `kendo-toolbar-button` element inside a
|
|
11
|
+
* ToolbarComponent used in the Grid.
|
|
12
|
+
*
|
|
13
|
+
* When the user clicks the toolbar button that is associated with the directive, the
|
|
14
|
+
* [redo]({% slug api_grid_undoredodirective %}#toc-redo) event is triggered.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```html-no-run
|
|
18
|
+
* <kendo-grid>
|
|
19
|
+
* <kendo-toolbar>
|
|
20
|
+
* <kendo-toolbar-button kendoGridRedoTool></kendo-toolbar-button>
|
|
21
|
+
* </kendo-toolbar>
|
|
22
|
+
* </kendo-grid>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare class RedoCommandToolbarDirective {
|
|
26
|
+
private undoRedoService;
|
|
27
|
+
private host;
|
|
28
|
+
private subs;
|
|
29
|
+
constructor(undoRedoService: UndoRedoService, host: ToolBarButtonComponent);
|
|
30
|
+
ngOnInit(): void;
|
|
31
|
+
ngOnDestroy(): void;
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
onClick(e: any): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RedoCommandToolbarDirective, never>;
|
|
37
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RedoCommandToolbarDirective, "[kendoGridRedoTool]", never, {}, {}, never, never, true, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
6
|
+
import { UndoRedoService } from './undo-redo.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Represents the command for triggering the undo action in the Grid.
|
|
10
|
+
* You can apply this directive to any `kendo-toolbar-button` element inside a
|
|
11
|
+
* ToolbarComponent used in the Grid.
|
|
12
|
+
*
|
|
13
|
+
* When the user clicks the toolbar button that is associated with the directive, the
|
|
14
|
+
* [undo]({% slug api_grid_undoredodirective %}#toc-undo) event is triggered.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```html-no-run
|
|
18
|
+
* <kendo-grid>
|
|
19
|
+
* <kendo-toolbar>
|
|
20
|
+
* <kendo-toolbar-button kendoGridUndoTool></kendo-toolbar-button>
|
|
21
|
+
* </kendo-toolbar>
|
|
22
|
+
* </kendo-grid>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare class UndoCommandToolbarDirective {
|
|
26
|
+
private undoRedoService;
|
|
27
|
+
private host;
|
|
28
|
+
private subs;
|
|
29
|
+
constructor(undoRedoService: UndoRedoService, host: ToolBarButtonComponent);
|
|
30
|
+
ngOnInit(): void;
|
|
31
|
+
ngOnDestroy(): void;
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
onClick(e: any): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UndoCommandToolbarDirective, never>;
|
|
37
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UndoCommandToolbarDirective, "[kendoGridUndoTool]", never, {}, {}, never, never, true, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
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 { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
6
|
+
import { GridComponent } from '../grid.component';
|
|
7
|
+
import { UndoRedoEvent } from './grid-state.models';
|
|
8
|
+
import { EditService } from '../editing/edit.service';
|
|
9
|
+
import { UndoRedoService } from './undo-redo.service';
|
|
10
|
+
import { ChangeNotificationService } from '../data/change-notification.service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export declare class UndoRedoDirective implements OnInit, OnDestroy {
|
|
13
|
+
private host;
|
|
14
|
+
private editService;
|
|
15
|
+
private undoRedoService;
|
|
16
|
+
private changeNotification;
|
|
17
|
+
/**
|
|
18
|
+
* Determines the maximum number of actions to keep in the undo-redo stack.
|
|
19
|
+
* @default 10
|
|
20
|
+
*/
|
|
21
|
+
maxStoredStates: number;
|
|
22
|
+
/**
|
|
23
|
+
* Fires when undo action is performed. Exposes the state of the grid that will be applied.
|
|
24
|
+
*/
|
|
25
|
+
onUndo: EventEmitter<UndoRedoEvent>;
|
|
26
|
+
/**
|
|
27
|
+
* Fires when undo action is performed. Exposes the state of the grid that will be applied.
|
|
28
|
+
*/
|
|
29
|
+
onRedo: EventEmitter<UndoRedoEvent>;
|
|
30
|
+
/**
|
|
31
|
+
* Returns an array of all undo-redo actions that are currently in the stack.
|
|
32
|
+
*/
|
|
33
|
+
get undoRedoItems(): UndoRedoEvent[];
|
|
34
|
+
private stack;
|
|
35
|
+
private subs;
|
|
36
|
+
private addToState;
|
|
37
|
+
constructor(host: GridComponent, editService: EditService, undoRedoService: UndoRedoService, changeNotification: ChangeNotificationService);
|
|
38
|
+
ngOnInit(): void;
|
|
39
|
+
ngOnDestroy(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Re-applies the last action, reverted by the `undo` method.
|
|
42
|
+
*/
|
|
43
|
+
redo(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Reverts the last user action.
|
|
46
|
+
*/
|
|
47
|
+
undo(): void;
|
|
48
|
+
private updateUndoRedoDisabled;
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UndoRedoDirective, never>;
|
|
50
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UndoRedoDirective, "[kendoGridUndoRedo]", ["kendoGridUndoRedo"], { "maxStoredStates": { "alias": "maxStoredStates"; "required": false; }; }, { "onUndo": "undo"; "onRedo": "redo"; }, never, never, true, never>;
|
|
51
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 { Subject } from 'rxjs';
|
|
6
|
+
import { GridState } from './grid-state.models';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export declare class UndoRedoService {
|
|
12
|
+
originalEvent: any;
|
|
13
|
+
onUndo: Subject<undefined>;
|
|
14
|
+
onRedo: Subject<undefined>;
|
|
15
|
+
stackEndReached: Subject<'start' | 'end' | false>;
|
|
16
|
+
setState: Subject<GridState>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UndoRedoService, never>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UndoRedoService>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
* @hidden
|
|
7
|
+
* Represents a node in the undo-redo linked list.
|
|
8
|
+
*/
|
|
9
|
+
export interface UndoRedoNode<T> {
|
|
10
|
+
/** The state data stored in the node */
|
|
11
|
+
state: T;
|
|
12
|
+
/** Reference to the previous node (the previous state) */
|
|
13
|
+
previous: UndoRedoNode<T> | null;
|
|
14
|
+
/** Reference to the next node (the next state) */
|
|
15
|
+
next: UndoRedoNode<T> | null;
|
|
16
|
+
/** Optional identifier for the node */
|
|
17
|
+
id?: string | number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
* A linked-list based implementation of an undo-redo stack.
|
|
22
|
+
* Maintains a chain of states that can be navigated forward and backward.
|
|
23
|
+
*/
|
|
24
|
+
export declare class UndoRedoStack<T> {
|
|
25
|
+
private maxSize;
|
|
26
|
+
/** The current active node in the undo-redo history */
|
|
27
|
+
private currentNode;
|
|
28
|
+
/** The root node of the stack (first state) */
|
|
29
|
+
private rootNode;
|
|
30
|
+
/** Track the size of the stack */
|
|
31
|
+
private _size;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new UndoRedoStack.
|
|
34
|
+
* @param maxSize Optional maximum number of states to maintain (unlimited if not provided)
|
|
35
|
+
*/
|
|
36
|
+
constructor(maxSize?: number);
|
|
37
|
+
/**
|
|
38
|
+
* Gets the current number of states in the stack
|
|
39
|
+
*/
|
|
40
|
+
get size(): number;
|
|
41
|
+
/**
|
|
42
|
+
* Gets the current active state
|
|
43
|
+
*/
|
|
44
|
+
get current(): T | null;
|
|
45
|
+
/**
|
|
46
|
+
* Checks if undo is available (if there's a previous state)
|
|
47
|
+
*/
|
|
48
|
+
get canUndo(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Checks if redo is available (if there's a next state)
|
|
51
|
+
*/
|
|
52
|
+
get canRedo(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Adds a new state to the undo-redo stack
|
|
55
|
+
* @param state The state to add
|
|
56
|
+
* @param id Optional identifier for the state
|
|
57
|
+
* @returns The newly created node
|
|
58
|
+
*/
|
|
59
|
+
add(state: T, id?: string | number): UndoRedoNode<T>;
|
|
60
|
+
/**
|
|
61
|
+
* Finds a node by its identifier
|
|
62
|
+
* @param id The identifier to search for
|
|
63
|
+
* @returns The found node or null if not found
|
|
64
|
+
*/
|
|
65
|
+
find(id: string | number): UndoRedoNode<T> | null;
|
|
66
|
+
/**
|
|
67
|
+
* Removes a node by its identifier
|
|
68
|
+
* @param id The identifier of the node to remove
|
|
69
|
+
* @returns True if the node was found and removed, false otherwise
|
|
70
|
+
*/
|
|
71
|
+
remove(id: string | number): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Performs an undo operation, moving to the previous state
|
|
74
|
+
* @returns The previous state or null if can't undo
|
|
75
|
+
*/
|
|
76
|
+
undo(): T | null;
|
|
77
|
+
/**
|
|
78
|
+
* Performs a redo operation, moving to the next state
|
|
79
|
+
* @returns The next state or null if can't redo
|
|
80
|
+
*/
|
|
81
|
+
redo(): T | null;
|
|
82
|
+
/**
|
|
83
|
+
* Clears all history
|
|
84
|
+
*/
|
|
85
|
+
clear(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Removes all states after the specified node
|
|
88
|
+
* @param node The node to truncate from
|
|
89
|
+
* @returns The number of nodes removed
|
|
90
|
+
*/
|
|
91
|
+
private truncateForward;
|
|
92
|
+
/**
|
|
93
|
+
* Ensures the stack doesn't exceed the maximum size by removing oldest nodes
|
|
94
|
+
*/
|
|
95
|
+
private enforceMaxSize;
|
|
96
|
+
/**
|
|
97
|
+
* Gets all states in the stack as an array (from oldest to newest)
|
|
98
|
+
*/
|
|
99
|
+
toArray(): T[];
|
|
100
|
+
/**
|
|
101
|
+
* Gets the history nodes as an array (useful for debugging)
|
|
102
|
+
*/
|
|
103
|
+
getNodes(): UndoRedoNode<T>[];
|
|
104
|
+
}
|
package/utils.d.ts
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { QueryList, InjectionToken } from '@angular/core';
|
|
6
6
|
import { Observable } from 'rxjs';
|
|
7
|
-
import { ColumnBase
|
|
7
|
+
import { ColumnBase } from './columns/column-base';
|
|
8
|
+
import { RowArgs } from './rendering/common/row-args';
|
|
9
|
+
import { ColumnState } from './state-management/grid-state.models';
|
|
8
10
|
export { isChanged, anyChanged, hasObservers } from '@progress/kendo-angular-common';
|
|
9
11
|
/**
|
|
10
12
|
* @hidden
|
|
@@ -93,6 +95,14 @@ export declare const replaceMessagePlaceholder: (message: string, name: string,
|
|
|
93
95
|
* @hidden
|
|
94
96
|
*/
|
|
95
97
|
export declare const recursiveFlatMap: (item: any) => any[];
|
|
98
|
+
/**
|
|
99
|
+
* @hidden
|
|
100
|
+
*/
|
|
101
|
+
export declare const updateColumnFromState: (columnState: ColumnState, c: any) => void;
|
|
102
|
+
/**
|
|
103
|
+
* @hidden
|
|
104
|
+
*/
|
|
105
|
+
export declare const recursiveColumnsFlatMap: (item: any) => any[];
|
|
96
106
|
/**
|
|
97
107
|
* @hidden
|
|
98
108
|
*/
|