@spearwolf/shadow-objects 0.30.2 → 0.31.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 (122) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/bundle.js +13 -13
  3. package/package.json +3 -3
  4. package/src/bundle.js +4 -4
  5. package/src/bundle.js.map +7 -1
  6. package/src/constants.js +53 -40
  7. package/src/constants.js.map +7 -1
  8. package/src/create-worker.bundle.js +6 -8
  9. package/src/create-worker.bundle.js.map +7 -1
  10. package/src/create-worker.js +5 -2
  11. package/src/create-worker.js.map +7 -1
  12. package/src/elements/ShaeElement.js +57 -54
  13. package/src/elements/ShaeElement.js.map +7 -1
  14. package/src/elements/ShaeEntElement.d.ts.map +1 -1
  15. package/src/elements/ShaeEntElement.js +320 -341
  16. package/src/elements/ShaeEntElement.js.map +7 -1
  17. package/src/elements/ShaePropElement.js +312 -320
  18. package/src/elements/ShaePropElement.js.map +7 -1
  19. package/src/elements/ShaeWorkerElement.js +234 -229
  20. package/src/elements/ShaeWorkerElement.js.map +7 -1
  21. package/src/elements/constants.js +37 -22
  22. package/src/elements/constants.js.map +7 -1
  23. package/src/elements/events.d.ts +1 -1
  24. package/src/elements/events.d.ts.map +1 -1
  25. package/src/elements/events.js +1 -2
  26. package/src/elements/events.js.map +7 -1
  27. package/src/elements.js +4 -4
  28. package/src/elements.js.map +7 -1
  29. package/src/in-the-dark/Entity.d.ts +1 -1
  30. package/src/in-the-dark/Entity.d.ts.map +1 -1
  31. package/src/in-the-dark/Entity.js +299 -293
  32. package/src/in-the-dark/Entity.js.map +7 -1
  33. package/src/in-the-dark/Kernel.d.ts.map +1 -1
  34. package/src/in-the-dark/Kernel.js +556 -533
  35. package/src/in-the-dark/Kernel.js.map +7 -1
  36. package/src/in-the-dark/Registry.d.ts.map +1 -1
  37. package/src/in-the-dark/Registry.js +101 -104
  38. package/src/in-the-dark/Registry.js.map +7 -1
  39. package/src/in-the-dark/ShadowObject.d.ts.map +1 -1
  40. package/src/in-the-dark/ShadowObject.js +21 -23
  41. package/src/in-the-dark/ShadowObject.js.map +7 -1
  42. package/src/in-the-dark/SignalsPath.d.ts.map +1 -1
  43. package/src/in-the-dark/SignalsPath.js +139 -123
  44. package/src/in-the-dark/SignalsPath.js.map +7 -1
  45. package/src/in-the-dark/events.js +11 -9
  46. package/src/in-the-dark/events.js.map +7 -1
  47. package/src/in-the-dark/importModule.js +31 -29
  48. package/src/in-the-dark/importModule.js.map +7 -1
  49. package/src/index.d.ts +2 -2
  50. package/src/index.d.ts.map +1 -1
  51. package/src/index.js +14 -14
  52. package/src/index.js.map +7 -1
  53. package/src/shadow-objects.js +6 -6
  54. package/src/shadow-objects.js.map +7 -1
  55. package/src/shadow-objects.worker.js +3 -3
  56. package/src/shadow-objects.worker.js.map +7 -1
  57. package/src/shae-ent.js +3 -3
  58. package/src/shae-ent.js.map +7 -1
  59. package/src/shae-prop.js +3 -3
  60. package/src/shae-prop.js.map +7 -1
  61. package/src/shae-worker.js +3 -3
  62. package/src/shae-worker.js.map +7 -1
  63. package/src/types.d.ts +3 -2
  64. package/src/types.d.ts.map +1 -1
  65. package/src/types.js +1 -2
  66. package/src/types.js.map +7 -1
  67. package/src/utils/ConsoleLogger.js +179 -185
  68. package/src/utils/ConsoleLogger.js.map +7 -1
  69. package/src/utils/FrameLoop.js +41 -40
  70. package/src/utils/FrameLoop.js.map +7 -1
  71. package/src/utils/array-utils.js +22 -24
  72. package/src/utils/array-utils.js.map +7 -1
  73. package/src/utils/attr-utils.js +15 -11
  74. package/src/utils/attr-utils.js.map +7 -1
  75. package/src/utils/constants.js +5 -2
  76. package/src/utils/constants.js.map +7 -1
  77. package/src/utils/generateUUID.d.ts.map +1 -1
  78. package/src/utils/generateUUID.js +269 -32
  79. package/src/utils/generateUUID.js.map +7 -1
  80. package/src/utils/props-utils.js +34 -43
  81. package/src/utils/props-utils.js.map +7 -1
  82. package/src/utils/toMaybe.js +5 -2
  83. package/src/utils/toMaybe.js.map +7 -1
  84. package/src/utils/toNamespace.js +6 -3
  85. package/src/utils/toNamespace.js.map +7 -1
  86. package/src/utils/toUrlString.js +9 -6
  87. package/src/utils/toUrlString.js.map +7 -1
  88. package/src/utils/waitForMessageOfType.js +30 -32
  89. package/src/utils/waitForMessageOfType.js.map +7 -1
  90. package/src/view/ComponentChanges.d.ts +1 -1
  91. package/src/view/ComponentChanges.d.ts.map +1 -1
  92. package/src/view/ComponentChanges.js +249 -251
  93. package/src/view/ComponentChanges.js.map +7 -1
  94. package/src/view/ComponentContext.d.ts.map +1 -1
  95. package/src/view/ComponentContext.js +303 -331
  96. package/src/view/ComponentContext.js.map +7 -1
  97. package/src/view/ComponentMemory.d.ts +1 -0
  98. package/src/view/ComponentMemory.d.ts.map +1 -1
  99. package/src/view/ComponentMemory.js +73 -76
  100. package/src/view/ComponentMemory.js.map +7 -1
  101. package/src/view/IShadowObjectEnvProxy.js +1 -2
  102. package/src/view/IShadowObjectEnvProxy.js.map +7 -1
  103. package/src/view/LocalShadowObjectEnv.d.ts.map +1 -1
  104. package/src/view/LocalShadowObjectEnv.js +57 -52
  105. package/src/view/LocalShadowObjectEnv.js.map +7 -1
  106. package/src/view/RemoteWorkerEnv.js +134 -123
  107. package/src/view/RemoteWorkerEnv.js.map +7 -1
  108. package/src/view/ShadowEnv.d.ts.map +1 -1
  109. package/src/view/ShadowEnv.js +232 -228
  110. package/src/view/ShadowEnv.js.map +7 -1
  111. package/src/view/ViewComponent.d.ts +9 -0
  112. package/src/view/ViewComponent.d.ts.map +1 -1
  113. package/src/view/ViewComponent.js +142 -130
  114. package/src/view/ViewComponent.js.map +7 -1
  115. package/src/view/cloneChangeTrail.js +13 -11
  116. package/src/view/cloneChangeTrail.js.map +7 -1
  117. package/src/worker/MessageRouter.d.ts.map +1 -1
  118. package/src/worker/MessageRouter.js +78 -67
  119. package/src/worker/MessageRouter.js.map +7 -1
  120. package/src/worker/WorkerRuntime.js +22 -21
  121. package/src/worker/WorkerRuntime.js.map +7 -1
  122. package/tsconfig.lib.tsbuildinfo +0 -1
@@ -1 +1,7 @@
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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/waitForMessageOfType.ts"],
4
+ "sourcesContent": ["/**\n * Wait for a message of a specific type or reject after a timeout.\n */\nexport const waitForMessageOfType = (worker: Worker, type: string, timeout = 1000, guard?: (data: any) => boolean) =>\n new Promise<void>((resolve, reject) => {\n let timeoutId: number;\n // eslint-disable-next-line prefer-const\n let listener: (event: MessageEvent) => void;\n\n const cleanup = () => {\n clearTimeout(timeoutId);\n worker.removeEventListener('message', listener);\n };\n\n if (timeout !== 0 && timeout !== Infinity) {\n timeoutId = setTimeout(() => {\n cleanup();\n reject(new Error(`Timeout waiting for message of type: ${type}`));\n }, timeout) as any;\n }\n\n listener = (event) => {\n if (event.data.type === type) {\n try {\n if (!guard || guard(event.data)) {\n cleanup();\n resolve();\n }\n } catch (error) {\n cleanup();\n reject(error.toString());\n }\n }\n };\n\n worker.addEventListener('message', listener);\n });"],
5
+ "mappings": "AAGO,MAAM,uBAAuB,CAAC,QAAgB,MAAc,UAAU,KAAM,UACjF,IAAI,QAAc,CAAC,SAAS,WAAW;AACrC,MAAI;AAEJ,MAAI;AAEJ,QAAM,UAAU,MAAM;AACpB,iBAAa,SAAS;AACtB,WAAO,oBAAoB,WAAW,QAAQ;AAAA,EAChD;AAEA,MAAI,YAAY,KAAK,YAAY,UAAU;AACzC,gBAAY,WAAW,MAAM;AAC3B,cAAQ;AACR,aAAO,IAAI,MAAM,wCAAwC,IAAI,EAAE,CAAC;AAAA,IAClE,GAAG,OAAO;AAAA,EACZ;AAEA,aAAW,CAAC,UAAU;AACpB,QAAI,MAAM,KAAK,SAAS,MAAM;AAC5B,UAAI;AACF,YAAI,CAAC,SAAS,MAAM,MAAM,IAAI,GAAG;AAC/B,kBAAQ;AACR,kBAAQ;AAAA,QACV;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ;AACR,eAAO,MAAM,SAAS,CAAC;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,iBAAiB,WAAW,QAAQ;AAC7C,CAAC;",
6
+ "names": []
7
+ }
@@ -8,7 +8,7 @@ export declare class ComponentChanges {
8
8
  get isNew(): boolean;
9
9
  get isCreated(): boolean;
10
10
  get isDestroyed(): boolean;
11
- create(token?: string, parentUuid?: string, order?: number): void;
11
+ create(token?: string, parentUuid?: string, order?: number, autoDestructionOnParentRemoval?: boolean): void;
12
12
  destroy(): void;
13
13
  clear(): void;
14
14
  changeToken(token: string | undefined): void;
@@ -1 +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;AAKrB,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;IA6B/C,uBAAuB,IAAI,sBAAsB;IAOjD,mBAAmB,IAAI,gBAAgB;IAgBvC,qBAAqB,IAAI,kBAAkB;IAU3C,eAAe,IAAI,YAAY;IAU/B,wBAAwB,IAAI,iBAAiB;CAoB9C"}
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;AAKrB,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;IAWD,MAAM,CAAC,KAAK,GAAE,MAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,EAAE,8BAA8B,UAAQ;IAUhH,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;IAiC/C,uBAAuB,IAAI,sBAAsB;IAOjD,mBAAmB,IAAI,gBAAgB;IAgBvC,qBAAqB,IAAI,kBAAkB;IAU3C,eAAe,IAAI,YAAY;IAU/B,wBAAwB,IAAI,iBAAiB;CAoB9C"}
@@ -1,254 +1,252 @@
1
- import { ChangeTrailPhase, ComponentChangeType, VoidToken } from '../constants.js';
2
- import { appendToEnd, removeFrom } from '../utils/array-utils.js';
3
- const ROOT = '#root';
4
- export class ComponentChanges {
5
- #uuid;
6
- get uuid() {
7
- return this.#uuid;
8
- }
9
- #serial = 0;
10
- constructor(uuid) {
11
- this.#uuid = uuid;
12
- }
13
- #isNew = true;
14
- #createCount = 0;
15
- #destroyCount = 0;
16
- hasChanges() {
17
- return this.#serial > 0;
18
- }
19
- get isNew() {
20
- return this.#isNew;
21
- }
22
- get isCreated() {
23
- return this.#createCount > 0 && this.#createCount > this.#destroyCount;
24
- }
25
- get isDestroyed() {
26
- return this.#destroyCount > 0 && this.#destroyCount >= this.#createCount;
27
- }
28
- #token = VoidToken;
29
- #parentUuid;
30
- #order = 0;
31
- #nextToken;
32
- #nextParentUuid;
33
- #nextOrder;
34
- create(token = VoidToken, parentUuid, order = 0) {
35
- this.#serial++;
36
- this.#createCount++;
37
- this.#nextToken = token;
38
- this.#nextParentUuid = parentUuid ?? ROOT;
39
- this.#nextOrder = !order ? undefined : order;
40
- }
41
- destroy() {
42
- this.#destroyCount++;
43
- this.#serial++;
44
- }
45
- clear() {
46
- this.#serial = 0;
47
- this.#isNew = false;
48
- this.#nextToken = undefined;
49
- this.#nextParentUuid = undefined;
50
- this.#nextOrder = undefined;
51
- this.#nextProperties.clear();
52
- this.#propsChangeOrder.length = 0;
53
- this.#events.length = 0;
54
- this.#transferables.clear();
55
- }
56
- changeToken(token) {
57
- if (token === this.#token) {
58
- this.#nextToken = undefined;
59
- }
60
- else {
61
- this.#nextToken = token;
62
- this.#serial++;
63
- }
64
- }
65
- setParent(parentUuid) {
66
- if (parentUuid === this.#parentUuid) {
67
- this.#nextParentUuid = undefined;
68
- }
69
- else {
70
- this.#nextParentUuid = parentUuid ?? ROOT;
71
- this.#serial++;
72
- }
73
- }
74
- changeOrder(order) {
75
- if (order === this.#order) {
76
- this.#nextOrder = undefined;
77
- }
78
- else {
79
- this.#nextOrder = order;
80
- this.#serial++;
81
- }
82
- }
83
- #properties = new Map();
84
- #nextProperties = new Map();
85
- #propsChangeOrder = []; // we use an Array here and not a Set, because we want to keep the change order
86
- changeProperty(key, value, isEqual) {
87
- const prevValue = this.#properties.get(key);
88
- const valueChanged = (isEqual == null && value !== prevValue) || (isEqual != null && !isEqual(value, prevValue));
89
- if (valueChanged) {
90
- this.#nextProperties.set(key, value);
91
- appendToEnd(this.#propsChangeOrder, key);
92
- this.#serial++;
93
- }
94
- else {
95
- this.#nextProperties.delete(key);
96
- removeFrom(this.#propsChangeOrder, key);
97
- }
98
- }
99
- removeProperty(key) {
100
- const propExists = this.#properties.has(key);
101
- if (this.#nextProperties.has(key)) {
102
- this.#nextProperties.delete(key);
103
- if (!propExists) {
104
- removeFrom(this.#propsChangeOrder, key);
105
- }
1
+ import { ChangeTrailPhase, ComponentChangeType, VoidToken } from "../constants.js";
2
+ import { appendToEnd, removeFrom } from "../utils/array-utils.js";
3
+ const ROOT = "#root";
4
+ class ComponentChanges {
5
+ #uuid;
6
+ get uuid() {
7
+ return this.#uuid;
8
+ }
9
+ #serial = 0;
10
+ constructor(uuid) {
11
+ this.#uuid = uuid;
12
+ }
13
+ #isNew = true;
14
+ #createCount = 0;
15
+ #destroyCount = 0;
16
+ hasChanges() {
17
+ return this.#serial > 0;
18
+ }
19
+ get isNew() {
20
+ return this.#isNew;
21
+ }
22
+ get isCreated() {
23
+ return this.#createCount > 0 && this.#createCount > this.#destroyCount;
24
+ }
25
+ get isDestroyed() {
26
+ return this.#destroyCount > 0 && this.#destroyCount >= this.#createCount;
27
+ }
28
+ #token = VoidToken;
29
+ #parentUuid;
30
+ #order = 0;
31
+ #autoDestructionOnParentRemoval = false;
32
+ #nextToken;
33
+ #nextParentUuid;
34
+ #nextOrder;
35
+ create(token = VoidToken, parentUuid, order = 0, autoDestructionOnParentRemoval = false) {
36
+ this.#serial++;
37
+ this.#createCount++;
38
+ this.#nextToken = token;
39
+ this.#nextParentUuid = parentUuid ?? ROOT;
40
+ this.#nextOrder = !order ? void 0 : order;
41
+ this.#autoDestructionOnParentRemoval = autoDestructionOnParentRemoval;
42
+ }
43
+ destroy() {
44
+ this.#destroyCount++;
45
+ this.#serial++;
46
+ }
47
+ clear() {
48
+ this.#serial = 0;
49
+ this.#isNew = false;
50
+ this.#nextToken = void 0;
51
+ this.#nextParentUuid = void 0;
52
+ this.#nextOrder = void 0;
53
+ this.#nextProperties.clear();
54
+ this.#propsChangeOrder.length = 0;
55
+ this.#events.length = 0;
56
+ this.#transferables.clear();
57
+ }
58
+ changeToken(token) {
59
+ if (token === this.#token) {
60
+ this.#nextToken = void 0;
61
+ } else {
62
+ this.#nextToken = token;
63
+ this.#serial++;
64
+ }
65
+ }
66
+ setParent(parentUuid) {
67
+ if (parentUuid === this.#parentUuid) {
68
+ this.#nextParentUuid = void 0;
69
+ } else {
70
+ this.#nextParentUuid = parentUuid ?? ROOT;
71
+ this.#serial++;
72
+ }
73
+ }
74
+ changeOrder(order) {
75
+ if (order === this.#order) {
76
+ this.#nextOrder = void 0;
77
+ } else {
78
+ this.#nextOrder = order;
79
+ this.#serial++;
80
+ }
81
+ }
82
+ #properties = /* @__PURE__ */ new Map();
83
+ #nextProperties = /* @__PURE__ */ new Map();
84
+ #propsChangeOrder = [];
85
+ // we use an Array here and not a Set, because we want to keep the change order
86
+ changeProperty(key, value, isEqual) {
87
+ const prevValue = this.#properties.get(key);
88
+ const valueChanged = isEqual == null && value !== prevValue || isEqual != null && !isEqual(value, prevValue);
89
+ if (valueChanged) {
90
+ this.#nextProperties.set(key, value);
91
+ appendToEnd(this.#propsChangeOrder, key);
92
+ this.#serial++;
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
+ } else if (propExists) {
106
+ appendToEnd(this.#propsChangeOrder, key);
107
+ this.#serial++;
108
+ }
109
+ }
110
+ #events = [];
111
+ #transferables = /* @__PURE__ */ new Set();
112
+ createEvent(type, data, transferables) {
113
+ this.#events.push({ type, data });
114
+ transferables?.forEach((transferable) => this.#transferables.add(transferable));
115
+ this.#serial++;
116
+ }
117
+ transferEventsTo(changes) {
118
+ if (this.#events.length > 0) {
119
+ changes.#events.push(...this.#events);
120
+ this.#events.length = 0;
121
+ }
122
+ if (this.#transferables.size > 0) {
123
+ changes.#transferables = /* @__PURE__ */ new Set([...changes.#transferables, ...this.#transferables]);
124
+ this.#transferables.clear();
125
+ }
126
+ }
127
+ buildChangeTrail(trail, trailPhase) {
128
+ const { isNew, isCreated, isDestroyed } = this;
129
+ if (isNew && isDestroyed) return;
130
+ switch (trailPhase) {
131
+ case ChangeTrailPhase.StructuralChanges:
132
+ if (isNew) {
133
+ trail.push(this.makeCreateEntityChange());
134
+ } else if (!isDestroyed) {
135
+ if (this.#nextParentUuid !== void 0 && !(this.#nextParentUuid === ROOT && this.#parentUuid === void 0)) {
136
+ trail.push(this.makeSetParentChange());
137
+ } else if (this.#nextOrder !== void 0 && this.#nextOrder !== this.#order) {
138
+ trail.push(this.makeUpdateOrderChange());
139
+ }
140
+ if (this.#nextToken !== void 0 && this.#nextToken !== this.#token) {
141
+ trail.push(this.makeChangeToken());
142
+ }
143
+ }
144
+ break;
145
+ case ChangeTrailPhase.ContentUpdates:
146
+ if (!isNew && isCreated && this.#propsChangeOrder.length > 0) {
147
+ trail.push(this.makeChangePropertyChange());
106
148
  }
107
- else if (propExists) {
108
- appendToEnd(this.#propsChangeOrder, key);
109
- this.#serial++;
110
- }
111
- }
112
- #events = [];
113
- #transferables = new Set();
114
- createEvent(type, data, transferables) {
115
- this.#events.push({ type, data });
116
- transferables?.forEach((transferable) => this.#transferables.add(transferable));
117
- this.#serial++;
118
- }
119
- transferEventsTo(changes) {
120
149
  if (this.#events.length > 0) {
121
- changes.#events.push(...this.#events);
122
- this.#events.length = 0;
123
- }
124
- if (this.#transferables.size > 0) {
125
- changes.#transferables = new Set([...changes.#transferables, ...this.#transferables]);
126
- this.#transferables.clear();
127
- }
128
- }
129
- buildChangeTrail(trail, trailPhase) {
130
- const { isNew, isCreated, isDestroyed } = this;
131
- if (isNew && isDestroyed)
132
- return;
133
- switch (trailPhase) {
134
- case ChangeTrailPhase.StructuralChanges:
135
- if (isNew) {
136
- trail.push(this.makeCreateEntityChange());
137
- }
138
- else if (!isDestroyed) {
139
- if (this.#nextParentUuid !== undefined && !(this.#nextParentUuid === ROOT && this.#parentUuid === undefined)) {
140
- trail.push(this.makeSetParentChange());
141
- }
142
- else if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {
143
- trail.push(this.makeUpdateOrderChange());
144
- }
145
- if (this.#nextToken !== undefined && this.#nextToken !== this.#token) {
146
- trail.push(this.makeChangeToken());
147
- }
148
- }
149
- break;
150
- case ChangeTrailPhase.ContentUpdates:
151
- if (!isNew && isCreated && this.#propsChangeOrder.length > 0) {
152
- trail.push(this.makeChangePropertyChange());
153
- }
154
- if (this.#events.length > 0) {
155
- trail.push(this.makeEvents());
156
- }
157
- break;
158
- case ChangeTrailPhase.Removal:
159
- if (isDestroyed) {
160
- trail.push(this.makeDestroyEntityChange());
161
- }
162
- break;
163
- }
164
- }
165
- makeEvents() {
166
- const event = {
167
- type: ComponentChangeType.SendEvents,
168
- uuid: this.#uuid,
169
- events: this.#events.slice(0),
170
- };
171
- if (this.#transferables.size > 0) {
172
- event.transferables = Array.from(this.#transferables);
173
- }
174
- return event;
175
- }
176
- makeCreateEntityChange() {
177
- const entry = {
178
- type: ComponentChangeType.CreateEntities,
179
- uuid: this.#uuid,
180
- token: this.#nextToken,
181
- };
182
- this.#token = this.#nextToken;
183
- if (this.#nextParentUuid !== undefined) {
184
- const nextParentUuid = this.#nextParentUuid === ROOT ? undefined : this.#nextParentUuid;
185
- this.#parentUuid = nextParentUuid;
186
- if (nextParentUuid !== undefined) {
187
- entry.parentUuid = nextParentUuid;
188
- }
189
- }
190
- if (this.#nextProperties.size > 0) {
191
- entry.properties = Array.from(this.#nextProperties.entries()).filter(([, value]) => value !== undefined);
192
- entry.properties.forEach(([key, value]) => this.#properties.set(key, value));
193
- }
194
- if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {
195
- entry.order = this.#order = this.#nextOrder;
196
- }
197
- return entry;
198
- }
199
- makeDestroyEntityChange() {
200
- return {
201
- type: ComponentChangeType.DestroyEntities,
202
- uuid: this.#uuid,
203
- };
204
- }
205
- makeSetParentChange() {
206
- this.#parentUuid = this.#nextParentUuid === ROOT ? undefined : this.#nextParentUuid;
207
- const entry = {
208
- type: ComponentChangeType.SetParent,
209
- uuid: this.#uuid,
210
- parentUuid: this.#parentUuid,
211
- };
212
- if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {
213
- entry.order = this.#order = this.#nextOrder;
214
- }
215
- return entry;
216
- }
217
- makeUpdateOrderChange() {
218
- this.#order = this.#nextOrder ?? 0;
219
- return {
220
- type: ComponentChangeType.UpdateOrder,
221
- uuid: this.#uuid,
222
- order: this.#order,
223
- };
224
- }
225
- makeChangeToken() {
226
- this.#token = this.#nextToken ?? VoidToken;
227
- return {
228
- type: ComponentChangeType.ChangeToken,
229
- uuid: this.#uuid,
230
- token: this.#token,
231
- };
232
- }
233
- makeChangePropertyChange() {
234
- const properties = this.#propsChangeOrder.map((key) => {
235
- if (this.#nextProperties.has(key)) {
236
- // set prop
237
- const nextValue = this.#nextProperties.get(key);
238
- this.#properties.set(key, nextValue);
239
- return [key, nextValue];
240
- }
241
- else {
242
- // remove prop
243
- this.#properties.delete(key);
244
- return [key, undefined];
245
- }
246
- });
247
- return {
248
- type: ComponentChangeType.ChangeProperties,
249
- uuid: this.#uuid,
250
- properties,
251
- };
252
- }
150
+ trail.push(this.makeEvents());
151
+ }
152
+ break;
153
+ case ChangeTrailPhase.Removal:
154
+ if (isDestroyed) {
155
+ trail.push(this.makeDestroyEntityChange());
156
+ }
157
+ break;
158
+ }
159
+ }
160
+ makeEvents() {
161
+ const event = {
162
+ type: ComponentChangeType.SendEvents,
163
+ uuid: this.#uuid,
164
+ events: this.#events.slice(0)
165
+ };
166
+ if (this.#transferables.size > 0) {
167
+ event.transferables = Array.from(this.#transferables);
168
+ }
169
+ return event;
170
+ }
171
+ makeCreateEntityChange() {
172
+ const entry = {
173
+ type: ComponentChangeType.CreateEntities,
174
+ uuid: this.#uuid,
175
+ token: this.#nextToken
176
+ };
177
+ this.#token = this.#nextToken;
178
+ if (this.#nextParentUuid !== void 0) {
179
+ const nextParentUuid = this.#nextParentUuid === ROOT ? void 0 : this.#nextParentUuid;
180
+ this.#parentUuid = nextParentUuid;
181
+ if (nextParentUuid !== void 0) {
182
+ entry.parentUuid = nextParentUuid;
183
+ }
184
+ }
185
+ if (this.#nextProperties.size > 0) {
186
+ entry.properties = Array.from(this.#nextProperties.entries()).filter(([, value]) => value !== void 0);
187
+ entry.properties.forEach(([key, value]) => this.#properties.set(key, value));
188
+ }
189
+ if (this.#nextOrder !== void 0 && this.#nextOrder !== this.#order) {
190
+ entry.order = this.#order = this.#nextOrder;
191
+ }
192
+ if (this.#autoDestructionOnParentRemoval) {
193
+ entry.autoDestructionOnParentRemoval = true;
194
+ }
195
+ return entry;
196
+ }
197
+ makeDestroyEntityChange() {
198
+ return {
199
+ type: ComponentChangeType.DestroyEntities,
200
+ uuid: this.#uuid
201
+ };
202
+ }
203
+ makeSetParentChange() {
204
+ this.#parentUuid = this.#nextParentUuid === ROOT ? void 0 : this.#nextParentUuid;
205
+ const entry = {
206
+ type: ComponentChangeType.SetParent,
207
+ uuid: this.#uuid,
208
+ parentUuid: this.#parentUuid
209
+ };
210
+ if (this.#nextOrder !== void 0 && this.#nextOrder !== this.#order) {
211
+ entry.order = this.#order = this.#nextOrder;
212
+ }
213
+ return entry;
214
+ }
215
+ makeUpdateOrderChange() {
216
+ this.#order = this.#nextOrder ?? 0;
217
+ return {
218
+ type: ComponentChangeType.UpdateOrder,
219
+ uuid: this.#uuid,
220
+ order: this.#order
221
+ };
222
+ }
223
+ makeChangeToken() {
224
+ this.#token = this.#nextToken ?? VoidToken;
225
+ return {
226
+ type: ComponentChangeType.ChangeToken,
227
+ uuid: this.#uuid,
228
+ token: this.#token
229
+ };
230
+ }
231
+ makeChangePropertyChange() {
232
+ const properties = this.#propsChangeOrder.map((key) => {
233
+ if (this.#nextProperties.has(key)) {
234
+ const nextValue = this.#nextProperties.get(key);
235
+ this.#properties.set(key, nextValue);
236
+ return [key, nextValue];
237
+ } else {
238
+ this.#properties.delete(key);
239
+ return [key, void 0];
240
+ }
241
+ });
242
+ return {
243
+ type: ComponentChangeType.ChangeProperties,
244
+ uuid: this.#uuid,
245
+ properties
246
+ };
247
+ }
253
248
  }
254
- //# sourceMappingURL=ComponentChanges.js.map
249
+ export {
250
+ ComponentChanges
251
+ };
252
+ //# sourceMappingURL=ComponentChanges.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"ComponentChanges.js","sourceRoot":"","sources":["../../../src/view/ComponentChanges.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/view/ComponentChanges.ts"],
4
+ "sourcesContent": ["import {ChangeTrailPhase, ComponentChangeType, VoidToken} from '../constants.js';\nimport type {\n IChangeToken,\n IComponentChangeType,\n IComponentEvent,\n ICreateEntitiesChange,\n IDestroyEntitiesChange,\n IPropertiesChange,\n ISendEvents,\n ISetParentChange,\n IUpdateOrderChange,\n} from '../types.js';\nimport {appendToEnd, removeFrom} from '../utils/array-utils.js';\n\nconst ROOT = '#root';\n\nexport class ComponentChanges {\n readonly #uuid: string;\n\n get uuid(): string {\n return this.#uuid;\n }\n\n #serial = 0;\n\n constructor(uuid: string) {\n this.#uuid = uuid;\n }\n\n #isNew = true;\n #createCount = 0;\n #destroyCount = 0;\n\n hasChanges(): boolean {\n return this.#serial > 0;\n }\n\n get isNew(): boolean {\n return this.#isNew;\n }\n\n get isCreated(): boolean {\n return this.#createCount > 0 && this.#createCount > this.#destroyCount;\n }\n\n get isDestroyed(): boolean {\n return this.#destroyCount > 0 && this.#destroyCount >= this.#createCount;\n }\n\n #token: string = VoidToken;\n #parentUuid?: string;\n #order: number = 0;\n #autoDestructionOnParentRemoval = false;\n\n #nextToken?: string;\n #nextParentUuid?: string;\n #nextOrder?: number;\n\n create(token: string = VoidToken, parentUuid?: string, order: number = 0, autoDestructionOnParentRemoval = false) {\n this.#serial++;\n this.#createCount++;\n\n this.#nextToken = token;\n this.#nextParentUuid = parentUuid ?? ROOT;\n this.#nextOrder = !order ? undefined : order;\n this.#autoDestructionOnParentRemoval = autoDestructionOnParentRemoval;\n }\n\n destroy() {\n this.#destroyCount++;\n this.#serial++;\n }\n\n clear() {\n this.#serial = 0;\n\n this.#isNew = false;\n\n this.#nextToken = undefined;\n this.#nextParentUuid = undefined;\n this.#nextOrder = undefined;\n\n this.#nextProperties.clear();\n this.#propsChangeOrder.length = 0;\n\n this.#events.length = 0;\n this.#transferables.clear();\n }\n\n changeToken(token: string | undefined) {\n if (token === this.#token) {\n this.#nextToken = undefined;\n } else {\n this.#nextToken = token;\n this.#serial++;\n }\n }\n\n setParent(parentUuid?: string) {\n if (parentUuid === this.#parentUuid) {\n this.#nextParentUuid = undefined;\n } else {\n this.#nextParentUuid = parentUuid ?? ROOT;\n this.#serial++;\n }\n }\n\n changeOrder(order: number) {\n if (order === this.#order) {\n this.#nextOrder = undefined;\n } else {\n this.#nextOrder = order;\n this.#serial++;\n }\n }\n\n #properties: Map<string, unknown> = new Map();\n #nextProperties: Map<string, unknown> = new Map();\n #propsChangeOrder: string[] = []; // we use an Array here and not a Set, because we want to keep the change order\n\n changeProperty<T = unknown>(key: string, value: T, isEqual?: (a: T, b: T) => boolean) {\n const prevValue = this.#properties.get(key) as T;\n const valueChanged = (isEqual == null && value !== prevValue) || (isEqual != null && !isEqual(value, prevValue));\n\n if (valueChanged) {\n this.#nextProperties.set(key, value);\n appendToEnd(this.#propsChangeOrder, key);\n this.#serial++;\n } else {\n this.#nextProperties.delete(key);\n removeFrom(this.#propsChangeOrder, key);\n }\n }\n\n removeProperty(key: string) {\n const propExists = this.#properties.has(key);\n if (this.#nextProperties.has(key)) {\n this.#nextProperties.delete(key);\n if (!propExists) {\n removeFrom(this.#propsChangeOrder, key);\n }\n } else if (propExists) {\n appendToEnd(this.#propsChangeOrder, key);\n this.#serial++;\n }\n }\n\n #events: IComponentEvent[] = [];\n #transferables = new Set<Transferable>();\n\n createEvent(type: string, data: unknown, transferables?: Transferable[]) {\n this.#events.push({type, data});\n transferables?.forEach((transferable) => this.#transferables.add(transferable));\n this.#serial++;\n }\n\n transferEventsTo(changes: ComponentChanges) {\n if (this.#events.length > 0) {\n changes.#events.push(...this.#events);\n this.#events.length = 0;\n }\n if (this.#transferables.size > 0) {\n changes.#transferables = new Set([...changes.#transferables, ...this.#transferables]);\n this.#transferables.clear();\n }\n }\n\n buildChangeTrail(trail: IComponentChangeType[], trailPhase: ChangeTrailPhase) {\n const {isNew, isCreated, isDestroyed} = this;\n\n if (isNew && isDestroyed) return;\n\n switch (trailPhase) {\n case ChangeTrailPhase.StructuralChanges:\n if (isNew) {\n trail.push(this.makeCreateEntityChange());\n } else if (!isDestroyed) {\n if (this.#nextParentUuid !== undefined && !(this.#nextParentUuid === ROOT && this.#parentUuid === undefined)) {\n trail.push(this.makeSetParentChange());\n } else if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {\n trail.push(this.makeUpdateOrderChange());\n }\n if (this.#nextToken !== undefined && this.#nextToken !== this.#token) {\n trail.push(this.makeChangeToken());\n }\n }\n break;\n\n case ChangeTrailPhase.ContentUpdates:\n if (!isNew && isCreated && this.#propsChangeOrder.length > 0) {\n trail.push(this.makeChangePropertyChange());\n }\n if (this.#events.length > 0) {\n trail.push(this.makeEvents());\n }\n break;\n\n case ChangeTrailPhase.Removal:\n if (isDestroyed) {\n trail.push(this.makeDestroyEntityChange());\n }\n break;\n }\n }\n\n makeEvents(): ISendEvents {\n const event: ISendEvents = {\n type: ComponentChangeType.SendEvents,\n uuid: this.#uuid,\n events: this.#events.slice(0),\n };\n if (this.#transferables.size > 0) {\n event.transferables = Array.from(this.#transferables);\n }\n return event;\n }\n\n makeCreateEntityChange(): ICreateEntitiesChange {\n const entry: ICreateEntitiesChange = {\n type: ComponentChangeType.CreateEntities,\n uuid: this.#uuid,\n token: this.#nextToken,\n };\n\n this.#token = this.#nextToken;\n\n if (this.#nextParentUuid !== undefined) {\n const nextParentUuid = this.#nextParentUuid === ROOT ? undefined : this.#nextParentUuid;\n this.#parentUuid = nextParentUuid;\n if (nextParentUuid !== undefined) {\n entry.parentUuid = nextParentUuid;\n }\n }\n\n if (this.#nextProperties.size > 0) {\n entry.properties = Array.from(this.#nextProperties.entries()).filter(([, value]) => value !== undefined);\n entry.properties.forEach(([key, value]) => this.#properties.set(key, value));\n }\n\n if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {\n entry.order = this.#order = this.#nextOrder;\n }\n\n if (this.#autoDestructionOnParentRemoval) {\n entry.autoDestructionOnParentRemoval = true;\n }\n\n return entry;\n }\n\n makeDestroyEntityChange(): IDestroyEntitiesChange {\n return {\n type: ComponentChangeType.DestroyEntities,\n uuid: this.#uuid,\n };\n }\n\n makeSetParentChange(): ISetParentChange {\n this.#parentUuid = this.#nextParentUuid === ROOT ? undefined : this.#nextParentUuid;\n\n const entry: ISetParentChange = {\n type: ComponentChangeType.SetParent,\n uuid: this.#uuid,\n parentUuid: this.#parentUuid,\n };\n\n if (this.#nextOrder !== undefined && this.#nextOrder !== this.#order) {\n entry.order = this.#order = this.#nextOrder;\n }\n\n return entry;\n }\n\n makeUpdateOrderChange(): IUpdateOrderChange {\n this.#order = this.#nextOrder ?? 0;\n\n return {\n type: ComponentChangeType.UpdateOrder,\n uuid: this.#uuid,\n order: this.#order,\n };\n }\n\n makeChangeToken(): IChangeToken {\n this.#token = this.#nextToken ?? VoidToken;\n\n return {\n type: ComponentChangeType.ChangeToken,\n uuid: this.#uuid,\n token: this.#token,\n };\n }\n\n makeChangePropertyChange(): IPropertiesChange {\n const properties = this.#propsChangeOrder.map((key) => {\n if (this.#nextProperties.has(key)) {\n // set prop\n const nextValue = this.#nextProperties.get(key);\n this.#properties.set(key, nextValue);\n return [key, nextValue] as [string, unknown];\n } else {\n // remove prop\n this.#properties.delete(key);\n return [key, undefined] as [string, unknown];\n }\n });\n\n return {\n type: ComponentChangeType.ChangeProperties,\n uuid: this.#uuid,\n properties,\n };\n }\n}"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1 +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,QAAQ,CAAC,oBAAoB,6BAA6B;IAEjE,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,UAAU,CAAC,SAAS,EAAE,MAAM;IAS5B,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;;OAEG;IACH,4BAA4B;IAM5B;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,UAAO,GAAG,eAAe;IAmCvD;;;;;OAKG;IACH,eAAe;IA6Bf,KAAK;CA4GN"}
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,QAAQ,CAAC,oBAAoB,6BAA6B;IAEjE,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;IAkCrC,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,UAAU,CAAC,SAAS,EAAE,MAAM;IAS5B,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;;OAEG;IACH,4BAA4B;IAM5B;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,UAAO,GAAG,eAAe;IAmCvD;;;;;OAKG;IACH,eAAe;IA6Bf,KAAK;CA2GN"}