@mindexec/cli 0.2.44 → 0.2.46
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/codex-runtime.js +75 -3
- package/package.json +1 -1
- package/remote-hub.js +119 -12
- package/scripts/remote-http-smoke.mjs +54 -0
- package/scripts/remote-hub-smoke.mjs +42 -0
- package/server.js +115 -23
- package/wwwroot/_content/MindExecution.Shared/css/app.css +1 -1
- package/wwwroot/_content/MindExecution.Shared/css/mind-map-overrides.css +19 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +249 -22
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +2 -0
- package/wwwroot/_framework/MindExecution.Core.xg9yy9l5dz.dll +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.z56elxihok.dll → MindExecution.Kernel.erg96341xf.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.p5cs4ap87v.dll → MindExecution.Plugins.Admin.11j9vpdm9u.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.s35og5uz44.dll → MindExecution.Plugins.Business.oyskf08knn.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.ueuo23qx6f.dll → MindExecution.Plugins.Concept.keia4ox68c.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.y74f55e8x3.dll → MindExecution.Plugins.Directory.7pus9p63ym.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.lhbyievfnk.dll → MindExecution.Plugins.PlanMaster.wr3pupzfyo.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.y87u77w5nn.dll → MindExecution.Plugins.YouTube.kpfew1eggc.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.3kkptsi9lw.dll → MindExecution.Shared.kzibxbai3y.dll} +0 -0
- package/wwwroot/_framework/MindExecution.Web.6fjnkr9ty4.dll +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/service-worker-assets.js +26 -26
- package/wwwroot/service-worker.js +1 -1
- package/wwwroot/_framework/MindExecution.Core.6rfnfdndxq.dll +0 -0
- package/wwwroot/_framework/MindExecution.Web.4ddj83yo5w.dll +0 -0
|
@@ -227,6 +227,14 @@ body.is-resizing .css3d-resolution-wrapper {
|
|
|
227
227
|
transition: none !important;
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
+
html.mindcanvas-platform-apple body.is-zooming .css3d-resolution-wrapper.selected,
|
|
231
|
+
html.mindcanvas-platform-apple body.is-panning .css3d-resolution-wrapper.selected,
|
|
232
|
+
html.mindcanvas-platform-apple body.mindcanvas-is-moving .css3d-resolution-wrapper.selected,
|
|
233
|
+
html.mindcanvas-platform-apple body.mindcanvas-is-dense .css3d-resolution-wrapper.selected {
|
|
234
|
+
-webkit-filter: none !important;
|
|
235
|
+
filter: none !important;
|
|
236
|
+
}
|
|
237
|
+
|
|
230
238
|
body.is-zooming .node-menu-wrapper,
|
|
231
239
|
body.is-panning .node-menu-wrapper,
|
|
232
240
|
body.is-zooming .map-node-memo__icon-popover,
|
|
@@ -1102,6 +1110,17 @@ body.is-resizing .css3d-resolution-wrapper.node-type-embed.selected {
|
|
|
1102
1110
|
filter: saturate(1.08) !important;
|
|
1103
1111
|
}
|
|
1104
1112
|
|
|
1113
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.selected,
|
|
1114
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.selection-style-agent.selected,
|
|
1115
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.node-type-note.selected,
|
|
1116
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.node-type-image.selected,
|
|
1117
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.node-type-video.selected,
|
|
1118
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.node-type-embed.selected,
|
|
1119
|
+
html.mindcanvas-platform-apple .css3d-resolution-wrapper.is-automation-relation-related:not(.selected) {
|
|
1120
|
+
-webkit-filter: none !important;
|
|
1121
|
+
filter: none !important;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1105
1124
|
.css3d-resolution-wrapper.node-type-image {
|
|
1106
1125
|
-webkit-box-shadow:
|
|
1107
1126
|
0 0 6px rgba(15, 23, 42, 0.25),
|
|
@@ -32,6 +32,27 @@
|
|
|
32
32
|
const REMOTE_FLEET_DISPLAY_NAME = 'Multi Desktop Monitor';
|
|
33
33
|
const REMOTE_FLEET_LEGACY_DISPLAY_NAME = 'Remote Fleet Monitor';
|
|
34
34
|
const _cssVideoProxyStateByVideo = new WeakMap();
|
|
35
|
+
|
|
36
|
+
function syncMindCanvasPlatformRenderClasses() {
|
|
37
|
+
try {
|
|
38
|
+
if (typeof document === 'undefined') return;
|
|
39
|
+
const nav = typeof navigator === 'object' ? navigator : null;
|
|
40
|
+
const uaDataPlatform = String(nav?.userAgentData?.platform || '');
|
|
41
|
+
const platform = String(nav?.platform || '');
|
|
42
|
+
const userAgent = String(nav?.userAgent || '');
|
|
43
|
+
const maxTouchPoints = Number(nav?.maxTouchPoints || 0);
|
|
44
|
+
const platformSignature = `${uaDataPlatform} ${platform} ${userAgent}`;
|
|
45
|
+
const isApplePlatform =
|
|
46
|
+
/\b(Mac|iPhone|iPad|iPod)\b/i.test(platformSignature) ||
|
|
47
|
+
(/Macintosh/i.test(userAgent) && maxTouchPoints > 1);
|
|
48
|
+
|
|
49
|
+
document.documentElement.classList.toggle('mindcanvas-platform-apple', isApplePlatform);
|
|
50
|
+
} catch {
|
|
51
|
+
// Platform hints are only a compositor workaround; ignore detection failures.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
syncMindCanvasPlatformRenderClasses();
|
|
35
56
|
// ▲▲▲ [Perf] ▲▲▲
|
|
36
57
|
|
|
37
58
|
// ▼▼▼ [New] 기본 마크다운 스타일 주입 ▼▼▼
|
|
@@ -8453,6 +8474,12 @@
|
|
|
8453
8474
|
let _businessAutomationPinDelegationBound = false;
|
|
8454
8475
|
let _businessAutomationConnectionDraft = null;
|
|
8455
8476
|
let _businessAutomationSelectedEdgeId = '';
|
|
8477
|
+
const BUSINESS_AUTOMATION_RELATION_CLASSES = [
|
|
8478
|
+
'is-automation-relation-anchor',
|
|
8479
|
+
'is-automation-relation-related',
|
|
8480
|
+
'is-automation-relation-upstream',
|
|
8481
|
+
'is-automation-relation-downstream'
|
|
8482
|
+
];
|
|
8456
8483
|
|
|
8457
8484
|
function ensureBusinessAutomationPinDelegation() {
|
|
8458
8485
|
if (_businessAutomationPinDelegationBound || typeof document === 'undefined') {
|
|
@@ -8953,6 +8980,181 @@
|
|
|
8953
8980
|
return edges;
|
|
8954
8981
|
}
|
|
8955
8982
|
|
|
8983
|
+
function createEmptyBusinessAutomationSelectionContext(anchorNodeId = '') {
|
|
8984
|
+
return {
|
|
8985
|
+
anchorNodeId: String(anchorNodeId || '').trim(),
|
|
8986
|
+
edgeIds: new Set(),
|
|
8987
|
+
relatedNodeIds: new Set(),
|
|
8988
|
+
upstreamNodeIds: new Set(),
|
|
8989
|
+
downstreamNodeIds: new Set(),
|
|
8990
|
+
hasRelation: false,
|
|
8991
|
+
key: ''
|
|
8992
|
+
};
|
|
8993
|
+
}
|
|
8994
|
+
|
|
8995
|
+
function getSingleBusinessAutomationSelectionId(module) {
|
|
8996
|
+
const selectedId = String(module?.selectedNodeIdJs || '').trim();
|
|
8997
|
+
if (!selectedId) {
|
|
8998
|
+
return '';
|
|
8999
|
+
}
|
|
9000
|
+
|
|
9001
|
+
const multiIds = module?.multiSelectedNodeIds instanceof Set
|
|
9002
|
+
? Array.from(module.multiSelectedNodeIds)
|
|
9003
|
+
.map(id => String(id || '').trim())
|
|
9004
|
+
.filter(Boolean)
|
|
9005
|
+
: [];
|
|
9006
|
+
const uniqueMultiIds = Array.from(new Set(multiIds));
|
|
9007
|
+
if (uniqueMultiIds.length > 1) {
|
|
9008
|
+
return '';
|
|
9009
|
+
}
|
|
9010
|
+
|
|
9011
|
+
if (uniqueMultiIds.length === 1 && uniqueMultiIds[0] !== selectedId) {
|
|
9012
|
+
return '';
|
|
9013
|
+
}
|
|
9014
|
+
|
|
9015
|
+
return selectedId;
|
|
9016
|
+
}
|
|
9017
|
+
|
|
9018
|
+
function isBusinessAutomationRelationHighlightEligible(module, nodeId) {
|
|
9019
|
+
const entry = module?.nodeObjectsById?.get?.(String(nodeId || '').trim()) || null;
|
|
9020
|
+
return isBusinessAutomationNode(entry?.model) || isBusinessAutomationContextSourceNode(entry?.model);
|
|
9021
|
+
}
|
|
9022
|
+
|
|
9023
|
+
function buildBusinessAutomationSelectionContextKey(context) {
|
|
9024
|
+
if (!context?.anchorNodeId || !context.hasRelation) {
|
|
9025
|
+
return '';
|
|
9026
|
+
}
|
|
9027
|
+
|
|
9028
|
+
const edgeIds = Array.from(context.edgeIds || []).sort().join(',');
|
|
9029
|
+
const relatedIds = Array.from(context.relatedNodeIds || []).sort().join(',');
|
|
9030
|
+
const upstreamIds = Array.from(context.upstreamNodeIds || []).sort().join(',');
|
|
9031
|
+
const downstreamIds = Array.from(context.downstreamNodeIds || []).sort().join(',');
|
|
9032
|
+
return [
|
|
9033
|
+
context.anchorNodeId,
|
|
9034
|
+
edgeIds,
|
|
9035
|
+
relatedIds,
|
|
9036
|
+
upstreamIds,
|
|
9037
|
+
downstreamIds
|
|
9038
|
+
].join('|');
|
|
9039
|
+
}
|
|
9040
|
+
|
|
9041
|
+
function buildBusinessAutomationSelectionContext(module, edges = null) {
|
|
9042
|
+
const selectedId = getSingleBusinessAutomationSelectionId(module);
|
|
9043
|
+
const context = createEmptyBusinessAutomationSelectionContext(selectedId);
|
|
9044
|
+
if (!selectedId || !isBusinessAutomationRelationHighlightEligible(module, selectedId)) {
|
|
9045
|
+
return context;
|
|
9046
|
+
}
|
|
9047
|
+
|
|
9048
|
+
const sourceEdges = Array.isArray(edges) ? edges : collectBusinessAutomationEdges(module);
|
|
9049
|
+
sourceEdges.forEach(edge => {
|
|
9050
|
+
const edgeId = String(edge?.id || '').trim();
|
|
9051
|
+
const sourceNodeId = String(edge?.sourceNodeId || '').trim();
|
|
9052
|
+
const targetNodeId = String(edge?.targetNodeId || '').trim();
|
|
9053
|
+
if (!edgeId || !sourceNodeId || !targetNodeId) {
|
|
9054
|
+
return;
|
|
9055
|
+
}
|
|
9056
|
+
|
|
9057
|
+
if (sourceNodeId === selectedId) {
|
|
9058
|
+
context.edgeIds.add(edgeId);
|
|
9059
|
+
context.relatedNodeIds.add(targetNodeId);
|
|
9060
|
+
context.downstreamNodeIds.add(targetNodeId);
|
|
9061
|
+
return;
|
|
9062
|
+
}
|
|
9063
|
+
|
|
9064
|
+
if (targetNodeId === selectedId) {
|
|
9065
|
+
context.edgeIds.add(edgeId);
|
|
9066
|
+
context.relatedNodeIds.add(sourceNodeId);
|
|
9067
|
+
context.upstreamNodeIds.add(sourceNodeId);
|
|
9068
|
+
}
|
|
9069
|
+
});
|
|
9070
|
+
|
|
9071
|
+
context.hasRelation = context.edgeIds.size > 0 || context.relatedNodeIds.size > 0;
|
|
9072
|
+
context.key = buildBusinessAutomationSelectionContextKey(context);
|
|
9073
|
+
return context;
|
|
9074
|
+
}
|
|
9075
|
+
|
|
9076
|
+
function getBusinessAutomationRelationDomTargets(module, nodeId) {
|
|
9077
|
+
const normalizedId = String(nodeId || '').trim();
|
|
9078
|
+
const targets = [];
|
|
9079
|
+
if (!normalizedId) {
|
|
9080
|
+
return targets;
|
|
9081
|
+
}
|
|
9082
|
+
|
|
9083
|
+
const entry = module?.nodeObjectsById?.get?.(normalizedId) || null;
|
|
9084
|
+
const wrapper = entry?.cssObject?.element || null;
|
|
9085
|
+
if (wrapper?.classList) {
|
|
9086
|
+
targets.push(wrapper);
|
|
9087
|
+
const inner = wrapper.querySelector?.(
|
|
9088
|
+
'.map-node-automation, .map-node-automation-context-source, .map-node, .map-node-memo, .map-node-template-card'
|
|
9089
|
+
) || null;
|
|
9090
|
+
if (inner?.classList) {
|
|
9091
|
+
targets.push(inner);
|
|
9092
|
+
}
|
|
9093
|
+
}
|
|
9094
|
+
|
|
9095
|
+
return Array.from(new Set(targets));
|
|
9096
|
+
}
|
|
9097
|
+
|
|
9098
|
+
function clearBusinessAutomationRelationClasses(module) {
|
|
9099
|
+
const nodes = module?.nodeObjectsById;
|
|
9100
|
+
if (nodes?.forEach) {
|
|
9101
|
+
nodes.forEach((entry, nodeId) => {
|
|
9102
|
+
getBusinessAutomationRelationDomTargets(module, nodeId)
|
|
9103
|
+
.forEach(element => element.classList.remove(...BUSINESS_AUTOMATION_RELATION_CLASSES));
|
|
9104
|
+
});
|
|
9105
|
+
return;
|
|
9106
|
+
}
|
|
9107
|
+
|
|
9108
|
+
module?.container?.querySelectorAll?.(
|
|
9109
|
+
BUSINESS_AUTOMATION_RELATION_CLASSES.map(className => `.${className}`).join(',')
|
|
9110
|
+
)?.forEach(element => element.classList.remove(...BUSINESS_AUTOMATION_RELATION_CLASSES));
|
|
9111
|
+
}
|
|
9112
|
+
|
|
9113
|
+
function applyBusinessAutomationRelationClasses(module, context) {
|
|
9114
|
+
clearBusinessAutomationRelationClasses(module);
|
|
9115
|
+
if (!context?.anchorNodeId || !context.hasRelation) {
|
|
9116
|
+
return;
|
|
9117
|
+
}
|
|
9118
|
+
|
|
9119
|
+
getBusinessAutomationRelationDomTargets(module, context.anchorNodeId)
|
|
9120
|
+
.forEach(element => element.classList.add('is-automation-relation-anchor'));
|
|
9121
|
+
|
|
9122
|
+
context.relatedNodeIds.forEach(nodeId => {
|
|
9123
|
+
getBusinessAutomationRelationDomTargets(module, nodeId)
|
|
9124
|
+
.forEach(element => element.classList.add('is-automation-relation-related'));
|
|
9125
|
+
});
|
|
9126
|
+
|
|
9127
|
+
context.upstreamNodeIds.forEach(nodeId => {
|
|
9128
|
+
getBusinessAutomationRelationDomTargets(module, nodeId)
|
|
9129
|
+
.forEach(element => element.classList.add('is-automation-relation-upstream'));
|
|
9130
|
+
});
|
|
9131
|
+
|
|
9132
|
+
context.downstreamNodeIds.forEach(nodeId => {
|
|
9133
|
+
getBusinessAutomationRelationDomTargets(module, nodeId)
|
|
9134
|
+
.forEach(element => element.classList.add('is-automation-relation-downstream'));
|
|
9135
|
+
});
|
|
9136
|
+
}
|
|
9137
|
+
|
|
9138
|
+
function syncBusinessAutomationSelectionContext(module = _module, options = {}) {
|
|
9139
|
+
if (!module) {
|
|
9140
|
+
return createEmptyBusinessAutomationSelectionContext();
|
|
9141
|
+
}
|
|
9142
|
+
|
|
9143
|
+
const context = buildBusinessAutomationSelectionContext(module, options.edges || null);
|
|
9144
|
+
const previousKey = String(module._businessAutomationSelectionContextKey || '');
|
|
9145
|
+
module._businessAutomationSelectionContext = context;
|
|
9146
|
+
if (options.force === true || previousKey !== context.key) {
|
|
9147
|
+
applyBusinessAutomationRelationClasses(module, context);
|
|
9148
|
+
module._businessAutomationSelectionContextKey = context.key;
|
|
9149
|
+
}
|
|
9150
|
+
|
|
9151
|
+
if (options.scheduleRender !== false) {
|
|
9152
|
+
scheduleBusinessAutomationEdgeRender(module);
|
|
9153
|
+
}
|
|
9154
|
+
|
|
9155
|
+
return context;
|
|
9156
|
+
}
|
|
9157
|
+
|
|
8956
9158
|
function isBusinessAutomationContextEdge(edge) {
|
|
8957
9159
|
const targetPinId = String(edge?.targetPinId || edge?.TargetPinId || '').trim().toLowerCase();
|
|
8958
9160
|
const contract = String(edge?.contract || edge?.Contract || '').trim();
|
|
@@ -9634,6 +9836,10 @@
|
|
|
9634
9836
|
}
|
|
9635
9837
|
|
|
9636
9838
|
const edges = collectBusinessAutomationEdges(module);
|
|
9839
|
+
const relationContext = syncBusinessAutomationSelectionContext(module, {
|
|
9840
|
+
edges,
|
|
9841
|
+
scheduleRender: false
|
|
9842
|
+
});
|
|
9637
9843
|
if (_businessAutomationSelectedEdgeId
|
|
9638
9844
|
&& !edges.some(edge => String(edge?.id || '') === _businessAutomationSelectedEdgeId)) {
|
|
9639
9845
|
_businessAutomationSelectedEdgeId = '';
|
|
@@ -9711,6 +9917,7 @@
|
|
|
9711
9917
|
: getAutomationPinTheme(sourceType);
|
|
9712
9918
|
const pathData = buildBusinessAutomationEdgePathData(source, target);
|
|
9713
9919
|
const isSelected = String(edge.id || '') === _businessAutomationSelectedEdgeId;
|
|
9920
|
+
const isRelationHighlighted = relationContext?.edgeIds?.has?.(String(edge.id || '').trim()) === true;
|
|
9714
9921
|
const hitPointerEvents = _businessAutomationConnectionDraft ? 'none' : 'stroke';
|
|
9715
9922
|
const hitPath = createBusinessAutomationSvgElement('path', {
|
|
9716
9923
|
d: pathData,
|
|
@@ -9730,12 +9937,14 @@
|
|
|
9730
9937
|
|
|
9731
9938
|
const path = createBusinessAutomationSvgElement('path', {
|
|
9732
9939
|
d: pathData,
|
|
9733
|
-
class: `mind-map-business-automation-edge-path${isSelected ? ' is-selected' : ''}`,
|
|
9940
|
+
class: `mind-map-business-automation-edge-path${isSelected ? ' is-selected' : ''}${isRelationHighlighted ? ' is-relation-highlight' : ''}`,
|
|
9734
9941
|
stroke: theme.edge,
|
|
9735
|
-
'stroke-width': isSelected ? '3.6' : (isContextEdge ? '2.1' : '2.4'),
|
|
9736
|
-
opacity: isSelected ? '0.96' : (isContextEdge ? '0.68' : '0.82'),
|
|
9942
|
+
'stroke-width': isSelected ? '3.6' : (isRelationHighlighted ? (isContextEdge ? '2.8' : '3') : (isContextEdge ? '2.1' : '2.4')),
|
|
9943
|
+
opacity: isSelected ? '0.96' : (isRelationHighlighted ? '0.94' : (isContextEdge ? '0.68' : '0.82')),
|
|
9737
9944
|
'stroke-dasharray': isContextEdge ? '7 7' : '',
|
|
9738
|
-
filter: isSelected
|
|
9945
|
+
filter: isSelected
|
|
9946
|
+
? `drop-shadow(0 0 7px ${theme.edge})`
|
|
9947
|
+
: (isRelationHighlighted ? `drop-shadow(0 0 5px ${theme.edge})` : '')
|
|
9739
9948
|
});
|
|
9740
9949
|
path.style.pointerEvents = 'none';
|
|
9741
9950
|
path.dataset.edgeId = edge.id;
|
|
@@ -9744,21 +9953,21 @@
|
|
|
9744
9953
|
const sourceDot = createBusinessAutomationSvgElement('circle', {
|
|
9745
9954
|
cx: source.x.toFixed(1),
|
|
9746
9955
|
cy: source.y.toFixed(1),
|
|
9747
|
-
r: isSelected ? '4.2' : '3.2',
|
|
9956
|
+
r: (isSelected || isRelationHighlighted) ? '4.2' : '3.2',
|
|
9748
9957
|
fill: '#ffffff',
|
|
9749
9958
|
stroke: theme.edge,
|
|
9750
9959
|
'stroke-width': '1.8',
|
|
9751
|
-
opacity: isContextEdge ? '0.82' : '0.96'
|
|
9960
|
+
opacity: isRelationHighlighted ? '0.96' : (isContextEdge ? '0.82' : '0.96')
|
|
9752
9961
|
});
|
|
9753
9962
|
sourceDot.style.pointerEvents = 'none';
|
|
9754
9963
|
const targetDot = createBusinessAutomationSvgElement('circle', {
|
|
9755
9964
|
cx: target.x.toFixed(1),
|
|
9756
9965
|
cy: target.y.toFixed(1),
|
|
9757
|
-
r: isSelected ? '4.2' : '3.2',
|
|
9966
|
+
r: (isSelected || isRelationHighlighted) ? '4.2' : '3.2',
|
|
9758
9967
|
fill: theme.edge,
|
|
9759
9968
|
stroke: '#ffffff',
|
|
9760
9969
|
'stroke-width': '1.4',
|
|
9761
|
-
opacity: isContextEdge ? '0.82' : '0.96'
|
|
9970
|
+
opacity: isRelationHighlighted ? '0.96' : (isContextEdge ? '0.82' : '0.96')
|
|
9762
9971
|
});
|
|
9763
9972
|
targetDot.style.pointerEvents = 'none';
|
|
9764
9973
|
|
|
@@ -12748,13 +12957,30 @@
|
|
|
12748
12957
|
}
|
|
12749
12958
|
|
|
12750
12959
|
function hasRemoteFleetThumbnail(device) {
|
|
12751
|
-
|
|
12752
|
-
return /^data:image\/(png|jpe?g|webp|svg\+xml);base64,/i.test(dataUrl);
|
|
12960
|
+
return isRemoteFleetFrameSource(getRemoteFleetFrameSource(device, 'thumbnail'));
|
|
12753
12961
|
}
|
|
12754
12962
|
|
|
12755
12963
|
function hasRemoteFleetLiveFrame(device) {
|
|
12756
|
-
|
|
12757
|
-
|
|
12964
|
+
return isRemoteFleetFrameSource(getRemoteFleetFrameSource(device, 'live'));
|
|
12965
|
+
}
|
|
12966
|
+
|
|
12967
|
+
function isRemoteFleetFrameSource(value) {
|
|
12968
|
+
const source = String(value || '').trim();
|
|
12969
|
+
return /^data:image\/(png|jpe?g|webp|svg\+xml);base64,/i.test(source)
|
|
12970
|
+
|| /^https?:\/\/(?:127(?:\.\d{1,3}){3}|localhost|\[::1\])(?::\d+)?\/api\/remote\//i.test(source)
|
|
12971
|
+
|| /^\/api\/remote\//i.test(source);
|
|
12972
|
+
}
|
|
12973
|
+
|
|
12974
|
+
function getRemoteFleetFrameSource(device, frameKind) {
|
|
12975
|
+
if (frameKind === 'live') {
|
|
12976
|
+
return String(
|
|
12977
|
+
getRemoteFleetDeviceField(device, 'liveFrameUrl', 'LiveFrameUrl', '')
|
|
12978
|
+
|| getRemoteFleetDeviceField(device, 'liveFrameDataUrl', 'LiveFrameDataUrl', ''));
|
|
12979
|
+
}
|
|
12980
|
+
|
|
12981
|
+
return String(
|
|
12982
|
+
getRemoteFleetDeviceField(device, 'thumbnailFrameUrl', 'ThumbnailFrameUrl', '')
|
|
12983
|
+
|| getRemoteFleetDeviceField(device, 'thumbnailDataUrl', 'ThumbnailDataUrl', ''));
|
|
12758
12984
|
}
|
|
12759
12985
|
|
|
12760
12986
|
function isRemoteFleetLiveActive(device) {
|
|
@@ -13036,9 +13262,9 @@
|
|
|
13036
13262
|
const liveStreamId = String(getRemoteFleetDeviceField(device, 'liveStreamId', 'LiveStreamId', ''));
|
|
13037
13263
|
const hasLiveFrame = hasRemoteFleetLiveFrame(device);
|
|
13038
13264
|
const hasThumbnail = hasRemoteFleetThumbnail(device);
|
|
13039
|
-
const
|
|
13040
|
-
?
|
|
13041
|
-
:
|
|
13265
|
+
const previewSource = hasLiveFrame
|
|
13266
|
+
? getRemoteFleetFrameSource(device, 'live')
|
|
13267
|
+
: getRemoteFleetFrameSource(device, 'thumbnail');
|
|
13042
13268
|
const previewAt = hasLiveFrame
|
|
13043
13269
|
? String(getRemoteFleetDeviceField(device, 'liveFrameReceivedAt', 'LiveFrameReceivedAt', ''))
|
|
13044
13270
|
: String(getRemoteFleetDeviceField(device, 'thumbnailReceivedAt', 'ThumbnailReceivedAt',
|
|
@@ -13100,7 +13326,7 @@
|
|
|
13100
13326
|
`;
|
|
13101
13327
|
if (hasLiveFrame || hasThumbnail) {
|
|
13102
13328
|
const image = document.createElement('img');
|
|
13103
|
-
image.src =
|
|
13329
|
+
image.src = previewSource;
|
|
13104
13330
|
image.alt = `${name} screen`;
|
|
13105
13331
|
image.loading = 'lazy';
|
|
13106
13332
|
image.decoding = 'async';
|
|
@@ -13895,7 +14121,7 @@
|
|
|
13895
14121
|
const focusedId = getRemoteFleetDeviceId(focusedDevice);
|
|
13896
14122
|
const focusedName = getRemoteFleetDeviceName(focusedDevice);
|
|
13897
14123
|
const liveActive = isRemoteFleetLiveActive(focusedDevice);
|
|
13898
|
-
const
|
|
14124
|
+
const liveFrameSource = getRemoteFleetFrameSource(focusedDevice, 'live');
|
|
13899
14125
|
const liveFrameAt = String(getRemoteFleetDeviceField(focusedDevice, 'liveFrameReceivedAt', 'LiveFrameReceivedAt', ''));
|
|
13900
14126
|
const liveStreamId = String(getRemoteFleetDeviceField(focusedDevice, 'liveStreamId', 'LiveStreamId', ''));
|
|
13901
14127
|
const hasLiveFrame = hasRemoteFleetLiveFrame(focusedDevice);
|
|
@@ -13926,7 +14152,7 @@
|
|
|
13926
14152
|
`;
|
|
13927
14153
|
if (hasLiveFrame) {
|
|
13928
14154
|
const image = document.createElement('img');
|
|
13929
|
-
image.src =
|
|
14155
|
+
image.src = liveFrameSource;
|
|
13930
14156
|
image.alt = `${focusedName} live screen`;
|
|
13931
14157
|
image.decoding = 'async';
|
|
13932
14158
|
image.style.cssText = `
|
|
@@ -14029,13 +14255,13 @@
|
|
|
14029
14255
|
const createDevicePreview = (device, mode = 'tile') => {
|
|
14030
14256
|
const name = getRemoteFleetDeviceName(device);
|
|
14031
14257
|
const connectedDevice = isRemoteFleetDeviceConnected(device);
|
|
14032
|
-
const thumbnailDataUrl = String(device?.thumbnailDataUrl || device?.ThumbnailDataUrl || '');
|
|
14033
14258
|
const thumbnailCapturedAt = String(device?.thumbnailCapturedAt || device?.ThumbnailCapturedAt || '');
|
|
14034
|
-
const liveFrameDataUrl = String(device?.liveFrameDataUrl || device?.LiveFrameDataUrl || '');
|
|
14035
14259
|
const liveFrameReceivedAt = String(device?.liveFrameReceivedAt || device?.LiveFrameReceivedAt || '');
|
|
14036
14260
|
const hasThumbnail = hasRemoteFleetThumbnail(device);
|
|
14037
14261
|
const hasLiveFrame = hasRemoteFleetLiveFrame(device);
|
|
14038
|
-
const
|
|
14262
|
+
const previewSource = hasLiveFrame
|
|
14263
|
+
? getRemoteFleetFrameSource(device, 'live')
|
|
14264
|
+
: getRemoteFleetFrameSource(device, 'thumbnail');
|
|
14039
14265
|
const previewAt = hasLiveFrame ? liveFrameReceivedAt : thumbnailCapturedAt;
|
|
14040
14266
|
const isDetail = mode === 'detail';
|
|
14041
14267
|
|
|
@@ -14053,7 +14279,7 @@
|
|
|
14053
14279
|
|
|
14054
14280
|
if (hasLiveFrame || hasThumbnail) {
|
|
14055
14281
|
const image = document.createElement('img');
|
|
14056
|
-
image.src =
|
|
14282
|
+
image.src = previewSource;
|
|
14057
14283
|
image.alt = hasLiveFrame ? `${name} live frame` : `${name} thumbnail`;
|
|
14058
14284
|
image.loading = 'lazy';
|
|
14059
14285
|
image.decoding = 'async';
|
|
@@ -19043,6 +19269,7 @@
|
|
|
19043
19269
|
renderRemoteFleetDeviceForTest: renderRemoteFleetDevice,
|
|
19044
19270
|
renderBusinessAutomationEdges: renderBusinessAutomationEdges,
|
|
19045
19271
|
scheduleBusinessAutomationEdgeRender: scheduleBusinessAutomationEdgeRender,
|
|
19272
|
+
syncBusinessAutomationSelectionContext: syncBusinessAutomationSelectionContext,
|
|
19046
19273
|
hideBusinessAutomationFloatingTooltipForNode: hideBusinessAutomationFloatingTooltipForNode,
|
|
19047
19274
|
update: update // Export
|
|
19048
19275
|
};
|
|
@@ -3822,6 +3822,7 @@
|
|
|
3822
3822
|
});
|
|
3823
3823
|
module._lastLodSelectionIds = currentIds;
|
|
3824
3824
|
}
|
|
3825
|
+
window.MindMapCss3DManager?.syncBusinessAutomationSelectionContext?.(module);
|
|
3825
3826
|
return;
|
|
3826
3827
|
}
|
|
3827
3828
|
|
|
@@ -3863,6 +3864,7 @@
|
|
|
3863
3864
|
} else {
|
|
3864
3865
|
lodRenderer._lastAppliedLodSelectionKey = `${primarySelectionId}|${Array.from(multiSelectedIds).sort().join(',')}`;
|
|
3865
3866
|
}
|
|
3867
|
+
window.MindMapCss3DManager?.syncBusinessAutomationSelectionContext?.(module);
|
|
3866
3868
|
module._forceUpdateFrames = Math.max(module._forceUpdateFrames || 0, 1);
|
|
3867
3869
|
}
|
|
3868
3870
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-85uTc0gcvy3kY8SBQJxkQmIrLfblhTpX8tZWjJP3QnE=",
|
|
5
5
|
"fingerprinting": {
|
|
6
6
|
"Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
|
|
7
7
|
"Markdig.d1j7v41cl1.dll": "Markdig.dll",
|
|
@@ -123,16 +123,16 @@
|
|
|
123
123
|
"System.brmz7yk5qh.dll": "System.dll",
|
|
124
124
|
"netstandard.yvr3prsx0x.dll": "netstandard.dll",
|
|
125
125
|
"System.Private.CoreLib.ns29bor93l.dll": "System.Private.CoreLib.dll",
|
|
126
|
-
"MindExecution.Core.
|
|
127
|
-
"MindExecution.Kernel.
|
|
128
|
-
"MindExecution.Plugins.Admin.
|
|
129
|
-
"MindExecution.Plugins.Business.
|
|
130
|
-
"MindExecution.Plugins.Concept.
|
|
131
|
-
"MindExecution.Plugins.Directory.
|
|
132
|
-
"MindExecution.Plugins.PlanMaster.
|
|
133
|
-
"MindExecution.Plugins.YouTube.
|
|
134
|
-
"MindExecution.Shared.
|
|
135
|
-
"MindExecution.Web.
|
|
126
|
+
"MindExecution.Core.xg9yy9l5dz.dll": "MindExecution.Core.dll",
|
|
127
|
+
"MindExecution.Kernel.erg96341xf.dll": "MindExecution.Kernel.dll",
|
|
128
|
+
"MindExecution.Plugins.Admin.11j9vpdm9u.dll": "MindExecution.Plugins.Admin.dll",
|
|
129
|
+
"MindExecution.Plugins.Business.oyskf08knn.dll": "MindExecution.Plugins.Business.dll",
|
|
130
|
+
"MindExecution.Plugins.Concept.keia4ox68c.dll": "MindExecution.Plugins.Concept.dll",
|
|
131
|
+
"MindExecution.Plugins.Directory.7pus9p63ym.dll": "MindExecution.Plugins.Directory.dll",
|
|
132
|
+
"MindExecution.Plugins.PlanMaster.wr3pupzfyo.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
133
|
+
"MindExecution.Plugins.YouTube.kpfew1eggc.dll": "MindExecution.Plugins.YouTube.dll",
|
|
134
|
+
"MindExecution.Shared.kzibxbai3y.dll": "MindExecution.Shared.dll",
|
|
135
|
+
"MindExecution.Web.6fjnkr9ty4.dll": "MindExecution.Web.dll",
|
|
136
136
|
"dotnet.js": "dotnet.js",
|
|
137
137
|
"dotnet.native.qc8g39g30v.js": "dotnet.native.js",
|
|
138
138
|
"dotnet.native.boem75ye5i.wasm": "dotnet.native.wasm",
|
|
@@ -278,18 +278,18 @@
|
|
|
278
278
|
"System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
|
|
279
279
|
"System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
|
|
280
280
|
"netstandard.yvr3prsx0x.dll": "sha256-EksNn8Luo4bOWqJ6X7dIe9qG9oOqwOVzjH2xYyMNi+E=",
|
|
281
|
-
"MindExecution.Core.
|
|
282
|
-
"MindExecution.Kernel.
|
|
283
|
-
"MindExecution.Plugins.Concept.
|
|
284
|
-
"MindExecution.Plugins.PlanMaster.
|
|
285
|
-
"MindExecution.Shared.
|
|
286
|
-
"MindExecution.Web.
|
|
281
|
+
"MindExecution.Core.xg9yy9l5dz.dll": "sha256-cRrcPtFn2SUkdgWA68l7+CQbGso1QWczG5az1KYpLUU=",
|
|
282
|
+
"MindExecution.Kernel.erg96341xf.dll": "sha256-5hDopeSFSFHb5tDeLFj0jrSt6XRq4SYxB8nyFJ6H9RQ=",
|
|
283
|
+
"MindExecution.Plugins.Concept.keia4ox68c.dll": "sha256-rO8bWy0n6NZKqMzFpcIjy/p1kG8mPSuTUZ+UMTWugf8=",
|
|
284
|
+
"MindExecution.Plugins.PlanMaster.wr3pupzfyo.dll": "sha256-pE7MM4cMUkHzg5wTQtq8Vgk+RSjlQtO44T9AwQsYDqw=",
|
|
285
|
+
"MindExecution.Shared.kzibxbai3y.dll": "sha256-4CE9pNlfu9pIL+wwsbaU4ARQLcYelkl2sqkwAJD9sD4=",
|
|
286
|
+
"MindExecution.Web.6fjnkr9ty4.dll": "sha256-7o2Y3AvthOWiFF9+lHnqahGmcN/0tDuBtJhxGdcMN44="
|
|
287
287
|
},
|
|
288
288
|
"lazyAssembly": {
|
|
289
|
-
"MindExecution.Plugins.Admin.
|
|
290
|
-
"MindExecution.Plugins.Business.
|
|
291
|
-
"MindExecution.Plugins.Directory.
|
|
292
|
-
"MindExecution.Plugins.YouTube.
|
|
289
|
+
"MindExecution.Plugins.Admin.11j9vpdm9u.dll": "sha256-lZvp68Zm2iFwt93gRGlHDKVnywJT2hHxA3JHu4Z3PfA=",
|
|
290
|
+
"MindExecution.Plugins.Business.oyskf08knn.dll": "sha256-oL53lWZ8Lp8lZuqc3UP+qIGSEVKJvVvfov+2xyQ3INg=",
|
|
291
|
+
"MindExecution.Plugins.Directory.7pus9p63ym.dll": "sha256-a1eUvklwiLwuCPBk05omRoirn1tRqVgjogVW8/UAAuc=",
|
|
292
|
+
"MindExecution.Plugins.YouTube.kpfew1eggc.dll": "sha256-COvvpOYO8nsEePBr3CCF4Wv0CWfvvOAoXn54tmikwwc="
|
|
293
293
|
}
|
|
294
294
|
},
|
|
295
295
|
"cacheBootResources": true,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "nO5c8M3Z",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"url": "_content/MindExecution.Shared/css/admin-dashboard.css"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
"hash": "sha256-
|
|
41
|
+
"hash": "sha256-nHPgHOJ41KrOimOUx38PS5DOTCfNmV/nMcE3kxw34CQ=",
|
|
42
42
|
"url": "_content/MindExecution.Shared/css/app.css"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"hash": "sha256-
|
|
45
|
+
"hash": "sha256-bM3TPSd4WDlrAJjzMh91OLXSpkFX5/3qUs84piTAEKA=",
|
|
46
46
|
"url": "_content/MindExecution.Shared/css/mind-map-overrides.css"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"hash": "sha256-
|
|
89
|
+
"hash": "sha256-2LFL3oGey+usyB7lpywzpKYMhBmlMhrXi9IZdtdUJZU=",
|
|
90
90
|
"url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"url": "_content/MindExecution.Shared/js/mind-map-node-search-worker.js"
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
|
-
"hash": "sha256-
|
|
137
|
+
"hash": "sha256-E2IUENogOw5hzGtSFknt06j0env1GvNAc3XcEaTvGdE=",
|
|
138
138
|
"url": "_content/MindExecution.Shared/js/mind-map-nodes.js"
|
|
139
139
|
},
|
|
140
140
|
{
|
|
@@ -410,44 +410,44 @@
|
|
|
410
410
|
"url": "_framework/MimeMapping.og9ys58ylm.dll"
|
|
411
411
|
},
|
|
412
412
|
{
|
|
413
|
-
"hash": "sha256-
|
|
414
|
-
"url": "_framework/MindExecution.Core.
|
|
413
|
+
"hash": "sha256-cRrcPtFn2SUkdgWA68l7+CQbGso1QWczG5az1KYpLUU=",
|
|
414
|
+
"url": "_framework/MindExecution.Core.xg9yy9l5dz.dll"
|
|
415
415
|
},
|
|
416
416
|
{
|
|
417
|
-
"hash": "sha256-
|
|
418
|
-
"url": "_framework/MindExecution.Kernel.
|
|
417
|
+
"hash": "sha256-5hDopeSFSFHb5tDeLFj0jrSt6XRq4SYxB8nyFJ6H9RQ=",
|
|
418
|
+
"url": "_framework/MindExecution.Kernel.erg96341xf.dll"
|
|
419
419
|
},
|
|
420
420
|
{
|
|
421
|
-
"hash": "sha256-
|
|
422
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
421
|
+
"hash": "sha256-lZvp68Zm2iFwt93gRGlHDKVnywJT2hHxA3JHu4Z3PfA=",
|
|
422
|
+
"url": "_framework/MindExecution.Plugins.Admin.11j9vpdm9u.dll"
|
|
423
423
|
},
|
|
424
424
|
{
|
|
425
|
-
"hash": "sha256-
|
|
426
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
425
|
+
"hash": "sha256-oL53lWZ8Lp8lZuqc3UP+qIGSEVKJvVvfov+2xyQ3INg=",
|
|
426
|
+
"url": "_framework/MindExecution.Plugins.Business.oyskf08knn.dll"
|
|
427
427
|
},
|
|
428
428
|
{
|
|
429
|
-
"hash": "sha256-
|
|
430
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
429
|
+
"hash": "sha256-rO8bWy0n6NZKqMzFpcIjy/p1kG8mPSuTUZ+UMTWugf8=",
|
|
430
|
+
"url": "_framework/MindExecution.Plugins.Concept.keia4ox68c.dll"
|
|
431
431
|
},
|
|
432
432
|
{
|
|
433
|
-
"hash": "sha256-
|
|
434
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
433
|
+
"hash": "sha256-a1eUvklwiLwuCPBk05omRoirn1tRqVgjogVW8/UAAuc=",
|
|
434
|
+
"url": "_framework/MindExecution.Plugins.Directory.7pus9p63ym.dll"
|
|
435
435
|
},
|
|
436
436
|
{
|
|
437
|
-
"hash": "sha256-
|
|
438
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
437
|
+
"hash": "sha256-pE7MM4cMUkHzg5wTQtq8Vgk+RSjlQtO44T9AwQsYDqw=",
|
|
438
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.wr3pupzfyo.dll"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
|
-
"hash": "sha256-
|
|
442
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
441
|
+
"hash": "sha256-COvvpOYO8nsEePBr3CCF4Wv0CWfvvOAoXn54tmikwwc=",
|
|
442
|
+
"url": "_framework/MindExecution.Plugins.YouTube.kpfew1eggc.dll"
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
"hash": "sha256-
|
|
446
|
-
"url": "_framework/MindExecution.Shared.
|
|
445
|
+
"hash": "sha256-4CE9pNlfu9pIL+wwsbaU4ARQLcYelkl2sqkwAJD9sD4=",
|
|
446
|
+
"url": "_framework/MindExecution.Shared.kzibxbai3y.dll"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Web.
|
|
449
|
+
"hash": "sha256-7o2Y3AvthOWiFF9+lHnqahGmcN/0tDuBtJhxGdcMN44=",
|
|
450
|
+
"url": "_framework/MindExecution.Web.6fjnkr9ty4.dll"
|
|
451
451
|
},
|
|
452
452
|
{
|
|
453
453
|
"hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
|
|
@@ -770,7 +770,7 @@
|
|
|
770
770
|
"url": "_framework/Websocket.Client.vapounvmnl.dll"
|
|
771
771
|
},
|
|
772
772
|
{
|
|
773
|
-
"hash": "sha256-
|
|
773
|
+
"hash": "sha256-ZSebVg6+73YAEhmuXnGeKZGeTBILK2WJbFuyP6Ydv2Q=",
|
|
774
774
|
"url": "_framework/blazor.boot.json"
|
|
775
775
|
},
|
|
776
776
|
{
|