@mindexec/cli 0.2.221 → 0.2.222

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.221",
3
+ "version": "0.2.222",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -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 = '20260619-motion-hidden-work-v668';
8
+ const MINDMAP_CORE_BUILD_ID = '20260619-ua-motion-hidden-work-v669';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -436,13 +436,36 @@
436
436
  }
437
437
  }
438
438
 
439
- function isContinuousBackgroundTheme(module) {
439
+ function getThemeAnimationModeCached(module) {
440
440
  if (!module?.currentThemeObject || typeof window === 'undefined') {
441
- return false;
441
+ return 'none';
442
442
  }
443
443
 
444
- const mode = window.MindMapThemes?.getAnimationMode?.(module.currentThemeName, module.currentThemeObject);
445
- return mode === 'continuous';
444
+ const frameId = Number(module.frameCount || 0);
445
+ const themeName = String(module.currentThemeName || '');
446
+ const themeObject = module.currentThemeObject || null;
447
+ const cache = module._themeAnimationModeFrameCache || null;
448
+ if (cache &&
449
+ cache.frameId === frameId &&
450
+ cache.themeName === themeName &&
451
+ cache.themeObject === themeObject) {
452
+ return cache.mode || 'none';
453
+ }
454
+
455
+ const mode =
456
+ window.MindMapThemes?.getAnimationMode?.(themeName, themeObject) ||
457
+ 'none';
458
+ module._themeAnimationModeFrameCache = {
459
+ frameId,
460
+ themeName,
461
+ themeObject,
462
+ mode
463
+ };
464
+ return mode;
465
+ }
466
+
467
+ function isContinuousBackgroundTheme(module) {
468
+ return getThemeAnimationModeCached(module) === 'continuous';
446
469
  }
447
470
 
448
471
  function canUseWebglCanvasTransformForCameraMotion(module) {
@@ -3318,6 +3341,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3318
3341
  this._viewStatePersistNeedsFreshSnapshot = false;
3319
3342
  this._viewStatePersistDelayMs = 650;
3320
3343
  this._viewStatePersistScheduledAt = 0;
3344
+ this._viewStatePersistAfterMotion = false;
3321
3345
  this._postLoadVisualSyncToken = 0;
3322
3346
  this._overlayDirty = true;
3323
3347
  this._lastOverlayKey = '';
@@ -4529,8 +4553,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4529
4553
  _getThemeAnimationInterval(interactive = false, animationMode = null) {
4530
4554
  const mode = this.themePerformanceMode || 'work';
4531
4555
  const isGpuParticleTheme = this.currentThemeName === 'Space3D' || this.currentThemeName === 'SpiritFlow';
4532
- const themeAnimationMode = animationMode ||
4533
- window.MindMapThemes?.getAnimationMode?.(this.currentThemeName, this.currentThemeObject);
4556
+ const themeAnimationMode = animationMode || getThemeAnimationModeCached(this);
4534
4557
 
4535
4558
  if (themeAnimationMode === 'camera') {
4536
4559
  return interactive ? 2 : 30;
@@ -5405,7 +5428,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5405
5428
  const deltaMove = this.camera.position.distanceToSquared(this._tmpOldCamPos);
5406
5429
  const isCameraMoving = deltaMove > 0.0001;
5407
5430
  if (isCameraMoving) {
5408
- this.scheduleViewStatePersist();
5431
+ this._viewStatePersistAfterMotion = true;
5409
5432
  }
5410
5433
 
5411
5434
  // ▼▼▼ [Fix] Update selection box when camera moves ▼▼▼
@@ -5551,6 +5574,18 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5551
5574
  window.MindMapTextOverlayV2?.invalidateView?.(this);
5552
5575
  }
5553
5576
  }
5577
+
5578
+ if (this._viewStatePersistAfterMotion === true &&
5579
+ this.isZooming !== true &&
5580
+ this.isPanning !== true &&
5581
+ isCameraMoving !== true &&
5582
+ this.isDraggingNode !== true &&
5583
+ this.isDraggingMultipleNodes !== true &&
5584
+ this.isResizing !== true &&
5585
+ this.isWindowResizing !== true) {
5586
+ this._viewStatePersistAfterMotion = false;
5587
+ this.scheduleViewStatePersist();
5588
+ }
5554
5589
 
5555
5590
  // 3. Unified Visibility & LOD Pass (One Loop to Rule Them All)
5556
5591
  // ----------------------------------------------------------------
@@ -6315,9 +6350,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6315
6350
  this._scheduleAnimationLoop(loop, 0);
6316
6351
  return;
6317
6352
  }
6318
- const themeAnimationMode =
6319
- window.MindMapThemes?.getAnimationMode?.(this.currentThemeName, this.currentThemeObject) ||
6320
- 'none';
6353
+ const themeAnimationMode = getThemeAnimationModeCached(this);
6321
6354
  const isContinuousTheme = themeAnimationMode === 'continuous';
6322
6355
  const shouldPauseThemeForCameraNavigation =
6323
6356
  isContinuousTheme === true &&
@@ -8028,6 +8061,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
8028
8061
  this._viewStatePersistTimer = null;
8029
8062
  }
8030
8063
  this._viewStatePersistNeedsFreshSnapshot = false;
8064
+ this._viewStatePersistAfterMotion = false;
8031
8065
 
8032
8066
  MindMapInteractions.removeEventListeners(this);
8033
8067
  MindMapDnD.removeEventListeners(this);
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "3aMiQb+v",
2
+ "version": "NkvpJJ8/",
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-hJpRJ5O5QFjQ3bE0HHza1S8xmT9lc5hh1N15pIsdQiY=",
81
+ "hash": "sha256-IGDZ3MCmnbGYUOTQ+ZcCHKhoWl6A4Slr4e8fg9isZM8=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 3aMiQb+v */
1
+ /* Manifest version: NkvpJJ8/ */
2
2
  // Hosted deployments should prefer the network over stale offline caches.
3
3
  // This service worker immediately clears old Blazor offline caches and unregisters itself.
4
4