Flowfile 0.3.8__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 +4 -3
- flowfile/api.py +1 -1
- flowfile/web/static/assets/{CloudConnectionManager-c20a740f.js → CloudConnectionManager-d7c2c028.js} +2 -2
- flowfile/web/static/assets/{CloudStorageReader-960b400a.js → CloudStorageReader-d467329f.js} +11 -78
- flowfile/web/static/assets/{CloudStorageWriter-e3decbdd.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-d67e2405.js → CrossJoin-cf68ec7a.js} +14 -84
- flowfile/web/static/assets/{DatabaseConnectionSettings-a81e0f7e.js → DatabaseConnectionSettings-435c5dd8.js} +3 -3
- flowfile/web/static/assets/{DatabaseManager-9ea35e84.js → DatabaseManager-349e33a8.js} +2 -2
- flowfile/web/static/assets/{DatabaseReader-9578bfa5.js → DatabaseReader-8075bd28.js} +14 -114
- flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
- flowfile/web/static/assets/{DatabaseWriter-19531098.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-2297ef96.js → ExternalSource-609a265c.js} +8 -79
- flowfile/web/static/assets/{Filter-f211c03a.js → Filter-97cff793.js} +12 -85
- flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
- flowfile/web/static/assets/{Formula-4207ea31.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-bf120df0.js → FuzzyMatch-bdf70248.js} +16 -87
- flowfile/web/static/assets/{GraphSolver-5bb7497a.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-92c81b65.js → GroupBy-eaddadde.js} +12 -75
- flowfile/web/static/assets/{Join-4e49a274.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-90998ae8.js → ManualInput-e8bfc0be.js} +11 -82
- flowfile/web/static/assets/{Output-81e3e917.js → Output-7303bb09.js} +13 -243
- flowfile/web/static/assets/Output-ddc9079f.css +37 -0
- flowfile/web/static/assets/{Pivot-a3419842.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-72710deb.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-10baf191.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-3ed9a0ae.js → Sample-f06cb97a.js} +8 -77
- flowfile/web/static/assets/{SecretManager-0d49c0e8.js → SecretManager-37f34886.js} +2 -2
- flowfile/web/static/assets/{Select-8a02a0b3.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-4c0f45f5.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-f55c9f9d.js → Sort-51b1ee4d.js} +12 -97
- flowfile/web/static/assets/{TextToRows-5dbc2145.js → TextToRows-26835f8f.js} +14 -83
- flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
- flowfile/web/static/assets/{UnavailableFields-a1768e52.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-46b250da.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-25ac84cc.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-40476474.js → VueGraphicWalker-5324d566.js} +4 -264
- flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
- flowfile/web/static/assets/{api-6ef0dcef.js → api-271ed117.js} +1 -1
- flowfile/web/static/assets/{api-a0abbdc7.js → api-31e4fea6.js} +1 -1
- flowfile/web/static/assets/{designer-186f2e71.css → designer-091bdc3f.css} +819 -184
- flowfile/web/static/assets/{designer-13eabd83.js → designer-bf3d9487.js} +2214 -680
- flowfile/web/static/assets/{documentation-b87e7f6f.js → documentation-4d0a1cea.js} +1 -1
- flowfile/web/static/assets/{dropDown-13564764.js → dropDown-025888df.js} +1 -1
- flowfile/web/static/assets/{fullEditor-fd2cd6f9.js → fullEditor-1df991ec.js} +2 -2
- flowfile/web/static/assets/{genericNodeSettings-71e11604.js → genericNodeSettings-d3b2b2ac.js} +3 -3
- flowfile/web/static/assets/{index-f6c15e76.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-dd636aa2.js → secretApi-ce823eee.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-af36165e.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-2847001e.js → vue-codemirror.esm-9ed00d50.js} +29 -33
- flowfile/web/static/assets/{vue-content-loader.es-0371da73.js → vue-content-loader.es-7bca2d9b.js} +1 -1
- flowfile/web/static/index.html +1 -1
- {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/METADATA +2 -1
- {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/RECORD +147 -117
- flowfile_core/configs/flow_logger.py +5 -13
- flowfile_core/configs/node_store/nodes.py +303 -44
- flowfile_core/configs/settings.py +6 -3
- flowfile_core/database/connection.py +5 -21
- flowfile_core/fileExplorer/funcs.py +239 -121
- flowfile_core/flowfile/code_generator/code_generator.py +36 -0
- flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +60 -80
- flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +61 -0
- flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +44 -3
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +3 -3
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +33 -10
- flowfile_core/flowfile/flow_graph.py +223 -118
- flowfile_core/flowfile/flow_node/flow_node.py +56 -19
- flowfile_core/flowfile/flow_node/models.py +0 -2
- flowfile_core/flowfile/flow_node/schema_callback.py +138 -43
- flowfile_core/flowfile/graph_tree/graph_tree.py +250 -0
- flowfile_core/flowfile/graph_tree/models.py +15 -0
- flowfile_core/flowfile/handler.py +22 -3
- flowfile_core/flowfile/manage/compatibility_enhancements.py +1 -1
- flowfile_core/flowfile/{flow_data_engine/fuzzy_matching/settings_validator.py → schema_callbacks.py} +72 -16
- flowfile_core/flowfile/setting_generator/settings.py +2 -2
- flowfile_core/flowfile/util/execution_orderer.py +9 -0
- flowfile_core/flowfile/util/node_skipper.py +8 -0
- 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 +48 -3
- flowfile_core/schemas/transform_schema.py +28 -38
- flowfile_frame/__init__.py +1 -4
- flowfile_frame/flow_frame.py +33 -4
- flowfile_frame/flow_frame.pyi +2 -0
- flowfile_worker/__init__.py +6 -35
- flowfile_worker/funcs.py +7 -3
- flowfile_worker/main.py +5 -2
- flowfile_worker/models.py +3 -1
- 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-c4059daf.js +0 -701
- flowfile/web/static/assets/RecordCount-c2b5e095.js +0 -122
- flowfile/web/static/assets/Union-f2aefdc9.js +0 -146
- flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
- flowfile/web/static/assets/nodeTitle-988d9efe.js +0 -227
- flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
- flowfile_worker/polars_fuzzy_match/matcher.py +0 -435
- flowfile_worker/polars_fuzzy_match/models.py +0 -36
- flowfile_worker/polars_fuzzy_match/pre_process.py +0 -213
- flowfile_worker/polars_fuzzy_match/process.py +0 -86
- flowfile_worker/polars_fuzzy_match/utils.py +0 -50
- {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/LICENSE +0 -0
- {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/WHEEL +0 -0
- {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/entry_points.txt +0 -0
- {flowfile_worker/polars_fuzzy_match → flowfile_core/flowfile/graph_tree}/__init__.py +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,114 +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) => {
|
|
111
|
-
ElNotification({
|
|
112
|
-
title,
|
|
113
|
-
message,
|
|
114
|
-
type,
|
|
115
|
-
position: "top-left"
|
|
116
|
-
});
|
|
117
|
-
};
|
|
118
|
-
const startPolling = (checkFn) => {
|
|
119
|
-
if (pollingInterval.value === null && props2.pollingConfig.enabled) {
|
|
120
|
-
pollingInterval.value = setInterval(checkFn, props2.pollingConfig.interval);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
const stopPolling = () => {
|
|
124
|
-
if (pollingInterval.value !== null) {
|
|
125
|
-
clearInterval(pollingInterval.value);
|
|
126
|
-
pollingInterval.value = null;
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
const createNotificationConfig = (runInfo) => ({
|
|
130
|
-
title: runInfo.success ? "Success" : "Error",
|
|
131
|
-
message: runInfo.success ? "The flow has completed" : "There were issues with the flow run, check the logging for more information",
|
|
132
|
-
type: runInfo.success ? "success" : "error"
|
|
133
|
-
});
|
|
134
|
-
const checkRunStatus = async () => {
|
|
135
|
-
try {
|
|
136
|
-
const response = await updateRunStatus(props2.flowId, nodeStore);
|
|
137
|
-
if (response.status === 200) {
|
|
138
|
-
stopPolling();
|
|
139
|
-
unFreezeFlow();
|
|
140
|
-
nodeStore.isRunning = false;
|
|
141
|
-
const notificationConfig = createNotificationConfig(response.data);
|
|
142
|
-
showNotification(
|
|
143
|
-
notificationConfig.title,
|
|
144
|
-
notificationConfig.message,
|
|
145
|
-
notificationConfig.type
|
|
146
|
-
);
|
|
147
|
-
} else if (response.status === 404) {
|
|
148
|
-
stopPolling();
|
|
149
|
-
unFreezeFlow();
|
|
150
|
-
nodeStore.isRunning = false;
|
|
151
|
-
nodeStore.runResults = {};
|
|
152
|
-
}
|
|
153
|
-
} catch (error) {
|
|
154
|
-
console.error("Error checking run status:", error);
|
|
155
|
-
stopPolling();
|
|
156
|
-
unFreezeFlow();
|
|
157
|
-
nodeStore.isRunning = false;
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
const runFlow = async () => {
|
|
161
|
-
freezeFlow();
|
|
162
|
-
nodeStore.resetNodeResult();
|
|
163
|
-
showNotification("Run started", "The flow started flowing");
|
|
164
|
-
try {
|
|
165
|
-
await axios.post("/flow/run/", null, {
|
|
166
|
-
params: { flow_id: props2.flowId },
|
|
167
|
-
headers: { accept: "application/json" }
|
|
168
|
-
});
|
|
169
|
-
nodeStore.isRunning = true;
|
|
170
|
-
nodeStore.showLogViewer();
|
|
171
|
-
startPolling(checkRunStatus);
|
|
172
|
-
} catch (error) {
|
|
173
|
-
console.error("Error starting run:", error);
|
|
174
|
-
unFreezeFlow();
|
|
175
|
-
nodeStore.isRunning = false;
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
const cancelFlow = async () => {
|
|
179
|
-
try {
|
|
180
|
-
await axios.post("/flow/cancel/", null, {
|
|
181
|
-
params: { flow_id: props2.flowId },
|
|
182
|
-
headers: { accept: "application/json" }
|
|
183
|
-
});
|
|
184
|
-
showNotification("Cancelling", "The flow is being cancelled");
|
|
185
|
-
unFreezeFlow();
|
|
186
|
-
nodeStore.isRunning = false;
|
|
187
|
-
stopPolling();
|
|
188
|
-
} catch (error) {
|
|
189
|
-
console.error("Error cancelling run:", error);
|
|
190
|
-
showNotification("Error", "Failed to cancel the flow", "error");
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
onUnmounted(() => {
|
|
194
|
-
stopPolling();
|
|
390
|
+
const { runFlow, cancelFlow, showNotification, startPolling, stopPolling, checkRunStatus } = useFlowExecution(props2.flowId, props2.pollingConfig, {
|
|
391
|
+
persistPolling: props2.persistPolling,
|
|
392
|
+
pollingKey: `run_button_${props2.flowId}`
|
|
195
393
|
});
|
|
196
394
|
__expose({
|
|
197
395
|
startPolling,
|
|
@@ -203,12 +401,12 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
203
401
|
});
|
|
204
402
|
return (_ctx, _cache) => {
|
|
205
403
|
const _component_el_button = resolveComponent("el-button");
|
|
206
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
404
|
+
return openBlock(), createElementBlock("div", _hoisted_1$k, [
|
|
207
405
|
createVNode(_component_el_button, {
|
|
208
406
|
size: "small",
|
|
209
407
|
disabled: unref(nodeStore).isRunning,
|
|
210
408
|
round: "",
|
|
211
|
-
onClick: _cache[0] || (_cache[0] = ($event) => runFlow())
|
|
409
|
+
onClick: _cache[0] || (_cache[0] = ($event) => unref(runFlow)())
|
|
212
410
|
}, {
|
|
213
411
|
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
214
412
|
createTextVNode(" Run ")
|
|
@@ -220,7 +418,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
220
418
|
key: 0,
|
|
221
419
|
size: "small",
|
|
222
420
|
round: "",
|
|
223
|
-
onClick: _cache[1] || (_cache[1] = ($event) => cancelFlow())
|
|
421
|
+
onClick: _cache[1] || (_cache[1] = ($event) => unref(cancelFlow)())
|
|
224
422
|
}, {
|
|
225
423
|
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
226
424
|
createTextVNode(" Cancel ")
|
|
@@ -232,8 +430,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
232
430
|
};
|
|
233
431
|
}
|
|
234
432
|
});
|
|
235
|
-
const
|
|
236
|
-
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"]]);
|
|
237
435
|
const _imports_0 = "/images/sheets.png";
|
|
238
436
|
const useFileBrowserStore = defineStore("fileBrowser", {
|
|
239
437
|
state: () => ({
|
|
@@ -256,7 +454,7 @@ const useFileBrowserStore = defineStore("fileBrowser", {
|
|
|
256
454
|
}
|
|
257
455
|
}
|
|
258
456
|
});
|
|
259
|
-
const handleApiError = (error) => {
|
|
457
|
+
const handleApiError$1 = (error) => {
|
|
260
458
|
var _a, _b, _c;
|
|
261
459
|
throw {
|
|
262
460
|
message: ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "An unknown error occurred",
|
|
@@ -268,7 +466,7 @@ const getCurrentDirectoryContents = async (params) => {
|
|
|
268
466
|
const response = await axios.get("files/current_directory_contents/", { params });
|
|
269
467
|
return response.data;
|
|
270
468
|
} catch (error) {
|
|
271
|
-
return handleApiError(error);
|
|
469
|
+
return handleApiError$1(error);
|
|
272
470
|
}
|
|
273
471
|
};
|
|
274
472
|
const navigateUp = async () => {
|
|
@@ -276,7 +474,7 @@ const navigateUp = async () => {
|
|
|
276
474
|
const response = await axios.post("files/navigate_up/");
|
|
277
475
|
return response.data;
|
|
278
476
|
} catch (error) {
|
|
279
|
-
return handleApiError(error);
|
|
477
|
+
return handleApiError$1(error);
|
|
280
478
|
}
|
|
281
479
|
};
|
|
282
480
|
const navigateInto = async (directoryName) => {
|
|
@@ -286,7 +484,7 @@ const navigateInto = async (directoryName) => {
|
|
|
286
484
|
});
|
|
287
485
|
return response.data;
|
|
288
486
|
} catch (error) {
|
|
289
|
-
return handleApiError(error);
|
|
487
|
+
return handleApiError$1(error);
|
|
290
488
|
}
|
|
291
489
|
};
|
|
292
490
|
const navigateTo = async (directoryPath) => {
|
|
@@ -296,7 +494,7 @@ const navigateTo = async (directoryPath) => {
|
|
|
296
494
|
});
|
|
297
495
|
return response.data;
|
|
298
496
|
} catch (error) {
|
|
299
|
-
return handleApiError(error);
|
|
497
|
+
return handleApiError$1(error);
|
|
300
498
|
}
|
|
301
499
|
};
|
|
302
500
|
const getCurrentPath = async () => {
|
|
@@ -304,7 +502,7 @@ const getCurrentPath = async () => {
|
|
|
304
502
|
const response = await axios.get("files/current_path/");
|
|
305
503
|
return response.data;
|
|
306
504
|
} catch (error) {
|
|
307
|
-
return handleApiError(error);
|
|
505
|
+
return handleApiError$1(error);
|
|
308
506
|
}
|
|
309
507
|
};
|
|
310
508
|
function assertPath(path2) {
|
|
@@ -730,16 +928,16 @@ var posix = {
|
|
|
730
928
|
posix.posix = posix;
|
|
731
929
|
var pathBrowserify = posix;
|
|
732
930
|
const path = /* @__PURE__ */ getDefaultExportFromCjs(pathBrowserify);
|
|
733
|
-
const _hoisted_1$
|
|
734
|
-
const _hoisted_2$
|
|
735
|
-
const _hoisted_3$
|
|
736
|
-
const _hoisted_4$
|
|
737
|
-
const _hoisted_5$
|
|
738
|
-
const _hoisted_6$
|
|
739
|
-
const _hoisted_7$
|
|
740
|
-
const _hoisted_8$
|
|
741
|
-
const _hoisted_9 = { class: "sort-controls" };
|
|
742
|
-
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" };
|
|
743
941
|
const _hoisted_11 = { class: "show-hidden-toggle" };
|
|
744
942
|
const _hoisted_12 = { class: "browser-main" };
|
|
745
943
|
const _hoisted_13 = {
|
|
@@ -769,7 +967,7 @@ const _hoisted_20 = { class: "file-details" };
|
|
|
769
967
|
const _hoisted_21 = { class: "file-info" };
|
|
770
968
|
const _hoisted_22 = { class: "browser-actions" };
|
|
771
969
|
const _hoisted_23 = { class: "dialog-footer" };
|
|
772
|
-
const _sfc_main$
|
|
970
|
+
const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
773
971
|
__name: "fileBrowser",
|
|
774
972
|
props: {
|
|
775
973
|
allowedFileTypes: { default: () => [] },
|
|
@@ -1050,16 +1248,16 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1050
1248
|
const _component_el_form_item = resolveComponent("el-form-item");
|
|
1051
1249
|
const _component_el_form = resolveComponent("el-form");
|
|
1052
1250
|
const _component_el_dialog = resolveComponent("el-dialog");
|
|
1053
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1054
|
-
_cache[
|
|
1251
|
+
return openBlock(), createElementBlock("div", _hoisted_1$j, [
|
|
1252
|
+
_cache[16] || (_cache[16] = createBaseVNode("div", { class: "browser-header" }, [
|
|
1055
1253
|
createBaseVNode("div", { class: "browser-title" }, [
|
|
1056
1254
|
createBaseVNode("span", { class: "material-icons" }, "folder"),
|
|
1057
1255
|
createBaseVNode("span", null, "File Browser")
|
|
1058
1256
|
])
|
|
1059
1257
|
], -1)),
|
|
1060
|
-
createBaseVNode("div", _hoisted_2$
|
|
1061
|
-
createBaseVNode("div", _hoisted_3$
|
|
1062
|
-
createBaseVNode("div", _hoisted_4$
|
|
1258
|
+
createBaseVNode("div", _hoisted_2$h, [
|
|
1259
|
+
createBaseVNode("div", _hoisted_3$g, [
|
|
1260
|
+
createBaseVNode("div", _hoisted_4$b, [
|
|
1063
1261
|
createBaseVNode("button", {
|
|
1064
1262
|
class: "nav-button",
|
|
1065
1263
|
disabled: loading.value,
|
|
@@ -1067,11 +1265,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1067
1265
|
}, _cache[7] || (_cache[7] = [
|
|
1068
1266
|
createBaseVNode("span", { class: "material-icons" }, "arrow_upward", -1),
|
|
1069
1267
|
createBaseVNode("span", null, "Up", -1)
|
|
1070
|
-
]), 8, _hoisted_5$
|
|
1071
|
-
createBaseVNode("div", _hoisted_6$
|
|
1268
|
+
]), 8, _hoisted_5$8),
|
|
1269
|
+
createBaseVNode("div", _hoisted_6$7, toDisplayString(currentPath.value), 1)
|
|
1072
1270
|
]),
|
|
1073
|
-
createBaseVNode("div", _hoisted_7$
|
|
1074
|
-
createBaseVNode("div", _hoisted_8$
|
|
1271
|
+
createBaseVNode("div", _hoisted_7$5, [
|
|
1272
|
+
createBaseVNode("div", _hoisted_8$3, [
|
|
1075
1273
|
createVNode(_component_el_input, {
|
|
1076
1274
|
modelValue: searchTerm.value,
|
|
1077
1275
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchTerm.value = $event),
|
|
@@ -1084,7 +1282,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1084
1282
|
_: 1
|
|
1085
1283
|
}, 8, ["modelValue"])
|
|
1086
1284
|
]),
|
|
1087
|
-
createBaseVNode("div", _hoisted_9, [
|
|
1285
|
+
createBaseVNode("div", _hoisted_9$2, [
|
|
1088
1286
|
createVNode(_component_el_select, {
|
|
1089
1287
|
modelValue: sortBy.value,
|
|
1090
1288
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => sortBy.value = $event),
|
|
@@ -1118,7 +1316,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1118
1316
|
onClick: toggleSortDirection
|
|
1119
1317
|
}, {
|
|
1120
1318
|
default: withCtx(() => [
|
|
1121
|
-
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)
|
|
1122
1320
|
]),
|
|
1123
1321
|
_: 1
|
|
1124
1322
|
})
|
|
@@ -1234,21 +1432,6 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1234
1432
|
])),
|
|
1235
1433
|
_: 1,
|
|
1236
1434
|
__: [13]
|
|
1237
|
-
}, 8, ["disabled"])) : createCommentVNode("", true),
|
|
1238
|
-
_ctx.mode === "open" && selectedFile.value && !selectedFile.value.is_directory ? (openBlock(), createBlock(_component_el_button, {
|
|
1239
|
-
key: 3,
|
|
1240
|
-
type: "primary",
|
|
1241
|
-
disabled: loading.value,
|
|
1242
|
-
size: "small",
|
|
1243
|
-
style: { "background-color": "rgb(92, 92, 92)", "color": "white" },
|
|
1244
|
-
onClick: handleOpenFile
|
|
1245
|
-
}, {
|
|
1246
|
-
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
1247
|
-
createBaseVNode("span", { class: "material-icons" }, "open_in_new", -1),
|
|
1248
|
-
createTextVNode(" Open File ")
|
|
1249
|
-
])),
|
|
1250
|
-
_: 1,
|
|
1251
|
-
__: [14]
|
|
1252
1435
|
}, 8, ["disabled"])) : createCommentVNode("", true)
|
|
1253
1436
|
])
|
|
1254
1437
|
]),
|
|
@@ -1265,22 +1448,22 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1265
1448
|
createVNode(_component_el_button, {
|
|
1266
1449
|
onClick: _cache[5] || (_cache[5] = ($event) => showCreateDialog.value = false)
|
|
1267
1450
|
}, {
|
|
1268
|
-
default: withCtx(() => _cache[
|
|
1451
|
+
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
1269
1452
|
createTextVNode("Cancel")
|
|
1270
1453
|
])),
|
|
1271
1454
|
_: 1,
|
|
1272
|
-
__: [
|
|
1455
|
+
__: [14]
|
|
1273
1456
|
}),
|
|
1274
1457
|
createVNode(_component_el_button, {
|
|
1275
1458
|
type: "primary",
|
|
1276
1459
|
disabled: !newFileName.value.trim(),
|
|
1277
1460
|
onClick: handleCreateFile
|
|
1278
1461
|
}, {
|
|
1279
|
-
default: withCtx(() => _cache[
|
|
1462
|
+
default: withCtx(() => _cache[15] || (_cache[15] = [
|
|
1280
1463
|
createTextVNode(" Create ")
|
|
1281
1464
|
])),
|
|
1282
1465
|
_: 1,
|
|
1283
|
-
__: [
|
|
1466
|
+
__: [15]
|
|
1284
1467
|
}, 8, ["disabled"])
|
|
1285
1468
|
])
|
|
1286
1469
|
]),
|
|
@@ -1315,14 +1498,19 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1315
1498
|
};
|
|
1316
1499
|
}
|
|
1317
1500
|
});
|
|
1318
|
-
const
|
|
1319
|
-
const FileBrowser = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1320
|
-
const _hoisted_1$
|
|
1321
|
-
const _hoisted_2$
|
|
1322
|
-
const _hoisted_3$
|
|
1323
|
-
const _hoisted_4$
|
|
1324
|
-
const _hoisted_5$
|
|
1325
|
-
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({
|
|
1326
1514
|
__name: "HeaderButtons",
|
|
1327
1515
|
emits: ["openFlow", "refreshFlow", "logs-start", "logs-stop"],
|
|
1328
1516
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
@@ -1330,12 +1518,35 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1330
1518
|
const modalVisibleForOpen = ref(false);
|
|
1331
1519
|
const modalVisibleForSave = ref(false);
|
|
1332
1520
|
const modalVisibleForCreate = ref(false);
|
|
1521
|
+
const modalVisibleForQuickCreate = ref(false);
|
|
1333
1522
|
const modalVisibleForSettings = ref(false);
|
|
1334
1523
|
const flowSettings = ref(null);
|
|
1335
1524
|
const savePath = ref(void 0);
|
|
1336
1525
|
const runButton = ref(null);
|
|
1526
|
+
const quickCreateName = ref("");
|
|
1337
1527
|
const executionModes = ref(["Development", "Performance"]);
|
|
1528
|
+
const executionLocationOptions = ref([
|
|
1529
|
+
{ key: "local", label: "Local" },
|
|
1530
|
+
{ key: "remote", label: "Remote" }
|
|
1531
|
+
]);
|
|
1338
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
|
+
};
|
|
1339
1550
|
const loadFlowSettings = async () => {
|
|
1340
1551
|
if (!(nodeStore.flow_id && nodeStore.flow_id > 0))
|
|
1341
1552
|
return;
|
|
@@ -1398,11 +1609,23 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1398
1609
|
const pathWithoutExtension = flowPath.replace(/\.[^/.]+$/, "");
|
|
1399
1610
|
const normalizedPath = `${pathWithoutExtension}.flowfile`;
|
|
1400
1611
|
const createdFlowId = await createFlow(normalizedPath);
|
|
1401
|
-
await saveFlow(createdFlowId, normalizedPath);
|
|
1402
1612
|
modalVisibleForCreate.value = false;
|
|
1403
1613
|
nodeStore.flow_id = createdFlowId;
|
|
1404
1614
|
emit("refreshFlow");
|
|
1405
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
|
+
};
|
|
1406
1629
|
const openSettingsModal = () => {
|
|
1407
1630
|
modalVisibleForSettings.value = true;
|
|
1408
1631
|
};
|
|
@@ -1417,6 +1640,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1417
1640
|
__expose({
|
|
1418
1641
|
loadFlowSettings,
|
|
1419
1642
|
openCreateDialog: () => modalVisibleForCreate.value = true,
|
|
1643
|
+
handleQuickCreateAction,
|
|
1420
1644
|
openOpenDialog: () => modalVisibleForOpen.value = true,
|
|
1421
1645
|
openSaveModal: () => modalVisibleForSave.value = true,
|
|
1422
1646
|
runFlow
|
|
@@ -1428,36 +1652,45 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1428
1652
|
});
|
|
1429
1653
|
return (_ctx, _cache) => {
|
|
1430
1654
|
const _component_el_dialog = resolveComponent("el-dialog");
|
|
1655
|
+
const _component_el_input = resolveComponent("el-input");
|
|
1656
|
+
const _component_el_button = resolveComponent("el-button");
|
|
1431
1657
|
const _component_el_option = resolveComponent("el-option");
|
|
1432
1658
|
const _component_el_select = resolveComponent("el-select");
|
|
1433
1659
|
const _component_el_checkbox = resolveComponent("el-checkbox");
|
|
1434
1660
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
1435
|
-
createBaseVNode("div", _hoisted_1$
|
|
1661
|
+
createBaseVNode("div", _hoisted_1$i, [
|
|
1436
1662
|
createBaseVNode("button", {
|
|
1437
1663
|
class: "action-btn",
|
|
1438
1664
|
onClick: openSaveModal
|
|
1439
|
-
}, _cache[
|
|
1665
|
+
}, _cache[13] || (_cache[13] = [
|
|
1440
1666
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "save", -1),
|
|
1441
1667
|
createBaseVNode("span", { class: "btn-text" }, "Save", -1)
|
|
1442
1668
|
])),
|
|
1443
1669
|
createBaseVNode("button", {
|
|
1444
1670
|
class: "action-btn",
|
|
1445
1671
|
onClick: _cache[0] || (_cache[0] = ($event) => modalVisibleForOpen.value = true)
|
|
1446
|
-
}, _cache[
|
|
1672
|
+
}, _cache[14] || (_cache[14] = [
|
|
1447
1673
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "folder_open", -1),
|
|
1448
1674
|
createBaseVNode("span", { class: "btn-text" }, "Open", -1)
|
|
1449
1675
|
])),
|
|
1450
1676
|
createBaseVNode("button", {
|
|
1451
1677
|
class: "action-btn",
|
|
1452
1678
|
onClick: _cache[1] || (_cache[1] = ($event) => modalVisibleForCreate.value = true)
|
|
1453
|
-
}, _cache[
|
|
1679
|
+
}, _cache[15] || (_cache[15] = [
|
|
1454
1680
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "add_circle_outline", -1),
|
|
1455
1681
|
createBaseVNode("span", { class: "btn-text" }, "Create", -1)
|
|
1456
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
|
+
])),
|
|
1457
1690
|
createBaseVNode("button", {
|
|
1458
1691
|
class: "action-btn",
|
|
1459
1692
|
onClick: openSettingsModal
|
|
1460
|
-
}, _cache[
|
|
1693
|
+
}, _cache[17] || (_cache[17] = [
|
|
1461
1694
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "settings", -1),
|
|
1462
1695
|
createBaseVNode("span", { class: "btn-text" }, "Settings", -1)
|
|
1463
1696
|
])),
|
|
@@ -1470,14 +1703,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1470
1703
|
class: normalizeClass(["action-btn", { active: unref(nodeStore).showCodeGenerator }]),
|
|
1471
1704
|
title: "Generate Python Code (Ctrl+G)",
|
|
1472
1705
|
onClick: toggleCodeGenerator
|
|
1473
|
-
}, _cache[
|
|
1706
|
+
}, _cache[18] || (_cache[18] = [
|
|
1474
1707
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "code", -1),
|
|
1475
1708
|
createBaseVNode("span", { class: "btn-text" }, "Generate code", -1)
|
|
1476
1709
|
]), 2)
|
|
1477
1710
|
]),
|
|
1478
1711
|
createVNode(_component_el_dialog, {
|
|
1479
1712
|
modelValue: modalVisibleForOpen.value,
|
|
1480
|
-
"onUpdate:modelValue": _cache[
|
|
1713
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => modalVisibleForOpen.value = $event),
|
|
1481
1714
|
title: "Select or Enter a Flow File",
|
|
1482
1715
|
width: "70%"
|
|
1483
1716
|
}, {
|
|
@@ -1492,7 +1725,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1492
1725
|
}, 8, ["modelValue"]),
|
|
1493
1726
|
createVNode(_component_el_dialog, {
|
|
1494
1727
|
modelValue: modalVisibleForSave.value,
|
|
1495
|
-
"onUpdate:modelValue": _cache[
|
|
1728
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => modalVisibleForSave.value = $event),
|
|
1496
1729
|
title: "Select save location",
|
|
1497
1730
|
width: "70%"
|
|
1498
1731
|
}, {
|
|
@@ -1511,7 +1744,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1511
1744
|
}, 8, ["modelValue"]),
|
|
1512
1745
|
createVNode(_component_el_dialog, {
|
|
1513
1746
|
modelValue: modalVisibleForCreate.value,
|
|
1514
|
-
"onUpdate:modelValue": _cache[
|
|
1747
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => modalVisibleForCreate.value = $event),
|
|
1515
1748
|
title: "Select save location",
|
|
1516
1749
|
width: "70%"
|
|
1517
1750
|
}, {
|
|
@@ -1525,20 +1758,70 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1525
1758
|
]),
|
|
1526
1759
|
_: 1
|
|
1527
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"]),
|
|
1528
1811
|
createVNode(_component_el_dialog, {
|
|
1529
1812
|
modelValue: modalVisibleForSettings.value,
|
|
1530
|
-
"onUpdate:modelValue": _cache[
|
|
1813
|
+
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => modalVisibleForSettings.value = $event),
|
|
1531
1814
|
title: "Execution Settings",
|
|
1532
1815
|
width: "30%"
|
|
1533
1816
|
}, {
|
|
1534
1817
|
default: withCtx(() => [
|
|
1535
|
-
flowSettings.value ? (openBlock(), createElementBlock("div",
|
|
1536
|
-
createBaseVNode("div",
|
|
1537
|
-
createBaseVNode("div",
|
|
1538
|
-
_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)),
|
|
1539
1822
|
createVNode(_component_el_select, {
|
|
1540
1823
|
modelValue: flowSettings.value.execution_mode,
|
|
1541
|
-
"onUpdate:modelValue": _cache[
|
|
1824
|
+
"onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => flowSettings.value.execution_mode = $event),
|
|
1542
1825
|
size: "small",
|
|
1543
1826
|
placeholder: "Select run mode",
|
|
1544
1827
|
style: { "width": "100%" },
|
|
@@ -1556,10 +1839,32 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1556
1839
|
_: 1
|
|
1557
1840
|
}, 8, ["modelValue"])
|
|
1558
1841
|
]),
|
|
1559
|
-
createBaseVNode("div",
|
|
1842
|
+
createBaseVNode("div", _hoisted_9$1, [
|
|
1843
|
+
_cache[25] || (_cache[25] = createBaseVNode("label", null, "Execution location:", -1)),
|
|
1844
|
+
createVNode(_component_el_select, {
|
|
1845
|
+
modelValue: flowSettings.value.execution_location,
|
|
1846
|
+
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => flowSettings.value.execution_location = $event),
|
|
1847
|
+
size: "small",
|
|
1848
|
+
placeholder: "Select the execution location",
|
|
1849
|
+
style: { "width": "100%" },
|
|
1850
|
+
onChange: pushFlowSettings
|
|
1851
|
+
}, {
|
|
1852
|
+
default: withCtx(() => [
|
|
1853
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(executionLocationOptions.value, (executionLocationOption) => {
|
|
1854
|
+
return openBlock(), createBlock(_component_el_option, {
|
|
1855
|
+
key: executionLocationOption.key,
|
|
1856
|
+
label: executionLocationOption.label,
|
|
1857
|
+
value: executionLocationOption.key
|
|
1858
|
+
}, null, 8, ["label", "value"]);
|
|
1859
|
+
}), 128))
|
|
1860
|
+
]),
|
|
1861
|
+
_: 1
|
|
1862
|
+
}, 8, ["modelValue"])
|
|
1863
|
+
]),
|
|
1864
|
+
createBaseVNode("div", _hoisted_10, [
|
|
1560
1865
|
createVNode(_component_el_checkbox, {
|
|
1561
1866
|
modelValue: flowSettings.value.show_detailed_progress,
|
|
1562
|
-
"onUpdate:modelValue": _cache[
|
|
1867
|
+
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => flowSettings.value.show_detailed_progress = $event),
|
|
1563
1868
|
label: "Show details during execution",
|
|
1564
1869
|
size: "small",
|
|
1565
1870
|
onChange: pushFlowSettings
|
|
@@ -1574,8 +1879,385 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1574
1879
|
};
|
|
1575
1880
|
}
|
|
1576
1881
|
});
|
|
1577
|
-
const
|
|
1578
|
-
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
|
+
});
|
|
1579
2261
|
/*! Element Plus Icons Vue v2.3.1 */
|
|
1580
2262
|
var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
1581
2263
|
name: "ArrowDown",
|
|
@@ -1673,13 +2355,14 @@ var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
1673
2355
|
}
|
|
1674
2356
|
});
|
|
1675
2357
|
var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
|
|
1676
|
-
const _hoisted_1$
|
|
1677
|
-
const _hoisted_2$
|
|
1678
|
-
const _hoisted_3$
|
|
1679
|
-
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({
|
|
1680
2362
|
__name: "status",
|
|
1681
2363
|
setup(__props) {
|
|
1682
2364
|
const nodeStore = useNodeStore();
|
|
2365
|
+
const draggableItemStore = useItemStore();
|
|
1683
2366
|
const lastStatusChange = ref(/* @__PURE__ */ new Date());
|
|
1684
2367
|
const isRunning = computed$1(() => nodeStore.isRunning);
|
|
1685
2368
|
const showFlowResult = computed$1(() => nodeStore.showFlowResult);
|
|
@@ -1715,17 +2398,21 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1715
2398
|
const toggleResults = () => {
|
|
1716
2399
|
nodeStore.showFlowResult = !nodeStore.showFlowResult;
|
|
1717
2400
|
nodeStore.isShowingLogViewer = nodeStore.showFlowResult;
|
|
2401
|
+
if (nodeStore.isShowingLogViewer) {
|
|
2402
|
+
draggableItemStore.bringToFront("logViewer");
|
|
2403
|
+
draggableItemStore.bringToFront("flowresults");
|
|
2404
|
+
}
|
|
1718
2405
|
};
|
|
1719
2406
|
return (_ctx, _cache) => {
|
|
1720
2407
|
const _component_el_icon = resolveComponent("el-icon");
|
|
1721
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
2408
|
+
return openBlock(), createElementBlock("div", _hoisted_1$h, [
|
|
1722
2409
|
createVNode(PopOver, {
|
|
1723
2410
|
content: tooltipContent.value,
|
|
1724
2411
|
title: isRunning.value ? "Processing Flow" : "Flow Idle",
|
|
1725
2412
|
placement: "left"
|
|
1726
2413
|
}, {
|
|
1727
2414
|
default: withCtx(() => [
|
|
1728
|
-
createBaseVNode("div", _hoisted_2$
|
|
2415
|
+
createBaseVNode("div", _hoisted_2$f, [
|
|
1729
2416
|
(openBlock(), createElementBlock("svg", {
|
|
1730
2417
|
viewBox: "0 0 100 100",
|
|
1731
2418
|
class: normalizeClass(["flow-animation", { "is-flowing": isRunning.value }])
|
|
@@ -1814,7 +2501,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1814
2501
|
]),
|
|
1815
2502
|
_: 1
|
|
1816
2503
|
})) : createCommentVNode("", true)
|
|
1817
|
-
], 10, _hoisted_3$
|
|
2504
|
+
], 10, _hoisted_3$e)
|
|
1818
2505
|
]),
|
|
1819
2506
|
_: 1
|
|
1820
2507
|
})
|
|
@@ -1822,8 +2509,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1822
2509
|
};
|
|
1823
2510
|
}
|
|
1824
2511
|
});
|
|
1825
|
-
const
|
|
1826
|
-
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"]]);
|
|
1827
2514
|
function tryOnScopeDispose(fn) {
|
|
1828
2515
|
if (getCurrentScope()) {
|
|
1829
2516
|
onScopeDispose(fn);
|
|
@@ -8429,7 +9116,7 @@ const __default__$f = {
|
|
|
8429
9116
|
name: "Handle",
|
|
8430
9117
|
compatConfig: { MODE: 3 }
|
|
8431
9118
|
};
|
|
8432
|
-
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
9119
|
+
const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
|
|
8433
9120
|
...__default__$f,
|
|
8434
9121
|
props: {
|
|
8435
9122
|
id: { default: null },
|
|
@@ -8590,9 +9277,9 @@ const DefaultNode = function({
|
|
|
8590
9277
|
}) {
|
|
8591
9278
|
const label = data.label || _label;
|
|
8592
9279
|
return [
|
|
8593
|
-
h(_sfc_main$f, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
9280
|
+
h(_sfc_main$f$1, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
8594
9281
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label]),
|
|
8595
|
-
h(_sfc_main$f, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
9282
|
+
h(_sfc_main$f$1, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
8596
9283
|
];
|
|
8597
9284
|
};
|
|
8598
9285
|
DefaultNode.props = ["sourcePosition", "targetPosition", "label", "isValidTargetPos", "isValidSourcePos", "connectable", "data"];
|
|
@@ -8608,7 +9295,7 @@ const OutputNode = function({
|
|
|
8608
9295
|
}) {
|
|
8609
9296
|
const label = data.label || _label;
|
|
8610
9297
|
return [
|
|
8611
|
-
h(_sfc_main$f, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
9298
|
+
h(_sfc_main$f$1, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
8612
9299
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label])
|
|
8613
9300
|
];
|
|
8614
9301
|
};
|
|
@@ -8626,7 +9313,7 @@ const InputNode = function({
|
|
|
8626
9313
|
const label = data.label || _label;
|
|
8627
9314
|
return [
|
|
8628
9315
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label]),
|
|
8629
|
-
h(_sfc_main$f, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
9316
|
+
h(_sfc_main$f$1, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
8630
9317
|
];
|
|
8631
9318
|
};
|
|
8632
9319
|
InputNode.props = ["sourcePosition", "label", "isValidSourcePos", "connectable", "data"];
|
|
@@ -8640,7 +9327,7 @@ const __default__$e = {
|
|
|
8640
9327
|
name: "EdgeText",
|
|
8641
9328
|
compatConfig: { MODE: 3 }
|
|
8642
9329
|
};
|
|
8643
|
-
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
9330
|
+
const _sfc_main$e$1 = /* @__PURE__ */ defineComponent({
|
|
8644
9331
|
...__default__$e,
|
|
8645
9332
|
props: {
|
|
8646
9333
|
x: {},
|
|
@@ -8756,7 +9443,7 @@ const _sfc_main$d$1 = /* @__PURE__ */ defineComponent({
|
|
|
8756
9443
|
"stroke-opacity": 0,
|
|
8757
9444
|
class: "vue-flow__edge-interaction"
|
|
8758
9445
|
}, null, 8, _hoisted_2$1$1)) : createCommentVNode("", true),
|
|
8759
|
-
_ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e, {
|
|
9446
|
+
_ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e$1, {
|
|
8760
9447
|
key: 1,
|
|
8761
9448
|
ref_key: "labelEl",
|
|
8762
9449
|
ref: labelEl,
|
|
@@ -10202,8 +10889,8 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
|
|
|
10202
10889
|
}
|
|
10203
10890
|
});
|
|
10204
10891
|
const _hoisted_1$5$1 = ["id"];
|
|
10205
|
-
const _hoisted_2$
|
|
10206
|
-
const _hoisted_3$
|
|
10892
|
+
const _hoisted_2$e = ["id"];
|
|
10893
|
+
const _hoisted_3$d = ["id"];
|
|
10207
10894
|
const __default__$7 = {
|
|
10208
10895
|
name: "A11yDescriptions",
|
|
10209
10896
|
compatConfig: { MODE: 3 }
|
|
@@ -10221,14 +10908,14 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
|
|
|
10221
10908
|
createBaseVNode("div", {
|
|
10222
10909
|
id: `${unref(ARIA_EDGE_DESC_KEY)}-${unref(id2)}`,
|
|
10223
10910
|
style: { "display": "none" }
|
|
10224
|
-
}, " 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),
|
|
10225
10912
|
!unref(disableKeyboardA11y) ? (openBlock(), createElementBlock("div", {
|
|
10226
10913
|
key: 0,
|
|
10227
10914
|
id: `${unref(ARIA_LIVE_MESSAGE)}-${unref(id2)}`,
|
|
10228
10915
|
"aria-live": "assertive",
|
|
10229
10916
|
"aria-atomic": "true",
|
|
10230
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%)" }
|
|
10231
|
-
}, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$
|
|
10918
|
+
}, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$d)) : createCommentVNode("", true)
|
|
10232
10919
|
], 64);
|
|
10233
10920
|
};
|
|
10234
10921
|
}
|
|
@@ -11275,7 +11962,7 @@ function useStylesLoadedWarning() {
|
|
|
11275
11962
|
}
|
|
11276
11963
|
});
|
|
11277
11964
|
}
|
|
11278
|
-
const _hoisted_1$
|
|
11965
|
+
const _hoisted_1$g = /* @__PURE__ */ createBaseVNode("div", { class: "vue-flow__edge-labels" }, null, -1);
|
|
11279
11966
|
const __default__$1$1 = {
|
|
11280
11967
|
name: "VueFlow",
|
|
11281
11968
|
compatConfig: { MODE: 3 }
|
|
@@ -11368,7 +12055,7 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
|
|
|
11368
12055
|
createVNode(_sfc_main$8$1, null, {
|
|
11369
12056
|
default: withCtx(() => [
|
|
11370
12057
|
createVNode(_sfc_main$4$1),
|
|
11371
|
-
_hoisted_1$
|
|
12058
|
+
_hoisted_1$g,
|
|
11372
12059
|
createVNode(_sfc_main$2$1),
|
|
11373
12060
|
renderSlot(_ctx.$slots, "zoom-pane")
|
|
11374
12061
|
]),
|
|
@@ -11384,7 +12071,7 @@ const __default__$3 = {
|
|
|
11384
12071
|
name: "Panel",
|
|
11385
12072
|
compatConfig: { MODE: 3 }
|
|
11386
12073
|
};
|
|
11387
|
-
const _sfc_main$
|
|
12074
|
+
const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
11388
12075
|
...__default__$3,
|
|
11389
12076
|
props: {
|
|
11390
12077
|
position: {}
|
|
@@ -14126,14 +14813,14 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
|
|
|
14126
14813
|
};
|
|
14127
14814
|
}
|
|
14128
14815
|
});
|
|
14129
|
-
const _hoisted_1$
|
|
14130
|
-
const _hoisted_2$
|
|
14131
|
-
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"];
|
|
14132
14819
|
const __default__ = {
|
|
14133
14820
|
name: "MiniMap",
|
|
14134
14821
|
compatConfig: { MODE: 3 }
|
|
14135
14822
|
};
|
|
14136
|
-
const _sfc_main$
|
|
14823
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
14137
14824
|
...__default__,
|
|
14138
14825
|
props: {
|
|
14139
14826
|
nodeColor: { type: [String, Function], default: "#e2e2e2" },
|
|
@@ -14296,7 +14983,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14296
14983
|
emit("nodeMouseleave", param);
|
|
14297
14984
|
}
|
|
14298
14985
|
return (_ctx, _cache) => {
|
|
14299
|
-
return openBlock(), createBlock(unref(_sfc_main$
|
|
14986
|
+
return openBlock(), createBlock(unref(_sfc_main$j), {
|
|
14300
14987
|
position: _ctx.position,
|
|
14301
14988
|
class: normalizeClass(["vue-flow__minimap", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])
|
|
14302
14989
|
}, {
|
|
@@ -14314,7 +15001,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14314
15001
|
_ctx.ariaLabel ? (openBlock(), createElementBlock("title", {
|
|
14315
15002
|
key: 0,
|
|
14316
15003
|
id: `vue-flow__minimap-${unref(id2)}`
|
|
14317
|
-
}, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$
|
|
15004
|
+
}, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$d)) : createCommentVNode("", true),
|
|
14318
15005
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(getNodesInitialized), (node) => {
|
|
14319
15006
|
return openBlock(), createBlock(_sfc_main$1$1, {
|
|
14320
15007
|
id: node.id,
|
|
@@ -14346,8 +15033,8 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14346
15033
|
stroke: _ctx.maskStrokeColor,
|
|
14347
15034
|
"stroke-width": _ctx.maskStrokeWidth,
|
|
14348
15035
|
"fill-rule": "evenodd"
|
|
14349
|
-
}, null, 8, _hoisted_3$
|
|
14350
|
-
], 8, _hoisted_1$
|
|
15036
|
+
}, null, 8, _hoisted_3$c)
|
|
15037
|
+
], 8, _hoisted_1$f))
|
|
14351
15038
|
]),
|
|
14352
15039
|
_: 1
|
|
14353
15040
|
}, 8, ["position", "class"]);
|
|
@@ -14362,16 +15049,320 @@ function toSnakeCase(str) {
|
|
|
14362
15049
|
return str;
|
|
14363
15050
|
return str.replace(/([A-Z])/g, "_$1").replace(/^_/, "").toLowerCase();
|
|
14364
15051
|
}
|
|
14365
|
-
const
|
|
14366
|
-
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 = {
|
|
14367
15358
|
key: 0,
|
|
14368
15359
|
class: "truncated-indicator",
|
|
14369
15360
|
title: "Click to see full description"
|
|
14370
15361
|
};
|
|
14371
|
-
const _hoisted_3$
|
|
14372
|
-
const _hoisted_4$
|
|
15362
|
+
const _hoisted_3$a = ["id"];
|
|
15363
|
+
const _hoisted_4$9 = ["id"];
|
|
14373
15364
|
const CHAR_LIMIT = 100;
|
|
14374
|
-
const _sfc_main$
|
|
15365
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
14375
15366
|
__name: "CustomNode",
|
|
14376
15367
|
props: {
|
|
14377
15368
|
data: {
|
|
@@ -14389,6 +15380,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14389
15380
|
const showMenu = ref(false);
|
|
14390
15381
|
const contextMenuX = ref(0);
|
|
14391
15382
|
const contextMenuY = ref(0);
|
|
15383
|
+
const props2 = __props;
|
|
14392
15384
|
const onTitleClick = (event) => {
|
|
14393
15385
|
toggleEditMode(true);
|
|
14394
15386
|
mouseX.value = event.clientX;
|
|
@@ -14437,22 +15429,25 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14437
15429
|
window.removeEventListener("click", handleClickOutsideMenu);
|
|
14438
15430
|
};
|
|
14439
15431
|
const copyNode2 = () => {
|
|
15432
|
+
var _a, _b, _c, _d, _e;
|
|
14440
15433
|
const nodeCopyValue = {
|
|
14441
15434
|
nodeIdToCopyFrom: props2.data.id,
|
|
14442
|
-
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",
|
|
14443
15436
|
label: props2.data.label,
|
|
14444
15437
|
description: description.value,
|
|
14445
15438
|
numberOfInputs: props2.data.inputs.length,
|
|
14446
15439
|
numberOfOutputs: props2.data.outputs.length,
|
|
14447
|
-
typeSnakeCase: toSnakeCase(props2.data.component.__name || "unknown"),
|
|
14448
|
-
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
|
|
14449
15444
|
};
|
|
14450
15445
|
localStorage.setItem("copiedNode", JSON.stringify(nodeCopyValue));
|
|
14451
15446
|
console.log("Node copied:", nodeCopyValue);
|
|
14452
15447
|
closeContextMenu();
|
|
14453
15448
|
};
|
|
14454
15449
|
const deleteNode2 = () => {
|
|
14455
|
-
console.log("
|
|
15450
|
+
console.log("Deleting node");
|
|
14456
15451
|
if (nodeStore.vueFlowInstance) {
|
|
14457
15452
|
let vueFlow = nodeStore.vueFlowInstance;
|
|
14458
15453
|
vueFlow.removeNodes(props2.data.id.toLocaleString(), true);
|
|
@@ -14555,7 +15550,6 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14555
15550
|
}
|
|
14556
15551
|
return description.value;
|
|
14557
15552
|
});
|
|
14558
|
-
const props2 = __props;
|
|
14559
15553
|
function getHandleStyle(index, total) {
|
|
14560
15554
|
const topMargin = 30;
|
|
14561
15555
|
const bottomMargin = 25;
|
|
@@ -14626,8 +15620,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14626
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" })
|
|
14627
15621
|
], -1)
|
|
14628
15622
|
])),
|
|
14629
|
-
createBaseVNode("pre", _hoisted_1$
|
|
14630
|
-
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)
|
|
14631
15625
|
], 4)) : (openBlock(), createElementBlock("div", {
|
|
14632
15626
|
key: 1,
|
|
14633
15627
|
id: props2.data.id.toLocaleString(),
|
|
@@ -14641,10 +15635,10 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14641
15635
|
class: "description-input",
|
|
14642
15636
|
data: "description_input",
|
|
14643
15637
|
onBlur: _cache[2] || (_cache[2] = ($event) => toggleEditMode(false))
|
|
14644
|
-
}, null, 40, _hoisted_4$
|
|
15638
|
+
}, null, 40, _hoisted_4$9), [
|
|
14645
15639
|
[vModelText, description.value]
|
|
14646
15640
|
])
|
|
14647
|
-
], 12, _hoisted_3$
|
|
15641
|
+
], 12, _hoisted_3$a))
|
|
14648
15642
|
])
|
|
14649
15643
|
], 32),
|
|
14650
15644
|
createBaseVNode("div", {
|
|
@@ -14653,16 +15647,21 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14653
15647
|
class: "custom-node",
|
|
14654
15648
|
onContextmenu: withModifiers(showContextMenu, ["prevent"])
|
|
14655
15649
|
}, [
|
|
14656
|
-
(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,
|
|
14657
15656
|
"node-id": __props.data.id
|
|
14658
|
-
}, null, 8, ["node-id"])),
|
|
15657
|
+
}, null, 8, ["node-id"])) : createCommentVNode("", true),
|
|
14659
15658
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.data.inputs, (input, index) => {
|
|
14660
15659
|
return openBlock(), createElementBlock("div", {
|
|
14661
15660
|
key: input.id,
|
|
14662
15661
|
class: "handle-input",
|
|
14663
15662
|
style: normalizeStyle(getHandleStyle(index, __props.data.inputs.length))
|
|
14664
15663
|
}, [
|
|
14665
|
-
createVNode(unref(_sfc_main$f), {
|
|
15664
|
+
createVNode(unref(_sfc_main$f$1), {
|
|
14666
15665
|
id: input.id,
|
|
14667
15666
|
type: "target",
|
|
14668
15667
|
position: input.position
|
|
@@ -14675,7 +15674,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14675
15674
|
class: "handle-output",
|
|
14676
15675
|
style: normalizeStyle(getHandleStyle(index, __props.data.outputs.length))
|
|
14677
15676
|
}, [
|
|
14678
|
-
createVNode(unref(_sfc_main$f), {
|
|
15677
|
+
createVNode(unref(_sfc_main$f$1), {
|
|
14679
15678
|
id: output.id,
|
|
14680
15679
|
type: "source",
|
|
14681
15680
|
position: output.position
|
|
@@ -14683,7 +15682,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14683
15682
|
], 4);
|
|
14684
15683
|
}), 128)),
|
|
14685
15684
|
showMenu.value ? (openBlock(), createBlock(Teleport, {
|
|
14686
|
-
key:
|
|
15685
|
+
key: 2,
|
|
14687
15686
|
to: "body"
|
|
14688
15687
|
}, [
|
|
14689
15688
|
createBaseVNode("div", {
|
|
@@ -14751,36 +15750,82 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14751
15750
|
};
|
|
14752
15751
|
}
|
|
14753
15752
|
});
|
|
14754
|
-
const
|
|
14755
|
-
const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
14756
|
-
const
|
|
14757
|
-
|
|
14758
|
-
|
|
14759
|
-
|
|
14760
|
-
|
|
14761
|
-
|
|
14762
|
-
|
|
14763
|
-
|
|
14764
|
-
|
|
14765
|
-
const componentCache = {};
|
|
14766
|
-
function getComponent(name) {
|
|
14767
|
-
if (!componentCache[name]) {
|
|
14768
|
-
componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-960b400a.js"), true ? ["assets/CloudStorageReader-960b400a.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-6ef0dcef.js","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "../../nodes/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-e3decbdd.js"), true ? ["assets/CloudStorageWriter-e3decbdd.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-6ef0dcef.js","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageWriter-49c9a4b2.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-d67e2405.js"), true ? ["assets/CrossJoin-d67e2405.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-9578bfa5.js"), true ? ["assets/DatabaseReader-9578bfa5.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-a0abbdc7.js","assets/DatabaseConnectionSettings-a81e0f7e.js","assets/secretApi-dd636aa2.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-19531098.js"), true ? ["assets/DatabaseWriter-19531098.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-a0abbdc7.js","assets/DatabaseConnectionSettings-a81e0f7e.js","assets/secretApi-dd636aa2.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-40476474.js"), true ? ["assets/ExploreData-40476474.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-2297ef96.js"), true ? ["assets/ExternalSource-2297ef96.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-f211c03a.js"), true ? ["assets/Filter-f211c03a.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-fd2cd6f9.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-4207ea31.js"), true ? ["assets/Formula-4207ea31.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-fd2cd6f9.js","assets/fullEditor-178376bb.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-29f19d21.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-bf120df0.js"), true ? ["assets/FuzzyMatch-bf120df0.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-0371da73.js","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-5bb7497a.js"), true ? ["assets/GraphSolver-5bb7497a.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-92c81b65.js"), true ? ["assets/GroupBy-92c81b65.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-4e49a274.js"), true ? ["assets/Join-4e49a274.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Join-f45eff22.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-90998ae8.js"), true ? ["assets/ManualInput-90998ae8.js","assets/nodeTitle-988d9efe.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-a71b52c6.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-81e3e917.js"), true ? ["assets/Output-81e3e917.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-a3419842.js"), true ? ["assets/Pivot-a3419842.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-4c0f45f5.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-72710deb.js"), true ? ["assets/PolarsCode-72710deb.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-c4059daf.js"), true ? ["assets/Read-c4059daf.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-c2b5e095.js"), true ? ["assets/RecordCount-c2b5e095.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-10baf191.js"), true ? ["assets/RecordId-10baf191.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-4c0f45f5.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-3ed9a0ae.js"), true ? ["assets/Sample-3ed9a0ae.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-8a02a0b3.js"), true ? ["assets/Select-8a02a0b3.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-f55c9f9d.js"), true ? ["assets/Sort-f55c9f9d.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-0371da73.js","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-5dbc2145.js"), true ? ["assets/TextToRows-5dbc2145.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-0371da73.js","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-f2aefdc9.js"), true ? ["assets/Union-f2aefdc9.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-46b250da.js"), true ? ["assets/Unique-46b250da.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-25ac84cc.js"), true ? ["assets/Unpivot-25ac84cc.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${toTitleCase(name)}.vue`).then((module) => {
|
|
14769
|
-
const component = markRaw$1(module.default);
|
|
14770
|
-
return component;
|
|
14771
|
-
});
|
|
14772
|
-
}
|
|
14773
|
-
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;
|
|
14774
15764
|
}
|
|
14775
15765
|
function getComponentRaw(name) {
|
|
14776
|
-
|
|
14777
|
-
componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-960b400a.js"), true ? ["assets/CloudStorageReader-960b400a.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-6ef0dcef.js","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "../../nodes/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-e3decbdd.js"), true ? ["assets/CloudStorageWriter-e3decbdd.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-6ef0dcef.js","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageWriter-49c9a4b2.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-d67e2405.js"), true ? ["assets/CrossJoin-d67e2405.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-9578bfa5.js"), true ? ["assets/DatabaseReader-9578bfa5.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-a0abbdc7.js","assets/DatabaseConnectionSettings-a81e0f7e.js","assets/secretApi-dd636aa2.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-19531098.js"), true ? ["assets/DatabaseWriter-19531098.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/api-a0abbdc7.js","assets/DatabaseConnectionSettings-a81e0f7e.js","assets/secretApi-dd636aa2.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-40476474.js"), true ? ["assets/ExploreData-40476474.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-2297ef96.js"), true ? ["assets/ExternalSource-2297ef96.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-f211c03a.js"), true ? ["assets/Filter-f211c03a.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-fd2cd6f9.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-4207ea31.js"), true ? ["assets/Formula-4207ea31.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-fd2cd6f9.js","assets/fullEditor-178376bb.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-29f19d21.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-bf120df0.js"), true ? ["assets/FuzzyMatch-bf120df0.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-0371da73.js","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-5bb7497a.js"), true ? ["assets/GraphSolver-5bb7497a.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-92c81b65.js"), true ? ["assets/GroupBy-92c81b65.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-4e49a274.js"), true ? ["assets/Join-4e49a274.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Join-f45eff22.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-90998ae8.js"), true ? ["assets/ManualInput-90998ae8.js","assets/nodeTitle-988d9efe.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-a71b52c6.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-81e3e917.js"), true ? ["assets/Output-81e3e917.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-a3419842.js"), true ? ["assets/Pivot-a3419842.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-4c0f45f5.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-72710deb.js"), true ? ["assets/PolarsCode-72710deb.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-c4059daf.js"), true ? ["assets/Read-c4059daf.js","assets/vue-content-loader.es-0371da73.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-c2b5e095.js"), true ? ["assets/RecordCount-c2b5e095.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-10baf191.js"), true ? ["assets/RecordId-10baf191.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-4c0f45f5.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-3ed9a0ae.js"), true ? ["assets/Sample-3ed9a0ae.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-8a02a0b3.js"), true ? ["assets/Select-8a02a0b3.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-f55c9f9d.js"), true ? ["assets/Sort-f55c9f9d.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-0371da73.js","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-5dbc2145.js"), true ? ["assets/TextToRows-5dbc2145.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-13564764.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-0371da73.js","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-f2aefdc9.js"), true ? ["assets/Union-f2aefdc9.js","assets/vue-codemirror.esm-2847001e.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-46b250da.js"), true ? ["assets/Unique-46b250da.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-0371da73.js","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-af36165e.js","assets/UnavailableFields-a1768e52.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-25ac84cc.js"), true ? ["assets/Unpivot-25ac84cc.js","assets/index-f6c15e76.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-2847001e.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-71e11604.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-988d9efe.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${name}.vue`).then((module) => {
|
|
14778
|
-
|
|
14779
|
-
|
|
14780
|
-
|
|
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;
|
|
14781
15799
|
}
|
|
14782
|
-
return componentCache[name];
|
|
14783
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
|
+
};
|
|
14784
15829
|
const connectNode = async (flowId, nodeConnection) => {
|
|
14785
15830
|
console.log("Connecting node where it should happen", nodeConnection);
|
|
14786
15831
|
try {
|
|
@@ -14989,7 +16034,9 @@ function useDragAndDrop() {
|
|
|
14989
16034
|
outputs: Array.from({ length: node.numberOfOutputs }, (_2, i2) => ({
|
|
14990
16035
|
id: `output-${i2}`,
|
|
14991
16036
|
position: Position.Right
|
|
14992
|
-
}))
|
|
16037
|
+
})),
|
|
16038
|
+
// Include nodeTemplate if available
|
|
16039
|
+
nodeTemplate: node.nodeTemplate
|
|
14993
16040
|
}
|
|
14994
16041
|
};
|
|
14995
16042
|
const nodePromise = {
|
|
@@ -15011,7 +16058,8 @@ function useDragAndDrop() {
|
|
|
15011
16058
|
};
|
|
15012
16059
|
async function getNodeToAdd(node) {
|
|
15013
16060
|
const numberOfInputs = node.multi ? 1 : node.input;
|
|
15014
|
-
const
|
|
16061
|
+
const nodeTemplate = await getNodeTemplateByItem(node.item);
|
|
16062
|
+
const component = await getComponent(nodeTemplate || node.item);
|
|
15015
16063
|
const newNode = {
|
|
15016
16064
|
id: String(node.id),
|
|
15017
16065
|
type: "custom-node",
|
|
@@ -15030,7 +16078,9 @@ function useDragAndDrop() {
|
|
|
15030
16078
|
outputs: Array.from({ length: node.output }, (_2, i2) => ({
|
|
15031
16079
|
id: `output-${i2}`,
|
|
15032
16080
|
position: Position.Right
|
|
15033
|
-
}))
|
|
16081
|
+
})),
|
|
16082
|
+
// IMPORTANT: Include the complete NodeTemplate
|
|
16083
|
+
nodeTemplate
|
|
15034
16084
|
}
|
|
15035
16085
|
};
|
|
15036
16086
|
return newNode;
|
|
@@ -15061,21 +16111,17 @@ function useDragAndDrop() {
|
|
|
15061
16111
|
if (!event.dataTransfer)
|
|
15062
16112
|
return;
|
|
15063
16113
|
const nodeData = JSON.parse(event.dataTransfer.getData("application/vueflow"));
|
|
15064
|
-
console.log("nodeData:", nodeData);
|
|
15065
16114
|
const nodeId = getId();
|
|
15066
|
-
getComponent(
|
|
16115
|
+
getComponent().then((component) => {
|
|
15067
16116
|
const numberOfInputs = nodeData.multi ? 1 : nodeData.input;
|
|
15068
|
-
console.log("logging", numberOfInputs);
|
|
15069
16117
|
const newNode = {
|
|
15070
16118
|
id: String(nodeId),
|
|
15071
16119
|
type: "custom-node",
|
|
15072
16120
|
position,
|
|
15073
16121
|
data: {
|
|
15074
16122
|
id: nodeId,
|
|
15075
|
-
// Pass nodeId here
|
|
15076
16123
|
label: nodeData.name,
|
|
15077
16124
|
component: markRaw$1(component),
|
|
15078
|
-
// Pass component directly
|
|
15079
16125
|
inputs: Array.from({ length: numberOfInputs }, (_2, i2) => ({
|
|
15080
16126
|
id: `input-${i2}`,
|
|
15081
16127
|
position: Position.Left
|
|
@@ -15084,7 +16130,8 @@ function useDragAndDrop() {
|
|
|
15084
16130
|
id: `output-${i2}`,
|
|
15085
16131
|
position: Position.Right
|
|
15086
16132
|
})),
|
|
15087
|
-
|
|
16133
|
+
// IMPORTANT: Pass the complete NodeTemplate data
|
|
16134
|
+
nodeTemplate: nodeData
|
|
15088
16135
|
}
|
|
15089
16136
|
};
|
|
15090
16137
|
const { off } = onNodesInitialized(() => {
|
|
@@ -15099,9 +16146,7 @@ function useDragAndDrop() {
|
|
|
15099
16146
|
});
|
|
15100
16147
|
off();
|
|
15101
16148
|
});
|
|
15102
|
-
console.log("nodeData", nodeData);
|
|
15103
16149
|
insertNode(flowId, nodeId, nodeData.item);
|
|
15104
|
-
console.log(newNode);
|
|
15105
16150
|
addNodes(newNode);
|
|
15106
16151
|
}).catch((error) => {
|
|
15107
16152
|
console.error(`Error importing component for ${nodeData.item}`, error);
|
|
@@ -17677,11 +18722,11 @@ const oneDarkHighlightStyle = /* @__PURE__ */ HighlightStyle.define([
|
|
|
17677
18722
|
}
|
|
17678
18723
|
]);
|
|
17679
18724
|
const oneDark = [oneDarkTheme, /* @__PURE__ */ syntaxHighlighting(oneDarkHighlightStyle)];
|
|
17680
|
-
const _hoisted_1$
|
|
17681
|
-
const _hoisted_2$
|
|
17682
|
-
const _hoisted_3$
|
|
17683
|
-
const _hoisted_4$
|
|
17684
|
-
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 = {
|
|
17685
18730
|
key: 0,
|
|
17686
18731
|
width: "16",
|
|
17687
18732
|
height: "16",
|
|
@@ -17690,11 +18735,11 @@ const _hoisted_5$5 = {
|
|
|
17690
18735
|
stroke: "currentColor",
|
|
17691
18736
|
"stroke-width": "2"
|
|
17692
18737
|
};
|
|
17693
|
-
const _hoisted_6$
|
|
18738
|
+
const _hoisted_6$5 = {
|
|
17694
18739
|
key: 1,
|
|
17695
18740
|
class: "spinner"
|
|
17696
18741
|
};
|
|
17697
|
-
const _sfc_main$
|
|
18742
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
17698
18743
|
__name: "CodeGenerator",
|
|
17699
18744
|
setup(__props) {
|
|
17700
18745
|
const code = ref("");
|
|
@@ -17761,23 +18806,23 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
17761
18806
|
URL.revokeObjectURL(url);
|
|
17762
18807
|
};
|
|
17763
18808
|
return (_ctx, _cache) => {
|
|
17764
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
17765
|
-
createBaseVNode("div", _hoisted_2$
|
|
18809
|
+
return openBlock(), createElementBlock("div", _hoisted_1$c, [
|
|
18810
|
+
createBaseVNode("div", _hoisted_2$a, [
|
|
17766
18811
|
_cache[3] || (_cache[3] = createBaseVNode("h4", null, "Generated code", -1)),
|
|
17767
|
-
createBaseVNode("div", _hoisted_3$
|
|
18812
|
+
createBaseVNode("div", _hoisted_3$9, [
|
|
17768
18813
|
createBaseVNode("button", {
|
|
17769
18814
|
class: "refresh-button",
|
|
17770
18815
|
disabled: loading.value,
|
|
17771
18816
|
onClick: refreshCode
|
|
17772
18817
|
}, [
|
|
17773
|
-
!loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$
|
|
18818
|
+
!loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$6, _cache[1] || (_cache[1] = [
|
|
17774
18819
|
createBaseVNode("path", { d: "M23 4v6h-6" }, null, -1),
|
|
17775
18820
|
createBaseVNode("path", { d: "M1 20v-6h6" }, null, -1),
|
|
17776
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)
|
|
17777
18822
|
]))) : createCommentVNode("", true),
|
|
17778
|
-
loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$
|
|
18823
|
+
loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$5)) : createCommentVNode("", true),
|
|
17779
18824
|
createTextVNode(" " + toDisplayString(loading.value ? "Loading..." : "Refresh"), 1)
|
|
17780
|
-
], 8, _hoisted_4$
|
|
18825
|
+
], 8, _hoisted_4$8),
|
|
17781
18826
|
createBaseVNode("button", {
|
|
17782
18827
|
class: "export-button",
|
|
17783
18828
|
onClick: exportCode
|
|
@@ -17814,69 +18859,18 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
17814
18859
|
}
|
|
17815
18860
|
});
|
|
17816
18861
|
const CodeGenerator_vue_vue_type_style_index_0_scoped_8bafe064_lang = "";
|
|
17817
|
-
const CodeGenerator = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17818
|
-
const
|
|
17819
|
-
const
|
|
17820
|
-
const
|
|
17821
|
-
const
|
|
17822
|
-
const __vite_glob_0_4 = "/assets/cross_join-d30c0290.png";
|
|
17823
|
-
const __vite_glob_0_5 = "/assets/database_reader-ce1e55f3.svg";
|
|
17824
|
-
const __vite_glob_0_6 = "/assets/database_writer-b4ad0753.svg";
|
|
17825
|
-
const __vite_glob_0_7 = "/assets/explore_data-8a0a2861.png";
|
|
17826
|
-
const __vite_glob_0_8 = "data:image/png;base64,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";
|
|
17827
|
-
const __vite_glob_0_9 = "/assets/filter-d7708bda.png";
|
|
17828
|
-
const __vite_glob_0_10 = "/assets/formula-eeeb1611.png";
|
|
17829
|
-
const __vite_glob_0_11 = "/assets/fuzzy_match-40c161b2.png";
|
|
17830
|
-
const __vite_glob_0_12 = "data:image/png;base64,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";
|
|
17831
|
-
const __vite_glob_0_13 = "/assets/graph_solver-8b7888b8.png";
|
|
17832
|
-
const __vite_glob_0_14 = "/assets/group_by-80561fc3.png";
|
|
17833
|
-
const __vite_glob_0_15 = "/assets/input_data-ab2eb678.png";
|
|
17834
|
-
const __vite_glob_0_16 = "/assets/join-349043ae.png";
|
|
17835
|
-
const __vite_glob_0_17 = "/assets/manual_input-ae98f31d.png";
|
|
17836
|
-
const __vite_glob_0_18 = "/assets/old_join-5d0eb604.png";
|
|
17837
|
-
const __vite_glob_0_19 = "/assets/output-06ec0371.png";
|
|
17838
|
-
const __vite_glob_0_20 = "/assets/pivot-9660df51.png";
|
|
17839
|
-
const __vite_glob_0_21 = "/assets/polars_code-05ce5dc6.png";
|
|
17840
|
-
const __vite_glob_0_22 = "/assets/record_count-dab44eb5.png";
|
|
17841
|
-
const __vite_glob_0_23 = "/assets/record_id-0b15856b.png";
|
|
17842
|
-
const __vite_glob_0_24 = "/assets/sample-693a88b5.png";
|
|
17843
|
-
const __vite_glob_0_25 = "/assets/select-b0d0437a.png";
|
|
17844
|
-
const __vite_glob_0_26 = "/assets/sort-2aa579f0.png";
|
|
17845
|
-
const __vite_glob_0_27 = "/assets/summarize-2a099231.png";
|
|
17846
|
-
const __vite_glob_0_28 = "/assets/text_to_rows-859b29ea.png";
|
|
17847
|
-
const __vite_glob_0_29 = "/assets/union-2d8609f4.png";
|
|
17848
|
-
const __vite_glob_0_30 = "/assets/unique-1958b98a.png";
|
|
17849
|
-
const __vite_glob_0_31 = "/assets/unpivot-d3cb4b5b.png";
|
|
17850
|
-
const __vite_glob_0_32 = "/assets/view-7a0f0be1.png";
|
|
17851
|
-
const getImageUrl = (name) => {
|
|
17852
|
-
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;
|
|
17853
|
-
};
|
|
17854
|
-
const fetchNodes = async () => {
|
|
17855
|
-
const response = await axios.get("/node_list");
|
|
17856
|
-
const listNodes = response.data;
|
|
17857
|
-
return listNodes;
|
|
17858
|
-
};
|
|
17859
|
-
const useNodes = () => {
|
|
17860
|
-
const nodes = ref([]);
|
|
17861
|
-
const fetchNodes2 = async () => {
|
|
17862
|
-
const response = await axios.get("/node_list");
|
|
17863
|
-
const allNodes = response.data;
|
|
17864
|
-
nodes.value = allNodes.filter((node) => node.prod_ready);
|
|
17865
|
-
};
|
|
17866
|
-
onMounted(fetchNodes2);
|
|
17867
|
-
return { nodes };
|
|
17868
|
-
};
|
|
17869
|
-
const _hoisted_1$9 = { class: "nodes-wrapper" };
|
|
17870
|
-
const _hoisted_2$6 = ["onClick"];
|
|
17871
|
-
const _hoisted_3$5 = { class: "category-title" };
|
|
17872
|
-
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 = {
|
|
17873
18867
|
key: 0,
|
|
17874
18868
|
class: "category-content"
|
|
17875
18869
|
};
|
|
17876
|
-
const _hoisted_5$
|
|
17877
|
-
const _hoisted_6$
|
|
17878
|
-
const _hoisted_7$
|
|
17879
|
-
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({
|
|
17880
18874
|
__name: "NodeList",
|
|
17881
18875
|
emits: ["dragstart"],
|
|
17882
18876
|
setup(__props) {
|
|
@@ -17926,7 +18920,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17926
18920
|
};
|
|
17927
18921
|
return (_ctx, _cache) => {
|
|
17928
18922
|
const _component_el_icon = resolveComponent("el-icon");
|
|
17929
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
18923
|
+
return openBlock(), createElementBlock("div", _hoisted_1$b, [
|
|
17930
18924
|
withDirectives(createBaseVNode("input", {
|
|
17931
18925
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
|
|
17932
18926
|
type: "text",
|
|
@@ -17944,15 +18938,15 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17944
18938
|
class: "category-header",
|
|
17945
18939
|
onClick: ($event) => toggleCategory(category)
|
|
17946
18940
|
}, [
|
|
17947
|
-
createBaseVNode("span", _hoisted_3$
|
|
18941
|
+
createBaseVNode("span", _hoisted_3$8, toDisplayString(categoryInfo.name), 1),
|
|
17948
18942
|
createVNode(_component_el_icon, { class: "category-icon" }, {
|
|
17949
18943
|
default: withCtx(() => [
|
|
17950
18944
|
openCategories.value[category] ? (openBlock(), createBlock(unref(arrow_down_default), { key: 0 })) : (openBlock(), createBlock(unref(arrow_right_default), { key: 1 }))
|
|
17951
18945
|
]),
|
|
17952
18946
|
_: 2
|
|
17953
18947
|
}, 1024)
|
|
17954
|
-
], 8, _hoisted_2$
|
|
17955
|
-
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, [
|
|
17956
18950
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filteredNodes.value[category], (node) => {
|
|
17957
18951
|
return openBlock(), createElementBlock("div", {
|
|
17958
18952
|
key: node.item,
|
|
@@ -17964,9 +18958,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17964
18958
|
src: unref(getImageUrl)(node.image),
|
|
17965
18959
|
alt: node.name,
|
|
17966
18960
|
class: "node-image"
|
|
17967
|
-
}, null, 8, _hoisted_6$
|
|
17968
|
-
createBaseVNode("span", _hoisted_7$
|
|
17969
|
-
], 40, _hoisted_5$
|
|
18961
|
+
}, null, 8, _hoisted_6$4),
|
|
18962
|
+
createBaseVNode("span", _hoisted_7$3, toDisplayString(node.name), 1)
|
|
18963
|
+
], 40, _hoisted_5$5);
|
|
17970
18964
|
}), 128))
|
|
17971
18965
|
])) : createCommentVNode("", true)
|
|
17972
18966
|
]);
|
|
@@ -17976,128 +18970,125 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17976
18970
|
}
|
|
17977
18971
|
});
|
|
17978
18972
|
const NodeList_vue_vue_type_style_index_0_scoped_a8d4b46b_lang = "";
|
|
17979
|
-
const NodeList = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17980
|
-
const
|
|
17981
|
-
|
|
17982
|
-
|
|
17983
|
-
|
|
17984
|
-
|
|
17985
|
-
|
|
17986
|
-
|
|
17987
|
-
|
|
17988
|
-
|
|
17989
|
-
|
|
17990
|
-
|
|
17991
|
-
|
|
17992
|
-
|
|
17993
|
-
|
|
17994
|
-
|
|
17995
|
-
|
|
17996
|
-
|
|
17997
|
-
|
|
17998
|
-
|
|
17999
|
-
const saveItemState = (id2) => {
|
|
18000
|
-
const itemState = items.value[id2];
|
|
18001
|
-
localStorage.setItem(`overlayPositionAndSize_${id2}`, JSON.stringify(itemState));
|
|
18002
|
-
};
|
|
18003
|
-
const loadItemState = (id2) => {
|
|
18004
|
-
const savedState = localStorage.getItem(`overlayPositionAndSize_${id2}`);
|
|
18005
|
-
if (savedState) {
|
|
18006
|
-
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
|
|
18007
18993
|
}
|
|
18008
|
-
}
|
|
18009
|
-
|
|
18010
|
-
|
|
18011
|
-
|
|
18012
|
-
|
|
18013
|
-
|
|
18014
|
-
|
|
18015
|
-
|
|
18016
|
-
|
|
18017
|
-
|
|
18018
|
-
|
|
18019
|
-
|
|
18020
|
-
|
|
18021
|
-
|
|
18022
|
-
|
|
18023
|
-
|
|
18024
|
-
|
|
18025
|
-
|
|
18026
|
-
|
|
18027
|
-
|
|
18028
|
-
|
|
18029
|
-
|
|
18030
|
-
|
|
18031
|
-
|
|
18032
|
-
|
|
18033
|
-
|
|
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();
|
|
18034
19039
|
}
|
|
18035
|
-
|
|
18036
|
-
|
|
18037
|
-
|
|
18038
|
-
|
|
18039
|
-
|
|
18040
|
-
|
|
18041
|
-
|
|
18042
|
-
|
|
18043
|
-
|
|
18044
|
-
|
|
18045
|
-
if (idItemClicked.value) {
|
|
18046
|
-
items.value[idItemClicked.value].zIndex = 100;
|
|
18047
|
-
}
|
|
18048
|
-
items.value[id2].zIndex = 1e3;
|
|
18049
|
-
idItemClicked.value = id2;
|
|
18050
|
-
};
|
|
18051
|
-
const setResizing = (resizing) => {
|
|
18052
|
-
inResizing.value = resizing;
|
|
18053
|
-
};
|
|
18054
|
-
const getResizing = () => {
|
|
18055
|
-
return inResizing.value;
|
|
18056
|
-
};
|
|
18057
|
-
const scrollOnItem = (id2) => {
|
|
18058
|
-
const itemElement = document.getElementById(id2);
|
|
18059
|
-
if (!itemElement)
|
|
18060
|
-
return;
|
|
18061
|
-
const observer = new IntersectionObserver(
|
|
18062
|
-
(entries) => {
|
|
18063
|
-
entries.forEach((entry) => {
|
|
18064
|
-
if (entry.isIntersecting) {
|
|
18065
|
-
idItemVisible.value = id2;
|
|
18066
|
-
items.value[id2].zIndex = 1e3;
|
|
18067
|
-
} else if (idItemVisible.value === id2) {
|
|
18068
|
-
items.value[id2].zIndex = 100;
|
|
18069
|
-
idItemVisible.value = null;
|
|
18070
|
-
}
|
|
18071
|
-
});
|
|
18072
|
-
},
|
|
18073
|
-
{
|
|
18074
|
-
threshold: 0.5
|
|
18075
|
-
// 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
|
+
};
|
|
18076
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 }
|
|
18077
19073
|
);
|
|
18078
|
-
|
|
18079
|
-
|
|
18080
|
-
|
|
18081
|
-
|
|
18082
|
-
|
|
18083
|
-
|
|
18084
|
-
|
|
18085
|
-
|
|
18086
|
-
|
|
18087
|
-
|
|
18088
|
-
|
|
18089
|
-
|
|
18090
|
-
|
|
18091
|
-
// Exposing the visible item
|
|
18092
|
-
toggleFullScreen,
|
|
18093
|
-
// Toggle fullscreen state
|
|
18094
|
-
setFullScreen
|
|
18095
|
-
// Set fullscreen state with boolean parameter
|
|
18096
|
-
};
|
|
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
|
+
}
|
|
18097
19087
|
});
|
|
18098
|
-
const _hoisted_1$
|
|
18099
|
-
const _hoisted_2$
|
|
18100
|
-
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({
|
|
18101
19092
|
__name: "DraggableItem",
|
|
18102
19093
|
props: {
|
|
18103
19094
|
id: {
|
|
@@ -18120,6 +19111,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18120
19111
|
type: Boolean,
|
|
18121
19112
|
default: false
|
|
18122
19113
|
},
|
|
19114
|
+
showPresets: {
|
|
19115
|
+
type: Boolean,
|
|
19116
|
+
default: false
|
|
19117
|
+
},
|
|
18123
19118
|
initialPosition: {
|
|
18124
19119
|
type: String,
|
|
18125
19120
|
default: "free"
|
|
@@ -18132,7 +19127,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18132
19127
|
type: Number,
|
|
18133
19128
|
default: null
|
|
18134
19129
|
},
|
|
18135
|
-
|
|
19130
|
+
initialLeft: {
|
|
18136
19131
|
type: Number,
|
|
18137
19132
|
default: null
|
|
18138
19133
|
},
|
|
@@ -18159,9 +19154,49 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18159
19154
|
allowFullScreen: {
|
|
18160
19155
|
type: Boolean,
|
|
18161
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
|
|
18162
19169
|
}
|
|
18163
19170
|
},
|
|
18164
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({});
|
|
18165
19200
|
const resizeDelay = ref(null);
|
|
18166
19201
|
const resizeOnEnter = (e2, position) => {
|
|
18167
19202
|
if (resizeDelay.value)
|
|
@@ -18185,31 +19220,51 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18185
19220
|
}
|
|
18186
19221
|
}, 200);
|
|
18187
19222
|
};
|
|
18188
|
-
const props2 = __props;
|
|
18189
|
-
const itemStore = useItemStore();
|
|
18190
|
-
const itemState = ref(
|
|
18191
|
-
itemStore.items[props2.id] || {
|
|
18192
|
-
width: props2.initialWidth,
|
|
18193
|
-
height: props2.initialHeight,
|
|
18194
|
-
left: 100,
|
|
18195
|
-
top: 100
|
|
18196
|
-
}
|
|
18197
|
-
);
|
|
18198
|
-
const isDragging = ref(false);
|
|
18199
|
-
const isResizing = ref(false);
|
|
18200
|
-
const startX = ref(0);
|
|
18201
|
-
const startY = ref(0);
|
|
18202
|
-
const startWidth = ref(0);
|
|
18203
|
-
const startHeight = ref(0);
|
|
18204
|
-
const startLeft = ref(0);
|
|
18205
|
-
const startTop = ref(0);
|
|
18206
|
-
const isMinimized = ref(false);
|
|
18207
|
-
const instance = getCurrentInstance();
|
|
18208
|
-
const activeLine = ref(null);
|
|
18209
|
-
let resizeTimeout;
|
|
18210
19223
|
const savePositionAndSize = () => {
|
|
18211
|
-
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
|
+
});
|
|
18212
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
|
+
}
|
|
18213
19268
|
};
|
|
18214
19269
|
const loadPositionAndSize = () => {
|
|
18215
19270
|
itemStore.loadItemState(props2.id);
|
|
@@ -18230,28 +19285,33 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18230
19285
|
itemStore.inResizing = true;
|
|
18231
19286
|
};
|
|
18232
19287
|
const toggleFullScreen = () => {
|
|
18233
|
-
|
|
18234
|
-
|
|
18235
|
-
|
|
18236
|
-
|
|
18237
|
-
|
|
18238
|
-
|
|
18239
|
-
|
|
18240
|
-
|
|
18241
|
-
|
|
18242
|
-
|
|
18243
|
-
|
|
18244
|
-
|
|
18245
|
-
|
|
18246
|
-
|
|
18247
|
-
|
|
18248
|
-
|
|
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
|
+
}
|
|
18249
19308
|
}
|
|
18250
|
-
savePositionAndSize();
|
|
18251
19309
|
};
|
|
18252
19310
|
const startResizeRight = (e2) => {
|
|
18253
19311
|
e2.preventDefault();
|
|
18254
19312
|
handleReziging(e2);
|
|
19313
|
+
resizeDirection.value = "right";
|
|
19314
|
+
captureGroupInitialStates();
|
|
18255
19315
|
startX.value = e2.clientX;
|
|
18256
19316
|
startWidth.value = itemState.value.width;
|
|
18257
19317
|
document.addEventListener("mousemove", onResizeWidth);
|
|
@@ -18261,7 +19321,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18261
19321
|
if (isResizing.value) {
|
|
18262
19322
|
const deltaX = e2.clientX - startX.value;
|
|
18263
19323
|
const newWidth = startWidth.value + deltaX;
|
|
18264
|
-
if (newWidth > 100 && newWidth < window.innerWidth
|
|
19324
|
+
if (newWidth > 100 && newWidth < window.innerWidth) {
|
|
18265
19325
|
itemState.value.width = newWidth;
|
|
18266
19326
|
savePositionAndSize();
|
|
18267
19327
|
}
|
|
@@ -18270,6 +19330,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18270
19330
|
const startResizeBottom = (e2) => {
|
|
18271
19331
|
e2.preventDefault();
|
|
18272
19332
|
handleReziging(e2);
|
|
19333
|
+
resizeDirection.value = "bottom";
|
|
19334
|
+
captureGroupInitialStates();
|
|
18273
19335
|
startY.value = e2.clientY;
|
|
18274
19336
|
startHeight.value = itemState.value.height;
|
|
18275
19337
|
document.addEventListener("mousemove", onResizeHeight);
|
|
@@ -18288,6 +19350,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18288
19350
|
const startResizeTop = (e2) => {
|
|
18289
19351
|
e2.preventDefault();
|
|
18290
19352
|
handleReziging(e2);
|
|
19353
|
+
resizeDirection.value = "top";
|
|
19354
|
+
captureGroupInitialStates();
|
|
18291
19355
|
startY.value = e2.clientY;
|
|
18292
19356
|
startTop.value = itemState.value.top;
|
|
18293
19357
|
startHeight.value = itemState.value.height;
|
|
@@ -18299,7 +19363,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18299
19363
|
const deltaY = e2.clientY - startY.value;
|
|
18300
19364
|
const newTop = startTop.value + deltaY;
|
|
18301
19365
|
const newHeight = startHeight.value - deltaY;
|
|
18302
|
-
if (newHeight > 100 && newHeight < window.innerHeight - 100) {
|
|
19366
|
+
if (newHeight > 100 && newHeight < window.innerHeight - 100 && newTop >= 0) {
|
|
18303
19367
|
itemState.value.top = newTop;
|
|
18304
19368
|
itemState.value.height = newHeight;
|
|
18305
19369
|
savePositionAndSize();
|
|
@@ -18309,6 +19373,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18309
19373
|
const startResizeLeft = (e2) => {
|
|
18310
19374
|
e2.preventDefault();
|
|
18311
19375
|
handleReziging(e2);
|
|
19376
|
+
resizeDirection.value = "left";
|
|
19377
|
+
captureGroupInitialStates();
|
|
18312
19378
|
startX.value = e2.clientX;
|
|
18313
19379
|
startLeft.value = itemState.value.left;
|
|
18314
19380
|
startWidth.value = itemState.value.width;
|
|
@@ -18328,15 +19394,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18328
19394
|
}
|
|
18329
19395
|
};
|
|
18330
19396
|
const stopResize = () => {
|
|
18331
|
-
isResizing.value
|
|
18332
|
-
|
|
18333
|
-
|
|
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);
|
|
18334
19409
|
}
|
|
18335
|
-
itemStore.inResizing = false;
|
|
18336
|
-
document.removeEventListener("mousemove", onResizeWidth);
|
|
18337
|
-
document.removeEventListener("mousemove", onResizeHeight);
|
|
18338
|
-
document.removeEventListener("mousemove", onResizeTop);
|
|
18339
|
-
document.removeEventListener("mousemove", onResizeLeft);
|
|
18340
19410
|
};
|
|
18341
19411
|
const startMove = (e2) => {
|
|
18342
19412
|
registerClick();
|
|
@@ -18360,13 +19430,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18360
19430
|
const deltaY = e2.clientY - startY.value;
|
|
18361
19431
|
itemState.value.left = startLeft.value + deltaX;
|
|
18362
19432
|
itemState.value.top = startTop.value + deltaY;
|
|
18363
|
-
savePositionAndSize();
|
|
18364
19433
|
}
|
|
18365
19434
|
};
|
|
18366
19435
|
const stopMove = () => {
|
|
18367
|
-
isDragging.value
|
|
18368
|
-
|
|
18369
|
-
|
|
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
|
+
}
|
|
18370
19446
|
};
|
|
18371
19447
|
const moveToRight = () => {
|
|
18372
19448
|
var _a;
|
|
@@ -18387,11 +19463,11 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18387
19463
|
const parentElement = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el;
|
|
18388
19464
|
if (parentElement) {
|
|
18389
19465
|
const parentBottom = parentElement.offsetTop + parentElement.offsetHeight;
|
|
18390
|
-
itemState.value.left = parentElement.offsetLeft;
|
|
18391
|
-
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);
|
|
18392
19468
|
itemState.value.stickynessPosition = "bottom";
|
|
18393
19469
|
if (itemState.value.fullWidth) {
|
|
18394
|
-
itemState.value.width = parentElement.offsetWidth;
|
|
19470
|
+
itemState.value.width = parentElement.offsetWidth - props2.initialLeft;
|
|
18395
19471
|
}
|
|
18396
19472
|
savePositionAndSize();
|
|
18397
19473
|
}
|
|
@@ -18423,27 +19499,50 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18423
19499
|
}
|
|
18424
19500
|
};
|
|
18425
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
|
+
}
|
|
18426
19508
|
switch (itemState.value.stickynessPosition) {
|
|
18427
19509
|
case "top":
|
|
18428
|
-
|
|
19510
|
+
itemState.value.left = parentElement.offsetLeft;
|
|
19511
|
+
itemState.value.top = parentElement.offsetTop;
|
|
19512
|
+
if (itemState.value.fullWidth) {
|
|
19513
|
+
itemState.value.width = parentElement.offsetWidth;
|
|
19514
|
+
}
|
|
18429
19515
|
break;
|
|
18430
19516
|
case "bottom":
|
|
18431
|
-
|
|
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
|
+
}
|
|
18432
19522
|
break;
|
|
18433
19523
|
case "left":
|
|
18434
|
-
|
|
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
|
+
}
|
|
18435
19529
|
break;
|
|
18436
19530
|
case "right":
|
|
18437
|
-
|
|
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
|
+
}
|
|
18438
19536
|
break;
|
|
18439
19537
|
}
|
|
19538
|
+
savePositionAndSize();
|
|
18440
19539
|
};
|
|
18441
19540
|
const calculateWidth = () => {
|
|
18442
19541
|
var _a, _b;
|
|
18443
19542
|
if (props2.initialWidth) {
|
|
18444
19543
|
return props2.initialWidth;
|
|
18445
19544
|
} else if (props2.initialPosition === "top" || props2.initialPosition === "bottom") {
|
|
18446
|
-
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;
|
|
18447
19546
|
} else
|
|
18448
19547
|
return 300;
|
|
18449
19548
|
};
|
|
@@ -18452,7 +19551,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18452
19551
|
if (props2.initialHeight) {
|
|
18453
19552
|
return props2.initialHeight;
|
|
18454
19553
|
} else if (props2.initialPosition === "left" || props2.initialPosition === "right") {
|
|
18455
|
-
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;
|
|
18456
19555
|
} else
|
|
18457
19556
|
return 300;
|
|
18458
19557
|
};
|
|
@@ -18474,74 +19573,117 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18474
19573
|
itemStore.clickOnItem(props2.id);
|
|
18475
19574
|
};
|
|
18476
19575
|
const setFullScreen = (makeFull) => {
|
|
18477
|
-
|
|
18478
|
-
|
|
18479
|
-
}
|
|
19576
|
+
itemStore.setFullScreen(props2.id, makeFull);
|
|
19577
|
+
loadPositionAndSize();
|
|
18480
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
|
+
});
|
|
18481
19606
|
onMounted(() => {
|
|
18482
|
-
|
|
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) {
|
|
18483
19624
|
itemStore.setItemState(props2.id, {
|
|
18484
|
-
width:
|
|
18485
|
-
height:
|
|
18486
|
-
left:
|
|
18487
|
-
top:
|
|
19625
|
+
width: initialWidth,
|
|
19626
|
+
height: initialHeight,
|
|
19627
|
+
left: initialLeft,
|
|
19628
|
+
top: initialTop,
|
|
18488
19629
|
fullHeight: !props2.initialHeight,
|
|
18489
|
-
fullWidth: !props2.initialWidth
|
|
19630
|
+
fullWidth: !props2.initialWidth,
|
|
19631
|
+
stickynessPosition: props2.initialPosition,
|
|
19632
|
+
group: props2.group,
|
|
19633
|
+
syncDimensions: props2.syncDimensions
|
|
18490
19634
|
});
|
|
18491
19635
|
itemState.value = itemStore.items[props2.id];
|
|
18492
|
-
|
|
18493
|
-
|
|
18494
|
-
|
|
19636
|
+
if (props2.initialPosition !== "free") {
|
|
19637
|
+
nextTick(() => {
|
|
19638
|
+
applyStickyPosition();
|
|
19639
|
+
});
|
|
18495
19640
|
}
|
|
18496
19641
|
} else {
|
|
18497
19642
|
loadPositionAndSize();
|
|
19643
|
+
if (itemState.value.stickynessPosition && itemState.value.stickynessPosition !== "free") {
|
|
19644
|
+
nextTick(() => {
|
|
19645
|
+
applyStickyPosition();
|
|
19646
|
+
});
|
|
19647
|
+
}
|
|
18498
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);
|
|
18499
19658
|
document.addEventListener("mouseup", stopResize);
|
|
18500
|
-
|
|
19659
|
+
window[`resetHandler_${props2.id}`] = handleLayoutReset;
|
|
18501
19660
|
});
|
|
18502
|
-
|
|
18503
|
-
|
|
19661
|
+
__expose({
|
|
19662
|
+
setFullScreen
|
|
18504
19663
|
});
|
|
18505
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
|
+
}
|
|
18506
19670
|
document.removeEventListener("mouseup", stopResize);
|
|
19671
|
+
document.removeEventListener("mousemove", onMove);
|
|
18507
19672
|
document.removeEventListener("mouseup", stopMove);
|
|
18508
|
-
|
|
18509
|
-
|
|
18510
|
-
|
|
18511
|
-
|
|
18512
|
-
isDragging,
|
|
18513
|
-
isResizing,
|
|
18514
|
-
startX,
|
|
18515
|
-
startY,
|
|
18516
|
-
startWidth,
|
|
18517
|
-
startHeight,
|
|
18518
|
-
startLeft,
|
|
18519
|
-
startTop,
|
|
18520
|
-
left: itemState.value.left,
|
|
18521
|
-
top: itemState.value.top,
|
|
18522
|
-
startResizeRight,
|
|
18523
|
-
onResizeWidth,
|
|
18524
|
-
startResizeBottom,
|
|
18525
|
-
onResizeHeight,
|
|
18526
|
-
startResizeTop,
|
|
18527
|
-
onResizeTop,
|
|
18528
|
-
startResizeLeft,
|
|
18529
|
-
onResizeLeft,
|
|
18530
|
-
stopResize,
|
|
18531
|
-
startMove,
|
|
18532
|
-
onMove,
|
|
18533
|
-
stopMove,
|
|
18534
|
-
moveToRight,
|
|
18535
|
-
moveToBottom,
|
|
18536
|
-
moveToLeft,
|
|
18537
|
-
moveToTop,
|
|
18538
|
-
setHeight: (value) => itemState.value.height = value,
|
|
18539
|
-
setWitdh: (value) => itemState.value.width = value,
|
|
18540
|
-
setFullScreen
|
|
19673
|
+
document.removeEventListener("mousemove", onResizeWidth);
|
|
19674
|
+
document.removeEventListener("mousemove", onResizeHeight);
|
|
19675
|
+
document.removeEventListener("mousemove", onResizeTop);
|
|
19676
|
+
document.removeEventListener("mousemove", onResizeLeft);
|
|
18541
19677
|
});
|
|
18542
19678
|
return (_ctx, _cache) => {
|
|
18543
19679
|
return openBlock(), createElementBlock("div", {
|
|
18544
|
-
|
|
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
|
+
}]),
|
|
18545
19687
|
style: normalizeStyle({
|
|
18546
19688
|
width: isMinimized.value ? "auto" : itemState.value.width + "px",
|
|
18547
19689
|
height: isMinimized.value ? "auto" : itemState.value.height + "px",
|
|
@@ -18557,14 +19699,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18557
19699
|
__props.allowMinimizing ? (openBlock(), createElementBlock("button", {
|
|
18558
19700
|
key: 0,
|
|
18559
19701
|
class: "minimal-button",
|
|
19702
|
+
"data-tooltip": "true",
|
|
18560
19703
|
title: isMinimized.value ? "Maximize" : "Minimize",
|
|
18561
19704
|
onClick: toggleMinimize
|
|
18562
19705
|
}, [
|
|
18563
|
-
createBaseVNode("span",
|
|
18564
|
-
], 8,
|
|
19706
|
+
createBaseVNode("span", _hoisted_3$6, toDisplayString(isMinimized.value ? "+" : "−"), 1)
|
|
19707
|
+
], 8, _hoisted_2$7)) : createCommentVNode("", true),
|
|
18565
19708
|
__props.showRight && itemState.value.stickynessPosition !== "right" ? (openBlock(), createElementBlock("button", {
|
|
18566
19709
|
key: 1,
|
|
18567
19710
|
class: "minimal-button",
|
|
19711
|
+
"data-tooltip": "true",
|
|
18568
19712
|
title: "Move to Right",
|
|
18569
19713
|
onClick: moveToRight
|
|
18570
19714
|
}, _cache[4] || (_cache[4] = [
|
|
@@ -18573,6 +19717,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18573
19717
|
__props.showBottom && itemState.value.stickynessPosition !== "bottom" ? (openBlock(), createElementBlock("button", {
|
|
18574
19718
|
key: 2,
|
|
18575
19719
|
class: "minimal-button",
|
|
19720
|
+
"data-tooltip": "true",
|
|
18576
19721
|
title: "Move to Bottom",
|
|
18577
19722
|
onClick: moveToBottom
|
|
18578
19723
|
}, _cache[5] || (_cache[5] = [
|
|
@@ -18581,6 +19726,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18581
19726
|
__props.showLeft && itemState.value.stickynessPosition !== "left" ? (openBlock(), createElementBlock("button", {
|
|
18582
19727
|
key: 3,
|
|
18583
19728
|
class: "minimal-button",
|
|
19729
|
+
"data-tooltip": "true",
|
|
18584
19730
|
title: "Move to Left",
|
|
18585
19731
|
onClick: moveToLeft
|
|
18586
19732
|
}, _cache[6] || (_cache[6] = [
|
|
@@ -18589,6 +19735,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18589
19735
|
__props.showTop && itemState.value.stickynessPosition !== "top" ? (openBlock(), createElementBlock("button", {
|
|
18590
19736
|
key: 4,
|
|
18591
19737
|
class: "minimal-button",
|
|
19738
|
+
"data-tooltip": "true",
|
|
18592
19739
|
title: "Move to Top",
|
|
18593
19740
|
onClick: moveToTop
|
|
18594
19741
|
}, _cache[7] || (_cache[7] = [
|
|
@@ -18597,7 +19744,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18597
19744
|
__props.allowFullScreen && !itemState.value.fullScreen ? (openBlock(), createElementBlock("button", {
|
|
18598
19745
|
key: 5,
|
|
18599
19746
|
class: "minimal-button",
|
|
18600
|
-
|
|
19747
|
+
"data-tooltip": "true",
|
|
19748
|
+
"data-tooltip-text": "Toggle Full Screen",
|
|
18601
19749
|
onClick: toggleFullScreen
|
|
18602
19750
|
}, _cache[8] || (_cache[8] = [
|
|
18603
19751
|
createBaseVNode("span", { class: "icon" }, "⬜", -1)
|
|
@@ -18605,12 +19753,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18605
19753
|
__props.allowFullScreen && itemState.value.fullScreen ? (openBlock(), createElementBlock("button", {
|
|
18606
19754
|
key: 6,
|
|
18607
19755
|
class: "minimal-button",
|
|
18608
|
-
|
|
19756
|
+
"data-tooltip": "true",
|
|
19757
|
+
"data-tooltip-text": "Exit Full Screen",
|
|
18609
19758
|
onClick: toggleFullScreen
|
|
18610
19759
|
}, _cache[9] || (_cache[9] = [
|
|
18611
19760
|
createBaseVNode("span", { class: "icon" }, "❐", -1)
|
|
18612
19761
|
]))) : createCommentVNode("", true),
|
|
18613
|
-
|
|
19762
|
+
createBaseVNode("span", {
|
|
19763
|
+
class: "group-badge",
|
|
19764
|
+
onMousedown: startMove
|
|
19765
|
+
}, toDisplayString(__props.title), 33)
|
|
18614
19766
|
], 32),
|
|
18615
19767
|
createBaseVNode("div", {
|
|
18616
19768
|
class: "content",
|
|
@@ -18638,12 +19790,214 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18638
19790
|
onMousedown: withModifiers(startResizeLeft, ["stop"]),
|
|
18639
19791
|
onMouseenter: _cache[3] || (_cache[3] = ($event) => resizeOnEnter($event, "left"))
|
|
18640
19792
|
}, null, 32)
|
|
18641
|
-
],
|
|
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);
|
|
18642
19996
|
};
|
|
18643
19997
|
}
|
|
18644
19998
|
});
|
|
18645
|
-
const
|
|
18646
|
-
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"]]);
|
|
18647
20001
|
var __defProp$2 = Object.defineProperty;
|
|
18648
20002
|
var __defProps = Object.defineProperties;
|
|
18649
20003
|
var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
|
|
@@ -67181,15 +68535,15 @@ var __defProp$1 = Object.defineProperty;
|
|
|
67181
68535
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
67182
68536
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
67183
68537
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
67184
|
-
var
|
|
68538
|
+
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
67185
68539
|
var __spreadValues = (a3, b2) => {
|
|
67186
68540
|
for (var prop in b2 || (b2 = {}))
|
|
67187
68541
|
if (__hasOwnProp.call(b2, prop))
|
|
67188
|
-
|
|
68542
|
+
__defNormalProp2(a3, prop, b2[prop]);
|
|
67189
68543
|
if (__getOwnPropSymbols)
|
|
67190
68544
|
for (var prop of __getOwnPropSymbols(b2)) {
|
|
67191
68545
|
if (__propIsEnum.call(b2, prop))
|
|
67192
|
-
|
|
68546
|
+
__defNormalProp2(a3, prop, b2[prop]);
|
|
67193
68547
|
}
|
|
67194
68548
|
return a3;
|
|
67195
68549
|
};
|
|
@@ -67659,7 +69013,7 @@ var AgGridVue = defineComponent({
|
|
|
67659
69013
|
* @license MIT
|
|
67660
69014
|
**)
|
|
67661
69015
|
*/
|
|
67662
|
-
var
|
|
69016
|
+
var __defProp2 = Object.defineProperty;
|
|
67663
69017
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67664
69018
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
67665
69019
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
@@ -67667,7 +69021,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
67667
69021
|
if (decorator = decorators[i2])
|
|
67668
69022
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
67669
69023
|
if (kind && result)
|
|
67670
|
-
|
|
69024
|
+
__defProp2(target, key, result);
|
|
67671
69025
|
return result;
|
|
67672
69026
|
};
|
|
67673
69027
|
var _ClientSideNodeManager = class _ClientSideNodeManager2 {
|
|
@@ -69385,6 +70739,18 @@ const _hoisted_1$7 = {
|
|
|
69385
70739
|
key: 0,
|
|
69386
70740
|
class: "spinner-overlay"
|
|
69387
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 };
|
|
69388
70754
|
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
69389
70755
|
__name: "dataPreview",
|
|
69390
70756
|
props: {
|
|
@@ -69405,6 +70771,31 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69405
70771
|
const columnLength = ref(0);
|
|
69406
70772
|
const gridApi = ref(null);
|
|
69407
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
|
+
});
|
|
69408
70799
|
const defaultColDef = {
|
|
69409
70800
|
editable: true,
|
|
69410
70801
|
filter: true,
|
|
@@ -69413,8 +70804,17 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69413
70804
|
};
|
|
69414
70805
|
const onGridReady = (params) => {
|
|
69415
70806
|
gridApi.value = params.api;
|
|
70807
|
+
if (showFetchButton.value) {
|
|
70808
|
+
gridApi.value.hideOverlay();
|
|
70809
|
+
}
|
|
69416
70810
|
};
|
|
69417
|
-
|
|
70811
|
+
function dismissOutdatedBanner() {
|
|
70812
|
+
showOutdatedDataBanner.value = false;
|
|
70813
|
+
}
|
|
70814
|
+
async function handleRefresh() {
|
|
70815
|
+
showOutdatedDataBanner.value = false;
|
|
70816
|
+
await handleFetchData();
|
|
70817
|
+
}
|
|
69418
70818
|
const calculateGridHeight = () => {
|
|
69419
70819
|
const otherElementsHeight = 300;
|
|
69420
70820
|
const availableHeight = window.innerHeight - otherElementsHeight;
|
|
@@ -69424,39 +70824,81 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69424
70824
|
async function downloadData(nodeId) {
|
|
69425
70825
|
try {
|
|
69426
70826
|
isLoading.value = true;
|
|
70827
|
+
showFetchButton.value = false;
|
|
70828
|
+
showOutdatedDataBanner.value = false;
|
|
70829
|
+
currentNodeId.value = nodeId;
|
|
69427
70830
|
let resp = await nodeStore.getTableExample(nodeStore.flow_id, nodeId);
|
|
69428
70831
|
if (resp) {
|
|
69429
70832
|
dataPreview.value = resp;
|
|
70833
|
+
showOutdatedDataBanner.value = !resp.has_run_with_current_setup && resp.has_example_data;
|
|
69430
70834
|
const _cd = [];
|
|
69431
70835
|
const _columns = dataPreview.value.table_schema;
|
|
69432
70836
|
if (props2.showFileStats) {
|
|
69433
70837
|
_columns == null ? void 0 : _columns.forEach((item) => {
|
|
69434
|
-
_cd.push({
|
|
70838
|
+
_cd.push({
|
|
70839
|
+
field: item.name,
|
|
70840
|
+
headerName: item.name,
|
|
70841
|
+
resizable: true
|
|
70842
|
+
});
|
|
69435
70843
|
schema_dict[item.name] = item;
|
|
69436
70844
|
});
|
|
69437
70845
|
} else {
|
|
69438
70846
|
_columns == null ? void 0 : _columns.forEach((item) => {
|
|
69439
|
-
_cd.push({
|
|
70847
|
+
_cd.push({
|
|
70848
|
+
field: item.name,
|
|
70849
|
+
headerName: item.name,
|
|
70850
|
+
resizable: true
|
|
70851
|
+
});
|
|
69440
70852
|
});
|
|
69441
70853
|
}
|
|
69442
70854
|
columnDefs.value = _cd;
|
|
69443
|
-
if (
|
|
69444
|
-
|
|
69445
|
-
|
|
69446
|
-
|
|
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;
|
|
69447
70869
|
}
|
|
69448
|
-
showTable.value = true;
|
|
69449
|
-
dataAvailable.value = true;
|
|
69450
70870
|
}
|
|
69451
70871
|
} finally {
|
|
69452
70872
|
isLoading.value = false;
|
|
69453
70873
|
}
|
|
69454
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
|
+
}
|
|
69455
70895
|
function removeData() {
|
|
69456
70896
|
rowData.value = [];
|
|
69457
70897
|
showTable.value = false;
|
|
69458
70898
|
dataAvailable.value = false;
|
|
69459
70899
|
columnDefs.value = [{}];
|
|
70900
|
+
showFetchButton.value = false;
|
|
70901
|
+
currentNodeId.value = null;
|
|
69460
70902
|
}
|
|
69461
70903
|
ref(null);
|
|
69462
70904
|
onMounted(() => {
|
|
@@ -69472,13 +70914,41 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69472
70914
|
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$7, _cache[0] || (_cache[0] = [
|
|
69473
70915
|
createBaseVNode("div", { class: "spinner" }, null, -1)
|
|
69474
70916
|
]))) : createCommentVNode("", true),
|
|
69475
|
-
withDirectives(
|
|
69476
|
-
"
|
|
69477
|
-
|
|
69478
|
-
|
|
69479
|
-
|
|
69480
|
-
|
|
69481
|
-
|
|
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), [
|
|
69482
70952
|
[vShow, !isLoading.value]
|
|
69483
70953
|
])
|
|
69484
70954
|
], 64);
|
|
@@ -71013,7 +72483,7 @@ const _hoisted_4$4 = { class: "node-title" };
|
|
|
71013
72483
|
const _hoisted_5$3 = { class: "node-description" };
|
|
71014
72484
|
const _hoisted_6$2 = { key: 1 };
|
|
71015
72485
|
const _hoisted_7$1 = { class: "node-details" };
|
|
71016
|
-
const _hoisted_8 = {
|
|
72486
|
+
const _hoisted_8$1 = {
|
|
71017
72487
|
key: 0,
|
|
71018
72488
|
class: "failure"
|
|
71019
72489
|
};
|
|
@@ -71140,7 +72610,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
71140
72610
|
})
|
|
71141
72611
|
}, toDisplayString(node.success === null ? "Running" : node.success ? "Success" : "Failure"), 3)
|
|
71142
72612
|
]),
|
|
71143
|
-
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)
|
|
71144
72614
|
])
|
|
71145
72615
|
]),
|
|
71146
72616
|
_: 2
|
|
@@ -71210,7 +72680,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71210
72680
|
connectionRetries.value = 0;
|
|
71211
72681
|
errorMessage.value = null;
|
|
71212
72682
|
connectionStatus.value = "disconnected";
|
|
71213
|
-
console.log("Starting log streaming");
|
|
71214
72683
|
try {
|
|
71215
72684
|
const token = await authService.getToken();
|
|
71216
72685
|
if (!token) {
|
|
@@ -71242,7 +72711,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71242
72711
|
if (!hasReceivedMessage && nodeStore.isRunning) {
|
|
71243
72712
|
if (connectionRetries.value < maxRetries) {
|
|
71244
72713
|
connectionRetries.value++;
|
|
71245
|
-
console.log(`Retrying log connection (${connectionRetries.value}/${maxRetries})...`);
|
|
71246
72714
|
errorMessage.value = `Connection failed. Retrying (${connectionRetries.value}/${maxRetries})...`;
|
|
71247
72715
|
connectionStatus.value = "error";
|
|
71248
72716
|
stopStreamingLogs();
|
|
@@ -71386,8 +72854,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71386
72854
|
};
|
|
71387
72855
|
}
|
|
71388
72856
|
});
|
|
71389
|
-
const
|
|
71390
|
-
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"]]);
|
|
71391
72859
|
const _hoisted_1$4 = { class: "context-menu-header" };
|
|
71392
72860
|
const _hoisted_2$2 = { class: "context-menu-items" };
|
|
71393
72861
|
const _hoisted_3$2 = ["onClick"];
|
|
@@ -71489,11 +72957,32 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
71489
72957
|
});
|
|
71490
72958
|
const ContextMenu_vue_vue_type_style_index_0_scoped_7db4e6fc_lang = "";
|
|
71491
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
|
+
};
|
|
71492
72980
|
const _hoisted_1$3 = { class: "container" };
|
|
71493
72981
|
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
71494
72982
|
__name: "CanvasFlow",
|
|
71495
72983
|
emits: ["save", "run"],
|
|
71496
72984
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
72985
|
+
const itemStore = useItemStore();
|
|
71497
72986
|
const availableHeight = ref(0);
|
|
71498
72987
|
const nodeStore = useNodeStore();
|
|
71499
72988
|
const rawCustomNode = markRaw$1(CustomNode);
|
|
@@ -71517,14 +73006,23 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71517
73006
|
const contextMenuTarget = ref({ type: "pane", id: "" });
|
|
71518
73007
|
const emit = __emit;
|
|
71519
73008
|
const handleCanvasClick = (event) => {
|
|
71520
|
-
nodeStore.closeDrawer();
|
|
71521
73009
|
showTablePreview.value = false;
|
|
73010
|
+
nodeStore.node_id = -1;
|
|
73011
|
+
nodeStore.activeDrawerComponent = null;
|
|
71522
73012
|
nodeStore.hideLogViewer();
|
|
71523
73013
|
clickedPosition.value = {
|
|
71524
73014
|
x: event.x,
|
|
71525
73015
|
y: event.y
|
|
71526
73016
|
};
|
|
71527
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
|
+
};
|
|
71528
73026
|
const toggleShowTablePreview = () => {
|
|
71529
73027
|
showTablePreview.value = !showTablePreview.value;
|
|
71530
73028
|
};
|
|
@@ -71543,7 +73041,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71543
73041
|
setNodeTableView(nodeId);
|
|
71544
73042
|
});
|
|
71545
73043
|
fitView({ nodes: [nodeId.toString()] });
|
|
71546
|
-
nodeStore.node_id = nodeId;
|
|
71547
73044
|
};
|
|
71548
73045
|
async function onConnect(params) {
|
|
71549
73046
|
if (params.target && params.source) {
|
|
@@ -71567,6 +73064,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71567
73064
|
const nodeClick = (mouseEvent) => {
|
|
71568
73065
|
showTablePreview.value = true;
|
|
71569
73066
|
nextTick().then(() => {
|
|
73067
|
+
nodeStore.node_id = parseInt(mouseEvent.node.id);
|
|
73068
|
+
itemStore.bringToFront("tablePreview");
|
|
73069
|
+
itemStore.bringToFront("nodeSettings");
|
|
71570
73070
|
if (mouseEvent.node.id && !NodeIsSelected(mouseEvent.node.id) || dataPreview.value && dataPreview.value.dataLength == 0 && dataPreview.value.columnLength == 0) {
|
|
71571
73071
|
setNodeTableView(mouseEvent.node.id);
|
|
71572
73072
|
}
|
|
@@ -71574,7 +73074,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71574
73074
|
});
|
|
71575
73075
|
};
|
|
71576
73076
|
const setNodeTableView = (nodeId) => {
|
|
71577
|
-
console.log(dataPreview.value);
|
|
71578
73077
|
if (dataPreview.value) {
|
|
71579
73078
|
dataPreview.value.downloadData(nodeId);
|
|
71580
73079
|
}
|
|
@@ -71605,13 +73104,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71605
73104
|
console.log("Edge changes length is 2 so coming from a node change event");
|
|
71606
73105
|
return;
|
|
71607
73106
|
}
|
|
71608
|
-
console.log("Edge changes", edgeChanges);
|
|
71609
73107
|
for (const edgeChange of edgeChanges) {
|
|
71610
|
-
if (edgeChange.type === "
|
|
71611
|
-
console.log("This edge change does not work");
|
|
71612
|
-
} else if (edgeChange.type === "remove") {
|
|
73108
|
+
if (edgeChange.type === "remove") {
|
|
71613
73109
|
const nodeConnection = convertEdgeChangeToNodeConnection(edgeChange);
|
|
71614
|
-
console.log("Removing connection", nodeConnection);
|
|
71615
73110
|
deleteConnection(nodeStore.flow_id, nodeConnection);
|
|
71616
73111
|
}
|
|
71617
73112
|
}
|
|
@@ -71650,6 +73145,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71650
73145
|
copyValue(position.x, position.y);
|
|
71651
73146
|
}
|
|
71652
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
|
+
};
|
|
71653
73156
|
const handleKeyDown = (event) => {
|
|
71654
73157
|
let eventKeyClicked = event.ctrlKey || event.metaKey;
|
|
71655
73158
|
if (eventKeyClicked && event.key === "v" && event.target) {
|
|
@@ -71732,7 +73235,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71732
73235
|
onClick: closeContextMenu
|
|
71733
73236
|
}, {
|
|
71734
73237
|
default: withCtx(() => [
|
|
71735
|
-
createVNode(unref(_sfc_main$
|
|
73238
|
+
createVNode(unref(_sfc_main$i))
|
|
71736
73239
|
]),
|
|
71737
73240
|
_: 1
|
|
71738
73241
|
}, 8, ["nodes", "edges", "connection-mode"]),
|
|
@@ -71752,7 +73255,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71752
73255
|
"initial-width": 200,
|
|
71753
73256
|
"initial-position": "left",
|
|
71754
73257
|
title: "Data actions",
|
|
71755
|
-
"allow-free-move": true
|
|
73258
|
+
"allow-free-move": true,
|
|
73259
|
+
"prevent-overlap": false
|
|
71756
73260
|
}, {
|
|
71757
73261
|
default: withCtx(() => [
|
|
71758
73262
|
createVNode(NodeList, { onDragstart: unref(onDragStart) }, null, 8, ["onDragstart"])
|
|
@@ -71766,13 +73270,17 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71766
73270
|
title: "Log overview",
|
|
71767
73271
|
"allow-full-screen": true,
|
|
71768
73272
|
"initial-position": "bottom",
|
|
71769
|
-
"
|
|
73273
|
+
"initial-left": 200,
|
|
73274
|
+
"on-minize": hideLogViewer,
|
|
73275
|
+
group: "bottomPanels",
|
|
73276
|
+
"sync-dimensions": true,
|
|
73277
|
+
"prevent-overlap": false
|
|
71770
73278
|
}, {
|
|
71771
73279
|
default: withCtx(() => [
|
|
71772
|
-
createVNode(LogViewer
|
|
73280
|
+
createVNode(LogViewer)
|
|
71773
73281
|
]),
|
|
71774
73282
|
_: 1
|
|
71775
|
-
}
|
|
73283
|
+
})) : createCommentVNode("", true),
|
|
71776
73284
|
unref(nodeStore).showFlowResult ? (openBlock(), createBlock(DraggableItem, {
|
|
71777
73285
|
key: 1,
|
|
71778
73286
|
id: "flowresults",
|
|
@@ -71780,7 +73288,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71780
73288
|
title: "flow results",
|
|
71781
73289
|
"initial-position": "right",
|
|
71782
73290
|
"initial-width": 400,
|
|
71783
|
-
"
|
|
73291
|
+
group: "rightPanels",
|
|
73292
|
+
"prevent-overlap": false
|
|
71784
73293
|
}, {
|
|
71785
73294
|
default: withCtx(() => [
|
|
71786
73295
|
createVNode(FlowResults, { "on-click": selectNodeExternally })
|
|
@@ -71795,7 +73304,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71795
73304
|
title: "Table Preview",
|
|
71796
73305
|
"initial-position": "bottom",
|
|
71797
73306
|
"on-minize": toggleShowTablePreview,
|
|
71798
|
-
"initial-height": tablePreviewHeight.value
|
|
73307
|
+
"initial-height": tablePreviewHeight.value,
|
|
73308
|
+
"initial-left": 200,
|
|
73309
|
+
group: "bottomPanels",
|
|
73310
|
+
"sync-dimensions": true,
|
|
73311
|
+
"prevent-overlap": false
|
|
71799
73312
|
}, {
|
|
71800
73313
|
default: withCtx(() => [
|
|
71801
73314
|
createVNode(_sfc_main$8, {
|
|
@@ -71816,22 +73329,18 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71816
73329
|
id: "nodeSettings",
|
|
71817
73330
|
"show-right": true,
|
|
71818
73331
|
"initial-position": "right",
|
|
71819
|
-
"initial-top": 0,
|
|
71820
73332
|
"initial-width": 800,
|
|
71821
73333
|
"initial-height": nodeSettingsHeight.value,
|
|
71822
73334
|
title: "Node Settings",
|
|
71823
|
-
"on-minize":
|
|
71824
|
-
"allow-full-screen": true
|
|
73335
|
+
"on-minize": handleNodeSettingsClose,
|
|
73336
|
+
"allow-full-screen": true,
|
|
73337
|
+
"prevent-overlap": false
|
|
71825
73338
|
}, {
|
|
71826
|
-
default: withCtx(() =>
|
|
71827
|
-
|
|
71828
|
-
|
|
71829
|
-
|
|
71830
|
-
|
|
71831
|
-
])),
|
|
71832
|
-
_: 1,
|
|
71833
|
-
__: [2]
|
|
71834
|
-
}, 8, ["initial-height", "on-minize"])) : createCommentVNode("", true),
|
|
73339
|
+
default: withCtx(() => [
|
|
73340
|
+
createVNode(_sfc_main$b)
|
|
73341
|
+
]),
|
|
73342
|
+
_: 1
|
|
73343
|
+
}, 8, ["initial-height"])) : createCommentVNode("", true),
|
|
71835
73344
|
unref(nodeStore).showCodeGenerator ? (openBlock(), createBlock(DraggableItem, {
|
|
71836
73345
|
key: 4,
|
|
71837
73346
|
id: "generatedCode",
|
|
@@ -71840,13 +73349,15 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71840
73349
|
"initial-position": "right",
|
|
71841
73350
|
"allow-free-move": true,
|
|
71842
73351
|
"allow-full-screen": true,
|
|
71843
|
-
"on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false)
|
|
73352
|
+
"on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false),
|
|
73353
|
+
"prevent-overlap": false
|
|
71844
73354
|
}, {
|
|
71845
73355
|
default: withCtx(() => [
|
|
71846
73356
|
createVNode(CodeGenerator)
|
|
71847
73357
|
]),
|
|
71848
73358
|
_: 1
|
|
71849
|
-
}, 8, ["on-minize"])) : createCommentVNode("", true)
|
|
73359
|
+
}, 8, ["on-minize"])) : createCommentVNode("", true),
|
|
73360
|
+
createVNode(layoutControls, { onResetLayoutGraph: handleResetLayoutGraph })
|
|
71850
73361
|
]);
|
|
71851
73362
|
};
|
|
71852
73363
|
}
|
|
@@ -72215,18 +73726,20 @@ const _hoisted_1 = {
|
|
|
72215
73726
|
key: 0,
|
|
72216
73727
|
class: "header"
|
|
72217
73728
|
};
|
|
72218
|
-
const _hoisted_2 = { class: "
|
|
72219
|
-
const _hoisted_3 = { class: "
|
|
72220
|
-
const _hoisted_4 = { class: "
|
|
72221
|
-
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 = {
|
|
72222
73735
|
key: 1,
|
|
72223
73736
|
class: "loading-state"
|
|
72224
73737
|
};
|
|
72225
|
-
const
|
|
73738
|
+
const _hoisted_8 = {
|
|
72226
73739
|
key: 2,
|
|
72227
73740
|
class: "empty-state"
|
|
72228
73741
|
};
|
|
72229
|
-
const
|
|
73742
|
+
const _hoisted_9 = { class: "empty-state-content" };
|
|
72230
73743
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
72231
73744
|
__name: "designer",
|
|
72232
73745
|
setup(__props) {
|
|
@@ -72340,6 +73853,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72340
73853
|
headerButtons.value.openOpenDialog();
|
|
72341
73854
|
}
|
|
72342
73855
|
};
|
|
73856
|
+
const openQuickCreateDialog = () => {
|
|
73857
|
+
if (headerButtons.value) {
|
|
73858
|
+
console.log("Opening quick create dialog");
|
|
73859
|
+
headerButtons.value.handleQuickCreateAction();
|
|
73860
|
+
}
|
|
73861
|
+
};
|
|
72343
73862
|
const initialSetup = async () => {
|
|
72344
73863
|
if (initialLoadComplete.value) {
|
|
72345
73864
|
console.log("Initial setup already completed");
|
|
@@ -72385,34 +73904,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72385
73904
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
72386
73905
|
!isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
72387
73906
|
createBaseVNode("div", _hoisted_2, [
|
|
72388
|
-
|
|
72389
|
-
|
|
72390
|
-
|
|
72391
|
-
|
|
72392
|
-
|
|
72393
|
-
|
|
72394
|
-
|
|
72395
|
-
|
|
72396
|
-
createVNode(FlowSelector, {
|
|
72397
|
-
ref_key: "flowSelector",
|
|
72398
|
-
ref: flowSelector,
|
|
72399
|
-
onFlowChanged: handleFlowChange,
|
|
72400
|
-
onCloseTab: handleCloseFlow
|
|
72401
|
-
}, 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
|
+
])
|
|
72402
73915
|
]),
|
|
72403
73916
|
createBaseVNode("div", _hoisted_4, [
|
|
72404
|
-
|
|
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
|
+
])
|
|
72405
73928
|
])
|
|
72406
73929
|
])) : createCommentVNode("", true),
|
|
72407
|
-
isLoading.value ? (openBlock(), createElementBlock("div",
|
|
73930
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_7, _cache[2] || (_cache[2] = [
|
|
72408
73931
|
createBaseVNode("div", { class: "loading-state-content" }, [
|
|
72409
73932
|
createBaseVNode("p", null, "Loading flows...")
|
|
72410
73933
|
], -1)
|
|
72411
|
-
]))) : !isLoading.value && flowsActive.value.length === 0 ? (openBlock(), createElementBlock("div",
|
|
72412
|
-
createBaseVNode("div",
|
|
72413
|
-
_cache[
|
|
72414
|
-
_cache[
|
|
72415
|
-
_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)),
|
|
72416
73939
|
createVNode(_component_el_button, {
|
|
72417
73940
|
type: "primary",
|
|
72418
73941
|
class: "action-button",
|
|
@@ -72436,6 +73959,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72436
73959
|
])),
|
|
72437
73960
|
_: 1,
|
|
72438
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]
|
|
72439
73974
|
})
|
|
72440
73975
|
])
|
|
72441
73976
|
])) : (openBlock(), createBlock(_sfc_main$4, {
|
|
@@ -72456,8 +73991,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72456
73991
|
};
|
|
72457
73992
|
}
|
|
72458
73993
|
});
|
|
72459
|
-
const
|
|
72460
|
-
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"]]);
|
|
72461
73996
|
const designer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
72462
73997
|
__proto__: null,
|
|
72463
73998
|
default: designer
|
|
@@ -72465,7 +74000,6 @@ const designer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
|
|
|
72465
74000
|
export {
|
|
72466
74001
|
FileBrowser as F,
|
|
72467
74002
|
designer$1 as d,
|
|
72468
|
-
getImageUrl as g,
|
|
72469
74003
|
info_filled_default as i,
|
|
72470
74004
|
oneDark as o,
|
|
72471
74005
|
python as p,
|