@vuu-ui/vuu-data-test 0.0.26

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 (155) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +0 -0
  3. package/cjs/ArrayProxy.js +80 -0
  4. package/cjs/ArrayProxy.js.map +1 -0
  5. package/cjs/Table.js +186 -0
  6. package/cjs/Table.js.map +1 -0
  7. package/cjs/TickingArrayDataSource.js +134 -0
  8. package/cjs/TickingArrayDataSource.js.map +1 -0
  9. package/cjs/UpdateGenerator.js +87 -0
  10. package/cjs/UpdateGenerator.js.map +1 -0
  11. package/cjs/basket/basket-module.js +236 -0
  12. package/cjs/basket/basket-module.js.map +1 -0
  13. package/cjs/basket/basket-schemas.js +121 -0
  14. package/cjs/basket/basket-schemas.js.map +1 -0
  15. package/cjs/basket/reference-data/constituents.js +40 -0
  16. package/cjs/basket/reference-data/constituents.js.map +1 -0
  17. package/cjs/basket/reference-data/ftse100.js +105 -0
  18. package/cjs/basket/reference-data/ftse100.js.map +1 -0
  19. package/cjs/basket/reference-data/hsi.js +87 -0
  20. package/cjs/basket/reference-data/hsi.js.map +1 -0
  21. package/cjs/basket/reference-data/nasdaq100.js +108 -0
  22. package/cjs/basket/reference-data/nasdaq100.js.map +1 -0
  23. package/cjs/basket/reference-data/prices.js +51 -0
  24. package/cjs/basket/reference-data/prices.js.map +1 -0
  25. package/cjs/basket/reference-data/sp500.js +46 -0
  26. package/cjs/basket/reference-data/sp500.js.map +1 -0
  27. package/cjs/data-utils.js +58 -0
  28. package/cjs/data-utils.js.map +1 -0
  29. package/cjs/index.js +36 -0
  30. package/cjs/index.js.map +1 -0
  31. package/cjs/makeSuggestions.js +37 -0
  32. package/cjs/makeSuggestions.js.map +1 -0
  33. package/cjs/schemas.js +28 -0
  34. package/cjs/schemas.js.map +1 -0
  35. package/cjs/simul/reference-data/currencies.js +6 -0
  36. package/cjs/simul/reference-data/currencies.js.map +1 -0
  37. package/cjs/simul/reference-data/instruments-extended.js +18 -0
  38. package/cjs/simul/reference-data/instruments-extended.js.map +1 -0
  39. package/cjs/simul/reference-data/instruments.js +74 -0
  40. package/cjs/simul/reference-data/instruments.js.map +1 -0
  41. package/cjs/simul/reference-data/locations.js +17 -0
  42. package/cjs/simul/reference-data/locations.js.map +1 -0
  43. package/cjs/simul/reference-data/lotsizes.js +28 -0
  44. package/cjs/simul/reference-data/lotsizes.js.map +1 -0
  45. package/cjs/simul/reference-data/orders.js +43 -0
  46. package/cjs/simul/reference-data/orders.js.map +1 -0
  47. package/cjs/simul/reference-data/prices.js +71 -0
  48. package/cjs/simul/reference-data/prices.js.map +1 -0
  49. package/cjs/simul/simul-module.js +122 -0
  50. package/cjs/simul/simul-module.js.map +1 -0
  51. package/cjs/simul/simul-schemas.js +137 -0
  52. package/cjs/simul/simul-schemas.js.map +1 -0
  53. package/cjs/test/test-module.js +58 -0
  54. package/cjs/test/test-module.js.map +1 -0
  55. package/cjs/test/test-schemas.js +17 -0
  56. package/cjs/test/test-schemas.js.map +1 -0
  57. package/cjs/vuu-modules.js +15 -0
  58. package/cjs/vuu-modules.js.map +1 -0
  59. package/cjs/vuu-row-generator.js +74 -0
  60. package/cjs/vuu-row-generator.js.map +1 -0
  61. package/esm/ArrayProxy.js +78 -0
  62. package/esm/ArrayProxy.js.map +1 -0
  63. package/esm/Table.js +182 -0
  64. package/esm/Table.js.map +1 -0
  65. package/esm/TickingArrayDataSource.js +132 -0
  66. package/esm/TickingArrayDataSource.js.map +1 -0
  67. package/esm/UpdateGenerator.js +85 -0
  68. package/esm/UpdateGenerator.js.map +1 -0
  69. package/esm/basket/basket-module.js +232 -0
  70. package/esm/basket/basket-module.js.map +1 -0
  71. package/esm/basket/basket-schemas.js +119 -0
  72. package/esm/basket/basket-schemas.js.map +1 -0
  73. package/esm/basket/reference-data/constituents.js +38 -0
  74. package/esm/basket/reference-data/constituents.js.map +1 -0
  75. package/esm/basket/reference-data/ftse100.js +103 -0
  76. package/esm/basket/reference-data/ftse100.js.map +1 -0
  77. package/esm/basket/reference-data/hsi.js +85 -0
  78. package/esm/basket/reference-data/hsi.js.map +1 -0
  79. package/esm/basket/reference-data/nasdaq100.js +106 -0
  80. package/esm/basket/reference-data/nasdaq100.js.map +1 -0
  81. package/esm/basket/reference-data/prices.js +49 -0
  82. package/esm/basket/reference-data/prices.js.map +1 -0
  83. package/esm/basket/reference-data/sp500.js +44 -0
  84. package/esm/basket/reference-data/sp500.js.map +1 -0
  85. package/esm/data-utils.js +53 -0
  86. package/esm/data-utils.js.map +1 -0
  87. package/esm/index.js +11 -0
  88. package/esm/index.js.map +1 -0
  89. package/esm/makeSuggestions.js +35 -0
  90. package/esm/makeSuggestions.js.map +1 -0
  91. package/esm/schemas.js +24 -0
  92. package/esm/schemas.js.map +1 -0
  93. package/esm/simul/reference-data/currencies.js +4 -0
  94. package/esm/simul/reference-data/currencies.js.map +1 -0
  95. package/esm/simul/reference-data/instruments-extended.js +16 -0
  96. package/esm/simul/reference-data/instruments-extended.js.map +1 -0
  97. package/esm/simul/reference-data/instruments.js +69 -0
  98. package/esm/simul/reference-data/instruments.js.map +1 -0
  99. package/esm/simul/reference-data/locations.js +14 -0
  100. package/esm/simul/reference-data/locations.js.map +1 -0
  101. package/esm/simul/reference-data/lotsizes.js +26 -0
  102. package/esm/simul/reference-data/lotsizes.js.map +1 -0
  103. package/esm/simul/reference-data/orders.js +40 -0
  104. package/esm/simul/reference-data/orders.js.map +1 -0
  105. package/esm/simul/reference-data/prices.js +68 -0
  106. package/esm/simul/reference-data/prices.js.map +1 -0
  107. package/esm/simul/simul-module.js +120 -0
  108. package/esm/simul/simul-module.js.map +1 -0
  109. package/esm/simul/simul-schemas.js +135 -0
  110. package/esm/simul/simul-schemas.js.map +1 -0
  111. package/esm/test/test-module.js +56 -0
  112. package/esm/test/test-module.js.map +1 -0
  113. package/esm/test/test-schemas.js +15 -0
  114. package/esm/test/test-schemas.js.map +1 -0
  115. package/esm/vuu-modules.js +13 -0
  116. package/esm/vuu-modules.js.map +1 -0
  117. package/esm/vuu-row-generator.js +68 -0
  118. package/esm/vuu-row-generator.js.map +1 -0
  119. package/package.json +34 -0
  120. package/types/ArrayProxy.d.ts +8 -0
  121. package/types/Table.d.ts +23 -0
  122. package/types/TickingArrayDataSource.d.ts +27 -0
  123. package/types/UpdateGenerator.d.ts +18 -0
  124. package/types/basket/basket-module.d.ts +6 -0
  125. package/types/basket/basket-schemas.d.ts +3 -0
  126. package/types/basket/index.d.ts +2 -0
  127. package/types/basket/reference-data/constituents.d.ts +3 -0
  128. package/types/basket/reference-data/ftse100.d.ts +2 -0
  129. package/types/basket/reference-data/hsi.d.ts +2 -0
  130. package/types/basket/reference-data/nasdaq100.d.ts +2 -0
  131. package/types/basket/reference-data/prices.d.ts +25 -0
  132. package/types/basket/reference-data/sp500.d.ts +2 -0
  133. package/types/data-utils.d.ts +6 -0
  134. package/types/index.d.ts +9 -0
  135. package/types/makeSuggestions.d.ts +2 -0
  136. package/types/rowUpdates.d.ts +15 -0
  137. package/types/schemas.d.ts +8 -0
  138. package/types/simul/index.d.ts +2 -0
  139. package/types/simul/reference-data/currencies.d.ts +1 -0
  140. package/types/simul/reference-data/index.d.ts +5 -0
  141. package/types/simul/reference-data/instrument-prices.d.ts +54 -0
  142. package/types/simul/reference-data/instruments-extended.d.ts +2 -0
  143. package/types/simul/reference-data/instruments.d.ts +31 -0
  144. package/types/simul/reference-data/locations.d.ts +4 -0
  145. package/types/simul/reference-data/lotsizes.d.ts +1 -0
  146. package/types/simul/reference-data/orders.d.ts +35 -0
  147. package/types/simul/reference-data/priceStrategies.d.ts +1 -0
  148. package/types/simul/reference-data/prices.d.ts +27 -0
  149. package/types/simul/simul-module.d.ts +3 -0
  150. package/types/simul/simul-schemas.d.ts +3 -0
  151. package/types/test/index.d.ts +1 -0
  152. package/types/test/test-module.d.ts +4 -0
  153. package/types/test/test-schemas.d.ts +3 -0
  154. package/types/vuu-modules.d.ts +7 -0
  155. package/types/vuu-row-generator.d.ts +17 -0
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ var dataUtils = require('./data-utils.js');
4
+
5
+ const getNewValue = (value) => {
6
+ const multiplier = dataUtils.random(0, 100) / 1e3;
7
+ const direction = dataUtils.random(0, 10) >= 5 ? 1 : -1;
8
+ return value + value * multiplier * direction;
9
+ };
10
+ class BaseUpdateGenerator {
11
+ constructor(tickingColumns) {
12
+ this.updating = false;
13
+ this.update = () => {
14
+ if (this.range && this.table) {
15
+ const data = this.table?.data;
16
+ const { bid, ask, last, ...rest } = this.tickingColumns;
17
+ if (data && data?.length > 0) {
18
+ const maxRange = Math.min(this.range.to, data.length);
19
+ for (let rowIndex = this.range.from; rowIndex < maxRange; rowIndex++) {
20
+ let updateCount = 0;
21
+ const shallUpdateRow = dataUtils.random(0, 10) < 2;
22
+ if (shallUpdateRow) {
23
+ const rowUpdates = this.table.data[rowIndex];
24
+ const row = data[rowIndex];
25
+ if (bid !== void 0 && ask !== void 0) {
26
+ const { [bid]: currentBid, [ask]: currentAsk } = row;
27
+ const [newBid, newAsk] = dataUtils.generateNextBidAsk(
28
+ currentBid,
29
+ currentAsk,
30
+ 10,
31
+ 5,
32
+ dataUtils.nextRandomDouble
33
+ );
34
+ rowUpdates[ask] = newAsk;
35
+ rowUpdates[bid] = newBid;
36
+ if (last !== void 0) {
37
+ const newLast = Math.round((currentAsk + (newAsk - currentAsk) / 2) * 100) / 100;
38
+ rowUpdates[last] = newLast;
39
+ }
40
+ }
41
+ for (const colIdx of Object.values(rest)) {
42
+ const shallUpdateColumn = dataUtils.random(0, 10) < 5;
43
+ if (shallUpdateColumn) {
44
+ updateCount += 1;
45
+ const newValue = getNewValue(row[colIdx]);
46
+ if (this.table) {
47
+ rowUpdates[colIdx] = newValue;
48
+ }
49
+ }
50
+ }
51
+ if (this.table && updateCount > 0) {
52
+ this.table.updateRow(rowUpdates);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ if (this.updating) {
59
+ this.timer = window.setTimeout(this.update, 500);
60
+ }
61
+ };
62
+ this.tickingColumns = tickingColumns;
63
+ }
64
+ setRange(range) {
65
+ this.range = range;
66
+ if (!this.updating && this.table) {
67
+ this.startUpdating();
68
+ }
69
+ }
70
+ setTable(table) {
71
+ this.table = table;
72
+ }
73
+ startUpdating() {
74
+ this.updating = true;
75
+ this.update();
76
+ }
77
+ stopUpdating() {
78
+ this.updating = false;
79
+ if (this.timer) {
80
+ window.clearTimeout(this.timer);
81
+ this.timer = void 0;
82
+ }
83
+ }
84
+ }
85
+
86
+ exports.BaseUpdateGenerator = BaseUpdateGenerator;
87
+ //# 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":["random","generateNextBidAsk","nextRandomDouble"],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ 'use strict';
2
+
3
+ var prices = require('./reference-data/prices.js');
4
+ var Table = require('../Table.js');
5
+ var TickingArrayDataSource = require('../TickingArrayDataSource.js');
6
+ var basketSchemas = require('./basket-schemas.js');
7
+ var constituents = require('./reference-data/constituents.js');
8
+
9
+ const buildDataColumnMap = (tableName) => Object.values(basketSchemas.schemas[tableName].columns).reduce(
10
+ (map, col, index) => {
11
+ map[col.name] = index;
12
+ return map;
13
+ },
14
+ {}
15
+ );
16
+ const tableMaps = {
17
+ algoType: buildDataColumnMap("algoType"),
18
+ basket: buildDataColumnMap("basket"),
19
+ basketTrading: buildDataColumnMap("basketTrading"),
20
+ basketTradingConstituent: buildDataColumnMap("basketTradingConstituent"),
21
+ basketConstituent: buildDataColumnMap("basketConstituent"),
22
+ basketTradingConstituentJoin: buildDataColumnMap(
23
+ "basketTradingConstituentJoin"
24
+ ),
25
+ priceStrategyType: buildDataColumnMap("priceStrategyType")
26
+ };
27
+ const basketConstituent = new Table.Table(
28
+ basketSchemas.schemas.basketConstituent,
29
+ constituents,
30
+ tableMaps.basketConstituent
31
+ );
32
+ const basketTrading = new Table.Table(
33
+ basketSchemas.schemas.basketTrading,
34
+ [],
35
+ tableMaps.basketTrading
36
+ );
37
+ let basketIncrement = 1;
38
+ const basketTradingConstituent = new Table.Table(
39
+ basketSchemas.schemas.basketTradingConstituent,
40
+ [],
41
+ tableMaps.basketTradingConstituent
42
+ );
43
+ const createBasketTradingRow = (basketId, basketName, side = "BUY", status = "OFF MARKET") => [
44
+ basketId,
45
+ basketName,
46
+ 0,
47
+ 1.25,
48
+ `steve-${basketIncrement++}`,
49
+ side,
50
+ status,
51
+ 1e6,
52
+ 125e4,
53
+ 100
54
+ ];
55
+ function createTradingBasket(basketId, basketName) {
56
+ const basketTradingRow = createBasketTradingRow(basketId, basketName);
57
+ basketTrading.insert(basketTradingRow);
58
+ const { basketId: key } = buildDataColumnMap("basketConstituent");
59
+ const constituents = basketConstituent.data.filter(
60
+ (c) => c[key] === basketId
61
+ );
62
+ const { instanceId } = tableMaps.basketTrading;
63
+ constituents.forEach(([, , description, , ric, , , quantity, weighting]) => {
64
+ const algo = "";
65
+ const algoParams = "";
66
+ const limitPrice = 95;
67
+ const notionalLocal = 0;
68
+ const notionalUsd = 0;
69
+ const pctFilled = 0;
70
+ const priceSpread = 0;
71
+ const priceStrategyId = "";
72
+ const side = "BUY";
73
+ const venue = "venue";
74
+ const basketInstanceId = basketTradingRow[instanceId];
75
+ const basketTradingConstituentRow = [
76
+ algo,
77
+ algoParams,
78
+ basketId,
79
+ description,
80
+ basketInstanceId,
81
+ `${basketInstanceId}-${ric}`,
82
+ limitPrice,
83
+ notionalLocal,
84
+ notionalUsd,
85
+ pctFilled,
86
+ priceSpread,
87
+ priceStrategyId,
88
+ quantity,
89
+ ric,
90
+ side,
91
+ venue,
92
+ weighting
93
+ ];
94
+ basketTradingConstituent.insert(basketTradingConstituentRow);
95
+ });
96
+ return basketTradingRow[instanceId];
97
+ }
98
+ async function addConstituent(rpcRequest) {
99
+ console.log(`RPC call erceived ${rpcRequest.rpcName}`);
100
+ }
101
+ async function sendToMarket(rpcRequest) {
102
+ const [basketInstanceId] = rpcRequest.params;
103
+ basketTrading.update(basketInstanceId, "status", "ON_MARKET");
104
+ }
105
+ async function takeOffMarket(rpcRequest) {
106
+ const [basketInstanceId] = rpcRequest.params;
107
+ basketTrading.update(basketInstanceId, "status", "OFF-MARKET");
108
+ }
109
+ async function createNewBasket(rpcRequest) {
110
+ const {
111
+ params: [basketId, basketName]
112
+ } = rpcRequest;
113
+ const key = createTradingBasket(basketId, basketName);
114
+ return {
115
+ action: {
116
+ type: "VP_CREATE_SUCCESS",
117
+ key
118
+ }
119
+ };
120
+ }
121
+ const tables = {
122
+ algoType: new Table.Table(
123
+ basketSchemas.schemas.algoType,
124
+ [
125
+ ["Sniper", 0],
126
+ ["Dark Liquidity", 1],
127
+ ["VWAP", 2],
128
+ ["POV", 3],
129
+ ["Dynamic Close", 4]
130
+ ],
131
+ tableMaps.algoType
132
+ ),
133
+ basket: new Table.Table(
134
+ basketSchemas.schemas.basket,
135
+ [
136
+ [".NASDAQ100", ".NASDAQ100", 0, 0],
137
+ [".HSI", ".HSI", 0, 0],
138
+ [".FTSE100", ".FTSE100", 0, 0],
139
+ [".SP500", ".SP500", 0, 0]
140
+ ],
141
+ tableMaps.basket
142
+ ),
143
+ basketConstituent,
144
+ basketTrading,
145
+ basketTradingConstituent,
146
+ basketTradingConstituentJoin: Table.joinTables(
147
+ { module: "BASKET", table: "basketTradingConstituentJoin" },
148
+ basketTradingConstituent,
149
+ prices,
150
+ "ric"
151
+ ),
152
+ priceStrategyType: new Table.Table(
153
+ basketSchemas.schemas.priceStrategyType,
154
+ [
155
+ ["Peg to Near Touch", 0],
156
+ ["Far Touch", 1],
157
+ ["Limit", 2],
158
+ ["Algo", 3]
159
+ ],
160
+ tableMaps.priceStrategyType
161
+ )
162
+ };
163
+ const menus = {
164
+ algoType: void 0,
165
+ basket: {
166
+ name: "ROOT",
167
+ menus: [
168
+ {
169
+ context: "selected-rows",
170
+ filter: "",
171
+ name: "Add Basket",
172
+ rpcName: "CREATE_NEW_BASKET"
173
+ }
174
+ ]
175
+ },
176
+ basketConstituent: void 0,
177
+ basketTrading: void 0,
178
+ basketTradingConstituent: void 0,
179
+ basketTradingConstituentJoin: void 0,
180
+ priceStrategyType: void 0
181
+ };
182
+ const services = {
183
+ algoType: void 0,
184
+ basket: [
185
+ {
186
+ rpcName: "createBasket",
187
+ service: createNewBasket
188
+ }
189
+ ],
190
+ basketConstituent: void 0,
191
+ basketTrading: [
192
+ {
193
+ rpcName: "sendToMarket",
194
+ service: sendToMarket
195
+ },
196
+ {
197
+ rpcName: "takeOffMarket",
198
+ service: takeOffMarket
199
+ }
200
+ ],
201
+ basketTradingConstituent: void 0,
202
+ basketTradingConstituentJoin: [
203
+ {
204
+ rpcName: "addConstituent",
205
+ service: addConstituent
206
+ }
207
+ ],
208
+ priceStrategyType: void 0
209
+ };
210
+ const getColumnDescriptors = (tableName) => {
211
+ const schema = basketSchemas.schemas[tableName];
212
+ return schema.columns;
213
+ };
214
+ const createDataSource = (tableName) => {
215
+ const columnDescriptors = getColumnDescriptors(tableName);
216
+ const { key } = basketSchemas.schemas[tableName];
217
+ return new TickingArrayDataSource.TickingArrayDataSource({
218
+ columnDescriptors,
219
+ dataMap: tableMaps[tableName],
220
+ keyColumn: key,
221
+ menu: menus[tableName],
222
+ rpcServices: services[tableName],
223
+ table: tables[tableName]
224
+ // updateGenerator: createUpdateGenerator?.(),
225
+ });
226
+ };
227
+ const nullTypeaheadHook = async () => [];
228
+ const basketModule = {
229
+ createDataSource,
230
+ typeaheadHook: () => nullTypeaheadHook
231
+ };
232
+
233
+ exports.basketModule = basketModule;
234
+ exports.createBasketTradingRow = createBasketTradingRow;
235
+ exports.tables = tables;
236
+ //# 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 type { VuuModule } from \"../vuu-modules\";\nimport { BasketsTableName, schemas } from \"./basket-schemas\";\nimport basketConstituentData from \"./reference-data/constituents\";\n\ntype RpcService = {\n rpcName: string;\n service: (rpcRequest: any) => Promise<unknown>;\n};\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\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":["schemas","Table","basketConstituentData","joinTables","pricesTable","TickingArrayDataSource"],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ const schemas = {
4
+ algoType: {
5
+ columns: [
6
+ { name: "algoType", serverDataType: "string" },
7
+ { name: "id", serverDataType: "int" }
8
+ ],
9
+ key: "id",
10
+ table: { module: "BASKET", table: "algoType" }
11
+ },
12
+ basket: {
13
+ columns: [
14
+ { name: "id", serverDataType: "string" },
15
+ { name: "name", serverDataType: "string" },
16
+ { name: "notionalValue", serverDataType: "double" },
17
+ { name: "notionalValueUsd", serverDataType: "double" }
18
+ ],
19
+ key: "id",
20
+ table: { module: "BASKET", table: "basket" }
21
+ },
22
+ basketConstituent: {
23
+ columns: [
24
+ { name: "basketId", serverDataType: "string" },
25
+ { name: "change", serverDataType: "string" },
26
+ { name: "description", serverDataType: "string" },
27
+ { name: "lastTrade", serverDataType: "string" },
28
+ { name: "ric", serverDataType: "string" },
29
+ { name: "ricBasketId", serverDataType: "string" },
30
+ { name: "side", serverDataType: "string" },
31
+ { name: "volume", serverDataType: "string" },
32
+ { name: "weighting", serverDataType: "double" }
33
+ ],
34
+ key: "ricBasketId",
35
+ table: { module: "BASKET", table: "basketConstituent" }
36
+ },
37
+ basketTrading: {
38
+ columns: [
39
+ { name: "basketId", serverDataType: "string" },
40
+ { name: "basketName", serverDataType: "string" },
41
+ { name: "filledPct", serverDataType: "double" },
42
+ { name: "fxRateToUsd", serverDataType: "double" },
43
+ { name: "instanceId", serverDataType: "string" },
44
+ { name: "side", serverDataType: "string" },
45
+ { name: "status", serverDataType: "string" },
46
+ { name: "totalNotional", serverDataType: "double" },
47
+ { name: "totalNotionalUsd", serverDataType: "double" },
48
+ { name: "units", serverDataType: "int" }
49
+ ],
50
+ key: "instanceId",
51
+ table: { module: "BASKET", table: "basketTrading" }
52
+ },
53
+ basketTradingConstituent: {
54
+ columns: [
55
+ { name: "algo", serverDataType: "string" },
56
+ { name: "algoParams", serverDataType: "string" },
57
+ { name: "basketId", serverDataType: "string" },
58
+ { name: "description", serverDataType: "string" },
59
+ { name: "instanceId", serverDataType: "string" },
60
+ { name: "instanceIdRic", serverDataType: "string" },
61
+ { name: "limitPrice", serverDataType: "double" },
62
+ { name: "notionalLocal", serverDataType: "double" },
63
+ { name: "notionalUsd", serverDataType: "double" },
64
+ { name: "pctFilled", serverDataType: "double" },
65
+ { name: "priceSpread", serverDataType: "int" },
66
+ { name: "priceStrategyId", serverDataType: "int" },
67
+ { name: "quantity", serverDataType: "long" },
68
+ { name: "ric", serverDataType: "string" },
69
+ { name: "side", serverDataType: "string" },
70
+ { name: "status", serverDataType: "string" },
71
+ { name: "venue", serverDataType: "string" },
72
+ { name: "weighting", serverDataType: "double" }
73
+ ],
74
+ key: "instanceIdRic",
75
+ table: { module: "BASKET", table: "basketTradingConstituent" }
76
+ },
77
+ basketTradingConstituentJoin: {
78
+ columns: [
79
+ { name: "algo", serverDataType: "string" },
80
+ { name: "algoParams", serverDataType: "string" },
81
+ { name: "ask", serverDataType: "double" },
82
+ { name: "askSize", serverDataType: "double" },
83
+ { name: "basketId", serverDataType: "string" },
84
+ { name: "bid", serverDataType: "double" },
85
+ { name: "bidSize", serverDataType: "double" },
86
+ { name: "close", serverDataType: "double" },
87
+ { name: "description", serverDataType: "string" },
88
+ { name: "instanceId", serverDataType: "string" },
89
+ { name: "instanceIdRic", serverDataType: "string" },
90
+ { name: "last", serverDataType: "double" },
91
+ { name: "limitPrice", serverDataType: "double" },
92
+ { name: "notionalLocal", serverDataType: "double" },
93
+ { name: "notionalUsd", serverDataType: "double" },
94
+ { name: "open", serverDataType: "double" },
95
+ { name: "pctFilled", serverDataType: "double" },
96
+ { name: "phase", serverDataType: "string" },
97
+ { name: "priceSpread", serverDataType: "int" },
98
+ { name: "priceStrategyId", serverDataType: "int" },
99
+ { name: "quantity", serverDataType: "long" },
100
+ { name: "ric", serverDataType: "string" },
101
+ { name: "scenario", serverDataType: "string" },
102
+ { name: "side", serverDataType: "string" },
103
+ { name: "status", serverDataType: "string" },
104
+ { name: "venue", serverDataType: "string" },
105
+ { name: "weighting", serverDataType: "double" }
106
+ ],
107
+ key: "instanceIdRic",
108
+ table: { module: "BASKET", table: "basketTradingConstituentJoin" }
109
+ },
110
+ priceStrategyType: {
111
+ columns: [
112
+ { name: "priceStrategy", serverDataType: "string" },
113
+ { name: "id", serverDataType: "int" }
114
+ ],
115
+ key: "",
116
+ table: { module: "BASKET", table: "priceStrategyType" }
117
+ }
118
+ };
119
+
120
+ exports.schemas = schemas;
121
+ //# 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,40 @@
1
+ 'use strict';
2
+
3
+ var ftse100 = require('./ftse100.js');
4
+ var nasdaq100 = require('./nasdaq100.js');
5
+ var sp500 = require('./sp500.js');
6
+ var hsi = require('./hsi.js');
7
+
8
+ const basketConstituentData = [];
9
+ for (const row of ftse100) {
10
+ const [ric, name, lastTrade, change, volume] = row;
11
+ const basketId = ".FTSE100";
12
+ const side = "BUY";
13
+ const weighting = 1;
14
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
15
+ }
16
+ for (const row of hsi) {
17
+ const [name, ric, lastTrade, change, , volume] = row;
18
+ const basketId = ".HSI";
19
+ const side = "BUY";
20
+ const weighting = 1;
21
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
22
+ }
23
+ for (const row of nasdaq100) {
24
+ const [name, ric, weighting, lastTrade, change] = row;
25
+ const basketId = ".NASDAQ100";
26
+ const side = "BUY";
27
+ const volume = 1e3;
28
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
29
+ }
30
+ for (const row of sp500) {
31
+ const [name, ric, weighting, , change] = row;
32
+ const basketId = ".SP500";
33
+ const side = "BUY";
34
+ const volume = 1e3;
35
+ const lastTrade = 0;
36
+ basketConstituentData.push([basketId, change, name, lastTrade, ric, `${ric}-${basketId}`, side, volume, weighting]);
37
+ }
38
+
39
+ module.exports = basketConstituentData;
40
+ //# 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":["ftse","nasdaq"],"mappings":";;;;;;;AAMA,MAAM,wBAAwB,GAAC;AAC/B,KAAA,MAAW,OAAOA,OAAM,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,OAAOC,SAAQ,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;;;;"}