@mindexec/cli 0.2.449 → 0.2.450
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 +204 -199
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +12 -2
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +8 -8
- package/wwwroot/_framework/MindExecution.Core.9h7x2mjn0w.dll +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.fxnztqgsp3.dll → MindExecution.Kernel.8te3ay3qs6.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.vtp5nvymq9.dll → MindExecution.Plugins.Admin.imt43kggvu.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.o0bonn1p2f.dll → MindExecution.Plugins.Business.26yozgyvan.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.1omsw5caki.dll → MindExecution.Plugins.Concept.k7fd1qvmfx.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.imwo19wy9c.dll → MindExecution.Plugins.Directory.88ng22x3y0.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.hakp8m5rxg.dll → MindExecution.Plugins.PlanMaster.ll20yqlc09.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.2imuchw4ww.dll → MindExecution.Plugins.YouTube.gqu5xngvav.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.9podjbu7w7.dll → MindExecution.Shared.6ivt1fatt3.dll} +0 -0
- package/wwwroot/_framework/MindExecution.Web.7tki7xqpt0.dll +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/index.html +1 -1
- package/wwwroot/service-worker-assets.js +26 -26
- package/wwwroot/service-worker.js +1 -1
- package/wwwroot/_framework/MindExecution.Core.ocmk8xd0dx.dll +0 -0
- package/wwwroot/_framework/MindExecution.Web.rck7kmuixn.dll +0 -0
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 = '
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260727-fixed-phase-grid-spotlight-v857';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
const LOCAL_SNAP_GRID_DEFAULT_STEP_PX = 24;
|
|
113
113
|
const LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX = 240;
|
|
114
114
|
const LOCAL_SNAP_GRID_DEFAULT_OPACITY = 0.42;
|
|
115
|
+
const LOCAL_SNAP_GRID_TILE_OVERSCAN_PX = LOCAL_SNAP_GRID_MAX_STEP_PX * 10;
|
|
115
116
|
const CAMERA_STATIONARY_INTERACTION_FRAME_DELAY_MS = 48;
|
|
116
117
|
const CAMERA_ZOOM_END_DELAY_MS = 150;
|
|
117
118
|
const CAMERA_MOTION_GLOBAL_STYLE_CLASS_ENABLED = false;
|
|
@@ -3226,13 +3227,17 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3226
3227
|
this._motionGridHideTimer = null;
|
|
3227
3228
|
this._lastMotionGridKey = '';
|
|
3228
3229
|
this._localSnapGridLayer = null;
|
|
3230
|
+
this._localSnapGridSpotlightLayer = null;
|
|
3229
3231
|
this._localSnapGridVisible = false;
|
|
3230
3232
|
this._lastLocalSnapGridKey = '';
|
|
3231
3233
|
this._lastLocalSnapGridTransformKey = '';
|
|
3232
3234
|
this._lastLocalSnapGridOpacity = '';
|
|
3235
|
+
this._lastLocalSnapGridPatternPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
3236
|
+
this._localSnapGridTileCanvas = null;
|
|
3237
|
+
this._localSnapGridPointerRevision = 0;
|
|
3238
|
+
this._lastLocalSnapGridPositionRevision = -1;
|
|
3233
3239
|
this._localSnapGridStyleDeferredForZoom = false;
|
|
3234
3240
|
this._localSnapGridPointerWakeDeferredForZoom = false;
|
|
3235
|
-
this._lastLocalSnapGridPointerSnapKey = '';
|
|
3236
3241
|
this._lastSnapGridClientX = null;
|
|
3237
3242
|
this._lastSnapGridClientY = null;
|
|
3238
3243
|
this._animationIdleTimerId = null;
|
|
@@ -3313,7 +3318,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3313
3318
|
const previousY = this._lastSnapGridClientY;
|
|
3314
3319
|
this._lastSnapGridClientX = roundedX;
|
|
3315
3320
|
this._lastSnapGridClientY = roundedY;
|
|
3316
|
-
this._lastLocalSnapGridPointerSnapKey = `screen:${roundedX}|${roundedY}`;
|
|
3317
3321
|
this._localSnapGridPointerRevision = Math.max(0, Number(this._localSnapGridPointerRevision || 0)) + 1;
|
|
3318
3322
|
this._lastLocalSnapGridTransformKey = '';
|
|
3319
3323
|
if (previousX !== roundedX || previousY !== roundedY) {
|
|
@@ -3325,50 +3329,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3325
3329
|
return true;
|
|
3326
3330
|
}
|
|
3327
3331
|
|
|
3328
|
-
_getLocalSnapGridSnappedScreenCenter(rawCenterX, rawCenterY, width, height, camera = null) {
|
|
3329
|
-
const safeWidth = Math.max(1, Number(width || 0));
|
|
3330
|
-
const safeHeight = Math.max(1, Number(height || 0));
|
|
3331
|
-
const grid = Math.max(1, Number(this.GRID_SIZE || 10));
|
|
3332
|
-
const fallbackCenterX = Math.max(0, Math.min(safeWidth, Number(rawCenterX || 0)));
|
|
3333
|
-
const fallbackCenterY = Math.max(0, Math.min(safeHeight, Number(rawCenterY || 0)));
|
|
3334
|
-
const fallback = {
|
|
3335
|
-
centerX: fallbackCenterX,
|
|
3336
|
-
centerY: fallbackCenterY,
|
|
3337
|
-
snapKey: `screen:${Math.round(fallbackCenterX / grid)}|${Math.round(fallbackCenterY / grid)}`
|
|
3338
|
-
};
|
|
3339
|
-
const activeCamera = camera || this.camera;
|
|
3340
|
-
if (!activeCamera?.isPerspectiveCamera) {
|
|
3341
|
-
return fallback;
|
|
3342
|
-
}
|
|
3343
|
-
|
|
3344
|
-
const cameraZ = Math.max(1, Number(activeCamera.position?.z || 1));
|
|
3345
|
-
const vfov = (Number(activeCamera.fov || 45) * Math.PI) / 180;
|
|
3346
|
-
const viewHeight = 2 * Math.tan(vfov / 2) * cameraZ;
|
|
3347
|
-
const viewWidth = viewHeight * Math.max(0.1, Number(activeCamera.aspect || (safeWidth / safeHeight) || 1));
|
|
3348
|
-
if (viewWidth <= 0 || viewHeight <= 0) {
|
|
3349
|
-
return fallback;
|
|
3350
|
-
}
|
|
3351
|
-
|
|
3352
|
-
const cameraX = Number(activeCamera.position?.x || 0);
|
|
3353
|
-
const cameraY = Number(activeCamera.position?.y || 0);
|
|
3354
|
-
const worldX = cameraX + ((fallbackCenterX / safeWidth) - 0.5) * viewWidth;
|
|
3355
|
-
const worldY = cameraY + (0.5 - (fallbackCenterY / safeHeight)) * viewHeight;
|
|
3356
|
-
const snappedWorldX = Math.round(worldX / grid) * grid;
|
|
3357
|
-
const snappedWorldY = Math.round(worldY / grid) * grid;
|
|
3358
|
-
|
|
3359
|
-
return {
|
|
3360
|
-
centerX: Math.max(0, Math.min(
|
|
3361
|
-
safeWidth,
|
|
3362
|
-
(((snappedWorldX - cameraX) / viewWidth) + 0.5) * safeWidth
|
|
3363
|
-
)),
|
|
3364
|
-
centerY: Math.max(0, Math.min(
|
|
3365
|
-
safeHeight,
|
|
3366
|
-
(0.5 - ((snappedWorldY - cameraY) / viewHeight)) * safeHeight
|
|
3367
|
-
)),
|
|
3368
|
-
snapKey: `world:${Math.round(snappedWorldX / grid)}|${Math.round(snappedWorldY / grid)}`
|
|
3369
|
-
};
|
|
3370
|
-
}
|
|
3371
|
-
|
|
3372
3332
|
_ensureBackgroundGridLayerHost() {
|
|
3373
3333
|
if (!this.container || typeof document === 'undefined') {
|
|
3374
3334
|
return null;
|
|
@@ -3484,51 +3444,153 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3484
3444
|
if (!this.container || typeof document === 'undefined') {
|
|
3485
3445
|
return null;
|
|
3486
3446
|
}
|
|
3447
|
+
|
|
3448
|
+
const spotlight = this._ensureLocalSnapGridSpotlightLayer();
|
|
3449
|
+
if (!spotlight) {
|
|
3450
|
+
return null;
|
|
3451
|
+
}
|
|
3452
|
+
|
|
3487
3453
|
if (this._localSnapGridLayer?.isConnected) {
|
|
3488
|
-
|
|
3454
|
+
if (this._localSnapGridLayer.parentNode !== spotlight) {
|
|
3455
|
+
spotlight.appendChild(this._localSnapGridLayer);
|
|
3456
|
+
}
|
|
3489
3457
|
return this._localSnapGridLayer;
|
|
3490
3458
|
}
|
|
3491
3459
|
|
|
3492
|
-
const layer = document.createElement('
|
|
3460
|
+
const layer = document.createElement('div');
|
|
3493
3461
|
layer.className = 'mindcanvas-local-snap-grid-layer';
|
|
3494
3462
|
layer.setAttribute('aria-hidden', 'true');
|
|
3495
|
-
layer.width = LOCAL_SNAP_GRID_DIAMETER_PX;
|
|
3496
|
-
layer.height = LOCAL_SNAP_GRID_DIAMETER_PX;
|
|
3497
3463
|
layer.style.position = 'absolute';
|
|
3498
|
-
layer.style.left =
|
|
3499
|
-
layer.style.top =
|
|
3500
|
-
layer.style.width = `${LOCAL_SNAP_GRID_DIAMETER_PX}px`;
|
|
3501
|
-
layer.style.height = `${LOCAL_SNAP_GRID_DIAMETER_PX}px`;
|
|
3502
|
-
layer.style.zIndex = '
|
|
3464
|
+
layer.style.left = `-${LOCAL_SNAP_GRID_TILE_OVERSCAN_PX}px`;
|
|
3465
|
+
layer.style.top = `-${LOCAL_SNAP_GRID_TILE_OVERSCAN_PX}px`;
|
|
3466
|
+
layer.style.width = `${LOCAL_SNAP_GRID_DIAMETER_PX + (LOCAL_SNAP_GRID_TILE_OVERSCAN_PX * 2)}px`;
|
|
3467
|
+
layer.style.height = `${LOCAL_SNAP_GRID_DIAMETER_PX + (LOCAL_SNAP_GRID_TILE_OVERSCAN_PX * 2)}px`;
|
|
3468
|
+
layer.style.zIndex = '1';
|
|
3503
3469
|
layer.style.pointerEvents = 'none';
|
|
3504
|
-
layer.style.display = '
|
|
3470
|
+
layer.style.display = 'block';
|
|
3505
3471
|
layer.style.opacity = '0';
|
|
3506
3472
|
layer.style.backgroundColor = 'transparent';
|
|
3507
|
-
layer.style.
|
|
3508
|
-
layer.style.
|
|
3509
|
-
layer.style.contain = 'strict';
|
|
3473
|
+
layer.style.backgroundRepeat = 'repeat';
|
|
3474
|
+
layer.style.contain = 'paint';
|
|
3510
3475
|
layer.style.willChange = 'transform';
|
|
3511
3476
|
layer.style.transform = 'translate3d(0, 0, 0)';
|
|
3512
3477
|
layer.style.transition = 'none';
|
|
3513
3478
|
|
|
3514
|
-
|
|
3479
|
+
spotlight.appendChild(layer);
|
|
3515
3480
|
|
|
3516
3481
|
this._localSnapGridLayer = layer;
|
|
3517
3482
|
this._lastLocalSnapGridKey = '';
|
|
3518
3483
|
this._lastLocalSnapGridTransformKey = '';
|
|
3519
3484
|
this._lastLocalSnapGridPositionRevision = -1;
|
|
3520
|
-
this._lastLocalSnapGridPointerSnapKey = '';
|
|
3521
3485
|
this._lastLocalSnapGridOpacity = '';
|
|
3486
|
+
this._lastLocalSnapGridPatternPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
3522
3487
|
this._localSnapGridStyleDeferredForZoom = false;
|
|
3523
3488
|
return layer;
|
|
3524
3489
|
}
|
|
3525
3490
|
|
|
3491
|
+
_ensureLocalSnapGridSpotlightLayer() {
|
|
3492
|
+
if (!this.container || typeof document === 'undefined') {
|
|
3493
|
+
return null;
|
|
3494
|
+
}
|
|
3495
|
+
if (this._localSnapGridSpotlightLayer?.isConnected) {
|
|
3496
|
+
this._placeBackgroundGridLayer(this._localSnapGridSpotlightLayer);
|
|
3497
|
+
return this._localSnapGridSpotlightLayer;
|
|
3498
|
+
}
|
|
3499
|
+
|
|
3500
|
+
const spotlight = document.createElement('div');
|
|
3501
|
+
spotlight.className = 'mindcanvas-local-snap-grid-spotlight-layer';
|
|
3502
|
+
spotlight.setAttribute('aria-hidden', 'true');
|
|
3503
|
+
spotlight.style.position = 'absolute';
|
|
3504
|
+
spotlight.style.left = '0';
|
|
3505
|
+
spotlight.style.top = '0';
|
|
3506
|
+
spotlight.style.width = `${LOCAL_SNAP_GRID_DIAMETER_PX}px`;
|
|
3507
|
+
spotlight.style.height = `${LOCAL_SNAP_GRID_DIAMETER_PX}px`;
|
|
3508
|
+
spotlight.style.zIndex = '0';
|
|
3509
|
+
spotlight.style.pointerEvents = 'none';
|
|
3510
|
+
spotlight.style.display = 'none';
|
|
3511
|
+
spotlight.style.opacity = '0';
|
|
3512
|
+
spotlight.style.borderRadius = '50%';
|
|
3513
|
+
spotlight.style.overflow = 'hidden';
|
|
3514
|
+
spotlight.style.background = 'radial-gradient(circle, rgba(255,255,255,0.34) 0%, rgba(219,234,254,0.14) 52%, rgba(219,234,254,0) 78%)';
|
|
3515
|
+
const spotlightMask = 'radial-gradient(circle at center, #000 0%, rgba(0,0,0,0.96) 36%, rgba(0,0,0,0.62) 58%, rgba(0,0,0,0.16) 78%, transparent 100%)';
|
|
3516
|
+
spotlight.style.maskImage = spotlightMask;
|
|
3517
|
+
spotlight.style.webkitMaskImage = spotlightMask;
|
|
3518
|
+
spotlight.style.contain = 'strict';
|
|
3519
|
+
spotlight.style.willChange = 'transform';
|
|
3520
|
+
spotlight.style.transform = 'translate3d(0, 0, 0)';
|
|
3521
|
+
spotlight.style.transition = 'none';
|
|
3522
|
+
this._placeBackgroundGridLayer(spotlight);
|
|
3523
|
+
this._localSnapGridSpotlightLayer = spotlight;
|
|
3524
|
+
return spotlight;
|
|
3525
|
+
}
|
|
3526
|
+
|
|
3527
|
+
_syncLocalSnapGridSpotlightPosition(width, height, left = 0, top = 0) {
|
|
3528
|
+
const spotlight = this._ensureLocalSnapGridSpotlightLayer();
|
|
3529
|
+
if (!spotlight) {
|
|
3530
|
+
return false;
|
|
3531
|
+
}
|
|
3532
|
+
const hasPointer =
|
|
3533
|
+
this._lastSnapGridClientX !== null &&
|
|
3534
|
+
this._lastSnapGridClientX !== undefined &&
|
|
3535
|
+
this._lastSnapGridClientY !== null &&
|
|
3536
|
+
this._lastSnapGridClientY !== undefined &&
|
|
3537
|
+
Number.isFinite(Number(this._lastSnapGridClientX)) &&
|
|
3538
|
+
Number.isFinite(Number(this._lastSnapGridClientY));
|
|
3539
|
+
const centerX = hasPointer
|
|
3540
|
+
? Math.max(0, Math.min(width, Number(this._lastSnapGridClientX) - left))
|
|
3541
|
+
: width / 2;
|
|
3542
|
+
const centerY = hasPointer
|
|
3543
|
+
? Math.max(0, Math.min(height, Number(this._lastSnapGridClientY) - top))
|
|
3544
|
+
: height / 2;
|
|
3545
|
+
const spotlightLeft = Math.round(centerX - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3546
|
+
const spotlightTop = Math.round(centerY - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3547
|
+
const patternPeriod = Math.max(
|
|
3548
|
+
1,
|
|
3549
|
+
Math.round(Number(this._lastLocalSnapGridPatternPeriodPx || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX))
|
|
3550
|
+
);
|
|
3551
|
+
const positiveModulo = (value, size) => ((value % size) + size) % size;
|
|
3552
|
+
const gridPhaseX = Math.round(positiveModulo(
|
|
3553
|
+
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX - spotlightLeft,
|
|
3554
|
+
patternPeriod
|
|
3555
|
+
));
|
|
3556
|
+
const gridPhaseY = Math.round(positiveModulo(
|
|
3557
|
+
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX - spotlightTop,
|
|
3558
|
+
patternPeriod
|
|
3559
|
+
));
|
|
3560
|
+
if (DEBUG) {
|
|
3561
|
+
const fixedPhaseX = positiveModulo(
|
|
3562
|
+
spotlightLeft - LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + gridPhaseX,
|
|
3563
|
+
patternPeriod
|
|
3564
|
+
);
|
|
3565
|
+
const fixedPhaseY = positiveModulo(
|
|
3566
|
+
spotlightTop - LOCAL_SNAP_GRID_TILE_OVERSCAN_PX + gridPhaseY,
|
|
3567
|
+
patternPeriod
|
|
3568
|
+
);
|
|
3569
|
+
window.MindCanvasDevGuards?.assert?.(
|
|
3570
|
+
fixedPhaseX === 0 && fixedPhaseY === 0,
|
|
3571
|
+
'local-snap-grid-phase-drift',
|
|
3572
|
+
{ spotlightLeft, spotlightTop, gridPhaseX, gridPhaseY, patternPeriod }
|
|
3573
|
+
);
|
|
3574
|
+
}
|
|
3575
|
+
const transformKey = `${spotlightLeft}|${spotlightTop}|${patternPeriod}|${gridPhaseX}|${gridPhaseY}`;
|
|
3576
|
+
if (transformKey === this._lastLocalSnapGridTransformKey) {
|
|
3577
|
+
return false;
|
|
3578
|
+
}
|
|
3579
|
+
this._lastLocalSnapGridTransformKey = transformKey;
|
|
3580
|
+
spotlight.style.transform = `translate3d(${spotlightLeft}px, ${spotlightTop}px, 0)`;
|
|
3581
|
+
if (this._localSnapGridLayer) {
|
|
3582
|
+
this._localSnapGridLayer.style.transform =
|
|
3583
|
+
`translate3d(${gridPhaseX}px, ${gridPhaseY}px, 0)`;
|
|
3584
|
+
}
|
|
3585
|
+
return true;
|
|
3586
|
+
}
|
|
3587
|
+
|
|
3526
3588
|
_getLocalSnapGridStyleKind() {
|
|
3527
3589
|
const themeName = String(this.currentThemeName || '').trim();
|
|
3528
3590
|
return themeName === 'SpatialGrid2D' ? 'dot' : 'line';
|
|
3529
3591
|
}
|
|
3530
3592
|
|
|
3531
|
-
|
|
3593
|
+
_drawLocalSnapGridTile(canvas, styleKind, smallStepPx, majorStepPx) {
|
|
3532
3594
|
if (!canvas || typeof canvas.getContext !== 'function') {
|
|
3533
3595
|
return false;
|
|
3534
3596
|
}
|
|
@@ -3538,105 +3600,60 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3538
3600
|
return false;
|
|
3539
3601
|
}
|
|
3540
3602
|
|
|
3541
|
-
const
|
|
3542
|
-
const
|
|
3543
|
-
|
|
3544
|
-
|
|
3603
|
+
const smallStep = Math.max(LOCAL_SNAP_GRID_MIN_STEP_PX, Number(smallStepPx) || LOCAL_SNAP_GRID_DEFAULT_STEP_PX);
|
|
3604
|
+
const majorStep = Math.max(
|
|
3605
|
+
smallStep,
|
|
3606
|
+
Math.min(
|
|
3607
|
+
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX,
|
|
3608
|
+
Number(majorStepPx) || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX
|
|
3609
|
+
)
|
|
3610
|
+
);
|
|
3611
|
+
const tileSize = Math.max(1, Math.round(majorStep));
|
|
3612
|
+
if (canvas.width !== tileSize) {
|
|
3613
|
+
canvas.width = tileSize;
|
|
3545
3614
|
}
|
|
3546
|
-
if (canvas.height !==
|
|
3547
|
-
canvas.height =
|
|
3615
|
+
if (canvas.height !== tileSize) {
|
|
3616
|
+
canvas.height = tileSize;
|
|
3548
3617
|
}
|
|
3549
|
-
|
|
3550
|
-
const smallStep = Math.max(LOCAL_SNAP_GRID_MIN_STEP_PX, Number(smallStepPx) || LOCAL_SNAP_GRID_DEFAULT_STEP_PX);
|
|
3551
|
-
const majorStep = Math.max(smallStep, Number(majorStepPx) || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX);
|
|
3552
|
-
ctx.clearRect(0, 0, size, size);
|
|
3553
|
-
const radiusSq = center * center;
|
|
3554
|
-
const forCenteredSteps = (step, callback) => {
|
|
3555
|
-
callback(center);
|
|
3556
|
-
for (let offset = step; offset <= center; offset += step) {
|
|
3557
|
-
callback(center - offset);
|
|
3558
|
-
callback(center + offset);
|
|
3559
|
-
}
|
|
3560
|
-
};
|
|
3618
|
+
ctx.clearRect(0, 0, tileSize, tileSize);
|
|
3561
3619
|
|
|
3562
3620
|
if (styleKind === 'dot') {
|
|
3563
3621
|
ctx.fillStyle = 'rgba(58, 69, 88, 0.46)';
|
|
3564
3622
|
const dotRadius = 1.15;
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
const dySq = dy * dy;
|
|
3568
|
-
forCenteredSteps(smallStep, x => {
|
|
3569
|
-
const dx = x - center;
|
|
3570
|
-
if ((dx * dx) + dySq > radiusSq) {
|
|
3571
|
-
return;
|
|
3572
|
-
}
|
|
3623
|
+
for (let y = 0; y < tileSize; y += smallStep) {
|
|
3624
|
+
for (let x = 0; x < tileSize; x += smallStep) {
|
|
3573
3625
|
ctx.beginPath();
|
|
3574
3626
|
ctx.arc(x, y, dotRadius, 0, Math.PI * 2);
|
|
3575
3627
|
ctx.fill();
|
|
3576
|
-
}
|
|
3577
|
-
}
|
|
3628
|
+
}
|
|
3629
|
+
}
|
|
3578
3630
|
|
|
3579
3631
|
ctx.fillStyle = 'rgba(15, 23, 42, 0.62)';
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
const dySq = dy * dy;
|
|
3584
|
-
forCenteredSteps(majorStep, x => {
|
|
3585
|
-
const dx = x - center;
|
|
3586
|
-
if ((dx * dx) + dySq > radiusSq) {
|
|
3587
|
-
return;
|
|
3588
|
-
}
|
|
3589
|
-
ctx.beginPath();
|
|
3590
|
-
ctx.arc(x, y, majorDotRadius, 0, Math.PI * 2);
|
|
3591
|
-
ctx.fill();
|
|
3592
|
-
});
|
|
3593
|
-
});
|
|
3632
|
+
ctx.beginPath();
|
|
3633
|
+
ctx.arc(0, 0, 1.85, 0, Math.PI * 2);
|
|
3634
|
+
ctx.fill();
|
|
3594
3635
|
} else {
|
|
3595
3636
|
const drawLines = (step, color, width) => {
|
|
3596
3637
|
ctx.strokeStyle = color;
|
|
3597
3638
|
ctx.lineWidth = width;
|
|
3598
3639
|
ctx.beginPath();
|
|
3599
|
-
|
|
3600
|
-
const dx = x - center;
|
|
3601
|
-
const spanSq = radiusSq - (dx * dx);
|
|
3602
|
-
if (spanSq <= 0) {
|
|
3603
|
-
return;
|
|
3604
|
-
}
|
|
3605
|
-
const span = Math.sqrt(spanSq);
|
|
3640
|
+
for (let x = 0; x < tileSize; x += step) {
|
|
3606
3641
|
const pixelX = Math.round(x) + 0.5;
|
|
3607
|
-
ctx.moveTo(pixelX,
|
|
3608
|
-
ctx.lineTo(pixelX,
|
|
3609
|
-
}
|
|
3610
|
-
|
|
3611
|
-
const dy = y - center;
|
|
3612
|
-
const spanSq = radiusSq - (dy * dy);
|
|
3613
|
-
if (spanSq <= 0) {
|
|
3614
|
-
return;
|
|
3615
|
-
}
|
|
3616
|
-
const span = Math.sqrt(spanSq);
|
|
3642
|
+
ctx.moveTo(pixelX, 0);
|
|
3643
|
+
ctx.lineTo(pixelX, tileSize);
|
|
3644
|
+
}
|
|
3645
|
+
for (let y = 0; y < tileSize; y += step) {
|
|
3617
3646
|
const pixelY = Math.round(y) + 0.5;
|
|
3618
|
-
ctx.moveTo(
|
|
3619
|
-
ctx.lineTo(
|
|
3620
|
-
}
|
|
3647
|
+
ctx.moveTo(0, pixelY);
|
|
3648
|
+
ctx.lineTo(tileSize, pixelY);
|
|
3649
|
+
}
|
|
3621
3650
|
ctx.stroke();
|
|
3622
3651
|
};
|
|
3623
3652
|
|
|
3624
3653
|
drawLines(smallStep, 'rgba(51, 65, 85, 0.24)', 1);
|
|
3625
3654
|
drawLines(majorStep, 'rgba(15, 23, 42, 0.42)', 1);
|
|
3626
3655
|
}
|
|
3627
|
-
|
|
3628
|
-
ctx.globalCompositeOperation = 'destination-in';
|
|
3629
|
-
const fade = ctx.createRadialGradient(center, center, center * 0.18, center, center, center);
|
|
3630
|
-
fade.addColorStop(0, 'rgba(0,0,0,1)');
|
|
3631
|
-
fade.addColorStop(0.34, 'rgba(0,0,0,0.92)');
|
|
3632
|
-
fade.addColorStop(0.56, 'rgba(0,0,0,0.48)');
|
|
3633
|
-
fade.addColorStop(0.74, 'rgba(0,0,0,0.14)');
|
|
3634
|
-
fade.addColorStop(0.88, 'rgba(0,0,0,0.035)');
|
|
3635
|
-
fade.addColorStop(1, 'rgba(0,0,0,0)');
|
|
3636
|
-
ctx.fillStyle = fade;
|
|
3637
|
-
ctx.fillRect(0, 0, size, size);
|
|
3638
|
-
ctx.globalCompositeOperation = 'source-over';
|
|
3639
|
-
return true;
|
|
3656
|
+
return tileSize;
|
|
3640
3657
|
}
|
|
3641
3658
|
|
|
3642
3659
|
_applyLocalSnapGridStyle(
|
|
@@ -3656,7 +3673,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3656
3673
|
LOCAL_SNAP_GRID_MIN_STEP_PX,
|
|
3657
3674
|
Math.min(LOCAL_SNAP_GRID_MAX_STEP_PX, Number(smallStepPx) || LOCAL_SNAP_GRID_DEFAULT_STEP_PX)
|
|
3658
3675
|
);
|
|
3659
|
-
const safeMajorStep = Math.max(
|
|
3676
|
+
const safeMajorStep = Math.max(
|
|
3677
|
+
safeSmallStep,
|
|
3678
|
+
Math.min(
|
|
3679
|
+
LOCAL_SNAP_GRID_TILE_OVERSCAN_PX,
|
|
3680
|
+
Number(majorStepPx) || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX
|
|
3681
|
+
)
|
|
3682
|
+
);
|
|
3660
3683
|
const safeOpacity = Math.max(0.2, Math.min(0.56, Number(opacity) || LOCAL_SNAP_GRID_DEFAULT_OPACITY));
|
|
3661
3684
|
const localGridKey = [
|
|
3662
3685
|
keyPrefix,
|
|
@@ -3673,12 +3696,21 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3673
3696
|
this._lastLocalSnapGridKey = localGridKey;
|
|
3674
3697
|
const opacityValue = safeOpacity.toFixed(3);
|
|
3675
3698
|
this._lastLocalSnapGridOpacity = opacityValue;
|
|
3676
|
-
this.
|
|
3677
|
-
|
|
3699
|
+
const tileCanvas = this._localSnapGridTileCanvas || document.createElement('canvas');
|
|
3700
|
+
this._localSnapGridTileCanvas = tileCanvas;
|
|
3701
|
+
const tileSize = this._drawLocalSnapGridTile(
|
|
3702
|
+
tileCanvas,
|
|
3678
3703
|
safeStyleKind,
|
|
3679
3704
|
safeSmallStep,
|
|
3680
3705
|
safeMajorStep
|
|
3681
3706
|
);
|
|
3707
|
+
if (!Number.isFinite(tileSize) || tileSize <= 0) {
|
|
3708
|
+
return false;
|
|
3709
|
+
}
|
|
3710
|
+
this._lastLocalSnapGridPatternPeriodPx = tileSize;
|
|
3711
|
+
this._lastLocalSnapGridTransformKey = '';
|
|
3712
|
+
layer.style.backgroundImage = `url("${tileCanvas.toDataURL('image/png')}")`;
|
|
3713
|
+
layer.style.backgroundSize = `${tileSize}px ${tileSize}px`;
|
|
3682
3714
|
if (layer.style.opacity !== opacityValue) {
|
|
3683
3715
|
layer.style.opacity = opacityValue;
|
|
3684
3716
|
}
|
|
@@ -3712,6 +3744,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3712
3744
|
if (!layer) {
|
|
3713
3745
|
return;
|
|
3714
3746
|
}
|
|
3747
|
+
const spotlight = this._localSnapGridSpotlightLayer;
|
|
3715
3748
|
|
|
3716
3749
|
if (visible === true) {
|
|
3717
3750
|
const opacityValue = targetOpacity == null
|
|
@@ -3726,11 +3759,20 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3726
3759
|
if (opacityValue && layer.style.opacity !== opacityValue) {
|
|
3727
3760
|
layer.style.opacity = opacityValue;
|
|
3728
3761
|
}
|
|
3762
|
+
if (spotlight) {
|
|
3763
|
+
if (spotlight.style.display !== 'block') {
|
|
3764
|
+
spotlight.style.display = 'block';
|
|
3765
|
+
}
|
|
3766
|
+
if (spotlight.style.opacity !== '1') {
|
|
3767
|
+
spotlight.style.opacity = '1';
|
|
3768
|
+
}
|
|
3769
|
+
}
|
|
3729
3770
|
return;
|
|
3730
3771
|
}
|
|
3731
3772
|
|
|
3732
3773
|
if (this._localSnapGridVisible !== true &&
|
|
3733
|
-
layer.style.display === 'none'
|
|
3774
|
+
layer.style.display === 'none' &&
|
|
3775
|
+
(!spotlight || spotlight.style.display === 'none')) {
|
|
3734
3776
|
return;
|
|
3735
3777
|
}
|
|
3736
3778
|
|
|
@@ -3743,6 +3785,14 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3743
3785
|
if (layer.style.display !== 'none') {
|
|
3744
3786
|
layer.style.display = 'none';
|
|
3745
3787
|
}
|
|
3788
|
+
if (spotlight) {
|
|
3789
|
+
if (spotlight.style.opacity !== '0') {
|
|
3790
|
+
spotlight.style.opacity = '0';
|
|
3791
|
+
}
|
|
3792
|
+
if (spotlight.style.display !== 'none') {
|
|
3793
|
+
spotlight.style.display = 'none';
|
|
3794
|
+
}
|
|
3795
|
+
}
|
|
3746
3796
|
}
|
|
3747
3797
|
|
|
3748
3798
|
_syncLocalSnapGridLayer(visible = true) {
|
|
@@ -3766,37 +3816,11 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3766
3816
|
const height = Math.max(1, Number(viewportMetrics.height || 0));
|
|
3767
3817
|
const left = Number(viewportMetrics.left || 0);
|
|
3768
3818
|
const top = Number(viewportMetrics.top || 0);
|
|
3769
|
-
const
|
|
3770
|
-
this._lastSnapGridClientX !== null &&
|
|
3771
|
-
this._lastSnapGridClientX !== undefined &&
|
|
3772
|
-
this._lastSnapGridClientY !== null &&
|
|
3773
|
-
this._lastSnapGridClientY !== undefined &&
|
|
3774
|
-
Number.isFinite(Number(this._lastSnapGridClientX)) &&
|
|
3775
|
-
Number.isFinite(Number(this._lastSnapGridClientY));
|
|
3776
|
-
const centerX = hasPointer
|
|
3777
|
-
? Math.max(0, Math.min(width, Number(this._lastSnapGridClientX) - left))
|
|
3778
|
-
: width / 2;
|
|
3779
|
-
const centerY = hasPointer
|
|
3780
|
-
? Math.max(0, Math.min(height, Number(this._lastSnapGridClientY) - top))
|
|
3781
|
-
: height / 2;
|
|
3782
|
-
const snappedCenter = this._getLocalSnapGridSnappedScreenCenter(
|
|
3783
|
-
centerX,
|
|
3784
|
-
centerY,
|
|
3785
|
-
width,
|
|
3786
|
-
height,
|
|
3787
|
-
this.camera
|
|
3788
|
-
);
|
|
3789
|
-
const snappedLayerLeft = Math.round(snappedCenter.centerX - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3790
|
-
const snappedLayerTop = Math.round(snappedCenter.centerY - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3791
|
-
const transformKey = `${snappedLayerLeft}|${snappedLayerTop}`;
|
|
3792
|
-
if (transformKey !== this._lastLocalSnapGridTransformKey) {
|
|
3793
|
-
this._lastLocalSnapGridTransformKey = transformKey;
|
|
3794
|
-
layer.style.transform = `translate3d(${snappedLayerLeft}px, ${snappedLayerTop}px, 0)`;
|
|
3795
|
-
}
|
|
3796
|
-
this._lastLocalSnapGridPointerSnapKey = snappedCenter.snapKey;
|
|
3797
|
-
this._lastLocalSnapGridPositionRevision = Math.max(0, Number(this._localSnapGridPointerRevision || 0));
|
|
3819
|
+
const pointerRevision = Math.max(0, Number(this._localSnapGridPointerRevision || 0));
|
|
3798
3820
|
|
|
3799
3821
|
if (this.isZooming === true && !!this._lastLocalSnapGridKey) {
|
|
3822
|
+
this._syncLocalSnapGridSpotlightPosition(width, height, left, top);
|
|
3823
|
+
this._lastLocalSnapGridPositionRevision = pointerRevision;
|
|
3800
3824
|
this._localSnapGridStyleDeferredForZoom = true;
|
|
3801
3825
|
this._setLocalSnapGridVisible(true, this._lastLocalSnapGridOpacity || null);
|
|
3802
3826
|
return true;
|
|
@@ -3843,6 +3867,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3843
3867
|
this._localSnapGridStyleDeferredForZoom = true;
|
|
3844
3868
|
}
|
|
3845
3869
|
|
|
3870
|
+
this._syncLocalSnapGridSpotlightPosition(width, height, left, top);
|
|
3871
|
+
this._lastLocalSnapGridPositionRevision = pointerRevision;
|
|
3846
3872
|
this._setLocalSnapGridVisible(true, this._lastLocalSnapGridOpacity || opacity.toFixed(3));
|
|
3847
3873
|
return true;
|
|
3848
3874
|
}
|
|
@@ -3877,34 +3903,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3877
3903
|
const height = Math.max(1, Number(viewportMetrics.height || 0));
|
|
3878
3904
|
const left = Number(viewportMetrics.left || 0);
|
|
3879
3905
|
const top = Number(viewportMetrics.top || 0);
|
|
3880
|
-
|
|
3881
|
-
this._lastSnapGridClientX !== null &&
|
|
3882
|
-
this._lastSnapGridClientX !== undefined &&
|
|
3883
|
-
this._lastSnapGridClientY !== null &&
|
|
3884
|
-
this._lastSnapGridClientY !== undefined &&
|
|
3885
|
-
Number.isFinite(Number(this._lastSnapGridClientX)) &&
|
|
3886
|
-
Number.isFinite(Number(this._lastSnapGridClientY));
|
|
3887
|
-
const centerX = hasPointer
|
|
3888
|
-
? Math.max(0, Math.min(width, Number(this._lastSnapGridClientX) - left))
|
|
3889
|
-
: width / 2;
|
|
3890
|
-
const centerY = hasPointer
|
|
3891
|
-
? Math.max(0, Math.min(height, Number(this._lastSnapGridClientY) - top))
|
|
3892
|
-
: height / 2;
|
|
3893
|
-
const snappedCenter = this._getLocalSnapGridSnappedScreenCenter(
|
|
3894
|
-
centerX,
|
|
3895
|
-
centerY,
|
|
3896
|
-
width,
|
|
3897
|
-
height,
|
|
3898
|
-
this.camera
|
|
3899
|
-
);
|
|
3900
|
-
const snappedLayerLeft = Math.round(snappedCenter.centerX - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3901
|
-
const snappedLayerTop = Math.round(snappedCenter.centerY - LOCAL_SNAP_GRID_RADIUS_PX);
|
|
3902
|
-
const transformKey = `${snappedLayerLeft}|${snappedLayerTop}`;
|
|
3903
|
-
if (transformKey !== this._lastLocalSnapGridTransformKey) {
|
|
3904
|
-
this._lastLocalSnapGridTransformKey = transformKey;
|
|
3905
|
-
layer.style.transform = `translate3d(${snappedLayerLeft}px, ${snappedLayerTop}px, 0)`;
|
|
3906
|
-
}
|
|
3907
|
-
this._lastLocalSnapGridPointerSnapKey = snappedCenter.snapKey;
|
|
3906
|
+
this._syncLocalSnapGridSpotlightPosition(width, height, left, top);
|
|
3908
3907
|
this._lastLocalSnapGridPositionRevision = pointerRevision;
|
|
3909
3908
|
|
|
3910
3909
|
if (this.isZooming === true) {
|
|
@@ -7845,7 +7844,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
7845
7844
|
this._localSnapGridVisible = false;
|
|
7846
7845
|
this._lastLocalSnapGridKey = '';
|
|
7847
7846
|
this._lastLocalSnapGridTransformKey = '';
|
|
7847
|
+
this._lastLocalSnapGridPatternPeriodPx = LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX;
|
|
7848
|
+
}
|
|
7849
|
+
if (this._localSnapGridSpotlightLayer) {
|
|
7850
|
+
this._localSnapGridSpotlightLayer.remove();
|
|
7851
|
+
this._localSnapGridSpotlightLayer = null;
|
|
7848
7852
|
}
|
|
7853
|
+
this._localSnapGridTileCanvas = null;
|
|
7849
7854
|
if (this._backgroundGridLayerHost) {
|
|
7850
7855
|
this._backgroundGridLayerHost.remove();
|
|
7851
7856
|
this._backgroundGridLayerHost = null;
|
|
@@ -1589,8 +1589,8 @@ window.MindMapInteractions = (function () {
|
|
|
1589
1589
|
// ▲▲▲ [New] Scrollbar-drag helper functions ▲▲▲
|
|
1590
1590
|
|
|
1591
1591
|
// ▼▼▼ [New] Centralized Pointer Update Helper ▼▼▼
|
|
1592
|
-
function
|
|
1593
|
-
if (!module
|
|
1592
|
+
function updateLocalSnapGridPointer(module, clientX, clientY) {
|
|
1593
|
+
if (!module) return false;
|
|
1594
1594
|
|
|
1595
1595
|
const shouldUpdateLocalSnapGridPointer = !!(
|
|
1596
1596
|
module._isLocalSnapGridThemeEnabled?.() === true ||
|
|
@@ -1606,6 +1606,13 @@ window.MindMapInteractions = (function () {
|
|
|
1606
1606
|
module.requestAnimationWake?.('local-snap-grid-pointer');
|
|
1607
1607
|
}
|
|
1608
1608
|
}
|
|
1609
|
+
return localSnapGridMoved === true;
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
function setPointerFromClientPosition(module, clientX, clientY) {
|
|
1613
|
+
if (!module?.pointer) return false;
|
|
1614
|
+
|
|
1615
|
+
updateLocalSnapGridPointer(module, clientX, clientY);
|
|
1609
1616
|
|
|
1610
1617
|
const metrics = getCachedViewportMetrics(module);
|
|
1611
1618
|
if (!metrics || metrics.width <= 0 || metrics.height <= 0) {
|
|
@@ -7032,6 +7039,9 @@ window.MindMapInteractions = (function () {
|
|
|
7032
7039
|
|
|
7033
7040
|
|
|
7034
7041
|
function onHoverMove(module, e) {
|
|
7042
|
+
// Keep the cheap spotlight tracking before any hover/raycast early exit.
|
|
7043
|
+
updateLocalSnapGridPointer(module, e?.clientX, e?.clientY);
|
|
7044
|
+
|
|
7035
7045
|
// Do not run hover raycasts or DOM hit checks while the camera is moving.
|
|
7036
7046
|
if (
|
|
7037
7047
|
module.isPanning ||
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
// ▲▲▲ [Usage] ▲▲▲
|
|
52
52
|
|
|
53
53
|
// Procedural line rendering settings
|
|
54
|
-
const LOD_RENDERER_BUILD_ID = '
|
|
54
|
+
const LOD_RENDERER_BUILD_ID = '20260727-mid-line-invariant-v847';
|
|
55
55
|
const DirtyKind = Object.freeze({
|
|
56
56
|
ResidentFullRebuild: 'resident-full-rebuild',
|
|
57
57
|
ResidentPatch: 'resident-patch',
|
|
@@ -2275,9 +2275,9 @@
|
|
|
2275
2275
|
`,
|
|
2276
2276
|
transparent: true,
|
|
2277
2277
|
depthWrite: true, // Enable depth write to occlude grid
|
|
2278
|
-
depthTest: true,
|
|
2279
|
-
side: THREE.DoubleSide,
|
|
2280
|
-
polygonOffset: true,
|
|
2278
|
+
depthTest: true,
|
|
2279
|
+
side: THREE.DoubleSide,
|
|
2280
|
+
polygonOffset: true,
|
|
2281
2281
|
polygonOffsetFactor: -20.0, // Priority over Node(-10.0) -> -20.0
|
|
2282
2282
|
polygonOffsetUnits: -20.0
|
|
2283
2283
|
});
|
|
@@ -7354,7 +7354,7 @@
|
|
|
7354
7354
|
|
|
7355
7355
|
_updateLineRenderState(cameraZ, currentTextLikeCount, lodBand = this._currentLodBand) {
|
|
7356
7356
|
const disableByCount = currentTextLikeCount > LINE_DISABLE_THRESHOLD;
|
|
7357
|
-
|
|
7357
|
+
this._shouldDeferPostLoadLineRestore(lodBand);
|
|
7358
7358
|
const interactionHot =
|
|
7359
7359
|
this._module?.isDraggingNode === true ||
|
|
7360
7360
|
this._module?.isDraggingMultipleNodes === true ||
|
|
@@ -7363,7 +7363,7 @@
|
|
|
7363
7363
|
this.isDragging === true;
|
|
7364
7364
|
this._suspendLinesForInteraction = interactionHot;
|
|
7365
7365
|
// ▼▼▼ [Fix] Respect manual loading state override ▼▼▼
|
|
7366
|
-
const shouldDisable = disableByCount || this.isLoading ||
|
|
7366
|
+
const shouldDisable = disableByCount || this.isLoading || this._suspendLinesForInteraction === true;
|
|
7367
7367
|
// ▲▲▲ [Fix] ▲▲▲
|
|
7368
7368
|
|
|
7369
7369
|
if (this._disableLineRender !== shouldDisable) {
|
|
@@ -7951,8 +7951,8 @@
|
|
|
7951
7951
|
this._deferLineRestoreUntil = shouldDeferLineRestore
|
|
7952
7952
|
? (performance.now() + POST_LOAD_LINE_RESTORE_DELAY_MS)
|
|
7953
7953
|
: 0;
|
|
7954
|
-
this._lineDetailsPatchPending =
|
|
7955
|
-
this._disableLineRender =
|
|
7954
|
+
this._lineDetailsPatchPending = shouldDeferLineRestore;
|
|
7955
|
+
this._disableLineRender = false;
|
|
7956
7956
|
this.lineDataDirty = true;
|
|
7957
7957
|
this._residentRebuildPending = !hasResidentInstances;
|
|
7958
7958
|
this._residentRebuildDeferredUntil = hasResidentInstances
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-k4lwKbjJ9g84j895BOdrv32i+eUyBH6giaTuE3n/Wks=",
|
|
5
5
|
"fingerprinting": {
|
|
6
6
|
"Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
|
|
7
7
|
"Markdig.d1j7v41cl1.dll": "Markdig.dll",
|
|
@@ -122,16 +122,16 @@
|
|
|
122
122
|
"System.brmz7yk5qh.dll": "System.dll",
|
|
123
123
|
"netstandard.b50t77veor.dll": "netstandard.dll",
|
|
124
124
|
"System.Private.CoreLib.g6ztz7cmo2.dll": "System.Private.CoreLib.dll",
|
|
125
|
-
"MindExecution.Core.
|
|
126
|
-
"MindExecution.Kernel.
|
|
127
|
-
"MindExecution.Plugins.Admin.
|
|
128
|
-
"MindExecution.Plugins.Business.
|
|
129
|
-
"MindExecution.Plugins.Concept.
|
|
130
|
-
"MindExecution.Plugins.Directory.
|
|
131
|
-
"MindExecution.Plugins.PlanMaster.
|
|
132
|
-
"MindExecution.Plugins.YouTube.
|
|
133
|
-
"MindExecution.Shared.
|
|
134
|
-
"MindExecution.Web.
|
|
125
|
+
"MindExecution.Core.9h7x2mjn0w.dll": "MindExecution.Core.dll",
|
|
126
|
+
"MindExecution.Kernel.8te3ay3qs6.dll": "MindExecution.Kernel.dll",
|
|
127
|
+
"MindExecution.Plugins.Admin.imt43kggvu.dll": "MindExecution.Plugins.Admin.dll",
|
|
128
|
+
"MindExecution.Plugins.Business.26yozgyvan.dll": "MindExecution.Plugins.Business.dll",
|
|
129
|
+
"MindExecution.Plugins.Concept.k7fd1qvmfx.dll": "MindExecution.Plugins.Concept.dll",
|
|
130
|
+
"MindExecution.Plugins.Directory.88ng22x3y0.dll": "MindExecution.Plugins.Directory.dll",
|
|
131
|
+
"MindExecution.Plugins.PlanMaster.ll20yqlc09.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
132
|
+
"MindExecution.Plugins.YouTube.gqu5xngvav.dll": "MindExecution.Plugins.YouTube.dll",
|
|
133
|
+
"MindExecution.Shared.6ivt1fatt3.dll": "MindExecution.Shared.dll",
|
|
134
|
+
"MindExecution.Web.7tki7xqpt0.dll": "MindExecution.Web.dll",
|
|
135
135
|
"dotnet.native.566r55w3xu.js": "dotnet.native.js",
|
|
136
136
|
"dotnet.native.x6q5aixc38.wasm": "dotnet.native.wasm",
|
|
137
137
|
"dotnet.js": "dotnet.js",
|
|
@@ -276,18 +276,18 @@
|
|
|
276
276
|
"System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
|
|
277
277
|
"System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
|
|
278
278
|
"netstandard.b50t77veor.dll": "sha256-//jQGOXjb8ET8WtXgOJrAxLx6E7zDJ5RjRRutwkvmxo=",
|
|
279
|
-
"MindExecution.Core.
|
|
280
|
-
"MindExecution.Kernel.
|
|
281
|
-
"MindExecution.Plugins.Business.
|
|
282
|
-
"MindExecution.Plugins.Concept.
|
|
283
|
-
"MindExecution.Plugins.PlanMaster.
|
|
284
|
-
"MindExecution.Shared.
|
|
285
|
-
"MindExecution.Web.
|
|
279
|
+
"MindExecution.Core.9h7x2mjn0w.dll": "sha256-4xFFMH5EUob9RXyohd+joGOoBTaarjSHyzY5kx3PRew=",
|
|
280
|
+
"MindExecution.Kernel.8te3ay3qs6.dll": "sha256-RND/bkb6ILP8m7z9LRP827D9tNbpZLIKIcrd5uzm8/w=",
|
|
281
|
+
"MindExecution.Plugins.Business.26yozgyvan.dll": "sha256-BhpTZtrJq26NpvKtYqHfYLKf2pJ93U0/R7WiPZMSedc=",
|
|
282
|
+
"MindExecution.Plugins.Concept.k7fd1qvmfx.dll": "sha256-QEcnhJgU5OshztWG/haRRIbg3NnykUuI0vEYkx2d9rU=",
|
|
283
|
+
"MindExecution.Plugins.PlanMaster.ll20yqlc09.dll": "sha256-KWcHEcj5l+QAGZXfxf7DCnyH1ACHwBwSVCgRReQPvyc=",
|
|
284
|
+
"MindExecution.Shared.6ivt1fatt3.dll": "sha256-Qp5kQWJBgQ7XXBot/X/66cV19jqiEwUFLd9b20Oamgw=",
|
|
285
|
+
"MindExecution.Web.7tki7xqpt0.dll": "sha256-JVtnGWCckZKnsid5V7G/01xTp3mnhCwxl112V16RTCg="
|
|
286
286
|
},
|
|
287
287
|
"lazyAssembly": {
|
|
288
|
-
"MindExecution.Plugins.Admin.
|
|
289
|
-
"MindExecution.Plugins.Directory.
|
|
290
|
-
"MindExecution.Plugins.YouTube.
|
|
288
|
+
"MindExecution.Plugins.Admin.imt43kggvu.dll": "sha256-Bt7O2MFpDgzgB7CeUA4tB79feUGJiGvR7Zh4fUcGY+U=",
|
|
289
|
+
"MindExecution.Plugins.Directory.88ng22x3y0.dll": "sha256-mDOSQlu0aRlQ+9xQUmvcZAazdUkU4IFbPZ4yJjCegxs=",
|
|
290
|
+
"MindExecution.Plugins.YouTube.gqu5xngvav.dll": "sha256-KJg4t8mJDtKx8ElI66yv4H9Uw04BKb2g1d2RddYYhBk="
|
|
291
291
|
}
|
|
292
292
|
},
|
|
293
293
|
"cacheBootResources": true,
|
package/wwwroot/index.html
CHANGED
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '
|
|
582
|
+
const scriptVersion = '20260727-fixed-phase-grid-v950';
|
|
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": "ILA9KwLq",
|
|
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-lPc30WYtXer88DsvAY5tCILPz0xFdfM0l3P+Ccw4wS8=",
|
|
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-gyHNM8wV2/nOJXh4raQFoWqfMh5mgd7xomr7BRf+UbQ=",
|
|
114
114
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
|
-
"hash": "sha256-
|
|
121
|
+
"hash": "sha256-2s3onLoT9d7reE9vNyoHelc1PtXeHxfqYogeLE4QlT4=",
|
|
122
122
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
@@ -430,44 +430,44 @@
|
|
|
430
430
|
"url": "_framework/MimeMapping.og9ys58ylm.dll"
|
|
431
431
|
},
|
|
432
432
|
{
|
|
433
|
-
"hash": "sha256-
|
|
434
|
-
"url": "_framework/MindExecution.Core.
|
|
433
|
+
"hash": "sha256-4xFFMH5EUob9RXyohd+joGOoBTaarjSHyzY5kx3PRew=",
|
|
434
|
+
"url": "_framework/MindExecution.Core.9h7x2mjn0w.dll"
|
|
435
435
|
},
|
|
436
436
|
{
|
|
437
|
-
"hash": "sha256-
|
|
438
|
-
"url": "_framework/MindExecution.Kernel.
|
|
437
|
+
"hash": "sha256-RND/bkb6ILP8m7z9LRP827D9tNbpZLIKIcrd5uzm8/w=",
|
|
438
|
+
"url": "_framework/MindExecution.Kernel.8te3ay3qs6.dll"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
|
-
"hash": "sha256
|
|
442
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
441
|
+
"hash": "sha256-Bt7O2MFpDgzgB7CeUA4tB79feUGJiGvR7Zh4fUcGY+U=",
|
|
442
|
+
"url": "_framework/MindExecution.Plugins.Admin.imt43kggvu.dll"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
"hash": "sha256-
|
|
446
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
445
|
+
"hash": "sha256-BhpTZtrJq26NpvKtYqHfYLKf2pJ93U0/R7WiPZMSedc=",
|
|
446
|
+
"url": "_framework/MindExecution.Plugins.Business.26yozgyvan.dll"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
449
|
+
"hash": "sha256-QEcnhJgU5OshztWG/haRRIbg3NnykUuI0vEYkx2d9rU=",
|
|
450
|
+
"url": "_framework/MindExecution.Plugins.Concept.k7fd1qvmfx.dll"
|
|
451
451
|
},
|
|
452
452
|
{
|
|
453
|
-
"hash": "sha256-
|
|
454
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
453
|
+
"hash": "sha256-mDOSQlu0aRlQ+9xQUmvcZAazdUkU4IFbPZ4yJjCegxs=",
|
|
454
|
+
"url": "_framework/MindExecution.Plugins.Directory.88ng22x3y0.dll"
|
|
455
455
|
},
|
|
456
456
|
{
|
|
457
|
-
"hash": "sha256
|
|
458
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
457
|
+
"hash": "sha256-KWcHEcj5l+QAGZXfxf7DCnyH1ACHwBwSVCgRReQPvyc=",
|
|
458
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.ll20yqlc09.dll"
|
|
459
459
|
},
|
|
460
460
|
{
|
|
461
|
-
"hash": "sha256-
|
|
462
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
461
|
+
"hash": "sha256-KJg4t8mJDtKx8ElI66yv4H9Uw04BKb2g1d2RddYYhBk=",
|
|
462
|
+
"url": "_framework/MindExecution.Plugins.YouTube.gqu5xngvav.dll"
|
|
463
463
|
},
|
|
464
464
|
{
|
|
465
|
-
"hash": "sha256-
|
|
466
|
-
"url": "_framework/MindExecution.Shared.
|
|
465
|
+
"hash": "sha256-Qp5kQWJBgQ7XXBot/X/66cV19jqiEwUFLd9b20Oamgw=",
|
|
466
|
+
"url": "_framework/MindExecution.Shared.6ivt1fatt3.dll"
|
|
467
467
|
},
|
|
468
468
|
{
|
|
469
|
-
"hash": "sha256-
|
|
470
|
-
"url": "_framework/MindExecution.Web.
|
|
469
|
+
"hash": "sha256-JVtnGWCckZKnsid5V7G/01xTp3mnhCwxl112V16RTCg=",
|
|
470
|
+
"url": "_framework/MindExecution.Web.7tki7xqpt0.dll"
|
|
471
471
|
},
|
|
472
472
|
{
|
|
473
473
|
"hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
|
|
@@ -786,7 +786,7 @@
|
|
|
786
786
|
"url": "_framework/Websocket.Client.vapounvmnl.dll"
|
|
787
787
|
},
|
|
788
788
|
{
|
|
789
|
-
"hash": "sha256-
|
|
789
|
+
"hash": "sha256-tnP0tykhBy53WYU4kCLMGRKT3Ta4jiR9a3SemKUepoA=",
|
|
790
790
|
"url": "_framework/blazor.boot.json"
|
|
791
791
|
},
|
|
792
792
|
{
|
|
@@ -846,7 +846,7 @@
|
|
|
846
846
|
"url": "icon-512.png"
|
|
847
847
|
},
|
|
848
848
|
{
|
|
849
|
-
"hash": "sha256-
|
|
849
|
+
"hash": "sha256-c2AIozfD07OWnpUIWdjEbUqRQ1OhNnipQpYAVd7zwC0=",
|
|
850
850
|
"url": "index.html"
|
|
851
851
|
},
|
|
852
852
|
{
|
|
Binary file
|
|
Binary file
|