@mindexec/cli 0.2.255 → 0.2.257
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 +154 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +16 -5
- 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-ua-zoom-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260620-ua-wheel-zoom-direct-settle-v704';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -3886,6 +3886,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3886
3886
|
this._animationIdleCadenceFrame = false;
|
|
3887
3887
|
this._lastAnimationLoopDelayMs = 0;
|
|
3888
3888
|
this._lastAnimationWakeReason = '';
|
|
3889
|
+
this._wheelZoomDirectSettleTimer = null;
|
|
3889
3890
|
// ▲▲▲ [Optimization] ▲▲▲
|
|
3890
3891
|
|
|
3891
3892
|
// ▼▼▼ [State] Loading flag (hide nodes during board load) ▼▼▼
|
|
@@ -4481,6 +4482,36 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4481
4482
|
}
|
|
4482
4483
|
}
|
|
4483
4484
|
|
|
4485
|
+
requestWheelZoomDirectSettle(delayMs = CAMERA_ZOOM_END_DELAY_MS + 18) {
|
|
4486
|
+
const safeDelayMs = Math.max(
|
|
4487
|
+
16,
|
|
4488
|
+
Math.floor(Number(delayMs) || (CAMERA_ZOOM_END_DELAY_MS + 18))
|
|
4489
|
+
);
|
|
4490
|
+
this.clearWheelZoomDirectSettle();
|
|
4491
|
+
this._wheelZoomDirectSettleTimer = setTimeout(() => {
|
|
4492
|
+
this._wheelZoomDirectSettleTimer = null;
|
|
4493
|
+
if (this.isZooming !== true) {
|
|
4494
|
+
return;
|
|
4495
|
+
}
|
|
4496
|
+
if (this._animationLoopRunning === true) {
|
|
4497
|
+
this.requestAnimationWake('wheel-zoom-direct-finalize');
|
|
4498
|
+
} else {
|
|
4499
|
+
this.animate();
|
|
4500
|
+
}
|
|
4501
|
+
}, safeDelayMs);
|
|
4502
|
+
return true;
|
|
4503
|
+
}
|
|
4504
|
+
|
|
4505
|
+
clearWheelZoomDirectSettle() {
|
|
4506
|
+
if (!this._wheelZoomDirectSettleTimer) {
|
|
4507
|
+
return false;
|
|
4508
|
+
}
|
|
4509
|
+
|
|
4510
|
+
clearTimeout(this._wheelZoomDirectSettleTimer);
|
|
4511
|
+
this._wheelZoomDirectSettleTimer = null;
|
|
4512
|
+
return true;
|
|
4513
|
+
}
|
|
4514
|
+
|
|
4484
4515
|
getCurrentBoardId() {
|
|
4485
4516
|
return window.mindMap?.activeBoardId || _currentBoardId || null;
|
|
4486
4517
|
}
|
|
@@ -5212,6 +5243,127 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5212
5243
|
return true;
|
|
5213
5244
|
}
|
|
5214
5245
|
|
|
5246
|
+
presentWheelZoomCameraFrame(clientX = null, clientY = null, options = {}) {
|
|
5247
|
+
if (CAMERA_MOTION_VISUAL_ONLY_FAST_PATH_ENABLED !== true ||
|
|
5248
|
+
this.isLoading === true ||
|
|
5249
|
+
this.isSelecting === true ||
|
|
5250
|
+
this.isDraggingNode === true ||
|
|
5251
|
+
this.isDraggingMultipleNodes === true ||
|
|
5252
|
+
this.isResizing === true ||
|
|
5253
|
+
this.isWindowResizing === true ||
|
|
5254
|
+
!this.camera) {
|
|
5255
|
+
return false;
|
|
5256
|
+
}
|
|
5257
|
+
|
|
5258
|
+
const renderDebugFlags = this.renderDebugFlags || getRenderDebugFlagsSnapshot();
|
|
5259
|
+
const canRenderCss3d = !!(
|
|
5260
|
+
renderDebugFlags.enableCss3d !== false &&
|
|
5261
|
+
this.cssRenderer &&
|
|
5262
|
+
typeof this.cssRenderer.renderCamera === 'function'
|
|
5263
|
+
);
|
|
5264
|
+
const canRenderWebgl = !!(
|
|
5265
|
+
renderDebugFlags.enableWebglRender !== false &&
|
|
5266
|
+
this.renderer &&
|
|
5267
|
+
this.scene
|
|
5268
|
+
);
|
|
5269
|
+
if (canRenderCss3d !== true && canRenderWebgl !== true) {
|
|
5270
|
+
return false;
|
|
5271
|
+
}
|
|
5272
|
+
|
|
5273
|
+
const currentX = Number(this.camera.position?.x || 0);
|
|
5274
|
+
const currentY = Number(this.camera.position?.y || 0);
|
|
5275
|
+
const currentZ = Number(this.camera.position?.z || 1);
|
|
5276
|
+
const targetX = Number.isFinite(Number(this.targetX)) ? Number(this.targetX) : currentX;
|
|
5277
|
+
const targetY = Number.isFinite(Number(this.targetY)) ? Number(this.targetY) : currentY;
|
|
5278
|
+
const targetZ = Number.isFinite(Number(this.targetZ)) ? Math.max(1, Number(this.targetZ)) : Math.max(1, currentZ);
|
|
5279
|
+
const deltaSq =
|
|
5280
|
+
((targetX - currentX) * (targetX - currentX)) +
|
|
5281
|
+
((targetY - currentY) * (targetY - currentY)) +
|
|
5282
|
+
((targetZ - currentZ) * (targetZ - currentZ));
|
|
5283
|
+
|
|
5284
|
+
this.camera.position.set(targetX, targetY, targetZ);
|
|
5285
|
+
this.camera.updateMatrixWorld(true);
|
|
5286
|
+
this._viewStatePersistAfterMotion = true;
|
|
5287
|
+
this._viewSyncMotionActive = true;
|
|
5288
|
+
this._cameraMovingThisFrame = deltaSq > 0.0001;
|
|
5289
|
+
this._lastVisibilityCullingSkipReason = 'ua-wheel-zoom-direct';
|
|
5290
|
+
this._fullResMotionFrozen = this.lodRenderer?.isInLODMode === true ? false : true;
|
|
5291
|
+
this._wasViewStateMotionFrozenLastFrame = this._fullResMotionFrozen === true;
|
|
5292
|
+
this._wasLodMotionFrozenLastFrame = this.lodRenderer?.isInLODMode === true;
|
|
5293
|
+
if (this.lodRenderer?.isInLODMode !== true) {
|
|
5294
|
+
this._fullResVisibilityReconcilePending = true;
|
|
5295
|
+
}
|
|
5296
|
+
this._preserveVisibleSetThisFrame = true;
|
|
5297
|
+
this._passiveOverlayResumeAt = Math.max(
|
|
5298
|
+
Number(this._passiveOverlayResumeAt || 0),
|
|
5299
|
+
(typeof performance !== 'undefined' && typeof performance.now === 'function' ? performance.now() : Date.now()) + PASSIVE_OVERLAY_IDLE_DELAY_MS
|
|
5300
|
+
);
|
|
5301
|
+
if (this._overlayDirty === true ||
|
|
5302
|
+
String(this._textOverlayV2State?.selectionNodeId || '').trim() ||
|
|
5303
|
+
String(this._selectableTextOverlayNodeId || '').trim()) {
|
|
5304
|
+
this._deferPassiveOverlayRefresh = true;
|
|
5305
|
+
}
|
|
5306
|
+
|
|
5307
|
+
if (Number.isFinite(Number(clientX)) && Number.isFinite(Number(clientY))) {
|
|
5308
|
+
this.setLocalSnapGridClientPoint?.(Number(clientX), Number(clientY));
|
|
5309
|
+
}
|
|
5310
|
+
|
|
5311
|
+
recordCameraMotionFastPathStatus(this, 'hit', 'ua-wheel-zoom-direct', {
|
|
5312
|
+
coalescedWheelEvents: Number(options?.coalescedWheelEvents || 0)
|
|
5313
|
+
});
|
|
5314
|
+
|
|
5315
|
+
updateCursorDomElement(this);
|
|
5316
|
+
|
|
5317
|
+
let usedWebglCanvasCameraTransform = false;
|
|
5318
|
+
if (canRenderWebgl === true) {
|
|
5319
|
+
const shouldFreezeWebglCanvasForZoom =
|
|
5320
|
+
shouldFreezeWebglSurfaceForZoom(this) === true;
|
|
5321
|
+
const canReuseWebglCanvas = !!(
|
|
5322
|
+
shouldFreezeWebglCanvasForZoom !== true &&
|
|
5323
|
+
canUseWebglCanvasTransformForCameraMotion(this) === true &&
|
|
5324
|
+
this._lastWebglRenderedCameraState &&
|
|
5325
|
+
this.renderer?.domElement
|
|
5326
|
+
);
|
|
5327
|
+
if (canReuseWebglCanvas === true) {
|
|
5328
|
+
deferContinuousThemeForCameraMotion(this);
|
|
5329
|
+
usedWebglCanvasCameraTransform = this._applyWebglCanvasCameraTransform?.() === true;
|
|
5330
|
+
this._webglCameraMotionDeferred = true;
|
|
5331
|
+
this._lastWebglRenderInfo = {
|
|
5332
|
+
calls: 0,
|
|
5333
|
+
triangles: 0,
|
|
5334
|
+
points: 0,
|
|
5335
|
+
lines: 0,
|
|
5336
|
+
skipped: true,
|
|
5337
|
+
webglCanvasCameraTransform: usedWebglCanvasCameraTransform === true,
|
|
5338
|
+
uaWheelZoomDirect: true
|
|
5339
|
+
};
|
|
5340
|
+
} else if (shouldFreezeWebglCanvasForZoom === true) {
|
|
5341
|
+
markWebglSurfaceFrozenForZoom(this, 'uaWheelZoomDirect');
|
|
5342
|
+
} else {
|
|
5343
|
+
this._clearWebglCanvasCameraTransform?.();
|
|
5344
|
+
this.renderer.render(this.scene, this.camera);
|
|
5345
|
+
this._recordWebglRenderedCameraState?.();
|
|
5346
|
+
const renderInfo = this.renderer?.info?.render || null;
|
|
5347
|
+
this._lastWebglRenderInfo = renderInfo ? {
|
|
5348
|
+
calls: Number(renderInfo.calls || 0),
|
|
5349
|
+
triangles: Number(renderInfo.triangles || 0),
|
|
5350
|
+
points: Number(renderInfo.points || 0),
|
|
5351
|
+
lines: Number(renderInfo.lines || 0),
|
|
5352
|
+
uaWheelZoomDirect: true,
|
|
5353
|
+
webglCanvasCameraBootstrap: true
|
|
5354
|
+
} : null;
|
|
5355
|
+
}
|
|
5356
|
+
}
|
|
5357
|
+
|
|
5358
|
+
this._syncMotionGridLayerForCameraNavigation?.(usedWebglCanvasCameraTransform);
|
|
5359
|
+
this._syncLocalSnapGridPositionOnly?.(true);
|
|
5360
|
+
if (canRenderCss3d === true) {
|
|
5361
|
+
renderCss3dCameraForCameraNavigation(this, 'ua-wheel-zoom-direct');
|
|
5362
|
+
}
|
|
5363
|
+
syncBusinessAutomationEdgesForCameraNavigation(this);
|
|
5364
|
+
return true;
|
|
5365
|
+
}
|
|
5366
|
+
|
|
5215
5367
|
refreshAgentConsoleVisibilityTracking(force = false) {
|
|
5216
5368
|
if (!force && this._agentConsoleVisibilityTrackingDirty !== true) {
|
|
5217
5369
|
return;
|
|
@@ -8855,6 +9007,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
8855
9007
|
clearTimeout(this._motionGridHideTimer);
|
|
8856
9008
|
this._motionGridHideTimer = null;
|
|
8857
9009
|
}
|
|
9010
|
+
this.clearWheelZoomDirectSettle();
|
|
8858
9011
|
if (this._motionGridLayer) {
|
|
8859
9012
|
this._motionGridLayer.remove();
|
|
8860
9013
|
this._motionGridLayer = null;
|
|
@@ -6255,6 +6255,7 @@ window.MindMapInteractions = (function () {
|
|
|
6255
6255
|
return;
|
|
6256
6256
|
}
|
|
6257
6257
|
|
|
6258
|
+
module.clearWheelZoomDirectSettle?.();
|
|
6258
6259
|
module.isZooming = false;
|
|
6259
6260
|
clearZoomMotionChrome(module);
|
|
6260
6261
|
clearMotionWillChangeEnable(module, { disableIfIdle: true });
|
|
@@ -6454,12 +6455,22 @@ window.MindMapInteractions = (function () {
|
|
|
6454
6455
|
module.targetZ = newZ;
|
|
6455
6456
|
// Calculate target position based on mouse position and zoom ratio
|
|
6456
6457
|
const newX = worldMouseX - (worldMouseX - module.targetX) * zoomRatio;
|
|
6457
|
-
const newY = worldMouseY - (worldMouseY - module.targetY) * zoomRatio;
|
|
6458
|
-
module.targetX = newX;
|
|
6458
|
+
const newY = worldMouseY - (worldMouseY - module.targetY) * zoomRatio;
|
|
6459
|
+
module.targetX = newX;
|
|
6459
6460
|
module.targetY = newY;
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6461
|
+
const presentedDirectly = module.presentWheelZoomCameraFrame?.(clientX, clientY, {
|
|
6462
|
+
reason: 'wheel-zoom-direct',
|
|
6463
|
+
coalescedWheelEvents: Number(options.coalescedWheelEvents || 0)
|
|
6464
|
+
}) === true;
|
|
6465
|
+
const settleScheduled =
|
|
6466
|
+
presentedDirectly === true &&
|
|
6467
|
+
module.requestWheelZoomDirectSettle?.() === true;
|
|
6468
|
+
if (settleScheduled !== true) {
|
|
6469
|
+
const settleFrames = 2;
|
|
6470
|
+
module._forceUpdateFrames = Math.max(Number(module._forceUpdateFrames || 0), settleFrames);
|
|
6471
|
+
module._cameraNavigationForceFrames = Math.max(Number(module._cameraNavigationForceFrames || 0), settleFrames);
|
|
6472
|
+
wakeCameraNavigationAnimation(module, presentedDirectly === true ? 'wheel-zoom-direct-settle' : 'wheel-zoom-input');
|
|
6473
|
+
}
|
|
6463
6474
|
// ▲▲▲ [Changed] ▲▲▲
|
|
6464
6475
|
|
|
6465
6476
|
// ▼▼▼ [Perf] 줌 종료 감지 및 CSS3D 업데이트 타이머 ▼▼▼
|
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-ua-zoom-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-ua-zoom-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-ua-wheel-zoom-direct-settle-v704" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-ua-wheel-zoom-direct-settle-v704" />
|
|
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-ua-zoom-
|
|
582
|
+
const scriptVersion = '20260620-ua-wheel-zoom-direct-settle-v704';
|
|
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": "sp0zMNR0",
|
|
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-+tbg0oVHg45w3EqRroBtWvPm/O8xkG20ZhpQpNXUhPo=",
|
|
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-7s3ZFEQXCE1cX+sTQ033CroYRxtD5lQ5Y+FGG9NpjEU=",
|
|
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-M5iNp7FBVtopYOq0HzZUPgt+JDG+igkEAF8V6A3h2nY=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|