@vuu-ui/vuu-data-test 0.8.35 → 0.8.36

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.
Files changed (117) hide show
  1. package/README.md +0 -0
  2. package/cjs/ArrayProxy.js +80 -0
  3. package/cjs/ArrayProxy.js.map +1 -0
  4. package/cjs/Table.js +186 -0
  5. package/cjs/Table.js.map +1 -0
  6. package/cjs/TickingArrayDataSource.js +134 -0
  7. package/cjs/TickingArrayDataSource.js.map +1 -0
  8. package/cjs/UpdateGenerator.js +87 -0
  9. package/cjs/UpdateGenerator.js.map +1 -0
  10. package/cjs/basket/basket-module.js +236 -0
  11. package/cjs/basket/basket-module.js.map +1 -0
  12. package/cjs/basket/basket-schemas.js +121 -0
  13. package/cjs/basket/basket-schemas.js.map +1 -0
  14. package/cjs/basket/reference-data/constituents.js +40 -0
  15. package/cjs/basket/reference-data/constituents.js.map +1 -0
  16. package/cjs/basket/reference-data/ftse100.js +105 -0
  17. package/cjs/basket/reference-data/ftse100.js.map +1 -0
  18. package/cjs/basket/reference-data/hsi.js +87 -0
  19. package/cjs/basket/reference-data/hsi.js.map +1 -0
  20. package/cjs/basket/reference-data/nasdaq100.js +108 -0
  21. package/cjs/basket/reference-data/nasdaq100.js.map +1 -0
  22. package/cjs/basket/reference-data/prices.js +51 -0
  23. package/cjs/basket/reference-data/prices.js.map +1 -0
  24. package/cjs/basket/reference-data/sp500.js +46 -0
  25. package/cjs/basket/reference-data/sp500.js.map +1 -0
  26. package/cjs/data-utils.js +58 -0
  27. package/cjs/data-utils.js.map +1 -0
  28. package/cjs/index.js.map +1 -0
  29. package/cjs/makeSuggestions.js +37 -0
  30. package/cjs/makeSuggestions.js.map +1 -0
  31. package/cjs/schemas.js +28 -0
  32. package/cjs/schemas.js.map +1 -0
  33. package/cjs/simul/reference-data/currencies.js +6 -0
  34. package/cjs/simul/reference-data/currencies.js.map +1 -0
  35. package/cjs/simul/reference-data/instruments-extended.js +18 -0
  36. package/cjs/simul/reference-data/instruments-extended.js.map +1 -0
  37. package/cjs/simul/reference-data/instruments.js +74 -0
  38. package/cjs/simul/reference-data/instruments.js.map +1 -0
  39. package/cjs/simul/reference-data/locations.js +17 -0
  40. package/cjs/simul/reference-data/locations.js.map +1 -0
  41. package/cjs/simul/reference-data/lotsizes.js +28 -0
  42. package/cjs/simul/reference-data/lotsizes.js.map +1 -0
  43. package/cjs/simul/reference-data/orders.js +43 -0
  44. package/cjs/simul/reference-data/orders.js.map +1 -0
  45. package/cjs/simul/reference-data/prices.js +71 -0
  46. package/cjs/simul/reference-data/prices.js.map +1 -0
  47. package/cjs/simul/simul-module.js +72 -0
  48. package/cjs/simul/simul-module.js.map +1 -0
  49. package/cjs/simul/simul-schemas.js +137 -0
  50. package/cjs/simul/simul-schemas.js.map +1 -0
  51. package/cjs/test/test-module.js +58 -0
  52. package/cjs/test/test-module.js.map +1 -0
  53. package/cjs/test/test-schemas.js +17 -0
  54. package/cjs/test/test-schemas.js.map +1 -0
  55. package/cjs/vuu-modules.js +15 -0
  56. package/cjs/vuu-modules.js.map +1 -0
  57. package/cjs/vuu-row-generator.js +74 -0
  58. package/cjs/vuu-row-generator.js.map +1 -0
  59. package/esm/ArrayProxy.js +78 -0
  60. package/esm/ArrayProxy.js.map +1 -0
  61. package/esm/Table.js +182 -0
  62. package/esm/Table.js.map +1 -0
  63. package/esm/TickingArrayDataSource.js +132 -0
  64. package/esm/TickingArrayDataSource.js.map +1 -0
  65. package/esm/UpdateGenerator.js +85 -0
  66. package/esm/UpdateGenerator.js.map +1 -0
  67. package/esm/basket/basket-module.js +232 -0
  68. package/esm/basket/basket-module.js.map +1 -0
  69. package/esm/basket/basket-schemas.js +119 -0
  70. package/esm/basket/basket-schemas.js.map +1 -0
  71. package/esm/basket/reference-data/constituents.js +38 -0
  72. package/esm/basket/reference-data/constituents.js.map +1 -0
  73. package/esm/basket/reference-data/ftse100.js +103 -0
  74. package/esm/basket/reference-data/ftse100.js.map +1 -0
  75. package/esm/basket/reference-data/hsi.js +85 -0
  76. package/esm/basket/reference-data/hsi.js.map +1 -0
  77. package/esm/basket/reference-data/nasdaq100.js +106 -0
  78. package/esm/basket/reference-data/nasdaq100.js.map +1 -0
  79. package/esm/basket/reference-data/prices.js +49 -0
  80. package/esm/basket/reference-data/prices.js.map +1 -0
  81. package/esm/basket/reference-data/sp500.js +44 -0
  82. package/esm/basket/reference-data/sp500.js.map +1 -0
  83. package/esm/data-utils.js +53 -0
  84. package/esm/data-utils.js.map +1 -0
  85. package/esm/index.js +11 -0
  86. package/esm/index.js.map +1 -0
  87. package/esm/makeSuggestions.js +35 -0
  88. package/esm/makeSuggestions.js.map +1 -0
  89. package/esm/schemas.js +24 -0
  90. package/esm/schemas.js.map +1 -0
  91. package/esm/simul/reference-data/currencies.js +4 -0
  92. package/esm/simul/reference-data/currencies.js.map +1 -0
  93. package/esm/simul/reference-data/instruments-extended.js +16 -0
  94. package/esm/simul/reference-data/instruments-extended.js.map +1 -0
  95. package/esm/simul/reference-data/instruments.js +69 -0
  96. package/esm/simul/reference-data/instruments.js.map +1 -0
  97. package/esm/simul/reference-data/locations.js +14 -0
  98. package/esm/simul/reference-data/locations.js.map +1 -0
  99. package/esm/simul/reference-data/lotsizes.js +26 -0
  100. package/esm/simul/reference-data/lotsizes.js.map +1 -0
  101. package/esm/simul/reference-data/orders.js +40 -0
  102. package/esm/simul/reference-data/orders.js.map +1 -0
  103. package/esm/simul/reference-data/prices.js +68 -0
  104. package/esm/simul/reference-data/prices.js.map +1 -0
  105. package/esm/simul/simul-module.js +70 -0
  106. package/esm/simul/simul-module.js.map +1 -0
  107. package/esm/simul/simul-schemas.js +135 -0
  108. package/esm/simul/simul-schemas.js.map +1 -0
  109. package/esm/test/test-module.js +56 -0
  110. package/esm/test/test-module.js.map +1 -0
  111. package/esm/test/test-schemas.js +15 -0
  112. package/esm/test/test-schemas.js.map +1 -0
  113. package/esm/vuu-modules.js +13 -0
  114. package/esm/vuu-modules.js.map +1 -0
  115. package/esm/vuu-row-generator.js +68 -0
  116. package/esm/vuu-row-generator.js.map +1 -0
  117. package/package.json +8 -6
@@ -0,0 +1,85 @@
1
+ import { random, generateNextBidAsk, nextRandomDouble } from './data-utils.js';
2
+
3
+ const getNewValue = (value) => {
4
+ const multiplier = random(0, 100) / 1e3;
5
+ const direction = random(0, 10) >= 5 ? 1 : -1;
6
+ return value + value * multiplier * direction;
7
+ };
8
+ class BaseUpdateGenerator {
9
+ constructor(tickingColumns) {
10
+ this.updating = false;
11
+ this.update = () => {
12
+ if (this.range && this.table) {
13
+ const data = this.table?.data;
14
+ const { bid, ask, last, ...rest } = this.tickingColumns;
15
+ if (data && data?.length > 0) {
16
+ const maxRange = Math.min(this.range.to, data.length);
17
+ for (let rowIndex = this.range.from; rowIndex < maxRange; rowIndex++) {
18
+ let updateCount = 0;
19
+ const shallUpdateRow = random(0, 10) < 2;
20
+ if (shallUpdateRow) {
21
+ const rowUpdates = this.table.data[rowIndex];
22
+ const row = data[rowIndex];
23
+ if (bid !== void 0 && ask !== void 0) {
24
+ const { [bid]: currentBid, [ask]: currentAsk } = row;
25
+ const [newBid, newAsk] = generateNextBidAsk(
26
+ currentBid,
27
+ currentAsk,
28
+ 10,
29
+ 5,
30
+ nextRandomDouble
31
+ );
32
+ rowUpdates[ask] = newAsk;
33
+ rowUpdates[bid] = newBid;
34
+ if (last !== void 0) {
35
+ const newLast = Math.round((currentAsk + (newAsk - currentAsk) / 2) * 100) / 100;
36
+ rowUpdates[last] = newLast;
37
+ }
38
+ }
39
+ for (const colIdx of Object.values(rest)) {
40
+ const shallUpdateColumn = random(0, 10) < 5;
41
+ if (shallUpdateColumn) {
42
+ updateCount += 1;
43
+ const newValue = getNewValue(row[colIdx]);
44
+ if (this.table) {
45
+ rowUpdates[colIdx] = newValue;
46
+ }
47
+ }
48
+ }
49
+ if (this.table && updateCount > 0) {
50
+ this.table.updateRow(rowUpdates);
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ if (this.updating) {
57
+ this.timer = window.setTimeout(this.update, 500);
58
+ }
59
+ };
60
+ this.tickingColumns = tickingColumns;
61
+ }
62
+ setRange(range) {
63
+ this.range = range;
64
+ if (!this.updating && this.table) {
65
+ this.startUpdating();
66
+ }
67
+ }
68
+ setTable(table) {
69
+ this.table = table;
70
+ }
71
+ startUpdating() {
72
+ this.updating = true;
73
+ this.update();
74
+ }
75
+ stopUpdating() {
76
+ this.updating = false;
77
+ if (this.timer) {
78
+ window.clearTimeout(this.timer);
79
+ this.timer = void 0;
80
+ }
81
+ }
82
+ }
83
+
84
+ export { BaseUpdateGenerator };
85
+ //# sourceMappingURL=UpdateGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateGenerator.js","sources":["../src/UpdateGenerator.ts"],"sourcesContent":["import { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { generateNextBidAsk, nextRandomDouble, random } from \"./data-utils\";\nimport type { UpdateGenerator } from \"./rowUpdates\";\nimport { Table } from \"./Table\";\n\nconst getNewValue = (value: number) => {\n const multiplier = random(0, 100) / 1000;\n const direction = random(0, 10) >= 5 ? 1 : -1;\n return value + value * multiplier * direction;\n};\n\nexport class BaseUpdateGenerator implements UpdateGenerator {\n private table: Table | undefined;\n private range: VuuRange | undefined;\n private updating = false;\n private timer: number | undefined;\n private tickingColumns: { [key: string]: number };\n\n constructor(tickingColumns: { [key: string]: number }) {\n this.tickingColumns = tickingColumns;\n }\n\n setRange(range: VuuRange) {\n this.range = range;\n if (!this.updating && this.table) {\n this.startUpdating();\n }\n }\n\n setTable(table: Table) {\n this.table = table;\n }\n\n private startUpdating() {\n this.updating = true;\n this.update();\n }\n\n private stopUpdating() {\n this.updating = false;\n if (this.timer) {\n window.clearTimeout(this.timer);\n this.timer = undefined;\n }\n }\n\n update = () => {\n if (this.range && this.table) {\n const data = this.table?.data;\n const { bid, ask, last, ...rest } = this.tickingColumns;\n if (data && data?.length > 0) {\n const maxRange = Math.min(this.range.to, data.length);\n for (let rowIndex = this.range.from; rowIndex < maxRange; rowIndex++) {\n let updateCount = 0;\n const shallUpdateRow = random(0, 10) < 2;\n if (shallUpdateRow) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const rowUpdates = this.table.data[rowIndex];\n const row = data[rowIndex];\n\n if (bid !== undefined && ask !== undefined) {\n const { [bid]: currentBid, [ask]: currentAsk } = row as number[];\n const [newBid, newAsk] = generateNextBidAsk(\n currentBid,\n currentAsk,\n 10,\n 5,\n nextRandomDouble\n );\n rowUpdates[ask] = newAsk;\n rowUpdates[bid] = newBid;\n if (last !== undefined) {\n const newLast =\n Math.round((currentAsk + (newAsk - currentAsk) / 2) * 100) /\n 100.0;\n rowUpdates[last] = newLast;\n }\n }\n\n for (const colIdx of Object.values(rest)) {\n const shallUpdateColumn = random(0, 10) < 5;\n if (shallUpdateColumn) {\n updateCount += 1;\n const newValue = getNewValue(row[colIdx] as number);\n if (this.table) {\n rowUpdates[colIdx] = newValue;\n }\n }\n }\n if (this.table && updateCount > 0) {\n this.table.updateRow(rowUpdates);\n }\n }\n }\n }\n }\n\n if (this.updating) {\n this.timer = window.setTimeout(this.update, 500);\n }\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ import pricesTable from './reference-data/prices.js';
2
+ import { Table, joinTables } from '../Table.js';
3
+ import { TickingArrayDataSource } from '../TickingArrayDataSource.js';
4
+ import { schemas } from './basket-schemas.js';
5
+ import basketConstituentData from './reference-data/constituents.js';
6
+
7
+ const buildDataColumnMap = (tableName) => Object.values(schemas[tableName].columns).reduce(
8
+ (map, col, index) => {
9
+ map[col.name] = index;
10
+ return map;
11
+ },
12
+ {}
13
+ );
14
+ const tableMaps = {
15
+ algoType: buildDataColumnMap("algoType"),
16
+ basket: buildDataColumnMap("basket"),
17
+ basketTrading: buildDataColumnMap("basketTrading"),
18
+ basketTradingConstituent: buildDataColumnMap("basketTradingConstituent"),
19
+ basketConstituent: buildDataColumnMap("basketConstituent"),
20
+ basketTradingConstituentJoin: buildDataColumnMap(
21
+ "basketTradingConstituentJoin"
22
+ ),
23
+ priceStrategyType: buildDataColumnMap("priceStrategyType")
24
+ };
25
+ const basketConstituent = new Table(
26
+ schemas.basketConstituent,
27
+ basketConstituentData,
28
+ tableMaps.basketConstituent
29
+ );
30
+ const basketTrading = new Table(
31
+ schemas.basketTrading,
32
+ [],
33
+ tableMaps.basketTrading
34
+ );
35
+ let basketIncrement = 1;
36
+ const basketTradingConstituent = new Table(
37
+ schemas.basketTradingConstituent,
38
+ [],
39
+ tableMaps.basketTradingConstituent
40
+ );
41
+ const createBasketTradingRow = (basketId, basketName, side = "BUY", status = "OFF MARKET") => [
42
+ basketId,
43
+ basketName,
44
+ 0,
45
+ 1.25,
46
+ `steve-${basketIncrement++}`,
47
+ side,
48
+ status,
49
+ 1e6,
50
+ 125e4,
51
+ 100
52
+ ];
53
+ function createTradingBasket(basketId, basketName) {
54
+ const basketTradingRow = createBasketTradingRow(basketId, basketName);
55
+ basketTrading.insert(basketTradingRow);
56
+ const { basketId: key } = buildDataColumnMap("basketConstituent");
57
+ const constituents = basketConstituent.data.filter(
58
+ (c) => c[key] === basketId
59
+ );
60
+ const { instanceId } = tableMaps.basketTrading;
61
+ constituents.forEach(([, , description, , ric, , , quantity, weighting]) => {
62
+ const algo = "";
63
+ const algoParams = "";
64
+ const limitPrice = 95;
65
+ const notionalLocal = 0;
66
+ const notionalUsd = 0;
67
+ const pctFilled = 0;
68
+ const priceSpread = 0;
69
+ const priceStrategyId = "";
70
+ const side = "BUY";
71
+ const venue = "venue";
72
+ const basketInstanceId = basketTradingRow[instanceId];
73
+ const basketTradingConstituentRow = [
74
+ algo,
75
+ algoParams,
76
+ basketId,
77
+ description,
78
+ basketInstanceId,
79
+ `${basketInstanceId}-${ric}`,
80
+ limitPrice,
81
+ notionalLocal,
82
+ notionalUsd,
83
+ pctFilled,
84
+ priceSpread,
85
+ priceStrategyId,
86
+ quantity,
87
+ ric,
88
+ side,
89
+ venue,
90
+ weighting
91
+ ];
92
+ basketTradingConstituent.insert(basketTradingConstituentRow);
93
+ });
94
+ return basketTradingRow[instanceId];
95
+ }
96
+ async function addConstituent(rpcRequest) {
97
+ console.log(`RPC call erceived ${rpcRequest.rpcName}`);
98
+ }
99
+ async function sendToMarket(rpcRequest) {
100
+ const [basketInstanceId] = rpcRequest.params;
101
+ basketTrading.update(basketInstanceId, "status", "ON_MARKET");
102
+ }
103
+ async function takeOffMarket(rpcRequest) {
104
+ const [basketInstanceId] = rpcRequest.params;
105
+ basketTrading.update(basketInstanceId, "status", "OFF-MARKET");
106
+ }
107
+ async function createNewBasket(rpcRequest) {
108
+ const {
109
+ params: [basketId, basketName]
110
+ } = rpcRequest;
111
+ const key = createTradingBasket(basketId, basketName);
112
+ return {
113
+ action: {
114
+ type: "VP_CREATE_SUCCESS",
115
+ key
116
+ }
117
+ };
118
+ }
119
+ const tables = {
120
+ algoType: new Table(
121
+ schemas.algoType,
122
+ [
123
+ ["Sniper", 0],
124
+ ["Dark Liquidity", 1],
125
+ ["VWAP", 2],
126
+ ["POV", 3],
127
+ ["Dynamic Close", 4]
128
+ ],
129
+ tableMaps.algoType
130
+ ),
131
+ basket: new Table(
132
+ schemas.basket,
133
+ [
134
+ [".NASDAQ100", ".NASDAQ100", 0, 0],
135
+ [".HSI", ".HSI", 0, 0],
136
+ [".FTSE100", ".FTSE100", 0, 0],
137
+ [".SP500", ".SP500", 0, 0]
138
+ ],
139
+ tableMaps.basket
140
+ ),
141
+ basketConstituent,
142
+ basketTrading,
143
+ basketTradingConstituent,
144
+ basketTradingConstituentJoin: joinTables(
145
+ { module: "BASKET", table: "basketTradingConstituentJoin" },
146
+ basketTradingConstituent,
147
+ pricesTable,
148
+ "ric"
149
+ ),
150
+ priceStrategyType: new Table(
151
+ schemas.priceStrategyType,
152
+ [
153
+ ["Peg to Near Touch", 0],
154
+ ["Far Touch", 1],
155
+ ["Limit", 2],
156
+ ["Algo", 3]
157
+ ],
158
+ tableMaps.priceStrategyType
159
+ )
160
+ };
161
+ const menus = {
162
+ algoType: void 0,
163
+ basket: {
164
+ name: "ROOT",
165
+ menus: [
166
+ {
167
+ context: "selected-rows",
168
+ filter: "",
169
+ name: "Add Basket",
170
+ rpcName: "CREATE_NEW_BASKET"
171
+ }
172
+ ]
173
+ },
174
+ basketConstituent: void 0,
175
+ basketTrading: void 0,
176
+ basketTradingConstituent: void 0,
177
+ basketTradingConstituentJoin: void 0,
178
+ priceStrategyType: void 0
179
+ };
180
+ const services = {
181
+ algoType: void 0,
182
+ basket: [
183
+ {
184
+ rpcName: "createBasket",
185
+ service: createNewBasket
186
+ }
187
+ ],
188
+ basketConstituent: void 0,
189
+ basketTrading: [
190
+ {
191
+ rpcName: "sendToMarket",
192
+ service: sendToMarket
193
+ },
194
+ {
195
+ rpcName: "takeOffMarket",
196
+ service: takeOffMarket
197
+ }
198
+ ],
199
+ basketTradingConstituent: void 0,
200
+ basketTradingConstituentJoin: [
201
+ {
202
+ rpcName: "addConstituent",
203
+ service: addConstituent
204
+ }
205
+ ],
206
+ priceStrategyType: void 0
207
+ };
208
+ const getColumnDescriptors = (tableName) => {
209
+ const schema = schemas[tableName];
210
+ return schema.columns;
211
+ };
212
+ const createDataSource = (tableName) => {
213
+ const columnDescriptors = getColumnDescriptors(tableName);
214
+ const { key } = schemas[tableName];
215
+ return new TickingArrayDataSource({
216
+ columnDescriptors,
217
+ dataMap: tableMaps[tableName],
218
+ keyColumn: key,
219
+ menu: menus[tableName],
220
+ rpcServices: services[tableName],
221
+ table: tables[tableName]
222
+ // updateGenerator: createUpdateGenerator?.(),
223
+ });
224
+ };
225
+ const nullTypeaheadHook = async () => [];
226
+ const basketModule = {
227
+ createDataSource,
228
+ typeaheadHook: () => nullTypeaheadHook
229
+ };
230
+
231
+ export { basketModule, createBasketTradingRow, tables };
232
+ //# sourceMappingURL=basket-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basket-module.js","sources":["../../src/basket/basket-module.ts"],"sourcesContent":["import {\n ClientToServerViewportRpcCall,\n VuuMenu,\n VuuRowDataItemType,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport pricesTable from \"./reference-data/prices\";\nimport { joinTables, Table } from \"../Table\";\nimport { TickingArrayDataSource } from \"../TickingArrayDataSource\";\nimport { VuuModule } from \"../vuu-modules\";\nimport { BasketsTableName, schemas } from \"./basket-schemas\";\nimport basketConstituentData from \"./reference-data/constituents\";\n\n// This is a 'local' columnMap\nconst buildDataColumnMap = (tableName: BasketsTableName) =>\n Object.values(schemas[tableName].columns).reduce<ColumnMap>(\n (map, col, index) => {\n map[col.name] = index;\n return map;\n },\n {}\n );\n\nconst tableMaps: Record<BasketsTableName, ColumnMap> = {\n algoType: buildDataColumnMap(\"algoType\"),\n basket: buildDataColumnMap(\"basket\"),\n basketTrading: buildDataColumnMap(\"basketTrading\"),\n basketTradingConstituent: buildDataColumnMap(\"basketTradingConstituent\"),\n basketConstituent: buildDataColumnMap(\"basketConstituent\"),\n basketTradingConstituentJoin: buildDataColumnMap(\n \"basketTradingConstituentJoin\"\n ),\n priceStrategyType: buildDataColumnMap(\"priceStrategyType\"),\n};\n\n/**\n * BasketConstituent\n */\n\nconst basketConstituent = new Table(\n schemas.basketConstituent,\n basketConstituentData,\n tableMaps.basketConstituent\n);\n\n/**\n * BasketTrading\n */\nconst basketTrading = new Table(\n schemas.basketTrading,\n [],\n tableMaps.basketTrading\n);\n\nlet basketIncrement = 1;\n/**\n * BasketTradingConstituent\n */\nconst basketTradingConstituent = new Table(\n schemas.basketTradingConstituent,\n [],\n tableMaps.basketTradingConstituent\n);\n\n// export as convenience for showcase examples\nexport const createBasketTradingRow = (\n basketId: string,\n basketName: string,\n side = \"BUY\",\n status = \"OFF MARKET\"\n) => [\n basketId,\n basketName,\n 0,\n 1.25,\n `steve-${basketIncrement++}`,\n side,\n status,\n 1_000_000,\n 1_250_000,\n 100,\n];\n\nfunction createTradingBasket(basketId: string, basketName: string) {\n const basketTradingRow = createBasketTradingRow(basketId, basketName);\n\n basketTrading.insert(basketTradingRow);\n\n const { basketId: key } = buildDataColumnMap(\"basketConstituent\");\n const constituents = basketConstituent.data.filter(\n (c) => c[key] === basketId\n );\n\n const { instanceId } = tableMaps.basketTrading;\n\n constituents.forEach(([, , description, , ric, , , quantity, weighting]) => {\n const algo = \"\";\n const algoParams = \"\";\n const limitPrice = 95;\n const notionalLocal = 0;\n const notionalUsd = 0;\n const pctFilled = 0;\n const priceSpread = 0;\n const priceStrategyId = \"\";\n const side = \"BUY\";\n const venue = \"venue\";\n\n const basketInstanceId = basketTradingRow[instanceId];\n const basketTradingConstituentRow: VuuRowDataItemType[] = [\n algo,\n algoParams,\n basketId,\n description,\n basketInstanceId,\n `${basketInstanceId}-${ric}`,\n limitPrice,\n notionalLocal,\n notionalUsd,\n pctFilled,\n priceSpread,\n priceStrategyId,\n quantity,\n ric,\n side,\n venue,\n weighting,\n ];\n basketTradingConstituent.insert(basketTradingConstituentRow);\n });\n\n // return the key\n return basketTradingRow[instanceId] as string;\n}\n\nasync function addConstituent(rpcRequest: ClientToServerViewportRpcCall) {\n console.log(`RPC call erceived ${rpcRequest.rpcName}`);\n}\nasync function sendToMarket(rpcRequest: ClientToServerViewportRpcCall) {\n const [basketInstanceId] = rpcRequest.params;\n basketTrading.update(basketInstanceId, \"status\", \"ON_MARKET\");\n}\nasync function takeOffMarket(rpcRequest: ClientToServerViewportRpcCall) {\n const [basketInstanceId] = rpcRequest.params;\n basketTrading.update(basketInstanceId, \"status\", \"OFF-MARKET\");\n}\n\nasync function createNewBasket(rpcRequest: ClientToServerViewportRpcCall) {\n const {\n params: [basketId, basketName],\n } = rpcRequest;\n const key = createTradingBasket(basketId, basketName);\n return {\n action: {\n type: \"VP_CREATE_SUCCESS\",\n key,\n },\n };\n}\n\n//-------------------\n\nexport const tables: Record<BasketsTableName, Table> = {\n algoType: new Table(\n schemas.algoType,\n [\n [\"Sniper\", 0],\n [\"Dark Liquidity\", 1],\n [\"VWAP\", 2],\n [\"POV\", 3],\n [\"Dynamic Close\", 4],\n ],\n tableMaps.algoType\n ),\n basket: new Table(\n schemas.basket,\n [\n [\".NASDAQ100\", \".NASDAQ100\", 0, 0],\n [\".HSI\", \".HSI\", 0, 0],\n [\".FTSE100\", \".FTSE100\", 0, 0],\n [\".SP500\", \".SP500\", 0, 0],\n ],\n tableMaps.basket\n ),\n basketConstituent,\n basketTrading,\n basketTradingConstituent,\n basketTradingConstituentJoin: joinTables(\n { module: \"BASKET\", table: \"basketTradingConstituentJoin\" },\n basketTradingConstituent,\n pricesTable,\n \"ric\"\n ),\n priceStrategyType: new Table(\n schemas.priceStrategyType,\n [\n [\"Peg to Near Touch\", 0],\n [\"Far Touch\", 1],\n [\"Limit\", 2],\n [\"Algo\", 3],\n ],\n tableMaps.priceStrategyType\n ),\n};\n\nconst menus: Record<BasketsTableName, VuuMenu | undefined> = {\n algoType: undefined,\n basket: {\n name: \"ROOT\",\n menus: [\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Add Basket\",\n rpcName: \"CREATE_NEW_BASKET\",\n },\n ],\n },\n basketConstituent: undefined,\n basketTrading: undefined,\n basketTradingConstituent: undefined,\n basketTradingConstituentJoin: undefined,\n priceStrategyType: undefined,\n};\n\ntype RpcService = {\n rpcName: string;\n service: (rpcRequest: any) => Promise<unknown>;\n};\n\nconst services: Record<BasketsTableName, RpcService[] | undefined> = {\n algoType: undefined,\n basket: [\n {\n rpcName: \"createBasket\",\n service: createNewBasket,\n },\n ],\n basketConstituent: undefined,\n basketTrading: [\n {\n rpcName: \"sendToMarket\",\n service: sendToMarket,\n },\n {\n rpcName: \"takeOffMarket\",\n service: takeOffMarket,\n },\n ],\n basketTradingConstituent: undefined,\n basketTradingConstituentJoin: [\n {\n rpcName: \"addConstituent\",\n service: addConstituent,\n },\n ],\n priceStrategyType: undefined,\n};\n\nconst getColumnDescriptors = (tableName: BasketsTableName) => {\n const schema = schemas[tableName];\n return schema.columns;\n};\n\nconst createDataSource = (tableName: BasketsTableName) => {\n const columnDescriptors = getColumnDescriptors(tableName);\n const { key } = schemas[tableName];\n return new TickingArrayDataSource({\n columnDescriptors,\n dataMap: tableMaps[tableName],\n keyColumn: key,\n menu: menus[tableName],\n rpcServices: services[tableName],\n table: tables[tableName],\n // updateGenerator: createUpdateGenerator?.(),\n });\n};\n\nconst nullTypeaheadHook = async () => [];\n\nexport const basketModule: VuuModule<BasketsTableName> = {\n createDataSource,\n typeaheadHook: () => nullTypeaheadHook,\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ const schemas = {
2
+ algoType: {
3
+ columns: [
4
+ { name: "algoType", serverDataType: "string" },
5
+ { name: "id", serverDataType: "int" }
6
+ ],
7
+ key: "id",
8
+ table: { module: "BASKET", table: "algoType" }
9
+ },
10
+ basket: {
11
+ columns: [
12
+ { name: "id", serverDataType: "string" },
13
+ { name: "name", serverDataType: "string" },
14
+ { name: "notionalValue", serverDataType: "double" },
15
+ { name: "notionalValueUsd", serverDataType: "double" }
16
+ ],
17
+ key: "id",
18
+ table: { module: "BASKET", table: "basket" }
19
+ },
20
+ basketConstituent: {
21
+ columns: [
22
+ { name: "basketId", serverDataType: "string" },
23
+ { name: "change", serverDataType: "string" },
24
+ { name: "description", serverDataType: "string" },
25
+ { name: "lastTrade", serverDataType: "string" },
26
+ { name: "ric", serverDataType: "string" },
27
+ { name: "ricBasketId", serverDataType: "string" },
28
+ { name: "side", serverDataType: "string" },
29
+ { name: "volume", serverDataType: "string" },
30
+ { name: "weighting", serverDataType: "double" }
31
+ ],
32
+ key: "ricBasketId",
33
+ table: { module: "BASKET", table: "basketConstituent" }
34
+ },
35
+ basketTrading: {
36
+ columns: [
37
+ { name: "basketId", serverDataType: "string" },
38
+ { name: "basketName", serverDataType: "string" },
39
+ { name: "filledPct", serverDataType: "double" },
40
+ { name: "fxRateToUsd", serverDataType: "double" },
41
+ { name: "instanceId", serverDataType: "string" },
42
+ { name: "side", serverDataType: "string" },
43
+ { name: "status", serverDataType: "string" },
44
+ { name: "totalNotional", serverDataType: "double" },
45
+ { name: "totalNotionalUsd", serverDataType: "double" },
46
+ { name: "units", serverDataType: "int" }
47
+ ],
48
+ key: "instanceId",
49
+ table: { module: "BASKET", table: "basketTrading" }
50
+ },
51
+ basketTradingConstituent: {
52
+ columns: [
53
+ { name: "algo", serverDataType: "string" },
54
+ { name: "algoParams", serverDataType: "string" },
55
+ { name: "basketId", serverDataType: "string" },
56
+ { name: "description", serverDataType: "string" },
57
+ { name: "instanceId", serverDataType: "string" },
58
+ { name: "instanceIdRic", serverDataType: "string" },
59
+ { name: "limitPrice", serverDataType: "double" },
60
+ { name: "notionalLocal", serverDataType: "double" },
61
+ { name: "notionalUsd", serverDataType: "double" },
62
+ { name: "pctFilled", serverDataType: "double" },
63
+ { name: "priceSpread", serverDataType: "int" },
64
+ { name: "priceStrategyId", serverDataType: "int" },
65
+ { name: "quantity", serverDataType: "long" },
66
+ { name: "ric", serverDataType: "string" },
67
+ { name: "side", serverDataType: "string" },
68
+ { name: "status", serverDataType: "string" },
69
+ { name: "venue", serverDataType: "string" },
70
+ { name: "weighting", serverDataType: "double" }
71
+ ],
72
+ key: "instanceIdRic",
73
+ table: { module: "BASKET", table: "basketTradingConstituent" }
74
+ },
75
+ basketTradingConstituentJoin: {
76
+ columns: [
77
+ { name: "algo", serverDataType: "string" },
78
+ { name: "algoParams", serverDataType: "string" },
79
+ { name: "ask", serverDataType: "double" },
80
+ { name: "askSize", serverDataType: "double" },
81
+ { name: "basketId", serverDataType: "string" },
82
+ { name: "bid", serverDataType: "double" },
83
+ { name: "bidSize", serverDataType: "double" },
84
+ { name: "close", serverDataType: "double" },
85
+ { name: "description", serverDataType: "string" },
86
+ { name: "instanceId", serverDataType: "string" },
87
+ { name: "instanceIdRic", serverDataType: "string" },
88
+ { name: "last", serverDataType: "double" },
89
+ { name: "limitPrice", serverDataType: "double" },
90
+ { name: "notionalLocal", serverDataType: "double" },
91
+ { name: "notionalUsd", serverDataType: "double" },
92
+ { name: "open", serverDataType: "double" },
93
+ { name: "pctFilled", serverDataType: "double" },
94
+ { name: "phase", serverDataType: "string" },
95
+ { name: "priceSpread", serverDataType: "int" },
96
+ { name: "priceStrategyId", serverDataType: "int" },
97
+ { name: "quantity", serverDataType: "long" },
98
+ { name: "ric", serverDataType: "string" },
99
+ { name: "scenario", serverDataType: "string" },
100
+ { name: "side", serverDataType: "string" },
101
+ { name: "status", serverDataType: "string" },
102
+ { name: "venue", serverDataType: "string" },
103
+ { name: "weighting", serverDataType: "double" }
104
+ ],
105
+ key: "instanceIdRic",
106
+ table: { module: "BASKET", table: "basketTradingConstituentJoin" }
107
+ },
108
+ priceStrategyType: {
109
+ columns: [
110
+ { name: "priceStrategy", serverDataType: "string" },
111
+ { name: "id", serverDataType: "int" }
112
+ ],
113
+ key: "",
114
+ table: { module: "BASKET", table: "priceStrategyType" }
115
+ }
116
+ };
117
+
118
+ export { schemas };
119
+ //# sourceMappingURL=basket-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basket-schemas.js","sources":["../../src/basket/basket-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\n\nexport type BasketsTableName =\n | \"algoType\"\n | \"basket\"\n | \"basketConstituent\"\n | \"basketTrading\"\n | \"basketTradingConstituent\"\n | \"basketTradingConstituentJoin\"\n | \"priceStrategyType\";\n\nexport const schemas: Readonly<\n Record<BasketsTableName, Readonly<TableSchema>>\n> = {\n algoType: {\n columns: [\n { name: \"algoType\", serverDataType: \"string\" },\n { name: \"id\", serverDataType: \"int\" },\n ],\n key: \"id\",\n table: { module: \"BASKET\", table: \"algoType\" },\n },\n basket: {\n columns: [\n { name: \"id\", serverDataType: \"string\" },\n { name: \"name\", serverDataType: \"string\" },\n { name: \"notionalValue\", serverDataType: \"double\" },\n { name: \"notionalValueUsd\", serverDataType: \"double\" },\n ],\n key: \"id\",\n table: { module: \"BASKET\", table: \"basket\" },\n },\n basketConstituent: {\n columns: [\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"change\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"lastTrade\", serverDataType: \"string\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"ricBasketId\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"volume\", serverDataType: \"string\" },\n { name: \"weighting\", serverDataType: \"double\" },\n ],\n key: \"ricBasketId\",\n table: { module: \"BASKET\", table: \"basketConstituent\" },\n },\n basketTrading: {\n columns: [\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"basketName\", serverDataType: \"string\" },\n { name: \"filledPct\", serverDataType: \"double\" },\n { name: \"fxRateToUsd\", serverDataType: \"double\" },\n { name: \"instanceId\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"totalNotional\", serverDataType: \"double\" },\n { name: \"totalNotionalUsd\", serverDataType: \"double\" },\n { name: \"units\", serverDataType: \"int\" },\n ],\n key: \"instanceId\",\n table: { module: \"BASKET\", table: \"basketTrading\" },\n },\n basketTradingConstituent: {\n columns: [\n { name: \"algo\", serverDataType: \"string\" },\n { name: \"algoParams\", serverDataType: \"string\" },\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"instanceId\", serverDataType: \"string\" },\n { name: \"instanceIdRic\", serverDataType: \"string\" },\n { name: \"limitPrice\", serverDataType: \"double\" },\n { name: \"notionalLocal\", serverDataType: \"double\" },\n { name: \"notionalUsd\", serverDataType: \"double\" },\n { name: \"pctFilled\", serverDataType: \"double\" },\n { name: \"priceSpread\", serverDataType: \"int\" },\n { name: \"priceStrategyId\", serverDataType: \"int\" },\n { name: \"quantity\", serverDataType: \"long\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"venue\", serverDataType: \"string\" },\n { name: \"weighting\", serverDataType: \"double\" },\n ],\n key: \"instanceIdRic\",\n table: { module: \"BASKET\", table: \"basketTradingConstituent\" },\n },\n\n basketTradingConstituentJoin: {\n columns: [\n { name: \"algo\", serverDataType: \"string\" },\n { name: \"algoParams\", serverDataType: \"string\" },\n { name: \"ask\", serverDataType: \"double\" },\n { name: \"askSize\", serverDataType: \"double\" },\n { name: \"basketId\", serverDataType: \"string\" },\n { name: \"bid\", serverDataType: \"double\" },\n { name: \"bidSize\", serverDataType: \"double\" },\n { name: \"close\", serverDataType: \"double\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"instanceId\", serverDataType: \"string\" },\n { name: \"instanceIdRic\", serverDataType: \"string\" },\n { name: \"last\", serverDataType: \"double\" },\n { name: \"limitPrice\", serverDataType: \"double\" },\n { name: \"notionalLocal\", serverDataType: \"double\" },\n { name: \"notionalUsd\", serverDataType: \"double\" },\n { name: \"open\", serverDataType: \"double\" },\n { name: \"pctFilled\", serverDataType: \"double\" },\n { name: \"phase\", serverDataType: \"string\" },\n { name: \"priceSpread\", serverDataType: \"int\" },\n { name: \"priceStrategyId\", serverDataType: \"int\" },\n { name: \"quantity\", serverDataType: \"long\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"scenario\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"venue\", serverDataType: \"string\" },\n { name: \"weighting\", serverDataType: \"double\" },\n ],\n key: \"instanceIdRic\",\n table: { module: \"BASKET\", table: \"basketTradingConstituentJoin\" },\n },\n priceStrategyType: {\n columns: [\n { name: \"priceStrategy\", serverDataType: \"string\" },\n { name: \"id\", serverDataType: \"int\" },\n ],\n key: \"\",\n table: { module: \"BASKET\", table: \"priceStrategyType\" },\n },\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import ftse from './ftse100.js';
2
+ import nasdaq from './nasdaq100.js';
3
+ import sp500 from './sp500.js';
4
+ import hsi from './hsi.js';
5
+
6
+ const basketConstituentData = [];
7
+ for (const row of ftse) {
8
+ const [ric, name, lastTrade, change, volume] = row;
9
+ const basketId = ".FTSE100";
10
+ const side = "BUY";
11
+ const weighting = 1;
12
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
13
+ }
14
+ for (const row of hsi) {
15
+ const [name, ric, lastTrade, change, , volume] = row;
16
+ const basketId = ".HSI";
17
+ const side = "BUY";
18
+ const weighting = 1;
19
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
20
+ }
21
+ for (const row of nasdaq) {
22
+ const [name, ric, weighting, lastTrade, change] = row;
23
+ const basketId = ".NASDAQ100";
24
+ const side = "BUY";
25
+ const volume = 1e3;
26
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
27
+ }
28
+ for (const row of sp500) {
29
+ const [name, ric, weighting, , change] = row;
30
+ const basketId = ".SP500";
31
+ const side = "BUY";
32
+ const volume = 1e3;
33
+ const lastTrade = 0;
34
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
35
+ }
36
+
37
+ export { basketConstituentData as default };
38
+ //# sourceMappingURL=constituents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constituents.js","sources":["../../../src/basket/reference-data/constituents.ts"],"sourcesContent":["import ftse from \"./ftse100\";\nimport nasdaq from \"./nasdaq100\";\nimport sp500 from \"./sp500\";\nimport hsi from \"./hsi\";\nimport { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\n\nconst basketConstituentData = [];\nfor (const row of ftse) {\n // prettier-ignore\n const [ric, name, lastTrade, change, volume] = row;\n const basketId = \".FTSE100\";\n const side = \"BUY\";\n const weighting = 1;\n // prettier-ignore\n basketConstituentData.push([ basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting ]);\n}\n\nfor (const row of hsi) {\n // prettier-ignore\n const [name, ric, lastTrade, change, , volume] = row;\n const basketId = \".HSI\";\n const side = \"BUY\";\n const weighting = 1;\n // prettier-ignore\n basketConstituentData.push([basketId,change,name, lastTrade,ric,`${ric}-${basketId}`,side,volume,weighting ]);\n}\n\nfor (const row of nasdaq) {\n // prettier-ignore\n const [name, ric, weighting, lastTrade, change] = row;\n const basketId = \".NASDAQ100\";\n const side = \"BUY\";\n const volume = 1000;\n // prettier-ignore\n basketConstituentData.push([ basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting ]);\n}\n\nfor (const row of sp500) {\n // prettier-ignore\n const [name, ric, weighting,,change] = row;\n const basketId = \".SP500\";\n const side = \"BUY\";\n const volume = 1000;\n const lastTrade = 0;\n // prettier-ignore\n basketConstituentData.push([ basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting ]);\n}\n\nexport default basketConstituentData as VuuRowDataItemType[][];\n"],"names":[],"mappings":";;;;;AAMA,MAAM,wBAAwB,GAAC;AAC/B,KAAA,MAAW,OAAO,IAAM,EAAA;AAEtB,EAAA,MAAM,CAAC,GAAK,EAAA,IAAA,EAAM,SAAW,EAAA,MAAA,EAAQ,MAAM,CAAI,GAAA,GAAA,CAAA;AAC/C,EAAA,MAAM,QAAW,GAAA,UAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAElB,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,MAAM,SAAW,EAAA,GAAA,EAAK,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAC,CAAA,CAAA;AACtH,CAAA;AAEA,KAAA,MAAW,OAAO,GAAK,EAAA;AAErB,EAAA,MAAM,CAAC,IAAM,EAAA,GAAA,EAAK,WAAW,MAAQ,IAAE,MAAM,CAAI,GAAA,GAAA,CAAA;AACjD,EAAA,MAAM,QAAW,GAAA,MAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAElB,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAC,QAAS,EAAA,MAAA,EAAO,MAAM,SAAU,EAAA,GAAA,EAAI,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAG,IAAK,EAAA,MAAA,EAAO,SAAU,CAAC,CAAA,CAAA;AAC9G,CAAA;AAEA,KAAA,MAAW,OAAO,MAAQ,EAAA;AAExB,EAAA,MAAM,CAAC,IAAM,EAAA,GAAA,EAAK,SAAW,EAAA,SAAA,EAAW,MAAM,CAAI,GAAA,GAAA,CAAA;AAClD,EAAA,MAAM,QAAW,GAAA,YAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,MAAS,GAAA,GAAA,CAAA;AAEf,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,MAAM,SAAW,EAAA,GAAA,EAAK,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAC,CAAA,CAAA;AACtH,CAAA;AAEA,KAAA,MAAW,OAAO,KAAO,EAAA;AAEvB,EAAA,MAAM,CAAC,IAAM,EAAA,GAAA,EAAK,SAAU,IAAC,MAAM,CAAI,GAAA,GAAA,CAAA;AACvC,EAAA,MAAM,QAAW,GAAA,QAAA,CAAA;AACjB,EAAA,MAAM,IAAO,GAAA,KAAA,CAAA;AACb,EAAA,MAAM,MAAS,GAAA,GAAA,CAAA;AACf,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAElB,EAAA,qBAAA,CAAsB,IAAK,CAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,MAAM,SAAW,EAAA,GAAA,EAAK,CAAG,EAAA,GAAG,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAC,CAAA,CAAA;AACtH;;;;"}