@mindexec/cli 0.2.450 → 0.2.452
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/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +138 -37
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +3 -0
- package/wwwroot/index.html +1 -1
- package/wwwroot/service-worker-assets.js +4 -4
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
const DEBUG = false;
|
|
6
6
|
const FPS_DEBUG = false;
|
|
7
7
|
const FRAME_PERF_DEBUG = false;
|
|
8
|
-
const MINDMAP_CORE_BUILD_ID = '20260727-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260727-world-grid-spotlight-v859';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -105,14 +105,17 @@
|
|
|
105
105
|
const CAMERA_MOTION_GRID_FALLBACK_ENABLED = false;
|
|
106
106
|
const LOCAL_SNAP_GRID_RADIUS_PX = 500;
|
|
107
107
|
const LOCAL_SNAP_GRID_DIAMETER_PX = LOCAL_SNAP_GRID_RADIUS_PX * 2;
|
|
108
|
+
const LOCAL_SNAP_GRID_FADE_PX = 100;
|
|
109
|
+
const LOCAL_SNAP_GRID_SOLID_RADIUS_PX = LOCAL_SNAP_GRID_RADIUS_PX - LOCAL_SNAP_GRID_FADE_PX;
|
|
108
110
|
const LOCAL_SNAP_GRID_MIN_STEP_PX = 8;
|
|
109
111
|
const LOCAL_SNAP_GRID_MAX_STEP_PX = 56;
|
|
110
|
-
const LOCAL_SNAP_GRID_STEP_BUCKET_PX = 2;
|
|
111
112
|
const LOCAL_SNAP_GRID_OPACITY_BUCKET = 0.04;
|
|
112
113
|
const LOCAL_SNAP_GRID_DEFAULT_STEP_PX = 24;
|
|
113
114
|
const LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX = 240;
|
|
114
115
|
const LOCAL_SNAP_GRID_DEFAULT_OPACITY = 0.42;
|
|
115
116
|
const LOCAL_SNAP_GRID_TILE_OVERSCAN_PX = LOCAL_SNAP_GRID_MAX_STEP_PX * 10;
|
|
117
|
+
const LOCAL_SNAP_GRID_COMPOSITOR_SCALE_MIN = 0.8;
|
|
118
|
+
const LOCAL_SNAP_GRID_COMPOSITOR_SCALE_MAX = 1.5;
|
|
116
119
|
const CAMERA_STATIONARY_INTERACTION_FRAME_DELAY_MS = 48;
|
|
117
120
|
const CAMERA_ZOOM_END_DELAY_MS = 150;
|
|
118
121
|
const CAMERA_MOTION_GLOBAL_STYLE_CLASS_ENABLED = false;
|
|
@@ -3233,6 +3236,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3233
3236
|
this._lastLocalSnapGridTransformKey = '';
|
|
3234
3237
|
this._lastLocalSnapGridOpacity = '';
|
|
3235
3238
|
this._lastLocalSnapGridPatternPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
3239
|
+
this._lastLocalSnapGridWorldStep = Math.max(1, Number(this.GRID_SIZE || 10));
|
|
3240
|
+
this._lastLocalSnapGridWorldPeriod = this._lastLocalSnapGridWorldStep * 10;
|
|
3241
|
+
this._localSnapGridRasterPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
3242
|
+
this._lastLocalSnapGridBackgroundSizeKey = '';
|
|
3236
3243
|
this._localSnapGridTileCanvas = null;
|
|
3237
3244
|
this._localSnapGridPointerRevision = 0;
|
|
3238
3245
|
this._lastLocalSnapGridPositionRevision = -1;
|
|
@@ -3473,6 +3480,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3473
3480
|
layer.style.backgroundRepeat = 'repeat';
|
|
3474
3481
|
layer.style.contain = 'paint';
|
|
3475
3482
|
layer.style.willChange = 'transform';
|
|
3483
|
+
layer.style.transformOrigin = '0 0';
|
|
3476
3484
|
layer.style.transform = 'translate3d(0, 0, 0)';
|
|
3477
3485
|
layer.style.transition = 'none';
|
|
3478
3486
|
|
|
@@ -3484,6 +3492,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3484
3492
|
this._lastLocalSnapGridPositionRevision = -1;
|
|
3485
3493
|
this._lastLocalSnapGridOpacity = '';
|
|
3486
3494
|
this._lastLocalSnapGridPatternPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
3495
|
+
this._lastLocalSnapGridWorldStep = Math.max(1, Number(this.GRID_SIZE || 10));
|
|
3496
|
+
this._lastLocalSnapGridWorldPeriod = this._lastLocalSnapGridWorldStep * 10;
|
|
3497
|
+
this._localSnapGridRasterPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
3498
|
+
this._lastLocalSnapGridBackgroundSizeKey = '';
|
|
3487
3499
|
this._localSnapGridStyleDeferredForZoom = false;
|
|
3488
3500
|
return layer;
|
|
3489
3501
|
}
|
|
@@ -3511,10 +3523,15 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3511
3523
|
spotlight.style.opacity = '0';
|
|
3512
3524
|
spotlight.style.borderRadius = '50%';
|
|
3513
3525
|
spotlight.style.overflow = 'hidden';
|
|
3514
|
-
spotlight.style.background = '
|
|
3515
|
-
const spotlightMask =
|
|
3526
|
+
spotlight.style.background = 'transparent';
|
|
3527
|
+
const spotlightMask =
|
|
3528
|
+
`radial-gradient(circle at 50% 50%, #fff 0px, #fff ${LOCAL_SNAP_GRID_SOLID_RADIUS_PX}px, transparent ${LOCAL_SNAP_GRID_RADIUS_PX}px)`;
|
|
3516
3529
|
spotlight.style.maskImage = spotlightMask;
|
|
3517
3530
|
spotlight.style.webkitMaskImage = spotlightMask;
|
|
3531
|
+
spotlight.style.maskRepeat = 'no-repeat';
|
|
3532
|
+
spotlight.style.webkitMaskRepeat = 'no-repeat';
|
|
3533
|
+
spotlight.style.maskSize = '100% 100%';
|
|
3534
|
+
spotlight.style.webkitMaskSize = '100% 100%';
|
|
3518
3535
|
spotlight.style.contain = 'strict';
|
|
3519
3536
|
spotlight.style.willChange = 'transform';
|
|
3520
3537
|
spotlight.style.transform = 'translate3d(0, 0, 0)';
|
|
@@ -3544,35 +3561,86 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3544
3561
|
: height / 2;
|
|
3545
3562
|
const spotlightLeft = Math.round(centerX - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3546
3563
|
const spotlightTop = Math.round(centerY - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3547
|
-
const
|
|
3564
|
+
const camera = this.camera;
|
|
3565
|
+
const cameraZ = Math.max(1, Number(camera?.position?.z || 1));
|
|
3566
|
+
const vfov = (Number(camera?.fov || 45) * Math.PI) / 180;
|
|
3567
|
+
const viewHeight = 2 * Math.tan(vfov / 2) * cameraZ;
|
|
3568
|
+
const pxPerWorld = height / Math.max(1, viewHeight);
|
|
3569
|
+
const gridProjection = this._resolveLocalSnapGridWorldStep(pxPerWorld);
|
|
3570
|
+
const patternPeriod = Math.max(1, gridProjection.majorStepPx);
|
|
3571
|
+
const cameraX = Number(camera?.position?.x || 0);
|
|
3572
|
+
const cameraY = Number(camera?.position?.y || 0);
|
|
3573
|
+
const worldOriginX = (width / 2) - (cameraX * pxPerWorld);
|
|
3574
|
+
const worldOriginY = (height / 2) + (cameraY * pxPerWorld);
|
|
3575
|
+
this._lastLocalSnapGridWorldStep = gridProjection.worldStep;
|
|
3576
|
+
this._lastLocalSnapGridWorldPeriod = gridProjection.worldStep * 10;
|
|
3577
|
+
this._lastLocalSnapGridPatternPeriodPx = patternPeriod;
|
|
3578
|
+
let rasterPeriod = Math.max(
|
|
3548
3579
|
1,
|
|
3549
|
-
|
|
3580
|
+
Number(this._localSnapGridRasterPeriodPx || patternPeriod)
|
|
3550
3581
|
);
|
|
3582
|
+
let compositorScale = patternPeriod / rasterPeriod;
|
|
3583
|
+
if (this._localSnapGridLayer &&
|
|
3584
|
+
(
|
|
3585
|
+
compositorScale < LOCAL_SNAP_GRID_COMPOSITOR_SCALE_MIN ||
|
|
3586
|
+
compositorScale > LOCAL_SNAP_GRID_COMPOSITOR_SCALE_MAX
|
|
3587
|
+
)) {
|
|
3588
|
+
rasterPeriod = patternPeriod;
|
|
3589
|
+
compositorScale = 1;
|
|
3590
|
+
this._localSnapGridRasterPeriodPx = rasterPeriod;
|
|
3591
|
+
const rebasedBackgroundSizeKey = rasterPeriod.toFixed(3);
|
|
3592
|
+
this._lastLocalSnapGridBackgroundSizeKey = rebasedBackgroundSizeKey;
|
|
3593
|
+
this._localSnapGridLayer.style.backgroundSize =
|
|
3594
|
+
`${rebasedBackgroundSizeKey}px ${rebasedBackgroundSizeKey}px`;
|
|
3595
|
+
}
|
|
3551
3596
|
const positiveModulo = (value, size) => ((value % size) + size) % size;
|
|
3552
|
-
const gridPhaseX =
|
|
3553
|
-
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX - spotlightLeft,
|
|
3597
|
+
const gridPhaseX = positiveModulo(
|
|
3598
|
+
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + worldOriginX - spotlightLeft,
|
|
3554
3599
|
patternPeriod
|
|
3555
|
-
)
|
|
3556
|
-
const gridPhaseY =
|
|
3557
|
-
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX - spotlightTop,
|
|
3600
|
+
);
|
|
3601
|
+
const gridPhaseY = positiveModulo(
|
|
3602
|
+
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + worldOriginY - spotlightTop,
|
|
3558
3603
|
patternPeriod
|
|
3559
|
-
)
|
|
3604
|
+
);
|
|
3560
3605
|
if (DEBUG) {
|
|
3561
|
-
const
|
|
3562
|
-
spotlightLeft - LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + gridPhaseX,
|
|
3606
|
+
const worldPhaseErrorX = positiveModulo(
|
|
3607
|
+
spotlightLeft - LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + gridPhaseX - worldOriginX,
|
|
3563
3608
|
patternPeriod
|
|
3564
3609
|
);
|
|
3565
|
-
const
|
|
3566
|
-
spotlightTop - LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + gridPhaseY,
|
|
3610
|
+
const worldPhaseErrorY = positiveModulo(
|
|
3611
|
+
spotlightTop - LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + gridPhaseY - worldOriginY,
|
|
3567
3612
|
patternPeriod
|
|
3568
3613
|
);
|
|
3614
|
+
const normalizedWorldPhaseErrorX = Math.min(
|
|
3615
|
+
worldPhaseErrorX,
|
|
3616
|
+
patternPeriod - worldPhaseErrorX
|
|
3617
|
+
);
|
|
3618
|
+
const normalizedWorldPhaseErrorY = Math.min(
|
|
3619
|
+
worldPhaseErrorY,
|
|
3620
|
+
patternPeriod - worldPhaseErrorY
|
|
3621
|
+
);
|
|
3569
3622
|
window.MindCanvasDevGuards?.assert?.(
|
|
3570
|
-
|
|
3571
|
-
'local-snap-grid-phase-drift',
|
|
3572
|
-
{
|
|
3623
|
+
normalizedWorldPhaseErrorX <= 0.001 && normalizedWorldPhaseErrorY <= 0.001,
|
|
3624
|
+
'local-snap-grid-world-phase-drift',
|
|
3625
|
+
{
|
|
3626
|
+
spotlightLeft,
|
|
3627
|
+
spotlightTop,
|
|
3628
|
+
worldOriginX,
|
|
3629
|
+
worldOriginY,
|
|
3630
|
+
gridPhaseX,
|
|
3631
|
+
gridPhaseY,
|
|
3632
|
+
patternPeriod,
|
|
3633
|
+
worldStep: gridProjection.worldStep,
|
|
3634
|
+
worldPhaseErrorX: normalizedWorldPhaseErrorX,
|
|
3635
|
+
worldPhaseErrorY: normalizedWorldPhaseErrorY
|
|
3636
|
+
}
|
|
3573
3637
|
);
|
|
3574
3638
|
}
|
|
3575
|
-
const
|
|
3639
|
+
const gridPhaseXValue = gridPhaseX.toFixed(3);
|
|
3640
|
+
const gridPhaseYValue = gridPhaseY.toFixed(3);
|
|
3641
|
+
const compositorScaleValue = compositorScale.toFixed(6);
|
|
3642
|
+
const transformKey =
|
|
3643
|
+
`${spotlightLeft}|${spotlightTop}|${patternPeriod.toFixed(3)}|${gridPhaseXValue}|${gridPhaseYValue}|${compositorScaleValue}`;
|
|
3576
3644
|
if (transformKey === this._lastLocalSnapGridTransformKey) {
|
|
3577
3645
|
return false;
|
|
3578
3646
|
}
|
|
@@ -3580,11 +3648,39 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3580
3648
|
spotlight.style.transform = `translate3d(${spotlightLeft}px, ${spotlightTop}px, 0)`;
|
|
3581
3649
|
if (this._localSnapGridLayer) {
|
|
3582
3650
|
this._localSnapGridLayer.style.transform =
|
|
3583
|
-
`translate3d(${
|
|
3651
|
+
`translate3d(${gridPhaseXValue}px, ${gridPhaseYValue}px, 0) scale(${compositorScaleValue})`;
|
|
3584
3652
|
}
|
|
3585
3653
|
return true;
|
|
3586
3654
|
}
|
|
3587
3655
|
|
|
3656
|
+
_resolveLocalSnapGridWorldStep(pxPerWorld) {
|
|
3657
|
+
const safePxPerWorld = Math.max(Number.EPSILON, Number(pxPerWorld) || Number.EPSILON);
|
|
3658
|
+
const baseWorldStep = Math.max(Number.EPSILON, Number(this.GRID_SIZE || 10));
|
|
3659
|
+
let worldStep = Math.max(
|
|
3660
|
+
Number.EPSILON,
|
|
3661
|
+
Number(this._lastLocalSnapGridWorldStep || baseWorldStep)
|
|
3662
|
+
);
|
|
3663
|
+
let smallStepPx = worldStep * safePxPerWorld;
|
|
3664
|
+
let guard = 0;
|
|
3665
|
+
|
|
3666
|
+
while (smallStepPx < LOCAL_SNAP_GRID_MIN_STEP_PX && guard < 24) {
|
|
3667
|
+
worldStep *= 2;
|
|
3668
|
+
smallStepPx *= 2;
|
|
3669
|
+
guard += 1;
|
|
3670
|
+
}
|
|
3671
|
+
while (smallStepPx > LOCAL_SNAP_GRID_MAX_STEP_PX && guard < 48) {
|
|
3672
|
+
worldStep /= 2;
|
|
3673
|
+
smallStepPx /= 2;
|
|
3674
|
+
guard += 1;
|
|
3675
|
+
}
|
|
3676
|
+
|
|
3677
|
+
return {
|
|
3678
|
+
worldStep,
|
|
3679
|
+
smallStepPx,
|
|
3680
|
+
majorStepPx: smallStepPx * 10
|
|
3681
|
+
};
|
|
3682
|
+
}
|
|
3683
|
+
|
|
3588
3684
|
_getLocalSnapGridStyleKind() {
|
|
3589
3685
|
const themeName = String(this.currentThemeName || '').trim();
|
|
3590
3686
|
return themeName === 'SpatialGrid2D' ? 'dot' : 'line';
|
|
@@ -3688,12 +3784,18 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3688
3784
|
Math.round(safeMajorStep * 100),
|
|
3689
3785
|
Math.round(safeOpacity * 100)
|
|
3690
3786
|
].join('|');
|
|
3787
|
+
const backgroundSizeKey = safeMajorStep.toFixed(3);
|
|
3691
3788
|
|
|
3692
3789
|
if (localGridKey === this._lastLocalSnapGridKey) {
|
|
3790
|
+
this._localSnapGridRasterPeriodPx = safeMajorStep;
|
|
3791
|
+
if (backgroundSizeKey !== this._lastLocalSnapGridBackgroundSizeKey) {
|
|
3792
|
+
this._lastLocalSnapGridBackgroundSizeKey = backgroundSizeKey;
|
|
3793
|
+
layer.style.backgroundSize = `${backgroundSizeKey}px ${backgroundSizeKey}px`;
|
|
3794
|
+
this._lastLocalSnapGridTransformKey = '';
|
|
3795
|
+
}
|
|
3693
3796
|
return false;
|
|
3694
3797
|
}
|
|
3695
3798
|
|
|
3696
|
-
this._lastLocalSnapGridKey = localGridKey;
|
|
3697
3799
|
const opacityValue = safeOpacity.toFixed(3);
|
|
3698
3800
|
this._lastLocalSnapGridOpacity = opacityValue;
|
|
3699
3801
|
const tileCanvas = this._localSnapGridTileCanvas || document.createElement('canvas');
|
|
@@ -3707,10 +3809,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3707
3809
|
if (!Number.isFinite(tileSize) || tileSize <= 0) {
|
|
3708
3810
|
return false;
|
|
3709
3811
|
}
|
|
3710
|
-
this.
|
|
3812
|
+
this._lastLocalSnapGridKey = localGridKey;
|
|
3813
|
+
this._lastLocalSnapGridPatternPeriodPx = safeMajorStep;
|
|
3814
|
+
this._localSnapGridRasterPeriodPx = safeMajorStep;
|
|
3711
3815
|
this._lastLocalSnapGridTransformKey = '';
|
|
3712
3816
|
layer.style.backgroundImage = `url("${tileCanvas.toDataURL('image/png')}")`;
|
|
3713
|
-
|
|
3817
|
+
this._lastLocalSnapGridBackgroundSizeKey = backgroundSizeKey;
|
|
3818
|
+
layer.style.backgroundSize = `${backgroundSizeKey}px ${backgroundSizeKey}px`;
|
|
3714
3819
|
if (layer.style.opacity !== opacityValue) {
|
|
3715
3820
|
layer.style.opacity = opacityValue;
|
|
3716
3821
|
}
|
|
@@ -3831,19 +3936,11 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3831
3936
|
const vfov = (Number(camera.fov || 45) * Math.PI) / 180;
|
|
3832
3937
|
const viewHeight = 2 * Math.tan(vfov / 2) * cameraZ;
|
|
3833
3938
|
const pxPerWorld = height / Math.max(1, viewHeight);
|
|
3834
|
-
const
|
|
3835
|
-
const
|
|
3836
|
-
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
const smallStepPx = Math.max(
|
|
3840
|
-
LOCAL_SNAP_GRID_MIN_STEP_PX,
|
|
3841
|
-
Math.min(
|
|
3842
|
-
LOCAL_SNAP_GRID_MAX_STEP_PX,
|
|
3843
|
-
Math.round(rawSmallStepPx / LOCAL_SNAP_GRID_STEP_BUCKET_PX) * LOCAL_SNAP_GRID_STEP_BUCKET_PX
|
|
3844
|
-
)
|
|
3845
|
-
);
|
|
3846
|
-
const majorStepPx = smallStepPx * 10;
|
|
3939
|
+
const gridProjection = this._resolveLocalSnapGridWorldStep(pxPerWorld);
|
|
3940
|
+
const smallStepPx = gridProjection.smallStepPx;
|
|
3941
|
+
const majorStepPx = gridProjection.majorStepPx;
|
|
3942
|
+
this._lastLocalSnapGridWorldStep = gridProjection.worldStep;
|
|
3943
|
+
this._lastLocalSnapGridWorldPeriod = gridProjection.worldStep * 10;
|
|
3847
3944
|
const styleKind = this._getLocalSnapGridStyleKind();
|
|
3848
3945
|
const rawOpacity = Math.max(0.24, Math.min(0.54, cameraZ <= 1800 ? 0.48 : 0.48 - ((cameraZ - 1800) / 36000)));
|
|
3849
3946
|
const opacity = Math.max(
|
|
@@ -7845,6 +7942,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
7845
7942
|
this._lastLocalSnapGridKey = '';
|
|
7846
7943
|
this._lastLocalSnapGridTransformKey = '';
|
|
7847
7944
|
this._lastLocalSnapGridPatternPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
7945
|
+
this._lastLocalSnapGridWorldStep = Math.max(1, Number(this.GRID_SIZE || 10));
|
|
7946
|
+
this._lastLocalSnapGridWorldPeriod = this._lastLocalSnapGridWorldStep * 10;
|
|
7947
|
+
this._localSnapGridRasterPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
7948
|
+
this._lastLocalSnapGridBackgroundSizeKey = '';
|
|
7848
7949
|
}
|
|
7849
7950
|
if (this._localSnapGridSpotlightLayer) {
|
|
7850
7951
|
this._localSnapGridSpotlightLayer.remove();
|
|
@@ -245,6 +245,7 @@ window.MindMapInteractions = (function () {
|
|
|
245
245
|
boundOnMouseUp: onMouseUp.bind(null, module),
|
|
246
246
|
boundOnResizeHandleCapture: onResizeHandleCapture.bind(null, module),
|
|
247
247
|
boundOnHoverMove: onHoverMove.bind(null, module),
|
|
248
|
+
boundOnLocalSnapGridPointerMove: e => updateLocalSnapGridPointer(module, e?.clientX, e?.clientY),
|
|
248
249
|
boundOnKeyDown: onKeyDown.bind(null, module),
|
|
249
250
|
boundOnKeyUp: onKeyUp.bind(null, module),
|
|
250
251
|
boundOnWindowBlur: clearPhysicalWheelModifierState.bind(null, module),
|
|
@@ -7747,6 +7748,7 @@ window.MindMapInteractions = (function () {
|
|
|
7747
7748
|
moduleInstance.container.addEventListener('gesturechange', handlers.boundOnGestureChange, { passive: false });
|
|
7748
7749
|
moduleInstance.container.addEventListener('gestureend', handlers.boundOnGestureEnd, { passive: false });
|
|
7749
7750
|
}
|
|
7751
|
+
window.addEventListener('pointermove', handlers.boundOnLocalSnapGridPointerMove, { passive: true, capture: true });
|
|
7750
7752
|
window.addEventListener('resize', handlers.boundOnResize);
|
|
7751
7753
|
window.addEventListener('orientationchange', handlers.boundOnViewportMetricsChange);
|
|
7752
7754
|
if (window.visualViewport) {
|
|
@@ -7821,6 +7823,7 @@ window.MindMapInteractions = (function () {
|
|
|
7821
7823
|
moduleInstance.container.removeEventListener('gesturechange', handlers.boundOnGestureChange);
|
|
7822
7824
|
moduleInstance.container.removeEventListener('gestureend', handlers.boundOnGestureEnd);
|
|
7823
7825
|
}
|
|
7826
|
+
window.removeEventListener('pointermove', handlers.boundOnLocalSnapGridPointerMove, true);
|
|
7824
7827
|
window.removeEventListener('resize', handlers.boundOnResize);
|
|
7825
7828
|
window.removeEventListener('orientationchange', handlers.boundOnViewportMetricsChange);
|
|
7826
7829
|
if (window.visualViewport) {
|
package/wwwroot/index.html
CHANGED
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '20260727-
|
|
582
|
+
const scriptVersion = '20260727-world-grid-spotlight-v953';
|
|
583
583
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
584
584
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
585
585
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "gjgWz+5A",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"url": "_content/MindExecution.Shared/js/marked.min.js"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
"hash": "sha256-
|
|
81
|
+
"hash": "sha256-BLrKOjNbUa/5P4vblFrB7DrePPcBot3rJ2r8BIZqI6M=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
|
-
"hash": "sha256-
|
|
113
|
+
"hash": "sha256-wPZrXIRdM4Q6OME4+cmEMyZKC+gqlU9gGdGiHnSF7wk=",
|
|
114
114
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
@@ -846,7 +846,7 @@
|
|
|
846
846
|
"url": "icon-512.png"
|
|
847
847
|
},
|
|
848
848
|
{
|
|
849
|
-
"hash": "sha256-
|
|
849
|
+
"hash": "sha256-HUMUqSLlQJIObQIW4BYzraGd+AuERZQXXywV+UU22+4=",
|
|
850
850
|
"url": "index.html"
|
|
851
851
|
},
|
|
852
852
|
{
|