@vuu-ui/vuu-data-test 2.3.0 → 3.0.0-beta.1
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/TickingArrayDataSource.js +37 -114
- package/cjs/TickingArrayDataSource.js.map +1 -1
- package/cjs/core/module/VuuModule.js +112 -81
- package/cjs/core/module/VuuModule.js.map +1 -1
- package/cjs/index.js +0 -2
- package/cjs/index.js.map +1 -1
- package/cjs/session-table-utils.js +21 -4
- package/cjs/session-table-utils.js.map +1 -1
- package/cjs/test/TestModule.js +51 -12
- package/cjs/test/TestModule.js.map +1 -1
- package/esm/TickingArrayDataSource.js +38 -115
- package/esm/TickingArrayDataSource.js.map +1 -1
- package/esm/core/module/VuuModule.js +113 -82
- package/esm/core/module/VuuModule.js.map +1 -1
- package/esm/index.js +0 -1
- package/esm/index.js.map +1 -1
- package/esm/session-table-utils.js +21 -5
- package/esm/session-table-utils.js.map +1 -1
- package/esm/test/TestModule.js +51 -12
- package/esm/test/TestModule.js.map +1 -1
- package/package.json +7 -6
- package/types/TickingArrayDataSource.d.ts +10 -28
- package/types/core/module/VuuModule.d.ts +9 -9
- package/types/index.d.ts +0 -1
- package/types/session-table-utils.d.ts +3 -1
- package/types/test/TestModule.d.ts +4 -4
- package/cjs/SessionTable.js +0 -98
- package/cjs/SessionTable.js.map +0 -1
- package/esm/SessionTable.js +0 -95
- package/esm/SessionTable.js.map +0 -1
- package/types/SessionTable.d.ts +0 -12
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
4
|
var Table = require('../../Table.js');
|
|
5
|
-
var SessionTable = require('../../SessionTable.js');
|
|
6
5
|
var TickingArrayDataSource = require('../../TickingArrayDataSource.js');
|
|
7
6
|
var RuntimeVisualLink = require('../../RuntimeVisualLink.js');
|
|
8
7
|
var ModuleContainer = require('./ModuleContainer.js');
|
|
@@ -18,7 +17,7 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
|
|
|
18
17
|
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
19
18
|
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);
|
|
20
19
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
21
|
-
var _name, _sessionTableMessageColumn, _runtimeVisualLinks, _sessionTableMap, _tableServices, _subscriptionMap, _moduleServices, _moduleMenuServices;
|
|
20
|
+
var _name, _sessionTableMessageColumn, _runtimeVisualLinks, _sessionSourceTableMap, _sessionTableMap, _tableServices, _subscriptionMap, _moduleServices, _moduleMenuServices;
|
|
22
21
|
const assertUpdateIsValid = (schema, column, data) => {
|
|
23
22
|
const col = schema.columns.find((col2) => col2.name === column);
|
|
24
23
|
if (col) {
|
|
@@ -34,6 +33,7 @@ class VuuModule {
|
|
|
34
33
|
__privateAdd(this, _name);
|
|
35
34
|
__privateAdd(this, _sessionTableMessageColumn);
|
|
36
35
|
__privateAdd(this, _runtimeVisualLinks, /* @__PURE__ */ new Map());
|
|
36
|
+
__privateAdd(this, _sessionSourceTableMap, {});
|
|
37
37
|
__privateAdd(this, _sessionTableMap, {});
|
|
38
38
|
__privateAdd(this, _tableServices);
|
|
39
39
|
__privateAdd(this, _subscriptionMap, /* @__PURE__ */ new Map());
|
|
@@ -192,7 +192,6 @@ class VuuModule {
|
|
|
192
192
|
menu: this.menus?.[tableName],
|
|
193
193
|
rpcServices: this.getServices(tableName),
|
|
194
194
|
rpcMenuServices: this.getMenuServices(tableName),
|
|
195
|
-
sessionTables: __privateGet(this, _sessionTableMap),
|
|
196
195
|
viewport,
|
|
197
196
|
visualLinkService: this.visualLinkService,
|
|
198
197
|
vuuModule
|
|
@@ -202,7 +201,9 @@ class VuuModule {
|
|
|
202
201
|
const existingSubscriptions = __privateGet(this, _subscriptionMap).get(tableName);
|
|
203
202
|
const subscription = {
|
|
204
203
|
viewportId: dataSource.viewport,
|
|
205
|
-
dataSource
|
|
204
|
+
dataSource,
|
|
205
|
+
sessionTableName: sessionTable ? tableName : void 0,
|
|
206
|
+
sourceTableName: __privateGet(this, _sessionSourceTableMap)[tableName]
|
|
206
207
|
};
|
|
207
208
|
if (existingSubscriptions) {
|
|
208
209
|
existingSubscriptions.push(subscription);
|
|
@@ -218,11 +219,7 @@ class VuuModule {
|
|
|
218
219
|
const sessionTable = this.getSessionTable(viewPortId, false);
|
|
219
220
|
if (sessionTable) {
|
|
220
221
|
if (mode === "soft") {
|
|
221
|
-
sessionTable.update(
|
|
222
|
-
key,
|
|
223
|
-
__privateGet(this, _sessionTableMessageColumn),
|
|
224
|
-
"SOFT_DELETED"
|
|
225
|
-
);
|
|
222
|
+
sessionTable.update(key, "vuu_action", "deleteRow");
|
|
226
223
|
} else {
|
|
227
224
|
sessionTable.delete(key);
|
|
228
225
|
}
|
|
@@ -253,23 +250,20 @@ class VuuModule {
|
|
|
253
250
|
const { viewPortId } = rpcRequest.context;
|
|
254
251
|
const { mode = "soft" } = rpcRequest.params;
|
|
255
252
|
const sessionTable = this.getSessionTable(viewPortId, false);
|
|
256
|
-
if (sessionTable
|
|
253
|
+
if (sessionTable) {
|
|
257
254
|
const { dataSource } = this.getSubscriptionByViewport(viewPortId);
|
|
258
255
|
const selectedRowIds = dataSource.getSelectedRowIds();
|
|
259
256
|
const deletedKeys = [];
|
|
260
257
|
if (selectedRowIds.length > 0) {
|
|
261
258
|
for (const key of selectedRowIds) {
|
|
262
259
|
if (mode === "soft") {
|
|
263
|
-
sessionTable.update(
|
|
264
|
-
key,
|
|
265
|
-
__privateGet(this, _sessionTableMessageColumn),
|
|
266
|
-
"SOFT_DELETED"
|
|
267
|
-
);
|
|
260
|
+
sessionTable.update(key, "vuu_action", "deleteRow");
|
|
268
261
|
} else {
|
|
269
262
|
sessionTable.delete(key);
|
|
270
263
|
}
|
|
271
264
|
deletedKeys.push(key);
|
|
272
265
|
}
|
|
266
|
+
dataSource.select?.({ type: "DESELECT_ALL" });
|
|
273
267
|
}
|
|
274
268
|
return { type: "SUCCESS_RESULT", data: { deletedKeys } };
|
|
275
269
|
}
|
|
@@ -288,34 +282,49 @@ class VuuModule {
|
|
|
288
282
|
const { viewPortId } = rpcRequest.context;
|
|
289
283
|
const { key } = rpcRequest.params;
|
|
290
284
|
const sessionTable = this.getSessionTable(viewPortId, false);
|
|
291
|
-
if (sessionTable
|
|
292
|
-
const
|
|
293
|
-
const
|
|
285
|
+
if (sessionTable) {
|
|
286
|
+
const subscription = this.getSubscriptionByViewport(viewPortId);
|
|
287
|
+
const { dataSource } = subscription;
|
|
288
|
+
const sourceTableName = subscription.sourceTableName ?? dataSource.table?.table;
|
|
289
|
+
const sourceTable = this.tables[sourceTableName];
|
|
294
290
|
if (!sourceTable) {
|
|
295
291
|
return {
|
|
296
292
|
type: "ERROR_RESULT",
|
|
297
293
|
errorMessage: `undoRowChange: source table not found for viewport ${viewPortId}`
|
|
298
294
|
};
|
|
299
295
|
}
|
|
300
|
-
const
|
|
301
|
-
if (!
|
|
296
|
+
const sessionRow = sessionTable.findByKey(key);
|
|
297
|
+
if (!sessionRow) {
|
|
298
|
+
return {
|
|
299
|
+
type: "ERROR_RESULT",
|
|
300
|
+
errorMessage: `undoRowChange: session row not found for key ${key}`
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const action = sessionRow[sessionTable.map.vuu_action];
|
|
304
|
+
if (action === "addRow") {
|
|
302
305
|
sessionTable.delete(key);
|
|
303
306
|
return { type: "SUCCESS_RESULT", data: { wasInsertedRow: true } };
|
|
304
307
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
308
|
+
if (action === "deleteRow" || action === "editCell") {
|
|
309
|
+
const sourceRow = sourceTable.findByKey(key);
|
|
310
|
+
if (!sourceRow) {
|
|
311
|
+
return {
|
|
312
|
+
type: "ERROR_RESULT",
|
|
313
|
+
errorMessage: `undoRowChange: source row not found for key ${key}`
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
const restoredRow = sessionRow.slice();
|
|
317
|
+
for (const column of sourceTable.schema.columns) {
|
|
318
|
+
restoredRow[sessionTable.map[column.name]] = sourceRow[sourceTable.map[column.name]];
|
|
311
319
|
}
|
|
312
|
-
|
|
320
|
+
sessionTable.updateRow(restoredRow);
|
|
321
|
+
sessionTable.update(key, "vuu_action", "");
|
|
313
322
|
}
|
|
314
323
|
return { type: "SUCCESS_RESULT", data: void 0 };
|
|
315
324
|
}
|
|
316
325
|
return {
|
|
317
326
|
type: "ERROR_RESULT",
|
|
318
|
-
errorMessage: `undoRowChange: no active
|
|
327
|
+
errorMessage: `undoRowChange: no active session table for viewport ${viewPortId}`
|
|
319
328
|
};
|
|
320
329
|
}
|
|
321
330
|
return {
|
|
@@ -327,7 +336,8 @@ class VuuModule {
|
|
|
327
336
|
if (vuuUtils.isEditCellRpcRequest(rpcRequest)) {
|
|
328
337
|
const { viewPortId } = rpcRequest.context;
|
|
329
338
|
const { column, data, key } = rpcRequest.params;
|
|
330
|
-
|
|
339
|
+
const sessionTable = __privateGet(this, _sessionTableMap)[viewPortId];
|
|
340
|
+
let targetTable = sessionTable;
|
|
331
341
|
if (!targetTable) {
|
|
332
342
|
const { dataSource } = this.getSubscriptionByViewport(viewPortId);
|
|
333
343
|
if (dataSource.table) {
|
|
@@ -336,8 +346,15 @@ class VuuModule {
|
|
|
336
346
|
}
|
|
337
347
|
if (targetTable) {
|
|
338
348
|
try {
|
|
349
|
+
const sessionRow = sessionTable?.findByKey(key);
|
|
350
|
+
if (sessionRow?.[sessionTable.map.vuu_action] === "deleteRow") {
|
|
351
|
+
throw Error("editCell: cannot edit a deleted row");
|
|
352
|
+
}
|
|
339
353
|
assertUpdateIsValid(targetTable.schema, column, data);
|
|
340
354
|
targetTable.update(key, column, data);
|
|
355
|
+
if (sessionTable && sessionTable.findByKey(key)?.[sessionTable.map.vuu_action] !== "addRow") {
|
|
356
|
+
sessionTable.update(key, "vuu_action", "editCell");
|
|
357
|
+
}
|
|
341
358
|
return {
|
|
342
359
|
type: "SUCCESS_RESULT",
|
|
343
360
|
data: void 0
|
|
@@ -353,7 +370,7 @@ class VuuModule {
|
|
|
353
370
|
throw Error("[VuuModule] editCell unable to find table for dataSource");
|
|
354
371
|
}
|
|
355
372
|
} else {
|
|
356
|
-
throw Error(
|
|
373
|
+
throw Error("[VuuModule] editCell invalid rpc type");
|
|
357
374
|
}
|
|
358
375
|
});
|
|
359
376
|
__publicField(this, "beginEditSessionMenuHandler", async ({
|
|
@@ -424,11 +441,10 @@ class VuuModule {
|
|
|
424
441
|
sourceTable,
|
|
425
442
|
sessionTableName,
|
|
426
443
|
copyOption,
|
|
427
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
428
|
-
// @ts-ignore
|
|
429
444
|
dataSource
|
|
430
445
|
);
|
|
431
446
|
__privateGet(this, _sessionTableMap)[sessionTableName] = sessionTable;
|
|
447
|
+
__privateGet(this, _sessionSourceTableMap)[sessionTableName] = vuuTable.table;
|
|
432
448
|
subscription.sessionTableName = sessionTableName;
|
|
433
449
|
return {
|
|
434
450
|
data: {
|
|
@@ -466,11 +482,10 @@ class VuuModule {
|
|
|
466
482
|
sourceTable,
|
|
467
483
|
sessionTableName,
|
|
468
484
|
editSessionMode,
|
|
469
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
470
|
-
// @ts-ignore
|
|
471
485
|
dataSource
|
|
472
486
|
);
|
|
473
487
|
__privateGet(this, _sessionTableMap)[sessionTableName] = sessionTable;
|
|
488
|
+
__privateGet(this, _sessionSourceTableMap)[sessionTableName] = vuuTable.table;
|
|
474
489
|
subscription.sessionTableName = sessionTableName;
|
|
475
490
|
return {
|
|
476
491
|
data: {
|
|
@@ -491,7 +506,7 @@ class VuuModule {
|
|
|
491
506
|
}
|
|
492
507
|
}
|
|
493
508
|
} else {
|
|
494
|
-
throw Error(
|
|
509
|
+
throw Error("[VuuModule] endEditSession invalid rpc type");
|
|
495
510
|
}
|
|
496
511
|
return {
|
|
497
512
|
type: "ERROR_RESULT",
|
|
@@ -502,7 +517,8 @@ class VuuModule {
|
|
|
502
517
|
if (vuuUtils.isAddRowRpcRequest(rpcRequest)) {
|
|
503
518
|
const { viewPortId } = rpcRequest.context;
|
|
504
519
|
const subscription = this.getSubscriptionByViewport(viewPortId);
|
|
505
|
-
const
|
|
520
|
+
const sessionTableName = subscription.sessionTableName ?? viewPortId;
|
|
521
|
+
const sessionTable = __privateGet(this, _sessionTableMap)[sessionTableName];
|
|
506
522
|
if (!sessionTable) {
|
|
507
523
|
return {
|
|
508
524
|
type: "ERROR_RESULT",
|
|
@@ -513,6 +529,7 @@ class VuuModule {
|
|
|
513
529
|
const columnMap = sessionTable.map;
|
|
514
530
|
const columnCount = Object.keys(columnMap).length;
|
|
515
531
|
const row = new Array(columnCount).fill("");
|
|
532
|
+
row[columnMap.vuu_action] = "addRow";
|
|
516
533
|
for (const [col, idx] of Object.entries(columnMap)) {
|
|
517
534
|
if (data[col] !== void 0) {
|
|
518
535
|
row[idx] = data[col];
|
|
@@ -534,44 +551,53 @@ class VuuModule {
|
|
|
534
551
|
const sessionTable = __privateGet(this, _sessionTableMap)[sessionTableName];
|
|
535
552
|
const { dataSource } = subscription;
|
|
536
553
|
if (dataSource.table) {
|
|
537
|
-
const
|
|
554
|
+
const sourceTableName = subscription.sourceTableName ?? dataSource.table.table;
|
|
555
|
+
const sourceTable = this.tables[sourceTableName];
|
|
538
556
|
if (rpcRequest.params.save === true) {
|
|
539
557
|
let rejectedCount = 0;
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
558
|
+
const vuuMsgIdx = sessionTable.map[__privateGet(this, _sessionTableMessageColumn)];
|
|
559
|
+
const actionIdx = sessionTable.map.vuu_action;
|
|
560
|
+
const sessionTimestampIdx = sessionTable.map.vuuUpdatedTimestamp;
|
|
561
|
+
const sourceTimestampIdx = sourceTable.map.vuuUpdatedTimestamp;
|
|
562
|
+
const sourceColumns = sourceTable.schema.columns;
|
|
563
|
+
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
564
|
+
const sessionRow = sessionTable.data[i];
|
|
565
|
+
const key = String(
|
|
566
|
+
sessionRow[sessionTable.map[sourceTable.schema.key]]
|
|
567
|
+
);
|
|
568
|
+
const currentRow = sourceTable.findByKey(key);
|
|
569
|
+
const action = sessionRow[actionIdx];
|
|
570
|
+
if (action === "deleteRow") {
|
|
571
|
+
if (currentRow) {
|
|
572
|
+
const sessionTimestamp = sessionRow[sessionTimestampIdx];
|
|
573
|
+
const sourceTimestamp = currentRow[sourceTimestampIdx];
|
|
574
|
+
if (typeof sessionTimestamp === "number" && typeof sourceTimestamp === "number" && sourceTimestamp > sessionTimestamp) {
|
|
575
|
+
rejectedCount += 1;
|
|
576
|
+
sessionTable.update(
|
|
577
|
+
key,
|
|
578
|
+
__privateGet(this, _sessionTableMessageColumn),
|
|
579
|
+
"stale delete"
|
|
580
|
+
);
|
|
581
|
+
} else {
|
|
582
|
+
sourceTable.delete(key);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
continue;
|
|
586
|
+
}
|
|
587
|
+
if (sessionRow[vuuMsgIdx]) continue;
|
|
588
|
+
if (action === "editCell" && currentRow) {
|
|
589
|
+
for (const column of sourceColumns) {
|
|
590
|
+
const value = sessionRow[sessionTable.map[column.name]];
|
|
591
|
+
if (currentRow[sourceTable.map[column.name]] !== value) {
|
|
592
|
+
sourceTable.update(key, column.name, value);
|
|
593
|
+
}
|
|
562
594
|
}
|
|
563
|
-
})
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
569
|
-
const sessionRow = sessionTable.data[i];
|
|
570
|
-
if (sessionRow[vuuMsgIdx]) continue;
|
|
571
|
-
const sourceRow = sourceColumns.map(
|
|
572
|
-
(col) => sessionRow[sessionTable.map[col.name]]
|
|
595
|
+
} else if (action === "addRow" && !currentRow) {
|
|
596
|
+
sourceTable.insert(
|
|
597
|
+
sourceColumns.map(
|
|
598
|
+
(column) => sessionRow[sessionTable.map[column.name]]
|
|
599
|
+
)
|
|
573
600
|
);
|
|
574
|
-
sourceTable.insert(sourceRow);
|
|
575
601
|
}
|
|
576
602
|
}
|
|
577
603
|
if (rejectedCount > 0) {
|
|
@@ -579,12 +605,11 @@ class VuuModule {
|
|
|
579
605
|
errorMessage: "stale update",
|
|
580
606
|
type: "ERROR_RESULT"
|
|
581
607
|
};
|
|
582
|
-
} else {
|
|
583
|
-
return {
|
|
584
|
-
type: "SUCCESS_RESULT",
|
|
585
|
-
data: void 0
|
|
586
|
-
};
|
|
587
608
|
}
|
|
609
|
+
return {
|
|
610
|
+
type: "SUCCESS_RESULT",
|
|
611
|
+
data: void 0
|
|
612
|
+
};
|
|
588
613
|
} else {
|
|
589
614
|
return {
|
|
590
615
|
type: "SUCCESS_RESULT",
|
|
@@ -595,7 +620,7 @@ class VuuModule {
|
|
|
595
620
|
throw Error("[VuuModule], exitEditMode");
|
|
596
621
|
}
|
|
597
622
|
} else {
|
|
598
|
-
throw Error(
|
|
623
|
+
throw Error("[VuuModule] endEditSession invalid rpc type");
|
|
599
624
|
}
|
|
600
625
|
});
|
|
601
626
|
// Bulk-edit with input in session table
|
|
@@ -618,7 +643,7 @@ class VuuModule {
|
|
|
618
643
|
data: void 0
|
|
619
644
|
};
|
|
620
645
|
} else {
|
|
621
|
-
throw Error(
|
|
646
|
+
throw Error("[VuuModule] applyBulkEdits invalid rpc type");
|
|
622
647
|
}
|
|
623
648
|
});
|
|
624
649
|
/**
|
|
@@ -749,7 +774,7 @@ class VuuModule {
|
|
|
749
774
|
);
|
|
750
775
|
}
|
|
751
776
|
}
|
|
752
|
-
createSessionTable(sourceTable, sessionTableName, editSessionMode
|
|
777
|
+
createSessionTable(sourceTable, sessionTableName, editSessionMode, dataSource) {
|
|
753
778
|
if (editSessionMode === "All" || editSessionMode.endsWith("all-rows")) {
|
|
754
779
|
return this.createSessionTableWithAllRows(sourceTable, sessionTableName);
|
|
755
780
|
} else if (editSessionMode === "Selected" || editSessionMode === "selected-rows") {
|
|
@@ -766,8 +791,13 @@ class VuuModule {
|
|
|
766
791
|
);
|
|
767
792
|
}
|
|
768
793
|
}
|
|
769
|
-
createSessionTableWithAllRows(
|
|
770
|
-
|
|
794
|
+
createSessionTableWithAllRows({ data, schema }, _sessionTableName) {
|
|
795
|
+
const sessionSchema = sessionTableUtils.sessionTableSchema(schema);
|
|
796
|
+
return new Table.Table(
|
|
797
|
+
sessionSchema,
|
|
798
|
+
data.map((row) => sessionTableUtils.sessionTableRow(row, schema)),
|
|
799
|
+
Table.buildDataColumnMapFromSchema(sessionSchema)
|
|
800
|
+
);
|
|
771
801
|
}
|
|
772
802
|
createEmptySessionTable({ schema }, sessionTableName) {
|
|
773
803
|
const sessionSchema = sessionTableUtils.sessionTableSchema({
|
|
@@ -787,7 +817,7 @@ class VuuModule {
|
|
|
787
817
|
for (let i = 0; i < selectedRowIds.length; i++) {
|
|
788
818
|
for (let j = 0; j < data.length; j++) {
|
|
789
819
|
if (data[j][keyIndex] === selectedRowIds[i]) {
|
|
790
|
-
sessionData.push(data[j]);
|
|
820
|
+
sessionData.push(sessionTableUtils.sessionTableRow(data[j], schema));
|
|
791
821
|
}
|
|
792
822
|
}
|
|
793
823
|
}
|
|
@@ -802,6 +832,7 @@ class VuuModule {
|
|
|
802
832
|
_name = new WeakMap();
|
|
803
833
|
_sessionTableMessageColumn = new WeakMap();
|
|
804
834
|
_runtimeVisualLinks = new WeakMap();
|
|
835
|
+
_sessionSourceTableMap = new WeakMap();
|
|
805
836
|
_sessionTableMap = new WeakMap();
|
|
806
837
|
_tableServices = new WeakMap();
|
|
807
838
|
_subscriptionMap = new WeakMap();
|