@vuu-ui/vuu-data-test 0.8.70 → 0.8.71
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 +3 -2
- package/cjs/TickingArrayDataSource.js.map +1 -1
- package/cjs/VuuModule.js +228 -0
- package/cjs/VuuModule.js.map +1 -0
- package/cjs/basket/basket-module.js +18 -23
- package/cjs/basket/basket-module.js.map +1 -1
- package/cjs/index.js +4 -0
- package/cjs/index.js.map +1 -1
- package/cjs/simul/simul-module.js +16 -143
- package/cjs/simul/simul-module.js.map +1 -1
- package/cjs/test/test-module.js +7 -39
- package/cjs/test/test-module.js.map +1 -1
- package/cjs/vuu-modules.js +1 -1
- package/cjs/vuu-modules.js.map +1 -1
- package/esm/TickingArrayDataSource.js +3 -2
- package/esm/TickingArrayDataSource.js.map +1 -1
- package/esm/VuuModule.js +226 -0
- package/esm/VuuModule.js.map +1 -0
- package/esm/basket/basket-module.js +18 -23
- package/esm/basket/basket-module.js.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/simul/simul-module.js +16 -143
- package/esm/simul/simul-module.js.map +1 -1
- package/esm/test/test-module.js +7 -39
- package/esm/test/test-module.js.map +1 -1
- package/esm/vuu-modules.js +1 -1
- package/esm/vuu-modules.js.map +1 -1
- package/package.json +6 -6
- package/types/TickingArrayDataSource.d.ts +4 -7
- package/types/VuuModule.d.ts +44 -0
- package/types/basket/basket-module.d.ts +1 -1
- package/types/index.d.ts +1 -0
- package/types/simul/simul-module.d.ts +1 -3
- package/types/test/index.d.ts +1 -0
- package/types/test/test-module.d.ts +2 -4
- package/types/vuu-modules.d.ts +1 -5
- package/cjs/session-table-utils.js +0 -24
- package/cjs/session-table-utils.js.map +0 -1
- package/esm/session-table-utils.js +0 -22
- package/esm/session-table-utils.js.map +0 -1
|
@@ -1,27 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
3
|
var Table = require('../Table.js');
|
|
5
|
-
var TickingArrayDataSource = require('../TickingArrayDataSource.js');
|
|
6
|
-
var makeSuggestions = require('../makeSuggestions.js');
|
|
7
|
-
var sessionTableUtils = require('../session-table-utils.js');
|
|
8
4
|
var instruments = require('./reference-data/instruments.js');
|
|
9
5
|
var instrumentsExtended = require('./reference-data/instruments-extended.js');
|
|
10
6
|
var orders = require('./reference-data/orders.js');
|
|
11
7
|
var prices = require('./reference-data/prices.js');
|
|
12
8
|
var simulSchemas = require('./simul-schemas.js');
|
|
9
|
+
var VuuModule = require('../VuuModule.js');
|
|
13
10
|
|
|
14
|
-
const sessionTableMap = {};
|
|
15
|
-
const getSessionTable = () => {
|
|
16
|
-
if (Object.keys(sessionTableMap).length === 1) {
|
|
17
|
-
const [sessionTable] = Object.values(sessionTableMap);
|
|
18
|
-
return sessionTable;
|
|
19
|
-
} else {
|
|
20
|
-
throw Error(
|
|
21
|
-
"getSessionTable: should never be more than one session table in map"
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
11
|
const tables = {
|
|
26
12
|
childOrders: new Table.Table(
|
|
27
13
|
simulSchemas.schemas.childOrders,
|
|
@@ -44,13 +30,14 @@ const tables = {
|
|
|
44
30
|
),
|
|
45
31
|
prices: prices.pricesTable
|
|
46
32
|
};
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
const visualLinks = {
|
|
34
|
+
childOrders: void 0,
|
|
35
|
+
instruments: void 0,
|
|
36
|
+
instrumentsExtended: void 0,
|
|
37
|
+
instrumentPrices: void 0,
|
|
38
|
+
orders: void 0,
|
|
39
|
+
parentOrders: void 0,
|
|
40
|
+
prices: void 0
|
|
54
41
|
};
|
|
55
42
|
const menus = {
|
|
56
43
|
childOrders: void 0,
|
|
@@ -83,127 +70,13 @@ const menus = {
|
|
|
83
70
|
parentOrders: void 0,
|
|
84
71
|
prices: void 0
|
|
85
72
|
};
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
selectedRowIds
|
|
94
|
-
);
|
|
95
|
-
const sessionTableName = `instruments-${vuuUtils.uuid()}`;
|
|
96
|
-
sessionTableMap[sessionTableName] = sessionTable;
|
|
97
|
-
return {
|
|
98
|
-
action: {
|
|
99
|
-
renderComponent: "grid",
|
|
100
|
-
table: {
|
|
101
|
-
module: "SIMUL",
|
|
102
|
-
table: sessionTableName
|
|
103
|
-
},
|
|
104
|
-
tableSchema: dataTable.schema,
|
|
105
|
-
type: "OPEN_DIALOG_ACTION"
|
|
106
|
-
},
|
|
107
|
-
requestId: "request_id",
|
|
108
|
-
rpcName: "VP_BULK_EDIT_BEGIN_RPC"
|
|
109
|
-
};
|
|
110
|
-
} else {
|
|
111
|
-
return {
|
|
112
|
-
requestId: "request_id",
|
|
113
|
-
rpcName: "VP_BULK_EDIT_REJECT"
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async function applyBulkEdits(rpcRequest) {
|
|
118
|
-
const sessionTable = getSessionTable();
|
|
119
|
-
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
120
|
-
const newRow = sessionTable.data[i];
|
|
121
|
-
const { column, value } = rpcRequest.namedParams;
|
|
122
|
-
sessionTable.update(String(newRow[keyIndex]), column, value);
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
action: {
|
|
126
|
-
renderComponent: "grid",
|
|
127
|
-
table: {
|
|
128
|
-
module: "SIMUL",
|
|
129
|
-
table: "instruments"
|
|
130
|
-
},
|
|
131
|
-
type: "OPEN_DIALOG_ACTION"
|
|
132
|
-
},
|
|
133
|
-
requestId: "request_id",
|
|
134
|
-
rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC"
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
async function saveBulkEdits() {
|
|
138
|
-
const sessionTable = getSessionTable();
|
|
139
|
-
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
140
|
-
const newRow = sessionTable.data[i];
|
|
141
|
-
instruments.instrumentsTable.updateRow(newRow);
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
action: {
|
|
145
|
-
renderComponent: "grid",
|
|
146
|
-
table: {
|
|
147
|
-
module: "SIMUL",
|
|
148
|
-
table: "instruments"
|
|
149
|
-
},
|
|
150
|
-
type: "OPEN_DIALOG_ACTION"
|
|
151
|
-
},
|
|
152
|
-
requestId: "request_id",
|
|
153
|
-
rpcName: "VP_BULK_EDIT_SUBMIT_RPC"
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
const services = {
|
|
157
|
-
childOrders: void 0,
|
|
158
|
-
instruments: [
|
|
159
|
-
{
|
|
160
|
-
rpcName: "VP_BULK_EDIT_BEGIN_RPC",
|
|
161
|
-
service: openBulkEdits
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC",
|
|
165
|
-
service: applyBulkEdits
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
rpcName: "VP_BULK_EDIT_SUBMIT_RPC",
|
|
169
|
-
service: saveBulkEdits
|
|
170
|
-
}
|
|
171
|
-
],
|
|
172
|
-
instrumentsExtended: void 0,
|
|
173
|
-
instrumentPrices: void 0,
|
|
174
|
-
orders: void 0,
|
|
175
|
-
parentOrders: void 0,
|
|
176
|
-
prices: void 0
|
|
177
|
-
};
|
|
178
|
-
const createDataSource = (tableName) => {
|
|
179
|
-
const columnDescriptors = getColumnDescriptors(tableName);
|
|
180
|
-
return new TickingArrayDataSource.TickingArrayDataSource({
|
|
181
|
-
columnDescriptors,
|
|
182
|
-
keyColumn: simulSchemas.schemas[tableName] === void 0 ? sessionTableMap[tableName].schema.key : simulSchemas.schemas[tableName].key,
|
|
183
|
-
table: tables[tableName] || sessionTableMap[tableName],
|
|
184
|
-
menu: menus[tableName],
|
|
185
|
-
rpcServices: services[tableName],
|
|
186
|
-
sessionTables: sessionTableMap
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
|
-
const suggestionFetcher = ([
|
|
190
|
-
vuuTable,
|
|
191
|
-
column,
|
|
192
|
-
pattern
|
|
193
|
-
]) => {
|
|
194
|
-
const table = tables[vuuTable.table];
|
|
195
|
-
if (table) {
|
|
196
|
-
return makeSuggestions.makeSuggestions(table, column, pattern);
|
|
197
|
-
} else {
|
|
198
|
-
throw Error(
|
|
199
|
-
`SIMUL suggestionFetcher, unknown table ${vuuTable.module} ${vuuTable.table}`
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
const simulModule = {
|
|
204
|
-
createDataSource,
|
|
205
|
-
typeaheadHook: () => suggestionFetcher
|
|
206
|
-
};
|
|
73
|
+
const simulModule = new VuuModule.VuuModule({
|
|
74
|
+
menus,
|
|
75
|
+
name: "SIMUL",
|
|
76
|
+
schemas: simulSchemas.schemas,
|
|
77
|
+
tables,
|
|
78
|
+
visualLinks
|
|
79
|
+
});
|
|
207
80
|
|
|
208
81
|
exports.simulModule = simulModule;
|
|
209
82
|
//# sourceMappingURL=simul-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simul-module.js","sources":["../../src/simul/simul-module.ts"],"sourcesContent":["import {\n OpenDialogActionWithSchema,\n SuggestionFetcher,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n ClientToServerViewportRpcCall,\n TypeaheadParams,\n VuuMenu,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { uuid } from \"@vuu-ui/vuu-utils\";\nimport { Table, buildDataColumnMap, joinTables } from \"../Table\";\nimport { TickingArrayDataSource } from \"../TickingArrayDataSource\";\nimport { makeSuggestions } from \"../makeSuggestions\";\nimport { createSessionTableFromSelectedRows } from \"../session-table-utils\";\nimport type { VuuModule } from \"../vuu-modules\";\nimport { instrumentsTable } from \"./reference-data/instruments\";\nimport { instrumentsExtendedTable } from \"./reference-data/instruments-extended\";\nimport { ordersTable } from \"./reference-data/orders\";\nimport { pricesTable } from \"./reference-data/prices\";\nimport { schemas, type SimulTableName } from \"./simul-schemas\";\n\ntype RpcService = {\n rpcName: string;\n service: (\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\"> & {\n namedParams: { [key: string]: unknown };\n selectedRowIds: string[];\n table: VuuTable;\n }\n ) => Promise<unknown>;\n};\n\nexport type SessionTableMap = Record<string, Table>;\nconst sessionTableMap: SessionTableMap = {};\n\nconst getSessionTable = () => {\n if (Object.keys(sessionTableMap).length === 1) {\n const [sessionTable] = Object.values(sessionTableMap);\n return sessionTable;\n } else {\n throw Error(\n \"getSessionTable: should never be more than one session table in map\"\n );\n }\n};\n\nconst tables: Record<SimulTableName, Table> = {\n childOrders: new Table(\n schemas.childOrders,\n [],\n buildDataColumnMap<SimulTableName>(schemas, \"childOrders\")\n ),\n instruments: instrumentsTable,\n instrumentsExtended: instrumentsExtendedTable,\n instrumentPrices: joinTables(\n { module: \"SIMUL\", table: \"instrumentPrices\" },\n instrumentsTable,\n pricesTable,\n \"ric\"\n ),\n orders: ordersTable,\n parentOrders: new Table(\n schemas.parentOrders,\n [],\n buildDataColumnMap<SimulTableName>(schemas, \"parentOrders\")\n ),\n prices: pricesTable,\n};\n\nconst getColumnDescriptors = (tableName: SimulTableName) => {\n const schema = schemas[tableName] || getSessionTable()?.schema;\n if (schema) {\n return schema.columns;\n } else {\n throw Error(`simul-module no schema found for table SIMUL ${tableName}`);\n }\n};\n\nconst menus: Record<SimulTableName, VuuMenu | undefined> = {\n childOrders: undefined,\n instruments: {\n name: \"ROOT\",\n menus: [\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Add Instruments To Order\",\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Row\",\n rpcName: \"EDIT_ROW\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Rows\",\n rpcName: \"VP_BULK_EDIT_BEGIN_RPC\",\n },\n ],\n },\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst keyIndex = 6;\n\nasync function openBulkEdits(\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\"> & {\n selectedRowIds: string[];\n table: VuuTable;\n }\n) {\n const { selectedRowIds, table } = rpcRequest;\n\n const dataTable = tables[table.table as SimulTableName];\n if (dataTable) {\n const sessionTable = createSessionTableFromSelectedRows(\n instrumentsTable,\n selectedRowIds\n );\n const sessionTableName = `instruments-${uuid()}`;\n sessionTableMap[sessionTableName] = sessionTable;\n\n return {\n action: {\n renderComponent: \"grid\",\n table: {\n module: \"SIMUL\",\n table: sessionTableName,\n },\n tableSchema: dataTable.schema,\n type: \"OPEN_DIALOG_ACTION\",\n } as OpenDialogActionWithSchema,\n requestId: \"request_id\",\n rpcName: \"VP_BULK_EDIT_BEGIN_RPC\",\n };\n } else {\n return {\n requestId: \"request_id\",\n rpcName: \"VP_BULK_EDIT_REJECT\",\n };\n }\n}\n\n// Bulk-edit with input in session table\nasync function applyBulkEdits(\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\"> & {\n namedParams: { [key: string]: unknown };\n selectedRowIds: string[];\n table: VuuTable;\n }\n) {\n const sessionTable = getSessionTable();\n\n for (let i = 0; i < sessionTable.data.length; i++) {\n const newRow = sessionTable.data[i];\n const { column, value } = rpcRequest.namedParams;\n sessionTable.update(String(newRow[keyIndex]), column as string, value);\n }\n\n return {\n action: {\n renderComponent: \"grid\",\n table: {\n module: \"SIMUL\",\n table: \"instruments\",\n },\n type: \"OPEN_DIALOG_ACTION\",\n },\n requestId: \"request_id\",\n rpcName: \"VP_BULK_EDIT_COLUMN_CELLS_RPC\",\n };\n}\n\n// Save session table data to main table\nasync function saveBulkEdits() {\n const sessionTable = getSessionTable();\n\n for (let i = 0; i < sessionTable.data.length; i++) {\n const newRow = sessionTable.data[i];\n instrumentsTable.updateRow(newRow);\n }\n\n return {\n action: {\n renderComponent: \"grid\",\n table: {\n module: \"SIMUL\",\n table: \"instruments\",\n },\n type: \"OPEN_DIALOG_ACTION\",\n },\n requestId: \"request_id\",\n rpcName: \"VP_BULK_EDIT_SUBMIT_RPC\",\n };\n}\n\nconst services: Record<SimulTableName, RpcService[] | undefined> = {\n childOrders: undefined,\n instruments: [\n {\n rpcName: \"VP_BULK_EDIT_BEGIN_RPC\",\n service: openBulkEdits,\n },\n {\n rpcName: \"VP_BULK_EDIT_COLUMN_CELLS_RPC\",\n service: applyBulkEdits,\n },\n {\n rpcName: \"VP_BULK_EDIT_SUBMIT_RPC\",\n service: saveBulkEdits,\n },\n ],\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst createDataSource = (tableName: SimulTableName) => {\n const columnDescriptors = getColumnDescriptors(tableName);\n return new TickingArrayDataSource({\n columnDescriptors,\n keyColumn:\n schemas[tableName] === undefined\n ? sessionTableMap[tableName].schema.key\n : schemas[tableName].key,\n table: tables[tableName] || sessionTableMap[tableName],\n menu: menus[tableName],\n rpcServices: services[tableName],\n sessionTables: sessionTableMap,\n });\n};\n\nconst suggestionFetcher: SuggestionFetcher = ([\n vuuTable,\n column,\n pattern,\n]: TypeaheadParams) => {\n const table = tables[vuuTable.table as SimulTableName];\n if (table) {\n return makeSuggestions(table, column, pattern);\n } else {\n throw Error(\n `SIMUL suggestionFetcher, unknown table ${vuuTable.module} ${vuuTable.table}`\n );\n }\n};\n\nexport const simulModule: VuuModule<SimulTableName> = {\n createDataSource,\n typeaheadHook: () => suggestionFetcher,\n};\n"],"names":["Table","schemas","buildDataColumnMap","instrumentsTable","instrumentsExtendedTable","joinTables","pricesTable","ordersTable","createSessionTableFromSelectedRows","uuid","TickingArrayDataSource","makeSuggestions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simul-module.js","sources":["../../src/simul/simul-module.ts"],"sourcesContent":["import { LinkDescriptorWithLabel, VuuMenu } from \"@vuu-ui/vuu-protocol-types\";\nimport { Table, buildDataColumnMap, joinTables } from \"../Table\";\nimport { instrumentsTable } from \"./reference-data/instruments\";\nimport { instrumentsExtendedTable } from \"./reference-data/instruments-extended\";\nimport { ordersTable } from \"./reference-data/orders\";\nimport { pricesTable } from \"./reference-data/prices\";\nimport { schemas, type SimulTableName } from \"./simul-schemas\";\nimport { VuuModule } from \"../VuuModule\";\n\nconst tables: Record<SimulTableName, Table> = {\n childOrders: new Table(\n schemas.childOrders,\n [],\n buildDataColumnMap<SimulTableName>(schemas, \"childOrders\")\n ),\n instruments: instrumentsTable,\n instrumentsExtended: instrumentsExtendedTable,\n instrumentPrices: joinTables(\n { module: \"SIMUL\", table: \"instrumentPrices\" },\n instrumentsTable,\n pricesTable,\n \"ric\"\n ),\n orders: ordersTable,\n parentOrders: new Table(\n schemas.parentOrders,\n [],\n buildDataColumnMap<SimulTableName>(schemas, \"parentOrders\")\n ),\n prices: pricesTable,\n};\n\nconst visualLinks: Record<\n SimulTableName,\n LinkDescriptorWithLabel[] | undefined\n> = {\n childOrders: undefined,\n instruments: undefined,\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst menus: Record<SimulTableName, VuuMenu | undefined> = {\n childOrders: undefined,\n instruments: {\n name: \"ROOT\",\n menus: [\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Add Instruments To Order\",\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Row\",\n rpcName: \"EDIT_ROW\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Rows\",\n rpcName: \"VP_BULK_EDIT_BEGIN_RPC\",\n },\n ],\n },\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nexport const simulModule = new VuuModule<SimulTableName>({\n menus,\n name: \"SIMUL\",\n schemas,\n tables,\n visualLinks,\n});\n"],"names":["Table","schemas","buildDataColumnMap","instrumentsTable","instrumentsExtendedTable","joinTables","pricesTable","ordersTable","VuuModule"],"mappings":";;;;;;;;;;AASA,MAAM,MAAwC,GAAA;AAAA,EAC5C,aAAa,IAAIA,WAAA;AAAA,IACfC,oBAAQ,CAAA,WAAA;AAAA,IACR,EAAC;AAAA,IACDC,wBAAA,CAAmCD,sBAAS,aAAa,CAAA;AAAA,GAC3D;AAAA,EACA,WAAa,EAAAE,4BAAA;AAAA,EACb,mBAAqB,EAAAC,4CAAA;AAAA,EACrB,gBAAkB,EAAAC,gBAAA;AAAA,IAChB,EAAE,MAAA,EAAQ,OAAS,EAAA,KAAA,EAAO,kBAAmB,EAAA;AAAA,IAC7CF,4BAAA;AAAA,IACAG,kBAAA;AAAA,IACA,KAAA;AAAA,GACF;AAAA,EACA,MAAQ,EAAAC,kBAAA;AAAA,EACR,cAAc,IAAIP,WAAA;AAAA,IAChBC,oBAAQ,CAAA,YAAA;AAAA,IACR,EAAC;AAAA,IACDC,wBAAA,CAAmCD,sBAAS,cAAc,CAAA;AAAA,GAC5D;AAAA,EACA,MAAQ,EAAAK,kBAAA;AACV,CAAA,CAAA;AAEA,MAAM,WAGF,GAAA;AAAA,EACF,WAAa,EAAA,KAAA,CAAA;AAAA,EACb,WAAa,EAAA,KAAA,CAAA;AAAA,EACb,mBAAqB,EAAA,KAAA,CAAA;AAAA,EACrB,gBAAkB,EAAA,KAAA,CAAA;AAAA,EAClB,MAAQ,EAAA,KAAA,CAAA;AAAA,EACR,YAAc,EAAA,KAAA,CAAA;AAAA,EACd,MAAQ,EAAA,KAAA,CAAA;AACV,CAAA,CAAA;AAEA,MAAM,KAAqD,GAAA;AAAA,EACzD,WAAa,EAAA,KAAA,CAAA;AAAA,EACb,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,KAAO,EAAA;AAAA,MACL;AAAA,QACE,OAAS,EAAA,eAAA;AAAA,QACT,MAAQ,EAAA,EAAA;AAAA,QACR,IAAM,EAAA,0BAAA;AAAA,QACN,OAAS,EAAA,0BAAA;AAAA,OACX;AAAA,MACA;AAAA,QACE,OAAS,EAAA,eAAA;AAAA,QACT,MAAQ,EAAA,EAAA;AAAA,QACR,IAAM,EAAA,UAAA;AAAA,QACN,OAAS,EAAA,UAAA;AAAA,OACX;AAAA,MACA;AAAA,QACE,OAAS,EAAA,eAAA;AAAA,QACT,MAAQ,EAAA,EAAA;AAAA,QACR,IAAM,EAAA,WAAA;AAAA,QACN,OAAS,EAAA,wBAAA;AAAA,OACX;AAAA,KACF;AAAA,GACF;AAAA,EACA,mBAAqB,EAAA,KAAA,CAAA;AAAA,EACrB,gBAAkB,EAAA,KAAA,CAAA;AAAA,EAClB,MAAQ,EAAA,KAAA,CAAA;AAAA,EACR,YAAc,EAAA,KAAA,CAAA;AAAA,EACd,MAAQ,EAAA,KAAA,CAAA;AACV,CAAA,CAAA;AAEa,MAAA,WAAA,GAAc,IAAIE,mBAA0B,CAAA;AAAA,EACvD,KAAA;AAAA,EACA,IAAM,EAAA,OAAA;AAAA,WACNP,oBAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AACF,CAAC;;;;"}
|
package/cjs/test/test-module.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var makeSuggestions = require('../makeSuggestions.js');
|
|
4
3
|
var Table = require('../Table.js');
|
|
5
|
-
var TickingArrayDataSource = require('../TickingArrayDataSource.js');
|
|
6
4
|
var vuuRowGenerator = require('../vuu-row-generator.js');
|
|
7
5
|
var testSchemas = require('./test-schemas.js');
|
|
6
|
+
var VuuModule = require('../VuuModule.js');
|
|
8
7
|
|
|
9
8
|
const { RowGenerator } = vuuRowGenerator.defaultGenerators;
|
|
10
9
|
const manyColumnGenerator = RowGenerator(
|
|
@@ -17,42 +16,11 @@ const tables = {
|
|
|
17
16
|
Table.buildDataColumnMap(testSchemas.schemas, "TwoHundredColumns")
|
|
18
17
|
)
|
|
19
18
|
};
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
throw Error(`test-module no schema found for table TEST ${tableName}`);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
const createDataSource = (tableName) => {
|
|
29
|
-
const columnDescriptors = getColumnDescriptors(tableName);
|
|
30
|
-
return new TickingArrayDataSource.TickingArrayDataSource({
|
|
31
|
-
columnDescriptors,
|
|
32
|
-
keyColumn: testSchemas.schemas[tableName].key,
|
|
33
|
-
table: tables[tableName]
|
|
34
|
-
// menu: menus[tableName],
|
|
35
|
-
// rpcServices: services[tableName],
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
const suggestionFetcher = ([
|
|
39
|
-
vuuTable,
|
|
40
|
-
column,
|
|
41
|
-
pattern
|
|
42
|
-
]) => {
|
|
43
|
-
const table = tables[vuuTable.table];
|
|
44
|
-
if (table) {
|
|
45
|
-
return makeSuggestions.makeSuggestions(table, column, pattern);
|
|
46
|
-
} else {
|
|
47
|
-
throw Error(
|
|
48
|
-
`SIMUL suggestionFetcher, unknown table ${vuuTable.module} ${vuuTable.table}`
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
const testModule = {
|
|
53
|
-
createDataSource,
|
|
54
|
-
typeaheadHook: () => suggestionFetcher
|
|
55
|
-
};
|
|
19
|
+
const testModule = new VuuModule.VuuModule({
|
|
20
|
+
name: "TEST",
|
|
21
|
+
schemas: testSchemas.schemas,
|
|
22
|
+
tables
|
|
23
|
+
});
|
|
56
24
|
|
|
57
|
-
|
|
25
|
+
exports.testModule = testModule;
|
|
58
26
|
//# sourceMappingURL=test-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-module.js","sources":["../../src/test/test-module.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"test-module.js","sources":["../../src/test/test-module.ts"],"sourcesContent":["import { buildDataColumnMap, Table } from \"../Table\";\nimport { defaultGenerators } from \"../vuu-row-generator\";\nimport { schemas, TestTableName } from \"./test-schemas\";\nimport { VuuModule } from \"../VuuModule\";\n\nconst { RowGenerator } = defaultGenerators;\n\nconst manyColumnGenerator = RowGenerator(\n schemas.TwoHundredColumns.columns.map((c) => c.name)\n);\n\nconst tables: Record<TestTableName, Table> = {\n TwoHundredColumns: new Table(\n schemas.TwoHundredColumns,\n new Array(100).fill(1).map((_, i) => manyColumnGenerator(i)),\n buildDataColumnMap(schemas, \"TwoHundredColumns\")\n ),\n};\n\nexport const testModule = new VuuModule<TestTableName>({\n name: \"TEST\",\n schemas,\n tables,\n});\n"],"names":["defaultGenerators","schemas","Table","buildDataColumnMap","VuuModule"],"mappings":";;;;;;;AAKA,MAAM,EAAE,cAAiB,GAAAA,iCAAA,CAAA;AAEzB,MAAM,mBAAsB,GAAA,YAAA;AAAA,EAC1BC,oBAAQ,iBAAkB,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AACrD,CAAA,CAAA;AAEA,MAAM,MAAuC,GAAA;AAAA,EAC3C,mBAAmB,IAAIC,WAAA;AAAA,IACrBD,mBAAQ,CAAA,iBAAA;AAAA,IACR,IAAI,KAAA,CAAM,GAAG,CAAA,CAAE,IAAK,CAAA,CAAC,CAAE,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,CAAM,KAAA,mBAAA,CAAoB,CAAC,CAAC,CAAA;AAAA,IAC3DE,wBAAA,CAAmBF,qBAAS,mBAAmB,CAAA;AAAA,GACjD;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,IAAIG,mBAAyB,CAAA;AAAA,EACrD,IAAM,EAAA,MAAA;AAAA,WACNH,mBAAA;AAAA,EACA,MAAA;AACF,CAAC;;;;"}
|
package/cjs/vuu-modules.js
CHANGED
|
@@ -7,7 +7,7 @@ var testModule = require('./test/test-module.js');
|
|
|
7
7
|
const vuuModules = {
|
|
8
8
|
BASKET: basketModule.basketModule,
|
|
9
9
|
SIMUL: simulModule.simulModule,
|
|
10
|
-
TEST: testModule
|
|
10
|
+
TEST: testModule.testModule
|
|
11
11
|
};
|
|
12
12
|
const vuuModule = (moduleName) => vuuModules[moduleName];
|
|
13
13
|
|
package/cjs/vuu-modules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vuu-modules.js","sources":["../src/vuu-modules.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"vuu-modules.js","sources":["../src/vuu-modules.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\nimport { basketModule } from \"./basket/basket-module\";\nimport { BasketsTableName } from \"./basket/basket-schemas\";\nimport { simulModule } from \"./simul/simul-module\";\nimport { SimulTableName } from \"./simul/simul-schemas\";\nimport { testModule } from \"./test/test-module\";\nimport { TestTableName } from \"./test/test-schemas\";\n\nexport type VuuModuleName = \"BASKET\" | \"SIMUL\" | \"TEST\";\n\nconst vuuModules: Record<\n VuuModuleName,\n | VuuModule<BasketsTableName>\n | VuuModule<SimulTableName>\n | VuuModule<TestTableName>\n> = {\n BASKET: basketModule,\n SIMUL: simulModule,\n TEST: testModule,\n};\n\n// Note, this is useful but be aware that all modules will be bundled if this is imported.\n// If only a single module is required, better to import it directly.\nexport const vuuModule = <T extends string = string>(\n moduleName: VuuModuleName\n) => vuuModules[moduleName] as VuuModule<T>;\n"],"names":["basketModule","simulModule","testModule"],"mappings":";;;;;;AAUA,MAAM,UAKF,GAAA;AAAA,EACF,MAAQ,EAAAA,yBAAA;AAAA,EACR,KAAO,EAAAC,uBAAA;AAAA,EACP,IAAM,EAAAC,qBAAA;AACR,CAAA,CAAA;AAIO,MAAM,SAAY,GAAA,CACvB,UACG,KAAA,UAAA,CAAW,UAAU;;;;"}
|
|
@@ -30,6 +30,7 @@ const _TickingArrayDataSource = class _TickingArrayDataSource extends ArrayDataS
|
|
|
30
30
|
sessionTables,
|
|
31
31
|
table,
|
|
32
32
|
menu,
|
|
33
|
+
visualLinks,
|
|
33
34
|
...arrayDataSourceProps
|
|
34
35
|
}) {
|
|
35
36
|
if (data === void 0 && table === void 0) {
|
|
@@ -49,6 +50,7 @@ const _TickingArrayDataSource = class _TickingArrayDataSource extends ArrayDataS
|
|
|
49
50
|
__privateSet(this, _sessionTables, sessionTables);
|
|
50
51
|
__privateSet(this, _rpcServices, rpcServices);
|
|
51
52
|
__privateSet(this, _table, table);
|
|
53
|
+
this.links = visualLinks;
|
|
52
54
|
if (table) {
|
|
53
55
|
this.tableSchema = table.schema;
|
|
54
56
|
table.on("insert", this.insert);
|
|
@@ -125,7 +127,6 @@ const _TickingArrayDataSource = class _TickingArrayDataSource extends ArrayDataS
|
|
|
125
127
|
const selectedRows = this.getSelectedRows();
|
|
126
128
|
return rpcService.service({
|
|
127
129
|
...rpcRequest,
|
|
128
|
-
vpId: this.viewport,
|
|
129
130
|
selectedRows
|
|
130
131
|
});
|
|
131
132
|
} else {
|
|
@@ -141,7 +142,7 @@ const _TickingArrayDataSource = class _TickingArrayDataSource extends ArrayDataS
|
|
|
141
142
|
case "VIEW_PORT_MENUS_SELECT_RPC": {
|
|
142
143
|
return rpcService.service({
|
|
143
144
|
...rpcRequest,
|
|
144
|
-
vpId: this.viewport,
|
|
145
|
+
// vpId: this.viewport,
|
|
145
146
|
selectedRowIds: this.getSelectedRowIds(),
|
|
146
147
|
// include table for now in the rpcRequest. In future we will support
|
|
147
148
|
//a viewportId, same as server, but for that we have to map viewports
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TickingArrayDataSource.js","sources":["../src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceRow,\n MenuRpcResponse,\n RpcResponse,\n SelectionItem,\n SubscribeCallback,\n SubscribeProps,\n VuuUIMessageInRPCEditReject,\n VuuUIMessageInRPCEditResponse,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n ClientToServerEditRpc,\n ClientToServerMenuRPC,\n ClientToServerViewportRpcCall,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\nimport { SessionTableMap } from \"./simul\";\n\nconst { KEY } = metadataKeys;\n\nexport type RpcService = {\n rpcName: string;\n service: (rpcRequest: any) => Promise<any>;\n};\n\nexport interface TickingArrayDataSourceConstructorProps\n extends Omit<ArrayDataSourceConstructorProps, \"data\"> {\n data?: Array<VuuRowDataItemType[]>;\n menu?: VuuMenu;\n menuRpcServices?: RpcService[];\n rpcServices?: RpcService[];\n sessionTables?: SessionTableMap;\n table?: Table;\n}\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n // A reference to session tables hosted within client side module\n #sessionTables: SessionTableMap | undefined;\n #table?: Table;\n\n constructor({\n data,\n menuRpcServices,\n rpcServices,\n sessionTables,\n table,\n menu,\n ...arrayDataSourceProps\n }: TickingArrayDataSourceConstructorProps) {\n if (data === undefined && table === undefined) {\n throw Error(\"TickingArrayDataSource must be constructed with data\");\n }\n super({\n ...arrayDataSourceProps,\n data: data ?? table?.data ?? [],\n });\n this._menu = menu;\n this.#menuRpcServices = menuRpcServices;\n this.#sessionTables = sessionTables;\n this.#rpcServices = rpcServices;\n this.#table = table;\n\n if (table) {\n this.tableSchema = table.schema;\n table.on(\"insert\", this.insert);\n table.on(\"update\", this.updateRow);\n }\n }\n\n async subscribe(subscribeProps: SubscribeProps, callback: SubscribeCallback) {\n const subscription = super.subscribe(subscribeProps, callback);\n // if (subscribeProps.range) {\n // this.#updateGenerator?.setRange(subscribeProps.range);\n // }\n return subscription;\n }\n\n set range(range: VuuRange) {\n super.range = range;\n // this.#updateGenerator?.setRange(range);\n }\n get range() {\n return super.range;\n }\n\n private getSelectedRows() {\n return this.selectedRows.reduce<DataSourceRow[]>(\n (rows: DataSourceRow[], selected: SelectionItem) => {\n if (Array.isArray(selected)) {\n for (let i = selected[0]; i <= selected[1]; i++) {\n const row = this.data[i];\n if (row) {\n rows.push(row);\n }\n }\n } else {\n const row = this.data[selected];\n if (row) {\n rows.push(row);\n }\n }\n return rows;\n },\n []\n );\n }\n\n private getSelectedRowIds() {\n return this.selectedRows.reduce<string[]>(\n (rowIds: string[], selection: SelectionItem) => {\n if (Array.isArray(selection)) {\n for (let i = selection[0]; i <= selection[1]; i++) {\n const row = this.data[i];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n } else {\n const row = this.data[selection];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n return rowIds;\n },\n []\n );\n }\n\n applyEdit(\n row: DataSourceRow,\n columnName: string,\n value: VuuRowDataItemType\n ): Promise<true> {\n const key = row[KEY];\n this.#table?.update(key, columnName, value);\n return Promise.resolve(true);\n }\n\n async rpcCall<T extends RpcResponse = RpcResponse>(\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\">\n ): Promise<T | undefined> {\n const rpcService = this.#rpcServices?.find(\n (service) =>\n service.rpcName ===\n (rpcRequest as ClientToServerViewportRpcCall).rpcName\n );\n\n if (rpcService) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service(rpcRequest);\n }\n }\n const selectedRows = this.getSelectedRows();\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n selectedRows,\n });\n } else {\n console.log(`no implementation for PRC service ${rpcRequest.rpcName}`);\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<ClientToServerMenuRPC, \"vpId\"> | ClientToServerEditRpc\n ): Promise<\n | MenuRpcResponse\n | VuuUIMessageInRPCEditReject\n | VuuUIMessageInRPCEditResponse\n | undefined\n > {\n const rpcService = this.#rpcServices?.find(\n (service) =>\n service.rpcName === (rpcRequest as ClientToServerMenuRPC).rpcName\n );\n\n if (rpcService) {\n switch (rpcRequest.type) {\n case \"VIEW_PORT_MENUS_SELECT_RPC\": {\n // selectedRowIds is specific to the client implementation. Because the dataSource\n // itself stores the selected rows (rather than server) we need to inject these\n // here so rpc service has access to them. In Vuu scenario, Vuu server module would\n // already know selected rows.\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n selectedRowIds: this.getSelectedRowIds(),\n // include table for now in the rpcRequest. In future we will support\n //a viewportId, same as server, but for that we have to map viewports\n // to tables in module.\n table: this.tableSchema.table,\n });\n }\n default:\n }\n }\n return super.menuRpcCall(rpcRequest);\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n return makeSuggestions(this.#table, column, pattern);\n } else {\n throw Error(\n \"cannot call getTypeaheadSuggestions on TickingDataSource if table has not been provided\"\n );\n }\n }\n\n createSessionDataSource(vuuTable: VuuTable) {\n const table = this.#sessionTables?.[vuuTable.table];\n if (table) {\n return new TickingArrayDataSource({\n columnDescriptors: table.schema.columns,\n keyColumn: table.schema.key,\n table,\n rpcServices: this.#rpcServices,\n });\n } else {\n throw Error(\n \"TickingDataSource cannot create session datasource, no session table ${table.table}\"\n );\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TickingArrayDataSource.js","sources":["../src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceRow,\n MenuRpcResponse,\n RpcResponse,\n SelectionItem,\n SubscribeCallback,\n SubscribeProps,\n VuuUIMessageInRPCEditReject,\n VuuUIMessageInRPCEditResponse,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n ClientToServerEditRpc,\n ClientToServerMenuRPC,\n ClientToServerViewportRpcCall,\n LinkDescriptorWithLabel,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\nimport { RpcService, SessionTableMap } from \"./VuuModule\";\n\nconst { KEY } = metadataKeys;\n\nexport interface TickingArrayDataSourceConstructorProps\n extends Omit<ArrayDataSourceConstructorProps, \"data\"> {\n data?: Array<VuuRowDataItemType[]>;\n menu?: VuuMenu;\n menuRpcServices?: RpcService[];\n rpcServices?: RpcService[];\n sessionTables?: SessionTableMap;\n table?: Table;\n visualLinks?: LinkDescriptorWithLabel[];\n}\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n // A reference to session tables hosted within client side module\n #sessionTables: SessionTableMap | undefined;\n #table?: Table;\n\n constructor({\n data,\n menuRpcServices,\n rpcServices,\n sessionTables,\n table,\n menu,\n visualLinks,\n ...arrayDataSourceProps\n }: TickingArrayDataSourceConstructorProps) {\n if (data === undefined && table === undefined) {\n throw Error(\"TickingArrayDataSource must be constructed with data\");\n }\n super({\n ...arrayDataSourceProps,\n data: data ?? table?.data ?? [],\n });\n this._menu = menu;\n this.#menuRpcServices = menuRpcServices;\n this.#sessionTables = sessionTables;\n this.#rpcServices = rpcServices;\n this.#table = table;\n this.links = visualLinks;\n\n if (table) {\n this.tableSchema = table.schema;\n table.on(\"insert\", this.insert);\n table.on(\"update\", this.updateRow);\n }\n }\n\n async subscribe(subscribeProps: SubscribeProps, callback: SubscribeCallback) {\n const subscription = super.subscribe(subscribeProps, callback);\n // if (subscribeProps.range) {\n // this.#updateGenerator?.setRange(subscribeProps.range);\n // }\n return subscription;\n }\n\n set range(range: VuuRange) {\n super.range = range;\n // this.#updateGenerator?.setRange(range);\n }\n get range() {\n return super.range;\n }\n\n private getSelectedRows() {\n return this.selectedRows.reduce<DataSourceRow[]>(\n (rows: DataSourceRow[], selected: SelectionItem) => {\n if (Array.isArray(selected)) {\n for (let i = selected[0]; i <= selected[1]; i++) {\n const row = this.data[i];\n if (row) {\n rows.push(row);\n }\n }\n } else {\n const row = this.data[selected];\n if (row) {\n rows.push(row);\n }\n }\n return rows;\n },\n []\n );\n }\n\n private getSelectedRowIds() {\n return this.selectedRows.reduce<string[]>(\n (rowIds: string[], selection: SelectionItem) => {\n if (Array.isArray(selection)) {\n for (let i = selection[0]; i <= selection[1]; i++) {\n const row = this.data[i];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n } else {\n const row = this.data[selection];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n return rowIds;\n },\n []\n );\n }\n\n applyEdit(\n row: DataSourceRow,\n columnName: string,\n value: VuuRowDataItemType\n ): Promise<true> {\n const key = row[KEY];\n this.#table?.update(key, columnName, value);\n return Promise.resolve(true);\n }\n\n async rpcCall<T extends RpcResponse = RpcResponse>(\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\">\n ): Promise<T | undefined> {\n const rpcService = this.#rpcServices?.find(\n (service) =>\n service.rpcName ===\n (rpcRequest as ClientToServerViewportRpcCall).rpcName\n );\n\n if (rpcService) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service(rpcRequest) as Promise<T>;\n }\n }\n const selectedRows = this.getSelectedRows();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n }) as Promise<T>;\n } else {\n console.log(`no implementation for PRC service ${rpcRequest.rpcName}`);\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<ClientToServerMenuRPC, \"vpId\"> | ClientToServerEditRpc\n ): Promise<\n | MenuRpcResponse\n | VuuUIMessageInRPCEditReject\n | VuuUIMessageInRPCEditResponse\n | undefined\n > {\n const rpcService = this.#rpcServices?.find(\n (service) =>\n service.rpcName === (rpcRequest as ClientToServerMenuRPC).rpcName\n );\n\n if (rpcService) {\n switch (rpcRequest.type) {\n case \"VIEW_PORT_MENUS_SELECT_RPC\": {\n // selectedRowIds is specific to the client implementation. Because the dataSource\n // itself stores the selected rows (rather than server) we need to inject these\n // here so rpc service has access to them. In Vuu scenario, Vuu server module would\n // already know selected rows.\n return rpcService.service({\n ...rpcRequest,\n // vpId: this.viewport,\n selectedRowIds: this.getSelectedRowIds(),\n // include table for now in the rpcRequest. In future we will support\n //a viewportId, same as server, but for that we have to map viewports\n // to tables in module.\n table: this.tableSchema.table,\n } as any) as any;\n }\n default:\n }\n }\n return super.menuRpcCall(rpcRequest);\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n return makeSuggestions(this.#table, column, pattern);\n } else {\n throw Error(\n \"cannot call getTypeaheadSuggestions on TickingDataSource if table has not been provided\"\n );\n }\n }\n\n createSessionDataSource(vuuTable: VuuTable) {\n const table = this.#sessionTables?.[vuuTable.table];\n if (table) {\n return new TickingArrayDataSource({\n columnDescriptors: table.schema.columns,\n keyColumn: table.schema.key,\n table,\n rpcServices: this.#rpcServices,\n });\n } else {\n throw Error(\n \"TickingDataSource cannot create session datasource, no session table ${table.table}\"\n );\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AA6BA,MAAM,EAAE,KAAQ,GAAA,YAAA,CAAA;AAaT,MAAM,uBAAA,GAAN,MAAM,uBAAA,SAA+B,eAAgB,CAAA;AAAA,EAO1D,WAAY,CAAA;AAAA,IACV,IAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG,oBAAA;AAAA,GACsC,EAAA;AACzC,IAAI,IAAA,IAAA,KAAS,KAAa,CAAA,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AAC7C,MAAA,MAAM,MAAM,sDAAsD,CAAA,CAAA;AAAA,KACpE;AACA,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,oBAAA;AAAA,MACH,IAAM,EAAA,IAAA,IAAQ,KAAO,EAAA,IAAA,IAAQ,EAAC;AAAA,KAC/B,CAAA,CAAA;AAtBH,IAAA,YAAA,CAAA,IAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEA;AAAA,IAAA,YAAA,CAAA,IAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAmBE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AACb,IAAA,YAAA,CAAA,IAAA,EAAK,gBAAmB,EAAA,eAAA,CAAA,CAAA;AACxB,IAAA,YAAA,CAAA,IAAA,EAAK,cAAiB,EAAA,aAAA,CAAA,CAAA;AACtB,IAAA,YAAA,CAAA,IAAA,EAAK,YAAe,EAAA,WAAA,CAAA,CAAA;AACpB,IAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AACd,IAAA,IAAA,CAAK,KAAQ,GAAA,WAAA,CAAA;AAEb,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,CAAK,cAAc,KAAM,CAAA,MAAA,CAAA;AACzB,MAAM,KAAA,CAAA,EAAA,CAAG,QAAU,EAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAC9B,MAAM,KAAA,CAAA,EAAA,CAAG,QAAU,EAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AAAA,KACnC;AAAA,GACF;AAAA,EAEA,MAAM,SAAU,CAAA,cAAA,EAAgC,QAA6B,EAAA;AAC3E,IAAA,MAAM,YAAe,GAAA,KAAA,CAAM,SAAU,CAAA,cAAA,EAAgB,QAAQ,CAAA,CAAA;AAI7D,IAAO,OAAA,YAAA,CAAA;AAAA,GACT;AAAA,EAEA,IAAI,MAAM,KAAiB,EAAA;AACzB,IAAA,KAAA,CAAM,KAAQ,GAAA,KAAA,CAAA;AAAA,GAEhB;AAAA,EACA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,KAAM,CAAA,KAAA,CAAA;AAAA,GACf;AAAA,EAEQ,eAAkB,GAAA;AACxB,IAAA,OAAO,KAAK,YAAa,CAAA,MAAA;AAAA,MACvB,CAAC,MAAuB,QAA4B,KAAA;AAClD,QAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,QAAQ,CAAG,EAAA;AAC3B,UAAS,KAAA,IAAA,CAAA,GAAI,SAAS,CAAC,CAAA,EAAG,KAAK,QAAS,CAAA,CAAC,GAAG,CAAK,EAAA,EAAA;AAC/C,YAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AACvB,YAAA,IAAI,GAAK,EAAA;AACP,cAAA,IAAA,CAAK,KAAK,GAAG,CAAA,CAAA;AAAA,aACf;AAAA,WACF;AAAA,SACK,MAAA;AACL,UAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAC9B,UAAA,IAAI,GAAK,EAAA;AACP,YAAA,IAAA,CAAK,KAAK,GAAG,CAAA,CAAA;AAAA,WACf;AAAA,SACF;AACA,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,MACA,EAAC;AAAA,KACH,CAAA;AAAA,GACF;AAAA,EAEQ,iBAAoB,GAAA;AAC1B,IAAA,OAAO,KAAK,YAAa,CAAA,MAAA;AAAA,MACvB,CAAC,QAAkB,SAA6B,KAAA;AAC9C,QAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,SAAS,CAAG,EAAA;AAC5B,UAAS,KAAA,IAAA,CAAA,GAAI,UAAU,CAAC,CAAA,EAAG,KAAK,SAAU,CAAA,CAAC,GAAG,CAAK,EAAA,EAAA;AACjD,YAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AACvB,YAAA,IAAI,GAAK,EAAA;AACP,cAAO,MAAA,CAAA,IAAA,CAAK,GAAI,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,aACtB;AAAA,WACF;AAAA,SACK,MAAA;AACL,UAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AAC/B,UAAA,IAAI,GAAK,EAAA;AACP,YAAO,MAAA,CAAA,IAAA,CAAK,GAAI,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,WACtB;AAAA,SACF;AACA,QAAO,OAAA,MAAA,CAAA;AAAA,OACT;AAAA,MACA,EAAC;AAAA,KACH,CAAA;AAAA,GACF;AAAA,EAEA,SAAA,CACE,GACA,EAAA,UAAA,EACA,KACe,EAAA;AACf,IAAM,MAAA,GAAA,GAAM,IAAI,GAAG,CAAA,CAAA;AACnB,IAAA,YAAA,CAAA,IAAA,EAAK,MAAQ,CAAA,EAAA,MAAA,CAAO,GAAK,EAAA,UAAA,EAAY,KAAK,CAAA,CAAA;AAC1C,IAAO,OAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,GAC7B;AAAA,EAEA,MAAM,QACJ,UACwB,EAAA;AACxB,IAAM,MAAA,UAAA,GAAa,mBAAK,YAAc,CAAA,EAAA,IAAA;AAAA,MACpC,CAAC,OAAA,KACC,OAAQ,CAAA,OAAA,KACP,UAA6C,CAAA,OAAA;AAAA,KAClD,CAAA;AAEA,IAAA,IAAI,UAAY,EAAA;AACd,MAAA,QAAQ,WAAW,OAAS;AAAA,QAC1B,KAAK,+BAAiC,EAAA;AACpC,UAAO,OAAA,UAAA,CAAW,QAAQ,UAAU,CAAA,CAAA;AAAA,SACtC;AAAA,OACF;AACA,MAAM,MAAA,YAAA,GAAe,KAAK,eAAgB,EAAA,CAAA;AAC1C,MAAA,OAAO,WAAW,OAAQ,CAAA;AAAA,QACxB,GAAG,UAAA;AAAA,QACH,YAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,kCAAA,EAAqC,UAAW,CAAA,OAAO,CAAE,CAAA,CAAA,CAAA;AAAA,KACvE;AAAA,GACF;AAAA,EAEA,MAAM,YACJ,UAMA,EAAA;AACA,IAAM,MAAA,UAAA,GAAa,mBAAK,YAAc,CAAA,EAAA,IAAA;AAAA,MACpC,CAAC,OAAA,KACC,OAAQ,CAAA,OAAA,KAAa,UAAqC,CAAA,OAAA;AAAA,KAC9D,CAAA;AAEA,IAAA,IAAI,UAAY,EAAA;AACd,MAAA,QAAQ,WAAW,IAAM;AAAA,QACvB,KAAK,4BAA8B,EAAA;AAKjC,UAAA,OAAO,WAAW,OAAQ,CAAA;AAAA,YACxB,GAAG,UAAA;AAAA;AAAA,YAEH,cAAA,EAAgB,KAAK,iBAAkB,EAAA;AAAA;AAAA;AAAA;AAAA,YAIvC,KAAA,EAAO,KAAK,WAAY,CAAA,KAAA;AAAA,WAClB,CAAA,CAAA;AAAA,SACV;AACA,OACF;AAAA,KACF;AACA,IAAO,OAAA,KAAA,CAAM,YAAY,UAAU,CAAA,CAAA;AAAA,GACrC;AAAA,EAEA,uBAAA,CAAwB,QAAgB,OAAqC,EAAA;AAC3E,IAAA,IAAI,mBAAK,MAAQ,CAAA,EAAA;AACf,MAAA,OAAO,eAAgB,CAAA,YAAA,CAAA,IAAA,EAAK,MAAQ,CAAA,EAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAAA,KAC9C,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ,yFAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACF;AAAA,EAEA,wBAAwB,QAAoB,EAAA;AAC1C,IAAA,MAAM,KAAQ,GAAA,YAAA,CAAA,IAAA,EAAK,cAAiB,CAAA,GAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAClD,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,OAAO,IAAI,uBAAuB,CAAA;AAAA,QAChC,iBAAA,EAAmB,MAAM,MAAO,CAAA,OAAA;AAAA,QAChC,SAAA,EAAW,MAAM,MAAO,CAAA,GAAA;AAAA,QACxB,KAAA;AAAA,QACA,aAAa,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA,OACnB,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ,qFAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACF;AACF,CAAA,CAAA;AAjME,gBAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,YAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAEA,cAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,MAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AALK,IAAM,sBAAN,GAAA;;;;"}
|
package/esm/VuuModule.js
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { uuid } from '@vuu-ui/vuu-utils';
|
|
2
|
+
import { Table, buildDataColumnMapFromSchema } from './Table.js';
|
|
3
|
+
import { TickingArrayDataSource } from './TickingArrayDataSource.js';
|
|
4
|
+
import { makeSuggestions } from './makeSuggestions.js';
|
|
5
|
+
|
|
6
|
+
var __accessCheck = (obj, member, msg) => {
|
|
7
|
+
if (!member.has(obj))
|
|
8
|
+
throw TypeError("Cannot " + msg);
|
|
9
|
+
};
|
|
10
|
+
var __privateGet = (obj, member, getter) => {
|
|
11
|
+
__accessCheck(obj, member, "read from private field");
|
|
12
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
13
|
+
};
|
|
14
|
+
var __privateAdd = (obj, member, value) => {
|
|
15
|
+
if (member.has(obj))
|
|
16
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
17
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
18
|
+
};
|
|
19
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
20
|
+
__accessCheck(obj, member, "write to private field");
|
|
21
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
var _menus, _name, _schemas, _sessionTableMap, _tables, _tableServices, _visualLinks, _moduleServices;
|
|
25
|
+
class VuuModule {
|
|
26
|
+
constructor({
|
|
27
|
+
menus,
|
|
28
|
+
name,
|
|
29
|
+
schemas,
|
|
30
|
+
services,
|
|
31
|
+
tables,
|
|
32
|
+
visualLinks
|
|
33
|
+
}) {
|
|
34
|
+
__privateAdd(this, _menus, void 0);
|
|
35
|
+
__privateAdd(this, _name, void 0);
|
|
36
|
+
__privateAdd(this, _schemas, void 0);
|
|
37
|
+
__privateAdd(this, _sessionTableMap, {});
|
|
38
|
+
__privateAdd(this, _tables, void 0);
|
|
39
|
+
__privateAdd(this, _tableServices, void 0);
|
|
40
|
+
__privateAdd(this, _visualLinks, void 0);
|
|
41
|
+
this.registerViewport = (subscriptionDetails) => {
|
|
42
|
+
console.log("register new viewport", {
|
|
43
|
+
subscriptionDetails
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
this.unregisterViewport = () => {
|
|
47
|
+
console.log("unregister viewport");
|
|
48
|
+
};
|
|
49
|
+
this.createDataSource = (tableName) => {
|
|
50
|
+
const columnDescriptors = this.getColumnDescriptors(tableName);
|
|
51
|
+
const dataSource = new TickingArrayDataSource({
|
|
52
|
+
columnDescriptors,
|
|
53
|
+
keyColumn: __privateGet(this, _schemas)[tableName] === void 0 ? __privateGet(this, _sessionTableMap)[tableName].schema.key : __privateGet(this, _schemas)[tableName].key,
|
|
54
|
+
table: __privateGet(this, _tables)[tableName] || __privateGet(this, _sessionTableMap)[tableName],
|
|
55
|
+
menu: __privateGet(this, _menus)?.[tableName],
|
|
56
|
+
rpcServices: this.getServices(tableName),
|
|
57
|
+
sessionTables: __privateGet(this, _sessionTableMap),
|
|
58
|
+
visualLinks: __privateGet(this, _visualLinks)?.[tableName]
|
|
59
|
+
});
|
|
60
|
+
dataSource.on("subscription-open", this.registerViewport);
|
|
61
|
+
dataSource.on("subscription-closed", this.unregisterViewport);
|
|
62
|
+
return dataSource;
|
|
63
|
+
};
|
|
64
|
+
this.suggestionFetcher = ([
|
|
65
|
+
vuuTable,
|
|
66
|
+
column,
|
|
67
|
+
pattern
|
|
68
|
+
]) => {
|
|
69
|
+
const table = __privateGet(this, _tables)[vuuTable.table];
|
|
70
|
+
if (table) {
|
|
71
|
+
return makeSuggestions(table, column, pattern);
|
|
72
|
+
} else {
|
|
73
|
+
throw Error(
|
|
74
|
+
`${__privateGet(this, _name)} suggestionFetcher, unknown table ${vuuTable.module} ${vuuTable.table}`
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
this.openBulkEdits = async (rpcRequest) => {
|
|
79
|
+
const { selectedRowIds, table } = rpcRequest;
|
|
80
|
+
if (selectedRowIds && table) {
|
|
81
|
+
const dataTable = __privateGet(this, _tables)[table.table];
|
|
82
|
+
if (dataTable) {
|
|
83
|
+
const sessionTable = this.createSessionTableFromSelectedRows(
|
|
84
|
+
dataTable,
|
|
85
|
+
selectedRowIds
|
|
86
|
+
);
|
|
87
|
+
const sessionTableName = `${table.table}-${uuid()}`;
|
|
88
|
+
__privateGet(this, _sessionTableMap)[sessionTableName] = sessionTable;
|
|
89
|
+
return {
|
|
90
|
+
action: {
|
|
91
|
+
renderComponent: "grid",
|
|
92
|
+
table: {
|
|
93
|
+
module: "SIMUL",
|
|
94
|
+
table: sessionTableName
|
|
95
|
+
},
|
|
96
|
+
tableSchema: dataTable.schema,
|
|
97
|
+
type: "OPEN_DIALOG_ACTION"
|
|
98
|
+
},
|
|
99
|
+
requestId: "request_id",
|
|
100
|
+
rpcName: "VP_BULK_EDIT_BEGIN_RPC"
|
|
101
|
+
};
|
|
102
|
+
} else {
|
|
103
|
+
return {
|
|
104
|
+
requestId: "request_id",
|
|
105
|
+
rpcName: "VP_BULK_EDIT_REJECT"
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
// Bulk-edit with input in session table
|
|
111
|
+
this.applyBulkEdits = async (rpcRequest) => {
|
|
112
|
+
const sessionTable = this.getSessionTable();
|
|
113
|
+
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
114
|
+
const newRow = sessionTable.data[i];
|
|
115
|
+
const { column, value } = rpcRequest.namedParams;
|
|
116
|
+
const keyIndex = sessionTable.map[sessionTable.schema.key];
|
|
117
|
+
sessionTable.update(String(newRow[keyIndex]), column, value);
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
action: {
|
|
121
|
+
type: "NO_ACTION"
|
|
122
|
+
},
|
|
123
|
+
requestId: "request_id",
|
|
124
|
+
rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC"
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
// Save session table data to main table
|
|
128
|
+
this.saveBulkEdits = async () => {
|
|
129
|
+
const sessionTable = this.getSessionTable();
|
|
130
|
+
const { table } = sessionTable.schema.table;
|
|
131
|
+
const baseTable = __privateGet(this, _tables)[table];
|
|
132
|
+
if (baseTable) {
|
|
133
|
+
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
134
|
+
const newRow = sessionTable.data[i];
|
|
135
|
+
baseTable.updateRow(newRow);
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
action: {
|
|
139
|
+
type: "NO_ACTION"
|
|
140
|
+
},
|
|
141
|
+
requestId: "request_id",
|
|
142
|
+
rpcName: "VP_BULK_EDIT_SUBMIT_RPC"
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* These services are available on any table. The client must configure the appropriate
|
|
148
|
+
* menu item(s) on Table(s). The services to implement these RPC calls are built-in to
|
|
149
|
+
* VuuModule
|
|
150
|
+
*/
|
|
151
|
+
__privateAdd(this, _moduleServices, [
|
|
152
|
+
{
|
|
153
|
+
rpcName: "VP_BULK_EDIT_BEGIN_RPC",
|
|
154
|
+
service: this.openBulkEdits
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC",
|
|
158
|
+
service: this.applyBulkEdits
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
rpcName: "VP_BULK_EDIT_SUBMIT_RPC",
|
|
162
|
+
service: this.saveBulkEdits
|
|
163
|
+
}
|
|
164
|
+
]);
|
|
165
|
+
__privateSet(this, _menus, menus);
|
|
166
|
+
__privateSet(this, _name, name);
|
|
167
|
+
__privateSet(this, _schemas, schemas);
|
|
168
|
+
__privateSet(this, _tableServices, services);
|
|
169
|
+
__privateSet(this, _tables, tables);
|
|
170
|
+
__privateSet(this, _visualLinks, visualLinks);
|
|
171
|
+
}
|
|
172
|
+
getServices(tableName) {
|
|
173
|
+
const tableServices = __privateGet(this, _tableServices)?.[tableName];
|
|
174
|
+
if (Array.isArray(tableServices)) {
|
|
175
|
+
return __privateGet(this, _moduleServices).concat(tableServices);
|
|
176
|
+
} else {
|
|
177
|
+
return __privateGet(this, _moduleServices);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
get typeaheadHook() {
|
|
181
|
+
return () => this.suggestionFetcher;
|
|
182
|
+
}
|
|
183
|
+
getSessionTable() {
|
|
184
|
+
if (Object.keys(__privateGet(this, _sessionTableMap)).length === 1) {
|
|
185
|
+
const [sessionTable] = Object.values(__privateGet(this, _sessionTableMap));
|
|
186
|
+
return sessionTable;
|
|
187
|
+
} else {
|
|
188
|
+
throw Error(
|
|
189
|
+
"getSessionTable: should never be more than one session table in map"
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
getColumnDescriptors(tableName) {
|
|
194
|
+
const schema = __privateGet(this, _schemas)[tableName] || this.getSessionTable()?.schema;
|
|
195
|
+
if (schema) {
|
|
196
|
+
return schema.columns;
|
|
197
|
+
} else {
|
|
198
|
+
throw Error(
|
|
199
|
+
` no schema found for module ${__privateGet(this, _name)} table ${tableName}`
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
createSessionTableFromSelectedRows({ data, map, schema }, selectedRowIds) {
|
|
204
|
+
const keyIndex = map[schema.key];
|
|
205
|
+
const sessionData = [];
|
|
206
|
+
for (let i = 0; i < selectedRowIds.length; i++) {
|
|
207
|
+
for (let j = 0; j < data.length; j++) {
|
|
208
|
+
if (data[j][keyIndex] === selectedRowIds[i]) {
|
|
209
|
+
sessionData.push(data[j]);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return new Table(schema, sessionData, buildDataColumnMapFromSchema(schema));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
_menus = new WeakMap();
|
|
217
|
+
_name = new WeakMap();
|
|
218
|
+
_schemas = new WeakMap();
|
|
219
|
+
_sessionTableMap = new WeakMap();
|
|
220
|
+
_tables = new WeakMap();
|
|
221
|
+
_tableServices = new WeakMap();
|
|
222
|
+
_visualLinks = new WeakMap();
|
|
223
|
+
_moduleServices = new WeakMap();
|
|
224
|
+
|
|
225
|
+
export { VuuModule };
|
|
226
|
+
//# sourceMappingURL=VuuModule.js.map
|