@vuu-ui/vuu-data-test 0.8.55 → 0.8.57
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 +42 -5
- package/cjs/TickingArrayDataSource.js.map +1 -1
- package/cjs/simul/simul-module.js +100 -4
- package/cjs/simul/simul-module.js.map +1 -1
- package/esm/TickingArrayDataSource.js +42 -5
- package/esm/TickingArrayDataSource.js.map +1 -1
- package/esm/simul/simul-module.js +100 -4
- package/esm/simul/simul-module.js.map +1 -1
- package/package.json +6 -6
- package/types/TickingArrayDataSource.d.ts +3 -0
|
@@ -65,12 +65,12 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
|
|
|
65
65
|
return this.selectedRows.reduce(
|
|
66
66
|
(rows, selected) => {
|
|
67
67
|
if (Array.isArray(selected)) {
|
|
68
|
-
selected
|
|
69
|
-
const row = this.data[
|
|
68
|
+
for (let i = selected[0]; i <= selected[1]; i++) {
|
|
69
|
+
const row = this.data[i];
|
|
70
70
|
if (row) {
|
|
71
71
|
rows.push(row);
|
|
72
72
|
}
|
|
73
|
-
}
|
|
73
|
+
}
|
|
74
74
|
} else {
|
|
75
75
|
const row = this.data[selected];
|
|
76
76
|
if (row) {
|
|
@@ -82,6 +82,35 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
|
|
|
82
82
|
[]
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
|
+
getSelectedRowIds() {
|
|
86
|
+
const keyIndex = 6;
|
|
87
|
+
const rowIds = [];
|
|
88
|
+
return this.selectedRows.reduce(
|
|
89
|
+
(rows, selected) => {
|
|
90
|
+
if (Array.isArray(selected)) {
|
|
91
|
+
for (let i = selected[0]; i <= selected[1]; i++) {
|
|
92
|
+
const row = this.data[i];
|
|
93
|
+
if (row) {
|
|
94
|
+
rowIds.push(row[keyIndex]);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
} else {
|
|
98
|
+
const row = this.data[selected];
|
|
99
|
+
if (row) {
|
|
100
|
+
rowIds.push(row[keyIndex]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return rowIds;
|
|
104
|
+
},
|
|
105
|
+
[]
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
getMultiEditCol() {
|
|
109
|
+
return "currency";
|
|
110
|
+
}
|
|
111
|
+
getMultiEditVal() {
|
|
112
|
+
return "EUR";
|
|
113
|
+
}
|
|
85
114
|
applyEdit(row, columnName, value) {
|
|
86
115
|
const key = row[vuuUtils.metadataKeys.KEY];
|
|
87
116
|
__privateGet(this, _table)?.update(key, columnName, value);
|
|
@@ -92,8 +121,14 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
|
|
|
92
121
|
(service) => service.rpcName === rpcRequest.rpcName
|
|
93
122
|
);
|
|
94
123
|
if (rpcService) {
|
|
124
|
+
const selectedRows = this.getSelectedRows();
|
|
125
|
+
const multiEditCol = this.getMultiEditCol();
|
|
126
|
+
const multiEditVal = this.getMultiEditVal();
|
|
95
127
|
return rpcService.service({
|
|
96
|
-
...rpcRequest
|
|
128
|
+
...rpcRequest,
|
|
129
|
+
selectedRows,
|
|
130
|
+
multiEditCol,
|
|
131
|
+
multiEditVal
|
|
97
132
|
});
|
|
98
133
|
} else {
|
|
99
134
|
console.log(`no implementation for PRC service ${rpcRequest.rpcName}`);
|
|
@@ -107,9 +142,11 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
|
|
|
107
142
|
switch (rpcRequest.type) {
|
|
108
143
|
case "VIEW_PORT_MENUS_SELECT_RPC": {
|
|
109
144
|
const selectedRows = this.getSelectedRows();
|
|
145
|
+
const selectedRowIds = this.getSelectedRowIds();
|
|
110
146
|
return rpcService.service({
|
|
111
147
|
...rpcRequest,
|
|
112
|
-
selectedRows
|
|
148
|
+
selectedRows,
|
|
149
|
+
selectedRowIds
|
|
113
150
|
});
|
|
114
151
|
}
|
|
115
152
|
}
|
|
@@ -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} from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\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 table?: Table;\n}\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n #table?: Table;\n\n constructor({\n data,\n menuRpcServices,\n rpcServices,\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.#rpcServices = rpcServices;\n this.#table = table;\n\n if (table) {\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 selected.forEach((sel) => {\n const row = this.data[sel];\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 applyEdit(\n row: DataSourceRow,\n columnName: string,\n value: VuuRowDataItemType\n ): Promise<true> {\n const key = row[metadataKeys.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 if (rpcService) {\n return rpcService.service({\n ...rpcRequest,\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 const selectedRows = this.getSelectedRows();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n });\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"],"names":["ArrayDataSource","metadataKeys","makeSuggestions"],"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 VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\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 table?: Table;\n}\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n #table?: Table;\n\n constructor({\n data,\n menuRpcServices,\n rpcServices,\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.#rpcServices = rpcServices;\n this.#table = table;\n\n if (table) {\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 const keyIndex = 6;\n const rowIds: any[] = [];\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 rowIds.push(row[keyIndex]);\n }\n }\n } else {\n const row = this.data[selected];\n if (row) {\n rowIds.push(row[keyIndex]);\n }\n }\n return rowIds;\n },\n []\n );\n }\n\n private getMultiEditCol() {\n // placeholder: need to get value from dialog\n return \"currency\";\n }\n\n private getMultiEditVal() {\n // placeholder: need to get value from dialog\n return \"EUR\";\n }\n\n applyEdit(\n row: DataSourceRow,\n columnName: string,\n value: VuuRowDataItemType\n ): Promise<true> {\n const key = row[metadataKeys.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 if (rpcService) {\n const selectedRows = this.getSelectedRows();\n const multiEditCol = this.getMultiEditCol();\n const multiEditVal = this.getMultiEditVal();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n multiEditCol,\n multiEditVal,\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 const selectedRows = this.getSelectedRows();\n const selectedRowIds = this.getSelectedRowIds();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n selectedRowIds,\n });\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"],"names":["ArrayDataSource","metadataKeys","makeSuggestions"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var orders = require('./reference-data/orders.js');
|
|
|
9
9
|
var prices = require('./reference-data/prices.js');
|
|
10
10
|
var simulSchemas = require('./simul-schemas.js');
|
|
11
11
|
|
|
12
|
+
const sessionTables = {};
|
|
12
13
|
const tables = {
|
|
13
14
|
childOrders: new Table.Table(
|
|
14
15
|
simulSchemas.schemas.childOrders,
|
|
@@ -32,7 +33,7 @@ const tables = {
|
|
|
32
33
|
prices: prices.pricesTable
|
|
33
34
|
};
|
|
34
35
|
const getColumnDescriptors = (tableName) => {
|
|
35
|
-
const schema = simulSchemas.schemas[tableName];
|
|
36
|
+
const schema = simulSchemas.schemas[tableName] || sessionTables["session-table-1"].schema;
|
|
36
37
|
if (schema) {
|
|
37
38
|
return schema.columns;
|
|
38
39
|
} else {
|
|
@@ -49,6 +50,18 @@ const menus = {
|
|
|
49
50
|
filter: "",
|
|
50
51
|
name: "Add Instruments To Order",
|
|
51
52
|
rpcName: "ADD_INSTRUMENTS_TO_ORDER"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
context: "selected-rows",
|
|
56
|
+
filter: "",
|
|
57
|
+
name: "Edit Row",
|
|
58
|
+
rpcName: "EDIT_ROW"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
context: "selected-rows",
|
|
62
|
+
filter: "",
|
|
63
|
+
name: "Edit Rows",
|
|
64
|
+
rpcName: "BULK_EDIT"
|
|
52
65
|
}
|
|
53
66
|
]
|
|
54
67
|
},
|
|
@@ -59,7 +72,8 @@ const menus = {
|
|
|
59
72
|
prices: void 0
|
|
60
73
|
};
|
|
61
74
|
async function addInstrumentsToOrder() {
|
|
62
|
-
|
|
75
|
+
const sessionTableId = "session-table-1";
|
|
76
|
+
sessionTables[sessionTableId] = new Table.Table(
|
|
63
77
|
simulSchemas.schemas.instruments,
|
|
64
78
|
[],
|
|
65
79
|
Table.buildDataColumnMap(simulSchemas.schemas, "instruments")
|
|
@@ -75,12 +89,94 @@ async function addInstrumentsToOrder() {
|
|
|
75
89
|
}
|
|
76
90
|
};
|
|
77
91
|
}
|
|
92
|
+
const keyIndex = 6;
|
|
93
|
+
async function editRow(rpcRequest) {
|
|
94
|
+
const sessionTableId = "session-table-1";
|
|
95
|
+
const sessionData = [];
|
|
96
|
+
const selectedRowIds = rpcRequest.selectedRowIds;
|
|
97
|
+
for (let i = 0; i < selectedRowIds.length; i++) {
|
|
98
|
+
for (let j = 0; j < instruments.instrumentsTable.data.length; j++) {
|
|
99
|
+
if (instruments.instrumentsTable.data[j][keyIndex] === selectedRowIds[i]) {
|
|
100
|
+
sessionData.push(instruments.instrumentsTable.data[j]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
sessionTables[sessionTableId] = new Table.Table(
|
|
105
|
+
simulSchemas.schemas.instruments,
|
|
106
|
+
sessionData,
|
|
107
|
+
Table.buildDataColumnMap(simulSchemas.schemas, "instruments")
|
|
108
|
+
);
|
|
109
|
+
return {
|
|
110
|
+
action: {
|
|
111
|
+
renderComponent: "grid",
|
|
112
|
+
table: {
|
|
113
|
+
module: "SIMUL",
|
|
114
|
+
table: "session-table-1"
|
|
115
|
+
},
|
|
116
|
+
type: "OPEN_DIALOG_ACTION"
|
|
117
|
+
},
|
|
118
|
+
requestId: "request_id",
|
|
119
|
+
rpcName: "BULK_EDIT"
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async function applyBulkEdits() {
|
|
123
|
+
for (let i = 0; i < sessionTables["session-table-1"].data.length; i++) {
|
|
124
|
+
const newRow = sessionTables["session-table-1"].data[i];
|
|
125
|
+
instruments.instrumentsTable.updateRow(newRow);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
action: {
|
|
129
|
+
renderComponent: "grid",
|
|
130
|
+
table: {
|
|
131
|
+
module: "SIMUL",
|
|
132
|
+
table: "instruments"
|
|
133
|
+
},
|
|
134
|
+
type: "OPEN_DIALOG_ACTION"
|
|
135
|
+
},
|
|
136
|
+
requestId: "request_id",
|
|
137
|
+
rpcName: "APPLY_BULK_EDITS"
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
async function applyEditMultiple(rpcRequest) {
|
|
141
|
+
for (let i = 0; i < sessionTables["session-table-1"].data.length; i++) {
|
|
142
|
+
const newRow = sessionTables["session-table-1"].data[i];
|
|
143
|
+
instruments.instrumentsTable.update(
|
|
144
|
+
String(newRow[keyIndex]),
|
|
145
|
+
rpcRequest.multiEditCol,
|
|
146
|
+
rpcRequest.multiEditVal
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
action: {
|
|
151
|
+
renderComponent: "grid",
|
|
152
|
+
table: {
|
|
153
|
+
module: "SIMUL",
|
|
154
|
+
table: "instruments"
|
|
155
|
+
},
|
|
156
|
+
type: "OPEN_DIALOG_ACTION"
|
|
157
|
+
},
|
|
158
|
+
requestId: "request_id",
|
|
159
|
+
rpcName: "APPLY_EDIT_MULTIPLE"
|
|
160
|
+
};
|
|
161
|
+
}
|
|
78
162
|
const services = {
|
|
79
163
|
childOrders: void 0,
|
|
80
164
|
instruments: [
|
|
81
165
|
{
|
|
82
166
|
rpcName: "ADD_INSTRUMENTS_TO_ORDER",
|
|
83
167
|
service: addInstrumentsToOrder
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
rpcName: "BULK_EDIT",
|
|
171
|
+
service: editRow
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
rpcName: "APPLY_BULK_EDITS",
|
|
175
|
+
service: applyBulkEdits
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
rpcName: "APPLY_EDIT_MULTIPLE",
|
|
179
|
+
service: applyEditMultiple
|
|
84
180
|
}
|
|
85
181
|
],
|
|
86
182
|
instrumentsExtended: void 0,
|
|
@@ -93,8 +189,8 @@ const createDataSource = (tableName) => {
|
|
|
93
189
|
const columnDescriptors = getColumnDescriptors(tableName);
|
|
94
190
|
return new TickingArrayDataSource.TickingArrayDataSource({
|
|
95
191
|
columnDescriptors,
|
|
96
|
-
keyColumn: simulSchemas.schemas[tableName].key,
|
|
97
|
-
table: tables[tableName],
|
|
192
|
+
keyColumn: simulSchemas.schemas[tableName] === void 0 ? sessionTables[tableName].schema.key : simulSchemas.schemas[tableName].key,
|
|
193
|
+
table: tables[tableName] || sessionTables[tableName],
|
|
98
194
|
menu: menus[tableName],
|
|
99
195
|
rpcServices: services[tableName]
|
|
100
196
|
});
|
|
@@ -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 { TypeaheadParams, VuuMenu } 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];\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 },\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 services: Record<SimulTableName, RpcService[] | undefined> = {\n childOrders: undefined,\n instruments: [\n {\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n service: addInstrumentsToOrder,\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: schemas[tableName].key,\n table: tables[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":["Table","schemas","buildDataColumnMap","instrumentsTable","instrumentsExtendedTable","joinTables","pricesTable","ordersTable","TickingArrayDataSource","makeSuggestions"],"mappings":"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"}
|
|
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":["Table","schemas","buildDataColumnMap","instrumentsTable","instrumentsExtendedTable","joinTables","pricesTable","ordersTable","TickingArrayDataSource","makeSuggestions"],"mappings":"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"}
|
|
@@ -63,12 +63,12 @@ class TickingArrayDataSource extends ArrayDataSource {
|
|
|
63
63
|
return this.selectedRows.reduce(
|
|
64
64
|
(rows, selected) => {
|
|
65
65
|
if (Array.isArray(selected)) {
|
|
66
|
-
selected
|
|
67
|
-
const row = this.data[
|
|
66
|
+
for (let i = selected[0]; i <= selected[1]; i++) {
|
|
67
|
+
const row = this.data[i];
|
|
68
68
|
if (row) {
|
|
69
69
|
rows.push(row);
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
}
|
|
72
72
|
} else {
|
|
73
73
|
const row = this.data[selected];
|
|
74
74
|
if (row) {
|
|
@@ -80,6 +80,35 @@ class TickingArrayDataSource extends ArrayDataSource {
|
|
|
80
80
|
[]
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
|
+
getSelectedRowIds() {
|
|
84
|
+
const keyIndex = 6;
|
|
85
|
+
const rowIds = [];
|
|
86
|
+
return this.selectedRows.reduce(
|
|
87
|
+
(rows, selected) => {
|
|
88
|
+
if (Array.isArray(selected)) {
|
|
89
|
+
for (let i = selected[0]; i <= selected[1]; i++) {
|
|
90
|
+
const row = this.data[i];
|
|
91
|
+
if (row) {
|
|
92
|
+
rowIds.push(row[keyIndex]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
const row = this.data[selected];
|
|
97
|
+
if (row) {
|
|
98
|
+
rowIds.push(row[keyIndex]);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return rowIds;
|
|
102
|
+
},
|
|
103
|
+
[]
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
getMultiEditCol() {
|
|
107
|
+
return "currency";
|
|
108
|
+
}
|
|
109
|
+
getMultiEditVal() {
|
|
110
|
+
return "EUR";
|
|
111
|
+
}
|
|
83
112
|
applyEdit(row, columnName, value) {
|
|
84
113
|
const key = row[metadataKeys.KEY];
|
|
85
114
|
__privateGet(this, _table)?.update(key, columnName, value);
|
|
@@ -90,8 +119,14 @@ class TickingArrayDataSource extends ArrayDataSource {
|
|
|
90
119
|
(service) => service.rpcName === rpcRequest.rpcName
|
|
91
120
|
);
|
|
92
121
|
if (rpcService) {
|
|
122
|
+
const selectedRows = this.getSelectedRows();
|
|
123
|
+
const multiEditCol = this.getMultiEditCol();
|
|
124
|
+
const multiEditVal = this.getMultiEditVal();
|
|
93
125
|
return rpcService.service({
|
|
94
|
-
...rpcRequest
|
|
126
|
+
...rpcRequest,
|
|
127
|
+
selectedRows,
|
|
128
|
+
multiEditCol,
|
|
129
|
+
multiEditVal
|
|
95
130
|
});
|
|
96
131
|
} else {
|
|
97
132
|
console.log(`no implementation for PRC service ${rpcRequest.rpcName}`);
|
|
@@ -105,9 +140,11 @@ class TickingArrayDataSource extends ArrayDataSource {
|
|
|
105
140
|
switch (rpcRequest.type) {
|
|
106
141
|
case "VIEW_PORT_MENUS_SELECT_RPC": {
|
|
107
142
|
const selectedRows = this.getSelectedRows();
|
|
143
|
+
const selectedRowIds = this.getSelectedRowIds();
|
|
108
144
|
return rpcService.service({
|
|
109
145
|
...rpcRequest,
|
|
110
|
-
selectedRows
|
|
146
|
+
selectedRows,
|
|
147
|
+
selectedRowIds
|
|
111
148
|
});
|
|
112
149
|
}
|
|
113
150
|
}
|
|
@@ -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} from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\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 table?: Table;\n}\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n #table?: Table;\n\n constructor({\n data,\n menuRpcServices,\n rpcServices,\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.#rpcServices = rpcServices;\n this.#table = table;\n\n if (table) {\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 selected.forEach((sel) => {\n const row = this.data[sel];\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 applyEdit(\n row: DataSourceRow,\n columnName: string,\n value: VuuRowDataItemType\n ): Promise<true> {\n const key = row[metadataKeys.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 if (rpcService) {\n return rpcService.service({\n ...rpcRequest,\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 const selectedRows = this.getSelectedRows();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n });\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"],"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 VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\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 table?: Table;\n}\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n #table?: Table;\n\n constructor({\n data,\n menuRpcServices,\n rpcServices,\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.#rpcServices = rpcServices;\n this.#table = table;\n\n if (table) {\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 const keyIndex = 6;\n const rowIds: any[] = [];\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 rowIds.push(row[keyIndex]);\n }\n }\n } else {\n const row = this.data[selected];\n if (row) {\n rowIds.push(row[keyIndex]);\n }\n }\n return rowIds;\n },\n []\n );\n }\n\n private getMultiEditCol() {\n // placeholder: need to get value from dialog\n return \"currency\";\n }\n\n private getMultiEditVal() {\n // placeholder: need to get value from dialog\n return \"EUR\";\n }\n\n applyEdit(\n row: DataSourceRow,\n columnName: string,\n value: VuuRowDataItemType\n ): Promise<true> {\n const key = row[metadataKeys.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 if (rpcService) {\n const selectedRows = this.getSelectedRows();\n const multiEditCol = this.getMultiEditCol();\n const multiEditVal = this.getMultiEditVal();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n multiEditCol,\n multiEditVal,\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 const selectedRows = this.getSelectedRows();\n const selectedRowIds = this.getSelectedRowIds();\n return rpcService.service({\n ...rpcRequest,\n selectedRows,\n selectedRowIds,\n });\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"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,gBAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAwCO,MAAM,+BAA+B,eAAgB,CAAA;AAAA,EAK1D,WAAY,CAAA;AAAA,IACV,IAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;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;AAlBH,IAAA,YAAA,CAAA,IAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAiBE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AACb,IAAA,YAAA,CAAA,IAAA,EAAK,gBAAmB,EAAA,eAAA,CAAA,CAAA;AACxB,IAAA,YAAA,CAAA,IAAA,EAAK,YAAe,EAAA,WAAA,CAAA,CAAA;AACpB,IAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AAEd,IAAA,IAAI,KAAO,EAAA;AACT,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,MAAM,QAAW,GAAA,CAAA,CAAA;AACjB,IAAA,MAAM,SAAgB,EAAC,CAAA;AACvB,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,cAAO,MAAA,CAAA,IAAA,CAAK,GAAI,CAAA,QAAQ,CAAC,CAAA,CAAA;AAAA,aAC3B;AAAA,WACF;AAAA,SACK,MAAA;AACL,UAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAC9B,UAAA,IAAI,GAAK,EAAA;AACP,YAAO,MAAA,CAAA,IAAA,CAAK,GAAI,CAAA,QAAQ,CAAC,CAAA,CAAA;AAAA,WAC3B;AAAA,SACF;AACA,QAAO,OAAA,MAAA,CAAA;AAAA,OACT;AAAA,MACA,EAAC;AAAA,KACH,CAAA;AAAA,GACF;AAAA,EAEQ,eAAkB,GAAA;AAExB,IAAO,OAAA,UAAA,CAAA;AAAA,GACT;AAAA,EAEQ,eAAkB,GAAA;AAExB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAAA,EAEA,SAAA,CACE,GACA,EAAA,UAAA,EACA,KACe,EAAA;AACf,IAAM,MAAA,GAAA,GAAM,GAAI,CAAA,YAAA,CAAa,GAAG,CAAA,CAAA;AAChC,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;AACA,IAAA,IAAI,UAAY,EAAA;AACd,MAAM,MAAA,YAAA,GAAe,KAAK,eAAgB,EAAA,CAAA;AAC1C,MAAM,MAAA,YAAA,GAAe,KAAK,eAAgB,EAAA,CAAA;AAC1C,MAAM,MAAA,YAAA,GAAe,KAAK,eAAgB,EAAA,CAAA;AAC1C,MAAA,OAAO,WAAW,OAAQ,CAAA;AAAA,QACxB,GAAG,UAAA;AAAA,QACH,YAAA;AAAA,QACA,YAAA;AAAA,QACA,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;AACjC,UAAM,MAAA,YAAA,GAAe,KAAK,eAAgB,EAAA,CAAA;AAC1C,UAAM,MAAA,cAAA,GAAiB,KAAK,iBAAkB,EAAA,CAAA;AAC9C,UAAA,OAAO,WAAW,OAAQ,CAAA;AAAA,YACxB,GAAG,UAAA;AAAA,YACH,YAAA;AAAA,YACA,cAAA;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AAEA,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;AACF,CAAA;AA/KE,gBAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,YAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,MAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
|
|
@@ -7,6 +7,7 @@ import { ordersTable } from './reference-data/orders.js';
|
|
|
7
7
|
import { pricesTable } from './reference-data/prices.js';
|
|
8
8
|
import { schemas } from './simul-schemas.js';
|
|
9
9
|
|
|
10
|
+
const sessionTables = {};
|
|
10
11
|
const tables = {
|
|
11
12
|
childOrders: new Table(
|
|
12
13
|
schemas.childOrders,
|
|
@@ -30,7 +31,7 @@ const tables = {
|
|
|
30
31
|
prices: pricesTable
|
|
31
32
|
};
|
|
32
33
|
const getColumnDescriptors = (tableName) => {
|
|
33
|
-
const schema = schemas[tableName];
|
|
34
|
+
const schema = schemas[tableName] || sessionTables["session-table-1"].schema;
|
|
34
35
|
if (schema) {
|
|
35
36
|
return schema.columns;
|
|
36
37
|
} else {
|
|
@@ -47,6 +48,18 @@ const menus = {
|
|
|
47
48
|
filter: "",
|
|
48
49
|
name: "Add Instruments To Order",
|
|
49
50
|
rpcName: "ADD_INSTRUMENTS_TO_ORDER"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
context: "selected-rows",
|
|
54
|
+
filter: "",
|
|
55
|
+
name: "Edit Row",
|
|
56
|
+
rpcName: "EDIT_ROW"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
context: "selected-rows",
|
|
60
|
+
filter: "",
|
|
61
|
+
name: "Edit Rows",
|
|
62
|
+
rpcName: "BULK_EDIT"
|
|
50
63
|
}
|
|
51
64
|
]
|
|
52
65
|
},
|
|
@@ -57,7 +70,8 @@ const menus = {
|
|
|
57
70
|
prices: void 0
|
|
58
71
|
};
|
|
59
72
|
async function addInstrumentsToOrder() {
|
|
60
|
-
|
|
73
|
+
const sessionTableId = "session-table-1";
|
|
74
|
+
sessionTables[sessionTableId] = new Table(
|
|
61
75
|
schemas.instruments,
|
|
62
76
|
[],
|
|
63
77
|
buildDataColumnMap(schemas, "instruments")
|
|
@@ -73,12 +87,94 @@ async function addInstrumentsToOrder() {
|
|
|
73
87
|
}
|
|
74
88
|
};
|
|
75
89
|
}
|
|
90
|
+
const keyIndex = 6;
|
|
91
|
+
async function editRow(rpcRequest) {
|
|
92
|
+
const sessionTableId = "session-table-1";
|
|
93
|
+
const sessionData = [];
|
|
94
|
+
const selectedRowIds = rpcRequest.selectedRowIds;
|
|
95
|
+
for (let i = 0; i < selectedRowIds.length; i++) {
|
|
96
|
+
for (let j = 0; j < instrumentsTable.data.length; j++) {
|
|
97
|
+
if (instrumentsTable.data[j][keyIndex] === selectedRowIds[i]) {
|
|
98
|
+
sessionData.push(instrumentsTable.data[j]);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
sessionTables[sessionTableId] = new Table(
|
|
103
|
+
schemas.instruments,
|
|
104
|
+
sessionData,
|
|
105
|
+
buildDataColumnMap(schemas, "instruments")
|
|
106
|
+
);
|
|
107
|
+
return {
|
|
108
|
+
action: {
|
|
109
|
+
renderComponent: "grid",
|
|
110
|
+
table: {
|
|
111
|
+
module: "SIMUL",
|
|
112
|
+
table: "session-table-1"
|
|
113
|
+
},
|
|
114
|
+
type: "OPEN_DIALOG_ACTION"
|
|
115
|
+
},
|
|
116
|
+
requestId: "request_id",
|
|
117
|
+
rpcName: "BULK_EDIT"
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async function applyBulkEdits() {
|
|
121
|
+
for (let i = 0; i < sessionTables["session-table-1"].data.length; i++) {
|
|
122
|
+
const newRow = sessionTables["session-table-1"].data[i];
|
|
123
|
+
instrumentsTable.updateRow(newRow);
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
action: {
|
|
127
|
+
renderComponent: "grid",
|
|
128
|
+
table: {
|
|
129
|
+
module: "SIMUL",
|
|
130
|
+
table: "instruments"
|
|
131
|
+
},
|
|
132
|
+
type: "OPEN_DIALOG_ACTION"
|
|
133
|
+
},
|
|
134
|
+
requestId: "request_id",
|
|
135
|
+
rpcName: "APPLY_BULK_EDITS"
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
async function applyEditMultiple(rpcRequest) {
|
|
139
|
+
for (let i = 0; i < sessionTables["session-table-1"].data.length; i++) {
|
|
140
|
+
const newRow = sessionTables["session-table-1"].data[i];
|
|
141
|
+
instrumentsTable.update(
|
|
142
|
+
String(newRow[keyIndex]),
|
|
143
|
+
rpcRequest.multiEditCol,
|
|
144
|
+
rpcRequest.multiEditVal
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
action: {
|
|
149
|
+
renderComponent: "grid",
|
|
150
|
+
table: {
|
|
151
|
+
module: "SIMUL",
|
|
152
|
+
table: "instruments"
|
|
153
|
+
},
|
|
154
|
+
type: "OPEN_DIALOG_ACTION"
|
|
155
|
+
},
|
|
156
|
+
requestId: "request_id",
|
|
157
|
+
rpcName: "APPLY_EDIT_MULTIPLE"
|
|
158
|
+
};
|
|
159
|
+
}
|
|
76
160
|
const services = {
|
|
77
161
|
childOrders: void 0,
|
|
78
162
|
instruments: [
|
|
79
163
|
{
|
|
80
164
|
rpcName: "ADD_INSTRUMENTS_TO_ORDER",
|
|
81
165
|
service: addInstrumentsToOrder
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
rpcName: "BULK_EDIT",
|
|
169
|
+
service: editRow
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
rpcName: "APPLY_BULK_EDITS",
|
|
173
|
+
service: applyBulkEdits
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
rpcName: "APPLY_EDIT_MULTIPLE",
|
|
177
|
+
service: applyEditMultiple
|
|
82
178
|
}
|
|
83
179
|
],
|
|
84
180
|
instrumentsExtended: void 0,
|
|
@@ -91,8 +187,8 @@ const createDataSource = (tableName) => {
|
|
|
91
187
|
const columnDescriptors = getColumnDescriptors(tableName);
|
|
92
188
|
return new TickingArrayDataSource({
|
|
93
189
|
columnDescriptors,
|
|
94
|
-
keyColumn: schemas[tableName].key,
|
|
95
|
-
table: tables[tableName],
|
|
190
|
+
keyColumn: schemas[tableName] === void 0 ? sessionTables[tableName].schema.key : schemas[tableName].key,
|
|
191
|
+
table: tables[tableName] || sessionTables[tableName],
|
|
96
192
|
menu: menus[tableName],
|
|
97
193
|
rpcServices: services[tableName]
|
|
98
194
|
});
|
|
@@ -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 { TypeaheadParams, VuuMenu } 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];\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 },\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 services: Record<SimulTableName, RpcService[] | undefined> = {\n childOrders: undefined,\n instruments: [\n {\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n service: addInstrumentsToOrder,\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: schemas[tableName].key,\n table: tables[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 { 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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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.8.
|
|
2
|
+
"version": "0.8.57",
|
|
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.57",
|
|
7
|
+
"@vuu-ui/vuu-utils": "0.8.57",
|
|
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.57",
|
|
12
|
+
"@vuu-ui/vuu-data-types": "0.8.57",
|
|
13
|
+
"@vuu-ui/vuu-table-types": "0.8.57"
|
|
14
14
|
},
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"files": [
|
|
@@ -20,6 +20,9 @@ export declare class TickingArrayDataSource extends ArrayDataSource {
|
|
|
20
20
|
set range(range: VuuRange);
|
|
21
21
|
get range(): VuuRange;
|
|
22
22
|
private getSelectedRows;
|
|
23
|
+
private getSelectedRowIds;
|
|
24
|
+
private getMultiEditCol;
|
|
25
|
+
private getMultiEditVal;
|
|
23
26
|
applyEdit(row: DataSourceRow, columnName: string, value: VuuRowDataItemType): Promise<true>;
|
|
24
27
|
rpcCall<T extends RpcResponse = RpcResponse>(rpcRequest: Omit<ClientToServerViewportRpcCall, "vpId">): Promise<T | undefined>;
|
|
25
28
|
menuRpcCall(rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc): Promise<MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse | undefined>;
|