@mindexec/cli 0.2.428 → 0.2.430
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/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
- package/wwwroot/_content/MindExecution.Shared/css/app.css +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +280 -39
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +109 -69
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-menu-manager.js +20 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +129 -1
- package/wwwroot/_framework/MessagePack.7vlan1azj0.dll +0 -0
- package/wwwroot/_framework/{MessagePack.Annotations.l6qv48kgpt.dll → MessagePack.Annotations.py0sy1kn1f.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.AspNetCore.Authorization.k7dsih5y5g.dll → Microsoft.AspNetCore.Authorization.htf46vkphd.dll} +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Components.933rwrwkzt.dll +0 -0
- package/wwwroot/_framework/{Microsoft.AspNetCore.Components.Authorization.iycd6unprw.dll → Microsoft.AspNetCore.Components.Authorization.tt4qeyggd5.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.AspNetCore.Components.Web.487u3twia4.dll → Microsoft.AspNetCore.Components.Web.2s8gqxkpdl.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.AspNetCore.Components.WebAssembly.d0gcnmlxxz.dll → Microsoft.AspNetCore.Components.WebAssembly.sarmn45nm8.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.AspNetCore.Metadata.h4yevl9adi.dll → Microsoft.AspNetCore.Metadata.6782hrb6zt.dll} +0 -0
- package/wwwroot/_framework/Microsoft.Data.Sqlite.0gpx20ox73.dll +0 -0
- package/wwwroot/_framework/{Microsoft.EntityFrameworkCore.Abstractions.gocudnvz7b.dll → Microsoft.EntityFrameworkCore.Abstractions.8kg0ha5f3s.dll} +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Relational.iuncmsap8z.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Sqlite.vsalww6xiy.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.xmbscya80j.dll +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Caching.Abstractions.364t4jh3zz.dll → Microsoft.Extensions.Caching.Abstractions.6w6jliyj60.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Caching.Memory.izlxhpzosu.dll → Microsoft.Extensions.Caching.Memory.puhvxafgju.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Configuration.Json.duvlngw8i0.dll → Microsoft.Extensions.Configuration.Json.7fo28u9lzj.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Configuration.8zq7hh41o7.dll → Microsoft.Extensions.Configuration.rczgmasvw2.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.DependencyInjection.n4tg99oy8l.dll → Microsoft.Extensions.DependencyInjection.8i0jefgzgz.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.DependencyInjection.Abstractions.t2hh9kvx0o.dll → Microsoft.Extensions.DependencyInjection.Abstractions.bmy2ykf9d2.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.DependencyModel.h0d06ixk3e.dll → Microsoft.Extensions.DependencyModel.y69407g5h0.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Logging.Abstractions.rl32bkx2sd.dll → Microsoft.Extensions.Logging.Abstractions.xn41li608u.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Logging.dlht1xei0t.dll → Microsoft.Extensions.Logging.sayb2u55jg.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.Extensions.Options.qeunebioml.dll → Microsoft.Extensions.Options.iffq34v2x9.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.JSInterop.WebAssembly.ryia5gxiad.dll → Microsoft.JSInterop.WebAssembly.rlz6wrl50x.dll} +0 -0
- package/wwwroot/_framework/{Microsoft.JSInterop.ew9vz9o332.dll → Microsoft.JSInterop.k3pogql4x4.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Core.fi1okngj1v.dll → MindExecution.Core.808jj176e1.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.88cfrq3n6f.dll → MindExecution.Kernel.75hxk08tt0.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.j8r53ny1yk.dll → MindExecution.Plugins.Admin.0zkmk8wahq.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.dxnr51rpko.dll → MindExecution.Plugins.Business.vyw3769hrw.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.5wy4pksmui.dll → MindExecution.Plugins.Concept.hdpod01n2v.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.8on0qz60kp.dll → MindExecution.Plugins.Directory.jtw9q1dm9n.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.0fb3d2by4x.dll → MindExecution.Plugins.PlanMaster.bcxkqs35nn.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.8k0sthce42.dll → MindExecution.Plugins.YouTube.gg4bv7zo0e.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.5azabuayvq.dll → MindExecution.Shared.acb35gyigd.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.d8y80arq4m.dll → MindExecution.Web.6grqlsq22z.dll} +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.batteries_v2.sfbkwlzomg.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.core.uwwith8gy4.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.provider.e_sqlite3.48c2jqzyip.dll +0 -0
- package/wwwroot/_framework/{System.Memory.1k78n7wdxb.dll → System.Memory.l1cfybi1j0.dll} +0 -0
- package/wwwroot/_framework/{System.Numerics.Tensors.0c7z4mt3on.dll → System.Numerics.Tensors.dsa4b5t80k.dll} +0 -0
- package/wwwroot/_framework/System.Private.CoreLib.g6ztz7cmo2.dll +0 -0
- package/wwwroot/_framework/System.Runtime.v0r22684n1.dll +0 -0
- package/wwwroot/_framework/blazor.boot.json +91 -93
- package/wwwroot/_framework/blazor.webassembly.js +1 -1
- package/wwwroot/_framework/dotnet.native.566r55w3xu.js +16 -0
- package/wwwroot/_framework/dotnet.native.x6q5aixc38.wasm +0 -0
- package/wwwroot/_framework/netstandard.b50t77veor.dll +0 -0
- package/wwwroot/index.html +2 -2
- package/wwwroot/service-worker-assets.js +101 -105
- package/wwwroot/service-worker.js +1 -1
- package/wwwroot/_framework/MessagePack.eqoptzx9d5.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Components.6nyje9sa0g.dll +0 -0
- package/wwwroot/_framework/Microsoft.Data.Sqlite.jdlxgv2jtg.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.4gjazp7kjf.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Relational.lt4rsvinuo.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Sqlite.69luj0fa9r.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.batteries_v2.rrd1nzawpp.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.core.1dxloztpfz.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.provider.e_sqlite3.oekyzl53i1.dll +0 -0
- package/wwwroot/_framework/System.Private.CoreLib.c1dbswx1b2.dll +0 -0
- package/wwwroot/_framework/System.Runtime.InteropServices.RuntimeInformation.l5rk496q70.dll +0 -0
- package/wwwroot/_framework/System.Runtime.h9cduidfkh.dll +0 -0
- package/wwwroot/_framework/dotnet.native.boem75ye5i.wasm +0 -0
- package/wwwroot/_framework/dotnet.native.qc8g39g30v.js +0 -16
- package/wwwroot/_framework/netstandard.yvr3prsx0x.dll +0 -0
|
@@ -776,9 +776,17 @@ window.MindMapInteractions = (function () {
|
|
|
776
776
|
return agentId !== undefined && agentId !== null && String(agentId) !== '';
|
|
777
777
|
}
|
|
778
778
|
|
|
779
|
+
function isBusinessAutomationNode(target) {
|
|
780
|
+
return getNodeSemanticType(target) === 'BusinessAutomationNode';
|
|
781
|
+
}
|
|
782
|
+
|
|
779
783
|
function isInlineEditableNode(target) {
|
|
780
784
|
const contentType = getNodeContentType(target);
|
|
781
|
-
return contentType === 'note'
|
|
785
|
+
return contentType === 'note'
|
|
786
|
+
|| contentType === 'memo'
|
|
787
|
+
|| contentType === 'code'
|
|
788
|
+
|| isAgentNode(target)
|
|
789
|
+
|| isBusinessAutomationNode(target);
|
|
782
790
|
}
|
|
783
791
|
|
|
784
792
|
function isReadOnlyTextSelectionNode(target) {
|
|
@@ -862,21 +870,32 @@ window.MindMapInteractions = (function () {
|
|
|
862
870
|
const label = isAgentNode(nodeEntry) ? 'agent' : contentType;
|
|
863
871
|
console.log(`[Interactions] Second click on ${label} node. Entering edit mode.`);
|
|
864
872
|
|
|
865
|
-
|
|
866
|
-
|
|
873
|
+
const startInlineEdit = () => {
|
|
874
|
+
const refreshedEntry = module.nodeObjectsById?.get?.(nodeId) || nodeEntry;
|
|
875
|
+
if (refreshedEntry?.cssObject) {
|
|
876
|
+
startEditingNode(module, refreshedEntry);
|
|
877
|
+
return true;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
return false;
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
if (nodeEntry.cssObject && (nodeEntry.currentType === 'CSS' || window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true)) {
|
|
884
|
+
startInlineEdit();
|
|
867
885
|
return;
|
|
868
886
|
}
|
|
869
887
|
|
|
870
888
|
const switchResult = window.MindMapNodes?.switchToCss3D?.(module, nodeId);
|
|
871
889
|
if (switchResult && typeof switchResult.then === 'function') {
|
|
872
890
|
switchResult.then(() => {
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
startEditingNode(module, refreshedEntry);
|
|
891
|
+
if (!startInlineEdit()) {
|
|
892
|
+
console.warn(`[Interactions] Unable to enter edit mode: CSS3D entry not available for ${nodeId}.`);
|
|
876
893
|
}
|
|
877
894
|
}).catch(err => console.warn('[Interactions] Failed to enter edit mode:', err));
|
|
878
895
|
} else {
|
|
879
|
-
|
|
896
|
+
if (!startInlineEdit()) {
|
|
897
|
+
console.warn(`[Interactions] Unable to enter edit mode: CSS3D entry not available for ${nodeId}.`);
|
|
898
|
+
}
|
|
880
899
|
}
|
|
881
900
|
return;
|
|
882
901
|
}
|
|
@@ -2895,7 +2914,10 @@ window.MindMapInteractions = (function () {
|
|
|
2895
2914
|
function getGuardedTargetNodeId(module, target, event) {
|
|
2896
2915
|
const nodeId = getTargetNodeId(target);
|
|
2897
2916
|
if (!nodeId || !event) {
|
|
2898
|
-
|
|
2917
|
+
const topCssHit = event
|
|
2918
|
+
? findCssNodeHitAtClientPoint(module, event.clientX, event.clientY)
|
|
2919
|
+
: null;
|
|
2920
|
+
return topCssHit?.nodeId || nodeId;
|
|
2899
2921
|
}
|
|
2900
2922
|
|
|
2901
2923
|
const topCssHit = findCssNodeHitAtClientPoint(module, event.clientX, event.clientY);
|
|
@@ -4032,11 +4054,27 @@ window.MindMapInteractions = (function () {
|
|
|
4032
4054
|
e.target.classList.contains('markdown-body') ||
|
|
4033
4055
|
e.target.classList.contains('csv-table-scroll') ||
|
|
4034
4056
|
e.target.classList.contains('csv-table-cell') ||
|
|
4057
|
+
e.target.classList.contains('map-node-memo__body-view') ||
|
|
4058
|
+
e.target.classList.contains('map-node-memo__body') ||
|
|
4059
|
+
e.target.classList.contains('map-node-memo__title') ||
|
|
4035
4060
|
e.target.closest('.code-body') ||
|
|
4036
4061
|
e.target.closest('.node-response') ||
|
|
4037
4062
|
e.target.closest('.text-content') ||
|
|
4038
4063
|
e.target.closest('.markdown-body') ||
|
|
4039
|
-
e.target.closest('.csv-table-scroll')
|
|
4064
|
+
e.target.closest('.csv-table-scroll') ||
|
|
4065
|
+
e.target.closest('.map-node-memo__body-view') ||
|
|
4066
|
+
e.target.closest('.map-node-memo__body') ||
|
|
4067
|
+
e.target.closest('.map-node-memo__title');
|
|
4068
|
+
|
|
4069
|
+
if (supportsTextInteraction &&
|
|
4070
|
+
isInlineEditableNode(nodeEntry) &&
|
|
4071
|
+
isClickOnContent &&
|
|
4072
|
+
!isMultiModifier &&
|
|
4073
|
+
isSelected &&
|
|
4074
|
+
!canNativeTextSelectionStart(module, nodeEntry, clickedNodeId)) {
|
|
4075
|
+
startNodeDrag(module, e, clickedNodeId, nodeEntry, nodeEntry.cssObject || nodeEntry.glObject);
|
|
4076
|
+
return;
|
|
4077
|
+
}
|
|
4040
4078
|
|
|
4041
4079
|
// ▼▼▼ [2-Stage Click] text-based 노드가 이미 편집 모드(CSS3D)인 경우에만 텍스트 선택 허용 ▼▼▼
|
|
4042
4080
|
if (supportsTextInteraction && isClickOnContent && !isMultiModifier && isSelected) {
|
|
@@ -4546,12 +4584,12 @@ window.MindMapInteractions = (function () {
|
|
|
4546
4584
|
|
|
4547
4585
|
module.isShiftClick = isMultiModifier;
|
|
4548
4586
|
|
|
4549
|
-
// ▼▼▼ [2-Stage Click] 선택된 text-based 노드는 onMouseDown에서 CSS3D 전환하지 않음 ▼▼▼
|
|
4550
|
-
// onMouseUp에서 2차 클릭 시에만 편집 모드(CSS3D)로 전환
|
|
4551
|
-
const isAlreadySelected = (module.selectedNodeIdJs === nodeId);
|
|
4552
|
-
const isTextBasedNode = contentType === 'code' || contentType === 'text' || contentType === 'markdown';
|
|
4553
|
-
// (isAlreadySelected && isTextBasedNode 케이스는 아래 startNodeDrag로 진행하여 onMouseUp에서 처리)
|
|
4554
|
-
// ▲▲▲ [2-Stage Click] ▲▲▲
|
|
4587
|
+
// ▼▼▼ [2-Stage Click] 선택된 text-based 노드는 onMouseDown에서 CSS3D 전환하지 않음 ▼▼▼
|
|
4588
|
+
// onMouseUp에서 2차 클릭 시에만 편집 모드(CSS3D)로 전환
|
|
4589
|
+
const isAlreadySelected = (module.selectedNodeIdJs === nodeId);
|
|
4590
|
+
const isTextBasedNode = contentType === 'code' || contentType === 'text' || contentType === 'markdown';
|
|
4591
|
+
// (isAlreadySelected && isTextBasedNode 케이스는 아래 startNodeDrag로 진행하여 onMouseUp에서 처리)
|
|
4592
|
+
// ▲▲▲ [2-Stage Click] ▲▲▲
|
|
4555
4593
|
|
|
4556
4594
|
// ▼▼▼ [Fix] 다중 선택 상태에서 다른 노드 클릭 시 해제 (드래그 시작 전) ▼▼▼
|
|
4557
4595
|
// 단, 다중 선택된 노드 중 하나를 클릭한 경우는 해제하지 않음 (다중 드래그 허용)
|
|
@@ -4599,6 +4637,7 @@ window.MindMapInteractions = (function () {
|
|
|
4599
4637
|
e.preventDefault();
|
|
4600
4638
|
|
|
4601
4639
|
module.isShiftClick = e.shiftKey || e.ctrlKey || e.metaKey;
|
|
4640
|
+
|
|
4602
4641
|
beginOverlayNodeDrag(module, e, cssFallbackHit.nodeId);
|
|
4603
4642
|
return;
|
|
4604
4643
|
}
|
|
@@ -5249,7 +5288,7 @@ window.MindMapInteractions = (function () {
|
|
|
5249
5288
|
syncTextOverlaysNow(module);
|
|
5250
5289
|
}
|
|
5251
5290
|
} else {
|
|
5252
|
-
if (nodeEntry
|
|
5291
|
+
if (nodeEntry) {
|
|
5253
5292
|
const isAlreadySelected = module.selectedNodeIdJs === clickedNodeId;
|
|
5254
5293
|
const isMultiSelecting = module.isShiftClick;
|
|
5255
5294
|
// Check if link was clicked (to prevent edit on link click)
|
|
@@ -5308,7 +5347,7 @@ window.MindMapInteractions = (function () {
|
|
|
5308
5347
|
module.selectionChangedInThisClick = true;
|
|
5309
5348
|
|
|
5310
5349
|
if (nodeEntry.model.contentType === 'pdf') {
|
|
5311
|
-
try { module.dotNetHelper
|
|
5350
|
+
try { module.dotNetHelper?.invokeMethodAsync?.('ShowPdfDialog', nodeEntry.model.response, nodeEntry.model.prompt); } catch { }
|
|
5312
5351
|
}
|
|
5313
5352
|
});
|
|
5314
5353
|
}
|
|
@@ -5370,68 +5409,69 @@ window.MindMapInteractions = (function () {
|
|
|
5370
5409
|
// --- end spatial grid refresh ---
|
|
5371
5410
|
}
|
|
5372
5411
|
} else {
|
|
5373
|
-
if (clickedNodeId
|
|
5412
|
+
if (clickedNodeId) {
|
|
5374
5413
|
const nodeEntry = module.nodeObjectsById.get(clickedNodeId);
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
|
|
5388
|
-
}
|
|
5389
|
-
} else {
|
|
5390
|
-
schedulePrimaryClickAction(module, () => {
|
|
5391
|
-
if (module.selectedNodeIdJs && module.selectedNodeIdJs !== clickedNodeId) {
|
|
5392
|
-
switchPreviousSelectedNoteToWebGL(module, false);
|
|
5414
|
+
if (nodeEntry) {
|
|
5415
|
+
const isAlreadySelected = module.selectedNodeIdJs === clickedNodeId;
|
|
5416
|
+
const isMultiSelecting = module.isShiftClick;
|
|
5417
|
+
|
|
5418
|
+
if (isAlreadySelected && !isMultiSelecting && isInlineEditableNode(nodeEntry)) {
|
|
5419
|
+
if (module.selectionChangedInThisClick) {
|
|
5420
|
+
module.selectionChangedInThisClick = false;
|
|
5421
|
+
finalizeSingleSelection(module, clickedNodeId, { notifyBlazor: false, bringToFront: true, showMenu: true });
|
|
5422
|
+
} else if (consumePendingSelectedActivation(module, clickedNodeId)) {
|
|
5423
|
+
finalizeSingleSelection(module, clickedNodeId, { notifyBlazor: false, bringToFront: true, showMenu: true });
|
|
5424
|
+
} else {
|
|
5425
|
+
const activationTarget = e.target;
|
|
5426
|
+
postMouseUpActivation = () => handleSelectedNodeActivation(module, clickedNodeId, nodeEntry, { target: activationTarget });
|
|
5393
5427
|
}
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
if (module.
|
|
5397
|
-
module
|
|
5398
|
-
window.MindMapNodes.updateNodeSelectionStyle(module, clickedNodeId, false, false);
|
|
5399
|
-
} else {
|
|
5400
|
-
module.multiSelectedNodeIds.add(clickedNodeId);
|
|
5401
|
-
window.MindMapNodes.updateNodeSelectionStyle(module, clickedNodeId, true, false);
|
|
5428
|
+
} else {
|
|
5429
|
+
schedulePrimaryClickAction(module, () => {
|
|
5430
|
+
if (module.selectedNodeIdJs && module.selectedNodeIdJs !== clickedNodeId) {
|
|
5431
|
+
switchPreviousSelectedNoteToWebGL(module, false);
|
|
5402
5432
|
}
|
|
5403
|
-
syncSelectedIdFromMulti(module);
|
|
5404
|
-
return;
|
|
5405
|
-
}
|
|
5406
5433
|
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5434
|
+
if (isMultiSelecting) {
|
|
5435
|
+
if (module.multiSelectedNodeIds.has(clickedNodeId)) {
|
|
5436
|
+
module.multiSelectedNodeIds.delete(clickedNodeId);
|
|
5437
|
+
window.MindMapNodes.updateNodeSelectionStyle(module, clickedNodeId, false, false);
|
|
5438
|
+
} else {
|
|
5439
|
+
module.multiSelectedNodeIds.add(clickedNodeId);
|
|
5440
|
+
window.MindMapNodes.updateNodeSelectionStyle(module, clickedNodeId, true, false);
|
|
5441
|
+
}
|
|
5442
|
+
syncSelectedIdFromMulti(module);
|
|
5443
|
+
return;
|
|
5415
5444
|
}
|
|
5416
|
-
return;
|
|
5417
|
-
}
|
|
5418
5445
|
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5446
|
+
if (isAlreadySelected) {
|
|
5447
|
+
if (module.selectionChangedInThisClick) {
|
|
5448
|
+
module.selectionChangedInThisClick = false;
|
|
5449
|
+
finalizeSingleSelection(module, clickedNodeId, { notifyBlazor: false, bringToFront: true, showMenu: true });
|
|
5450
|
+
} else if (consumePendingSelectedActivation(module, clickedNodeId)) {
|
|
5451
|
+
finalizeSingleSelection(module, clickedNodeId, { notifyBlazor: false, bringToFront: true, showMenu: true });
|
|
5452
|
+
} else {
|
|
5453
|
+
handleSelectedNodeActivation(module, clickedNodeId, nodeEntry, { target: e.target });
|
|
5454
|
+
}
|
|
5455
|
+
return;
|
|
5422
5456
|
}
|
|
5423
|
-
|
|
5424
|
-
if (
|
|
5425
|
-
|
|
5457
|
+
|
|
5458
|
+
if (module.multiSelectedNodeIds?.size > 0) {
|
|
5459
|
+
if (MindMapNodes.clearMultiSelection) {
|
|
5460
|
+
MindMapNodes.clearMultiSelection(module);
|
|
5461
|
+
}
|
|
5462
|
+
module.multiSelectedNodeIds?.clear?.();
|
|
5463
|
+
if (window.MindMapMultiSelect) {
|
|
5464
|
+
window.MindMapMultiSelect.hide();
|
|
5465
|
+
}
|
|
5426
5466
|
}
|
|
5427
|
-
}
|
|
5428
5467
|
|
|
5429
|
-
|
|
5468
|
+
finalizeSingleSelection(module, clickedNodeId, { notifyBlazor: true, bringToFront: true, showMenu: true });
|
|
5430
5469
|
|
|
5431
|
-
|
|
5432
|
-
|
|
5433
|
-
|
|
5434
|
-
|
|
5470
|
+
if (nodeEntry.model.contentType === 'pdf') {
|
|
5471
|
+
try { module.dotNetHelper?.invokeMethodAsync?.('ShowPdfDialog', nodeEntry.model.response, nodeEntry.model.prompt); } catch { }
|
|
5472
|
+
}
|
|
5473
|
+
});
|
|
5474
|
+
}
|
|
5435
5475
|
}
|
|
5436
5476
|
}
|
|
5437
5477
|
}
|
|
@@ -264,12 +264,31 @@
|
|
|
264
264
|
return getNodeSemanticType(model) === BUSINESS_AUTOMATION_SEMANTIC_TYPE;
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
+
function getBusinessAutomationNodeKind(model) {
|
|
268
|
+
const metadata = ensureMetadata(model);
|
|
269
|
+
return String(metadata.AutomationNodeKind || metadata.automationNodeKind || '').trim().toLowerCase();
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
function getBusinessAutomationNodeRole(model) {
|
|
273
|
+
const metadata = ensureMetadata(model);
|
|
274
|
+
return String(metadata.AutomationNodeRole || metadata.automationNodeRole || '').trim().toLowerCase();
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
function isBusinessAutomationRootAiTaskNode(model) {
|
|
278
|
+
if (!isBusinessAutomationNode(model) || getBusinessAutomationNodeKind(model) !== 'ai-task') {
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
const role = getBusinessAutomationNodeRole(model);
|
|
283
|
+
return role.length === 0 || role === 'root';
|
|
284
|
+
}
|
|
285
|
+
|
|
267
286
|
function isRemoteFleetMonitorNode(model) {
|
|
268
287
|
return getNodeSemanticType(model) === REMOTE_FLEET_SEMANTIC_TYPE;
|
|
269
288
|
}
|
|
270
289
|
|
|
271
290
|
function canRunExecutableNode(model) {
|
|
272
|
-
return
|
|
291
|
+
return isBusinessAutomationRootAiTaskNode(model);
|
|
273
292
|
}
|
|
274
293
|
|
|
275
294
|
function isExecutableNodeRunning(model) {
|
|
@@ -38,6 +38,54 @@
|
|
|
38
38
|
const NODE_TEXT_SELECTION_SELECTORS = '.node-response, .code-body, .text-content, .markdown-body, .csv-table-scroll, .csv-table-cell, textarea, .map-node-memo__title, .map-node-memo__body, .map-node-memo__body-view, .map-node-memo__body-view *';
|
|
39
39
|
const NODE_INTERACTIVE_CONTENT_SELECTORS = `${NODE_TEXT_SELECTION_SELECTORS}, .embed-content, .embed-card, .embed-card *, .embed-action, .embed-play-button, iframe, .map-node-memo__icon-button, .map-node-memo__icon-option, .map-node-memo__icon-popover, .map-node-memo__agent-action, .map-node-memo__agent-result-link, .map-node-memo__agent-plan-panel, .map-node-memo__agent-plan-body, .map-node-memo__agent-plan-body *, .map-node-memo__agent-console-panel, .map-node-memo__agent-console-body, .map-node-memo__agent-console-body *, .map-node-memo__agent-console-resize, .map-node-memo__agent-console-resize *`;
|
|
40
40
|
const MEMO_EDIT_ONLY_SELECTORS = '.map-node-memo__title, .map-node-memo__body, .map-node-memo__icon-button, .map-node-memo__icon-option, .map-node-memo__icon-popover';
|
|
41
|
+
const INLINE_EDITABLE_NODE_DRAG_EXCLUDED_SELECTOR = [
|
|
42
|
+
'button',
|
|
43
|
+
'a',
|
|
44
|
+
'input',
|
|
45
|
+
'textarea',
|
|
46
|
+
'select',
|
|
47
|
+
'[contenteditable="true"]',
|
|
48
|
+
'.node-prompt-copy-button',
|
|
49
|
+
'.csv-table-header-button',
|
|
50
|
+
'.resize-handle',
|
|
51
|
+
'.css3d-resize-handle',
|
|
52
|
+
'.map-node-memo__icon-wrap',
|
|
53
|
+
'.map-node-memo__icon-button',
|
|
54
|
+
'.map-node-memo__icon-popover',
|
|
55
|
+
'.map-node-memo__icon-option',
|
|
56
|
+
'.map-node-memo__agent-role-select',
|
|
57
|
+
'.map-node-memo__agent-role-select-button',
|
|
58
|
+
'.map-node-memo__agent-role-menu',
|
|
59
|
+
'.map-node-memo__agent-role-option',
|
|
60
|
+
'.map-node-memo__agent-action',
|
|
61
|
+
'.map-node-memo__agent-actions',
|
|
62
|
+
'.map-node-memo__agent-plan-panel',
|
|
63
|
+
'.map-node-memo__agent-console-panel',
|
|
64
|
+
'.map-node-memo__agent-console-resize',
|
|
65
|
+
'.map-node-memo__agent-result-link',
|
|
66
|
+
'.map-node-memo__automation-pins',
|
|
67
|
+
'.map-node-memo__automation-pin',
|
|
68
|
+
'.map-node-memo__automation-pin-label',
|
|
69
|
+
'.map-node-memo__automation-pin-dot',
|
|
70
|
+
'.map-node-memo__automation-badges',
|
|
71
|
+
'.map-node-memo__automation-status',
|
|
72
|
+
'.map-node-memo__automation-intent'
|
|
73
|
+
].join(', ');
|
|
74
|
+
const INLINE_EDITABLE_NODE_DRAG_SURFACE_SELECTOR = [
|
|
75
|
+
'.node-content-wrapper',
|
|
76
|
+
'.node-prompt-row',
|
|
77
|
+
'.node-prompt',
|
|
78
|
+
'.node-response',
|
|
79
|
+
'.note-content',
|
|
80
|
+
'.markdown-body',
|
|
81
|
+
'.code-body',
|
|
82
|
+
'.text-content',
|
|
83
|
+
'.map-node-memo',
|
|
84
|
+
'.map-node-memo__shell',
|
|
85
|
+
'.map-node-memo__header',
|
|
86
|
+
'.map-node-memo__title-wrap',
|
|
87
|
+
'.map-node-memo__body-view'
|
|
88
|
+
].join(', ');
|
|
41
89
|
|
|
42
90
|
function getNodeContentTypeLower(nodeModel) {
|
|
43
91
|
return String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').trim().toLowerCase();
|
|
@@ -151,7 +199,11 @@
|
|
|
151
199
|
|
|
152
200
|
function isInlineEditableNodeModel(nodeModel) {
|
|
153
201
|
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
|
|
154
|
-
return contentType === 'note'
|
|
202
|
+
return contentType === 'note'
|
|
203
|
+
|| contentType === 'memo'
|
|
204
|
+
|| contentType === 'code'
|
|
205
|
+
|| isAgentNodeModel(nodeModel)
|
|
206
|
+
|| getNodeSemanticType(nodeModel) === BUSINESS_AUTOMATION_SEMANTIC_TYPE;
|
|
155
207
|
}
|
|
156
208
|
|
|
157
209
|
function isReadOnlyTextSelectionNodeModel(nodeModel) {
|
|
@@ -159,6 +211,79 @@
|
|
|
159
211
|
return (contentType === 'text' || contentType === 'markdown') && !isAgentNodeModel(nodeModel);
|
|
160
212
|
}
|
|
161
213
|
|
|
214
|
+
function syncSelectedInlineEditableDomRouter(module, nodeId, entry, isSelected, isEditing) {
|
|
215
|
+
const cssElement = entry?.cssObject?.element || null;
|
|
216
|
+
const normalizedNodeId = String(nodeId || '').trim();
|
|
217
|
+
if (!cssElement || !normalizedNodeId) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const existingHandler = cssElement._selectedInlineEditableDomRouterHandler;
|
|
222
|
+
if (existingHandler &&
|
|
223
|
+
(cssElement._selectedInlineEditableDomRouterModule !== module ||
|
|
224
|
+
cssElement._selectedInlineEditableDomRouterNodeId !== normalizedNodeId)) {
|
|
225
|
+
cssElement.removeEventListener('mousedown', existingHandler, true);
|
|
226
|
+
cssElement._selectedInlineEditableDomRouterHandler = null;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
const shouldAttach = !!isSelected && !isEditing && isInlineEditableNodeModel(entry?.model);
|
|
230
|
+
if (!shouldAttach) {
|
|
231
|
+
if (cssElement._selectedInlineEditableDomRouterHandler) {
|
|
232
|
+
cssElement.removeEventListener('mousedown', cssElement._selectedInlineEditableDomRouterHandler, true);
|
|
233
|
+
cssElement._selectedInlineEditableDomRouterHandler = null;
|
|
234
|
+
}
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
if (cssElement._selectedInlineEditableDomRouterHandler) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const handler = event => {
|
|
243
|
+
if (!event || Number(event.button) !== 0 || event.defaultPrevented) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const target = event.target;
|
|
248
|
+
if (!(target instanceof Element) || !cssElement.contains(target)) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (target.closest(INLINE_EDITABLE_NODE_DRAG_EXCLUDED_SELECTOR)) {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
const surface = target.closest(INLINE_EDITABLE_NODE_DRAG_SURFACE_SELECTOR);
|
|
257
|
+
if (!surface || !cssElement.contains(surface)) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const isStillSelected = String(module?.selectedNodeIdJs || '').trim() === normalizedNodeId ||
|
|
262
|
+
cssElement.classList?.contains?.('selected') === true ||
|
|
263
|
+
cssElement.querySelector?.('.map-node.selected, .map-node-note.selected, .map-node-memo.selected, .map-node-code.selected');
|
|
264
|
+
const isEditingDom = cssElement.classList?.contains?.('is-editing') === true ||
|
|
265
|
+
!!cssElement.querySelector?.('.is-editing');
|
|
266
|
+
if (!isStillSelected || isEditingDom) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const started = window.MindMapInteractions?.startNodeDragFromDom?.(
|
|
271
|
+
module,
|
|
272
|
+
event,
|
|
273
|
+
normalizedNodeId,
|
|
274
|
+
{ source: 'selected-inline-editable-css3d' }
|
|
275
|
+
) === true;
|
|
276
|
+
if (started) {
|
|
277
|
+
event.stopImmediatePropagation?.();
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
cssElement._selectedInlineEditableDomRouterModule = module;
|
|
282
|
+
cssElement._selectedInlineEditableDomRouterNodeId = normalizedNodeId;
|
|
283
|
+
cssElement._selectedInlineEditableDomRouterHandler = handler;
|
|
284
|
+
cssElement.addEventListener('mousedown', handler, true);
|
|
285
|
+
}
|
|
286
|
+
|
|
162
287
|
function getSelectionBorderColorHex(nodeModel, isSelected) {
|
|
163
288
|
if (String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase() !== 'memo') {
|
|
164
289
|
return isSelected ? 0x7b7ff2 : 0x374151;
|
|
@@ -3631,6 +3756,9 @@
|
|
|
3631
3756
|
}
|
|
3632
3757
|
// ▲▲▲ [Fix] ▲▲▲
|
|
3633
3758
|
|
|
3759
|
+
const inlineEditableRouterEditing = !!(module.isEditingNote && module.selectedNodeIdJs === nodeId);
|
|
3760
|
+
syncSelectedInlineEditableDomRouter(module, nodeId, entry, isSelected, inlineEditableRouterEditing);
|
|
3761
|
+
|
|
3634
3762
|
if (entry.isDeferredShell === true) {
|
|
3635
3763
|
if (bringToFront && entry.cssObject) {
|
|
3636
3764
|
bringNodeToFront(module, nodeId);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/wwwroot/_framework/{Microsoft.JSInterop.ew9vz9o332.dll → Microsoft.JSInterop.k3pogql4x4.dll}
RENAMED
|
Binary file
|
package/wwwroot/_framework/{MindExecution.Core.fi1okngj1v.dll → MindExecution.Core.808jj176e1.dll}
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/wwwroot/_framework/{MindExecution.Web.d8y80arq4m.dll → MindExecution.Web.6grqlsq22z.dll}
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|