@mindexec/cli 0.2.218 → 0.2.220
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/css/mind-map-overrides.css +36 -6
- package/wwwroot/_content/MindExecution.Shared/js/background-themes.js +28 -113
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +2157 -104
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +399 -96
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +121 -49
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +77 -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.21gc0645uz.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.asckvekct8.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.tlbhl3vzry.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 +28 -28
- 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
|
}
|
|
@@ -209,7 +209,9 @@ body.mind-debug-video-tint-layout .css3d-resolution-wrapper.node-type-video .vid
|
|
|
209
209
|
/* ▲▲▲ [Fix] ▲▲▲ */
|
|
210
210
|
|
|
211
211
|
body.is-zooming .css3d-resolution-wrapper,
|
|
212
|
-
body.is-panning .css3d-resolution-wrapper
|
|
212
|
+
body.is-panning .css3d-resolution-wrapper,
|
|
213
|
+
#css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper,
|
|
214
|
+
#css3d-dom-wrapper.is-panning .css3d-resolution-wrapper {
|
|
213
215
|
-webkit-transition: none !important;
|
|
214
216
|
transition: none !important;
|
|
215
217
|
}
|
|
@@ -217,7 +219,11 @@ body.is-panning .css3d-resolution-wrapper {
|
|
|
217
219
|
body.is-zooming .css3d-resolution-wrapper.selected,
|
|
218
220
|
body.is-panning .css3d-resolution-wrapper.selected,
|
|
219
221
|
body.mindcanvas-is-moving .css3d-resolution-wrapper.selected,
|
|
220
|
-
body.mindcanvas-is-dense .css3d-resolution-wrapper.selected
|
|
222
|
+
body.mindcanvas-is-dense .css3d-resolution-wrapper.selected,
|
|
223
|
+
#css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper.selected,
|
|
224
|
+
#css3d-dom-wrapper.is-panning .css3d-resolution-wrapper.selected,
|
|
225
|
+
#css3d-dom-wrapper.mindcanvas-is-moving .css3d-resolution-wrapper.selected,
|
|
226
|
+
#css3d-dom-wrapper.mindcanvas-is-dense .css3d-resolution-wrapper.selected {
|
|
221
227
|
-webkit-filter: none !important;
|
|
222
228
|
filter: none !important;
|
|
223
229
|
}
|
|
@@ -238,7 +244,11 @@ html.mindcanvas-platform-apple body.mindcanvas-is-dense .css3d-resolution-wrappe
|
|
|
238
244
|
body.is-zooming .node-menu-wrapper,
|
|
239
245
|
body.is-panning .node-menu-wrapper,
|
|
240
246
|
body.is-zooming .map-node-memo__icon-popover,
|
|
241
|
-
body.is-panning .map-node-memo__icon-popover
|
|
247
|
+
body.is-panning .map-node-memo__icon-popover,
|
|
248
|
+
#css3d-dom-wrapper.is-zooming .node-menu-wrapper,
|
|
249
|
+
#css3d-dom-wrapper.is-panning .node-menu-wrapper,
|
|
250
|
+
#css3d-dom-wrapper.is-zooming .map-node-memo__icon-popover,
|
|
251
|
+
#css3d-dom-wrapper.is-panning .map-node-memo__icon-popover {
|
|
242
252
|
-webkit-backdrop-filter: none !important;
|
|
243
253
|
backdrop-filter: none !important;
|
|
244
254
|
-webkit-box-shadow: none !important;
|
|
@@ -1122,6 +1132,7 @@ body.is-panning .map-node-memo__icon-popover {
|
|
|
1122
1132
|
/* Hover raycast is already short-circuited in JS during pan, so keep CSS hover/focus
|
|
1123
1133
|
intact while middle-button panning. We still suppress hit-testing for zoom/drag. */
|
|
1124
1134
|
#css3d-dom-wrapper.is-dragging,
|
|
1135
|
+
#css3d-dom-wrapper.is-zooming,
|
|
1125
1136
|
body.is-zooming #css3d-dom-wrapper {
|
|
1126
1137
|
pointer-events: none !important;
|
|
1127
1138
|
}
|
|
@@ -1138,6 +1149,7 @@ body.is-zooming {
|
|
|
1138
1149
|
body.mindcanvas-browser-selection-locked *,
|
|
1139
1150
|
body.is-node-dragging *,
|
|
1140
1151
|
body.is-resizing *,
|
|
1152
|
+
#css3d-dom-wrapper.is-zooming *,
|
|
1141
1153
|
body.is-zooming #css3d-dom-wrapper *,
|
|
1142
1154
|
#css3d-dom-wrapper.is-panning,
|
|
1143
1155
|
#css3d-dom-wrapper.is-panning *,
|
|
@@ -1163,6 +1175,8 @@ body.is-resizing .mind-map-text-overlay-v2-card,
|
|
|
1163
1175
|
body.is-resizing .mind-map-text-overlay-v2-card *,
|
|
1164
1176
|
body.is-zooming .mind-map-text-overlay.mind-map-text-overlay-selectable .mind-map-text-overlay-fragment,
|
|
1165
1177
|
body.is-zooming .mind-map-text-overlay.mind-map-text-overlay-selectable .mind-map-text-overlay-fragment *,
|
|
1178
|
+
#css3d-dom-wrapper.is-zooming .mind-map-text-overlay.mind-map-text-overlay-selectable .mind-map-text-overlay-fragment,
|
|
1179
|
+
#css3d-dom-wrapper.is-zooming .mind-map-text-overlay.mind-map-text-overlay-selectable .mind-map-text-overlay-fragment *,
|
|
1166
1180
|
#css3d-dom-wrapper.is-panning .mind-map-text-overlay.mind-map-text-overlay-selectable .mind-map-text-overlay-fragment,
|
|
1167
1181
|
#css3d-dom-wrapper.is-panning .mind-map-text-overlay.mind-map-text-overlay-selectable .mind-map-text-overlay-fragment * {
|
|
1168
1182
|
user-select: none !important;
|
|
@@ -1504,7 +1518,8 @@ html.mindcanvas-platform-apple .css3d-resolution-wrapper.is-automation-relation-
|
|
|
1504
1518
|
pointer-events: auto;
|
|
1505
1519
|
}
|
|
1506
1520
|
|
|
1507
|
-
body.is-panning .mind-map-text-overlay-v2-card.is-passive .mind-map-text-overlay-v2-body
|
|
1521
|
+
body.is-panning .mind-map-text-overlay-v2-card.is-passive .mind-map-text-overlay-v2-body,
|
|
1522
|
+
#css3d-dom-wrapper.is-panning .mind-map-text-overlay-v2-card.is-passive .mind-map-text-overlay-v2-body {
|
|
1508
1523
|
pointer-events: none !important;
|
|
1509
1524
|
}
|
|
1510
1525
|
|
|
@@ -2445,6 +2460,9 @@ body.is-panning .mind-map-text-overlay-v2-card.is-passive .mind-map-text-overlay
|
|
|
2445
2460
|
body.is-panning .css3d-resolution-wrapper.node-type-templatelauncher.selected,
|
|
2446
2461
|
body.is-zooming .css3d-resolution-wrapper.node-type-templatelauncher.selected,
|
|
2447
2462
|
body.mindcanvas-is-moving .css3d-resolution-wrapper.node-type-templatelauncher.selected,
|
|
2463
|
+
#css3d-dom-wrapper.is-panning .css3d-resolution-wrapper.node-type-templatelauncher.selected,
|
|
2464
|
+
#css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper.node-type-templatelauncher.selected,
|
|
2465
|
+
#css3d-dom-wrapper.mindcanvas-is-moving .css3d-resolution-wrapper.node-type-templatelauncher.selected,
|
|
2448
2466
|
body.mindcanvas-is-dense .css3d-resolution-wrapper.node-type-templatelauncher.selected {
|
|
2449
2467
|
outline: none !important;
|
|
2450
2468
|
-webkit-box-shadow: none !important;
|
|
@@ -3340,7 +3358,11 @@ body.is-panning .css3d-resolution-wrapper,
|
|
|
3340
3358
|
body.is-node-dragging .css3d-resolution-wrapper,
|
|
3341
3359
|
body.is-resizing .css3d-resolution-wrapper,
|
|
3342
3360
|
body.mindcanvas-is-moving .css3d-resolution-wrapper,
|
|
3343
|
-
body.mindcanvas-is-dense .css3d-resolution-wrapper
|
|
3361
|
+
body.mindcanvas-is-dense .css3d-resolution-wrapper,
|
|
3362
|
+
#css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper,
|
|
3363
|
+
#css3d-dom-wrapper.is-panning .css3d-resolution-wrapper,
|
|
3364
|
+
#css3d-dom-wrapper.mindcanvas-is-moving .css3d-resolution-wrapper,
|
|
3365
|
+
#css3d-dom-wrapper.mindcanvas-is-dense .css3d-resolution-wrapper {
|
|
3344
3366
|
-webkit-transition: none !important;
|
|
3345
3367
|
transition: none !important;
|
|
3346
3368
|
-webkit-filter: none !important;
|
|
@@ -3360,7 +3382,15 @@ body.is-panning .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
|
3360
3382
|
body.is-node-dragging .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3361
3383
|
body.is-resizing .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3362
3384
|
body.mindcanvas-is-moving .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3363
|
-
body.mindcanvas-is-dense .css3d-resolution-wrapper [id^="css3d-node-"]
|
|
3385
|
+
body.mindcanvas-is-dense .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3386
|
+
#css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper .css3d-dynamic-node,
|
|
3387
|
+
#css3d-dom-wrapper.is-panning .css3d-resolution-wrapper .css3d-dynamic-node,
|
|
3388
|
+
#css3d-dom-wrapper.mindcanvas-is-moving .css3d-resolution-wrapper .css3d-dynamic-node,
|
|
3389
|
+
#css3d-dom-wrapper.mindcanvas-is-dense .css3d-resolution-wrapper .css3d-dynamic-node,
|
|
3390
|
+
#css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3391
|
+
#css3d-dom-wrapper.is-panning .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3392
|
+
#css3d-dom-wrapper.mindcanvas-is-moving .css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3393
|
+
#css3d-dom-wrapper.mindcanvas-is-dense .css3d-resolution-wrapper [id^="css3d-node-"] {
|
|
3364
3394
|
-webkit-transition: none !important;
|
|
3365
3395
|
transition: none !important;
|
|
3366
3396
|
-webkit-filter: none !important;
|
|
@@ -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);
|