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

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