@mindexec/cli 0.2.396 → 0.2.398
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 +30 -5
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +24 -21
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +120 -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/index.html +4 -5
- package/wwwroot/service-worker-assets.js +9 -9
- package/wwwroot/service-worker.js +1 -1
|
@@ -2600,11 +2600,27 @@ 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:has(> .map-node-template-card.map-node-remote-fleet) {
|
|
2613
|
+
outline: none !important;
|
|
2614
|
+
-webkit-box-shadow: none !important;
|
|
2615
|
+
box-shadow: none !important;
|
|
2616
|
+
-webkit-filter: none !important;
|
|
2617
|
+
filter: none !important;
|
|
2618
|
+
}
|
|
2619
|
+
|
|
2620
|
+
.css3d-resolution-wrapper.node-type-templatelauncher.selected > .map-node-template-card.map-node-remote-fleet {
|
|
2621
|
+
border: 2px solid var(--node-selection-edge, #2563eb) !important;
|
|
2622
|
+
}
|
|
2623
|
+
|
|
2608
2624
|
/* Template launcher and Multi Desktop Monitor own their visual chrome on the
|
|
2609
2625
|
card itself. Keep the CSS3D wrapper neutral so motion CSS3D and the passive
|
|
2610
2626
|
DOM overlay do not stack different selection chrome. */
|
|
@@ -2627,12 +2643,18 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
2627
2643
|
|
|
2628
2644
|
.map-node-template-card {
|
|
2629
2645
|
border: 1px solid #111827 !important;
|
|
2630
|
-
border-radius:
|
|
2646
|
+
border-radius: 0;
|
|
2631
2647
|
color: #10212f;
|
|
2632
2648
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
2633
2649
|
box-shadow: none !important;
|
|
2634
2650
|
}
|
|
2635
2651
|
|
|
2652
|
+
.map-node-template-card.map-node-remote-fleet {
|
|
2653
|
+
border: 0 !important;
|
|
2654
|
+
outline: none !important;
|
|
2655
|
+
box-shadow: none !important;
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2636
2658
|
.template-card__shell {
|
|
2637
2659
|
display: flex;
|
|
2638
2660
|
flex-direction: column;
|
|
@@ -2641,7 +2663,7 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
2641
2663
|
gap: 12px;
|
|
2642
2664
|
padding: 18px;
|
|
2643
2665
|
border: 0;
|
|
2644
|
-
border-radius:
|
|
2666
|
+
border-radius: 0;
|
|
2645
2667
|
background: #f8fafc;
|
|
2646
2668
|
overflow: hidden;
|
|
2647
2669
|
}
|
|
@@ -2882,7 +2904,9 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
2882
2904
|
.map-node-template-card.map-node-remote-fleet .template-card__shell--remote-fleet {
|
|
2883
2905
|
gap: 10px;
|
|
2884
2906
|
padding: 14px;
|
|
2907
|
+
border: 0 !important;
|
|
2885
2908
|
background: #f8fafc;
|
|
2909
|
+
box-shadow: none !important;
|
|
2886
2910
|
}
|
|
2887
2911
|
|
|
2888
2912
|
.map-node-template-card.map-node-remote-fleet .remote-fleet-resize-handle {
|
|
@@ -3011,9 +3035,10 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
3011
3035
|
flex: 1 1 auto;
|
|
3012
3036
|
min-height: 0;
|
|
3013
3037
|
overflow: hidden;
|
|
3014
|
-
border:
|
|
3015
|
-
border-radius:
|
|
3038
|
+
border: 0 !important;
|
|
3039
|
+
border-radius: 0;
|
|
3016
3040
|
background: #ffffff;
|
|
3041
|
+
box-shadow: none !important;
|
|
3017
3042
|
}
|
|
3018
3043
|
|
|
3019
3044
|
.map-node-template-card.map-node-remote-device .template-card__shell--remote-fleet {
|
|
@@ -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,31 @@
|
|
|
407
408
|
}
|
|
408
409
|
.map-node-template-card {
|
|
409
410
|
border: 1px solid #111827 !important;
|
|
410
|
-
border-radius:
|
|
411
|
+
border-radius: 0;
|
|
412
|
+
box-shadow: none !important;
|
|
413
|
+
}
|
|
414
|
+
.map-node-template-card.map-node-remote-fleet {
|
|
415
|
+
border: 0 !important;
|
|
416
|
+
outline: none !important;
|
|
417
|
+
box-shadow: none !important;
|
|
418
|
+
}
|
|
419
|
+
.css3d-resolution-wrapper.node-type-templatelauncher:has(> .map-node-template-card.map-node-remote-fleet) {
|
|
420
|
+
outline: none !important;
|
|
421
|
+
box-shadow: none !important;
|
|
422
|
+
filter: none !important;
|
|
423
|
+
}
|
|
424
|
+
.css3d-resolution-wrapper.node-type-templatelauncher.selected > .map-node-template-card.map-node-remote-fleet {
|
|
425
|
+
border: 2px solid var(--node-selection-edge, #2563eb) !important;
|
|
426
|
+
}
|
|
427
|
+
.map-node-template-card.map-node-remote-fleet > .template-card__shell,
|
|
428
|
+
.map-node-template-card.map-node-remote-fleet .template-card__remote-fleet-body {
|
|
429
|
+
border: 0 !important;
|
|
430
|
+
border-radius: 0 !important;
|
|
411
431
|
box-shadow: none !important;
|
|
412
432
|
}
|
|
413
433
|
.map-node-template-card > .template-card__shell {
|
|
414
434
|
border: 0 !important;
|
|
435
|
+
border-radius: 0 !important;
|
|
415
436
|
}
|
|
416
437
|
.csv-table-scroll {
|
|
417
438
|
width: 100%;
|
|
@@ -1707,12 +1728,34 @@
|
|
|
1707
1728
|
if (isGeneratedCssImageNode(nodeModel)) {
|
|
1708
1729
|
const directOriginalUrl = isDirectCssMediaUrl(originalUrl) ? originalUrl : '';
|
|
1709
1730
|
const responseFullResUrl = responseUrl && !isThumbnailCssMediaUrl(responseUrl) ? responseUrl : '';
|
|
1710
|
-
return directOriginalUrl ||
|
|
1731
|
+
return directOriginalUrl || originalUrl || previewUrl || responseFullResUrl;
|
|
1711
1732
|
}
|
|
1712
1733
|
|
|
1713
1734
|
return previewUrl || responseUrl || originalUrl;
|
|
1714
1735
|
}
|
|
1715
1736
|
|
|
1737
|
+
function hasRecoverableCssImageAssetReference(nodeModel) {
|
|
1738
|
+
const assetUrls = window.MindMapNodes?.getNodeImageAssetUrls?.(nodeModel) || null;
|
|
1739
|
+
if (assetUrls?.originalPath || assetUrls?.originalUrl || assetUrls?.fullResUrl) {
|
|
1740
|
+
return true;
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
const metadata = getCssMediaMetadata(nodeModel);
|
|
1744
|
+
return !!(
|
|
1745
|
+
metadata?.OriginalPath ||
|
|
1746
|
+
metadata?.OriginalUrl ||
|
|
1747
|
+
metadata?.originalUrl
|
|
1748
|
+
);
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
function shouldRefreshNonRefreshableCssMediaSource(nodeModel, contentTypeLower, currentSource) {
|
|
1752
|
+
if (contentTypeLower !== 'image' || !isNonRefreshableMediaUrl(currentSource)) {
|
|
1753
|
+
return false;
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1756
|
+
return hasRecoverableCssImageAssetReference(nodeModel);
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1716
1759
|
function shouldPreferCssImagePreviewSource(nodeModel) {
|
|
1717
1760
|
if (!nodeModel) return false;
|
|
1718
1761
|
if (isAnimatedGifCssImageNode(nodeModel)) return false;
|
|
@@ -4120,7 +4163,8 @@
|
|
|
4120
4163
|
return;
|
|
4121
4164
|
}
|
|
4122
4165
|
|
|
4123
|
-
if (isNonRefreshableMediaUrl(currentSource)
|
|
4166
|
+
if (isNonRefreshableMediaUrl(currentSource)
|
|
4167
|
+
&& !shouldRefreshNonRefreshableCssMediaSource(nodeModel, contentTypeLower, currentSource)) {
|
|
4124
4168
|
return;
|
|
4125
4169
|
}
|
|
4126
4170
|
|
|
@@ -4696,6 +4740,10 @@
|
|
|
4696
4740
|
}
|
|
4697
4741
|
|
|
4698
4742
|
function supportsTextOverlay(nodeModel) {
|
|
4743
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4744
|
+
return false;
|
|
4745
|
+
}
|
|
4746
|
+
|
|
4699
4747
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
4700
4748
|
return TEXT_OVERLAY_SUPPORTED_TYPES.has(contentType);
|
|
4701
4749
|
}
|
|
@@ -4717,11 +4765,19 @@
|
|
|
4717
4765
|
}
|
|
4718
4766
|
|
|
4719
4767
|
function supportsEditingOverlay(nodeModel) {
|
|
4768
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4769
|
+
return false;
|
|
4770
|
+
}
|
|
4771
|
+
|
|
4720
4772
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
4721
4773
|
return EDIT_OVERLAY_SUPPORTED_TYPES.has(contentType);
|
|
4722
4774
|
}
|
|
4723
4775
|
|
|
4724
4776
|
function supportsSelectionTextOverlay(nodeModel) {
|
|
4777
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4778
|
+
return false;
|
|
4779
|
+
}
|
|
4780
|
+
|
|
4725
4781
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
4726
4782
|
return TEXT_SELECTION_OVERLAY_SUPPORTED_TYPES.has(contentType);
|
|
4727
4783
|
}
|
|
@@ -4732,6 +4788,10 @@
|
|
|
4732
4788
|
}
|
|
4733
4789
|
|
|
4734
4790
|
function getReadonlyTextOverlayMode(nodeEntry) {
|
|
4791
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
4792
|
+
return 'none';
|
|
4793
|
+
}
|
|
4794
|
+
|
|
4735
4795
|
if (isCss3dOnlyTemplateSurfaceNode(nodeEntry?.model)) {
|
|
4736
4796
|
return 'none';
|
|
4737
4797
|
}
|
|
@@ -5370,10 +5430,18 @@
|
|
|
5370
5430
|
}
|
|
5371
5431
|
|
|
5372
5432
|
function isTextOverlayV2Enabled(module) {
|
|
5433
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
5434
|
+
return false;
|
|
5435
|
+
}
|
|
5436
|
+
|
|
5373
5437
|
return module?.useTextOverlayV2 === true && !!window.MindMapTextOverlayV2;
|
|
5374
5438
|
}
|
|
5375
5439
|
|
|
5376
5440
|
function hasSelectableTextOverlay(module, nodeId = null) {
|
|
5441
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
5442
|
+
return false;
|
|
5443
|
+
}
|
|
5444
|
+
|
|
5377
5445
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.hasSelection?.(module, nodeId) === true) {
|
|
5378
5446
|
return true;
|
|
5379
5447
|
}
|
|
@@ -5654,6 +5722,11 @@
|
|
|
5654
5722
|
}
|
|
5655
5723
|
|
|
5656
5724
|
function activateSelectableTextOverlay(module, nodeId) {
|
|
5725
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
5726
|
+
clearLegacyTextOverlays(module);
|
|
5727
|
+
return false;
|
|
5728
|
+
}
|
|
5729
|
+
|
|
5657
5730
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.activateSelection?.(module, nodeId) === true) {
|
|
5658
5731
|
return true;
|
|
5659
5732
|
}
|
|
@@ -6491,6 +6564,10 @@
|
|
|
6491
6564
|
}
|
|
6492
6565
|
|
|
6493
6566
|
function beginNodeEditingOverlay(module, nodeEntry) {
|
|
6567
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6568
|
+
return false;
|
|
6569
|
+
}
|
|
6570
|
+
|
|
6494
6571
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.beginEditing?.(module, nodeEntry) === true) {
|
|
6495
6572
|
return true;
|
|
6496
6573
|
}
|
|
@@ -6563,6 +6640,13 @@
|
|
|
6563
6640
|
}
|
|
6564
6641
|
|
|
6565
6642
|
function syncEditingOverlay(module) {
|
|
6643
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6644
|
+
if (getActiveEditingOverlayState(module)) {
|
|
6645
|
+
clearEditingOverlay(module, { commit: true });
|
|
6646
|
+
}
|
|
6647
|
+
return;
|
|
6648
|
+
}
|
|
6649
|
+
|
|
6566
6650
|
if (isTextOverlayV2Enabled(module)) {
|
|
6567
6651
|
return;
|
|
6568
6652
|
}
|
|
@@ -6590,6 +6674,10 @@
|
|
|
6590
6674
|
}
|
|
6591
6675
|
|
|
6592
6676
|
function hasEditingOverlay(module, nodeId = null) {
|
|
6677
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6678
|
+
return false;
|
|
6679
|
+
}
|
|
6680
|
+
|
|
6593
6681
|
if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.hasEditing?.(module, nodeId) === true) {
|
|
6594
6682
|
return true;
|
|
6595
6683
|
}
|
|
@@ -6745,6 +6833,14 @@
|
|
|
6745
6833
|
}
|
|
6746
6834
|
|
|
6747
6835
|
function syncTextOverlays(module) {
|
|
6836
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
6837
|
+
clearLegacyTextOverlays(module);
|
|
6838
|
+
if (getActiveEditingOverlayState(module)) {
|
|
6839
|
+
clearEditingOverlay(module, { commit: true });
|
|
6840
|
+
}
|
|
6841
|
+
return;
|
|
6842
|
+
}
|
|
6843
|
+
|
|
6748
6844
|
if (isTextOverlayV2Enabled(module)) {
|
|
6749
6845
|
clearLegacyTextOverlays(module);
|
|
6750
6846
|
return;
|
|
@@ -19257,7 +19353,9 @@
|
|
|
19257
19353
|
overflow: hidden;
|
|
19258
19354
|
border-radius: 0;
|
|
19259
19355
|
background: ${hasPreviewSource ? 'linear-gradient(135deg, #0f172a 0%, #1e293b 100%)' : '#ffffff'};
|
|
19260
|
-
border:
|
|
19356
|
+
border: 0;
|
|
19357
|
+
outline: 0;
|
|
19358
|
+
outline-offset: 0;
|
|
19261
19359
|
box-shadow: none;
|
|
19262
19360
|
`;
|
|
19263
19361
|
ensureRemoteFleetFrameCanvas(preview);
|
|
@@ -19442,7 +19540,9 @@
|
|
|
19442
19540
|
`;
|
|
19443
19541
|
const preview = createDevicePreview(device, 'tile');
|
|
19444
19542
|
if (isSelected) {
|
|
19445
|
-
preview.style.
|
|
19543
|
+
preview.style.border = '2px solid rgba(37, 99, 235, 0.86)';
|
|
19544
|
+
preview.style.outline = '0';
|
|
19545
|
+
preview.style.outlineOffset = '0';
|
|
19446
19546
|
preview.style.boxShadow = 'none';
|
|
19447
19547
|
}
|
|
19448
19548
|
card.appendChild(preview);
|
|
@@ -19871,11 +19971,11 @@
|
|
|
19871
19971
|
|
|
19872
19972
|
const preview = card.querySelector?.('[data-remote-fleet-device-preview]') || card.firstElementChild;
|
|
19873
19973
|
if (preview?.style) {
|
|
19874
|
-
preview.style.
|
|
19875
|
-
? 'rgba(37, 99, 235, 0.86)'
|
|
19876
|
-
: '
|
|
19877
|
-
preview.style.outline =
|
|
19878
|
-
preview.style.outlineOffset =
|
|
19974
|
+
preview.style.border = isSelected
|
|
19975
|
+
? '2px solid rgba(37, 99, 235, 0.86)'
|
|
19976
|
+
: '0';
|
|
19977
|
+
preview.style.outline = '0';
|
|
19978
|
+
preview.style.outlineOffset = '0';
|
|
19879
19979
|
preview.style.boxShadow = 'none';
|
|
19880
19980
|
}
|
|
19881
19981
|
};
|
|
@@ -23326,6 +23426,10 @@
|
|
|
23326
23426
|
}
|
|
23327
23427
|
|
|
23328
23428
|
function getNodeViewPrimaryHost(module = _module) {
|
|
23429
|
+
if (CSS3D_ONLY_NODE_RENDERING === true) {
|
|
23430
|
+
return NODE_VIEW_HOST_CSS3D;
|
|
23431
|
+
}
|
|
23432
|
+
|
|
23329
23433
|
const flags = module?.renderDebugFlags || {};
|
|
23330
23434
|
const explicit = normalizeNodeViewHost(flags.nodeViewPrimaryHost, '');
|
|
23331
23435
|
if (explicit) {
|
|
@@ -23338,7 +23442,9 @@
|
|
|
23338
23442
|
}
|
|
23339
23443
|
|
|
23340
23444
|
function getNodeViewHostPolicy(module, nodeModel, options = {}) {
|
|
23341
|
-
const requestedHost =
|
|
23445
|
+
const requestedHost = CSS3D_ONLY_NODE_RENDERING === true
|
|
23446
|
+
? NODE_VIEW_HOST_CSS3D
|
|
23447
|
+
: normalizeNodeViewHost(options.hostKind, NODE_VIEW_HOST_CSS3D);
|
|
23342
23448
|
const primaryHost = getNodeViewPrimaryHost(module);
|
|
23343
23449
|
const info = getNodeViewContentInfo(nodeModel);
|
|
23344
23450
|
const overlayPrimary = primaryHost === NODE_VIEW_HOST_OVERLAY;
|
|
@@ -23352,7 +23458,8 @@
|
|
|
23352
23458
|
isCss3dPrimary: primaryHost === NODE_VIEW_HOST_CSS3D || hybridPrimary,
|
|
23353
23459
|
isOverlayPrimary: overlayPrimary,
|
|
23354
23460
|
isHybridPrimary: hybridPrimary,
|
|
23355
|
-
useSharedOverlay:
|
|
23461
|
+
useSharedOverlay: CSS3D_ONLY_NODE_RENDERING !== true &&
|
|
23462
|
+
module?.renderDebugFlags?.enableSharedNodeViewOverlay !== false,
|
|
23356
23463
|
supportsNodeView: shouldCreateDynamicNodeView(nodeModel, info) || !shouldBypassNodeViewTemplate(nodeModel, info),
|
|
23357
23464
|
contentTypeLower: info.contentTypeLower,
|
|
23358
23465
|
visualContentTypeLower: info.visualContentTypeLower
|
|
@@ -24614,6 +24721,7 @@
|
|
|
24614
24721
|
syncCss3dEmbedInteractivity: syncCss3dEmbedInteractivity,
|
|
24615
24722
|
getMountedEmbedState: getMountedEmbedState,
|
|
24616
24723
|
hasMountedEmbedIframe: hasMountedEmbedIframe,
|
|
24724
|
+
isCss3dOnlyNodeRendering: () => CSS3D_ONLY_NODE_RENDERING === true,
|
|
24617
24725
|
shouldConsumeEmbedPointerEvent: shouldConsumeEmbedPointerEvent,
|
|
24618
24726
|
syncCss3dContent: syncCss3dContent,
|
|
24619
24727
|
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,
|