@vuu-ui/vuu-data-test 0.8.60 → 0.8.61
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/Table.js +4 -3
- package/cjs/Table.js.map +1 -1
- package/cjs/TickingArrayDataSource.js +47 -28
- package/cjs/TickingArrayDataSource.js.map +1 -1
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/makeSuggestions.js +4 -1
- package/cjs/makeSuggestions.js.map +1 -1
- package/cjs/session-table-utils.js +24 -0
- package/cjs/session-table-utils.js.map +1 -0
- package/cjs/simul/simul-module.js +66 -75
- package/cjs/simul/simul-module.js.map +1 -1
- package/esm/Table.js +4 -4
- package/esm/Table.js.map +1 -1
- package/esm/TickingArrayDataSource.js +47 -28
- package/esm/TickingArrayDataSource.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/makeSuggestions.js +4 -1
- package/esm/makeSuggestions.js.map +1 -1
- package/esm/session-table-utils.js +22 -0
- package/esm/session-table-utils.js.map +1 -0
- package/esm/simul/simul-module.js +66 -75
- package/esm/simul/simul-module.js.map +1 -1
- package/package.json +6 -6
- package/types/Table.d.ts +1 -0
- package/types/TickingArrayDataSource.d.ts +5 -4
- package/types/session-table-utils.d.ts +2 -0
- package/types/simul/simul-module.d.ts +2 -0
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { uuid } from '@vuu-ui/vuu-utils';
|
|
2
2
|
import { Table, buildDataColumnMap, joinTables } from '../Table.js';
|
|
3
3
|
import { TickingArrayDataSource } from '../TickingArrayDataSource.js';
|
|
4
|
+
import { makeSuggestions } from '../makeSuggestions.js';
|
|
5
|
+
import { createSessionTableFromSelectedRows } from '../session-table-utils.js';
|
|
4
6
|
import { instrumentsTable } from './reference-data/instruments.js';
|
|
5
7
|
import { instrumentsExtendedTable } from './reference-data/instruments-extended.js';
|
|
6
8
|
import { ordersTable } from './reference-data/orders.js';
|
|
7
9
|
import { pricesTable } from './reference-data/prices.js';
|
|
8
10
|
import { schemas } from './simul-schemas.js';
|
|
9
11
|
|
|
10
|
-
const
|
|
12
|
+
const sessionTableMap = {};
|
|
13
|
+
const getSessionTable = () => {
|
|
14
|
+
if (Object.keys(sessionTableMap).length === 1) {
|
|
15
|
+
const [sessionTable] = Object.values(sessionTableMap);
|
|
16
|
+
return sessionTable;
|
|
17
|
+
} else {
|
|
18
|
+
throw Error(
|
|
19
|
+
"getSessionTable: should never be more than one session table in map"
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
11
23
|
const tables = {
|
|
12
24
|
childOrders: new Table(
|
|
13
25
|
schemas.childOrders,
|
|
@@ -31,7 +43,7 @@ const tables = {
|
|
|
31
43
|
prices: pricesTable
|
|
32
44
|
};
|
|
33
45
|
const getColumnDescriptors = (tableName) => {
|
|
34
|
-
const schema = schemas[tableName] ||
|
|
46
|
+
const schema = schemas[tableName] || getSessionTable()?.schema;
|
|
35
47
|
if (schema) {
|
|
36
48
|
return schema.columns;
|
|
37
49
|
} else {
|
|
@@ -59,7 +71,7 @@ const menus = {
|
|
|
59
71
|
context: "selected-rows",
|
|
60
72
|
filter: "",
|
|
61
73
|
name: "Edit Rows",
|
|
62
|
-
rpcName: "
|
|
74
|
+
rpcName: "VP_BULK_EDIT_BEGIN_RPC"
|
|
63
75
|
}
|
|
64
76
|
]
|
|
65
77
|
},
|
|
@@ -69,58 +81,43 @@ const menus = {
|
|
|
69
81
|
parentOrders: void 0,
|
|
70
82
|
prices: void 0
|
|
71
83
|
};
|
|
72
|
-
async function addInstrumentsToOrder() {
|
|
73
|
-
const sessionTableId = "session-table-1";
|
|
74
|
-
sessionTables[sessionTableId] = new Table(
|
|
75
|
-
schemas.instruments,
|
|
76
|
-
[],
|
|
77
|
-
buildDataColumnMap(schemas, "instruments")
|
|
78
|
-
);
|
|
79
|
-
return {
|
|
80
|
-
action: {
|
|
81
|
-
renderComponent: "grid",
|
|
82
|
-
table: {
|
|
83
|
-
module: "SIMUL",
|
|
84
|
-
table: "session-table-1"
|
|
85
|
-
},
|
|
86
|
-
type: "OPEN_DIALOG_ACTION"
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
84
|
const keyIndex = 6;
|
|
91
|
-
async function
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
table: {
|
|
111
|
-
module: "SIMUL",
|
|
112
|
-
table: "session-table-1"
|
|
85
|
+
async function openBulkEdits(rpcRequest) {
|
|
86
|
+
const { selectedRowIds, table } = rpcRequest;
|
|
87
|
+
const dataTable = tables[table.table];
|
|
88
|
+
if (dataTable) {
|
|
89
|
+
const sessionTable = createSessionTableFromSelectedRows(
|
|
90
|
+
instrumentsTable,
|
|
91
|
+
selectedRowIds
|
|
92
|
+
);
|
|
93
|
+
const sessionTableName = `instruments-${uuid()}`;
|
|
94
|
+
sessionTableMap[sessionTableName] = sessionTable;
|
|
95
|
+
return {
|
|
96
|
+
action: {
|
|
97
|
+
renderComponent: "grid",
|
|
98
|
+
table: {
|
|
99
|
+
module: "SIMUL",
|
|
100
|
+
table: sessionTableName
|
|
101
|
+
},
|
|
102
|
+
tableSchema: dataTable.schema,
|
|
103
|
+
type: "OPEN_DIALOG_ACTION"
|
|
113
104
|
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
105
|
+
requestId: "request_id",
|
|
106
|
+
rpcName: "VP_BULK_EDIT_BEGIN_RPC"
|
|
107
|
+
};
|
|
108
|
+
} else {
|
|
109
|
+
return {
|
|
110
|
+
requestId: "request_id",
|
|
111
|
+
rpcName: "VP_BULK_EDIT_REJECT"
|
|
112
|
+
};
|
|
113
|
+
}
|
|
119
114
|
}
|
|
120
|
-
async function applyBulkEdits() {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
async function applyBulkEdits(rpcRequest) {
|
|
116
|
+
const sessionTable = getSessionTable();
|
|
117
|
+
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
118
|
+
const newRow = sessionTable.data[i];
|
|
119
|
+
const { column, value } = rpcRequest.namedParams;
|
|
120
|
+
sessionTable.update(String(newRow[keyIndex]), column, value);
|
|
124
121
|
}
|
|
125
122
|
return {
|
|
126
123
|
action: {
|
|
@@ -132,17 +129,14 @@ async function applyBulkEdits() {
|
|
|
132
129
|
type: "OPEN_DIALOG_ACTION"
|
|
133
130
|
},
|
|
134
131
|
requestId: "request_id",
|
|
135
|
-
rpcName: "
|
|
132
|
+
rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC"
|
|
136
133
|
};
|
|
137
134
|
}
|
|
138
|
-
async function
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
rpcRequest.multiEditCol,
|
|
144
|
-
rpcRequest.multiEditVal
|
|
145
|
-
);
|
|
135
|
+
async function saveBulkEdits() {
|
|
136
|
+
const sessionTable = getSessionTable();
|
|
137
|
+
for (let i = 0; i < sessionTable.data.length; i++) {
|
|
138
|
+
const newRow = sessionTable.data[i];
|
|
139
|
+
instrumentsTable.updateRow(newRow);
|
|
146
140
|
}
|
|
147
141
|
return {
|
|
148
142
|
action: {
|
|
@@ -154,27 +148,23 @@ async function applyEditMultiple(rpcRequest) {
|
|
|
154
148
|
type: "OPEN_DIALOG_ACTION"
|
|
155
149
|
},
|
|
156
150
|
requestId: "request_id",
|
|
157
|
-
rpcName: "
|
|
151
|
+
rpcName: "VP_BULK_EDIT_SUBMIT_RPC"
|
|
158
152
|
};
|
|
159
153
|
}
|
|
160
154
|
const services = {
|
|
161
155
|
childOrders: void 0,
|
|
162
156
|
instruments: [
|
|
163
157
|
{
|
|
164
|
-
rpcName: "
|
|
165
|
-
service:
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
rpcName: "BULK_EDIT",
|
|
169
|
-
service: editRow
|
|
158
|
+
rpcName: "VP_BULK_EDIT_BEGIN_RPC",
|
|
159
|
+
service: openBulkEdits
|
|
170
160
|
},
|
|
171
161
|
{
|
|
172
|
-
rpcName: "
|
|
162
|
+
rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC",
|
|
173
163
|
service: applyBulkEdits
|
|
174
164
|
},
|
|
175
165
|
{
|
|
176
|
-
rpcName: "
|
|
177
|
-
service:
|
|
166
|
+
rpcName: "VP_BULK_EDIT_SUBMIT_RPC",
|
|
167
|
+
service: saveBulkEdits
|
|
178
168
|
}
|
|
179
169
|
],
|
|
180
170
|
instrumentsExtended: void 0,
|
|
@@ -187,10 +177,11 @@ const createDataSource = (tableName) => {
|
|
|
187
177
|
const columnDescriptors = getColumnDescriptors(tableName);
|
|
188
178
|
return new TickingArrayDataSource({
|
|
189
179
|
columnDescriptors,
|
|
190
|
-
keyColumn: schemas[tableName] === void 0 ?
|
|
191
|
-
table: tables[tableName] ||
|
|
180
|
+
keyColumn: schemas[tableName] === void 0 ? sessionTableMap[tableName].schema.key : schemas[tableName].key,
|
|
181
|
+
table: tables[tableName] || sessionTableMap[tableName],
|
|
192
182
|
menu: menus[tableName],
|
|
193
|
-
rpcServices: services[tableName]
|
|
183
|
+
rpcServices: services[tableName],
|
|
184
|
+
sessionTables: sessionTableMap
|
|
194
185
|
});
|
|
195
186
|
};
|
|
196
187
|
const suggestionFetcher = ([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simul-module.js","sources":["../../src/simul/simul-module.ts"],"sourcesContent":["import { SuggestionFetcher } from \"@vuu-ui/vuu-data-types\";\nimport {\n ClientToServerEditRpc,\n ClientToServerMenuRPC,\n TypeaheadParams,\n VuuMenu,\n VuuRowDataItemType,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { makeSuggestions } from \"../makeSuggestions\";\nimport { buildDataColumnMap, joinTables, Table } from \"../Table\";\nimport { TickingArrayDataSource } from \"../TickingArrayDataSource\";\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: (rpcRequest: any) => Promise<unknown>;\n};\n\nconst sessionTables: Record<string, Table> = {};\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] || sessionTables[\"session-table-1\"].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: \"BULK_EDIT\",\n },\n ],\n },\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nasync function addInstrumentsToOrder(/*rpcRequest: unknown*/) {\n // create a `session table`,\n // populate with selected Instruments\n // sens subscriptionn details to user\n\n const sessionTableId = \"session-table-1\";\n sessionTables[sessionTableId] = new Table(\n schemas.instruments,\n [],\n buildDataColumnMap<SimulTableName>(schemas, \"instruments\")\n );\n\n return {\n action: {\n renderComponent: \"grid\",\n table: {\n module: \"SIMUL\",\n table: \"session-table-1\",\n },\n type: \"OPEN_DIALOG_ACTION\",\n },\n };\n}\n\nconst keyIndex = 6;\nasync function editRow(\n rpcRequest:\n | Omit<ClientToServerMenuRPC, \"vpId\">\n | ClientToServerEditRpc\n | { selectedRowIds: string[] }\n) {\n const sessionTableId = \"session-table-1\";\n const sessionData: VuuRowDataItemType[][] = [];\n const selectedRowIds = (rpcRequest as { selectedRowIds: string[] })\n .selectedRowIds;\n for (let i = 0; i < selectedRowIds.length; i++) {\n for (let j = 0; j < instrumentsTable.data.length; j++) {\n if (instrumentsTable.data[j][keyIndex] === selectedRowIds[i]) {\n sessionData.push(instrumentsTable.data[j]);\n }\n }\n }\n sessionTables[sessionTableId] = new Table(\n schemas.instruments,\n sessionData,\n buildDataColumnMap(schemas, \"instruments\")\n );\n\n return {\n action: {\n renderComponent: \"grid\",\n table: {\n module: \"SIMUL\",\n table: \"session-table-1\",\n },\n type: \"OPEN_DIALOG_ACTION\",\n },\n requestId: \"request_id\",\n rpcName: \"BULK_EDIT\",\n };\n}\n\nasync function applyBulkEdits() {\n for (let i = 0; i < sessionTables[\"session-table-1\"].data.length; i++) {\n const newRow = sessionTables[\"session-table-1\"].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: \"APPLY_BULK_EDITS\",\n };\n}\n\nasync function applyEditMultiple(\n rpcRequest:\n | Omit<ClientToServerMenuRPC, \"vpId\">\n | ClientToServerEditRpc\n | { multiEditCol: string }\n | { multiEditVal: string }\n) {\n for (let i = 0; i < sessionTables[\"session-table-1\"].data.length; i++) {\n const newRow = sessionTables[\"session-table-1\"].data[i];\n instrumentsTable.update(\n String(newRow[keyIndex]),\n (rpcRequest as { multiEditCol: string }).multiEditCol,\n (rpcRequest as { multiEditVal: string }).multiEditVal\n );\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: \"APPLY_EDIT_MULTIPLE\",\n };\n}\n\nconst services: Record<SimulTableName, RpcService[] | undefined> = {\n childOrders: undefined,\n instruments: [\n {\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n service: addInstrumentsToOrder,\n },\n {\n rpcName: \"BULK_EDIT\",\n service: editRow,\n },\n {\n rpcName: \"APPLY_BULK_EDITS\",\n service: applyBulkEdits,\n },\n {\n rpcName: \"APPLY_EDIT_MULTIPLE\",\n service: applyEditMultiple,\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 //console.log(sessionTables['session-table-1'].schema);\n return new TickingArrayDataSource({\n columnDescriptors,\n keyColumn:\n schemas[tableName] === undefined\n ? sessionTables[tableName].schema.key\n : schemas[tableName].key,\n table: tables[tableName] || sessionTables[tableName],\n menu: menus[tableName],\n rpcServices: services[tableName],\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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simul-module.js","sources":["../../src/simul/simul-module.ts"],"sourcesContent":["import { OpenDialogAction, SuggestionFetcher } 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 OpenDialogAction,\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":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.8.
|
|
2
|
+
"version": "0.8.61",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@vuu-ui/vuu-data-local": "0.8.
|
|
7
|
-
"@vuu-ui/vuu-utils": "0.8.
|
|
6
|
+
"@vuu-ui/vuu-data-local": "0.8.61",
|
|
7
|
+
"@vuu-ui/vuu-utils": "0.8.61",
|
|
8
8
|
"@thomaschaplin/isin-generator": "1.0.3"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"@vuu-ui/vuu-protocol-types": "0.8.
|
|
12
|
-
"@vuu-ui/vuu-data-types": "0.8.
|
|
13
|
-
"@vuu-ui/vuu-table-types": "0.8.
|
|
11
|
+
"@vuu-ui/vuu-protocol-types": "0.8.61",
|
|
12
|
+
"@vuu-ui/vuu-data-types": "0.8.61",
|
|
13
|
+
"@vuu-ui/vuu-table-types": "0.8.61"
|
|
14
14
|
},
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"files": [
|
package/types/Table.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare class Table extends EventEmitter<TableEvents> {
|
|
|
19
19
|
update(key: string, columnName: string, value: VuuRowDataItemType): void;
|
|
20
20
|
updateRow(row: VuuRowDataItemType[]): void;
|
|
21
21
|
}
|
|
22
|
+
export declare function buildDataColumnMapFromSchema(schema: Readonly<TableSchema>): ColumnMap;
|
|
22
23
|
/**
|
|
23
24
|
* Build a data ColumnMap for a table in the provided schema.
|
|
24
25
|
* A data ColumnMap is a mapping from a raw data array to a map, keyed
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ArrayDataSource, ArrayDataSourceConstructorProps } from "@vuu-ui/vuu-data-local";
|
|
2
2
|
import type { DataSourceRow, MenuRpcResponse, RpcResponse, SubscribeCallback, SubscribeProps, VuuUIMessageInRPCEditReject, VuuUIMessageInRPCEditResponse } from "@vuu-ui/vuu-data-types";
|
|
3
|
-
import type { ClientToServerEditRpc, ClientToServerMenuRPC, ClientToServerViewportRpcCall, VuuMenu, VuuRange, VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
import type { ClientToServerEditRpc, ClientToServerMenuRPC, ClientToServerViewportRpcCall, VuuMenu, VuuRange, VuuRowDataItemType, VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
4
4
|
import { Table } from "./Table";
|
|
5
|
+
import { SessionTableMap } from "./simul";
|
|
5
6
|
export type RpcService = {
|
|
6
7
|
rpcName: string;
|
|
7
8
|
service: (rpcRequest: any) => Promise<any>;
|
|
@@ -11,20 +12,20 @@ export interface TickingArrayDataSourceConstructorProps extends Omit<ArrayDataSo
|
|
|
11
12
|
menu?: VuuMenu;
|
|
12
13
|
menuRpcServices?: RpcService[];
|
|
13
14
|
rpcServices?: RpcService[];
|
|
15
|
+
sessionTables?: SessionTableMap;
|
|
14
16
|
table?: Table;
|
|
15
17
|
}
|
|
16
18
|
export declare class TickingArrayDataSource extends ArrayDataSource {
|
|
17
19
|
#private;
|
|
18
|
-
constructor({ data, menuRpcServices, rpcServices, table, menu, ...arrayDataSourceProps }: TickingArrayDataSourceConstructorProps);
|
|
20
|
+
constructor({ data, menuRpcServices, rpcServices, sessionTables, table, menu, ...arrayDataSourceProps }: TickingArrayDataSourceConstructorProps);
|
|
19
21
|
subscribe(subscribeProps: SubscribeProps, callback: SubscribeCallback): Promise<void>;
|
|
20
22
|
set range(range: VuuRange);
|
|
21
23
|
get range(): VuuRange;
|
|
22
24
|
private getSelectedRows;
|
|
23
25
|
private getSelectedRowIds;
|
|
24
|
-
private getMultiEditCol;
|
|
25
|
-
private getMultiEditVal;
|
|
26
26
|
applyEdit(row: DataSourceRow, columnName: string, value: VuuRowDataItemType): Promise<true>;
|
|
27
27
|
rpcCall<T extends RpcResponse = RpcResponse>(rpcRequest: Omit<ClientToServerViewportRpcCall, "vpId">): Promise<T | undefined>;
|
|
28
28
|
menuRpcCall(rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc): Promise<MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse | undefined>;
|
|
29
29
|
getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]>;
|
|
30
|
+
createSessionDataSource(vuuTable: VuuTable): TickingArrayDataSource;
|
|
30
31
|
}
|