@mindexec/cli 0.2.396 → 0.2.397
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/package.json +1 -1
- package/remote-hub.js +17 -5
- package/scripts/remote-agent-managed-smoke.mjs +23 -0
- package/scripts/remote-hub-smoke.mjs +1 -1
- package/scripts/remote-registry-follower-smoke.mjs +31 -0
- package/server.js +327 -15
- package/wwwroot/_content/MindExecution.Shared/css/mind-map-overrides.css +15 -3
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +24 -21
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +107 -12
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +32 -5
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +11 -5
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js +61 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-texture-factory.js +6 -1
- package/wwwroot/service-worker-assets.js +8 -8
- package/wwwroot/service-worker.js +1 -1
|
@@ -2600,11 +2600,19 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
2600
2600
|
|
|
2601
2601
|
.css3d-resolution-wrapper.node-type-templatelauncher > .map-node-template-card {
|
|
2602
2602
|
border: 1px solid #111827 !important;
|
|
2603
|
-
border-radius:
|
|
2603
|
+
border-radius: 0 !important;
|
|
2604
2604
|
background: #f8fafc;
|
|
2605
2605
|
box-shadow: none !important;
|
|
2606
2606
|
}
|
|
2607
2607
|
|
|
2608
|
+
.css3d-resolution-wrapper.node-type-templatelauncher > .map-node-template-card.map-node-remote-fleet {
|
|
2609
|
+
border: 0 !important;
|
|
2610
|
+
}
|
|
2611
|
+
|
|
2612
|
+
.css3d-resolution-wrapper.node-type-templatelauncher.selected > .map-node-template-card.map-node-remote-fleet {
|
|
2613
|
+
border: 2px solid var(--node-selection-edge, #2563eb) !important;
|
|
2614
|
+
}
|
|
2615
|
+
|
|
2608
2616
|
/* Template launcher and Multi Desktop Monitor own their visual chrome on the
|
|
2609
2617
|
card itself. Keep the CSS3D wrapper neutral so motion CSS3D and the passive
|
|
2610
2618
|
DOM overlay do not stack different selection chrome. */
|
|
@@ -2627,12 +2635,16 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
2627
2635
|
|
|
2628
2636
|
.map-node-template-card {
|
|
2629
2637
|
border: 1px solid #111827 !important;
|
|
2630
|
-
border-radius:
|
|
2638
|
+
border-radius: 0;
|
|
2631
2639
|
color: #10212f;
|
|
2632
2640
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
2633
2641
|
box-shadow: none !important;
|
|
2634
2642
|
}
|
|
2635
2643
|
|
|
2644
|
+
.map-node-template-card.map-node-remote-fleet {
|
|
2645
|
+
border: 0 !important;
|
|
2646
|
+
}
|
|
2647
|
+
|
|
2636
2648
|
.template-card__shell {
|
|
2637
2649
|
display: flex;
|
|
2638
2650
|
flex-direction: column;
|
|
@@ -2641,7 +2653,7 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
2641
2653
|
gap: 12px;
|
|
2642
2654
|
padding: 18px;
|
|
2643
2655
|
border: 0;
|
|
2644
|
-
border-radius:
|
|
2656
|
+
border-radius: 0;
|
|
2645
2657
|
background: #f8fafc;
|
|
2646
2658
|
overflow: hidden;
|
|
2647
2659
|
}
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
});
|
|
78
78
|
const CanvasPhaseSet = new Set(Object.values(CanvasPhase));
|
|
79
79
|
const VIEWPORT_METRICS_POLL_INTERVAL = 480;
|
|
80
|
-
const PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED =
|
|
80
|
+
const PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED = false;
|
|
81
81
|
const PASSIVE_OVERLAY_ZOOM_DEFER_VISIBLE_THRESHOLD = 24;
|
|
82
82
|
const PASSIVE_OVERLAY_INTERACTIVE_REFRESH_INTERVAL_MS = 48;
|
|
83
83
|
const PASSIVE_OVERLAY_INTERACTIVE_DENSE_REFRESH_INTERVAL_MS = 72;
|
|
@@ -516,8 +516,11 @@
|
|
|
516
516
|
}
|
|
517
517
|
|
|
518
518
|
function hasPassiveOverlayMotionWork(module) {
|
|
519
|
-
|
|
520
|
-
|
|
519
|
+
if (PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED !== true) {
|
|
520
|
+
return false;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
return hasPassiveOverlaySelectionSurface(module) === true;
|
|
521
524
|
}
|
|
522
525
|
|
|
523
526
|
function deferPassiveOverlayForCameraMotion(module, nowMs = 0, delayMs = PASSIVE_OVERLAY_IDLE_DELAY_MS) {
|
|
@@ -676,10 +679,10 @@
|
|
|
676
679
|
const DEFAULT_RENDER_DEBUG_FLAGS = Object.freeze({
|
|
677
680
|
enableCss3d: true,
|
|
678
681
|
enableCss3dTransformSync: true,
|
|
679
|
-
enableDomOverlay:
|
|
680
|
-
enablePassiveOverlayForVisibleNodes:
|
|
681
|
-
enableOverlayCssZoom:
|
|
682
|
-
enableSharedNodeViewOverlay:
|
|
682
|
+
enableDomOverlay: false,
|
|
683
|
+
enablePassiveOverlayForVisibleNodes: false,
|
|
684
|
+
enableOverlayCssZoom: false,
|
|
685
|
+
enableSharedNodeViewOverlay: false,
|
|
683
686
|
preferOverlayNodeViewHost: false,
|
|
684
687
|
enableVisibilityCulling: true,
|
|
685
688
|
enableLodUpdate: true,
|
|
@@ -1067,6 +1070,12 @@
|
|
|
1067
1070
|
}
|
|
1068
1071
|
});
|
|
1069
1072
|
|
|
1073
|
+
next.enableDomOverlay = false;
|
|
1074
|
+
next.enablePassiveOverlayForVisibleNodes = false;
|
|
1075
|
+
next.enableOverlayCssZoom = false;
|
|
1076
|
+
next.enableSharedNodeViewOverlay = false;
|
|
1077
|
+
next.preferOverlayNodeViewHost = false;
|
|
1078
|
+
|
|
1070
1079
|
return next;
|
|
1071
1080
|
}
|
|
1072
1081
|
|
|
@@ -1370,16 +1379,10 @@
|
|
|
1370
1379
|
const overlayPlacementZoomCount = Number(moduleInstance._overlayDebugPlacementZoomCount || 0);
|
|
1371
1380
|
const overlayPlacementTransformCount = Number(moduleInstance._overlayDebugPlacementTransformCount || 0);
|
|
1372
1381
|
const currentLodBand = String(moduleInstance.lodRenderer?._currentLodBand || '').trim().toUpperCase();
|
|
1373
|
-
const overlayScaleMode =
|
|
1374
|
-
|
|
1375
|
-
: (overlayPlacementZoomCount > 0
|
|
1376
|
-
? 'css zoom + transform fallback'
|
|
1377
|
-
: 'transform only (text cards)');
|
|
1378
|
-
const overlayCandidateMode = currentLodBand && currentLodBand !== 'NEAR'
|
|
1382
|
+
const overlayScaleMode = 'css3d only';
|
|
1383
|
+
const overlayCandidateMode = currentLodBand
|
|
1379
1384
|
? `css3d only (${currentLodBand.toLowerCase()} band)`
|
|
1380
|
-
:
|
|
1381
|
-
? 'all-visible passive'
|
|
1382
|
-
: 'selected/editing only');
|
|
1385
|
+
: 'css3d only';
|
|
1383
1386
|
const shouldBuildResidentDirtySnapshot =
|
|
1384
1387
|
flags.enableFramePerfProbe === true ||
|
|
1385
1388
|
flags.enableNodeFrameDebug === true;
|
|
@@ -3081,8 +3084,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3081
3084
|
this._overlayDirty = true;
|
|
3082
3085
|
this._lastOverlayKey = '';
|
|
3083
3086
|
this._lastOverlaySelectionKey = '';
|
|
3084
|
-
this.useTextOverlayV2 =
|
|
3085
|
-
this.useDomTextOverlay =
|
|
3087
|
+
this.useTextOverlayV2 = false;
|
|
3088
|
+
this.useDomTextOverlay = false;
|
|
3086
3089
|
this.renderDebugFlags = getRenderDebugFlagsSnapshot();
|
|
3087
3090
|
this._framePerfPeakProfile = createEmptyFramePerfPeakProfile();
|
|
3088
3091
|
|
|
@@ -6016,11 +6019,11 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6016
6019
|
? String(this._textOverlayV2State?.editing?.nodeId || '').trim()
|
|
6017
6020
|
: String(this._editingOverlayState?.nodeId || '').trim();
|
|
6018
6021
|
const hasFocusedTextOverlay = !!selectableOverlayNodeId;
|
|
6019
|
-
const
|
|
6022
|
+
const hasActualTextOverlay = !!selectableOverlayNodeId || !!editingOverlayNodeId;
|
|
6023
|
+
const hasEditingOverlay = !!editingOverlayNodeId || this.isEditingNote === true;
|
|
6020
6024
|
const shouldTrackTextOverlayDirty =
|
|
6021
6025
|
isPassiveDomOverlayRuntimeEnabled === true ||
|
|
6022
|
-
|
|
6023
|
-
hasEditingOverlay === true;
|
|
6026
|
+
hasActualTextOverlay === true;
|
|
6024
6027
|
const selectedOverlayNodeId = String(this.selectedNodeIdJs || '').trim();
|
|
6025
6028
|
const overlaySelectionKey = `${selectedOverlayNodeId}|${selectableOverlayNodeId}|${editingOverlayNodeId}|${useTextOverlayV2 ? 'v2' : 'legacy'}`;
|
|
6026
6029
|
if (overlaySelectionKey !== this._lastOverlaySelectionKey) {
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
const NODE_VIEW_HOST_OVERLAY = 'overlay';
|
|
44
44
|
const NODE_VIEW_HOST_HYBRID = 'hybrid';
|
|
45
45
|
const NODE_VIEW_RENDERER_VERSION = 'shared-node-view-v1';
|
|
46
|
+
const CSS3D_ONLY_NODE_RENDERING = true;
|
|
46
47
|
const CSV_TABLE_MAX_RENDER_ROWS = 500;
|
|
47
48
|
const CSV_TABLE_MAX_RENDER_COLUMNS = 80;
|
|
48
49
|
const REMOTE_FLEET_DISPLAY_NAME = 'Multi Desktop Monitor';
|
|
@@ -407,11 +408,18 @@
|
|
|
407
408
|
}
|
|
408
409
|
.map-node-template-card {
|
|
409
410
|
border: 1px solid #111827 !important;
|
|
410
|
-
border-radius:
|
|
411
|
+
border-radius: 0;
|
|
411
412
|
box-shadow: none !important;
|
|
412
413
|
}
|
|
414
|
+
.map-node-template-card.map-node-remote-fleet {
|
|
415
|
+
border: 0 !important;
|
|
416
|
+
}
|
|
417
|
+
.css3d-resolution-wrapper.node-type-templatelauncher.selected > .map-node-template-card.map-node-remote-fleet {
|
|
418
|
+
border: 2px solid var(--node-selection-edge, #2563eb) !important;
|
|
419
|
+
}
|
|
413
420
|
.map-node-template-card > .template-card__shell {
|
|
414
421
|
border: 0 !important;
|
|
422
|
+
border-radius: 0 !important;
|
|
415
423
|
}
|
|
416
424
|
.csv-table-scroll {
|
|
417
425
|
width: 100%;
|
|
@@ -1707,12 +1715,34 @@
|
|
|
1707
1715
|
if (isGeneratedCssImageNode(nodeModel)) {
|
|
1708
1716
|
const directOriginalUrl = isDirectCssMediaUrl(originalUrl) ? originalUrl : '';
|
|
1709
1717
|
const responseFullResUrl = responseUrl && !isThumbnailCssMediaUrl(responseUrl) ? responseUrl : '';
|
|
1710
|
-
return directOriginalUrl ||
|
|
1718
|
+
return directOriginalUrl || originalUrl || previewUrl || responseFullResUrl;
|
|
1711
1719
|
}
|
|
1712
1720
|
|
|
1713
1721
|
return previewUrl || responseUrl || originalUrl;
|
|
1714
1722
|
}
|
|
1715
1723
|
|
|
1724
|
+
function hasRecoverableCssImageAssetReference(nodeModel) {
|
|
1725
|
+
const assetUrls = window.MindMapNodes?.getNodeImageAssetUrls?.(nodeModel) || null;
|
|
1726
|
+
if (assetUrls?.originalPath || assetUrls?.originalUrl || assetUrls?.fullResUrl) {
|
|
1727
|
+
return true;
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
const metadata = getCssMediaMetadata(nodeModel);
|
|
1731
|
+
return !!(
|
|
1732
|
+
metadata?.OriginalPath ||
|
|
1733
|
+
metadata?.OriginalUrl ||
|
|
1734
|
+
metadata?.originalUrl
|
|
1735
|
+
);
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
function shouldRefreshNonRefreshableCssMediaSource(nodeModel, contentTypeLower, currentSource) {
|
|
1739
|
+
if (contentTypeLower !== 'image' || !isNonRefreshableMediaUrl(currentSource)) {
|
|
1740
|
+
return false;
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
return hasRecoverableCssImageAssetReference(nodeModel);
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1716
1746
|
function shouldPreferCssImagePreviewSource(nodeModel) {
|
|
1717
1747
|
if (!nodeModel) return false;
|
|
1718
1748
|
if (isAnimatedGifCssImageNode(nodeModel)) return false;
|
|
@@ -4120,7 +4150,8 @@
|
|
|
4120
4150
|
return;
|
|
4121
4151
|
}
|
|
4122
4152
|
|
|
4123
|
-
if (isNonRefreshableMediaUrl(currentSource)
|
|
4153
|
+
if (isNonRefreshableMediaUrl(currentSource)
|
|
4154
|
+
&& !shouldRefreshNonRefreshableCssMediaSource(nodeModel, contentTypeLower, currentSource)) {
|
|
4124
4155
|
return;
|
|
4125
4156
|
}
|
|
4126
4157
|
|
|
@@ -4696,6 +4727,10 @@
|
|
|
4696
4727
|
}
|
|
4697
4728
|
|
|
4698
4729
|
function supportsTextOverlay(nodeModel) {
|
|
4730
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4731
|
+
return false;
|
|
4732
|
+
}
|
|
4733
|
+
|
|
4699
4734
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
4700
4735
|
return TEXT_OVERLAY_SUPPORTED_TYPES.has(contentType);
|
|
4701
4736
|
}
|
|
@@ -4717,11 +4752,19 @@
|
|
|
4717
4752
|
}
|
|
4718
4753
|
|
|
4719
4754
|
function supportsEditingOverlay(nodeModel) {
|
|
4755
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4756
|
+
return false;
|
|
4757
|
+
}
|
|
4758
|
+
|
|
4720
4759
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
4721
4760
|
return EDIT_OVERLAY_SUPPORTED_TYPES.has(contentType);
|
|
4722
4761
|
}
|
|
4723
4762
|
|
|
4724
4763
|
function supportsSelectionTextOverlay(nodeModel) {
|
|
4764
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4765
|
+
return false;
|
|
4766
|
+
}
|
|
4767
|
+
|
|
4725
4768
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
4726
4769
|
return TEXT_SELECTION_OVERLAY_SUPPORTED_TYPES.has(contentType);
|
|
4727
4770
|
}
|
|
@@ -4732,6 +4775,10 @@
|
|
|
4732
4775
|
}
|
|
4733
4776
|
|
|
4734
4777
|
function getReadonlyTextOverlayMode(nodeEntry) {
|
|
4778
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4779
|
+
return 'none';
|
|
4780
|
+
}
|
|
4781
|
+
|
|
4735
4782
|
if (isCss3dOnlyTemplateSurfaceNode(nodeEntry?.model)) {
|
|
4736
4783
|
return 'none';
|
|
4737
4784
|
}
|
|
@@ -5370,10 +5417,18 @@
|
|
|
5370
5417
|
}
|
|
5371
5418
|
|
|
5372
5419
|
function isTextOverlayV2Enabled(module) {
|
|
5420
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
5421
|
+
return false;
|
|
5422
|
+
}
|
|
5423
|
+
|
|
5373
5424
|
return module?.useTextOverlayV2 === true && !!window.MindMapTextOverlayV2;
|
|
5374
5425
|
}
|
|
5375
5426
|
|
|
5376
5427
|
function hasSelectableTextOverlay(module, nodeId = null) {
|
|
5428
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
5429
|
+
return false;
|
|
5430
|
+
}
|
|
5431
|
+
|
|
5377
5432
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.hasSelection?.(module, nodeId) === true) {
|
|
5378
5433
|
return true;
|
|
5379
5434
|
}
|
|
@@ -5654,6 +5709,11 @@
|
|
|
5654
5709
|
}
|
|
5655
5710
|
|
|
5656
5711
|
function activateSelectableTextOverlay(module, nodeId) {
|
|
5712
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
5713
|
+
clearLegacyTextOverlays(module);
|
|
5714
|
+
return false;
|
|
5715
|
+
}
|
|
5716
|
+
|
|
5657
5717
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.activateSelection?.(module, nodeId) === true) {
|
|
5658
5718
|
return true;
|
|
5659
5719
|
}
|
|
@@ -6491,6 +6551,10 @@
|
|
|
6491
6551
|
}
|
|
6492
6552
|
|
|
6493
6553
|
function beginNodeEditingOverlay(module, nodeEntry) {
|
|
6554
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6555
|
+
return false;
|
|
6556
|
+
}
|
|
6557
|
+
|
|
6494
6558
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.beginEditing?.(module, nodeEntry) === true) {
|
|
6495
6559
|
return true;
|
|
6496
6560
|
}
|
|
@@ -6563,6 +6627,13 @@
|
|
|
6563
6627
|
}
|
|
6564
6628
|
|
|
6565
6629
|
function syncEditingOverlay(module) {
|
|
6630
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6631
|
+
if (getActiveEditingOverlayState(module)) {
|
|
6632
|
+
clearEditingOverlay(module, { commit: true });
|
|
6633
|
+
}
|
|
6634
|
+
return;
|
|
6635
|
+
}
|
|
6636
|
+
|
|
6566
6637
|
if (isTextOverlayV2Enabled(module)) {
|
|
6567
6638
|
return;
|
|
6568
6639
|
}
|
|
@@ -6590,6 +6661,10 @@
|
|
|
6590
6661
|
}
|
|
6591
6662
|
|
|
6592
6663
|
function hasEditingOverlay(module, nodeId = null) {
|
|
6664
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6665
|
+
return false;
|
|
6666
|
+
}
|
|
6667
|
+
|
|
6593
6668
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.hasEditing?.(module, nodeId) === true) {
|
|
6594
6669
|
return true;
|
|
6595
6670
|
}
|
|
@@ -6745,6 +6820,14 @@
|
|
|
6745
6820
|
}
|
|
6746
6821
|
|
|
6747
6822
|
function syncTextOverlays(module) {
|
|
6823
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6824
|
+
clearLegacyTextOverlays(module);
|
|
6825
|
+
if (getActiveEditingOverlayState(module)) {
|
|
6826
|
+
clearEditingOverlay(module, { commit: true });
|
|
6827
|
+
}
|
|
6828
|
+
return;
|
|
6829
|
+
}
|
|
6830
|
+
|
|
6748
6831
|
if (isTextOverlayV2Enabled(module)) {
|
|
6749
6832
|
clearLegacyTextOverlays(module);
|
|
6750
6833
|
return;
|
|
@@ -19257,7 +19340,9 @@
|
|
|
19257
19340
|
overflow: hidden;
|
|
19258
19341
|
border-radius: 0;
|
|
19259
19342
|
background: ${hasPreviewSource ? 'linear-gradient(135deg, #0f172a 0%, #1e293b 100%)' : '#ffffff'};
|
|
19260
|
-
border: 1px solid rgba(148, 163, 184,
|
|
19343
|
+
border: ${isDetail ? '1px solid rgba(148, 163, 184, 0.34)' : '0'};
|
|
19344
|
+
outline: 0;
|
|
19345
|
+
outline-offset: 0;
|
|
19261
19346
|
box-shadow: none;
|
|
19262
19347
|
`;
|
|
19263
19348
|
ensureRemoteFleetFrameCanvas(preview);
|
|
@@ -19442,7 +19527,9 @@
|
|
|
19442
19527
|
`;
|
|
19443
19528
|
const preview = createDevicePreview(device, 'tile');
|
|
19444
19529
|
if (isSelected) {
|
|
19445
|
-
preview.style.
|
|
19530
|
+
preview.style.border = '2px solid rgba(37, 99, 235, 0.86)';
|
|
19531
|
+
preview.style.outline = '0';
|
|
19532
|
+
preview.style.outlineOffset = '0';
|
|
19446
19533
|
preview.style.boxShadow = 'none';
|
|
19447
19534
|
}
|
|
19448
19535
|
card.appendChild(preview);
|
|
@@ -19871,11 +19958,11 @@
|
|
|
19871
19958
|
|
|
19872
19959
|
const preview = card.querySelector?.('[data-remote-fleet-device-preview]') || card.firstElementChild;
|
|
19873
19960
|
if (preview?.style) {
|
|
19874
|
-
preview.style.
|
|
19875
|
-
? 'rgba(37, 99, 235, 0.86)'
|
|
19876
|
-
: '
|
|
19877
|
-
preview.style.outline =
|
|
19878
|
-
preview.style.outlineOffset =
|
|
19961
|
+
preview.style.border = isSelected
|
|
19962
|
+
? '2px solid rgba(37, 99, 235, 0.86)'
|
|
19963
|
+
: '0';
|
|
19964
|
+
preview.style.outline = '0';
|
|
19965
|
+
preview.style.outlineOffset = '0';
|
|
19879
19966
|
preview.style.boxShadow = 'none';
|
|
19880
19967
|
}
|
|
19881
19968
|
};
|
|
@@ -23326,6 +23413,10 @@
|
|
|
23326
23413
|
}
|
|
23327
23414
|
|
|
23328
23415
|
function getNodeViewPrimaryHost(module = _module) {
|
|
23416
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
23417
|
+
return NODE_VIEW_HOST_CSS3D;
|
|
23418
|
+
}
|
|
23419
|
+
|
|
23329
23420
|
const flags = module?.renderDebugFlags || {};
|
|
23330
23421
|
const explicit = normalizeNodeViewHost(flags.nodeViewPrimaryHost, '');
|
|
23331
23422
|
if (explicit) {
|
|
@@ -23338,7 +23429,9 @@
|
|
|
23338
23429
|
}
|
|
23339
23430
|
|
|
23340
23431
|
function getNodeViewHostPolicy(module, nodeModel, options = {}) {
|
|
23341
|
-
const requestedHost =
|
|
23432
|
+
const requestedHost = CSS3D_ONLY_NODE_RENDERING === true
|
|
23433
|
+
? NODE_VIEW_HOST_CSS3D
|
|
23434
|
+
: normalizeNodeViewHost(options.hostKind, NODE_VIEW_HOST_CSS3D);
|
|
23342
23435
|
const primaryHost = getNodeViewPrimaryHost(module);
|
|
23343
23436
|
const info = getNodeViewContentInfo(nodeModel);
|
|
23344
23437
|
const overlayPrimary = primaryHost === NODE_VIEW_HOST_OVERLAY;
|
|
@@ -23352,7 +23445,8 @@
|
|
|
23352
23445
|
isCss3dPrimary: primaryHost === NODE_VIEW_HOST_CSS3D || hybridPrimary,
|
|
23353
23446
|
isOverlayPrimary: overlayPrimary,
|
|
23354
23447
|
isHybridPrimary: hybridPrimary,
|
|
23355
|
-
useSharedOverlay:
|
|
23448
|
+
useSharedOverlay: CSS3D_ONLY_NODE_RENDERING !== true &&
|
|
23449
|
+
module?.renderDebugFlags?.enableSharedNodeViewOverlay !== false,
|
|
23356
23450
|
supportsNodeView: shouldCreateDynamicNodeView(nodeModel, info) || !shouldBypassNodeViewTemplate(nodeModel, info),
|
|
23357
23451
|
contentTypeLower: info.contentTypeLower,
|
|
23358
23452
|
visualContentTypeLower: info.visualContentTypeLower
|
|
@@ -24614,6 +24708,7 @@
|
|
|
24614
24708
|
syncCss3dEmbedInteractivity: syncCss3dEmbedInteractivity,
|
|
24615
24709
|
getMountedEmbedState: getMountedEmbedState,
|
|
24616
24710
|
hasMountedEmbedIframe: hasMountedEmbedIframe,
|
|
24711
|
+
isCss3dOnlyNodeRendering: () => CSS3D_ONLY_NODE_RENDERING === true,
|
|
24617
24712
|
shouldConsumeEmbedPointerEvent: shouldConsumeEmbedPointerEvent,
|
|
24618
24713
|
syncCss3dContent: syncCss3dContent,
|
|
24619
24714
|
syncCss3dVideoLodMediaSource: syncCss3dVideoLodMediaSource,
|
|
@@ -512,6 +512,13 @@ window.MindMapInteractions = (function () {
|
|
|
512
512
|
}
|
|
513
513
|
}
|
|
514
514
|
|
|
515
|
+
if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
|
|
516
|
+
module._overlayDirty = false;
|
|
517
|
+
module._deferPassiveOverlayRefresh = false;
|
|
518
|
+
module._passiveOverlayResumeAt = 0;
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
|
|
515
522
|
if (module.useTextOverlayV2 === true && isDomOverlayEnabled && window.MindMapTextOverlayV2?.updateFrame) {
|
|
516
523
|
window.MindMapTextOverlayV2.updateFrame(module);
|
|
517
524
|
} else if (module.useTextOverlayV2 !== true && window.MindMapCss3DManager?.syncTextOverlays) {
|
|
@@ -521,6 +528,10 @@ window.MindMapInteractions = (function () {
|
|
|
521
528
|
}
|
|
522
529
|
|
|
523
530
|
function syncOverlayNodePlacementDuringDrag(module, nodeId) {
|
|
531
|
+
if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
|
|
524
535
|
if (!module || !nodeId || module.useTextOverlayV2 !== true) {
|
|
525
536
|
return;
|
|
526
537
|
}
|
|
@@ -533,6 +544,15 @@ window.MindMapInteractions = (function () {
|
|
|
533
544
|
}
|
|
534
545
|
|
|
535
546
|
function setPassiveOverlaySuppressedDuringDrag(module, suppressed) {
|
|
547
|
+
if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
|
|
548
|
+
if (module) {
|
|
549
|
+
module._deferPassiveOverlayRefresh = false;
|
|
550
|
+
module._passiveOverlayResumeAt = 0;
|
|
551
|
+
module._suppressPassiveDomOverlayDuringZoom = false;
|
|
552
|
+
}
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
|
|
536
556
|
if (!module || module.useTextOverlayV2 !== true || !window.MindMapTextOverlayV2?.setPassiveOverlaySuppressed) {
|
|
537
557
|
return;
|
|
538
558
|
}
|
|
@@ -555,6 +575,14 @@ window.MindMapInteractions = (function () {
|
|
|
555
575
|
module._overlayDirty = true;
|
|
556
576
|
module._forceUpdateFrames = Math.max(Number(module._forceUpdateFrames || 0), forceFrames);
|
|
557
577
|
|
|
578
|
+
if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
|
|
579
|
+
module._deferPassiveOverlayRefresh = false;
|
|
580
|
+
module._cameraNavigationOverlayInputTime = 0;
|
|
581
|
+
module._passiveOverlayResumeAt = 0;
|
|
582
|
+
module._overlayDirty = false;
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
|
|
558
586
|
const isMotionInteraction =
|
|
559
587
|
module.isZooming === true ||
|
|
560
588
|
module.isPanning === true ||
|
|
@@ -832,7 +860,9 @@ window.MindMapInteractions = (function () {
|
|
|
832
860
|
if (isReadOnlyTextSelectionNode(nodeEntry)) {
|
|
833
861
|
if (isLink) return;
|
|
834
862
|
|
|
835
|
-
const preferCss3dNativeSelection =
|
|
863
|
+
const preferCss3dNativeSelection =
|
|
864
|
+
window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true ||
|
|
865
|
+
module?.useTextOverlayV2 === true;
|
|
836
866
|
if (!preferCss3dNativeSelection &&
|
|
837
867
|
(contentType === 'markdown' || contentType === 'text') &&
|
|
838
868
|
window.MindMapCss3DManager?.activateSelectableTextOverlay) {
|
|
@@ -7257,10 +7287,7 @@ window.MindMapInteractions = (function () {
|
|
|
7257
7287
|
);
|
|
7258
7288
|
const isMemoDom = !!cssEl?.querySelector?.('.map-node-memo, .map-node-memo__shell, .map-node-memo__body');
|
|
7259
7289
|
const isMemoNode = contentType === 'memo' || isMemoDom || isAgentCommandDom;
|
|
7260
|
-
const preferDomEditingOverlay =
|
|
7261
|
-
|| contentType === 'note'
|
|
7262
|
-
|| isMemoDom
|
|
7263
|
-
|| isAgentCommandDom;
|
|
7290
|
+
const preferDomEditingOverlay = false;
|
|
7264
7291
|
|
|
7265
7292
|
// ▼▼▼ [FIX] 카메라 행렬 강제 업데이트 (CSS3D와 WebGL 동기화) ▼▼▼
|
|
7266
7293
|
// 클릭 시 카메라의 이전 프레임 행렬로 렌더링되는 것을 방지
|
|
@@ -1479,10 +1479,13 @@
|
|
|
1479
1479
|
}
|
|
1480
1480
|
|
|
1481
1481
|
const metadata = getNodeMetadata(nodeModel) || {};
|
|
1482
|
-
const provider =
|
|
1483
|
-
const operation =
|
|
1482
|
+
const provider = getMetadataValueCaseInsensitive(metadata, 'ImageGenerationProvider', 'imageGenerationProvider');
|
|
1483
|
+
const operation = getMetadataValueCaseInsensitive(metadata, 'RequestedMediaOperation', 'requestedMediaOperation').toLowerCase();
|
|
1484
1484
|
return !!provider ||
|
|
1485
|
-
!!(metadata
|
|
1485
|
+
!!getMetadataValueCaseInsensitive(metadata, 'GeneratedImageSourceWidth', 'generatedImageSourceWidth') ||
|
|
1486
|
+
!!getMetadataValueCaseInsensitive(metadata, 'GeneratedImageSourceHeight', 'generatedImageSourceHeight') ||
|
|
1487
|
+
!!getMetadataValueCaseInsensitive(metadata, 'CodexImageQuality', 'codexImageQuality') ||
|
|
1488
|
+
!!getMetadataValueCaseInsensitive(metadata, 'ImageRouterRevisedPrompt', 'imageRouterRevisedPrompt') ||
|
|
1486
1489
|
operation === 'text2image' ||
|
|
1487
1490
|
operation === 'image2image' ||
|
|
1488
1491
|
operation === 'inpaint';
|
|
@@ -1702,14 +1705,17 @@
|
|
|
1702
1705
|
const missingFullResUrl = canUseAsFullResImageUrl(missingAssetUrl) ? missingAssetUrl : '';
|
|
1703
1706
|
const mediaPreviewUrl = isAnimatedGif ? '' : (thumbnailUrl || snapshotUrl || previewImageUrl);
|
|
1704
1707
|
const responsePreviewUrl = isImageContent && !isAnimatedGif ? responseUrl : '';
|
|
1708
|
+
const generatedFullResUrl = originalUrl || originalPath || responseFullResUrl || missingFullResUrl;
|
|
1705
1709
|
const fullResUrl = isImageContent
|
|
1706
1710
|
? (isGeneratedImageNode
|
|
1707
|
-
?
|
|
1711
|
+
? generatedFullResUrl
|
|
1708
1712
|
: (originalUrl || originalPath || responseFullResUrl || missingFullResUrl))
|
|
1709
1713
|
: (originalUrl || originalPath || snapshotUrl || previewImageUrl || thumbnailUrl || missingFullResUrl);
|
|
1710
1714
|
const previewUrl = isAnimatedGif
|
|
1711
1715
|
? (fullResUrl || responseUrl || originalPath || originalUrl || missingAssetUrl)
|
|
1712
|
-
: (
|
|
1716
|
+
: (isGeneratedImageNode
|
|
1717
|
+
? (mediaPreviewUrl || originalUrl || originalPath || responsePreviewUrl || missingAssetUrl)
|
|
1718
|
+
: (mediaPreviewUrl || responsePreviewUrl || originalPath || originalUrl || missingAssetUrl));
|
|
1713
1719
|
|
|
1714
1720
|
return {
|
|
1715
1721
|
responseUrl,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
const DEBUG = false;
|
|
5
|
-
const PASSIVE_DOM_OVERLAY_ENABLED =
|
|
5
|
+
const PASSIVE_DOM_OVERLAY_ENABLED = false;
|
|
6
6
|
const DEFAULT_OVERLAY_SCROLLABLE_SELECTOR = '.node-response, .note-content, .markdown-body, .prose, .note-textarea, .code-body, .code-content, .pdf-content, .text-content, .file-content, .map-node-memo__body, .map-node-memo__body-view, .map-node-memo__agent-plan-body, .map-node-memo__agent-console-body, pre, code';
|
|
7
7
|
const PASSIVE_OVERLAY_NEAR_EXIT_GRACE_MS = 220;
|
|
8
8
|
const PASSIVE_OVERLAY_CANDIDATE_GRACE_MS = 160;
|
|
@@ -4174,7 +4174,10 @@
|
|
|
4174
4174
|
}
|
|
4175
4175
|
}
|
|
4176
4176
|
hideCard(card);
|
|
4177
|
+
card.replaceChildren?.();
|
|
4178
|
+
card.remove?.();
|
|
4177
4179
|
});
|
|
4180
|
+
state.cards.clear();
|
|
4178
4181
|
|
|
4179
4182
|
clearLayerTransform(state.layer);
|
|
4180
4183
|
if (state.layer?.style) {
|
|
@@ -4182,6 +4185,8 @@
|
|
|
4182
4185
|
}
|
|
4183
4186
|
|
|
4184
4187
|
state.layoutSnapshot = null;
|
|
4188
|
+
state.selectionNodeId = '';
|
|
4189
|
+
state.editing = null;
|
|
4185
4190
|
state.lastPassiveRenderEnabled = null;
|
|
4186
4191
|
state.lastViewKey = '';
|
|
4187
4192
|
state.lastVisibilityVersion = -1;
|
|
@@ -4695,6 +4700,12 @@
|
|
|
4695
4700
|
}
|
|
4696
4701
|
|
|
4697
4702
|
const state = ensureState(module);
|
|
4703
|
+
if (PASSIVE_DOM_OVERLAY_ENABLED !== true) {
|
|
4704
|
+
cleanupDisabledOverlay(module, state);
|
|
4705
|
+
log('disabled: css3d-only rendering is active');
|
|
4706
|
+
return;
|
|
4707
|
+
}
|
|
4708
|
+
|
|
4698
4709
|
ensureLayer(module);
|
|
4699
4710
|
window.MindMapCss3DManager?.injectMarkdownStyles?.();
|
|
4700
4711
|
if (state) {
|
|
@@ -4706,6 +4717,55 @@
|
|
|
4706
4717
|
log('initialized');
|
|
4707
4718
|
}
|
|
4708
4719
|
|
|
4720
|
+
if (PASSIVE_DOM_OVERLAY_ENABLED !== true) {
|
|
4721
|
+
const cleanupDisabledRuntime = (module) => {
|
|
4722
|
+
if (!module) {
|
|
4723
|
+
return false;
|
|
4724
|
+
}
|
|
4725
|
+
|
|
4726
|
+
cleanupDisabledOverlay(module, ensureState(module));
|
|
4727
|
+
return false;
|
|
4728
|
+
};
|
|
4729
|
+
|
|
4730
|
+
window.MindMapTextOverlayV2 = {
|
|
4731
|
+
init: cleanupDisabledRuntime,
|
|
4732
|
+
updateFrame: cleanupDisabledRuntime,
|
|
4733
|
+
syncPassiveViewTransform: () => false,
|
|
4734
|
+
setPassiveOverlaySuppressed: (module) => {
|
|
4735
|
+
if (module) {
|
|
4736
|
+
module._suppressPassiveDomOverlayDuringZoom = false;
|
|
4737
|
+
module._deferPassiveOverlayRefresh = false;
|
|
4738
|
+
module._passiveOverlayResumeAt = 0;
|
|
4739
|
+
}
|
|
4740
|
+
return false;
|
|
4741
|
+
},
|
|
4742
|
+
setMotionHint: () => false,
|
|
4743
|
+
isPassiveDomOverlayEnabled: () => false,
|
|
4744
|
+
invalidateNode: () => { },
|
|
4745
|
+
invalidateView: () => { },
|
|
4746
|
+
updateNodePlacement: () => false,
|
|
4747
|
+
shouldRenderPassiveDomOverlays: () => false,
|
|
4748
|
+
shouldSkipCss3dRender: () => false,
|
|
4749
|
+
activateSelection: () => false,
|
|
4750
|
+
clearSelection: cleanupDisabledRuntime,
|
|
4751
|
+
beginEditing: () => false,
|
|
4752
|
+
clearEditing: cleanupDisabledRuntime,
|
|
4753
|
+
hasSelection: () => false,
|
|
4754
|
+
hasEditing: () => false,
|
|
4755
|
+
getDebugSnapshot: () => ({
|
|
4756
|
+
available: false,
|
|
4757
|
+
reason: 'passive DOM overlay disabled; CSS3D-only rendering active'
|
|
4758
|
+
}),
|
|
4759
|
+
purgeMediaOverlayCards: cleanupDisabledRuntime,
|
|
4760
|
+
suspendSource: () => false,
|
|
4761
|
+
resumeSource: resumeSource,
|
|
4762
|
+
hasLiveInteractiveOverlay: () => false,
|
|
4763
|
+
syncReadonlySourceScroll: () => false,
|
|
4764
|
+
invalidateReadonlySource: () => false
|
|
4765
|
+
};
|
|
4766
|
+
return;
|
|
4767
|
+
}
|
|
4768
|
+
|
|
4709
4769
|
window.MindMapTextOverlayV2 = {
|
|
4710
4770
|
init: init,
|
|
4711
4771
|
updateFrame: updateFrame,
|
|
@@ -47,7 +47,12 @@
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
async function requestFreshNodeAssetUrl(nodeId, failedUrl, options = {}) {
|
|
50
|
-
|
|
50
|
+
const canRefreshNonRefreshable = options.preferOriginal === true
|
|
51
|
+
|| options.allowOriginalFallback === true
|
|
52
|
+
|| options.allowNonRefreshableRefresh === true;
|
|
53
|
+
if (!nodeId
|
|
54
|
+
|| options.skipAssetRefresh === true
|
|
55
|
+
|| (isNonRefreshableLocalUrl(failedUrl) && !canRefreshNonRefreshable)) {
|
|
51
56
|
return null;
|
|
52
57
|
}
|
|
53
58
|
|