@nuforge/editor 0.2.0 → 0.3.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.
- package/dist/index.cjs +190 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +252 -3
- package/dist/index.mjs +186 -1
- package/dist/index.mjs.map +1 -0
- package/dist/react.cjs +325 -3
- package/dist/react.cjs.map +1 -0
- package/dist/react.d.ts +205 -4
- package/dist/react.mjs +325 -4
- package/dist/react.mjs.map +1 -0
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var t = require('@nuforge/types');
|
|
4
|
+
var core = require('@nuforge/core');
|
|
5
|
+
var reactivity = require('@nuforge/reactivity');
|
|
4
6
|
var parser = require('@nuforge/parser');
|
|
5
7
|
|
|
6
8
|
function _interopNamespaceDefault(e) {
|
|
@@ -22,9 +24,11 @@ function _interopNamespaceDefault(e) {
|
|
|
22
24
|
|
|
23
25
|
var t__namespace = /*#__PURE__*/_interopNamespaceDefault(t);
|
|
24
26
|
|
|
27
|
+
/** A literal expression (`"x"`, `5`, `true`). */
|
|
25
28
|
function lit(value) {
|
|
26
29
|
return t__namespace.literal({ value });
|
|
27
30
|
}
|
|
31
|
+
/** A text node: `<text text={value} />`, rendered as its string value. */
|
|
28
32
|
function text(value) {
|
|
29
33
|
return t__namespace.tagTemplate({
|
|
30
34
|
tag: 'text',
|
|
@@ -32,6 +36,10 @@ function text(value) {
|
|
|
32
36
|
children: [],
|
|
33
37
|
});
|
|
34
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Concise element builder — `el('div', { class: lit('box') }, [text('hi')])`
|
|
41
|
+
* instead of the verbose `t.tagTemplate({ tag, props, children })`.
|
|
42
|
+
*/
|
|
35
43
|
function el(tag, props = {}, children = []) {
|
|
36
44
|
return t__namespace.tagTemplate({ tag, props, children });
|
|
37
45
|
}
|
|
@@ -64,6 +72,7 @@ class BlockRegistry {
|
|
|
64
72
|
return out;
|
|
65
73
|
}
|
|
66
74
|
}
|
|
75
|
+
/** The built-in palette — the common HTML primitives. */
|
|
67
76
|
const DEFAULT_BLOCKS = [
|
|
68
77
|
{ id: 'box', label: 'Box', icon: 'square', create: () => el('div') },
|
|
69
78
|
{ id: 'text', label: 'Text', icon: 'type', create: () => text('Text') },
|
|
@@ -93,6 +102,123 @@ const DEFAULT_BLOCKS = [
|
|
|
93
102
|
},
|
|
94
103
|
];
|
|
95
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Wire protocol for `RemoteCanvasHost` <-> `createCanvasReceiver`: a genuinely
|
|
107
|
+
* navigated `/canvas/[id]`-style iframe has its own JS realm, so state and
|
|
108
|
+
* interaction can't cross as direct object references the way `IframeCanvas`'s
|
|
109
|
+
* portal allows — everything here is a structured-clone-safe plain message.
|
|
110
|
+
*
|
|
111
|
+
* Deliberately generic: only the shapes the editor primitive itself needs
|
|
112
|
+
* (state sync, ready handshake, the core interaction events) are typed. Host
|
|
113
|
+
* concerns like theme/preview-mode/overrides ride through `CanvasUiMessage`'s
|
|
114
|
+
* opaque `payload` — this package relays it, never interprets it.
|
|
115
|
+
*/
|
|
116
|
+
const CANVAS_CHANNEL = 'nuforge-canvas';
|
|
117
|
+
const CANVAS_PROTOCOL_VERSION = 1;
|
|
118
|
+
/** Namespace the `BroadcastChannel` per canvas instance (derive from the
|
|
119
|
+
* iframe's own `src`, so a host never has to invent/track a separate id). */
|
|
120
|
+
function canvasChannelName(src) {
|
|
121
|
+
return `${CANVAS_CHANNEL}:${src}`;
|
|
122
|
+
}
|
|
123
|
+
/** Narrow an arbitrary `BroadcastChannel` payload to a message from this
|
|
124
|
+
* protocol — guards against unrelated traffic on the same channel name and
|
|
125
|
+
* against a version mismatch across a stale cached bundle. */
|
|
126
|
+
function isCanvasMessage(data) {
|
|
127
|
+
return (!!data &&
|
|
128
|
+
typeof data === 'object' &&
|
|
129
|
+
data.channel === CANVAS_CHANNEL &&
|
|
130
|
+
data.v === CANVAS_PROTOCOL_VERSION);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Canvas-side receiver for a genuinely-navigated `/canvas/[id]`-style route:
|
|
135
|
+
* a `Nu` instance kept in sync with the host's one-way, via `BroadcastChannel`
|
|
136
|
+
* + `t.unflatten`/`t.merge` (the same primitives `@nuforge/collaboration`'s
|
|
137
|
+
* `LoroSyncProvider` uses for its state<->doc binding, without the CRDT layer
|
|
138
|
+
* — there's exactly one writer here, so convergence machinery is unneeded).
|
|
139
|
+
* No `createEditor()`: this instance is never meant to originate an edit the
|
|
140
|
+
* host doesn't already know about, so it only needs `Nu`, not the mutation SDK.
|
|
141
|
+
*/
|
|
142
|
+
function createCanvasReceiver(opts) {
|
|
143
|
+
const nu = core.Nu.create({ externals: opts.externals });
|
|
144
|
+
const volatile = reactivity.reactive({ activeComponent: null, loadGeneration: 0 });
|
|
145
|
+
const channel = new BroadcastChannel(canvasChannelName(opts.src));
|
|
146
|
+
const uiListeners = new Set();
|
|
147
|
+
/** Did the incoming flattened state add or remove any node id (a
|
|
148
|
+
* structural change), vs. only edit fields on already-known nodes? */
|
|
149
|
+
const isStructuralChange = (incoming) => {
|
|
150
|
+
if (!nu.loaded) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
const currentKeys = Object.keys(t__namespace.flatten(nu.state).types);
|
|
154
|
+
const incomingKeys = Object.keys(incoming);
|
|
155
|
+
if (currentKeys.length !== incomingKeys.length) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
const incomingSet = new Set(incomingKeys);
|
|
159
|
+
return currentKeys.some((key) => !incomingSet.has(key));
|
|
160
|
+
};
|
|
161
|
+
const applyState = (message) => {
|
|
162
|
+
// A full reload — the very first bootstrap, any later resync (`init` —
|
|
163
|
+
// see RemoteCanvasHost's `previewMode`/`activeComponent`-change doc), OR
|
|
164
|
+
// a `patch` that structurally changed the tree. See `volatile.loadGeneration`'s
|
|
165
|
+
// doc for why structural patches are folded into this same path instead
|
|
166
|
+
// of merging in place.
|
|
167
|
+
const needsFullReload = message.type === 'init' || isStructuralChange(message.flat.types);
|
|
168
|
+
if (needsFullReload) {
|
|
169
|
+
nu.load(t__namespace.unflatten(message.flat));
|
|
170
|
+
volatile.loadGeneration++;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
nu.change(() => t__namespace.merge(nu.state, t__namespace.unflatten(message.flat)));
|
|
174
|
+
}
|
|
175
|
+
volatile.activeComponent = message.activeComponent;
|
|
176
|
+
};
|
|
177
|
+
const onMessage = (event) => {
|
|
178
|
+
if (!isCanvasMessage(event.data)) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const message = event.data;
|
|
182
|
+
if (message.type === 'init' || message.type === 'patch') {
|
|
183
|
+
applyState(message);
|
|
184
|
+
}
|
|
185
|
+
else if (message.type === 'ui') {
|
|
186
|
+
for (const cb of uiListeners) {
|
|
187
|
+
cb(message.payload);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
channel.addEventListener('message', onMessage);
|
|
192
|
+
return {
|
|
193
|
+
nu,
|
|
194
|
+
volatile,
|
|
195
|
+
postReady() {
|
|
196
|
+
channel.postMessage({
|
|
197
|
+
channel: CANVAS_CHANNEL,
|
|
198
|
+
v: CANVAS_PROTOCOL_VERSION,
|
|
199
|
+
type: 'ready',
|
|
200
|
+
mountGen: Math.floor(Math.random() * 1e9),
|
|
201
|
+
});
|
|
202
|
+
},
|
|
203
|
+
onUi(cb) {
|
|
204
|
+
uiListeners.add(cb);
|
|
205
|
+
return () => uiListeners.delete(cb);
|
|
206
|
+
},
|
|
207
|
+
postEvent(message) {
|
|
208
|
+
channel.postMessage({
|
|
209
|
+
channel: CANVAS_CHANNEL,
|
|
210
|
+
v: CANVAS_PROTOCOL_VERSION,
|
|
211
|
+
...message,
|
|
212
|
+
});
|
|
213
|
+
},
|
|
214
|
+
dispose() {
|
|
215
|
+
channel.removeEventListener('message', onMessage);
|
|
216
|
+
channel.close();
|
|
217
|
+
uiListeners.clear();
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
96
222
|
class CommandRegistry {
|
|
97
223
|
editor;
|
|
98
224
|
commands = new Map();
|
|
@@ -113,6 +239,13 @@ class CommandRegistry {
|
|
|
113
239
|
}
|
|
114
240
|
}
|
|
115
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Compute a drop position from the pointer's Y against a target's bounding rect.
|
|
244
|
+
* When `allowInside` is set, the middle band is `inside` (drop as a child) and
|
|
245
|
+
* the outer bands are `before`/`after`; otherwise it's a simple before/after
|
|
246
|
+
* split at the midpoint. Pure — use it from an `onDragOver`/`onPointerMove`
|
|
247
|
+
* handler to drive a drop indicator and the eventual `moveNode`/`pasteNode`.
|
|
248
|
+
*/
|
|
116
249
|
function dropPositionFromPointer(clientY, rect, opts = {}) {
|
|
117
250
|
const ratio = rect.height > 0 ? (clientY - rect.top) / rect.height : 0;
|
|
118
251
|
if (opts.allowInside) {
|
|
@@ -124,6 +257,7 @@ function dropPositionFromPointer(clientY, rect, opts = {}) {
|
|
|
124
257
|
}
|
|
125
258
|
return ratio < 0.5 ? 'before' : 'after';
|
|
126
259
|
}
|
|
260
|
+
/** A human label for a template node (tag name, component name, slot, …). */
|
|
127
261
|
function templateLabel(node) {
|
|
128
262
|
if (node instanceof t__namespace.TagTemplate) {
|
|
129
263
|
return node.tag;
|
|
@@ -139,12 +273,15 @@ function templateLabel(node) {
|
|
|
139
273
|
}
|
|
140
274
|
return 'node';
|
|
141
275
|
}
|
|
276
|
+
/** Child templates of a node (empty for leaves / text nodes). */
|
|
142
277
|
function templateChildren(node) {
|
|
143
278
|
return (node.children ?? []).filter((child) => child instanceof t__namespace.Type);
|
|
144
279
|
}
|
|
280
|
+
/** Is this a text node (`<text text=…>`), rendered as its string value? */
|
|
145
281
|
function isTextTemplate(node) {
|
|
146
282
|
return node instanceof t__namespace.TagTemplate && node.tag === 'text';
|
|
147
283
|
}
|
|
284
|
+
/** Preview the content of a text node, e.g. for a layers tree. */
|
|
148
285
|
function textPreview(node) {
|
|
149
286
|
if (!isTextTemplate(node)) {
|
|
150
287
|
return null;
|
|
@@ -155,6 +292,7 @@ function textPreview(node) {
|
|
|
155
292
|
}
|
|
156
293
|
return '{…}';
|
|
157
294
|
}
|
|
295
|
+
/** Can this node hold appended children? */
|
|
158
296
|
function canHaveChildren(node) {
|
|
159
297
|
if (!node || isTextTemplate(node)) {
|
|
160
298
|
return false;
|
|
@@ -163,6 +301,7 @@ function canHaveChildren(node) {
|
|
|
163
301
|
node instanceof t__namespace.ComponentTemplate ||
|
|
164
302
|
t__namespace.is(node, t__namespace.FragmentTemplate));
|
|
165
303
|
}
|
|
304
|
+
/** Is `ancestor` somewhere above `node` in the tree? */
|
|
166
305
|
function isAncestorOf(nu, ancestor, node) {
|
|
167
306
|
let parent = nu.getParentNode(node);
|
|
168
307
|
while (parent) {
|
|
@@ -174,6 +313,11 @@ function isAncestorOf(nu, ancestor, node) {
|
|
|
174
313
|
return false;
|
|
175
314
|
}
|
|
176
315
|
|
|
316
|
+
/**
|
|
317
|
+
* A high-level facade over a {@link Nu} runtime for building visual page
|
|
318
|
+
* editors. Every mutation goes through `nu.change`, so it is transactional and
|
|
319
|
+
* undoable. Reach for these instead of hand-splicing the AST.
|
|
320
|
+
*/
|
|
177
321
|
class Editor {
|
|
178
322
|
nu;
|
|
179
323
|
blocks;
|
|
@@ -196,6 +340,8 @@ class Editor {
|
|
|
196
340
|
run: (e) => e.nu.redo(),
|
|
197
341
|
});
|
|
198
342
|
}
|
|
343
|
+
// --- mutation -------------------------------------------------------------
|
|
344
|
+
/** Append (or insert at `index`) `child` into `parent`'s children. */
|
|
199
345
|
insertNode(parent, child, index) {
|
|
200
346
|
const kids = parent.children;
|
|
201
347
|
if (!Array.isArray(kids)) {
|
|
@@ -210,6 +356,7 @@ class Editor {
|
|
|
210
356
|
}
|
|
211
357
|
});
|
|
212
358
|
}
|
|
359
|
+
/** Remove a node from its parent. Returns false if it has no parent. */
|
|
213
360
|
removeNode(node) {
|
|
214
361
|
let ok = false;
|
|
215
362
|
this.nu.change(() => {
|
|
@@ -217,6 +364,7 @@ class Editor {
|
|
|
217
364
|
});
|
|
218
365
|
return ok;
|
|
219
366
|
}
|
|
367
|
+
/** Move `dragged` before/after/inside `target`. Refuses to nest into self. */
|
|
220
368
|
moveNode(dragged, target, position) {
|
|
221
369
|
if (dragged === target || isAncestorOf(this.nu, dragged, target)) {
|
|
222
370
|
return false;
|
|
@@ -227,26 +375,40 @@ class Editor {
|
|
|
227
375
|
});
|
|
228
376
|
return ok;
|
|
229
377
|
}
|
|
378
|
+
// --- clipboard ------------------------------------------------------------
|
|
230
379
|
clipboardNode = null;
|
|
380
|
+
/** Put a node on the editor clipboard (a clone is made on paste). */
|
|
231
381
|
copyNode(node) {
|
|
232
382
|
this.clipboardNode = node;
|
|
233
383
|
}
|
|
384
|
+
/** Copy a node, then remove it. */
|
|
234
385
|
cutNode(node) {
|
|
235
386
|
this.copyNode(node);
|
|
236
387
|
return this.removeNode(node);
|
|
237
388
|
}
|
|
389
|
+
/** Whether there is something on the clipboard to paste. */
|
|
238
390
|
canPaste() {
|
|
239
391
|
return this.clipboardNode !== null;
|
|
240
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* Paste a fresh copy (new ids) of the clipboard node before/after/inside
|
|
395
|
+
* `target`. Returns the inserted node, or null if nothing was pasted.
|
|
396
|
+
*/
|
|
241
397
|
pasteNode(target, position = 'after') {
|
|
242
398
|
if (!this.clipboardNode) {
|
|
243
399
|
return null;
|
|
244
400
|
}
|
|
245
401
|
return this.insertCloneRelativeTo(this.clipboardNode, target, position);
|
|
246
402
|
}
|
|
403
|
+
/** Duplicate a node in place (inserted right after it). Returns the copy. */
|
|
247
404
|
duplicateNode(node) {
|
|
248
405
|
return this.insertCloneRelativeTo(node, node, 'after');
|
|
249
406
|
}
|
|
407
|
+
/**
|
|
408
|
+
* Insert a detached node before/after/inside a target (undoable). The core of
|
|
409
|
+
* canvas drag-and-drop: a drop computes a target + position, then calls this.
|
|
410
|
+
* Returns the inserted node.
|
|
411
|
+
*/
|
|
250
412
|
insertNodeAt(node, target, position) {
|
|
251
413
|
let ok = false;
|
|
252
414
|
this.nu.change(() => {
|
|
@@ -254,6 +416,7 @@ class Editor {
|
|
|
254
416
|
});
|
|
255
417
|
return ok ? (this.nu.getNodeFromId(node.id) ?? null) : null;
|
|
256
418
|
}
|
|
419
|
+
/** Create a block and insert it before/after/inside a target. */
|
|
257
420
|
insertBlockAt(blockId, target, position) {
|
|
258
421
|
const block = this.blocks.get(blockId);
|
|
259
422
|
if (!block) {
|
|
@@ -267,8 +430,10 @@ class Editor {
|
|
|
267
430
|
this.nu.change(() => {
|
|
268
431
|
ok = this.insertRelativeTo(clone, target, position);
|
|
269
432
|
});
|
|
433
|
+
// Return the reactive node from the tree (clone is wrapped on insert).
|
|
270
434
|
return ok ? (this.nu.getNodeFromId(clone.id) ?? null) : null;
|
|
271
435
|
}
|
|
436
|
+
/** Set several props at once. */
|
|
272
437
|
updateProps(node, props) {
|
|
273
438
|
this.nu.change(() => {
|
|
274
439
|
for (const [key, value] of Object.entries(props)) {
|
|
@@ -286,6 +451,7 @@ class Editor {
|
|
|
286
451
|
delete node.props[key];
|
|
287
452
|
});
|
|
288
453
|
}
|
|
454
|
+
/** Parse `source` as a nuforge expression and assign it to `key`. */
|
|
289
455
|
setExpression(node, key, source) {
|
|
290
456
|
let expr;
|
|
291
457
|
try {
|
|
@@ -297,6 +463,7 @@ class Editor {
|
|
|
297
463
|
this.setProp(node, key, expr);
|
|
298
464
|
return true;
|
|
299
465
|
}
|
|
466
|
+
/** Update a text node's literal value. */
|
|
300
467
|
setText(node, value) {
|
|
301
468
|
const expr = node.props?.text;
|
|
302
469
|
if (!(expr instanceof t__namespace.Literal)) {
|
|
@@ -329,6 +496,7 @@ class Editor {
|
|
|
329
496
|
tag.classList.properties[clean] = t__namespace.literal({ value: true });
|
|
330
497
|
});
|
|
331
498
|
}
|
|
499
|
+
/** Parse `source` and set the condition under which class `name` applies. */
|
|
332
500
|
setClassCondition(node, name, source) {
|
|
333
501
|
let expr;
|
|
334
502
|
try {
|
|
@@ -357,6 +525,7 @@ class Editor {
|
|
|
357
525
|
}
|
|
358
526
|
});
|
|
359
527
|
}
|
|
528
|
+
/** Set the `@if` condition from source. */
|
|
360
529
|
setCondition(node, source) {
|
|
361
530
|
let expr;
|
|
362
531
|
try {
|
|
@@ -375,6 +544,8 @@ class Editor {
|
|
|
375
544
|
node.if = null;
|
|
376
545
|
});
|
|
377
546
|
}
|
|
547
|
+
// --- loop (@each) ---------------------------------------------------------
|
|
548
|
+
/** Repeat a node over `iterator` (a list expression), binding each `alias`. */
|
|
378
549
|
setEach(node, iterator, alias = 'item', indexName) {
|
|
379
550
|
let expr;
|
|
380
551
|
try {
|
|
@@ -397,6 +568,7 @@ class Editor {
|
|
|
397
568
|
node.each = null;
|
|
398
569
|
});
|
|
399
570
|
}
|
|
571
|
+
// --- component state / props ----------------------------------------------
|
|
400
572
|
addState(component, name = 'value', init = '0') {
|
|
401
573
|
const taken = new Set(component.state.map((v) => v.name));
|
|
402
574
|
let unique = name;
|
|
@@ -481,6 +653,8 @@ class Editor {
|
|
|
481
653
|
});
|
|
482
654
|
return true;
|
|
483
655
|
}
|
|
656
|
+
// --- blocks ---------------------------------------------------------------
|
|
657
|
+
/** Create a block's template and insert it into `parent`. */
|
|
484
658
|
insertBlock(blockId, parent, index) {
|
|
485
659
|
const block = this.blocks.get(blockId);
|
|
486
660
|
if (!block || !canHaveChildren(parent)) {
|
|
@@ -490,6 +664,7 @@ class Editor {
|
|
|
490
664
|
this.insertNode(parent, created, index);
|
|
491
665
|
return created;
|
|
492
666
|
}
|
|
667
|
+
// --- components / pages ---------------------------------------------------
|
|
493
668
|
uniqueName(base) {
|
|
494
669
|
const taken = new Set(this.getComponents().map((c) => c.name));
|
|
495
670
|
if (!taken.has(base)) {
|
|
@@ -501,6 +676,7 @@ class Editor {
|
|
|
501
676
|
}
|
|
502
677
|
return `${base}${i}`;
|
|
503
678
|
}
|
|
679
|
+
/** Add a new component (a "page"). */
|
|
504
680
|
addComponent(name = 'Page') {
|
|
505
681
|
const unique = this.uniqueName(name);
|
|
506
682
|
const component = t__namespace.nuComponent({
|
|
@@ -514,6 +690,7 @@ class Editor {
|
|
|
514
690
|
});
|
|
515
691
|
return this.getComponent(unique);
|
|
516
692
|
}
|
|
693
|
+
/** Rename a component, updating `<Name/>` references across the program. */
|
|
517
694
|
renameComponent(component, name) {
|
|
518
695
|
const clean = name.trim();
|
|
519
696
|
if (!clean ||
|
|
@@ -563,6 +740,7 @@ class Editor {
|
|
|
563
740
|
this.walkTemplates(child, fn);
|
|
564
741
|
}
|
|
565
742
|
}
|
|
743
|
+
// --- query ----------------------------------------------------------------
|
|
566
744
|
getComponents() {
|
|
567
745
|
return this.nu.state.program.components.filter((c) => c instanceof t__namespace.NuComponent);
|
|
568
746
|
}
|
|
@@ -582,6 +760,7 @@ class Editor {
|
|
|
582
760
|
getNodeIndex(node) {
|
|
583
761
|
return this.getSiblings(node).indexOf(node);
|
|
584
762
|
}
|
|
763
|
+
/** Full path from the State root to this node (for selections/serialization). */
|
|
585
764
|
getNodePath(node) {
|
|
586
765
|
const out = [];
|
|
587
766
|
let current = node;
|
|
@@ -593,9 +772,12 @@ class Editor {
|
|
|
593
772
|
}
|
|
594
773
|
return out;
|
|
595
774
|
}
|
|
775
|
+
// --- change subscription --------------------------------------------------
|
|
776
|
+
/** Fires with the raw field-level writes of every change (incl. undo/redo). */
|
|
596
777
|
onChange(cb) {
|
|
597
778
|
return this.nu.listenToMutations(cb);
|
|
598
779
|
}
|
|
780
|
+
/** Fires only when the tree shape changes (a child array was mutated). */
|
|
599
781
|
onStructureChange(cb) {
|
|
600
782
|
return this.nu.listenToMutations((entries) => {
|
|
601
783
|
if (entries.some((e) => Array.isArray(e.target))) {
|
|
@@ -603,6 +785,7 @@ class Editor {
|
|
|
603
785
|
}
|
|
604
786
|
});
|
|
605
787
|
}
|
|
788
|
+
// --- internals (run inside nu.change) -------------------------------------
|
|
606
789
|
spliceFromParent(node) {
|
|
607
790
|
const parent = this.nu.getParentNode(node);
|
|
608
791
|
const kids = parent?.children;
|
|
@@ -650,6 +833,7 @@ class Editor {
|
|
|
650
833
|
destKids.splice(position === 'after' ? ti + 1 : ti, 0, dragged);
|
|
651
834
|
return true;
|
|
652
835
|
}
|
|
836
|
+
/** Insert an already-detached node relative to `target` (no removal). */
|
|
653
837
|
insertRelativeTo(node, target, position) {
|
|
654
838
|
if (position === 'inside') {
|
|
655
839
|
if (!canHaveChildren(target)) {
|
|
@@ -676,18 +860,24 @@ function createEditor(nu, opts) {
|
|
|
676
860
|
}
|
|
677
861
|
|
|
678
862
|
exports.BlockRegistry = BlockRegistry;
|
|
863
|
+
exports.CANVAS_CHANNEL = CANVAS_CHANNEL;
|
|
864
|
+
exports.CANVAS_PROTOCOL_VERSION = CANVAS_PROTOCOL_VERSION;
|
|
679
865
|
exports.CommandRegistry = CommandRegistry;
|
|
680
866
|
exports.DEFAULT_BLOCKS = DEFAULT_BLOCKS;
|
|
681
867
|
exports.Editor = Editor;
|
|
682
868
|
exports.canHaveChildren = canHaveChildren;
|
|
869
|
+
exports.canvasChannelName = canvasChannelName;
|
|
870
|
+
exports.createCanvasReceiver = createCanvasReceiver;
|
|
683
871
|
exports.createEditor = createEditor;
|
|
684
872
|
exports.defineBlock = defineBlock;
|
|
685
873
|
exports.dropPositionFromPointer = dropPositionFromPointer;
|
|
686
874
|
exports.el = el;
|
|
687
875
|
exports.isAncestorOf = isAncestorOf;
|
|
876
|
+
exports.isCanvasMessage = isCanvasMessage;
|
|
688
877
|
exports.isTextTemplate = isTextTemplate;
|
|
689
878
|
exports.lit = lit;
|
|
690
879
|
exports.templateChildren = templateChildren;
|
|
691
880
|
exports.templateLabel = templateLabel;
|
|
692
881
|
exports.text = text;
|
|
693
882
|
exports.textPreview = textPreview;
|
|
883
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/builders.ts","../src/blocks.ts","../src/canvas-protocol.ts","../src/canvas-client.ts","../src/commands.ts","../src/template.ts","../src/editor.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["t","Nu","reactive","Parser"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACM,SAAU,GAAG,CAAC,KAAgC,EAAA;IAClD,OAAOA,YAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;AAC7B;AAEA;AACM,SAAU,IAAI,CAAC,KAAa,EAAA;IAChC,OAAOA,YAAC,CAAC,WAAW,CAAC;AACnB,QAAA,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3B,QAAA,QAAQ,EAAE,EAAE;AACb,KAAA,CAAC;AACJ;AAEA;;;AAGG;AACG,SAAU,EAAE,CAChB,GAAW,EACX,KAAA,GAAsC,EAAE,EACxC,QAAA,GAAyB,EAAE,EAAA;AAE3B,IAAA,OAAOA,YAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAChD;;ACCM,SAAU,WAAW,CAAC,KAAY,EAAA;AACtC,IAAA,OAAO,KAAK;AACd;MAEa,aAAa,CAAA;AACP,IAAA,MAAM,GAAG,IAAI,GAAG,EAAiB;AAElD,IAAA,WAAA,CAAY,UAAmB,EAAE,EAAA;AAC/B,QAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB;IACF;AAEA,IAAA,QAAQ,CAAC,KAAY,EAAA;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;IAClC;AAEA,IAAA,GAAG,CAAC,EAAU,EAAA;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B;IAEA,GAAG,GAAA;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAClC;IAEA,UAAU,GAAA;QACR,MAAM,GAAG,GAA4B,EAAE;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;AACxC,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,UAAU;AACxC,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;QAC/B;AACA,QAAA,OAAO,GAAG;IACZ;AACD;AAED;AACO,MAAM,cAAc,GAAY;IACrC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;IACpE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;AACvE,IAAA;AACE,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9C,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,KAAA;;;ACvFH;;;;;;;;;;AAUG;AAEI,MAAM,cAAc,GAAG;AACvB,MAAM,uBAAuB,GAAG;AAEvC;AAC8E;AACxE,SAAU,iBAAiB,CAAC,GAAW,EAAA;AAC3C,IAAA,OAAO,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,GAAG,EAAE;AACnC;AAgHA;;AAE+D;AACzD,SAAU,eAAe,CAAC,IAAa,EAAA;IAC3C,QACE,CAAC,CAAC,IAAI;QACN,OAAO,IAAI,KAAK,QAAQ;QACvB,IAA8B,CAAC,OAAO,KAAK,cAAc;AACzD,QAAA,IAAwB,CAAC,CAAC,KAAK,uBAAuB;AAE3D;;AChEA;;;;;;;;AAQG;AACG,SAAU,oBAAoB,CAAC,IAAwB,EAAA;AAC3D,IAAA,MAAM,EAAE,GAAGC,OAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACnD,IAAA,MAAM,QAAQ,GACZC,mBAAQ,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;AAExD,IAAA,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B;AAEzD;AACuE;AACvE,IAAA,MAAM,kBAAkB,GAAG,CAAC,QAAiC,KAAa;AACxE,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AACd,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAACF,YAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1C,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;AAC9C,YAAA,OAAO,IAAI;QACb;AACA,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC;AACzC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,OAAuD,KAAI;;;;;;AAM7E,QAAA,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAEnE,IAAI,eAAe,EAAE;AACnB,YAAA,EAAE,CAAC,IAAI,CAACA,YAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAY,CAAC;YAC7C,QAAQ,CAAC,cAAc,EAAE;QAC3B;aAAO;YACL,EAAE,CAAC,MAAM,CAAC,MAAMA,YAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAEA,YAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D;AACA,QAAA,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;AACpD,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,KAAmB,KAAI;QACxC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChC;QACF;AACA,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI;AAC1B,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;YACvD,UAAU,CAAC,OAAO,CAAC;QACrB;AAAO,aAAA,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;AAChC,YAAA,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;AAC5B,gBAAA,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YACrB;QACF;AACF,IAAA,CAAC;AACD,IAAA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9C,OAAO;QACL,EAAE;QACF,QAAQ;QACR,SAAS,GAAA;YACP,OAAO,CAAC,WAAW,CAAC;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,CAAC,EAAE,uBAAuB;AAC1B,gBAAA,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AACZ,aAAA,CAAC;QAClC,CAAC;AACD,QAAA,IAAI,CAAC,EAAE,EAAA;AACL,YAAA,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,CAAC;AACD,QAAA,SAAS,CAAC,OAAO,EAAA;YACf,OAAO,CAAC,WAAW,CAAC;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,CAAC,EAAE,uBAAuB;AAC1B,gBAAA,GAAG,OAAO;AACX,aAAA,CAAC;QACJ,CAAC;QACD,OAAO,GAAA;AACL,YAAA,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;YACjD,OAAO,CAAC,KAAK,EAAE;YACf,WAAW,CAAC,KAAK,EAAE;QACrB,CAAC;KACF;AACH;;MClKa,eAAe,CAAA;AAGG,IAAA,MAAA;AAFZ,IAAA,QAAQ,GAAG,IAAI,GAAG,EAAmB;AAEtD,IAAA,WAAA,CAA6B,MAAc,EAAA;QAAd,IAAA,CAAA,MAAM,GAAN,MAAM;IAAW;AAE9C,IAAA,QAAQ,CAAC,OAAgB,EAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;IACxC;AAEA,IAAA,GAAG,CAAC,EAAU,EAAA;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B;IAEA,GAAG,GAAA;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACpC;AAEA,IAAA,GAAG,CAAC,EAAU,EAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IACzC;AACD;;ACxBD;;;;;;AAMG;AACG,SAAU,uBAAuB,CACrC,OAAe,EACf,IAAqC,EACrC,OAAkC,EAAE,EAAA;IAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AACtE,IAAA,IAAI,IAAI,CAAC,WAAW,EAAE;QACpB,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,QAAQ;QACjC,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,OAAO;AAChC,QAAA,OAAO,QAAQ;IACjB;IACA,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,OAAO;AACzC;AAEA;AACM,SAAU,aAAa,CAAC,IAAgB,EAAA;AAC5C,IAAA,IAAI,IAAI,YAAYA,YAAC,CAAC,WAAW,EAAE;QACjC,OAAO,IAAI,CAAC,GAAG;IACjB;AACA,IAAA,IAAI,IAAI,YAAYA,YAAC,CAAC,iBAAiB,EAAE;AACvC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI;IAC5B;AACA,IAAA,IAAI,IAAI,YAAYA,YAAC,CAAC,YAAY,EAAE;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,MAAM;IAClD;IACA,IAAIA,YAAC,CAAC,EAAE,CAAC,IAAI,EAAEA,YAAC,CAAC,gBAAgB,CAAC,EAAE;AAClC,QAAA,OAAO,UAAU;IACnB;AACA,IAAA,OAAO,MAAM;AACf;AAEA;AACM,SAAU,gBAAgB,CAAC,IAAgB,EAAA;IAC/C,OAAO,CAAE,IAAoC,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,CAClE,CAAC,KAAK,KAA0B,KAAK,YAAYA,YAAC,CAAC,IAAI,CACxD;AACH;AAEA;AACM,SAAU,cAAc,CAAC,IAAgB,EAAA;IAC7C,OAAO,IAAI,YAAYA,YAAC,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM;AAC7D;AAEA;AACM,SAAU,WAAW,CAAC,IAAgB,EAAA;AAC1C,IAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,IAAI,GAAI,IAAsB,CAAC,KAAK,CAAC,IAAI;AAC/C,IAAA,IAAI,IAAI,YAAYA,YAAC,CAAC,OAAO,EAAE;AAC7B,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AACA,IAAA,OAAO,KAAK;AACd;AAEA;AACM,SAAU,eAAe,CAAC,IAAuB,EAAA;IACrD,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACjC,QAAA,OAAO,KAAK;IACd;AACA,IAAA,QACE,IAAI,YAAYA,YAAC,CAAC,WAAW;QAC7B,IAAI,YAAYA,YAAC,CAAC,iBAAiB;QACnCA,YAAC,CAAC,EAAE,CAAC,IAAI,EAAEA,YAAC,CAAC,gBAAgB,CAAC;AAElC;AAEA;SACgB,YAAY,CAC1B,EAAM,EACN,QAAoB,EACpB,IAAgB,EAAA;IAEhB,IAAI,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,OAAO,MAAM,EAAE;AACb,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AACvB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IACnC;AACA,IAAA,OAAO,KAAK;AACd;;ACxEA;;;;AAIG;MACU,MAAM,CAAA;AAKN,IAAA,EAAA;AAJF,IAAA,MAAM;AACN,IAAA,QAAQ;IAEjB,WAAA,CACW,EAAM,EACf,IAAA,GAA4B,EAAE,EAAA;QADrB,IAAA,CAAA,EAAE,GAAF,EAAE;AAGX,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,KAAK,KAAK,GAAG,EAAE,GAAG,cAAc;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACrB,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACxB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACrB,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACxB,SAAA,CAAC;IACJ;;;AAKA,IAAA,UAAU,CAAC,MAAkB,EAAE,KAAiB,EAAE,KAAc,EAAA;AAC9D,QAAA,MAAM,IAAI,GAAI,MAAwB,CAAC,QAAQ;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB;QACF;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/C,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YAC3C;AACF,QAAA,CAAC,CAAC;IACJ;;AAGA,IAAA,UAAU,CAAC,IAAgB,EAAA;QACzB,IAAI,EAAE,GAAG,KAAK;AACd,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAClC,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,EAAE;IACX;;AAGA,IAAA,QAAQ,CACN,OAAmB,EACnB,MAAkB,EAClB,QAAsB,EAAA;AAEtB,QAAA,IAAI,OAAO,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;AAChE,YAAA,OAAO,KAAK;QACd;QACA,IAAI,EAAE,GAAG,KAAK;AACd,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AAChD,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,EAAE;IACX;;IAIQ,aAAa,GAAsB,IAAI;;AAG/C,IAAA,QAAQ,CAAC,IAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC3B;;AAGA,IAAA,OAAO,CAAC,IAAgB,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B;;IAGA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI;IACpC;AAEA;;;AAGG;AACH,IAAA,SAAS,CACP,MAAkB,EAClB,QAAA,GAAyB,OAAO,EAAA;AAEhC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;IACzE;;AAGA,IAAA,aAAa,CAAC,IAAgB,EAAA;QAC5B,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;IACxD;AAEA;;;;AAIG;AACH,IAAA,YAAY,CACV,IAAgB,EAChB,MAAkB,EAClB,QAAsB,EAAA;QAEtB,IAAI,EAAE,GAAG,KAAK;AACd,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;AACpD,QAAA,CAAC,CAAC;QACF,OAAO,EAAE,IAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAgB,IAAI,IAAI,IAAI,IAAI;IAC7E;;AAGA,IAAA,aAAa,CACX,OAAe,EACf,MAAkB,EAClB,QAAsB,EAAA;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC;IAC5D;AAEQ,IAAA,qBAAqB,CAC3B,MAAkB,EAClB,MAAkB,EAClB,QAAsB,EAAA;AAEtB,QAAA,MAAM,KAAK,GAAGA,YAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAe;QACxE,IAAI,EAAE,GAAG,KAAK;AACd,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;AACrD,QAAA,CAAC,CAAC;;QAEF,OAAO,EAAE,IAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAgB,IAAI,IAAI,IAAI,IAAI;IAC9E;;IAGA,WAAW,CAAC,IAAgB,EAAE,KAAmC,EAAA;AAC/D,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/C,gBAAA,IAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;YAC5C;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,IAAgB,EAAE,GAAW,EAAE,IAAkB,EAAA;AACvD,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AACjB,YAAA,IAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3C,QAAA,CAAC,CAAC;IACJ;IAEA,UAAU,CAAC,IAAgB,EAAE,GAAW,EAAA;AACtC,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,OAAQ,IAAsB,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,QAAA,CAAC,CAAC;IACJ;;AAGA,IAAA,aAAa,CAAC,IAAgB,EAAE,GAAW,EAAE,MAAc,EAAA;AACzD,QAAA,IAAI,IAAkB;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,GAAGG,aAAM,CAAC,eAAe,CAAC,MAAM,CAAiB;QACvD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;QACA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAC7B,QAAA,OAAO,IAAI;IACb;;IAGA,OAAO,CAAC,IAAgB,EAAE,KAAa,EAAA;AACrC,QAAA,MAAM,IAAI,GAAI,IAAsB,CAAC,KAAK,EAAE,IAAI;QAChD,IAAI,EAAE,IAAI,YAAYH,YAAC,CAAC,OAAO,CAAC,EAAE;AAChC,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AACjB,YAAA,IAAkB,CAAC,KAAK,GAAG,KAAK;AACnC,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,CAAC,IAAmB,EAAE,GAAW,EAAA;AACrC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE;QACxB,IAAI,CAAC,KAAK,EAAE;YACV;QACF;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK;AAClB,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,CAAC,IAAgB,EAAE,IAAY,EAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;QACzB,IAAI,CAAC,KAAK,EAAE;YACV;QACF;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,MAAM,GAAG,GAAG,IAAqB;AACjC,YAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;AAClB,gBAAA,GAAG,CAAC,SAAS,GAAGA,YAAC,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YACxD;AACA,YAAA,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAGA,YAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC9D,QAAA,CAAC,CAAC;IACJ;;AAGA,IAAA,iBAAiB,CAAC,IAAgB,EAAE,IAAY,EAAE,MAAc,EAAA;AAC9D,QAAA,IAAI,IAAkB;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,GAAGG,aAAM,CAAC,eAAe,CAAC,MAAM,CAAiB;QACvD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,MAAM,GAAG,GAAG,IAAqB;AACjC,YAAA,IAAI,GAAG,CAAC,SAAS,EAAE;gBACjB,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI;YACvC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;IAEA,WAAW,CAAC,IAAgB,EAAE,IAAY,EAAA;AACxC,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,MAAM,GAAG,GAAG,IAAqB;AACjC,YAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClB;YACF;YACA,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,YAAA,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACtD,gBAAA,GAAG,CAAC,SAAS,GAAG,IAAI;YACtB;AACF,QAAA,CAAC,CAAC;IACJ;;IAGA,YAAY,CAAC,IAAgB,EAAE,MAAc,EAAA;AAC3C,QAAA,IAAI,IAAkB;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,GAAGA,aAAM,CAAC,eAAe,CAAC,MAAM,CAAiB;QACvD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI;AAChB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,cAAc,CAAC,IAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI;AAChB,QAAA,CAAC,CAAC;IACJ;;;IAKA,OAAO,CACL,IAAgB,EAChB,QAAgB,EAChB,KAAK,GAAG,MAAM,EACd,SAAkB,EAAA;AAElB,QAAA,IAAI,IAAkB;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,GAAGA,aAAM,CAAC,eAAe,CAAC,QAAQ,CAAiB;QACzD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,IAAI,GAAGH,YAAC,CAAC,WAAW,CAAC;AACxB,gBAAA,KAAK,EAAEA,YAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC;AACpD,gBAAA,KAAK,EAAE,SAAS,GAAGA,YAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI;AACjE,gBAAA,QAAQ,EAAE,IAAI;AACf,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,SAAS,CAAC,IAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,QAAA,CAAC,CAAC;IACJ;;IAIA,QAAQ,CAAC,SAAwB,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,GAAG,EAAA;QAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,MAAM,GAAG,IAAI;QACjB,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACxB,YAAA,MAAM,GAAG,CAAA,EAAG,IAAI,CAAA,EAAG,CAAC,EAAE;YACtB,CAAC,IAAI,CAAC;QACR;AACA,QAAA,IAAI,QAAsB;AAC1B,QAAA,IAAI;AACF,YAAA,QAAQ,GAAGG,aAAM,CAAC,eAAe,CAAC,IAAI,CAAiB;QACzD;AAAE,QAAA,MAAM;YACN,QAAQ,GAAGH,YAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpC;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,SAAS,CAAC,KAAK,CAAC,IAAI,CAACA,YAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC/D,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAE;IACxD;IAEA,WAAW,CAAC,SAAwB,EAAE,GAAU,EAAA;AAC9C,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,YAAY,CAAC,GAAU,EAAE,MAAc,EAAA;AACrC,QAAA,IAAI,IAAkB;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,GAAGG,aAAM,CAAC,eAAe,CAAC,MAAM,CAAiB;QACvD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,GAAG,CAAC,IAAI,GAAG,IAAI;AACjB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,gBAAgB,CACd,SAAwB,EACxB,IAAI,GAAG,MAAM,EACb,IAAa,EAAA;QAEb,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,MAAM,GAAG,IAAI;QACjB,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACxB,YAAA,MAAM,GAAG,CAAA,EAAG,IAAI,CAAA,EAAG,CAAC,EAAE;YACtB,CAAC,IAAI,CAAC;QACR;AACA,QAAA,IAAI,QAAkC;QACtC,IAAI,IAAI,EAAE;AACR,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAGA,aAAM,CAAC,eAAe,CAAC,IAAI,CAAiB;YACzD;AAAE,YAAA,MAAM;gBACN,QAAQ,GAAG,SAAS;YACtB;QACF;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,SAAS,CAAC,KAAK,CAAC,IAAI,CAACH,YAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAE;IACxD;IAEA,mBAAmB,CAAC,SAAwB,EAAE,IAAqB,EAAA;AACjE,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;YAClB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AAC5D,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,oBAAoB,CAAC,IAAqB,EAAE,MAAc,EAAA;AACxD,QAAA,IAAI,IAAkB;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,GAAGG,aAAM,CAAC,eAAe,CAAC,MAAM,CAAiB;QACvD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;;;AAKA,IAAA,WAAW,CACT,OAAe,EACf,MAAkB,EAClB,KAAc,EAAA;QAEd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI;QACb;AACA,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE;QAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AACvC,QAAA,OAAO,OAAO;IAChB;;AAIQ,IAAA,UAAU,CAAC,IAAY,EAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACpB,YAAA,OAAO,IAAI;QACb;QACA,IAAI,CAAC,GAAG,CAAC;QACT,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAA,EAAG,CAAC,CAAA,CAAE,CAAC,EAAE;YAC/B,CAAC,IAAI,CAAC;QACR;AACA,QAAA,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,CAAC,EAAE;IACtB;;IAGA,YAAY,CAAC,IAAI,GAAG,MAAM,EAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,QAAA,MAAM,SAAS,GAAGH,YAAC,CAAC,WAAW,CAAC;AAC9B,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAClD,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAE;IACnC;;IAGA,eAAe,CAAC,SAAwB,EAAE,IAAY,EAAA;AACpD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;AACzB,QAAA,IACE,CAAC,KAAK;YACN,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EACrE;AACA,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,SAAS,CAAC,IAAI,GAAG,KAAK;YACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACpC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAI;AACrC,oBAAA,IAAI,GAAG,YAAYA,YAAC,CAAC,iBAAiB,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,EAAE;AACpE,wBAAA,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK;oBAC5B;AACF,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,eAAe,CAAC,SAAwB,EAAA;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;QAC9C,IAAI,EAAE,GAAG,KAAK;AACd,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE;AACV,gBAAA,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClB,EAAE,GAAG,IAAI;YACX;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,kBAAkB,CAAC,SAAwB,EAAA;AACzC,QAAA,MAAM,IAAI,GAAGA,YAAC,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAkB;AAC7E,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA,EAAG,SAAS,CAAC,IAAI,CAAA,IAAA,CAAM,CAAC;AACrD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAE;IACjC;IAEQ,aAAa,CACnB,IAAmC,EACnC,EAA6B,EAAA;QAE7B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;QACA,EAAE,CAAC,IAAI,CAAC;QACR,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;QAC/B;IACF;;IAIA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAC5C,CAAC,CAAC,KAAyB,CAAC,YAAYA,YAAC,CAAC,WAAW,CACtD;IACH;AAEA,IAAA,YAAY,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;IAC1D;AAEA,IAAA,eAAe,CAAC,IAAY,EAAA;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,IAAI,IAAI;IAClD;AAEA,IAAA,WAAW,CAAC,IAAgB,EAAA;AAC1B,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC;IAC/B;AAEA,IAAA,WAAW,CAAC,IAAgB,EAAA;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1C,QAAA,OAAO,MAAM,GAAG,gBAAgB,CAAC,MAAoB,CAAC,GAAG,EAAE;IAC7D;AAEA,IAAA,YAAY,CAAC,IAAgB,EAAA;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C;;AAGA,IAAA,WAAW,CAAC,IAAY,EAAA;QACtB,MAAM,GAAG,GAA2B,EAAE;QACtC,IAAI,OAAO,GAAW,IAAI;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;QAC1C,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE;YACpC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACxB,YAAA,OAAO,GAAG,GAAG,CAAC,MAAM;YACpB,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;QACxC;AACA,QAAA,OAAO,GAAG;IACZ;;;AAKA,IAAA,QAAQ,CAAC,EAAsC,EAAA;QAC7C,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACtC;;AAGA,IAAA,iBAAiB,CAAC,EAAc,EAAA;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,OAAO,KAAI;AAC3C,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAChD,gBAAA,EAAE,EAAE;YACN;AACF,QAAA,CAAC,CAAC;IACJ;;AAIQ,IAAA,gBAAgB,CAAC,IAAgB,EAAA;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1C,QAAA,MAAM,IAAI,GAAI,MAA6C,EAAE,QAAQ;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,KAAK;QACd;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACrB,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,SAAS,CACf,OAAmB,EACnB,MAAkB,EAClB,QAAsB,EAAA;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;AAChD,QAAA,MAAM,OAAO,GAAI,SAAgD,EAAE,QAAQ;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAC5B,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,MAAM,QAAQ,GAAI,MAAwB,CAAC,QAAQ;YACnD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACnC,YAAA,IAAI,EAAE,IAAI,CAAC,EAAE;AACX,gBAAA,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB;AACA,YAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACtB,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;AAC/C,QAAA,MAAM,QAAQ,GAAI,SAAgD,EAAE,QAAQ;QAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK;QACd;QACA,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACnC,QAAA,IAAI,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB;QACA,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,EAAE,GAAG,CAAC,EAAE;AACV,YAAA,EAAE,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1B;QACA,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC;AAC/D,QAAA,OAAO,IAAI;IACb;;AAGQ,IAAA,gBAAgB,CACtB,IAAgB,EAChB,MAAkB,EAClB,QAAsB,EAAA;AAEtB,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAC5B,gBAAA,OAAO,KAAK;YACd;AACC,YAAA,MAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAA,OAAO,IAAI;QACb;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5C,QAAA,MAAM,IAAI,GAAI,MAA6C,EAAE,QAAQ;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,KAAK;QACd;QACA,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC7B,QAAA,IAAI,EAAE,GAAG,CAAC,EAAE;AACV,YAAA,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QACtB;QACA,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACxD,QAAA,OAAO,IAAI;IACb;AACD;AAEK,SAAU,YAAY,CAAC,EAAM,EAAE,IAA0B,EAAA;AAC7D,IAAA,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;"}
|