@vuu-ui/vuu-data-local 0.13.7 → 0.13.8
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/cjs/index.js +1992 -6
- package/cjs/index.js.map +1 -1
- package/esm/index.js +1993 -3
- package/esm/index.js.map +1 -1
- package/package.json +7 -7
- package/cjs/array-data-source/aggregate-utils.js +0 -237
- package/cjs/array-data-source/aggregate-utils.js.map +0 -1
- package/cjs/array-data-source/array-data-source.js +0 -669
- package/cjs/array-data-source/array-data-source.js.map +0 -1
- package/cjs/array-data-source/array-data-utils.js +0 -52
- package/cjs/array-data-source/array-data-utils.js.map +0 -1
- package/cjs/array-data-source/group-utils.js +0 -181
- package/cjs/array-data-source/group-utils.js.map +0 -1
- package/cjs/array-data-source/sort-utils.js +0 -54
- package/cjs/array-data-source/sort-utils.js.map +0 -1
- package/cjs/json-data-source/JsonDataSource.js +0 -398
- package/cjs/json-data-source/JsonDataSource.js.map +0 -1
- package/cjs/tree-data-source/IconProvider.js +0 -31
- package/cjs/tree-data-source/IconProvider.js.map +0 -1
- package/cjs/tree-data-source/TreeDataSource.js +0 -421
- package/cjs/tree-data-source/TreeDataSource.js.map +0 -1
- package/esm/array-data-source/aggregate-utils.js +0 -235
- package/esm/array-data-source/aggregate-utils.js.map +0 -1
- package/esm/array-data-source/array-data-source.js +0 -667
- package/esm/array-data-source/array-data-source.js.map +0 -1
- package/esm/array-data-source/array-data-utils.js +0 -49
- package/esm/array-data-source/array-data-utils.js.map +0 -1
- package/esm/array-data-source/group-utils.js +0 -177
- package/esm/array-data-source/group-utils.js.map +0 -1
- package/esm/array-data-source/sort-utils.js +0 -52
- package/esm/array-data-source/sort-utils.js.map +0 -1
- package/esm/json-data-source/JsonDataSource.js +0 -396
- package/esm/json-data-source/JsonDataSource.js.map +0 -1
- package/esm/tree-data-source/IconProvider.js +0 -29
- package/esm/tree-data-source/IconProvider.js.map +0 -1
- package/esm/tree-data-source/TreeDataSource.js +0 -419
- package/esm/tree-data-source/TreeDataSource.js.map +0 -1
|
@@ -1,398 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
-
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __typeError = (msg) => {
|
|
7
|
-
throw TypeError(msg);
|
|
8
|
-
};
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
11
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
12
|
-
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
13
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
14
|
-
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
15
|
-
var __privateWrapper = (obj, member, setter, getter) => ({
|
|
16
|
-
set _(value) {
|
|
17
|
-
__privateSet(obj, member, value);
|
|
18
|
-
},
|
|
19
|
-
get _() {
|
|
20
|
-
return __privateGet(obj, member, getter);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
var _aggregations, _config, _data, _filter, _groupBy, _range, _selectedRowsCount, _size, _sort, _status, _title;
|
|
24
|
-
const NULL_SCHEMA = { columns: [], key: "", table: { module: "", table: "" } };
|
|
25
|
-
const { DEPTH, IDX, IS_EXPANDED, IS_LEAF, KEY, SELECTED } = vuuUtils.metadataKeys;
|
|
26
|
-
const toClientRow = (row, keys) => {
|
|
27
|
-
const [rowIndex] = row;
|
|
28
|
-
const clientRow = row.slice();
|
|
29
|
-
clientRow[1] = keys.keyFor(rowIndex);
|
|
30
|
-
return clientRow;
|
|
31
|
-
};
|
|
32
|
-
class JsonDataSource extends vuuUtils.EventEmitter {
|
|
33
|
-
constructor({
|
|
34
|
-
aggregations,
|
|
35
|
-
data,
|
|
36
|
-
filterSpec,
|
|
37
|
-
groupBy,
|
|
38
|
-
sort,
|
|
39
|
-
title,
|
|
40
|
-
viewport
|
|
41
|
-
}) {
|
|
42
|
-
super();
|
|
43
|
-
__publicField(this, "columnDescriptors");
|
|
44
|
-
__publicField(this, "clientCallback");
|
|
45
|
-
__publicField(this, "expandedRows", /* @__PURE__ */ new Set());
|
|
46
|
-
__publicField(this, "visibleRows", []);
|
|
47
|
-
__privateAdd(this, _aggregations, []);
|
|
48
|
-
__privateAdd(this, _config, vuuUtils.vanillaConfig);
|
|
49
|
-
__privateAdd(this, _data);
|
|
50
|
-
__privateAdd(this, _filter, { filter: "" });
|
|
51
|
-
__privateAdd(this, _groupBy, []);
|
|
52
|
-
__privateAdd(this, _range, vuuUtils.Range(0, 0));
|
|
53
|
-
__privateAdd(this, _selectedRowsCount, 0);
|
|
54
|
-
__privateAdd(this, _size, 0);
|
|
55
|
-
__privateAdd(this, _sort, { sortDefs: [] });
|
|
56
|
-
__privateAdd(this, _status, "initialising");
|
|
57
|
-
__privateAdd(this, _title);
|
|
58
|
-
__publicField(this, "rowCount");
|
|
59
|
-
__publicField(this, "viewport");
|
|
60
|
-
__publicField(this, "keys", new vuuUtils.KeySet(__privateGet(this, _range)));
|
|
61
|
-
if (!data) {
|
|
62
|
-
throw Error("JsonDataSource constructor called without data");
|
|
63
|
-
}
|
|
64
|
-
[this.columnDescriptors, __privateWrapper(this, _data)._] = vuuUtils.jsonToDataSourceRows(data);
|
|
65
|
-
this.visibleRows = __privateGet(this, _data).filter((row) => row[DEPTH] === 0).map(
|
|
66
|
-
(row, index) => [index, index].concat(row.slice(2))
|
|
67
|
-
);
|
|
68
|
-
this.viewport = viewport || vuuUtils.uuid();
|
|
69
|
-
if (aggregations) {
|
|
70
|
-
__privateSet(this, _aggregations, aggregations);
|
|
71
|
-
}
|
|
72
|
-
if (this.columnDescriptors) {
|
|
73
|
-
__privateSet(this, _config, {
|
|
74
|
-
...__privateGet(this, _config),
|
|
75
|
-
columns: this.columnDescriptors.map((c) => c.name)
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
if (filterSpec) {
|
|
79
|
-
__privateSet(this, _filter, filterSpec);
|
|
80
|
-
}
|
|
81
|
-
if (groupBy) {
|
|
82
|
-
__privateSet(this, _groupBy, groupBy);
|
|
83
|
-
}
|
|
84
|
-
if (sort) {
|
|
85
|
-
__privateSet(this, _sort, sort);
|
|
86
|
-
}
|
|
87
|
-
__privateSet(this, _title, title);
|
|
88
|
-
}
|
|
89
|
-
async subscribe({
|
|
90
|
-
viewport = this.viewport ?? vuuUtils.uuid(),
|
|
91
|
-
columns,
|
|
92
|
-
aggregations,
|
|
93
|
-
range,
|
|
94
|
-
sort,
|
|
95
|
-
groupBy,
|
|
96
|
-
filterSpec
|
|
97
|
-
}, callback) {
|
|
98
|
-
this.clientCallback = callback;
|
|
99
|
-
if (aggregations) {
|
|
100
|
-
__privateSet(this, _aggregations, aggregations);
|
|
101
|
-
}
|
|
102
|
-
if (columns) {
|
|
103
|
-
__privateSet(this, _config, {
|
|
104
|
-
...__privateGet(this, _config),
|
|
105
|
-
columns
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
if (filterSpec) {
|
|
109
|
-
__privateSet(this, _filter, filterSpec);
|
|
110
|
-
}
|
|
111
|
-
if (groupBy) {
|
|
112
|
-
__privateSet(this, _groupBy, groupBy);
|
|
113
|
-
}
|
|
114
|
-
if (sort) {
|
|
115
|
-
__privateSet(this, _sort, sort);
|
|
116
|
-
}
|
|
117
|
-
if (__privateGet(this, _status) !== "initialising") {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
this.viewport = viewport;
|
|
121
|
-
__privateSet(this, _status, "subscribed");
|
|
122
|
-
this.clientCallback?.({
|
|
123
|
-
aggregations: __privateGet(this, _aggregations),
|
|
124
|
-
type: "subscribed",
|
|
125
|
-
clientViewportId: this.viewport,
|
|
126
|
-
columns: __privateGet(this, _config).columns,
|
|
127
|
-
filterSpec: __privateGet(this, _filter),
|
|
128
|
-
groupBy: __privateGet(this, _groupBy),
|
|
129
|
-
range: __privateGet(this, _range),
|
|
130
|
-
sort: __privateGet(this, _sort),
|
|
131
|
-
tableSchema: NULL_SCHEMA
|
|
132
|
-
});
|
|
133
|
-
this.clientCallback({
|
|
134
|
-
clientViewportId: this.viewport,
|
|
135
|
-
mode: "size-only",
|
|
136
|
-
type: "viewport-update",
|
|
137
|
-
size: this.visibleRows.length
|
|
138
|
-
});
|
|
139
|
-
if (range && !__privateGet(this, _range).equals(range)) {
|
|
140
|
-
this.range = range;
|
|
141
|
-
} else if (__privateGet(this, _range) !== vuuUtils.NULL_RANGE) {
|
|
142
|
-
this.sendRowsToClient();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
unsubscribe() {
|
|
146
|
-
console.log("noop");
|
|
147
|
-
}
|
|
148
|
-
suspend() {
|
|
149
|
-
console.log("noop");
|
|
150
|
-
return this;
|
|
151
|
-
}
|
|
152
|
-
resume() {
|
|
153
|
-
console.log("noop");
|
|
154
|
-
return this;
|
|
155
|
-
}
|
|
156
|
-
disable() {
|
|
157
|
-
console.log("noop");
|
|
158
|
-
return this;
|
|
159
|
-
}
|
|
160
|
-
enable() {
|
|
161
|
-
console.log("noop");
|
|
162
|
-
return this;
|
|
163
|
-
}
|
|
164
|
-
set data(data) {
|
|
165
|
-
[this.columnDescriptors, __privateWrapper(this, _data)._] = vuuUtils.jsonToDataSourceRows(data);
|
|
166
|
-
this.visibleRows = __privateGet(this, _data).filter((row) => row[DEPTH] === 0).map(
|
|
167
|
-
(row, index) => [index, index].concat(row.slice(2))
|
|
168
|
-
);
|
|
169
|
-
requestAnimationFrame(() => {
|
|
170
|
-
this.sendRowsToClient();
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
select(selected) {
|
|
174
|
-
const updatedRows = [];
|
|
175
|
-
for (const row of __privateGet(this, _data)) {
|
|
176
|
-
const { [IDX]: rowIndex, [SELECTED]: sel } = row;
|
|
177
|
-
const wasSelected = sel === 1;
|
|
178
|
-
const nowSelected = vuuUtils.isSelected(selected, rowIndex);
|
|
179
|
-
if (nowSelected !== wasSelected) {
|
|
180
|
-
const selectedRow = row.slice();
|
|
181
|
-
selectedRow[SELECTED] = nowSelected ? 1 : 0;
|
|
182
|
-
__privateGet(this, _data)[rowIndex] = selectedRow;
|
|
183
|
-
updatedRows.push(selectedRow);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (updatedRows.length > 0) {
|
|
187
|
-
this.clientCallback?.({
|
|
188
|
-
clientViewportId: this.viewport,
|
|
189
|
-
mode: "update",
|
|
190
|
-
type: "viewport-update",
|
|
191
|
-
rows: updatedRows
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
getRowKey(keyOrIndex) {
|
|
196
|
-
if (typeof keyOrIndex === "string") {
|
|
197
|
-
return keyOrIndex;
|
|
198
|
-
}
|
|
199
|
-
const row = this.visibleRows[keyOrIndex];
|
|
200
|
-
if (row === void 0) {
|
|
201
|
-
throw Error(`row not found at index ${keyOrIndex}`);
|
|
202
|
-
}
|
|
203
|
-
return row?.[KEY];
|
|
204
|
-
}
|
|
205
|
-
openTreeNode(keyOrIndex) {
|
|
206
|
-
const key = this.getRowKey(keyOrIndex);
|
|
207
|
-
this.expandedRows.add(key);
|
|
208
|
-
this.visibleRows = getVisibleRows(__privateGet(this, _data), this.expandedRows);
|
|
209
|
-
const { from, to } = __privateGet(this, _range);
|
|
210
|
-
this.clientCallback?.({
|
|
211
|
-
clientViewportId: this.viewport,
|
|
212
|
-
mode: "batch",
|
|
213
|
-
rows: this.visibleRows.slice(from, to).map((row) => toClientRow(row, this.keys)),
|
|
214
|
-
size: this.visibleRows.length,
|
|
215
|
-
type: "viewport-update"
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
closeTreeNode(keyOrIndex, cascade = false) {
|
|
219
|
-
const key = this.getRowKey(keyOrIndex);
|
|
220
|
-
this.expandedRows.delete(key);
|
|
221
|
-
if (cascade) {
|
|
222
|
-
for (const rowKey of this.expandedRows.keys()) {
|
|
223
|
-
if (rowKey.startsWith(key)) {
|
|
224
|
-
this.expandedRows.delete(rowKey);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
this.visibleRows = getVisibleRows(__privateGet(this, _data), this.expandedRows);
|
|
229
|
-
this.sendRowsToClient();
|
|
230
|
-
}
|
|
231
|
-
get status() {
|
|
232
|
-
return __privateGet(this, _status);
|
|
233
|
-
}
|
|
234
|
-
get config() {
|
|
235
|
-
return __privateGet(this, _config);
|
|
236
|
-
}
|
|
237
|
-
applyConfig() {
|
|
238
|
-
return vuuUtils.NO_CONFIG_CHANGES;
|
|
239
|
-
}
|
|
240
|
-
get selectedRowsCount() {
|
|
241
|
-
return __privateGet(this, _selectedRowsCount);
|
|
242
|
-
}
|
|
243
|
-
get size() {
|
|
244
|
-
return __privateGet(this, _size);
|
|
245
|
-
}
|
|
246
|
-
get range() {
|
|
247
|
-
return __privateGet(this, _range);
|
|
248
|
-
}
|
|
249
|
-
set range(range) {
|
|
250
|
-
__privateSet(this, _range, range);
|
|
251
|
-
this.keys.reset(range);
|
|
252
|
-
requestAnimationFrame(() => {
|
|
253
|
-
this.sendRowsToClient();
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
sendRowsToClient() {
|
|
257
|
-
const { from, to } = __privateGet(this, _range);
|
|
258
|
-
this.clientCallback?.({
|
|
259
|
-
clientViewportId: this.viewport,
|
|
260
|
-
mode: "batch",
|
|
261
|
-
rows: this.visibleRows.slice(from, to).map((row) => toClientRow(row, this.keys)),
|
|
262
|
-
size: this.visibleRows.length,
|
|
263
|
-
type: "viewport-update"
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
get columns() {
|
|
267
|
-
return __privateGet(this, _config).columns;
|
|
268
|
-
}
|
|
269
|
-
set columns(columns) {
|
|
270
|
-
__privateSet(this, _config, {
|
|
271
|
-
...__privateGet(this, _config),
|
|
272
|
-
columns
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
get aggregations() {
|
|
276
|
-
return __privateGet(this, _aggregations);
|
|
277
|
-
}
|
|
278
|
-
set aggregations(aggregations) {
|
|
279
|
-
__privateSet(this, _aggregations, aggregations);
|
|
280
|
-
}
|
|
281
|
-
get sort() {
|
|
282
|
-
return __privateGet(this, _sort);
|
|
283
|
-
}
|
|
284
|
-
set sort(sort) {
|
|
285
|
-
__privateSet(this, _sort, sort);
|
|
286
|
-
}
|
|
287
|
-
get filter() {
|
|
288
|
-
return __privateGet(this, _filter);
|
|
289
|
-
}
|
|
290
|
-
set filter(filter) {
|
|
291
|
-
__privateSet(this, _filter, filter);
|
|
292
|
-
}
|
|
293
|
-
get groupBy() {
|
|
294
|
-
return __privateGet(this, _groupBy);
|
|
295
|
-
}
|
|
296
|
-
set groupBy(groupBy) {
|
|
297
|
-
__privateSet(this, _groupBy, groupBy);
|
|
298
|
-
}
|
|
299
|
-
get title() {
|
|
300
|
-
return __privateGet(this, _title) ?? "";
|
|
301
|
-
}
|
|
302
|
-
set title(title) {
|
|
303
|
-
__privateSet(this, _title, title);
|
|
304
|
-
}
|
|
305
|
-
createLink({
|
|
306
|
-
parentVpId,
|
|
307
|
-
link: { fromColumn, toColumn }
|
|
308
|
-
}) {
|
|
309
|
-
console.log("create link", {
|
|
310
|
-
parentVpId,
|
|
311
|
-
fromColumn,
|
|
312
|
-
toColumn
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
removeLink() {
|
|
316
|
-
console.log("remove link");
|
|
317
|
-
}
|
|
318
|
-
async remoteProcedureCall() {
|
|
319
|
-
return Promise.reject();
|
|
320
|
-
}
|
|
321
|
-
async menuRpcCall(rpcRequest) {
|
|
322
|
-
console.log("rmenuRpcCall", {
|
|
323
|
-
rpcRequest
|
|
324
|
-
});
|
|
325
|
-
return void 0;
|
|
326
|
-
}
|
|
327
|
-
applyEdit(rowKey, columnName, value) {
|
|
328
|
-
console.log(`ArrayDataSource applyEdit ${rowKey} ${columnName} ${value}`);
|
|
329
|
-
return Promise.resolve(true);
|
|
330
|
-
}
|
|
331
|
-
getChildRows(rowKey) {
|
|
332
|
-
const parentRow = __privateGet(this, _data).find((row) => row[KEY] === rowKey);
|
|
333
|
-
if (parentRow) {
|
|
334
|
-
const { [IDX]: parentIdx, [DEPTH]: parentDepth } = parentRow;
|
|
335
|
-
let rowIdx = parentIdx + 1;
|
|
336
|
-
const childRows = [];
|
|
337
|
-
do {
|
|
338
|
-
const { [DEPTH]: depth } = __privateGet(this, _data)[rowIdx];
|
|
339
|
-
if (depth === parentDepth + 1) {
|
|
340
|
-
childRows.push(__privateGet(this, _data)[rowIdx]);
|
|
341
|
-
} else if (depth <= parentDepth) {
|
|
342
|
-
break;
|
|
343
|
-
}
|
|
344
|
-
rowIdx += 1;
|
|
345
|
-
} while (rowIdx < __privateGet(this, _data).length);
|
|
346
|
-
return childRows;
|
|
347
|
-
} else {
|
|
348
|
-
console.warn(
|
|
349
|
-
`JsonDataSource getChildRows row not found for key ${rowKey}`
|
|
350
|
-
);
|
|
351
|
-
}
|
|
352
|
-
return [];
|
|
353
|
-
}
|
|
354
|
-
getRowsAtDepth(depth, visibleOnly = true) {
|
|
355
|
-
const rows = visibleOnly ? this.visibleRows : __privateGet(this, _data);
|
|
356
|
-
return rows.filter((row) => row[DEPTH] === depth);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
_aggregations = new WeakMap();
|
|
360
|
-
_config = new WeakMap();
|
|
361
|
-
_data = new WeakMap();
|
|
362
|
-
_filter = new WeakMap();
|
|
363
|
-
_groupBy = new WeakMap();
|
|
364
|
-
_range = new WeakMap();
|
|
365
|
-
_selectedRowsCount = new WeakMap();
|
|
366
|
-
_size = new WeakMap();
|
|
367
|
-
_sort = new WeakMap();
|
|
368
|
-
_status = new WeakMap();
|
|
369
|
-
_title = new WeakMap();
|
|
370
|
-
function getVisibleRows(rows, expandedKeys) {
|
|
371
|
-
const visibleRows = [];
|
|
372
|
-
const index = { value: 0 };
|
|
373
|
-
for (let i = 0; i < rows.length; i++) {
|
|
374
|
-
const row = rows[i];
|
|
375
|
-
const { [DEPTH]: depth, [KEY]: key, [IS_LEAF]: isLeaf } = row;
|
|
376
|
-
const isExpanded = expandedKeys.has(key);
|
|
377
|
-
visibleRows.push(cloneRow(row, index, isExpanded));
|
|
378
|
-
if (!isLeaf && !isExpanded) {
|
|
379
|
-
do {
|
|
380
|
-
i += 1;
|
|
381
|
-
} while (i < rows.length - 1 && rows[i + 1][DEPTH] > depth);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
return visibleRows;
|
|
385
|
-
}
|
|
386
|
-
const cloneRow = (row, index, isExpanded) => {
|
|
387
|
-
const dolly = row.slice();
|
|
388
|
-
dolly[0] = index.value;
|
|
389
|
-
dolly[1] = index.value;
|
|
390
|
-
if (isExpanded) {
|
|
391
|
-
dolly[IS_EXPANDED] = true;
|
|
392
|
-
}
|
|
393
|
-
index.value += 1;
|
|
394
|
-
return dolly;
|
|
395
|
-
};
|
|
396
|
-
|
|
397
|
-
exports.JsonDataSource = JsonDataSource;
|
|
398
|
-
//# sourceMappingURL=JsonDataSource.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JsonDataSource.js","sources":["../../src/json-data-source/JsonDataSource.ts"],"sourcesContent":["import type { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport type {\n LinkDescriptorWithLabel,\n VuuGroupBy,\n VuuAggregation,\n VuuSort,\n VuuRowDataItemType,\n VuuRpcResponse,\n VuuRpcRequest,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport type {\n DataSourceFilter,\n DataSourceRow,\n DataSource,\n DataSourceConstructorProps,\n DataSourceEvents,\n DataSourceStatus,\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n WithFullConfig,\n Selection,\n MenuRpcResponse,\n VuuUIMessageInRPCEditReject,\n VuuUIMessageInRPCEditResponse,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n EventEmitter,\n isSelected,\n JsonData,\n jsonToDataSourceRows,\n KeySet,\n metadataKeys,\n NO_CONFIG_CHANGES,\n NULL_RANGE,\n Range,\n uuid,\n vanillaConfig,\n} from \"@vuu-ui/vuu-utils\";\n\nconst NULL_SCHEMA = { columns: [], key: \"\", table: { module: \"\", table: \"\" } };\n\nexport interface JsonDataSourceConstructorProps\n extends Omit<DataSourceConstructorProps, \"bufferSize\" | \"table\"> {\n data: JsonData;\n}\n\nconst { DEPTH, IDX, IS_EXPANDED, IS_LEAF, KEY, SELECTED } = metadataKeys;\n\nconst toClientRow = (row: DataSourceRow, keys: KeySet) => {\n const [rowIndex] = row;\n const clientRow = row.slice() as DataSourceRow;\n clientRow[1] = keys.keyFor(rowIndex);\n return clientRow;\n};\n\nexport class JsonDataSource\n extends EventEmitter<DataSourceEvents>\n implements DataSource\n{\n public columnDescriptors: ColumnDescriptor[];\n private clientCallback: DataSourceSubscribeCallback | undefined;\n private expandedRows = new Set<string>();\n private visibleRows: DataSourceRow[] = [];\n\n #aggregations: VuuAggregation[] = [];\n #config: WithFullConfig = vanillaConfig;\n #data: DataSourceRow[];\n #filter: DataSourceFilter = { filter: \"\" };\n #groupBy: VuuGroupBy = [];\n #range = Range(0, 0);\n #selectedRowsCount = 0;\n #size = 0;\n #sort: VuuSort = { sortDefs: [] };\n #status: DataSourceStatus = \"initialising\";\n #title: string | undefined;\n\n public rowCount: number | undefined;\n public viewport: string;\n\n private keys = new KeySet(this.#range);\n\n constructor({\n aggregations,\n data,\n filterSpec,\n groupBy,\n sort,\n title,\n viewport,\n }: JsonDataSourceConstructorProps) {\n super();\n if (!data) {\n throw Error(\"JsonDataSource constructor called without data\");\n }\n\n [this.columnDescriptors, this.#data] = jsonToDataSourceRows(data);\n\n this.visibleRows = this.#data\n .filter((row) => row[DEPTH] === 0)\n .map((row, index) =>\n ([index, index] as Partial<DataSourceRow>).concat(row.slice(2)),\n ) as DataSourceRow[];\n this.viewport = viewport || uuid();\n if (aggregations) {\n this.#aggregations = aggregations;\n }\n if (this.columnDescriptors) {\n this.#config = {\n ...this.#config,\n columns: this.columnDescriptors.map((c) => c.name),\n };\n }\n if (filterSpec) {\n this.#filter = filterSpec;\n }\n if (groupBy) {\n this.#groupBy = groupBy;\n }\n if (sort) {\n this.#sort = sort;\n }\n this.#title = title;\n }\n\n async subscribe(\n {\n viewport = this.viewport ?? uuid(),\n columns,\n aggregations,\n range,\n sort,\n groupBy,\n filterSpec,\n }: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n this.clientCallback = callback;\n\n if (aggregations) {\n this.#aggregations = aggregations;\n }\n if (columns) {\n this.#config = {\n ...this.#config,\n columns,\n };\n }\n if (filterSpec) {\n this.#filter = filterSpec;\n }\n if (groupBy) {\n this.#groupBy = groupBy;\n }\n if (sort) {\n this.#sort = sort;\n }\n\n if (this.#status !== \"initialising\") {\n //TODO check if subscription details are still the same\n return;\n }\n\n this.viewport = viewport;\n\n this.#status = \"subscribed\";\n\n this.clientCallback?.({\n aggregations: this.#aggregations,\n type: \"subscribed\",\n clientViewportId: this.viewport,\n columns: this.#config.columns,\n filterSpec: this.#filter,\n groupBy: this.#groupBy,\n range: this.#range,\n sort: this.#sort,\n tableSchema: NULL_SCHEMA,\n });\n\n this.clientCallback({\n clientViewportId: this.viewport,\n mode: \"size-only\",\n type: \"viewport-update\",\n size: this.visibleRows.length,\n });\n\n if (range && !this.#range.equals(range)) {\n this.range = range;\n } else if (this.#range !== NULL_RANGE) {\n this.sendRowsToClient();\n }\n }\n\n unsubscribe() {\n console.log(\"noop\");\n }\n\n suspend() {\n console.log(\"noop\");\n return this;\n }\n\n resume() {\n console.log(\"noop\");\n return this;\n }\n\n disable() {\n console.log(\"noop\");\n return this;\n }\n\n enable() {\n console.log(\"noop\");\n return this;\n }\n set data(data: JsonData) {\n [this.columnDescriptors, this.#data] = jsonToDataSourceRows(data);\n this.visibleRows = this.#data\n .filter((row) => row[DEPTH] === 0)\n .map((row, index) =>\n ([index, index] as Partial<DataSourceRow>).concat(row.slice(2)),\n ) as DataSourceRow[];\n\n requestAnimationFrame(() => {\n this.sendRowsToClient();\n });\n }\n\n select(selected: Selection) {\n const updatedRows: DataSourceRow[] = [];\n for (const row of this.#data) {\n const { [IDX]: rowIndex, [SELECTED]: sel } = row;\n const wasSelected = sel === 1;\n const nowSelected = isSelected(selected, rowIndex);\n if (nowSelected !== wasSelected) {\n const selectedRow = row.slice() as DataSourceRow;\n selectedRow[SELECTED] = nowSelected ? 1 : 0;\n this.#data[rowIndex] = selectedRow;\n updatedRows.push(selectedRow);\n }\n }\n\n if (updatedRows.length > 0) {\n this.clientCallback?.({\n clientViewportId: this.viewport,\n mode: \"update\",\n type: \"viewport-update\",\n rows: updatedRows,\n });\n }\n }\n\n private getRowKey(keyOrIndex: string | number) {\n if (typeof keyOrIndex === \"string\") {\n return keyOrIndex;\n }\n const row = this.visibleRows[keyOrIndex];\n if (row === undefined) {\n throw Error(`row not found at index ${keyOrIndex}`);\n }\n return row?.[KEY];\n }\n\n openTreeNode(keyOrIndex: string | number) {\n const key = this.getRowKey(keyOrIndex);\n\n this.expandedRows.add(key);\n this.visibleRows = getVisibleRows(this.#data, this.expandedRows);\n const { from, to } = this.#range;\n this.clientCallback?.({\n clientViewportId: this.viewport,\n\n mode: \"batch\",\n rows: this.visibleRows\n .slice(from, to)\n .map((row) => toClientRow(row, this.keys)),\n size: this.visibleRows.length,\n type: \"viewport-update\",\n });\n }\n\n closeTreeNode(keyOrIndex: string | number, cascade = false) {\n const key = this.getRowKey(keyOrIndex);\n\n this.expandedRows.delete(key);\n if (cascade) {\n for (const rowKey of this.expandedRows.keys()) {\n if (rowKey.startsWith(key)) {\n this.expandedRows.delete(rowKey);\n }\n }\n }\n this.visibleRows = getVisibleRows(this.#data, this.expandedRows);\n this.sendRowsToClient();\n }\n\n get status() {\n return this.#status;\n }\n\n get config() {\n return this.#config;\n }\n\n applyConfig() {\n return NO_CONFIG_CHANGES;\n }\n\n get selectedRowsCount() {\n return this.#selectedRowsCount;\n }\n\n get size() {\n return this.#size;\n }\n\n get range() {\n return this.#range;\n }\n\n set range(range: Range) {\n this.#range = range;\n this.keys.reset(range);\n requestAnimationFrame(() => {\n this.sendRowsToClient();\n });\n }\n\n private sendRowsToClient() {\n const { from, to } = this.#range;\n this.clientCallback?.({\n clientViewportId: this.viewport,\n mode: \"batch\",\n rows: this.visibleRows\n .slice(from, to)\n .map((row) => toClientRow(row, this.keys)),\n size: this.visibleRows.length,\n type: \"viewport-update\",\n });\n }\n\n get columns() {\n return this.#config.columns;\n }\n\n set columns(columns: string[]) {\n // TODO use setter\n this.#config = {\n ...this.#config,\n columns,\n };\n }\n\n get aggregations() {\n return this.#aggregations;\n }\n\n set aggregations(aggregations: VuuAggregation[]) {\n this.#aggregations = aggregations;\n }\n\n get sort() {\n return this.#sort;\n }\n\n set sort(sort: VuuSort) {\n // TODO should we wait until server ACK before we assign #sort ?\n this.#sort = sort;\n }\n\n get filter() {\n return this.#filter;\n }\n\n set filter(filter: DataSourceFilter) {\n // TODO should we wait until server ACK before we assign #sort ?\n this.#filter = filter;\n }\n\n get groupBy() {\n return this.#groupBy;\n }\n\n set groupBy(groupBy: VuuGroupBy) {\n this.#groupBy = groupBy;\n }\n\n get title() {\n return this.#title ?? \"\";\n }\n\n set title(title: string) {\n this.#title = title;\n }\n\n createLink({\n parentVpId,\n link: { fromColumn, toColumn },\n }: LinkDescriptorWithLabel) {\n console.log(\"create link\", {\n parentVpId,\n fromColumn,\n toColumn,\n });\n }\n\n removeLink() {\n console.log(\"remove link\");\n }\n\n async remoteProcedureCall<T extends VuuRpcResponse = VuuRpcResponse>() {\n return Promise.reject<T>();\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\">,\n ): Promise<\n | MenuRpcResponse\n | VuuUIMessageInRPCEditReject\n | VuuUIMessageInRPCEditResponse\n | undefined\n > {\n console.log(\"rmenuRpcCall\", {\n rpcRequest,\n });\n return undefined;\n }\n\n applyEdit(\n rowKey: string,\n columnName: string,\n value: VuuRowDataItemType,\n ): Promise<true> {\n console.log(`ArrayDataSource applyEdit ${rowKey} ${columnName} ${value}`);\n return Promise.resolve(true);\n }\n\n getChildRows(rowKey: string) {\n const parentRow = this.#data.find((row) => row[KEY] === rowKey);\n if (parentRow) {\n const { [IDX]: parentIdx, [DEPTH]: parentDepth } = parentRow;\n let rowIdx = parentIdx + 1;\n const childRows = [];\n do {\n const { [DEPTH]: depth } = this.#data[rowIdx];\n if (depth === parentDepth + 1) {\n childRows.push(this.#data[rowIdx]);\n } else if (depth <= parentDepth) {\n break;\n }\n rowIdx += 1;\n } while (rowIdx < this.#data.length);\n return childRows;\n } else {\n console.warn(\n `JsonDataSource getChildRows row not found for key ${rowKey}`,\n );\n }\n\n return [];\n }\n\n getRowsAtDepth(depth: number, visibleOnly = true) {\n const rows = visibleOnly ? this.visibleRows : this.#data;\n return rows.filter((row) => row[DEPTH] === depth);\n }\n}\n\ntype Index = {\n value: number;\n};\n\nfunction getVisibleRows(rows: DataSourceRow[], expandedKeys: Set<string>) {\n const visibleRows: DataSourceRow[] = [];\n const index: Index = { value: 0 };\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const { [DEPTH]: depth, [KEY]: key, [IS_LEAF]: isLeaf } = row;\n const isExpanded = expandedKeys.has(key);\n visibleRows.push(cloneRow(row, index, isExpanded));\n if (!isLeaf && !isExpanded) {\n do {\n i += 1;\n } while (i < rows.length - 1 && rows[i + 1][DEPTH] > depth);\n }\n }\n return visibleRows;\n}\n\nconst cloneRow = (\n row: DataSourceRow,\n index: Index,\n isExpanded: boolean,\n): DataSourceRow => {\n const dolly = row.slice() as DataSourceRow;\n dolly[0] = index.value;\n dolly[1] = index.value;\n if (isExpanded) {\n dolly[IS_EXPANDED] = true;\n }\n index.value += 1;\n return dolly;\n};\n"],"names":["metadataKeys","EventEmitter","vanillaConfig","Range","KeySet","jsonToDataSourceRows","uuid","NULL_RANGE","isSelected","NO_CONFIG_CHANGES"],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
-
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __typeError = (msg) => {
|
|
7
|
-
throw TypeError(msg);
|
|
8
|
-
};
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
|
|
11
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
12
|
-
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
13
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
14
|
-
var _iconMap;
|
|
15
|
-
const { KEY } = vuuUtils.metadataKeys;
|
|
16
|
-
class IconProvider {
|
|
17
|
-
constructor() {
|
|
18
|
-
__privateAdd(this, _iconMap, {});
|
|
19
|
-
__publicField(this, "getIcon", (row) => {
|
|
20
|
-
const key = row[KEY];
|
|
21
|
-
return __privateGet(this, _iconMap)[key];
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
setIcon(key, icon) {
|
|
25
|
-
__privateGet(this, _iconMap)[key] = icon;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
_iconMap = new WeakMap();
|
|
29
|
-
|
|
30
|
-
exports.IconProvider = IconProvider;
|
|
31
|
-
//# sourceMappingURL=IconProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconProvider.js","sources":["../../src/tree-data-source/IconProvider.ts"],"sourcesContent":["import { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\n\nconst { KEY } = metadataKeys;\n\nexport class IconProvider {\n #iconMap: Record<string, string> = {};\n getIcon = (row: DataSourceRow) => {\n const key = row[KEY];\n return this.#iconMap[key];\n };\n setIcon(key: string, icon: string) {\n this.#iconMap[key] = icon;\n }\n}\n"],"names":["metadataKeys"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,QAAA;AAGA,MAAM,EAAE,KAAQ,GAAAA,qBAAA;AAET,MAAM,YAAa,CAAA;AAAA,EAAnB,WAAA,GAAA;AACL,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,EAAmC,EAAC,CAAA;AACpC,IAAA,aAAA,CAAA,IAAA,EAAA,SAAA,EAAU,CAAC,GAAuB,KAAA;AAChC,MAAM,MAAA,GAAA,GAAM,IAAI,GAAG,CAAA;AACnB,MAAO,OAAA,YAAA,CAAA,IAAA,EAAK,UAAS,GAAG,CAAA;AAAA,KAC1B,CAAA;AAAA;AAAA,EACA,OAAA,CAAQ,KAAa,IAAc,EAAA;AACjC,IAAK,YAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAS,GAAG,CAAI,GAAA,IAAA;AAAA;AAEzB;AARE,QAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
|