@rtif-sdk/web 1.0.0 → 1.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/block-drag-handler.d.ts +5 -0
- package/dist/block-drag-handler.d.ts.map +1 -1
- package/dist/block-drag-handler.js +32 -3
- package/dist/block-drag-handler.js.map +1 -1
- package/dist/block-renderer.d.ts +12 -6
- package/dist/block-renderer.d.ts.map +1 -1
- package/dist/block-renderer.js +98 -9
- package/dist/block-renderer.js.map +1 -1
- package/dist/block-type-dropdown.d.ts +78 -0
- package/dist/block-type-dropdown.d.ts.map +1 -0
- package/dist/block-type-dropdown.js +276 -0
- package/dist/block-type-dropdown.js.map +1 -0
- package/dist/color-picker.d.ts +91 -0
- package/dist/color-picker.d.ts.map +1 -0
- package/dist/color-picker.js +346 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/content-handlers.d.ts +7 -8
- package/dist/content-handlers.d.ts.map +1 -1
- package/dist/content-handlers.js +122 -93
- package/dist/content-handlers.js.map +1 -1
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +224 -15
- package/dist/editor.js.map +1 -1
- package/dist/embed-utils.d.ts +148 -0
- package/dist/embed-utils.d.ts.map +1 -0
- package/dist/embed-utils.js +197 -0
- package/dist/embed-utils.js.map +1 -0
- package/dist/font-family-picker.d.ts +105 -0
- package/dist/font-family-picker.d.ts.map +1 -0
- package/dist/font-family-picker.js +314 -0
- package/dist/font-family-picker.js.map +1 -0
- package/dist/font-size-picker.d.ts +82 -0
- package/dist/font-size-picker.d.ts.map +1 -0
- package/dist/font-size-picker.js +290 -0
- package/dist/font-size-picker.js.map +1 -0
- package/dist/index.d.ts +18 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/plugins/index.d.ts +2 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/link-plugin.d.ts +4 -0
- package/dist/plugins/link-plugin.d.ts.map +1 -1
- package/dist/plugins/link-plugin.js +17 -0
- package/dist/plugins/link-plugin.js.map +1 -1
- package/dist/plugins/mark-utils.d.ts +31 -0
- package/dist/plugins/mark-utils.d.ts.map +1 -1
- package/dist/plugins/mark-utils.js +46 -0
- package/dist/plugins/mark-utils.js.map +1 -1
- package/dist/renderer.d.ts +31 -2
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +131 -55
- package/dist/renderer.js.map +1 -1
- package/dist/selection-sync.d.ts +2 -26
- package/dist/selection-sync.d.ts.map +1 -1
- package/dist/selection-sync.js +49 -13
- package/dist/selection-sync.js.map +1 -1
- package/dist/spatial-index.d.ts +203 -0
- package/dist/spatial-index.d.ts.map +1 -0
- package/dist/spatial-index.js +211 -0
- package/dist/spatial-index.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/virtual-viewport.d.ts +241 -0
- package/dist/virtual-viewport.d.ts.map +1 -0
- package/dist/virtual-viewport.js +584 -0
- package/dist/virtual-viewport.js.map +1 -0
- package/package.json +17 -5
package/dist/editor.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { resolve } from '@rtif-sdk/core';
|
|
13
13
|
import { renderInitial, reconcile } from './renderer.js';
|
|
14
|
+
import { createVirtualViewport } from './virtual-viewport.js';
|
|
14
15
|
import { buildBlockOffsetCache, domPointToRtifOffset, readDomSelection, setDomSelection, isSuppressed, resetSuppression, } from './selection-sync.js';
|
|
15
16
|
import { InputBridge } from './input-bridge.js';
|
|
16
17
|
import { CompositionHandler } from './composition.js';
|
|
@@ -35,6 +36,9 @@ import { createCursorRectAPI } from './cursor-rect.js';
|
|
|
35
36
|
import { createTriggerManager } from './trigger-manager.js';
|
|
36
37
|
import { findContiguousMarkRange, adjustOffsetAroundAtomicMarks, adjustOffsetAroundAtomicBlocks } from './plugins/mark-utils.js';
|
|
37
38
|
import { installWebPlugins } from './plugin-kit.js';
|
|
39
|
+
import { createLinkPopover } from './link-popover.js';
|
|
40
|
+
import { LinkCommands } from './plugins/link-plugin.js';
|
|
41
|
+
import { createPerfInstrumentation } from './perf.js';
|
|
38
42
|
// ---------------------------------------------------------------------------
|
|
39
43
|
// Factory
|
|
40
44
|
// ---------------------------------------------------------------------------
|
|
@@ -72,6 +76,14 @@ export function createWebEditor(config) {
|
|
|
72
76
|
const autoFocus = config.autoFocus ?? false;
|
|
73
77
|
let destroyed = false;
|
|
74
78
|
// -------------------------------------------------------------------
|
|
79
|
+
// Performance instrumentation
|
|
80
|
+
// -------------------------------------------------------------------
|
|
81
|
+
const perfEnabled = config.perf != null && config.perf !== false;
|
|
82
|
+
const perfInstrumentation = perfEnabled ? createPerfInstrumentation() : null;
|
|
83
|
+
if (perfInstrumentation && typeof config.perf === 'object') {
|
|
84
|
+
perfInstrumentation.setObserver(config.perf);
|
|
85
|
+
}
|
|
86
|
+
// -------------------------------------------------------------------
|
|
75
87
|
// Set up the contenteditable root
|
|
76
88
|
// -------------------------------------------------------------------
|
|
77
89
|
root.setAttribute('contenteditable', readOnly ? 'false' : 'true');
|
|
@@ -108,9 +120,30 @@ export function createWebEditor(config) {
|
|
|
108
120
|
installWebPlugins(config.webPlugins, engine, markRenderers, blockRenderers);
|
|
109
121
|
}
|
|
110
122
|
// -------------------------------------------------------------------
|
|
123
|
+
// Virtualization config
|
|
124
|
+
// -------------------------------------------------------------------
|
|
125
|
+
const virtConfig = normalizeVirtualizeConfig(config.virtualize);
|
|
126
|
+
const shouldVirtualize = virtConfig !== null &&
|
|
127
|
+
engine.state.doc.blocks.length >= (virtConfig.threshold ?? 100);
|
|
128
|
+
// -------------------------------------------------------------------
|
|
111
129
|
// Initial render
|
|
112
130
|
// -------------------------------------------------------------------
|
|
113
|
-
|
|
131
|
+
// Persistent blockId → DOM element Map for O(1) lookups in reconcile + selection sync
|
|
132
|
+
const blockElementMap = new Map();
|
|
133
|
+
let viewport = null;
|
|
134
|
+
if (shouldVirtualize && virtConfig) {
|
|
135
|
+
viewport = createVirtualViewport({
|
|
136
|
+
root,
|
|
137
|
+
bufferSize: virtConfig.bufferSize,
|
|
138
|
+
estimatedBlockHeight: virtConfig.estimatedBlockHeight,
|
|
139
|
+
blockTypeHeights: virtConfig.blockTypeHeights,
|
|
140
|
+
scrollContainer: virtConfig.scrollContainer,
|
|
141
|
+
}, engine.state.doc);
|
|
142
|
+
viewport.renderInitial(engine.state.doc, markRenderers, blockRenderers, blockElementMap);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
renderInitial(root, engine.state.doc, markRenderers, blockRenderers, blockElementMap);
|
|
146
|
+
}
|
|
114
147
|
// -------------------------------------------------------------------
|
|
115
148
|
// Command bus
|
|
116
149
|
// -------------------------------------------------------------------
|
|
@@ -188,7 +221,7 @@ export function createWebEditor(config) {
|
|
|
188
221
|
const contentPipeline = createContentPipeline();
|
|
189
222
|
// Register built-in handlers (priority: RTIF JSON -80, image -85, HTML -90,
|
|
190
223
|
// URL -95, plain text -100, file drop -105)
|
|
191
|
-
contentPipeline.register(createRtifPasteHandler(
|
|
224
|
+
contentPipeline.register(createRtifPasteHandler());
|
|
192
225
|
contentPipeline.register(createImageContentHandler());
|
|
193
226
|
contentPipeline.register(createHtmlPasteHandler());
|
|
194
227
|
contentPipeline.register(createUrlContentHandler());
|
|
@@ -218,6 +251,7 @@ export function createWebEditor(config) {
|
|
|
218
251
|
getDoc: () => engine.state.doc,
|
|
219
252
|
dispatch: (ops) => engine.dispatch(ops),
|
|
220
253
|
isReadOnly: () => readOnly,
|
|
254
|
+
getBlockElementMap: () => blockElementMap,
|
|
221
255
|
});
|
|
222
256
|
// -------------------------------------------------------------------
|
|
223
257
|
// Paste handler (via content pipeline)
|
|
@@ -258,7 +292,7 @@ export function createWebEditor(config) {
|
|
|
258
292
|
}
|
|
259
293
|
else {
|
|
260
294
|
// Find nearest block for between-blocks indicator
|
|
261
|
-
const blockEl = findNearestBlock(root, e.clientY);
|
|
295
|
+
const blockEl = findNearestBlock(root, e.clientY, engine.state.doc, blockElementMap);
|
|
262
296
|
if (blockEl) {
|
|
263
297
|
const blockRect = blockEl.getBoundingClientRect();
|
|
264
298
|
const midY = blockRect.top + blockRect.height / 2;
|
|
@@ -310,7 +344,7 @@ export function createWebEditor(config) {
|
|
|
310
344
|
// Programmatic selection change (Cmd+A, Cmd+Home/End):
|
|
311
345
|
// update engine state AND sync to DOM.
|
|
312
346
|
engine.setSelection(sel);
|
|
313
|
-
setDomSelection(root, engine.state.doc, sel);
|
|
347
|
+
setDomSelection(root, engine.state.doc, sel, blockElementMap);
|
|
314
348
|
},
|
|
315
349
|
isMac: () => isMac(),
|
|
316
350
|
});
|
|
@@ -349,6 +383,11 @@ export function createWebEditor(config) {
|
|
|
349
383
|
return;
|
|
350
384
|
if (compositionHandler.isComposing())
|
|
351
385
|
return;
|
|
386
|
+
// Early containment check: skip if selection is outside this editor
|
|
387
|
+
const domSel = document.getSelection();
|
|
388
|
+
if (!domSel || !domSel.focusNode || !root.contains(domSel.focusNode)) {
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
352
391
|
const cache = buildBlockOffsetCache(engine.state.doc);
|
|
353
392
|
const sel = readDomSelection(root, cache);
|
|
354
393
|
if (sel === null)
|
|
@@ -358,7 +397,7 @@ export function createWebEditor(config) {
|
|
|
358
397
|
if (adjustedSel !== sel) {
|
|
359
398
|
// Selection was adjusted — update engine AND re-sync DOM
|
|
360
399
|
engine.setSelection(adjustedSel);
|
|
361
|
-
setDomSelection(root, engine.state.doc, adjustedSel);
|
|
400
|
+
setDomSelection(root, engine.state.doc, adjustedSel, blockElementMap);
|
|
362
401
|
return;
|
|
363
402
|
}
|
|
364
403
|
// Adjust offsets that land inside atomic blocks (HR, image, embed)
|
|
@@ -378,7 +417,7 @@ export function createWebEditor(config) {
|
|
|
378
417
|
focus: { offset: adjFocus },
|
|
379
418
|
};
|
|
380
419
|
engine.setSelection(blockAdjustedSel);
|
|
381
|
-
setDomSelection(root, engine.state.doc, blockAdjustedSel);
|
|
420
|
+
setDomSelection(root, engine.state.doc, blockAdjustedSel, blockElementMap);
|
|
382
421
|
return;
|
|
383
422
|
}
|
|
384
423
|
// Update engine selection without triggering a dispatch
|
|
@@ -423,19 +462,63 @@ export function createWebEditor(config) {
|
|
|
423
462
|
// -------------------------------------------------------------------
|
|
424
463
|
// Engine onChange — reconcile DOM and sync selection
|
|
425
464
|
// -------------------------------------------------------------------
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
465
|
+
// Batched reconciliation: when multiple onChange events fire in the same
|
|
466
|
+
// synchronous turn (e.g., from plugin afterApply → engine.dispatch), only
|
|
467
|
+
// the final state is reconciled. The first onChange in a synchronous turn
|
|
468
|
+
// is applied immediately; subsequent ones replace `pendingState` and a
|
|
469
|
+
// microtask flushes the final state.
|
|
470
|
+
let pendingState = null;
|
|
471
|
+
let isReconciling = false;
|
|
472
|
+
const doReconcile = (state) => {
|
|
473
|
+
perfInstrumentation?.markReconcileStart();
|
|
429
474
|
const composingBlockId = compositionHandler.getComposingBlockId();
|
|
430
|
-
|
|
475
|
+
if (viewport) {
|
|
476
|
+
// Virtualized path: viewport.reconcile handles composing block pinning
|
|
477
|
+
// internally via the composingBlockId parameter — no external pin/unpin.
|
|
478
|
+
viewport.reconcile(prevDoc, state.doc, composingBlockId, markRenderers, blockRenderers, blockElementMap);
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
reconcile(root, prevDoc, state.doc, composingBlockId, markRenderers, blockRenderers, blockElementMap);
|
|
482
|
+
}
|
|
431
483
|
prevDoc = state.doc;
|
|
484
|
+
perfInstrumentation?.markReconcileEnd();
|
|
432
485
|
// Sync selection to DOM (unless composing)
|
|
433
486
|
if (!compositionHandler.isComposing()) {
|
|
434
|
-
|
|
487
|
+
perfInstrumentation?.markSelectionSyncStart();
|
|
488
|
+
// Ensure selection endpoints are rendered before setting DOM selection
|
|
489
|
+
if (viewport) {
|
|
490
|
+
ensureSelectionRendered(viewport, state.doc, state.selection);
|
|
491
|
+
}
|
|
492
|
+
setDomSelection(root, state.doc, state.selection, blockElementMap);
|
|
435
493
|
scrollToCursor(root);
|
|
494
|
+
perfInstrumentation?.markSelectionSyncEnd();
|
|
436
495
|
}
|
|
437
496
|
// Update placeholder visibility
|
|
438
497
|
updatePlaceholder(root, state.doc);
|
|
498
|
+
perfInstrumentation?.collect();
|
|
499
|
+
};
|
|
500
|
+
const unsubscribeOnChange = engine.onChange((state) => {
|
|
501
|
+
if (destroyed)
|
|
502
|
+
return;
|
|
503
|
+
if (isReconciling) {
|
|
504
|
+
// Nested dispatch during reconciliation — defer to microtask
|
|
505
|
+
pendingState = state;
|
|
506
|
+
queueMicrotask(() => {
|
|
507
|
+
if (destroyed || !pendingState)
|
|
508
|
+
return;
|
|
509
|
+
const deferred = pendingState;
|
|
510
|
+
pendingState = null;
|
|
511
|
+
doReconcile(deferred);
|
|
512
|
+
});
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
isReconciling = true;
|
|
516
|
+
try {
|
|
517
|
+
doReconcile(state);
|
|
518
|
+
}
|
|
519
|
+
finally {
|
|
520
|
+
isReconciling = false;
|
|
521
|
+
}
|
|
439
522
|
});
|
|
440
523
|
// -------------------------------------------------------------------
|
|
441
524
|
// Exclusive mark boundary helper
|
|
@@ -510,6 +593,36 @@ export function createWebEditor(config) {
|
|
|
510
593
|
e.preventDefault();
|
|
511
594
|
};
|
|
512
595
|
// -------------------------------------------------------------------
|
|
596
|
+
// Ctrl+F handler — expand all blocks for browser find (virtualized only)
|
|
597
|
+
// -------------------------------------------------------------------
|
|
598
|
+
let expandRestoreFn = null;
|
|
599
|
+
const onCtrlF = (e) => {
|
|
600
|
+
if (!viewport)
|
|
601
|
+
return;
|
|
602
|
+
const mod = isMac() ? e.metaKey : e.ctrlKey;
|
|
603
|
+
if (!mod || e.key !== 'f')
|
|
604
|
+
return;
|
|
605
|
+
// Expand all blocks so browser find can search them
|
|
606
|
+
if (!expandRestoreFn) {
|
|
607
|
+
expandRestoreFn = viewport.expandAll();
|
|
608
|
+
}
|
|
609
|
+
};
|
|
610
|
+
const onFocusRestore = () => {
|
|
611
|
+
if (expandRestoreFn) {
|
|
612
|
+
expandRestoreFn();
|
|
613
|
+
expandRestoreFn = null;
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
// -------------------------------------------------------------------
|
|
617
|
+
// Resize handler — recompute viewport on window resize (virtualized only)
|
|
618
|
+
// -------------------------------------------------------------------
|
|
619
|
+
const onResize = () => {
|
|
620
|
+
if (!viewport)
|
|
621
|
+
return;
|
|
622
|
+
viewport.onScroll();
|
|
623
|
+
viewport.measureHeights();
|
|
624
|
+
};
|
|
625
|
+
// -------------------------------------------------------------------
|
|
513
626
|
// Attach all event listeners
|
|
514
627
|
// -------------------------------------------------------------------
|
|
515
628
|
shortcutHandler.attach();
|
|
@@ -530,6 +643,12 @@ export function createWebEditor(config) {
|
|
|
530
643
|
// (all capture phase). TriggerManager/LinkPopover call e.preventDefault()
|
|
531
644
|
// when they handle Escape, so defaultPrevented check prevents conflicts.
|
|
532
645
|
root.addEventListener('keydown', onEscapeKeyDown, true);
|
|
646
|
+
// Virtualization-specific listeners
|
|
647
|
+
if (viewport) {
|
|
648
|
+
root.addEventListener('keydown', onCtrlF, true);
|
|
649
|
+
root.addEventListener('focus', onFocusRestore);
|
|
650
|
+
window.addEventListener('resize', onResize, { passive: true });
|
|
651
|
+
}
|
|
533
652
|
// Initial placeholder update
|
|
534
653
|
updatePlaceholder(root, engine.state.doc);
|
|
535
654
|
// Auto-focus
|
|
@@ -537,9 +656,13 @@ export function createWebEditor(config) {
|
|
|
537
656
|
root.focus();
|
|
538
657
|
}
|
|
539
658
|
// -------------------------------------------------------------------
|
|
659
|
+
// Auto-wire link popover
|
|
660
|
+
// -------------------------------------------------------------------
|
|
661
|
+
let linkPopoverHandle = null;
|
|
662
|
+
// -------------------------------------------------------------------
|
|
540
663
|
// Return WebEditor handle
|
|
541
664
|
// -------------------------------------------------------------------
|
|
542
|
-
|
|
665
|
+
const webEditor = {
|
|
543
666
|
engine,
|
|
544
667
|
commandBus,
|
|
545
668
|
content: contentPipeline,
|
|
@@ -547,6 +670,9 @@ export function createWebEditor(config) {
|
|
|
547
670
|
blockRenderers,
|
|
548
671
|
triggers: triggerManager,
|
|
549
672
|
cursorRect,
|
|
673
|
+
get linkPopover() { return linkPopoverHandle; },
|
|
674
|
+
perf: perfInstrumentation,
|
|
675
|
+
viewport,
|
|
550
676
|
focus() {
|
|
551
677
|
if (destroyed)
|
|
552
678
|
return;
|
|
@@ -555,7 +681,7 @@ export function createWebEditor(config) {
|
|
|
555
681
|
// reset the contenteditable's selection when focus leaves and returns
|
|
556
682
|
// (e.g., after interacting with a popover). The engine is the source
|
|
557
683
|
// of truth, so always sync after focusing.
|
|
558
|
-
setDomSelection(root, engine.state.doc, engine.state.selection);
|
|
684
|
+
setDomSelection(root, engine.state.doc, engine.state.selection, blockElementMap);
|
|
559
685
|
},
|
|
560
686
|
blur() {
|
|
561
687
|
if (destroyed)
|
|
@@ -571,6 +697,15 @@ export function createWebEditor(config) {
|
|
|
571
697
|
if (destroyed)
|
|
572
698
|
return;
|
|
573
699
|
destroyed = true;
|
|
700
|
+
// Clean up auto-wired link popover
|
|
701
|
+
if (linkPopoverHandle) {
|
|
702
|
+
linkPopoverHandle.dispose();
|
|
703
|
+
try {
|
|
704
|
+
engine.exec(LinkCommands._UNWIRE_UI);
|
|
705
|
+
}
|
|
706
|
+
catch { /* engine may be destroyed */ }
|
|
707
|
+
linkPopoverHandle = null;
|
|
708
|
+
}
|
|
574
709
|
// Detach event handlers
|
|
575
710
|
shortcutHandler.detach();
|
|
576
711
|
inputBridge.detach();
|
|
@@ -587,6 +722,13 @@ export function createWebEditor(config) {
|
|
|
587
722
|
root.removeEventListener('drop', onDrop);
|
|
588
723
|
root.removeEventListener('keydown', onEscapeKeyDown, true);
|
|
589
724
|
document.removeEventListener('selectionchange', selectionChangeHandler);
|
|
725
|
+
// Remove virtualization-specific listeners
|
|
726
|
+
if (viewport) {
|
|
727
|
+
root.removeEventListener('keydown', onCtrlF, true);
|
|
728
|
+
root.removeEventListener('focus', onFocusRestore);
|
|
729
|
+
window.removeEventListener('resize', onResize);
|
|
730
|
+
viewport.destroy();
|
|
731
|
+
}
|
|
590
732
|
// Unsubscribe from engine changes
|
|
591
733
|
unsubscribeOnChange();
|
|
592
734
|
unsubscribeOnSelectionChange();
|
|
@@ -601,6 +743,10 @@ export function createWebEditor(config) {
|
|
|
601
743
|
// Reset composition handler
|
|
602
744
|
compositionHandler.reset();
|
|
603
745
|
resetSuppression();
|
|
746
|
+
// Clear block element map
|
|
747
|
+
blockElementMap.clear();
|
|
748
|
+
// Destroy performance instrumentation
|
|
749
|
+
perfInstrumentation?.destroy();
|
|
604
750
|
// Remove contenteditable attributes
|
|
605
751
|
root.removeAttribute('contenteditable');
|
|
606
752
|
root.removeAttribute('role');
|
|
@@ -613,6 +759,12 @@ export function createWebEditor(config) {
|
|
|
613
759
|
root.style.whiteSpace = '';
|
|
614
760
|
},
|
|
615
761
|
};
|
|
762
|
+
// Auto-wire link popover when link plugin is registered and not disabled/readOnly
|
|
763
|
+
if (config.linkPopover !== false && !readOnly && engine.canExecute(LinkCommands._WIRE_UI)) {
|
|
764
|
+
linkPopoverHandle = createLinkPopover(webEditor, root);
|
|
765
|
+
engine.exec(LinkCommands._WIRE_UI, linkPopoverHandle.show);
|
|
766
|
+
}
|
|
767
|
+
return webEditor;
|
|
616
768
|
}
|
|
617
769
|
// ---------------------------------------------------------------------------
|
|
618
770
|
// Helpers
|
|
@@ -681,15 +833,40 @@ function getOffsetFromDropPoint(root, doc, clientX, clientY) {
|
|
|
681
833
|
return null;
|
|
682
834
|
}
|
|
683
835
|
/**
|
|
684
|
-
* Find the nearest block element to a given Y coordinate.
|
|
836
|
+
* Find the nearest rendered block element to a given Y coordinate.
|
|
685
837
|
*
|
|
686
838
|
* Used for positioning the drop indicator between blocks during drag-over.
|
|
839
|
+
* Only considers blocks that are actually in the DOM (drop targets must
|
|
840
|
+
* exist). Off-screen blocks (virtualized away) are skipped.
|
|
687
841
|
*
|
|
688
842
|
* @param root - The editor root element
|
|
689
843
|
* @param clientY - The Y coordinate to find the nearest block to
|
|
690
844
|
* @returns The nearest block element, or null if no blocks found
|
|
691
845
|
*/
|
|
692
|
-
function findNearestBlock(root, clientY) {
|
|
846
|
+
function findNearestBlock(root, clientY, doc, blockElementMap) {
|
|
847
|
+
// Use persistent Map for O(1) element lookup (avoids querySelectorAll + n getBoundingClientRect)
|
|
848
|
+
if (doc && blockElementMap && blockElementMap.size > 0) {
|
|
849
|
+
let nearest = null;
|
|
850
|
+
let nearestDistance = Infinity;
|
|
851
|
+
for (const block of doc.blocks) {
|
|
852
|
+
const el = blockElementMap.get(block.id);
|
|
853
|
+
if (!el)
|
|
854
|
+
continue;
|
|
855
|
+
const rect = el.getBoundingClientRect();
|
|
856
|
+
const midY = rect.top + rect.height / 2;
|
|
857
|
+
const distance = Math.abs(clientY - midY);
|
|
858
|
+
if (distance < nearestDistance) {
|
|
859
|
+
nearestDistance = distance;
|
|
860
|
+
nearest = el;
|
|
861
|
+
}
|
|
862
|
+
else {
|
|
863
|
+
// Blocks are in document order; once distance starts increasing, we've found the nearest
|
|
864
|
+
break;
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
return nearest;
|
|
868
|
+
}
|
|
869
|
+
// Fallback: scan DOM children
|
|
693
870
|
const blocks = root.querySelectorAll('[data-rtif-block]');
|
|
694
871
|
if (blocks.length === 0)
|
|
695
872
|
return null;
|
|
@@ -704,7 +881,39 @@ function findNearestBlock(root, clientY) {
|
|
|
704
881
|
nearestDistance = distance;
|
|
705
882
|
nearest = block;
|
|
706
883
|
}
|
|
884
|
+
else {
|
|
885
|
+
break;
|
|
886
|
+
}
|
|
707
887
|
}
|
|
708
888
|
return nearest;
|
|
709
889
|
}
|
|
890
|
+
/**
|
|
891
|
+
* Ensure that the blocks containing the selection anchor and focus are
|
|
892
|
+
* rendered in the DOM. Called before `setDomSelection()` when virtualization
|
|
893
|
+
* is active so that the cursor can be placed correctly.
|
|
894
|
+
*/
|
|
895
|
+
function ensureSelectionRendered(vp, doc, sel) {
|
|
896
|
+
try {
|
|
897
|
+
const anchorResolved = resolve(doc, sel.anchor.offset);
|
|
898
|
+
vp.ensureRendered(anchorResolved.blockIndex);
|
|
899
|
+
if (sel.focus.offset !== sel.anchor.offset) {
|
|
900
|
+
const focusResolved = resolve(doc, sel.focus.offset);
|
|
901
|
+
vp.ensureRendered(focusResolved.blockIndex);
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
catch {
|
|
905
|
+
// Offset out of range — skip. The selection sync will handle gracefully.
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
/**
|
|
909
|
+
* Normalize the `virtualize` config option into a `VirtualizationConfig`
|
|
910
|
+
* object or `null` if explicitly disabled. Default is enabled (`true`).
|
|
911
|
+
*/
|
|
912
|
+
function normalizeVirtualizeConfig(input) {
|
|
913
|
+
if (input === false)
|
|
914
|
+
return null;
|
|
915
|
+
if (input === undefined || input === true)
|
|
916
|
+
return {};
|
|
917
|
+
return input;
|
|
918
|
+
}
|
|
710
919
|
//# sourceMappingURL=editor.js.map
|
package/dist/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACjI,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,eAAe,CAAC,MAAuB;IACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,sEAAsE;IACtE,8BAA8B;IAC9B,sEAAsE;IAEtE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;IACjE,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,IAAI,mBAAmB,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,sEAAsE;IACtE,kCAAkC;IAClC,sEAAsE;IAEtE,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAE7B,4DAA4D;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;IAE/B,8EAA8E;IAC9E,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAEnC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,sEAAsE;IACtE,yBAAyB;IACzB,sEAAsE;IAEtE,MAAM,aAAa,GAAG,0BAA0B,EAAE,CAAC;IACnD,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAExC,sEAAsE;IACtE,0BAA0B;IAC1B,sEAAsE;IAEtE,MAAM,cAAc,GAAG,2BAA2B,EAAE,CAAC;IACrD,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAE9C,sEAAsE;IACtE,uDAAuD;IACvD,sEAAsE;IAEtE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IAED,sEAAsE;IACtE,wBAAwB;IACxB,sEAAsE;IAEtE,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,UAAU,KAAK,IAAI;QAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAElE,sEAAsE;IACtE,iBAAiB;IACjB,sEAAsE;IAEtE,sFAAsF;IACtF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,IAAI,QAAQ,GAA2B,IAAI,CAAC;IAE5C,IAAI,gBAAgB,IAAI,UAAU,EAAE,CAAC;QACnC,QAAQ,GAAG,qBAAqB,CAC9B;YACE,IAAI;YACJ,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,gBAAgB,EAAE,UAAU,CAAC,gBAAsD;YACnF,eAAe,EAAE,UAAU,CAAC,eAAe;SAC5C,EACD,MAAM,CAAC,KAAK,CAAC,GAAG,CACjB,CAAC;QACF,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IACxF,CAAC;IAED,sEAAsE;IACtE,cAAc;IACd,sEAAsE;IAEtE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE5C,sEAAsE;IACtE,sBAAsB;IACtB,sEAAsE;IAEtE,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;QAChD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;QAC1C,kBAAkB,EAAE,CAAC,MAAc,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACzD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,sEAAsE;IACtE,gDAAgD;IAChD,sEAAsE;IAEtE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErE,sEAAsE;IACtE,8DAA8D;IAC9D,6DAA6D;IAC7D,sDAAsD;IACtD,sEAAsE;IAEtE,MAAM,cAAc,GAAG,oBAAoB,CAAC;QAC1C,IAAI;QACJ,MAAM;QACN,UAAU;QACV,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;KACpD,CAAC,CAAC;IAEH,sEAAsE;IACtE,mBAAmB;IACnB,sEAAsE;IAEtE,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE;QAChD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;QACzC,UAAU;QACV,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;KACpD,CAAC,CAAC;IAEH,sEAAsE;IACtE,eAAe;IACf,sEAAsE;IAEtE,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAA4C,EAAE;QACzF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;QACxC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;QAC1C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC1B,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QACnC,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;QAC/C,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACnD,mBAAmB,EAAE,qBAAqB;QAC1C,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC/D,CAAC,CAAC;IAEH,sEAAsE;IACtE,mBAAmB;IACnB,sEAAsE;IAEtE,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;IAEhD,4EAA4E;IAC5E,4CAA4C;IAC5C,eAAe,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACnD,eAAe,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,eAAe,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACnD,eAAe,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACpD,eAAe,CAAC,QAAQ,CACtB,sBAAsB,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAC3C,CAAC;IACF,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAElD,sEAAsE;IACtE,0DAA0D;IAC1D,sEAAsE;IAEtE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE;QAClD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;QAC1C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC1B,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;QACnD,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QACnC,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,sEAAsE;IACtE,iBAAiB;IACjB,sEAAsE;IAEtE,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAE9C,sEAAsE;IACtE,uDAAuD;IACvD,sEAAsE;IAEtE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC5C,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,GAAG,EAAE,CAAC,eAAe;KAC1C,CAAC,CAAC;IAEH,sEAAsE;IACtE,uCAAuC;IACvC,sEAAsE;IAEtE,MAAM,OAAO,GAAG,CAAC,CAAiB,EAAQ,EAAE;QAC1C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,QAAQ;YAAE,OAAO;QACrB,IAAI,kBAAkB,CAAC,WAAW,EAAE;YAAE,OAAO;QAE7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,yEAAyE;QACzE,KAAK,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;YAClC,MAAM;YACN,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,sEAAsE;IACtE,yBAAyB;IACzB,sEAAsE;IAEtE,MAAM,UAAU,GAAG,CAAC,CAAY,EAAQ,EAAE;QACxC,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;QAC1B,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACrC,CAAC;QAEF,IAAI,QAAQ,IAAI,aAAa,EAAE,CAAC;YAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;YAEvB,IAAI,QAAQ,EAAE,CAAC;gBACb,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,kDAAkD;gBAClD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;gBACrF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,SAAS,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;oBAClD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;oBACvD,aAAa,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAY,EAAQ,EAAE;QACzC,8DAA8D;QAC9D,IACE,CAAC,CAAC,aAAa;YACf,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC,EACtC,CAAC;YACD,OAAO;QACT,CAAC;QACD,aAAa,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,CAAY,EAAQ,EAAE;QACpC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,QAAQ;YAAE,OAAO;QAErB,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,uCAAuC;QACvC,MAAM,UAAU,GAAG,sBAAsB,CACvC,IAAI,EACJ,MAAM,CAAC,KAAK,CAAC,GAAG,EAChB,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,OAAO,CACV,CAAC;QAEF,gBAAgB;QAChB,KAAK,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;YAClC,MAAM;YACN,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,UAAU,IAAI,SAAS;YACnC,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,sEAAsE;IACtE,4BAA4B;IAC5B,sEAAsE;IAEtE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE;QAClD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;QAC1C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC1B,YAAY,EAAE,CAAC,GAAc,EAAE,EAAE;YAC/B,uDAAuD;YACvD,uCAAuC;YACvC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACzB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;KACrB,CAAC,CAAC;IAEH,sEAAsE;IACtE,2BAA2B;IAC3B,sEAAsE;IAEtE,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAE/B;;;;OAIG;IACH,SAAS,gCAAgC,CACvC,GAAc,EACd,OAAkB,EAClB,UAAwE;QAExE,iCAAiC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACrE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;gBACxD,CAAC,CAAC,SAAS,CAAC;QACd,gCAAgC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAClE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;gBACtD,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAG,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,6BAA6B,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE5F,IAAI,cAAc,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,aAAa,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/E,OAAO,GAAG,CAAC,CAAC,+CAA+C;QAC7D,CAAC;QAED,OAAO;YACL,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;YAClC,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,sBAAsB,GAAG,GAAS,EAAE;QACxC,IAAI,SAAS;YAAE,OAAO;QACtB,IAAI,YAAY,EAAE;YAAE,OAAO;QAC3B,IAAI,kBAAkB,CAAC,WAAW,EAAE;YAAE,OAAO;QAE7C,oEAAoE;QACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO;QAEzB,+CAA+C;QAC/C,MAAM,WAAW,GAAG,gCAAgC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;QACzG,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACxB,yDAAyD;YACzD,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACjC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACrE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;gBACxD,CAAC,CAAC,SAAkB,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAClE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;gBACtD,CAAC,CAAC,SAAkB,CAAC;QAEvB,MAAM,SAAS,GAAG,8BAA8B,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAClH,MAAM,QAAQ,GAAG,8BAA8B,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAE/G,IAAI,SAAS,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrE,MAAM,gBAAgB,GAAG;gBACvB,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC7B,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;aAC5B,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACtC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,yFAAyF;QACzF,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,sEAAsE;IACtE,6BAA6B;IAC7B,sEAAsE;IAEtE,MAAM,kBAAkB,GAAG,CAAC,CAAmB,EAAQ,EAAE;QACvD,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,CAAmB,EAAQ,EAAE;QACxD,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,CAAmB,EAAQ,EAAE;QACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,MAAM,CAAC,QAAQ,CAAC;oBACd;wBACE,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;wBACjC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;qBAChC;oBACD;wBACE,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;wBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,QAAQ,CAAC;oBACd,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,sEAAsE;IACtE,qDAAqD;IACrD,sEAAsE;IAEtE,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,qCAAqC;IACrC,IAAI,YAAY,GAAyE,IAAI,CAAC;IAC9F,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,MAAM,WAAW,GAAG,CAAC,KAAoE,EAAQ,EAAE;QACjG,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;QAC1C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;QAElE,IAAI,QAAQ,EAAE,CAAC;YACb,uEAAuE;YACvE,yEAAyE;YACzE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;QACxG,CAAC;QACD,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;QACpB,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;QAExC,2CAA2C;QAC3C,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;YAC9C,uEAAuE;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACb,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC;YACD,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACnE,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,CAAC;QAED,gCAAgC;QAChC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnC,mBAAmB,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;QACpD,IAAI,SAAS;YAAE,OAAO;QAEtB,IAAI,aAAa,EAAE,CAAC;YAClB,6DAA6D;YAC7D,YAAY,GAAG,KAAK,CAAC;YACrB,cAAc,CAAC,GAAG,EAAE;gBAClB,IAAI,SAAS,IAAI,CAAC,YAAY;oBAAE,OAAO;gBACvC,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC9B,YAAY,GAAG,IAAI,CAAC;gBACpB,WAAW,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,aAAa,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,iCAAiC;IACjC,sEAAsE;IAEtE;;;;OAIG;IACH,SAAS,6BAA6B,CAAC,GAAc;QACnD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,wBAAwB;QAE5E,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBACrE,IAAI,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;oBACnD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,iEAAiE;IACjE,sEAAsE;IAEtE,MAAM,4BAA4B,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE;QACtE,IAAI,SAAS;YAAE,OAAO;QACtB,6BAA6B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,sBAAsB;IACtB,sEAAsE;IAEtE,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,sEAAsE;IACtE,8BAA8B;IAC9B,sEAAsE;IAEtE;;;;;;;;OAQG;IACH,SAAS,kBAAkB,CAAC,GAAc;QACxC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,sEAAsE;IACtE,8DAA8D;IAC9D,sEAAsE;IAEtE,MAAM,eAAe,GAAG,CAAC,CAAgB,EAAQ,EAAE;QACjD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,gBAAgB;YAAE,OAAO;QAErD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,wBAAwB;QAExF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,mBAAmB;QAEtD,4CAA4C;QAC5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IAEtE,IAAI,eAAe,GAAwB,IAAI,CAAC;IAEhD,MAAM,OAAO,GAAG,CAAC,CAAgB,EAAQ,EAAE;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO;QAClC,oDAAoD;QACpD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAS,EAAE;QAChC,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,sEAAsE;IACtE,0EAA0E;IAC1E,sEAAsE;IAEtE,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpB,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,sEAAsE;IACtE,6BAA6B;IAC7B,sEAAsE;IAEtE,eAAe,CAAC,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAE1B,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAChE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;IAErE,qEAAqE;IACrE,0EAA0E;IAC1E,yEAAyE;IACzE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAExD,oCAAoC;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,6BAA6B;IAC7B,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1C,aAAa;IACb,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,sEAAsE;IACtE,yBAAyB;IACzB,sEAAsE;IAEtE,IAAI,iBAAiB,GAA6B,IAAI,CAAC;IAEvD,sEAAsE;IACtE,0BAA0B;IAC1B,sEAAsE;IAEtE,MAAM,SAAS,GAAc;QAC3B,MAAM;QACN,UAAU;QACV,OAAO,EAAE,eAAe;QACxB,aAAa;QACb,cAAc;QACd,QAAQ,EAAE,cAAc;QACxB,UAAU;QAEV,IAAI,WAAW,KAAK,OAAO,iBAAiB,CAAC,CAAC,CAAC;QAE/C,IAAI,EAAE,mBAAmB;QACzB,QAAQ;QAER,KAAK;YACH,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,mEAAmE;YACnE,sEAAsE;YACtE,qEAAqE;YACrE,2CAA2C;YAC3C,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACnF,CAAC;QAED,IAAI;YACF,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,SAAS;YACP,IAAI,SAAS;gBAAE,OAAO,KAAK,CAAC;YAC5B,OAAO,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC;QACzC,CAAC;QAED,OAAO;YACL,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YAEjB,mCAAmC;YACnC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;gBACrF,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,wBAAwB;YACxB,eAAe,CAAC,MAAM,EAAE,CAAC;YACzB,WAAW,CAAC,MAAM,EAAE,CAAC;YACrB,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC1B,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC1B,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAE1B,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;YACjE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;YACnE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YAC3D,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;YAExE,2CAA2C;YAC3C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAClD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/C,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;YAED,kCAAkC;YAClC,mBAAmB,EAAE,CAAC;YACtB,4BAA4B,EAAE,CAAC;YAE/B,sBAAsB;YACtB,UAAU,CAAC,OAAO,EAAE,CAAC;YAErB,0BAA0B;YAC1B,cAAc,CAAC,OAAO,EAAE,CAAC;YAEzB,2BAA2B;YAC3B,eAAe,CAAC,OAAO,EAAE,CAAC;YAE1B,yBAAyB;YACzB,aAAa,CAAC,OAAO,EAAE,CAAC;YAExB,4BAA4B;YAC5B,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC3B,gBAAgB,EAAE,CAAC;YAEnB,0BAA0B;YAC1B,eAAe,CAAC,KAAK,EAAE,CAAC;YAExB,sCAAsC;YACtC,mBAAmB,EAAE,OAAO,EAAE,CAAC;YAE/B,oCAAoC;YACpC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;IAEF,kFAAkF;IAClF,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1F,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,gFAAgF;AAChF,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB;;;;;GAKG;AACH,SAAS,UAAU;IACjB,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAAiB,EAAE,GAAiB;IAC7D,MAAM,OAAO,GACX,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,EAAE,CAAC;IAEvC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,sBAAsB,CAC7B,IAAiB,EACjB,GAAiB,EACjB,OAAe,EACf,OAAe;IAEf,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAEzC,2CAA2C;IAC3C,IAAI,OAAO,QAAQ,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,2DAA2D;IAC3D,0GAA0G;IAC1G,MAAM,mBAAmB,GAAI,QAAgB,CAAC,mBAEjC,CAAC;IACd,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,oBAAoB,CACzB,IAAI,EACJ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,WAAW,EACjB,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CACvB,IAAiB,EACjB,OAAe,EACf,GAAkB,EAClB,eAA0C;IAE1C,iGAAiG;IACjG,IAAI,GAAG,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,OAAO,GAAmB,IAAI,CAAC;QACnC,IAAI,eAAe,GAAG,QAAQ,CAAC;QAE/B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;YAE1C,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;gBAC/B,eAAe,GAAG,QAAQ,CAAC;gBAC3B,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,yFAAyF;gBACzF,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,IAAI,eAAe,GAAG,QAAQ,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;YAC/B,eAAe,GAAG,QAAQ,CAAC;YAC3B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,EAAmB,EACnB,GAAiB,EACjB,GAAc;IAEd,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAChC,KAAiD;IAEjD,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embed utilities — pure URL transformation functions for provider-specific
|
|
3
|
+
* embed rendering.
|
|
4
|
+
*
|
|
5
|
+
* All functions are pure with zero DOM dependency. They convert a stored
|
|
6
|
+
* `(url, embedType)` pair into rendering configuration at render time,
|
|
7
|
+
* keeping the document model clean.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Known embed providers for provider-specific rendering.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const config = getEmbedRenderConfig('https://youtube.com/watch?v=abc', 'video');
|
|
17
|
+
* config.provider; // 'youtube'
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type EmbedProvider = 'youtube' | 'vimeo' | 'twitter' | 'generic';
|
|
21
|
+
/**
|
|
22
|
+
* Configuration used by the embed renderer to populate embed block content.
|
|
23
|
+
*
|
|
24
|
+
* Computed at render time from the block's `url` and `embedType` attrs.
|
|
25
|
+
* Video providers include an `iframeSrc` for embedding; non-video providers
|
|
26
|
+
* render as styled links or blockquotes.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const config = getEmbedRenderConfig('https://youtube.com/watch?v=dQw4w9WgXcQ', 'video');
|
|
31
|
+
* // {
|
|
32
|
+
* // provider: 'youtube',
|
|
33
|
+
* // iframeSrc: 'https://www.youtube.com/embed/dQw4w9WgXcQ',
|
|
34
|
+
* // title: 'YouTube video',
|
|
35
|
+
* // url: 'https://youtube.com/watch?v=dQw4w9WgXcQ',
|
|
36
|
+
* // displayUrl: 'youtube.com',
|
|
37
|
+
* // }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export interface EmbedRenderConfig {
|
|
41
|
+
/** The detected embed provider. */
|
|
42
|
+
readonly provider: EmbedProvider;
|
|
43
|
+
/** Embeddable iframe URL. Only present for video providers. */
|
|
44
|
+
readonly iframeSrc?: string;
|
|
45
|
+
/** Accessibility label for the embed. */
|
|
46
|
+
readonly title: string;
|
|
47
|
+
/** The original URL stored in the block. */
|
|
48
|
+
readonly url: string;
|
|
49
|
+
/** Hostname for display (strips `www.` prefix). */
|
|
50
|
+
readonly displayUrl: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Extract a YouTube video ID from a URL.
|
|
54
|
+
*
|
|
55
|
+
* Supports `youtube.com/watch?v=ID` and `youtu.be/ID` formats.
|
|
56
|
+
* Returns `null` if the URL is not a recognized YouTube URL.
|
|
57
|
+
*
|
|
58
|
+
* @param url - The URL to extract from
|
|
59
|
+
* @returns The video ID string, or null
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* extractYouTubeVideoId('https://www.youtube.com/watch?v=dQw4w9WgXcQ'); // 'dQw4w9WgXcQ'
|
|
64
|
+
* extractYouTubeVideoId('https://youtu.be/dQw4w9WgXcQ'); // 'dQw4w9WgXcQ'
|
|
65
|
+
* extractYouTubeVideoId('https://example.com'); // null
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function extractYouTubeVideoId(url: string): string | null;
|
|
69
|
+
/**
|
|
70
|
+
* Extract a Vimeo video ID from a URL.
|
|
71
|
+
*
|
|
72
|
+
* Supports `vimeo.com/ID` format where ID is numeric.
|
|
73
|
+
* Returns `null` if the URL is not a recognized Vimeo URL.
|
|
74
|
+
*
|
|
75
|
+
* @param url - The URL to extract from
|
|
76
|
+
* @returns The video ID string, or null
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* extractVimeoVideoId('https://vimeo.com/123456789'); // '123456789'
|
|
81
|
+
* extractVimeoVideoId('https://example.com'); // null
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare function extractVimeoVideoId(url: string): string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Build a YouTube embed iframe URL from a video ID.
|
|
87
|
+
*
|
|
88
|
+
* @param videoId - The YouTube video ID
|
|
89
|
+
* @returns The embeddable YouTube URL
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* youtubeEmbedSrc('dQw4w9WgXcQ'); // 'https://www.youtube.com/embed/dQw4w9WgXcQ'
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function youtubeEmbedSrc(videoId: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Build a Vimeo embed iframe URL from a video ID.
|
|
99
|
+
*
|
|
100
|
+
* @param videoId - The Vimeo video ID
|
|
101
|
+
* @returns The embeddable Vimeo URL
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* vimeoEmbedSrc('123456789'); // 'https://player.vimeo.com/video/123456789'
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export declare function vimeoEmbedSrc(videoId: string): string;
|
|
109
|
+
/**
|
|
110
|
+
* Extract a display-friendly hostname from a URL, stripping the `www.` prefix.
|
|
111
|
+
*
|
|
112
|
+
* Falls back to the raw input string if URL parsing fails.
|
|
113
|
+
*
|
|
114
|
+
* @param url - The URL to extract a hostname from
|
|
115
|
+
* @returns A display-friendly hostname string
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* extractDisplayUrl('https://www.youtube.com/watch?v=abc'); // 'youtube.com'
|
|
120
|
+
* extractDisplayUrl('https://example.com/page'); // 'example.com'
|
|
121
|
+
* extractDisplayUrl('not a url'); // 'not a url'
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare function extractDisplayUrl(url: string): string;
|
|
125
|
+
/**
|
|
126
|
+
* Compute the embed render configuration for a given URL and embed type.
|
|
127
|
+
*
|
|
128
|
+
* This is the main function called by the embed renderer at render time.
|
|
129
|
+
* It maps the stored `(url, embedType)` attrs to a provider-specific
|
|
130
|
+
* configuration object that determines what DOM content to create.
|
|
131
|
+
*
|
|
132
|
+
* @param url - The embed URL from `block.attrs.url`
|
|
133
|
+
* @param embedType - The embed type from `block.attrs.embedType` (e.g., 'video', 'tweet')
|
|
134
|
+
* @returns The render configuration for the embed
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```ts
|
|
138
|
+
* const config = getEmbedRenderConfig('https://youtube.com/watch?v=abc', 'video');
|
|
139
|
+
* // config.provider === 'youtube'
|
|
140
|
+
* // config.iframeSrc === 'https://www.youtube.com/embed/abc'
|
|
141
|
+
*
|
|
142
|
+
* const tweet = getEmbedRenderConfig('https://twitter.com/user/status/123', 'tweet');
|
|
143
|
+
* // tweet.provider === 'twitter'
|
|
144
|
+
* // tweet.iframeSrc === undefined
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export declare function getEmbedRenderConfig(url: string, embedType?: string): EmbedRenderConfig;
|
|
148
|
+
//# sourceMappingURL=embed-utils.d.ts.map
|