@mindexec/cli 0.2.232 → 0.2.234
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 +46 -13
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +4 -16
- package/wwwroot/index.html +3 -3
- 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 = '20260620-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260620-wheel-zoom-hotpath-v681';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -346,7 +346,10 @@
|
|
|
346
346
|
}
|
|
347
347
|
|
|
348
348
|
module._lastCursorDomPositionKey = positionKey;
|
|
349
|
-
|
|
349
|
+
if (module._lastCursorDomVisible !== visible) {
|
|
350
|
+
module._lastCursorDomVisible = visible;
|
|
351
|
+
element.style.display = visible ? 'block' : 'none';
|
|
352
|
+
}
|
|
350
353
|
if (visible) {
|
|
351
354
|
element.style.transform = `translate3d(${x.toFixed(2)}px, ${y.toFixed(2)}px, 0)`;
|
|
352
355
|
}
|
|
@@ -513,13 +516,26 @@
|
|
|
513
516
|
}
|
|
514
517
|
|
|
515
518
|
function syncBusinessAutomationEdgesForCameraNavigation(module, options = {}) {
|
|
516
|
-
|
|
519
|
+
const hasActiveEdges = module?._businessAutomationEdgeRenderActive === true;
|
|
520
|
+
if (hasActiveEdges !== true && options.allowDraftRender !== true) {
|
|
521
|
+
return false;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
if (!window.MindMapCss3DManager) {
|
|
517
525
|
return false;
|
|
518
526
|
}
|
|
519
527
|
|
|
520
528
|
const hasConnectionDraft =
|
|
529
|
+
options.allowDraftRender === true &&
|
|
521
530
|
window.MindMapCss3DManager.hasBusinessAutomationConnectionDraft?.() === true;
|
|
522
|
-
|
|
531
|
+
if (hasActiveEdges !== true && hasConnectionDraft !== true) {
|
|
532
|
+
return false;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
if (hasActiveEdges === true && !hasBusinessAutomationEdgeLayer(module)) {
|
|
536
|
+
return false;
|
|
537
|
+
}
|
|
538
|
+
|
|
523
539
|
const canTransformExistingEdges = !!(
|
|
524
540
|
hasActiveEdges === true &&
|
|
525
541
|
hasConnectionDraft !== true &&
|
|
@@ -829,7 +845,10 @@
|
|
|
829
845
|
if (cachedWidth > 0 && cachedHeight > 0) {
|
|
830
846
|
return {
|
|
831
847
|
width: cachedWidth,
|
|
832
|
-
height: cachedHeight
|
|
848
|
+
height: cachedHeight,
|
|
849
|
+
left: Number(module?._lastViewportLeft || 0),
|
|
850
|
+
top: Number(module?._lastViewportTop || 0),
|
|
851
|
+
dpr: Math.max(1, Number(module?._lastViewportDpr || window.devicePixelRatio || 1))
|
|
833
852
|
};
|
|
834
853
|
}
|
|
835
854
|
|
|
@@ -838,13 +857,19 @@
|
|
|
838
857
|
if (cachedContainerWidth > 0 && cachedContainerHeight > 0) {
|
|
839
858
|
return {
|
|
840
859
|
width: cachedContainerWidth,
|
|
841
|
-
height: cachedContainerHeight
|
|
860
|
+
height: cachedContainerHeight,
|
|
861
|
+
left: Number(module?._lastViewportLeft || 0),
|
|
862
|
+
top: Number(module?._lastViewportTop || 0),
|
|
863
|
+
dpr: Math.max(1, Number(module?._lastViewportDpr || window.devicePixelRatio || 1))
|
|
842
864
|
};
|
|
843
865
|
}
|
|
844
866
|
|
|
845
867
|
return {
|
|
846
868
|
width: Math.max(1, Number(module?.container?.clientWidth || 0)),
|
|
847
|
-
height: Math.max(1, Number(module?.container?.clientHeight || 0))
|
|
869
|
+
height: Math.max(1, Number(module?.container?.clientHeight || 0)),
|
|
870
|
+
left: 0,
|
|
871
|
+
top: 0,
|
|
872
|
+
dpr: Math.max(1, Number(window.devicePixelRatio || 1))
|
|
848
873
|
};
|
|
849
874
|
}
|
|
850
875
|
|
|
@@ -3520,7 +3545,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3520
3545
|
|
|
3521
3546
|
// ▼▼▼ [Perf] Flag to track zoom state for CSS3D optimization ▼▼▼
|
|
3522
3547
|
this.isZooming = false;
|
|
3523
|
-
this._zoomEndTimer = null;
|
|
3524
3548
|
// ▲▲▲ [Perf] ▲▲▲
|
|
3525
3549
|
|
|
3526
3550
|
// ▼▼▼ [Core addition] Multi-selection and spatial grid initialization ▼▼▼
|
|
@@ -3606,6 +3630,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3606
3630
|
this._localSnapGridVisible = false;
|
|
3607
3631
|
this._lastLocalSnapGridKey = '';
|
|
3608
3632
|
this._lastLocalSnapGridTransformKey = '';
|
|
3633
|
+
this._lastLocalSnapGridOpacity = '';
|
|
3609
3634
|
this._lastSnapGridClientX = null;
|
|
3610
3635
|
this._lastSnapGridClientY = null;
|
|
3611
3636
|
this._animationIdleTimerId = null;
|
|
@@ -3725,24 +3750,28 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3725
3750
|
this._localSnapGridLayer = layer;
|
|
3726
3751
|
this._lastLocalSnapGridKey = '';
|
|
3727
3752
|
this._lastLocalSnapGridTransformKey = '';
|
|
3753
|
+
this._lastLocalSnapGridOpacity = '';
|
|
3728
3754
|
return layer;
|
|
3729
3755
|
}
|
|
3730
3756
|
|
|
3731
|
-
_setLocalSnapGridVisible(visible) {
|
|
3757
|
+
_setLocalSnapGridVisible(visible, targetOpacity = null) {
|
|
3732
3758
|
const layer = this._localSnapGridLayer;
|
|
3733
3759
|
if (!layer) {
|
|
3734
3760
|
return;
|
|
3735
3761
|
}
|
|
3736
3762
|
|
|
3737
3763
|
if (visible === true) {
|
|
3764
|
+
const opacityValue = targetOpacity == null
|
|
3765
|
+
? this._lastLocalSnapGridOpacity
|
|
3766
|
+
: String(targetOpacity);
|
|
3738
3767
|
if (this._localSnapGridVisible !== true) {
|
|
3739
3768
|
this._localSnapGridVisible = true;
|
|
3740
3769
|
if (layer.style.display !== 'block') {
|
|
3741
3770
|
layer.style.display = 'block';
|
|
3742
3771
|
}
|
|
3743
3772
|
}
|
|
3744
|
-
if (layer.style.opacity !==
|
|
3745
|
-
layer.style.opacity =
|
|
3773
|
+
if (opacityValue && layer.style.opacity !== opacityValue) {
|
|
3774
|
+
layer.style.opacity = opacityValue;
|
|
3746
3775
|
}
|
|
3747
3776
|
return;
|
|
3748
3777
|
}
|
|
@@ -3827,6 +3856,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3827
3856
|
|
|
3828
3857
|
if (localGridKey !== this._lastLocalSnapGridKey) {
|
|
3829
3858
|
this._lastLocalSnapGridKey = localGridKey;
|
|
3859
|
+
const opacityValue = opacity.toFixed(3);
|
|
3860
|
+
this._lastLocalSnapGridOpacity = opacityValue;
|
|
3830
3861
|
if (styleKind === 'dot') {
|
|
3831
3862
|
layer.style.backgroundImage = [
|
|
3832
3863
|
'radial-gradient(circle at 0 0, rgba(68, 78, 94, 0.34) 1px, transparent 1.55px)',
|
|
@@ -3846,7 +3877,9 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3846
3877
|
layer.style.backgroundPosition = styleKind === 'dot'
|
|
3847
3878
|
? '0 0, 0 0'
|
|
3848
3879
|
: '0 0, 0 0, 0 0, 0 0';
|
|
3849
|
-
layer.style.opacity
|
|
3880
|
+
if (layer.style.opacity !== opacityValue) {
|
|
3881
|
+
layer.style.opacity = opacityValue;
|
|
3882
|
+
}
|
|
3850
3883
|
}
|
|
3851
3884
|
|
|
3852
3885
|
const transformKey = `${Math.round(layerLeft * 2)}|${Math.round(layerTop * 2)}`;
|
|
@@ -3855,7 +3888,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3855
3888
|
layer.style.transform = `translate3d(${layerLeft.toFixed(2)}px, ${layerTop.toFixed(2)}px, 0)`;
|
|
3856
3889
|
}
|
|
3857
3890
|
|
|
3858
|
-
this._setLocalSnapGridVisible(true);
|
|
3891
|
+
this._setLocalSnapGridVisible(true, this._lastLocalSnapGridOpacity || opacity.toFixed(3));
|
|
3859
3892
|
return true;
|
|
3860
3893
|
}
|
|
3861
3894
|
|
|
@@ -6200,10 +6200,6 @@ window.MindMapInteractions = (function () {
|
|
|
6200
6200
|
module.isZooming = false;
|
|
6201
6201
|
clearZoomMotionChrome(module);
|
|
6202
6202
|
clearMotionWillChangeEnable(module, { disableIfIdle: true });
|
|
6203
|
-
if (module._zoomEndTimer) {
|
|
6204
|
-
clearTimeout(module._zoomEndTimer);
|
|
6205
|
-
module._zoomEndTimer = null;
|
|
6206
|
-
}
|
|
6207
6203
|
}
|
|
6208
6204
|
|
|
6209
6205
|
function applyTrackpadPanDelta(module, deltaX, deltaY) {
|
|
@@ -6348,7 +6344,6 @@ window.MindMapInteractions = (function () {
|
|
|
6348
6344
|
module._zoomInputTime = performance.now();
|
|
6349
6345
|
// ▲▲▲ [Fix] ▲▲▲
|
|
6350
6346
|
// Reset zoom fallback flag on new input
|
|
6351
|
-
module._zoomFallbackExpired = false;
|
|
6352
6347
|
// ▲▲▲ [Perf] ▲▲▲
|
|
6353
6348
|
|
|
6354
6349
|
const viewportMetrics = getCachedViewportMetrics(module);
|
|
@@ -6400,15 +6395,6 @@ window.MindMapInteractions = (function () {
|
|
|
6400
6395
|
|
|
6401
6396
|
// ▼▼▼ [Perf] 줌 종료 감지 및 CSS3D 업데이트 타이머 ▼▼▼
|
|
6402
6397
|
// 기존 타이머 취소 (연속 스크롤 감지)
|
|
6403
|
-
if (module._zoomEndTimer) {
|
|
6404
|
-
clearTimeout(module._zoomEndTimer);
|
|
6405
|
-
}
|
|
6406
|
-
|
|
6407
|
-
// Fallback timer - main detection is in animate() loop when camera stops
|
|
6408
|
-
module._zoomEndTimer = setTimeout(() => {
|
|
6409
|
-
if (!module.isZooming) return; // Already handled by animate() loop
|
|
6410
|
-
module._zoomFallbackExpired = true;
|
|
6411
|
-
}, 150);
|
|
6412
6398
|
// ▲▲▲ [Perf] ▲▲▲
|
|
6413
6399
|
|
|
6414
6400
|
if (WHEEL_PERF_DEBUG) {
|
|
@@ -6703,13 +6689,15 @@ window.MindMapInteractions = (function () {
|
|
|
6703
6689
|
return;
|
|
6704
6690
|
}
|
|
6705
6691
|
|
|
6706
|
-
notifyMindCanvasSurfaceInteraction('wheel');
|
|
6707
|
-
|
|
6708
6692
|
const wheelNow = typeof performance !== 'undefined' && typeof performance.now === 'function'
|
|
6709
6693
|
? performance.now()
|
|
6710
6694
|
: Date.now();
|
|
6711
6695
|
module._lastCanvasWheelAt = wheelNow;
|
|
6712
6696
|
window.__mindMapLastCanvasWheelAt = wheelNow;
|
|
6697
|
+
if ((wheelNow - Number(module._lastWheelSurfaceInteractionNotifyAt || 0)) >= 650) {
|
|
6698
|
+
module._lastWheelSurfaceInteractionNotifyAt = wheelNow;
|
|
6699
|
+
notifyMindCanvasSurfaceInteraction('wheel');
|
|
6700
|
+
}
|
|
6713
6701
|
|
|
6714
6702
|
if (WHEEL_DEBUG) {
|
|
6715
6703
|
if (!module._wheelDebug) {
|
package/wwwroot/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<title>MindExec | Business Execution OS for solo builders</title>
|
|
8
8
|
<meta name="description" content="MindExec is an AI business execution OS for solo builders who want to turn notes, research, assets, and repeatable execution Skills into revenue-producing work." />
|
|
9
9
|
<base href="/" />
|
|
10
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-wheel-zoom-hotpath-v681" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-wheel-zoom-hotpath-v681" />
|
|
12
12
|
<!-- ?占썩뼹??Font Awesome (local) ?占썩뼹??-->
|
|
13
13
|
<link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
|
|
14
14
|
<!-- ?占썩뼯??-->
|
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '20260620-
|
|
582
|
+
const scriptVersion = '20260620-wheel-zoom-hotpath-v681';
|
|
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": "FOi7IcPO",
|
|
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-HAcIKHR8GNq+hp/a1I7r69dToZn+z+Vu6zQ3zo+Sin8=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"hash": "sha256-
|
|
109
|
+
"hash": "sha256-glU8Qi29dTeN+P17xuF+Nno5MLoR88v44leP9LrLAgw=",
|
|
110
110
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-nKh30c9Ax0h/31FBsTI98E174o6u1tGmWFlutqKFPeU=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|