@spearwolf/shadow-objects 0.1.0

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 (184) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +69 -0
  3. package/bundle.js +70 -0
  4. package/package.json +58 -0
  5. package/src/bundle.d.ts +7 -0
  6. package/src/bundle.d.ts.map +1 -0
  7. package/src/bundle.js +5 -0
  8. package/src/bundle.js.map +1 -0
  9. package/src/constants.d.ts +39 -0
  10. package/src/constants.d.ts.map +1 -0
  11. package/src/constants.js +40 -0
  12. package/src/constants.js.map +1 -0
  13. package/src/create-worker.bundle.d.ts +3 -0
  14. package/src/create-worker.bundle.d.ts.map +1 -0
  15. package/src/create-worker.bundle.js +6 -0
  16. package/src/create-worker.bundle.js.map +1 -0
  17. package/src/create-worker.d.ts +3 -0
  18. package/src/create-worker.d.ts.map +1 -0
  19. package/src/create-worker.js +2 -0
  20. package/src/create-worker.js.map +1 -0
  21. package/src/elements/ShaeElement.d.ts +13 -0
  22. package/src/elements/ShaeElement.d.ts.map +1 -0
  23. package/src/elements/ShaeElement.js +58 -0
  24. package/src/elements/ShaeElement.js.map +1 -0
  25. package/src/elements/ShaeEntElement.d.ts +23 -0
  26. package/src/elements/ShaeEntElement.d.ts.map +1 -0
  27. package/src/elements/ShaeEntElement.js +258 -0
  28. package/src/elements/ShaeEntElement.js.map +1 -0
  29. package/src/elements/ShaePropElement.d.ts +26 -0
  30. package/src/elements/ShaePropElement.d.ts.map +1 -0
  31. package/src/elements/ShaePropElement.js +321 -0
  32. package/src/elements/ShaePropElement.js.map +1 -0
  33. package/src/elements/ShaeWorkerElement.d.ts +25 -0
  34. package/src/elements/ShaeWorkerElement.d.ts.map +1 -0
  35. package/src/elements/ShaeWorkerElement.js +208 -0
  36. package/src/elements/ShaeWorkerElement.js.map +1 -0
  37. package/src/elements/constants.d.ts +17 -0
  38. package/src/elements/constants.d.ts.map +1 -0
  39. package/src/elements/constants.js +21 -0
  40. package/src/elements/constants.js.map +1 -0
  41. package/src/elements/events.d.ts +24 -0
  42. package/src/elements/events.d.ts.map +1 -0
  43. package/src/elements/events.js +2 -0
  44. package/src/elements/events.js.map +1 -0
  45. package/src/entities/Entity.d.ts +46 -0
  46. package/src/entities/Entity.d.ts.map +1 -0
  47. package/src/entities/Entity.js +217 -0
  48. package/src/entities/Entity.js.map +1 -0
  49. package/src/entities/Kernel.d.ts +60 -0
  50. package/src/entities/Kernel.d.ts.map +1 -0
  51. package/src/entities/Kernel.js +361 -0
  52. package/src/entities/Kernel.js.map +1 -0
  53. package/src/entities/Registry.d.ts +16 -0
  54. package/src/entities/Registry.d.ts.map +1 -0
  55. package/src/entities/Registry.js +72 -0
  56. package/src/entities/Registry.js.map +1 -0
  57. package/src/entities/ShadowObject.d.ts +18 -0
  58. package/src/entities/ShadowObject.d.ts.map +1 -0
  59. package/src/entities/ShadowObject.js +24 -0
  60. package/src/entities/ShadowObject.js.map +1 -0
  61. package/src/entities/SignalsMap.d.ts +12 -0
  62. package/src/entities/SignalsMap.d.ts.map +1 -0
  63. package/src/entities/SignalsMap.js +34 -0
  64. package/src/entities/SignalsMap.js.map +1 -0
  65. package/src/entities/SignalsPath.d.ts +12 -0
  66. package/src/entities/SignalsPath.d.ts.map +1 -0
  67. package/src/entities/SignalsPath.js +73 -0
  68. package/src/entities/SignalsPath.js.map +1 -0
  69. package/src/entities/events.d.ts +27 -0
  70. package/src/entities/events.d.ts.map +1 -0
  71. package/src/entities/events.js +7 -0
  72. package/src/entities/events.js.map +1 -0
  73. package/src/entities/importModule.d.ts +4 -0
  74. package/src/entities/importModule.d.ts.map +1 -0
  75. package/src/entities/importModule.js +32 -0
  76. package/src/entities/importModule.js.map +1 -0
  77. package/src/index.d.ts +22 -0
  78. package/src/index.d.ts.map +1 -0
  79. package/src/index.js +20 -0
  80. package/src/index.js.map +1 -0
  81. package/src/shadow-objects.d.ts +7 -0
  82. package/src/shadow-objects.d.ts.map +1 -0
  83. package/src/shadow-objects.js +6 -0
  84. package/src/shadow-objects.js.map +1 -0
  85. package/src/shadow-objects.worker.d.ts +2 -0
  86. package/src/shadow-objects.worker.d.ts.map +1 -0
  87. package/src/shadow-objects.worker.js +5 -0
  88. package/src/shadow-objects.worker.js.map +1 -0
  89. package/src/shae-ent.d.ts +2 -0
  90. package/src/shae-ent.d.ts.map +1 -0
  91. package/src/shae-ent.js +4 -0
  92. package/src/shae-ent.js.map +1 -0
  93. package/src/shae-prop.d.ts +2 -0
  94. package/src/shae-prop.d.ts.map +1 -0
  95. package/src/shae-prop.js +4 -0
  96. package/src/shae-prop.js.map +1 -0
  97. package/src/shae-worker.d.ts +2 -0
  98. package/src/shae-worker.d.ts.map +1 -0
  99. package/src/shae-worker.js +4 -0
  100. package/src/shae-worker.js.map +1 -0
  101. package/src/types.d.ts +89 -0
  102. package/src/types.d.ts.map +1 -0
  103. package/src/types.js +2 -0
  104. package/src/types.js.map +1 -0
  105. package/src/utils/FrameLoop.d.ts +8 -0
  106. package/src/utils/FrameLoop.d.ts.map +1 -0
  107. package/src/utils/FrameLoop.js +45 -0
  108. package/src/utils/FrameLoop.js.map +1 -0
  109. package/src/utils/array-utils.d.ts +11 -0
  110. package/src/utils/array-utils.d.ts.map +1 -0
  111. package/src/utils/array-utils.js +27 -0
  112. package/src/utils/array-utils.js.map +1 -0
  113. package/src/utils/attr-utils.d.ts +3 -0
  114. package/src/utils/attr-utils.d.ts.map +1 -0
  115. package/src/utils/attr-utils.js +12 -0
  116. package/src/utils/attr-utils.js.map +1 -0
  117. package/src/utils/constants.d.ts +2 -0
  118. package/src/utils/constants.d.ts.map +1 -0
  119. package/src/utils/constants.js +2 -0
  120. package/src/utils/constants.js.map +1 -0
  121. package/src/utils/generateUUID.d.ts +2 -0
  122. package/src/utils/generateUUID.d.ts.map +1 -0
  123. package/src/utils/generateUUID.js +34 -0
  124. package/src/utils/generateUUID.js.map +1 -0
  125. package/src/utils/props-utils.d.ts +8 -0
  126. package/src/utils/props-utils.d.ts.map +1 -0
  127. package/src/utils/props-utils.js +47 -0
  128. package/src/utils/props-utils.js.map +1 -0
  129. package/src/utils/toNamespace.d.ts +3 -0
  130. package/src/utils/toNamespace.d.ts.map +1 -0
  131. package/src/utils/toNamespace.js +3 -0
  132. package/src/utils/toNamespace.js.map +1 -0
  133. package/src/utils/toUrlString.d.ts +2 -0
  134. package/src/utils/toUrlString.d.ts.map +1 -0
  135. package/src/utils/toUrlString.js +7 -0
  136. package/src/utils/toUrlString.js.map +1 -0
  137. package/src/utils/waitForMessageOfType.d.ts +5 -0
  138. package/src/utils/waitForMessageOfType.d.ts.map +1 -0
  139. package/src/utils/waitForMessageOfType.js +34 -0
  140. package/src/utils/waitForMessageOfType.js.map +1 -0
  141. package/src/view/ComponentChanges.d.ts +30 -0
  142. package/src/view/ComponentChanges.d.ts.map +1 -0
  143. package/src/view/ComponentChanges.js +249 -0
  144. package/src/view/ComponentChanges.js.map +1 -0
  145. package/src/view/ComponentContext.d.ts +76 -0
  146. package/src/view/ComponentContext.d.ts.map +1 -0
  147. package/src/view/ComponentContext.js +344 -0
  148. package/src/view/ComponentContext.js.map +1 -0
  149. package/src/view/ComponentMemory.d.ts +8 -0
  150. package/src/view/ComponentMemory.d.ts.map +1 -0
  151. package/src/view/ComponentMemory.js +79 -0
  152. package/src/view/ComponentMemory.js.map +1 -0
  153. package/src/view/IShadowObjectEnvProxy.d.ts +10 -0
  154. package/src/view/IShadowObjectEnvProxy.d.ts.map +1 -0
  155. package/src/view/IShadowObjectEnvProxy.js +2 -0
  156. package/src/view/IShadowObjectEnvProxy.js.map +1 -0
  157. package/src/view/LocalShadowObjectEnv.d.ts +18 -0
  158. package/src/view/LocalShadowObjectEnv.d.ts.map +1 -0
  159. package/src/view/LocalShadowObjectEnv.js +55 -0
  160. package/src/view/LocalShadowObjectEnv.js.map +1 -0
  161. package/src/view/RemoteWorkerEnv.d.ts +15 -0
  162. package/src/view/RemoteWorkerEnv.d.ts.map +1 -0
  163. package/src/view/RemoteWorkerEnv.js +112 -0
  164. package/src/view/RemoteWorkerEnv.js.map +1 -0
  165. package/src/view/ShadowEnv.d.ts +30 -0
  166. package/src/view/ShadowEnv.d.ts.map +1 -0
  167. package/src/view/ShadowEnv.js +202 -0
  168. package/src/view/ShadowEnv.js.map +1 -0
  169. package/src/view/ViewComponent.d.ts +33 -0
  170. package/src/view/ViewComponent.d.ts.map +1 -0
  171. package/src/view/ViewComponent.js +130 -0
  172. package/src/view/ViewComponent.js.map +1 -0
  173. package/src/view/cloneChangeTrail.d.ts +3 -0
  174. package/src/view/cloneChangeTrail.d.ts.map +1 -0
  175. package/src/view/cloneChangeTrail.js +12 -0
  176. package/src/view/cloneChangeTrail.js.map +1 -0
  177. package/src/worker/MessageRouter.d.ts +14 -0
  178. package/src/worker/MessageRouter.d.ts.map +1 -0
  179. package/src/worker/MessageRouter.js +72 -0
  180. package/src/worker/MessageRouter.js.map +1 -0
  181. package/src/worker/WorkerRuntime.d.ts +7 -0
  182. package/src/worker/WorkerRuntime.d.ts.map +1 -0
  183. package/src/worker/WorkerRuntime.js +15 -0
  184. package/src/worker/WorkerRuntime.js.map +1 -0
@@ -0,0 +1,34 @@
1
+ // https://github.com/mrdoob/three.js/blob/master/src/math/MathUtils.js
2
+ // prettier-ignore
3
+ const _lut = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff'];
4
+ const _generateUUID = () => {
5
+ // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
6
+ const d0 = (Math.random() * 0xffffffff) | 0;
7
+ const d1 = (Math.random() * 0xffffffff) | 0;
8
+ const d2 = (Math.random() * 0xffffffff) | 0;
9
+ const d3 = (Math.random() * 0xffffffff) | 0;
10
+ const uuid = _lut[d0 & 0xff] +
11
+ _lut[(d0 >> 8) & 0xff] +
12
+ _lut[(d0 >> 16) & 0xff] +
13
+ _lut[(d0 >> 24) & 0xff] +
14
+ '-' +
15
+ _lut[d1 & 0xff] +
16
+ _lut[(d1 >> 8) & 0xff] +
17
+ '-' +
18
+ _lut[((d1 >> 16) & 0x0f) | 0x40] +
19
+ _lut[(d1 >> 24) & 0xff] +
20
+ '-' +
21
+ _lut[(d2 & 0x3f) | 0x80] +
22
+ _lut[(d2 >> 8) & 0xff] +
23
+ '-' +
24
+ _lut[(d2 >> 16) & 0xff] +
25
+ _lut[(d2 >> 24) & 0xff] +
26
+ _lut[d3 & 0xff] +
27
+ _lut[(d3 >> 8) & 0xff] +
28
+ _lut[(d3 >> 16) & 0xff] +
29
+ _lut[(d3 >> 24) & 0xff];
30
+ // .toLowerCase() here flattens concatenated strings to save heap memory space.
31
+ return uuid.toLowerCase();
32
+ };
33
+ export const generateUUID = () => globalThis?.crypto?.randomUUID?.() ?? _generateUUID();
34
+ //# sourceMappingURL=generateUUID.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateUUID.js","sourceRoot":"","sources":["../../../src/utils/generateUUID.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,kBAAkB;AAClB,MAAM,IAAI,GAAG,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC;AAEhhD,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,sGAAsG;IACtG,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GACR,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACvB,GAAG;QACH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,GAAG;QACH,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACvB,GAAG;QACH,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,GAAG;QACH,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAE1B,+EAA+E;IAC/E,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ComponentPropertiesType } from '../types.js';
2
+ export declare const filterUndefinedProps: (props: ComponentPropertiesType | undefined) => [string, unknown][];
3
+ /**
4
+ * Maybe `curProps` will be modified and returned. But it can also return a newly created array. `changes` will never be modified.
5
+ */
6
+ export declare const applyPropsChanges: (curProps: ComponentPropertiesType | undefined, changes: ComponentPropertiesType | undefined) => ComponentPropertiesType | undefined;
7
+ export declare const propsEqual: (a: ComponentPropertiesType | undefined, b: ComponentPropertiesType | undefined) => boolean;
8
+ //# sourceMappingURL=props-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/props-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,oBAAoB,UAAW,uBAAuB,GAAG,SAAS,wBAG9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,aAClB,uBAAuB,GAAG,SAAS,WACpC,uBAAuB,GAAG,SAAS,KAC3C,uBAAuB,GAAG,SAc5B,CAAC;AAEF,eAAO,MAAM,UAAU,MAAO,uBAAuB,GAAG,SAAS,KAAK,uBAAuB,GAAG,SAAS,YAaxG,CAAC"}
@@ -0,0 +1,47 @@
1
+ export const filterUndefinedProps = (props) => {
2
+ if (props === undefined || props.length === 0)
3
+ return undefined;
4
+ return props.filter((entry) => entry.length === 1 || entry[1] !== undefined);
5
+ };
6
+ /**
7
+ * Maybe `curProps` will be modified and returned. But it can also return a newly created array. `changes` will never be modified.
8
+ */
9
+ export const applyPropsChanges = (curProps, changes) => {
10
+ if (curProps === changes)
11
+ return curProps;
12
+ if (changes === undefined)
13
+ return curProps;
14
+ if (curProps === undefined)
15
+ return filterUndefinedProps(changes);
16
+ for (const [key, value] of changes) {
17
+ const entry = curProps.find(([k]) => k === key);
18
+ if (entry === undefined) {
19
+ curProps.push([key, value]);
20
+ }
21
+ else {
22
+ entry[1] = value;
23
+ }
24
+ }
25
+ return filterUndefinedProps(curProps);
26
+ };
27
+ export const propsEqual = (a, b) => {
28
+ if (a === b)
29
+ return true;
30
+ a = filterUndefinedProps(a);
31
+ b = filterUndefinedProps(b);
32
+ if (a === b)
33
+ return true;
34
+ if (a === undefined || b === undefined)
35
+ return false;
36
+ if (a.length !== b.length)
37
+ return false;
38
+ for (const [aKey, value] of a) {
39
+ const bEntry = b.find(([bKey]) => aKey === bKey);
40
+ if (bEntry === undefined)
41
+ return false;
42
+ if (bEntry[1] !== value)
43
+ return false;
44
+ }
45
+ return true;
46
+ };
47
+ //# sourceMappingURL=props-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props-utils.js","sourceRoot":"","sources":["../../../src/utils/props-utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAA0C,EAAE,EAAE;IACjF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAE,KAAoB,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAC/F,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6C,EAC7C,OAA4C,EACP,EAAE;IACvC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEjE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAsC,EAAE,CAAsC,EAAE,EAAE;IAC3G,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { NamespaceType } from '../types.js';
2
+ export declare const toNamespace: (namespace?: NamespaceType) => NamespaceType;
3
+ //# sourceMappingURL=toNamespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toNamespace.d.ts","sourceRoot":"","sources":["../../../src/utils/toNamespace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,WAAW,eAAgB,aAAa,KAAG,aAC6D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GlobalNS } from '../constants.js';
2
+ export const toNamespace = (namespace) => typeof namespace === 'string' ? namespace.trim() || GlobalNS : typeof namespace === 'symbol' ? namespace : GlobalNS;
3
+ //# sourceMappingURL=toNamespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toNamespace.js","sourceRoot":"","sources":["../../../src/utils/toNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAGzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAyB,EAAiB,EAAE,CACtE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const toUrlString: (url: URL | string) => string;
2
+ //# sourceMappingURL=toUrlString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUrlString.d.ts","sourceRoot":"","sources":["../../../src/utils/toUrlString.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAS,GAAG,GAAG,MAAM,KAAG,MAK/C,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const toUrlString = (url) => {
2
+ if (typeof url === 'string') {
3
+ url = new URL(url, globalThis.location.href);
4
+ }
5
+ return url.toString();
6
+ };
7
+ //# sourceMappingURL=toUrlString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUrlString.js","sourceRoot":"","sources":["../../../src/utils/toUrlString.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAiB,EAAU,EAAE;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Wait for a message of a specific type or reject after a timeout.
3
+ */
4
+ export declare const waitForMessageOfType: (worker: Worker, type: string, timeout?: number, guard?: (data: any) => boolean) => Promise<void>;
5
+ //# sourceMappingURL=waitForMessageOfType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForMessageOfType.d.ts","sourceRoot":"","sources":["../../../src/utils/waitForMessageOfType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,QAAQ,MAAM,4BAA0B,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,kBAiC7G,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Wait for a message of a specific type or reject after a timeout.
3
+ */
4
+ export const waitForMessageOfType = (worker, type, timeout = 1000, guard) => new Promise((resolve, reject) => {
5
+ let timeoutId;
6
+ // eslint-disable-next-line prefer-const
7
+ let listener;
8
+ const cleanup = () => {
9
+ clearTimeout(timeoutId);
10
+ worker.removeEventListener('message', listener);
11
+ };
12
+ if (timeout !== 0 && timeout !== Infinity) {
13
+ timeoutId = setTimeout(() => {
14
+ cleanup();
15
+ reject(new Error(`Timeout waiting for message of type: ${type}`));
16
+ }, timeout);
17
+ }
18
+ listener = (event) => {
19
+ if (event.data.type === type) {
20
+ try {
21
+ if (!guard || guard(event.data)) {
22
+ cleanup();
23
+ resolve();
24
+ }
25
+ }
26
+ catch (error) {
27
+ cleanup();
28
+ reject(error.toString());
29
+ }
30
+ }
31
+ };
32
+ worker.addEventListener('message', listener);
33
+ });
34
+ //# sourceMappingURL=waitForMessageOfType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForMessageOfType.js","sourceRoot":"","sources":["../../../src/utils/waitForMessageOfType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,OAAO,GAAG,IAAI,EAAE,KAA8B,EAAE,EAAE,CACnH,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACpC,IAAI,SAAiB,CAAC;IACtB,wCAAwC;IACxC,IAAI,QAAuC,CAAC;IAE5C,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1C,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC,EAAE,OAAO,CAAQ,CAAC;IACrB,CAAC;IAED,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;QACnB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { ChangeTrailPhase } from '../constants.js';
2
+ import type { IChangeToken, IComponentChangeType, ICreateEntitiesChange, IDestroyEntitiesChange, IPropertiesChange, ISendEvents, ISetParentChange, IUpdateOrderChange } from '../types.js';
3
+ export declare class ComponentChanges {
4
+ #private;
5
+ get uuid(): string;
6
+ constructor(uuid: string);
7
+ hasChanges(): boolean;
8
+ get isNew(): boolean;
9
+ get isCreated(): boolean;
10
+ get isDestroyed(): boolean;
11
+ create(token?: string, parentUuid?: string, order?: number): void;
12
+ destroy(): void;
13
+ clear(): void;
14
+ changeToken(token: string | undefined): void;
15
+ setParent(parentUuid?: string): void;
16
+ changeOrder(order: number): void;
17
+ changeProperty<T = unknown>(key: string, value: T, isEqual?: (a: T, b: T) => boolean): void;
18
+ removeProperty(key: string): void;
19
+ createEvent(type: string, data: unknown, transferables?: Transferable[]): void;
20
+ transferEventsTo(changes: ComponentChanges): void;
21
+ buildChangeTrail(trail: IComponentChangeType[], trailPhase: ChangeTrailPhase): void;
22
+ makeEvents(): ISendEvents;
23
+ makeCreateEntityChange(): ICreateEntitiesChange;
24
+ makeDestroyEntityChange(): IDestroyEntitiesChange;
25
+ makeSetParentChange(): ISetParentChange;
26
+ makeUpdateOrderChange(): IUpdateOrderChange;
27
+ makeChangeToken(): IChangeToken;
28
+ makeChangePropertyChange(): IPropertiesChange;
29
+ }
30
+ //# sourceMappingURL=ComponentChanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentChanges.d.ts","sourceRoot":"","sources":["../../../src/view/ComponentChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAiC,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAEpB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAGrB,qBAAa,gBAAgB;;IAG3B,IAAI,IAAI,IAAI,MAAM,CAEjB;gBAIW,IAAI,EAAE,MAAM;IAQxB,UAAU,IAAI,OAAO;IAIrB,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAUD,MAAM,CAAC,KAAK,GAAE,MAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;IASxE,OAAO;IAKP,KAAK;IAgBL,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IASrC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM;IAS7B,WAAW,CAAC,KAAK,EAAE,MAAM;IAazB,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO;IAcpF,cAAc,CAAC,GAAG,EAAE,MAAM;IAgB1B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE;IAMvE,gBAAgB,CAAC,OAAO,EAAE,gBAAgB;IAW1C,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,UAAU,EAAE,gBAAgB;IAsC5E,UAAU,IAAI,WAAW;IAYzB,sBAAsB,IAAI,qBAAqB;IAyB/C,uBAAuB,IAAI,sBAAsB;IAOjD,mBAAmB,IAAI,gBAAgB;IAgBvC,qBAAqB,IAAI,kBAAkB;IAU3C,eAAe,IAAI,YAAY;IAU/B,wBAAwB,IAAI,iBAAiB;CAoB9C"}
@@ -0,0 +1,249 @@
1
+ import { ChangeTrailPhase, ComponentChangeType, VoidToken } from '../constants.js';
2
+ import { appendToEnd, removeFrom } from '../utils/array-utils.js';
3
+ export class ComponentChanges {
4
+ #uuid;
5
+ get uuid() {
6
+ return this.#uuid;
7
+ }
8
+ #serial = 0;
9
+ constructor(uuid) {
10
+ this.#uuid = uuid;
11
+ }
12
+ #isNew = true;
13
+ #createCount = 0;
14
+ #destroyCount = 0;
15
+ hasChanges() {
16
+ return this.#serial > 0;
17
+ }
18
+ get isNew() {
19
+ return this.#isNew;
20
+ }
21
+ get isCreated() {
22
+ return this.#createCount > 0 && this.#createCount > this.#destroyCount;
23
+ }
24
+ get isDestroyed() {
25
+ return this.#destroyCount > 0 && this.#destroyCount >= this.#createCount;
26
+ }
27
+ #token = VoidToken;
28
+ #parentUuid;
29
+ #order = 0;
30
+ #nextToken;
31
+ #nextParentUuid;
32
+ #nextOrder;
33
+ create(token = VoidToken, parentUuid, order = 0) {
34
+ this.#serial++;
35
+ this.#createCount++;
36
+ this.#nextToken = token;
37
+ this.#nextParentUuid = parentUuid;
38
+ this.#nextOrder = !order ? undefined : order;
39
+ }
40
+ destroy() {
41
+ this.#destroyCount++;
42
+ this.#serial++;
43
+ }
44
+ clear() {
45
+ this.#serial = 0;
46
+ this.#isNew = false;
47
+ this.#nextToken = undefined;
48
+ this.#nextParentUuid = undefined;
49
+ this.#nextOrder = undefined;
50
+ this.#nextProperties.clear();
51
+ this.#propsChangeOrder.length = 0;
52
+ this.#events.length = 0;
53
+ this.#transferables.clear();
54
+ }
55
+ changeToken(token) {
56
+ if (token === this.#token) {
57
+ this.#nextToken = undefined;
58
+ }
59
+ else {
60
+ this.#nextToken = token;
61
+ this.#serial++;
62
+ }
63
+ }
64
+ setParent(parentUuid) {
65
+ if (parentUuid === this.#parentUuid) {
66
+ this.#nextParentUuid = undefined;
67
+ }
68
+ else {
69
+ this.#nextParentUuid = parentUuid ?? null;
70
+ this.#serial++;
71
+ }
72
+ }
73
+ changeOrder(order) {
74
+ if (order === this.#order) {
75
+ this.#nextOrder = undefined;
76
+ }
77
+ else {
78
+ this.#nextOrder = order;
79
+ this.#serial++;
80
+ }
81
+ }
82
+ #properties = new Map();
83
+ #nextProperties = new Map();
84
+ #propsChangeOrder = []; // we use an Array here and not a Set, because we want to keep the change order
85
+ changeProperty(key, value, isEqual) {
86
+ const prevValue = this.#properties.get(key);
87
+ const valueChanged = (isEqual == null && value !== prevValue) || (isEqual != null && !isEqual(value, prevValue));
88
+ if (valueChanged) {
89
+ this.#nextProperties.set(key, value);
90
+ appendToEnd(this.#propsChangeOrder, key);
91
+ this.#serial++;
92
+ }
93
+ else {
94
+ this.#nextProperties.delete(key);
95
+ removeFrom(this.#propsChangeOrder, key);
96
+ }
97
+ }
98
+ removeProperty(key) {
99
+ const propExists = this.#properties.has(key);
100
+ if (this.#nextProperties.has(key)) {
101
+ this.#nextProperties.delete(key);
102
+ if (!propExists) {
103
+ removeFrom(this.#propsChangeOrder, key);
104
+ }
105
+ }
106
+ else if (propExists) {
107
+ appendToEnd(this.#propsChangeOrder, key);
108
+ this.#serial++;
109
+ }
110
+ }
111
+ #events = [];
112
+ #transferables = new Set();
113
+ createEvent(type, data, transferables) {
114
+ this.#events.push({ type, data });
115
+ transferables?.forEach((transferable) => this.#transferables.add(transferable));
116
+ this.#serial++;
117
+ }
118
+ transferEventsTo(changes) {
119
+ if (this.#events.length > 0) {
120
+ changes.#events.push(...this.#events);
121
+ this.#events.length = 0;
122
+ }
123
+ if (this.#transferables.size > 0) {
124
+ changes.#transferables = new Set([...changes.#transferables, ...this.#transferables]);
125
+ this.#transferables.clear();
126
+ }
127
+ }
128
+ buildChangeTrail(trail, trailPhase) {
129
+ const { isNew, isCreated, isDestroyed } = this;
130
+ if (isNew && isDestroyed)
131
+ return;
132
+ switch (trailPhase) {
133
+ case ChangeTrailPhase.StructuralChanges:
134
+ if (isNew) {
135
+ trail.push(this.makeCreateEntityChange());
136
+ }
137
+ else if (!isDestroyed) {
138
+ if (this.#nextParentUuid !== undefined && this.#nextParentUuid !== this.#parentUuid) {
139
+ trail.push(this.makeSetParentChange());
140
+ }
141
+ else if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {
142
+ trail.push(this.makeUpdateOrderChange());
143
+ }
144
+ if (this.#nextToken !== undefined && this.#nextToken !== this.#token) {
145
+ trail.push(this.makeChangeToken());
146
+ }
147
+ }
148
+ break;
149
+ case ChangeTrailPhase.ContentUpdates:
150
+ if (!isNew && isCreated && this.#propsChangeOrder.length > 0) {
151
+ trail.push(this.makeChangePropertyChange());
152
+ }
153
+ if (this.#events.length > 0) {
154
+ trail.push(this.makeEvents());
155
+ }
156
+ break;
157
+ case ChangeTrailPhase.Removal:
158
+ if (isDestroyed) {
159
+ trail.push(this.makeDestroyEntityChange());
160
+ }
161
+ break;
162
+ }
163
+ }
164
+ makeEvents() {
165
+ const event = {
166
+ type: ComponentChangeType.SendEvents,
167
+ uuid: this.#uuid,
168
+ events: this.#events.slice(0),
169
+ };
170
+ if (this.#transferables.size > 0) {
171
+ event.transferables = Array.from(this.#transferables);
172
+ }
173
+ return event;
174
+ }
175
+ makeCreateEntityChange() {
176
+ const entry = {
177
+ type: ComponentChangeType.CreateEntities,
178
+ uuid: this.#uuid,
179
+ token: this.#nextToken,
180
+ };
181
+ this.#token = this.#nextToken;
182
+ if (this.#nextParentUuid !== undefined) {
183
+ entry.parentUuid = this.#parentUuid = this.#nextParentUuid;
184
+ }
185
+ if (this.#nextProperties.size > 0) {
186
+ entry.properties = Array.from(this.#nextProperties.entries()).filter(([, value]) => value !== undefined);
187
+ entry.properties.forEach(([key, value]) => this.#properties.set(key, value));
188
+ }
189
+ if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {
190
+ entry.order = this.#order = this.#nextOrder;
191
+ }
192
+ return entry;
193
+ }
194
+ makeDestroyEntityChange() {
195
+ return {
196
+ type: ComponentChangeType.DestroyEntities,
197
+ uuid: this.#uuid,
198
+ };
199
+ }
200
+ makeSetParentChange() {
201
+ this.#parentUuid = this.#nextParentUuid ?? undefined;
202
+ const entry = {
203
+ type: ComponentChangeType.SetParent,
204
+ uuid: this.#uuid,
205
+ parentUuid: this.#parentUuid,
206
+ };
207
+ if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {
208
+ entry.order = this.#order = this.#nextOrder;
209
+ }
210
+ return entry;
211
+ }
212
+ makeUpdateOrderChange() {
213
+ this.#order = this.#nextOrder ?? 0;
214
+ return {
215
+ type: ComponentChangeType.UpdateOrder,
216
+ uuid: this.#uuid,
217
+ order: this.#order,
218
+ };
219
+ }
220
+ makeChangeToken() {
221
+ this.#token = this.#nextToken ?? VoidToken;
222
+ return {
223
+ type: ComponentChangeType.ChangeToken,
224
+ uuid: this.#uuid,
225
+ token: this.#token,
226
+ };
227
+ }
228
+ makeChangePropertyChange() {
229
+ const properties = this.#propsChangeOrder.map((key) => {
230
+ if (this.#nextProperties.has(key)) {
231
+ // set prop
232
+ const nextValue = this.#nextProperties.get(key);
233
+ this.#properties.set(key, nextValue);
234
+ return [key, nextValue];
235
+ }
236
+ else {
237
+ // remove prop
238
+ this.#properties.delete(key);
239
+ return [key, undefined];
240
+ }
241
+ });
242
+ return {
243
+ type: ComponentChangeType.ChangeProperties,
244
+ uuid: this.#uuid,
245
+ properties,
246
+ };
247
+ }
248
+ }
249
+ //# sourceMappingURL=ComponentChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentChanges.js","sourceRoot":"","sources":["../../../src/view/ComponentChanges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import type { ChangeTrailType, NamespaceType } from '../types.js';
2
+ import type { ViewComponent } from './ViewComponent.js';
3
+ declare global {
4
+ var __shadowEntsContexts: Map<string | symbol, ComponentContext> | undefined;
5
+ }
6
+ /**
7
+ * The {@link ComponentContext} represents the current real-time state of the _view components_.
8
+ *
9
+ * Changes to the components and their hierarchy are also logged to the {@link ComponentChanges}.
10
+ *
11
+ * Each time a change trail is created (a call to {@link ComponentContext#buildChangeTrails}),
12
+ * the past changes are summarized and returned as the result. This means that the change trail
13
+ * is always the path of changes from the time of the previous change trail (or from the beginning)
14
+ * to the current call to the {@link ComponentContext#buildChangeTrails} method.
15
+ *
16
+ * In addition, there is the {@link ComponentMemory}. The memory represents the component state at
17
+ * the time of the last change trail, as opposed to the {@link ComponentContext}, which represents
18
+ * the current real-time state of the _view components_.
19
+ *
20
+ * A context is always associated with a namespace.
21
+ * If no namespace is specified when creating a {@link ComponentContext}, the global namespace is used.
22
+ * There is only one {@link ComponentContext} (a singleton) for each namespace.
23
+ */
24
+ export declare class ComponentContext {
25
+ #private;
26
+ static getContextsMap(): Map<NamespaceType, ComponentContext>;
27
+ static get(namespace?: NamespaceType): ComponentContext;
28
+ ns?: NamespaceType;
29
+ constructor(namespace?: NamespaceType);
30
+ addComponent(component: ViewComponent): void;
31
+ hasComponent(component: ViewComponent): boolean;
32
+ hasComponents(): boolean;
33
+ isRootComponent(component: ViewComponent): boolean;
34
+ destroyComponent(component: ViewComponent): void;
35
+ getChildren(component: ViewComponent): ViewComponent[];
36
+ removeFromParent(childUuid: string, parent: ViewComponent): void;
37
+ changeToken(component: ViewComponent, token?: string): void;
38
+ isChildOf(child: ViewComponent, parent: ViewComponent): boolean;
39
+ addToChildren(parent: ViewComponent, child: ViewComponent): void;
40
+ removeSubTree(uuid: string): void;
41
+ setProperty<T = unknown>(component: ViewComponent, propKey: string, value: T, isEqual?: (a: T, b: T) => boolean): false | void;
42
+ removeProperty(component: ViewComponent, propKey: string): void;
43
+ changeOrder(component: ViewComponent): void;
44
+ /**
45
+ * @returns all view-components in breadth-first order
46
+ */
47
+ traverseLevelOrderBFS(): ViewComponent[];
48
+ /**
49
+ * Dispatch an event to the shadow objects linked to the view component
50
+ */
51
+ dispatchShadowObjectsEvent(component: ViewComponent, type: string, data: unknown, transferables?: Transferable[]): void;
52
+ /**
53
+ * Dispatch an event to all view components
54
+ */
55
+ broadcastEvent(type: string, data?: unknown): void;
56
+ /**
57
+ * Dispatch an event (usually from the shadow-objects from the worker env) to a specific view component
58
+ */
59
+ dispatchMessage(uuid: string, type: string, data?: unknown, traverseChildren?: boolean): void;
60
+ /**
61
+ * Create the component change trails at this point in time.
62
+ * The next call will only return the differences from the previous call.
63
+ *
64
+ * @see {@link ComponentContext.reCreateChanges}
65
+ */
66
+ buildChangeTrails(clearChanges?: boolean): ChangeTrailType;
67
+ /**
68
+ * Resets the internal component change states so that all view components are regenerated with the next change trail.
69
+ * The outstanding events are taken over.
70
+ *
71
+ * @see {@link ComponentContext.buildChangeTrails}
72
+ */
73
+ reCreateChanges(): void;
74
+ clear(): void;
75
+ }
76
+ //# sourceMappingURL=ComponentContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentContext.d.ts","sourceRoot":"","sources":["../../../src/view/ComponentContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAwB,aAAa,EAAC,MAAM,aAAa,CAAC;AAKtF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAStD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,oBAAoB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;CAC9E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,gBAAgB;;IAC3B,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAO7D,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,gBAAgB;IASvD,EAAE,CAAC,EAAE,aAAa,CAAC;gBAOP,SAAS,GAAE,aAAwB;IAU/C,YAAY,CAAC,SAAS,EAAE,aAAa;IA6BrC,YAAY,CAAC,SAAS,EAAE,aAAa;IAIrC,aAAa;IAIb,eAAe,CAAC,SAAS,EAAE,aAAa;IAIxC,gBAAgB,CAAC,SAAS,EAAE,aAAa;IASzC,WAAW,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE;IAItD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAczD,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM;IAIpD,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa;IAQrD,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;IAYzD,aAAa,CAAC,IAAI,EAAE,MAAM;IAS1B,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO;IAc/G,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM;IAIxD,WAAW,CAAC,SAAS,EAAE,aAAa;IAapC;;OAEG;IACH,qBAAqB,IAAI,aAAa,EAAE;IAIxC;;OAEG;IACH,0BAA0B,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE;IAIhH;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAmB;IAMtD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAmB,EAAE,gBAAgB,UAAQ;IAI/F;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,UAAO,GAAG,eAAe;IAmCvD;;;;;OAKG;IACH,eAAe;IA6Bf,KAAK;CA4GN"}