ms-data-grid 0.0.40 → 0.0.42
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/esm2022/lib/data-grid/data-grid.component.mjs +1322 -387
- package/esm2022/lib/data-grid/statuses.mjs +3 -2
- package/esm2022/lib/data-grid.module.mjs +7 -7
- package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
- package/esm2022/lib/services/common.service.mjs +40 -7
- package/esm2022/lib/services/copy-service.service.mjs +3 -3
- package/esm2022/lib/services/export.service.mjs +149 -0
- package/esm2022/public-api.mjs +1 -3
- package/fesm2022/ms-data-grid.mjs +1514 -669
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +96 -35
- package/lib/data-grid.module.d.ts +6 -7
- package/lib/services/export.service.d.ts +24 -0
- package/package.json +8 -2
- package/public-api.d.ts +0 -2
- package/esm2022/lib/data-grid.service.mjs +0 -14
- package/esm2022/lib/directives/draggable-header.directive.mjs +0 -145
- package/esm2022/lib/services/swap-columns.service.mjs +0 -118
- package/lib/data-grid.service.d.ts +0 -6
- package/lib/directives/draggable-header.directive.d.ts +0 -31
- package/lib/services/swap-columns.service.d.ts +0 -19
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SwapColumnsService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
deepClone(obj) {
|
|
6
|
-
return JSON.parse(JSON.stringify(obj));
|
|
7
|
-
}
|
|
8
|
-
flattenColumnsWithPaths(columns) {
|
|
9
|
-
const result = [];
|
|
10
|
-
const recurse = (cols, currentPath = []) => {
|
|
11
|
-
cols.forEach((col, index) => {
|
|
12
|
-
const path = [...currentPath, index];
|
|
13
|
-
result.push({ col, path });
|
|
14
|
-
if (Array.isArray(col.children)) {
|
|
15
|
-
recurse(col.children, path);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
recurse(columns);
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
findColumnByIndex(columns, index, flat, _path = [], currentPath = []) {
|
|
23
|
-
for (let i = 0; i < columns.length; i++) {
|
|
24
|
-
const col = columns[i];
|
|
25
|
-
const nextPath = [...currentPath, i];
|
|
26
|
-
if (flat[index] === col) {
|
|
27
|
-
return { column: col, parent: columns, path: nextPath };
|
|
28
|
-
}
|
|
29
|
-
if (Array.isArray(col?.children)) {
|
|
30
|
-
const result = this.findColumnByIndex(col?.children, index, flat, _path, nextPath);
|
|
31
|
-
if (result)
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
insertAtPath(columns, path, newColumn) {
|
|
38
|
-
const cloned = this.deepClone(columns);
|
|
39
|
-
let current = cloned;
|
|
40
|
-
for (let i = 0; i < path.length - 1; i++) {
|
|
41
|
-
if (!current[path[i]]?.children) {
|
|
42
|
-
current[path[i]].children = [];
|
|
43
|
-
}
|
|
44
|
-
current = current[path[i]]?.children;
|
|
45
|
-
}
|
|
46
|
-
const insertIndex = path[path.length - 1];
|
|
47
|
-
current.splice(insertIndex, 0, newColumn);
|
|
48
|
-
return cloned;
|
|
49
|
-
}
|
|
50
|
-
removeAtPath(columns, path) {
|
|
51
|
-
const cloned = this.deepClone(columns);
|
|
52
|
-
let current = cloned;
|
|
53
|
-
for (let i = 0; i < path.length - 1; i++) {
|
|
54
|
-
if (!current[path[i]]?.children) {
|
|
55
|
-
return cloned; // Safety: path is invalid
|
|
56
|
-
}
|
|
57
|
-
current = current[path[i]]?.children;
|
|
58
|
-
}
|
|
59
|
-
const removeIndex = path[path.length - 1];
|
|
60
|
-
if (Array.isArray(current) && current.length > removeIndex) {
|
|
61
|
-
current.splice(removeIndex, 1);
|
|
62
|
-
}
|
|
63
|
-
return cloned;
|
|
64
|
-
}
|
|
65
|
-
swapColumnsInTree(currentColumn, columns, fromIndex, toIndex) {
|
|
66
|
-
const flat = this.flattenColumnsWithPaths(columns);
|
|
67
|
-
if (fromIndex < 0 ||
|
|
68
|
-
toIndex < 0 ||
|
|
69
|
-
fromIndex >= flat.length ||
|
|
70
|
-
toIndex >= flat.length) {
|
|
71
|
-
return columns; // invalid indices
|
|
72
|
-
}
|
|
73
|
-
const fromInfo = this.findColumnByIndex(columns, fromIndex, flat);
|
|
74
|
-
const toInfo = this.findColumnByIndex(columns, toIndex, flat);
|
|
75
|
-
if (!fromInfo || !toInfo)
|
|
76
|
-
return columns;
|
|
77
|
-
const fromCol = fromInfo.column;
|
|
78
|
-
const toCol = toInfo.column;
|
|
79
|
-
let updatedCols = this.removeAtPath(columns, fromInfo.path);
|
|
80
|
-
// Case 1: Same parent
|
|
81
|
-
if (JSON.stringify(fromInfo.path.slice(0, -1)) ===
|
|
82
|
-
JSON.stringify(toInfo.path.slice(0, -1))) {
|
|
83
|
-
return this.insertAtPath(updatedCols, toInfo.path, fromCol);
|
|
84
|
-
}
|
|
85
|
-
// Case 2: Drop target is a group header
|
|
86
|
-
if (Array.isArray(toCol?.children)) {
|
|
87
|
-
const cloned = this.deepClone(updatedCols);
|
|
88
|
-
let parent = cloned;
|
|
89
|
-
for (let i = 0; i < toInfo.path.length - 1; i++) {
|
|
90
|
-
parent = parent[toInfo.path[i]].children;
|
|
91
|
-
}
|
|
92
|
-
const target = parent[toInfo.path[toInfo.path.length - 1]];
|
|
93
|
-
if (!target.children) {
|
|
94
|
-
target.children = [];
|
|
95
|
-
}
|
|
96
|
-
target.children.push(fromCol);
|
|
97
|
-
return cloned;
|
|
98
|
-
}
|
|
99
|
-
// Case 3: Drop target is a regular column → wrap both into a group
|
|
100
|
-
const groupHeader = {
|
|
101
|
-
headerName: toCol.headerName || 'Group',
|
|
102
|
-
children: [toCol, fromCol],
|
|
103
|
-
};
|
|
104
|
-
// Remove target from its original location
|
|
105
|
-
updatedCols = this.removeAtPath(updatedCols, toInfo.path);
|
|
106
|
-
// Insert group at target index
|
|
107
|
-
return this.insertAtPath(updatedCols, toInfo.path, groupHeader);
|
|
108
|
-
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwapColumnsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
110
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwapColumnsService, providedIn: 'root' }); }
|
|
111
|
-
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwapColumnsService, decorators: [{
|
|
113
|
-
type: Injectable,
|
|
114
|
-
args: [{
|
|
115
|
-
providedIn: 'root',
|
|
116
|
-
}]
|
|
117
|
-
}], ctorParameters: function () { return []; } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcC1jb2x1bW5zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9zd2FwLWNvbHVtbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsU0FBUyxDQUFDLEdBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsT0FBYztRQUNwQyxNQUFNLE1BQU0sR0FBbUMsRUFBRSxDQUFDO1FBRWxELE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBVyxFQUFFLGNBQXdCLEVBQUUsRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGlCQUFpQixDQUNmLE9BQWMsRUFDZCxLQUFhLEVBQ2IsSUFBVyxF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Q0FBQzsrR0EzSlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTd2FwQ29sdW1uc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgZGVlcENsb25lKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICB9XHJcblxyXG4gIGZsYXR0ZW5Db2x1bW5zV2l0aFBhdGhzKGNvbHVtbnM6IGFueVtdKTogeyBjb2w6IGFueTsgcGF0aDogbnVtYmVyW10gfVtdIHtcclxuICAgIGNvbnN0IHJlc3VsdDogeyBjb2w6IGFueTsgcGF0aDogbnVtYmVyW10gfVtdID0gW107XHJcblxyXG4gICAgY29uc3QgcmVjdXJzZSA9IChjb2xzOiBhbnlbXSwgY3VycmVudFBhdGg6IG51bWJlcltdID0gW10pID0+IHtcclxuICAgICAgY29scy5mb3JFYWNoKChjb2wsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IFsuLi5jdXJyZW50UGF0aCwgaW5kZXhdO1xyXG4gICAgICAgIHJlc3VsdC5wdXNoKHsgY29sLCBwYXRoIH0pO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICByZWN1cnNlKGNvbC5jaGlsZHJlbiwgcGF0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmVjdXJzZShjb2x1bW5zKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBmaW5kQ29sdW1uQnlJbmRleChcclxuICAgIGNvbHVtbnM6IGFueVtdLFxyXG4gICAgaW5kZXg6IG51bWJlcixcclxuICAgIGZsYXQ6IGFueVtdLFxyXG4gICAgX3BhdGg6IG51bWJlcltdW10gPSBbXSxcclxuICAgIGN1cnJlbnRQYXRoOiBudW1iZXJbXSA9IFtdXHJcbiAgKTogeyBjb2x1bW46IGFueTsgcGFyZW50OiBhbnlbXTsgcGF0aDogbnVtYmVyW10gfSB8IG51bGwge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHVtbnNbaV07XHJcbiAgICAgIGNvbnN0IG5leHRQYXRoID0gWy4uLmN1cnJlbnRQYXRoLCBpXTtcclxuXHJcbiAgICAgIGlmIChmbGF0W2luZGV4XSA9PT0gY29sKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgY29sdW1uOiBjb2wsIHBhcmVudDogY29sdW1ucywgcGF0aDogbmV4dFBhdGggfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sPy5jaGlsZHJlbikpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRDb2x1bW5CeUluZGV4KFxyXG4gICAgICAgICAgY29sPy5jaGlsZHJlbixcclxuICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgZmxhdCxcclxuICAgICAgICAgIF9wYXRoLFxyXG4gICAgICAgICAgbmV4dFBhdGhcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGluc2VydEF0UGF0aChjb2x1bW5zOiBhbnlbXSwgcGF0aDogbnVtYmVyW10sIG5ld0NvbHVtbjogYW55KTogYW55W10ge1xyXG4gICAgY29uc3QgY2xvbmVkID0gdGhpcy5kZWVwQ2xvbmUoY29sdW1ucyk7XHJcbiAgICBsZXQgY3VycmVudCA9IGNsb25lZDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmICghY3VycmVudFtwYXRoW2ldXT8uY2hpbGRyZW4pIHtcclxuICAgICAgICBjdXJyZW50W3BhdGhbaV1dIS5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjdXJyZW50ID0gY3VycmVudFtwYXRoW2ldXT8uY2hpbGRyZW47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5zZXJ0SW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICBjdXJyZW50LnNwbGljZShpbnNlcnRJbmRleCwgMCwgbmV3Q29sdW1uKTtcclxuICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgfVxyXG5cclxuICByZW1vdmVBdFBhdGgoY29sdW1uczogYW55W10sIHBhdGg6IG51bWJlcltdKTogYW55W10ge1xyXG4gICAgY29uc3QgY2xvbmVkID0gdGhpcy5kZWVwQ2xvbmUoY29sdW1ucyk7XHJcbiAgICBsZXQgY3VycmVudCA9IGNsb25lZDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmICghY3VycmVudFtwYXRoW2ldXT8uY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gY2xvbmVkOyAvLyBTYWZldHk6IHBhdGggaXMgaW52YWxpZFxyXG4gICAgICB9XHJcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhdGhbaV1dPy5jaGlsZHJlbjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZW1vdmVJbmRleCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQubGVuZ3RoID4gcmVtb3ZlSW5kZXgpIHtcclxuICAgICAgY3VycmVudC5zcGxpY2UocmVtb3ZlSW5kZXgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgfVxyXG5cclxuICBzd2FwQ29sdW1uc0luVHJlZShcclxuICAgIGN1cnJlbnRDb2x1bW46IGFueSxcclxuICAgIGNvbHVtbnM6IGFueVtdLFxyXG4gICAgZnJvbUluZGV4OiBudW1iZXIsXHJcbiAgICB0b0luZGV4OiBudW1iZXJcclxuICApOiBhbnlbXSB7XHJcbiAgICBjb25zdCBmbGF0ID0gdGhpcy5mbGF0dGVuQ29sdW1uc1dpdGhQYXRocyhjb2x1bW5zKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGZyb21JbmRleCA8IDAgfHxcclxuICAgICAgdG9JbmRleCA8IDAgfHxcclxuICAgICAgZnJvbUluZGV4ID49IGZsYXQubGVuZ3RoIHx8XHJcbiAgICAgIHRvSW5kZXggPj0gZmxhdC5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gY29sdW1uczsgLy8gaW52YWxpZCBpbmRpY2VzXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZnJvbUluZm8gPSB0aGlzLmZpbmRDb2x1bW5CeUluZGV4KGNvbHVtbnMsIGZyb21JbmRleCwgZmxhdCk7XHJcbiAgICBjb25zdCB0b0luZm8gPSB0aGlzLmZpbmRDb2x1bW5CeUluZGV4KGNvbHVtbnMsIHRvSW5kZXgsIGZsYXQpO1xyXG5cclxuICAgIGlmICghZnJvbUluZm8gfHwgIXRvSW5mbykgcmV0dXJuIGNvbHVtbnM7XHJcblxyXG4gICAgY29uc3QgZnJvbUNvbCA9IGZyb21JbmZvLmNvbHVtbjtcclxuICAgIGNvbnN0IHRvQ29sID0gdG9JbmZvLmNvbHVtbjtcclxuXHJcbiAgICBsZXQgdXBkYXRlZENvbHMgPSB0aGlzLnJlbW92ZUF0UGF0aChjb2x1bW5zLCBmcm9tSW5mby5wYXRoKTtcclxuXHJcbiAgICAvLyBDYXNlIDE6IFNhbWUgcGFyZW50XHJcbiAgICBpZiAoXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGZyb21JbmZvLnBhdGguc2xpY2UoMCwgLTEpKSA9PT1cclxuICAgICAgSlNPTi5zdHJpbmdpZnkodG9JbmZvLnBhdGguc2xpY2UoMCwgLTEpKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmluc2VydEF0UGF0aCh1cGRhdGVkQ29scywgdG9JbmZvLnBhdGgsIGZyb21Db2wpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENhc2UgMjogRHJvcCB0YXJnZXQgaXMgYSBncm91cCBoZWFkZXJcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRvQ29sPy5jaGlsZHJlbikpIHtcclxuICAgICAgY29uc3QgY2xvbmVkID0gdGhpcy5kZWVwQ2xvbmUodXBkYXRlZENvbHMpO1xyXG4gICAgICBsZXQgcGFyZW50ID0gY2xvbmVkO1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b0luZm8ucGF0aC5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICBwYXJlbnQgPSBwYXJlbnRbdG9JbmZvLnBhdGhbaV1dLmNoaWxkcmVuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB0YXJnZXQgPSBwYXJlbnRbdG9JbmZvLnBhdGhbdG9JbmZvLnBhdGgubGVuZ3RoIC0gMV1dO1xyXG4gICAgICBpZiAoIXRhcmdldC5jaGlsZHJlbikge1xyXG4gICAgICAgIHRhcmdldC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0YXJnZXQuY2hpbGRyZW4ucHVzaChmcm9tQ29sKTtcclxuICAgICAgcmV0dXJuIGNsb25lZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDYXNlIDM6IERyb3AgdGFyZ2V0IGlzIGEgcmVndWxhciBjb2x1bW4g4oaSIHdyYXAgYm90aCBpbnRvIGEgZ3JvdXBcclxuICAgIGNvbnN0IGdyb3VwSGVhZGVyID0ge1xyXG4gICAgICBoZWFkZXJOYW1lOiB0b0NvbC5oZWFkZXJOYW1lIHx8ICdHcm91cCcsXHJcbiAgICAgIGNoaWxkcmVuOiBbdG9Db2wsIGZyb21Db2xdLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBSZW1vdmUgdGFyZ2V0IGZyb20gaXRzIG9yaWdpbmFsIGxvY2F0aW9uXHJcbiAgICB1cGRhdGVkQ29scyA9IHRoaXMucmVtb3ZlQXRQYXRoKHVwZGF0ZWRDb2xzLCB0b0luZm8ucGF0aCk7XHJcblxyXG4gICAgLy8gSW5zZXJ0IGdyb3VwIGF0IHRhcmdldCBpbmRleFxyXG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0QXRQYXRoKHVwZGF0ZWRDb2xzLCB0b0luZm8ucGF0aCwgZ3JvdXBIZWFkZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, Renderer2 } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export interface DragMoveEvent {
|
|
4
|
-
event: MouseEvent;
|
|
5
|
-
data: any;
|
|
6
|
-
}
|
|
7
|
-
export declare class DraggableHeaderDirective {
|
|
8
|
-
private el;
|
|
9
|
-
private renderer;
|
|
10
|
-
column: any;
|
|
11
|
-
headerName: string;
|
|
12
|
-
dragStart: EventEmitter<any>;
|
|
13
|
-
dragMove: EventEmitter<any>;
|
|
14
|
-
dragEnd: EventEmitter<any>;
|
|
15
|
-
private isDragging;
|
|
16
|
-
private placeholderEl;
|
|
17
|
-
private previewEl;
|
|
18
|
-
constructor(el: ElementRef, renderer: Renderer2);
|
|
19
|
-
startX: number;
|
|
20
|
-
startY: number;
|
|
21
|
-
onMouseDown(event: MouseEvent): void;
|
|
22
|
-
onMouseMove: (event: MouseEvent) => void;
|
|
23
|
-
onMouseUp: (event: MouseEvent) => void;
|
|
24
|
-
private originalCursor;
|
|
25
|
-
private setCursor;
|
|
26
|
-
private resetCursor;
|
|
27
|
-
private startDragging;
|
|
28
|
-
overrideCursor(style: string): void;
|
|
29
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DraggableHeaderDirective, never>;
|
|
30
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableHeaderDirective, "[appDraggableHeader]", never, { "column": { "alias": "column"; "required": false; }; "headerName": { "alias": "headerName"; "required": false; }; }, { "dragStart": "dragStart"; "dragMove": "dragMove"; "dragEnd": "dragEnd"; }, never, never, false, never>;
|
|
31
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SwapColumnsService {
|
|
3
|
-
constructor();
|
|
4
|
-
deepClone(obj: any): any;
|
|
5
|
-
flattenColumnsWithPaths(columns: any[]): {
|
|
6
|
-
col: any;
|
|
7
|
-
path: number[];
|
|
8
|
-
}[];
|
|
9
|
-
findColumnByIndex(columns: any[], index: number, flat: any[], _path?: number[][], currentPath?: number[]): {
|
|
10
|
-
column: any;
|
|
11
|
-
parent: any[];
|
|
12
|
-
path: number[];
|
|
13
|
-
} | null;
|
|
14
|
-
insertAtPath(columns: any[], path: number[], newColumn: any): any[];
|
|
15
|
-
removeAtPath(columns: any[], path: number[]): any[];
|
|
16
|
-
swapColumnsInTree(currentColumn: any, columns: any[], fromIndex: number, toIndex: number): any[];
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SwapColumnsService, never>;
|
|
18
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SwapColumnsService>;
|
|
19
|
-
}
|