@hypen-space/web 0.5.2 → 0.5.3
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.
- package/dist/canvas/accessibility.d.ts +118 -11
- package/dist/canvas/accessibility.js +470 -108
- package/dist/canvas/accessibility.js.map +1 -1
- package/dist/canvas/dispatch.d.ts +24 -0
- package/dist/canvas/dispatch.js +62 -0
- package/dist/canvas/dispatch.js.map +1 -0
- package/dist/canvas/editing.d.ts +178 -0
- package/dist/canvas/editing.js +590 -0
- package/dist/canvas/editing.js.map +1 -0
- package/dist/canvas/events.d.ts +28 -23
- package/dist/canvas/events.js +76 -128
- package/dist/canvas/events.js.map +1 -1
- package/dist/canvas/focus.d.ts +78 -0
- package/dist/canvas/focus.js +182 -0
- package/dist/canvas/focus.js.map +1 -0
- package/dist/canvas/index.d.ts +3 -1
- package/dist/canvas/index.js +3 -1
- package/dist/canvas/index.js.map +1 -1
- package/dist/canvas/paint.d.ts +16 -3
- package/dist/canvas/paint.js +283 -41
- package/dist/canvas/paint.js.map +1 -1
- package/dist/canvas/renderer.d.ts +20 -1
- package/dist/canvas/renderer.js +181 -50
- package/dist/canvas/renderer.js.map +1 -1
- package/dist/canvas/selection.js +31 -177
- package/dist/canvas/selection.js.map +1 -1
- package/dist/canvas/text-geometry.d.ts +72 -0
- package/dist/canvas/text-geometry.js +244 -0
- package/dist/canvas/text-geometry.js.map +1 -0
- package/dist/canvas/text.js +42 -9
- package/dist/canvas/text.js.map +1 -1
- package/dist/canvas/types.d.ts +7 -1
- package/dist/canvas/variants.d.ts +4 -1
- package/dist/canvas/variants.js +22 -3
- package/dist/canvas/variants.js.map +1 -1
- package/dist/dom/a11y-styles.d.ts +20 -0
- package/dist/dom/a11y-styles.js +61 -0
- package/dist/dom/a11y-styles.js.map +1 -0
- package/dist/dom/applicators/aria.d.ts +19 -0
- package/dist/dom/applicators/aria.js +36 -0
- package/dist/dom/applicators/aria.js.map +1 -0
- package/dist/dom/applicators/events.d.ts +7 -0
- package/dist/dom/applicators/events.js +35 -8
- package/dist/dom/applicators/events.js.map +1 -1
- package/dist/dom/applicators/index.js +4 -0
- package/dist/dom/applicators/index.js.map +1 -1
- package/dist/dom/components/hypenapp.d.ts +25 -1
- package/dist/dom/components/hypenapp.js +213 -245
- package/dist/dom/components/hypenapp.js.map +1 -1
- package/dist/dom/components/index.js +7 -0
- package/dist/dom/components/index.js.map +1 -1
- package/dist/dom/components/spinner.js +24 -10
- package/dist/dom/components/spinner.js.map +1 -1
- package/dist/dom/components/tabs.d.ts +27 -0
- package/dist/dom/components/tabs.js +69 -0
- package/dist/dom/components/tabs.js.map +1 -0
- package/dist/dom/components/visuallyhidden.d.ts +9 -0
- package/dist/dom/components/visuallyhidden.js +26 -0
- package/dist/dom/components/visuallyhidden.js.map +1 -0
- package/dist/dom/operability.d.ts +100 -0
- package/dist/dom/operability.js +298 -0
- package/dist/dom/operability.js.map +1 -0
- package/dist/dom/renderer.d.ts +98 -5
- package/dist/dom/renderer.js +398 -63
- package/dist/dom/renderer.js.map +1 -1
- package/dist/dom/route-focus.d.ts +42 -0
- package/dist/dom/route-focus.js +88 -0
- package/dist/dom/route-focus.js.map +1 -0
- package/dist/dom/semantics.d.ts +35 -0
- package/dist/dom/semantics.js +184 -0
- package/dist/dom/semantics.js.map +1 -0
- package/package.json +2 -2
- package/src/canvas/QUICKSTART.md +4 -4
- package/src/canvas/README.md +55 -29
- package/src/canvas/accessibility.ts +507 -115
- package/src/canvas/dispatch.ts +78 -0
- package/src/canvas/editing.ts +697 -0
- package/src/canvas/events.ts +89 -142
- package/src/canvas/focus.ts +216 -0
- package/src/canvas/index.ts +8 -1
- package/src/canvas/paint.ts +339 -42
- package/src/canvas/renderer.ts +218 -70
- package/src/canvas/selection.ts +52 -210
- package/src/canvas/text-geometry.ts +311 -0
- package/src/canvas/text.ts +43 -9
- package/src/canvas/types.ts +14 -1
- package/src/canvas/variants.ts +24 -5
- package/src/dom/a11y-styles.ts +65 -0
- package/src/dom/applicators/aria.ts +41 -0
- package/src/dom/applicators/events.ts +38 -7
- package/src/dom/applicators/index.ts +5 -0
- package/src/dom/components/hypenapp.ts +244 -272
- package/src/dom/components/index.ts +7 -0
- package/src/dom/components/spinner.ts +31 -13
- package/src/dom/components/tabs.ts +76 -0
- package/src/dom/components/visuallyhidden.ts +30 -0
- package/src/dom/operability.ts +312 -0
- package/src/dom/renderer.ts +455 -63
- package/src/dom/route-focus.ts +98 -0
- package/src/dom/semantics.ts +199 -0
- package/dist/canvas/input.d.ts +0 -76
- package/dist/canvas/input.js +0 -207
- package/dist/canvas/input.js.map +0 -1
- package/src/canvas/input.ts +0 -251
package/dist/canvas/renderer.js
CHANGED
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
import { frameworkLoggers } from "@hypen-space/core/logger";
|
|
7
7
|
const log = frameworkLoggers.canvas;
|
|
8
8
|
import { computeLayout, initTaffyLayout } from "./layout.js";
|
|
9
|
-
import {
|
|
9
|
+
import { clearTextCache } from "./text.js";
|
|
10
|
+
import { paintNode, registerPainter, clearCharAdvanceCache } from "./paint.js";
|
|
10
11
|
import { CanvasEventManager } from "./events.js";
|
|
11
|
-
import { InputOverlay } from "./input.js";
|
|
12
12
|
import { AccessibilityLayer } from "./accessibility.js";
|
|
13
|
+
import { FocusManager } from "./focus.js";
|
|
14
|
+
import { TextEditController, isEditableNode } from "./editing.js";
|
|
15
|
+
import { setTextEditor } from "./paint.js";
|
|
13
16
|
import { ScrollManager } from "./scroll.js";
|
|
14
17
|
import { SelectionManager } from "./selection.js";
|
|
15
18
|
import { setSelectionManager } from "./paint.js";
|
|
@@ -21,7 +24,6 @@ const DEFAULT_OPTIONS = {
|
|
|
21
24
|
backgroundColor: "#ffffff",
|
|
22
25
|
enableAccessibility: true,
|
|
23
26
|
enableHitTesting: true,
|
|
24
|
-
enableInputOverlay: true,
|
|
25
27
|
enableDirtyRects: false,
|
|
26
28
|
enableLayerCaching: false,
|
|
27
29
|
maxLayerCacheSize: 10,
|
|
@@ -42,13 +44,28 @@ export class CanvasRenderer {
|
|
|
42
44
|
eventManager;
|
|
43
45
|
scrollManager;
|
|
44
46
|
selectionManager;
|
|
45
|
-
inputOverlay;
|
|
46
47
|
accessibilityLayer;
|
|
48
|
+
focusManager;
|
|
49
|
+
textEditor;
|
|
47
50
|
dirtyTracker;
|
|
48
51
|
rafId = null;
|
|
49
52
|
needsRedraw = false;
|
|
53
|
+
// Whether the next frame must re-run layout. Patches, resize, font loads,
|
|
54
|
+
// and image decodes set it; pure paint frames (scroll, hover, caret blink,
|
|
55
|
+
// scrollbar fade) leave it clear so the frame skips the Taffy solve.
|
|
56
|
+
layoutDirty = true;
|
|
50
57
|
frameCount = 0;
|
|
51
58
|
lastFrameTime = 0;
|
|
59
|
+
boundFontsLoaded = () => {
|
|
60
|
+
// Metrics measured against the fallback font are stale now — both the
|
|
61
|
+
// wrapped-text metrics and the per-glyph advances used by the manual
|
|
62
|
+
// letter-spacing path (keyed by CSS font string, which does not change
|
|
63
|
+
// when the real font replaces the fallback).
|
|
64
|
+
clearTextCache();
|
|
65
|
+
clearCharAdvanceCache();
|
|
66
|
+
this.layoutDirty = true;
|
|
67
|
+
this.scheduleRedraw();
|
|
68
|
+
};
|
|
52
69
|
constructor(canvas, engine, options) {
|
|
53
70
|
this.canvas = canvas;
|
|
54
71
|
this.engine = engine;
|
|
@@ -70,30 +87,74 @@ export class CanvasRenderer {
|
|
|
70
87
|
this.scrollManager = new ScrollManager(canvas, () => this.scheduleRedraw());
|
|
71
88
|
this.selectionManager = new SelectionManager(canvas, () => this.scheduleRedraw());
|
|
72
89
|
setSelectionManager(this.selectionManager);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
// The mirror is a transparent positioned overlay above the canvas: its
|
|
91
|
+
// elements are exposed to AT with REAL geometry (screen-reader browse
|
|
92
|
+
// modes are geometry-driven) and join the native tab order, while the
|
|
93
|
+
// canvas paints all pixels and keeps all pointer events.
|
|
94
|
+
this.accessibilityLayer = new AccessibilityLayer(canvas, this.options.enableAccessibility || false);
|
|
95
|
+
// Text editing happens IN the focused mirror element (the browser owns
|
|
96
|
+
// value/caret/selection/IME there); the controller reads that state and
|
|
97
|
+
// the canvas paints text, selection, and caret natively.
|
|
98
|
+
this.textEditor = new TextEditController(canvas, engine, {
|
|
99
|
+
scheduleRedraw: () => this.scheduleRedraw(),
|
|
100
|
+
markDirty: (node) => {
|
|
101
|
+
if (this.options.enableDirtyRects) {
|
|
102
|
+
this.dirtyTracker.markNodeDirty(node);
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
// Proxy blurred to somewhere outside the canvas: node.focused follows.
|
|
106
|
+
onEditBlur: () => this.focusManager.clearFocus(),
|
|
107
|
+
});
|
|
108
|
+
setTextEditor(this.textEditor);
|
|
109
|
+
// DOM focus on mirror elements (canvas fallback content) is the single
|
|
110
|
+
// source of truth for focus: Tab/Shift+Tab traverse the mirror natively,
|
|
111
|
+
// and the pointer path (hit-test in CanvasEventManager) funnels into the
|
|
112
|
+
// same place by focusing the node's mirror element.
|
|
113
|
+
this.focusManager = new FocusManager(this.accessibilityLayer, engine, {
|
|
114
|
+
getNode: (id) => this.nodes.get(id),
|
|
115
|
+
isAuxFocusTarget: (el) => this.textEditor.isProxyElement(el),
|
|
116
|
+
onFocusChange: (next) => {
|
|
117
|
+
if (next && isEditableNode(next)) {
|
|
118
|
+
const el = this.accessibilityLayer.getElement(next.id);
|
|
119
|
+
if (el) {
|
|
120
|
+
this.textEditor.beginEditing(next, el);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.textEditor.endEditing();
|
|
125
|
+
}
|
|
126
|
+
// Repaint so focus styling (input border, button ring) updates.
|
|
127
|
+
this.scheduleRedraw();
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
this.eventManager.setFocusManager(this.focusManager);
|
|
131
|
+
this.eventManager.setEditablePointerHandler((node, point) => {
|
|
132
|
+
this.textEditor.placeCaretFromPoint(node, point);
|
|
133
|
+
});
|
|
134
|
+
// Listen for redraw requests from event manager (paint-only) and image
|
|
135
|
+
// loads (which carry `detail.layout` — a decoded intrinsic size can
|
|
136
|
+
// change the layout, see `getImageNaturalAspect`).
|
|
137
|
+
this.canvas.addEventListener("hypen:redraw", (e) => {
|
|
138
|
+
if (e.detail?.layout) {
|
|
139
|
+
this.layoutDirty = true;
|
|
88
140
|
}
|
|
89
|
-
|
|
90
|
-
|
|
141
|
+
this.scheduleRedraw();
|
|
142
|
+
});
|
|
143
|
+
// A late-loading web font changes every measurement made against the
|
|
144
|
+
// fallback font — re-run layout once the real metrics are available.
|
|
145
|
+
if (typeof document !== "undefined") {
|
|
146
|
+
document.fonts?.addEventListener?.("loadingdone", this.boundFontsLoaded);
|
|
147
|
+
}
|
|
148
|
+
// Eagerly initialise Taffy WASM for layout (non-blocking — fallback used
|
|
149
|
+
// until ready). Repaint once it arrives: the fallback's first frame is
|
|
150
|
+
// approximate, and without this redraw its layout would stick until the
|
|
151
|
+
// next state change.
|
|
152
|
+
initTaffyLayout().then((ready) => {
|
|
153
|
+
if (ready) {
|
|
154
|
+
this.layoutDirty = true;
|
|
155
|
+
this.scheduleRedraw();
|
|
91
156
|
}
|
|
92
157
|
});
|
|
93
|
-
// Listen for redraw requests from event manager
|
|
94
|
-
this.canvas.addEventListener("hypen:redraw", () => this.scheduleRedraw());
|
|
95
|
-
// Eagerly initialise Taffy WASM for layout (non-blocking — fallback used until ready)
|
|
96
|
-
initTaffyLayout();
|
|
97
158
|
// Don't schedule initial render - wait for patches
|
|
98
159
|
}
|
|
99
160
|
/**
|
|
@@ -122,6 +183,7 @@ export class CanvasRenderer {
|
|
|
122
183
|
this.canvas.width = width;
|
|
123
184
|
this.canvas.height = height;
|
|
124
185
|
this.setupHiDPI();
|
|
186
|
+
this.layoutDirty = true;
|
|
125
187
|
this.scheduleRedraw();
|
|
126
188
|
}
|
|
127
189
|
/**
|
|
@@ -136,10 +198,11 @@ export class CanvasRenderer {
|
|
|
136
198
|
if (this.options.enableDirtyRects && !hadRoot && this.rootNode !== null) {
|
|
137
199
|
this.dirtyTracker.markFullDirty();
|
|
138
200
|
}
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
201
|
+
// The accessibility mirror is synced incrementally by the per-patch
|
|
202
|
+
// handlers above — no per-batch rebuild, so mirror element identity
|
|
203
|
+
// (and with it AT focus/virtual-cursor position) survives updates.
|
|
204
|
+
// Any patch can affect layout (props, tree shape, text).
|
|
205
|
+
this.layoutDirty = true;
|
|
143
206
|
// Schedule redraw
|
|
144
207
|
this.scheduleRedraw();
|
|
145
208
|
}
|
|
@@ -149,7 +212,7 @@ export class CanvasRenderer {
|
|
|
149
212
|
applyPatch(patch) {
|
|
150
213
|
switch (patch.type) {
|
|
151
214
|
case "create":
|
|
152
|
-
this.onCreate(patch.id, patch.elementType, patch.props || {});
|
|
215
|
+
this.onCreate(patch.id, patch.elementType, patch.props || {}, patch.semantics);
|
|
153
216
|
break;
|
|
154
217
|
case "setProp":
|
|
155
218
|
this.onSetProp(patch.id, patch.name, patch.value);
|
|
@@ -175,12 +238,28 @@ export class CanvasRenderer {
|
|
|
175
238
|
case "attach":
|
|
176
239
|
this.onInsert(patch.parentId, patch.id, patch.beforeId);
|
|
177
240
|
break;
|
|
241
|
+
case "setSemantics":
|
|
242
|
+
this.onSetSemantics(patch.id, patch.semantics);
|
|
243
|
+
break;
|
|
178
244
|
}
|
|
179
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Reactive accessibility update: swap in the node's complete re-resolved
|
|
248
|
+
* semantics block and re-apply it to the shadow element. This is the only
|
|
249
|
+
* channel that keeps the canvas shadow tree's accessible name/state live —
|
|
250
|
+
* painted text is invisible to AT, so prop deltas alone can't do it.
|
|
251
|
+
*/
|
|
252
|
+
onSetSemantics(id, semantics) {
|
|
253
|
+
const node = this.nodes.get(id);
|
|
254
|
+
if (!node)
|
|
255
|
+
return;
|
|
256
|
+
node.semantics = semantics;
|
|
257
|
+
this.accessibilityLayer.updateNode(node);
|
|
258
|
+
}
|
|
180
259
|
/**
|
|
181
260
|
* Create new virtual node
|
|
182
261
|
*/
|
|
183
|
-
onCreate(id, elementType, props) {
|
|
262
|
+
onCreate(id, elementType, props, semantics) {
|
|
184
263
|
// Engine may send a Map (from WASM) or a plain object. Copy either way so
|
|
185
264
|
// we own the prop bag and can mutate it during applicator normalisation.
|
|
186
265
|
const rawProps = props instanceof Map ? Object.fromEntries(props) : { ...props };
|
|
@@ -195,6 +274,7 @@ export class CanvasRenderer {
|
|
|
195
274
|
id,
|
|
196
275
|
type: elementType,
|
|
197
276
|
props: rawProps,
|
|
277
|
+
semantics,
|
|
198
278
|
children: [],
|
|
199
279
|
parent: null,
|
|
200
280
|
visible: true,
|
|
@@ -209,6 +289,8 @@ export class CanvasRenderer {
|
|
|
209
289
|
hovered: false,
|
|
210
290
|
};
|
|
211
291
|
this.nodes.set(id, node);
|
|
292
|
+
// Mirror the create (element stays detached until its insert patch).
|
|
293
|
+
this.accessibilityLayer.createNode(node);
|
|
212
294
|
}
|
|
213
295
|
/**
|
|
214
296
|
* Set property on node
|
|
@@ -253,6 +335,11 @@ export class CanvasRenderer {
|
|
|
253
335
|
}
|
|
254
336
|
// Update accessibility
|
|
255
337
|
this.accessibilityLayer.updateNode(node);
|
|
338
|
+
// Engine value echo for an actively edited input: same value → no-op
|
|
339
|
+
// (the caret must not move); a rewritten value re-seeds the element.
|
|
340
|
+
if (name === "value") {
|
|
341
|
+
this.textEditor.onEngineValueEcho(node);
|
|
342
|
+
}
|
|
256
343
|
}
|
|
257
344
|
/**
|
|
258
345
|
* Remove a property from a node
|
|
@@ -312,6 +399,9 @@ export class CanvasRenderer {
|
|
|
312
399
|
const child = this.nodes.get(id);
|
|
313
400
|
if (!child)
|
|
314
401
|
return;
|
|
402
|
+
// Mirror the insert/attach/move — insertNode resolves root addressing
|
|
403
|
+
// and unknown-beforeId fallback with the same rules as the code below.
|
|
404
|
+
this.accessibilityLayer.insertNode(parentId, id, beforeId);
|
|
315
405
|
// Check if this is setting the root node (parent_id === id === "root" or similar)
|
|
316
406
|
if (parentId === "root" && id === "root") {
|
|
317
407
|
this.rootNode = child;
|
|
@@ -388,6 +478,13 @@ export class CanvasRenderer {
|
|
|
388
478
|
const node = this.nodes.get(id);
|
|
389
479
|
if (!node)
|
|
390
480
|
return;
|
|
481
|
+
// An edit session inside the detached subtree ends (flushing any
|
|
482
|
+
// pending composition value) before the subtree leaves the tree, and
|
|
483
|
+
// focus state follows.
|
|
484
|
+
this.textEditor.endIfWithin(node);
|
|
485
|
+
this.focusManager.clearIfWithin(node);
|
|
486
|
+
// Mirror keeps the element (and subtree ids) alive for re-attach.
|
|
487
|
+
this.accessibilityLayer.detachNode(id);
|
|
391
488
|
// Mark dirty so the next paint doesn't leave stale pixels behind.
|
|
392
489
|
if (this.options.enableDirtyRects) {
|
|
393
490
|
this.dirtyTracker.markNodeDirty(node);
|
|
@@ -416,6 +513,11 @@ export class CanvasRenderer {
|
|
|
416
513
|
const node = this.nodes.get(id);
|
|
417
514
|
if (!node)
|
|
418
515
|
return;
|
|
516
|
+
// End any edit session inside the removed subtree; focus state follows.
|
|
517
|
+
this.textEditor.endIfWithin(node);
|
|
518
|
+
this.focusManager.clearIfWithin(node);
|
|
519
|
+
// Drop the mirror element and its subtree's id mappings.
|
|
520
|
+
this.accessibilityLayer.removeNode(node);
|
|
419
521
|
// Mark dirty before removal
|
|
420
522
|
if (this.options.enableDirtyRects) {
|
|
421
523
|
this.dirtyTracker.markNodeDirty(node);
|
|
@@ -467,6 +569,14 @@ export class CanvasRenderer {
|
|
|
467
569
|
else {
|
|
468
570
|
this.renderFull(dpr);
|
|
469
571
|
}
|
|
572
|
+
// Layout may have moved the edited input — keep the IME proxy (and with
|
|
573
|
+
// it the IME candidate window) pinned to the painted caret.
|
|
574
|
+
if (this.textEditor.isActive()) {
|
|
575
|
+
this.textEditor.syncProxyPosition();
|
|
576
|
+
}
|
|
577
|
+
// Keep the semantics overlay's element boxes on the painted bounds so
|
|
578
|
+
// screen-reader browse modes (geometry-driven) track layout changes.
|
|
579
|
+
this.accessibilityLayer.syncPositions(this.rootNode);
|
|
470
580
|
// Performance logging
|
|
471
581
|
if (this.options.logPerformance) {
|
|
472
582
|
const elapsed = performance.now() - startTime;
|
|
@@ -491,6 +601,29 @@ export class CanvasRenderer {
|
|
|
491
601
|
this.refreshComputedProps(child);
|
|
492
602
|
}
|
|
493
603
|
}
|
|
604
|
+
/**
|
|
605
|
+
* Resolve variants and re-run layout when (and only when) something that
|
|
606
|
+
* affects layout changed since the last frame. Variants are resolved every
|
|
607
|
+
* frame — hover/focus/pressed winners must reach paint — but the Taffy
|
|
608
|
+
* solve, computed-prop refresh, and scroll-bounds pass only run when a
|
|
609
|
+
* patch/resize/font/image marked the layout dirty or a variant winner
|
|
610
|
+
* actually changed (variants can rewrite spacing/size props).
|
|
611
|
+
*/
|
|
612
|
+
runLayoutIfNeeded(dpr) {
|
|
613
|
+
if (!this.rootNode)
|
|
614
|
+
return;
|
|
615
|
+
// Resolve responsive + state variants against the current content width
|
|
616
|
+
// BEFORE layout so spacing/size winners feed the layout engine and
|
|
617
|
+
// colour/opacity winners feed paint.
|
|
618
|
+
const contentWidth = this.canvas.width / dpr;
|
|
619
|
+
const variantsChanged = applyVariants(this.rootNode, contentWidth);
|
|
620
|
+
if (!variantsChanged && !this.layoutDirty)
|
|
621
|
+
return;
|
|
622
|
+
this.refreshComputedProps(this.rootNode);
|
|
623
|
+
computeLayout(this.ctx, this.rootNode, contentWidth, this.canvas.height / dpr);
|
|
624
|
+
ScrollManager.updateScrollBounds(this.rootNode);
|
|
625
|
+
this.layoutDirty = false;
|
|
626
|
+
}
|
|
494
627
|
/**
|
|
495
628
|
* Full canvas repaint (default behavior when dirty rects disabled)
|
|
496
629
|
*/
|
|
@@ -504,14 +637,7 @@ export class CanvasRenderer {
|
|
|
504
637
|
}
|
|
505
638
|
// Layout and paint
|
|
506
639
|
if (this.rootNode) {
|
|
507
|
-
|
|
508
|
-
// BEFORE layout so spacing/size winners feed the layout engine and
|
|
509
|
-
// colour/opacity winners feed paint.
|
|
510
|
-
const contentWidth = this.canvas.width / dpr;
|
|
511
|
-
applyVariants(this.rootNode, contentWidth);
|
|
512
|
-
this.refreshComputedProps(this.rootNode);
|
|
513
|
-
computeLayout(this.ctx, this.rootNode, contentWidth, this.canvas.height / dpr);
|
|
514
|
-
ScrollManager.updateScrollBounds(this.rootNode);
|
|
640
|
+
this.runLayoutIfNeeded(dpr);
|
|
515
641
|
paintNode(this.ctx, this.rootNode);
|
|
516
642
|
if (this.options.showLayoutBounds) {
|
|
517
643
|
this.drawLayoutBounds(this.rootNode);
|
|
@@ -522,14 +648,7 @@ export class CanvasRenderer {
|
|
|
522
648
|
* Optimized render that only repaints dirty regions
|
|
523
649
|
*/
|
|
524
650
|
renderWithDirtyRects(dpr) {
|
|
525
|
-
|
|
526
|
-
if (this.rootNode) {
|
|
527
|
-
const contentWidth = this.canvas.width / dpr;
|
|
528
|
-
applyVariants(this.rootNode, contentWidth);
|
|
529
|
-
this.refreshComputedProps(this.rootNode);
|
|
530
|
-
computeLayout(this.ctx, this.rootNode, contentWidth, this.canvas.height / dpr);
|
|
531
|
-
ScrollManager.updateScrollBounds(this.rootNode);
|
|
532
|
-
}
|
|
651
|
+
this.runLayoutIfNeeded(dpr);
|
|
533
652
|
const dirtyRegion = this.dirtyTracker.getDirtyRegion();
|
|
534
653
|
this.dirtyTracker.clear();
|
|
535
654
|
// Nothing dirty — skip repaint entirely
|
|
@@ -548,9 +667,11 @@ export class CanvasRenderer {
|
|
|
548
667
|
this.ctx.fillStyle = this.options.backgroundColor;
|
|
549
668
|
this.ctx.fillRect(dirtyRegion.x, dirtyRegion.y, dirtyRegion.width, dirtyRegion.height);
|
|
550
669
|
}
|
|
551
|
-
// Repaint the
|
|
670
|
+
// Repaint the tree — the clip path bounds rasterized pixels and the
|
|
671
|
+
// dirty region is threaded through paintNode so subtrees that cannot
|
|
672
|
+
// reach it are pruned from the traversal entirely.
|
|
552
673
|
if (this.rootNode) {
|
|
553
|
-
paintNode(this.ctx, this.rootNode);
|
|
674
|
+
paintNode(this.ctx, this.rootNode, dirtyRegion);
|
|
554
675
|
if (this.options.showLayoutBounds) {
|
|
555
676
|
this.drawLayoutBounds(this.rootNode);
|
|
556
677
|
}
|
|
@@ -591,11 +712,13 @@ export class CanvasRenderer {
|
|
|
591
712
|
* Clear renderer
|
|
592
713
|
*/
|
|
593
714
|
clear() {
|
|
715
|
+
this.textEditor.endEditing();
|
|
594
716
|
this.rootNode = null;
|
|
595
717
|
this.nodes.clear();
|
|
596
718
|
this.eventManager.setRootNode(null);
|
|
597
719
|
this.scrollManager.setRootNode(null);
|
|
598
720
|
this.selectionManager.setRootNode(null);
|
|
721
|
+
this.accessibilityLayer.rebuild(null);
|
|
599
722
|
this.dirtyTracker.clear();
|
|
600
723
|
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
601
724
|
}
|
|
@@ -610,7 +733,9 @@ export class CanvasRenderer {
|
|
|
610
733
|
*/
|
|
611
734
|
setOptions(options) {
|
|
612
735
|
this.options = { ...this.options, ...options };
|
|
613
|
-
|
|
736
|
+
// Re-enabling rebuilds the mirror from the current tree — incremental
|
|
737
|
+
// sync has no history to replay for the disabled period.
|
|
738
|
+
this.accessibilityLayer.setEnabled(this.options.enableAccessibility || false, this.rootNode);
|
|
614
739
|
}
|
|
615
740
|
/**
|
|
616
741
|
* Destroy renderer
|
|
@@ -619,10 +744,16 @@ export class CanvasRenderer {
|
|
|
619
744
|
if (this.rafId !== null) {
|
|
620
745
|
cancelAnimationFrame(this.rafId);
|
|
621
746
|
}
|
|
747
|
+
if (typeof document !== "undefined") {
|
|
748
|
+
document.fonts?.removeEventListener?.("loadingdone", this.boundFontsLoaded);
|
|
749
|
+
}
|
|
622
750
|
this.eventManager.destroy();
|
|
623
751
|
this.scrollManager.destroy();
|
|
624
752
|
this.selectionManager.destroy();
|
|
625
753
|
setSelectionManager(null);
|
|
754
|
+
this.textEditor.destroy();
|
|
755
|
+
setTextEditor(null);
|
|
756
|
+
this.focusManager.destroy();
|
|
626
757
|
this.accessibilityLayer.destroy();
|
|
627
758
|
}
|
|
628
759
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/canvas/renderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAYpC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE1F,MAAM,eAAe,GAA0B;IAC7C,gBAAgB,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,IAAI;IACtB,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,iBAAiB,EAAE,EAAE;IACrB,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,MAAM,CAAoB;IAC1B,GAAG,CAA2B;IAC9B,MAAM,CAAU;IAChB,OAAO,CAAwB;IAE/B,QAAQ,GAAuB,IAAI,CAAC;IACpC,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvC,YAAY,CAAqB;IACjC,aAAa,CAAgB;IAC7B,gBAAgB,CAAmB;IACnC,YAAY,CAAe;IAC3B,kBAAkB,CAAqB;IAEvC,YAAY,CAAmB;IAE/B,KAAK,GAAkB,IAAI,CAAC;IAC5B,WAAW,GAAG,KAAK,CAAC;IAEpB,UAAU,GAAG,CAAC,CAAC;IACf,aAAa,GAAG,CAAC,CAAC;IAE1B,YAAY,MAAyB,EAAE,MAAe,EAAE,OAAwC;QAC9F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAElD,cAAc;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,cAAc;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,gCAAgC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAElE,wBAAwB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAClF,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CACjC,MAAc,CAAC,aAAa,IAAI,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAC1F,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAC7C,MAAc,CAAC,aAAa,IAAI,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EACzF,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,KAAK,CAC1C,CAAC;QAEF,sEAAsE;QACtE,sEAAsE;QACtE,mDAAmD;QACnD,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CACzB,IAAI,EACJ,IAAI,EACJ,CAAC,KAAK,EAAE,EAAE;oBACR,0DAA0D;oBAC1D,gDAAgD;oBAChD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;oBACzB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAE1E,sFAAsF;QACtF,eAAe,EAAE,CAAC;QAElB,mDAAmD;IACrD,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAEvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEzB,6BAA6B;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;QAE9C,0CAA0C;QAC1C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAa,EAAE,MAAc;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAgB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;QAEvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,qEAAqE;QACrE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,KAAY;QAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,WAAY,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,IAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM;YAER,KAAK,YAAY;gBACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;gBAC1C,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;gBACvC,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAS,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM;YAER,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAS,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAG,CAAC,CAAC;gBACzB,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAG,CAAC,CAAC;gBACzB,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAS,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,EAAU,EAAE,WAAmB,EAAE,KAA0B;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,QAAQ,GACZ,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;QAClE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAElC,uEAAuE;QACvE,qEAAqE;QACrE,oEAAoE;QACpE,gEAAgE;QAChE,0CAA0C;QAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAgB;YACxB,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1C,SAAS,EACP,SAAS,KAAK,QAAQ;gBACtB,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACxB,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACxB,QAAQ,CAAC,MAAM,IAAI,IAAI;YACzB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,QAAQ;YACtF,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,EAAU,EAAE,IAAY,EAAE,KAAU;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,6CAA6C;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEzB,4EAA4E;QAC5E,qDAAqD;QACrD,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7B,yEAAyE;QACzE,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,iEAAiE;QACjE,4EAA4E;QAC5E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IACE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;YAC7D,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAC7D,CAAC;YACD,IAAI,CAAC,SAAS;gBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QAC9B,CAAC;QAED,0EAA0E;QAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,EAAU,EAAE,IAAY;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExB,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IACE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;YAC7D,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAC7D,CAAC;YACD,IAAI,CAAC,SAAS;gBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,EAAU,EAAE,IAAY;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAErB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,QAAgB,EAAE,EAAU,EAAE,QAAiB;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,kFAAkF;QAClF,IAAI,QAAQ,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,iCAAiC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,8DAA8D;YAC9D,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAEtB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACxE,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,QAAgB,EAAE,EAAU,EAAE,QAAiB;QAC5D,yBAAyB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9B,sCAAsC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,QAAQ,CAAC,EAAU;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,kEAAkE;QAClE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACpC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,EAAU;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,4BAA4B;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO;QAEhC,yFAAyF;QACzF,IAAI,OAAO,qBAAqB,KAAK,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM;QACZ,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,CAAC;gBAClD,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,UAAU,iBAAiB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjF,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACpB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,IAAiB;QAC5C,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAW;QAC5B,eAAe;QACf,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhE,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,wEAAwE;YACxE,mEAAmE;YACnE,qCAAqC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;YAC7C,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzC,aAAa,CACX,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,EACb,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CACzB,CAAC;YAEF,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEhD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,GAAW;QACtC,oDAAoD;QACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;YAC7C,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzC,aAAa,CACX,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,EACb,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CACzB,CAAC;YACF,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,wCAAwC;QACxC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhB,yDAAyD;QACzD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhB,8BAA8B;QAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAExF,yCAAyC;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACzF,CAAC;QAED,0EAA0E;QAC1E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEnB,iCAAiC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,sBAAsB,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACzF,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAiB;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAErE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY,EAAE,OAAwB;QACpD,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAuC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,KAAK,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAChC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/canvas/renderer.ts"],"names":[],"mappings":"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"}
|