@lightningjs/renderer 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/exports/index.d.ts +3 -0
  2. package/dist/{src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js → exports/index.js} +4 -11
  3. package/dist/exports/index.js.map +1 -0
  4. package/dist/src/common/IAnimationController.d.ts +58 -1
  5. package/dist/src/common/IAnimationController.js +0 -18
  6. package/dist/src/common/IAnimationController.js.map +1 -1
  7. package/dist/src/core/CoreTextureManager.js +1 -1
  8. package/dist/src/core/CoreTextureManager.js.map +1 -1
  9. package/dist/src/core/animations/CoreAnimation.d.ts +2 -2
  10. package/dist/src/core/animations/CoreAnimation.js +33 -10
  11. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  12. package/dist/src/core/animations/CoreAnimationController.d.ts +8 -12
  13. package/dist/src/core/animations/CoreAnimationController.js +42 -46
  14. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  15. package/dist/src/core/lib/ImageWorker.js +8 -5
  16. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  17. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +5 -0
  18. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  19. package/dist/src/core/textures/ImageTexture.d.ts +5 -1
  20. package/dist/src/core/textures/ImageTexture.js +14 -6
  21. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  22. package/dist/src/core/utils.js +1 -6
  23. package/dist/src/core/utils.js.map +1 -1
  24. package/dist/src/main-api/INode.d.ts +1 -1
  25. package/dist/src/main-api/Renderer.d.ts +297 -0
  26. package/dist/src/main-api/Renderer.js +370 -0
  27. package/dist/src/main-api/Renderer.js.map +1 -0
  28. package/dist/src/main-api/utils.d.ts +2 -0
  29. package/dist/src/main-api/utils.js +34 -0
  30. package/dist/src/main-api/utils.js.map +1 -0
  31. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +8 -4
  32. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +53 -24
  33. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  34. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +6 -0
  35. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  36. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  37. package/{dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js → exports/index.ts} +4 -14
  38. package/package.json +1 -1
  39. package/src/common/IAnimationController.ts +60 -1
  40. package/src/core/CoreTextureManager.ts +1 -1
  41. package/src/core/animations/CoreAnimation.ts +35 -11
  42. package/src/core/animations/CoreAnimationController.ts +48 -53
  43. package/src/core/lib/ImageWorker.ts +10 -7
  44. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +5 -0
  45. package/src/core/textures/ImageTexture.ts +19 -6
  46. package/src/core/utils.ts +1 -7
  47. package/src/main-api/INode.ts +1 -1
  48. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +63 -27
  49. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +6 -0
  50. package/dist/src/core/lib/WebGlContext.d.ts +0 -414
  51. package/dist/src/core/lib/WebGlContext.js +0 -640
  52. package/dist/src/core/lib/WebGlContext.js.map +0 -1
  53. package/dist/src/core/scene/Scene.d.ts +0 -59
  54. package/dist/src/core/scene/Scene.js +0 -106
  55. package/dist/src/core/scene/Scene.js.map +0 -1
  56. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +0 -8
  57. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +0 -1
  58. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +0 -19
  59. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +0 -84
  60. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +0 -1
  61. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +0 -8
  62. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +0 -40
  63. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +0 -1
  64. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +0 -2
  65. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +0 -41
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +0 -1
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +0 -1
  68. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +0 -4
  69. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +0 -1
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +0 -1
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +0 -2
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +0 -1
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +0 -9
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +0 -1
@@ -0,0 +1,370 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import { EventEmitter } from '../common/EventEmitter.js';
20
+ import { Inspector } from './Inspector.js';
21
+ import { santizeCustomDataMap } from './utils.js';
22
+ import { assertTruthy, isProductionEnvironment } from '../utils.js';
23
+ import { Stage, } from '../core/Stage.js';
24
+ import { getNewId } from '../utils.js';
25
+ import { CoreNode } from '../core/CoreNode.js';
26
+ import { CoreTextNode } from '../core/CoreTextNode.js';
27
+ /**
28
+ * The Renderer Main API
29
+ *
30
+ * @remarks
31
+ * This is the primary class used to configure and operate the Renderer.
32
+ *
33
+ * It is used to create and destroy Nodes, as well as Texture and Shader
34
+ * references.
35
+ *
36
+ * Example:
37
+ * ```ts
38
+ * import { RendererMain, MainCoreDriver } from '@lightningjs/renderer';
39
+ *
40
+ * // Initialize the Renderer
41
+ * const renderer = new RendererMain(
42
+ * {
43
+ * appWidth: 1920,
44
+ * appHeight: 1080
45
+ * },
46
+ * 'app',
47
+ * new MainCoreDriver(),
48
+ * );
49
+ * ```
50
+ */
51
+ export class RendererMain extends EventEmitter {
52
+ root;
53
+ canvas;
54
+ settings;
55
+ stage;
56
+ inspector = null;
57
+ /**
58
+ * Constructs a new Renderer instance
59
+ *
60
+ * @param settings Renderer settings
61
+ * @param target Element ID or HTMLElement to insert the canvas into
62
+ * @param driver Core Driver to use
63
+ */
64
+ constructor(settings, target) {
65
+ super();
66
+ const resolvedSettings = {
67
+ appWidth: settings.appWidth || 1920,
68
+ appHeight: settings.appHeight || 1080,
69
+ txMemByteThreshold: settings.txMemByteThreshold || 124e6,
70
+ boundsMargin: settings.boundsMargin || 0,
71
+ deviceLogicalPixelRatio: settings.deviceLogicalPixelRatio || 1,
72
+ devicePhysicalPixelRatio: settings.devicePhysicalPixelRatio || window.devicePixelRatio,
73
+ clearColor: settings.clearColor ?? 0x00000000,
74
+ fpsUpdateInterval: settings.fpsUpdateInterval || 0,
75
+ numImageWorkers: settings.numImageWorkers !== undefined ? settings.numImageWorkers : 2,
76
+ enableContextSpy: settings.enableContextSpy ?? false,
77
+ enableInspector: settings.enableInspector ?? false,
78
+ renderMode: settings.renderMode ?? 'webgl',
79
+ };
80
+ this.settings = resolvedSettings;
81
+ const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, enableInspector, } = resolvedSettings;
82
+ const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
83
+ const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
84
+ const canvas = document.createElement('canvas');
85
+ this.canvas = canvas;
86
+ canvas.width = deviceLogicalWidth * devicePhysicalPixelRatio;
87
+ canvas.height = deviceLogicalHeight * devicePhysicalPixelRatio;
88
+ canvas.style.width = `${deviceLogicalWidth}px`;
89
+ canvas.style.height = `${deviceLogicalHeight}px`;
90
+ // Initialize the stage
91
+ this.stage = new Stage({
92
+ rootId: getNewId(),
93
+ appWidth: this.settings.appWidth,
94
+ appHeight: this.settings.appHeight,
95
+ boundsMargin: this.settings.boundsMargin,
96
+ clearColor: this.settings.clearColor,
97
+ canvas: this.canvas,
98
+ debug: {
99
+ monitorTextureCache: false,
100
+ },
101
+ deviceLogicalPixelRatio: this.settings.deviceLogicalPixelRatio,
102
+ devicePhysicalPixelRatio: this.settings.devicePhysicalPixelRatio,
103
+ enableContextSpy: this.settings.enableContextSpy,
104
+ fpsUpdateInterval: this.settings.fpsUpdateInterval,
105
+ numImageWorkers: this.settings.numImageWorkers,
106
+ renderMode: this.settings.renderMode,
107
+ txMemByteThreshold: this.settings.txMemByteThreshold,
108
+ });
109
+ // Forward fpsUpdate events from the stage to RendererMain
110
+ this.stage.on('fpsUpdate', ((stage, fpsData) => {
111
+ this.emit('fpsUpdate', fpsData);
112
+ }));
113
+ this.stage.on('frameTick', ((stage, frameTickData) => {
114
+ this.emit('frameTick', frameTickData);
115
+ }));
116
+ this.stage.on('idle', () => {
117
+ this.emit('idle');
118
+ });
119
+ // Extract the root node
120
+ this.root = this.stage.root;
121
+ // Get the target element and attach the canvas to it
122
+ let targetEl;
123
+ if (typeof target === 'string') {
124
+ targetEl = document.getElementById(target);
125
+ }
126
+ else {
127
+ targetEl = target;
128
+ }
129
+ if (!targetEl) {
130
+ throw new Error('Could not find target element');
131
+ }
132
+ targetEl.appendChild(canvas);
133
+ // Initialize inspector (if enabled)
134
+ if (enableInspector && !isProductionEnvironment()) {
135
+ this.inspector = new Inspector(canvas, resolvedSettings);
136
+ }
137
+ }
138
+ /**
139
+ * Create a new scene graph node
140
+ *
141
+ * @remarks
142
+ * A node is the main graphical building block of the Renderer scene graph. It
143
+ * can be a container for other nodes, or it can be a leaf node that renders a
144
+ * solid color, gradient, image, or specific texture, using a specific shader.
145
+ *
146
+ * To create a text node, see {@link createTextNode}.
147
+ *
148
+ * See {@link INode} for more details.
149
+ *
150
+ * @param props
151
+ * @returns
152
+ */
153
+ createNode(props) {
154
+ assertTruthy(this.stage, 'Stage is not initialized');
155
+ const resolvedProps = this.resolveNodeDefaults(props);
156
+ const node = new CoreNode(this.stage, {
157
+ ...resolvedProps,
158
+ id: getNewId(),
159
+ shaderProps: null,
160
+ });
161
+ if (this.inspector) {
162
+ return this.inspector.createNode(node, resolvedProps);
163
+ }
164
+ // FIXME onDestroy event? node.once('beforeDestroy'
165
+ // FIXME onCreate event?
166
+ return node;
167
+ }
168
+ /**
169
+ * Create a new scene graph text node
170
+ *
171
+ * @remarks
172
+ * A text node is the second graphical building block of the Renderer scene
173
+ * graph. It renders text using a specific text renderer that is automatically
174
+ * chosen based on the font requested and what type of fonts are installed
175
+ * into an app.
176
+ *
177
+ * See {@link ITextNode} for more details.
178
+ *
179
+ * @param props
180
+ * @returns
181
+ */
182
+ createTextNode(props) {
183
+ const fontSize = props.fontSize ?? 16;
184
+ const data = {
185
+ ...this.resolveNodeDefaults(props),
186
+ id: getNewId(),
187
+ text: props.text ?? '',
188
+ textRendererOverride: props.textRendererOverride ?? null,
189
+ fontSize,
190
+ fontFamily: props.fontFamily ?? 'sans-serif',
191
+ fontStyle: props.fontStyle ?? 'normal',
192
+ fontWeight: props.fontWeight ?? 'normal',
193
+ fontStretch: props.fontStretch ?? 'normal',
194
+ textAlign: props.textAlign ?? 'left',
195
+ contain: props.contain ?? 'none',
196
+ scrollable: props.scrollable ?? false,
197
+ scrollY: props.scrollY ?? 0,
198
+ offsetY: props.offsetY ?? 0,
199
+ letterSpacing: props.letterSpacing ?? 0,
200
+ lineHeight: props.lineHeight,
201
+ maxLines: props.maxLines ?? 0,
202
+ textBaseline: props.textBaseline ?? 'alphabetic',
203
+ verticalAlign: props.verticalAlign ?? 'middle',
204
+ overflowSuffix: props.overflowSuffix ?? '...',
205
+ debug: props.debug ?? {},
206
+ shaderProps: null,
207
+ };
208
+ assertTruthy(this.stage);
209
+ const textNode = new CoreTextNode(this.stage, data);
210
+ if (this.inspector) {
211
+ return this.inspector.createTextNode(textNode, data);
212
+ }
213
+ return textNode;
214
+ }
215
+ /**
216
+ * Resolves the default property values for a Node
217
+ *
218
+ * @remarks
219
+ * This method is used internally by the RendererMain to resolve the default
220
+ * property values for a Node. It is exposed publicly so that it can be used
221
+ * by Core Driver implementations.
222
+ *
223
+ * @param props
224
+ * @returns
225
+ */
226
+ resolveNodeDefaults(props) {
227
+ const color = props.color ?? 0xffffffff;
228
+ const colorTl = props.colorTl ?? props.colorTop ?? props.colorLeft ?? color;
229
+ const colorTr = props.colorTr ?? props.colorTop ?? props.colorRight ?? color;
230
+ const colorBl = props.colorBl ?? props.colorBottom ?? props.colorLeft ?? color;
231
+ const colorBr = props.colorBr ?? props.colorBottom ?? props.colorRight ?? color;
232
+ const data = santizeCustomDataMap(props.data ?? {});
233
+ return {
234
+ x: props.x ?? 0,
235
+ y: props.y ?? 0,
236
+ width: props.width ?? 0,
237
+ height: props.height ?? 0,
238
+ alpha: props.alpha ?? 1,
239
+ autosize: props.autosize ?? false,
240
+ clipping: props.clipping ?? false,
241
+ color,
242
+ colorTop: props.colorTop ?? color,
243
+ colorBottom: props.colorBottom ?? color,
244
+ colorLeft: props.colorLeft ?? color,
245
+ colorRight: props.colorRight ?? color,
246
+ colorBl,
247
+ colorBr,
248
+ colorTl,
249
+ colorTr,
250
+ zIndex: props.zIndex ?? 0,
251
+ zIndexLocked: props.zIndexLocked ?? 0,
252
+ parent: props.parent ?? null,
253
+ texture: props.texture ?? null,
254
+ textureOptions: props.textureOptions ?? {},
255
+ shader: props.shader ?? null,
256
+ // Since setting the `src` will trigger a texture load, we need to set it after
257
+ // we set the texture. Otherwise, problems happen.
258
+ src: props.src ?? '',
259
+ scale: props.scale ?? null,
260
+ scaleX: props.scaleX ?? props.scale ?? 1,
261
+ scaleY: props.scaleY ?? props.scale ?? 1,
262
+ mount: props.mount ?? 0,
263
+ mountX: props.mountX ?? props.mount ?? 0,
264
+ mountY: props.mountY ?? props.mount ?? 0,
265
+ pivot: props.pivot ?? 0.5,
266
+ pivotX: props.pivotX ?? props.pivot ?? 0.5,
267
+ pivotY: props.pivotY ?? props.pivot ?? 0.5,
268
+ rotation: props.rotation ?? 0,
269
+ rtt: props.rtt ?? false,
270
+ data: data,
271
+ };
272
+ }
273
+ /**
274
+ * Destroy a node
275
+ *
276
+ * @remarks
277
+ * This method destroys a node
278
+ *
279
+ * @param node
280
+ * @returns
281
+ */
282
+ destroyNode(node) {
283
+ if (this.inspector) {
284
+ this.inspector.destroyNode(node.id);
285
+ }
286
+ return node.destroy();
287
+ }
288
+ /**
289
+ * Create a new texture reference
290
+ *
291
+ * @remarks
292
+ * This method creates a new reference to a texture. The texture is not
293
+ * loaded until it is used on a node.
294
+ *
295
+ * It can be assigned to a node's `texture` property, or it can be used
296
+ * when creating a SubTexture.
297
+ *
298
+ * @param textureType
299
+ * @param props
300
+ * @param options
301
+ * @returns
302
+ */
303
+ createTexture(textureType, props) {
304
+ return this.stage.txManager.loadTexture(textureType, props);
305
+ }
306
+ /**
307
+ * Create a new shader reference
308
+ *
309
+ * @remarks
310
+ * This method creates a new reference to a shader. The shader is not
311
+ * loaded until it is used on a Node.
312
+ *
313
+ * It can be assigned to a Node's `shader` property.
314
+ *
315
+ * @param shaderType
316
+ * @param props
317
+ * @returns
318
+ */
319
+ createShader(shaderType, props) {
320
+ return {
321
+ descType: 'shader',
322
+ shType: shaderType,
323
+ props: props,
324
+ };
325
+ }
326
+ /**
327
+ * Get a Node by its ID
328
+ *
329
+ * @param id
330
+ * @returns
331
+ */
332
+ getNodeById(id) {
333
+ const root = this.stage?.root;
334
+ if (!root) {
335
+ return null;
336
+ }
337
+ const findNode = (node) => {
338
+ if (node.id === id) {
339
+ return node;
340
+ }
341
+ for (const child of node.children) {
342
+ const found = findNode(child);
343
+ if (found) {
344
+ return found;
345
+ }
346
+ }
347
+ return null;
348
+ };
349
+ return findNode(root);
350
+ }
351
+ toggleFreeze() {
352
+ throw new Error('Not implemented');
353
+ }
354
+ advanceFrame() {
355
+ throw new Error('Not implemented');
356
+ }
357
+ /**
358
+ * Re-render the current frame without advancing any running animations.
359
+ *
360
+ * @remarks
361
+ * Any state changes will be reflected in the re-rendered frame. Useful for
362
+ * debugging.
363
+ *
364
+ * May not do anything if the render loop is running on a separate worker.
365
+ */
366
+ rerender() {
367
+ throw new Error('Not implemented');
368
+ }
369
+ }
370
+ //# sourceMappingURL=Renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/main-api/Renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { CustomDataMap } from '../main-api/INode.js';
2
+ export declare function santizeCustomDataMap(d: CustomDataMap): CustomDataMap;
@@ -0,0 +1,34 @@
1
+ export function santizeCustomDataMap(d) {
2
+ const validTypes = {
3
+ boolean: true,
4
+ string: true,
5
+ number: true,
6
+ undefined: true,
7
+ };
8
+ const keys = Object.keys(d);
9
+ for (let i = 0; i < keys.length; i++) {
10
+ const key = keys[i];
11
+ if (!key) {
12
+ continue;
13
+ }
14
+ const value = d[key];
15
+ const valueType = typeof value;
16
+ // Typescript doesn't understand the above const valueType ¯\_(ツ)_/¯
17
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
+ // @ts-ignore-next-line
19
+ if (valueType === 'string' && value.length > 2048) {
20
+ console.warn(`Custom Data value for ${key} is too long, it will be truncated to 2048 characters`);
21
+ // same here, see above comment, this can only be a string at this point
22
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
+ // @ts-ignore-next-line
24
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
25
+ d[key] = value.substring(0, 2048);
26
+ }
27
+ if (!validTypes[valueType]) {
28
+ console.warn(`Custom Data value for ${key} is not a boolean, string, or number, it will be ignored`);
29
+ delete d[key];
30
+ }
31
+ }
32
+ return d;
33
+ }
34
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/main-api/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,CAAgB;IACnD,MAAM,UAAU,GAAG;QACjB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE;YACR,SAAS;SACV;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;QAE/B,oEAAoE;QACpE,6DAA6D;QAC7D,uBAAuB;QACvB,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE;YACjD,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,uDAAuD,CACpF,CAAC;YAEF,wEAAwE;YACxE,6DAA6D;YAC7D,uBAAuB;YACvB,sGAAsG;YACtG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,UAAU,CAAC,SAAoC,CAAC,EAAE;YACrD,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,0DAA0D,CACvF,CAAC;YACF,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;SACf;KACF;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,20 +1,24 @@
1
+ import { EventEmitter } from '../../common/EventEmitter.js';
1
2
  import type { AnimationControllerState, IAnimationController } from '../../common/IAnimationController.js';
2
3
  import type { ThreadXMainNode } from './ThreadXMainNode.js';
3
- export declare class ThreadXMainAnimationController implements IAnimationController {
4
+ export declare class ThreadXMainAnimationController extends EventEmitter implements IAnimationController {
4
5
  private node;
5
6
  private id;
6
- stoppedPromise: Promise<void> | null;
7
+ stoppedPromise: Promise<void>;
7
8
  /**
8
9
  * If this is null, then the animation is in a finished / stopped state.
9
10
  */
10
11
  stoppedResolve: (() => void) | null;
11
- constructor(node: ThreadXMainNode, id: number);
12
12
  state: AnimationControllerState;
13
+ constructor(node: ThreadXMainNode, id: number);
13
14
  start(): IAnimationController;
14
15
  stop(): IAnimationController;
15
16
  pause(): IAnimationController;
16
17
  restore(): IAnimationController;
17
18
  waitUntilStopped(): Promise<void>;
18
- private onAnimationFinished;
19
+ private sendStart;
20
+ private sendStop;
19
21
  private makeStoppedPromise;
22
+ private onFinished;
23
+ private onAnimating;
20
24
  }
@@ -16,38 +16,47 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
+ /* eslint-disable @typescript-eslint/unbound-method */
20
+ import { EventEmitter } from '../../common/EventEmitter.js';
19
21
  import { assertTruthy } from '../../utils.js';
20
- export class ThreadXMainAnimationController {
22
+ export class ThreadXMainAnimationController extends EventEmitter {
21
23
  node;
22
24
  id;
23
- stoppedPromise = null;
25
+ stoppedPromise;
24
26
  /**
25
27
  * If this is null, then the animation is in a finished / stopped state.
26
28
  */
27
29
  stoppedResolve = null;
30
+ state;
28
31
  constructor(node, id) {
32
+ super();
29
33
  this.node = node;
30
34
  this.id = id;
31
- this.onAnimationFinished = this.onAnimationFinished.bind(this);
32
35
  this.state = 'stopped';
36
+ // Initial stopped promise is resolved (since the animation is stopped)
37
+ this.stoppedPromise = Promise.resolve();
38
+ // Bind event handlers
39
+ this.onAnimating = this.onAnimating.bind(this);
40
+ this.onFinished = this.onFinished.bind(this);
33
41
  }
34
- state;
35
42
  start() {
36
- if (this.stoppedResolve === null) {
43
+ if (this.state !== 'running') {
37
44
  this.makeStoppedPromise();
38
- this.node.on('animationFinished', this.onAnimationFinished);
45
+ this.sendStart();
46
+ this.state = 'running';
39
47
  }
40
- this.state = 'running';
41
- this.node.emit('startAnimation', { id: this.id });
42
48
  return this;
43
49
  }
44
50
  stop() {
45
- this.node.emit('stopAnimation', { id: this.id });
46
- this.node.off('animationFinished', this.onAnimationFinished);
47
- if (this.stoppedResolve !== null) {
48
- this.stoppedResolve();
49
- this.stoppedResolve = null;
51
+ if (this.state === 'stopped') {
52
+ return this;
50
53
  }
54
+ this.sendStop();
55
+ // if (this.stoppedResolve !== null) {
56
+ // this.stoppedResolve();
57
+ // this.stoppedResolve = null;
58
+ // this.emit('stopped', this);
59
+ // }
51
60
  this.state = 'stopped';
52
61
  return this;
53
62
  }
@@ -60,18 +69,21 @@ export class ThreadXMainAnimationController {
60
69
  return this;
61
70
  }
62
71
  waitUntilStopped() {
63
- this.makeStoppedPromise();
64
- const promise = this.stoppedPromise;
65
- assertTruthy(promise);
66
- return promise;
72
+ return this.stoppedPromise;
67
73
  }
68
- onAnimationFinished(target, { id, loop }) {
69
- if (id === this.id) {
70
- this.node.off('animationFinished', this.onAnimationFinished);
71
- this.stoppedResolve?.();
72
- this.stoppedResolve = null;
73
- this.state = 'stopped';
74
- }
74
+ sendStart() {
75
+ // Hook up event listeners
76
+ this.node.on('animationFinished', this.onFinished);
77
+ this.node.on('animationAnimating', this.onAnimating);
78
+ // Then register the animation
79
+ this.node.emit('startAnimation', { id: this.id });
80
+ }
81
+ sendStop() {
82
+ // First unregister the animation
83
+ this.node.emit('stopAnimation', { id: this.id });
84
+ // Then unhook event listeners
85
+ this.node.off('animationFinished', this.onFinished);
86
+ this.node.off('animationAnimating', this.onAnimating);
75
87
  }
76
88
  makeStoppedPromise() {
77
89
  if (this.stoppedResolve === null) {
@@ -80,5 +92,22 @@ export class ThreadXMainAnimationController {
80
92
  });
81
93
  }
82
94
  }
95
+ onFinished(target, { id }) {
96
+ if (id === this.id) {
97
+ assertTruthy(this.stoppedResolve);
98
+ this.node.off('animationFinished', this.onFinished);
99
+ this.node.off('animationAnimating', this.onAnimating);
100
+ // resolve promise
101
+ this.stoppedResolve();
102
+ this.stoppedResolve = null;
103
+ this.emit('stopped', this);
104
+ this.state = 'stopped';
105
+ }
106
+ }
107
+ onAnimating(target, { id }) {
108
+ if (id === this.id) {
109
+ this.emit('animating', this);
110
+ }
111
+ }
83
112
  }
84
113
  //# sourceMappingURL=ThreadXMainAnimationController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadXMainAnimationController.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXMainAnimationController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,OAAO,8BAA8B;IAOrB;IAA+B;IANnD,cAAc,GAAyB,IAAI,CAAC;IAC5C;;OAEG;IACH,cAAc,GAAwB,IAAI,CAAC;IAE3C,YAAoB,IAAqB,EAAU,EAAU;QAAzC,SAAI,GAAJ,IAAI,CAAiB;QAAU,OAAE,GAAF,EAAE,CAAQ;QAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,KAAK,CAA2B;IAEhC,KAAK;QACH,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7D;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QACpC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,mBAAmB,CACzB,MAAuB,EACvB,EAAE,EAAE,EAAE,IAAI,EAAiC;QAE3C,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACxB;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAChC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ThreadXMainAnimationController.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXMainAnimationController.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,12 @@ export class ThreadXRendererNode extends SharedNode {
52
52
  // TOOD: Make sure event listeners are removed when the node is destroyed.
53
53
  this.on('createAnimation', (target, { id, props, settings }) => {
54
54
  const animation = new CoreAnimation(this.coreNode, props, settings);
55
+ animation.on('animating', () => {
56
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
57
+ this.emit('animationAnimating', {
58
+ id: id,
59
+ });
60
+ });
55
61
  animation.on('finished', () => {
56
62
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
57
63
  this.emit('animationFinished', {
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadXRendererNode.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/ThreadXRendererNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThreadXRendererNode.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/ThreadXRendererNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAE9F,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AASrD,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IASvC;IARA,QAAQ,CAAW;IACnB,OAAO,GAA+B,IAAI,CAAC;IAC3C,SAAS,GAA0B,EAAE,CAAC;IAChD,OAAO,GAAmB,IAAI,CAAC;IAEvB,oBAAoB,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEvE,YACU,KAAY,EACpB,gBAA4B,EAC5B,QAAmB,EACnB,gBAA0C;QAE1C,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QALlC,UAAK,GAAL,KAAK,CAAO;QAMpB,qEAAqE;QACrE,+CAA+C;QAC/C,iDAAiD;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CACvB,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,EACxD;YACE,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,sDAAsD;gBACtD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE;oBAChE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBAChC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;SACF,CACF,CAAC;QAEF,gBAAgB;QAChB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CACjD,gBAAgB,CAAC,QAAQ,CAC1B,CAAC;QACF,YAAY,CAAC,MAAM,YAAY,mBAAmB,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,iCAAiC;QACjC,0EAA0E;QAC1E,IAAI,CAAC,EAAE,CACL,iBAAiB,EACjB,CAAC,MAA2B,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;YACvD,MAAM,SAAS,GAAG,IAAI,aAAa,CACjC,IAAI,CAAC,QAAQ,EACb,KAAsC,EACtC,QAAsC,CACvC,CAAC;YACF,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC7B,sEAAsE;gBACtE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAC9B,EAAE,EAAE,EAAY;iBACjB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC5B,sEAAsE;gBACtE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC7B,EAAE,EAAE,EAAY;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,sGAAsG;YACtG,MAAM,UAAU,GAAG,IAAI,uBAAuB,CAC5C,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC3B,SAAS,CACV,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAY,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC,CACF,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAClE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAChE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAY,CAAC,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAC/D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAY,CAAC,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAChE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAY,CAAC,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CACL,aAAa,EACb,CAAC,MAA2B,EAAE,WAAuB,EAAE,EAAE;YACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,OAAO,CACpB,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,EAAE,CACL,YAAY,EACZ,CAAC,MAA2B,EAAE,UAAqB,EAAE,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CACF,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAA2B,EAAE,EAAE;YACvD,qGAAqG;YACrG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,QAAQ,EACR,CAAC,MAAgB,EAAE,OAA0B,EAAE,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,QAAQ,EACR,CAAC,MAAgB,EAAE,OAA0B,EAAE,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,OAAO,EACP,CAAC,MAAgB,EAAE,OAAgC,EAAE,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC,CACF,CAAC;IACJ,CAAC;IAEQ,gBAAgB,CACvB,QAAa,EACb,QAAsC,EACtC,QAAkD;QAElD,IAAI,QAAQ,KAAK,UAAU,EAAE;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAkB,CAAC,CAAC;YACxE,YAAY,CAAC,MAAM,YAAY,mBAAmB,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO;SACR;aAAM;YACL,qDAAqD;YACrD,IAAI,CAAC,QAAQ,CAAC,QAA0B,CAAC;gBACvC,QAAoC,CAAC;SACxC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,SAAqC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,SAAS,EAAE;YACb,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,YAAY,CACV,KAAK,KAAK,CAAC,CAAC,EACZ,sEAAsE,CACvE,CAAC;YACF,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACrC;QACD,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,+BAA+B;IAEvB,cAAc,CAAC,KAAY,EAAE,gBAA4B;QAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CACjD,gBAAgB,CAAC,QAAQ,CAC1B,CAAC;QACF,YAAY,CAAC,MAAM,YAAY,mBAAmB,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE;YAC/B,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACvB,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACrB,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACrB,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,WAAW,EAAE,gBAAgB,CAAC,WAAW;YACzC,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,YAAY,EAAE,gBAAgB,CAAC,YAAY;YAC3C,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,GAAG,EAAE,gBAAgB,CAAC,GAAG;YAEzB,2CAA2C;YAC3C,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YAEpB,yBAAyB;YACzB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}