@vuu-ui/vuu-data-test 0.8.33 → 0.8.34

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 (233) hide show
  1. package/cjs/_virtual/_commonjsHelpers.js +6 -0
  2. package/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/cjs/_virtual/alphabet.js +6 -0
  4. package/cjs/_virtual/alphabet.js.map +1 -0
  5. package/cjs/_virtual/alphanumeric-values.js +6 -0
  6. package/cjs/_virtual/alphanumeric-values.js.map +1 -0
  7. package/cjs/_virtual/base-ten-numbers.js +6 -0
  8. package/cjs/_virtual/base-ten-numbers.js.map +1 -0
  9. package/cjs/_virtual/convert-string-to-base-ten-number.js +6 -0
  10. package/cjs/_virtual/convert-string-to-base-ten-number.js.map +1 -0
  11. package/cjs/_virtual/generate-cusip-check-code.js +6 -0
  12. package/cjs/_virtual/generate-cusip-check-code.js.map +1 -0
  13. package/cjs/_virtual/generate-cusip-without-check-code.js +6 -0
  14. package/cjs/_virtual/generate-cusip-without-check-code.js.map +1 -0
  15. package/cjs/_virtual/generate-cusip.js +6 -0
  16. package/cjs/_virtual/generate-cusip.js.map +1 -0
  17. package/cjs/_virtual/generate-random-alphanumeric.js +6 -0
  18. package/cjs/_virtual/generate-random-alphanumeric.js.map +1 -0
  19. package/cjs/_virtual/generate-random-base-ten-number.js +6 -0
  20. package/cjs/_virtual/generate-random-base-ten-number.js.map +1 -0
  21. package/cjs/_virtual/generate-random-string-of-alphanumeric-chars.js +6 -0
  22. package/cjs/_virtual/generate-random-string-of-alphanumeric-chars.js.map +1 -0
  23. package/cjs/_virtual/generate-random-string-of-base-ten-chars.js +6 -0
  24. package/cjs/_virtual/generate-random-string-of-base-ten-chars.js.map +1 -0
  25. package/cjs/_virtual/index.js +6 -0
  26. package/cjs/_virtual/index.js.map +1 -0
  27. package/cjs/_virtual/is-odd.js +6 -0
  28. package/cjs/_virtual/is-odd.js.map +1 -0
  29. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/convert-string-to-base-ten-number.js +13 -0
  30. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/convert-string-to-base-ten-number.js.map +1 -0
  31. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphabet.js +35 -0
  32. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphabet.js.map +1 -0
  33. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphanumeric-values.js +42 -0
  34. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphanumeric-values.js.map +1 -0
  35. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/fixtures/base-ten-numbers.js +21 -0
  36. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/fixtures/base-ten-numbers.js.map +1 -0
  37. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-check-code.js +36 -0
  38. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-check-code.js.map +1 -0
  39. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-without-check-code.js +21 -0
  40. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-without-check-code.js.map +1 -0
  41. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip.js +21 -0
  42. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip.js.map +1 -0
  43. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-alphanumeric.js +16 -0
  44. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-alphanumeric.js.map +1 -0
  45. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-base-ten-number.js +13 -0
  46. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-base-ten-number.js.map +1 -0
  47. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-alphanumeric-chars.js +20 -0
  48. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-alphanumeric-chars.js.map +1 -0
  49. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-base-ten-chars.js +20 -0
  50. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-base-ten-chars.js.map +1 -0
  51. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/index.js +14 -0
  52. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/index.js.map +1 -0
  53. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/is-odd.js +11 -0
  54. package/cjs/node_modules/@thomaschaplin/cusip-generator/build/is-odd.js.map +1 -0
  55. package/cjs/node_modules/@thomaschaplin/isin-generator/country-codes.json.js +256 -0
  56. package/cjs/node_modules/@thomaschaplin/isin-generator/country-codes.json.js.map +1 -0
  57. package/cjs/node_modules/@thomaschaplin/isin-generator/index.js +52 -0
  58. package/cjs/node_modules/@thomaschaplin/isin-generator/index.js.map +1 -0
  59. package/cjs/packages/vuu-data-test/src/ArrayProxy.js +80 -0
  60. package/cjs/packages/vuu-data-test/src/ArrayProxy.js.map +1 -0
  61. package/cjs/packages/vuu-data-test/src/Table.js +186 -0
  62. package/cjs/packages/vuu-data-test/src/Table.js.map +1 -0
  63. package/cjs/packages/vuu-data-test/src/TickingArrayDataSource.js +134 -0
  64. package/cjs/packages/vuu-data-test/src/TickingArrayDataSource.js.map +1 -0
  65. package/cjs/packages/vuu-data-test/src/UpdateGenerator.js +87 -0
  66. package/cjs/packages/vuu-data-test/src/UpdateGenerator.js.map +1 -0
  67. package/cjs/packages/vuu-data-test/src/basket/basket-module.js +236 -0
  68. package/cjs/packages/vuu-data-test/src/basket/basket-module.js.map +1 -0
  69. package/cjs/packages/vuu-data-test/src/basket/basket-schemas.js +121 -0
  70. package/cjs/packages/vuu-data-test/src/basket/basket-schemas.js.map +1 -0
  71. package/cjs/packages/vuu-data-test/src/basket/reference-data/constituents.js +40 -0
  72. package/cjs/packages/vuu-data-test/src/basket/reference-data/constituents.js.map +1 -0
  73. package/cjs/packages/vuu-data-test/src/basket/reference-data/ftse100.js +105 -0
  74. package/cjs/packages/vuu-data-test/src/basket/reference-data/ftse100.js.map +1 -0
  75. package/cjs/packages/vuu-data-test/src/basket/reference-data/hsi.js +87 -0
  76. package/cjs/packages/vuu-data-test/src/basket/reference-data/hsi.js.map +1 -0
  77. package/cjs/packages/vuu-data-test/src/basket/reference-data/nasdaq100.js +108 -0
  78. package/cjs/packages/vuu-data-test/src/basket/reference-data/nasdaq100.js.map +1 -0
  79. package/cjs/packages/vuu-data-test/src/basket/reference-data/prices.js +51 -0
  80. package/cjs/packages/vuu-data-test/src/basket/reference-data/prices.js.map +1 -0
  81. package/cjs/packages/vuu-data-test/src/basket/reference-data/sp500.js +46 -0
  82. package/cjs/packages/vuu-data-test/src/basket/reference-data/sp500.js.map +1 -0
  83. package/cjs/packages/vuu-data-test/src/data-utils.js +58 -0
  84. package/cjs/packages/vuu-data-test/src/data-utils.js.map +1 -0
  85. package/cjs/packages/vuu-data-test/src/index.js +36 -0
  86. package/cjs/packages/vuu-data-test/src/index.js.map +1 -0
  87. package/cjs/packages/vuu-data-test/src/makeSuggestions.js +37 -0
  88. package/cjs/packages/vuu-data-test/src/makeSuggestions.js.map +1 -0
  89. package/cjs/packages/vuu-data-test/src/schemas.js +28 -0
  90. package/cjs/packages/vuu-data-test/src/schemas.js.map +1 -0
  91. package/cjs/packages/vuu-data-test/src/simul/reference-data/currencies.js +6 -0
  92. package/cjs/packages/vuu-data-test/src/simul/reference-data/currencies.js.map +1 -0
  93. package/cjs/packages/vuu-data-test/src/simul/reference-data/instruments-extended.js +18 -0
  94. package/cjs/packages/vuu-data-test/src/simul/reference-data/instruments-extended.js.map +1 -0
  95. package/cjs/packages/vuu-data-test/src/simul/reference-data/instruments.js +74 -0
  96. package/cjs/packages/vuu-data-test/src/simul/reference-data/instruments.js.map +1 -0
  97. package/cjs/packages/vuu-data-test/src/simul/reference-data/locations.js +17 -0
  98. package/cjs/packages/vuu-data-test/src/simul/reference-data/locations.js.map +1 -0
  99. package/cjs/packages/vuu-data-test/src/simul/reference-data/lotsizes.js +28 -0
  100. package/cjs/packages/vuu-data-test/src/simul/reference-data/lotsizes.js.map +1 -0
  101. package/cjs/packages/vuu-data-test/src/simul/reference-data/orders.js +43 -0
  102. package/cjs/packages/vuu-data-test/src/simul/reference-data/orders.js.map +1 -0
  103. package/cjs/packages/vuu-data-test/src/simul/reference-data/prices.js +71 -0
  104. package/cjs/packages/vuu-data-test/src/simul/reference-data/prices.js.map +1 -0
  105. package/cjs/packages/vuu-data-test/src/simul/simul-module.js +72 -0
  106. package/cjs/packages/vuu-data-test/src/simul/simul-module.js.map +1 -0
  107. package/cjs/packages/vuu-data-test/src/simul/simul-schemas.js +137 -0
  108. package/cjs/packages/vuu-data-test/src/simul/simul-schemas.js.map +1 -0
  109. package/cjs/packages/vuu-data-test/src/test/test-module.js +58 -0
  110. package/cjs/packages/vuu-data-test/src/test/test-module.js.map +1 -0
  111. package/cjs/packages/vuu-data-test/src/test/test-schemas.js +17 -0
  112. package/cjs/packages/vuu-data-test/src/test/test-schemas.js.map +1 -0
  113. package/cjs/packages/vuu-data-test/src/vuu-modules.js +15 -0
  114. package/cjs/packages/vuu-data-test/src/vuu-modules.js.map +1 -0
  115. package/cjs/packages/vuu-data-test/src/vuu-row-generator.js +74 -0
  116. package/cjs/packages/vuu-data-test/src/vuu-row-generator.js.map +1 -0
  117. package/esm/_virtual/_commonjsHelpers.js +4 -0
  118. package/esm/_virtual/_commonjsHelpers.js.map +1 -0
  119. package/esm/_virtual/alphabet.js +4 -0
  120. package/esm/_virtual/alphabet.js.map +1 -0
  121. package/esm/_virtual/alphanumeric-values.js +4 -0
  122. package/esm/_virtual/alphanumeric-values.js.map +1 -0
  123. package/esm/_virtual/base-ten-numbers.js +4 -0
  124. package/esm/_virtual/base-ten-numbers.js.map +1 -0
  125. package/esm/_virtual/convert-string-to-base-ten-number.js +4 -0
  126. package/esm/_virtual/convert-string-to-base-ten-number.js.map +1 -0
  127. package/esm/_virtual/generate-cusip-check-code.js +4 -0
  128. package/esm/_virtual/generate-cusip-check-code.js.map +1 -0
  129. package/esm/_virtual/generate-cusip-without-check-code.js +4 -0
  130. package/esm/_virtual/generate-cusip-without-check-code.js.map +1 -0
  131. package/esm/_virtual/generate-cusip.js +4 -0
  132. package/esm/_virtual/generate-cusip.js.map +1 -0
  133. package/esm/_virtual/generate-random-alphanumeric.js +4 -0
  134. package/esm/_virtual/generate-random-alphanumeric.js.map +1 -0
  135. package/esm/_virtual/generate-random-base-ten-number.js +4 -0
  136. package/esm/_virtual/generate-random-base-ten-number.js.map +1 -0
  137. package/esm/_virtual/generate-random-string-of-alphanumeric-chars.js +4 -0
  138. package/esm/_virtual/generate-random-string-of-alphanumeric-chars.js.map +1 -0
  139. package/esm/_virtual/generate-random-string-of-base-ten-chars.js +4 -0
  140. package/esm/_virtual/generate-random-string-of-base-ten-chars.js.map +1 -0
  141. package/esm/_virtual/index.js +4 -0
  142. package/esm/_virtual/index.js.map +1 -0
  143. package/esm/_virtual/is-odd.js +4 -0
  144. package/esm/_virtual/is-odd.js.map +1 -0
  145. package/esm/node_modules/@thomaschaplin/cusip-generator/build/convert-string-to-base-ten-number.js +11 -0
  146. package/esm/node_modules/@thomaschaplin/cusip-generator/build/convert-string-to-base-ten-number.js.map +1 -0
  147. package/esm/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphabet.js +33 -0
  148. package/esm/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphabet.js.map +1 -0
  149. package/esm/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphanumeric-values.js +40 -0
  150. package/esm/node_modules/@thomaschaplin/cusip-generator/build/fixtures/alphanumeric-values.js.map +1 -0
  151. package/esm/node_modules/@thomaschaplin/cusip-generator/build/fixtures/base-ten-numbers.js +19 -0
  152. package/esm/node_modules/@thomaschaplin/cusip-generator/build/fixtures/base-ten-numbers.js.map +1 -0
  153. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-check-code.js +34 -0
  154. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-check-code.js.map +1 -0
  155. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-without-check-code.js +19 -0
  156. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip-without-check-code.js.map +1 -0
  157. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip.js +19 -0
  158. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-cusip.js.map +1 -0
  159. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-alphanumeric.js +14 -0
  160. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-alphanumeric.js.map +1 -0
  161. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-base-ten-number.js +11 -0
  162. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-base-ten-number.js.map +1 -0
  163. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-alphanumeric-chars.js +18 -0
  164. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-alphanumeric-chars.js.map +1 -0
  165. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-base-ten-chars.js +18 -0
  166. package/esm/node_modules/@thomaschaplin/cusip-generator/build/generate-random-string-of-base-ten-chars.js.map +1 -0
  167. package/esm/node_modules/@thomaschaplin/cusip-generator/build/index.js +12 -0
  168. package/esm/node_modules/@thomaschaplin/cusip-generator/build/index.js.map +1 -0
  169. package/esm/node_modules/@thomaschaplin/cusip-generator/build/is-odd.js +9 -0
  170. package/esm/node_modules/@thomaschaplin/cusip-generator/build/is-odd.js.map +1 -0
  171. package/esm/node_modules/@thomaschaplin/isin-generator/country-codes.json.js +254 -0
  172. package/esm/node_modules/@thomaschaplin/isin-generator/country-codes.json.js.map +1 -0
  173. package/esm/node_modules/@thomaschaplin/isin-generator/index.js +50 -0
  174. package/esm/node_modules/@thomaschaplin/isin-generator/index.js.map +1 -0
  175. package/esm/packages/vuu-data-test/src/ArrayProxy.js +78 -0
  176. package/esm/packages/vuu-data-test/src/ArrayProxy.js.map +1 -0
  177. package/esm/packages/vuu-data-test/src/Table.js +182 -0
  178. package/esm/packages/vuu-data-test/src/Table.js.map +1 -0
  179. package/esm/packages/vuu-data-test/src/TickingArrayDataSource.js +132 -0
  180. package/esm/packages/vuu-data-test/src/TickingArrayDataSource.js.map +1 -0
  181. package/esm/packages/vuu-data-test/src/UpdateGenerator.js +85 -0
  182. package/esm/packages/vuu-data-test/src/UpdateGenerator.js.map +1 -0
  183. package/esm/packages/vuu-data-test/src/basket/basket-module.js +232 -0
  184. package/esm/packages/vuu-data-test/src/basket/basket-module.js.map +1 -0
  185. package/esm/packages/vuu-data-test/src/basket/basket-schemas.js +119 -0
  186. package/esm/packages/vuu-data-test/src/basket/basket-schemas.js.map +1 -0
  187. package/esm/packages/vuu-data-test/src/basket/reference-data/constituents.js +38 -0
  188. package/esm/packages/vuu-data-test/src/basket/reference-data/constituents.js.map +1 -0
  189. package/esm/packages/vuu-data-test/src/basket/reference-data/ftse100.js +103 -0
  190. package/esm/packages/vuu-data-test/src/basket/reference-data/ftse100.js.map +1 -0
  191. package/esm/packages/vuu-data-test/src/basket/reference-data/hsi.js +85 -0
  192. package/esm/packages/vuu-data-test/src/basket/reference-data/hsi.js.map +1 -0
  193. package/esm/packages/vuu-data-test/src/basket/reference-data/nasdaq100.js +106 -0
  194. package/esm/packages/vuu-data-test/src/basket/reference-data/nasdaq100.js.map +1 -0
  195. package/esm/packages/vuu-data-test/src/basket/reference-data/prices.js +49 -0
  196. package/esm/packages/vuu-data-test/src/basket/reference-data/prices.js.map +1 -0
  197. package/esm/packages/vuu-data-test/src/basket/reference-data/sp500.js +44 -0
  198. package/esm/packages/vuu-data-test/src/basket/reference-data/sp500.js.map +1 -0
  199. package/esm/packages/vuu-data-test/src/data-utils.js +53 -0
  200. package/esm/packages/vuu-data-test/src/data-utils.js.map +1 -0
  201. package/esm/packages/vuu-data-test/src/index.js +11 -0
  202. package/esm/packages/vuu-data-test/src/index.js.map +1 -0
  203. package/esm/packages/vuu-data-test/src/makeSuggestions.js +35 -0
  204. package/esm/packages/vuu-data-test/src/makeSuggestions.js.map +1 -0
  205. package/esm/packages/vuu-data-test/src/schemas.js +24 -0
  206. package/esm/packages/vuu-data-test/src/schemas.js.map +1 -0
  207. package/esm/packages/vuu-data-test/src/simul/reference-data/currencies.js +4 -0
  208. package/esm/packages/vuu-data-test/src/simul/reference-data/currencies.js.map +1 -0
  209. package/esm/packages/vuu-data-test/src/simul/reference-data/instruments-extended.js +16 -0
  210. package/esm/packages/vuu-data-test/src/simul/reference-data/instruments-extended.js.map +1 -0
  211. package/esm/packages/vuu-data-test/src/simul/reference-data/instruments.js +69 -0
  212. package/esm/packages/vuu-data-test/src/simul/reference-data/instruments.js.map +1 -0
  213. package/esm/packages/vuu-data-test/src/simul/reference-data/locations.js +14 -0
  214. package/esm/packages/vuu-data-test/src/simul/reference-data/locations.js.map +1 -0
  215. package/esm/packages/vuu-data-test/src/simul/reference-data/lotsizes.js +26 -0
  216. package/esm/packages/vuu-data-test/src/simul/reference-data/lotsizes.js.map +1 -0
  217. package/esm/packages/vuu-data-test/src/simul/reference-data/orders.js +40 -0
  218. package/esm/packages/vuu-data-test/src/simul/reference-data/orders.js.map +1 -0
  219. package/esm/packages/vuu-data-test/src/simul/reference-data/prices.js +68 -0
  220. package/esm/packages/vuu-data-test/src/simul/reference-data/prices.js.map +1 -0
  221. package/esm/packages/vuu-data-test/src/simul/simul-module.js +70 -0
  222. package/esm/packages/vuu-data-test/src/simul/simul-module.js.map +1 -0
  223. package/esm/packages/vuu-data-test/src/simul/simul-schemas.js +135 -0
  224. package/esm/packages/vuu-data-test/src/simul/simul-schemas.js.map +1 -0
  225. package/esm/packages/vuu-data-test/src/test/test-module.js +56 -0
  226. package/esm/packages/vuu-data-test/src/test/test-module.js.map +1 -0
  227. package/esm/packages/vuu-data-test/src/test/test-schemas.js +15 -0
  228. package/esm/packages/vuu-data-test/src/test/test-schemas.js.map +1 -0
  229. package/esm/packages/vuu-data-test/src/vuu-modules.js +13 -0
  230. package/esm/packages/vuu-data-test/src/vuu-modules.js.map +1 -0
  231. package/esm/packages/vuu-data-test/src/vuu-row-generator.js +68 -0
  232. package/esm/packages/vuu-data-test/src/vuu-row-generator.js.map +1 -0
  233. package/package.json +8 -6
@@ -0,0 +1,256 @@
1
+ 'use strict';
2
+
3
+ var require$$0 = [
4
+ "AD",
5
+ "AE",
6
+ "AF",
7
+ "AG",
8
+ "AI",
9
+ "AL",
10
+ "AM",
11
+ "AO",
12
+ "AQ",
13
+ "AR",
14
+ "AS",
15
+ "AT",
16
+ "AU",
17
+ "AW",
18
+ "AX",
19
+ "AZ",
20
+ "BA",
21
+ "BB",
22
+ "BD",
23
+ "BE",
24
+ "BF",
25
+ "BG",
26
+ "BH",
27
+ "BI",
28
+ "BJ",
29
+ "BL",
30
+ "BM",
31
+ "BN",
32
+ "BO",
33
+ "BQ",
34
+ "BR",
35
+ "BS",
36
+ "BT",
37
+ "BV",
38
+ "BW",
39
+ "BY",
40
+ "BZ",
41
+ "CA",
42
+ "CC",
43
+ "CD",
44
+ "CF",
45
+ "CG",
46
+ "CH",
47
+ "CI",
48
+ "CK",
49
+ "CL",
50
+ "CM",
51
+ "CN",
52
+ "CO",
53
+ "CR",
54
+ "CU",
55
+ "CV",
56
+ "CW",
57
+ "CX",
58
+ "CY",
59
+ "CZ",
60
+ "DE",
61
+ "DJ",
62
+ "DK",
63
+ "DM",
64
+ "DO",
65
+ "DZ",
66
+ "EC",
67
+ "EE",
68
+ "EG",
69
+ "EH",
70
+ "ER",
71
+ "ES",
72
+ "ET",
73
+ "FI",
74
+ "FJ",
75
+ "FK",
76
+ "FM",
77
+ "FO",
78
+ "FR",
79
+ "GA",
80
+ "GB",
81
+ "GD",
82
+ "GE",
83
+ "GF",
84
+ "GG",
85
+ "GH",
86
+ "GI",
87
+ "GL",
88
+ "GM",
89
+ "GN",
90
+ "GP",
91
+ "GQ",
92
+ "GR",
93
+ "GS",
94
+ "GT",
95
+ "GU",
96
+ "GW",
97
+ "GY",
98
+ "HK",
99
+ "HM",
100
+ "HN",
101
+ "HR",
102
+ "HT",
103
+ "HU",
104
+ "ID",
105
+ "IE",
106
+ "IL",
107
+ "IM",
108
+ "IN",
109
+ "IO",
110
+ "IQ",
111
+ "IR",
112
+ "IS",
113
+ "IT",
114
+ "JE",
115
+ "JM",
116
+ "JO",
117
+ "JP",
118
+ "KE",
119
+ "KG",
120
+ "KH",
121
+ "KI",
122
+ "KM",
123
+ "KN",
124
+ "KP",
125
+ "KR",
126
+ "KW",
127
+ "KY",
128
+ "KZ",
129
+ "LA",
130
+ "LB",
131
+ "LC",
132
+ "LI",
133
+ "LK",
134
+ "LR",
135
+ "LS",
136
+ "LT",
137
+ "LU",
138
+ "LV",
139
+ "LY",
140
+ "MA",
141
+ "MC",
142
+ "MD",
143
+ "ME",
144
+ "MF",
145
+ "MG",
146
+ "MH",
147
+ "MK",
148
+ "ML",
149
+ "MM",
150
+ "MN",
151
+ "MO",
152
+ "MP",
153
+ "MQ",
154
+ "MR",
155
+ "MS",
156
+ "MT",
157
+ "MU",
158
+ "MV",
159
+ "MW",
160
+ "MX",
161
+ "MY",
162
+ "MZ",
163
+ "NA",
164
+ "NC",
165
+ "NE",
166
+ "NF",
167
+ "NG",
168
+ "NI",
169
+ "NL",
170
+ "NO",
171
+ "NP",
172
+ "NR",
173
+ "NU",
174
+ "NZ",
175
+ "OM",
176
+ "PA",
177
+ "PE",
178
+ "PF",
179
+ "PG",
180
+ "PH",
181
+ "PK",
182
+ "PL",
183
+ "PM",
184
+ "PN",
185
+ "PR",
186
+ "PS",
187
+ "PT",
188
+ "PW",
189
+ "PY",
190
+ "QA",
191
+ "RE",
192
+ "RO",
193
+ "RS",
194
+ "RU",
195
+ "RW",
196
+ "SA",
197
+ "SB",
198
+ "SC",
199
+ "SD",
200
+ "SE",
201
+ "SG",
202
+ "SH",
203
+ "SI",
204
+ "SJ",
205
+ "SK",
206
+ "SL",
207
+ "SM",
208
+ "SN",
209
+ "SO",
210
+ "SR",
211
+ "SS",
212
+ "ST",
213
+ "SV",
214
+ "SX",
215
+ "SY",
216
+ "SZ",
217
+ "TC",
218
+ "TD",
219
+ "TF",
220
+ "TG",
221
+ "TH",
222
+ "TJ",
223
+ "TK",
224
+ "TL",
225
+ "TM",
226
+ "TN",
227
+ "TO",
228
+ "TR",
229
+ "TT",
230
+ "TV",
231
+ "TW",
232
+ "TZ",
233
+ "UA",
234
+ "UG",
235
+ "UM",
236
+ "US",
237
+ "UY",
238
+ "UZ",
239
+ "VA",
240
+ "VC",
241
+ "VE",
242
+ "VG",
243
+ "VI",
244
+ "VN",
245
+ "VU",
246
+ "WF",
247
+ "WS",
248
+ "YE",
249
+ "YT",
250
+ "ZA",
251
+ "ZM",
252
+ "ZW"
253
+ ];
254
+
255
+ module.exports = require$$0;
256
+ //# sourceMappingURL=country-codes.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"country-codes.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var countryCodes$1 = require('./country-codes.json.js');
4
+ require('../cusip-generator/build/index.js');
5
+ var index = require('../../../_virtual/index.js');
6
+
7
+ const countryCodes = countryCodes$1;
8
+ const cusip = index.__exports.generateCusip();
9
+
10
+
11
+ const generateIsin = cusip => {
12
+ let code = countryCodes[Math.floor(Math.random() * countryCodes.length)];
13
+ let isin = code + cusip + generateIsinCheckDigit(code + cusip + '0');
14
+ return isin
15
+ };
16
+
17
+ const generateIsinCheckDigit = isin => {
18
+ if (isin.length != 12) return false;
19
+ var v = [];
20
+ for (var i = isin.length - 2; i >= 0; i--) {
21
+ let c = isin.charAt(i);
22
+ if (isNaN(c)) {
23
+ var letterCode = isin.charCodeAt(i) - 55;
24
+ v.push(letterCode % 10);
25
+ if (letterCode > 9) {
26
+ v.push(Math.floor(letterCode / 10));
27
+ }
28
+ } else {
29
+ v.push(Number(c));
30
+ }
31
+ }
32
+ var sum = 0;
33
+ var l = v.length;
34
+ for (var i = 0; i < l; i++) {
35
+ if (i % 2 == 0) {
36
+ var d = v[i] * 2;
37
+ sum += Math.floor(d / 10);
38
+ sum += d % 10;
39
+ } else {
40
+ sum += v[i];
41
+ }
42
+ }
43
+ return (10 - (sum % 10)) % 10
44
+ };
45
+
46
+
47
+ var isinGenerator_1 = function isinGenerator() {
48
+ return generateIsin(cusip)
49
+ };
50
+
51
+ exports.isinGenerator = isinGenerator_1;
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@thomaschaplin/isin-generator/index.js"],"sourcesContent":["'use-strict'\r\n\r\nconst countryCodes = require('./country-codes.json')\r\nconst cusip = require('@thomaschaplin/cusip-generator').generateCusip()\r\n\r\n\r\nconst generateIsin = cusip => {\r\n let code = countryCodes[Math.floor(Math.random() * countryCodes.length)]\r\n let isin = code + cusip + generateIsinCheckDigit(code + cusip + '0')\r\n return isin\r\n}\r\n\r\nconst generateIsinCheckDigit = isin => {\r\n if (isin.length != 12) return false;\r\n var v = [];\r\n for (var i = isin.length - 2; i >= 0; i--) {\r\n let c = isin.charAt(i);\r\n if (isNaN(c)) {\r\n var letterCode = isin.charCodeAt(i) - 55;\r\n v.push(letterCode % 10);\r\n if (letterCode > 9) {\r\n v.push(Math.floor(letterCode / 10));\r\n }\r\n } else {\r\n v.push(Number(c));\r\n }\r\n }\r\n var sum = 0;\r\n var l = v.length;\r\n for (var i = 0; i < l; i++) {\r\n if (i % 2 == 0) {\r\n var d = v[i] * 2;\r\n sum += Math.floor(d / 10)\r\n sum += d % 10;\r\n } else {\r\n sum += v[i];\r\n }\r\n }\r\n return (10 - (sum % 10)) % 10\r\n}\r\n\r\n\r\nexports.isinGenerator = function isinGenerator() {\r\n return generateIsin(cusip)\r\n}"],"names":["require$$0","require$$1"],"mappings":";;;;;;AAEA,MAAM,YAAY,GAAGA,eAA+B;AACpD,MAAM,KAAK,GAAGC,eAAyC,CAAC,aAAa,GAAE;AACvE;AACA;AACA,MAAM,YAAY,GAAG,KAAK,IAAI;AAC9B,IAAI,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,EAAC;AAC5E,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,sBAAsB,CAAC,IAAI,GAAG,KAAK,GAAG,GAAG,EAAC;AACxE,IAAI,OAAO,IAAI;AACf,EAAC;AACD;AACA,MAAM,sBAAsB,GAAG,IAAI,IAAI;AACvC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,KAAK,CAAC;AACxC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AACtB,YAAY,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;AACpC,YAAY,IAAI,UAAU,GAAG,CAAC,EAAE;AAChC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AACpD,aAAa;AACb,SAAS,MAAM;AACf,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,KAAK;AACL,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAC;AACrC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1B,SAAS,MAAM;AACf,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE;AACjC,EAAC;AACD;AACA;AACqB,IAAA,eAAA,GAAG,SAAS,aAAa,GAAG;AACjD,IAAI,OAAO,YAAY,CAAC,KAAK,CAAC;AAC9B;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ var __accessCheck = (obj, member, msg) => {
4
+ if (!member.has(obj))
5
+ throw TypeError("Cannot " + msg);
6
+ };
7
+ var __privateGet = (obj, member, getter) => {
8
+ __accessCheck(obj, member, "read from private field");
9
+ return getter ? getter.call(obj) : member.get(obj);
10
+ };
11
+ var __privateAdd = (obj, member, value) => {
12
+ if (member.has(obj))
13
+ throw TypeError("Cannot add the same private member more than once");
14
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
15
+ };
16
+ var __privateSet = (obj, member, value, setter) => {
17
+ __accessCheck(obj, member, "write to private field");
18
+ setter ? setter.call(obj, value) : member.set(obj, value);
19
+ return value;
20
+ };
21
+ var _getItem;
22
+ const _ArrayProxy = class _ArrayProxy {
23
+ constructor(size, getRow) {
24
+ __privateAdd(this, _getItem, void 0);
25
+ this.length = 0;
26
+ this.map = (func) => {
27
+ return new _ArrayProxy(this.length, (i) => {
28
+ return func(__privateGet(this, _getItem).call(this, i), i);
29
+ });
30
+ };
31
+ this.slice = (from, to) => {
32
+ const out = [];
33
+ const end = Math.min(this.length, to);
34
+ for (let i = from; i < end; i++) {
35
+ out.push(__privateGet(this, _getItem).call(this, i));
36
+ }
37
+ return out;
38
+ };
39
+ __privateSet(this, _getItem, getRow);
40
+ this.length = size;
41
+ const handler = {
42
+ get: (target, prop) => {
43
+ var _a;
44
+ if (prop === "length") {
45
+ return target.length;
46
+ } else if (prop === "slice") {
47
+ return target.slice;
48
+ } else if (prop === "map") {
49
+ return target.map;
50
+ } else if (prop === "toString") {
51
+ return "[ArrayProxy]";
52
+ }
53
+ if (typeof prop === "string") {
54
+ const index = parseInt(prop, 10);
55
+ if (!isNaN(index)) {
56
+ if (index < this.length) {
57
+ return __privateGet(_a = target, _getItem).call(_a, index);
58
+ } else {
59
+ return void 0;
60
+ }
61
+ }
62
+ }
63
+ throw Error(`unsupported property ${String(prop)} on ArrayProxy`);
64
+ },
65
+ set: (target, prop, newVal) => {
66
+ if (prop === "length") {
67
+ target.length = newVal;
68
+ return true;
69
+ }
70
+ throw Error(`ArrayProxy is immutable except for length`);
71
+ }
72
+ };
73
+ return new Proxy(this, handler);
74
+ }
75
+ };
76
+ _getItem = new WeakMap();
77
+ let ArrayProxy = _ArrayProxy;
78
+
79
+ exports.ArrayProxy = ArrayProxy;
80
+ //# sourceMappingURL=ArrayProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayProxy.js","sources":["../../../../src/ArrayProxy.ts"],"sourcesContent":["export type RowAtIndexFunc<T = unknown> = (index: number) => T | undefined;\n\nexport class ArrayProxy<T = string> {\n #getItem: RowAtIndexFunc;\n public length = 0;\n\n constructor(size: number, getRow: RowAtIndexFunc) {\n this.#getItem = getRow;\n this.length = size;\n\n const handler = {\n get: (target: ArrayProxy<T>, prop: string | symbol): any => {\n if (prop === \"length\") {\n return target.length;\n } else if (prop === \"slice\") {\n return target.slice;\n } else if (prop === \"map\") {\n return target.map;\n } else if (prop === \"toString\") {\n return \"[ArrayProxy]\";\n }\n if (typeof prop === \"string\") {\n const index = parseInt(prop, 10);\n if (!isNaN(index)) {\n if (index < this.length) {\n return target.#getItem(index);\n } else {\n return undefined;\n }\n }\n }\n throw Error(`unsupported property ${String(prop)} on ArrayProxy`);\n },\n set: (target: ArrayProxy<T>, prop: string, newVal: unknown) => {\n if (prop === \"length\") {\n target.length = newVal as number;\n return true;\n }\n throw Error(`ArrayProxy is immutable except for length`);\n },\n };\n return new Proxy(this, handler);\n }\n\n map = (func: (item: T, i: number) => unknown) => {\n return new ArrayProxy(this.length, (i: number) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return func(this.#getItem(i), i);\n });\n };\n slice = (from: number, to: number) => {\n const out = [];\n const end = Math.min(this.length, to);\n for (let i = from; i < end; i++) {\n out.push(this.#getItem(i));\n }\n return out;\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAA,QAAA,CAAA;AAEO,MAAM,WAAA,GAAN,MAAM,WAAuB,CAAA;AAAA,EAIlC,WAAA,CAAY,MAAc,MAAwB,EAAA;AAHlD,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAO,MAAS,GAAA,CAAA,CAAA;AAwChB,IAAA,IAAA,CAAA,GAAA,GAAM,CAAC,IAA0C,KAAA;AAC/C,MAAA,OAAO,IAAI,WAAA,CAAW,IAAK,CAAA,MAAA,EAAQ,CAAC,CAAc,KAAA;AAGhD,QAAA,OAAO,IAAK,CAAA,YAAA,CAAA,IAAA,EAAK,QAAL,CAAA,CAAA,IAAA,CAAA,IAAA,EAAc,IAAI,CAAC,CAAA,CAAA;AAAA,OAChC,CAAA,CAAA;AAAA,KACH,CAAA;AACA,IAAQ,IAAA,CAAA,KAAA,GAAA,CAAC,MAAc,EAAe,KAAA;AACpC,MAAA,MAAM,MAAM,EAAC,CAAA;AACb,MAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,IAAA,CAAK,QAAQ,EAAE,CAAA,CAAA;AACpC,MAAA,KAAA,IAAS,CAAI,GAAA,IAAA,EAAM,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC/B,QAAA,GAAA,CAAI,IAAK,CAAA,YAAA,CAAA,IAAA,EAAK,QAAL,CAAA,CAAA,IAAA,CAAA,IAAA,EAAc,CAAE,CAAA,CAAA,CAAA;AAAA,OAC3B;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KACT,CAAA;AAnDE,IAAA,YAAA,CAAA,IAAA,EAAK,QAAW,EAAA,MAAA,CAAA,CAAA;AAChB,IAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAA;AAEd,IAAA,MAAM,OAAU,GAAA;AAAA,MACd,GAAA,EAAK,CAAC,MAAA,EAAuB,IAA+B,KAAA;AAXlE,QAAA,IAAA,EAAA,CAAA;AAYQ,QAAA,IAAI,SAAS,QAAU,EAAA;AACrB,UAAA,OAAO,MAAO,CAAA,MAAA,CAAA;AAAA,SAChB,MAAA,IAAW,SAAS,OAAS,EAAA;AAC3B,UAAA,OAAO,MAAO,CAAA,KAAA,CAAA;AAAA,SAChB,MAAA,IAAW,SAAS,KAAO,EAAA;AACzB,UAAA,OAAO,MAAO,CAAA,GAAA,CAAA;AAAA,SAChB,MAAA,IAAW,SAAS,UAAY,EAAA;AAC9B,UAAO,OAAA,cAAA,CAAA;AAAA,SACT;AACA,QAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,UAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,IAAA,EAAM,EAAE,CAAA,CAAA;AAC/B,UAAI,IAAA,CAAC,KAAM,CAAA,KAAK,CAAG,EAAA;AACjB,YAAI,IAAA,KAAA,GAAQ,KAAK,MAAQ,EAAA;AACvB,cAAO,OAAA,YAAA,CAAA,EAAA,GAAA,MAAA,EAAO,UAAP,IAAgB,CAAA,EAAA,EAAA,KAAA,CAAA,CAAA;AAAA,aAClB,MAAA;AACL,cAAO,OAAA,KAAA,CAAA,CAAA;AAAA,aACT;AAAA,WACF;AAAA,SACF;AACA,QAAA,MAAM,KAAM,CAAA,CAAA,qBAAA,EAAwB,MAAO,CAAA,IAAI,CAAC,CAAgB,cAAA,CAAA,CAAA,CAAA;AAAA,OAClE;AAAA,MACA,GAAK,EAAA,CAAC,MAAuB,EAAA,IAAA,EAAc,MAAoB,KAAA;AAC7D,QAAA,IAAI,SAAS,QAAU,EAAA;AACrB,UAAA,MAAA,CAAO,MAAS,GAAA,MAAA,CAAA;AAChB,UAAO,OAAA,IAAA,CAAA;AAAA,SACT;AACA,QAAA,MAAM,MAAM,CAA2C,yCAAA,CAAA,CAAA,CAAA;AAAA,OACzD;AAAA,KACF,CAAA;AACA,IAAO,OAAA,IAAI,KAAM,CAAA,IAAA,EAAM,OAAO,CAAA,CAAA;AAAA,GAChC;AAiBF,CAAA,CAAA;AAxDE,QAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AADK,IAAM,UAAN,GAAA;;;;"}
@@ -0,0 +1,186 @@
1
+ 'use strict';
2
+
3
+ var vuuUtils = require('@vuu-ui/vuu-utils');
4
+
5
+ var __accessCheck = (obj, member, msg) => {
6
+ if (!member.has(obj))
7
+ throw TypeError("Cannot " + msg);
8
+ };
9
+ var __privateGet = (obj, member, getter) => {
10
+ __accessCheck(obj, member, "read from private field");
11
+ return getter ? getter.call(obj) : member.get(obj);
12
+ };
13
+ var __privateAdd = (obj, member, value) => {
14
+ if (member.has(obj))
15
+ throw TypeError("Cannot add the same private member more than once");
16
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
17
+ };
18
+ var __privateSet = (obj, member, value, setter) => {
19
+ __accessCheck(obj, member, "write to private field");
20
+ setter ? setter.call(obj, value) : member.set(obj, value);
21
+ return value;
22
+ };
23
+ var _data, _dataMap, _indexOfKey, _index, _schema;
24
+ class Table extends vuuUtils.EventEmitter {
25
+ constructor(schema, data, dataMap, updateGenerator) {
26
+ super();
27
+ __privateAdd(this, _data, void 0);
28
+ __privateAdd(this, _dataMap, void 0);
29
+ __privateAdd(this, _indexOfKey, void 0);
30
+ __privateAdd(this, _index, /* @__PURE__ */ new Map());
31
+ __privateAdd(this, _schema, void 0);
32
+ __privateSet(this, _data, data);
33
+ __privateSet(this, _dataMap, dataMap);
34
+ __privateSet(this, _schema, schema);
35
+ __privateSet(this, _indexOfKey, dataMap[schema.key]);
36
+ this.buildIndex();
37
+ updateGenerator?.setTable(this);
38
+ updateGenerator?.setRange({ from: 0, to: 100 });
39
+ }
40
+ buildIndex() {
41
+ for (let i = 0; i < __privateGet(this, _data).length; i++) {
42
+ const key = __privateGet(this, _data)[i][__privateGet(this, _indexOfKey)];
43
+ __privateGet(this, _index).set(key, i);
44
+ }
45
+ }
46
+ get data() {
47
+ return __privateGet(this, _data);
48
+ }
49
+ get map() {
50
+ return __privateGet(this, _dataMap);
51
+ }
52
+ get schema() {
53
+ return __privateGet(this, _schema);
54
+ }
55
+ insert(row) {
56
+ const index = __privateGet(this, _data).length;
57
+ __privateGet(this, _data).push(row);
58
+ const key = row[__privateGet(this, _indexOfKey)];
59
+ __privateGet(this, _index).set(key, index);
60
+ this.emit("insert", row);
61
+ }
62
+ findByKey(key) {
63
+ const index = __privateGet(this, _index).get(key) ?? -1;
64
+ return __privateGet(this, _data)[index];
65
+ }
66
+ update(key, columnName, value) {
67
+ const rowIndex = __privateGet(this, _data).findIndex(
68
+ (row) => row[__privateGet(this, _indexOfKey)] === key
69
+ );
70
+ const colIndex = __privateGet(this, _dataMap)[columnName];
71
+ if (rowIndex !== -1) {
72
+ const row = __privateGet(this, _data)[rowIndex];
73
+ const newRow = row.slice();
74
+ newRow[colIndex] = value;
75
+ __privateGet(this, _data)[rowIndex] = newRow;
76
+ this.emit("update", newRow, columnName);
77
+ }
78
+ }
79
+ updateRow(row) {
80
+ const key = row[__privateGet(this, _indexOfKey)];
81
+ const rowIndex = __privateGet(this, _data).findIndex(
82
+ (row2) => row2[__privateGet(this, _indexOfKey)] === key
83
+ );
84
+ if (rowIndex !== -1) {
85
+ __privateGet(this, _data)[rowIndex] = row;
86
+ this.emit("update", row);
87
+ }
88
+ }
89
+ }
90
+ _data = new WeakMap();
91
+ _dataMap = new WeakMap();
92
+ _indexOfKey = new WeakMap();
93
+ _index = new WeakMap();
94
+ _schema = new WeakMap();
95
+ const buildDataColumnMap = (schema) => Object.values(schema.columns).reduce((map, col, index) => {
96
+ map[col.name] = index;
97
+ return map;
98
+ }, {});
99
+ const getServerDataType = (columnName, { columns: cols1, table: t1 }, { columns: cols2, table: t2 }) => {
100
+ const col1 = cols1.find((col) => col.name === columnName);
101
+ const col2 = cols2.find((col) => col.name === columnName);
102
+ if (col1 && col2) {
103
+ if (col1.serverDataType === col2.serverDataType) {
104
+ return col1.serverDataType;
105
+ } else {
106
+ throw Error(
107
+ `both tables ${t1.table} and ${t2.table} implement column ${columnName}, but with types differ`
108
+ );
109
+ }
110
+ } else if (col1) {
111
+ return col1.serverDataType;
112
+ } else if (col2) {
113
+ return col2.serverDataType;
114
+ } else {
115
+ throw Error(`WTF how is this possible`);
116
+ }
117
+ };
118
+ const joinTables = (joinTable, table1, table2, joinColumn) => {
119
+ const { map: m1, schema: schema1 } = table1;
120
+ const { map: m2, schema: schema2 } = table2;
121
+ const k1 = m1[joinColumn];
122
+ const k2 = m2[joinColumn];
123
+ const combinedColumns = new Set(
124
+ [...schema1.columns, ...schema2.columns].map((col) => col.name).sort()
125
+ );
126
+ const combinedSchema = {
127
+ key: joinColumn,
128
+ table: joinTable,
129
+ columns: Array.from(combinedColumns).map((columnName) => ({
130
+ name: columnName,
131
+ serverDataType: getServerDataType(columnName, schema1, schema2)
132
+ }))
133
+ };
134
+ const data = [];
135
+ const combinedColumnMap = buildDataColumnMap(combinedSchema);
136
+ for (const row of table1.data) {
137
+ const row2 = table2.findByKey(String(row[k1]));
138
+ if (row2) {
139
+ const out = [];
140
+ for (const column of table1.schema.columns) {
141
+ const value = row[m1[column.name]];
142
+ out[combinedColumnMap[column.name]] = value;
143
+ }
144
+ for (const column of table2.schema.columns) {
145
+ const value = row2[m2[column.name]];
146
+ out[combinedColumnMap[column.name]] = value;
147
+ }
148
+ data.push(out);
149
+ }
150
+ }
151
+ const newTable = new Table(combinedSchema, data, combinedColumnMap);
152
+ table1.on("insert", (row) => {
153
+ const row2 = table2.findByKey(String(row[k1]));
154
+ if (row2) {
155
+ const out = [];
156
+ for (const column of table1.schema.columns) {
157
+ const value = row[m1[column.name]];
158
+ out[combinedColumnMap[column.name]] = value;
159
+ }
160
+ for (const column of table2.schema.columns) {
161
+ const value = row2[m2[column.name]];
162
+ out[combinedColumnMap[column.name]] = value;
163
+ }
164
+ newTable.insert(out);
165
+ }
166
+ });
167
+ table2.on("update", (row) => {
168
+ const keyValue = row[k2];
169
+ const targetRow = newTable.findByKey(keyValue);
170
+ if (targetRow) {
171
+ const updatedRow = targetRow.slice();
172
+ for (const { name } of table2.schema.columns) {
173
+ if (row[m2[name]] !== updatedRow[combinedColumnMap[name]]) {
174
+ updatedRow[combinedColumnMap[name]] = row[m2[name]];
175
+ }
176
+ }
177
+ newTable.updateRow(updatedRow);
178
+ }
179
+ });
180
+ return newTable;
181
+ };
182
+
183
+ exports.Table = Table;
184
+ exports.buildDataColumnMap = buildDataColumnMap;
185
+ exports.joinTables = joinTables;
186
+ //# sourceMappingURL=Table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sources":["../../../../src/Table.ts"],"sourcesContent":["import { SchemaColumn, TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuRowDataItemType, VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { ColumnMap, EventEmitter } from \"@vuu-ui/vuu-utils\";\nimport { UpdateGenerator } from \"./rowUpdates\";\n\nexport type TableEvents = {\n delete: (row: VuuRowDataItemType[]) => void;\n insert: (row: VuuRowDataItemType[]) => void;\n update: (row: VuuRowDataItemType[], columnName?: string) => void;\n};\n\nexport class Table extends EventEmitter<TableEvents> {\n #data: VuuRowDataItemType[][];\n #dataMap: ColumnMap;\n #indexOfKey: number;\n #index = new Map<string, number>();\n #schema: TableSchema;\n\n constructor(\n schema: TableSchema,\n data: VuuRowDataItemType[][],\n dataMap: ColumnMap,\n updateGenerator?: UpdateGenerator\n ) {\n super();\n this.#data = data;\n this.#dataMap = dataMap;\n this.#schema = schema;\n this.#indexOfKey = dataMap[schema.key];\n this.buildIndex();\n updateGenerator?.setTable(this);\n updateGenerator?.setRange({ from: 0, to: 100 });\n }\n\n private buildIndex() {\n for (let i = 0; i < this.#data.length; i++) {\n const key = this.#data[i][this.#indexOfKey] as string;\n this.#index.set(key, i);\n }\n }\n\n get data() {\n return this.#data;\n }\n\n get map() {\n return this.#dataMap;\n }\n\n get schema() {\n return this.#schema;\n }\n\n insert(row: VuuRowDataItemType[]) {\n const index = this.#data.length;\n this.#data.push(row);\n const key = row[this.#indexOfKey] as string;\n this.#index.set(key, index);\n this.emit(\"insert\", row);\n }\n\n findByKey(key: string) {\n const index = this.#index.get(key) ?? -1;\n return this.#data[index];\n }\n\n update(key: string, columnName: string, value: VuuRowDataItemType) {\n const rowIndex = this.#data.findIndex(\n (row) => row[this.#indexOfKey] === key\n );\n const colIndex = this.#dataMap[columnName];\n if (rowIndex !== -1) {\n const row = this.#data[rowIndex];\n const newRow = row.slice();\n newRow[colIndex] = value;\n this.#data[rowIndex] = newRow;\n this.emit(\"update\", newRow, columnName);\n }\n }\n updateRow(row: VuuRowDataItemType[]) {\n const key = row[this.#indexOfKey];\n const rowIndex = this.#data.findIndex(\n (row) => row[this.#indexOfKey] === key\n );\n if (rowIndex !== -1) {\n this.#data[rowIndex] = row;\n this.emit(\"update\", row);\n }\n }\n}\n\nexport const buildDataColumnMap = (schema: TableSchema) =>\n Object.values(schema.columns).reduce<ColumnMap>((map, col, index) => {\n map[col.name] = index;\n return map;\n }, {});\n\nconst getServerDataType = (\n columnName: string,\n { columns: cols1, table: t1 }: TableSchema,\n { columns: cols2, table: t2 }: TableSchema\n) => {\n const col1 = cols1.find((col) => col.name === columnName);\n const col2 = cols2.find((col) => col.name === columnName);\n if (col1 && col2) {\n if (col1.serverDataType === col2.serverDataType) {\n return col1.serverDataType;\n } else {\n throw Error(\n `both tables ${t1.table} and ${t2.table} implement column ${columnName}, but with types differ`\n );\n }\n } else if (col1) {\n return col1.serverDataType;\n } else if (col2) {\n return col2.serverDataType;\n } else {\n throw Error(`WTF how is this possible`);\n }\n};\n\n// Just copies source tables, then registers update listeners.\n// Not terribly efficient, but good enough for showcase\nexport const joinTables = (\n joinTable: VuuTable,\n table1: Table,\n table2: Table,\n joinColumn: string\n) => {\n const { map: m1, schema: schema1 } = table1;\n const { map: m2, schema: schema2 } = table2;\n const k1 = m1[joinColumn];\n const k2 = m2[joinColumn];\n\n const combinedColumns = new Set(\n [...schema1.columns, ...schema2.columns].map((col) => col.name).sort()\n );\n\n const combinedSchema: TableSchema = {\n key: joinColumn,\n table: joinTable,\n columns: Array.from(combinedColumns).map<SchemaColumn>((columnName) => ({\n name: columnName,\n serverDataType: getServerDataType(columnName, schema1, schema2),\n })),\n };\n\n const data: VuuRowDataItemType[][] = [];\n const combinedColumnMap = buildDataColumnMap(combinedSchema);\n // const start = performance.now();\n for (const row of table1.data) {\n const row2 = table2.findByKey(String(row[k1]));\n if (row2) {\n const out = [];\n for (const column of table1.schema.columns) {\n const value = row[m1[column.name]];\n out[combinedColumnMap[column.name]] = value;\n }\n for (const column of table2.schema.columns) {\n const value = row2[m2[column.name]];\n out[combinedColumnMap[column.name]] = value;\n }\n\n data.push(out);\n }\n }\n // const end = performance.now();\n // console.log(`took ${end - start} ms to create join table ${joinTable.table}`);\n\n const newTable = new Table(combinedSchema, data, combinedColumnMap);\n\n table1.on(\"insert\", (row) => {\n const row2 = table2.findByKey(String(row[k1]));\n if (row2) {\n const out = [];\n for (const column of table1.schema.columns) {\n const value = row[m1[column.name]];\n out[combinedColumnMap[column.name]] = value;\n }\n for (const column of table2.schema.columns) {\n const value = row2[m2[column.name]];\n out[combinedColumnMap[column.name]] = value;\n }\n newTable.insert(out);\n }\n });\n\n table2.on(\"update\", (row) => {\n const keyValue = row[k2] as string;\n const targetRow = newTable.findByKey(keyValue);\n if (targetRow) {\n const updatedRow = targetRow.slice();\n for (const { name } of table2.schema.columns) {\n if (row[m2[name]] !== updatedRow[combinedColumnMap[name]]) {\n updatedRow[combinedColumnMap[name]] = row[m2[name]];\n }\n }\n newTable.updateRow(updatedRow);\n }\n });\n\n return newTable;\n};\n"],"names":["EventEmitter","row"],"mappings":"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"}