@affino/datagrid-vue 0.3.9 → 0.3.11
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/dist/app/dataGridRowHeightMetrics.d.ts +9 -0
- package/dist/app/dataGridRowHeightMetrics.d.ts.map +1 -1
- package/dist/app/dataGridRowHeightMetrics.js +193 -0
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/useDataGridAppAdvancedFilterBuilder.d.ts +1 -0
- package/dist/app/useDataGridAppAdvancedFilterBuilder.d.ts.map +1 -1
- package/dist/app/useDataGridAppAdvancedFilterBuilder.js +13 -0
- package/dist/app/useDataGridAppViewport.d.ts +7 -1
- package/dist/app/useDataGridAppViewport.d.ts.map +1 -1
- package/dist/app/useDataGridAppViewport.js +588 -98
- package/dist/composables/useDataGridRuntime.d.ts +5 -0
- package/dist/composables/useDataGridRuntime.d.ts.map +1 -1
- package/dist/composables/useDataGridRuntime.js +33 -21
- package/package.json +4 -4
|
@@ -4,6 +4,8 @@ export interface DataGridAppRowHeightMetricsOptions {
|
|
|
4
4
|
resolveRowHeightOverride: (rowIndex: number) => number | null;
|
|
5
5
|
resolveRowHeightVersion?: () => number;
|
|
6
6
|
hasRowHeightOverrides?: () => boolean;
|
|
7
|
+
resolveRowHeightOverridesSnapshot?: () => ReadonlyMap<number, number> | null;
|
|
8
|
+
resolveLastRowHeightMutation?: () => DataGridAppRowHeightMutation | null;
|
|
7
9
|
}
|
|
8
10
|
export interface DataGridAppRowHeightMetrics {
|
|
9
11
|
resolveRowHeight: (rowIndex: number) => number;
|
|
@@ -15,5 +17,12 @@ export interface DataGridAppRowHeightMetrics {
|
|
|
15
17
|
};
|
|
16
18
|
resolveTotalHeight: () => number;
|
|
17
19
|
}
|
|
20
|
+
export interface DataGridAppRowHeightMutation {
|
|
21
|
+
version: number;
|
|
22
|
+
kind: "set" | "clear" | "clear-all";
|
|
23
|
+
rowIndex: number | null;
|
|
24
|
+
previousHeight: number | null;
|
|
25
|
+
nextHeight: number | null;
|
|
26
|
+
}
|
|
18
27
|
export declare function createDataGridAppRowHeightMetrics(options: DataGridAppRowHeightMetricsOptions): DataGridAppRowHeightMetrics;
|
|
19
28
|
//# sourceMappingURL=dataGridRowHeightMetrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataGridRowHeightMetrics.d.ts","sourceRoot":"","sources":["../../src/app/dataGridRowHeightMetrics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,MAAM,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,MAAM,CAAA;IAClC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAC7D,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAA;IACtC,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"dataGridRowHeightMetrics.d.ts","sourceRoot":"","sources":["../../src/app/dataGridRowHeightMetrics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,MAAM,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,MAAM,CAAA;IAClC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAC7D,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAA;IACtC,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAA;IACrC,iCAAiC,CAAC,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC5E,4BAA4B,CAAC,EAAE,MAAM,4BAA4B,GAAG,IAAI,CAAA;CACzE;AAED,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC9C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC9C,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IACnD,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK;QACnF,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,kBAAkB,EAAE,MAAM,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,WAAW,CAAA;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAuBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,2BAA2B,CAuW7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const ROW_HEIGHT_CHUNK_SIZE = 256;
|
|
1
2
|
function normalizeRowHeight(value) {
|
|
2
3
|
if (!Number.isFinite(value)) {
|
|
3
4
|
return 1;
|
|
@@ -6,17 +7,136 @@ function normalizeRowHeight(value) {
|
|
|
6
7
|
}
|
|
7
8
|
export function createDataGridAppRowHeightMetrics(options) {
|
|
8
9
|
let cachedMetrics = null;
|
|
10
|
+
const createConstantMetrics = (totalRows, baseRowHeight, version) => ({
|
|
11
|
+
totalRows,
|
|
12
|
+
baseRowHeight,
|
|
13
|
+
version,
|
|
14
|
+
prefixOffsets: null,
|
|
15
|
+
chunkSize: ROW_HEIGHT_CHUNK_SIZE,
|
|
16
|
+
chunkDeltas: null,
|
|
17
|
+
chunkPrefixDeltas: null,
|
|
18
|
+
chunkRowDeltas: null,
|
|
19
|
+
totalHeight: totalRows * baseRowHeight,
|
|
20
|
+
});
|
|
21
|
+
const buildSparseMetrics = (totalRows, baseRowHeight, version, overridesSnapshot) => {
|
|
22
|
+
const chunkSize = ROW_HEIGHT_CHUNK_SIZE;
|
|
23
|
+
const chunkCount = Math.ceil(totalRows / chunkSize);
|
|
24
|
+
const chunkDeltas = new Array(chunkCount).fill(0);
|
|
25
|
+
const chunkPrefixDeltas = new Array(chunkCount + 1).fill(0);
|
|
26
|
+
const chunkRowDeltas = new Array(chunkCount);
|
|
27
|
+
let totalHeight = totalRows * baseRowHeight;
|
|
28
|
+
for (const [rowIndexRaw, overrideRaw] of overridesSnapshot.entries()) {
|
|
29
|
+
const rowIndex = Math.trunc(rowIndexRaw);
|
|
30
|
+
if (!Number.isFinite(rowIndex) || rowIndex < 0 || rowIndex >= totalRows) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const override = normalizeRowHeight(overrideRaw);
|
|
34
|
+
const delta = override - baseRowHeight;
|
|
35
|
+
if (delta === 0) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const chunkIndex = Math.floor(rowIndex / chunkSize);
|
|
39
|
+
const withinChunkIndex = rowIndex - (chunkIndex * chunkSize);
|
|
40
|
+
chunkDeltas[chunkIndex] = (chunkDeltas[chunkIndex] ?? 0) + delta;
|
|
41
|
+
const rowDeltas = chunkRowDeltas[chunkIndex] ?? new Map();
|
|
42
|
+
rowDeltas.set(withinChunkIndex, delta);
|
|
43
|
+
chunkRowDeltas[chunkIndex] = rowDeltas;
|
|
44
|
+
totalHeight += delta;
|
|
45
|
+
}
|
|
46
|
+
for (let chunkIndex = 0; chunkIndex < chunkCount; chunkIndex += 1) {
|
|
47
|
+
chunkPrefixDeltas[chunkIndex + 1] = (chunkPrefixDeltas[chunkIndex] ?? 0) + (chunkDeltas[chunkIndex] ?? 0);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
totalRows,
|
|
51
|
+
baseRowHeight,
|
|
52
|
+
version,
|
|
53
|
+
prefixOffsets: null,
|
|
54
|
+
chunkSize,
|
|
55
|
+
chunkDeltas,
|
|
56
|
+
chunkPrefixDeltas,
|
|
57
|
+
chunkRowDeltas,
|
|
58
|
+
totalHeight,
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const applySparseMutation = (metrics, version, mutation) => {
|
|
62
|
+
if (metrics.chunkDeltas == null
|
|
63
|
+
|| metrics.chunkPrefixDeltas == null
|
|
64
|
+
|| metrics.chunkRowDeltas == null
|
|
65
|
+
|| mutation.kind === "clear-all"
|
|
66
|
+
|| mutation.rowIndex == null
|
|
67
|
+
|| mutation.rowIndex < 0
|
|
68
|
+
|| mutation.rowIndex >= metrics.totalRows) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const rowIndex = Math.trunc(mutation.rowIndex);
|
|
72
|
+
const previousHeight = mutation.previousHeight == null
|
|
73
|
+
? metrics.baseRowHeight
|
|
74
|
+
: normalizeRowHeight(mutation.previousHeight);
|
|
75
|
+
const nextHeight = mutation.nextHeight == null
|
|
76
|
+
? metrics.baseRowHeight
|
|
77
|
+
: normalizeRowHeight(mutation.nextHeight);
|
|
78
|
+
const previousDelta = previousHeight - metrics.baseRowHeight;
|
|
79
|
+
const nextDelta = nextHeight - metrics.baseRowHeight;
|
|
80
|
+
const deltaDiff = nextDelta - previousDelta;
|
|
81
|
+
const chunkIndex = Math.floor(rowIndex / metrics.chunkSize);
|
|
82
|
+
const withinChunkIndex = rowIndex - (chunkIndex * metrics.chunkSize);
|
|
83
|
+
const rowDeltas = metrics.chunkRowDeltas[chunkIndex] ?? new Map();
|
|
84
|
+
if (nextDelta === 0) {
|
|
85
|
+
rowDeltas.delete(withinChunkIndex);
|
|
86
|
+
metrics.chunkRowDeltas[chunkIndex] = rowDeltas.size > 0 ? rowDeltas : undefined;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
rowDeltas.set(withinChunkIndex, nextDelta);
|
|
90
|
+
metrics.chunkRowDeltas[chunkIndex] = rowDeltas;
|
|
91
|
+
}
|
|
92
|
+
if (deltaDiff !== 0) {
|
|
93
|
+
metrics.chunkDeltas[chunkIndex] = (metrics.chunkDeltas[chunkIndex] ?? 0) + deltaDiff;
|
|
94
|
+
for (let index = chunkIndex + 1; index < metrics.chunkPrefixDeltas.length; index += 1) {
|
|
95
|
+
metrics.chunkPrefixDeltas[index] = (metrics.chunkPrefixDeltas[index] ?? 0) + deltaDiff;
|
|
96
|
+
}
|
|
97
|
+
metrics.totalHeight += deltaDiff;
|
|
98
|
+
}
|
|
99
|
+
metrics.version = version;
|
|
100
|
+
return metrics;
|
|
101
|
+
};
|
|
9
102
|
const resolveCachedMetrics = () => {
|
|
10
103
|
const totalRows = Math.max(0, Math.trunc(options.totalRows()));
|
|
11
104
|
const baseRowHeight = normalizeRowHeight(options.resolveBaseRowHeight());
|
|
12
105
|
const version = options.resolveRowHeightVersion?.() ?? 0;
|
|
13
106
|
const hasRowHeightOverrides = options.hasRowHeightOverrides?.() ?? true;
|
|
107
|
+
const overridesSnapshot = options.resolveRowHeightOverridesSnapshot?.() ?? null;
|
|
108
|
+
const lastRowHeightMutation = options.resolveLastRowHeightMutation?.() ?? null;
|
|
14
109
|
if (cachedMetrics
|
|
15
110
|
&& cachedMetrics.totalRows === totalRows
|
|
16
111
|
&& cachedMetrics.baseRowHeight === baseRowHeight
|
|
17
112
|
&& cachedMetrics.version === version) {
|
|
18
113
|
return cachedMetrics;
|
|
19
114
|
}
|
|
115
|
+
if (cachedMetrics
|
|
116
|
+
&& cachedMetrics.totalRows === totalRows
|
|
117
|
+
&& cachedMetrics.baseRowHeight === baseRowHeight
|
|
118
|
+
&& overridesSnapshot != null
|
|
119
|
+
&& version === cachedMetrics.version + 1
|
|
120
|
+
&& lastRowHeightMutation != null
|
|
121
|
+
&& lastRowHeightMutation.version === version) {
|
|
122
|
+
const updatedMetrics = applySparseMutation(cachedMetrics, version, lastRowHeightMutation);
|
|
123
|
+
if (updatedMetrics) {
|
|
124
|
+
cachedMetrics = updatedMetrics;
|
|
125
|
+
return updatedMetrics;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!hasRowHeightOverrides) {
|
|
129
|
+
cachedMetrics = createConstantMetrics(totalRows, baseRowHeight, version);
|
|
130
|
+
return cachedMetrics;
|
|
131
|
+
}
|
|
132
|
+
if (overridesSnapshot != null) {
|
|
133
|
+
if (overridesSnapshot.size === 0) {
|
|
134
|
+
cachedMetrics = createConstantMetrics(totalRows, baseRowHeight, version);
|
|
135
|
+
return cachedMetrics;
|
|
136
|
+
}
|
|
137
|
+
cachedMetrics = buildSparseMetrics(totalRows, baseRowHeight, version, overridesSnapshot);
|
|
138
|
+
return cachedMetrics;
|
|
139
|
+
}
|
|
20
140
|
let prefixOffsets = null;
|
|
21
141
|
if (hasRowHeightOverrides) {
|
|
22
142
|
prefixOffsets = new Array(totalRows + 1);
|
|
@@ -32,6 +152,13 @@ export function createDataGridAppRowHeightMetrics(options) {
|
|
|
32
152
|
baseRowHeight,
|
|
33
153
|
version,
|
|
34
154
|
prefixOffsets,
|
|
155
|
+
chunkSize: ROW_HEIGHT_CHUNK_SIZE,
|
|
156
|
+
chunkDeltas: null,
|
|
157
|
+
chunkPrefixDeltas: null,
|
|
158
|
+
chunkRowDeltas: null,
|
|
159
|
+
totalHeight: prefixOffsets == null
|
|
160
|
+
? totalRows * baseRowHeight
|
|
161
|
+
: (prefixOffsets[totalRows] ?? (totalRows * baseRowHeight)),
|
|
35
162
|
};
|
|
36
163
|
return cachedMetrics;
|
|
37
164
|
};
|
|
@@ -40,6 +167,13 @@ export function createDataGridAppRowHeightMetrics(options) {
|
|
|
40
167
|
if (metrics.totalRows <= 0) {
|
|
41
168
|
return metrics.baseRowHeight;
|
|
42
169
|
}
|
|
170
|
+
if (metrics.chunkRowDeltas != null) {
|
|
171
|
+
const normalizedIndex = Math.max(0, Math.min(metrics.totalRows - 1, Math.trunc(rowIndex)));
|
|
172
|
+
const chunkIndex = Math.floor(normalizedIndex / metrics.chunkSize);
|
|
173
|
+
const withinChunkIndex = normalizedIndex - (chunkIndex * metrics.chunkSize);
|
|
174
|
+
const delta = metrics.chunkRowDeltas[chunkIndex]?.get(withinChunkIndex) ?? 0;
|
|
175
|
+
return metrics.baseRowHeight + delta;
|
|
176
|
+
}
|
|
43
177
|
if (metrics.prefixOffsets == null) {
|
|
44
178
|
return metrics.baseRowHeight;
|
|
45
179
|
}
|
|
@@ -54,6 +188,22 @@ export function createDataGridAppRowHeightMetrics(options) {
|
|
|
54
188
|
return 0;
|
|
55
189
|
}
|
|
56
190
|
const normalizedIndex = Math.max(0, Math.min(metrics.totalRows, Math.trunc(rowIndex)));
|
|
191
|
+
if (metrics.chunkDeltas != null
|
|
192
|
+
&& metrics.chunkPrefixDeltas != null
|
|
193
|
+
&& metrics.chunkRowDeltas != null) {
|
|
194
|
+
const chunkIndex = Math.floor(normalizedIndex / metrics.chunkSize);
|
|
195
|
+
let offset = normalizedIndex * metrics.baseRowHeight + (metrics.chunkPrefixDeltas[chunkIndex] ?? 0);
|
|
196
|
+
const withinChunkIndex = normalizedIndex - (chunkIndex * metrics.chunkSize);
|
|
197
|
+
if (withinChunkIndex > 0) {
|
|
198
|
+
const rowDeltas = metrics.chunkRowDeltas[chunkIndex];
|
|
199
|
+
if (rowDeltas) {
|
|
200
|
+
for (let row = 0; row < withinChunkIndex; row += 1) {
|
|
201
|
+
offset += rowDeltas.get(row) ?? 0;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return offset;
|
|
206
|
+
}
|
|
57
207
|
if (metrics.prefixOffsets == null) {
|
|
58
208
|
return normalizedIndex * metrics.baseRowHeight;
|
|
59
209
|
}
|
|
@@ -64,6 +214,46 @@ export function createDataGridAppRowHeightMetrics(options) {
|
|
|
64
214
|
if (metrics.totalRows <= 0) {
|
|
65
215
|
return 0;
|
|
66
216
|
}
|
|
217
|
+
if (metrics.chunkDeltas != null
|
|
218
|
+
&& metrics.chunkPrefixDeltas != null
|
|
219
|
+
&& metrics.chunkRowDeltas != null) {
|
|
220
|
+
if (metrics.totalHeight <= 0) {
|
|
221
|
+
return 0;
|
|
222
|
+
}
|
|
223
|
+
const clampedOffset = Math.max(0, Math.min(metrics.totalHeight - 1, offset));
|
|
224
|
+
let low = 0;
|
|
225
|
+
let high = metrics.chunkDeltas.length - 1;
|
|
226
|
+
while (low <= high) {
|
|
227
|
+
const middle = Math.floor((low + high) / 2);
|
|
228
|
+
const chunkStartOffset = (middle * metrics.chunkSize * metrics.baseRowHeight)
|
|
229
|
+
+ (metrics.chunkPrefixDeltas[middle] ?? 0);
|
|
230
|
+
const chunkRowEnd = Math.min(metrics.totalRows, (middle + 1) * metrics.chunkSize);
|
|
231
|
+
const chunkEndOffset = (chunkRowEnd * metrics.baseRowHeight)
|
|
232
|
+
+ (metrics.chunkPrefixDeltas[middle + 1] ?? 0);
|
|
233
|
+
if (clampedOffset < chunkStartOffset) {
|
|
234
|
+
high = middle - 1;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
if (clampedOffset >= chunkEndOffset) {
|
|
238
|
+
low = middle + 1;
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const chunkStartRow = middle * metrics.chunkSize;
|
|
242
|
+
const rowDeltas = metrics.chunkRowDeltas[middle];
|
|
243
|
+
let rowStartOffset = chunkStartOffset;
|
|
244
|
+
const rowsInChunk = chunkRowEnd - chunkStartRow;
|
|
245
|
+
for (let rowOffset = 0; rowOffset < rowsInChunk; rowOffset += 1) {
|
|
246
|
+
const rowHeight = metrics.baseRowHeight + (rowDeltas?.get(rowOffset) ?? 0);
|
|
247
|
+
const rowEndOffset = rowStartOffset + rowHeight;
|
|
248
|
+
if (clampedOffset < rowEndOffset) {
|
|
249
|
+
return chunkStartRow + rowOffset;
|
|
250
|
+
}
|
|
251
|
+
rowStartOffset = rowEndOffset;
|
|
252
|
+
}
|
|
253
|
+
return Math.max(0, chunkRowEnd - 1);
|
|
254
|
+
}
|
|
255
|
+
return Math.max(0, Math.min(metrics.totalRows - 1, low * metrics.chunkSize));
|
|
256
|
+
}
|
|
67
257
|
if (metrics.prefixOffsets == null) {
|
|
68
258
|
const normalizedHeight = Math.max(1, metrics.baseRowHeight);
|
|
69
259
|
return Math.max(0, Math.min(metrics.totalRows - 1, Math.floor(Math.max(0, offset) / normalizedHeight)));
|
|
@@ -104,6 +294,9 @@ export function createDataGridAppRowHeightMetrics(options) {
|
|
|
104
294
|
};
|
|
105
295
|
const resolveTotalHeight = () => {
|
|
106
296
|
const metrics = resolveCachedMetrics();
|
|
297
|
+
if (metrics.chunkDeltas != null) {
|
|
298
|
+
return metrics.totalHeight;
|
|
299
|
+
}
|
|
107
300
|
if (metrics.prefixOffsets == null) {
|
|
108
301
|
return metrics.totalRows * metrics.baseRowHeight;
|
|
109
302
|
}
|
package/dist/app/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { DataGridAppAdvancedFilterClauseDraft, DataGridAppAdvancedFilterClauseJoin, DataGridAppAdvancedFilterClausePatch, DataGridAppAdvancedFilterColumnOption, } from "./advancedFilterPanel.types";
|
|
2
2
|
export type { DataGridAppApplyColumnLayoutPayload, DataGridAppColumnLayoutDraftColumn, DataGridAppColumnLayoutPanelItem, DataGridAppColumnLayoutVisibilityPatch, } from "./columnLayoutPanel.types";
|
|
3
3
|
export { useDataGridAppModeMeta, type UseDataGridAppModeMetaOptions, type UseDataGridAppModeMetaResult, } from "./useDataGridAppModeMeta";
|
|
4
|
-
export { createDataGridAppRowHeightMetrics, type DataGridAppRowHeightMetrics, type DataGridAppRowHeightMetricsOptions, } from "./dataGridRowHeightMetrics";
|
|
4
|
+
export { createDataGridAppRowHeightMetrics, type DataGridAppRowHeightMutation, type DataGridAppRowHeightMetrics, type DataGridAppRowHeightMetricsOptions, } from "./dataGridRowHeightMetrics";
|
|
5
5
|
export { useDataGridAppClipboard, type DataGridAppPendingClipboardEdge, type DataGridAppPendingClipboardOperation, type UseDataGridAppClipboardOptions, type UseDataGridAppClipboardResult, } from "./useDataGridAppClipboard";
|
|
6
6
|
export { useDataGridAppFill, type UseDataGridAppFillOptions, type UseDataGridAppFillResult, } from "./useDataGridAppFill";
|
|
7
7
|
export { useDataGridAppInteractionController, type UseDataGridAppInteractionControllerOptions, type UseDataGridAppInteractionControllerResult, } from "./useDataGridAppInteractionController";
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,6BAA6B,CAAA;AAEpC,YAAY,EACV,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,sCAAsC,GACvC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,iCAAiC,EACjC,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,GACxC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,uBAAuB,EACvB,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,mCAAmC,EACnC,KAAK,0CAA0C,EAC/C,KAAK,yCAAyC,GAC/C,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,+BAA+B,EAC/B,KAAK,sCAAsC,GAC5C,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,mCAAmC,EACnC,KAAK,yCAAyC,GAC/C,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,+BAA+B,EAC/B,KAAK,qCAAqC,GAC3C,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,8BAA8B,EAC9B,KAAK,oCAAoC,GAC1C,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,gCAAgC,EAChC,KAAK,uCAAuC,EAC5C,KAAK,sCAAsC,GAC5C,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACL,0BAA0B,EAC1B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,0BAA0B,EAC1B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,6BAA6B,CAAA;AAEpC,YAAY,EACV,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,sCAAsC,GACvC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,iCAAiC,EACjC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,GACxC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,uBAAuB,EACvB,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,mCAAmC,EACnC,KAAK,0CAA0C,EAC/C,KAAK,yCAAyC,GAC/C,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,+BAA+B,EAC/B,KAAK,sCAAsC,GAC5C,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,GACzC,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,mCAAmC,EACnC,KAAK,yCAAyC,GAC/C,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,+BAA+B,EAC/B,KAAK,qCAAqC,GAC3C,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,8BAA8B,EAC9B,KAAK,oCAAoC,GAC1C,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,gCAAgC,EAChC,KAAK,uCAAuC,EAC5C,KAAK,sCAAsC,GAC5C,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACL,0BAA0B,EAC1B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,0BAA0B,EAC1B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAA"}
|
|
@@ -11,6 +11,7 @@ export interface UseDataGridAppAdvancedFilterBuilderResult {
|
|
|
11
11
|
advancedFilterDraftClauses: ComputedRef<readonly DataGridAppAdvancedFilterClauseDraft[]>;
|
|
12
12
|
advancedFilterColumns: ComputedRef<readonly DataGridAppAdvancedFilterColumnOption[]>;
|
|
13
13
|
appliedAdvancedFilterExpression: ComputedRef<DataGridAdvancedFilterExpression | null>;
|
|
14
|
+
hydrateAdvancedFilterClauses: (clauses: readonly DataGridAppAdvancedFilterClauseDraft[]) => void;
|
|
14
15
|
openAdvancedFilterPanel: () => void;
|
|
15
16
|
addAdvancedFilterClause: () => void;
|
|
16
17
|
removeAdvancedFilterClause: (clauseId: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppAdvancedFilterBuilder.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppAdvancedFilterBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AACrD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,KAAK,EACV,oCAAoC,EAEpC,oCAAoC,EACpC,qCAAqC,EACtC,MAAM,6BAA6B,CAAA;AAEpC,UAAU,0CAA0C;IAClD,cAAc,EAAE,MAAM,SAAS,qCAAqC,EAAE,CAAA;IACtE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C;AAKD,MAAM,WAAW,yCAAyC;IACxD,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/C,0BAA0B,EAAE,WAAW,CAAC,SAAS,oCAAoC,EAAE,CAAC,CAAA;IACxF,qBAAqB,EAAE,WAAW,CAAC,SAAS,qCAAqC,EAAE,CAAC,CAAA;IACpF,+BAA+B,EAAE,WAAW,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;IACrF,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,0BAA0B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,0BAA0B,EAAE,CAAC,KAAK,EAAE,oCAAoC,KAAK,IAAI,CAAA;IACjF,yBAAyB,EAAE,MAAM,IAAI,CAAA;IACrC,wBAAwB,EAAE,MAAM,IAAI,CAAA;IACpC,wBAAwB,EAAE,MAAM,IAAI,CAAA;CACrC;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,0CAA0C,GAClD,yCAAyC,
|
|
1
|
+
{"version":3,"file":"useDataGridAppAdvancedFilterBuilder.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppAdvancedFilterBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AACrD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,KAAK,EACV,oCAAoC,EAEpC,oCAAoC,EACpC,qCAAqC,EACtC,MAAM,6BAA6B,CAAA;AAEpC,UAAU,0CAA0C;IAClD,cAAc,EAAE,MAAM,SAAS,qCAAqC,EAAE,CAAA;IACtE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C;AAKD,MAAM,WAAW,yCAAyC;IACxD,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/C,0BAA0B,EAAE,WAAW,CAAC,SAAS,oCAAoC,EAAE,CAAC,CAAA;IACxF,qBAAqB,EAAE,WAAW,CAAC,SAAS,qCAAqC,EAAE,CAAC,CAAA;IACpF,+BAA+B,EAAE,WAAW,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;IACrF,4BAA4B,EAAE,CAAC,OAAO,EAAE,SAAS,oCAAoC,EAAE,KAAK,IAAI,CAAA;IAChG,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,0BAA0B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,0BAA0B,EAAE,CAAC,KAAK,EAAE,oCAAoC,KAAK,IAAI,CAAA;IACjF,yBAAyB,EAAE,MAAM,IAAI,CAAA;IACrC,wBAAwB,EAAE,MAAM,IAAI,CAAA;IACpC,wBAAwB,EAAE,MAAM,IAAI,CAAA;CACrC;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,0CAA0C,GAClD,yCAAyC,CA+K3C"}
|
|
@@ -36,6 +36,14 @@ export function useDataGridAppAdvancedFilterBuilder(options) {
|
|
|
36
36
|
value: clause.value,
|
|
37
37
|
}));
|
|
38
38
|
};
|
|
39
|
+
const cloneAppliedClauses = (clauses) => {
|
|
40
|
+
return clauses.map(clause => createClause({
|
|
41
|
+
join: clause.join,
|
|
42
|
+
columnKey: clause.columnKey,
|
|
43
|
+
operator: clause.operator,
|
|
44
|
+
value: clause.value,
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
39
47
|
const buildAdvancedFilterExpressionFromClauses = (clauses) => {
|
|
40
48
|
const normalizedClauses = clauses
|
|
41
49
|
.map(clause => ({
|
|
@@ -81,6 +89,10 @@ export function useDataGridAppAdvancedFilterBuilder(options) {
|
|
|
81
89
|
const appliedAdvancedFilterExpression = computed(() => {
|
|
82
90
|
return buildAdvancedFilterExpressionFromClauses(appliedClauses.value);
|
|
83
91
|
});
|
|
92
|
+
const hydrateAdvancedFilterClauses = (clauses) => {
|
|
93
|
+
appliedClauses.value = cloneAppliedClauses(clauses);
|
|
94
|
+
draftClauses.value = cloneClauses(appliedClauses.value);
|
|
95
|
+
};
|
|
84
96
|
const openAdvancedFilterPanel = () => {
|
|
85
97
|
draftClauses.value = cloneClauses(appliedClauses.value);
|
|
86
98
|
isPanelOpen.value = true;
|
|
@@ -128,6 +140,7 @@ export function useDataGridAppAdvancedFilterBuilder(options) {
|
|
|
128
140
|
advancedFilterDraftClauses: computed(() => draftClauses.value),
|
|
129
141
|
advancedFilterColumns,
|
|
130
142
|
appliedAdvancedFilterExpression,
|
|
143
|
+
hydrateAdvancedFilterClauses,
|
|
131
144
|
openAdvancedFilterPanel,
|
|
132
145
|
addAdvancedFilterClause,
|
|
133
146
|
removeAdvancedFilterClause,
|
|
@@ -3,7 +3,11 @@ import type { DataGridColumnSnapshot, DataGridRowNode } from "@affino/datagrid-c
|
|
|
3
3
|
import type { UseDataGridRuntimeResult } from "../composables/useDataGridRuntime";
|
|
4
4
|
import type { DataGridAppMode, DataGridAppRowRenderMode } from "./useDataGridAppControls";
|
|
5
5
|
type MaybeRef<T> = T | Ref<T>;
|
|
6
|
-
export type DataGridAppBodyViewportRuntime<TRow> = Pick<UseDataGridRuntimeResult<TRow>, "virtualWindow" | "syncBodyRowsInRange" | "rowPartition"
|
|
6
|
+
export type DataGridAppBodyViewportRuntime<TRow> = Pick<UseDataGridRuntimeResult<TRow>, "virtualWindow" | "syncBodyRowsInRange" | "rowPartition"> & {
|
|
7
|
+
setViewportRange?: UseDataGridRuntimeResult<TRow>["setViewportRange"];
|
|
8
|
+
setVirtualWindowRange?: UseDataGridRuntimeResult<TRow>["setVirtualWindowRange"];
|
|
9
|
+
getBodyRowAtIndex?: (rowIndex: number) => DataGridRowNode<TRow> | null;
|
|
10
|
+
};
|
|
7
11
|
export interface UseDataGridAppViewportOptions<TRow> {
|
|
8
12
|
runtime: DataGridAppBodyViewportRuntime<TRow>;
|
|
9
13
|
mode: MaybeRef<DataGridAppMode>;
|
|
@@ -26,6 +30,8 @@ export interface UseDataGridAppViewportOptions<TRow> {
|
|
|
26
30
|
resolveRowOffset?: (rowIndex: number) => number;
|
|
27
31
|
resolveRowIndexAtOffset?: (offset: number) => number;
|
|
28
32
|
resolveTotalRowHeight?: () => number;
|
|
33
|
+
requestAnimationFrame?: (callback: FrameRequestCallback) => number;
|
|
34
|
+
cancelAnimationFrame?: (handle: number) => void;
|
|
29
35
|
}
|
|
30
36
|
export interface UseDataGridAppViewportResult<TRow> {
|
|
31
37
|
headerViewportRef: Ref<HTMLElement | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridAppViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppViewport.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useDataGridAppViewport.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppViewport.ts"],"names":[],"mappings":"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"}
|