@vuu-ui/vuu-data-test 3.0.0-beta.3 → 3.1.0-beta.1

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 (264) hide show
  1. package/package.json +15 -12
  2. package/src/ArrayProxy.mjs +38 -0
  3. package/src/RuntimeVisualLink.mjs +45 -0
  4. package/src/Table.mjs +96 -0
  5. package/src/TickingArrayDataSource.mjs +265 -0
  6. package/src/UpdateGenerator.mjs +72 -0
  7. package/src/basket/BasketModule.mjs +272 -0
  8. package/src/basket/basket-schemas.mjs +366 -0
  9. package/src/basket/index.mjs +2 -0
  10. package/src/basket/reference-data/constituents.mjs +76 -0
  11. package/src/basket/reference-data/ftse100.mjs +686 -0
  12. package/src/basket/reference-data/hsi.mjs +1047 -0
  13. package/src/basket/reference-data/nasdaq100.mjs +812 -0
  14. package/src/basket/reference-data/prices.mjs +43 -0
  15. package/src/basket/reference-data/sp500.mjs +315 -0
  16. package/src/core/module/ModuleContainer.mjs +21 -0
  17. package/src/core/module/VuuModule.mjs +635 -0
  18. package/src/core/table/TableContainer.mjs +102 -0
  19. package/src/data-utils.mjs +57 -0
  20. package/src/default-column-definitions.mjs +15 -0
  21. package/src/index.mjs +12 -0
  22. package/src/local-datasource-provider/LocalDatasourceProvider.mjs +44 -0
  23. package/src/makeSuggestions.mjs +20 -0
  24. package/src/rowUpdates.mjs +0 -0
  25. package/src/schemas.mjs +19 -0
  26. package/src/session-table-utils.mjs +31 -0
  27. package/src/simul/SimulModule.mjs +175 -0
  28. package/src/simul/index.mjs +2 -0
  29. package/src/simul/reference-data/accounts.mjs +23 -0
  30. package/src/simul/reference-data/algos.mjs +9 -0
  31. package/src/simul/reference-data/currencies.mjs +8 -0
  32. package/src/simul/reference-data/index.mjs +5 -0
  33. package/src/simul/reference-data/instrument-prices.mjs +48 -0
  34. package/src/simul/reference-data/instruments-extended.mjs +12 -0
  35. package/src/simul/reference-data/instruments.mjs +69 -0
  36. package/src/simul/reference-data/isin-generator/convert-string-to-base-ten-number.mjs +2 -0
  37. package/src/simul/reference-data/isin-generator/fixtures/alphabet.mjs +27 -0
  38. package/src/simul/reference-data/isin-generator/fixtures/alphanumeric-values.mjs +7 -0
  39. package/src/simul/reference-data/isin-generator/fixtures/base-ten-numbers.mjs +13 -0
  40. package/src/simul/reference-data/isin-generator/generate-cusip-check-code.mjs +17 -0
  41. package/src/simul/reference-data/isin-generator/generate-cusip-without-check-code.mjs +8 -0
  42. package/src/simul/reference-data/isin-generator/generate-cusip.mjs +8 -0
  43. package/src/simul/reference-data/isin-generator/generate-random-alphanumeric.mjs +3 -0
  44. package/src/simul/reference-data/isin-generator/generate-random-base-ten-number.mjs +2 -0
  45. package/src/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.mjs +7 -0
  46. package/src/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.mjs +7 -0
  47. package/src/simul/reference-data/isin-generator/index.mjs +280 -0
  48. package/src/simul/reference-data/isin-generator/is-odd.mjs +2 -0
  49. package/src/simul/reference-data/locations.mjs +45 -0
  50. package/src/simul/reference-data/lotsizes.mjs +24 -0
  51. package/src/simul/reference-data/orderStatus.mjs +6 -0
  52. package/src/simul/reference-data/orders.mjs +64 -0
  53. package/src/simul/reference-data/parent-child-orders.mjs +119 -0
  54. package/src/simul/reference-data/priceStrategies.mjs +8 -0
  55. package/src/simul/reference-data/prices.mjs +80 -0
  56. package/src/simul/reference-data/sides.mjs +5 -0
  57. package/src/simul/simul-schemas.mjs +430 -0
  58. package/src/test/TestModule.mjs +582 -0
  59. package/src/test/index.mjs +1 -0
  60. package/src/vuu-row-generator.mjs +71 -0
  61. package/cjs/ArrayProxy.js +0 -72
  62. package/cjs/ArrayProxy.js.map +0 -1
  63. package/cjs/RuntimeVisualLink.js +0 -73
  64. package/cjs/RuntimeVisualLink.js.map +0 -1
  65. package/cjs/Table.js +0 -128
  66. package/cjs/Table.js.map +0 -1
  67. package/cjs/TickingArrayDataSource.js +0 -344
  68. package/cjs/TickingArrayDataSource.js.map +0 -1
  69. package/cjs/UpdateGenerator.js +0 -94
  70. package/cjs/UpdateGenerator.js.map +0 -1
  71. package/cjs/basket/BasketModule.js +0 -282
  72. package/cjs/basket/BasketModule.js.map +0 -1
  73. package/cjs/basket/basket-schemas.js +0 -134
  74. package/cjs/basket/basket-schemas.js.map +0 -1
  75. package/cjs/basket/reference-data/constituents.js +0 -40
  76. package/cjs/basket/reference-data/constituents.js.map +0 -1
  77. package/cjs/basket/reference-data/ftse100.js +0 -105
  78. package/cjs/basket/reference-data/ftse100.js.map +0 -1
  79. package/cjs/basket/reference-data/hsi.js +0 -87
  80. package/cjs/basket/reference-data/hsi.js.map +0 -1
  81. package/cjs/basket/reference-data/nasdaq100.js +0 -108
  82. package/cjs/basket/reference-data/nasdaq100.js.map +0 -1
  83. package/cjs/basket/reference-data/sp500.js +0 -46
  84. package/cjs/basket/reference-data/sp500.js.map +0 -1
  85. package/cjs/core/module/ModuleContainer.js +0 -43
  86. package/cjs/core/module/ModuleContainer.js.map +0 -1
  87. package/cjs/core/module/VuuModule.js +0 -846
  88. package/cjs/core/module/VuuModule.js.map +0 -1
  89. package/cjs/core/table/TableContainer.js +0 -144
  90. package/cjs/core/table/TableContainer.js.map +0 -1
  91. package/cjs/data-utils.js +0 -55
  92. package/cjs/data-utils.js.map +0 -1
  93. package/cjs/default-column-definitions.js +0 -10
  94. package/cjs/default-column-definitions.js.map +0 -1
  95. package/cjs/index.js +0 -44
  96. package/cjs/index.js.map +0 -1
  97. package/cjs/local-datasource-provider/LocalDatasourceProvider.js +0 -70
  98. package/cjs/local-datasource-provider/LocalDatasourceProvider.js.map +0 -1
  99. package/cjs/makeSuggestions.js +0 -26
  100. package/cjs/makeSuggestions.js.map +0 -1
  101. package/cjs/schemas.js +0 -28
  102. package/cjs/schemas.js.map +0 -1
  103. package/cjs/session-table-utils.js +0 -29
  104. package/cjs/session-table-utils.js.map +0 -1
  105. package/cjs/simul/SimulModule.js +0 -187
  106. package/cjs/simul/SimulModule.js.map +0 -1
  107. package/cjs/simul/reference-data/accounts.js +0 -27
  108. package/cjs/simul/reference-data/accounts.js.map +0 -1
  109. package/cjs/simul/reference-data/algos.js +0 -6
  110. package/cjs/simul/reference-data/algos.js.map +0 -1
  111. package/cjs/simul/reference-data/currencies.js +0 -6
  112. package/cjs/simul/reference-data/currencies.js.map +0 -1
  113. package/cjs/simul/reference-data/instruments-extended.js +0 -19
  114. package/cjs/simul/reference-data/instruments-extended.js.map +0 -1
  115. package/cjs/simul/reference-data/instruments.js +0 -87
  116. package/cjs/simul/reference-data/instruments.js.map +0 -1
  117. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +0 -6
  118. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +0 -1
  119. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js +0 -31
  120. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js.map +0 -1
  121. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +0 -9
  122. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +0 -1
  123. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +0 -17
  124. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +0 -1
  125. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js +0 -24
  126. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +0 -1
  127. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +0 -13
  128. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +0 -1
  129. package/cjs/simul/reference-data/isin-generator/generate-cusip.js +0 -13
  130. package/cjs/simul/reference-data/isin-generator/generate-cusip.js.map +0 -1
  131. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js +0 -8
  132. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +0 -1
  133. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js +0 -6
  134. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +0 -1
  135. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +0 -14
  136. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +0 -1
  137. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +0 -14
  138. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +0 -1
  139. package/cjs/simul/reference-data/isin-generator/index.js +0 -295
  140. package/cjs/simul/reference-data/isin-generator/index.js.map +0 -1
  141. package/cjs/simul/reference-data/isin-generator/is-odd.js +0 -6
  142. package/cjs/simul/reference-data/isin-generator/is-odd.js.map +0 -1
  143. package/cjs/simul/reference-data/locations.js +0 -17
  144. package/cjs/simul/reference-data/locations.js.map +0 -1
  145. package/cjs/simul/reference-data/lotsizes.js +0 -28
  146. package/cjs/simul/reference-data/lotsizes.js.map +0 -1
  147. package/cjs/simul/reference-data/orderStatus.js +0 -6
  148. package/cjs/simul/reference-data/orderStatus.js.map +0 -1
  149. package/cjs/simul/reference-data/orders.js +0 -55
  150. package/cjs/simul/reference-data/orders.js.map +0 -1
  151. package/cjs/simul/reference-data/parent-child-orders.js +0 -146
  152. package/cjs/simul/reference-data/parent-child-orders.js.map +0 -1
  153. package/cjs/simul/reference-data/prices.js +0 -91
  154. package/cjs/simul/reference-data/prices.js.map +0 -1
  155. package/cjs/simul/reference-data/sides.js +0 -6
  156. package/cjs/simul/reference-data/sides.js.map +0 -1
  157. package/cjs/simul/simul-schemas.js +0 -159
  158. package/cjs/simul/simul-schemas.js.map +0 -1
  159. package/cjs/test/TestModule.js +0 -255
  160. package/cjs/test/TestModule.js.map +0 -1
  161. package/cjs/vuu-row-generator.js +0 -74
  162. package/cjs/vuu-row-generator.js.map +0 -1
  163. package/esm/ArrayProxy.js +0 -70
  164. package/esm/ArrayProxy.js.map +0 -1
  165. package/esm/RuntimeVisualLink.js +0 -71
  166. package/esm/RuntimeVisualLink.js.map +0 -1
  167. package/esm/Table.js +0 -124
  168. package/esm/Table.js.map +0 -1
  169. package/esm/TickingArrayDataSource.js +0 -342
  170. package/esm/TickingArrayDataSource.js.map +0 -1
  171. package/esm/UpdateGenerator.js +0 -92
  172. package/esm/UpdateGenerator.js.map +0 -1
  173. package/esm/basket/BasketModule.js +0 -278
  174. package/esm/basket/BasketModule.js.map +0 -1
  175. package/esm/basket/basket-schemas.js +0 -131
  176. package/esm/basket/basket-schemas.js.map +0 -1
  177. package/esm/basket/reference-data/constituents.js +0 -38
  178. package/esm/basket/reference-data/constituents.js.map +0 -1
  179. package/esm/basket/reference-data/ftse100.js +0 -103
  180. package/esm/basket/reference-data/ftse100.js.map +0 -1
  181. package/esm/basket/reference-data/hsi.js +0 -85
  182. package/esm/basket/reference-data/hsi.js.map +0 -1
  183. package/esm/basket/reference-data/nasdaq100.js +0 -106
  184. package/esm/basket/reference-data/nasdaq100.js.map +0 -1
  185. package/esm/basket/reference-data/sp500.js +0 -44
  186. package/esm/basket/reference-data/sp500.js.map +0 -1
  187. package/esm/core/module/ModuleContainer.js +0 -41
  188. package/esm/core/module/ModuleContainer.js.map +0 -1
  189. package/esm/core/module/VuuModule.js +0 -844
  190. package/esm/core/module/VuuModule.js.map +0 -1
  191. package/esm/core/table/TableContainer.js +0 -142
  192. package/esm/core/table/TableContainer.js.map +0 -1
  193. package/esm/data-utils.js +0 -50
  194. package/esm/data-utils.js.map +0 -1
  195. package/esm/default-column-definitions.js +0 -8
  196. package/esm/default-column-definitions.js.map +0 -1
  197. package/esm/index.js +0 -15
  198. package/esm/index.js.map +0 -1
  199. package/esm/local-datasource-provider/LocalDatasourceProvider.js +0 -68
  200. package/esm/local-datasource-provider/LocalDatasourceProvider.js.map +0 -1
  201. package/esm/makeSuggestions.js +0 -24
  202. package/esm/makeSuggestions.js.map +0 -1
  203. package/esm/schemas.js +0 -24
  204. package/esm/schemas.js.map +0 -1
  205. package/esm/session-table-utils.js +0 -26
  206. package/esm/session-table-utils.js.map +0 -1
  207. package/esm/simul/SimulModule.js +0 -184
  208. package/esm/simul/SimulModule.js.map +0 -1
  209. package/esm/simul/reference-data/accounts.js +0 -25
  210. package/esm/simul/reference-data/accounts.js.map +0 -1
  211. package/esm/simul/reference-data/algos.js +0 -4
  212. package/esm/simul/reference-data/algos.js.map +0 -1
  213. package/esm/simul/reference-data/currencies.js +0 -4
  214. package/esm/simul/reference-data/currencies.js.map +0 -1
  215. package/esm/simul/reference-data/instruments-extended.js +0 -17
  216. package/esm/simul/reference-data/instruments-extended.js.map +0 -1
  217. package/esm/simul/reference-data/instruments.js +0 -82
  218. package/esm/simul/reference-data/instruments.js.map +0 -1
  219. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +0 -4
  220. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +0 -1
  221. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js +0 -29
  222. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js.map +0 -1
  223. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +0 -7
  224. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +0 -1
  225. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +0 -15
  226. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +0 -1
  227. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js +0 -22
  228. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +0 -1
  229. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +0 -11
  230. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +0 -1
  231. package/esm/simul/reference-data/isin-generator/generate-cusip.js +0 -11
  232. package/esm/simul/reference-data/isin-generator/generate-cusip.js.map +0 -1
  233. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js +0 -6
  234. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +0 -1
  235. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js +0 -4
  236. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +0 -1
  237. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +0 -12
  238. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +0 -1
  239. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +0 -12
  240. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +0 -1
  241. package/esm/simul/reference-data/isin-generator/index.js +0 -293
  242. package/esm/simul/reference-data/isin-generator/index.js.map +0 -1
  243. package/esm/simul/reference-data/isin-generator/is-odd.js +0 -4
  244. package/esm/simul/reference-data/isin-generator/is-odd.js.map +0 -1
  245. package/esm/simul/reference-data/locations.js +0 -14
  246. package/esm/simul/reference-data/locations.js.map +0 -1
  247. package/esm/simul/reference-data/lotsizes.js +0 -26
  248. package/esm/simul/reference-data/lotsizes.js.map +0 -1
  249. package/esm/simul/reference-data/orderStatus.js +0 -4
  250. package/esm/simul/reference-data/orderStatus.js.map +0 -1
  251. package/esm/simul/reference-data/orders.js +0 -52
  252. package/esm/simul/reference-data/orders.js.map +0 -1
  253. package/esm/simul/reference-data/parent-child-orders.js +0 -141
  254. package/esm/simul/reference-data/parent-child-orders.js.map +0 -1
  255. package/esm/simul/reference-data/prices.js +0 -88
  256. package/esm/simul/reference-data/prices.js.map +0 -1
  257. package/esm/simul/reference-data/sides.js +0 -4
  258. package/esm/simul/reference-data/sides.js.map +0 -1
  259. package/esm/simul/simul-schemas.js +0 -156
  260. package/esm/simul/simul-schemas.js.map +0 -1
  261. package/esm/test/TestModule.js +0 -253
  262. package/esm/test/TestModule.js.map +0 -1
  263. package/esm/vuu-row-generator.js +0 -68
  264. package/esm/vuu-row-generator.js.map +0 -1
@@ -1,846 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuUtils = require('@vuu-ui/vuu-utils');
4
- var Table = require('../../Table.js');
5
- var TickingArrayDataSource = require('../../TickingArrayDataSource.js');
6
- var RuntimeVisualLink = require('../../RuntimeVisualLink.js');
7
- var ModuleContainer = require('./ModuleContainer.js');
8
- var sessionTableUtils = require('../../session-table-utils.js');
9
-
10
- var __defProp = Object.defineProperty;
11
- var __typeError = (msg) => {
12
- throw TypeError(msg);
13
- };
14
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
16
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
17
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
18
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
19
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
20
- var _name, _sessionTableMessageColumn, _runtimeVisualLinks, _sessionSourceTableMap, _sessionTableMap, _tableServices, _subscriptionMap, _moduleServices, _moduleMenuServices;
21
- const assertUpdateIsValid = (schema, column, data) => {
22
- const col = schema.columns.find((col2) => col2.name === column);
23
- if (col) {
24
- console.log(`data type ${col.serverDataType} data ${data}`);
25
- } else {
26
- throw Error(
27
- `schema for table ${schema.table.table} does not include column ${column}`
28
- );
29
- }
30
- };
31
- class VuuModule {
32
- constructor(name, { sessionTableMessageColumn = "vuuMsg" } = {}) {
33
- __privateAdd(this, _name);
34
- __privateAdd(this, _sessionTableMessageColumn);
35
- __privateAdd(this, _runtimeVisualLinks, /* @__PURE__ */ new Map());
36
- __privateAdd(this, _sessionSourceTableMap, {});
37
- __privateAdd(this, _sessionTableMap, {});
38
- __privateAdd(this, _tableServices);
39
- __privateAdd(this, _subscriptionMap, /* @__PURE__ */ new Map());
40
- __publicField(this, "handlePostSubscribeActivities", ({
41
- clientViewportId,
42
- tableSchema
43
- }) => {
44
- const visualLinks = this.getVisualLinks(tableSchema.table.table);
45
- const { dataSource } = this.getSubscriptionByViewport(clientViewportId);
46
- requestAnimationFrame(() => {
47
- dataSource.links = visualLinks;
48
- });
49
- if (this.visualLinks && dataSource.tableSchema) {
50
- const {
51
- table: { table: sourceTable }
52
- } = dataSource.tableSchema;
53
- for (const [table, links] of Object.entries(
54
- this.visualLinks
55
- )) {
56
- if (links) {
57
- const potentialTargets = links.filter(
58
- (l) => l.toTable === sourceTable
59
- );
60
- if (potentialTargets.length) {
61
- for (const subscriptions of __privateGet(this, _subscriptionMap).values()) {
62
- for (const { dataSource: dataSource2 } of subscriptions) {
63
- if (dataSource2.tableSchema?.table.table === table) {
64
- dataSource2.links = this.getVisualLinks(table);
65
- }
66
- }
67
- }
68
- }
69
- }
70
- }
71
- }
72
- });
73
- __publicField(this, "unregisterViewport", (viewportId) => {
74
- const { dataSource } = this.getSubscriptionByViewport(viewportId);
75
- const tableName = dataSource.tableSchema?.table.table;
76
- if (tableName) {
77
- const subscriptionsForTable = __privateGet(this, _subscriptionMap).get(tableName);
78
- if (subscriptionsForTable) {
79
- for (const { viewportId: vp } of subscriptionsForTable) {
80
- if (vp === viewportId) {
81
- if (subscriptionsForTable.length === 1) {
82
- __privateGet(this, _subscriptionMap).delete(tableName);
83
- } else {
84
- __privateGet(this, _subscriptionMap).set(
85
- tableName,
86
- subscriptionsForTable.filter(
87
- (s) => s.viewportId !== viewportId
88
- )
89
- );
90
- }
91
- }
92
- }
93
- }
94
- }
95
- for (const [tableName2, subscriptions] of __privateGet(this, _subscriptionMap)) {
96
- if (subscriptions[0].viewportId.toString() === viewportId) {
97
- __privateGet(this, _subscriptionMap).delete(tableName2);
98
- }
99
- }
100
- if (this.visualLinks && dataSource.tableSchema) {
101
- const {
102
- table: { table: sourceTable }
103
- } = dataSource.tableSchema;
104
- for (const [table, links] of Object.entries(
105
- this.visualLinks
106
- )) {
107
- if (links) {
108
- const potentialTargets = links.filter(
109
- (l) => l.toTable === sourceTable
110
- );
111
- if (potentialTargets.length) {
112
- for (const subscriptions of __privateGet(this, _subscriptionMap).values()) {
113
- for (const { dataSource: dataSource2 } of subscriptions) {
114
- if (dataSource2.tableSchema?.table.table === table) {
115
- dataSource2.links = this.getVisualLinks(table);
116
- }
117
- }
118
- }
119
- }
120
- }
121
- }
122
- }
123
- });
124
- __publicField(this, "getLinks", (subscriptionMap, vuuLinks) => {
125
- const visualLinks = [];
126
- for (let i = 0; i < vuuLinks.length; i++) {
127
- const subscriptions = subscriptionMap.get(vuuLinks[i].toTable);
128
- if (subscriptions) {
129
- subscriptions.forEach(({ viewportId, dataSource: { status } }) => {
130
- if (status !== "suspended") {
131
- const newLink = {
132
- parentClientVpId: viewportId,
133
- parentVpId: viewportId,
134
- link: vuuLinks[i]
135
- };
136
- visualLinks.push(newLink);
137
- }
138
- });
139
- }
140
- }
141
- return visualLinks;
142
- });
143
- __publicField(this, "visualLinkService", (message) => new Promise((resolve) => {
144
- if (message.type === "CREATE_VISUAL_LINK") {
145
- const { childColumnName, childVpId, parentColumnName, parentVpId } = message;
146
- const childDataSource = this.getSubscribedDataSource(childVpId);
147
- const parentDataSource = this.getSubscribedDataSource(parentVpId);
148
- const runtimeVisualLink = new RuntimeVisualLink.RuntimeVisualLink(
149
- childDataSource,
150
- parentDataSource,
151
- childColumnName,
152
- parentColumnName
153
- );
154
- __privateGet(this, _runtimeVisualLinks).set(childVpId, runtimeVisualLink);
155
- resolve({
156
- clientViewportId: childVpId,
157
- colName: childColumnName,
158
- parentColName: parentColumnName,
159
- parentViewportId: parentVpId,
160
- type: "vuu-link-created"
161
- });
162
- } else {
163
- const runtimeVisualLink = __privateGet(this, _runtimeVisualLinks).get(
164
- message.childVpId
165
- );
166
- if (runtimeVisualLink) {
167
- runtimeVisualLink.remove();
168
- __privateGet(this, _runtimeVisualLinks).delete(message.childVpId);
169
- } else {
170
- throw Error(
171
- `visualLinkService no visual link found for viewport #${message.childVpId}`
172
- );
173
- }
174
- resolve();
175
- }
176
- }));
177
- __publicField(this, "getVisualLinks", (tableName) => {
178
- const linksForTable = this.visualLinks?.[tableName];
179
- return linksForTable === void 0 ? void 0 : this.getLinks(__privateGet(this, _subscriptionMap), linksForTable);
180
- });
181
- __publicField(this, "createDataSource", (tableName, viewport, config) => {
182
- const columnDescriptors = this.getColumnDescriptors(tableName);
183
- const table = this.tables[tableName];
184
- const sessionTable = __privateGet(this, _sessionTableMap)[tableName];
185
- const vuuModule = this;
186
- const dataSource = new TickingArrayDataSource.TickingArrayDataSource({
187
- ...config,
188
- columnDescriptors,
189
- getVisualLinks: this.getVisualLinks,
190
- keyColumn: this.schemas[tableName] === void 0 ? __privateGet(this, _sessionTableMap)[tableName].schema.key : this.schemas[tableName].key,
191
- table: table || sessionTable,
192
- menu: this.menus?.[tableName],
193
- rpcServices: this.getServices(tableName),
194
- rpcMenuServices: this.getMenuServices(tableName),
195
- viewport,
196
- visualLinkService: this.visualLinkService,
197
- vuuModule
198
- });
199
- dataSource.on("subscribed", this.handlePostSubscribeActivities);
200
- dataSource.on("unsubscribed", this.unregisterViewport);
201
- const existingSubscriptions = __privateGet(this, _subscriptionMap).get(tableName);
202
- const subscription = {
203
- viewportId: dataSource.viewport,
204
- dataSource,
205
- sessionTableName: sessionTable ? tableName : void 0,
206
- sourceTableName: __privateGet(this, _sessionSourceTableMap)[tableName]
207
- };
208
- if (existingSubscriptions) {
209
- existingSubscriptions.push(subscription);
210
- } else {
211
- __privateGet(this, _subscriptionMap).set(tableName, [subscription]);
212
- }
213
- return dataSource;
214
- });
215
- __publicField(this, "deleteRow", async (rpcRequest) => {
216
- if (rpcRequest.context.type === "VIEWPORT_CONTEXT") {
217
- const { viewPortId } = rpcRequest.context;
218
- const { key, mode = "hard" } = rpcRequest.params;
219
- const sessionTable = this.getSessionTable(viewPortId, false);
220
- if (sessionTable) {
221
- if (mode === "soft") {
222
- sessionTable.update(key, "vuu_action", "deleteRow");
223
- } else {
224
- sessionTable.delete(key);
225
- }
226
- return { type: "SUCCESS_RESULT", data: void 0 };
227
- } else {
228
- const { dataSource } = this.getSubscriptionByViewport(viewPortId);
229
- if (dataSource.table) {
230
- const table = this.tables[dataSource.table.table];
231
- if (table) {
232
- if (mode === "soft") {
233
- table.update(
234
- key,
235
- __privateGet(this, _sessionTableMessageColumn),
236
- "SOFT_DELETED"
237
- );
238
- } else {
239
- table.delete(key);
240
- }
241
- return { type: "SUCCESS_RESULT", data: void 0 };
242
- }
243
- }
244
- }
245
- }
246
- return { type: "ERROR_RESULT", errorMessage: "something went wrong" };
247
- });
248
- __publicField(this, "deleteSelectedRows", async (rpcRequest) => {
249
- if (vuuUtils.isDeleteSelectedRowsRpcRequest(rpcRequest)) {
250
- const { viewPortId } = rpcRequest.context;
251
- const { mode = "soft" } = rpcRequest.params;
252
- const sessionTable = this.getSessionTable(viewPortId, false);
253
- if (sessionTable) {
254
- const { dataSource } = this.getSubscriptionByViewport(viewPortId);
255
- const selectedRowIds = dataSource.getSelectedRowIds();
256
- const deletedKeys = [];
257
- if (selectedRowIds.length > 0) {
258
- for (const key of selectedRowIds) {
259
- if (mode === "soft") {
260
- sessionTable.update(key, "vuu_action", "deleteRow");
261
- } else {
262
- sessionTable.delete(key);
263
- }
264
- deletedKeys.push(key);
265
- }
266
- dataSource.select?.({ type: "DESELECT_ALL" });
267
- }
268
- return { type: "SUCCESS_RESULT", data: { deletedKeys } };
269
- }
270
- return {
271
- type: "ERROR_RESULT",
272
- errorMessage: `deleteSelectedRows: no active session table for viewport ${viewPortId}`
273
- };
274
- }
275
- return {
276
- type: "ERROR_RESULT",
277
- errorMessage: "deleteSelectedRows: invalid rpc request"
278
- };
279
- });
280
- __publicField(this, "undoRowChange", async (rpcRequest) => {
281
- if (vuuUtils.isUndoRowChangeRpcRequest(rpcRequest)) {
282
- const { viewPortId } = rpcRequest.context;
283
- const { key } = rpcRequest.params;
284
- const sessionTable = this.getSessionTable(viewPortId, false);
285
- if (sessionTable) {
286
- const subscription = this.getSubscriptionByViewport(viewPortId);
287
- const { dataSource } = subscription;
288
- const sourceTableName = subscription.sourceTableName ?? dataSource.table?.table;
289
- const sourceTable = this.tables[sourceTableName];
290
- if (!sourceTable) {
291
- return {
292
- type: "ERROR_RESULT",
293
- errorMessage: `undoRowChange: source table not found for viewport ${viewPortId}`
294
- };
295
- }
296
- const sessionRow = sessionTable.findByKey(key);
297
- if (!sessionRow) {
298
- return {
299
- type: "ERROR_RESULT",
300
- errorMessage: `undoRowChange: session row not found for key ${key}`
301
- };
302
- }
303
- const action = sessionRow[sessionTable.map.vuu_action];
304
- if (action === "addRow") {
305
- sessionTable.delete(key);
306
- return { type: "SUCCESS_RESULT", data: { wasInsertedRow: true } };
307
- }
308
- if (action === "deleteRow" || action === "editCell") {
309
- const sourceRow = sourceTable.findByKey(key);
310
- if (!sourceRow) {
311
- return {
312
- type: "ERROR_RESULT",
313
- errorMessage: `undoRowChange: source row not found for key ${key}`
314
- };
315
- }
316
- const restoredRow = sessionRow.slice();
317
- for (const column of sourceTable.schema.columns) {
318
- restoredRow[sessionTable.map[column.name]] = sourceRow[sourceTable.map[column.name]];
319
- }
320
- sessionTable.updateRow(restoredRow);
321
- sessionTable.update(key, "vuu_action", "");
322
- }
323
- return { type: "SUCCESS_RESULT", data: void 0 };
324
- }
325
- return {
326
- type: "ERROR_RESULT",
327
- errorMessage: `undoRowChange: no active session table for viewport ${viewPortId}`
328
- };
329
- }
330
- return {
331
- type: "ERROR_RESULT",
332
- errorMessage: "undoRowChange: invalid rpc request"
333
- };
334
- });
335
- __publicField(this, "editCell", async (rpcRequest) => {
336
- if (vuuUtils.isEditCellRpcRequest(rpcRequest)) {
337
- const { viewPortId } = rpcRequest.context;
338
- const { column, data, key } = rpcRequest.params;
339
- const sessionTable = __privateGet(this, _sessionTableMap)[viewPortId];
340
- let targetTable = sessionTable;
341
- if (!targetTable) {
342
- const { dataSource } = this.getSubscriptionByViewport(viewPortId);
343
- if (dataSource.table) {
344
- targetTable = this.tables[dataSource.table.table];
345
- }
346
- }
347
- if (targetTable) {
348
- try {
349
- const sessionRow = sessionTable?.findByKey(key);
350
- if (sessionRow?.[sessionTable.map.vuu_action] === "deleteRow") {
351
- throw Error("editCell: cannot edit a deleted row");
352
- }
353
- assertUpdateIsValid(targetTable.schema, column, data);
354
- targetTable.update(key, column, data);
355
- if (sessionTable && sessionTable.findByKey(key)?.[sessionTable.map.vuu_action] !== "addRow") {
356
- sessionTable.update(key, "vuu_action", "editCell");
357
- }
358
- return {
359
- type: "SUCCESS_RESULT",
360
- data: void 0
361
- };
362
- } catch (e) {
363
- const { message } = e;
364
- return {
365
- type: "ERROR_RESULT",
366
- errorMessage: message
367
- };
368
- }
369
- } else {
370
- throw Error("[VuuModule] editCell unable to find table for dataSource");
371
- }
372
- } else {
373
- throw Error("[VuuModule] editCell invalid rpc type");
374
- }
375
- });
376
- __publicField(this, "beginEditSessionMenuHandler", async ({
377
- rpcName,
378
- type,
379
- vpId
380
- }) => {
381
- if (type === "VIEW_PORT_MENUS_SELECT_RPC") {
382
- console.log(`rpcName ${rpcName}`);
383
- const result = await this.beginEditSession({
384
- context: {
385
- type: "VIEWPORT_CONTEXT",
386
- viewPortId: vpId
387
- },
388
- params: {
389
- editSessionMode: "selected-rows"
390
- },
391
- rpcName,
392
- type: "RPC_REQUEST"
393
- });
394
- if (vuuUtils.isRpcSuccess(result)) {
395
- const { table } = result.data;
396
- return {
397
- type: "VIEW_PORT_MENU_RESP",
398
- rpcName,
399
- action: {
400
- renderComponent: "grid",
401
- type: "OPEN_DIALOG_ACTION",
402
- table
403
- },
404
- vpId
405
- };
406
- } else {
407
- return {
408
- error: result.errorMessage,
409
- rpcName,
410
- type: "VIEW_PORT_MENU_REJ",
411
- vpId
412
- };
413
- }
414
- } else {
415
- return {
416
- error: "no can do",
417
- rpcName,
418
- type: "VIEW_PORT_MENU_REJ",
419
- vpId
420
- };
421
- }
422
- });
423
- /**
424
- * Creates a standalone session table.
425
- * The `copyOption` determines which rows are copied into the session table.
426
- * Returns the session table reference so the caller can subscribe to it.
427
- */
428
- __publicField(this, "createSessionTableService", async (rpcRequest) => {
429
- if (vuuUtils.isCreateSessionTableRpcRequest(rpcRequest)) {
430
- const { viewPortId } = rpcRequest.context;
431
- const { copyOption } = rpcRequest.params;
432
- const subscription = this.getSubscriptionByViewport(viewPortId);
433
- const { dataSource } = subscription;
434
- const { table: vuuTable } = dataSource;
435
- if (vuuTable) {
436
- const sourceTable = this.tables[vuuTable.table];
437
- if (sourceTable) {
438
- const sessionTableName = `session-${vuuUtils.uuid()}`;
439
- try {
440
- const sessionTable = this.createSessionTable(
441
- sourceTable,
442
- sessionTableName,
443
- copyOption,
444
- dataSource
445
- );
446
- __privateGet(this, _sessionTableMap)[sessionTableName] = sessionTable;
447
- __privateGet(this, _sessionSourceTableMap)[sessionTableName] = vuuTable.table;
448
- subscription.sessionTableName = sessionTableName;
449
- return {
450
- data: {
451
- table: { module: vuuTable.module, table: sessionTableName }
452
- },
453
- type: "SUCCESS_RESULT"
454
- };
455
- } catch (e) {
456
- return {
457
- type: "ERROR_RESULT",
458
- errorMessage: e.message
459
- };
460
- }
461
- }
462
- }
463
- }
464
- return {
465
- type: "ERROR_RESULT",
466
- errorMessage: "createSessionTable: invalid rpc request"
467
- };
468
- });
469
- __publicField(this, "beginEditSession", async (rpcRequest) => {
470
- if (vuuUtils.isBeginEditSessionRpcRequest(rpcRequest)) {
471
- const { viewPortId } = rpcRequest.context;
472
- const { editSessionMode = "inline-all-rows" } = rpcRequest.params;
473
- const subscription = this.getSubscriptionByViewport(viewPortId);
474
- const { dataSource } = subscription;
475
- const { table: vuuTable } = dataSource;
476
- if (vuuTable) {
477
- const sourceTable = this.tables[vuuTable.table];
478
- if (sourceTable) {
479
- const sessionTableName = `session-${vuuUtils.uuid()}`;
480
- try {
481
- const sessionTable = this.createSessionTable(
482
- sourceTable,
483
- sessionTableName,
484
- editSessionMode,
485
- dataSource
486
- );
487
- __privateGet(this, _sessionTableMap)[sessionTableName] = sessionTable;
488
- __privateGet(this, _sessionSourceTableMap)[sessionTableName] = vuuTable.table;
489
- subscription.sessionTableName = sessionTableName;
490
- return {
491
- data: {
492
- renderComponent: "inline-form",
493
- table: {
494
- module: vuuTable.module,
495
- table: sessionTableName
496
- }
497
- },
498
- type: "SUCCESS_RESULT"
499
- };
500
- } catch (e) {
501
- return {
502
- type: "ERROR_RESULT",
503
- errorMessage: e.message
504
- };
505
- }
506
- }
507
- }
508
- } else {
509
- throw Error("[VuuModule] endEditSession invalid rpc type");
510
- }
511
- return {
512
- type: "ERROR_RESULT",
513
- errorMessage: "not implemented yet"
514
- };
515
- });
516
- __publicField(this, "addRow", async (rpcRequest) => {
517
- if (vuuUtils.isAddRowRpcRequest(rpcRequest)) {
518
- const { viewPortId } = rpcRequest.context;
519
- const subscription = this.getSubscriptionByViewport(viewPortId);
520
- const sessionTableName = subscription.sessionTableName ?? viewPortId;
521
- const sessionTable = __privateGet(this, _sessionTableMap)[sessionTableName];
522
- if (!sessionTable) {
523
- return {
524
- type: "ERROR_RESULT",
525
- errorMessage: `addRow: no active session table for viewport ${viewPortId}`
526
- };
527
- }
528
- const { data } = rpcRequest.params;
529
- const keyColumn = sessionTable.schema.key;
530
- const rowKey = data[keyColumn] ?? vuuUtils.uuid();
531
- const rowData = { ...data, [keyColumn]: rowKey };
532
- const columnMap = sessionTable.map;
533
- const columnCount = Object.keys(columnMap).length;
534
- const row = new Array(columnCount).fill("");
535
- row[columnMap.vuu_action] = "addRow";
536
- for (const [col, idx] of Object.entries(columnMap)) {
537
- if (rowData[col] !== void 0) {
538
- row[idx] = rowData[col];
539
- }
540
- }
541
- sessionTable.insert(row);
542
- return { type: "SUCCESS_RESULT", data: void 0 };
543
- }
544
- return {
545
- type: "ERROR_RESULT",
546
- errorMessage: "addRow: invalid rpc context"
547
- };
548
- });
549
- __publicField(this, "endEditSession", async (rpcRequest) => {
550
- if (vuuUtils.isEndEditSessionRpcRequest(rpcRequest)) {
551
- const { viewPortId } = rpcRequest.context;
552
- const subscription = this.getSubscriptionByViewport(viewPortId);
553
- const sessionTableName = subscription.sessionTableName ?? viewPortId;
554
- const sessionTable = __privateGet(this, _sessionTableMap)[sessionTableName];
555
- const { dataSource } = subscription;
556
- if (dataSource.table) {
557
- const sourceTableName = subscription.sourceTableName ?? dataSource.table.table;
558
- const sourceTable = this.tables[sourceTableName];
559
- if (rpcRequest.params.save === true) {
560
- let rejectedCount = 0;
561
- const vuuMsgIdx = sessionTable.map[__privateGet(this, _sessionTableMessageColumn)];
562
- const actionIdx = sessionTable.map.vuu_action;
563
- const sessionTimestampIdx = sessionTable.map.vuuUpdatedTimestamp;
564
- const sourceTimestampIdx = sourceTable.map.vuuUpdatedTimestamp;
565
- const sourceColumns = sourceTable.schema.columns;
566
- for (let i = 0; i < sessionTable.data.length; i++) {
567
- const sessionRow = sessionTable.data[i];
568
- const key = String(
569
- sessionRow[sessionTable.map[sourceTable.schema.key]]
570
- );
571
- const currentRow = sourceTable.findByKey(key);
572
- const action = sessionRow[actionIdx];
573
- if (action === "deleteRow") {
574
- if (currentRow) {
575
- const sessionTimestamp = sessionRow[sessionTimestampIdx];
576
- const sourceTimestamp = currentRow[sourceTimestampIdx];
577
- if (typeof sessionTimestamp === "number" && typeof sourceTimestamp === "number" && sourceTimestamp > sessionTimestamp) {
578
- rejectedCount += 1;
579
- sessionTable.update(
580
- key,
581
- __privateGet(this, _sessionTableMessageColumn),
582
- "stale delete"
583
- );
584
- } else {
585
- sourceTable.delete(key);
586
- }
587
- }
588
- continue;
589
- }
590
- if (sessionRow[vuuMsgIdx]) continue;
591
- if (action === "editCell" && currentRow) {
592
- for (const column of sourceColumns) {
593
- const value = sessionRow[sessionTable.map[column.name]];
594
- if (currentRow[sourceTable.map[column.name]] !== value) {
595
- sourceTable.update(key, column.name, value);
596
- }
597
- }
598
- } else if (action === "addRow" && !currentRow) {
599
- sourceTable.insert(
600
- sourceColumns.map(
601
- (column) => sessionRow[sessionTable.map[column.name]]
602
- )
603
- );
604
- }
605
- }
606
- if (rejectedCount > 0) {
607
- return {
608
- errorMessage: "stale update",
609
- type: "ERROR_RESULT"
610
- };
611
- }
612
- return {
613
- type: "SUCCESS_RESULT",
614
- data: void 0
615
- };
616
- } else {
617
- return {
618
- type: "SUCCESS_RESULT",
619
- data: void 0
620
- };
621
- }
622
- } else {
623
- throw Error("[VuuModule], exitEditMode");
624
- }
625
- } else {
626
- throw Error("[VuuModule] endEditSession invalid rpc type");
627
- }
628
- });
629
- // Bulk-edit with input in session table
630
- __publicField(this, "applyBulkEdits", async (rpcRequest) => {
631
- if (rpcRequest.context.type === "VIEWPORT_CONTEXT") {
632
- const { viewPortId } = rpcRequest.context;
633
- const sessionTable = this.getSessionTable(viewPortId);
634
- for (let i = 0; i < sessionTable.data.length; i++) {
635
- const newRow = sessionTable.data[i];
636
- const { column, value } = rpcRequest.params;
637
- const keyIndex = sessionTable.map[sessionTable.schema.key];
638
- sessionTable.update(
639
- String(newRow[keyIndex]),
640
- column,
641
- value
642
- );
643
- }
644
- return {
645
- type: "SUCCESS_RESULT",
646
- data: void 0
647
- };
648
- } else {
649
- throw Error("[VuuModule] applyBulkEdits invalid rpc type");
650
- }
651
- });
652
- /**
653
- * These services are available on any table. The client must configure the appropriate
654
- * menu item(s) on Table(s). The services to implement these RPC calls are built-in to
655
- * VuuModule
656
- */
657
- __privateAdd(this, _moduleServices, [
658
- {
659
- rpcName: "addRow",
660
- service: this.addRow
661
- },
662
- {
663
- rpcName: "VP_BULK_EDIT_COLUMN_CELLS_RPC",
664
- service: this.applyBulkEdits
665
- },
666
- {
667
- rpcName: "createSessionTable",
668
- service: this.createSessionTableService
669
- },
670
- {
671
- rpcName: "beginEditSession",
672
- service: this.beginEditSession
673
- },
674
- {
675
- rpcName: "deleteRow",
676
- service: this.deleteRow
677
- },
678
- {
679
- rpcName: "deleteSelectedRows",
680
- service: this.deleteSelectedRows
681
- },
682
- {
683
- rpcName: "endEditSession",
684
- service: this.endEditSession
685
- },
686
- {
687
- rpcName: "editCell",
688
- service: this.editCell
689
- },
690
- {
691
- rpcName: "undoRowChange",
692
- service: this.undoRowChange
693
- }
694
- ]);
695
- /**
696
- * These services are available on any table. The client must configure the appropriate
697
- * menu item(s) on Table(s). The services to implement these RPC calls are built-in to
698
- * VuuModule
699
- */
700
- __privateAdd(this, _moduleMenuServices, [
701
- {
702
- rpcName: "beginEditSession",
703
- service: this.beginEditSessionMenuHandler
704
- }
705
- ]);
706
- __privateSet(this, _name, name);
707
- __privateSet(this, _sessionTableMessageColumn, sessionTableMessageColumn);
708
- ModuleContainer.register(this);
709
- }
710
- getTableSchema(tableName) {
711
- return this.schemas[tableName] ?? __privateGet(this, _sessionTableMap)[tableName]?.schema;
712
- }
713
- getTableList() {
714
- return Object.keys(this.tables);
715
- }
716
- get name() {
717
- return __privateGet(this, _name);
718
- }
719
- getSubscriptionByViewport(viewportId) {
720
- for (const subscriptions of __privateGet(this, _subscriptionMap).values()) {
721
- for (const subscription of subscriptions) {
722
- if (subscription.viewportId === viewportId) {
723
- return subscription;
724
- }
725
- }
726
- }
727
- throw Error(
728
- `[VuuModule] getSubscriptionByViewport, no subscription found for ${viewportId}`
729
- );
730
- }
731
- getSubscribedDataSource(vpId) {
732
- for (const subscriptions of __privateGet(this, _subscriptionMap).values()) {
733
- for (const { viewportId, dataSource } of subscriptions) {
734
- if (viewportId === vpId) {
735
- return dataSource;
736
- }
737
- }
738
- }
739
- throw Error(`getSubscribedDataSource #${vpId} not in subscriptionMap`);
740
- }
741
- getServices(tableName) {
742
- const tableServices = this.services?.[tableName];
743
- if (Array.isArray(tableServices)) {
744
- return __privateGet(this, _moduleServices).concat(tableServices);
745
- } else {
746
- return __privateGet(this, _moduleServices);
747
- }
748
- }
749
- getMenuServices(tableName) {
750
- const tableServices = this.menuServices?.[tableName];
751
- if (Array.isArray(tableServices)) {
752
- return __privateGet(this, _moduleMenuServices).concat(tableServices);
753
- } else {
754
- return __privateGet(this, _moduleMenuServices);
755
- }
756
- }
757
- get sessionTableMap() {
758
- return __privateGet(this, _sessionTableMap);
759
- }
760
- getSessionTable(sessionTableName, throwIfNotFound = true) {
761
- const sessionTable = __privateGet(this, _sessionTableMap)[sessionTableName];
762
- if (sessionTable) {
763
- return sessionTable;
764
- } else if (throwIfNotFound) {
765
- throw Error(
766
- `getSessionTable: no session table with name ${sessionTableName}`
767
- );
768
- }
769
- }
770
- getColumnDescriptors(tableName) {
771
- const schema = this.schemas[tableName] || this.getSessionTable(tableName)?.schema;
772
- if (schema) {
773
- return schema.columns;
774
- } else {
775
- throw Error(
776
- ` no schema found for module ${__privateGet(this, _name)} table ${tableName}`
777
- );
778
- }
779
- }
780
- createSessionTable(sourceTable, sessionTableName, editSessionMode, dataSource) {
781
- if (editSessionMode === "All" || editSessionMode.endsWith("all-rows")) {
782
- return this.createSessionTableWithAllRows(sourceTable, sessionTableName);
783
- } else if (editSessionMode === "Selected" || editSessionMode === "selected-rows") {
784
- return this.createSessionTableFromSelectedRows(
785
- sourceTable,
786
- sessionTableName,
787
- dataSource
788
- );
789
- } else if (editSessionMode === "Empty" || editSessionMode === "empty-session-table") {
790
- return this.createEmptySessionTable(sourceTable, sessionTableName);
791
- } else {
792
- throw Error(
793
- `[VuuModule] createSessionTable, invalid editSessionMode ${editSessionMode}`
794
- );
795
- }
796
- }
797
- createSessionTableWithAllRows({ data, schema }, _sessionTableName) {
798
- const sessionSchema = sessionTableUtils.sessionTableSchema(schema);
799
- return new Table.Table(
800
- sessionSchema,
801
- data.map((row) => sessionTableUtils.sessionTableRow(row, schema)),
802
- Table.buildDataColumnMapFromSchema(sessionSchema)
803
- );
804
- }
805
- createEmptySessionTable({ schema }, sessionTableName) {
806
- const sessionSchema = sessionTableUtils.sessionTableSchema({
807
- ...schema,
808
- table: { ...schema.table, table: sessionTableName }
809
- });
810
- return new Table.Table(
811
- sessionSchema,
812
- [],
813
- Table.buildDataColumnMapFromSchema(sessionSchema)
814
- );
815
- }
816
- createSessionTableFromSelectedRows({ data, map, schema }, sessionTableName, dataSource) {
817
- const selectedRowIds = dataSource.getSelectedRowIds();
818
- const keyIndex = map[schema.key];
819
- const sessionData = [];
820
- for (let i = 0; i < selectedRowIds.length; i++) {
821
- for (let j = 0; j < data.length; j++) {
822
- if (data[j][keyIndex] === selectedRowIds[i]) {
823
- sessionData.push(sessionTableUtils.sessionTableRow(data[j], schema));
824
- }
825
- }
826
- }
827
- const sessionSchema = sessionTableUtils.sessionTableSchema(schema);
828
- return new Table.Table(
829
- sessionSchema,
830
- sessionData,
831
- Table.buildDataColumnMapFromSchema(sessionSchema)
832
- );
833
- }
834
- }
835
- _name = new WeakMap();
836
- _sessionTableMessageColumn = new WeakMap();
837
- _runtimeVisualLinks = new WeakMap();
838
- _sessionSourceTableMap = new WeakMap();
839
- _sessionTableMap = new WeakMap();
840
- _tableServices = new WeakMap();
841
- _subscriptionMap = new WeakMap();
842
- _moduleServices = new WeakMap();
843
- _moduleMenuServices = new WeakMap();
844
-
845
- exports.VuuModule = VuuModule;
846
- //# sourceMappingURL=VuuModule.js.map