@mindexec/cli 0.2.219 → 0.2.221
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/scripts/remote-fleet-render-smoke.mjs +11 -0
- package/wwwroot/_content/MindExecution.Shared/js/background-themes.js +28 -113
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +1952 -152
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +375 -98
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +108 -49
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +85 -3
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +83 -14
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js +5 -0
- package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +2 -2
- package/wwwroot/_framework/{MindExecution.Core.c9wgwsw9z6.dll → MindExecution.Core.xsad4wu36e.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.29mytzdaun.dll → MindExecution.Plugins.Admin.m5d94977um.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.g8txk1zzic.dll → MindExecution.Plugins.Business.ntqdn1hta3.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.u9kzsgf64o.dll → MindExecution.Plugins.Concept.mqiyx4db4r.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.kibqg6rvqh.dll → MindExecution.Plugins.PlanMaster.fnortumnuu.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.089r64n2hv.dll → MindExecution.Plugins.YouTube.86osu6wpgh.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.tbutfszqeu.dll → MindExecution.Shared.wg2otcw4bv.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.7axuoygrwi.dll → MindExecution.Web.gfio3kfxrd.dll} +0 -0
- package/wwwroot/_framework/blazor.boot.json +17 -17
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +27 -27
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -175,13 +175,24 @@ class MiniElement {
|
|
|
175
175
|
|
|
176
176
|
dispatchEvent(event) {
|
|
177
177
|
const payload = typeof event === 'string' ? { type: event } : { ...(event || {}) };
|
|
178
|
+
let immediateStopped = false;
|
|
179
|
+
const originalStopImmediatePropagation = typeof payload.stopImmediatePropagation === 'function'
|
|
180
|
+
? payload.stopImmediatePropagation
|
|
181
|
+
: null;
|
|
178
182
|
payload.type = payload.type || 'event';
|
|
179
183
|
payload.target = payload.target || this;
|
|
180
184
|
payload.currentTarget = this;
|
|
181
185
|
payload.preventDefault = payload.preventDefault || (() => {});
|
|
182
186
|
payload.stopPropagation = payload.stopPropagation || (() => {});
|
|
187
|
+
payload.stopImmediatePropagation = () => {
|
|
188
|
+
immediateStopped = true;
|
|
189
|
+
originalStopImmediatePropagation?.();
|
|
190
|
+
};
|
|
183
191
|
for (const listener of this._listeners.get(payload.type) || []) {
|
|
184
192
|
listener(payload);
|
|
193
|
+
if (immediateStopped) {
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
185
196
|
}
|
|
186
197
|
return true;
|
|
187
198
|
}
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
return false;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
themeObject.animate(camera);
|
|
148
|
+
themeObject.animate(camera, options);
|
|
149
149
|
|
|
150
150
|
const mode = getThemeAnimationMode(themeName, themeObject);
|
|
151
151
|
if (mode === THEME_ANIMATION_MODE.Camera || mode === THEME_ANIMATION_MODE.None) {
|
|
@@ -315,118 +315,27 @@
|
|
|
315
315
|
dispose: (themeObject) => { disposeThemeObject(themeObject); }
|
|
316
316
|
},
|
|
317
317
|
|
|
318
|
-
// Theme 2: SpatialGrid2D (
|
|
319
|
-
'SpatialGrid2D': {
|
|
320
|
-
create: (scene) => {
|
|
318
|
+
// Theme 2: SpatialGrid2D (lightweight adaptive grid on the XY plane)
|
|
319
|
+
'SpatialGrid2D': {
|
|
320
|
+
create: (scene) => {
|
|
321
321
|
scene.background = new THREE.Color(THEME_SURFACE_BG);
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
// Check whether XY coordinates are multiples of markerStep
|
|
337
|
-
if (x % markerStep === 0 && y % markerStep === 0) {
|
|
338
|
-
markerVertices.push(x, y, z);
|
|
339
|
-
} else {
|
|
340
|
-
dotVertices.push(x, y, z);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
const themeGroup = new THREE.Group();
|
|
346
|
-
|
|
347
|
-
// 1. Dots
|
|
348
|
-
const dotGeom = new THREE.BufferGeometry();
|
|
349
|
-
dotGeom.setAttribute('position', new THREE.Float32BufferAttribute(dotVertices, 3));
|
|
350
|
-
const dotMaterial = new THREE.PointsMaterial({
|
|
351
|
-
color: 0xaaaaaa, // Dot color (slightly brighter)
|
|
352
|
-
size: dotSize,
|
|
353
|
-
sizeAttenuation: true,
|
|
354
|
-
transparent: true, // Needed for opacity control
|
|
355
|
-
opacity: 1.0,
|
|
356
|
-
depthWrite: false // ▼ [Fix] Prevent Z-fighting with nodes
|
|
357
|
-
});
|
|
358
|
-
const dotMesh = new THREE.Points(dotGeom, dotMaterial);
|
|
359
|
-
dotMesh.renderOrder = -1; // ▼ [Fix] Render before nodes to avoid Z-fighting
|
|
360
|
-
themeGroup.add(dotMesh);
|
|
361
|
-
|
|
362
|
-
// 2. '+' Markers
|
|
363
|
-
const markerGeom = new THREE.BufferGeometry();
|
|
364
|
-
markerGeom.setAttribute('position', new THREE.Float32BufferAttribute(markerVertices, 3));
|
|
365
|
-
const markerMaterial = new THREE.PointsMaterial({
|
|
366
|
-
map: createPlusTexture(),
|
|
367
|
-
size: markerSize,
|
|
368
|
-
sizeAttenuation: true,
|
|
369
|
-
transparent: true,
|
|
370
|
-
alphaTest: 0.1,
|
|
371
|
-
color: 0x888888, // Marker color (slightly darker than dots)
|
|
372
|
-
opacity: 1.0,
|
|
373
|
-
depthWrite: false // ▼ [Fix] Prevent Z-fighting with nodes
|
|
374
|
-
});
|
|
375
|
-
const markerMesh = new THREE.Points(markerGeom, markerMaterial);
|
|
376
|
-
markerMesh.renderOrder = -1; // ▼ [Fix] Render before nodes to avoid Z-fighting
|
|
377
|
-
themeGroup.add(markerMesh);
|
|
378
|
-
|
|
379
|
-
const tmp = new THREE.Vector3();
|
|
380
|
-
const snapSize = markerStep;
|
|
381
|
-
|
|
382
|
-
// ▼▼▼ [New] Distance-based opacity control (see XYGrid) ▼▼▼
|
|
383
|
-
themeGroup.animate = function (camera) {
|
|
384
|
-
if (!camera) return;
|
|
385
|
-
|
|
386
|
-
// Position snapping
|
|
387
|
-
tmp.copy(camera.position);
|
|
388
|
-
tmp.z = 0; // Same plane as nodes (no parallax)
|
|
389
|
-
tmp.x = Math.round(tmp.x / snapSize) * snapSize;
|
|
390
|
-
tmp.y = Math.round(tmp.y / snapSize) * snapSize;
|
|
391
|
-
themeGroup.position.copy(tmp);
|
|
392
|
-
|
|
393
|
-
// Distance-based opacity
|
|
394
|
-
const z = camera.position.z;
|
|
395
|
-
let opacity = 1.0;
|
|
396
|
-
|
|
397
|
-
if (z < 1600) {
|
|
398
|
-
// [~1600] Near: 100%
|
|
399
|
-
opacity = 1.0;
|
|
400
|
-
}
|
|
401
|
-
else if (z >= 1600 && z < 2400) {
|
|
402
|
-
// [1600~2400] Transition: start fading
|
|
403
|
-
const t = (z - 1600) / 800; // 0.0 ~ 1.0
|
|
404
|
-
opacity = 1.0 - (t * 0.5); // 1.0 -> 0.5
|
|
405
|
-
}
|
|
406
|
-
else if (z >= 2400 && z < 4000) {
|
|
407
|
-
// [2400~4000] Mid-range
|
|
408
|
-
opacity = 0.5;
|
|
409
|
-
}
|
|
410
|
-
else if (z >= 4000 && z < 6000) {
|
|
411
|
-
// [4000~6000] Far: fade out
|
|
412
|
-
const t = (z - 4000) / 2000; // 0.0 ~ 1.0
|
|
413
|
-
opacity = 0.5 - (t * 0.5); // 0.5 -> 0
|
|
414
|
-
}
|
|
415
|
-
else {
|
|
416
|
-
// [6000~] Very far: hidden
|
|
417
|
-
opacity = 0;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
// Apply opacity
|
|
421
|
-
dotMaterial.opacity = opacity;
|
|
422
|
-
markerMaterial.opacity = opacity;
|
|
423
|
-
};
|
|
424
|
-
// ▲▲▲ [New] ▲▲▲
|
|
425
|
-
|
|
426
|
-
return setThemeAnimationMode(themeGroup, THEME_ANIMATION_MODE.Camera);
|
|
322
|
+
const grid = createAdaptiveXYGridOverlay(new THREE.Color(THEME_GRID_COLOR_SOFT), {
|
|
323
|
+
fineDistance: 42000,
|
|
324
|
+
coarseDistance: 120000,
|
|
325
|
+
farDistance: 320000,
|
|
326
|
+
fineSmallOpacity: 0.36,
|
|
327
|
+
fineLargeOpacity: 0.24,
|
|
328
|
+
coarseSmallOpacity: 0.3,
|
|
329
|
+
coarseLargeOpacity: 0.2,
|
|
330
|
+
farSmallOpacity: 0.24,
|
|
331
|
+
farLargeOpacity: 0.14
|
|
332
|
+
});
|
|
333
|
+
grid.userData.themeAlias = 'SpatialGrid2D';
|
|
334
|
+
grid.userData.lightweightAdaptiveGrid = true;
|
|
335
|
+
return grid;
|
|
427
336
|
},
|
|
428
|
-
dispose: (themeObject) => { disposeThemeObject(themeObject); }
|
|
429
|
-
},
|
|
337
|
+
dispose: (themeObject) => { disposeThemeObject(themeObject); }
|
|
338
|
+
},
|
|
430
339
|
|
|
431
340
|
// Theme 3: GridPlane (basic 2D grid - uses InfiniteGridHelper)
|
|
432
341
|
'GridPlane': {
|
|
@@ -1082,13 +991,19 @@
|
|
|
1082
991
|
themeGroup.add(adaptiveGridOverlay);
|
|
1083
992
|
|
|
1084
993
|
// Animation: galaxy texture simulation and camera tracking for grid
|
|
1085
|
-
themeGroup.animate = (camera) => {
|
|
994
|
+
themeGroup.animate = (camera, options = {}) => {
|
|
1086
995
|
if (!camera) return;
|
|
1087
996
|
|
|
997
|
+
const isInteractiveMotionFrame = options.isInteractiveFrame === true ||
|
|
998
|
+
options.isCameraMoving === true ||
|
|
999
|
+
options.isPanning === true ||
|
|
1000
|
+
options.isZooming === true;
|
|
1001
|
+
const simulationStepCount = isInteractiveMotionFrame ? 1 : simulationStepsPerTick;
|
|
1002
|
+
|
|
1088
1003
|
if (simulationReady) {
|
|
1089
1004
|
const previousTarget = renderer.getRenderTarget ? renderer.getRenderTarget() : null;
|
|
1090
1005
|
try {
|
|
1091
|
-
for (let i = 0; i <
|
|
1006
|
+
for (let i = 0; i < simulationStepCount; i++) {
|
|
1092
1007
|
velocityMaterial.uniforms.u_positionTexture.value = currentPositionTarget.texture;
|
|
1093
1008
|
velocityMaterial.uniforms.u_velocityTexture.value = currentVelocityTarget.texture;
|
|
1094
1009
|
renderComputePass(velocityMaterial, nextVelocityTarget);
|