Flowfile 0.3.9__py3-none-any.whl → 0.3.10__py3-none-any.whl
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.
Potentially problematic release.
This version of Flowfile might be problematic. Click here for more details.
- flowfile/__init__.py +1 -1
- flowfile/api.py +0 -1
- flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-d7c2c028.js} +2 -2
- flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-d467329f.js} +11 -78
- flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-071b8b00.js} +12 -79
- flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
- flowfile/web/static/assets/ContextMenu-2dea5e27.js +41 -0
- flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
- flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
- flowfile/web/static/assets/ContextMenu-785554c4.js +41 -0
- flowfile/web/static/assets/ContextMenu-a51e19ea.js +41 -0
- flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
- flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
- flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-cf68ec7a.js} +14 -84
- flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-435c5dd8.js} +3 -3
- flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-349e33a8.js} +2 -2
- flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-8075bd28.js} +14 -114
- flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
- flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-3e2dda89.js} +13 -74
- flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
- flowfile/web/static/assets/ExploreData-76ec698c.js +192 -0
- flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-609a265c.js} +8 -79
- flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-97cff793.js} +12 -85
- flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
- flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-09de0ec9.js} +18 -85
- flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
- flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
- flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-bdf70248.js} +16 -87
- flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-0b5a0e05.js} +13 -159
- flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
- flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
- flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-eaddadde.js} +12 -75
- flowfile/web/static/assets/{Join-5a78a203.js → Join-3313371b.js} +15 -85
- flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
- flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
- flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-e8bfc0be.js} +11 -82
- flowfile/web/static/assets/{Output-411ecaee.js → Output-7303bb09.js} +13 -243
- flowfile/web/static/assets/Output-ddc9079f.css +37 -0
- flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-3b1c54ef.js} +14 -138
- flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
- flowfile/web/static/assets/PivotValidation-3bb36c8f.js +61 -0
- flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
- flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
- flowfile/web/static/assets/PivotValidation-eaa819c0.js +61 -0
- flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-aa12e25d.js} +13 -80
- flowfile/web/static/assets/Read-6b17491f.css +62 -0
- flowfile/web/static/assets/Read-a2bfc618.js +243 -0
- flowfile/web/static/assets/RecordCount-aa0dc082.js +53 -0
- flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-48ee1a3b.js} +8 -80
- flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
- flowfile/web/static/assets/SQLQueryComponent-e149dbf2.js +38 -0
- flowfile/web/static/assets/{Sample-b4a18476.js → Sample-f06cb97a.js} +8 -77
- flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-37f34886.js} +2 -2
- flowfile/web/static/assets/{Select-727688dc.js → Select-b60e6c47.js} +11 -85
- flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
- flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
- flowfile/web/static/assets/SettingsSection-70e5a7b1.js +53 -0
- flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
- flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-75b6cf4f.js} +2 -40
- flowfile/web/static/assets/SettingsSection-e57a672e.js +45 -0
- flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
- flowfile/web/static/assets/{Sort-be3339a8.js → Sort-51b1ee4d.js} +12 -97
- flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-26835f8f.js} +14 -83
- flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
- flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-88a4cd0c.js} +2 -2
- flowfile/web/static/assets/Union-4d0088eb.js +77 -0
- flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
- flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-7d554a62.js} +22 -91
- flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
- flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
- flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-4668595c.js} +12 -166
- flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
- flowfile/web/static/assets/UnpivotValidation-d4f0e0e8.js +51 -0
- flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-5324d566.js} +4 -264
- flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
- flowfile/web/static/assets/{api-cb00cce6.js → api-271ed117.js} +1 -1
- flowfile/web/static/assets/{api-023d1733.js → api-31e4fea6.js} +1 -1
- flowfile/web/static/assets/{designer-2197d782.css → designer-091bdc3f.css} +819 -184
- flowfile/web/static/assets/{designer-6c322d8e.js → designer-bf3d9487.js} +2191 -703
- flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-4d0a1cea.js} +1 -1
- flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-025888df.js} +1 -1
- flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-1df991ec.js} +2 -2
- flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-d3b2b2ac.js} +3 -3
- flowfile/web/static/assets/{index-683fc198.js → index-d0518598.js} +210 -31
- flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
- flowfile/web/static/assets/outputCsv-d8457527.js +86 -0
- flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
- flowfile/web/static/assets/outputExcel-be89153e.js +56 -0
- flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
- flowfile/web/static/assets/outputParquet-fabb445a.js +31 -0
- flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
- flowfile/web/static/assets/readCsv-e8359522.js +178 -0
- flowfile/web/static/assets/readExcel-dabaf51b.js +203 -0
- flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
- flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
- flowfile/web/static/assets/readParquet-e0771ef2.js +26 -0
- flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-ce823eee.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-5476546e.js} +7 -7
- flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
- flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-9ed00d50.js} +29 -33
- flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-7bca2d9b.js} +1 -1
- flowfile/web/static/index.html +1 -1
- {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/METADATA +1 -1
- {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/RECORD +129 -97
- flowfile_core/configs/flow_logger.py +5 -13
- flowfile_core/configs/node_store/nodes.py +303 -44
- flowfile_core/configs/settings.py +2 -1
- flowfile_core/database/connection.py +5 -21
- flowfile_core/fileExplorer/funcs.py +239 -121
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +28 -8
- flowfile_core/flowfile/flow_graph.py +97 -33
- flowfile_core/flowfile/flow_node/flow_node.py +41 -9
- flowfile_core/flowfile/handler.py +22 -3
- flowfile_core/flowfile/schema_callbacks.py +8 -4
- flowfile_core/flowfile/setting_generator/settings.py +0 -1
- flowfile_core/main.py +4 -1
- flowfile_core/routes/routes.py +59 -10
- flowfile_core/schemas/input_schema.py +0 -1
- flowfile_core/schemas/output_model.py +5 -2
- flowfile_core/schemas/schemas.py +2 -0
- flowfile_core/schemas/transform_schema.py +1 -0
- flowfile_worker/__init__.py +6 -35
- flowfile_worker/main.py +5 -2
- flowfile_worker/routes.py +47 -5
- shared/__init__.py +15 -0
- shared/storage_config.py +243 -0
- flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
- flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
- flowfile/web/static/assets/Read-80dc1675.css +0 -197
- flowfile/web/static/assets/Read-c3b1929c.js +0 -701
- flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
- flowfile/web/static/assets/Union-89fd73dc.js +0 -146
- flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
- flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
- flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
- {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/LICENSE +0 -0
- {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/WHEEL +0 -0
- {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/entry_points.txt +0 -0
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { a as axios, r as ref, o as onUnmounted, E as ElNotification, d as defineComponent, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, g as createTextVNode, u as unref, h as createBlock, i as createCommentVNode, _ as _export_sfc, j as defineStore, k as getDefaultExportFromCjs, l as computed$1, m as watch$1, n as onMounted, p as createBaseVNode, t as toDisplayString, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, x as withKeys, y as _imports_1, z as ElMessage, A as ElMessageBox, B as inject, C as effectScope, D as provide, G as getCurrentInstance, H as getCurrentScope, I as onScopeDispose, J as createPropsRestProxy, K as toRef, L as renderSlot, M as reactive, N as useSlots, O as isRef, P as toRefs$1, Q as customRef, R as nextTick, S as onBeforeMount, T as normalizeStyle, U as onBeforeUnmount, V as isMemoSame, W as toValue$1, X as shallowRef, Y as h, Z as markRaw$1, $ as readonly, a0 as useAttrs, a1 as mergeProps, a2 as resolveDynamicComponent, a3 as watchEffect, a4 as normalizeProps, a5 as defineAsyncComponent, a6 as onErrorCaptured, a7 as __vitePreload, a8 as withDirectives, a9 as vModelText, aa as Teleport, ab as guardReactiveProps, ac as Transition$2, ad as createStaticVNode, ae as render, af as vShow, ag as authService, ah as flowfileCorebaseURL } from "./index-d0518598.js";
|
|
8
|
+
import { u as useNodeStore, P as PopOver, a as Parser, N as NodeSet, b as NodeType, D as DefaultBufferLength, c as NodeProp, T as Tree, I as IterMode, s as styleTags, t as tags, L as LanguageSupport, d as syntaxTree, i as ifNotIn, e as LRLanguage, f as indentNodeProp, g as delimitedIndent, h as foldNodeProp, j as foldInside, k as completeFromList, l as NodeWeakMap, m as snippetCompletion, H as HighlightStyle, n as syntaxHighlighting, E as EditorView, o as T } from "./vue-codemirror.esm-9ed00d50.js";
|
|
3
9
|
const saveFlow = async (flowId, flowPath) => {
|
|
4
10
|
try {
|
|
5
11
|
await axios.get("/save_flow", {
|
|
@@ -15,14 +21,17 @@ const saveFlow = async (flowId, flowPath) => {
|
|
|
15
21
|
console.error("There was an error saving the flow:", error);
|
|
16
22
|
}
|
|
17
23
|
};
|
|
18
|
-
async function createFlow(flowPath) {
|
|
19
|
-
console.log("Creating flow", flowPath);
|
|
24
|
+
async function createFlow(flowPath = null, name = null) {
|
|
25
|
+
console.log("Creating flow", flowPath, name);
|
|
20
26
|
const response = await axios.post(
|
|
21
27
|
"/editor/create_flow",
|
|
22
28
|
{},
|
|
23
29
|
{
|
|
24
30
|
headers: { accept: "application/json" },
|
|
25
|
-
params: {
|
|
31
|
+
params: {
|
|
32
|
+
flow_path: flowPath,
|
|
33
|
+
name
|
|
34
|
+
}
|
|
26
35
|
}
|
|
27
36
|
);
|
|
28
37
|
if (response.status === 200) {
|
|
@@ -72,8 +81,291 @@ const updateRunStatus = async (flowId, nodeStore, showRunResults = true) => {
|
|
|
72
81
|
}
|
|
73
82
|
return response;
|
|
74
83
|
};
|
|
75
|
-
const
|
|
76
|
-
|
|
84
|
+
const _FlowExecutionState = class _FlowExecutionState {
|
|
85
|
+
constructor() {
|
|
86
|
+
__publicField(this, "pollingIntervals", /* @__PURE__ */ new Map());
|
|
87
|
+
__publicField(this, "activeExecutions", /* @__PURE__ */ new Map());
|
|
88
|
+
}
|
|
89
|
+
static getInstance() {
|
|
90
|
+
if (!_FlowExecutionState.instance) {
|
|
91
|
+
_FlowExecutionState.instance = new _FlowExecutionState();
|
|
92
|
+
}
|
|
93
|
+
return _FlowExecutionState.instance;
|
|
94
|
+
}
|
|
95
|
+
setPollingInterval(key, interval2) {
|
|
96
|
+
this.pollingIntervals.set(key, interval2);
|
|
97
|
+
}
|
|
98
|
+
getPollingInterval(key) {
|
|
99
|
+
return this.pollingIntervals.get(key) || null;
|
|
100
|
+
}
|
|
101
|
+
clearPollingInterval(key) {
|
|
102
|
+
const interval2 = this.pollingIntervals.get(key);
|
|
103
|
+
if (interval2) {
|
|
104
|
+
clearInterval(interval2);
|
|
105
|
+
this.pollingIntervals.delete(key);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
setExecutionState(key, state2) {
|
|
109
|
+
this.activeExecutions.set(key, state2);
|
|
110
|
+
}
|
|
111
|
+
getExecutionState(key) {
|
|
112
|
+
return this.activeExecutions.get(key) || false;
|
|
113
|
+
}
|
|
114
|
+
clearAll() {
|
|
115
|
+
this.pollingIntervals.forEach((interval2) => clearInterval(interval2));
|
|
116
|
+
this.pollingIntervals.clear();
|
|
117
|
+
this.activeExecutions.clear();
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
__publicField(_FlowExecutionState, "instance");
|
|
121
|
+
let FlowExecutionState = _FlowExecutionState;
|
|
122
|
+
function useFlowExecution(flowId, pollingConfig = {
|
|
123
|
+
interval: 2e3,
|
|
124
|
+
enabled: true,
|
|
125
|
+
maxAttempts: Infinity
|
|
126
|
+
}, options = {}) {
|
|
127
|
+
const nodeStore = useNodeStore();
|
|
128
|
+
const state2 = FlowExecutionState.getInstance();
|
|
129
|
+
const localPollingInterval = ref(null);
|
|
130
|
+
const isExecuting = ref(false);
|
|
131
|
+
const getFlowId = () => {
|
|
132
|
+
return typeof flowId === "number" ? flowId : flowId.value;
|
|
133
|
+
};
|
|
134
|
+
const getPollingKey = (suffix = "") => {
|
|
135
|
+
const customKey = options.pollingKey || `flow_${getFlowId()}`;
|
|
136
|
+
return suffix ? `${customKey}_${suffix}` : customKey;
|
|
137
|
+
};
|
|
138
|
+
const freezeFlow = () => {
|
|
139
|
+
const vueFlowElement = nodeStore.vueFlowInstance;
|
|
140
|
+
if (vueFlowElement) {
|
|
141
|
+
vueFlowElement.nodesDraggable.value = false;
|
|
142
|
+
vueFlowElement.nodesConnectable.value = false;
|
|
143
|
+
vueFlowElement.elementsSelectable.value = false;
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const unFreezeFlow = () => {
|
|
147
|
+
const vueFlowElement = nodeStore.vueFlowInstance;
|
|
148
|
+
if (vueFlowElement) {
|
|
149
|
+
vueFlowElement.nodesDraggable.value = true;
|
|
150
|
+
vueFlowElement.nodesConnectable.value = true;
|
|
151
|
+
vueFlowElement.elementsSelectable.value = true;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const showNotification = (title, message, type, dangerouslyUseHTMLString) => {
|
|
155
|
+
ElNotification({
|
|
156
|
+
title,
|
|
157
|
+
message,
|
|
158
|
+
type,
|
|
159
|
+
position: "top-left",
|
|
160
|
+
dangerouslyUseHTMLString
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const startPolling = (checkFn, pollingKeySuffix = "") => {
|
|
164
|
+
const key = getPollingKey(pollingKeySuffix);
|
|
165
|
+
if (options.persistPolling) {
|
|
166
|
+
const existingInterval = state2.getPollingInterval(key);
|
|
167
|
+
if (existingInterval === null && pollingConfig.enabled) {
|
|
168
|
+
const interval2 = setInterval(checkFn, pollingConfig.interval || 2e3);
|
|
169
|
+
state2.setPollingInterval(key, interval2);
|
|
170
|
+
}
|
|
171
|
+
} else {
|
|
172
|
+
if (localPollingInterval.value === null && pollingConfig.enabled) {
|
|
173
|
+
localPollingInterval.value = setInterval(
|
|
174
|
+
checkFn,
|
|
175
|
+
pollingConfig.interval || 2e3
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
const stopPolling = (pollingKeySuffix = "") => {
|
|
181
|
+
if (options.persistPolling) {
|
|
182
|
+
const key = getPollingKey(pollingKeySuffix);
|
|
183
|
+
state2.clearPollingInterval(key);
|
|
184
|
+
} else {
|
|
185
|
+
if (localPollingInterval.value !== null) {
|
|
186
|
+
clearInterval(localPollingInterval.value);
|
|
187
|
+
localPollingInterval.value = null;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
const isPollingActive = (pollingKeySuffix = "") => {
|
|
192
|
+
if (options.persistPolling) {
|
|
193
|
+
const key = getPollingKey(pollingKeySuffix);
|
|
194
|
+
return state2.getPollingInterval(key) !== null;
|
|
195
|
+
}
|
|
196
|
+
return localPollingInterval.value !== null;
|
|
197
|
+
};
|
|
198
|
+
const createNotificationConfig = (runInfo) => ({
|
|
199
|
+
title: runInfo.success ? "Success" : "Error",
|
|
200
|
+
message: runInfo.success ? "The operation has completed successfully" : "There were issues with the operation, check the logging for more information",
|
|
201
|
+
type: runInfo.success ? "success" : "error"
|
|
202
|
+
});
|
|
203
|
+
const checkRunStatus = async (customSuccessMessage, pollingKeySuffix = "") => {
|
|
204
|
+
try {
|
|
205
|
+
const response = await updateRunStatus(getFlowId(), nodeStore);
|
|
206
|
+
if (response.status === 200) {
|
|
207
|
+
stopPolling(pollingKeySuffix);
|
|
208
|
+
unFreezeFlow();
|
|
209
|
+
nodeStore.isRunning = false;
|
|
210
|
+
isExecuting.value = false;
|
|
211
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
212
|
+
console.log("response data", response.data);
|
|
213
|
+
const notificationConfig = createNotificationConfig(response.data);
|
|
214
|
+
if (customSuccessMessage && response.data.success) {
|
|
215
|
+
notificationConfig.message = customSuccessMessage;
|
|
216
|
+
}
|
|
217
|
+
showNotification(
|
|
218
|
+
notificationConfig.title,
|
|
219
|
+
notificationConfig.message,
|
|
220
|
+
notificationConfig.type
|
|
221
|
+
);
|
|
222
|
+
} else if (response.status === 404) {
|
|
223
|
+
stopPolling(pollingKeySuffix);
|
|
224
|
+
unFreezeFlow();
|
|
225
|
+
nodeStore.isRunning = false;
|
|
226
|
+
isExecuting.value = false;
|
|
227
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
228
|
+
nodeStore.runResults = {};
|
|
229
|
+
}
|
|
230
|
+
} catch (error) {
|
|
231
|
+
console.error("Error checking run status:", error);
|
|
232
|
+
stopPolling(pollingKeySuffix);
|
|
233
|
+
unFreezeFlow();
|
|
234
|
+
nodeStore.isRunning = false;
|
|
235
|
+
isExecuting.value = false;
|
|
236
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
const escapeHtml = (text) => {
|
|
240
|
+
const div = document.createElement("div");
|
|
241
|
+
div.textContent = text;
|
|
242
|
+
return div.innerHTML;
|
|
243
|
+
};
|
|
244
|
+
const runFlow = async () => {
|
|
245
|
+
const flowSettings = await getFlowSettings(getFlowId());
|
|
246
|
+
if (!flowSettings) {
|
|
247
|
+
throw new Error("Failed to retrieve flow settings");
|
|
248
|
+
}
|
|
249
|
+
freezeFlow();
|
|
250
|
+
nodeStore.resetNodeResult();
|
|
251
|
+
isExecuting.value = true;
|
|
252
|
+
nodeStore.isRunning = true;
|
|
253
|
+
nodeStore.hideLogViewerForThisRun = false;
|
|
254
|
+
state2.setExecutionState(getPollingKey(), true);
|
|
255
|
+
const executionLocationText = flowSettings.execution_location === "local" ? "Local" : "Remote";
|
|
256
|
+
const escapedFlowName = escapeHtml(flowSettings.name);
|
|
257
|
+
const notificationMessage = `
|
|
258
|
+
<div style="line-height: 1.4;">
|
|
259
|
+
<div><strong>Flow:</strong> "${escapedFlowName}"</div>
|
|
260
|
+
<div><strong>Mode:</strong> ${flowSettings.execution_mode}</div>
|
|
261
|
+
<div><strong>Location:</strong> ${executionLocationText}</div>
|
|
262
|
+
</div>
|
|
263
|
+
`;
|
|
264
|
+
showNotification("🚀 Flow Started", notificationMessage, void 0, true);
|
|
265
|
+
try {
|
|
266
|
+
await axios.post("/flow/run/", null, {
|
|
267
|
+
params: { flow_id: getFlowId() },
|
|
268
|
+
headers: { accept: "application/json" }
|
|
269
|
+
});
|
|
270
|
+
nodeStore.showLogViewer();
|
|
271
|
+
startPolling(() => checkRunStatus());
|
|
272
|
+
} catch (error) {
|
|
273
|
+
console.error("Error starting run:", error);
|
|
274
|
+
unFreezeFlow();
|
|
275
|
+
nodeStore.isRunning = false;
|
|
276
|
+
isExecuting.value = false;
|
|
277
|
+
state2.setExecutionState(getPollingKey(), false);
|
|
278
|
+
showNotification("Error", "Failed to start the flow", "error");
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
const triggerNodeFetch = async (nodeId) => {
|
|
282
|
+
var _a, _b;
|
|
283
|
+
const pollingKeySuffix = `node_${nodeId}`;
|
|
284
|
+
if (isPollingActive(pollingKeySuffix)) {
|
|
285
|
+
console.log(`Node ${nodeId} fetch already in progress`);
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
freezeFlow();
|
|
289
|
+
nodeStore.resetNodeResult();
|
|
290
|
+
isExecuting.value = true;
|
|
291
|
+
nodeStore.isRunning = true;
|
|
292
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), true);
|
|
293
|
+
showNotification(
|
|
294
|
+
"📊 Fetching Node Data",
|
|
295
|
+
`Starting data fetch for node ${nodeId}...`,
|
|
296
|
+
void 0,
|
|
297
|
+
false
|
|
298
|
+
);
|
|
299
|
+
try {
|
|
300
|
+
await axios.post("/node/trigger_fetch_data", null, {
|
|
301
|
+
params: {
|
|
302
|
+
flow_id: getFlowId(),
|
|
303
|
+
node_id: nodeId
|
|
304
|
+
},
|
|
305
|
+
headers: { accept: "application/json" }
|
|
306
|
+
});
|
|
307
|
+
nodeStore.showLogViewer();
|
|
308
|
+
startPolling(
|
|
309
|
+
() => checkRunStatus("Node data has been fetched successfully", pollingKeySuffix),
|
|
310
|
+
pollingKeySuffix
|
|
311
|
+
);
|
|
312
|
+
} catch (error) {
|
|
313
|
+
console.error("Error triggering node fetch:", error);
|
|
314
|
+
unFreezeFlow();
|
|
315
|
+
nodeStore.isRunning = false;
|
|
316
|
+
isExecuting.value = false;
|
|
317
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
318
|
+
const errorMessage = ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "Failed to fetch node data";
|
|
319
|
+
showNotification("Error", errorMessage, "error");
|
|
320
|
+
throw error;
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
const cancelFlow = async () => {
|
|
324
|
+
try {
|
|
325
|
+
await axios.post("/flow/cancel/", null, {
|
|
326
|
+
params: { flow_id: getFlowId() },
|
|
327
|
+
headers: { accept: "application/json" }
|
|
328
|
+
});
|
|
329
|
+
showNotification("Cancelling", "The operation is being cancelled");
|
|
330
|
+
unFreezeFlow();
|
|
331
|
+
nodeStore.isRunning = false;
|
|
332
|
+
isExecuting.value = false;
|
|
333
|
+
stopPolling();
|
|
334
|
+
if (options.persistPolling) {
|
|
335
|
+
for (let i2 = 0; i2 < 100; i2++) {
|
|
336
|
+
state2.clearPollingInterval(getPollingKey(`node_${i2}`));
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
} catch (error) {
|
|
340
|
+
console.error("Error cancelling run:", error);
|
|
341
|
+
showNotification("Error", "Failed to cancel the operation", "error");
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
onUnmounted(() => {
|
|
345
|
+
if (!options.persistPolling && localPollingInterval.value !== null) {
|
|
346
|
+
clearInterval(localPollingInterval.value);
|
|
347
|
+
localPollingInterval.value = null;
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
return {
|
|
351
|
+
// State
|
|
352
|
+
isExecuting,
|
|
353
|
+
// Methods
|
|
354
|
+
runFlow,
|
|
355
|
+
triggerNodeFetch,
|
|
356
|
+
cancelFlow,
|
|
357
|
+
showNotification,
|
|
358
|
+
startPolling,
|
|
359
|
+
stopPolling,
|
|
360
|
+
checkRunStatus,
|
|
361
|
+
isPollingActive,
|
|
362
|
+
// Expose flow control if needed
|
|
363
|
+
freezeFlow,
|
|
364
|
+
unFreezeFlow
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
const _hoisted_1$k = { class: "button-group" };
|
|
368
|
+
const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
77
369
|
__name: "run",
|
|
78
370
|
props: {
|
|
79
371
|
flowId: { type: Number, required: true },
|
|
@@ -84,133 +376,20 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
84
376
|
enabled: true,
|
|
85
377
|
maxAttempts: Infinity
|
|
86
378
|
})
|
|
379
|
+
},
|
|
380
|
+
persistPolling: {
|
|
381
|
+
type: Boolean,
|
|
382
|
+
default: false
|
|
383
|
+
// RunButton doesn't need persistent polling by default
|
|
87
384
|
}
|
|
88
385
|
},
|
|
89
386
|
emits: ["logs-start", "logs-stop"],
|
|
90
387
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
91
388
|
const nodeStore = useNodeStore();
|
|
92
|
-
const pollingInterval = ref(null);
|
|
93
389
|
const props2 = __props;
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
vueFlowElement.nodesDraggable.value = false;
|
|
98
|
-
vueFlowElement.nodesConnectable.value = false;
|
|
99
|
-
vueFlowElement.elementsSelectable.value = false;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const unFreezeFlow = () => {
|
|
103
|
-
let vueFlowElement = nodeStore.vueFlowInstance;
|
|
104
|
-
if (vueFlowElement) {
|
|
105
|
-
vueFlowElement.nodesDraggable.value = true;
|
|
106
|
-
vueFlowElement.nodesConnectable.value = true;
|
|
107
|
-
vueFlowElement.elementsSelectable.value = true;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const showNotification = (title, message, type, dangerouslyUseHTMLString) => {
|
|
111
|
-
ElNotification({
|
|
112
|
-
title,
|
|
113
|
-
message,
|
|
114
|
-
type,
|
|
115
|
-
position: "top-left",
|
|
116
|
-
dangerouslyUseHTMLString
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
const startPolling = (checkFn) => {
|
|
120
|
-
if (pollingInterval.value === null && props2.pollingConfig.enabled) {
|
|
121
|
-
pollingInterval.value = setInterval(checkFn, props2.pollingConfig.interval);
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
const stopPolling = () => {
|
|
125
|
-
if (pollingInterval.value !== null) {
|
|
126
|
-
clearInterval(pollingInterval.value);
|
|
127
|
-
pollingInterval.value = null;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
const createNotificationConfig = (runInfo) => ({
|
|
131
|
-
title: runInfo.success ? "Success" : "Error",
|
|
132
|
-
message: runInfo.success ? "The flow has completed" : "There were issues with the flow run, check the logging for more information",
|
|
133
|
-
type: runInfo.success ? "success" : "error"
|
|
134
|
-
});
|
|
135
|
-
const checkRunStatus = async () => {
|
|
136
|
-
try {
|
|
137
|
-
const response = await updateRunStatus(props2.flowId, nodeStore);
|
|
138
|
-
if (response.status === 200) {
|
|
139
|
-
stopPolling();
|
|
140
|
-
unFreezeFlow();
|
|
141
|
-
nodeStore.isRunning = false;
|
|
142
|
-
const notificationConfig = createNotificationConfig(response.data);
|
|
143
|
-
showNotification(
|
|
144
|
-
notificationConfig.title,
|
|
145
|
-
notificationConfig.message,
|
|
146
|
-
notificationConfig.type
|
|
147
|
-
);
|
|
148
|
-
} else if (response.status === 404) {
|
|
149
|
-
stopPolling();
|
|
150
|
-
unFreezeFlow();
|
|
151
|
-
nodeStore.isRunning = false;
|
|
152
|
-
nodeStore.runResults = {};
|
|
153
|
-
}
|
|
154
|
-
} catch (error) {
|
|
155
|
-
console.error("Error checking run status:", error);
|
|
156
|
-
stopPolling();
|
|
157
|
-
unFreezeFlow();
|
|
158
|
-
nodeStore.isRunning = false;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
const runFlow = async () => {
|
|
162
|
-
const flowSettings = await getFlowSettings(nodeStore.flow_id);
|
|
163
|
-
if (!flowSettings) {
|
|
164
|
-
throw new Error("Failed to retrieve flow settings");
|
|
165
|
-
}
|
|
166
|
-
const escapeHtml = (text) => {
|
|
167
|
-
const div = document.createElement("div");
|
|
168
|
-
div.textContent = text;
|
|
169
|
-
return div.innerHTML;
|
|
170
|
-
};
|
|
171
|
-
freezeFlow();
|
|
172
|
-
nodeStore.resetNodeResult();
|
|
173
|
-
const executionLocationText = flowSettings.execution_location === "local" ? "Local" : "Remote";
|
|
174
|
-
const escapedFlowName = escapeHtml(flowSettings.name);
|
|
175
|
-
const notificationMessage = `
|
|
176
|
-
<div style="line-height: 1.4;">
|
|
177
|
-
<div><strong>Flow:</strong> "${escapedFlowName}"</div>
|
|
178
|
-
<div><strong>Mode:</strong> ${flowSettings.execution_mode}</div>
|
|
179
|
-
<div><strong>Location:</strong> ${executionLocationText}</div>
|
|
180
|
-
</div>
|
|
181
|
-
`;
|
|
182
|
-
showNotification("🚀 Flow Started", notificationMessage, void 0, true);
|
|
183
|
-
try {
|
|
184
|
-
await axios.post("/flow/run/", null, {
|
|
185
|
-
params: { flow_id: props2.flowId },
|
|
186
|
-
headers: { accept: "application/json" }
|
|
187
|
-
});
|
|
188
|
-
nodeStore.isRunning = true;
|
|
189
|
-
nodeStore.showLogViewer();
|
|
190
|
-
startPolling(checkRunStatus);
|
|
191
|
-
} catch (error) {
|
|
192
|
-
console.error("Error starting run:", error);
|
|
193
|
-
unFreezeFlow();
|
|
194
|
-
nodeStore.isRunning = false;
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
const cancelFlow = async () => {
|
|
198
|
-
try {
|
|
199
|
-
await axios.post("/flow/cancel/", null, {
|
|
200
|
-
params: { flow_id: props2.flowId },
|
|
201
|
-
headers: { accept: "application/json" }
|
|
202
|
-
});
|
|
203
|
-
showNotification("Cancelling", "The flow is being cancelled");
|
|
204
|
-
unFreezeFlow();
|
|
205
|
-
nodeStore.isRunning = false;
|
|
206
|
-
stopPolling();
|
|
207
|
-
} catch (error) {
|
|
208
|
-
console.error("Error cancelling run:", error);
|
|
209
|
-
showNotification("Error", "Failed to cancel the flow", "error");
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
onUnmounted(() => {
|
|
213
|
-
stopPolling();
|
|
390
|
+
const { runFlow, cancelFlow, showNotification, startPolling, stopPolling, checkRunStatus } = useFlowExecution(props2.flowId, props2.pollingConfig, {
|
|
391
|
+
persistPolling: props2.persistPolling,
|
|
392
|
+
pollingKey: `run_button_${props2.flowId}`
|
|
214
393
|
});
|
|
215
394
|
__expose({
|
|
216
395
|
startPolling,
|
|
@@ -222,12 +401,12 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
222
401
|
});
|
|
223
402
|
return (_ctx, _cache) => {
|
|
224
403
|
const _component_el_button = resolveComponent("el-button");
|
|
225
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
404
|
+
return openBlock(), createElementBlock("div", _hoisted_1$k, [
|
|
226
405
|
createVNode(_component_el_button, {
|
|
227
406
|
size: "small",
|
|
228
407
|
disabled: unref(nodeStore).isRunning,
|
|
229
408
|
round: "",
|
|
230
|
-
onClick: _cache[0] || (_cache[0] = ($event) => runFlow())
|
|
409
|
+
onClick: _cache[0] || (_cache[0] = ($event) => unref(runFlow)())
|
|
231
410
|
}, {
|
|
232
411
|
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
233
412
|
createTextVNode(" Run ")
|
|
@@ -239,7 +418,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
239
418
|
key: 0,
|
|
240
419
|
size: "small",
|
|
241
420
|
round: "",
|
|
242
|
-
onClick: _cache[1] || (_cache[1] = ($event) => cancelFlow())
|
|
421
|
+
onClick: _cache[1] || (_cache[1] = ($event) => unref(cancelFlow)())
|
|
243
422
|
}, {
|
|
244
423
|
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
245
424
|
createTextVNode(" Cancel ")
|
|
@@ -251,8 +430,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
251
430
|
};
|
|
252
431
|
}
|
|
253
432
|
});
|
|
254
|
-
const
|
|
255
|
-
const RunButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
433
|
+
const run_vue_vue_type_style_index_0_scoped_c0f9acc7_lang = "";
|
|
434
|
+
const RunButton = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-c0f9acc7"]]);
|
|
256
435
|
const _imports_0 = "/images/sheets.png";
|
|
257
436
|
const useFileBrowserStore = defineStore("fileBrowser", {
|
|
258
437
|
state: () => ({
|
|
@@ -275,7 +454,7 @@ const useFileBrowserStore = defineStore("fileBrowser", {
|
|
|
275
454
|
}
|
|
276
455
|
}
|
|
277
456
|
});
|
|
278
|
-
const handleApiError = (error) => {
|
|
457
|
+
const handleApiError$1 = (error) => {
|
|
279
458
|
var _a, _b, _c;
|
|
280
459
|
throw {
|
|
281
460
|
message: ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "An unknown error occurred",
|
|
@@ -287,7 +466,7 @@ const getCurrentDirectoryContents = async (params) => {
|
|
|
287
466
|
const response = await axios.get("files/current_directory_contents/", { params });
|
|
288
467
|
return response.data;
|
|
289
468
|
} catch (error) {
|
|
290
|
-
return handleApiError(error);
|
|
469
|
+
return handleApiError$1(error);
|
|
291
470
|
}
|
|
292
471
|
};
|
|
293
472
|
const navigateUp = async () => {
|
|
@@ -295,7 +474,7 @@ const navigateUp = async () => {
|
|
|
295
474
|
const response = await axios.post("files/navigate_up/");
|
|
296
475
|
return response.data;
|
|
297
476
|
} catch (error) {
|
|
298
|
-
return handleApiError(error);
|
|
477
|
+
return handleApiError$1(error);
|
|
299
478
|
}
|
|
300
479
|
};
|
|
301
480
|
const navigateInto = async (directoryName) => {
|
|
@@ -305,7 +484,7 @@ const navigateInto = async (directoryName) => {
|
|
|
305
484
|
});
|
|
306
485
|
return response.data;
|
|
307
486
|
} catch (error) {
|
|
308
|
-
return handleApiError(error);
|
|
487
|
+
return handleApiError$1(error);
|
|
309
488
|
}
|
|
310
489
|
};
|
|
311
490
|
const navigateTo = async (directoryPath) => {
|
|
@@ -315,7 +494,7 @@ const navigateTo = async (directoryPath) => {
|
|
|
315
494
|
});
|
|
316
495
|
return response.data;
|
|
317
496
|
} catch (error) {
|
|
318
|
-
return handleApiError(error);
|
|
497
|
+
return handleApiError$1(error);
|
|
319
498
|
}
|
|
320
499
|
};
|
|
321
500
|
const getCurrentPath = async () => {
|
|
@@ -323,7 +502,7 @@ const getCurrentPath = async () => {
|
|
|
323
502
|
const response = await axios.get("files/current_path/");
|
|
324
503
|
return response.data;
|
|
325
504
|
} catch (error) {
|
|
326
|
-
return handleApiError(error);
|
|
505
|
+
return handleApiError$1(error);
|
|
327
506
|
}
|
|
328
507
|
};
|
|
329
508
|
function assertPath(path2) {
|
|
@@ -749,16 +928,16 @@ var posix = {
|
|
|
749
928
|
posix.posix = posix;
|
|
750
929
|
var pathBrowserify = posix;
|
|
751
930
|
const path = /* @__PURE__ */ getDefaultExportFromCjs(pathBrowserify);
|
|
752
|
-
const _hoisted_1$
|
|
753
|
-
const _hoisted_2$
|
|
754
|
-
const _hoisted_3$
|
|
755
|
-
const _hoisted_4$
|
|
756
|
-
const _hoisted_5$
|
|
757
|
-
const _hoisted_6$
|
|
758
|
-
const _hoisted_7$
|
|
759
|
-
const _hoisted_8$
|
|
760
|
-
const _hoisted_9 = { class: "sort-controls" };
|
|
761
|
-
const _hoisted_10 = { class: "material-icons" };
|
|
931
|
+
const _hoisted_1$j = { class: "file-browser" };
|
|
932
|
+
const _hoisted_2$h = { class: "browser-content" };
|
|
933
|
+
const _hoisted_3$g = { class: "browser-toolbar" };
|
|
934
|
+
const _hoisted_4$b = { class: "path-navigation" };
|
|
935
|
+
const _hoisted_5$8 = ["disabled"];
|
|
936
|
+
const _hoisted_6$7 = { class: "current-path" };
|
|
937
|
+
const _hoisted_7$5 = { class: "controls-row" };
|
|
938
|
+
const _hoisted_8$3 = { class: "search-container" };
|
|
939
|
+
const _hoisted_9$2 = { class: "sort-controls" };
|
|
940
|
+
const _hoisted_10$1 = { class: "material-icons" };
|
|
762
941
|
const _hoisted_11 = { class: "show-hidden-toggle" };
|
|
763
942
|
const _hoisted_12 = { class: "browser-main" };
|
|
764
943
|
const _hoisted_13 = {
|
|
@@ -788,7 +967,7 @@ const _hoisted_20 = { class: "file-details" };
|
|
|
788
967
|
const _hoisted_21 = { class: "file-info" };
|
|
789
968
|
const _hoisted_22 = { class: "browser-actions" };
|
|
790
969
|
const _hoisted_23 = { class: "dialog-footer" };
|
|
791
|
-
const _sfc_main$
|
|
970
|
+
const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
792
971
|
__name: "fileBrowser",
|
|
793
972
|
props: {
|
|
794
973
|
allowedFileTypes: { default: () => [] },
|
|
@@ -1069,16 +1248,16 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1069
1248
|
const _component_el_form_item = resolveComponent("el-form-item");
|
|
1070
1249
|
const _component_el_form = resolveComponent("el-form");
|
|
1071
1250
|
const _component_el_dialog = resolveComponent("el-dialog");
|
|
1072
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1073
|
-
_cache[
|
|
1251
|
+
return openBlock(), createElementBlock("div", _hoisted_1$j, [
|
|
1252
|
+
_cache[16] || (_cache[16] = createBaseVNode("div", { class: "browser-header" }, [
|
|
1074
1253
|
createBaseVNode("div", { class: "browser-title" }, [
|
|
1075
1254
|
createBaseVNode("span", { class: "material-icons" }, "folder"),
|
|
1076
1255
|
createBaseVNode("span", null, "File Browser")
|
|
1077
1256
|
])
|
|
1078
1257
|
], -1)),
|
|
1079
|
-
createBaseVNode("div", _hoisted_2$
|
|
1080
|
-
createBaseVNode("div", _hoisted_3$
|
|
1081
|
-
createBaseVNode("div", _hoisted_4$
|
|
1258
|
+
createBaseVNode("div", _hoisted_2$h, [
|
|
1259
|
+
createBaseVNode("div", _hoisted_3$g, [
|
|
1260
|
+
createBaseVNode("div", _hoisted_4$b, [
|
|
1082
1261
|
createBaseVNode("button", {
|
|
1083
1262
|
class: "nav-button",
|
|
1084
1263
|
disabled: loading.value,
|
|
@@ -1086,11 +1265,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1086
1265
|
}, _cache[7] || (_cache[7] = [
|
|
1087
1266
|
createBaseVNode("span", { class: "material-icons" }, "arrow_upward", -1),
|
|
1088
1267
|
createBaseVNode("span", null, "Up", -1)
|
|
1089
|
-
]), 8, _hoisted_5$
|
|
1090
|
-
createBaseVNode("div", _hoisted_6$
|
|
1268
|
+
]), 8, _hoisted_5$8),
|
|
1269
|
+
createBaseVNode("div", _hoisted_6$7, toDisplayString(currentPath.value), 1)
|
|
1091
1270
|
]),
|
|
1092
|
-
createBaseVNode("div", _hoisted_7$
|
|
1093
|
-
createBaseVNode("div", _hoisted_8$
|
|
1271
|
+
createBaseVNode("div", _hoisted_7$5, [
|
|
1272
|
+
createBaseVNode("div", _hoisted_8$3, [
|
|
1094
1273
|
createVNode(_component_el_input, {
|
|
1095
1274
|
modelValue: searchTerm.value,
|
|
1096
1275
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchTerm.value = $event),
|
|
@@ -1103,7 +1282,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1103
1282
|
_: 1
|
|
1104
1283
|
}, 8, ["modelValue"])
|
|
1105
1284
|
]),
|
|
1106
|
-
createBaseVNode("div", _hoisted_9, [
|
|
1285
|
+
createBaseVNode("div", _hoisted_9$2, [
|
|
1107
1286
|
createVNode(_component_el_select, {
|
|
1108
1287
|
modelValue: sortBy.value,
|
|
1109
1288
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => sortBy.value = $event),
|
|
@@ -1137,7 +1316,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1137
1316
|
onClick: toggleSortDirection
|
|
1138
1317
|
}, {
|
|
1139
1318
|
default: withCtx(() => [
|
|
1140
|
-
createBaseVNode("span", _hoisted_10, toDisplayString(sortDirection.value === "asc" ? "arrow_upward" : "arrow_downward"), 1)
|
|
1319
|
+
createBaseVNode("span", _hoisted_10$1, toDisplayString(sortDirection.value === "asc" ? "arrow_upward" : "arrow_downward"), 1)
|
|
1141
1320
|
]),
|
|
1142
1321
|
_: 1
|
|
1143
1322
|
})
|
|
@@ -1253,21 +1432,6 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1253
1432
|
])),
|
|
1254
1433
|
_: 1,
|
|
1255
1434
|
__: [13]
|
|
1256
|
-
}, 8, ["disabled"])) : createCommentVNode("", true),
|
|
1257
|
-
_ctx.mode === "open" && selectedFile.value && !selectedFile.value.is_directory ? (openBlock(), createBlock(_component_el_button, {
|
|
1258
|
-
key: 3,
|
|
1259
|
-
type: "primary",
|
|
1260
|
-
disabled: loading.value,
|
|
1261
|
-
size: "small",
|
|
1262
|
-
style: { "background-color": "rgb(92, 92, 92)", "color": "white" },
|
|
1263
|
-
onClick: handleOpenFile
|
|
1264
|
-
}, {
|
|
1265
|
-
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
1266
|
-
createBaseVNode("span", { class: "material-icons" }, "open_in_new", -1),
|
|
1267
|
-
createTextVNode(" Open File ")
|
|
1268
|
-
])),
|
|
1269
|
-
_: 1,
|
|
1270
|
-
__: [14]
|
|
1271
1435
|
}, 8, ["disabled"])) : createCommentVNode("", true)
|
|
1272
1436
|
])
|
|
1273
1437
|
]),
|
|
@@ -1284,22 +1448,22 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1284
1448
|
createVNode(_component_el_button, {
|
|
1285
1449
|
onClick: _cache[5] || (_cache[5] = ($event) => showCreateDialog.value = false)
|
|
1286
1450
|
}, {
|
|
1287
|
-
default: withCtx(() => _cache[
|
|
1451
|
+
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
1288
1452
|
createTextVNode("Cancel")
|
|
1289
1453
|
])),
|
|
1290
1454
|
_: 1,
|
|
1291
|
-
__: [
|
|
1455
|
+
__: [14]
|
|
1292
1456
|
}),
|
|
1293
1457
|
createVNode(_component_el_button, {
|
|
1294
1458
|
type: "primary",
|
|
1295
1459
|
disabled: !newFileName.value.trim(),
|
|
1296
1460
|
onClick: handleCreateFile
|
|
1297
1461
|
}, {
|
|
1298
|
-
default: withCtx(() => _cache[
|
|
1462
|
+
default: withCtx(() => _cache[15] || (_cache[15] = [
|
|
1299
1463
|
createTextVNode(" Create ")
|
|
1300
1464
|
])),
|
|
1301
1465
|
_: 1,
|
|
1302
|
-
__: [
|
|
1466
|
+
__: [15]
|
|
1303
1467
|
}, 8, ["disabled"])
|
|
1304
1468
|
])
|
|
1305
1469
|
]),
|
|
@@ -1334,15 +1498,19 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1334
1498
|
};
|
|
1335
1499
|
}
|
|
1336
1500
|
});
|
|
1337
|
-
const
|
|
1338
|
-
const FileBrowser = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1339
|
-
const _hoisted_1$
|
|
1340
|
-
const _hoisted_2$
|
|
1341
|
-
const _hoisted_3$
|
|
1342
|
-
const _hoisted_4$
|
|
1343
|
-
const _hoisted_5$
|
|
1344
|
-
const _hoisted_6$
|
|
1345
|
-
const
|
|
1501
|
+
const fileBrowser_vue_vue_type_style_index_0_scoped_b74852a7_lang = "";
|
|
1502
|
+
const FileBrowser = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-b74852a7"]]);
|
|
1503
|
+
const _hoisted_1$i = { class: "action-buttons" };
|
|
1504
|
+
const _hoisted_2$g = { class: "quick-create-modal" };
|
|
1505
|
+
const _hoisted_3$f = { class: "form-group" };
|
|
1506
|
+
const _hoisted_4$a = { class: "preview-text" };
|
|
1507
|
+
const _hoisted_5$7 = { class: "dialog-footer" };
|
|
1508
|
+
const _hoisted_6$6 = { key: 0 };
|
|
1509
|
+
const _hoisted_7$4 = { class: "settings-modal-content" };
|
|
1510
|
+
const _hoisted_8$2 = { class: "form-group" };
|
|
1511
|
+
const _hoisted_9$1 = { class: "form-group" };
|
|
1512
|
+
const _hoisted_10 = { class: "form-group" };
|
|
1513
|
+
const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
1346
1514
|
__name: "HeaderButtons",
|
|
1347
1515
|
emits: ["openFlow", "refreshFlow", "logs-start", "logs-stop"],
|
|
1348
1516
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
@@ -1350,16 +1518,35 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1350
1518
|
const modalVisibleForOpen = ref(false);
|
|
1351
1519
|
const modalVisibleForSave = ref(false);
|
|
1352
1520
|
const modalVisibleForCreate = ref(false);
|
|
1521
|
+
const modalVisibleForQuickCreate = ref(false);
|
|
1353
1522
|
const modalVisibleForSettings = ref(false);
|
|
1354
1523
|
const flowSettings = ref(null);
|
|
1355
1524
|
const savePath = ref(void 0);
|
|
1356
1525
|
const runButton = ref(null);
|
|
1526
|
+
const quickCreateName = ref("");
|
|
1357
1527
|
const executionModes = ref(["Development", "Performance"]);
|
|
1358
1528
|
const executionLocationOptions = ref([
|
|
1359
1529
|
{ key: "local", label: "Local" },
|
|
1360
1530
|
{ key: "remote", label: "Remote" }
|
|
1361
1531
|
]);
|
|
1362
1532
|
const emit = __emit;
|
|
1533
|
+
const generateDefaultFileName = () => {
|
|
1534
|
+
const now2 = /* @__PURE__ */ new Date();
|
|
1535
|
+
const year = now2.getFullYear();
|
|
1536
|
+
const month = String(now2.getMonth() + 1).padStart(2, "0");
|
|
1537
|
+
const day = String(now2.getDate()).padStart(2, "0");
|
|
1538
|
+
const hours = String(now2.getHours()).padStart(2, "0");
|
|
1539
|
+
const minutes = String(now2.getMinutes()).padStart(2, "0");
|
|
1540
|
+
const seconds = String(now2.getSeconds()).padStart(2, "0");
|
|
1541
|
+
return `${year}${month}${day}_${hours}${minutes}${seconds}_flow.flowfile`;
|
|
1542
|
+
};
|
|
1543
|
+
const getPreviewFileName = () => {
|
|
1544
|
+
if (quickCreateName.value.trim()) {
|
|
1545
|
+
const name = quickCreateName.value.trim();
|
|
1546
|
+
return name.endsWith(".flowfile") ? name : `${name}.flowfile`;
|
|
1547
|
+
}
|
|
1548
|
+
return generateDefaultFileName();
|
|
1549
|
+
};
|
|
1363
1550
|
const loadFlowSettings = async () => {
|
|
1364
1551
|
if (!(nodeStore.flow_id && nodeStore.flow_id > 0))
|
|
1365
1552
|
return;
|
|
@@ -1422,11 +1609,23 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1422
1609
|
const pathWithoutExtension = flowPath.replace(/\.[^/.]+$/, "");
|
|
1423
1610
|
const normalizedPath = `${pathWithoutExtension}.flowfile`;
|
|
1424
1611
|
const createdFlowId = await createFlow(normalizedPath);
|
|
1425
|
-
await saveFlow(createdFlowId, normalizedPath);
|
|
1426
1612
|
modalVisibleForCreate.value = false;
|
|
1427
1613
|
nodeStore.flow_id = createdFlowId;
|
|
1428
1614
|
emit("refreshFlow");
|
|
1429
1615
|
};
|
|
1616
|
+
const handleQuickCreateAction = async () => {
|
|
1617
|
+
const fileName = getPreviewFileName();
|
|
1618
|
+
console.log("Creating flow with name:", fileName);
|
|
1619
|
+
try {
|
|
1620
|
+
const createdFlowId = await createFlow(null, fileName);
|
|
1621
|
+
modalVisibleForQuickCreate.value = false;
|
|
1622
|
+
quickCreateName.value = "";
|
|
1623
|
+
nodeStore.flow_id = createdFlowId;
|
|
1624
|
+
emit("refreshFlow");
|
|
1625
|
+
} catch (error) {
|
|
1626
|
+
console.error("Failed to create quick flow:", error);
|
|
1627
|
+
}
|
|
1628
|
+
};
|
|
1430
1629
|
const openSettingsModal = () => {
|
|
1431
1630
|
modalVisibleForSettings.value = true;
|
|
1432
1631
|
};
|
|
@@ -1441,6 +1640,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1441
1640
|
__expose({
|
|
1442
1641
|
loadFlowSettings,
|
|
1443
1642
|
openCreateDialog: () => modalVisibleForCreate.value = true,
|
|
1643
|
+
handleQuickCreateAction,
|
|
1444
1644
|
openOpenDialog: () => modalVisibleForOpen.value = true,
|
|
1445
1645
|
openSaveModal: () => modalVisibleForSave.value = true,
|
|
1446
1646
|
runFlow
|
|
@@ -1452,36 +1652,45 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1452
1652
|
});
|
|
1453
1653
|
return (_ctx, _cache) => {
|
|
1454
1654
|
const _component_el_dialog = resolveComponent("el-dialog");
|
|
1655
|
+
const _component_el_input = resolveComponent("el-input");
|
|
1656
|
+
const _component_el_button = resolveComponent("el-button");
|
|
1455
1657
|
const _component_el_option = resolveComponent("el-option");
|
|
1456
1658
|
const _component_el_select = resolveComponent("el-select");
|
|
1457
1659
|
const _component_el_checkbox = resolveComponent("el-checkbox");
|
|
1458
1660
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
1459
|
-
createBaseVNode("div", _hoisted_1$
|
|
1661
|
+
createBaseVNode("div", _hoisted_1$i, [
|
|
1460
1662
|
createBaseVNode("button", {
|
|
1461
1663
|
class: "action-btn",
|
|
1462
1664
|
onClick: openSaveModal
|
|
1463
|
-
}, _cache[
|
|
1665
|
+
}, _cache[13] || (_cache[13] = [
|
|
1464
1666
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "save", -1),
|
|
1465
1667
|
createBaseVNode("span", { class: "btn-text" }, "Save", -1)
|
|
1466
1668
|
])),
|
|
1467
1669
|
createBaseVNode("button", {
|
|
1468
1670
|
class: "action-btn",
|
|
1469
1671
|
onClick: _cache[0] || (_cache[0] = ($event) => modalVisibleForOpen.value = true)
|
|
1470
|
-
}, _cache[
|
|
1672
|
+
}, _cache[14] || (_cache[14] = [
|
|
1471
1673
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "folder_open", -1),
|
|
1472
1674
|
createBaseVNode("span", { class: "btn-text" }, "Open", -1)
|
|
1473
1675
|
])),
|
|
1474
1676
|
createBaseVNode("button", {
|
|
1475
1677
|
class: "action-btn",
|
|
1476
1678
|
onClick: _cache[1] || (_cache[1] = ($event) => modalVisibleForCreate.value = true)
|
|
1477
|
-
}, _cache[
|
|
1679
|
+
}, _cache[15] || (_cache[15] = [
|
|
1478
1680
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "add_circle_outline", -1),
|
|
1479
1681
|
createBaseVNode("span", { class: "btn-text" }, "Create", -1)
|
|
1480
1682
|
])),
|
|
1683
|
+
createBaseVNode("button", {
|
|
1684
|
+
class: "action-btn",
|
|
1685
|
+
onClick: _cache[2] || (_cache[2] = ($event) => modalVisibleForQuickCreate.value = true)
|
|
1686
|
+
}, _cache[16] || (_cache[16] = [
|
|
1687
|
+
createBaseVNode("span", { class: "material-icons btn-icon" }, "flash_on", -1),
|
|
1688
|
+
createBaseVNode("span", { class: "btn-text" }, "Quick Create", -1)
|
|
1689
|
+
])),
|
|
1481
1690
|
createBaseVNode("button", {
|
|
1482
1691
|
class: "action-btn",
|
|
1483
1692
|
onClick: openSettingsModal
|
|
1484
|
-
}, _cache[
|
|
1693
|
+
}, _cache[17] || (_cache[17] = [
|
|
1485
1694
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "settings", -1),
|
|
1486
1695
|
createBaseVNode("span", { class: "btn-text" }, "Settings", -1)
|
|
1487
1696
|
])),
|
|
@@ -1494,14 +1703,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1494
1703
|
class: normalizeClass(["action-btn", { active: unref(nodeStore).showCodeGenerator }]),
|
|
1495
1704
|
title: "Generate Python Code (Ctrl+G)",
|
|
1496
1705
|
onClick: toggleCodeGenerator
|
|
1497
|
-
}, _cache[
|
|
1706
|
+
}, _cache[18] || (_cache[18] = [
|
|
1498
1707
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "code", -1),
|
|
1499
1708
|
createBaseVNode("span", { class: "btn-text" }, "Generate code", -1)
|
|
1500
1709
|
]), 2)
|
|
1501
1710
|
]),
|
|
1502
1711
|
createVNode(_component_el_dialog, {
|
|
1503
1712
|
modelValue: modalVisibleForOpen.value,
|
|
1504
|
-
"onUpdate:modelValue": _cache[
|
|
1713
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => modalVisibleForOpen.value = $event),
|
|
1505
1714
|
title: "Select or Enter a Flow File",
|
|
1506
1715
|
width: "70%"
|
|
1507
1716
|
}, {
|
|
@@ -1516,7 +1725,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1516
1725
|
}, 8, ["modelValue"]),
|
|
1517
1726
|
createVNode(_component_el_dialog, {
|
|
1518
1727
|
modelValue: modalVisibleForSave.value,
|
|
1519
|
-
"onUpdate:modelValue": _cache[
|
|
1728
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => modalVisibleForSave.value = $event),
|
|
1520
1729
|
title: "Select save location",
|
|
1521
1730
|
width: "70%"
|
|
1522
1731
|
}, {
|
|
@@ -1535,7 +1744,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1535
1744
|
}, 8, ["modelValue"]),
|
|
1536
1745
|
createVNode(_component_el_dialog, {
|
|
1537
1746
|
modelValue: modalVisibleForCreate.value,
|
|
1538
|
-
"onUpdate:modelValue": _cache[
|
|
1747
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => modalVisibleForCreate.value = $event),
|
|
1539
1748
|
title: "Select save location",
|
|
1540
1749
|
width: "70%"
|
|
1541
1750
|
}, {
|
|
@@ -1549,20 +1758,70 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1549
1758
|
]),
|
|
1550
1759
|
_: 1
|
|
1551
1760
|
}, 8, ["modelValue"]),
|
|
1761
|
+
createVNode(_component_el_dialog, {
|
|
1762
|
+
modelValue: modalVisibleForQuickCreate.value,
|
|
1763
|
+
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => modalVisibleForQuickCreate.value = $event),
|
|
1764
|
+
title: "Create New Flow",
|
|
1765
|
+
width: "400px"
|
|
1766
|
+
}, {
|
|
1767
|
+
footer: withCtx(() => [
|
|
1768
|
+
createBaseVNode("span", _hoisted_5$7, [
|
|
1769
|
+
createVNode(_component_el_button, {
|
|
1770
|
+
onClick: _cache[7] || (_cache[7] = ($event) => modalVisibleForQuickCreate.value = false)
|
|
1771
|
+
}, {
|
|
1772
|
+
default: withCtx(() => _cache[22] || (_cache[22] = [
|
|
1773
|
+
createTextVNode("Cancel")
|
|
1774
|
+
])),
|
|
1775
|
+
_: 1,
|
|
1776
|
+
__: [22]
|
|
1777
|
+
}),
|
|
1778
|
+
createVNode(_component_el_button, {
|
|
1779
|
+
type: "primary",
|
|
1780
|
+
onClick: handleQuickCreateAction
|
|
1781
|
+
}, {
|
|
1782
|
+
default: withCtx(() => _cache[23] || (_cache[23] = [
|
|
1783
|
+
createTextVNode("Create Flow")
|
|
1784
|
+
])),
|
|
1785
|
+
_: 1,
|
|
1786
|
+
__: [23]
|
|
1787
|
+
})
|
|
1788
|
+
])
|
|
1789
|
+
]),
|
|
1790
|
+
default: withCtx(() => [
|
|
1791
|
+
createBaseVNode("div", _hoisted_2$g, [
|
|
1792
|
+
createBaseVNode("div", _hoisted_3$f, [
|
|
1793
|
+
_cache[19] || (_cache[19] = createBaseVNode("label", { for: "flow-name" }, "Flow Name (optional):", -1)),
|
|
1794
|
+
createVNode(_component_el_input, {
|
|
1795
|
+
id: "flow-name",
|
|
1796
|
+
modelValue: quickCreateName.value,
|
|
1797
|
+
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => quickCreateName.value = $event),
|
|
1798
|
+
placeholder: "Leave empty for auto-generated name",
|
|
1799
|
+
clearable: ""
|
|
1800
|
+
}, null, 8, ["modelValue"])
|
|
1801
|
+
]),
|
|
1802
|
+
createBaseVNode("div", _hoisted_4$a, [
|
|
1803
|
+
_cache[20] || (_cache[20] = createBaseVNode("strong", null, "File will be created as:", -1)),
|
|
1804
|
+
_cache[21] || (_cache[21] = createBaseVNode("br", null, null, -1)),
|
|
1805
|
+
createBaseVNode("code", null, toDisplayString(getPreviewFileName()), 1)
|
|
1806
|
+
])
|
|
1807
|
+
])
|
|
1808
|
+
]),
|
|
1809
|
+
_: 1
|
|
1810
|
+
}, 8, ["modelValue"]),
|
|
1552
1811
|
createVNode(_component_el_dialog, {
|
|
1553
1812
|
modelValue: modalVisibleForSettings.value,
|
|
1554
|
-
"onUpdate:modelValue": _cache[
|
|
1813
|
+
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => modalVisibleForSettings.value = $event),
|
|
1555
1814
|
title: "Execution Settings",
|
|
1556
1815
|
width: "30%"
|
|
1557
1816
|
}, {
|
|
1558
1817
|
default: withCtx(() => [
|
|
1559
|
-
flowSettings.value ? (openBlock(), createElementBlock("div",
|
|
1560
|
-
createBaseVNode("div",
|
|
1561
|
-
createBaseVNode("div",
|
|
1562
|
-
_cache[
|
|
1818
|
+
flowSettings.value ? (openBlock(), createElementBlock("div", _hoisted_6$6, [
|
|
1819
|
+
createBaseVNode("div", _hoisted_7$4, [
|
|
1820
|
+
createBaseVNode("div", _hoisted_8$2, [
|
|
1821
|
+
_cache[24] || (_cache[24] = createBaseVNode("label", null, "Execution Mode:", -1)),
|
|
1563
1822
|
createVNode(_component_el_select, {
|
|
1564
1823
|
modelValue: flowSettings.value.execution_mode,
|
|
1565
|
-
"onUpdate:modelValue": _cache[
|
|
1824
|
+
"onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => flowSettings.value.execution_mode = $event),
|
|
1566
1825
|
size: "small",
|
|
1567
1826
|
placeholder: "Select run mode",
|
|
1568
1827
|
style: { "width": "100%" },
|
|
@@ -1580,11 +1839,11 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1580
1839
|
_: 1
|
|
1581
1840
|
}, 8, ["modelValue"])
|
|
1582
1841
|
]),
|
|
1583
|
-
createBaseVNode("div",
|
|
1584
|
-
_cache[
|
|
1842
|
+
createBaseVNode("div", _hoisted_9$1, [
|
|
1843
|
+
_cache[25] || (_cache[25] = createBaseVNode("label", null, "Execution location:", -1)),
|
|
1585
1844
|
createVNode(_component_el_select, {
|
|
1586
1845
|
modelValue: flowSettings.value.execution_location,
|
|
1587
|
-
"onUpdate:modelValue": _cache[
|
|
1846
|
+
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => flowSettings.value.execution_location = $event),
|
|
1588
1847
|
size: "small",
|
|
1589
1848
|
placeholder: "Select the execution location",
|
|
1590
1849
|
style: { "width": "100%" },
|
|
@@ -1602,10 +1861,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1602
1861
|
_: 1
|
|
1603
1862
|
}, 8, ["modelValue"])
|
|
1604
1863
|
]),
|
|
1605
|
-
createBaseVNode("div",
|
|
1864
|
+
createBaseVNode("div", _hoisted_10, [
|
|
1606
1865
|
createVNode(_component_el_checkbox, {
|
|
1607
1866
|
modelValue: flowSettings.value.show_detailed_progress,
|
|
1608
|
-
"onUpdate:modelValue": _cache[
|
|
1867
|
+
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => flowSettings.value.show_detailed_progress = $event),
|
|
1609
1868
|
label: "Show details during execution",
|
|
1610
1869
|
size: "small",
|
|
1611
1870
|
onChange: pushFlowSettings
|
|
@@ -1620,8 +1879,385 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1620
1879
|
};
|
|
1621
1880
|
}
|
|
1622
1881
|
});
|
|
1623
|
-
const
|
|
1624
|
-
const HeaderButtons = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1882
|
+
const HeaderButtons_vue_vue_type_style_index_0_scoped_2566c44c_lang = "";
|
|
1883
|
+
const HeaderButtons = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-2566c44c"]]);
|
|
1884
|
+
const useItemStore = defineStore("itemStore", () => {
|
|
1885
|
+
const items = ref({});
|
|
1886
|
+
const initialItemStates = ref({});
|
|
1887
|
+
const groups = ref({});
|
|
1888
|
+
const inResizing = ref(false);
|
|
1889
|
+
const idItemClicked = ref(null);
|
|
1890
|
+
const idItemVisible = ref(null);
|
|
1891
|
+
const layoutPresets = {
|
|
1892
|
+
sidePanel: { width: 400, height: "100%" },
|
|
1893
|
+
bottomPanel: { width: "100%", height: 300 },
|
|
1894
|
+
dataView: { width: 600, height: 400 },
|
|
1895
|
+
logView: { width: 600, height: 400 }
|
|
1896
|
+
};
|
|
1897
|
+
const getGroupItems = computed$1(() => (groupName) => {
|
|
1898
|
+
if (!groups.value[groupName])
|
|
1899
|
+
return [];
|
|
1900
|
+
return groups.value[groupName].map((id2) => items.value[id2]).filter(Boolean);
|
|
1901
|
+
});
|
|
1902
|
+
const registerInitialState = (id2, initialState) => {
|
|
1903
|
+
if (!initialItemStates.value[id2]) {
|
|
1904
|
+
initialItemStates.value[id2] = { ...initialState };
|
|
1905
|
+
}
|
|
1906
|
+
};
|
|
1907
|
+
const bringToFront = (id2) => {
|
|
1908
|
+
if (!items.value[id2]) {
|
|
1909
|
+
console.warn(`Item ${id2} not found`);
|
|
1910
|
+
return;
|
|
1911
|
+
}
|
|
1912
|
+
if (items.value[id2].fullScreen)
|
|
1913
|
+
return;
|
|
1914
|
+
let maxZIndex = 99;
|
|
1915
|
+
Object.entries(items.value).forEach(([itemId, item]) => {
|
|
1916
|
+
if (!item.fullScreen && itemId !== id2) {
|
|
1917
|
+
maxZIndex = Math.max(maxZIndex, item.zIndex);
|
|
1918
|
+
}
|
|
1919
|
+
});
|
|
1920
|
+
items.value[id2].zIndex = maxZIndex + 1;
|
|
1921
|
+
saveItemState(id2);
|
|
1922
|
+
};
|
|
1923
|
+
const setItemState = (id2, state2) => {
|
|
1924
|
+
if (!items.value[id2]) {
|
|
1925
|
+
items.value[id2] = {
|
|
1926
|
+
width: 400,
|
|
1927
|
+
height: 300,
|
|
1928
|
+
left: 100,
|
|
1929
|
+
top: 100,
|
|
1930
|
+
stickynessPosition: "free",
|
|
1931
|
+
fullWidth: false,
|
|
1932
|
+
fullHeight: false,
|
|
1933
|
+
zIndex: 100,
|
|
1934
|
+
fullScreen: false,
|
|
1935
|
+
clicked: false
|
|
1936
|
+
};
|
|
1937
|
+
}
|
|
1938
|
+
const oldGroup = items.value[id2].group;
|
|
1939
|
+
Object.assign(items.value[id2], state2);
|
|
1940
|
+
if (state2.group !== void 0) {
|
|
1941
|
+
if (oldGroup && groups.value[oldGroup]) {
|
|
1942
|
+
groups.value[oldGroup] = groups.value[oldGroup].filter((itemId) => itemId !== id2);
|
|
1943
|
+
}
|
|
1944
|
+
if (state2.group) {
|
|
1945
|
+
if (!groups.value[state2.group]) {
|
|
1946
|
+
groups.value[state2.group] = [];
|
|
1947
|
+
}
|
|
1948
|
+
if (!groups.value[state2.group].includes(id2)) {
|
|
1949
|
+
groups.value[state2.group].push(id2);
|
|
1950
|
+
}
|
|
1951
|
+
if (state2.syncDimensions) {
|
|
1952
|
+
syncGroupDimensions(state2.group, id2);
|
|
1953
|
+
}
|
|
1954
|
+
}
|
|
1955
|
+
}
|
|
1956
|
+
};
|
|
1957
|
+
const syncGroupDimensions = (groupName, sourceId) => {
|
|
1958
|
+
const groupItems = groups.value[groupName];
|
|
1959
|
+
if (!groupItems || groupItems.length < 2)
|
|
1960
|
+
return;
|
|
1961
|
+
const referenceId = sourceId || groupItems[0];
|
|
1962
|
+
const reference = items.value[referenceId];
|
|
1963
|
+
if (!reference)
|
|
1964
|
+
return;
|
|
1965
|
+
groupItems.forEach((id2) => {
|
|
1966
|
+
var _a;
|
|
1967
|
+
if (id2 !== referenceId && ((_a = items.value[id2]) == null ? void 0 : _a.syncDimensions)) {
|
|
1968
|
+
items.value[id2].width = reference.width;
|
|
1969
|
+
items.value[id2].height = reference.height;
|
|
1970
|
+
saveItemState(id2);
|
|
1971
|
+
}
|
|
1972
|
+
});
|
|
1973
|
+
};
|
|
1974
|
+
const arrangeItems = (arrangement) => {
|
|
1975
|
+
const visibleItems = Object.entries(items.value).filter(([, item]) => !item.fullScreen).sort((a3, b2) => a3[1].zIndex - b2[1].zIndex);
|
|
1976
|
+
switch (arrangement) {
|
|
1977
|
+
case "cascade": {
|
|
1978
|
+
let offset = 0;
|
|
1979
|
+
visibleItems.forEach(([id2, item]) => {
|
|
1980
|
+
item.left = 100 + offset;
|
|
1981
|
+
item.top = 100 + offset;
|
|
1982
|
+
item.stickynessPosition = "free";
|
|
1983
|
+
offset += 30;
|
|
1984
|
+
saveItemState(id2);
|
|
1985
|
+
});
|
|
1986
|
+
break;
|
|
1987
|
+
}
|
|
1988
|
+
case "tile": {
|
|
1989
|
+
const screenWidth = window.innerWidth;
|
|
1990
|
+
const screenHeight = window.innerHeight;
|
|
1991
|
+
const itemCount = visibleItems.length;
|
|
1992
|
+
const cols = Math.ceil(Math.sqrt(itemCount));
|
|
1993
|
+
const rows = Math.ceil(itemCount / cols);
|
|
1994
|
+
const itemWidth = Math.floor(screenWidth / cols) - 20;
|
|
1995
|
+
const itemHeight = Math.floor(screenHeight / rows) - 20;
|
|
1996
|
+
visibleItems.forEach(([id2, item], index) => {
|
|
1997
|
+
const col = index % cols;
|
|
1998
|
+
const row = Math.floor(index / cols);
|
|
1999
|
+
item.left = col * (itemWidth + 10) + 10;
|
|
2000
|
+
item.top = row * (itemHeight + 10) + 10;
|
|
2001
|
+
item.width = itemWidth;
|
|
2002
|
+
item.height = itemHeight;
|
|
2003
|
+
item.stickynessPosition = "free";
|
|
2004
|
+
saveItemState(id2);
|
|
2005
|
+
});
|
|
2006
|
+
break;
|
|
2007
|
+
}
|
|
2008
|
+
case "stack": {
|
|
2009
|
+
visibleItems.forEach(([id2, item]) => {
|
|
2010
|
+
item.left = 100;
|
|
2011
|
+
item.top = 100;
|
|
2012
|
+
item.stickynessPosition = "free";
|
|
2013
|
+
saveItemState(id2);
|
|
2014
|
+
});
|
|
2015
|
+
break;
|
|
2016
|
+
}
|
|
2017
|
+
}
|
|
2018
|
+
};
|
|
2019
|
+
const preventOverlap = (id2) => {
|
|
2020
|
+
const item = items.value[id2];
|
|
2021
|
+
if (!item || item.stickynessPosition !== "free")
|
|
2022
|
+
return;
|
|
2023
|
+
const threshold = 50;
|
|
2024
|
+
let adjusted = false;
|
|
2025
|
+
Object.entries(items.value).forEach(([otherId, otherItem]) => {
|
|
2026
|
+
if (otherId === id2 || otherItem.fullScreen)
|
|
2027
|
+
return;
|
|
2028
|
+
const horizontalOverlap = item.left < otherItem.left + otherItem.width && item.left + item.width > otherItem.left;
|
|
2029
|
+
const verticalOverlap = item.top < otherItem.top + otherItem.height && item.top + item.height > otherItem.top;
|
|
2030
|
+
if (horizontalOverlap && verticalOverlap) {
|
|
2031
|
+
item.left = otherItem.left + otherItem.width + threshold;
|
|
2032
|
+
if (item.left + item.width > window.innerWidth) {
|
|
2033
|
+
item.left = 100;
|
|
2034
|
+
item.top = otherItem.top + otherItem.height + threshold;
|
|
2035
|
+
}
|
|
2036
|
+
adjusted = true;
|
|
2037
|
+
}
|
|
2038
|
+
});
|
|
2039
|
+
if (adjusted) {
|
|
2040
|
+
saveItemState(id2);
|
|
2041
|
+
}
|
|
2042
|
+
};
|
|
2043
|
+
const saveItemState = (id2) => {
|
|
2044
|
+
const itemState = items.value[id2];
|
|
2045
|
+
localStorage.setItem(`overlayPositionAndSize_${id2}`, JSON.stringify(itemState));
|
|
2046
|
+
if (itemState.group) {
|
|
2047
|
+
const groupData = { groups: groups.value };
|
|
2048
|
+
localStorage.setItem("overlayGroups", JSON.stringify(groupData));
|
|
2049
|
+
}
|
|
2050
|
+
};
|
|
2051
|
+
const loadItemState = (id2) => {
|
|
2052
|
+
const savedState = localStorage.getItem(`overlayPositionAndSize_${id2}`);
|
|
2053
|
+
if (savedState) {
|
|
2054
|
+
const state2 = JSON.parse(savedState);
|
|
2055
|
+
setItemState(id2, state2);
|
|
2056
|
+
}
|
|
2057
|
+
const savedGroups = localStorage.getItem("overlayGroups");
|
|
2058
|
+
if (savedGroups) {
|
|
2059
|
+
const groupData = JSON.parse(savedGroups);
|
|
2060
|
+
groups.value = groupData.groups || {};
|
|
2061
|
+
}
|
|
2062
|
+
};
|
|
2063
|
+
const applyPreset = (id2, presetName) => {
|
|
2064
|
+
const preset = layoutPresets[presetName];
|
|
2065
|
+
const updates = {};
|
|
2066
|
+
if (preset.width === "100%") {
|
|
2067
|
+
updates.width = window.innerWidth;
|
|
2068
|
+
updates.fullWidth = true;
|
|
2069
|
+
} else {
|
|
2070
|
+
updates.width = preset.width;
|
|
2071
|
+
updates.fullWidth = false;
|
|
2072
|
+
}
|
|
2073
|
+
if (preset.height === "100%") {
|
|
2074
|
+
updates.height = window.innerHeight;
|
|
2075
|
+
updates.fullHeight = true;
|
|
2076
|
+
} else {
|
|
2077
|
+
updates.height = preset.height;
|
|
2078
|
+
updates.fullHeight = false;
|
|
2079
|
+
}
|
|
2080
|
+
setItemState(id2, updates);
|
|
2081
|
+
saveItemState(id2);
|
|
2082
|
+
};
|
|
2083
|
+
const toggleFullScreen = (id2) => {
|
|
2084
|
+
if (!items.value[id2])
|
|
2085
|
+
return;
|
|
2086
|
+
setFullScreen(id2, !items.value[id2].fullScreen);
|
|
2087
|
+
};
|
|
2088
|
+
const setFullScreen = (id2, fullScreen) => {
|
|
2089
|
+
if (!items.value[id2])
|
|
2090
|
+
return;
|
|
2091
|
+
if (items.value[id2].fullScreen !== fullScreen) {
|
|
2092
|
+
if (fullScreen) {
|
|
2093
|
+
Object.keys(items.value).forEach((otherId) => {
|
|
2094
|
+
if (otherId !== id2) {
|
|
2095
|
+
items.value[otherId].zIndex = 1;
|
|
2096
|
+
}
|
|
2097
|
+
});
|
|
2098
|
+
items.value[id2].fullScreen = true;
|
|
2099
|
+
items.value[id2].prevWidth = items.value[id2].width;
|
|
2100
|
+
items.value[id2].prevHeight = items.value[id2].height;
|
|
2101
|
+
items.value[id2].prevLeft = items.value[id2].left;
|
|
2102
|
+
items.value[id2].prevTop = items.value[id2].top;
|
|
2103
|
+
items.value[id2].width = window.innerWidth;
|
|
2104
|
+
items.value[id2].height = window.innerHeight;
|
|
2105
|
+
items.value[id2].left = 0;
|
|
2106
|
+
items.value[id2].top = 0;
|
|
2107
|
+
items.value[id2].zIndex = 9999;
|
|
2108
|
+
} else {
|
|
2109
|
+
items.value[id2].fullScreen = false;
|
|
2110
|
+
items.value[id2].width = items.value[id2].prevWidth || 400;
|
|
2111
|
+
items.value[id2].height = items.value[id2].prevHeight || 300;
|
|
2112
|
+
items.value[id2].left = items.value[id2].prevLeft || 100;
|
|
2113
|
+
items.value[id2].top = items.value[id2].prevTop || 100;
|
|
2114
|
+
items.value[id2].zIndex = 1e3;
|
|
2115
|
+
Object.keys(items.value).forEach((otherId) => {
|
|
2116
|
+
if (otherId !== id2) {
|
|
2117
|
+
items.value[otherId].zIndex = 100;
|
|
2118
|
+
}
|
|
2119
|
+
});
|
|
2120
|
+
}
|
|
2121
|
+
saveItemState(id2);
|
|
2122
|
+
clickOnItem(id2);
|
|
2123
|
+
}
|
|
2124
|
+
};
|
|
2125
|
+
const resetLayout = () => {
|
|
2126
|
+
Object.keys(items.value).forEach((id2) => {
|
|
2127
|
+
localStorage.removeItem(`overlayPositionAndSize_${id2}`);
|
|
2128
|
+
});
|
|
2129
|
+
localStorage.removeItem("overlayGroups");
|
|
2130
|
+
groups.value = {};
|
|
2131
|
+
Object.keys(initialItemStates.value).forEach((id2) => {
|
|
2132
|
+
const initialState = initialItemStates.value[id2];
|
|
2133
|
+
if (!initialState)
|
|
2134
|
+
return;
|
|
2135
|
+
const resetState = {
|
|
2136
|
+
width: initialState.width || 400,
|
|
2137
|
+
height: initialState.height || 300,
|
|
2138
|
+
left: initialState.left || 100,
|
|
2139
|
+
top: initialState.top || 100,
|
|
2140
|
+
stickynessPosition: initialState.stickynessPosition || "free",
|
|
2141
|
+
fullWidth: initialState.fullWidth || false,
|
|
2142
|
+
fullHeight: initialState.fullHeight || false,
|
|
2143
|
+
zIndex: 100,
|
|
2144
|
+
fullScreen: false,
|
|
2145
|
+
clicked: false,
|
|
2146
|
+
group: initialState.group,
|
|
2147
|
+
syncDimensions: initialState.syncDimensions
|
|
2148
|
+
};
|
|
2149
|
+
items.value[id2] = resetState;
|
|
2150
|
+
if (resetState.group) {
|
|
2151
|
+
if (!groups.value[resetState.group]) {
|
|
2152
|
+
groups.value[resetState.group] = [];
|
|
2153
|
+
}
|
|
2154
|
+
if (!groups.value[resetState.group].includes(id2)) {
|
|
2155
|
+
groups.value[resetState.group].push(id2);
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
});
|
|
2159
|
+
setTimeout(() => {
|
|
2160
|
+
window.dispatchEvent(
|
|
2161
|
+
new CustomEvent("layout-reset", {
|
|
2162
|
+
detail: { initialStates: initialItemStates.value }
|
|
2163
|
+
})
|
|
2164
|
+
);
|
|
2165
|
+
}, 0);
|
|
2166
|
+
};
|
|
2167
|
+
const resetSingleItem = (id2) => {
|
|
2168
|
+
var _a;
|
|
2169
|
+
const initialState = initialItemStates.value[id2];
|
|
2170
|
+
if (!initialState) {
|
|
2171
|
+
console.warn(`No initial state found for item ${id2}`);
|
|
2172
|
+
return;
|
|
2173
|
+
}
|
|
2174
|
+
localStorage.removeItem(`overlayPositionAndSize_${id2}`);
|
|
2175
|
+
const resetState = {
|
|
2176
|
+
width: initialState.width || 400,
|
|
2177
|
+
height: initialState.height || 300,
|
|
2178
|
+
left: initialState.left || 100,
|
|
2179
|
+
top: initialState.top || 100,
|
|
2180
|
+
stickynessPosition: initialState.stickynessPosition || "free",
|
|
2181
|
+
fullWidth: initialState.fullWidth || false,
|
|
2182
|
+
fullHeight: initialState.fullHeight || false,
|
|
2183
|
+
zIndex: ((_a = items.value[id2]) == null ? void 0 : _a.zIndex) || 100,
|
|
2184
|
+
fullScreen: false,
|
|
2185
|
+
clicked: false,
|
|
2186
|
+
group: initialState.group,
|
|
2187
|
+
syncDimensions: initialState.syncDimensions
|
|
2188
|
+
};
|
|
2189
|
+
items.value[id2] = resetState;
|
|
2190
|
+
};
|
|
2191
|
+
const clickOnItem = (id2) => {
|
|
2192
|
+
if (!items.value[id2] || items.value[id2].fullScreen)
|
|
2193
|
+
return;
|
|
2194
|
+
let maxZIndex = 99;
|
|
2195
|
+
Object.values(items.value).forEach((item) => {
|
|
2196
|
+
if (!item.fullScreen) {
|
|
2197
|
+
maxZIndex = Math.max(maxZIndex, item.zIndex);
|
|
2198
|
+
}
|
|
2199
|
+
});
|
|
2200
|
+
if (items.value[id2].zIndex <= maxZIndex) {
|
|
2201
|
+
items.value[id2].zIndex = maxZIndex + 1;
|
|
2202
|
+
saveItemState(id2);
|
|
2203
|
+
}
|
|
2204
|
+
idItemClicked.value = id2;
|
|
2205
|
+
};
|
|
2206
|
+
const setResizing = (resizing) => {
|
|
2207
|
+
inResizing.value = resizing;
|
|
2208
|
+
};
|
|
2209
|
+
const getResizing = () => {
|
|
2210
|
+
return inResizing.value;
|
|
2211
|
+
};
|
|
2212
|
+
const scrollOnItem = (id2) => {
|
|
2213
|
+
const itemElement = document.getElementById(id2);
|
|
2214
|
+
if (!itemElement)
|
|
2215
|
+
return;
|
|
2216
|
+
const observer = new IntersectionObserver(
|
|
2217
|
+
(entries) => {
|
|
2218
|
+
entries.forEach((entry) => {
|
|
2219
|
+
if (entry.isIntersecting) {
|
|
2220
|
+
idItemVisible.value = id2;
|
|
2221
|
+
items.value[id2].zIndex = 1e3;
|
|
2222
|
+
} else if (idItemVisible.value === id2) {
|
|
2223
|
+
items.value[id2].zIndex = 100;
|
|
2224
|
+
idItemVisible.value = null;
|
|
2225
|
+
}
|
|
2226
|
+
});
|
|
2227
|
+
},
|
|
2228
|
+
{
|
|
2229
|
+
threshold: 0.5
|
|
2230
|
+
}
|
|
2231
|
+
);
|
|
2232
|
+
observer.observe(itemElement);
|
|
2233
|
+
};
|
|
2234
|
+
return {
|
|
2235
|
+
inResizing,
|
|
2236
|
+
items,
|
|
2237
|
+
groups,
|
|
2238
|
+
layoutPresets,
|
|
2239
|
+
initialItemStates,
|
|
2240
|
+
registerInitialState,
|
|
2241
|
+
setItemState,
|
|
2242
|
+
saveItemState,
|
|
2243
|
+
loadItemState,
|
|
2244
|
+
setResizing,
|
|
2245
|
+
getResizing,
|
|
2246
|
+
clickOnItem,
|
|
2247
|
+
scrollOnItem,
|
|
2248
|
+
idItemVisible,
|
|
2249
|
+
toggleFullScreen,
|
|
2250
|
+
setFullScreen,
|
|
2251
|
+
arrangeItems,
|
|
2252
|
+
preventOverlap,
|
|
2253
|
+
syncGroupDimensions,
|
|
2254
|
+
applyPreset,
|
|
2255
|
+
getGroupItems,
|
|
2256
|
+
resetLayout,
|
|
2257
|
+
resetSingleItem,
|
|
2258
|
+
bringToFront
|
|
2259
|
+
};
|
|
2260
|
+
});
|
|
1625
2261
|
/*! Element Plus Icons Vue v2.3.1 */
|
|
1626
2262
|
var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
1627
2263
|
name: "ArrowDown",
|
|
@@ -1719,13 +2355,14 @@ var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
1719
2355
|
}
|
|
1720
2356
|
});
|
|
1721
2357
|
var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
|
|
1722
|
-
const _hoisted_1$
|
|
1723
|
-
const _hoisted_2$
|
|
1724
|
-
const _hoisted_3$
|
|
1725
|
-
const _sfc_main$
|
|
2358
|
+
const _hoisted_1$h = { class: "status-wrapper" };
|
|
2359
|
+
const _hoisted_2$f = { class: "flow-card" };
|
|
2360
|
+
const _hoisted_3$e = ["title"];
|
|
2361
|
+
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
1726
2362
|
__name: "status",
|
|
1727
2363
|
setup(__props) {
|
|
1728
2364
|
const nodeStore = useNodeStore();
|
|
2365
|
+
const draggableItemStore = useItemStore();
|
|
1729
2366
|
const lastStatusChange = ref(/* @__PURE__ */ new Date());
|
|
1730
2367
|
const isRunning = computed$1(() => nodeStore.isRunning);
|
|
1731
2368
|
const showFlowResult = computed$1(() => nodeStore.showFlowResult);
|
|
@@ -1761,17 +2398,21 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1761
2398
|
const toggleResults = () => {
|
|
1762
2399
|
nodeStore.showFlowResult = !nodeStore.showFlowResult;
|
|
1763
2400
|
nodeStore.isShowingLogViewer = nodeStore.showFlowResult;
|
|
2401
|
+
if (nodeStore.isShowingLogViewer) {
|
|
2402
|
+
draggableItemStore.bringToFront("logViewer");
|
|
2403
|
+
draggableItemStore.bringToFront("flowresults");
|
|
2404
|
+
}
|
|
1764
2405
|
};
|
|
1765
2406
|
return (_ctx, _cache) => {
|
|
1766
2407
|
const _component_el_icon = resolveComponent("el-icon");
|
|
1767
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
2408
|
+
return openBlock(), createElementBlock("div", _hoisted_1$h, [
|
|
1768
2409
|
createVNode(PopOver, {
|
|
1769
2410
|
content: tooltipContent.value,
|
|
1770
2411
|
title: isRunning.value ? "Processing Flow" : "Flow Idle",
|
|
1771
2412
|
placement: "left"
|
|
1772
2413
|
}, {
|
|
1773
2414
|
default: withCtx(() => [
|
|
1774
|
-
createBaseVNode("div", _hoisted_2$
|
|
2415
|
+
createBaseVNode("div", _hoisted_2$f, [
|
|
1775
2416
|
(openBlock(), createElementBlock("svg", {
|
|
1776
2417
|
viewBox: "0 0 100 100",
|
|
1777
2418
|
class: normalizeClass(["flow-animation", { "is-flowing": isRunning.value }])
|
|
@@ -1860,7 +2501,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1860
2501
|
]),
|
|
1861
2502
|
_: 1
|
|
1862
2503
|
})) : createCommentVNode("", true)
|
|
1863
|
-
], 10, _hoisted_3$
|
|
2504
|
+
], 10, _hoisted_3$e)
|
|
1864
2505
|
]),
|
|
1865
2506
|
_: 1
|
|
1866
2507
|
})
|
|
@@ -1868,8 +2509,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1868
2509
|
};
|
|
1869
2510
|
}
|
|
1870
2511
|
});
|
|
1871
|
-
const
|
|
1872
|
-
const Status = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2512
|
+
const status_vue_vue_type_style_index_0_scoped_4aa2388b_lang = "";
|
|
2513
|
+
const Status = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-4aa2388b"]]);
|
|
1873
2514
|
function tryOnScopeDispose(fn) {
|
|
1874
2515
|
if (getCurrentScope()) {
|
|
1875
2516
|
onScopeDispose(fn);
|
|
@@ -8475,7 +9116,7 @@ const __default__$f = {
|
|
|
8475
9116
|
name: "Handle",
|
|
8476
9117
|
compatConfig: { MODE: 3 }
|
|
8477
9118
|
};
|
|
8478
|
-
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
9119
|
+
const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
|
|
8479
9120
|
...__default__$f,
|
|
8480
9121
|
props: {
|
|
8481
9122
|
id: { default: null },
|
|
@@ -8636,9 +9277,9 @@ const DefaultNode = function({
|
|
|
8636
9277
|
}) {
|
|
8637
9278
|
const label = data.label || _label;
|
|
8638
9279
|
return [
|
|
8639
|
-
h(_sfc_main$f, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
9280
|
+
h(_sfc_main$f$1, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
8640
9281
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label]),
|
|
8641
|
-
h(_sfc_main$f, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
9282
|
+
h(_sfc_main$f$1, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
8642
9283
|
];
|
|
8643
9284
|
};
|
|
8644
9285
|
DefaultNode.props = ["sourcePosition", "targetPosition", "label", "isValidTargetPos", "isValidSourcePos", "connectable", "data"];
|
|
@@ -8654,7 +9295,7 @@ const OutputNode = function({
|
|
|
8654
9295
|
}) {
|
|
8655
9296
|
const label = data.label || _label;
|
|
8656
9297
|
return [
|
|
8657
|
-
h(_sfc_main$f, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
9298
|
+
h(_sfc_main$f$1, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
8658
9299
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label])
|
|
8659
9300
|
];
|
|
8660
9301
|
};
|
|
@@ -8672,7 +9313,7 @@ const InputNode = function({
|
|
|
8672
9313
|
const label = data.label || _label;
|
|
8673
9314
|
return [
|
|
8674
9315
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label]),
|
|
8675
|
-
h(_sfc_main$f, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
9316
|
+
h(_sfc_main$f$1, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
8676
9317
|
];
|
|
8677
9318
|
};
|
|
8678
9319
|
InputNode.props = ["sourcePosition", "label", "isValidSourcePos", "connectable", "data"];
|
|
@@ -8686,7 +9327,7 @@ const __default__$e = {
|
|
|
8686
9327
|
name: "EdgeText",
|
|
8687
9328
|
compatConfig: { MODE: 3 }
|
|
8688
9329
|
};
|
|
8689
|
-
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
9330
|
+
const _sfc_main$e$1 = /* @__PURE__ */ defineComponent({
|
|
8690
9331
|
...__default__$e,
|
|
8691
9332
|
props: {
|
|
8692
9333
|
x: {},
|
|
@@ -8802,7 +9443,7 @@ const _sfc_main$d$1 = /* @__PURE__ */ defineComponent({
|
|
|
8802
9443
|
"stroke-opacity": 0,
|
|
8803
9444
|
class: "vue-flow__edge-interaction"
|
|
8804
9445
|
}, null, 8, _hoisted_2$1$1)) : createCommentVNode("", true),
|
|
8805
|
-
_ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e, {
|
|
9446
|
+
_ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e$1, {
|
|
8806
9447
|
key: 1,
|
|
8807
9448
|
ref_key: "labelEl",
|
|
8808
9449
|
ref: labelEl,
|
|
@@ -10248,8 +10889,8 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
|
|
|
10248
10889
|
}
|
|
10249
10890
|
});
|
|
10250
10891
|
const _hoisted_1$5$1 = ["id"];
|
|
10251
|
-
const _hoisted_2$
|
|
10252
|
-
const _hoisted_3$
|
|
10892
|
+
const _hoisted_2$e = ["id"];
|
|
10893
|
+
const _hoisted_3$d = ["id"];
|
|
10253
10894
|
const __default__$7 = {
|
|
10254
10895
|
name: "A11yDescriptions",
|
|
10255
10896
|
compatConfig: { MODE: 3 }
|
|
@@ -10267,14 +10908,14 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
|
|
|
10267
10908
|
createBaseVNode("div", {
|
|
10268
10909
|
id: `${unref(ARIA_EDGE_DESC_KEY)}-${unref(id2)}`,
|
|
10269
10910
|
style: { "display": "none" }
|
|
10270
|
-
}, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, _hoisted_2$
|
|
10911
|
+
}, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, _hoisted_2$e),
|
|
10271
10912
|
!unref(disableKeyboardA11y) ? (openBlock(), createElementBlock("div", {
|
|
10272
10913
|
key: 0,
|
|
10273
10914
|
id: `${unref(ARIA_LIVE_MESSAGE)}-${unref(id2)}`,
|
|
10274
10915
|
"aria-live": "assertive",
|
|
10275
10916
|
"aria-atomic": "true",
|
|
10276
10917
|
style: { "position": "absolute", "width": "1px", "height": "1px", "margin": "-1px", "border": "0", "padding": "0", "overflow": "hidden", "clip": "rect(0px, 0px, 0px, 0px)", "clip-path": "inset(100%)" }
|
|
10277
|
-
}, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$
|
|
10918
|
+
}, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$d)) : createCommentVNode("", true)
|
|
10278
10919
|
], 64);
|
|
10279
10920
|
};
|
|
10280
10921
|
}
|
|
@@ -11321,7 +11962,7 @@ function useStylesLoadedWarning() {
|
|
|
11321
11962
|
}
|
|
11322
11963
|
});
|
|
11323
11964
|
}
|
|
11324
|
-
const _hoisted_1$
|
|
11965
|
+
const _hoisted_1$g = /* @__PURE__ */ createBaseVNode("div", { class: "vue-flow__edge-labels" }, null, -1);
|
|
11325
11966
|
const __default__$1$1 = {
|
|
11326
11967
|
name: "VueFlow",
|
|
11327
11968
|
compatConfig: { MODE: 3 }
|
|
@@ -11414,7 +12055,7 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
|
|
|
11414
12055
|
createVNode(_sfc_main$8$1, null, {
|
|
11415
12056
|
default: withCtx(() => [
|
|
11416
12057
|
createVNode(_sfc_main$4$1),
|
|
11417
|
-
_hoisted_1$
|
|
12058
|
+
_hoisted_1$g,
|
|
11418
12059
|
createVNode(_sfc_main$2$1),
|
|
11419
12060
|
renderSlot(_ctx.$slots, "zoom-pane")
|
|
11420
12061
|
]),
|
|
@@ -11430,7 +12071,7 @@ const __default__$3 = {
|
|
|
11430
12071
|
name: "Panel",
|
|
11431
12072
|
compatConfig: { MODE: 3 }
|
|
11432
12073
|
};
|
|
11433
|
-
const _sfc_main$
|
|
12074
|
+
const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
11434
12075
|
...__default__$3,
|
|
11435
12076
|
props: {
|
|
11436
12077
|
position: {}
|
|
@@ -14172,14 +14813,14 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
|
|
|
14172
14813
|
};
|
|
14173
14814
|
}
|
|
14174
14815
|
});
|
|
14175
|
-
const _hoisted_1$
|
|
14176
|
-
const _hoisted_2$
|
|
14177
|
-
const _hoisted_3$
|
|
14816
|
+
const _hoisted_1$f = ["width", "height", "viewBox", "aria-labelledby"];
|
|
14817
|
+
const _hoisted_2$d = ["id"];
|
|
14818
|
+
const _hoisted_3$c = ["d", "fill", "stroke", "stroke-width"];
|
|
14178
14819
|
const __default__ = {
|
|
14179
14820
|
name: "MiniMap",
|
|
14180
14821
|
compatConfig: { MODE: 3 }
|
|
14181
14822
|
};
|
|
14182
|
-
const _sfc_main$
|
|
14823
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
14183
14824
|
...__default__,
|
|
14184
14825
|
props: {
|
|
14185
14826
|
nodeColor: { type: [String, Function], default: "#e2e2e2" },
|
|
@@ -14342,7 +14983,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14342
14983
|
emit("nodeMouseleave", param);
|
|
14343
14984
|
}
|
|
14344
14985
|
return (_ctx, _cache) => {
|
|
14345
|
-
return openBlock(), createBlock(unref(_sfc_main$
|
|
14986
|
+
return openBlock(), createBlock(unref(_sfc_main$j), {
|
|
14346
14987
|
position: _ctx.position,
|
|
14347
14988
|
class: normalizeClass(["vue-flow__minimap", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])
|
|
14348
14989
|
}, {
|
|
@@ -14360,7 +15001,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14360
15001
|
_ctx.ariaLabel ? (openBlock(), createElementBlock("title", {
|
|
14361
15002
|
key: 0,
|
|
14362
15003
|
id: `vue-flow__minimap-${unref(id2)}`
|
|
14363
|
-
}, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$
|
|
15004
|
+
}, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$d)) : createCommentVNode("", true),
|
|
14364
15005
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(getNodesInitialized), (node) => {
|
|
14365
15006
|
return openBlock(), createBlock(_sfc_main$1$1, {
|
|
14366
15007
|
id: node.id,
|
|
@@ -14392,8 +15033,8 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14392
15033
|
stroke: _ctx.maskStrokeColor,
|
|
14393
15034
|
"stroke-width": _ctx.maskStrokeWidth,
|
|
14394
15035
|
"fill-rule": "evenodd"
|
|
14395
|
-
}, null, 8, _hoisted_3$
|
|
14396
|
-
], 8, _hoisted_1$
|
|
15036
|
+
}, null, 8, _hoisted_3$c)
|
|
15037
|
+
], 8, _hoisted_1$f))
|
|
14397
15038
|
]),
|
|
14398
15039
|
_: 1
|
|
14399
15040
|
}, 8, ["position", "class"]);
|
|
@@ -14408,16 +15049,320 @@ function toSnakeCase(str) {
|
|
|
14408
15049
|
return str;
|
|
14409
15050
|
return str.replace(/([A-Z])/g, "_$1").replace(/^_/, "").toLowerCase();
|
|
14410
15051
|
}
|
|
14411
|
-
const
|
|
14412
|
-
const
|
|
15052
|
+
const __vite_glob_0_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAACO0lEQVR4nN2Yz0vbYBjHv29NbZUy0B43QUG9zNPEHUT05NCTiu6o0NbDLk5a/RMERaonkSrO8zw4alFQtBsMBG96kJ5EUTcRh78QRGvsu4O8MSk1fdMmaeLnlL7p++ST53kfkjeADSCKX5GI4Ci+XQCl3uwzKXUkyYD4ZWjXKDnpUuxA+BbeBEij9hD0SgwMl+kplY5McoLmHEVMNYi06E/eNs4iEQf/zjEyonDRR9IAxMCQ5OYopIgawlz4gR1bVhKECJgPvwOsLAlAoIgAFpdMgXgAQFD704M/ZI4NAOf85IvnLJ1Jhi0kVcvNUCtFvvAsKVtk0haSXOU2s8sz8XoyqWfjsKpMJ3bQUVmNt6WerHNMzSQT/ByPYXDrJyq/z+Li/i7rPK5M6gET7NqIYvloXxovd7mzzjW1cdrXFrHx91BzXNPKnS6Y1HDjhjYOy1TnelQp6Aum7QDVMSyTTLAnHsPK8fMaTPqCIESLokGScsGlwz1pPBdBgLPciR4fd8CaN0+72871qDKD/pCmEsvhkmQX5qVtdRHxE2WT5CoI6Ng4/to6zDR9wlRiWymosUkyoduaHG1oBgAEt35JY7muwXR0eeJ4BCfKXW78Pn36iDH+sQXBuno9QgPglIy1dqme97pLAAA752eGvNZxSbZXVHEF+/r+Q14yL2GL90lbSKqW28hdohYsnUkCeglYXPKx2NkHyCQpJT8Kp5MJmkTv4A0gk3zsD3WnQMYKJyWHXouBYVehLV4f/wHit6c8llKODwAAAABJRU5ErkJggg==";
|
|
15053
|
+
const __vite_glob_0_1 = "/assets/airbyte-292aa232.png";
|
|
15054
|
+
const __vite_glob_0_2 = "/assets/cloud_storage_reader-aa1415d6.png";
|
|
15055
|
+
const __vite_glob_0_3 = "data:image/png;base64,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";
|
|
15056
|
+
const __vite_glob_0_4 = "/assets/cross_join-d30c0290.png";
|
|
15057
|
+
const __vite_glob_0_5 = "/assets/database_reader-ce1e55f3.svg";
|
|
15058
|
+
const __vite_glob_0_6 = "/assets/database_writer-b4ad0753.svg";
|
|
15059
|
+
const __vite_glob_0_7 = "/assets/explore_data-8a0a2861.png";
|
|
15060
|
+
const __vite_glob_0_8 = "data:image/png;base64,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";
|
|
15061
|
+
const __vite_glob_0_9 = "/assets/filter-d7708bda.png";
|
|
15062
|
+
const __vite_glob_0_10 = "/assets/formula-eeeb1611.png";
|
|
15063
|
+
const __vite_glob_0_11 = "/assets/fuzzy_match-40c161b2.png";
|
|
15064
|
+
const __vite_glob_0_12 = "data:image/png;base64,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";
|
|
15065
|
+
const __vite_glob_0_13 = "/assets/graph_solver-8b7888b8.png";
|
|
15066
|
+
const __vite_glob_0_14 = "/assets/group_by-80561fc3.png";
|
|
15067
|
+
const __vite_glob_0_15 = "/assets/input_data-ab2eb678.png";
|
|
15068
|
+
const __vite_glob_0_16 = "/assets/join-349043ae.png";
|
|
15069
|
+
const __vite_glob_0_17 = "/assets/manual_input-ae98f31d.png";
|
|
15070
|
+
const __vite_glob_0_18 = "/assets/old_join-5d0eb604.png";
|
|
15071
|
+
const __vite_glob_0_19 = "/assets/output-06ec0371.png";
|
|
15072
|
+
const __vite_glob_0_20 = "/assets/pivot-9660df51.png";
|
|
15073
|
+
const __vite_glob_0_21 = "/assets/polars_code-05ce5dc6.png";
|
|
15074
|
+
const __vite_glob_0_22 = "/assets/record_count-dab44eb5.png";
|
|
15075
|
+
const __vite_glob_0_23 = "/assets/record_id-0b15856b.png";
|
|
15076
|
+
const __vite_glob_0_24 = "/assets/sample-693a88b5.png";
|
|
15077
|
+
const __vite_glob_0_25 = "/assets/select-b0d0437a.png";
|
|
15078
|
+
const __vite_glob_0_26 = "/assets/sort-2aa579f0.png";
|
|
15079
|
+
const __vite_glob_0_27 = "/assets/summarize-2a099231.png";
|
|
15080
|
+
const __vite_glob_0_28 = "/assets/text_to_rows-859b29ea.png";
|
|
15081
|
+
const __vite_glob_0_29 = "/assets/union-2d8609f4.png";
|
|
15082
|
+
const __vite_glob_0_30 = "/assets/unique-1958b98a.png";
|
|
15083
|
+
const __vite_glob_0_31 = "/assets/unpivot-d3cb4b5b.png";
|
|
15084
|
+
const __vite_glob_0_32 = "/assets/view-7a0f0be1.png";
|
|
15085
|
+
const getImageUrl = (name) => {
|
|
15086
|
+
return new URL((/* @__PURE__ */ Object.assign({ "./assets/icons/Output2.png": __vite_glob_0_0, "./assets/icons/airbyte.png": __vite_glob_0_1, "./assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "./assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "./assets/icons/cross_join.png": __vite_glob_0_4, "./assets/icons/database_reader.svg": __vite_glob_0_5, "./assets/icons/database_writer.svg": __vite_glob_0_6, "./assets/icons/explore_data.png": __vite_glob_0_7, "./assets/icons/external_source.png": __vite_glob_0_8, "./assets/icons/filter.png": __vite_glob_0_9, "./assets/icons/formula.png": __vite_glob_0_10, "./assets/icons/fuzzy_match.png": __vite_glob_0_11, "./assets/icons/google_sheet.png": __vite_glob_0_12, "./assets/icons/graph_solver.png": __vite_glob_0_13, "./assets/icons/group_by.png": __vite_glob_0_14, "./assets/icons/input_data.png": __vite_glob_0_15, "./assets/icons/join.png": __vite_glob_0_16, "./assets/icons/manual_input.png": __vite_glob_0_17, "./assets/icons/old_join.png": __vite_glob_0_18, "./assets/icons/output.png": __vite_glob_0_19, "./assets/icons/pivot.png": __vite_glob_0_20, "./assets/icons/polars_code.png": __vite_glob_0_21, "./assets/icons/record_count.png": __vite_glob_0_22, "./assets/icons/record_id.png": __vite_glob_0_23, "./assets/icons/sample.png": __vite_glob_0_24, "./assets/icons/select.png": __vite_glob_0_25, "./assets/icons/sort.png": __vite_glob_0_26, "./assets/icons/summarize.png": __vite_glob_0_27, "./assets/icons/text_to_rows.png": __vite_glob_0_28, "./assets/icons/union.png": __vite_glob_0_29, "./assets/icons/unique.png": __vite_glob_0_30, "./assets/icons/unpivot.png": __vite_glob_0_31, "./assets/icons/view.png": __vite_glob_0_32 }))[`./assets/icons/${name}`], self.location).href;
|
|
15087
|
+
};
|
|
15088
|
+
const fetchNodes = async () => {
|
|
15089
|
+
const response = await axios.get("/node_list");
|
|
15090
|
+
const listNodes = response.data;
|
|
15091
|
+
return listNodes;
|
|
15092
|
+
};
|
|
15093
|
+
const _hoisted_1$e = { class: "component-wrapper" };
|
|
15094
|
+
const _hoisted_2$c = { class: "tooltip-text" };
|
|
15095
|
+
const _hoisted_3$b = ["src", "alt"];
|
|
15096
|
+
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
15097
|
+
__name: "nodeButton",
|
|
15098
|
+
props: {
|
|
15099
|
+
nodeId: {},
|
|
15100
|
+
imageSrc: {},
|
|
15101
|
+
title: {},
|
|
15102
|
+
drawerComponent: {},
|
|
15103
|
+
drawerProps: {},
|
|
15104
|
+
nodeTitleInfo: {}
|
|
15105
|
+
},
|
|
15106
|
+
emits: ["click"],
|
|
15107
|
+
setup(__props, { emit: __emit }) {
|
|
15108
|
+
const description = ref("");
|
|
15109
|
+
const mouseX = ref(0);
|
|
15110
|
+
const mouseY = ref(0);
|
|
15111
|
+
const nodeStore = useNodeStore();
|
|
15112
|
+
const props2 = __props;
|
|
15113
|
+
const isSelected = computed$1(() => {
|
|
15114
|
+
return nodeStore.node_id == props2.nodeId;
|
|
15115
|
+
});
|
|
15116
|
+
computed$1(() => {
|
|
15117
|
+
const overlayWidth = 400;
|
|
15118
|
+
const overlayHeight = 200;
|
|
15119
|
+
const buffer = 100;
|
|
15120
|
+
let left = mouseX.value + buffer;
|
|
15121
|
+
let top = mouseY.value + buffer;
|
|
15122
|
+
if (left + overlayWidth > window.innerWidth) {
|
|
15123
|
+
left -= overlayWidth + 2 * buffer;
|
|
15124
|
+
}
|
|
15125
|
+
if (top + overlayHeight > window.innerHeight) {
|
|
15126
|
+
top -= overlayHeight + 2 * buffer;
|
|
15127
|
+
}
|
|
15128
|
+
left = Math.max(left, buffer);
|
|
15129
|
+
top = Math.max(top, buffer);
|
|
15130
|
+
return {
|
|
15131
|
+
top: `${top}px`,
|
|
15132
|
+
left: `${left}px`
|
|
15133
|
+
};
|
|
15134
|
+
});
|
|
15135
|
+
const nodeResult = computed$1(() => {
|
|
15136
|
+
const nodeResult2 = nodeStore.getNodeResult(props2.nodeId);
|
|
15137
|
+
const nodeValidation = nodeStore.getNodeValidation(props2.nodeId);
|
|
15138
|
+
if (nodeResult2 && nodeResult2.is_running) {
|
|
15139
|
+
return {
|
|
15140
|
+
success: void 0,
|
|
15141
|
+
statusIndicator: "running",
|
|
15142
|
+
hasRun: false,
|
|
15143
|
+
error: void 0
|
|
15144
|
+
};
|
|
15145
|
+
}
|
|
15146
|
+
if (nodeResult2 && !nodeResult2.is_running) {
|
|
15147
|
+
if (nodeValidation) {
|
|
15148
|
+
if (nodeResult2.success === true && !nodeValidation.isValid && nodeValidation.validationTime > nodeResult2.start_timestamp) {
|
|
15149
|
+
return {
|
|
15150
|
+
success: true,
|
|
15151
|
+
statusIndicator: "warning",
|
|
15152
|
+
error: nodeValidation.error,
|
|
15153
|
+
hasRun: true
|
|
15154
|
+
};
|
|
15155
|
+
}
|
|
15156
|
+
if (nodeResult2.success === true && nodeValidation.isValid) {
|
|
15157
|
+
return {
|
|
15158
|
+
success: true,
|
|
15159
|
+
statusIndicator: "success",
|
|
15160
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
15161
|
+
hasRun: true
|
|
15162
|
+
};
|
|
15163
|
+
}
|
|
15164
|
+
if (nodeResult2.success === false && nodeValidation.isValid && nodeValidation.validationTime > nodeResult2.start_timestamp) {
|
|
15165
|
+
return {
|
|
15166
|
+
success: false,
|
|
15167
|
+
statusIndicator: "unknown",
|
|
15168
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
15169
|
+
hasRun: true
|
|
15170
|
+
};
|
|
15171
|
+
}
|
|
15172
|
+
if (nodeResult2.success === false && (!nodeValidation.isValid || !nodeValidation.validationTime)) {
|
|
15173
|
+
return {
|
|
15174
|
+
success: false,
|
|
15175
|
+
statusIndicator: "failure",
|
|
15176
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
15177
|
+
hasRun: true
|
|
15178
|
+
};
|
|
15179
|
+
}
|
|
15180
|
+
}
|
|
15181
|
+
return {
|
|
15182
|
+
success: nodeResult2.success ?? false,
|
|
15183
|
+
statusIndicator: nodeResult2.success ? "success" : "failure",
|
|
15184
|
+
error: nodeResult2.error,
|
|
15185
|
+
hasRun: true
|
|
15186
|
+
};
|
|
15187
|
+
}
|
|
15188
|
+
if (nodeValidation) {
|
|
15189
|
+
if (!nodeValidation.isValid) {
|
|
15190
|
+
return {
|
|
15191
|
+
success: false,
|
|
15192
|
+
statusIndicator: "warning",
|
|
15193
|
+
error: nodeValidation.error,
|
|
15194
|
+
hasRun: false
|
|
15195
|
+
};
|
|
15196
|
+
}
|
|
15197
|
+
if (nodeValidation.isValid) {
|
|
15198
|
+
return {
|
|
15199
|
+
success: true,
|
|
15200
|
+
statusIndicator: "unknown",
|
|
15201
|
+
error: nodeValidation.error,
|
|
15202
|
+
hasRun: false
|
|
15203
|
+
};
|
|
15204
|
+
}
|
|
15205
|
+
}
|
|
15206
|
+
return void 0;
|
|
15207
|
+
});
|
|
15208
|
+
const tooltipContent = computed$1(() => {
|
|
15209
|
+
var _a, _b, _c;
|
|
15210
|
+
switch ((_a = nodeResult.value) == null ? void 0 : _a.statusIndicator) {
|
|
15211
|
+
case "success":
|
|
15212
|
+
return "Operation successful";
|
|
15213
|
+
case "failure":
|
|
15214
|
+
return "Operation failed: \n" + (((_b = nodeResult.value) == null ? void 0 : _b.error) || "No error message available");
|
|
15215
|
+
case "warning":
|
|
15216
|
+
return "Operation warning: \n" + (((_c = nodeResult.value) == null ? void 0 : _c.error) || "No warning message available");
|
|
15217
|
+
case "running":
|
|
15218
|
+
return "Operation in progress...";
|
|
15219
|
+
case "unknown":
|
|
15220
|
+
default:
|
|
15221
|
+
return "Status unknown";
|
|
15222
|
+
}
|
|
15223
|
+
});
|
|
15224
|
+
const getNodeDescription = async () => {
|
|
15225
|
+
description.value = await nodeStore.getNodeDescription(props2.nodeId);
|
|
15226
|
+
};
|
|
15227
|
+
watch$1(
|
|
15228
|
+
() => nodeStore.node_id,
|
|
15229
|
+
(newNodeId, oldNodeId) => {
|
|
15230
|
+
if (String(newNodeId) === String(props2.nodeId) && props2.drawerComponent) {
|
|
15231
|
+
nodeStore.openDrawer(props2.drawerComponent, props2.nodeTitleInfo);
|
|
15232
|
+
}
|
|
15233
|
+
},
|
|
15234
|
+
{ immediate: true }
|
|
15235
|
+
);
|
|
15236
|
+
onMounted(() => {
|
|
15237
|
+
watch$1(
|
|
15238
|
+
() => props2.nodeId,
|
|
15239
|
+
async (newVal) => {
|
|
15240
|
+
if (newVal !== -1) {
|
|
15241
|
+
await nextTick();
|
|
15242
|
+
getNodeDescription();
|
|
15243
|
+
}
|
|
15244
|
+
}
|
|
15245
|
+
);
|
|
15246
|
+
});
|
|
15247
|
+
return (_ctx, _cache) => {
|
|
15248
|
+
var _a;
|
|
15249
|
+
return openBlock(), createElementBlock("div", _hoisted_1$e, [
|
|
15250
|
+
createBaseVNode("div", {
|
|
15251
|
+
class: normalizeClass(["status-indicator", (_a = nodeResult.value) == null ? void 0 : _a.statusIndicator])
|
|
15252
|
+
}, [
|
|
15253
|
+
createBaseVNode("span", _hoisted_2$c, toDisplayString(tooltipContent.value), 1)
|
|
15254
|
+
], 2),
|
|
15255
|
+
createBaseVNode("button", {
|
|
15256
|
+
class: normalizeClass(["node-button", { selected: isSelected.value }]),
|
|
15257
|
+
onClick: _cache[0] || (_cache[0] = //@ts-ignore
|
|
15258
|
+
(...args) => _ctx.onClick && _ctx.onClick(...args))
|
|
15259
|
+
}, [
|
|
15260
|
+
createBaseVNode("img", {
|
|
15261
|
+
src: unref(getImageUrl)(props2.imageSrc),
|
|
15262
|
+
alt: props2.title,
|
|
15263
|
+
width: "50"
|
|
15264
|
+
}, null, 8, _hoisted_3$b)
|
|
15265
|
+
], 2)
|
|
15266
|
+
]);
|
|
15267
|
+
};
|
|
15268
|
+
}
|
|
15269
|
+
});
|
|
15270
|
+
const nodeButton_vue_vue_type_style_index_0_scoped_3af13a13_lang = "";
|
|
15271
|
+
const NodeButton = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-3af13a13"]]);
|
|
15272
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
15273
|
+
__name: "GenericNode",
|
|
15274
|
+
props: {
|
|
15275
|
+
nodeId: {},
|
|
15276
|
+
nodeData: {}
|
|
15277
|
+
},
|
|
15278
|
+
setup(__props) {
|
|
15279
|
+
const drawerModules = /* @__PURE__ */ Object.assign({ "./elements/cloudStorageReader/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-d467329f.js"), true ? ["assets/CloudStorageReader-d467329f.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/api-271ed117.js","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "./elements/cloudStorageWriter/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-071b8b00.js"), true ? ["assets/CloudStorageWriter-071b8b00.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/api-271ed117.js","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/CloudStorageWriter-b0ee067f.css"] : void 0), "./elements/crossJoin/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-cf68ec7a.js"), true ? ["assets/CrossJoin-cf68ec7a.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-5476546e.js","assets/UnavailableFields-88a4cd0c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/CrossJoin-1119d18e.css"] : void 0), "./elements/databaseReader/DatabaseConnectionSettings.vue": () => __vitePreload(() => import("./DatabaseConnectionSettings-435c5dd8.js"), true ? ["assets/DatabaseConnectionSettings-435c5dd8.js","assets/secretApi-ce823eee.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/DatabaseConnectionSettings-0c04b2e5.css"] : void 0), "./elements/databaseReader/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-8075bd28.js"), true ? ["assets/DatabaseReader-8075bd28.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/api-31e4fea6.js","assets/DatabaseConnectionSettings-435c5dd8.js","assets/secretApi-ce823eee.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/SQLQueryComponent-e149dbf2.js","assets/SQLQueryComponent-36cef432.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/DatabaseReader-ae61773c.css"] : void 0), "./elements/databaseReader/SQLQueryComponent.vue": () => __vitePreload(() => import("./SQLQueryComponent-e149dbf2.js"), true ? ["assets/SQLQueryComponent-e149dbf2.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/SQLQueryComponent-36cef432.css"] : void 0), "./elements/databaseWriter/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-3e2dda89.js"), true ? ["assets/DatabaseWriter-3e2dda89.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/api-31e4fea6.js","assets/DatabaseConnectionSettings-435c5dd8.js","assets/secretApi-ce823eee.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "./elements/exploreData/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-76ec698c.js"), true ? ["assets/ExploreData-76ec698c.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/VueGraphicWalker-5324d566.js","assets/VueGraphicWalker-ed5ab88b.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/ExploreData-2d0cf4db.css"] : void 0), "./elements/exploreData/vueGraphicWalker/VueGraphicWalker.vue": () => __vitePreload(() => import("./VueGraphicWalker-5324d566.js"), true ? ["assets/VueGraphicWalker-5324d566.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/VueGraphicWalker-ed5ab88b.css"] : void 0), "./elements/externalSource/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-609a265c.js"), true ? ["assets/ExternalSource-609a265c.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/ExternalSource-e37b6275.css"] : void 0), "./elements/filter/Filter.vue": () => __vitePreload(() => import("./Filter-97cff793.js"), true ? ["assets/Filter-97cff793.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-1df991ec.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Filter-f62091b3.css"] : void 0), "./elements/formula/Formula.vue": () => __vitePreload(() => import("./Formula-09de0ec9.js"), true ? ["assets/Formula-09de0ec9.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-1df991ec.js","assets/fullEditor-178376bb.css","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Formula-bb96803d.css"] : void 0), "./elements/fuzzyMatch/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-bdf70248.js"), true ? ["assets/FuzzyMatch-bdf70248.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/selectDynamic-5476546e.js","assets/UnavailableFields-88a4cd0c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-7bca2d9b.js","assets/FuzzyMatch-1010f966.css"] : void 0), "./elements/graphSolver/ContextMenu.vue": () => __vitePreload(() => import("./ContextMenu-2dea5e27.js"), true ? ["assets/ContextMenu-2dea5e27.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/ContextMenu-63cfa99b.css"] : void 0), "./elements/graphSolver/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-0b5a0e05.js"), true ? ["assets/GraphSolver-0b5a0e05.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-2dea5e27.js","assets/ContextMenu-63cfa99b.css","assets/SettingsSection-e57a672e.js","assets/SettingsSection-5c696bee.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/GraphSolver-f0cb7bfb.css"] : void 0), "./elements/graphSolver/PivotValidation.vue": () => __vitePreload(() => import("./PivotValidation-eaa819c0.js"), true ? ["assets/PivotValidation-eaa819c0.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/PivotValidation-891ddfb0.css"] : void 0), "./elements/graphSolver/SettingsSection.vue": () => __vitePreload(() => import("./SettingsSection-e57a672e.js"), true ? ["assets/SettingsSection-e57a672e.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/SettingsSection-5c696bee.css"] : void 0), "./elements/groupBy/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-eaddadde.js"), true ? ["assets/GroupBy-eaddadde.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/GroupBy-b9505323.css"] : void 0), "./elements/join/Join.vue": () => __vitePreload(() => import("./Join-3313371b.js"), true ? ["assets/Join-3313371b.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/selectDynamic-5476546e.js","assets/UnavailableFields-88a4cd0c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Join-fd79b451.css"] : void 0), "./elements/manualInput/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-e8bfc0be.js"), true ? ["assets/ManualInput-e8bfc0be.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-3246a08d.css"] : void 0), "./elements/output/Output.vue": () => __vitePreload(() => import("./Output-7303bb09.js"), true ? ["assets/Output-7303bb09.js","assets/vue-codemirror.esm-9ed00d50.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/outputCsv-d8457527.js","assets/outputCsv-9cc59e0b.css","assets/outputExcel-be89153e.js","assets/outputExcel-b41305c0.css","assets/outputParquet-fabb445a.js","assets/outputParquet-cf8cf3f2.css","assets/Output-ddc9079f.css"] : void 0), "./elements/output/outputCsv.vue": () => __vitePreload(() => import("./outputCsv-d8457527.js"), true ? ["assets/outputCsv-d8457527.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/outputCsv-9cc59e0b.css"] : void 0), "./elements/output/outputExcel.vue": () => __vitePreload(() => import("./outputExcel-be89153e.js"), true ? ["assets/outputExcel-be89153e.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/outputExcel-b41305c0.css"] : void 0), "./elements/output/outputParquet.vue": () => __vitePreload(() => import("./outputParquet-fabb445a.js"), true ? ["assets/outputParquet-fabb445a.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/outputParquet-cf8cf3f2.css"] : void 0), "./elements/pivot/ContextMenu.vue": () => __vitePreload(() => import("./ContextMenu-a51e19ea.js"), true ? ["assets/ContextMenu-a51e19ea.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/ContextMenu-4c74eef1.css"] : void 0), "./elements/pivot/Pivot.vue": () => __vitePreload(() => import("./Pivot-3b1c54ef.js"), true ? ["assets/Pivot-3b1c54ef.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-a51e19ea.js","assets/ContextMenu-4c74eef1.css","assets/SettingsSection-75b6cf4f.js","assets/SettingsSection-71e6b7e3.css","assets/PivotValidation-3bb36c8f.js","assets/PivotValidation-c46cd420.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Pivot-cf333e3d.css"] : void 0), "./elements/pivot/PivotValidation.vue": () => __vitePreload(() => import("./PivotValidation-3bb36c8f.js"), true ? ["assets/PivotValidation-3bb36c8f.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/PivotValidation-c46cd420.css"] : void 0), "./elements/pivot/SettingsSection.vue": () => __vitePreload(() => import("./SettingsSection-75b6cf4f.js"), true ? ["assets/SettingsSection-75b6cf4f.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/SettingsSection-71e6b7e3.css"] : void 0), "./elements/polarsCode/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-aa12e25d.js"), true ? ["assets/PolarsCode-aa12e25d.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/PolarsCode-650322d1.css"] : void 0), "./elements/read/Read.vue": () => __vitePreload(() => import("./Read-a2bfc618.js"), true ? ["assets/Read-a2bfc618.js","assets/vue-content-loader.es-7bca2d9b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/readExcel-dabaf51b.js","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/readExcel-e1b381ea.css","assets/readCsv-e8359522.js","assets/readCsv-bca3ed53.css","assets/readParquet-e0771ef2.js","assets/readParquet-cee068e2.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/Read-6b17491f.css"] : void 0), "./elements/read/readCsv.vue": () => __vitePreload(() => import("./readCsv-e8359522.js"), true ? ["assets/readCsv-e8359522.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/readCsv-bca3ed53.css"] : void 0), "./elements/read/readExcel.vue": () => __vitePreload(() => import("./readExcel-dabaf51b.js"), true ? ["assets/readExcel-dabaf51b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/vue-content-loader.es-7bca2d9b.js","assets/readExcel-e1b381ea.css"] : void 0), "./elements/read/readParquet.vue": () => __vitePreload(() => import("./readParquet-e0771ef2.js"), true ? ["assets/readParquet-e0771ef2.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/readParquet-cee068e2.css"] : void 0), "./elements/recordCount/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-aa0dc082.js"), true ? ["assets/RecordCount-aa0dc082.js","assets/vue-codemirror.esm-9ed00d50.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/recordId/RecordId.vue": () => __vitePreload(() => import("./RecordId-48ee1a3b.js"), true ? ["assets/RecordId-48ee1a3b.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-a51e19ea.js","assets/ContextMenu-4c74eef1.css","assets/SettingsSection-75b6cf4f.js","assets/SettingsSection-71e6b7e3.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/sample/Sample.vue": () => __vitePreload(() => import("./Sample-f06cb97a.js"), true ? ["assets/Sample-f06cb97a.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/select/Select.vue": () => __vitePreload(() => import("./Select-b60e6c47.js"), true ? ["assets/Select-b60e6c47.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-5476546e.js","assets/UnavailableFields-88a4cd0c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/sort/Sort.vue": () => __vitePreload(() => import("./Sort-51b1ee4d.js"), true ? ["assets/Sort-51b1ee4d.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-7bca2d9b.js","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Sort-3643d625.css"] : void 0), "./elements/textToRows/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-26835f8f.js"), true ? ["assets/TextToRows-26835f8f.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-025888df.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-88a4cd0c.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-7bca2d9b.js","assets/TextToRows-5d2c1190.css"] : void 0), "./elements/union/Union.vue": () => __vitePreload(() => import("./Union-4d0088eb.js"), true ? ["assets/Union-4d0088eb.js","assets/vue-codemirror.esm-9ed00d50.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Union-af6c3d9b.css"] : void 0), "./elements/unique/Unique.vue": () => __vitePreload(() => import("./Unique-7d554a62.js"), true ? ["assets/Unique-7d554a62.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-7bca2d9b.js","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-5476546e.js","assets/UnavailableFields-88a4cd0c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Unique-f9fb0809.css"] : void 0), "./elements/unpivot/ContextMenu.vue": () => __vitePreload(() => import("./ContextMenu-785554c4.js"), true ? ["assets/ContextMenu-785554c4.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/ContextMenu-c13f91d0.css"] : void 0), "./elements/unpivot/SettingsSection.vue": () => __vitePreload(() => import("./SettingsSection-70e5a7b1.js"), true ? ["assets/SettingsSection-70e5a7b1.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/SettingsSection-2e4d03c4.css"] : void 0), "./elements/unpivot/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-4668595c.js"), true ? ["assets/Unpivot-4668595c.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-9ed00d50.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-785554c4.js","assets/ContextMenu-c13f91d0.css","assets/SettingsSection-70e5a7b1.js","assets/SettingsSection-2e4d03c4.css","assets/genericNodeSettings-d3b2b2ac.js","assets/genericNodeSettings-924759c7.css","assets/Unpivot-1e422df3.css"] : void 0), "./elements/unpivot/UnpivotValidation.vue": () => __vitePreload(() => import("./UnpivotValidation-d4f0e0e8.js"), true ? ["assets/UnpivotValidation-d4f0e0e8.js","assets/index-d0518598.js","assets/index-681a3ed0.css","assets/UnpivotValidation-0d240eeb.css"] : void 0) });
|
|
15280
|
+
const props2 = __props;
|
|
15281
|
+
const drawerComponent = shallowRef(null);
|
|
15282
|
+
onMounted(() => {
|
|
15283
|
+
loadDrawerComponent();
|
|
15284
|
+
});
|
|
15285
|
+
const toCamelCase = (str) => {
|
|
15286
|
+
return str.replace(/_([a-z])/g, (_2, letter) => letter.toUpperCase());
|
|
15287
|
+
};
|
|
15288
|
+
const loadDrawerComponent = () => {
|
|
15289
|
+
try {
|
|
15290
|
+
const componentName = toTitleCase(props2.nodeData.item);
|
|
15291
|
+
const folderName = toCamelCase(props2.nodeData.item.toLowerCase());
|
|
15292
|
+
console.log("Loading component:", componentName, "from folder:", folderName);
|
|
15293
|
+
const componentPath = `./elements/${folderName}/${componentName}.vue`;
|
|
15294
|
+
const componentLoader = drawerModules[componentPath];
|
|
15295
|
+
if (!componentLoader) {
|
|
15296
|
+
console.error(`Component not found at path: ${componentPath}`);
|
|
15297
|
+
console.log(
|
|
15298
|
+
"Available paths:",
|
|
15299
|
+
Object.keys(drawerModules).filter((path2) => path2.includes(`/${folderName}/`))
|
|
15300
|
+
);
|
|
15301
|
+
return;
|
|
15302
|
+
}
|
|
15303
|
+
drawerComponent.value = markRaw$1(
|
|
15304
|
+
defineAsyncComponent({
|
|
15305
|
+
loader: componentLoader,
|
|
15306
|
+
errorComponent: void 0,
|
|
15307
|
+
timeout: 3e3,
|
|
15308
|
+
onError(error, retry, fail, attempts) {
|
|
15309
|
+
console.error(`Failed to load drawer component for ${props2.nodeData.item}:`, error);
|
|
15310
|
+
if (attempts <= 3) {
|
|
15311
|
+
retry();
|
|
15312
|
+
} else {
|
|
15313
|
+
fail();
|
|
15314
|
+
}
|
|
15315
|
+
}
|
|
15316
|
+
})
|
|
15317
|
+
);
|
|
15318
|
+
} catch (error) {
|
|
15319
|
+
console.error(`Error setting up drawer component for ${props2.nodeData.item}:`, error);
|
|
15320
|
+
}
|
|
15321
|
+
};
|
|
15322
|
+
const imageSrc = computed$1(() => {
|
|
15323
|
+
var _a;
|
|
15324
|
+
return ((_a = props2.nodeData) == null ? void 0 : _a.image) || "default.png";
|
|
15325
|
+
});
|
|
15326
|
+
const nodeTitle = computed$1(() => {
|
|
15327
|
+
var _a, _b;
|
|
15328
|
+
const displayName = ((_a = props2.nodeData) == null ? void 0 : _a.label) || ((_b = props2.nodeData) == null ? void 0 : _b.name) || "Node";
|
|
15329
|
+
return `${props2.nodeId}: ${displayName}`;
|
|
15330
|
+
});
|
|
15331
|
+
const nodeTitleInfo = computed$1(() => {
|
|
15332
|
+
var _a, _b;
|
|
15333
|
+
return {
|
|
15334
|
+
title: ((_a = props2.nodeData) == null ? void 0 : _a.drawer_title) || "Node Configuration",
|
|
15335
|
+
intro: ((_b = props2.nodeData) == null ? void 0 : _b.drawer_intro) || "Configure node settings"
|
|
15336
|
+
};
|
|
15337
|
+
});
|
|
15338
|
+
onErrorCaptured((error) => {
|
|
15339
|
+
console.error("Error in GenericNode component:", error);
|
|
15340
|
+
return false;
|
|
15341
|
+
});
|
|
15342
|
+
return (_ctx, _cache) => {
|
|
15343
|
+
return openBlock(), createBlock(NodeButton, {
|
|
15344
|
+
ref: "nodeButton",
|
|
15345
|
+
"node-id": _ctx.nodeId,
|
|
15346
|
+
"image-src": imageSrc.value,
|
|
15347
|
+
title: nodeTitle.value,
|
|
15348
|
+
"drawer-component": drawerComponent.value,
|
|
15349
|
+
"node-title-info": nodeTitleInfo.value
|
|
15350
|
+
}, null, 8, ["node-id", "image-src", "title", "drawer-component", "node-title-info"]);
|
|
15351
|
+
};
|
|
15352
|
+
}
|
|
15353
|
+
});
|
|
15354
|
+
const GenericNode_vue_vue_type_style_index_0_scoped_9657d658_lang = "";
|
|
15355
|
+
const GenericNode = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-9657d658"]]);
|
|
15356
|
+
const _hoisted_1$d = { class: "description-text" };
|
|
15357
|
+
const _hoisted_2$b = {
|
|
14413
15358
|
key: 0,
|
|
14414
15359
|
class: "truncated-indicator",
|
|
14415
15360
|
title: "Click to see full description"
|
|
14416
15361
|
};
|
|
14417
|
-
const _hoisted_3$
|
|
14418
|
-
const _hoisted_4$
|
|
15362
|
+
const _hoisted_3$a = ["id"];
|
|
15363
|
+
const _hoisted_4$9 = ["id"];
|
|
14419
15364
|
const CHAR_LIMIT = 100;
|
|
14420
|
-
const _sfc_main$
|
|
15365
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
14421
15366
|
__name: "CustomNode",
|
|
14422
15367
|
props: {
|
|
14423
15368
|
data: {
|
|
@@ -14435,6 +15380,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14435
15380
|
const showMenu = ref(false);
|
|
14436
15381
|
const contextMenuX = ref(0);
|
|
14437
15382
|
const contextMenuY = ref(0);
|
|
15383
|
+
const props2 = __props;
|
|
14438
15384
|
const onTitleClick = (event) => {
|
|
14439
15385
|
toggleEditMode(true);
|
|
14440
15386
|
mouseX.value = event.clientX;
|
|
@@ -14483,22 +15429,25 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14483
15429
|
window.removeEventListener("click", handleClickOutsideMenu);
|
|
14484
15430
|
};
|
|
14485
15431
|
const copyNode2 = () => {
|
|
15432
|
+
var _a, _b, _c, _d, _e;
|
|
14486
15433
|
const nodeCopyValue = {
|
|
14487
15434
|
nodeIdToCopyFrom: props2.data.id,
|
|
14488
|
-
type: props2.data.component.__name || "unknown",
|
|
15435
|
+
type: ((_a = props2.data.nodeTemplate) == null ? void 0 : _a.item) || ((_b = props2.data.component) == null ? void 0 : _b.__name) || "unknown",
|
|
14489
15436
|
label: props2.data.label,
|
|
14490
15437
|
description: description.value,
|
|
14491
15438
|
numberOfInputs: props2.data.inputs.length,
|
|
14492
15439
|
numberOfOutputs: props2.data.outputs.length,
|
|
14493
|
-
typeSnakeCase: toSnakeCase(props2.data.component.__name || "unknown"),
|
|
14494
|
-
flowIdToCopyFrom: nodeStore.flow_id
|
|
15440
|
+
typeSnakeCase: ((_c = props2.data.nodeTemplate) == null ? void 0 : _c.item) || toSnakeCase(((_d = props2.data.component) == null ? void 0 : _d.__name) || "unknown"),
|
|
15441
|
+
flowIdToCopyFrom: nodeStore.flow_id,
|
|
15442
|
+
multi: (_e = props2.data.nodeTemplate) == null ? void 0 : _e.multi,
|
|
15443
|
+
nodeTemplate: props2.data.nodeTemplate
|
|
14495
15444
|
};
|
|
14496
15445
|
localStorage.setItem("copiedNode", JSON.stringify(nodeCopyValue));
|
|
14497
15446
|
console.log("Node copied:", nodeCopyValue);
|
|
14498
15447
|
closeContextMenu();
|
|
14499
15448
|
};
|
|
14500
15449
|
const deleteNode2 = () => {
|
|
14501
|
-
console.log("
|
|
15450
|
+
console.log("Deleting node");
|
|
14502
15451
|
if (nodeStore.vueFlowInstance) {
|
|
14503
15452
|
let vueFlow = nodeStore.vueFlowInstance;
|
|
14504
15453
|
vueFlow.removeNodes(props2.data.id.toLocaleString(), true);
|
|
@@ -14601,7 +15550,6 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14601
15550
|
}
|
|
14602
15551
|
return description.value;
|
|
14603
15552
|
});
|
|
14604
|
-
const props2 = __props;
|
|
14605
15553
|
function getHandleStyle(index, total) {
|
|
14606
15554
|
const topMargin = 30;
|
|
14607
15555
|
const bottomMargin = 25;
|
|
@@ -14672,8 +15620,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14672
15620
|
createBaseVNode("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
|
|
14673
15621
|
], -1)
|
|
14674
15622
|
])),
|
|
14675
|
-
createBaseVNode("pre", _hoisted_1$
|
|
14676
|
-
isTruncated.value ? (openBlock(), createElementBlock("span", _hoisted_2$
|
|
15623
|
+
createBaseVNode("pre", _hoisted_1$d, toDisplayString(descriptionSummary.value), 1),
|
|
15624
|
+
isTruncated.value ? (openBlock(), createElementBlock("span", _hoisted_2$b, "...")) : createCommentVNode("", true)
|
|
14677
15625
|
], 4)) : (openBlock(), createElementBlock("div", {
|
|
14678
15626
|
key: 1,
|
|
14679
15627
|
id: props2.data.id.toLocaleString(),
|
|
@@ -14687,10 +15635,10 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14687
15635
|
class: "description-input",
|
|
14688
15636
|
data: "description_input",
|
|
14689
15637
|
onBlur: _cache[2] || (_cache[2] = ($event) => toggleEditMode(false))
|
|
14690
|
-
}, null, 40, _hoisted_4$
|
|
15638
|
+
}, null, 40, _hoisted_4$9), [
|
|
14691
15639
|
[vModelText, description.value]
|
|
14692
15640
|
])
|
|
14693
|
-
], 12, _hoisted_3$
|
|
15641
|
+
], 12, _hoisted_3$a))
|
|
14694
15642
|
])
|
|
14695
15643
|
], 32),
|
|
14696
15644
|
createBaseVNode("div", {
|
|
@@ -14699,16 +15647,21 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14699
15647
|
class: "custom-node",
|
|
14700
15648
|
onContextmenu: withModifiers(showContextMenu, ["prevent"])
|
|
14701
15649
|
}, [
|
|
14702
|
-
(openBlock(), createBlock(
|
|
15650
|
+
__props.data.nodeTemplate ? (openBlock(), createBlock(GenericNode, {
|
|
15651
|
+
key: 0,
|
|
15652
|
+
"node-id": __props.data.id,
|
|
15653
|
+
"node-data": { ...__props.data.nodeTemplate, id: __props.data.id, label: __props.data.label }
|
|
15654
|
+
}, null, 8, ["node-id", "node-data"])) : __props.data.component ? (openBlock(), createBlock(resolveDynamicComponent(__props.data.component), {
|
|
15655
|
+
key: 1,
|
|
14703
15656
|
"node-id": __props.data.id
|
|
14704
|
-
}, null, 8, ["node-id"])),
|
|
15657
|
+
}, null, 8, ["node-id"])) : createCommentVNode("", true),
|
|
14705
15658
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.data.inputs, (input, index) => {
|
|
14706
15659
|
return openBlock(), createElementBlock("div", {
|
|
14707
15660
|
key: input.id,
|
|
14708
15661
|
class: "handle-input",
|
|
14709
15662
|
style: normalizeStyle(getHandleStyle(index, __props.data.inputs.length))
|
|
14710
15663
|
}, [
|
|
14711
|
-
createVNode(unref(_sfc_main$f), {
|
|
15664
|
+
createVNode(unref(_sfc_main$f$1), {
|
|
14712
15665
|
id: input.id,
|
|
14713
15666
|
type: "target",
|
|
14714
15667
|
position: input.position
|
|
@@ -14721,7 +15674,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14721
15674
|
class: "handle-output",
|
|
14722
15675
|
style: normalizeStyle(getHandleStyle(index, __props.data.outputs.length))
|
|
14723
15676
|
}, [
|
|
14724
|
-
createVNode(unref(_sfc_main$f), {
|
|
15677
|
+
createVNode(unref(_sfc_main$f$1), {
|
|
14725
15678
|
id: output.id,
|
|
14726
15679
|
type: "source",
|
|
14727
15680
|
position: output.position
|
|
@@ -14729,7 +15682,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14729
15682
|
], 4);
|
|
14730
15683
|
}), 128)),
|
|
14731
15684
|
showMenu.value ? (openBlock(), createBlock(Teleport, {
|
|
14732
|
-
key:
|
|
15685
|
+
key: 2,
|
|
14733
15686
|
to: "body"
|
|
14734
15687
|
}, [
|
|
14735
15688
|
createBaseVNode("div", {
|
|
@@ -14797,36 +15750,82 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14797
15750
|
};
|
|
14798
15751
|
}
|
|
14799
15752
|
});
|
|
14800
|
-
const
|
|
14801
|
-
const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
14802
|
-
const
|
|
14803
|
-
|
|
14804
|
-
|
|
14805
|
-
|
|
14806
|
-
|
|
14807
|
-
|
|
14808
|
-
|
|
14809
|
-
|
|
14810
|
-
|
|
14811
|
-
const componentCache = {};
|
|
14812
|
-
function getComponent(name) {
|
|
14813
|
-
if (!componentCache[name]) {
|
|
14814
|
-
componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-f1ff509e.js"), true ? ["assets/CloudStorageReader-f1ff509e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "../../nodes/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-034f8b78.js"), true ? ["assets/CloudStorageWriter-034f8b78.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageWriter-49c9a4b2.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-9e156ebe.js"), true ? ["assets/CrossJoin-9e156ebe.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-0b10551e.js"), true ? ["assets/DatabaseReader-0b10551e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-c17c6916.js"), true ? ["assets/DatabaseWriter-c17c6916.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-18a4fe52.js"), true ? ["assets/ExploreData-18a4fe52.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-3a66556c.js"), true ? ["assets/ExternalSource-3a66556c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-91ad87e7.js"), true ? ["assets/Filter-91ad87e7.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-3c395ab1.js"), true ? ["assets/Formula-3c395ab1.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-29f19d21.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-2df0d230.js"), true ? ["assets/FuzzyMatch-2df0d230.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-d285877f.js"), true ? ["assets/GraphSolver-d285877f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-0bd1cc6b.js"), true ? ["assets/GroupBy-0bd1cc6b.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-5a78a203.js"), true ? ["assets/Join-5a78a203.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Join-f45eff22.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-93aef9d6.js"), true ? ["assets/ManualInput-93aef9d6.js","assets/nodeTitle-a16db7c3.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-a71b52c6.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-411ecaee.js"), true ? ["assets/Output-411ecaee.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-89db4b04.js"), true ? ["assets/Pivot-89db4b04.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-a9f974f8.js"), true ? ["assets/PolarsCode-a9f974f8.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-c3b1929c.js"), true ? ["assets/Read-c3b1929c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-4e95f98e.js"), true ? ["assets/RecordCount-4e95f98e.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-55ae7d36.js"), true ? ["assets/RecordId-55ae7d36.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-b4a18476.js"), true ? ["assets/Sample-b4a18476.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-727688dc.js"), true ? ["assets/Select-727688dc.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-be3339a8.js"), true ? ["assets/Sort-be3339a8.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-ba94b82f.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-7b8998da.js"), true ? ["assets/TextToRows-7b8998da.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-89fd73dc.js"), true ? ["assets/Union-89fd73dc.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-af5a80b4.js"), true ? ["assets/Unique-af5a80b4.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-5195d411.js"), true ? ["assets/Unpivot-5195d411.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${toTitleCase(name)}.vue`).then((module) => {
|
|
14815
|
-
const component = markRaw$1(module.default);
|
|
14816
|
-
return component;
|
|
14817
|
-
});
|
|
14818
|
-
}
|
|
14819
|
-
return componentCache[name];
|
|
15753
|
+
const CustomNode_vue_vue_type_style_index_0_scoped_e5db3d68_lang = "";
|
|
15754
|
+
const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-e5db3d68"]]);
|
|
15755
|
+
const componentCache = /* @__PURE__ */ new Map();
|
|
15756
|
+
function getComponent(nodeOrItem) {
|
|
15757
|
+
const cacheKey = "generic-node";
|
|
15758
|
+
if (componentCache.has(cacheKey)) {
|
|
15759
|
+
return componentCache.get(cacheKey);
|
|
15760
|
+
}
|
|
15761
|
+
const componentPromise = Promise.resolve(markRaw$1(GenericNode));
|
|
15762
|
+
componentCache.set(cacheKey, componentPromise);
|
|
15763
|
+
return componentPromise;
|
|
14820
15764
|
}
|
|
14821
15765
|
function getComponentRaw(name) {
|
|
14822
|
-
|
|
14823
|
-
componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-f1ff509e.js"), true ? ["assets/CloudStorageReader-f1ff509e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "../../nodes/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-034f8b78.js"), true ? ["assets/CloudStorageWriter-034f8b78.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageWriter-49c9a4b2.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-9e156ebe.js"), true ? ["assets/CrossJoin-9e156ebe.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-0b10551e.js"), true ? ["assets/DatabaseReader-0b10551e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-c17c6916.js"), true ? ["assets/DatabaseWriter-c17c6916.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-18a4fe52.js"), true ? ["assets/ExploreData-18a4fe52.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-3a66556c.js"), true ? ["assets/ExternalSource-3a66556c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-91ad87e7.js"), true ? ["assets/Filter-91ad87e7.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-3c395ab1.js"), true ? ["assets/Formula-3c395ab1.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-29f19d21.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-2df0d230.js"), true ? ["assets/FuzzyMatch-2df0d230.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-d285877f.js"), true ? ["assets/GraphSolver-d285877f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-0bd1cc6b.js"), true ? ["assets/GroupBy-0bd1cc6b.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-5a78a203.js"), true ? ["assets/Join-5a78a203.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Join-f45eff22.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-93aef9d6.js"), true ? ["assets/ManualInput-93aef9d6.js","assets/nodeTitle-a16db7c3.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-a71b52c6.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-411ecaee.js"), true ? ["assets/Output-411ecaee.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-89db4b04.js"), true ? ["assets/Pivot-89db4b04.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-a9f974f8.js"), true ? ["assets/PolarsCode-a9f974f8.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-c3b1929c.js"), true ? ["assets/Read-c3b1929c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-4e95f98e.js"), true ? ["assets/RecordCount-4e95f98e.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-55ae7d36.js"), true ? ["assets/RecordId-55ae7d36.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-b4a18476.js"), true ? ["assets/Sample-b4a18476.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-727688dc.js"), true ? ["assets/Select-727688dc.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-be3339a8.js"), true ? ["assets/Sort-be3339a8.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-ba94b82f.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-7b8998da.js"), true ? ["assets/TextToRows-7b8998da.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-89fd73dc.js"), true ? ["assets/Union-89fd73dc.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-af5a80b4.js"), true ? ["assets/Unique-af5a80b4.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-5195d411.js"), true ? ["assets/Unpivot-5195d411.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${name}.vue`).then((module) => {
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
15766
|
+
return getComponent();
|
|
15767
|
+
}
|
|
15768
|
+
let nodeTemplatesCache = null;
|
|
15769
|
+
let cachePromise = null;
|
|
15770
|
+
async function fetchNodeTemplates() {
|
|
15771
|
+
if (nodeTemplatesCache !== null) {
|
|
15772
|
+
return nodeTemplatesCache;
|
|
15773
|
+
}
|
|
15774
|
+
if (cachePromise !== null) {
|
|
15775
|
+
return cachePromise;
|
|
15776
|
+
}
|
|
15777
|
+
cachePromise = axios.get("/node_list").then((response) => {
|
|
15778
|
+
const allNodes = response.data;
|
|
15779
|
+
nodeTemplatesCache = allNodes.filter((node) => node.prod_ready);
|
|
15780
|
+
return nodeTemplatesCache;
|
|
15781
|
+
}).catch((error) => {
|
|
15782
|
+
console.error("Failed to fetch node templates:", error);
|
|
15783
|
+
cachePromise = null;
|
|
15784
|
+
throw error;
|
|
15785
|
+
});
|
|
15786
|
+
return cachePromise;
|
|
15787
|
+
}
|
|
15788
|
+
function clearNodeTemplatesCache() {
|
|
15789
|
+
nodeTemplatesCache = null;
|
|
15790
|
+
cachePromise = null;
|
|
15791
|
+
}
|
|
15792
|
+
async function getNodeTemplateByItem(item) {
|
|
15793
|
+
try {
|
|
15794
|
+
const allNodes = await fetchNodeTemplates();
|
|
15795
|
+
return allNodes.find((node) => node.item === item);
|
|
15796
|
+
} catch (error) {
|
|
15797
|
+
console.error(`Failed to get node template for item ${item}:`, error);
|
|
15798
|
+
return void 0;
|
|
14827
15799
|
}
|
|
14828
|
-
return componentCache[name];
|
|
14829
15800
|
}
|
|
15801
|
+
const useNodes = () => {
|
|
15802
|
+
const nodes = ref([]);
|
|
15803
|
+
const loading = ref(false);
|
|
15804
|
+
const error = ref(null);
|
|
15805
|
+
const fetchNodes2 = async () => {
|
|
15806
|
+
loading.value = true;
|
|
15807
|
+
error.value = null;
|
|
15808
|
+
try {
|
|
15809
|
+
nodes.value = await fetchNodeTemplates();
|
|
15810
|
+
} catch (err) {
|
|
15811
|
+
error.value = err;
|
|
15812
|
+
nodes.value = [];
|
|
15813
|
+
} finally {
|
|
15814
|
+
loading.value = false;
|
|
15815
|
+
}
|
|
15816
|
+
};
|
|
15817
|
+
onMounted(fetchNodes2);
|
|
15818
|
+
return {
|
|
15819
|
+
nodes,
|
|
15820
|
+
loading,
|
|
15821
|
+
error,
|
|
15822
|
+
refetch: fetchNodes2,
|
|
15823
|
+
clearCache: () => {
|
|
15824
|
+
clearNodeTemplatesCache();
|
|
15825
|
+
return fetchNodes2();
|
|
15826
|
+
}
|
|
15827
|
+
};
|
|
15828
|
+
};
|
|
14830
15829
|
const connectNode = async (flowId, nodeConnection) => {
|
|
14831
15830
|
console.log("Connecting node where it should happen", nodeConnection);
|
|
14832
15831
|
try {
|
|
@@ -15035,7 +16034,9 @@ function useDragAndDrop() {
|
|
|
15035
16034
|
outputs: Array.from({ length: node.numberOfOutputs }, (_2, i2) => ({
|
|
15036
16035
|
id: `output-${i2}`,
|
|
15037
16036
|
position: Position.Right
|
|
15038
|
-
}))
|
|
16037
|
+
})),
|
|
16038
|
+
// Include nodeTemplate if available
|
|
16039
|
+
nodeTemplate: node.nodeTemplate
|
|
15039
16040
|
}
|
|
15040
16041
|
};
|
|
15041
16042
|
const nodePromise = {
|
|
@@ -15057,7 +16058,8 @@ function useDragAndDrop() {
|
|
|
15057
16058
|
};
|
|
15058
16059
|
async function getNodeToAdd(node) {
|
|
15059
16060
|
const numberOfInputs = node.multi ? 1 : node.input;
|
|
15060
|
-
const
|
|
16061
|
+
const nodeTemplate = await getNodeTemplateByItem(node.item);
|
|
16062
|
+
const component = await getComponent(nodeTemplate || node.item);
|
|
15061
16063
|
const newNode = {
|
|
15062
16064
|
id: String(node.id),
|
|
15063
16065
|
type: "custom-node",
|
|
@@ -15076,7 +16078,9 @@ function useDragAndDrop() {
|
|
|
15076
16078
|
outputs: Array.from({ length: node.output }, (_2, i2) => ({
|
|
15077
16079
|
id: `output-${i2}`,
|
|
15078
16080
|
position: Position.Right
|
|
15079
|
-
}))
|
|
16081
|
+
})),
|
|
16082
|
+
// IMPORTANT: Include the complete NodeTemplate
|
|
16083
|
+
nodeTemplate
|
|
15080
16084
|
}
|
|
15081
16085
|
};
|
|
15082
16086
|
return newNode;
|
|
@@ -15107,21 +16111,17 @@ function useDragAndDrop() {
|
|
|
15107
16111
|
if (!event.dataTransfer)
|
|
15108
16112
|
return;
|
|
15109
16113
|
const nodeData = JSON.parse(event.dataTransfer.getData("application/vueflow"));
|
|
15110
|
-
console.log("nodeData:", nodeData);
|
|
15111
16114
|
const nodeId = getId();
|
|
15112
|
-
getComponent(
|
|
16115
|
+
getComponent().then((component) => {
|
|
15113
16116
|
const numberOfInputs = nodeData.multi ? 1 : nodeData.input;
|
|
15114
|
-
console.log("logging", numberOfInputs);
|
|
15115
16117
|
const newNode = {
|
|
15116
16118
|
id: String(nodeId),
|
|
15117
16119
|
type: "custom-node",
|
|
15118
16120
|
position,
|
|
15119
16121
|
data: {
|
|
15120
16122
|
id: nodeId,
|
|
15121
|
-
// Pass nodeId here
|
|
15122
16123
|
label: nodeData.name,
|
|
15123
16124
|
component: markRaw$1(component),
|
|
15124
|
-
// Pass component directly
|
|
15125
16125
|
inputs: Array.from({ length: numberOfInputs }, (_2, i2) => ({
|
|
15126
16126
|
id: `input-${i2}`,
|
|
15127
16127
|
position: Position.Left
|
|
@@ -15130,7 +16130,8 @@ function useDragAndDrop() {
|
|
|
15130
16130
|
id: `output-${i2}`,
|
|
15131
16131
|
position: Position.Right
|
|
15132
16132
|
})),
|
|
15133
|
-
|
|
16133
|
+
// IMPORTANT: Pass the complete NodeTemplate data
|
|
16134
|
+
nodeTemplate: nodeData
|
|
15134
16135
|
}
|
|
15135
16136
|
};
|
|
15136
16137
|
const { off } = onNodesInitialized(() => {
|
|
@@ -15145,9 +16146,7 @@ function useDragAndDrop() {
|
|
|
15145
16146
|
});
|
|
15146
16147
|
off();
|
|
15147
16148
|
});
|
|
15148
|
-
console.log("nodeData", nodeData);
|
|
15149
16149
|
insertNode(flowId, nodeId, nodeData.item);
|
|
15150
|
-
console.log(newNode);
|
|
15151
16150
|
addNodes(newNode);
|
|
15152
16151
|
}).catch((error) => {
|
|
15153
16152
|
console.error(`Error importing component for ${nodeData.item}`, error);
|
|
@@ -17723,11 +18722,11 @@ const oneDarkHighlightStyle = /* @__PURE__ */ HighlightStyle.define([
|
|
|
17723
18722
|
}
|
|
17724
18723
|
]);
|
|
17725
18724
|
const oneDark = [oneDarkTheme, /* @__PURE__ */ syntaxHighlighting(oneDarkHighlightStyle)];
|
|
17726
|
-
const _hoisted_1$
|
|
17727
|
-
const _hoisted_2$
|
|
17728
|
-
const _hoisted_3$
|
|
17729
|
-
const _hoisted_4$
|
|
17730
|
-
const _hoisted_5$
|
|
18725
|
+
const _hoisted_1$c = { class: "code-container" };
|
|
18726
|
+
const _hoisted_2$a = { class: "code-header" };
|
|
18727
|
+
const _hoisted_3$9 = { class: "header-actions" };
|
|
18728
|
+
const _hoisted_4$8 = ["disabled"];
|
|
18729
|
+
const _hoisted_5$6 = {
|
|
17731
18730
|
key: 0,
|
|
17732
18731
|
width: "16",
|
|
17733
18732
|
height: "16",
|
|
@@ -17736,11 +18735,11 @@ const _hoisted_5$5 = {
|
|
|
17736
18735
|
stroke: "currentColor",
|
|
17737
18736
|
"stroke-width": "2"
|
|
17738
18737
|
};
|
|
17739
|
-
const _hoisted_6$
|
|
18738
|
+
const _hoisted_6$5 = {
|
|
17740
18739
|
key: 1,
|
|
17741
18740
|
class: "spinner"
|
|
17742
18741
|
};
|
|
17743
|
-
const _sfc_main$
|
|
18742
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
17744
18743
|
__name: "CodeGenerator",
|
|
17745
18744
|
setup(__props) {
|
|
17746
18745
|
const code = ref("");
|
|
@@ -17807,23 +18806,23 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
17807
18806
|
URL.revokeObjectURL(url);
|
|
17808
18807
|
};
|
|
17809
18808
|
return (_ctx, _cache) => {
|
|
17810
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
17811
|
-
createBaseVNode("div", _hoisted_2$
|
|
18809
|
+
return openBlock(), createElementBlock("div", _hoisted_1$c, [
|
|
18810
|
+
createBaseVNode("div", _hoisted_2$a, [
|
|
17812
18811
|
_cache[3] || (_cache[3] = createBaseVNode("h4", null, "Generated code", -1)),
|
|
17813
|
-
createBaseVNode("div", _hoisted_3$
|
|
18812
|
+
createBaseVNode("div", _hoisted_3$9, [
|
|
17814
18813
|
createBaseVNode("button", {
|
|
17815
18814
|
class: "refresh-button",
|
|
17816
18815
|
disabled: loading.value,
|
|
17817
18816
|
onClick: refreshCode
|
|
17818
18817
|
}, [
|
|
17819
|
-
!loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$
|
|
18818
|
+
!loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$6, _cache[1] || (_cache[1] = [
|
|
17820
18819
|
createBaseVNode("path", { d: "M23 4v6h-6" }, null, -1),
|
|
17821
18820
|
createBaseVNode("path", { d: "M1 20v-6h6" }, null, -1),
|
|
17822
18821
|
createBaseVNode("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" }, null, -1)
|
|
17823
18822
|
]))) : createCommentVNode("", true),
|
|
17824
|
-
loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$
|
|
18823
|
+
loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$5)) : createCommentVNode("", true),
|
|
17825
18824
|
createTextVNode(" " + toDisplayString(loading.value ? "Loading..." : "Refresh"), 1)
|
|
17826
|
-
], 8, _hoisted_4$
|
|
18825
|
+
], 8, _hoisted_4$8),
|
|
17827
18826
|
createBaseVNode("button", {
|
|
17828
18827
|
class: "export-button",
|
|
17829
18828
|
onClick: exportCode
|
|
@@ -17860,69 +18859,18 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
17860
18859
|
}
|
|
17861
18860
|
});
|
|
17862
18861
|
const CodeGenerator_vue_vue_type_style_index_0_scoped_8bafe064_lang = "";
|
|
17863
|
-
const CodeGenerator = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17864
|
-
const
|
|
17865
|
-
const
|
|
17866
|
-
const
|
|
17867
|
-
const
|
|
17868
|
-
const __vite_glob_0_4 = "/assets/cross_join-d30c0290.png";
|
|
17869
|
-
const __vite_glob_0_5 = "/assets/database_reader-ce1e55f3.svg";
|
|
17870
|
-
const __vite_glob_0_6 = "/assets/database_writer-b4ad0753.svg";
|
|
17871
|
-
const __vite_glob_0_7 = "/assets/explore_data-8a0a2861.png";
|
|
17872
|
-
const __vite_glob_0_8 = "data:image/png;base64,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";
|
|
17873
|
-
const __vite_glob_0_9 = "/assets/filter-d7708bda.png";
|
|
17874
|
-
const __vite_glob_0_10 = "/assets/formula-eeeb1611.png";
|
|
17875
|
-
const __vite_glob_0_11 = "/assets/fuzzy_match-40c161b2.png";
|
|
17876
|
-
const __vite_glob_0_12 = "data:image/png;base64,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";
|
|
17877
|
-
const __vite_glob_0_13 = "/assets/graph_solver-8b7888b8.png";
|
|
17878
|
-
const __vite_glob_0_14 = "/assets/group_by-80561fc3.png";
|
|
17879
|
-
const __vite_glob_0_15 = "/assets/input_data-ab2eb678.png";
|
|
17880
|
-
const __vite_glob_0_16 = "/assets/join-349043ae.png";
|
|
17881
|
-
const __vite_glob_0_17 = "/assets/manual_input-ae98f31d.png";
|
|
17882
|
-
const __vite_glob_0_18 = "/assets/old_join-5d0eb604.png";
|
|
17883
|
-
const __vite_glob_0_19 = "/assets/output-06ec0371.png";
|
|
17884
|
-
const __vite_glob_0_20 = "/assets/pivot-9660df51.png";
|
|
17885
|
-
const __vite_glob_0_21 = "/assets/polars_code-05ce5dc6.png";
|
|
17886
|
-
const __vite_glob_0_22 = "/assets/record_count-dab44eb5.png";
|
|
17887
|
-
const __vite_glob_0_23 = "/assets/record_id-0b15856b.png";
|
|
17888
|
-
const __vite_glob_0_24 = "/assets/sample-693a88b5.png";
|
|
17889
|
-
const __vite_glob_0_25 = "/assets/select-b0d0437a.png";
|
|
17890
|
-
const __vite_glob_0_26 = "/assets/sort-2aa579f0.png";
|
|
17891
|
-
const __vite_glob_0_27 = "/assets/summarize-2a099231.png";
|
|
17892
|
-
const __vite_glob_0_28 = "/assets/text_to_rows-859b29ea.png";
|
|
17893
|
-
const __vite_glob_0_29 = "/assets/union-2d8609f4.png";
|
|
17894
|
-
const __vite_glob_0_30 = "/assets/unique-1958b98a.png";
|
|
17895
|
-
const __vite_glob_0_31 = "/assets/unpivot-d3cb4b5b.png";
|
|
17896
|
-
const __vite_glob_0_32 = "/assets/view-7a0f0be1.png";
|
|
17897
|
-
const getImageUrl = (name) => {
|
|
17898
|
-
return new URL((/* @__PURE__ */ Object.assign({ "./assets/icons/Output2.png": __vite_glob_0_0, "./assets/icons/airbyte.png": __vite_glob_0_1, "./assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "./assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "./assets/icons/cross_join.png": __vite_glob_0_4, "./assets/icons/database_reader.svg": __vite_glob_0_5, "./assets/icons/database_writer.svg": __vite_glob_0_6, "./assets/icons/explore_data.png": __vite_glob_0_7, "./assets/icons/external_source.png": __vite_glob_0_8, "./assets/icons/filter.png": __vite_glob_0_9, "./assets/icons/formula.png": __vite_glob_0_10, "./assets/icons/fuzzy_match.png": __vite_glob_0_11, "./assets/icons/google_sheet.png": __vite_glob_0_12, "./assets/icons/graph_solver.png": __vite_glob_0_13, "./assets/icons/group_by.png": __vite_glob_0_14, "./assets/icons/input_data.png": __vite_glob_0_15, "./assets/icons/join.png": __vite_glob_0_16, "./assets/icons/manual_input.png": __vite_glob_0_17, "./assets/icons/old_join.png": __vite_glob_0_18, "./assets/icons/output.png": __vite_glob_0_19, "./assets/icons/pivot.png": __vite_glob_0_20, "./assets/icons/polars_code.png": __vite_glob_0_21, "./assets/icons/record_count.png": __vite_glob_0_22, "./assets/icons/record_id.png": __vite_glob_0_23, "./assets/icons/sample.png": __vite_glob_0_24, "./assets/icons/select.png": __vite_glob_0_25, "./assets/icons/sort.png": __vite_glob_0_26, "./assets/icons/summarize.png": __vite_glob_0_27, "./assets/icons/text_to_rows.png": __vite_glob_0_28, "./assets/icons/union.png": __vite_glob_0_29, "./assets/icons/unique.png": __vite_glob_0_30, "./assets/icons/unpivot.png": __vite_glob_0_31, "./assets/icons/view.png": __vite_glob_0_32 }))[`./assets/icons/${name}`], self.location).href;
|
|
17899
|
-
};
|
|
17900
|
-
const fetchNodes = async () => {
|
|
17901
|
-
const response = await axios.get("/node_list");
|
|
17902
|
-
const listNodes = response.data;
|
|
17903
|
-
return listNodes;
|
|
17904
|
-
};
|
|
17905
|
-
const useNodes = () => {
|
|
17906
|
-
const nodes = ref([]);
|
|
17907
|
-
const fetchNodes2 = async () => {
|
|
17908
|
-
const response = await axios.get("/node_list");
|
|
17909
|
-
const allNodes = response.data;
|
|
17910
|
-
nodes.value = allNodes.filter((node) => node.prod_ready);
|
|
17911
|
-
};
|
|
17912
|
-
onMounted(fetchNodes2);
|
|
17913
|
-
return { nodes };
|
|
17914
|
-
};
|
|
17915
|
-
const _hoisted_1$9 = { class: "nodes-wrapper" };
|
|
17916
|
-
const _hoisted_2$6 = ["onClick"];
|
|
17917
|
-
const _hoisted_3$5 = { class: "category-title" };
|
|
17918
|
-
const _hoisted_4$5 = {
|
|
18862
|
+
const CodeGenerator = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-8bafe064"]]);
|
|
18863
|
+
const _hoisted_1$b = { class: "nodes-wrapper" };
|
|
18864
|
+
const _hoisted_2$9 = ["onClick"];
|
|
18865
|
+
const _hoisted_3$8 = { class: "category-title" };
|
|
18866
|
+
const _hoisted_4$7 = {
|
|
17919
18867
|
key: 0,
|
|
17920
18868
|
class: "category-content"
|
|
17921
18869
|
};
|
|
17922
|
-
const _hoisted_5$
|
|
17923
|
-
const _hoisted_6$
|
|
17924
|
-
const _hoisted_7$
|
|
17925
|
-
const _sfc_main$
|
|
18870
|
+
const _hoisted_5$5 = ["onDragstart"];
|
|
18871
|
+
const _hoisted_6$4 = ["src", "alt"];
|
|
18872
|
+
const _hoisted_7$3 = { class: "node-name" };
|
|
18873
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
17926
18874
|
__name: "NodeList",
|
|
17927
18875
|
emits: ["dragstart"],
|
|
17928
18876
|
setup(__props) {
|
|
@@ -17972,7 +18920,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17972
18920
|
};
|
|
17973
18921
|
return (_ctx, _cache) => {
|
|
17974
18922
|
const _component_el_icon = resolveComponent("el-icon");
|
|
17975
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
18923
|
+
return openBlock(), createElementBlock("div", _hoisted_1$b, [
|
|
17976
18924
|
withDirectives(createBaseVNode("input", {
|
|
17977
18925
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
|
|
17978
18926
|
type: "text",
|
|
@@ -17990,15 +18938,15 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17990
18938
|
class: "category-header",
|
|
17991
18939
|
onClick: ($event) => toggleCategory(category)
|
|
17992
18940
|
}, [
|
|
17993
|
-
createBaseVNode("span", _hoisted_3$
|
|
18941
|
+
createBaseVNode("span", _hoisted_3$8, toDisplayString(categoryInfo.name), 1),
|
|
17994
18942
|
createVNode(_component_el_icon, { class: "category-icon" }, {
|
|
17995
18943
|
default: withCtx(() => [
|
|
17996
18944
|
openCategories.value[category] ? (openBlock(), createBlock(unref(arrow_down_default), { key: 0 })) : (openBlock(), createBlock(unref(arrow_right_default), { key: 1 }))
|
|
17997
18945
|
]),
|
|
17998
18946
|
_: 2
|
|
17999
18947
|
}, 1024)
|
|
18000
|
-
], 8, _hoisted_2$
|
|
18001
|
-
openCategories.value[category] && filteredNodes.value[category] ? (openBlock(), createElementBlock("div", _hoisted_4$
|
|
18948
|
+
], 8, _hoisted_2$9),
|
|
18949
|
+
openCategories.value[category] && filteredNodes.value[category] ? (openBlock(), createElementBlock("div", _hoisted_4$7, [
|
|
18002
18950
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filteredNodes.value[category], (node) => {
|
|
18003
18951
|
return openBlock(), createElementBlock("div", {
|
|
18004
18952
|
key: node.item,
|
|
@@ -18010,9 +18958,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
18010
18958
|
src: unref(getImageUrl)(node.image),
|
|
18011
18959
|
alt: node.name,
|
|
18012
18960
|
class: "node-image"
|
|
18013
|
-
}, null, 8, _hoisted_6$
|
|
18014
|
-
createBaseVNode("span", _hoisted_7$
|
|
18015
|
-
], 40, _hoisted_5$
|
|
18961
|
+
}, null, 8, _hoisted_6$4),
|
|
18962
|
+
createBaseVNode("span", _hoisted_7$3, toDisplayString(node.name), 1)
|
|
18963
|
+
], 40, _hoisted_5$5);
|
|
18016
18964
|
}), 128))
|
|
18017
18965
|
])) : createCommentVNode("", true)
|
|
18018
18966
|
]);
|
|
@@ -18022,128 +18970,125 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
18022
18970
|
}
|
|
18023
18971
|
});
|
|
18024
18972
|
const NodeList_vue_vue_type_style_index_0_scoped_a8d4b46b_lang = "";
|
|
18025
|
-
const NodeList = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
18026
|
-
const
|
|
18027
|
-
|
|
18028
|
-
|
|
18029
|
-
|
|
18030
|
-
|
|
18031
|
-
|
|
18032
|
-
|
|
18033
|
-
|
|
18034
|
-
|
|
18035
|
-
|
|
18036
|
-
|
|
18037
|
-
|
|
18038
|
-
|
|
18039
|
-
|
|
18040
|
-
|
|
18041
|
-
|
|
18042
|
-
|
|
18043
|
-
|
|
18044
|
-
|
|
18045
|
-
const saveItemState = (id2) => {
|
|
18046
|
-
const itemState = items.value[id2];
|
|
18047
|
-
localStorage.setItem(`overlayPositionAndSize_${id2}`, JSON.stringify(itemState));
|
|
18048
|
-
};
|
|
18049
|
-
const loadItemState = (id2) => {
|
|
18050
|
-
const savedState = localStorage.getItem(`overlayPositionAndSize_${id2}`);
|
|
18051
|
-
if (savedState) {
|
|
18052
|
-
items.value[id2] = JSON.parse(savedState);
|
|
18973
|
+
const NodeList = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-a8d4b46b"]]);
|
|
18974
|
+
const _hoisted_1$a = { class: "listbox-wrapper" };
|
|
18975
|
+
const _hoisted_2$8 = { class: "listbox-title" };
|
|
18976
|
+
const _hoisted_3$7 = { class: "intro-content" };
|
|
18977
|
+
const _hoisted_4$6 = {
|
|
18978
|
+
key: 1,
|
|
18979
|
+
class: "title"
|
|
18980
|
+
};
|
|
18981
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
18982
|
+
__name: "nodeTitle",
|
|
18983
|
+
props: {
|
|
18984
|
+
title: {
|
|
18985
|
+
type: String,
|
|
18986
|
+
required: true
|
|
18987
|
+
},
|
|
18988
|
+
intro: {
|
|
18989
|
+
type: String,
|
|
18990
|
+
required: false,
|
|
18991
|
+
default: ""
|
|
18992
|
+
// Add default value to resolve warning
|
|
18053
18993
|
}
|
|
18054
|
-
}
|
|
18055
|
-
|
|
18056
|
-
|
|
18057
|
-
|
|
18058
|
-
|
|
18059
|
-
|
|
18060
|
-
|
|
18061
|
-
|
|
18062
|
-
|
|
18063
|
-
|
|
18064
|
-
|
|
18065
|
-
|
|
18066
|
-
|
|
18067
|
-
|
|
18068
|
-
|
|
18069
|
-
|
|
18070
|
-
|
|
18071
|
-
|
|
18072
|
-
|
|
18073
|
-
|
|
18074
|
-
|
|
18075
|
-
|
|
18076
|
-
|
|
18077
|
-
|
|
18078
|
-
|
|
18079
|
-
|
|
18994
|
+
},
|
|
18995
|
+
setup(__props) {
|
|
18996
|
+
const props2 = __props;
|
|
18997
|
+
return (_ctx, _cache) => {
|
|
18998
|
+
const _component_el_collapse_item = resolveComponent("el-collapse-item");
|
|
18999
|
+
const _component_el_collapse = resolveComponent("el-collapse");
|
|
19000
|
+
return openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
19001
|
+
props2.intro ? (openBlock(), createBlock(_component_el_collapse, {
|
|
19002
|
+
key: 0,
|
|
19003
|
+
class: "listbox-expandable"
|
|
19004
|
+
}, {
|
|
19005
|
+
default: withCtx(() => [
|
|
19006
|
+
createVNode(_component_el_collapse_item, null, {
|
|
19007
|
+
title: withCtx(() => [
|
|
19008
|
+
createBaseVNode("div", _hoisted_2$8, toDisplayString(props2.title), 1)
|
|
19009
|
+
]),
|
|
19010
|
+
default: withCtx(() => [
|
|
19011
|
+
createBaseVNode("div", _hoisted_3$7, toDisplayString(props2.intro), 1)
|
|
19012
|
+
]),
|
|
19013
|
+
_: 1
|
|
19014
|
+
})
|
|
19015
|
+
]),
|
|
19016
|
+
_: 1
|
|
19017
|
+
})) : (openBlock(), createElementBlock("div", _hoisted_4$6, toDisplayString(props2.title), 1))
|
|
19018
|
+
]);
|
|
19019
|
+
};
|
|
19020
|
+
}
|
|
19021
|
+
});
|
|
19022
|
+
const nodeTitle_vue_vue_type_style_index_0_scoped_0db5c358_lang = "";
|
|
19023
|
+
const NodeTitle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-0db5c358"]]);
|
|
19024
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
19025
|
+
__name: "NodeSettingsDrawer",
|
|
19026
|
+
setup(__props) {
|
|
19027
|
+
const nodeStore = useNodeStore();
|
|
19028
|
+
const drawerComponentInstance = ref(null);
|
|
19029
|
+
ref("");
|
|
19030
|
+
ref("");
|
|
19031
|
+
const lastExecutedState = ref({
|
|
19032
|
+
nodeId: -1,
|
|
19033
|
+
componentInstance: null
|
|
19034
|
+
});
|
|
19035
|
+
const executeCleanup = async () => {
|
|
19036
|
+
if (lastExecutedState.value.componentInstance) {
|
|
19037
|
+
console.log(`executing cleanup for node ${lastExecutedState.value.nodeId}`);
|
|
19038
|
+
await nodeStore.executeDrawCloseFunction();
|
|
18080
19039
|
}
|
|
18081
|
-
|
|
18082
|
-
|
|
18083
|
-
|
|
18084
|
-
|
|
18085
|
-
|
|
18086
|
-
|
|
18087
|
-
|
|
18088
|
-
|
|
18089
|
-
|
|
18090
|
-
|
|
18091
|
-
if (idItemClicked.value) {
|
|
18092
|
-
items.value[idItemClicked.value].zIndex = 100;
|
|
18093
|
-
}
|
|
18094
|
-
items.value[id2].zIndex = 1e3;
|
|
18095
|
-
idItemClicked.value = id2;
|
|
18096
|
-
};
|
|
18097
|
-
const setResizing = (resizing) => {
|
|
18098
|
-
inResizing.value = resizing;
|
|
18099
|
-
};
|
|
18100
|
-
const getResizing = () => {
|
|
18101
|
-
return inResizing.value;
|
|
18102
|
-
};
|
|
18103
|
-
const scrollOnItem = (id2) => {
|
|
18104
|
-
const itemElement = document.getElementById(id2);
|
|
18105
|
-
if (!itemElement)
|
|
18106
|
-
return;
|
|
18107
|
-
const observer = new IntersectionObserver(
|
|
18108
|
-
(entries) => {
|
|
18109
|
-
entries.forEach((entry) => {
|
|
18110
|
-
if (entry.isIntersecting) {
|
|
18111
|
-
idItemVisible.value = id2;
|
|
18112
|
-
items.value[id2].zIndex = 1e3;
|
|
18113
|
-
} else if (idItemVisible.value === id2) {
|
|
18114
|
-
items.value[id2].zIndex = 100;
|
|
18115
|
-
idItemVisible.value = null;
|
|
18116
|
-
}
|
|
18117
|
-
});
|
|
18118
|
-
},
|
|
18119
|
-
{
|
|
18120
|
-
threshold: 0.5
|
|
18121
|
-
// Trigger when 50% of the item is visible
|
|
19040
|
+
};
|
|
19041
|
+
const setupNewNode = () => {
|
|
19042
|
+
var _a;
|
|
19043
|
+
if (((_a = drawerComponentInstance.value) == null ? void 0 : _a.loadNodeData) && nodeStore.node_id !== -1) {
|
|
19044
|
+
drawerComponentInstance.value.loadNodeData(nodeStore.node_id);
|
|
19045
|
+
nodeStore.setCloseFunction(drawerComponentInstance.value.pushNodeData);
|
|
19046
|
+
lastExecutedState.value = {
|
|
19047
|
+
nodeId: nodeStore.node_id,
|
|
19048
|
+
componentInstance: drawerComponentInstance.value
|
|
19049
|
+
};
|
|
18122
19050
|
}
|
|
19051
|
+
};
|
|
19052
|
+
watch$1(
|
|
19053
|
+
[() => drawerComponentInstance.value, () => nodeStore.node_id],
|
|
19054
|
+
async ([newInstance, newNodeId], [oldInstance, oldNodeId]) => {
|
|
19055
|
+
const nodeIdChanged = newNodeId !== oldNodeId;
|
|
19056
|
+
if (nodeIdChanged && oldNodeId !== -1 && lastExecutedState.value.componentInstance) {
|
|
19057
|
+
await executeCleanup();
|
|
19058
|
+
lastExecutedState.value = {
|
|
19059
|
+
nodeId: -1,
|
|
19060
|
+
componentInstance: null
|
|
19061
|
+
};
|
|
19062
|
+
}
|
|
19063
|
+
if (newNodeId === -1) {
|
|
19064
|
+
nodeStore.isDrawerOpen = false;
|
|
19065
|
+
return;
|
|
19066
|
+
}
|
|
19067
|
+
if (newInstance) {
|
|
19068
|
+
await nextTick();
|
|
19069
|
+
setupNewNode();
|
|
19070
|
+
}
|
|
19071
|
+
},
|
|
19072
|
+
{ immediate: true }
|
|
18123
19073
|
);
|
|
18124
|
-
|
|
18125
|
-
|
|
18126
|
-
|
|
18127
|
-
|
|
18128
|
-
|
|
18129
|
-
|
|
18130
|
-
|
|
18131
|
-
|
|
18132
|
-
|
|
18133
|
-
|
|
18134
|
-
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
// Exposing the visible item
|
|
18138
|
-
toggleFullScreen,
|
|
18139
|
-
// Toggle fullscreen state
|
|
18140
|
-
setFullScreen
|
|
18141
|
-
// Set fullscreen state with boolean parameter
|
|
18142
|
-
};
|
|
19074
|
+
return (_ctx, _cache) => {
|
|
19075
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
19076
|
+
createVNode(NodeTitle, {
|
|
19077
|
+
title: unref(nodeStore).drawerProps.title,
|
|
19078
|
+
intro: unref(nodeStore).drawerProps.intro
|
|
19079
|
+
}, null, 8, ["title", "intro"]),
|
|
19080
|
+
(openBlock(), createBlock(resolveDynamicComponent(unref(nodeStore).activeDrawerComponent), mergeProps(unref(nodeStore).drawerProps, {
|
|
19081
|
+
ref_key: "drawerComponentInstance",
|
|
19082
|
+
ref: drawerComponentInstance
|
|
19083
|
+
}), null, 16))
|
|
19084
|
+
], 64);
|
|
19085
|
+
};
|
|
19086
|
+
}
|
|
18143
19087
|
});
|
|
18144
|
-
const _hoisted_1$
|
|
18145
|
-
const _hoisted_2$
|
|
18146
|
-
const
|
|
19088
|
+
const _hoisted_1$9 = ["id"];
|
|
19089
|
+
const _hoisted_2$7 = ["title"];
|
|
19090
|
+
const _hoisted_3$6 = { class: "icon" };
|
|
19091
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
18147
19092
|
__name: "DraggableItem",
|
|
18148
19093
|
props: {
|
|
18149
19094
|
id: {
|
|
@@ -18166,6 +19111,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18166
19111
|
type: Boolean,
|
|
18167
19112
|
default: false
|
|
18168
19113
|
},
|
|
19114
|
+
showPresets: {
|
|
19115
|
+
type: Boolean,
|
|
19116
|
+
default: false
|
|
19117
|
+
},
|
|
18169
19118
|
initialPosition: {
|
|
18170
19119
|
type: String,
|
|
18171
19120
|
default: "free"
|
|
@@ -18178,7 +19127,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18178
19127
|
type: Number,
|
|
18179
19128
|
default: null
|
|
18180
19129
|
},
|
|
18181
|
-
|
|
19130
|
+
initialLeft: {
|
|
18182
19131
|
type: Number,
|
|
18183
19132
|
default: null
|
|
18184
19133
|
},
|
|
@@ -18205,9 +19154,49 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18205
19154
|
allowFullScreen: {
|
|
18206
19155
|
type: Boolean,
|
|
18207
19156
|
default: false
|
|
19157
|
+
},
|
|
19158
|
+
group: {
|
|
19159
|
+
type: String,
|
|
19160
|
+
default: null
|
|
19161
|
+
},
|
|
19162
|
+
syncDimensions: {
|
|
19163
|
+
type: Boolean,
|
|
19164
|
+
default: false
|
|
19165
|
+
},
|
|
19166
|
+
preventOverlap: {
|
|
19167
|
+
type: Boolean,
|
|
19168
|
+
default: false
|
|
18208
19169
|
}
|
|
18209
19170
|
},
|
|
18210
19171
|
setup(__props, { expose: __expose }) {
|
|
19172
|
+
const props2 = __props;
|
|
19173
|
+
const itemStore = useItemStore();
|
|
19174
|
+
const itemState = ref(
|
|
19175
|
+
itemStore.items[props2.id] || {
|
|
19176
|
+
width: props2.initialWidth || 400,
|
|
19177
|
+
height: props2.initialHeight || 300,
|
|
19178
|
+
left: props2.initialLeft || 100,
|
|
19179
|
+
// Used corrected prop
|
|
19180
|
+
top: props2.initialTop || 100,
|
|
19181
|
+
group: props2.group,
|
|
19182
|
+
syncDimensions: props2.syncDimensions,
|
|
19183
|
+
zIndex: 100
|
|
19184
|
+
}
|
|
19185
|
+
);
|
|
19186
|
+
const isDragging = ref(false);
|
|
19187
|
+
const isResizing = ref(false);
|
|
19188
|
+
const startX = ref(0);
|
|
19189
|
+
const startY = ref(0);
|
|
19190
|
+
const startWidth = ref(0);
|
|
19191
|
+
const startHeight = ref(0);
|
|
19192
|
+
const startLeft = ref(0);
|
|
19193
|
+
const startTop = ref(0);
|
|
19194
|
+
const isMinimized = ref(false);
|
|
19195
|
+
const instance = getCurrentInstance();
|
|
19196
|
+
const activeLine = ref(null);
|
|
19197
|
+
let resizeTimeout;
|
|
19198
|
+
const resizeDirection = ref(null);
|
|
19199
|
+
const initialGroupStates = ref({});
|
|
18211
19200
|
const resizeDelay = ref(null);
|
|
18212
19201
|
const resizeOnEnter = (e2, position) => {
|
|
18213
19202
|
if (resizeDelay.value)
|
|
@@ -18231,31 +19220,51 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18231
19220
|
}
|
|
18232
19221
|
}, 200);
|
|
18233
19222
|
};
|
|
18234
|
-
const props2 = __props;
|
|
18235
|
-
const itemStore = useItemStore();
|
|
18236
|
-
const itemState = ref(
|
|
18237
|
-
itemStore.items[props2.id] || {
|
|
18238
|
-
width: props2.initialWidth,
|
|
18239
|
-
height: props2.initialHeight,
|
|
18240
|
-
left: 100,
|
|
18241
|
-
top: 100
|
|
18242
|
-
}
|
|
18243
|
-
);
|
|
18244
|
-
const isDragging = ref(false);
|
|
18245
|
-
const isResizing = ref(false);
|
|
18246
|
-
const startX = ref(0);
|
|
18247
|
-
const startY = ref(0);
|
|
18248
|
-
const startWidth = ref(0);
|
|
18249
|
-
const startHeight = ref(0);
|
|
18250
|
-
const startLeft = ref(0);
|
|
18251
|
-
const startTop = ref(0);
|
|
18252
|
-
const isMinimized = ref(false);
|
|
18253
|
-
const instance = getCurrentInstance();
|
|
18254
|
-
const activeLine = ref(null);
|
|
18255
|
-
let resizeTimeout;
|
|
18256
19223
|
const savePositionAndSize = () => {
|
|
18257
|
-
itemStore.setItemState(props2.id,
|
|
19224
|
+
itemStore.setItemState(props2.id, {
|
|
19225
|
+
width: itemState.value.width,
|
|
19226
|
+
height: itemState.value.height,
|
|
19227
|
+
left: itemState.value.left,
|
|
19228
|
+
top: itemState.value.top,
|
|
19229
|
+
stickynessPosition: itemState.value.stickynessPosition,
|
|
19230
|
+
fullWidth: itemState.value.fullWidth,
|
|
19231
|
+
fullHeight: itemState.value.fullHeight,
|
|
19232
|
+
zIndex: itemState.value.zIndex,
|
|
19233
|
+
fullScreen: itemState.value.fullScreen,
|
|
19234
|
+
group: itemState.value.group,
|
|
19235
|
+
syncDimensions: itemState.value.syncDimensions
|
|
19236
|
+
});
|
|
18258
19237
|
itemStore.saveItemState(props2.id);
|
|
19238
|
+
if (itemState.value.group && itemState.value.syncDimensions && isResizing.value) {
|
|
19239
|
+
const groupItems = itemStore.groups[itemState.value.group];
|
|
19240
|
+
if (groupItems) {
|
|
19241
|
+
const initialActiveState = initialGroupStates.value[props2.id];
|
|
19242
|
+
if (!initialActiveState)
|
|
19243
|
+
return;
|
|
19244
|
+
const deltaX = itemState.value.left - initialActiveState.left;
|
|
19245
|
+
const deltaY = itemState.value.top - initialActiveState.top;
|
|
19246
|
+
groupItems.forEach((itemId) => {
|
|
19247
|
+
var _a;
|
|
19248
|
+
if (itemId === props2.id)
|
|
19249
|
+
return;
|
|
19250
|
+
const initialItemState = initialGroupStates.value[itemId];
|
|
19251
|
+
if (((_a = itemStore.items[itemId]) == null ? void 0 : _a.syncDimensions) && initialItemState) {
|
|
19252
|
+
const updates = {
|
|
19253
|
+
width: itemState.value.width,
|
|
19254
|
+
height: itemState.value.height
|
|
19255
|
+
};
|
|
19256
|
+
if (resizeDirection.value === "top") {
|
|
19257
|
+
updates.top = initialItemState.top + deltaY;
|
|
19258
|
+
}
|
|
19259
|
+
if (resizeDirection.value === "left") {
|
|
19260
|
+
updates.left = initialItemState.left + deltaX;
|
|
19261
|
+
}
|
|
19262
|
+
itemStore.setItemState(itemId, updates);
|
|
19263
|
+
itemStore.saveItemState(itemId);
|
|
19264
|
+
}
|
|
19265
|
+
});
|
|
19266
|
+
}
|
|
19267
|
+
}
|
|
18259
19268
|
};
|
|
18260
19269
|
const loadPositionAndSize = () => {
|
|
18261
19270
|
itemStore.loadItemState(props2.id);
|
|
@@ -18276,28 +19285,33 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18276
19285
|
itemStore.inResizing = true;
|
|
18277
19286
|
};
|
|
18278
19287
|
const toggleFullScreen = () => {
|
|
18279
|
-
|
|
18280
|
-
|
|
18281
|
-
|
|
18282
|
-
|
|
18283
|
-
|
|
18284
|
-
|
|
18285
|
-
|
|
18286
|
-
|
|
18287
|
-
|
|
18288
|
-
|
|
18289
|
-
|
|
18290
|
-
|
|
18291
|
-
|
|
18292
|
-
|
|
18293
|
-
|
|
18294
|
-
|
|
19288
|
+
itemStore.toggleFullScreen(props2.id);
|
|
19289
|
+
loadPositionAndSize();
|
|
19290
|
+
};
|
|
19291
|
+
const captureGroupInitialStates = () => {
|
|
19292
|
+
if (itemState.value.group && itemState.value.syncDimensions) {
|
|
19293
|
+
initialGroupStates.value = {};
|
|
19294
|
+
const groupItems = itemStore.groups[itemState.value.group];
|
|
19295
|
+
if (groupItems) {
|
|
19296
|
+
groupItems.forEach((id2) => {
|
|
19297
|
+
const item = itemStore.items[id2];
|
|
19298
|
+
if (item) {
|
|
19299
|
+
initialGroupStates.value[id2] = {
|
|
19300
|
+
top: item.top,
|
|
19301
|
+
left: item.left,
|
|
19302
|
+
width: item.width,
|
|
19303
|
+
height: item.height
|
|
19304
|
+
};
|
|
19305
|
+
}
|
|
19306
|
+
});
|
|
19307
|
+
}
|
|
18295
19308
|
}
|
|
18296
|
-
savePositionAndSize();
|
|
18297
19309
|
};
|
|
18298
19310
|
const startResizeRight = (e2) => {
|
|
18299
19311
|
e2.preventDefault();
|
|
18300
19312
|
handleReziging(e2);
|
|
19313
|
+
resizeDirection.value = "right";
|
|
19314
|
+
captureGroupInitialStates();
|
|
18301
19315
|
startX.value = e2.clientX;
|
|
18302
19316
|
startWidth.value = itemState.value.width;
|
|
18303
19317
|
document.addEventListener("mousemove", onResizeWidth);
|
|
@@ -18307,7 +19321,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18307
19321
|
if (isResizing.value) {
|
|
18308
19322
|
const deltaX = e2.clientX - startX.value;
|
|
18309
19323
|
const newWidth = startWidth.value + deltaX;
|
|
18310
|
-
if (newWidth > 100 && newWidth < window.innerWidth
|
|
19324
|
+
if (newWidth > 100 && newWidth < window.innerWidth) {
|
|
18311
19325
|
itemState.value.width = newWidth;
|
|
18312
19326
|
savePositionAndSize();
|
|
18313
19327
|
}
|
|
@@ -18316,6 +19330,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18316
19330
|
const startResizeBottom = (e2) => {
|
|
18317
19331
|
e2.preventDefault();
|
|
18318
19332
|
handleReziging(e2);
|
|
19333
|
+
resizeDirection.value = "bottom";
|
|
19334
|
+
captureGroupInitialStates();
|
|
18319
19335
|
startY.value = e2.clientY;
|
|
18320
19336
|
startHeight.value = itemState.value.height;
|
|
18321
19337
|
document.addEventListener("mousemove", onResizeHeight);
|
|
@@ -18334,6 +19350,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18334
19350
|
const startResizeTop = (e2) => {
|
|
18335
19351
|
e2.preventDefault();
|
|
18336
19352
|
handleReziging(e2);
|
|
19353
|
+
resizeDirection.value = "top";
|
|
19354
|
+
captureGroupInitialStates();
|
|
18337
19355
|
startY.value = e2.clientY;
|
|
18338
19356
|
startTop.value = itemState.value.top;
|
|
18339
19357
|
startHeight.value = itemState.value.height;
|
|
@@ -18345,7 +19363,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18345
19363
|
const deltaY = e2.clientY - startY.value;
|
|
18346
19364
|
const newTop = startTop.value + deltaY;
|
|
18347
19365
|
const newHeight = startHeight.value - deltaY;
|
|
18348
|
-
if (newHeight > 100 && newHeight < window.innerHeight - 100) {
|
|
19366
|
+
if (newHeight > 100 && newHeight < window.innerHeight - 100 && newTop >= 0) {
|
|
18349
19367
|
itemState.value.top = newTop;
|
|
18350
19368
|
itemState.value.height = newHeight;
|
|
18351
19369
|
savePositionAndSize();
|
|
@@ -18355,6 +19373,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18355
19373
|
const startResizeLeft = (e2) => {
|
|
18356
19374
|
e2.preventDefault();
|
|
18357
19375
|
handleReziging(e2);
|
|
19376
|
+
resizeDirection.value = "left";
|
|
19377
|
+
captureGroupInitialStates();
|
|
18358
19378
|
startX.value = e2.clientX;
|
|
18359
19379
|
startLeft.value = itemState.value.left;
|
|
18360
19380
|
startWidth.value = itemState.value.width;
|
|
@@ -18374,15 +19394,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18374
19394
|
}
|
|
18375
19395
|
};
|
|
18376
19396
|
const stopResize = () => {
|
|
18377
|
-
isResizing.value
|
|
18378
|
-
|
|
18379
|
-
|
|
19397
|
+
if (isResizing.value) {
|
|
19398
|
+
isResizing.value = false;
|
|
19399
|
+
resizeDirection.value = null;
|
|
19400
|
+
initialGroupStates.value = {};
|
|
19401
|
+
if (activeLine.value) {
|
|
19402
|
+
activeLine.value.classList.remove("resizing-highlight-line");
|
|
19403
|
+
}
|
|
19404
|
+
itemStore.inResizing = false;
|
|
19405
|
+
document.removeEventListener("mousemove", onResizeWidth);
|
|
19406
|
+
document.removeEventListener("mousemove", onResizeHeight);
|
|
19407
|
+
document.removeEventListener("mousemove", onResizeTop);
|
|
19408
|
+
document.removeEventListener("mousemove", onResizeLeft);
|
|
18380
19409
|
}
|
|
18381
|
-
itemStore.inResizing = false;
|
|
18382
|
-
document.removeEventListener("mousemove", onResizeWidth);
|
|
18383
|
-
document.removeEventListener("mousemove", onResizeHeight);
|
|
18384
|
-
document.removeEventListener("mousemove", onResizeTop);
|
|
18385
|
-
document.removeEventListener("mousemove", onResizeLeft);
|
|
18386
19410
|
};
|
|
18387
19411
|
const startMove = (e2) => {
|
|
18388
19412
|
registerClick();
|
|
@@ -18406,13 +19430,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18406
19430
|
const deltaY = e2.clientY - startY.value;
|
|
18407
19431
|
itemState.value.left = startLeft.value + deltaX;
|
|
18408
19432
|
itemState.value.top = startTop.value + deltaY;
|
|
18409
|
-
savePositionAndSize();
|
|
18410
19433
|
}
|
|
18411
19434
|
};
|
|
18412
19435
|
const stopMove = () => {
|
|
18413
|
-
isDragging.value
|
|
18414
|
-
|
|
18415
|
-
|
|
19436
|
+
if (isDragging.value) {
|
|
19437
|
+
isDragging.value = false;
|
|
19438
|
+
document.removeEventListener("mousemove", onMove);
|
|
19439
|
+
document.removeEventListener("mouseup", stopMove);
|
|
19440
|
+
savePositionAndSize();
|
|
19441
|
+
if (props2.preventOverlap) {
|
|
19442
|
+
itemStore.preventOverlap(props2.id);
|
|
19443
|
+
loadPositionAndSize();
|
|
19444
|
+
}
|
|
19445
|
+
}
|
|
18416
19446
|
};
|
|
18417
19447
|
const moveToRight = () => {
|
|
18418
19448
|
var _a;
|
|
@@ -18433,11 +19463,11 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18433
19463
|
const parentElement = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el;
|
|
18434
19464
|
if (parentElement) {
|
|
18435
19465
|
const parentBottom = parentElement.offsetTop + parentElement.offsetHeight;
|
|
18436
|
-
itemState.value.left = parentElement.offsetLeft;
|
|
18437
|
-
itemState.value.top = parentBottom - itemState.value.height;
|
|
19466
|
+
itemState.value.left = parentElement.offsetLeft + props2.initialLeft;
|
|
19467
|
+
itemState.value.top = parentBottom - (itemState.value.height + props2.initialTop);
|
|
18438
19468
|
itemState.value.stickynessPosition = "bottom";
|
|
18439
19469
|
if (itemState.value.fullWidth) {
|
|
18440
|
-
itemState.value.width = parentElement.offsetWidth;
|
|
19470
|
+
itemState.value.width = parentElement.offsetWidth - props2.initialLeft;
|
|
18441
19471
|
}
|
|
18442
19472
|
savePositionAndSize();
|
|
18443
19473
|
}
|
|
@@ -18469,27 +19499,50 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18469
19499
|
}
|
|
18470
19500
|
};
|
|
18471
19501
|
const applyStickyPosition = () => {
|
|
19502
|
+
var _a;
|
|
19503
|
+
const parentElement = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el;
|
|
19504
|
+
if (!parentElement) {
|
|
19505
|
+
console.warn(`No parent element found for ${props2.id}`);
|
|
19506
|
+
return;
|
|
19507
|
+
}
|
|
18472
19508
|
switch (itemState.value.stickynessPosition) {
|
|
18473
19509
|
case "top":
|
|
18474
|
-
|
|
19510
|
+
itemState.value.left = parentElement.offsetLeft;
|
|
19511
|
+
itemState.value.top = parentElement.offsetTop;
|
|
19512
|
+
if (itemState.value.fullWidth) {
|
|
19513
|
+
itemState.value.width = parentElement.offsetWidth;
|
|
19514
|
+
}
|
|
18475
19515
|
break;
|
|
18476
19516
|
case "bottom":
|
|
18477
|
-
|
|
19517
|
+
itemState.value.left = parentElement.offsetLeft + (props2.initialLeft || 0);
|
|
19518
|
+
itemState.value.top = parentElement.offsetTop + parentElement.offsetHeight - itemState.value.height - (props2.initialTop || 0);
|
|
19519
|
+
if (itemState.value.fullWidth) {
|
|
19520
|
+
itemState.value.width = parentElement.offsetWidth - (props2.initialLeft || 0);
|
|
19521
|
+
}
|
|
18478
19522
|
break;
|
|
18479
19523
|
case "left":
|
|
18480
|
-
|
|
19524
|
+
itemState.value.left = parentElement.offsetLeft;
|
|
19525
|
+
itemState.value.top = parentElement.offsetTop + (props2.initialTop || 0);
|
|
19526
|
+
if (itemState.value.fullHeight) {
|
|
19527
|
+
itemState.value.height = parentElement.offsetHeight - (props2.initialTop || 0);
|
|
19528
|
+
}
|
|
18481
19529
|
break;
|
|
18482
19530
|
case "right":
|
|
18483
|
-
|
|
19531
|
+
itemState.value.left = parentElement.offsetLeft + parentElement.offsetWidth - itemState.value.width;
|
|
19532
|
+
itemState.value.top = parentElement.offsetTop + (props2.initialTop || 0);
|
|
19533
|
+
if (itemState.value.fullHeight) {
|
|
19534
|
+
itemState.value.height = parentElement.offsetHeight - (props2.initialTop || 0);
|
|
19535
|
+
}
|
|
18484
19536
|
break;
|
|
18485
19537
|
}
|
|
19538
|
+
savePositionAndSize();
|
|
18486
19539
|
};
|
|
18487
19540
|
const calculateWidth = () => {
|
|
18488
19541
|
var _a, _b;
|
|
18489
19542
|
if (props2.initialWidth) {
|
|
18490
19543
|
return props2.initialWidth;
|
|
18491
19544
|
} else if (props2.initialPosition === "top" || props2.initialPosition === "bottom") {
|
|
18492
|
-
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetWidth) || 300;
|
|
19545
|
+
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetWidth) - props2.initialLeft || 300;
|
|
18493
19546
|
} else
|
|
18494
19547
|
return 300;
|
|
18495
19548
|
};
|
|
@@ -18498,7 +19551,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18498
19551
|
if (props2.initialHeight) {
|
|
18499
19552
|
return props2.initialHeight;
|
|
18500
19553
|
} else if (props2.initialPosition === "left" || props2.initialPosition === "right") {
|
|
18501
|
-
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetHeight) || 300;
|
|
19554
|
+
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetHeight) - props2.initialHeight || 300;
|
|
18502
19555
|
} else
|
|
18503
19556
|
return 300;
|
|
18504
19557
|
};
|
|
@@ -18520,74 +19573,117 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18520
19573
|
itemStore.clickOnItem(props2.id);
|
|
18521
19574
|
};
|
|
18522
19575
|
const setFullScreen = (makeFull) => {
|
|
18523
|
-
|
|
18524
|
-
|
|
18525
|
-
}
|
|
19576
|
+
itemStore.setFullScreen(props2.id, makeFull);
|
|
19577
|
+
loadPositionAndSize();
|
|
18526
19578
|
};
|
|
19579
|
+
watch$1(
|
|
19580
|
+
() => itemStore.items[props2.id],
|
|
19581
|
+
(newState) => {
|
|
19582
|
+
if (newState) {
|
|
19583
|
+
if (isDragging.value || isResizing.value) {
|
|
19584
|
+
itemState.value.zIndex = newState.zIndex;
|
|
19585
|
+
} else {
|
|
19586
|
+
itemState.value = { ...newState };
|
|
19587
|
+
}
|
|
19588
|
+
}
|
|
19589
|
+
},
|
|
19590
|
+
{ deep: true }
|
|
19591
|
+
);
|
|
19592
|
+
watch$1(
|
|
19593
|
+
() => ({ group: props2.group, syncDimensions: props2.syncDimensions }),
|
|
19594
|
+
({ group, syncDimensions }) => {
|
|
19595
|
+
itemStore.setItemState(props2.id, {
|
|
19596
|
+
group,
|
|
19597
|
+
syncDimensions
|
|
19598
|
+
});
|
|
19599
|
+
itemState.value.group = group;
|
|
19600
|
+
itemState.value.syncDimensions = syncDimensions;
|
|
19601
|
+
}
|
|
19602
|
+
);
|
|
19603
|
+
nextTick().then(() => {
|
|
19604
|
+
observeParentResize();
|
|
19605
|
+
});
|
|
18527
19606
|
onMounted(() => {
|
|
18528
|
-
|
|
19607
|
+
const initialWidth = calculateWidth();
|
|
19608
|
+
const initialHeight = calculateHeight();
|
|
19609
|
+
const initialLeft = props2.initialLeft || 100;
|
|
19610
|
+
const initialTop = props2.initialTop || 100;
|
|
19611
|
+
itemStore.registerInitialState(props2.id, {
|
|
19612
|
+
width: initialWidth,
|
|
19613
|
+
height: initialHeight,
|
|
19614
|
+
left: initialLeft,
|
|
19615
|
+
top: initialTop,
|
|
19616
|
+
stickynessPosition: props2.initialPosition,
|
|
19617
|
+
fullWidth: !props2.initialWidth,
|
|
19618
|
+
fullHeight: !props2.initialHeight,
|
|
19619
|
+
group: props2.group,
|
|
19620
|
+
syncDimensions: props2.syncDimensions
|
|
19621
|
+
});
|
|
19622
|
+
const hasSavedState = localStorage.getItem(`overlayPositionAndSize_${props2.id}`) !== null;
|
|
19623
|
+
if (!hasSavedState) {
|
|
18529
19624
|
itemStore.setItemState(props2.id, {
|
|
18530
|
-
width:
|
|
18531
|
-
height:
|
|
18532
|
-
left:
|
|
18533
|
-
top:
|
|
19625
|
+
width: initialWidth,
|
|
19626
|
+
height: initialHeight,
|
|
19627
|
+
left: initialLeft,
|
|
19628
|
+
top: initialTop,
|
|
18534
19629
|
fullHeight: !props2.initialHeight,
|
|
18535
|
-
fullWidth: !props2.initialWidth
|
|
19630
|
+
fullWidth: !props2.initialWidth,
|
|
19631
|
+
stickynessPosition: props2.initialPosition,
|
|
19632
|
+
group: props2.group,
|
|
19633
|
+
syncDimensions: props2.syncDimensions
|
|
18536
19634
|
});
|
|
18537
19635
|
itemState.value = itemStore.items[props2.id];
|
|
18538
|
-
|
|
18539
|
-
|
|
18540
|
-
|
|
19636
|
+
if (props2.initialPosition !== "free") {
|
|
19637
|
+
nextTick(() => {
|
|
19638
|
+
applyStickyPosition();
|
|
19639
|
+
});
|
|
18541
19640
|
}
|
|
18542
19641
|
} else {
|
|
18543
19642
|
loadPositionAndSize();
|
|
19643
|
+
if (itemState.value.stickynessPosition && itemState.value.stickynessPosition !== "free") {
|
|
19644
|
+
nextTick(() => {
|
|
19645
|
+
applyStickyPosition();
|
|
19646
|
+
});
|
|
19647
|
+
}
|
|
18544
19648
|
}
|
|
19649
|
+
const handleLayoutReset = (event) => {
|
|
19650
|
+
itemState.value = { ...itemStore.items[props2.id] };
|
|
19651
|
+
if (itemState.value.stickynessPosition && itemState.value.stickynessPosition !== "free") {
|
|
19652
|
+
nextTick(() => {
|
|
19653
|
+
applyStickyPosition();
|
|
19654
|
+
});
|
|
19655
|
+
}
|
|
19656
|
+
};
|
|
19657
|
+
window.addEventListener("layout-reset", handleLayoutReset);
|
|
18545
19658
|
document.addEventListener("mouseup", stopResize);
|
|
18546
|
-
|
|
19659
|
+
window[`resetHandler_${props2.id}`] = handleLayoutReset;
|
|
18547
19660
|
});
|
|
18548
|
-
|
|
18549
|
-
|
|
19661
|
+
__expose({
|
|
19662
|
+
setFullScreen
|
|
18550
19663
|
});
|
|
18551
19664
|
onBeforeUnmount(() => {
|
|
19665
|
+
const handler = window[`resetHandler_${props2.id}`];
|
|
19666
|
+
if (handler) {
|
|
19667
|
+
window.removeEventListener("layout-reset", handler);
|
|
19668
|
+
delete window[`resetHandler_${props2.id}`];
|
|
19669
|
+
}
|
|
18552
19670
|
document.removeEventListener("mouseup", stopResize);
|
|
19671
|
+
document.removeEventListener("mousemove", onMove);
|
|
18553
19672
|
document.removeEventListener("mouseup", stopMove);
|
|
18554
|
-
|
|
18555
|
-
|
|
18556
|
-
|
|
18557
|
-
|
|
18558
|
-
isDragging,
|
|
18559
|
-
isResizing,
|
|
18560
|
-
startX,
|
|
18561
|
-
startY,
|
|
18562
|
-
startWidth,
|
|
18563
|
-
startHeight,
|
|
18564
|
-
startLeft,
|
|
18565
|
-
startTop,
|
|
18566
|
-
left: itemState.value.left,
|
|
18567
|
-
top: itemState.value.top,
|
|
18568
|
-
startResizeRight,
|
|
18569
|
-
onResizeWidth,
|
|
18570
|
-
startResizeBottom,
|
|
18571
|
-
onResizeHeight,
|
|
18572
|
-
startResizeTop,
|
|
18573
|
-
onResizeTop,
|
|
18574
|
-
startResizeLeft,
|
|
18575
|
-
onResizeLeft,
|
|
18576
|
-
stopResize,
|
|
18577
|
-
startMove,
|
|
18578
|
-
onMove,
|
|
18579
|
-
stopMove,
|
|
18580
|
-
moveToRight,
|
|
18581
|
-
moveToBottom,
|
|
18582
|
-
moveToLeft,
|
|
18583
|
-
moveToTop,
|
|
18584
|
-
setHeight: (value) => itemState.value.height = value,
|
|
18585
|
-
setWitdh: (value) => itemState.value.width = value,
|
|
18586
|
-
setFullScreen
|
|
19673
|
+
document.removeEventListener("mousemove", onResizeWidth);
|
|
19674
|
+
document.removeEventListener("mousemove", onResizeHeight);
|
|
19675
|
+
document.removeEventListener("mousemove", onResizeTop);
|
|
19676
|
+
document.removeEventListener("mousemove", onResizeLeft);
|
|
18587
19677
|
});
|
|
18588
19678
|
return (_ctx, _cache) => {
|
|
18589
19679
|
return openBlock(), createElementBlock("div", {
|
|
18590
|
-
|
|
19680
|
+
id: props2.id,
|
|
19681
|
+
class: normalizeClass(["overlay", {
|
|
19682
|
+
"no-transition": isResizing.value,
|
|
19683
|
+
minimized: isMinimized.value,
|
|
19684
|
+
"in-group": itemState.value.group,
|
|
19685
|
+
synced: itemState.value.syncDimensions
|
|
19686
|
+
}]),
|
|
18591
19687
|
style: normalizeStyle({
|
|
18592
19688
|
width: isMinimized.value ? "auto" : itemState.value.width + "px",
|
|
18593
19689
|
height: isMinimized.value ? "auto" : itemState.value.height + "px",
|
|
@@ -18603,14 +19699,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18603
19699
|
__props.allowMinimizing ? (openBlock(), createElementBlock("button", {
|
|
18604
19700
|
key: 0,
|
|
18605
19701
|
class: "minimal-button",
|
|
19702
|
+
"data-tooltip": "true",
|
|
18606
19703
|
title: isMinimized.value ? "Maximize" : "Minimize",
|
|
18607
19704
|
onClick: toggleMinimize
|
|
18608
19705
|
}, [
|
|
18609
|
-
createBaseVNode("span",
|
|
18610
|
-
], 8,
|
|
19706
|
+
createBaseVNode("span", _hoisted_3$6, toDisplayString(isMinimized.value ? "+" : "−"), 1)
|
|
19707
|
+
], 8, _hoisted_2$7)) : createCommentVNode("", true),
|
|
18611
19708
|
__props.showRight && itemState.value.stickynessPosition !== "right" ? (openBlock(), createElementBlock("button", {
|
|
18612
19709
|
key: 1,
|
|
18613
19710
|
class: "minimal-button",
|
|
19711
|
+
"data-tooltip": "true",
|
|
18614
19712
|
title: "Move to Right",
|
|
18615
19713
|
onClick: moveToRight
|
|
18616
19714
|
}, _cache[4] || (_cache[4] = [
|
|
@@ -18619,6 +19717,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18619
19717
|
__props.showBottom && itemState.value.stickynessPosition !== "bottom" ? (openBlock(), createElementBlock("button", {
|
|
18620
19718
|
key: 2,
|
|
18621
19719
|
class: "minimal-button",
|
|
19720
|
+
"data-tooltip": "true",
|
|
18622
19721
|
title: "Move to Bottom",
|
|
18623
19722
|
onClick: moveToBottom
|
|
18624
19723
|
}, _cache[5] || (_cache[5] = [
|
|
@@ -18627,6 +19726,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18627
19726
|
__props.showLeft && itemState.value.stickynessPosition !== "left" ? (openBlock(), createElementBlock("button", {
|
|
18628
19727
|
key: 3,
|
|
18629
19728
|
class: "minimal-button",
|
|
19729
|
+
"data-tooltip": "true",
|
|
18630
19730
|
title: "Move to Left",
|
|
18631
19731
|
onClick: moveToLeft
|
|
18632
19732
|
}, _cache[6] || (_cache[6] = [
|
|
@@ -18635,6 +19735,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18635
19735
|
__props.showTop && itemState.value.stickynessPosition !== "top" ? (openBlock(), createElementBlock("button", {
|
|
18636
19736
|
key: 4,
|
|
18637
19737
|
class: "minimal-button",
|
|
19738
|
+
"data-tooltip": "true",
|
|
18638
19739
|
title: "Move to Top",
|
|
18639
19740
|
onClick: moveToTop
|
|
18640
19741
|
}, _cache[7] || (_cache[7] = [
|
|
@@ -18643,7 +19744,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18643
19744
|
__props.allowFullScreen && !itemState.value.fullScreen ? (openBlock(), createElementBlock("button", {
|
|
18644
19745
|
key: 5,
|
|
18645
19746
|
class: "minimal-button",
|
|
18646
|
-
|
|
19747
|
+
"data-tooltip": "true",
|
|
19748
|
+
"data-tooltip-text": "Toggle Full Screen",
|
|
18647
19749
|
onClick: toggleFullScreen
|
|
18648
19750
|
}, _cache[8] || (_cache[8] = [
|
|
18649
19751
|
createBaseVNode("span", { class: "icon" }, "⬜", -1)
|
|
@@ -18651,12 +19753,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18651
19753
|
__props.allowFullScreen && itemState.value.fullScreen ? (openBlock(), createElementBlock("button", {
|
|
18652
19754
|
key: 6,
|
|
18653
19755
|
class: "minimal-button",
|
|
18654
|
-
|
|
19756
|
+
"data-tooltip": "true",
|
|
19757
|
+
"data-tooltip-text": "Exit Full Screen",
|
|
18655
19758
|
onClick: toggleFullScreen
|
|
18656
19759
|
}, _cache[9] || (_cache[9] = [
|
|
18657
19760
|
createBaseVNode("span", { class: "icon" }, "❐", -1)
|
|
18658
19761
|
]))) : createCommentVNode("", true),
|
|
18659
|
-
|
|
19762
|
+
createBaseVNode("span", {
|
|
19763
|
+
class: "group-badge",
|
|
19764
|
+
onMousedown: startMove
|
|
19765
|
+
}, toDisplayString(__props.title), 33)
|
|
18660
19766
|
], 32),
|
|
18661
19767
|
createBaseVNode("div", {
|
|
18662
19768
|
class: "content",
|
|
@@ -18684,12 +19790,214 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18684
19790
|
onMousedown: withModifiers(startResizeLeft, ["stop"]),
|
|
18685
19791
|
onMouseenter: _cache[3] || (_cache[3] = ($event) => resizeOnEnter($event, "left"))
|
|
18686
19792
|
}, null, 32)
|
|
18687
|
-
],
|
|
19793
|
+
], 14, _hoisted_1$9);
|
|
19794
|
+
};
|
|
19795
|
+
}
|
|
19796
|
+
});
|
|
19797
|
+
const DraggableItem_vue_vue_type_style_index_0_scoped_47a34251_lang = "";
|
|
19798
|
+
const DraggableItem = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-47a34251"]]);
|
|
19799
|
+
const _hoisted_1$8 = { class: "panel-header" };
|
|
19800
|
+
const _hoisted_2$6 = { class: "panel-body" };
|
|
19801
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
19802
|
+
__name: "layoutControls",
|
|
19803
|
+
emits: ["reset-layout-graph"],
|
|
19804
|
+
setup(__props, { emit: __emit }) {
|
|
19805
|
+
const emit = __emit;
|
|
19806
|
+
const itemStore = useItemStore();
|
|
19807
|
+
const isOpen = ref(false);
|
|
19808
|
+
const position = ref({ x: window.innerWidth - 80, y: window.innerHeight - 80 });
|
|
19809
|
+
const isDragging = ref(false);
|
|
19810
|
+
const hasDragged = ref(false);
|
|
19811
|
+
const dragStart = ref({ x: 0, y: 0 });
|
|
19812
|
+
const initialPosition = ref({ x: 0, y: 0 });
|
|
19813
|
+
const handleViewportResize = () => {
|
|
19814
|
+
const buttonSize = 45;
|
|
19815
|
+
const boundaryMargin = 10;
|
|
19816
|
+
position.value.x = Math.max(
|
|
19817
|
+
boundaryMargin,
|
|
19818
|
+
Math.min(window.innerWidth - buttonSize - boundaryMargin, position.value.x)
|
|
19819
|
+
);
|
|
19820
|
+
position.value.y = Math.max(
|
|
19821
|
+
boundaryMargin,
|
|
19822
|
+
Math.min(window.innerHeight - buttonSize - boundaryMargin, position.value.y)
|
|
19823
|
+
);
|
|
19824
|
+
};
|
|
19825
|
+
const panelStyle = computed$1(() => {
|
|
19826
|
+
const style = {};
|
|
19827
|
+
const isRightHalf = position.value.x > window.innerWidth / 2;
|
|
19828
|
+
const isBottomHalf = position.value.y > window.innerHeight / 2;
|
|
19829
|
+
if (isRightHalf) {
|
|
19830
|
+
style.right = "60px";
|
|
19831
|
+
} else {
|
|
19832
|
+
style.left = "60px";
|
|
19833
|
+
}
|
|
19834
|
+
if (isBottomHalf) {
|
|
19835
|
+
style.bottom = "0px";
|
|
19836
|
+
} else {
|
|
19837
|
+
style.top = "0px";
|
|
19838
|
+
}
|
|
19839
|
+
return style;
|
|
19840
|
+
});
|
|
19841
|
+
onMounted(() => {
|
|
19842
|
+
const savedPosition = localStorage.getItem("layoutControlsPosition");
|
|
19843
|
+
if (savedPosition) {
|
|
19844
|
+
const parsed = JSON.parse(savedPosition);
|
|
19845
|
+
position.value = parsed;
|
|
19846
|
+
handleViewportResize();
|
|
19847
|
+
}
|
|
19848
|
+
window.addEventListener("resize", handleViewportResize);
|
|
19849
|
+
});
|
|
19850
|
+
const savePosition = () => {
|
|
19851
|
+
localStorage.setItem("layoutControlsPosition", JSON.stringify(position.value));
|
|
19852
|
+
};
|
|
19853
|
+
const handleMouseDown = (e2) => {
|
|
19854
|
+
e2.preventDefault();
|
|
19855
|
+
hasDragged.value = false;
|
|
19856
|
+
if (isOpen.value) {
|
|
19857
|
+
return;
|
|
19858
|
+
}
|
|
19859
|
+
isDragging.value = true;
|
|
19860
|
+
dragStart.value = {
|
|
19861
|
+
x: e2.clientX,
|
|
19862
|
+
y: e2.clientY
|
|
19863
|
+
};
|
|
19864
|
+
initialPosition.value = {
|
|
19865
|
+
x: position.value.x,
|
|
19866
|
+
y: position.value.y
|
|
19867
|
+
};
|
|
19868
|
+
document.addEventListener("mousemove", onDrag);
|
|
19869
|
+
document.addEventListener("mouseup", stopDrag);
|
|
19870
|
+
};
|
|
19871
|
+
const handleClick = (e2) => {
|
|
19872
|
+
e2.preventDefault();
|
|
19873
|
+
e2.stopPropagation();
|
|
19874
|
+
if (!hasDragged.value) {
|
|
19875
|
+
isOpen.value = !isOpen.value;
|
|
19876
|
+
}
|
|
19877
|
+
};
|
|
19878
|
+
const onDrag = (e2) => {
|
|
19879
|
+
if (!isDragging.value)
|
|
19880
|
+
return;
|
|
19881
|
+
const deltaX = e2.clientX - dragStart.value.x;
|
|
19882
|
+
const deltaY = e2.clientY - dragStart.value.y;
|
|
19883
|
+
if (Math.abs(deltaX) > 5 || Math.abs(deltaY) > 5) {
|
|
19884
|
+
hasDragged.value = true;
|
|
19885
|
+
}
|
|
19886
|
+
if (hasDragged.value) {
|
|
19887
|
+
let newX = initialPosition.value.x + deltaX;
|
|
19888
|
+
let newY = initialPosition.value.y + deltaY;
|
|
19889
|
+
const buttonSize = 45;
|
|
19890
|
+
const boundaryMargin = 10;
|
|
19891
|
+
newX = Math.max(
|
|
19892
|
+
boundaryMargin,
|
|
19893
|
+
Math.min(window.innerWidth - buttonSize - boundaryMargin, newX)
|
|
19894
|
+
);
|
|
19895
|
+
newY = Math.max(
|
|
19896
|
+
boundaryMargin,
|
|
19897
|
+
Math.min(window.innerHeight - buttonSize - boundaryMargin, newY)
|
|
19898
|
+
);
|
|
19899
|
+
position.value = { x: newX, y: newY };
|
|
19900
|
+
}
|
|
19901
|
+
};
|
|
19902
|
+
const stopDrag = () => {
|
|
19903
|
+
if (isDragging.value) {
|
|
19904
|
+
isDragging.value = false;
|
|
19905
|
+
if (hasDragged.value) {
|
|
19906
|
+
savePosition();
|
|
19907
|
+
}
|
|
19908
|
+
document.removeEventListener("mousemove", onDrag);
|
|
19909
|
+
document.removeEventListener("mouseup", stopDrag);
|
|
19910
|
+
}
|
|
19911
|
+
};
|
|
19912
|
+
const runAction = (action, ...args) => {
|
|
19913
|
+
action(...args);
|
|
19914
|
+
isOpen.value = false;
|
|
19915
|
+
};
|
|
19916
|
+
const arrangeLayout = (layout) => {
|
|
19917
|
+
itemStore.arrangeItems(layout);
|
|
19918
|
+
};
|
|
19919
|
+
const resetLayout = () => {
|
|
19920
|
+
itemStore.resetLayout();
|
|
19921
|
+
};
|
|
19922
|
+
const resetLayoutGraph = () => {
|
|
19923
|
+
emit("reset-layout-graph");
|
|
19924
|
+
};
|
|
19925
|
+
onBeforeUnmount(() => {
|
|
19926
|
+
document.removeEventListener("mousemove", onDrag);
|
|
19927
|
+
document.removeEventListener("mouseup", stopDrag);
|
|
19928
|
+
window.removeEventListener("resize", handleViewportResize);
|
|
19929
|
+
});
|
|
19930
|
+
return (_ctx, _cache) => {
|
|
19931
|
+
return openBlock(), createElementBlock("div", {
|
|
19932
|
+
class: "layout-widget-wrapper",
|
|
19933
|
+
style: normalizeStyle({
|
|
19934
|
+
left: position.value.x + "px",
|
|
19935
|
+
top: position.value.y + "px"
|
|
19936
|
+
})
|
|
19937
|
+
}, [
|
|
19938
|
+
createVNode(Transition$2, { name: "panel-fade" }, {
|
|
19939
|
+
default: withCtx(() => [
|
|
19940
|
+
isOpen.value ? (openBlock(), createElementBlock("div", {
|
|
19941
|
+
key: 0,
|
|
19942
|
+
class: "panel",
|
|
19943
|
+
style: normalizeStyle(panelStyle.value)
|
|
19944
|
+
}, [
|
|
19945
|
+
createBaseVNode("div", _hoisted_1$8, [
|
|
19946
|
+
_cache[5] || (_cache[5] = createBaseVNode("span", { class: "panel-title" }, "Layout Controls", -1)),
|
|
19947
|
+
createBaseVNode("button", {
|
|
19948
|
+
class: "close-btn",
|
|
19949
|
+
title: "Close",
|
|
19950
|
+
onClick: _cache[0] || (_cache[0] = ($event) => isOpen.value = false)
|
|
19951
|
+
}, "✕")
|
|
19952
|
+
]),
|
|
19953
|
+
createBaseVNode("div", _hoisted_2$6, [
|
|
19954
|
+
createBaseVNode("button", {
|
|
19955
|
+
class: "control-btn",
|
|
19956
|
+
onClick: _cache[1] || (_cache[1] = ($event) => runAction(arrangeLayout, "tile"))
|
|
19957
|
+
}, _cache[6] || (_cache[6] = [
|
|
19958
|
+
createBaseVNode("span", { class: "icon" }, "⊞", -1),
|
|
19959
|
+
createTextVNode(" Tile Layout ")
|
|
19960
|
+
])),
|
|
19961
|
+
createBaseVNode("button", {
|
|
19962
|
+
class: "control-btn",
|
|
19963
|
+
onClick: _cache[2] || (_cache[2] = ($event) => runAction(arrangeLayout, "cascade"))
|
|
19964
|
+
}, _cache[7] || (_cache[7] = [
|
|
19965
|
+
createBaseVNode("span", { class: "icon" }, "◫", -1),
|
|
19966
|
+
createTextVNode(" Cascade ")
|
|
19967
|
+
])),
|
|
19968
|
+
createBaseVNode("button", {
|
|
19969
|
+
class: "control-btn",
|
|
19970
|
+
onClick: _cache[3] || (_cache[3] = ($event) => runAction(resetLayout))
|
|
19971
|
+
}, _cache[8] || (_cache[8] = [
|
|
19972
|
+
createBaseVNode("span", { class: "icon" }, "↺", -1),
|
|
19973
|
+
createTextVNode(" Reset window Layout ")
|
|
19974
|
+
])),
|
|
19975
|
+
createBaseVNode("button", {
|
|
19976
|
+
class: "control-btn accent",
|
|
19977
|
+
onClick: _cache[4] || (_cache[4] = ($event) => runAction(resetLayoutGraph))
|
|
19978
|
+
}, _cache[9] || (_cache[9] = [
|
|
19979
|
+
createBaseVNode("span", { class: "icon" }, "⟲", -1),
|
|
19980
|
+
createTextVNode(" Reset Layout Graph ")
|
|
19981
|
+
]))
|
|
19982
|
+
])
|
|
19983
|
+
], 4)) : createCommentVNode("", true)
|
|
19984
|
+
]),
|
|
19985
|
+
_: 1
|
|
19986
|
+
}),
|
|
19987
|
+
createBaseVNode("button", {
|
|
19988
|
+
class: normalizeClass(["trigger-btn", { "is-open": isOpen.value }]),
|
|
19989
|
+
title: "Layout Controls",
|
|
19990
|
+
onMousedown: handleMouseDown,
|
|
19991
|
+
onClick: handleClick
|
|
19992
|
+
}, _cache[10] || (_cache[10] = [
|
|
19993
|
+
createStaticVNode('<svg class="layout-icon" viewBox="0 0 24 24" width="24" height="24" data-v-0bdaa52f><rect x="2" y="2" width="8" height="6" fill="currentColor" opacity="0.9" data-v-0bdaa52f></rect><rect x="12" y="2" width="8" height="6" fill="currentColor" opacity="0.7" data-v-0bdaa52f></rect><rect x="2" y="10" width="8" height="10" fill="currentColor" opacity="0.7" data-v-0bdaa52f></rect><rect x="12" y="10" width="8" height="10" fill="currentColor" opacity="0.9" data-v-0bdaa52f></rect></svg>', 1)
|
|
19994
|
+
]), 34)
|
|
19995
|
+
], 4);
|
|
18688
19996
|
};
|
|
18689
19997
|
}
|
|
18690
19998
|
});
|
|
18691
|
-
const
|
|
18692
|
-
const
|
|
19999
|
+
const layoutControls_vue_vue_type_style_index_0_scoped_0bdaa52f_lang = "";
|
|
20000
|
+
const layoutControls = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-0bdaa52f"]]);
|
|
18693
20001
|
var __defProp$2 = Object.defineProperty;
|
|
18694
20002
|
var __defProps = Object.defineProperties;
|
|
18695
20003
|
var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
|
|
@@ -67227,15 +68535,15 @@ var __defProp$1 = Object.defineProperty;
|
|
|
67227
68535
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
67228
68536
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
67229
68537
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
67230
|
-
var
|
|
68538
|
+
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
67231
68539
|
var __spreadValues = (a3, b2) => {
|
|
67232
68540
|
for (var prop in b2 || (b2 = {}))
|
|
67233
68541
|
if (__hasOwnProp.call(b2, prop))
|
|
67234
|
-
|
|
68542
|
+
__defNormalProp2(a3, prop, b2[prop]);
|
|
67235
68543
|
if (__getOwnPropSymbols)
|
|
67236
68544
|
for (var prop of __getOwnPropSymbols(b2)) {
|
|
67237
68545
|
if (__propIsEnum.call(b2, prop))
|
|
67238
|
-
|
|
68546
|
+
__defNormalProp2(a3, prop, b2[prop]);
|
|
67239
68547
|
}
|
|
67240
68548
|
return a3;
|
|
67241
68549
|
};
|
|
@@ -67705,7 +69013,7 @@ var AgGridVue = defineComponent({
|
|
|
67705
69013
|
* @license MIT
|
|
67706
69014
|
**)
|
|
67707
69015
|
*/
|
|
67708
|
-
var
|
|
69016
|
+
var __defProp2 = Object.defineProperty;
|
|
67709
69017
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67710
69018
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
67711
69019
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
@@ -67713,7 +69021,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
67713
69021
|
if (decorator = decorators[i2])
|
|
67714
69022
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
67715
69023
|
if (kind && result)
|
|
67716
|
-
|
|
69024
|
+
__defProp2(target, key, result);
|
|
67717
69025
|
return result;
|
|
67718
69026
|
};
|
|
67719
69027
|
var _ClientSideNodeManager = class _ClientSideNodeManager2 {
|
|
@@ -69431,6 +70739,18 @@ const _hoisted_1$7 = {
|
|
|
69431
70739
|
key: 0,
|
|
69432
70740
|
class: "spinner-overlay"
|
|
69433
70741
|
};
|
|
70742
|
+
const _hoisted_2$5 = { class: "table-container" };
|
|
70743
|
+
const _hoisted_3$5 = {
|
|
70744
|
+
key: 0,
|
|
70745
|
+
class: "outdated-data-banner"
|
|
70746
|
+
};
|
|
70747
|
+
const _hoisted_4$5 = {
|
|
70748
|
+
key: 1,
|
|
70749
|
+
class: "fetch-data-section"
|
|
70750
|
+
};
|
|
70751
|
+
const _hoisted_5$4 = ["disabled"];
|
|
70752
|
+
const _hoisted_6$3 = { key: 0 };
|
|
70753
|
+
const _hoisted_7$2 = { key: 1 };
|
|
69434
70754
|
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
69435
70755
|
__name: "dataPreview",
|
|
69436
70756
|
props: {
|
|
@@ -69451,6 +70771,31 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69451
70771
|
const columnLength = ref(0);
|
|
69452
70772
|
const gridApi = ref(null);
|
|
69453
70773
|
const columnDefs = ref([{}]);
|
|
70774
|
+
const showFetchButton = ref(false);
|
|
70775
|
+
const currentNodeId = ref(null);
|
|
70776
|
+
const showOutdatedDataBanner = ref(false);
|
|
70777
|
+
const props2 = __props;
|
|
70778
|
+
const { triggerNodeFetch, isPollingActive } = useFlowExecution(
|
|
70779
|
+
props2.flowId || nodeStore.flow_id,
|
|
70780
|
+
{ interval: 2e3, enabled: true },
|
|
70781
|
+
{
|
|
70782
|
+
persistPolling: true,
|
|
70783
|
+
// Keep polling even when component unmounts
|
|
70784
|
+
pollingKey: `table_flow_${props2.flowId || nodeStore.flow_id}`
|
|
70785
|
+
}
|
|
70786
|
+
);
|
|
70787
|
+
const gridHeightComputed = computed$1(() => {
|
|
70788
|
+
if (showFetchButton.value) {
|
|
70789
|
+
return "80px";
|
|
70790
|
+
}
|
|
70791
|
+
return gridHeight.value || "100%";
|
|
70792
|
+
});
|
|
70793
|
+
const overlayNoRowsTemplate = computed$1(() => {
|
|
70794
|
+
if (showFetchButton.value) {
|
|
70795
|
+
return "<span></span>";
|
|
70796
|
+
}
|
|
70797
|
+
return void 0;
|
|
70798
|
+
});
|
|
69454
70799
|
const defaultColDef = {
|
|
69455
70800
|
editable: true,
|
|
69456
70801
|
filter: true,
|
|
@@ -69459,8 +70804,17 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69459
70804
|
};
|
|
69460
70805
|
const onGridReady = (params) => {
|
|
69461
70806
|
gridApi.value = params.api;
|
|
70807
|
+
if (showFetchButton.value) {
|
|
70808
|
+
gridApi.value.hideOverlay();
|
|
70809
|
+
}
|
|
69462
70810
|
};
|
|
69463
|
-
|
|
70811
|
+
function dismissOutdatedBanner() {
|
|
70812
|
+
showOutdatedDataBanner.value = false;
|
|
70813
|
+
}
|
|
70814
|
+
async function handleRefresh() {
|
|
70815
|
+
showOutdatedDataBanner.value = false;
|
|
70816
|
+
await handleFetchData();
|
|
70817
|
+
}
|
|
69464
70818
|
const calculateGridHeight = () => {
|
|
69465
70819
|
const otherElementsHeight = 300;
|
|
69466
70820
|
const availableHeight = window.innerHeight - otherElementsHeight;
|
|
@@ -69470,39 +70824,81 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69470
70824
|
async function downloadData(nodeId) {
|
|
69471
70825
|
try {
|
|
69472
70826
|
isLoading.value = true;
|
|
70827
|
+
showFetchButton.value = false;
|
|
70828
|
+
showOutdatedDataBanner.value = false;
|
|
70829
|
+
currentNodeId.value = nodeId;
|
|
69473
70830
|
let resp = await nodeStore.getTableExample(nodeStore.flow_id, nodeId);
|
|
69474
70831
|
if (resp) {
|
|
69475
70832
|
dataPreview.value = resp;
|
|
70833
|
+
showOutdatedDataBanner.value = !resp.has_run_with_current_setup && resp.has_example_data;
|
|
69476
70834
|
const _cd = [];
|
|
69477
70835
|
const _columns = dataPreview.value.table_schema;
|
|
69478
70836
|
if (props2.showFileStats) {
|
|
69479
70837
|
_columns == null ? void 0 : _columns.forEach((item) => {
|
|
69480
|
-
_cd.push({
|
|
70838
|
+
_cd.push({
|
|
70839
|
+
field: item.name,
|
|
70840
|
+
headerName: item.name,
|
|
70841
|
+
resizable: true
|
|
70842
|
+
});
|
|
69481
70843
|
schema_dict[item.name] = item;
|
|
69482
70844
|
});
|
|
69483
70845
|
} else {
|
|
69484
70846
|
_columns == null ? void 0 : _columns.forEach((item) => {
|
|
69485
|
-
_cd.push({
|
|
70847
|
+
_cd.push({
|
|
70848
|
+
field: item.name,
|
|
70849
|
+
headerName: item.name,
|
|
70850
|
+
resizable: true
|
|
70851
|
+
});
|
|
69486
70852
|
});
|
|
69487
70853
|
}
|
|
69488
70854
|
columnDefs.value = _cd;
|
|
69489
|
-
if (
|
|
69490
|
-
|
|
69491
|
-
|
|
69492
|
-
|
|
70855
|
+
if (resp.has_example_data === false) {
|
|
70856
|
+
showFetchButton.value = true;
|
|
70857
|
+
rowData.value = [];
|
|
70858
|
+
showTable.value = true;
|
|
70859
|
+
dataAvailable.value = false;
|
|
70860
|
+
} else {
|
|
70861
|
+
if (dataPreview.value) {
|
|
70862
|
+
rowData.value = dataPreview.value.data;
|
|
70863
|
+
dataLength.value = dataPreview.value.number_of_records;
|
|
70864
|
+
columnLength.value = dataPreview.value.number_of_columns;
|
|
70865
|
+
}
|
|
70866
|
+
showTable.value = true;
|
|
70867
|
+
dataAvailable.value = true;
|
|
70868
|
+
showFetchButton.value = false;
|
|
69493
70869
|
}
|
|
69494
|
-
showTable.value = true;
|
|
69495
|
-
dataAvailable.value = true;
|
|
69496
70870
|
}
|
|
69497
70871
|
} finally {
|
|
69498
70872
|
isLoading.value = false;
|
|
69499
70873
|
}
|
|
69500
70874
|
}
|
|
70875
|
+
async function handleFetchData() {
|
|
70876
|
+
if (currentNodeId.value !== null) {
|
|
70877
|
+
try {
|
|
70878
|
+
if (isPollingActive(`node_${currentNodeId.value}`)) {
|
|
70879
|
+
console.log("Fetch already in progress for this node");
|
|
70880
|
+
return;
|
|
70881
|
+
}
|
|
70882
|
+
await triggerNodeFetch(currentNodeId.value);
|
|
70883
|
+
const checkInterval = setInterval(async () => {
|
|
70884
|
+
if (!isPollingActive(`node_${currentNodeId.value}`)) {
|
|
70885
|
+
clearInterval(checkInterval);
|
|
70886
|
+
await downloadData(currentNodeId.value);
|
|
70887
|
+
}
|
|
70888
|
+
}, 1e3);
|
|
70889
|
+
setTimeout(() => clearInterval(checkInterval), 6e4);
|
|
70890
|
+
} catch (error) {
|
|
70891
|
+
console.error("Error fetching data:", error);
|
|
70892
|
+
}
|
|
70893
|
+
}
|
|
70894
|
+
}
|
|
69501
70895
|
function removeData() {
|
|
69502
70896
|
rowData.value = [];
|
|
69503
70897
|
showTable.value = false;
|
|
69504
70898
|
dataAvailable.value = false;
|
|
69505
70899
|
columnDefs.value = [{}];
|
|
70900
|
+
showFetchButton.value = false;
|
|
70901
|
+
currentNodeId.value = null;
|
|
69506
70902
|
}
|
|
69507
70903
|
ref(null);
|
|
69508
70904
|
onMounted(() => {
|
|
@@ -69518,13 +70914,41 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69518
70914
|
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$7, _cache[0] || (_cache[0] = [
|
|
69519
70915
|
createBaseVNode("div", { class: "spinner" }, null, -1)
|
|
69520
70916
|
]))) : createCommentVNode("", true),
|
|
69521
|
-
withDirectives(
|
|
69522
|
-
"
|
|
69523
|
-
|
|
69524
|
-
|
|
69525
|
-
|
|
69526
|
-
|
|
69527
|
-
|
|
70917
|
+
withDirectives(createBaseVNode("div", _hoisted_2$5, [
|
|
70918
|
+
showOutdatedDataBanner.value ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
|
|
70919
|
+
createBaseVNode("p", null, [
|
|
70920
|
+
_cache[1] || (_cache[1] = createTextVNode(" Displayed data might be outdated. ")),
|
|
70921
|
+
createBaseVNode("button", {
|
|
70922
|
+
class: "refresh-link-button",
|
|
70923
|
+
onClick: handleRefresh
|
|
70924
|
+
}, "Refresh now")
|
|
70925
|
+
]),
|
|
70926
|
+
createBaseVNode("button", {
|
|
70927
|
+
class: "dismiss-button",
|
|
70928
|
+
"aria-label": "Dismiss notification",
|
|
70929
|
+
onClick: dismissOutdatedBanner
|
|
70930
|
+
}, " × ")
|
|
70931
|
+
])) : createCommentVNode("", true),
|
|
70932
|
+
createVNode(unref(AgGridVue), {
|
|
70933
|
+
"default-col-def": defaultColDef,
|
|
70934
|
+
"column-defs": columnDefs.value,
|
|
70935
|
+
class: "ag-theme-balham",
|
|
70936
|
+
"row-data": rowData.value,
|
|
70937
|
+
style: normalizeStyle({ width: "100%", height: gridHeightComputed.value }),
|
|
70938
|
+
"overlay-no-rows-template": overlayNoRowsTemplate.value,
|
|
70939
|
+
onGridReady
|
|
70940
|
+
}, null, 8, ["column-defs", "row-data", "style", "overlay-no-rows-template"]),
|
|
70941
|
+
showFetchButton.value ? (openBlock(), createElementBlock("div", _hoisted_4$5, [
|
|
70942
|
+
_cache[2] || (_cache[2] = createBaseVNode("p", null, "Step has not stored any data yet. Click here to trigger a run for this node", -1)),
|
|
70943
|
+
createBaseVNode("button", {
|
|
70944
|
+
class: "fetch-data-button",
|
|
70945
|
+
disabled: unref(nodeStore).isRunning,
|
|
70946
|
+
onClick: handleFetchData
|
|
70947
|
+
}, [
|
|
70948
|
+
!unref(nodeStore).isRunning ? (openBlock(), createElementBlock("span", _hoisted_6$3, "Fetch Data")) : (openBlock(), createElementBlock("span", _hoisted_7$2, "Fetching..."))
|
|
70949
|
+
], 8, _hoisted_5$4)
|
|
70950
|
+
])) : createCommentVNode("", true)
|
|
70951
|
+
], 512), [
|
|
69528
70952
|
[vShow, !isLoading.value]
|
|
69529
70953
|
])
|
|
69530
70954
|
], 64);
|
|
@@ -71059,7 +72483,7 @@ const _hoisted_4$4 = { class: "node-title" };
|
|
|
71059
72483
|
const _hoisted_5$3 = { class: "node-description" };
|
|
71060
72484
|
const _hoisted_6$2 = { key: 1 };
|
|
71061
72485
|
const _hoisted_7$1 = { class: "node-details" };
|
|
71062
|
-
const _hoisted_8 = {
|
|
72486
|
+
const _hoisted_8$1 = {
|
|
71063
72487
|
key: 0,
|
|
71064
72488
|
class: "failure"
|
|
71065
72489
|
};
|
|
@@ -71186,7 +72610,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
71186
72610
|
})
|
|
71187
72611
|
}, toDisplayString(node.success === null ? "Running" : node.success ? "Success" : "Failure"), 3)
|
|
71188
72612
|
]),
|
|
71189
|
-
node.success === false ? (openBlock(), createElementBlock("p", _hoisted_8, "Error: " + toDisplayString(node.error), 1)) : createCommentVNode("", true)
|
|
72613
|
+
node.success === false ? (openBlock(), createElementBlock("p", _hoisted_8$1, "Error: " + toDisplayString(node.error), 1)) : createCommentVNode("", true)
|
|
71190
72614
|
])
|
|
71191
72615
|
]),
|
|
71192
72616
|
_: 2
|
|
@@ -71256,7 +72680,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71256
72680
|
connectionRetries.value = 0;
|
|
71257
72681
|
errorMessage.value = null;
|
|
71258
72682
|
connectionStatus.value = "disconnected";
|
|
71259
|
-
console.log("Starting log streaming");
|
|
71260
72683
|
try {
|
|
71261
72684
|
const token = await authService.getToken();
|
|
71262
72685
|
if (!token) {
|
|
@@ -71288,7 +72711,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71288
72711
|
if (!hasReceivedMessage && nodeStore.isRunning) {
|
|
71289
72712
|
if (connectionRetries.value < maxRetries) {
|
|
71290
72713
|
connectionRetries.value++;
|
|
71291
|
-
console.log(`Retrying log connection (${connectionRetries.value}/${maxRetries})...`);
|
|
71292
72714
|
errorMessage.value = `Connection failed. Retrying (${connectionRetries.value}/${maxRetries})...`;
|
|
71293
72715
|
connectionStatus.value = "error";
|
|
71294
72716
|
stopStreamingLogs();
|
|
@@ -71432,8 +72854,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71432
72854
|
};
|
|
71433
72855
|
}
|
|
71434
72856
|
});
|
|
71435
|
-
const
|
|
71436
|
-
const LogViewer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-
|
|
72857
|
+
const LogViewer_vue_vue_type_style_index_0_scoped_9b3bdb24_lang = "";
|
|
72858
|
+
const LogViewer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-9b3bdb24"]]);
|
|
71437
72859
|
const _hoisted_1$4 = { class: "context-menu-header" };
|
|
71438
72860
|
const _hoisted_2$2 = { class: "context-menu-items" };
|
|
71439
72861
|
const _hoisted_3$2 = ["onClick"];
|
|
@@ -71535,11 +72957,32 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
71535
72957
|
});
|
|
71536
72958
|
const ContextMenu_vue_vue_type_style_index_0_scoped_7db4e6fc_lang = "";
|
|
71537
72959
|
const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-7db4e6fc"]]);
|
|
72960
|
+
const handleApiError = (error) => {
|
|
72961
|
+
var _a, _b, _c;
|
|
72962
|
+
throw {
|
|
72963
|
+
message: ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "An unknown error occurred",
|
|
72964
|
+
status: ((_c = error.response) == null ? void 0 : _c.status) || 500
|
|
72965
|
+
};
|
|
72966
|
+
};
|
|
72967
|
+
const applyStandardLayout = async (flowId) => {
|
|
72968
|
+
const url = "/flow/apply_standard_layout/";
|
|
72969
|
+
try {
|
|
72970
|
+
const response = await axios.post(url, null, {
|
|
72971
|
+
params: {
|
|
72972
|
+
flow_id: flowId
|
|
72973
|
+
}
|
|
72974
|
+
});
|
|
72975
|
+
return response.data;
|
|
72976
|
+
} catch (error) {
|
|
72977
|
+
return handleApiError(error);
|
|
72978
|
+
}
|
|
72979
|
+
};
|
|
71538
72980
|
const _hoisted_1$3 = { class: "container" };
|
|
71539
72981
|
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
71540
72982
|
__name: "CanvasFlow",
|
|
71541
72983
|
emits: ["save", "run"],
|
|
71542
72984
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
72985
|
+
const itemStore = useItemStore();
|
|
71543
72986
|
const availableHeight = ref(0);
|
|
71544
72987
|
const nodeStore = useNodeStore();
|
|
71545
72988
|
const rawCustomNode = markRaw$1(CustomNode);
|
|
@@ -71563,14 +73006,23 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71563
73006
|
const contextMenuTarget = ref({ type: "pane", id: "" });
|
|
71564
73007
|
const emit = __emit;
|
|
71565
73008
|
const handleCanvasClick = (event) => {
|
|
71566
|
-
nodeStore.closeDrawer();
|
|
71567
73009
|
showTablePreview.value = false;
|
|
73010
|
+
nodeStore.node_id = -1;
|
|
73011
|
+
nodeStore.activeDrawerComponent = null;
|
|
71568
73012
|
nodeStore.hideLogViewer();
|
|
71569
73013
|
clickedPosition.value = {
|
|
71570
73014
|
x: event.x,
|
|
71571
73015
|
y: event.y
|
|
71572
73016
|
};
|
|
71573
73017
|
};
|
|
73018
|
+
const handleNodeSettingsClose = (event) => {
|
|
73019
|
+
nodeStore.node_id = -1;
|
|
73020
|
+
nodeStore.activeDrawerComponent = null;
|
|
73021
|
+
clickedPosition.value = {
|
|
73022
|
+
x: event.x,
|
|
73023
|
+
y: event.y
|
|
73024
|
+
};
|
|
73025
|
+
};
|
|
71574
73026
|
const toggleShowTablePreview = () => {
|
|
71575
73027
|
showTablePreview.value = !showTablePreview.value;
|
|
71576
73028
|
};
|
|
@@ -71589,7 +73041,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71589
73041
|
setNodeTableView(nodeId);
|
|
71590
73042
|
});
|
|
71591
73043
|
fitView({ nodes: [nodeId.toString()] });
|
|
71592
|
-
nodeStore.node_id = nodeId;
|
|
71593
73044
|
};
|
|
71594
73045
|
async function onConnect(params) {
|
|
71595
73046
|
if (params.target && params.source) {
|
|
@@ -71613,6 +73064,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71613
73064
|
const nodeClick = (mouseEvent) => {
|
|
71614
73065
|
showTablePreview.value = true;
|
|
71615
73066
|
nextTick().then(() => {
|
|
73067
|
+
nodeStore.node_id = parseInt(mouseEvent.node.id);
|
|
73068
|
+
itemStore.bringToFront("tablePreview");
|
|
73069
|
+
itemStore.bringToFront("nodeSettings");
|
|
71616
73070
|
if (mouseEvent.node.id && !NodeIsSelected(mouseEvent.node.id) || dataPreview.value && dataPreview.value.dataLength == 0 && dataPreview.value.columnLength == 0) {
|
|
71617
73071
|
setNodeTableView(mouseEvent.node.id);
|
|
71618
73072
|
}
|
|
@@ -71620,7 +73074,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71620
73074
|
});
|
|
71621
73075
|
};
|
|
71622
73076
|
const setNodeTableView = (nodeId) => {
|
|
71623
|
-
console.log(dataPreview.value);
|
|
71624
73077
|
if (dataPreview.value) {
|
|
71625
73078
|
dataPreview.value.downloadData(nodeId);
|
|
71626
73079
|
}
|
|
@@ -71651,13 +73104,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71651
73104
|
console.log("Edge changes length is 2 so coming from a node change event");
|
|
71652
73105
|
return;
|
|
71653
73106
|
}
|
|
71654
|
-
console.log("Edge changes", edgeChanges);
|
|
71655
73107
|
for (const edgeChange of edgeChanges) {
|
|
71656
|
-
if (edgeChange.type === "
|
|
71657
|
-
console.log("This edge change does not work");
|
|
71658
|
-
} else if (edgeChange.type === "remove") {
|
|
73108
|
+
if (edgeChange.type === "remove") {
|
|
71659
73109
|
const nodeConnection = convertEdgeChangeToNodeConnection(edgeChange);
|
|
71660
|
-
console.log("Removing connection", nodeConnection);
|
|
71661
73110
|
deleteConnection(nodeStore.flow_id, nodeConnection);
|
|
71662
73111
|
}
|
|
71663
73112
|
}
|
|
@@ -71696,6 +73145,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71696
73145
|
copyValue(position.x, position.y);
|
|
71697
73146
|
}
|
|
71698
73147
|
};
|
|
73148
|
+
const handleResetLayoutGraph = async () => {
|
|
73149
|
+
await applyStandardLayout(nodeStore.flow_id);
|
|
73150
|
+
loadFlow();
|
|
73151
|
+
};
|
|
73152
|
+
const hideLogViewer = () => {
|
|
73153
|
+
nodeStore.hideLogViewerForThisRun = true;
|
|
73154
|
+
nodeStore.hideLogViewer();
|
|
73155
|
+
};
|
|
71699
73156
|
const handleKeyDown = (event) => {
|
|
71700
73157
|
let eventKeyClicked = event.ctrlKey || event.metaKey;
|
|
71701
73158
|
if (eventKeyClicked && event.key === "v" && event.target) {
|
|
@@ -71778,7 +73235,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71778
73235
|
onClick: closeContextMenu
|
|
71779
73236
|
}, {
|
|
71780
73237
|
default: withCtx(() => [
|
|
71781
|
-
createVNode(unref(_sfc_main$
|
|
73238
|
+
createVNode(unref(_sfc_main$i))
|
|
71782
73239
|
]),
|
|
71783
73240
|
_: 1
|
|
71784
73241
|
}, 8, ["nodes", "edges", "connection-mode"]),
|
|
@@ -71798,7 +73255,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71798
73255
|
"initial-width": 200,
|
|
71799
73256
|
"initial-position": "left",
|
|
71800
73257
|
title: "Data actions",
|
|
71801
|
-
"allow-free-move": true
|
|
73258
|
+
"allow-free-move": true,
|
|
73259
|
+
"prevent-overlap": false
|
|
71802
73260
|
}, {
|
|
71803
73261
|
default: withCtx(() => [
|
|
71804
73262
|
createVNode(NodeList, { onDragstart: unref(onDragStart) }, null, 8, ["onDragstart"])
|
|
@@ -71812,13 +73270,17 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71812
73270
|
title: "Log overview",
|
|
71813
73271
|
"allow-full-screen": true,
|
|
71814
73272
|
"initial-position": "bottom",
|
|
71815
|
-
"
|
|
73273
|
+
"initial-left": 200,
|
|
73274
|
+
"on-minize": hideLogViewer,
|
|
73275
|
+
group: "bottomPanels",
|
|
73276
|
+
"sync-dimensions": true,
|
|
73277
|
+
"prevent-overlap": false
|
|
71816
73278
|
}, {
|
|
71817
73279
|
default: withCtx(() => [
|
|
71818
|
-
createVNode(LogViewer
|
|
73280
|
+
createVNode(LogViewer)
|
|
71819
73281
|
]),
|
|
71820
73282
|
_: 1
|
|
71821
|
-
}
|
|
73283
|
+
})) : createCommentVNode("", true),
|
|
71822
73284
|
unref(nodeStore).showFlowResult ? (openBlock(), createBlock(DraggableItem, {
|
|
71823
73285
|
key: 1,
|
|
71824
73286
|
id: "flowresults",
|
|
@@ -71826,7 +73288,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71826
73288
|
title: "flow results",
|
|
71827
73289
|
"initial-position": "right",
|
|
71828
73290
|
"initial-width": 400,
|
|
71829
|
-
"
|
|
73291
|
+
group: "rightPanels",
|
|
73292
|
+
"prevent-overlap": false
|
|
71830
73293
|
}, {
|
|
71831
73294
|
default: withCtx(() => [
|
|
71832
73295
|
createVNode(FlowResults, { "on-click": selectNodeExternally })
|
|
@@ -71841,7 +73304,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71841
73304
|
title: "Table Preview",
|
|
71842
73305
|
"initial-position": "bottom",
|
|
71843
73306
|
"on-minize": toggleShowTablePreview,
|
|
71844
|
-
"initial-height": tablePreviewHeight.value
|
|
73307
|
+
"initial-height": tablePreviewHeight.value,
|
|
73308
|
+
"initial-left": 200,
|
|
73309
|
+
group: "bottomPanels",
|
|
73310
|
+
"sync-dimensions": true,
|
|
73311
|
+
"prevent-overlap": false
|
|
71845
73312
|
}, {
|
|
71846
73313
|
default: withCtx(() => [
|
|
71847
73314
|
createVNode(_sfc_main$8, {
|
|
@@ -71862,22 +73329,18 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71862
73329
|
id: "nodeSettings",
|
|
71863
73330
|
"show-right": true,
|
|
71864
73331
|
"initial-position": "right",
|
|
71865
|
-
"initial-top": 0,
|
|
71866
73332
|
"initial-width": 800,
|
|
71867
73333
|
"initial-height": nodeSettingsHeight.value,
|
|
71868
73334
|
title: "Node Settings",
|
|
71869
|
-
"on-minize":
|
|
71870
|
-
"allow-full-screen": true
|
|
73335
|
+
"on-minize": handleNodeSettingsClose,
|
|
73336
|
+
"allow-full-screen": true,
|
|
73337
|
+
"prevent-overlap": false
|
|
71871
73338
|
}, {
|
|
71872
|
-
default: withCtx(() =>
|
|
71873
|
-
|
|
71874
|
-
|
|
71875
|
-
|
|
71876
|
-
|
|
71877
|
-
])),
|
|
71878
|
-
_: 1,
|
|
71879
|
-
__: [2]
|
|
71880
|
-
}, 8, ["initial-height", "on-minize"])) : createCommentVNode("", true),
|
|
73339
|
+
default: withCtx(() => [
|
|
73340
|
+
createVNode(_sfc_main$b)
|
|
73341
|
+
]),
|
|
73342
|
+
_: 1
|
|
73343
|
+
}, 8, ["initial-height"])) : createCommentVNode("", true),
|
|
71881
73344
|
unref(nodeStore).showCodeGenerator ? (openBlock(), createBlock(DraggableItem, {
|
|
71882
73345
|
key: 4,
|
|
71883
73346
|
id: "generatedCode",
|
|
@@ -71886,13 +73349,15 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71886
73349
|
"initial-position": "right",
|
|
71887
73350
|
"allow-free-move": true,
|
|
71888
73351
|
"allow-full-screen": true,
|
|
71889
|
-
"on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false)
|
|
73352
|
+
"on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false),
|
|
73353
|
+
"prevent-overlap": false
|
|
71890
73354
|
}, {
|
|
71891
73355
|
default: withCtx(() => [
|
|
71892
73356
|
createVNode(CodeGenerator)
|
|
71893
73357
|
]),
|
|
71894
73358
|
_: 1
|
|
71895
|
-
}, 8, ["on-minize"])) : createCommentVNode("", true)
|
|
73359
|
+
}, 8, ["on-minize"])) : createCommentVNode("", true),
|
|
73360
|
+
createVNode(layoutControls, { onResetLayoutGraph: handleResetLayoutGraph })
|
|
71896
73361
|
]);
|
|
71897
73362
|
};
|
|
71898
73363
|
}
|
|
@@ -72261,18 +73726,20 @@ const _hoisted_1 = {
|
|
|
72261
73726
|
key: 0,
|
|
72262
73727
|
class: "header"
|
|
72263
73728
|
};
|
|
72264
|
-
const _hoisted_2 = { class: "
|
|
72265
|
-
const _hoisted_3 = { class: "
|
|
72266
|
-
const _hoisted_4 = { class: "
|
|
72267
|
-
const _hoisted_5 = {
|
|
73729
|
+
const _hoisted_2 = { class: "header-top" };
|
|
73730
|
+
const _hoisted_3 = { class: "left-section" };
|
|
73731
|
+
const _hoisted_4 = { class: "header-bottom" };
|
|
73732
|
+
const _hoisted_5 = { class: "middle-section" };
|
|
73733
|
+
const _hoisted_6 = { class: "right-section" };
|
|
73734
|
+
const _hoisted_7 = {
|
|
72268
73735
|
key: 1,
|
|
72269
73736
|
class: "loading-state"
|
|
72270
73737
|
};
|
|
72271
|
-
const
|
|
73738
|
+
const _hoisted_8 = {
|
|
72272
73739
|
key: 2,
|
|
72273
73740
|
class: "empty-state"
|
|
72274
73741
|
};
|
|
72275
|
-
const
|
|
73742
|
+
const _hoisted_9 = { class: "empty-state-content" };
|
|
72276
73743
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
72277
73744
|
__name: "designer",
|
|
72278
73745
|
setup(__props) {
|
|
@@ -72386,6 +73853,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72386
73853
|
headerButtons.value.openOpenDialog();
|
|
72387
73854
|
}
|
|
72388
73855
|
};
|
|
73856
|
+
const openQuickCreateDialog = () => {
|
|
73857
|
+
if (headerButtons.value) {
|
|
73858
|
+
console.log("Opening quick create dialog");
|
|
73859
|
+
headerButtons.value.handleQuickCreateAction();
|
|
73860
|
+
}
|
|
73861
|
+
};
|
|
72389
73862
|
const initialSetup = async () => {
|
|
72390
73863
|
if (initialLoadComplete.value) {
|
|
72391
73864
|
console.log("Initial setup already completed");
|
|
@@ -72431,34 +73904,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72431
73904
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
72432
73905
|
!isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
72433
73906
|
createBaseVNode("div", _hoisted_2, [
|
|
72434
|
-
|
|
72435
|
-
|
|
72436
|
-
|
|
72437
|
-
|
|
72438
|
-
|
|
72439
|
-
|
|
72440
|
-
|
|
72441
|
-
|
|
72442
|
-
createVNode(FlowSelector, {
|
|
72443
|
-
ref_key: "flowSelector",
|
|
72444
|
-
ref: flowSelector,
|
|
72445
|
-
onFlowChanged: handleFlowChange,
|
|
72446
|
-
onCloseTab: handleCloseFlow
|
|
72447
|
-
}, null, 512)
|
|
73907
|
+
createBaseVNode("div", _hoisted_3, [
|
|
73908
|
+
createVNode(HeaderButtons, {
|
|
73909
|
+
ref_key: "headerButtons",
|
|
73910
|
+
ref: headerButtons,
|
|
73911
|
+
onOpenFlow: openFlow,
|
|
73912
|
+
onRefreshFlow: refreshFlow
|
|
73913
|
+
}, null, 512)
|
|
73914
|
+
])
|
|
72448
73915
|
]),
|
|
72449
73916
|
createBaseVNode("div", _hoisted_4, [
|
|
72450
|
-
|
|
73917
|
+
createBaseVNode("div", _hoisted_5, [
|
|
73918
|
+
createVNode(FlowSelector, {
|
|
73919
|
+
ref_key: "flowSelector",
|
|
73920
|
+
ref: flowSelector,
|
|
73921
|
+
onFlowChanged: handleFlowChange,
|
|
73922
|
+
onCloseTab: handleCloseFlow
|
|
73923
|
+
}, null, 512)
|
|
73924
|
+
]),
|
|
73925
|
+
createBaseVNode("div", _hoisted_6, [
|
|
73926
|
+
createVNode(Status)
|
|
73927
|
+
])
|
|
72451
73928
|
])
|
|
72452
73929
|
])) : createCommentVNode("", true),
|
|
72453
|
-
isLoading.value ? (openBlock(), createElementBlock("div",
|
|
73930
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_7, _cache[2] || (_cache[2] = [
|
|
72454
73931
|
createBaseVNode("div", { class: "loading-state-content" }, [
|
|
72455
73932
|
createBaseVNode("p", null, "Loading flows...")
|
|
72456
73933
|
], -1)
|
|
72457
|
-
]))) : !isLoading.value && flowsActive.value.length === 0 ? (openBlock(), createElementBlock("div",
|
|
72458
|
-
createBaseVNode("div",
|
|
72459
|
-
_cache[
|
|
72460
|
-
_cache[
|
|
72461
|
-
_cache[
|
|
73934
|
+
]))) : !isLoading.value && flowsActive.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
73935
|
+
createBaseVNode("div", _hoisted_9, [
|
|
73936
|
+
_cache[6] || (_cache[6] = createBaseVNode("span", { class: "material-icons empty-icon" }, "account_tree", -1)),
|
|
73937
|
+
_cache[7] || (_cache[7] = createBaseVNode("h2", null, "No Active Flows", -1)),
|
|
73938
|
+
_cache[8] || (_cache[8] = createBaseVNode("p", null, "There are currently no active flows in the system.", -1)),
|
|
72462
73939
|
createVNode(_component_el_button, {
|
|
72463
73940
|
type: "primary",
|
|
72464
73941
|
class: "action-button",
|
|
@@ -72482,6 +73959,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72482
73959
|
])),
|
|
72483
73960
|
_: 1,
|
|
72484
73961
|
__: [4]
|
|
73962
|
+
}),
|
|
73963
|
+
createVNode(_component_el_button, {
|
|
73964
|
+
type: "primary",
|
|
73965
|
+
class: "action-button",
|
|
73966
|
+
onClick: openQuickCreateDialog
|
|
73967
|
+
}, {
|
|
73968
|
+
default: withCtx(() => _cache[5] || (_cache[5] = [
|
|
73969
|
+
createBaseVNode("span", { class: "material-icons" }, "folder_open", -1),
|
|
73970
|
+
createTextVNode(" Quick create ")
|
|
73971
|
+
])),
|
|
73972
|
+
_: 1,
|
|
73973
|
+
__: [5]
|
|
72485
73974
|
})
|
|
72486
73975
|
])
|
|
72487
73976
|
])) : (openBlock(), createBlock(_sfc_main$4, {
|
|
@@ -72502,8 +73991,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72502
73991
|
};
|
|
72503
73992
|
}
|
|
72504
73993
|
});
|
|
72505
|
-
const
|
|
72506
|
-
const designer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
73994
|
+
const designer_vue_vue_type_style_index_0_scoped_24dbaac4_lang = "";
|
|
73995
|
+
const designer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-24dbaac4"]]);
|
|
72507
73996
|
const designer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
72508
73997
|
__proto__: null,
|
|
72509
73998
|
default: designer
|
|
@@ -72511,7 +74000,6 @@ const designer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
|
|
|
72511
74000
|
export {
|
|
72512
74001
|
FileBrowser as F,
|
|
72513
74002
|
designer$1 as d,
|
|
72514
|
-
getImageUrl as g,
|
|
72515
74003
|
info_filled_default as i,
|
|
72516
74004
|
oneDark as o,
|
|
72517
74005
|
python as p,
|