Flowfile 0.3.9__py3-none-any.whl → 0.5.1__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.
- flowfile/__init__.py +8 -1
- flowfile/api.py +1 -3
- flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-0dfba9f2.js} +2 -2
- flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-d5b1b6c9.js} +11 -78
- flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-00d87aad.js} +12 -79
- flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
- flowfile/web/static/assets/ColumnSelector-4685e75d.js +83 -0
- flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
- flowfile/web/static/assets/ContextMenu-23e909da.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-70ae0c79.js +41 -0
- flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
- flowfile/web/static/assets/ContextMenu-f149cf7c.js +41 -0
- flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
- flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-702a3edd.js} +14 -84
- flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
- flowfile/web/static/assets/CustomNode-b1519993.js +211 -0
- flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-6f3e4ea5.js} +3 -3
- flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-cf5ef661.js} +2 -2
- flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
- flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-d38c7295.js} +14 -114
- flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-b04ef46a.js} +13 -74
- flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
- flowfile/web/static/assets/ExploreData-5fa10ed8.js +192 -0
- flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-d39af878.js} +8 -79
- flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-9b6d08db.js} +12 -85
- flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
- flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-6b04fb1d.js} +20 -87
- flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
- flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
- flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-999521f4.js} +16 -87
- flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-17dd2198.js} +13 -159
- flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
- flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-6b039e18.js} +12 -75
- flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
- flowfile/web/static/assets/{Join-5a78a203.js → Join-24d0f113.js} +15 -85
- flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
- flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
- flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-34639209.js} +11 -82
- flowfile/web/static/assets/MultiSelect-0e8724a3.js +5 -0
- flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js +63 -0
- flowfile/web/static/assets/NumericInput-3d63a470.js +5 -0
- flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js +35 -0
- flowfile/web/static/assets/Output-283fe388.css +37 -0
- flowfile/web/static/assets/{Output-411ecaee.js → Output-edea9802.js} +62 -273
- flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-61d19301.js} +14 -138
- flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
- flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
- flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
- flowfile/web/static/assets/PivotValidation-de9f43fe.js +61 -0
- flowfile/web/static/assets/PivotValidation-f97fec5b.js +61 -0
- flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-bc3c9984.js} +13 -80
- flowfile/web/static/assets/Read-64a3f259.js +218 -0
- flowfile/web/static/assets/Read-e808b239.css +62 -0
- flowfile/web/static/assets/RecordCount-3d5039be.js +53 -0
- flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-597510e0.js} +8 -80
- flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
- flowfile/web/static/assets/SQLQueryComponent-df51adbe.js +38 -0
- flowfile/web/static/assets/{Sample-b4a18476.js → Sample-4be0a507.js} +8 -77
- flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-4839be57.js} +2 -2
- flowfile/web/static/assets/{Select-727688dc.js → Select-9b72f201.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-71e6b7e3.css +21 -0
- flowfile/web/static/assets/SettingsSection-7ded385d.js +45 -0
- flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-e1e9c953.js} +2 -40
- flowfile/web/static/assets/SettingsSection-f0f75a42.js +53 -0
- flowfile/web/static/assets/SingleSelect-6c777aac.js +5 -0
- flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js +62 -0
- flowfile/web/static/assets/SliderInput-7cb93e62.js +40 -0
- flowfile/web/static/assets/SliderInput-b8fb6a8c.css +4 -0
- flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
- flowfile/web/static/assets/{Sort-be3339a8.js → Sort-6cbde21a.js} +12 -97
- flowfile/web/static/assets/TextInput-d9a40c11.js +5 -0
- flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-5896c375.js +32 -0
- flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
- flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-c4fcbf4d.js} +14 -83
- flowfile/web/static/assets/ToggleSwitch-4ef91d19.js +5 -0
- flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js +31 -0
- flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-a03f512c.js} +2 -2
- flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
- flowfile/web/static/assets/Union-bfe9b996.js +77 -0
- flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-5d023a27.js} +23 -104
- flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
- flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
- flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-91cc5354.js} +12 -166
- flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
- flowfile/web/static/assets/UnpivotValidation-7ee2de44.js +51 -0
- flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-e51b9924.js} +4 -264
- flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
- flowfile/web/static/assets/{api-cb00cce6.js → api-c1bad5ca.js} +1 -1
- flowfile/web/static/assets/{api-023d1733.js → api-cf1221f0.js} +1 -1
- flowfile/web/static/assets/{designer-2197d782.css → designer-8da3ba3a.css} +859 -201
- flowfile/web/static/assets/{designer-6c322d8e.js → designer-9633482a.js} +2297 -733
- flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-ca400224.js} +1 -1
- flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-614b998d.js} +1 -1
- flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-f7971590.js} +2 -2
- flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-4fe5f36b.js} +3 -3
- flowfile/web/static/assets/{index-681a3ed0.css → index-50508d4d.css} +8 -0
- flowfile/web/static/assets/{index-683fc198.js → index-5429bbf8.js} +208 -31
- flowfile/web/static/assets/nodeInput-5d0d6b79.js +41 -0
- flowfile/web/static/assets/outputCsv-076b85ab.js +86 -0
- flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
- flowfile/web/static/assets/outputExcel-0fd17dbe.js +56 -0
- flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
- flowfile/web/static/assets/outputParquet-b61e0847.js +31 -0
- flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
- flowfile/web/static/assets/readCsv-a8bb8b61.js +179 -0
- flowfile/web/static/assets/readCsv-c767cb37.css +52 -0
- flowfile/web/static/assets/readExcel-67b4aee0.js +201 -0
- flowfile/web/static/assets/readExcel-806d2826.css +64 -0
- flowfile/web/static/assets/readParquet-48c81530.css +19 -0
- flowfile/web/static/assets/readParquet-92ce1dbc.js +23 -0
- flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-68435402.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-92e25ee3.js} +7 -7
- flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
- flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
- flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-41b0e0d7.js} +65 -36
- flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-2c8e608f.js} +1 -1
- flowfile/web/static/index.html +2 -2
- {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/METADATA +5 -3
- {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/RECORD +191 -121
- {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/WHEEL +1 -1
- {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/entry_points.txt +1 -0
- flowfile_core/__init__.py +3 -0
- flowfile_core/configs/flow_logger.py +5 -13
- flowfile_core/configs/node_store/__init__.py +30 -0
- flowfile_core/configs/node_store/nodes.py +383 -99
- flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
- flowfile_core/configs/settings.py +2 -1
- flowfile_core/database/connection.py +5 -21
- flowfile_core/fileExplorer/funcs.py +239 -121
- flowfile_core/flowfile/analytics/analytics_processor.py +1 -0
- flowfile_core/flowfile/code_generator/code_generator.py +62 -64
- flowfile_core/flowfile/flow_data_engine/create/funcs.py +73 -56
- flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +77 -86
- flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
- flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
- flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
- flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +23 -23
- flowfile_core/flowfile/flow_data_engine/join/utils.py +1 -1
- flowfile_core/flowfile/flow_data_engine/join/verify_integrity.py +9 -4
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +212 -86
- flowfile_core/flowfile/flow_data_engine/utils.py +2 -0
- flowfile_core/flowfile/flow_graph.py +240 -54
- flowfile_core/flowfile/flow_node/flow_node.py +48 -13
- flowfile_core/flowfile/flow_node/models.py +2 -1
- flowfile_core/flowfile/handler.py +24 -5
- flowfile_core/flowfile/manage/compatibility_enhancements.py +404 -41
- flowfile_core/flowfile/manage/io_flowfile.py +394 -0
- flowfile_core/flowfile/node_designer/__init__.py +47 -0
- flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
- flowfile_core/flowfile/node_designer/custom_node.py +371 -0
- flowfile_core/flowfile/node_designer/ui_components.py +277 -0
- flowfile_core/flowfile/schema_callbacks.py +17 -10
- flowfile_core/flowfile/setting_generator/settings.py +15 -10
- flowfile_core/main.py +5 -1
- flowfile_core/routes/routes.py +73 -30
- flowfile_core/routes/user_defined_components.py +55 -0
- flowfile_core/schemas/cloud_storage_schemas.py +0 -2
- flowfile_core/schemas/input_schema.py +228 -65
- flowfile_core/schemas/output_model.py +5 -2
- flowfile_core/schemas/schemas.py +153 -35
- flowfile_core/schemas/transform_schema.py +1083 -412
- flowfile_core/schemas/yaml_types.py +103 -0
- flowfile_core/types.py +156 -0
- flowfile_core/utils/validate_setup.py +3 -1
- flowfile_frame/__init__.py +3 -1
- flowfile_frame/flow_frame.py +31 -24
- flowfile_frame/flow_frame_methods.py +12 -9
- flowfile_worker/__init__.py +9 -35
- flowfile_worker/create/__init__.py +3 -21
- flowfile_worker/create/funcs.py +68 -56
- flowfile_worker/create/models.py +130 -62
- flowfile_worker/main.py +5 -2
- flowfile_worker/routes.py +52 -13
- shared/__init__.py +15 -0
- shared/storage_config.py +258 -0
- tools/migrate/README.md +56 -0
- tools/migrate/__init__.py +12 -0
- tools/migrate/__main__.py +131 -0
- tools/migrate/legacy_schemas.py +621 -0
- tools/migrate/migrate.py +598 -0
- tools/migrate/tests/__init__.py +0 -0
- tools/migrate/tests/conftest.py +23 -0
- tools/migrate/tests/test_migrate.py +627 -0
- tools/migrate/tests/test_migration_e2e.py +1010 -0
- tools/migrate/tests/test_node_migrations.py +813 -0
- flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
- flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
- flowfile/web/static/assets/Read-80dc1675.css +0 -197
- flowfile/web/static/assets/Read-c3b1929c.js +0 -701
- flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
- flowfile/web/static/assets/Union-89fd73dc.js +0 -146
- flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
- flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
- flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
- flowfile_core/flowfile/manage/open_flowfile.py +0 -135
- {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info/licenses}/LICENSE +0 -0
- /flowfile_core/flowfile/manage/manage_flowfile.py → /tools/__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-5429bbf8.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-41b0e0d7.js";
|
|
3
9
|
const saveFlow = async (flowId, flowPath) => {
|
|
4
10
|
try {
|
|
5
11
|
await axios.get("/save_flow", {
|
|
@@ -15,14 +21,16 @@ 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) {
|
|
20
25
|
const response = await axios.post(
|
|
21
26
|
"/editor/create_flow",
|
|
22
27
|
{},
|
|
23
28
|
{
|
|
24
29
|
headers: { accept: "application/json" },
|
|
25
|
-
params: {
|
|
30
|
+
params: {
|
|
31
|
+
flow_path: flowPath,
|
|
32
|
+
name
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
);
|
|
28
36
|
if (response.status === 200) {
|
|
@@ -72,8 +80,291 @@ const updateRunStatus = async (flowId, nodeStore, showRunResults = true) => {
|
|
|
72
80
|
}
|
|
73
81
|
return response;
|
|
74
82
|
};
|
|
75
|
-
const
|
|
76
|
-
|
|
83
|
+
const _FlowExecutionState = class _FlowExecutionState {
|
|
84
|
+
constructor() {
|
|
85
|
+
__publicField(this, "pollingIntervals", /* @__PURE__ */ new Map());
|
|
86
|
+
__publicField(this, "activeExecutions", /* @__PURE__ */ new Map());
|
|
87
|
+
}
|
|
88
|
+
static getInstance() {
|
|
89
|
+
if (!_FlowExecutionState.instance) {
|
|
90
|
+
_FlowExecutionState.instance = new _FlowExecutionState();
|
|
91
|
+
}
|
|
92
|
+
return _FlowExecutionState.instance;
|
|
93
|
+
}
|
|
94
|
+
setPollingInterval(key, interval2) {
|
|
95
|
+
this.pollingIntervals.set(key, interval2);
|
|
96
|
+
}
|
|
97
|
+
getPollingInterval(key) {
|
|
98
|
+
return this.pollingIntervals.get(key) || null;
|
|
99
|
+
}
|
|
100
|
+
clearPollingInterval(key) {
|
|
101
|
+
const interval2 = this.pollingIntervals.get(key);
|
|
102
|
+
if (interval2) {
|
|
103
|
+
clearInterval(interval2);
|
|
104
|
+
this.pollingIntervals.delete(key);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
setExecutionState(key, state2) {
|
|
108
|
+
this.activeExecutions.set(key, state2);
|
|
109
|
+
}
|
|
110
|
+
getExecutionState(key) {
|
|
111
|
+
return this.activeExecutions.get(key) || false;
|
|
112
|
+
}
|
|
113
|
+
clearAll() {
|
|
114
|
+
this.pollingIntervals.forEach((interval2) => clearInterval(interval2));
|
|
115
|
+
this.pollingIntervals.clear();
|
|
116
|
+
this.activeExecutions.clear();
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
__publicField(_FlowExecutionState, "instance");
|
|
120
|
+
let FlowExecutionState = _FlowExecutionState;
|
|
121
|
+
function useFlowExecution(flowId, pollingConfig = {
|
|
122
|
+
interval: 2e3,
|
|
123
|
+
enabled: true,
|
|
124
|
+
maxAttempts: Infinity
|
|
125
|
+
}, options = {}) {
|
|
126
|
+
const nodeStore = useNodeStore();
|
|
127
|
+
const state2 = FlowExecutionState.getInstance();
|
|
128
|
+
const localPollingInterval = ref(null);
|
|
129
|
+
const isExecuting = ref(false);
|
|
130
|
+
const getFlowId = () => {
|
|
131
|
+
return typeof flowId === "number" ? flowId : flowId.value;
|
|
132
|
+
};
|
|
133
|
+
const getPollingKey = (suffix = "") => {
|
|
134
|
+
const customKey = options.pollingKey || `flow_${getFlowId()}`;
|
|
135
|
+
return suffix ? `${customKey}_${suffix}` : customKey;
|
|
136
|
+
};
|
|
137
|
+
const freezeFlow = () => {
|
|
138
|
+
const vueFlowElement = nodeStore.vueFlowInstance;
|
|
139
|
+
if (vueFlowElement) {
|
|
140
|
+
vueFlowElement.nodesDraggable.value = false;
|
|
141
|
+
vueFlowElement.nodesConnectable.value = false;
|
|
142
|
+
vueFlowElement.elementsSelectable.value = false;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
const unFreezeFlow = () => {
|
|
146
|
+
const vueFlowElement = nodeStore.vueFlowInstance;
|
|
147
|
+
if (vueFlowElement) {
|
|
148
|
+
vueFlowElement.nodesDraggable.value = true;
|
|
149
|
+
vueFlowElement.nodesConnectable.value = true;
|
|
150
|
+
vueFlowElement.elementsSelectable.value = true;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
const showNotification = (title, message, type, dangerouslyUseHTMLString) => {
|
|
154
|
+
ElNotification({
|
|
155
|
+
title,
|
|
156
|
+
message,
|
|
157
|
+
type,
|
|
158
|
+
position: "top-left",
|
|
159
|
+
dangerouslyUseHTMLString
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
const startPolling = (checkFn, pollingKeySuffix = "") => {
|
|
163
|
+
const key = getPollingKey(pollingKeySuffix);
|
|
164
|
+
if (options.persistPolling) {
|
|
165
|
+
const existingInterval = state2.getPollingInterval(key);
|
|
166
|
+
if (existingInterval === null && pollingConfig.enabled) {
|
|
167
|
+
const interval2 = setInterval(checkFn, pollingConfig.interval || 2e3);
|
|
168
|
+
state2.setPollingInterval(key, interval2);
|
|
169
|
+
}
|
|
170
|
+
} else {
|
|
171
|
+
if (localPollingInterval.value === null && pollingConfig.enabled) {
|
|
172
|
+
localPollingInterval.value = setInterval(
|
|
173
|
+
checkFn,
|
|
174
|
+
pollingConfig.interval || 2e3
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
const stopPolling = (pollingKeySuffix = "") => {
|
|
180
|
+
if (options.persistPolling) {
|
|
181
|
+
const key = getPollingKey(pollingKeySuffix);
|
|
182
|
+
state2.clearPollingInterval(key);
|
|
183
|
+
} else {
|
|
184
|
+
if (localPollingInterval.value !== null) {
|
|
185
|
+
clearInterval(localPollingInterval.value);
|
|
186
|
+
localPollingInterval.value = null;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
const isPollingActive = (pollingKeySuffix = "") => {
|
|
191
|
+
if (options.persistPolling) {
|
|
192
|
+
const key = getPollingKey(pollingKeySuffix);
|
|
193
|
+
return state2.getPollingInterval(key) !== null;
|
|
194
|
+
}
|
|
195
|
+
return localPollingInterval.value !== null;
|
|
196
|
+
};
|
|
197
|
+
const createNotificationConfig = (runInfo) => ({
|
|
198
|
+
title: runInfo.success ? "Success" : "Error",
|
|
199
|
+
message: runInfo.success ? "The operation has completed successfully" : "There were issues with the operation, check the logging for more information",
|
|
200
|
+
type: runInfo.success ? "success" : "error"
|
|
201
|
+
});
|
|
202
|
+
const checkRunStatus = async (customSuccessMessage, pollingKeySuffix = "") => {
|
|
203
|
+
try {
|
|
204
|
+
const response = await updateRunStatus(getFlowId(), nodeStore);
|
|
205
|
+
if (response.status === 200) {
|
|
206
|
+
stopPolling(pollingKeySuffix);
|
|
207
|
+
unFreezeFlow();
|
|
208
|
+
nodeStore.isRunning = false;
|
|
209
|
+
isExecuting.value = false;
|
|
210
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
211
|
+
console.log("response data", response.data);
|
|
212
|
+
const notificationConfig = createNotificationConfig(response.data);
|
|
213
|
+
if (customSuccessMessage && response.data.success) {
|
|
214
|
+
notificationConfig.message = customSuccessMessage;
|
|
215
|
+
}
|
|
216
|
+
showNotification(
|
|
217
|
+
notificationConfig.title,
|
|
218
|
+
notificationConfig.message,
|
|
219
|
+
notificationConfig.type
|
|
220
|
+
);
|
|
221
|
+
} else if (response.status === 404) {
|
|
222
|
+
stopPolling(pollingKeySuffix);
|
|
223
|
+
unFreezeFlow();
|
|
224
|
+
nodeStore.isRunning = false;
|
|
225
|
+
isExecuting.value = false;
|
|
226
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
227
|
+
nodeStore.runResults = {};
|
|
228
|
+
}
|
|
229
|
+
} catch (error) {
|
|
230
|
+
console.error("Error checking run status:", error);
|
|
231
|
+
stopPolling(pollingKeySuffix);
|
|
232
|
+
unFreezeFlow();
|
|
233
|
+
nodeStore.isRunning = false;
|
|
234
|
+
isExecuting.value = false;
|
|
235
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
const escapeHtml = (text) => {
|
|
239
|
+
const div = document.createElement("div");
|
|
240
|
+
div.textContent = text;
|
|
241
|
+
return div.innerHTML;
|
|
242
|
+
};
|
|
243
|
+
const runFlow = async () => {
|
|
244
|
+
const flowSettings = await getFlowSettings(getFlowId());
|
|
245
|
+
if (!flowSettings) {
|
|
246
|
+
throw new Error("Failed to retrieve flow settings");
|
|
247
|
+
}
|
|
248
|
+
freezeFlow();
|
|
249
|
+
nodeStore.resetNodeResult();
|
|
250
|
+
isExecuting.value = true;
|
|
251
|
+
nodeStore.isRunning = true;
|
|
252
|
+
nodeStore.hideLogViewerForThisRun = false;
|
|
253
|
+
state2.setExecutionState(getPollingKey(), true);
|
|
254
|
+
const executionLocationText = flowSettings.execution_location === "local" ? "Local" : "Remote";
|
|
255
|
+
const escapedFlowName = escapeHtml(flowSettings.name);
|
|
256
|
+
const notificationMessage = `
|
|
257
|
+
<div style="line-height: 1.4;">
|
|
258
|
+
<div><strong>Flow:</strong> "${escapedFlowName}"</div>
|
|
259
|
+
<div><strong>Mode:</strong> ${flowSettings.execution_mode}</div>
|
|
260
|
+
<div><strong>Location:</strong> ${executionLocationText}</div>
|
|
261
|
+
</div>
|
|
262
|
+
`;
|
|
263
|
+
showNotification("🚀 Flow Started", notificationMessage, void 0, true);
|
|
264
|
+
try {
|
|
265
|
+
await axios.post("/flow/run/", null, {
|
|
266
|
+
params: { flow_id: getFlowId() },
|
|
267
|
+
headers: { accept: "application/json" }
|
|
268
|
+
});
|
|
269
|
+
nodeStore.showLogViewer();
|
|
270
|
+
startPolling(() => checkRunStatus());
|
|
271
|
+
} catch (error) {
|
|
272
|
+
console.error("Error starting run:", error);
|
|
273
|
+
unFreezeFlow();
|
|
274
|
+
nodeStore.isRunning = false;
|
|
275
|
+
isExecuting.value = false;
|
|
276
|
+
state2.setExecutionState(getPollingKey(), false);
|
|
277
|
+
showNotification("Error", "Failed to start the flow", "error");
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
const triggerNodeFetch = async (nodeId) => {
|
|
281
|
+
var _a, _b;
|
|
282
|
+
const pollingKeySuffix = `node_${nodeId}`;
|
|
283
|
+
if (isPollingActive(pollingKeySuffix)) {
|
|
284
|
+
console.log(`Node ${nodeId} fetch already in progress`);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
freezeFlow();
|
|
288
|
+
nodeStore.resetNodeResult();
|
|
289
|
+
isExecuting.value = true;
|
|
290
|
+
nodeStore.isRunning = true;
|
|
291
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), true);
|
|
292
|
+
showNotification(
|
|
293
|
+
"📊 Fetching Node Data",
|
|
294
|
+
`Starting data fetch for node ${nodeId}...`,
|
|
295
|
+
void 0,
|
|
296
|
+
false
|
|
297
|
+
);
|
|
298
|
+
try {
|
|
299
|
+
await axios.post("/node/trigger_fetch_data", null, {
|
|
300
|
+
params: {
|
|
301
|
+
flow_id: getFlowId(),
|
|
302
|
+
node_id: nodeId
|
|
303
|
+
},
|
|
304
|
+
headers: { accept: "application/json" }
|
|
305
|
+
});
|
|
306
|
+
nodeStore.showLogViewer();
|
|
307
|
+
startPolling(
|
|
308
|
+
() => checkRunStatus("Node data has been fetched successfully", pollingKeySuffix),
|
|
309
|
+
pollingKeySuffix
|
|
310
|
+
);
|
|
311
|
+
} catch (error) {
|
|
312
|
+
console.error("Error triggering node fetch:", error);
|
|
313
|
+
unFreezeFlow();
|
|
314
|
+
nodeStore.isRunning = false;
|
|
315
|
+
isExecuting.value = false;
|
|
316
|
+
state2.setExecutionState(getPollingKey(pollingKeySuffix), false);
|
|
317
|
+
const errorMessage = ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "Failed to fetch node data";
|
|
318
|
+
showNotification("Error", errorMessage, "error");
|
|
319
|
+
throw error;
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
const cancelFlow = async () => {
|
|
323
|
+
try {
|
|
324
|
+
await axios.post("/flow/cancel/", null, {
|
|
325
|
+
params: { flow_id: getFlowId() },
|
|
326
|
+
headers: { accept: "application/json" }
|
|
327
|
+
});
|
|
328
|
+
showNotification("Cancelling", "The operation is being cancelled");
|
|
329
|
+
unFreezeFlow();
|
|
330
|
+
nodeStore.isRunning = false;
|
|
331
|
+
isExecuting.value = false;
|
|
332
|
+
stopPolling();
|
|
333
|
+
if (options.persistPolling) {
|
|
334
|
+
for (let i2 = 0; i2 < 100; i2++) {
|
|
335
|
+
state2.clearPollingInterval(getPollingKey(`node_${i2}`));
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
} catch (error) {
|
|
339
|
+
console.error("Error cancelling run:", error);
|
|
340
|
+
showNotification("Error", "Failed to cancel the operation", "error");
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
onUnmounted(() => {
|
|
344
|
+
if (!options.persistPolling && localPollingInterval.value !== null) {
|
|
345
|
+
clearInterval(localPollingInterval.value);
|
|
346
|
+
localPollingInterval.value = null;
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
return {
|
|
350
|
+
// State
|
|
351
|
+
isExecuting,
|
|
352
|
+
// Methods
|
|
353
|
+
runFlow,
|
|
354
|
+
triggerNodeFetch,
|
|
355
|
+
cancelFlow,
|
|
356
|
+
showNotification,
|
|
357
|
+
startPolling,
|
|
358
|
+
stopPolling,
|
|
359
|
+
checkRunStatus,
|
|
360
|
+
isPollingActive,
|
|
361
|
+
// Expose flow control if needed
|
|
362
|
+
freezeFlow,
|
|
363
|
+
unFreezeFlow
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
const _hoisted_1$k = { class: "button-group" };
|
|
367
|
+
const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
77
368
|
__name: "run",
|
|
78
369
|
props: {
|
|
79
370
|
flowId: { type: Number, required: true },
|
|
@@ -84,133 +375,20 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
84
375
|
enabled: true,
|
|
85
376
|
maxAttempts: Infinity
|
|
86
377
|
})
|
|
378
|
+
},
|
|
379
|
+
persistPolling: {
|
|
380
|
+
type: Boolean,
|
|
381
|
+
default: false
|
|
382
|
+
// RunButton doesn't need persistent polling by default
|
|
87
383
|
}
|
|
88
384
|
},
|
|
89
385
|
emits: ["logs-start", "logs-stop"],
|
|
90
386
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
91
387
|
const nodeStore = useNodeStore();
|
|
92
|
-
const pollingInterval = ref(null);
|
|
93
388
|
const props2 = __props;
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
vueFlowElement.nodesDraggable.value = false;
|
|
98
|
-
vueFlowElement.nodesConnectable.value = false;
|
|
99
|
-
vueFlowElement.elementsSelectable.value = false;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const unFreezeFlow = () => {
|
|
103
|
-
let vueFlowElement = nodeStore.vueFlowInstance;
|
|
104
|
-
if (vueFlowElement) {
|
|
105
|
-
vueFlowElement.nodesDraggable.value = true;
|
|
106
|
-
vueFlowElement.nodesConnectable.value = true;
|
|
107
|
-
vueFlowElement.elementsSelectable.value = true;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const showNotification = (title, message, type, dangerouslyUseHTMLString) => {
|
|
111
|
-
ElNotification({
|
|
112
|
-
title,
|
|
113
|
-
message,
|
|
114
|
-
type,
|
|
115
|
-
position: "top-left",
|
|
116
|
-
dangerouslyUseHTMLString
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
const startPolling = (checkFn) => {
|
|
120
|
-
if (pollingInterval.value === null && props2.pollingConfig.enabled) {
|
|
121
|
-
pollingInterval.value = setInterval(checkFn, props2.pollingConfig.interval);
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
const stopPolling = () => {
|
|
125
|
-
if (pollingInterval.value !== null) {
|
|
126
|
-
clearInterval(pollingInterval.value);
|
|
127
|
-
pollingInterval.value = null;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
const createNotificationConfig = (runInfo) => ({
|
|
131
|
-
title: runInfo.success ? "Success" : "Error",
|
|
132
|
-
message: runInfo.success ? "The flow has completed" : "There were issues with the flow run, check the logging for more information",
|
|
133
|
-
type: runInfo.success ? "success" : "error"
|
|
134
|
-
});
|
|
135
|
-
const checkRunStatus = async () => {
|
|
136
|
-
try {
|
|
137
|
-
const response = await updateRunStatus(props2.flowId, nodeStore);
|
|
138
|
-
if (response.status === 200) {
|
|
139
|
-
stopPolling();
|
|
140
|
-
unFreezeFlow();
|
|
141
|
-
nodeStore.isRunning = false;
|
|
142
|
-
const notificationConfig = createNotificationConfig(response.data);
|
|
143
|
-
showNotification(
|
|
144
|
-
notificationConfig.title,
|
|
145
|
-
notificationConfig.message,
|
|
146
|
-
notificationConfig.type
|
|
147
|
-
);
|
|
148
|
-
} else if (response.status === 404) {
|
|
149
|
-
stopPolling();
|
|
150
|
-
unFreezeFlow();
|
|
151
|
-
nodeStore.isRunning = false;
|
|
152
|
-
nodeStore.runResults = {};
|
|
153
|
-
}
|
|
154
|
-
} catch (error) {
|
|
155
|
-
console.error("Error checking run status:", error);
|
|
156
|
-
stopPolling();
|
|
157
|
-
unFreezeFlow();
|
|
158
|
-
nodeStore.isRunning = false;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
const runFlow = async () => {
|
|
162
|
-
const flowSettings = await getFlowSettings(nodeStore.flow_id);
|
|
163
|
-
if (!flowSettings) {
|
|
164
|
-
throw new Error("Failed to retrieve flow settings");
|
|
165
|
-
}
|
|
166
|
-
const escapeHtml = (text) => {
|
|
167
|
-
const div = document.createElement("div");
|
|
168
|
-
div.textContent = text;
|
|
169
|
-
return div.innerHTML;
|
|
170
|
-
};
|
|
171
|
-
freezeFlow();
|
|
172
|
-
nodeStore.resetNodeResult();
|
|
173
|
-
const executionLocationText = flowSettings.execution_location === "local" ? "Local" : "Remote";
|
|
174
|
-
const escapedFlowName = escapeHtml(flowSettings.name);
|
|
175
|
-
const notificationMessage = `
|
|
176
|
-
<div style="line-height: 1.4;">
|
|
177
|
-
<div><strong>Flow:</strong> "${escapedFlowName}"</div>
|
|
178
|
-
<div><strong>Mode:</strong> ${flowSettings.execution_mode}</div>
|
|
179
|
-
<div><strong>Location:</strong> ${executionLocationText}</div>
|
|
180
|
-
</div>
|
|
181
|
-
`;
|
|
182
|
-
showNotification("🚀 Flow Started", notificationMessage, void 0, true);
|
|
183
|
-
try {
|
|
184
|
-
await axios.post("/flow/run/", null, {
|
|
185
|
-
params: { flow_id: props2.flowId },
|
|
186
|
-
headers: { accept: "application/json" }
|
|
187
|
-
});
|
|
188
|
-
nodeStore.isRunning = true;
|
|
189
|
-
nodeStore.showLogViewer();
|
|
190
|
-
startPolling(checkRunStatus);
|
|
191
|
-
} catch (error) {
|
|
192
|
-
console.error("Error starting run:", error);
|
|
193
|
-
unFreezeFlow();
|
|
194
|
-
nodeStore.isRunning = false;
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
const cancelFlow = async () => {
|
|
198
|
-
try {
|
|
199
|
-
await axios.post("/flow/cancel/", null, {
|
|
200
|
-
params: { flow_id: props2.flowId },
|
|
201
|
-
headers: { accept: "application/json" }
|
|
202
|
-
});
|
|
203
|
-
showNotification("Cancelling", "The flow is being cancelled");
|
|
204
|
-
unFreezeFlow();
|
|
205
|
-
nodeStore.isRunning = false;
|
|
206
|
-
stopPolling();
|
|
207
|
-
} catch (error) {
|
|
208
|
-
console.error("Error cancelling run:", error);
|
|
209
|
-
showNotification("Error", "Failed to cancel the flow", "error");
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
onUnmounted(() => {
|
|
213
|
-
stopPolling();
|
|
389
|
+
const { runFlow, cancelFlow, showNotification, startPolling, stopPolling, checkRunStatus } = useFlowExecution(props2.flowId, props2.pollingConfig, {
|
|
390
|
+
persistPolling: props2.persistPolling,
|
|
391
|
+
pollingKey: `run_button_${props2.flowId}`
|
|
214
392
|
});
|
|
215
393
|
__expose({
|
|
216
394
|
startPolling,
|
|
@@ -222,12 +400,12 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
222
400
|
});
|
|
223
401
|
return (_ctx, _cache) => {
|
|
224
402
|
const _component_el_button = resolveComponent("el-button");
|
|
225
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
403
|
+
return openBlock(), createElementBlock("div", _hoisted_1$k, [
|
|
226
404
|
createVNode(_component_el_button, {
|
|
227
405
|
size: "small",
|
|
228
406
|
disabled: unref(nodeStore).isRunning,
|
|
229
407
|
round: "",
|
|
230
|
-
onClick: _cache[0] || (_cache[0] = ($event) => runFlow())
|
|
408
|
+
onClick: _cache[0] || (_cache[0] = ($event) => unref(runFlow)())
|
|
231
409
|
}, {
|
|
232
410
|
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
233
411
|
createTextVNode(" Run ")
|
|
@@ -239,7 +417,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
239
417
|
key: 0,
|
|
240
418
|
size: "small",
|
|
241
419
|
round: "",
|
|
242
|
-
onClick: _cache[1] || (_cache[1] = ($event) => cancelFlow())
|
|
420
|
+
onClick: _cache[1] || (_cache[1] = ($event) => unref(cancelFlow)())
|
|
243
421
|
}, {
|
|
244
422
|
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
245
423
|
createTextVNode(" Cancel ")
|
|
@@ -251,8 +429,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
251
429
|
};
|
|
252
430
|
}
|
|
253
431
|
});
|
|
254
|
-
const
|
|
255
|
-
const RunButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
432
|
+
const run_vue_vue_type_style_index_0_scoped_c0f9acc7_lang = "";
|
|
433
|
+
const RunButton = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-c0f9acc7"]]);
|
|
256
434
|
const _imports_0 = "/images/sheets.png";
|
|
257
435
|
const useFileBrowserStore = defineStore("fileBrowser", {
|
|
258
436
|
state: () => ({
|
|
@@ -275,7 +453,7 @@ const useFileBrowserStore = defineStore("fileBrowser", {
|
|
|
275
453
|
}
|
|
276
454
|
}
|
|
277
455
|
});
|
|
278
|
-
const handleApiError = (error) => {
|
|
456
|
+
const handleApiError$1 = (error) => {
|
|
279
457
|
var _a, _b, _c;
|
|
280
458
|
throw {
|
|
281
459
|
message: ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "An unknown error occurred",
|
|
@@ -287,7 +465,7 @@ const getCurrentDirectoryContents = async (params) => {
|
|
|
287
465
|
const response = await axios.get("files/current_directory_contents/", { params });
|
|
288
466
|
return response.data;
|
|
289
467
|
} catch (error) {
|
|
290
|
-
return handleApiError(error);
|
|
468
|
+
return handleApiError$1(error);
|
|
291
469
|
}
|
|
292
470
|
};
|
|
293
471
|
const navigateUp = async () => {
|
|
@@ -295,7 +473,7 @@ const navigateUp = async () => {
|
|
|
295
473
|
const response = await axios.post("files/navigate_up/");
|
|
296
474
|
return response.data;
|
|
297
475
|
} catch (error) {
|
|
298
|
-
return handleApiError(error);
|
|
476
|
+
return handleApiError$1(error);
|
|
299
477
|
}
|
|
300
478
|
};
|
|
301
479
|
const navigateInto = async (directoryName) => {
|
|
@@ -305,7 +483,7 @@ const navigateInto = async (directoryName) => {
|
|
|
305
483
|
});
|
|
306
484
|
return response.data;
|
|
307
485
|
} catch (error) {
|
|
308
|
-
return handleApiError(error);
|
|
486
|
+
return handleApiError$1(error);
|
|
309
487
|
}
|
|
310
488
|
};
|
|
311
489
|
const navigateTo = async (directoryPath) => {
|
|
@@ -315,7 +493,7 @@ const navigateTo = async (directoryPath) => {
|
|
|
315
493
|
});
|
|
316
494
|
return response.data;
|
|
317
495
|
} catch (error) {
|
|
318
|
-
return handleApiError(error);
|
|
496
|
+
return handleApiError$1(error);
|
|
319
497
|
}
|
|
320
498
|
};
|
|
321
499
|
const getCurrentPath = async () => {
|
|
@@ -323,9 +501,12 @@ const getCurrentPath = async () => {
|
|
|
323
501
|
const response = await axios.get("files/current_path/");
|
|
324
502
|
return response.data;
|
|
325
503
|
} catch (error) {
|
|
326
|
-
return handleApiError(error);
|
|
504
|
+
return handleApiError$1(error);
|
|
327
505
|
}
|
|
328
506
|
};
|
|
507
|
+
const FLOWFILE_EXTENSIONS = ["flowfile", "yml", "yaml", "test"];
|
|
508
|
+
const DATA_FILE_EXTENSIONS = ["xlsx", "parquet", "csv", "txt"];
|
|
509
|
+
const ALLOWED_SAVE_EXTENSIONS = ["yaml", "yml"];
|
|
329
510
|
function assertPath(path2) {
|
|
330
511
|
if (typeof path2 !== "string") {
|
|
331
512
|
throw new TypeError("Path must be a string. Received " + JSON.stringify(path2));
|
|
@@ -749,16 +930,16 @@ var posix = {
|
|
|
749
930
|
posix.posix = posix;
|
|
750
931
|
var pathBrowserify = posix;
|
|
751
932
|
const path = /* @__PURE__ */ getDefaultExportFromCjs(pathBrowserify);
|
|
752
|
-
const _hoisted_1$
|
|
753
|
-
const _hoisted_2$
|
|
754
|
-
const _hoisted_3$
|
|
755
|
-
const _hoisted_4$
|
|
756
|
-
const _hoisted_5$
|
|
757
|
-
const _hoisted_6$
|
|
758
|
-
const _hoisted_7$
|
|
759
|
-
const _hoisted_8$
|
|
760
|
-
const _hoisted_9 = { class: "sort-controls" };
|
|
761
|
-
const _hoisted_10 = { class: "material-icons" };
|
|
933
|
+
const _hoisted_1$j = { class: "file-browser" };
|
|
934
|
+
const _hoisted_2$h = { class: "browser-content" };
|
|
935
|
+
const _hoisted_3$g = { class: "browser-toolbar" };
|
|
936
|
+
const _hoisted_4$b = { class: "path-navigation" };
|
|
937
|
+
const _hoisted_5$8 = ["disabled"];
|
|
938
|
+
const _hoisted_6$7 = { class: "current-path" };
|
|
939
|
+
const _hoisted_7$5 = { class: "controls-row" };
|
|
940
|
+
const _hoisted_8$3 = { class: "search-container" };
|
|
941
|
+
const _hoisted_9$2 = { class: "sort-controls" };
|
|
942
|
+
const _hoisted_10$1 = { class: "material-icons" };
|
|
762
943
|
const _hoisted_11 = { class: "show-hidden-toggle" };
|
|
763
944
|
const _hoisted_12 = { class: "browser-main" };
|
|
764
945
|
const _hoisted_13 = {
|
|
@@ -787,8 +968,16 @@ const _hoisted_19 = {
|
|
|
787
968
|
const _hoisted_20 = { class: "file-details" };
|
|
788
969
|
const _hoisted_21 = { class: "file-info" };
|
|
789
970
|
const _hoisted_22 = { class: "browser-actions" };
|
|
790
|
-
const _hoisted_23 = {
|
|
791
|
-
|
|
971
|
+
const _hoisted_23 = {
|
|
972
|
+
key: 0,
|
|
973
|
+
class: "form-hint"
|
|
974
|
+
};
|
|
975
|
+
const _hoisted_24 = {
|
|
976
|
+
key: 0,
|
|
977
|
+
class: "auto-extension-hint"
|
|
978
|
+
};
|
|
979
|
+
const _hoisted_25 = { class: "dialog-footer" };
|
|
980
|
+
const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
792
981
|
__name: "fileBrowser",
|
|
793
982
|
props: {
|
|
794
983
|
allowedFileTypes: { default: () => [] },
|
|
@@ -842,18 +1031,18 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
842
1031
|
const showCreateDialog = ref(false);
|
|
843
1032
|
const newFileName = ref("");
|
|
844
1033
|
const fileNameError = ref("");
|
|
845
|
-
const fileNameInput = ref(null);
|
|
846
1034
|
const selectedFile = ref(null);
|
|
847
|
-
const DATA_FILE_TYPES = ["xlsx", "parquet", "csv", "txt"];
|
|
848
1035
|
const isDataFile = (file) => {
|
|
849
1036
|
if (file.is_directory)
|
|
850
1037
|
return false;
|
|
851
|
-
|
|
1038
|
+
const name = file.name.toLowerCase();
|
|
1039
|
+
return DATA_FILE_EXTENSIONS.some((ext) => name.endsWith(`.${ext}`));
|
|
852
1040
|
};
|
|
853
1041
|
const isFlowfile = (file) => {
|
|
854
1042
|
if (file.is_directory)
|
|
855
1043
|
return false;
|
|
856
|
-
|
|
1044
|
+
const name = file.name.toLowerCase();
|
|
1045
|
+
return FLOWFILE_EXTENSIONS.some((ext) => name.endsWith(`.${ext}`));
|
|
857
1046
|
};
|
|
858
1047
|
const formatFileSize = (bytes) => {
|
|
859
1048
|
if (bytes < 1024)
|
|
@@ -961,10 +1150,25 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
961
1150
|
}
|
|
962
1151
|
return true;
|
|
963
1152
|
};
|
|
1153
|
+
const hasValidExtension = computed$1(() => {
|
|
1154
|
+
const name = newFileName.value.trim().toLowerCase();
|
|
1155
|
+
const validExtensions = props2.allowedFileTypes.length > 0 ? props2.allowedFileTypes : ALLOWED_SAVE_EXTENSIONS;
|
|
1156
|
+
return validExtensions.some((ext) => name.endsWith(`.${ext}`));
|
|
1157
|
+
});
|
|
1158
|
+
const previewFileName = computed$1(() => {
|
|
1159
|
+
const name = newFileName.value.trim();
|
|
1160
|
+
if (!name)
|
|
1161
|
+
return "";
|
|
1162
|
+
if (hasValidExtension.value)
|
|
1163
|
+
return name;
|
|
1164
|
+
const defaultExt = props2.allowedFileTypes.length > 0 ? props2.allowedFileTypes[0] : "yaml";
|
|
1165
|
+
return `${name}.${defaultExt}`;
|
|
1166
|
+
});
|
|
964
1167
|
const handleCreateFile = () => {
|
|
965
1168
|
if (validateFileName(newFileName.value)) {
|
|
966
|
-
const
|
|
967
|
-
|
|
1169
|
+
const fileName = previewFileName.value;
|
|
1170
|
+
const newFilePath = path.join(currentPath.value, fileName);
|
|
1171
|
+
emit("createFile", newFilePath, currentPath.value, fileName);
|
|
968
1172
|
showCreateDialog.value = false;
|
|
969
1173
|
}
|
|
970
1174
|
};
|
|
@@ -1069,16 +1273,16 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1069
1273
|
const _component_el_form_item = resolveComponent("el-form-item");
|
|
1070
1274
|
const _component_el_form = resolveComponent("el-form");
|
|
1071
1275
|
const _component_el_dialog = resolveComponent("el-dialog");
|
|
1072
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1276
|
+
return openBlock(), createElementBlock("div", _hoisted_1$j, [
|
|
1073
1277
|
_cache[17] || (_cache[17] = createBaseVNode("div", { class: "browser-header" }, [
|
|
1074
1278
|
createBaseVNode("div", { class: "browser-title" }, [
|
|
1075
1279
|
createBaseVNode("span", { class: "material-icons" }, "folder"),
|
|
1076
1280
|
createBaseVNode("span", null, "File Browser")
|
|
1077
1281
|
])
|
|
1078
1282
|
], -1)),
|
|
1079
|
-
createBaseVNode("div", _hoisted_2$
|
|
1080
|
-
createBaseVNode("div", _hoisted_3$
|
|
1081
|
-
createBaseVNode("div", _hoisted_4$
|
|
1283
|
+
createBaseVNode("div", _hoisted_2$h, [
|
|
1284
|
+
createBaseVNode("div", _hoisted_3$g, [
|
|
1285
|
+
createBaseVNode("div", _hoisted_4$b, [
|
|
1082
1286
|
createBaseVNode("button", {
|
|
1083
1287
|
class: "nav-button",
|
|
1084
1288
|
disabled: loading.value,
|
|
@@ -1086,11 +1290,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1086
1290
|
}, _cache[7] || (_cache[7] = [
|
|
1087
1291
|
createBaseVNode("span", { class: "material-icons" }, "arrow_upward", -1),
|
|
1088
1292
|
createBaseVNode("span", null, "Up", -1)
|
|
1089
|
-
]), 8, _hoisted_5$
|
|
1090
|
-
createBaseVNode("div", _hoisted_6$
|
|
1293
|
+
]), 8, _hoisted_5$8),
|
|
1294
|
+
createBaseVNode("div", _hoisted_6$7, toDisplayString(currentPath.value), 1)
|
|
1091
1295
|
]),
|
|
1092
|
-
createBaseVNode("div", _hoisted_7$
|
|
1093
|
-
createBaseVNode("div", _hoisted_8$
|
|
1296
|
+
createBaseVNode("div", _hoisted_7$5, [
|
|
1297
|
+
createBaseVNode("div", _hoisted_8$3, [
|
|
1094
1298
|
createVNode(_component_el_input, {
|
|
1095
1299
|
modelValue: searchTerm.value,
|
|
1096
1300
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchTerm.value = $event),
|
|
@@ -1103,7 +1307,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1103
1307
|
_: 1
|
|
1104
1308
|
}, 8, ["modelValue"])
|
|
1105
1309
|
]),
|
|
1106
|
-
createBaseVNode("div", _hoisted_9, [
|
|
1310
|
+
createBaseVNode("div", _hoisted_9$2, [
|
|
1107
1311
|
createVNode(_component_el_select, {
|
|
1108
1312
|
modelValue: sortBy.value,
|
|
1109
1313
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => sortBy.value = $event),
|
|
@@ -1137,7 +1341,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1137
1341
|
onClick: toggleSortDirection
|
|
1138
1342
|
}, {
|
|
1139
1343
|
default: withCtx(() => [
|
|
1140
|
-
createBaseVNode("span", _hoisted_10, toDisplayString(sortDirection.value === "asc" ? "arrow_upward" : "arrow_downward"), 1)
|
|
1344
|
+
createBaseVNode("span", _hoisted_10$1, toDisplayString(sortDirection.value === "asc" ? "arrow_upward" : "arrow_downward"), 1)
|
|
1141
1345
|
]),
|
|
1142
1346
|
_: 1
|
|
1143
1347
|
})
|
|
@@ -1253,21 +1457,6 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1253
1457
|
])),
|
|
1254
1458
|
_: 1,
|
|
1255
1459
|
__: [13]
|
|
1256
|
-
}, 8, ["disabled"])) : createCommentVNode("", true),
|
|
1257
|
-
_ctx.mode === "open" && selectedFile.value && !selectedFile.value.is_directory ? (openBlock(), createBlock(_component_el_button, {
|
|
1258
|
-
key: 3,
|
|
1259
|
-
type: "primary",
|
|
1260
|
-
disabled: loading.value,
|
|
1261
|
-
size: "small",
|
|
1262
|
-
style: { "background-color": "rgb(92, 92, 92)", "color": "white" },
|
|
1263
|
-
onClick: handleOpenFile
|
|
1264
|
-
}, {
|
|
1265
|
-
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
1266
|
-
createBaseVNode("span", { class: "material-icons" }, "open_in_new", -1),
|
|
1267
|
-
createTextVNode(" Open File ")
|
|
1268
|
-
])),
|
|
1269
|
-
_: 1,
|
|
1270
|
-
__: [14]
|
|
1271
1460
|
}, 8, ["disabled"])) : createCommentVNode("", true)
|
|
1272
1461
|
])
|
|
1273
1462
|
]),
|
|
@@ -1280,7 +1469,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1280
1469
|
onClosed: handleDialogClosed
|
|
1281
1470
|
}, {
|
|
1282
1471
|
footer: withCtx(() => [
|
|
1283
|
-
createBaseVNode("span",
|
|
1472
|
+
createBaseVNode("span", _hoisted_25, [
|
|
1284
1473
|
createVNode(_component_el_button, {
|
|
1285
1474
|
onClick: _cache[5] || (_cache[5] = ($event) => showCreateDialog.value = false)
|
|
1286
1475
|
}, {
|
|
@@ -1314,13 +1503,17 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1314
1503
|
}, {
|
|
1315
1504
|
default: withCtx(() => [
|
|
1316
1505
|
createVNode(_component_el_input, {
|
|
1317
|
-
|
|
1318
|
-
ref: fileNameInput,
|
|
1506
|
+
ref: "fileNameInput",
|
|
1319
1507
|
modelValue: newFileName.value,
|
|
1320
1508
|
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => newFileName.value = $event),
|
|
1321
|
-
placeholder: "Enter file name",
|
|
1509
|
+
placeholder: "Enter file name (e.g., my_flow)",
|
|
1322
1510
|
onKeyup: withKeys(handleCreateFile, ["enter"])
|
|
1323
|
-
}, null, 8, ["modelValue"])
|
|
1511
|
+
}, null, 8, ["modelValue"]),
|
|
1512
|
+
newFileName.value.trim() ? (openBlock(), createElementBlock("div", _hoisted_23, [
|
|
1513
|
+
_cache[14] || (_cache[14] = createBaseVNode("span", { class: "preview-label" }, "Will be saved as:", -1)),
|
|
1514
|
+
createBaseVNode("code", null, toDisplayString(previewFileName.value), 1),
|
|
1515
|
+
!hasValidExtension.value ? (openBlock(), createElementBlock("span", _hoisted_24, " (.yaml added automatically) ")) : createCommentVNode("", true)
|
|
1516
|
+
])) : createCommentVNode("", true)
|
|
1324
1517
|
]),
|
|
1325
1518
|
_: 1
|
|
1326
1519
|
}, 8, ["error"])
|
|
@@ -1334,15 +1527,19 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1334
1527
|
};
|
|
1335
1528
|
}
|
|
1336
1529
|
});
|
|
1337
|
-
const
|
|
1338
|
-
const FileBrowser = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1339
|
-
const _hoisted_1$
|
|
1340
|
-
const _hoisted_2$
|
|
1341
|
-
const _hoisted_3$
|
|
1342
|
-
const _hoisted_4$
|
|
1343
|
-
const _hoisted_5$
|
|
1344
|
-
const _hoisted_6$
|
|
1345
|
-
const
|
|
1530
|
+
const fileBrowser_vue_vue_type_style_index_0_scoped_11a74179_lang = "";
|
|
1531
|
+
const FileBrowser = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-11a74179"]]);
|
|
1532
|
+
const _hoisted_1$i = { class: "action-buttons" };
|
|
1533
|
+
const _hoisted_2$g = { class: "quick-create-modal" };
|
|
1534
|
+
const _hoisted_3$f = { class: "form-group" };
|
|
1535
|
+
const _hoisted_4$a = { class: "preview-text" };
|
|
1536
|
+
const _hoisted_5$7 = { class: "dialog-footer" };
|
|
1537
|
+
const _hoisted_6$6 = { key: 0 };
|
|
1538
|
+
const _hoisted_7$4 = { class: "settings-modal-content" };
|
|
1539
|
+
const _hoisted_8$2 = { class: "form-group" };
|
|
1540
|
+
const _hoisted_9$1 = { class: "form-group" };
|
|
1541
|
+
const _hoisted_10 = { class: "form-group" };
|
|
1542
|
+
const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
1346
1543
|
__name: "HeaderButtons",
|
|
1347
1544
|
emits: ["openFlow", "refreshFlow", "logs-start", "logs-stop"],
|
|
1348
1545
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
@@ -1350,16 +1547,38 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1350
1547
|
const modalVisibleForOpen = ref(false);
|
|
1351
1548
|
const modalVisibleForSave = ref(false);
|
|
1352
1549
|
const modalVisibleForCreate = ref(false);
|
|
1550
|
+
const modalVisibleForQuickCreate = ref(false);
|
|
1353
1551
|
const modalVisibleForSettings = ref(false);
|
|
1354
1552
|
const flowSettings = ref(null);
|
|
1355
1553
|
const savePath = ref(void 0);
|
|
1356
1554
|
const runButton = ref(null);
|
|
1555
|
+
const quickCreateName = ref("");
|
|
1357
1556
|
const executionModes = ref(["Development", "Performance"]);
|
|
1358
1557
|
const executionLocationOptions = ref([
|
|
1359
1558
|
{ key: "local", label: "Local" },
|
|
1360
1559
|
{ key: "remote", label: "Remote" }
|
|
1361
1560
|
]);
|
|
1362
1561
|
const emit = __emit;
|
|
1562
|
+
const isValidSaveExtension = (filePath) => {
|
|
1563
|
+
const name = filePath.toLowerCase();
|
|
1564
|
+
return ALLOWED_SAVE_EXTENSIONS.some((ext) => name.endsWith(`.${ext}`));
|
|
1565
|
+
};
|
|
1566
|
+
const generateDefaultFileName = () => {
|
|
1567
|
+
const now2 = /* @__PURE__ */ new Date();
|
|
1568
|
+
const year = now2.getFullYear();
|
|
1569
|
+
const month = String(now2.getMonth() + 1).padStart(2, "0");
|
|
1570
|
+
const day = String(now2.getDate()).padStart(2, "0");
|
|
1571
|
+
const hours = String(now2.getHours()).padStart(2, "0");
|
|
1572
|
+
const minutes = String(now2.getMinutes()).padStart(2, "0");
|
|
1573
|
+
const seconds = String(now2.getSeconds()).padStart(2, "0");
|
|
1574
|
+
return `${year}${month}${day}_${hours}${minutes}${seconds}_flow`;
|
|
1575
|
+
};
|
|
1576
|
+
const getPreviewFileName = () => {
|
|
1577
|
+
if (quickCreateName.value.trim()) {
|
|
1578
|
+
return quickCreateName.value.trim();
|
|
1579
|
+
}
|
|
1580
|
+
return generateDefaultFileName();
|
|
1581
|
+
};
|
|
1363
1582
|
const loadFlowSettings = async () => {
|
|
1364
1583
|
if (!(nodeStore.flow_id && nodeStore.flow_id > 0))
|
|
1365
1584
|
return;
|
|
@@ -1387,8 +1606,30 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1387
1606
|
};
|
|
1388
1607
|
const fileBrowserRef = ref(null);
|
|
1389
1608
|
const saveFlowAction = async (flowPath, _1, _2) => {
|
|
1390
|
-
|
|
1391
|
-
|
|
1609
|
+
if (flowPath.toLowerCase().endsWith(".flowfile")) {
|
|
1610
|
+
ElMessage.error({
|
|
1611
|
+
message: "The .flowfile format is deprecated. Please use .yaml or .yml instead.",
|
|
1612
|
+
duration: 5e3
|
|
1613
|
+
});
|
|
1614
|
+
return;
|
|
1615
|
+
}
|
|
1616
|
+
if (!isValidSaveExtension(flowPath)) {
|
|
1617
|
+
ElMessage.error({
|
|
1618
|
+
message: "Invalid file extension. Please use .yaml or .yml",
|
|
1619
|
+
duration: 5e3
|
|
1620
|
+
});
|
|
1621
|
+
return;
|
|
1622
|
+
}
|
|
1623
|
+
try {
|
|
1624
|
+
await saveFlow(nodeStore.flow_id, flowPath);
|
|
1625
|
+
ElMessage.success("Flow saved successfully");
|
|
1626
|
+
modalVisibleForSave.value = false;
|
|
1627
|
+
} catch (error) {
|
|
1628
|
+
ElMessage.error({
|
|
1629
|
+
message: error.message || "Failed to save flow",
|
|
1630
|
+
duration: 5e3
|
|
1631
|
+
});
|
|
1632
|
+
}
|
|
1392
1633
|
};
|
|
1393
1634
|
function openFlowAction(inputSelectedFile) {
|
|
1394
1635
|
if (inputSelectedFile) {
|
|
@@ -1419,14 +1660,31 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1419
1660
|
nodeStore.toggleCodeGenerator();
|
|
1420
1661
|
};
|
|
1421
1662
|
const handleCreateAction = async (flowPath, _1, _2) => {
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1663
|
+
if (!isValidSaveExtension(flowPath)) {
|
|
1664
|
+
ElMessage.error({
|
|
1665
|
+
message: "Invalid file extension. Please use .yaml or .yml",
|
|
1666
|
+
duration: 5e3
|
|
1667
|
+
});
|
|
1668
|
+
return;
|
|
1669
|
+
}
|
|
1670
|
+
const createdFlowId = await createFlow(flowPath);
|
|
1426
1671
|
modalVisibleForCreate.value = false;
|
|
1427
1672
|
nodeStore.flow_id = createdFlowId;
|
|
1428
1673
|
emit("refreshFlow");
|
|
1429
1674
|
};
|
|
1675
|
+
const handleQuickCreateAction = async () => {
|
|
1676
|
+
const fileName = getPreviewFileName();
|
|
1677
|
+
console.log("Creating flow with name:", fileName);
|
|
1678
|
+
try {
|
|
1679
|
+
const createdFlowId = await createFlow(null, fileName);
|
|
1680
|
+
modalVisibleForQuickCreate.value = false;
|
|
1681
|
+
quickCreateName.value = "";
|
|
1682
|
+
nodeStore.flow_id = createdFlowId;
|
|
1683
|
+
emit("refreshFlow");
|
|
1684
|
+
} catch (error) {
|
|
1685
|
+
console.error("Failed to create quick flow:", error);
|
|
1686
|
+
}
|
|
1687
|
+
};
|
|
1430
1688
|
const openSettingsModal = () => {
|
|
1431
1689
|
modalVisibleForSettings.value = true;
|
|
1432
1690
|
};
|
|
@@ -1441,6 +1699,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1441
1699
|
__expose({
|
|
1442
1700
|
loadFlowSettings,
|
|
1443
1701
|
openCreateDialog: () => modalVisibleForCreate.value = true,
|
|
1702
|
+
handleQuickCreateAction,
|
|
1444
1703
|
openOpenDialog: () => modalVisibleForOpen.value = true,
|
|
1445
1704
|
openSaveModal: () => modalVisibleForSave.value = true,
|
|
1446
1705
|
runFlow
|
|
@@ -1452,36 +1711,45 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1452
1711
|
});
|
|
1453
1712
|
return (_ctx, _cache) => {
|
|
1454
1713
|
const _component_el_dialog = resolveComponent("el-dialog");
|
|
1714
|
+
const _component_el_input = resolveComponent("el-input");
|
|
1715
|
+
const _component_el_button = resolveComponent("el-button");
|
|
1455
1716
|
const _component_el_option = resolveComponent("el-option");
|
|
1456
1717
|
const _component_el_select = resolveComponent("el-select");
|
|
1457
1718
|
const _component_el_checkbox = resolveComponent("el-checkbox");
|
|
1458
1719
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
1459
|
-
createBaseVNode("div", _hoisted_1$
|
|
1720
|
+
createBaseVNode("div", _hoisted_1$i, [
|
|
1460
1721
|
createBaseVNode("button", {
|
|
1461
1722
|
class: "action-btn",
|
|
1462
1723
|
onClick: openSaveModal
|
|
1463
|
-
}, _cache[
|
|
1724
|
+
}, _cache[13] || (_cache[13] = [
|
|
1464
1725
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "save", -1),
|
|
1465
1726
|
createBaseVNode("span", { class: "btn-text" }, "Save", -1)
|
|
1466
1727
|
])),
|
|
1467
1728
|
createBaseVNode("button", {
|
|
1468
1729
|
class: "action-btn",
|
|
1469
1730
|
onClick: _cache[0] || (_cache[0] = ($event) => modalVisibleForOpen.value = true)
|
|
1470
|
-
}, _cache[
|
|
1731
|
+
}, _cache[14] || (_cache[14] = [
|
|
1471
1732
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "folder_open", -1),
|
|
1472
1733
|
createBaseVNode("span", { class: "btn-text" }, "Open", -1)
|
|
1473
1734
|
])),
|
|
1474
1735
|
createBaseVNode("button", {
|
|
1475
1736
|
class: "action-btn",
|
|
1476
1737
|
onClick: _cache[1] || (_cache[1] = ($event) => modalVisibleForCreate.value = true)
|
|
1477
|
-
}, _cache[
|
|
1738
|
+
}, _cache[15] || (_cache[15] = [
|
|
1478
1739
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "add_circle_outline", -1),
|
|
1479
1740
|
createBaseVNode("span", { class: "btn-text" }, "Create", -1)
|
|
1480
1741
|
])),
|
|
1742
|
+
createBaseVNode("button", {
|
|
1743
|
+
class: "action-btn",
|
|
1744
|
+
onClick: _cache[2] || (_cache[2] = ($event) => modalVisibleForQuickCreate.value = true)
|
|
1745
|
+
}, _cache[16] || (_cache[16] = [
|
|
1746
|
+
createBaseVNode("span", { class: "material-icons btn-icon" }, "flash_on", -1),
|
|
1747
|
+
createBaseVNode("span", { class: "btn-text" }, "Quick Create", -1)
|
|
1748
|
+
])),
|
|
1481
1749
|
createBaseVNode("button", {
|
|
1482
1750
|
class: "action-btn",
|
|
1483
1751
|
onClick: openSettingsModal
|
|
1484
|
-
}, _cache[
|
|
1752
|
+
}, _cache[17] || (_cache[17] = [
|
|
1485
1753
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "settings", -1),
|
|
1486
1754
|
createBaseVNode("span", { class: "btn-text" }, "Settings", -1)
|
|
1487
1755
|
])),
|
|
@@ -1494,29 +1762,29 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1494
1762
|
class: normalizeClass(["action-btn", { active: unref(nodeStore).showCodeGenerator }]),
|
|
1495
1763
|
title: "Generate Python Code (Ctrl+G)",
|
|
1496
1764
|
onClick: toggleCodeGenerator
|
|
1497
|
-
}, _cache[
|
|
1765
|
+
}, _cache[18] || (_cache[18] = [
|
|
1498
1766
|
createBaseVNode("span", { class: "material-icons btn-icon" }, "code", -1),
|
|
1499
1767
|
createBaseVNode("span", { class: "btn-text" }, "Generate code", -1)
|
|
1500
1768
|
]), 2)
|
|
1501
1769
|
]),
|
|
1502
1770
|
createVNode(_component_el_dialog, {
|
|
1503
1771
|
modelValue: modalVisibleForOpen.value,
|
|
1504
|
-
"onUpdate:modelValue": _cache[
|
|
1772
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => modalVisibleForOpen.value = $event),
|
|
1505
1773
|
title: "Select or Enter a Flow File",
|
|
1506
1774
|
width: "70%"
|
|
1507
1775
|
}, {
|
|
1508
1776
|
default: withCtx(() => [
|
|
1509
1777
|
createVNode(FileBrowser, {
|
|
1510
|
-
"allowed-file-types":
|
|
1778
|
+
"allowed-file-types": unref(FLOWFILE_EXTENSIONS),
|
|
1511
1779
|
mode: "open",
|
|
1512
1780
|
onFileSelected: openFlowAction
|
|
1513
|
-
})
|
|
1781
|
+
}, null, 8, ["allowed-file-types"])
|
|
1514
1782
|
]),
|
|
1515
1783
|
_: 1
|
|
1516
1784
|
}, 8, ["modelValue"]),
|
|
1517
1785
|
createVNode(_component_el_dialog, {
|
|
1518
1786
|
modelValue: modalVisibleForSave.value,
|
|
1519
|
-
"onUpdate:modelValue": _cache[
|
|
1787
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => modalVisibleForSave.value = $event),
|
|
1520
1788
|
title: "Select save location",
|
|
1521
1789
|
width: "70%"
|
|
1522
1790
|
}, {
|
|
@@ -1524,45 +1792,95 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1524
1792
|
createVNode(FileBrowser, {
|
|
1525
1793
|
ref_key: "fileBrowserRef",
|
|
1526
1794
|
ref: fileBrowserRef,
|
|
1527
|
-
"allowed-file-types":
|
|
1795
|
+
"allowed-file-types": unref(ALLOWED_SAVE_EXTENSIONS),
|
|
1528
1796
|
mode: "create",
|
|
1529
1797
|
"initial-file-path": savePath.value,
|
|
1530
1798
|
onCreateFile: saveFlowAction,
|
|
1531
1799
|
onOverwriteFile: saveFlowAction
|
|
1532
|
-
}, null, 8, ["initial-file-path"])
|
|
1800
|
+
}, null, 8, ["allowed-file-types", "initial-file-path"])
|
|
1533
1801
|
]),
|
|
1534
1802
|
_: 1
|
|
1535
1803
|
}, 8, ["modelValue"]),
|
|
1536
1804
|
createVNode(_component_el_dialog, {
|
|
1537
1805
|
modelValue: modalVisibleForCreate.value,
|
|
1538
|
-
"onUpdate:modelValue": _cache[
|
|
1806
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => modalVisibleForCreate.value = $event),
|
|
1539
1807
|
title: "Select save location",
|
|
1540
1808
|
width: "70%"
|
|
1541
1809
|
}, {
|
|
1542
1810
|
default: withCtx(() => [
|
|
1543
1811
|
createVNode(FileBrowser, {
|
|
1544
|
-
"allowed-file-types":
|
|
1812
|
+
"allowed-file-types": unref(ALLOWED_SAVE_EXTENSIONS),
|
|
1545
1813
|
mode: "create",
|
|
1546
1814
|
onCreateFile: handleCreateAction,
|
|
1547
1815
|
onOverwriteFile: handleCreateAction
|
|
1548
|
-
})
|
|
1816
|
+
}, null, 8, ["allowed-file-types"])
|
|
1817
|
+
]),
|
|
1818
|
+
_: 1
|
|
1819
|
+
}, 8, ["modelValue"]),
|
|
1820
|
+
createVNode(_component_el_dialog, {
|
|
1821
|
+
modelValue: modalVisibleForQuickCreate.value,
|
|
1822
|
+
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => modalVisibleForQuickCreate.value = $event),
|
|
1823
|
+
title: "Create New Flow",
|
|
1824
|
+
width: "400px"
|
|
1825
|
+
}, {
|
|
1826
|
+
footer: withCtx(() => [
|
|
1827
|
+
createBaseVNode("span", _hoisted_5$7, [
|
|
1828
|
+
createVNode(_component_el_button, {
|
|
1829
|
+
onClick: _cache[7] || (_cache[7] = ($event) => modalVisibleForQuickCreate.value = false)
|
|
1830
|
+
}, {
|
|
1831
|
+
default: withCtx(() => _cache[22] || (_cache[22] = [
|
|
1832
|
+
createTextVNode("Cancel")
|
|
1833
|
+
])),
|
|
1834
|
+
_: 1,
|
|
1835
|
+
__: [22]
|
|
1836
|
+
}),
|
|
1837
|
+
createVNode(_component_el_button, {
|
|
1838
|
+
type: "primary",
|
|
1839
|
+
onClick: handleQuickCreateAction
|
|
1840
|
+
}, {
|
|
1841
|
+
default: withCtx(() => _cache[23] || (_cache[23] = [
|
|
1842
|
+
createTextVNode("Create Flow")
|
|
1843
|
+
])),
|
|
1844
|
+
_: 1,
|
|
1845
|
+
__: [23]
|
|
1846
|
+
})
|
|
1847
|
+
])
|
|
1848
|
+
]),
|
|
1849
|
+
default: withCtx(() => [
|
|
1850
|
+
createBaseVNode("div", _hoisted_2$g, [
|
|
1851
|
+
createBaseVNode("div", _hoisted_3$f, [
|
|
1852
|
+
_cache[19] || (_cache[19] = createBaseVNode("label", { for: "flow-name" }, "Flow Name (optional):", -1)),
|
|
1853
|
+
createVNode(_component_el_input, {
|
|
1854
|
+
id: "flow-name",
|
|
1855
|
+
modelValue: quickCreateName.value,
|
|
1856
|
+
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => quickCreateName.value = $event),
|
|
1857
|
+
placeholder: "Leave empty for auto-generated name",
|
|
1858
|
+
clearable: ""
|
|
1859
|
+
}, null, 8, ["modelValue"])
|
|
1860
|
+
]),
|
|
1861
|
+
createBaseVNode("div", _hoisted_4$a, [
|
|
1862
|
+
_cache[20] || (_cache[20] = createBaseVNode("strong", null, "File will be created as:", -1)),
|
|
1863
|
+
_cache[21] || (_cache[21] = createBaseVNode("br", null, null, -1)),
|
|
1864
|
+
createBaseVNode("code", null, toDisplayString(getPreviewFileName()), 1)
|
|
1865
|
+
])
|
|
1866
|
+
])
|
|
1549
1867
|
]),
|
|
1550
1868
|
_: 1
|
|
1551
1869
|
}, 8, ["modelValue"]),
|
|
1552
1870
|
createVNode(_component_el_dialog, {
|
|
1553
1871
|
modelValue: modalVisibleForSettings.value,
|
|
1554
|
-
"onUpdate:modelValue": _cache[
|
|
1872
|
+
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => modalVisibleForSettings.value = $event),
|
|
1555
1873
|
title: "Execution Settings",
|
|
1556
1874
|
width: "30%"
|
|
1557
1875
|
}, {
|
|
1558
1876
|
default: withCtx(() => [
|
|
1559
|
-
flowSettings.value ? (openBlock(), createElementBlock("div",
|
|
1560
|
-
createBaseVNode("div",
|
|
1561
|
-
createBaseVNode("div",
|
|
1562
|
-
_cache[
|
|
1877
|
+
flowSettings.value ? (openBlock(), createElementBlock("div", _hoisted_6$6, [
|
|
1878
|
+
createBaseVNode("div", _hoisted_7$4, [
|
|
1879
|
+
createBaseVNode("div", _hoisted_8$2, [
|
|
1880
|
+
_cache[24] || (_cache[24] = createBaseVNode("label", null, "Execution Mode:", -1)),
|
|
1563
1881
|
createVNode(_component_el_select, {
|
|
1564
1882
|
modelValue: flowSettings.value.execution_mode,
|
|
1565
|
-
"onUpdate:modelValue": _cache[
|
|
1883
|
+
"onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => flowSettings.value.execution_mode = $event),
|
|
1566
1884
|
size: "small",
|
|
1567
1885
|
placeholder: "Select run mode",
|
|
1568
1886
|
style: { "width": "100%" },
|
|
@@ -1580,11 +1898,11 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1580
1898
|
_: 1
|
|
1581
1899
|
}, 8, ["modelValue"])
|
|
1582
1900
|
]),
|
|
1583
|
-
createBaseVNode("div",
|
|
1584
|
-
_cache[
|
|
1901
|
+
createBaseVNode("div", _hoisted_9$1, [
|
|
1902
|
+
_cache[25] || (_cache[25] = createBaseVNode("label", null, "Execution location:", -1)),
|
|
1585
1903
|
createVNode(_component_el_select, {
|
|
1586
1904
|
modelValue: flowSettings.value.execution_location,
|
|
1587
|
-
"onUpdate:modelValue": _cache[
|
|
1905
|
+
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => flowSettings.value.execution_location = $event),
|
|
1588
1906
|
size: "small",
|
|
1589
1907
|
placeholder: "Select the execution location",
|
|
1590
1908
|
style: { "width": "100%" },
|
|
@@ -1602,10 +1920,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1602
1920
|
_: 1
|
|
1603
1921
|
}, 8, ["modelValue"])
|
|
1604
1922
|
]),
|
|
1605
|
-
createBaseVNode("div",
|
|
1923
|
+
createBaseVNode("div", _hoisted_10, [
|
|
1606
1924
|
createVNode(_component_el_checkbox, {
|
|
1607
1925
|
modelValue: flowSettings.value.show_detailed_progress,
|
|
1608
|
-
"onUpdate:modelValue": _cache[
|
|
1926
|
+
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => flowSettings.value.show_detailed_progress = $event),
|
|
1609
1927
|
label: "Show details during execution",
|
|
1610
1928
|
size: "small",
|
|
1611
1929
|
onChange: pushFlowSettings
|
|
@@ -1620,8 +1938,385 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1620
1938
|
};
|
|
1621
1939
|
}
|
|
1622
1940
|
});
|
|
1623
|
-
const
|
|
1624
|
-
const HeaderButtons = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1941
|
+
const HeaderButtons_vue_vue_type_style_index_0_scoped_3359ec07_lang = "";
|
|
1942
|
+
const HeaderButtons = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-3359ec07"]]);
|
|
1943
|
+
const useItemStore = defineStore("itemStore", () => {
|
|
1944
|
+
const items = ref({});
|
|
1945
|
+
const initialItemStates = ref({});
|
|
1946
|
+
const groups = ref({});
|
|
1947
|
+
const inResizing = ref(false);
|
|
1948
|
+
const idItemClicked = ref(null);
|
|
1949
|
+
const idItemVisible = ref(null);
|
|
1950
|
+
const layoutPresets = {
|
|
1951
|
+
sidePanel: { width: 400, height: "100%" },
|
|
1952
|
+
bottomPanel: { width: "100%", height: 300 },
|
|
1953
|
+
dataView: { width: 600, height: 400 },
|
|
1954
|
+
logView: { width: 600, height: 400 }
|
|
1955
|
+
};
|
|
1956
|
+
const getGroupItems = computed$1(() => (groupName) => {
|
|
1957
|
+
if (!groups.value[groupName])
|
|
1958
|
+
return [];
|
|
1959
|
+
return groups.value[groupName].map((id2) => items.value[id2]).filter(Boolean);
|
|
1960
|
+
});
|
|
1961
|
+
const registerInitialState = (id2, initialState) => {
|
|
1962
|
+
if (!initialItemStates.value[id2]) {
|
|
1963
|
+
initialItemStates.value[id2] = { ...initialState };
|
|
1964
|
+
}
|
|
1965
|
+
};
|
|
1966
|
+
const bringToFront = (id2) => {
|
|
1967
|
+
if (!items.value[id2]) {
|
|
1968
|
+
console.warn(`Item ${id2} not found`);
|
|
1969
|
+
return;
|
|
1970
|
+
}
|
|
1971
|
+
if (items.value[id2].fullScreen)
|
|
1972
|
+
return;
|
|
1973
|
+
let maxZIndex = 99;
|
|
1974
|
+
Object.entries(items.value).forEach(([itemId, item]) => {
|
|
1975
|
+
if (!item.fullScreen && itemId !== id2) {
|
|
1976
|
+
maxZIndex = Math.max(maxZIndex, item.zIndex);
|
|
1977
|
+
}
|
|
1978
|
+
});
|
|
1979
|
+
items.value[id2].zIndex = maxZIndex + 1;
|
|
1980
|
+
saveItemState(id2);
|
|
1981
|
+
};
|
|
1982
|
+
const setItemState = (id2, state2) => {
|
|
1983
|
+
if (!items.value[id2]) {
|
|
1984
|
+
items.value[id2] = {
|
|
1985
|
+
width: 400,
|
|
1986
|
+
height: 300,
|
|
1987
|
+
left: 100,
|
|
1988
|
+
top: 100,
|
|
1989
|
+
stickynessPosition: "free",
|
|
1990
|
+
fullWidth: false,
|
|
1991
|
+
fullHeight: false,
|
|
1992
|
+
zIndex: 100,
|
|
1993
|
+
fullScreen: false,
|
|
1994
|
+
clicked: false
|
|
1995
|
+
};
|
|
1996
|
+
}
|
|
1997
|
+
const oldGroup = items.value[id2].group;
|
|
1998
|
+
Object.assign(items.value[id2], state2);
|
|
1999
|
+
if (state2.group !== void 0) {
|
|
2000
|
+
if (oldGroup && groups.value[oldGroup]) {
|
|
2001
|
+
groups.value[oldGroup] = groups.value[oldGroup].filter((itemId) => itemId !== id2);
|
|
2002
|
+
}
|
|
2003
|
+
if (state2.group) {
|
|
2004
|
+
if (!groups.value[state2.group]) {
|
|
2005
|
+
groups.value[state2.group] = [];
|
|
2006
|
+
}
|
|
2007
|
+
if (!groups.value[state2.group].includes(id2)) {
|
|
2008
|
+
groups.value[state2.group].push(id2);
|
|
2009
|
+
}
|
|
2010
|
+
if (state2.syncDimensions) {
|
|
2011
|
+
syncGroupDimensions(state2.group, id2);
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
2014
|
+
}
|
|
2015
|
+
};
|
|
2016
|
+
const syncGroupDimensions = (groupName, sourceId) => {
|
|
2017
|
+
const groupItems = groups.value[groupName];
|
|
2018
|
+
if (!groupItems || groupItems.length < 2)
|
|
2019
|
+
return;
|
|
2020
|
+
const referenceId = sourceId || groupItems[0];
|
|
2021
|
+
const reference = items.value[referenceId];
|
|
2022
|
+
if (!reference)
|
|
2023
|
+
return;
|
|
2024
|
+
groupItems.forEach((id2) => {
|
|
2025
|
+
var _a;
|
|
2026
|
+
if (id2 !== referenceId && ((_a = items.value[id2]) == null ? void 0 : _a.syncDimensions)) {
|
|
2027
|
+
items.value[id2].width = reference.width;
|
|
2028
|
+
items.value[id2].height = reference.height;
|
|
2029
|
+
saveItemState(id2);
|
|
2030
|
+
}
|
|
2031
|
+
});
|
|
2032
|
+
};
|
|
2033
|
+
const arrangeItems = (arrangement) => {
|
|
2034
|
+
const visibleItems = Object.entries(items.value).filter(([, item]) => !item.fullScreen).sort((a3, b2) => a3[1].zIndex - b2[1].zIndex);
|
|
2035
|
+
switch (arrangement) {
|
|
2036
|
+
case "cascade": {
|
|
2037
|
+
let offset = 0;
|
|
2038
|
+
visibleItems.forEach(([id2, item]) => {
|
|
2039
|
+
item.left = 100 + offset;
|
|
2040
|
+
item.top = 100 + offset;
|
|
2041
|
+
item.stickynessPosition = "free";
|
|
2042
|
+
offset += 30;
|
|
2043
|
+
saveItemState(id2);
|
|
2044
|
+
});
|
|
2045
|
+
break;
|
|
2046
|
+
}
|
|
2047
|
+
case "tile": {
|
|
2048
|
+
const screenWidth = window.innerWidth;
|
|
2049
|
+
const screenHeight = window.innerHeight;
|
|
2050
|
+
const itemCount = visibleItems.length;
|
|
2051
|
+
const cols = Math.ceil(Math.sqrt(itemCount));
|
|
2052
|
+
const rows = Math.ceil(itemCount / cols);
|
|
2053
|
+
const itemWidth = Math.floor(screenWidth / cols) - 20;
|
|
2054
|
+
const itemHeight = Math.floor(screenHeight / rows) - 20;
|
|
2055
|
+
visibleItems.forEach(([id2, item], index) => {
|
|
2056
|
+
const col = index % cols;
|
|
2057
|
+
const row = Math.floor(index / cols);
|
|
2058
|
+
item.left = col * (itemWidth + 10) + 10;
|
|
2059
|
+
item.top = row * (itemHeight + 10) + 10;
|
|
2060
|
+
item.width = itemWidth;
|
|
2061
|
+
item.height = itemHeight;
|
|
2062
|
+
item.stickynessPosition = "free";
|
|
2063
|
+
saveItemState(id2);
|
|
2064
|
+
});
|
|
2065
|
+
break;
|
|
2066
|
+
}
|
|
2067
|
+
case "stack": {
|
|
2068
|
+
visibleItems.forEach(([id2, item]) => {
|
|
2069
|
+
item.left = 100;
|
|
2070
|
+
item.top = 100;
|
|
2071
|
+
item.stickynessPosition = "free";
|
|
2072
|
+
saveItemState(id2);
|
|
2073
|
+
});
|
|
2074
|
+
break;
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
};
|
|
2078
|
+
const preventOverlap = (id2) => {
|
|
2079
|
+
const item = items.value[id2];
|
|
2080
|
+
if (!item || item.stickynessPosition !== "free")
|
|
2081
|
+
return;
|
|
2082
|
+
const threshold = 50;
|
|
2083
|
+
let adjusted = false;
|
|
2084
|
+
Object.entries(items.value).forEach(([otherId, otherItem]) => {
|
|
2085
|
+
if (otherId === id2 || otherItem.fullScreen)
|
|
2086
|
+
return;
|
|
2087
|
+
const horizontalOverlap = item.left < otherItem.left + otherItem.width && item.left + item.width > otherItem.left;
|
|
2088
|
+
const verticalOverlap = item.top < otherItem.top + otherItem.height && item.top + item.height > otherItem.top;
|
|
2089
|
+
if (horizontalOverlap && verticalOverlap) {
|
|
2090
|
+
item.left = otherItem.left + otherItem.width + threshold;
|
|
2091
|
+
if (item.left + item.width > window.innerWidth) {
|
|
2092
|
+
item.left = 100;
|
|
2093
|
+
item.top = otherItem.top + otherItem.height + threshold;
|
|
2094
|
+
}
|
|
2095
|
+
adjusted = true;
|
|
2096
|
+
}
|
|
2097
|
+
});
|
|
2098
|
+
if (adjusted) {
|
|
2099
|
+
saveItemState(id2);
|
|
2100
|
+
}
|
|
2101
|
+
};
|
|
2102
|
+
const saveItemState = (id2) => {
|
|
2103
|
+
const itemState = items.value[id2];
|
|
2104
|
+
localStorage.setItem(`overlayPositionAndSize_${id2}`, JSON.stringify(itemState));
|
|
2105
|
+
if (itemState.group) {
|
|
2106
|
+
const groupData = { groups: groups.value };
|
|
2107
|
+
localStorage.setItem("overlayGroups", JSON.stringify(groupData));
|
|
2108
|
+
}
|
|
2109
|
+
};
|
|
2110
|
+
const loadItemState = (id2) => {
|
|
2111
|
+
const savedState = localStorage.getItem(`overlayPositionAndSize_${id2}`);
|
|
2112
|
+
if (savedState) {
|
|
2113
|
+
const state2 = JSON.parse(savedState);
|
|
2114
|
+
setItemState(id2, state2);
|
|
2115
|
+
}
|
|
2116
|
+
const savedGroups = localStorage.getItem("overlayGroups");
|
|
2117
|
+
if (savedGroups) {
|
|
2118
|
+
const groupData = JSON.parse(savedGroups);
|
|
2119
|
+
groups.value = groupData.groups || {};
|
|
2120
|
+
}
|
|
2121
|
+
};
|
|
2122
|
+
const applyPreset = (id2, presetName) => {
|
|
2123
|
+
const preset = layoutPresets[presetName];
|
|
2124
|
+
const updates = {};
|
|
2125
|
+
if (preset.width === "100%") {
|
|
2126
|
+
updates.width = window.innerWidth;
|
|
2127
|
+
updates.fullWidth = true;
|
|
2128
|
+
} else {
|
|
2129
|
+
updates.width = preset.width;
|
|
2130
|
+
updates.fullWidth = false;
|
|
2131
|
+
}
|
|
2132
|
+
if (preset.height === "100%") {
|
|
2133
|
+
updates.height = window.innerHeight;
|
|
2134
|
+
updates.fullHeight = true;
|
|
2135
|
+
} else {
|
|
2136
|
+
updates.height = preset.height;
|
|
2137
|
+
updates.fullHeight = false;
|
|
2138
|
+
}
|
|
2139
|
+
setItemState(id2, updates);
|
|
2140
|
+
saveItemState(id2);
|
|
2141
|
+
};
|
|
2142
|
+
const toggleFullScreen = (id2) => {
|
|
2143
|
+
if (!items.value[id2])
|
|
2144
|
+
return;
|
|
2145
|
+
setFullScreen(id2, !items.value[id2].fullScreen);
|
|
2146
|
+
};
|
|
2147
|
+
const setFullScreen = (id2, fullScreen) => {
|
|
2148
|
+
if (!items.value[id2])
|
|
2149
|
+
return;
|
|
2150
|
+
if (items.value[id2].fullScreen !== fullScreen) {
|
|
2151
|
+
if (fullScreen) {
|
|
2152
|
+
Object.keys(items.value).forEach((otherId) => {
|
|
2153
|
+
if (otherId !== id2) {
|
|
2154
|
+
items.value[otherId].zIndex = 1;
|
|
2155
|
+
}
|
|
2156
|
+
});
|
|
2157
|
+
items.value[id2].fullScreen = true;
|
|
2158
|
+
items.value[id2].prevWidth = items.value[id2].width;
|
|
2159
|
+
items.value[id2].prevHeight = items.value[id2].height;
|
|
2160
|
+
items.value[id2].prevLeft = items.value[id2].left;
|
|
2161
|
+
items.value[id2].prevTop = items.value[id2].top;
|
|
2162
|
+
items.value[id2].width = window.innerWidth;
|
|
2163
|
+
items.value[id2].height = window.innerHeight;
|
|
2164
|
+
items.value[id2].left = 0;
|
|
2165
|
+
items.value[id2].top = 0;
|
|
2166
|
+
items.value[id2].zIndex = 9999;
|
|
2167
|
+
} else {
|
|
2168
|
+
items.value[id2].fullScreen = false;
|
|
2169
|
+
items.value[id2].width = items.value[id2].prevWidth || 400;
|
|
2170
|
+
items.value[id2].height = items.value[id2].prevHeight || 300;
|
|
2171
|
+
items.value[id2].left = items.value[id2].prevLeft || 100;
|
|
2172
|
+
items.value[id2].top = items.value[id2].prevTop || 100;
|
|
2173
|
+
items.value[id2].zIndex = 1e3;
|
|
2174
|
+
Object.keys(items.value).forEach((otherId) => {
|
|
2175
|
+
if (otherId !== id2) {
|
|
2176
|
+
items.value[otherId].zIndex = 100;
|
|
2177
|
+
}
|
|
2178
|
+
});
|
|
2179
|
+
}
|
|
2180
|
+
saveItemState(id2);
|
|
2181
|
+
clickOnItem(id2);
|
|
2182
|
+
}
|
|
2183
|
+
};
|
|
2184
|
+
const resetLayout = () => {
|
|
2185
|
+
Object.keys(items.value).forEach((id2) => {
|
|
2186
|
+
localStorage.removeItem(`overlayPositionAndSize_${id2}`);
|
|
2187
|
+
});
|
|
2188
|
+
localStorage.removeItem("overlayGroups");
|
|
2189
|
+
groups.value = {};
|
|
2190
|
+
Object.keys(initialItemStates.value).forEach((id2) => {
|
|
2191
|
+
const initialState = initialItemStates.value[id2];
|
|
2192
|
+
if (!initialState)
|
|
2193
|
+
return;
|
|
2194
|
+
const resetState = {
|
|
2195
|
+
width: initialState.width || 400,
|
|
2196
|
+
height: initialState.height || 300,
|
|
2197
|
+
left: initialState.left || 100,
|
|
2198
|
+
top: initialState.top || 100,
|
|
2199
|
+
stickynessPosition: initialState.stickynessPosition || "free",
|
|
2200
|
+
fullWidth: initialState.fullWidth || false,
|
|
2201
|
+
fullHeight: initialState.fullHeight || false,
|
|
2202
|
+
zIndex: 100,
|
|
2203
|
+
fullScreen: false,
|
|
2204
|
+
clicked: false,
|
|
2205
|
+
group: initialState.group,
|
|
2206
|
+
syncDimensions: initialState.syncDimensions
|
|
2207
|
+
};
|
|
2208
|
+
items.value[id2] = resetState;
|
|
2209
|
+
if (resetState.group) {
|
|
2210
|
+
if (!groups.value[resetState.group]) {
|
|
2211
|
+
groups.value[resetState.group] = [];
|
|
2212
|
+
}
|
|
2213
|
+
if (!groups.value[resetState.group].includes(id2)) {
|
|
2214
|
+
groups.value[resetState.group].push(id2);
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2217
|
+
});
|
|
2218
|
+
setTimeout(() => {
|
|
2219
|
+
window.dispatchEvent(
|
|
2220
|
+
new CustomEvent("layout-reset", {
|
|
2221
|
+
detail: { initialStates: initialItemStates.value }
|
|
2222
|
+
})
|
|
2223
|
+
);
|
|
2224
|
+
}, 0);
|
|
2225
|
+
};
|
|
2226
|
+
const resetSingleItem = (id2) => {
|
|
2227
|
+
var _a;
|
|
2228
|
+
const initialState = initialItemStates.value[id2];
|
|
2229
|
+
if (!initialState) {
|
|
2230
|
+
console.warn(`No initial state found for item ${id2}`);
|
|
2231
|
+
return;
|
|
2232
|
+
}
|
|
2233
|
+
localStorage.removeItem(`overlayPositionAndSize_${id2}`);
|
|
2234
|
+
const resetState = {
|
|
2235
|
+
width: initialState.width || 400,
|
|
2236
|
+
height: initialState.height || 300,
|
|
2237
|
+
left: initialState.left || 100,
|
|
2238
|
+
top: initialState.top || 100,
|
|
2239
|
+
stickynessPosition: initialState.stickynessPosition || "free",
|
|
2240
|
+
fullWidth: initialState.fullWidth || false,
|
|
2241
|
+
fullHeight: initialState.fullHeight || false,
|
|
2242
|
+
zIndex: ((_a = items.value[id2]) == null ? void 0 : _a.zIndex) || 100,
|
|
2243
|
+
fullScreen: false,
|
|
2244
|
+
clicked: false,
|
|
2245
|
+
group: initialState.group,
|
|
2246
|
+
syncDimensions: initialState.syncDimensions
|
|
2247
|
+
};
|
|
2248
|
+
items.value[id2] = resetState;
|
|
2249
|
+
};
|
|
2250
|
+
const clickOnItem = (id2) => {
|
|
2251
|
+
if (!items.value[id2] || items.value[id2].fullScreen)
|
|
2252
|
+
return;
|
|
2253
|
+
let maxZIndex = 99;
|
|
2254
|
+
Object.values(items.value).forEach((item) => {
|
|
2255
|
+
if (!item.fullScreen) {
|
|
2256
|
+
maxZIndex = Math.max(maxZIndex, item.zIndex);
|
|
2257
|
+
}
|
|
2258
|
+
});
|
|
2259
|
+
if (items.value[id2].zIndex <= maxZIndex) {
|
|
2260
|
+
items.value[id2].zIndex = maxZIndex + 1;
|
|
2261
|
+
saveItemState(id2);
|
|
2262
|
+
}
|
|
2263
|
+
idItemClicked.value = id2;
|
|
2264
|
+
};
|
|
2265
|
+
const setResizing = (resizing) => {
|
|
2266
|
+
inResizing.value = resizing;
|
|
2267
|
+
};
|
|
2268
|
+
const getResizing = () => {
|
|
2269
|
+
return inResizing.value;
|
|
2270
|
+
};
|
|
2271
|
+
const scrollOnItem = (id2) => {
|
|
2272
|
+
const itemElement = document.getElementById(id2);
|
|
2273
|
+
if (!itemElement)
|
|
2274
|
+
return;
|
|
2275
|
+
const observer = new IntersectionObserver(
|
|
2276
|
+
(entries) => {
|
|
2277
|
+
entries.forEach((entry) => {
|
|
2278
|
+
if (entry.isIntersecting) {
|
|
2279
|
+
idItemVisible.value = id2;
|
|
2280
|
+
items.value[id2].zIndex = 1e3;
|
|
2281
|
+
} else if (idItemVisible.value === id2) {
|
|
2282
|
+
items.value[id2].zIndex = 100;
|
|
2283
|
+
idItemVisible.value = null;
|
|
2284
|
+
}
|
|
2285
|
+
});
|
|
2286
|
+
},
|
|
2287
|
+
{
|
|
2288
|
+
threshold: 0.5
|
|
2289
|
+
}
|
|
2290
|
+
);
|
|
2291
|
+
observer.observe(itemElement);
|
|
2292
|
+
};
|
|
2293
|
+
return {
|
|
2294
|
+
inResizing,
|
|
2295
|
+
items,
|
|
2296
|
+
groups,
|
|
2297
|
+
layoutPresets,
|
|
2298
|
+
initialItemStates,
|
|
2299
|
+
registerInitialState,
|
|
2300
|
+
setItemState,
|
|
2301
|
+
saveItemState,
|
|
2302
|
+
loadItemState,
|
|
2303
|
+
setResizing,
|
|
2304
|
+
getResizing,
|
|
2305
|
+
clickOnItem,
|
|
2306
|
+
scrollOnItem,
|
|
2307
|
+
idItemVisible,
|
|
2308
|
+
toggleFullScreen,
|
|
2309
|
+
setFullScreen,
|
|
2310
|
+
arrangeItems,
|
|
2311
|
+
preventOverlap,
|
|
2312
|
+
syncGroupDimensions,
|
|
2313
|
+
applyPreset,
|
|
2314
|
+
getGroupItems,
|
|
2315
|
+
resetLayout,
|
|
2316
|
+
resetSingleItem,
|
|
2317
|
+
bringToFront
|
|
2318
|
+
};
|
|
2319
|
+
});
|
|
1625
2320
|
/*! Element Plus Icons Vue v2.3.1 */
|
|
1626
2321
|
var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
1627
2322
|
name: "ArrowDown",
|
|
@@ -1719,13 +2414,14 @@ var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
1719
2414
|
}
|
|
1720
2415
|
});
|
|
1721
2416
|
var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
|
|
1722
|
-
const _hoisted_1$
|
|
1723
|
-
const _hoisted_2$
|
|
1724
|
-
const _hoisted_3$
|
|
1725
|
-
const _sfc_main$
|
|
2417
|
+
const _hoisted_1$h = { class: "status-wrapper" };
|
|
2418
|
+
const _hoisted_2$f = { class: "flow-card" };
|
|
2419
|
+
const _hoisted_3$e = ["title"];
|
|
2420
|
+
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
1726
2421
|
__name: "status",
|
|
1727
2422
|
setup(__props) {
|
|
1728
2423
|
const nodeStore = useNodeStore();
|
|
2424
|
+
const draggableItemStore = useItemStore();
|
|
1729
2425
|
const lastStatusChange = ref(/* @__PURE__ */ new Date());
|
|
1730
2426
|
const isRunning = computed$1(() => nodeStore.isRunning);
|
|
1731
2427
|
const showFlowResult = computed$1(() => nodeStore.showFlowResult);
|
|
@@ -1761,17 +2457,21 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1761
2457
|
const toggleResults = () => {
|
|
1762
2458
|
nodeStore.showFlowResult = !nodeStore.showFlowResult;
|
|
1763
2459
|
nodeStore.isShowingLogViewer = nodeStore.showFlowResult;
|
|
2460
|
+
if (nodeStore.isShowingLogViewer) {
|
|
2461
|
+
draggableItemStore.bringToFront("logViewer");
|
|
2462
|
+
draggableItemStore.bringToFront("flowresults");
|
|
2463
|
+
}
|
|
1764
2464
|
};
|
|
1765
2465
|
return (_ctx, _cache) => {
|
|
1766
2466
|
const _component_el_icon = resolveComponent("el-icon");
|
|
1767
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
2467
|
+
return openBlock(), createElementBlock("div", _hoisted_1$h, [
|
|
1768
2468
|
createVNode(PopOver, {
|
|
1769
2469
|
content: tooltipContent.value,
|
|
1770
2470
|
title: isRunning.value ? "Processing Flow" : "Flow Idle",
|
|
1771
2471
|
placement: "left"
|
|
1772
2472
|
}, {
|
|
1773
2473
|
default: withCtx(() => [
|
|
1774
|
-
createBaseVNode("div", _hoisted_2$
|
|
2474
|
+
createBaseVNode("div", _hoisted_2$f, [
|
|
1775
2475
|
(openBlock(), createElementBlock("svg", {
|
|
1776
2476
|
viewBox: "0 0 100 100",
|
|
1777
2477
|
class: normalizeClass(["flow-animation", { "is-flowing": isRunning.value }])
|
|
@@ -1860,7 +2560,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1860
2560
|
]),
|
|
1861
2561
|
_: 1
|
|
1862
2562
|
})) : createCommentVNode("", true)
|
|
1863
|
-
], 10, _hoisted_3$
|
|
2563
|
+
], 10, _hoisted_3$e)
|
|
1864
2564
|
]),
|
|
1865
2565
|
_: 1
|
|
1866
2566
|
})
|
|
@@ -1868,8 +2568,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1868
2568
|
};
|
|
1869
2569
|
}
|
|
1870
2570
|
});
|
|
1871
|
-
const
|
|
1872
|
-
const Status = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
2571
|
+
const status_vue_vue_type_style_index_0_scoped_4aa2388b_lang = "";
|
|
2572
|
+
const Status = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-4aa2388b"]]);
|
|
1873
2573
|
function tryOnScopeDispose(fn) {
|
|
1874
2574
|
if (getCurrentScope()) {
|
|
1875
2575
|
onScopeDispose(fn);
|
|
@@ -8475,7 +9175,7 @@ const __default__$f = {
|
|
|
8475
9175
|
name: "Handle",
|
|
8476
9176
|
compatConfig: { MODE: 3 }
|
|
8477
9177
|
};
|
|
8478
|
-
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
9178
|
+
const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
|
|
8479
9179
|
...__default__$f,
|
|
8480
9180
|
props: {
|
|
8481
9181
|
id: { default: null },
|
|
@@ -8636,9 +9336,9 @@ const DefaultNode = function({
|
|
|
8636
9336
|
}) {
|
|
8637
9337
|
const label = data.label || _label;
|
|
8638
9338
|
return [
|
|
8639
|
-
h(_sfc_main$f, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
9339
|
+
h(_sfc_main$f$1, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
8640
9340
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label]),
|
|
8641
|
-
h(_sfc_main$f, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
9341
|
+
h(_sfc_main$f$1, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
8642
9342
|
];
|
|
8643
9343
|
};
|
|
8644
9344
|
DefaultNode.props = ["sourcePosition", "targetPosition", "label", "isValidTargetPos", "isValidSourcePos", "connectable", "data"];
|
|
@@ -8654,7 +9354,7 @@ const OutputNode = function({
|
|
|
8654
9354
|
}) {
|
|
8655
9355
|
const label = data.label || _label;
|
|
8656
9356
|
return [
|
|
8657
|
-
h(_sfc_main$f, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
9357
|
+
h(_sfc_main$f$1, { type: "target", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),
|
|
8658
9358
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label])
|
|
8659
9359
|
];
|
|
8660
9360
|
};
|
|
@@ -8672,7 +9372,7 @@ const InputNode = function({
|
|
|
8672
9372
|
const label = data.label || _label;
|
|
8673
9373
|
return [
|
|
8674
9374
|
typeof label !== "string" && label ? h(label) : h(Fragment, [label]),
|
|
8675
|
-
h(_sfc_main$f, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
9375
|
+
h(_sfc_main$f$1, { type: "source", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })
|
|
8676
9376
|
];
|
|
8677
9377
|
};
|
|
8678
9378
|
InputNode.props = ["sourcePosition", "label", "isValidSourcePos", "connectable", "data"];
|
|
@@ -8686,7 +9386,7 @@ const __default__$e = {
|
|
|
8686
9386
|
name: "EdgeText",
|
|
8687
9387
|
compatConfig: { MODE: 3 }
|
|
8688
9388
|
};
|
|
8689
|
-
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
9389
|
+
const _sfc_main$e$1 = /* @__PURE__ */ defineComponent({
|
|
8690
9390
|
...__default__$e,
|
|
8691
9391
|
props: {
|
|
8692
9392
|
x: {},
|
|
@@ -8802,7 +9502,7 @@ const _sfc_main$d$1 = /* @__PURE__ */ defineComponent({
|
|
|
8802
9502
|
"stroke-opacity": 0,
|
|
8803
9503
|
class: "vue-flow__edge-interaction"
|
|
8804
9504
|
}, null, 8, _hoisted_2$1$1)) : createCommentVNode("", true),
|
|
8805
|
-
_ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e, {
|
|
9505
|
+
_ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e$1, {
|
|
8806
9506
|
key: 1,
|
|
8807
9507
|
ref_key: "labelEl",
|
|
8808
9508
|
ref: labelEl,
|
|
@@ -10248,8 +10948,8 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
|
|
|
10248
10948
|
}
|
|
10249
10949
|
});
|
|
10250
10950
|
const _hoisted_1$5$1 = ["id"];
|
|
10251
|
-
const _hoisted_2$
|
|
10252
|
-
const _hoisted_3$
|
|
10951
|
+
const _hoisted_2$e = ["id"];
|
|
10952
|
+
const _hoisted_3$d = ["id"];
|
|
10253
10953
|
const __default__$7 = {
|
|
10254
10954
|
name: "A11yDescriptions",
|
|
10255
10955
|
compatConfig: { MODE: 3 }
|
|
@@ -10267,14 +10967,14 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
|
|
|
10267
10967
|
createBaseVNode("div", {
|
|
10268
10968
|
id: `${unref(ARIA_EDGE_DESC_KEY)}-${unref(id2)}`,
|
|
10269
10969
|
style: { "display": "none" }
|
|
10270
|
-
}, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, _hoisted_2$
|
|
10970
|
+
}, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, _hoisted_2$e),
|
|
10271
10971
|
!unref(disableKeyboardA11y) ? (openBlock(), createElementBlock("div", {
|
|
10272
10972
|
key: 0,
|
|
10273
10973
|
id: `${unref(ARIA_LIVE_MESSAGE)}-${unref(id2)}`,
|
|
10274
10974
|
"aria-live": "assertive",
|
|
10275
10975
|
"aria-atomic": "true",
|
|
10276
10976
|
style: { "position": "absolute", "width": "1px", "height": "1px", "margin": "-1px", "border": "0", "padding": "0", "overflow": "hidden", "clip": "rect(0px, 0px, 0px, 0px)", "clip-path": "inset(100%)" }
|
|
10277
|
-
}, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$
|
|
10977
|
+
}, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$d)) : createCommentVNode("", true)
|
|
10278
10978
|
], 64);
|
|
10279
10979
|
};
|
|
10280
10980
|
}
|
|
@@ -11321,7 +12021,7 @@ function useStylesLoadedWarning() {
|
|
|
11321
12021
|
}
|
|
11322
12022
|
});
|
|
11323
12023
|
}
|
|
11324
|
-
const _hoisted_1$
|
|
12024
|
+
const _hoisted_1$g = /* @__PURE__ */ createBaseVNode("div", { class: "vue-flow__edge-labels" }, null, -1);
|
|
11325
12025
|
const __default__$1$1 = {
|
|
11326
12026
|
name: "VueFlow",
|
|
11327
12027
|
compatConfig: { MODE: 3 }
|
|
@@ -11414,7 +12114,7 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
|
|
|
11414
12114
|
createVNode(_sfc_main$8$1, null, {
|
|
11415
12115
|
default: withCtx(() => [
|
|
11416
12116
|
createVNode(_sfc_main$4$1),
|
|
11417
|
-
_hoisted_1$
|
|
12117
|
+
_hoisted_1$g,
|
|
11418
12118
|
createVNode(_sfc_main$2$1),
|
|
11419
12119
|
renderSlot(_ctx.$slots, "zoom-pane")
|
|
11420
12120
|
]),
|
|
@@ -11430,7 +12130,7 @@ const __default__$3 = {
|
|
|
11430
12130
|
name: "Panel",
|
|
11431
12131
|
compatConfig: { MODE: 3 }
|
|
11432
12132
|
};
|
|
11433
|
-
const _sfc_main$
|
|
12133
|
+
const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
11434
12134
|
...__default__$3,
|
|
11435
12135
|
props: {
|
|
11436
12136
|
position: {}
|
|
@@ -14172,14 +14872,14 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
|
|
|
14172
14872
|
};
|
|
14173
14873
|
}
|
|
14174
14874
|
});
|
|
14175
|
-
const _hoisted_1$
|
|
14176
|
-
const _hoisted_2$
|
|
14177
|
-
const _hoisted_3$
|
|
14875
|
+
const _hoisted_1$f = ["width", "height", "viewBox", "aria-labelledby"];
|
|
14876
|
+
const _hoisted_2$d = ["id"];
|
|
14877
|
+
const _hoisted_3$c = ["d", "fill", "stroke", "stroke-width"];
|
|
14178
14878
|
const __default__ = {
|
|
14179
14879
|
name: "MiniMap",
|
|
14180
14880
|
compatConfig: { MODE: 3 }
|
|
14181
14881
|
};
|
|
14182
|
-
const _sfc_main$
|
|
14882
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
14183
14883
|
...__default__,
|
|
14184
14884
|
props: {
|
|
14185
14885
|
nodeColor: { type: [String, Function], default: "#e2e2e2" },
|
|
@@ -14342,7 +15042,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14342
15042
|
emit("nodeMouseleave", param);
|
|
14343
15043
|
}
|
|
14344
15044
|
return (_ctx, _cache) => {
|
|
14345
|
-
return openBlock(), createBlock(unref(_sfc_main$
|
|
15045
|
+
return openBlock(), createBlock(unref(_sfc_main$j), {
|
|
14346
15046
|
position: _ctx.position,
|
|
14347
15047
|
class: normalizeClass(["vue-flow__minimap", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])
|
|
14348
15048
|
}, {
|
|
@@ -14360,7 +15060,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14360
15060
|
_ctx.ariaLabel ? (openBlock(), createElementBlock("title", {
|
|
14361
15061
|
key: 0,
|
|
14362
15062
|
id: `vue-flow__minimap-${unref(id2)}`
|
|
14363
|
-
}, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$
|
|
15063
|
+
}, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$d)) : createCommentVNode("", true),
|
|
14364
15064
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(getNodesInitialized), (node) => {
|
|
14365
15065
|
return openBlock(), createBlock(_sfc_main$1$1, {
|
|
14366
15066
|
id: node.id,
|
|
@@ -14392,8 +15092,8 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
14392
15092
|
stroke: _ctx.maskStrokeColor,
|
|
14393
15093
|
"stroke-width": _ctx.maskStrokeWidth,
|
|
14394
15094
|
"fill-rule": "evenodd"
|
|
14395
|
-
}, null, 8, _hoisted_3$
|
|
14396
|
-
], 8, _hoisted_1$
|
|
15095
|
+
}, null, 8, _hoisted_3$c)
|
|
15096
|
+
], 8, _hoisted_1$f))
|
|
14397
15097
|
]),
|
|
14398
15098
|
_: 1
|
|
14399
15099
|
}, 8, ["position", "class"]);
|
|
@@ -14408,16 +15108,327 @@ function toSnakeCase(str) {
|
|
|
14408
15108
|
return str;
|
|
14409
15109
|
return str.replace(/([A-Z])/g, "_$1").replace(/^_/, "").toLowerCase();
|
|
14410
15110
|
}
|
|
14411
|
-
const
|
|
14412
|
-
const
|
|
15111
|
+
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==";
|
|
15112
|
+
const __vite_glob_0_1 = "/assets/airbyte-292aa232.png";
|
|
15113
|
+
const __vite_glob_0_2 = "/assets/cloud_storage_reader-aa1415d6.png";
|
|
15114
|
+
const __vite_glob_0_3 = "data:image/png;base64,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";
|
|
15115
|
+
const __vite_glob_0_4 = "/assets/cross_join-d30c0290.png";
|
|
15116
|
+
const __vite_glob_0_5 = "/assets/database_reader-ce1e55f3.svg";
|
|
15117
|
+
const __vite_glob_0_6 = "/assets/database_writer-b4ad0753.svg";
|
|
15118
|
+
const __vite_glob_0_7 = "/assets/explore_data-8a0a2861.png";
|
|
15119
|
+
const __vite_glob_0_8 = "data:image/png;base64,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";
|
|
15120
|
+
const __vite_glob_0_9 = "/assets/filter-d7708bda.png";
|
|
15121
|
+
const __vite_glob_0_10 = "/assets/formula-eeeb1611.png";
|
|
15122
|
+
const __vite_glob_0_11 = "/assets/fuzzy_match-40c161b2.png";
|
|
15123
|
+
const __vite_glob_0_12 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAIAklEQVR4nO2dS4wcRxmAv7+qZ8a7tuN1jMkD24hIIQjERjxixYTISRQUcMgJFg4cOCCCECAhccjRuzd8QByMAgHlBOJgRxyQYsMlxEJcbKQolgyCQxCK7UgkaxOvd3dmerp+Dj0zO+t9Tbdnq8tMfavRSrvd1T31db3+qaoRyqIIggJw5uhXcXybdnYYxxRSOtXtxlGzhnfmL3H1+heZu3KZGSynyaq+sR7lsq4n49SjdzNZ+wViZnAKqYLqiG9xhChgjPKf94T3Ft6gNvllXvjH1ZCkmMJnKMLsceGlz0xSq73CRDLDUsfRylzQMnoIQstlWPkUtP7AiYfu5zQZM9iqbw3KCDk9Y5ibc9w78UN2J09yvd3GiEGkeFpVIWJZdhnCJ6F9JiQpRassAZQzh++iXbuEMfeTKpQRWwUKWANvvwvXFsCYjIaxqF5EdnwphOqrWEZqV2Cn/gjGHKDlpHAaIWGwNF2GyDSudTaEklIsM2eP5sc78yFqBgS3HTfllZ4UwzRavZRyT7eoIJTto4VHv6RUL+XOrW5GzSopzcqkRCGDDLYp2jrLiYPepUQht2KwtFwnb1PMWU76LSlRyHoICcsuw8g0i37blChkIwy9waPXhj4K2YzBht75aeijkK3oSbHipaREIcOwqqRsr5QoZFjEz4g+CimCh8FjFFKUNYPH0UqJQsqwjbGvKKQs2yQlCrkdtqFNiUJuF4ul1Q2zaHMl9nW8XN6OrxDV/CNd1dt7OQWwLGd5SbnZzKPEc7j+J6wFSEb+Ru8EjEBi89foZspYUs3YYafBnuWljz8Hf3t71fy1IRgvIQI4B/fshQ9ObccVLJCyJ5lmKfsCwsscP5rAuc6wCYyXkB5GYNtmLakBcSQ2LXP2eAqBbZxhqaAYnJaacTC+jXqgRCGBEYUERhQSGFFIYEQhgRGFBEYUEhhRSGB4HqnfqdPl/S3V8ytEU+QOWIY4iAog/rLJy5UEQbMWJx7+AY/tm6btOhgJu7Q4Veom4S/zF3nhzZOIbaAeSoof9SKgjof3fJTH9k17ueSouNlpgrrue/h/EQIgsJy1cOpoqcMGvmg3U0dDDMtZy2vT57UNMSIYMRjADAhxJZ+8jaq9UaSn5Pfou2qt/PMQAeol33TG2v7PqNPzTaVCBEg14583L+NwFKkbBPjw5H3ssI1+JgrQzFr8e+mdghmrGAwf2XWAmthKpVQmRFEShCvNa3zu9e+wmC5ixG7ZkxHAARblz0/8ks/u/RhtzVdn18Xw9xv/4vHXnydDMGz9xAuC04ydtZ28+fSvOTSxn7RCJZVXWYqSakaqWf8vw9BB15WnKC3NCszAEehe30e3disqFwJgkP7P1k90d4eMTY6xCBnSP3bz9ARFMIFEEYIQoqxk3DDP6ODxPtLzSdiDgTEkiBIi3d2d8h2etm7U898bHyfSqwSHuHa3Ygtld6kKe1nd36q0O0touoQay1ZCev/toOsOAJ0qnc4SmysbTE/AZbRF0G56Y9nt7XVf9zem+N2RE3RcJ48XDX2+8uDuQ/nopXueAx7cfYjff/6nxeY5q5KYhP2Nqf5oqCopFQrJ93aasA2O3XukVBqu++pVTg6Yqu3iufseH0F61SipvA1xQKrltt0ysrazmt1GeiEEPCsXAhsHCbdivbPkNtILgcqFCJCUHJRtFFwcZXq+qTy4mKnjanO+v9xo2JG6APsbe6mb2qrgYtulvNu63j9m2PQMwj079mHFjGcvqxdcvNqc55HXvsXNztLQwUUFrCqvHf0Zn5566Jbg4ls8de77ZDJ86MRpxq5kkgtPvczBcQ8uOpQbnSWW00WQrcchKyiddRrvjjre7ywyfCg/Dy667r1UTeVCABKxSPc1dAnZYKQh3fSKBRfzc0IgCCHaD6WvH1JfezybHjeYynCj9eGu64PqO96RVQRRQqyY/vbxw1ZZhpUR+ur/S7dzMGwvS1A0iEEhBBJcXGgv4Ao26g4l07VbtGeakbZvULRRX1AXg4sO2NfYw28Pz5FqViiCJMADuw6sCS4+sOsAvzny40LpKFATy77Gnhhc3Gl38PWDT5dKQ8lH14PBxQ/U9/CNQ8+USi8GF1kJLmqJjUFM94OoQfLPSYoFF/P2RoJoR7wK0Vt+euTBwLLfvrT2STYlM3YwrfXu0wdehSRiEYSa2Oq/ymYLjNj+INMnHoUIC50lFrImy1k7iOphMzJ1TNg6C92Pg33hRYiqA1Pne2/8hB9dPFl6MrRvjAjNrA2mnr8HD3hcjiBca78/sNbC25XLIeTrQcR0x0d+8NqGiCSD83jCp3uPPht2772syOaE3bKOIVFIYEQhgRGFBEYUEhhRSGBEIYERhQRGFBIYUUhgRCGBEYUERhQSGFFIYEQhgRGFBEYUEhhRSGCUnFEmveUckVvp5YuUm6ZSTMjsufwixl0hdflGbJHVKIbUgZUrwEqeDUmxDO1tH5K0L+D0Mg2j5NNzIzmOhlGcXkZafwWG3XKlT9EnXDk1Yzl2/gZWXmQyMbh1FmmMK04zJhODlRc5dv4Gp2aKrGIFysyOUoTZ48In/tiglrzKXbUnudZ2CASzx5FvVPMFvHvrhsXOn2ilz3LpmRazc1q0hJSdcp6vBDv16N3srP0czNdwCql62f05KESgJvl3IyqnmV/6Lt+8ME/Bb/jsJ1f6RgYv+OoTX0H1edrZYRxTd8SsxFGggNH/UrfnMfIrjp17pfv3UjIA/gfTxH0PcLL3jAAAAABJRU5ErkJggg==";
|
|
15124
|
+
const __vite_glob_0_13 = "/assets/graph_solver-8b7888b8.png";
|
|
15125
|
+
const __vite_glob_0_14 = "/assets/group_by-80561fc3.png";
|
|
15126
|
+
const __vite_glob_0_15 = "/assets/input_data-ab2eb678.png";
|
|
15127
|
+
const __vite_glob_0_16 = "/assets/join-349043ae.png";
|
|
15128
|
+
const __vite_glob_0_17 = "/assets/manual_input-ae98f31d.png";
|
|
15129
|
+
const __vite_glob_0_18 = "/assets/old_join-5d0eb604.png";
|
|
15130
|
+
const __vite_glob_0_19 = "/assets/output-06ec0371.png";
|
|
15131
|
+
const __vite_glob_0_20 = "/assets/pivot-9660df51.png";
|
|
15132
|
+
const __vite_glob_0_21 = "/assets/polars_code-05ce5dc6.png";
|
|
15133
|
+
const __vite_glob_0_22 = "/assets/record_count-dab44eb5.png";
|
|
15134
|
+
const __vite_glob_0_23 = "/assets/record_id-0b15856b.png";
|
|
15135
|
+
const __vite_glob_0_24 = "/assets/sample-693a88b5.png";
|
|
15136
|
+
const __vite_glob_0_25 = "/assets/select-b0d0437a.png";
|
|
15137
|
+
const __vite_glob_0_26 = "/assets/sort-2aa579f0.png";
|
|
15138
|
+
const __vite_glob_0_27 = "/assets/summarize-2a099231.png";
|
|
15139
|
+
const __vite_glob_0_28 = "/assets/text_to_rows-859b29ea.png";
|
|
15140
|
+
const __vite_glob_0_29 = "/assets/union-2d8609f4.png";
|
|
15141
|
+
const __vite_glob_0_30 = "/assets/unique-1958b98a.png";
|
|
15142
|
+
const __vite_glob_0_31 = "/assets/unpivot-d3cb4b5b.png";
|
|
15143
|
+
const __vite_glob_0_32 = "/assets/user-defined-icon-0ae16c90.png";
|
|
15144
|
+
const __vite_glob_0_33 = "/assets/view-7a0f0be1.png";
|
|
15145
|
+
const getImageUrl = (name) => {
|
|
15146
|
+
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/user-defined-icon.png": __vite_glob_0_32, "./assets/icons/view.png": __vite_glob_0_33 }))[`./assets/icons/${name}`], self.location).href;
|
|
15147
|
+
};
|
|
15148
|
+
const fetchNodes = async () => {
|
|
15149
|
+
const response = await axios.get("/node_list");
|
|
15150
|
+
const listNodes = response.data;
|
|
15151
|
+
return listNodes;
|
|
15152
|
+
};
|
|
15153
|
+
const _hoisted_1$e = { class: "component-wrapper" };
|
|
15154
|
+
const _hoisted_2$c = { class: "tooltip-text" };
|
|
15155
|
+
const _hoisted_3$b = ["src", "alt"];
|
|
15156
|
+
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
15157
|
+
__name: "nodeButton",
|
|
15158
|
+
props: {
|
|
15159
|
+
nodeId: {},
|
|
15160
|
+
imageSrc: {},
|
|
15161
|
+
title: {},
|
|
15162
|
+
drawerComponent: {},
|
|
15163
|
+
drawerProps: {},
|
|
15164
|
+
nodeTitleInfo: {}
|
|
15165
|
+
},
|
|
15166
|
+
emits: ["click"],
|
|
15167
|
+
setup(__props, { emit: __emit }) {
|
|
15168
|
+
const description = ref("");
|
|
15169
|
+
const mouseX = ref(0);
|
|
15170
|
+
const mouseY = ref(0);
|
|
15171
|
+
const nodeStore = useNodeStore();
|
|
15172
|
+
const props2 = __props;
|
|
15173
|
+
const isSelected = computed$1(() => {
|
|
15174
|
+
return nodeStore.node_id == props2.nodeId;
|
|
15175
|
+
});
|
|
15176
|
+
computed$1(() => {
|
|
15177
|
+
const overlayWidth = 400;
|
|
15178
|
+
const overlayHeight = 200;
|
|
15179
|
+
const buffer = 100;
|
|
15180
|
+
let left = mouseX.value + buffer;
|
|
15181
|
+
let top = mouseY.value + buffer;
|
|
15182
|
+
if (left + overlayWidth > window.innerWidth) {
|
|
15183
|
+
left -= overlayWidth + 2 * buffer;
|
|
15184
|
+
}
|
|
15185
|
+
if (top + overlayHeight > window.innerHeight) {
|
|
15186
|
+
top -= overlayHeight + 2 * buffer;
|
|
15187
|
+
}
|
|
15188
|
+
left = Math.max(left, buffer);
|
|
15189
|
+
top = Math.max(top, buffer);
|
|
15190
|
+
return {
|
|
15191
|
+
top: `${top}px`,
|
|
15192
|
+
left: `${left}px`
|
|
15193
|
+
};
|
|
15194
|
+
});
|
|
15195
|
+
const nodeResult = computed$1(() => {
|
|
15196
|
+
const nodeResult2 = nodeStore.getNodeResult(props2.nodeId);
|
|
15197
|
+
const nodeValidation = nodeStore.getNodeValidation(props2.nodeId);
|
|
15198
|
+
if (nodeResult2 && nodeResult2.is_running) {
|
|
15199
|
+
return {
|
|
15200
|
+
success: void 0,
|
|
15201
|
+
statusIndicator: "running",
|
|
15202
|
+
hasRun: false,
|
|
15203
|
+
error: void 0
|
|
15204
|
+
};
|
|
15205
|
+
}
|
|
15206
|
+
if (nodeResult2 && !nodeResult2.is_running) {
|
|
15207
|
+
if (nodeValidation) {
|
|
15208
|
+
if (nodeResult2.success === true && !nodeValidation.isValid && nodeValidation.validationTime > nodeResult2.start_timestamp) {
|
|
15209
|
+
return {
|
|
15210
|
+
success: true,
|
|
15211
|
+
statusIndicator: "warning",
|
|
15212
|
+
error: nodeValidation.error,
|
|
15213
|
+
hasRun: true
|
|
15214
|
+
};
|
|
15215
|
+
}
|
|
15216
|
+
if (nodeResult2.success === true && nodeValidation.isValid) {
|
|
15217
|
+
return {
|
|
15218
|
+
success: true,
|
|
15219
|
+
statusIndicator: "success",
|
|
15220
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
15221
|
+
hasRun: true
|
|
15222
|
+
};
|
|
15223
|
+
}
|
|
15224
|
+
if (nodeResult2.success === false && nodeValidation.isValid && nodeValidation.validationTime > nodeResult2.start_timestamp) {
|
|
15225
|
+
return {
|
|
15226
|
+
success: false,
|
|
15227
|
+
statusIndicator: "unknown",
|
|
15228
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
15229
|
+
hasRun: true
|
|
15230
|
+
};
|
|
15231
|
+
}
|
|
15232
|
+
if (nodeResult2.success === false && (!nodeValidation.isValid || !nodeValidation.validationTime)) {
|
|
15233
|
+
return {
|
|
15234
|
+
success: false,
|
|
15235
|
+
statusIndicator: "failure",
|
|
15236
|
+
error: nodeResult2.error || nodeValidation.error,
|
|
15237
|
+
hasRun: true
|
|
15238
|
+
};
|
|
15239
|
+
}
|
|
15240
|
+
}
|
|
15241
|
+
return {
|
|
15242
|
+
success: nodeResult2.success ?? false,
|
|
15243
|
+
statusIndicator: nodeResult2.success ? "success" : "failure",
|
|
15244
|
+
error: nodeResult2.error,
|
|
15245
|
+
hasRun: true
|
|
15246
|
+
};
|
|
15247
|
+
}
|
|
15248
|
+
if (nodeValidation) {
|
|
15249
|
+
if (!nodeValidation.isValid) {
|
|
15250
|
+
return {
|
|
15251
|
+
success: false,
|
|
15252
|
+
statusIndicator: "warning",
|
|
15253
|
+
error: nodeValidation.error,
|
|
15254
|
+
hasRun: false
|
|
15255
|
+
};
|
|
15256
|
+
}
|
|
15257
|
+
if (nodeValidation.isValid) {
|
|
15258
|
+
return {
|
|
15259
|
+
success: true,
|
|
15260
|
+
statusIndicator: "unknown",
|
|
15261
|
+
error: nodeValidation.error,
|
|
15262
|
+
hasRun: false
|
|
15263
|
+
};
|
|
15264
|
+
}
|
|
15265
|
+
}
|
|
15266
|
+
return void 0;
|
|
15267
|
+
});
|
|
15268
|
+
const tooltipContent = computed$1(() => {
|
|
15269
|
+
var _a, _b, _c;
|
|
15270
|
+
switch ((_a = nodeResult.value) == null ? void 0 : _a.statusIndicator) {
|
|
15271
|
+
case "success":
|
|
15272
|
+
return "Operation successful";
|
|
15273
|
+
case "failure":
|
|
15274
|
+
return "Operation failed: \n" + (((_b = nodeResult.value) == null ? void 0 : _b.error) || "No error message available");
|
|
15275
|
+
case "warning":
|
|
15276
|
+
return "Operation warning: \n" + (((_c = nodeResult.value) == null ? void 0 : _c.error) || "No warning message available");
|
|
15277
|
+
case "running":
|
|
15278
|
+
return "Operation in progress...";
|
|
15279
|
+
case "unknown":
|
|
15280
|
+
default:
|
|
15281
|
+
return "Status unknown";
|
|
15282
|
+
}
|
|
15283
|
+
});
|
|
15284
|
+
const getNodeDescription = async () => {
|
|
15285
|
+
description.value = await nodeStore.getNodeDescription(props2.nodeId);
|
|
15286
|
+
};
|
|
15287
|
+
watch$1(
|
|
15288
|
+
() => nodeStore.node_id,
|
|
15289
|
+
(newNodeId, oldNodeId) => {
|
|
15290
|
+
if (String(newNodeId) === String(props2.nodeId) && props2.drawerComponent) {
|
|
15291
|
+
nodeStore.openDrawer(props2.drawerComponent, props2.nodeTitleInfo);
|
|
15292
|
+
}
|
|
15293
|
+
},
|
|
15294
|
+
{ immediate: true }
|
|
15295
|
+
);
|
|
15296
|
+
onMounted(() => {
|
|
15297
|
+
watch$1(
|
|
15298
|
+
() => props2.nodeId,
|
|
15299
|
+
async (newVal) => {
|
|
15300
|
+
if (newVal !== -1) {
|
|
15301
|
+
await nextTick();
|
|
15302
|
+
getNodeDescription();
|
|
15303
|
+
}
|
|
15304
|
+
}
|
|
15305
|
+
);
|
|
15306
|
+
});
|
|
15307
|
+
return (_ctx, _cache) => {
|
|
15308
|
+
var _a;
|
|
15309
|
+
return openBlock(), createElementBlock("div", _hoisted_1$e, [
|
|
15310
|
+
createBaseVNode("div", {
|
|
15311
|
+
class: normalizeClass(["status-indicator", (_a = nodeResult.value) == null ? void 0 : _a.statusIndicator])
|
|
15312
|
+
}, [
|
|
15313
|
+
createBaseVNode("span", _hoisted_2$c, toDisplayString(tooltipContent.value), 1)
|
|
15314
|
+
], 2),
|
|
15315
|
+
createBaseVNode("button", {
|
|
15316
|
+
class: normalizeClass(["node-button", { selected: isSelected.value }]),
|
|
15317
|
+
onClick: _cache[0] || (_cache[0] = //@ts-ignore
|
|
15318
|
+
(...args) => _ctx.onClick && _ctx.onClick(...args))
|
|
15319
|
+
}, [
|
|
15320
|
+
createBaseVNode("img", {
|
|
15321
|
+
src: unref(getImageUrl)(props2.imageSrc),
|
|
15322
|
+
alt: props2.title,
|
|
15323
|
+
width: "50"
|
|
15324
|
+
}, null, 8, _hoisted_3$b)
|
|
15325
|
+
], 2)
|
|
15326
|
+
]);
|
|
15327
|
+
};
|
|
15328
|
+
}
|
|
15329
|
+
});
|
|
15330
|
+
const nodeButton_vue_vue_type_style_index_0_scoped_8ef0b204_lang = "";
|
|
15331
|
+
const NodeButton = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-8ef0b204"]]);
|
|
15332
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
15333
|
+
__name: "GenericNode",
|
|
15334
|
+
props: {
|
|
15335
|
+
nodeId: {},
|
|
15336
|
+
nodeData: {}
|
|
15337
|
+
},
|
|
15338
|
+
setup(__props) {
|
|
15339
|
+
const drawerModules = /* @__PURE__ */ Object.assign({ "./elements/cloudStorageReader/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-d5b1b6c9.js"), true ? ["assets/CloudStorageReader-d5b1b6c9.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/api-c1bad5ca.js","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "./elements/cloudStorageWriter/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-00d87aad.js"), true ? ["assets/CloudStorageWriter-00d87aad.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/api-c1bad5ca.js","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/CloudStorageWriter-b0ee067f.css"] : void 0), "./elements/crossJoin/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-702a3edd.js"), true ? ["assets/CrossJoin-702a3edd.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-92e25ee3.js","assets/UnavailableFields-a03f512c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/CrossJoin-1119d18e.css"] : void 0), "./elements/customNode/CustomNode.vue": () => __vitePreload(() => import("./CustomNode-b1519993.js"), true ? ["assets/CustomNode-b1519993.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js","assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js","assets/TextInput.vue_vue_type_script_setup_true_lang-5896c375.js","assets/NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js","assets/SliderInput-7cb93e62.js","assets/SliderInput-b8fb6a8c.css","assets/SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js","assets/ColumnSelector-4685e75d.js","assets/ColumnSelector-47996a16.css","assets/CustomNode-74a37f74.css"] : void 0), "./elements/customNode/components/ColumnSelector.vue": () => __vitePreload(() => import("./ColumnSelector-4685e75d.js"), true ? ["assets/ColumnSelector-4685e75d.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/ColumnSelector-47996a16.css"] : void 0), "./elements/customNode/components/MultiSelect.vue": () => __vitePreload(() => import("./MultiSelect-0e8724a3.js"), true ? ["assets/MultiSelect-0e8724a3.js","assets/MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js","assets/index-5429bbf8.js","assets/index-50508d4d.css"] : void 0), "./elements/customNode/components/NumericInput.vue": () => __vitePreload(() => import("./NumericInput-3d63a470.js"), true ? ["assets/NumericInput-3d63a470.js","assets/NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js","assets/index-5429bbf8.js","assets/index-50508d4d.css"] : void 0), "./elements/customNode/components/SingleSelect.vue": () => __vitePreload(() => import("./SingleSelect-6c777aac.js"), true ? ["assets/SingleSelect-6c777aac.js","assets/SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js","assets/index-5429bbf8.js","assets/index-50508d4d.css"] : void 0), "./elements/customNode/components/SliderInput.vue": () => __vitePreload(() => import("./SliderInput-7cb93e62.js"), true ? ["assets/SliderInput-7cb93e62.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/SliderInput-b8fb6a8c.css"] : void 0), "./elements/customNode/components/TextInput.vue": () => __vitePreload(() => import("./TextInput-d9a40c11.js"), true ? ["assets/TextInput-d9a40c11.js","assets/TextInput.vue_vue_type_script_setup_true_lang-5896c375.js","assets/index-5429bbf8.js","assets/index-50508d4d.css"] : void 0), "./elements/customNode/components/ToggleSwitch.vue": () => __vitePreload(() => import("./ToggleSwitch-4ef91d19.js"), true ? ["assets/ToggleSwitch-4ef91d19.js","assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js","assets/index-5429bbf8.js","assets/index-50508d4d.css"] : void 0), "./elements/databaseReader/DatabaseConnectionSettings.vue": () => __vitePreload(() => import("./DatabaseConnectionSettings-6f3e4ea5.js"), true ? ["assets/DatabaseConnectionSettings-6f3e4ea5.js","assets/secretApi-68435402.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/DatabaseConnectionSettings-0c04b2e5.css"] : void 0), "./elements/databaseReader/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-d38c7295.js"), true ? ["assets/DatabaseReader-d38c7295.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/api-cf1221f0.js","assets/DatabaseConnectionSettings-6f3e4ea5.js","assets/secretApi-68435402.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/SQLQueryComponent-df51adbe.js","assets/SQLQueryComponent-36cef432.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/DatabaseReader-ae61773c.css"] : void 0), "./elements/databaseReader/SQLQueryComponent.vue": () => __vitePreload(() => import("./SQLQueryComponent-df51adbe.js"), true ? ["assets/SQLQueryComponent-df51adbe.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/SQLQueryComponent-36cef432.css"] : void 0), "./elements/databaseWriter/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-b04ef46a.js"), true ? ["assets/DatabaseWriter-b04ef46a.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/api-cf1221f0.js","assets/DatabaseConnectionSettings-6f3e4ea5.js","assets/secretApi-68435402.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "./elements/exploreData/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-5fa10ed8.js"), true ? ["assets/ExploreData-5fa10ed8.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/VueGraphicWalker-e51b9924.js","assets/VueGraphicWalker-ed5ab88b.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/ExploreData-2d0cf4db.css"] : void 0), "./elements/exploreData/vueGraphicWalker/VueGraphicWalker.vue": () => __vitePreload(() => import("./VueGraphicWalker-e51b9924.js"), true ? ["assets/VueGraphicWalker-e51b9924.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/VueGraphicWalker-ed5ab88b.css"] : void 0), "./elements/externalSource/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-d39af878.js"), true ? ["assets/ExternalSource-d39af878.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/ExternalSource-e37b6275.css"] : void 0), "./elements/filter/Filter.vue": () => __vitePreload(() => import("./Filter-9b6d08db.js"), true ? ["assets/Filter-9b6d08db.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-f7971590.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Filter-f62091b3.css"] : void 0), "./elements/formula/Formula.vue": () => __vitePreload(() => import("./Formula-6b04fb1d.js"), true ? ["assets/Formula-6b04fb1d.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-f7971590.js","assets/fullEditor-178376bb.css","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Formula-bb96803d.css"] : void 0), "./elements/fuzzyMatch/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-999521f4.js"), true ? ["assets/FuzzyMatch-999521f4.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/selectDynamic-92e25ee3.js","assets/UnavailableFields-a03f512c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-2c8e608f.js","assets/FuzzyMatch-1010f966.css"] : void 0), "./elements/graphSolver/ContextMenu.vue": () => __vitePreload(() => import("./ContextMenu-70ae0c79.js"), true ? ["assets/ContextMenu-70ae0c79.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/ContextMenu-63cfa99b.css"] : void 0), "./elements/graphSolver/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-17dd2198.js"), true ? ["assets/GraphSolver-17dd2198.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-70ae0c79.js","assets/ContextMenu-63cfa99b.css","assets/SettingsSection-7ded385d.js","assets/SettingsSection-5c696bee.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/GraphSolver-f0cb7bfb.css"] : void 0), "./elements/graphSolver/PivotValidation.vue": () => __vitePreload(() => import("./PivotValidation-de9f43fe.js"), true ? ["assets/PivotValidation-de9f43fe.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/PivotValidation-891ddfb0.css"] : void 0), "./elements/graphSolver/SettingsSection.vue": () => __vitePreload(() => import("./SettingsSection-7ded385d.js"), true ? ["assets/SettingsSection-7ded385d.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/SettingsSection-5c696bee.css"] : void 0), "./elements/groupBy/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-6b039e18.js"), true ? ["assets/GroupBy-6b039e18.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/GroupBy-b9505323.css"] : void 0), "./elements/join/Join.vue": () => __vitePreload(() => import("./Join-24d0f113.js"), true ? ["assets/Join-24d0f113.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/selectDynamic-92e25ee3.js","assets/UnavailableFields-a03f512c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Join-fd79b451.css"] : void 0), "./elements/manualInput/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-34639209.js"), true ? ["assets/ManualInput-34639209.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-3246a08d.css"] : void 0), "./elements/output/Output.vue": () => __vitePreload(() => import("./Output-edea9802.js"), true ? ["assets/Output-edea9802.js","assets/nodeInput-5d0d6b79.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/outputCsv-076b85ab.js","assets/outputCsv-9cc59e0b.css","assets/outputExcel-0fd17dbe.js","assets/outputExcel-b41305c0.css","assets/outputParquet-b61e0847.js","assets/outputParquet-cf8cf3f2.css","assets/Output-283fe388.css"] : void 0), "./elements/output/outputCsv.vue": () => __vitePreload(() => import("./outputCsv-076b85ab.js"), true ? ["assets/outputCsv-076b85ab.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/outputCsv-9cc59e0b.css"] : void 0), "./elements/output/outputExcel.vue": () => __vitePreload(() => import("./outputExcel-0fd17dbe.js"), true ? ["assets/outputExcel-0fd17dbe.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/outputExcel-b41305c0.css"] : void 0), "./elements/output/outputParquet.vue": () => __vitePreload(() => import("./outputParquet-b61e0847.js"), true ? ["assets/outputParquet-b61e0847.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/outputParquet-cf8cf3f2.css"] : void 0), "./elements/pivot/ContextMenu.vue": () => __vitePreload(() => import("./ContextMenu-f149cf7c.js"), true ? ["assets/ContextMenu-f149cf7c.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/ContextMenu-4c74eef1.css"] : void 0), "./elements/pivot/Pivot.vue": () => __vitePreload(() => import("./Pivot-61d19301.js"), true ? ["assets/Pivot-61d19301.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-f149cf7c.js","assets/ContextMenu-4c74eef1.css","assets/SettingsSection-e1e9c953.js","assets/SettingsSection-71e6b7e3.css","assets/PivotValidation-f97fec5b.js","assets/PivotValidation-c46cd420.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Pivot-cf333e3d.css"] : void 0), "./elements/pivot/PivotValidation.vue": () => __vitePreload(() => import("./PivotValidation-f97fec5b.js"), true ? ["assets/PivotValidation-f97fec5b.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/PivotValidation-c46cd420.css"] : void 0), "./elements/pivot/SettingsSection.vue": () => __vitePreload(() => import("./SettingsSection-e1e9c953.js"), true ? ["assets/SettingsSection-e1e9c953.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/SettingsSection-71e6b7e3.css"] : void 0), "./elements/polarsCode/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-bc3c9984.js"), true ? ["assets/PolarsCode-bc3c9984.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/PolarsCode-650322d1.css"] : void 0), "./elements/read/Read.vue": () => __vitePreload(() => import("./Read-64a3f259.js"), true ? ["assets/Read-64a3f259.js","assets/vue-content-loader.es-2c8e608f.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/readExcel-67b4aee0.js","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/readExcel-806d2826.css","assets/readCsv-a8bb8b61.js","assets/readCsv-c767cb37.css","assets/readParquet-92ce1dbc.js","assets/readParquet-48c81530.css","assets/nodeInput-5d0d6b79.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/Read-e808b239.css"] : void 0), "./elements/read/readCsv.vue": () => __vitePreload(() => import("./readCsv-a8bb8b61.js"), true ? ["assets/readCsv-a8bb8b61.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/readCsv-c767cb37.css"] : void 0), "./elements/read/readExcel.vue": () => __vitePreload(() => import("./readExcel-67b4aee0.js"), true ? ["assets/readExcel-67b4aee0.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/vue-content-loader.es-2c8e608f.js","assets/readExcel-806d2826.css"] : void 0), "./elements/read/readParquet.vue": () => __vitePreload(() => import("./readParquet-92ce1dbc.js"), true ? ["assets/readParquet-92ce1dbc.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/readParquet-48c81530.css"] : void 0), "./elements/recordCount/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-3d5039be.js"), true ? ["assets/RecordCount-3d5039be.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/recordId/RecordId.vue": () => __vitePreload(() => import("./RecordId-597510e0.js"), true ? ["assets/RecordId-597510e0.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-f149cf7c.js","assets/ContextMenu-4c74eef1.css","assets/SettingsSection-e1e9c953.js","assets/SettingsSection-71e6b7e3.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/sample/Sample.vue": () => __vitePreload(() => import("./Sample-4be0a507.js"), true ? ["assets/Sample-4be0a507.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/select/Select.vue": () => __vitePreload(() => import("./Select-9b72f201.js"), true ? ["assets/Select-9b72f201.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-92e25ee3.js","assets/UnavailableFields-a03f512c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css"] : void 0), "./elements/sort/Sort.vue": () => __vitePreload(() => import("./Sort-6cbde21a.js"), true ? ["assets/Sort-6cbde21a.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-2c8e608f.js","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Sort-3643d625.css"] : void 0), "./elements/textToRows/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-c4fcbf4d.js"), true ? ["assets/TextToRows-c4fcbf4d.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-614b998d.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-a03f512c.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-2c8e608f.js","assets/TextToRows-5d2c1190.css"] : void 0), "./elements/union/Union.vue": () => __vitePreload(() => import("./Union-bfe9b996.js"), true ? ["assets/Union-bfe9b996.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Union-af6c3d9b.css"] : void 0), "./elements/unique/Unique.vue": () => __vitePreload(() => import("./Unique-5d023a27.js"), true ? ["assets/Unique-5d023a27.js","assets/nodeInput-5d0d6b79.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-content-loader.es-2c8e608f.js","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-92e25ee3.js","assets/UnavailableFields-a03f512c.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-aa913ff4.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Unique-f9fb0809.css"] : void 0), "./elements/unpivot/ContextMenu.vue": () => __vitePreload(() => import("./ContextMenu-23e909da.js"), true ? ["assets/ContextMenu-23e909da.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/ContextMenu-c13f91d0.css"] : void 0), "./elements/unpivot/SettingsSection.vue": () => __vitePreload(() => import("./SettingsSection-f0f75a42.js"), true ? ["assets/SettingsSection-f0f75a42.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/SettingsSection-2e4d03c4.css"] : void 0), "./elements/unpivot/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-91cc5354.js"), true ? ["assets/Unpivot-91cc5354.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/vue-codemirror.esm-41b0e0d7.js","assets/vue-codemirror-bccfde04.css","assets/ContextMenu-23e909da.js","assets/ContextMenu-c13f91d0.css","assets/SettingsSection-f0f75a42.js","assets/SettingsSection-2e4d03c4.css","assets/genericNodeSettings-4fe5f36b.js","assets/genericNodeSettings-924759c7.css","assets/Unpivot-1e422df3.css"] : void 0), "./elements/unpivot/UnpivotValidation.vue": () => __vitePreload(() => import("./UnpivotValidation-7ee2de44.js"), true ? ["assets/UnpivotValidation-7ee2de44.js","assets/index-5429bbf8.js","assets/index-50508d4d.css","assets/UnpivotValidation-0d240eeb.css"] : void 0) });
|
|
15340
|
+
const props2 = __props;
|
|
15341
|
+
const drawerComponent = shallowRef(null);
|
|
15342
|
+
onMounted(() => {
|
|
15343
|
+
loadDrawerComponent();
|
|
15344
|
+
});
|
|
15345
|
+
const toCamelCase = (str) => {
|
|
15346
|
+
return str.replace(/_([a-z])/g, (_2, letter) => letter.toUpperCase());
|
|
15347
|
+
};
|
|
15348
|
+
const loadDrawerComponent = () => {
|
|
15349
|
+
try {
|
|
15350
|
+
let componentName;
|
|
15351
|
+
let folderName;
|
|
15352
|
+
if (props2.nodeData.custom_node) {
|
|
15353
|
+
componentName = "CustomNode";
|
|
15354
|
+
folderName = "customNode";
|
|
15355
|
+
} else {
|
|
15356
|
+
componentName = toTitleCase(props2.nodeData.item);
|
|
15357
|
+
folderName = toCamelCase(props2.nodeData.item.toLowerCase());
|
|
15358
|
+
}
|
|
15359
|
+
const componentPath = `./elements/${folderName}/${componentName}.vue`;
|
|
15360
|
+
const componentLoader = drawerModules[componentPath];
|
|
15361
|
+
if (!componentLoader) {
|
|
15362
|
+
console.error(`Component not found at path: ${componentPath}`);
|
|
15363
|
+
console.log(
|
|
15364
|
+
"Available paths:",
|
|
15365
|
+
Object.keys(drawerModules).filter((path2) => path2.includes(`/${folderName}/`))
|
|
15366
|
+
);
|
|
15367
|
+
return;
|
|
15368
|
+
}
|
|
15369
|
+
drawerComponent.value = markRaw$1(
|
|
15370
|
+
defineAsyncComponent({
|
|
15371
|
+
loader: componentLoader,
|
|
15372
|
+
errorComponent: void 0,
|
|
15373
|
+
timeout: 3e3,
|
|
15374
|
+
onError(error, retry, fail, attempts) {
|
|
15375
|
+
console.error(`Failed to load drawer component for ${props2.nodeData.item}:`, error);
|
|
15376
|
+
if (attempts <= 3) {
|
|
15377
|
+
retry();
|
|
15378
|
+
} else {
|
|
15379
|
+
fail();
|
|
15380
|
+
}
|
|
15381
|
+
}
|
|
15382
|
+
})
|
|
15383
|
+
);
|
|
15384
|
+
} catch (error) {
|
|
15385
|
+
console.error(`Error setting up drawer component for ${props2.nodeData.item}:`, error);
|
|
15386
|
+
}
|
|
15387
|
+
};
|
|
15388
|
+
const imageSrc = computed$1(() => {
|
|
15389
|
+
var _a;
|
|
15390
|
+
return ((_a = props2.nodeData) == null ? void 0 : _a.image) || "default.png";
|
|
15391
|
+
});
|
|
15392
|
+
const nodeTitle = computed$1(() => {
|
|
15393
|
+
var _a, _b;
|
|
15394
|
+
const displayName = ((_a = props2.nodeData) == null ? void 0 : _a.label) || ((_b = props2.nodeData) == null ? void 0 : _b.name) || "Node";
|
|
15395
|
+
return `${props2.nodeId}: ${displayName}`;
|
|
15396
|
+
});
|
|
15397
|
+
const nodeTitleInfo = computed$1(() => {
|
|
15398
|
+
var _a, _b;
|
|
15399
|
+
return {
|
|
15400
|
+
title: ((_a = props2.nodeData) == null ? void 0 : _a.drawer_title) || "Node Configuration",
|
|
15401
|
+
intro: ((_b = props2.nodeData) == null ? void 0 : _b.drawer_intro) || "Configure node settings"
|
|
15402
|
+
};
|
|
15403
|
+
});
|
|
15404
|
+
onErrorCaptured((error) => {
|
|
15405
|
+
console.error("Error in GenericNode component:", error);
|
|
15406
|
+
return false;
|
|
15407
|
+
});
|
|
15408
|
+
return (_ctx, _cache) => {
|
|
15409
|
+
return openBlock(), createBlock(NodeButton, {
|
|
15410
|
+
ref: "nodeButton",
|
|
15411
|
+
"node-id": _ctx.nodeId,
|
|
15412
|
+
"image-src": imageSrc.value,
|
|
15413
|
+
title: nodeTitle.value,
|
|
15414
|
+
"drawer-component": drawerComponent.value,
|
|
15415
|
+
"node-title-info": nodeTitleInfo.value
|
|
15416
|
+
}, null, 8, ["node-id", "image-src", "title", "drawer-component", "node-title-info"]);
|
|
15417
|
+
};
|
|
15418
|
+
}
|
|
15419
|
+
});
|
|
15420
|
+
const GenericNode_vue_vue_type_style_index_0_scoped_00eceaf3_lang = "";
|
|
15421
|
+
const GenericNode = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-00eceaf3"]]);
|
|
15422
|
+
const _hoisted_1$d = { class: "description-text" };
|
|
15423
|
+
const _hoisted_2$b = {
|
|
14413
15424
|
key: 0,
|
|
14414
15425
|
class: "truncated-indicator",
|
|
14415
15426
|
title: "Click to see full description"
|
|
14416
15427
|
};
|
|
14417
|
-
const _hoisted_3$
|
|
14418
|
-
const _hoisted_4$
|
|
15428
|
+
const _hoisted_3$a = ["id"];
|
|
15429
|
+
const _hoisted_4$9 = ["id"];
|
|
14419
15430
|
const CHAR_LIMIT = 100;
|
|
14420
|
-
const _sfc_main$
|
|
15431
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
14421
15432
|
__name: "CustomNode",
|
|
14422
15433
|
props: {
|
|
14423
15434
|
data: {
|
|
@@ -14435,6 +15446,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14435
15446
|
const showMenu = ref(false);
|
|
14436
15447
|
const contextMenuX = ref(0);
|
|
14437
15448
|
const contextMenuY = ref(0);
|
|
15449
|
+
const props2 = __props;
|
|
14438
15450
|
const onTitleClick = (event) => {
|
|
14439
15451
|
toggleEditMode(true);
|
|
14440
15452
|
mouseX.value = event.clientX;
|
|
@@ -14483,22 +15495,25 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14483
15495
|
window.removeEventListener("click", handleClickOutsideMenu);
|
|
14484
15496
|
};
|
|
14485
15497
|
const copyNode2 = () => {
|
|
15498
|
+
var _a, _b, _c, _d, _e;
|
|
14486
15499
|
const nodeCopyValue = {
|
|
14487
15500
|
nodeIdToCopyFrom: props2.data.id,
|
|
14488
|
-
type: props2.data.component.__name || "unknown",
|
|
15501
|
+
type: ((_a = props2.data.nodeTemplate) == null ? void 0 : _a.item) || ((_b = props2.data.component) == null ? void 0 : _b.__name) || "unknown",
|
|
14489
15502
|
label: props2.data.label,
|
|
14490
15503
|
description: description.value,
|
|
14491
15504
|
numberOfInputs: props2.data.inputs.length,
|
|
14492
15505
|
numberOfOutputs: props2.data.outputs.length,
|
|
14493
|
-
typeSnakeCase: toSnakeCase(props2.data.component.__name || "unknown"),
|
|
14494
|
-
flowIdToCopyFrom: nodeStore.flow_id
|
|
15506
|
+
typeSnakeCase: ((_c = props2.data.nodeTemplate) == null ? void 0 : _c.item) || toSnakeCase(((_d = props2.data.component) == null ? void 0 : _d.__name) || "unknown"),
|
|
15507
|
+
flowIdToCopyFrom: nodeStore.flow_id,
|
|
15508
|
+
multi: (_e = props2.data.nodeTemplate) == null ? void 0 : _e.multi,
|
|
15509
|
+
nodeTemplate: props2.data.nodeTemplate
|
|
14495
15510
|
};
|
|
14496
15511
|
localStorage.setItem("copiedNode", JSON.stringify(nodeCopyValue));
|
|
14497
15512
|
console.log("Node copied:", nodeCopyValue);
|
|
14498
15513
|
closeContextMenu();
|
|
14499
15514
|
};
|
|
14500
15515
|
const deleteNode2 = () => {
|
|
14501
|
-
console.log("
|
|
15516
|
+
console.log("Deleting node");
|
|
14502
15517
|
if (nodeStore.vueFlowInstance) {
|
|
14503
15518
|
let vueFlow = nodeStore.vueFlowInstance;
|
|
14504
15519
|
vueFlow.removeNodes(props2.data.id.toLocaleString(), true);
|
|
@@ -14601,7 +15616,6 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14601
15616
|
}
|
|
14602
15617
|
return description.value;
|
|
14603
15618
|
});
|
|
14604
|
-
const props2 = __props;
|
|
14605
15619
|
function getHandleStyle(index, total) {
|
|
14606
15620
|
const topMargin = 30;
|
|
14607
15621
|
const bottomMargin = 25;
|
|
@@ -14645,19 +15659,23 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14645
15659
|
createBaseVNode("div", {
|
|
14646
15660
|
class: "custom-node-header",
|
|
14647
15661
|
data: "description_display",
|
|
14648
|
-
onContextmenu: onTitleClick
|
|
15662
|
+
onContextmenu: onTitleClick,
|
|
15663
|
+
onClick: _cache[6] || (_cache[6] = withModifiers(() => {
|
|
15664
|
+
}, ["stop"]))
|
|
14649
15665
|
}, [
|
|
14650
15666
|
createBaseVNode("div", null, [
|
|
14651
15667
|
!editMode.value ? (openBlock(), createElementBlock("div", {
|
|
14652
15668
|
key: 0,
|
|
14653
15669
|
class: "description-display",
|
|
14654
|
-
style: normalizeStyle(descriptionTextStyle.value)
|
|
15670
|
+
style: normalizeStyle(descriptionTextStyle.value),
|
|
15671
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
15672
|
+
}, ["stop"]))
|
|
14655
15673
|
}, [
|
|
14656
15674
|
createBaseVNode("div", {
|
|
14657
15675
|
class: "edit-icon",
|
|
14658
15676
|
title: "Edit description",
|
|
14659
15677
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => toggleEditMode(true), ["stop"]))
|
|
14660
|
-
}, _cache[
|
|
15678
|
+
}, _cache[7] || (_cache[7] = [
|
|
14661
15679
|
createBaseVNode("svg", {
|
|
14662
15680
|
width: "12",
|
|
14663
15681
|
height: "12",
|
|
@@ -14672,25 +15690,29 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14672
15690
|
createBaseVNode("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
|
|
14673
15691
|
], -1)
|
|
14674
15692
|
])),
|
|
14675
|
-
createBaseVNode("pre", _hoisted_1$
|
|
14676
|
-
isTruncated.value ? (openBlock(), createElementBlock("span", _hoisted_2$
|
|
15693
|
+
createBaseVNode("pre", _hoisted_1$d, toDisplayString(descriptionSummary.value), 1),
|
|
15694
|
+
isTruncated.value ? (openBlock(), createElementBlock("span", _hoisted_2$b, "...")) : createCommentVNode("", true)
|
|
14677
15695
|
], 4)) : (openBlock(), createElementBlock("div", {
|
|
14678
15696
|
key: 1,
|
|
14679
15697
|
id: props2.data.id.toLocaleString(),
|
|
14680
15698
|
class: "custom-node-header",
|
|
14681
15699
|
style: normalizeStyle(overlayStyle.value),
|
|
14682
|
-
data: "description_input"
|
|
15700
|
+
data: "description_input",
|
|
15701
|
+
onClick: _cache[5] || (_cache[5] = withModifiers(() => {
|
|
15702
|
+
}, ["stop"]))
|
|
14683
15703
|
}, [
|
|
14684
15704
|
withDirectives(createBaseVNode("textarea", {
|
|
14685
15705
|
id: props2.data.id.toLocaleString(),
|
|
14686
|
-
"onUpdate:modelValue": _cache[
|
|
15706
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => description.value = $event),
|
|
14687
15707
|
class: "description-input",
|
|
14688
15708
|
data: "description_input",
|
|
14689
|
-
onBlur: _cache[
|
|
14690
|
-
|
|
15709
|
+
onBlur: _cache[3] || (_cache[3] = ($event) => toggleEditMode(false)),
|
|
15710
|
+
onClick: _cache[4] || (_cache[4] = withModifiers(() => {
|
|
15711
|
+
}, ["stop"]))
|
|
15712
|
+
}, null, 40, _hoisted_4$9), [
|
|
14691
15713
|
[vModelText, description.value]
|
|
14692
15714
|
])
|
|
14693
|
-
], 12, _hoisted_3$
|
|
15715
|
+
], 12, _hoisted_3$a))
|
|
14694
15716
|
])
|
|
14695
15717
|
], 32),
|
|
14696
15718
|
createBaseVNode("div", {
|
|
@@ -14699,16 +15721,21 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14699
15721
|
class: "custom-node",
|
|
14700
15722
|
onContextmenu: withModifiers(showContextMenu, ["prevent"])
|
|
14701
15723
|
}, [
|
|
14702
|
-
(openBlock(), createBlock(
|
|
15724
|
+
__props.data.nodeTemplate ? (openBlock(), createBlock(GenericNode, {
|
|
15725
|
+
key: 0,
|
|
15726
|
+
"node-id": __props.data.id,
|
|
15727
|
+
"node-data": { ...__props.data.nodeTemplate, id: __props.data.id, label: __props.data.label }
|
|
15728
|
+
}, null, 8, ["node-id", "node-data"])) : __props.data.component ? (openBlock(), createBlock(resolveDynamicComponent(__props.data.component), {
|
|
15729
|
+
key: 1,
|
|
14703
15730
|
"node-id": __props.data.id
|
|
14704
|
-
}, null, 8, ["node-id"])),
|
|
15731
|
+
}, null, 8, ["node-id"])) : createCommentVNode("", true),
|
|
14705
15732
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.data.inputs, (input, index) => {
|
|
14706
15733
|
return openBlock(), createElementBlock("div", {
|
|
14707
15734
|
key: input.id,
|
|
14708
15735
|
class: "handle-input",
|
|
14709
15736
|
style: normalizeStyle(getHandleStyle(index, __props.data.inputs.length))
|
|
14710
15737
|
}, [
|
|
14711
|
-
createVNode(unref(_sfc_main$f), {
|
|
15738
|
+
createVNode(unref(_sfc_main$f$1), {
|
|
14712
15739
|
id: input.id,
|
|
14713
15740
|
type: "target",
|
|
14714
15741
|
position: input.position
|
|
@@ -14721,7 +15748,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14721
15748
|
class: "handle-output",
|
|
14722
15749
|
style: normalizeStyle(getHandleStyle(index, __props.data.outputs.length))
|
|
14723
15750
|
}, [
|
|
14724
|
-
createVNode(unref(_sfc_main$f), {
|
|
15751
|
+
createVNode(unref(_sfc_main$f$1), {
|
|
14725
15752
|
id: output.id,
|
|
14726
15753
|
type: "source",
|
|
14727
15754
|
position: output.position
|
|
@@ -14729,7 +15756,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14729
15756
|
], 4);
|
|
14730
15757
|
}), 128)),
|
|
14731
15758
|
showMenu.value ? (openBlock(), createBlock(Teleport, {
|
|
14732
|
-
key:
|
|
15759
|
+
key: 2,
|
|
14733
15760
|
to: "body"
|
|
14734
15761
|
}, [
|
|
14735
15762
|
createBaseVNode("div", {
|
|
@@ -14741,7 +15768,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14741
15768
|
createBaseVNode("div", {
|
|
14742
15769
|
class: "context-menu-item",
|
|
14743
15770
|
onClick: copyNode2
|
|
14744
|
-
}, _cache[
|
|
15771
|
+
}, _cache[8] || (_cache[8] = [
|
|
14745
15772
|
createBaseVNode("svg", {
|
|
14746
15773
|
width: "14",
|
|
14747
15774
|
height: "14",
|
|
@@ -14767,7 +15794,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14767
15794
|
createBaseVNode("div", {
|
|
14768
15795
|
class: "context-menu-item",
|
|
14769
15796
|
onClick: deleteNode2
|
|
14770
|
-
}, _cache[
|
|
15797
|
+
}, _cache[9] || (_cache[9] = [
|
|
14771
15798
|
createBaseVNode("svg", {
|
|
14772
15799
|
width: "14",
|
|
14773
15800
|
height: "14",
|
|
@@ -14797,36 +15824,82 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
14797
15824
|
};
|
|
14798
15825
|
}
|
|
14799
15826
|
});
|
|
14800
|
-
const
|
|
14801
|
-
const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
14802
|
-
const
|
|
14803
|
-
|
|
14804
|
-
|
|
14805
|
-
|
|
14806
|
-
|
|
14807
|
-
|
|
14808
|
-
|
|
14809
|
-
|
|
14810
|
-
|
|
14811
|
-
const componentCache = {};
|
|
14812
|
-
function getComponent(name) {
|
|
14813
|
-
if (!componentCache[name]) {
|
|
14814
|
-
componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-f1ff509e.js"), true ? ["assets/CloudStorageReader-f1ff509e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "../../nodes/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-034f8b78.js"), true ? ["assets/CloudStorageWriter-034f8b78.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageWriter-49c9a4b2.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-9e156ebe.js"), true ? ["assets/CrossJoin-9e156ebe.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-0b10551e.js"), true ? ["assets/DatabaseReader-0b10551e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-c17c6916.js"), true ? ["assets/DatabaseWriter-c17c6916.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-18a4fe52.js"), true ? ["assets/ExploreData-18a4fe52.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-3a66556c.js"), true ? ["assets/ExternalSource-3a66556c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-91ad87e7.js"), true ? ["assets/Filter-91ad87e7.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-3c395ab1.js"), true ? ["assets/Formula-3c395ab1.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-29f19d21.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-2df0d230.js"), true ? ["assets/FuzzyMatch-2df0d230.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-d285877f.js"), true ? ["assets/GraphSolver-d285877f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-0bd1cc6b.js"), true ? ["assets/GroupBy-0bd1cc6b.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-5a78a203.js"), true ? ["assets/Join-5a78a203.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Join-f45eff22.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-93aef9d6.js"), true ? ["assets/ManualInput-93aef9d6.js","assets/nodeTitle-a16db7c3.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-a71b52c6.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-411ecaee.js"), true ? ["assets/Output-411ecaee.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-89db4b04.js"), true ? ["assets/Pivot-89db4b04.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-a9f974f8.js"), true ? ["assets/PolarsCode-a9f974f8.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-c3b1929c.js"), true ? ["assets/Read-c3b1929c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-4e95f98e.js"), true ? ["assets/RecordCount-4e95f98e.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-55ae7d36.js"), true ? ["assets/RecordId-55ae7d36.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-b4a18476.js"), true ? ["assets/Sample-b4a18476.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-727688dc.js"), true ? ["assets/Select-727688dc.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-be3339a8.js"), true ? ["assets/Sort-be3339a8.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-ba94b82f.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-7b8998da.js"), true ? ["assets/TextToRows-7b8998da.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-89fd73dc.js"), true ? ["assets/Union-89fd73dc.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-af5a80b4.js"), true ? ["assets/Unique-af5a80b4.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-5195d411.js"), true ? ["assets/Unpivot-5195d411.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${toTitleCase(name)}.vue`).then((module) => {
|
|
14815
|
-
const component = markRaw$1(module.default);
|
|
14816
|
-
return component;
|
|
14817
|
-
});
|
|
14818
|
-
}
|
|
14819
|
-
return componentCache[name];
|
|
15827
|
+
const CustomNode_vue_vue_type_style_index_0_scoped_0887a495_lang = "";
|
|
15828
|
+
const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-0887a495"]]);
|
|
15829
|
+
const componentCache = /* @__PURE__ */ new Map();
|
|
15830
|
+
function getComponent(nodeOrItem) {
|
|
15831
|
+
const cacheKey = "generic-node";
|
|
15832
|
+
if (componentCache.has(cacheKey)) {
|
|
15833
|
+
return componentCache.get(cacheKey);
|
|
15834
|
+
}
|
|
15835
|
+
const componentPromise = Promise.resolve(markRaw$1(GenericNode));
|
|
15836
|
+
componentCache.set(cacheKey, componentPromise);
|
|
15837
|
+
return componentPromise;
|
|
14820
15838
|
}
|
|
14821
15839
|
function getComponentRaw(name) {
|
|
14822
|
-
|
|
14823
|
-
componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/CloudStorageReader.vue": () => __vitePreload(() => import("./CloudStorageReader-f1ff509e.js"), true ? ["assets/CloudStorageReader-f1ff509e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageReader-29d14fcc.css"] : void 0), "../../nodes/CloudStorageWriter.vue": () => __vitePreload(() => import("./CloudStorageWriter-034f8b78.js"), true ? ["assets/CloudStorageWriter-034f8b78.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-cb00cce6.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CloudStorageWriter-49c9a4b2.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-9e156ebe.js"), true ? ["assets/CrossJoin-9e156ebe.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-0b10551e.js"), true ? ["assets/DatabaseReader-0b10551e.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-c17c6916.js"), true ? ["assets/DatabaseWriter-c17c6916.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/api-023d1733.js","assets/DatabaseConnectionSettings-d5c625b3.js","assets/secretApi-baceb6f9.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-18a4fe52.js"), true ? ["assets/ExploreData-18a4fe52.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-3a66556c.js"), true ? ["assets/ExternalSource-3a66556c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-91ad87e7.js"), true ? ["assets/Filter-91ad87e7.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-3c395ab1.js"), true ? ["assets/Formula-3c395ab1.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-ec4e4f95.js","assets/fullEditor-178376bb.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-29f19d21.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-2df0d230.js"), true ? ["assets/FuzzyMatch-2df0d230.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-d285877f.js"), true ? ["assets/GraphSolver-d285877f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-0bd1cc6b.js"), true ? ["assets/GroupBy-0bd1cc6b.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-5a78a203.js"), true ? ["assets/Join-5a78a203.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Join-f45eff22.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-93aef9d6.js"), true ? ["assets/ManualInput-93aef9d6.js","assets/nodeTitle-a16db7c3.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-a71b52c6.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-411ecaee.js"), true ? ["assets/Output-411ecaee.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-89db4b04.js"), true ? ["assets/Pivot-89db4b04.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-a9f974f8.js"), true ? ["assets/PolarsCode-a9f974f8.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-c3b1929c.js"), true ? ["assets/Read-c3b1929c.js","assets/vue-content-loader.es-ba94b82f.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-4e95f98e.js"), true ? ["assets/RecordCount-4e95f98e.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-55ae7d36.js"), true ? ["assets/RecordId-55ae7d36.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-695ac487.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-b4a18476.js"), true ? ["assets/Sample-b4a18476.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-727688dc.js"), true ? ["assets/Select-727688dc.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-be3339a8.js"), true ? ["assets/Sort-be3339a8.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-ba94b82f.js","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-7b8998da.js"), true ? ["assets/TextToRows-7b8998da.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-0b46dd77.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-ba94b82f.js","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-89fd73dc.js"), true ? ["assets/Union-89fd73dc.js","assets/vue-codemirror.esm-dc5e3348.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-af5a80b4.js"), true ? ["assets/Unique-af5a80b4.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-ba94b82f.js","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-de91449a.js","assets/UnavailableFields-8b0cb48e.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-5195d411.js"), true ? ["assets/Unpivot-5195d411.js","assets/index-683fc198.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-dc5e3348.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-def5879b.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-a16db7c3.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${name}.vue`).then((module) => {
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
15840
|
+
return getComponent();
|
|
15841
|
+
}
|
|
15842
|
+
let nodeTemplatesCache = null;
|
|
15843
|
+
let cachePromise = null;
|
|
15844
|
+
async function fetchNodeTemplates() {
|
|
15845
|
+
if (nodeTemplatesCache !== null) {
|
|
15846
|
+
return nodeTemplatesCache;
|
|
15847
|
+
}
|
|
15848
|
+
if (cachePromise !== null) {
|
|
15849
|
+
return cachePromise;
|
|
15850
|
+
}
|
|
15851
|
+
cachePromise = axios.get("/node_list").then((response) => {
|
|
15852
|
+
const allNodes = response.data;
|
|
15853
|
+
nodeTemplatesCache = allNodes.filter((node) => node.prod_ready);
|
|
15854
|
+
return nodeTemplatesCache;
|
|
15855
|
+
}).catch((error) => {
|
|
15856
|
+
console.error("Failed to fetch node templates:", error);
|
|
15857
|
+
cachePromise = null;
|
|
15858
|
+
throw error;
|
|
15859
|
+
});
|
|
15860
|
+
return cachePromise;
|
|
15861
|
+
}
|
|
15862
|
+
function clearNodeTemplatesCache() {
|
|
15863
|
+
nodeTemplatesCache = null;
|
|
15864
|
+
cachePromise = null;
|
|
15865
|
+
}
|
|
15866
|
+
async function getNodeTemplateByItem(item) {
|
|
15867
|
+
try {
|
|
15868
|
+
const allNodes = await fetchNodeTemplates();
|
|
15869
|
+
return allNodes.find((node) => node.item === item);
|
|
15870
|
+
} catch (error) {
|
|
15871
|
+
console.error(`Failed to get node template for item ${item}:`, error);
|
|
15872
|
+
return void 0;
|
|
14827
15873
|
}
|
|
14828
|
-
return componentCache[name];
|
|
14829
15874
|
}
|
|
15875
|
+
const useNodes = () => {
|
|
15876
|
+
const nodes = ref([]);
|
|
15877
|
+
const loading = ref(false);
|
|
15878
|
+
const error = ref(null);
|
|
15879
|
+
const fetchNodes2 = async () => {
|
|
15880
|
+
loading.value = true;
|
|
15881
|
+
error.value = null;
|
|
15882
|
+
try {
|
|
15883
|
+
nodes.value = await fetchNodeTemplates();
|
|
15884
|
+
} catch (err) {
|
|
15885
|
+
error.value = err;
|
|
15886
|
+
nodes.value = [];
|
|
15887
|
+
} finally {
|
|
15888
|
+
loading.value = false;
|
|
15889
|
+
}
|
|
15890
|
+
};
|
|
15891
|
+
onMounted(fetchNodes2);
|
|
15892
|
+
return {
|
|
15893
|
+
nodes,
|
|
15894
|
+
loading,
|
|
15895
|
+
error,
|
|
15896
|
+
refetch: fetchNodes2,
|
|
15897
|
+
clearCache: () => {
|
|
15898
|
+
clearNodeTemplatesCache();
|
|
15899
|
+
return fetchNodes2();
|
|
15900
|
+
}
|
|
15901
|
+
};
|
|
15902
|
+
};
|
|
14830
15903
|
const connectNode = async (flowId, nodeConnection) => {
|
|
14831
15904
|
console.log("Connecting node where it should happen", nodeConnection);
|
|
14832
15905
|
try {
|
|
@@ -15035,7 +16108,9 @@ function useDragAndDrop() {
|
|
|
15035
16108
|
outputs: Array.from({ length: node.numberOfOutputs }, (_2, i2) => ({
|
|
15036
16109
|
id: `output-${i2}`,
|
|
15037
16110
|
position: Position.Right
|
|
15038
|
-
}))
|
|
16111
|
+
})),
|
|
16112
|
+
// Include nodeTemplate if available
|
|
16113
|
+
nodeTemplate: node.nodeTemplate
|
|
15039
16114
|
}
|
|
15040
16115
|
};
|
|
15041
16116
|
const nodePromise = {
|
|
@@ -15057,7 +16132,8 @@ function useDragAndDrop() {
|
|
|
15057
16132
|
};
|
|
15058
16133
|
async function getNodeToAdd(node) {
|
|
15059
16134
|
const numberOfInputs = node.multi ? 1 : node.input;
|
|
15060
|
-
const
|
|
16135
|
+
const nodeTemplate = await getNodeTemplateByItem(node.item);
|
|
16136
|
+
const component = await getComponent(nodeTemplate || node.item);
|
|
15061
16137
|
const newNode = {
|
|
15062
16138
|
id: String(node.id),
|
|
15063
16139
|
type: "custom-node",
|
|
@@ -15076,7 +16152,9 @@ function useDragAndDrop() {
|
|
|
15076
16152
|
outputs: Array.from({ length: node.output }, (_2, i2) => ({
|
|
15077
16153
|
id: `output-${i2}`,
|
|
15078
16154
|
position: Position.Right
|
|
15079
|
-
}))
|
|
16155
|
+
})),
|
|
16156
|
+
// IMPORTANT: Include the complete NodeTemplate
|
|
16157
|
+
nodeTemplate
|
|
15080
16158
|
}
|
|
15081
16159
|
};
|
|
15082
16160
|
return newNode;
|
|
@@ -15107,21 +16185,17 @@ function useDragAndDrop() {
|
|
|
15107
16185
|
if (!event.dataTransfer)
|
|
15108
16186
|
return;
|
|
15109
16187
|
const nodeData = JSON.parse(event.dataTransfer.getData("application/vueflow"));
|
|
15110
|
-
console.log("nodeData:", nodeData);
|
|
15111
16188
|
const nodeId = getId();
|
|
15112
|
-
getComponent(
|
|
16189
|
+
getComponent().then((component) => {
|
|
15113
16190
|
const numberOfInputs = nodeData.multi ? 1 : nodeData.input;
|
|
15114
|
-
console.log("logging", numberOfInputs);
|
|
15115
16191
|
const newNode = {
|
|
15116
16192
|
id: String(nodeId),
|
|
15117
16193
|
type: "custom-node",
|
|
15118
16194
|
position,
|
|
15119
16195
|
data: {
|
|
15120
16196
|
id: nodeId,
|
|
15121
|
-
// Pass nodeId here
|
|
15122
16197
|
label: nodeData.name,
|
|
15123
16198
|
component: markRaw$1(component),
|
|
15124
|
-
// Pass component directly
|
|
15125
16199
|
inputs: Array.from({ length: numberOfInputs }, (_2, i2) => ({
|
|
15126
16200
|
id: `input-${i2}`,
|
|
15127
16201
|
position: Position.Left
|
|
@@ -15130,7 +16204,8 @@ function useDragAndDrop() {
|
|
|
15130
16204
|
id: `output-${i2}`,
|
|
15131
16205
|
position: Position.Right
|
|
15132
16206
|
})),
|
|
15133
|
-
|
|
16207
|
+
// IMPORTANT: Pass the complete NodeTemplate data
|
|
16208
|
+
nodeTemplate: nodeData
|
|
15134
16209
|
}
|
|
15135
16210
|
};
|
|
15136
16211
|
const { off } = onNodesInitialized(() => {
|
|
@@ -15145,9 +16220,7 @@ function useDragAndDrop() {
|
|
|
15145
16220
|
});
|
|
15146
16221
|
off();
|
|
15147
16222
|
});
|
|
15148
|
-
console.log("nodeData", nodeData);
|
|
15149
16223
|
insertNode(flowId, nodeId, nodeData.item);
|
|
15150
|
-
console.log(newNode);
|
|
15151
16224
|
addNodes(newNode);
|
|
15152
16225
|
}).catch((error) => {
|
|
15153
16226
|
console.error(`Error importing component for ${nodeData.item}`, error);
|
|
@@ -17723,11 +18796,11 @@ const oneDarkHighlightStyle = /* @__PURE__ */ HighlightStyle.define([
|
|
|
17723
18796
|
}
|
|
17724
18797
|
]);
|
|
17725
18798
|
const oneDark = [oneDarkTheme, /* @__PURE__ */ syntaxHighlighting(oneDarkHighlightStyle)];
|
|
17726
|
-
const _hoisted_1$
|
|
17727
|
-
const _hoisted_2$
|
|
17728
|
-
const _hoisted_3$
|
|
17729
|
-
const _hoisted_4$
|
|
17730
|
-
const _hoisted_5$
|
|
18799
|
+
const _hoisted_1$c = { class: "code-container" };
|
|
18800
|
+
const _hoisted_2$a = { class: "code-header" };
|
|
18801
|
+
const _hoisted_3$9 = { class: "header-actions" };
|
|
18802
|
+
const _hoisted_4$8 = ["disabled"];
|
|
18803
|
+
const _hoisted_5$6 = {
|
|
17731
18804
|
key: 0,
|
|
17732
18805
|
width: "16",
|
|
17733
18806
|
height: "16",
|
|
@@ -17736,11 +18809,11 @@ const _hoisted_5$5 = {
|
|
|
17736
18809
|
stroke: "currentColor",
|
|
17737
18810
|
"stroke-width": "2"
|
|
17738
18811
|
};
|
|
17739
|
-
const _hoisted_6$
|
|
18812
|
+
const _hoisted_6$5 = {
|
|
17740
18813
|
key: 1,
|
|
17741
18814
|
class: "spinner"
|
|
17742
18815
|
};
|
|
17743
|
-
const _sfc_main$
|
|
18816
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
17744
18817
|
__name: "CodeGenerator",
|
|
17745
18818
|
setup(__props) {
|
|
17746
18819
|
const code = ref("");
|
|
@@ -17807,23 +18880,23 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
17807
18880
|
URL.revokeObjectURL(url);
|
|
17808
18881
|
};
|
|
17809
18882
|
return (_ctx, _cache) => {
|
|
17810
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
17811
|
-
createBaseVNode("div", _hoisted_2$
|
|
18883
|
+
return openBlock(), createElementBlock("div", _hoisted_1$c, [
|
|
18884
|
+
createBaseVNode("div", _hoisted_2$a, [
|
|
17812
18885
|
_cache[3] || (_cache[3] = createBaseVNode("h4", null, "Generated code", -1)),
|
|
17813
|
-
createBaseVNode("div", _hoisted_3$
|
|
18886
|
+
createBaseVNode("div", _hoisted_3$9, [
|
|
17814
18887
|
createBaseVNode("button", {
|
|
17815
18888
|
class: "refresh-button",
|
|
17816
18889
|
disabled: loading.value,
|
|
17817
18890
|
onClick: refreshCode
|
|
17818
18891
|
}, [
|
|
17819
|
-
!loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$
|
|
18892
|
+
!loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$6, _cache[1] || (_cache[1] = [
|
|
17820
18893
|
createBaseVNode("path", { d: "M23 4v6h-6" }, null, -1),
|
|
17821
18894
|
createBaseVNode("path", { d: "M1 20v-6h6" }, null, -1),
|
|
17822
18895
|
createBaseVNode("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" }, null, -1)
|
|
17823
18896
|
]))) : createCommentVNode("", true),
|
|
17824
|
-
loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$
|
|
18897
|
+
loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$5)) : createCommentVNode("", true),
|
|
17825
18898
|
createTextVNode(" " + toDisplayString(loading.value ? "Loading..." : "Refresh"), 1)
|
|
17826
|
-
], 8, _hoisted_4$
|
|
18899
|
+
], 8, _hoisted_4$8),
|
|
17827
18900
|
createBaseVNode("button", {
|
|
17828
18901
|
class: "export-button",
|
|
17829
18902
|
onClick: exportCode
|
|
@@ -17860,69 +18933,18 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
17860
18933
|
}
|
|
17861
18934
|
});
|
|
17862
18935
|
const CodeGenerator_vue_vue_type_style_index_0_scoped_8bafe064_lang = "";
|
|
17863
|
-
const CodeGenerator = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
17864
|
-
const
|
|
17865
|
-
const
|
|
17866
|
-
const
|
|
17867
|
-
const
|
|
17868
|
-
const __vite_glob_0_4 = "/assets/cross_join-d30c0290.png";
|
|
17869
|
-
const __vite_glob_0_5 = "/assets/database_reader-ce1e55f3.svg";
|
|
17870
|
-
const __vite_glob_0_6 = "/assets/database_writer-b4ad0753.svg";
|
|
17871
|
-
const __vite_glob_0_7 = "/assets/explore_data-8a0a2861.png";
|
|
17872
|
-
const __vite_glob_0_8 = "data:image/png;base64,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";
|
|
17873
|
-
const __vite_glob_0_9 = "/assets/filter-d7708bda.png";
|
|
17874
|
-
const __vite_glob_0_10 = "/assets/formula-eeeb1611.png";
|
|
17875
|
-
const __vite_glob_0_11 = "/assets/fuzzy_match-40c161b2.png";
|
|
17876
|
-
const __vite_glob_0_12 = "data:image/png;base64,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";
|
|
17877
|
-
const __vite_glob_0_13 = "/assets/graph_solver-8b7888b8.png";
|
|
17878
|
-
const __vite_glob_0_14 = "/assets/group_by-80561fc3.png";
|
|
17879
|
-
const __vite_glob_0_15 = "/assets/input_data-ab2eb678.png";
|
|
17880
|
-
const __vite_glob_0_16 = "/assets/join-349043ae.png";
|
|
17881
|
-
const __vite_glob_0_17 = "/assets/manual_input-ae98f31d.png";
|
|
17882
|
-
const __vite_glob_0_18 = "/assets/old_join-5d0eb604.png";
|
|
17883
|
-
const __vite_glob_0_19 = "/assets/output-06ec0371.png";
|
|
17884
|
-
const __vite_glob_0_20 = "/assets/pivot-9660df51.png";
|
|
17885
|
-
const __vite_glob_0_21 = "/assets/polars_code-05ce5dc6.png";
|
|
17886
|
-
const __vite_glob_0_22 = "/assets/record_count-dab44eb5.png";
|
|
17887
|
-
const __vite_glob_0_23 = "/assets/record_id-0b15856b.png";
|
|
17888
|
-
const __vite_glob_0_24 = "/assets/sample-693a88b5.png";
|
|
17889
|
-
const __vite_glob_0_25 = "/assets/select-b0d0437a.png";
|
|
17890
|
-
const __vite_glob_0_26 = "/assets/sort-2aa579f0.png";
|
|
17891
|
-
const __vite_glob_0_27 = "/assets/summarize-2a099231.png";
|
|
17892
|
-
const __vite_glob_0_28 = "/assets/text_to_rows-859b29ea.png";
|
|
17893
|
-
const __vite_glob_0_29 = "/assets/union-2d8609f4.png";
|
|
17894
|
-
const __vite_glob_0_30 = "/assets/unique-1958b98a.png";
|
|
17895
|
-
const __vite_glob_0_31 = "/assets/unpivot-d3cb4b5b.png";
|
|
17896
|
-
const __vite_glob_0_32 = "/assets/view-7a0f0be1.png";
|
|
17897
|
-
const getImageUrl = (name) => {
|
|
17898
|
-
return new URL((/* @__PURE__ */ Object.assign({ "./assets/icons/Output2.png": __vite_glob_0_0, "./assets/icons/airbyte.png": __vite_glob_0_1, "./assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "./assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "./assets/icons/cross_join.png": __vite_glob_0_4, "./assets/icons/database_reader.svg": __vite_glob_0_5, "./assets/icons/database_writer.svg": __vite_glob_0_6, "./assets/icons/explore_data.png": __vite_glob_0_7, "./assets/icons/external_source.png": __vite_glob_0_8, "./assets/icons/filter.png": __vite_glob_0_9, "./assets/icons/formula.png": __vite_glob_0_10, "./assets/icons/fuzzy_match.png": __vite_glob_0_11, "./assets/icons/google_sheet.png": __vite_glob_0_12, "./assets/icons/graph_solver.png": __vite_glob_0_13, "./assets/icons/group_by.png": __vite_glob_0_14, "./assets/icons/input_data.png": __vite_glob_0_15, "./assets/icons/join.png": __vite_glob_0_16, "./assets/icons/manual_input.png": __vite_glob_0_17, "./assets/icons/old_join.png": __vite_glob_0_18, "./assets/icons/output.png": __vite_glob_0_19, "./assets/icons/pivot.png": __vite_glob_0_20, "./assets/icons/polars_code.png": __vite_glob_0_21, "./assets/icons/record_count.png": __vite_glob_0_22, "./assets/icons/record_id.png": __vite_glob_0_23, "./assets/icons/sample.png": __vite_glob_0_24, "./assets/icons/select.png": __vite_glob_0_25, "./assets/icons/sort.png": __vite_glob_0_26, "./assets/icons/summarize.png": __vite_glob_0_27, "./assets/icons/text_to_rows.png": __vite_glob_0_28, "./assets/icons/union.png": __vite_glob_0_29, "./assets/icons/unique.png": __vite_glob_0_30, "./assets/icons/unpivot.png": __vite_glob_0_31, "./assets/icons/view.png": __vite_glob_0_32 }))[`./assets/icons/${name}`], self.location).href;
|
|
17899
|
-
};
|
|
17900
|
-
const fetchNodes = async () => {
|
|
17901
|
-
const response = await axios.get("/node_list");
|
|
17902
|
-
const listNodes = response.data;
|
|
17903
|
-
return listNodes;
|
|
17904
|
-
};
|
|
17905
|
-
const useNodes = () => {
|
|
17906
|
-
const nodes = ref([]);
|
|
17907
|
-
const fetchNodes2 = async () => {
|
|
17908
|
-
const response = await axios.get("/node_list");
|
|
17909
|
-
const allNodes = response.data;
|
|
17910
|
-
nodes.value = allNodes.filter((node) => node.prod_ready);
|
|
17911
|
-
};
|
|
17912
|
-
onMounted(fetchNodes2);
|
|
17913
|
-
return { nodes };
|
|
17914
|
-
};
|
|
17915
|
-
const _hoisted_1$9 = { class: "nodes-wrapper" };
|
|
17916
|
-
const _hoisted_2$6 = ["onClick"];
|
|
17917
|
-
const _hoisted_3$5 = { class: "category-title" };
|
|
17918
|
-
const _hoisted_4$5 = {
|
|
18936
|
+
const CodeGenerator = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-8bafe064"]]);
|
|
18937
|
+
const _hoisted_1$b = { class: "nodes-wrapper" };
|
|
18938
|
+
const _hoisted_2$9 = ["onClick"];
|
|
18939
|
+
const _hoisted_3$8 = { class: "category-title" };
|
|
18940
|
+
const _hoisted_4$7 = {
|
|
17919
18941
|
key: 0,
|
|
17920
18942
|
class: "category-content"
|
|
17921
18943
|
};
|
|
17922
|
-
const _hoisted_5$
|
|
17923
|
-
const _hoisted_6$
|
|
17924
|
-
const _hoisted_7$
|
|
17925
|
-
const _sfc_main$
|
|
18944
|
+
const _hoisted_5$5 = ["onDragstart"];
|
|
18945
|
+
const _hoisted_6$4 = ["src", "alt"];
|
|
18946
|
+
const _hoisted_7$3 = { class: "node-name" };
|
|
18947
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
17926
18948
|
__name: "NodeList",
|
|
17927
18949
|
emits: ["dragstart"],
|
|
17928
18950
|
setup(__props) {
|
|
@@ -17932,7 +18954,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17932
18954
|
transform: { name: "Transformations", isOpen: true },
|
|
17933
18955
|
combine: { name: "Combine Operations", isOpen: true },
|
|
17934
18956
|
aggregate: { name: "Aggregations", isOpen: true },
|
|
17935
|
-
output: { name: "Output Operations", isOpen: true }
|
|
18957
|
+
output: { name: "Output Operations", isOpen: true },
|
|
18958
|
+
custom: { name: "User Defined Operations", isOpen: true }
|
|
17936
18959
|
};
|
|
17937
18960
|
const openCategories = ref(
|
|
17938
18961
|
Object.fromEntries(
|
|
@@ -17972,7 +18995,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17972
18995
|
};
|
|
17973
18996
|
return (_ctx, _cache) => {
|
|
17974
18997
|
const _component_el_icon = resolveComponent("el-icon");
|
|
17975
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
18998
|
+
return openBlock(), createElementBlock("div", _hoisted_1$b, [
|
|
17976
18999
|
withDirectives(createBaseVNode("input", {
|
|
17977
19000
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
|
|
17978
19001
|
type: "text",
|
|
@@ -17990,15 +19013,15 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
17990
19013
|
class: "category-header",
|
|
17991
19014
|
onClick: ($event) => toggleCategory(category)
|
|
17992
19015
|
}, [
|
|
17993
|
-
createBaseVNode("span", _hoisted_3$
|
|
19016
|
+
createBaseVNode("span", _hoisted_3$8, toDisplayString(categoryInfo.name), 1),
|
|
17994
19017
|
createVNode(_component_el_icon, { class: "category-icon" }, {
|
|
17995
19018
|
default: withCtx(() => [
|
|
17996
19019
|
openCategories.value[category] ? (openBlock(), createBlock(unref(arrow_down_default), { key: 0 })) : (openBlock(), createBlock(unref(arrow_right_default), { key: 1 }))
|
|
17997
19020
|
]),
|
|
17998
19021
|
_: 2
|
|
17999
19022
|
}, 1024)
|
|
18000
|
-
], 8, _hoisted_2$
|
|
18001
|
-
openCategories.value[category] && filteredNodes.value[category] ? (openBlock(), createElementBlock("div", _hoisted_4$
|
|
19023
|
+
], 8, _hoisted_2$9),
|
|
19024
|
+
openCategories.value[category] && filteredNodes.value[category] ? (openBlock(), createElementBlock("div", _hoisted_4$7, [
|
|
18002
19025
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filteredNodes.value[category], (node) => {
|
|
18003
19026
|
return openBlock(), createElementBlock("div", {
|
|
18004
19027
|
key: node.item,
|
|
@@ -18010,9 +19033,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
18010
19033
|
src: unref(getImageUrl)(node.image),
|
|
18011
19034
|
alt: node.name,
|
|
18012
19035
|
class: "node-image"
|
|
18013
|
-
}, null, 8, _hoisted_6$
|
|
18014
|
-
createBaseVNode("span", _hoisted_7$
|
|
18015
|
-
], 40, _hoisted_5$
|
|
19036
|
+
}, null, 8, _hoisted_6$4),
|
|
19037
|
+
createBaseVNode("span", _hoisted_7$3, toDisplayString(node.name), 1)
|
|
19038
|
+
], 40, _hoisted_5$5);
|
|
18016
19039
|
}), 128))
|
|
18017
19040
|
])) : createCommentVNode("", true)
|
|
18018
19041
|
]);
|
|
@@ -18021,129 +19044,126 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
18021
19044
|
};
|
|
18022
19045
|
}
|
|
18023
19046
|
});
|
|
18024
|
-
const
|
|
18025
|
-
const NodeList = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
18026
|
-
const
|
|
18027
|
-
|
|
18028
|
-
|
|
18029
|
-
|
|
18030
|
-
|
|
18031
|
-
|
|
18032
|
-
|
|
18033
|
-
|
|
18034
|
-
|
|
18035
|
-
|
|
18036
|
-
|
|
18037
|
-
|
|
18038
|
-
|
|
18039
|
-
|
|
18040
|
-
|
|
18041
|
-
|
|
18042
|
-
|
|
18043
|
-
|
|
18044
|
-
|
|
18045
|
-
const saveItemState = (id2) => {
|
|
18046
|
-
const itemState = items.value[id2];
|
|
18047
|
-
localStorage.setItem(`overlayPositionAndSize_${id2}`, JSON.stringify(itemState));
|
|
18048
|
-
};
|
|
18049
|
-
const loadItemState = (id2) => {
|
|
18050
|
-
const savedState = localStorage.getItem(`overlayPositionAndSize_${id2}`);
|
|
18051
|
-
if (savedState) {
|
|
18052
|
-
items.value[id2] = JSON.parse(savedState);
|
|
19047
|
+
const NodeList_vue_vue_type_style_index_0_scoped_63142f09_lang = "";
|
|
19048
|
+
const NodeList = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-63142f09"]]);
|
|
19049
|
+
const _hoisted_1$a = { class: "listbox-wrapper" };
|
|
19050
|
+
const _hoisted_2$8 = { class: "listbox-title" };
|
|
19051
|
+
const _hoisted_3$7 = { class: "intro-content" };
|
|
19052
|
+
const _hoisted_4$6 = {
|
|
19053
|
+
key: 1,
|
|
19054
|
+
class: "title"
|
|
19055
|
+
};
|
|
19056
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
19057
|
+
__name: "nodeTitle",
|
|
19058
|
+
props: {
|
|
19059
|
+
title: {
|
|
19060
|
+
type: String,
|
|
19061
|
+
required: true
|
|
19062
|
+
},
|
|
19063
|
+
intro: {
|
|
19064
|
+
type: String,
|
|
19065
|
+
required: false,
|
|
19066
|
+
default: ""
|
|
19067
|
+
// Add default value to resolve warning
|
|
18053
19068
|
}
|
|
18054
|
-
}
|
|
18055
|
-
|
|
18056
|
-
|
|
18057
|
-
|
|
18058
|
-
|
|
18059
|
-
|
|
18060
|
-
|
|
18061
|
-
|
|
18062
|
-
|
|
18063
|
-
|
|
18064
|
-
|
|
18065
|
-
|
|
18066
|
-
|
|
18067
|
-
|
|
18068
|
-
|
|
18069
|
-
|
|
18070
|
-
|
|
18071
|
-
|
|
18072
|
-
|
|
18073
|
-
|
|
18074
|
-
|
|
18075
|
-
|
|
18076
|
-
|
|
18077
|
-
|
|
18078
|
-
|
|
18079
|
-
|
|
19069
|
+
},
|
|
19070
|
+
setup(__props) {
|
|
19071
|
+
const props2 = __props;
|
|
19072
|
+
return (_ctx, _cache) => {
|
|
19073
|
+
const _component_el_collapse_item = resolveComponent("el-collapse-item");
|
|
19074
|
+
const _component_el_collapse = resolveComponent("el-collapse");
|
|
19075
|
+
return openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
19076
|
+
props2.intro ? (openBlock(), createBlock(_component_el_collapse, {
|
|
19077
|
+
key: 0,
|
|
19078
|
+
class: "listbox-expandable"
|
|
19079
|
+
}, {
|
|
19080
|
+
default: withCtx(() => [
|
|
19081
|
+
createVNode(_component_el_collapse_item, null, {
|
|
19082
|
+
title: withCtx(() => [
|
|
19083
|
+
createBaseVNode("div", _hoisted_2$8, toDisplayString(props2.title), 1)
|
|
19084
|
+
]),
|
|
19085
|
+
default: withCtx(() => [
|
|
19086
|
+
createBaseVNode("div", _hoisted_3$7, toDisplayString(props2.intro), 1)
|
|
19087
|
+
]),
|
|
19088
|
+
_: 1
|
|
19089
|
+
})
|
|
19090
|
+
]),
|
|
19091
|
+
_: 1
|
|
19092
|
+
})) : (openBlock(), createElementBlock("div", _hoisted_4$6, toDisplayString(props2.title), 1))
|
|
19093
|
+
]);
|
|
19094
|
+
};
|
|
19095
|
+
}
|
|
19096
|
+
});
|
|
19097
|
+
const nodeTitle_vue_vue_type_style_index_0_scoped_0db5c358_lang = "";
|
|
19098
|
+
const NodeTitle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-0db5c358"]]);
|
|
19099
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
19100
|
+
__name: "NodeSettingsDrawer",
|
|
19101
|
+
setup(__props) {
|
|
19102
|
+
const nodeStore = useNodeStore();
|
|
19103
|
+
const drawerComponentInstance = ref(null);
|
|
19104
|
+
ref("");
|
|
19105
|
+
ref("");
|
|
19106
|
+
const lastExecutedState = ref({
|
|
19107
|
+
nodeId: -1,
|
|
19108
|
+
componentInstance: null
|
|
19109
|
+
});
|
|
19110
|
+
const executeCleanup = async () => {
|
|
19111
|
+
if (lastExecutedState.value.componentInstance) {
|
|
19112
|
+
console.log(`executing cleanup for node ${lastExecutedState.value.nodeId}`);
|
|
19113
|
+
await nodeStore.executeDrawCloseFunction();
|
|
18080
19114
|
}
|
|
18081
|
-
|
|
18082
|
-
|
|
18083
|
-
|
|
18084
|
-
|
|
18085
|
-
|
|
18086
|
-
|
|
18087
|
-
|
|
18088
|
-
|
|
18089
|
-
|
|
18090
|
-
|
|
18091
|
-
if (idItemClicked.value) {
|
|
18092
|
-
items.value[idItemClicked.value].zIndex = 100;
|
|
18093
|
-
}
|
|
18094
|
-
items.value[id2].zIndex = 1e3;
|
|
18095
|
-
idItemClicked.value = id2;
|
|
18096
|
-
};
|
|
18097
|
-
const setResizing = (resizing) => {
|
|
18098
|
-
inResizing.value = resizing;
|
|
18099
|
-
};
|
|
18100
|
-
const getResizing = () => {
|
|
18101
|
-
return inResizing.value;
|
|
18102
|
-
};
|
|
18103
|
-
const scrollOnItem = (id2) => {
|
|
18104
|
-
const itemElement = document.getElementById(id2);
|
|
18105
|
-
if (!itemElement)
|
|
18106
|
-
return;
|
|
18107
|
-
const observer = new IntersectionObserver(
|
|
18108
|
-
(entries) => {
|
|
18109
|
-
entries.forEach((entry) => {
|
|
18110
|
-
if (entry.isIntersecting) {
|
|
18111
|
-
idItemVisible.value = id2;
|
|
18112
|
-
items.value[id2].zIndex = 1e3;
|
|
18113
|
-
} else if (idItemVisible.value === id2) {
|
|
18114
|
-
items.value[id2].zIndex = 100;
|
|
18115
|
-
idItemVisible.value = null;
|
|
18116
|
-
}
|
|
18117
|
-
});
|
|
18118
|
-
},
|
|
18119
|
-
{
|
|
18120
|
-
threshold: 0.5
|
|
18121
|
-
// Trigger when 50% of the item is visible
|
|
19115
|
+
};
|
|
19116
|
+
const setupNewNode = () => {
|
|
19117
|
+
var _a;
|
|
19118
|
+
if (((_a = drawerComponentInstance.value) == null ? void 0 : _a.loadNodeData) && nodeStore.node_id !== -1) {
|
|
19119
|
+
drawerComponentInstance.value.loadNodeData(nodeStore.node_id);
|
|
19120
|
+
nodeStore.setCloseFunction(drawerComponentInstance.value.pushNodeData);
|
|
19121
|
+
lastExecutedState.value = {
|
|
19122
|
+
nodeId: nodeStore.node_id,
|
|
19123
|
+
componentInstance: drawerComponentInstance.value
|
|
19124
|
+
};
|
|
18122
19125
|
}
|
|
19126
|
+
};
|
|
19127
|
+
watch$1(
|
|
19128
|
+
[() => drawerComponentInstance.value, () => nodeStore.node_id],
|
|
19129
|
+
async ([newInstance, newNodeId], [oldInstance, oldNodeId]) => {
|
|
19130
|
+
const nodeIdChanged = newNodeId !== oldNodeId;
|
|
19131
|
+
if (nodeIdChanged && oldNodeId !== -1 && lastExecutedState.value.componentInstance) {
|
|
19132
|
+
await executeCleanup();
|
|
19133
|
+
lastExecutedState.value = {
|
|
19134
|
+
nodeId: -1,
|
|
19135
|
+
componentInstance: null
|
|
19136
|
+
};
|
|
19137
|
+
}
|
|
19138
|
+
if (newNodeId === -1) {
|
|
19139
|
+
nodeStore.isDrawerOpen = false;
|
|
19140
|
+
return;
|
|
19141
|
+
}
|
|
19142
|
+
if (newInstance) {
|
|
19143
|
+
await nextTick();
|
|
19144
|
+
setupNewNode();
|
|
19145
|
+
}
|
|
19146
|
+
},
|
|
19147
|
+
{ immediate: true }
|
|
18123
19148
|
);
|
|
18124
|
-
|
|
18125
|
-
|
|
18126
|
-
|
|
18127
|
-
|
|
18128
|
-
|
|
18129
|
-
|
|
18130
|
-
|
|
18131
|
-
|
|
18132
|
-
|
|
18133
|
-
|
|
18134
|
-
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
// Exposing the visible item
|
|
18138
|
-
toggleFullScreen,
|
|
18139
|
-
// Toggle fullscreen state
|
|
18140
|
-
setFullScreen
|
|
18141
|
-
// Set fullscreen state with boolean parameter
|
|
18142
|
-
};
|
|
19149
|
+
return (_ctx, _cache) => {
|
|
19150
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
19151
|
+
createVNode(NodeTitle, {
|
|
19152
|
+
title: unref(nodeStore).drawerProps.title,
|
|
19153
|
+
intro: unref(nodeStore).drawerProps.intro
|
|
19154
|
+
}, null, 8, ["title", "intro"]),
|
|
19155
|
+
(openBlock(), createBlock(resolveDynamicComponent(unref(nodeStore).activeDrawerComponent), mergeProps(unref(nodeStore).drawerProps, {
|
|
19156
|
+
ref_key: "drawerComponentInstance",
|
|
19157
|
+
ref: drawerComponentInstance
|
|
19158
|
+
}), null, 16))
|
|
19159
|
+
], 64);
|
|
19160
|
+
};
|
|
19161
|
+
}
|
|
18143
19162
|
});
|
|
18144
|
-
const _hoisted_1$
|
|
18145
|
-
const _hoisted_2$
|
|
18146
|
-
const
|
|
19163
|
+
const _hoisted_1$9 = ["id"];
|
|
19164
|
+
const _hoisted_2$7 = ["title"];
|
|
19165
|
+
const _hoisted_3$6 = { class: "icon" };
|
|
19166
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
18147
19167
|
__name: "DraggableItem",
|
|
18148
19168
|
props: {
|
|
18149
19169
|
id: {
|
|
@@ -18166,6 +19186,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18166
19186
|
type: Boolean,
|
|
18167
19187
|
default: false
|
|
18168
19188
|
},
|
|
19189
|
+
showPresets: {
|
|
19190
|
+
type: Boolean,
|
|
19191
|
+
default: false
|
|
19192
|
+
},
|
|
18169
19193
|
initialPosition: {
|
|
18170
19194
|
type: String,
|
|
18171
19195
|
default: "free"
|
|
@@ -18178,7 +19202,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18178
19202
|
type: Number,
|
|
18179
19203
|
default: null
|
|
18180
19204
|
},
|
|
18181
|
-
|
|
19205
|
+
initialLeft: {
|
|
18182
19206
|
type: Number,
|
|
18183
19207
|
default: null
|
|
18184
19208
|
},
|
|
@@ -18205,9 +19229,49 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18205
19229
|
allowFullScreen: {
|
|
18206
19230
|
type: Boolean,
|
|
18207
19231
|
default: false
|
|
19232
|
+
},
|
|
19233
|
+
group: {
|
|
19234
|
+
type: String,
|
|
19235
|
+
default: null
|
|
19236
|
+
},
|
|
19237
|
+
syncDimensions: {
|
|
19238
|
+
type: Boolean,
|
|
19239
|
+
default: false
|
|
19240
|
+
},
|
|
19241
|
+
preventOverlap: {
|
|
19242
|
+
type: Boolean,
|
|
19243
|
+
default: false
|
|
18208
19244
|
}
|
|
18209
19245
|
},
|
|
18210
19246
|
setup(__props, { expose: __expose }) {
|
|
19247
|
+
const props2 = __props;
|
|
19248
|
+
const itemStore = useItemStore();
|
|
19249
|
+
const itemState = ref(
|
|
19250
|
+
itemStore.items[props2.id] || {
|
|
19251
|
+
width: props2.initialWidth || 400,
|
|
19252
|
+
height: props2.initialHeight || 300,
|
|
19253
|
+
left: props2.initialLeft || 100,
|
|
19254
|
+
// Used corrected prop
|
|
19255
|
+
top: props2.initialTop || 100,
|
|
19256
|
+
group: props2.group,
|
|
19257
|
+
syncDimensions: props2.syncDimensions,
|
|
19258
|
+
zIndex: 100
|
|
19259
|
+
}
|
|
19260
|
+
);
|
|
19261
|
+
const isDragging = ref(false);
|
|
19262
|
+
const isResizing = ref(false);
|
|
19263
|
+
const startX = ref(0);
|
|
19264
|
+
const startY = ref(0);
|
|
19265
|
+
const startWidth = ref(0);
|
|
19266
|
+
const startHeight = ref(0);
|
|
19267
|
+
const startLeft = ref(0);
|
|
19268
|
+
const startTop = ref(0);
|
|
19269
|
+
const isMinimized = ref(false);
|
|
19270
|
+
const instance = getCurrentInstance();
|
|
19271
|
+
const activeLine = ref(null);
|
|
19272
|
+
let resizeTimeout;
|
|
19273
|
+
const resizeDirection = ref(null);
|
|
19274
|
+
const initialGroupStates = ref({});
|
|
18211
19275
|
const resizeDelay = ref(null);
|
|
18212
19276
|
const resizeOnEnter = (e2, position) => {
|
|
18213
19277
|
if (resizeDelay.value)
|
|
@@ -18231,31 +19295,51 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18231
19295
|
}
|
|
18232
19296
|
}, 200);
|
|
18233
19297
|
};
|
|
18234
|
-
const props2 = __props;
|
|
18235
|
-
const itemStore = useItemStore();
|
|
18236
|
-
const itemState = ref(
|
|
18237
|
-
itemStore.items[props2.id] || {
|
|
18238
|
-
width: props2.initialWidth,
|
|
18239
|
-
height: props2.initialHeight,
|
|
18240
|
-
left: 100,
|
|
18241
|
-
top: 100
|
|
18242
|
-
}
|
|
18243
|
-
);
|
|
18244
|
-
const isDragging = ref(false);
|
|
18245
|
-
const isResizing = ref(false);
|
|
18246
|
-
const startX = ref(0);
|
|
18247
|
-
const startY = ref(0);
|
|
18248
|
-
const startWidth = ref(0);
|
|
18249
|
-
const startHeight = ref(0);
|
|
18250
|
-
const startLeft = ref(0);
|
|
18251
|
-
const startTop = ref(0);
|
|
18252
|
-
const isMinimized = ref(false);
|
|
18253
|
-
const instance = getCurrentInstance();
|
|
18254
|
-
const activeLine = ref(null);
|
|
18255
|
-
let resizeTimeout;
|
|
18256
19298
|
const savePositionAndSize = () => {
|
|
18257
|
-
itemStore.setItemState(props2.id,
|
|
19299
|
+
itemStore.setItemState(props2.id, {
|
|
19300
|
+
width: itemState.value.width,
|
|
19301
|
+
height: itemState.value.height,
|
|
19302
|
+
left: itemState.value.left,
|
|
19303
|
+
top: itemState.value.top,
|
|
19304
|
+
stickynessPosition: itemState.value.stickynessPosition,
|
|
19305
|
+
fullWidth: itemState.value.fullWidth,
|
|
19306
|
+
fullHeight: itemState.value.fullHeight,
|
|
19307
|
+
zIndex: itemState.value.zIndex,
|
|
19308
|
+
fullScreen: itemState.value.fullScreen,
|
|
19309
|
+
group: itemState.value.group,
|
|
19310
|
+
syncDimensions: itemState.value.syncDimensions
|
|
19311
|
+
});
|
|
18258
19312
|
itemStore.saveItemState(props2.id);
|
|
19313
|
+
if (itemState.value.group && itemState.value.syncDimensions && isResizing.value) {
|
|
19314
|
+
const groupItems = itemStore.groups[itemState.value.group];
|
|
19315
|
+
if (groupItems) {
|
|
19316
|
+
const initialActiveState = initialGroupStates.value[props2.id];
|
|
19317
|
+
if (!initialActiveState)
|
|
19318
|
+
return;
|
|
19319
|
+
const deltaX = itemState.value.left - initialActiveState.left;
|
|
19320
|
+
const deltaY = itemState.value.top - initialActiveState.top;
|
|
19321
|
+
groupItems.forEach((itemId) => {
|
|
19322
|
+
var _a;
|
|
19323
|
+
if (itemId === props2.id)
|
|
19324
|
+
return;
|
|
19325
|
+
const initialItemState = initialGroupStates.value[itemId];
|
|
19326
|
+
if (((_a = itemStore.items[itemId]) == null ? void 0 : _a.syncDimensions) && initialItemState) {
|
|
19327
|
+
const updates = {
|
|
19328
|
+
width: itemState.value.width,
|
|
19329
|
+
height: itemState.value.height
|
|
19330
|
+
};
|
|
19331
|
+
if (resizeDirection.value === "top") {
|
|
19332
|
+
updates.top = initialItemState.top + deltaY;
|
|
19333
|
+
}
|
|
19334
|
+
if (resizeDirection.value === "left") {
|
|
19335
|
+
updates.left = initialItemState.left + deltaX;
|
|
19336
|
+
}
|
|
19337
|
+
itemStore.setItemState(itemId, updates);
|
|
19338
|
+
itemStore.saveItemState(itemId);
|
|
19339
|
+
}
|
|
19340
|
+
});
|
|
19341
|
+
}
|
|
19342
|
+
}
|
|
18259
19343
|
};
|
|
18260
19344
|
const loadPositionAndSize = () => {
|
|
18261
19345
|
itemStore.loadItemState(props2.id);
|
|
@@ -18276,28 +19360,33 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18276
19360
|
itemStore.inResizing = true;
|
|
18277
19361
|
};
|
|
18278
19362
|
const toggleFullScreen = () => {
|
|
18279
|
-
|
|
18280
|
-
|
|
18281
|
-
|
|
18282
|
-
|
|
18283
|
-
|
|
18284
|
-
|
|
18285
|
-
|
|
18286
|
-
|
|
18287
|
-
|
|
18288
|
-
|
|
18289
|
-
|
|
18290
|
-
|
|
18291
|
-
|
|
18292
|
-
|
|
18293
|
-
|
|
18294
|
-
|
|
19363
|
+
itemStore.toggleFullScreen(props2.id);
|
|
19364
|
+
loadPositionAndSize();
|
|
19365
|
+
};
|
|
19366
|
+
const captureGroupInitialStates = () => {
|
|
19367
|
+
if (itemState.value.group && itemState.value.syncDimensions) {
|
|
19368
|
+
initialGroupStates.value = {};
|
|
19369
|
+
const groupItems = itemStore.groups[itemState.value.group];
|
|
19370
|
+
if (groupItems) {
|
|
19371
|
+
groupItems.forEach((id2) => {
|
|
19372
|
+
const item = itemStore.items[id2];
|
|
19373
|
+
if (item) {
|
|
19374
|
+
initialGroupStates.value[id2] = {
|
|
19375
|
+
top: item.top,
|
|
19376
|
+
left: item.left,
|
|
19377
|
+
width: item.width,
|
|
19378
|
+
height: item.height
|
|
19379
|
+
};
|
|
19380
|
+
}
|
|
19381
|
+
});
|
|
19382
|
+
}
|
|
18295
19383
|
}
|
|
18296
|
-
savePositionAndSize();
|
|
18297
19384
|
};
|
|
18298
19385
|
const startResizeRight = (e2) => {
|
|
18299
19386
|
e2.preventDefault();
|
|
18300
19387
|
handleReziging(e2);
|
|
19388
|
+
resizeDirection.value = "right";
|
|
19389
|
+
captureGroupInitialStates();
|
|
18301
19390
|
startX.value = e2.clientX;
|
|
18302
19391
|
startWidth.value = itemState.value.width;
|
|
18303
19392
|
document.addEventListener("mousemove", onResizeWidth);
|
|
@@ -18307,7 +19396,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18307
19396
|
if (isResizing.value) {
|
|
18308
19397
|
const deltaX = e2.clientX - startX.value;
|
|
18309
19398
|
const newWidth = startWidth.value + deltaX;
|
|
18310
|
-
if (newWidth > 100 && newWidth < window.innerWidth
|
|
19399
|
+
if (newWidth > 100 && newWidth < window.innerWidth) {
|
|
18311
19400
|
itemState.value.width = newWidth;
|
|
18312
19401
|
savePositionAndSize();
|
|
18313
19402
|
}
|
|
@@ -18316,6 +19405,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18316
19405
|
const startResizeBottom = (e2) => {
|
|
18317
19406
|
e2.preventDefault();
|
|
18318
19407
|
handleReziging(e2);
|
|
19408
|
+
resizeDirection.value = "bottom";
|
|
19409
|
+
captureGroupInitialStates();
|
|
18319
19410
|
startY.value = e2.clientY;
|
|
18320
19411
|
startHeight.value = itemState.value.height;
|
|
18321
19412
|
document.addEventListener("mousemove", onResizeHeight);
|
|
@@ -18334,6 +19425,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18334
19425
|
const startResizeTop = (e2) => {
|
|
18335
19426
|
e2.preventDefault();
|
|
18336
19427
|
handleReziging(e2);
|
|
19428
|
+
resizeDirection.value = "top";
|
|
19429
|
+
captureGroupInitialStates();
|
|
18337
19430
|
startY.value = e2.clientY;
|
|
18338
19431
|
startTop.value = itemState.value.top;
|
|
18339
19432
|
startHeight.value = itemState.value.height;
|
|
@@ -18345,7 +19438,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18345
19438
|
const deltaY = e2.clientY - startY.value;
|
|
18346
19439
|
const newTop = startTop.value + deltaY;
|
|
18347
19440
|
const newHeight = startHeight.value - deltaY;
|
|
18348
|
-
if (newHeight > 100 && newHeight < window.innerHeight - 100) {
|
|
19441
|
+
if (newHeight > 100 && newHeight < window.innerHeight - 100 && newTop >= 0) {
|
|
18349
19442
|
itemState.value.top = newTop;
|
|
18350
19443
|
itemState.value.height = newHeight;
|
|
18351
19444
|
savePositionAndSize();
|
|
@@ -18355,6 +19448,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18355
19448
|
const startResizeLeft = (e2) => {
|
|
18356
19449
|
e2.preventDefault();
|
|
18357
19450
|
handleReziging(e2);
|
|
19451
|
+
resizeDirection.value = "left";
|
|
19452
|
+
captureGroupInitialStates();
|
|
18358
19453
|
startX.value = e2.clientX;
|
|
18359
19454
|
startLeft.value = itemState.value.left;
|
|
18360
19455
|
startWidth.value = itemState.value.width;
|
|
@@ -18374,15 +19469,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18374
19469
|
}
|
|
18375
19470
|
};
|
|
18376
19471
|
const stopResize = () => {
|
|
18377
|
-
isResizing.value
|
|
18378
|
-
|
|
18379
|
-
|
|
19472
|
+
if (isResizing.value) {
|
|
19473
|
+
isResizing.value = false;
|
|
19474
|
+
resizeDirection.value = null;
|
|
19475
|
+
initialGroupStates.value = {};
|
|
19476
|
+
if (activeLine.value) {
|
|
19477
|
+
activeLine.value.classList.remove("resizing-highlight-line");
|
|
19478
|
+
}
|
|
19479
|
+
itemStore.inResizing = false;
|
|
19480
|
+
document.removeEventListener("mousemove", onResizeWidth);
|
|
19481
|
+
document.removeEventListener("mousemove", onResizeHeight);
|
|
19482
|
+
document.removeEventListener("mousemove", onResizeTop);
|
|
19483
|
+
document.removeEventListener("mousemove", onResizeLeft);
|
|
18380
19484
|
}
|
|
18381
|
-
itemStore.inResizing = false;
|
|
18382
|
-
document.removeEventListener("mousemove", onResizeWidth);
|
|
18383
|
-
document.removeEventListener("mousemove", onResizeHeight);
|
|
18384
|
-
document.removeEventListener("mousemove", onResizeTop);
|
|
18385
|
-
document.removeEventListener("mousemove", onResizeLeft);
|
|
18386
19485
|
};
|
|
18387
19486
|
const startMove = (e2) => {
|
|
18388
19487
|
registerClick();
|
|
@@ -18406,13 +19505,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18406
19505
|
const deltaY = e2.clientY - startY.value;
|
|
18407
19506
|
itemState.value.left = startLeft.value + deltaX;
|
|
18408
19507
|
itemState.value.top = startTop.value + deltaY;
|
|
18409
|
-
savePositionAndSize();
|
|
18410
19508
|
}
|
|
18411
19509
|
};
|
|
18412
19510
|
const stopMove = () => {
|
|
18413
|
-
isDragging.value
|
|
18414
|
-
|
|
18415
|
-
|
|
19511
|
+
if (isDragging.value) {
|
|
19512
|
+
isDragging.value = false;
|
|
19513
|
+
document.removeEventListener("mousemove", onMove);
|
|
19514
|
+
document.removeEventListener("mouseup", stopMove);
|
|
19515
|
+
savePositionAndSize();
|
|
19516
|
+
if (props2.preventOverlap) {
|
|
19517
|
+
itemStore.preventOverlap(props2.id);
|
|
19518
|
+
loadPositionAndSize();
|
|
19519
|
+
}
|
|
19520
|
+
}
|
|
18416
19521
|
};
|
|
18417
19522
|
const moveToRight = () => {
|
|
18418
19523
|
var _a;
|
|
@@ -18433,11 +19538,11 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18433
19538
|
const parentElement = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el;
|
|
18434
19539
|
if (parentElement) {
|
|
18435
19540
|
const parentBottom = parentElement.offsetTop + parentElement.offsetHeight;
|
|
18436
|
-
itemState.value.left = parentElement.offsetLeft;
|
|
18437
|
-
itemState.value.top = parentBottom - itemState.value.height;
|
|
19541
|
+
itemState.value.left = parentElement.offsetLeft + props2.initialLeft;
|
|
19542
|
+
itemState.value.top = parentBottom - (itemState.value.height + props2.initialTop);
|
|
18438
19543
|
itemState.value.stickynessPosition = "bottom";
|
|
18439
19544
|
if (itemState.value.fullWidth) {
|
|
18440
|
-
itemState.value.width = parentElement.offsetWidth;
|
|
19545
|
+
itemState.value.width = parentElement.offsetWidth - props2.initialLeft;
|
|
18441
19546
|
}
|
|
18442
19547
|
savePositionAndSize();
|
|
18443
19548
|
}
|
|
@@ -18469,27 +19574,50 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18469
19574
|
}
|
|
18470
19575
|
};
|
|
18471
19576
|
const applyStickyPosition = () => {
|
|
19577
|
+
var _a;
|
|
19578
|
+
const parentElement = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el;
|
|
19579
|
+
if (!parentElement) {
|
|
19580
|
+
console.warn(`No parent element found for ${props2.id}`);
|
|
19581
|
+
return;
|
|
19582
|
+
}
|
|
18472
19583
|
switch (itemState.value.stickynessPosition) {
|
|
18473
19584
|
case "top":
|
|
18474
|
-
|
|
19585
|
+
itemState.value.left = parentElement.offsetLeft;
|
|
19586
|
+
itemState.value.top = parentElement.offsetTop;
|
|
19587
|
+
if (itemState.value.fullWidth) {
|
|
19588
|
+
itemState.value.width = parentElement.offsetWidth;
|
|
19589
|
+
}
|
|
18475
19590
|
break;
|
|
18476
19591
|
case "bottom":
|
|
18477
|
-
|
|
19592
|
+
itemState.value.left = parentElement.offsetLeft + (props2.initialLeft || 0);
|
|
19593
|
+
itemState.value.top = parentElement.offsetTop + parentElement.offsetHeight - itemState.value.height - (props2.initialTop || 0);
|
|
19594
|
+
if (itemState.value.fullWidth) {
|
|
19595
|
+
itemState.value.width = parentElement.offsetWidth - (props2.initialLeft || 0);
|
|
19596
|
+
}
|
|
18478
19597
|
break;
|
|
18479
19598
|
case "left":
|
|
18480
|
-
|
|
19599
|
+
itemState.value.left = parentElement.offsetLeft;
|
|
19600
|
+
itemState.value.top = parentElement.offsetTop + (props2.initialTop || 0);
|
|
19601
|
+
if (itemState.value.fullHeight) {
|
|
19602
|
+
itemState.value.height = parentElement.offsetHeight - (props2.initialTop || 0);
|
|
19603
|
+
}
|
|
18481
19604
|
break;
|
|
18482
19605
|
case "right":
|
|
18483
|
-
|
|
19606
|
+
itemState.value.left = parentElement.offsetLeft + parentElement.offsetWidth - itemState.value.width;
|
|
19607
|
+
itemState.value.top = parentElement.offsetTop + (props2.initialTop || 0);
|
|
19608
|
+
if (itemState.value.fullHeight) {
|
|
19609
|
+
itemState.value.height = parentElement.offsetHeight - (props2.initialTop || 0);
|
|
19610
|
+
}
|
|
18484
19611
|
break;
|
|
18485
19612
|
}
|
|
19613
|
+
savePositionAndSize();
|
|
18486
19614
|
};
|
|
18487
19615
|
const calculateWidth = () => {
|
|
18488
19616
|
var _a, _b;
|
|
18489
19617
|
if (props2.initialWidth) {
|
|
18490
19618
|
return props2.initialWidth;
|
|
18491
19619
|
} else if (props2.initialPosition === "top" || props2.initialPosition === "bottom") {
|
|
18492
|
-
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetWidth) || 300;
|
|
19620
|
+
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetWidth) - props2.initialLeft || 300;
|
|
18493
19621
|
} else
|
|
18494
19622
|
return 300;
|
|
18495
19623
|
};
|
|
@@ -18498,7 +19626,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18498
19626
|
if (props2.initialHeight) {
|
|
18499
19627
|
return props2.initialHeight;
|
|
18500
19628
|
} else if (props2.initialPosition === "left" || props2.initialPosition === "right") {
|
|
18501
|
-
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetHeight) || 300;
|
|
19629
|
+
return ((_b = (_a = instance == null ? void 0 : instance.parent) == null ? void 0 : _a.vnode.el) == null ? void 0 : _b.offsetHeight) - props2.initialHeight || 300;
|
|
18502
19630
|
} else
|
|
18503
19631
|
return 300;
|
|
18504
19632
|
};
|
|
@@ -18520,74 +19648,117 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18520
19648
|
itemStore.clickOnItem(props2.id);
|
|
18521
19649
|
};
|
|
18522
19650
|
const setFullScreen = (makeFull) => {
|
|
18523
|
-
|
|
18524
|
-
|
|
18525
|
-
}
|
|
19651
|
+
itemStore.setFullScreen(props2.id, makeFull);
|
|
19652
|
+
loadPositionAndSize();
|
|
18526
19653
|
};
|
|
19654
|
+
watch$1(
|
|
19655
|
+
() => itemStore.items[props2.id],
|
|
19656
|
+
(newState) => {
|
|
19657
|
+
if (newState) {
|
|
19658
|
+
if (isDragging.value || isResizing.value) {
|
|
19659
|
+
itemState.value.zIndex = newState.zIndex;
|
|
19660
|
+
} else {
|
|
19661
|
+
itemState.value = { ...newState };
|
|
19662
|
+
}
|
|
19663
|
+
}
|
|
19664
|
+
},
|
|
19665
|
+
{ deep: true }
|
|
19666
|
+
);
|
|
19667
|
+
watch$1(
|
|
19668
|
+
() => ({ group: props2.group, syncDimensions: props2.syncDimensions }),
|
|
19669
|
+
({ group, syncDimensions }) => {
|
|
19670
|
+
itemStore.setItemState(props2.id, {
|
|
19671
|
+
group,
|
|
19672
|
+
syncDimensions
|
|
19673
|
+
});
|
|
19674
|
+
itemState.value.group = group;
|
|
19675
|
+
itemState.value.syncDimensions = syncDimensions;
|
|
19676
|
+
}
|
|
19677
|
+
);
|
|
19678
|
+
nextTick().then(() => {
|
|
19679
|
+
observeParentResize();
|
|
19680
|
+
});
|
|
18527
19681
|
onMounted(() => {
|
|
18528
|
-
|
|
19682
|
+
const initialWidth = calculateWidth();
|
|
19683
|
+
const initialHeight = calculateHeight();
|
|
19684
|
+
const initialLeft = props2.initialLeft || 100;
|
|
19685
|
+
const initialTop = props2.initialTop || 100;
|
|
19686
|
+
itemStore.registerInitialState(props2.id, {
|
|
19687
|
+
width: initialWidth,
|
|
19688
|
+
height: initialHeight,
|
|
19689
|
+
left: initialLeft,
|
|
19690
|
+
top: initialTop,
|
|
19691
|
+
stickynessPosition: props2.initialPosition,
|
|
19692
|
+
fullWidth: !props2.initialWidth,
|
|
19693
|
+
fullHeight: !props2.initialHeight,
|
|
19694
|
+
group: props2.group,
|
|
19695
|
+
syncDimensions: props2.syncDimensions
|
|
19696
|
+
});
|
|
19697
|
+
const hasSavedState = localStorage.getItem(`overlayPositionAndSize_${props2.id}`) !== null;
|
|
19698
|
+
if (!hasSavedState) {
|
|
18529
19699
|
itemStore.setItemState(props2.id, {
|
|
18530
|
-
width:
|
|
18531
|
-
height:
|
|
18532
|
-
left:
|
|
18533
|
-
top:
|
|
19700
|
+
width: initialWidth,
|
|
19701
|
+
height: initialHeight,
|
|
19702
|
+
left: initialLeft,
|
|
19703
|
+
top: initialTop,
|
|
18534
19704
|
fullHeight: !props2.initialHeight,
|
|
18535
|
-
fullWidth: !props2.initialWidth
|
|
19705
|
+
fullWidth: !props2.initialWidth,
|
|
19706
|
+
stickynessPosition: props2.initialPosition,
|
|
19707
|
+
group: props2.group,
|
|
19708
|
+
syncDimensions: props2.syncDimensions
|
|
18536
19709
|
});
|
|
18537
19710
|
itemState.value = itemStore.items[props2.id];
|
|
18538
|
-
|
|
18539
|
-
|
|
18540
|
-
|
|
19711
|
+
if (props2.initialPosition !== "free") {
|
|
19712
|
+
nextTick(() => {
|
|
19713
|
+
applyStickyPosition();
|
|
19714
|
+
});
|
|
18541
19715
|
}
|
|
18542
19716
|
} else {
|
|
18543
19717
|
loadPositionAndSize();
|
|
19718
|
+
if (itemState.value.stickynessPosition && itemState.value.stickynessPosition !== "free") {
|
|
19719
|
+
nextTick(() => {
|
|
19720
|
+
applyStickyPosition();
|
|
19721
|
+
});
|
|
19722
|
+
}
|
|
18544
19723
|
}
|
|
19724
|
+
const handleLayoutReset = (event) => {
|
|
19725
|
+
itemState.value = { ...itemStore.items[props2.id] };
|
|
19726
|
+
if (itemState.value.stickynessPosition && itemState.value.stickynessPosition !== "free") {
|
|
19727
|
+
nextTick(() => {
|
|
19728
|
+
applyStickyPosition();
|
|
19729
|
+
});
|
|
19730
|
+
}
|
|
19731
|
+
};
|
|
19732
|
+
window.addEventListener("layout-reset", handleLayoutReset);
|
|
18545
19733
|
document.addEventListener("mouseup", stopResize);
|
|
18546
|
-
|
|
19734
|
+
window[`resetHandler_${props2.id}`] = handleLayoutReset;
|
|
18547
19735
|
});
|
|
18548
|
-
|
|
18549
|
-
|
|
19736
|
+
__expose({
|
|
19737
|
+
setFullScreen
|
|
18550
19738
|
});
|
|
18551
19739
|
onBeforeUnmount(() => {
|
|
19740
|
+
const handler = window[`resetHandler_${props2.id}`];
|
|
19741
|
+
if (handler) {
|
|
19742
|
+
window.removeEventListener("layout-reset", handler);
|
|
19743
|
+
delete window[`resetHandler_${props2.id}`];
|
|
19744
|
+
}
|
|
18552
19745
|
document.removeEventListener("mouseup", stopResize);
|
|
19746
|
+
document.removeEventListener("mousemove", onMove);
|
|
18553
19747
|
document.removeEventListener("mouseup", stopMove);
|
|
18554
|
-
|
|
18555
|
-
|
|
18556
|
-
|
|
18557
|
-
|
|
18558
|
-
isDragging,
|
|
18559
|
-
isResizing,
|
|
18560
|
-
startX,
|
|
18561
|
-
startY,
|
|
18562
|
-
startWidth,
|
|
18563
|
-
startHeight,
|
|
18564
|
-
startLeft,
|
|
18565
|
-
startTop,
|
|
18566
|
-
left: itemState.value.left,
|
|
18567
|
-
top: itemState.value.top,
|
|
18568
|
-
startResizeRight,
|
|
18569
|
-
onResizeWidth,
|
|
18570
|
-
startResizeBottom,
|
|
18571
|
-
onResizeHeight,
|
|
18572
|
-
startResizeTop,
|
|
18573
|
-
onResizeTop,
|
|
18574
|
-
startResizeLeft,
|
|
18575
|
-
onResizeLeft,
|
|
18576
|
-
stopResize,
|
|
18577
|
-
startMove,
|
|
18578
|
-
onMove,
|
|
18579
|
-
stopMove,
|
|
18580
|
-
moveToRight,
|
|
18581
|
-
moveToBottom,
|
|
18582
|
-
moveToLeft,
|
|
18583
|
-
moveToTop,
|
|
18584
|
-
setHeight: (value) => itemState.value.height = value,
|
|
18585
|
-
setWitdh: (value) => itemState.value.width = value,
|
|
18586
|
-
setFullScreen
|
|
19748
|
+
document.removeEventListener("mousemove", onResizeWidth);
|
|
19749
|
+
document.removeEventListener("mousemove", onResizeHeight);
|
|
19750
|
+
document.removeEventListener("mousemove", onResizeTop);
|
|
19751
|
+
document.removeEventListener("mousemove", onResizeLeft);
|
|
18587
19752
|
});
|
|
18588
19753
|
return (_ctx, _cache) => {
|
|
18589
19754
|
return openBlock(), createElementBlock("div", {
|
|
18590
|
-
|
|
19755
|
+
id: props2.id,
|
|
19756
|
+
class: normalizeClass(["overlay", {
|
|
19757
|
+
"no-transition": isResizing.value,
|
|
19758
|
+
minimized: isMinimized.value,
|
|
19759
|
+
"in-group": itemState.value.group,
|
|
19760
|
+
synced: itemState.value.syncDimensions
|
|
19761
|
+
}]),
|
|
18591
19762
|
style: normalizeStyle({
|
|
18592
19763
|
width: isMinimized.value ? "auto" : itemState.value.width + "px",
|
|
18593
19764
|
height: isMinimized.value ? "auto" : itemState.value.height + "px",
|
|
@@ -18603,14 +19774,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18603
19774
|
__props.allowMinimizing ? (openBlock(), createElementBlock("button", {
|
|
18604
19775
|
key: 0,
|
|
18605
19776
|
class: "minimal-button",
|
|
19777
|
+
"data-tooltip": "true",
|
|
18606
19778
|
title: isMinimized.value ? "Maximize" : "Minimize",
|
|
18607
19779
|
onClick: toggleMinimize
|
|
18608
19780
|
}, [
|
|
18609
|
-
createBaseVNode("span",
|
|
18610
|
-
], 8,
|
|
19781
|
+
createBaseVNode("span", _hoisted_3$6, toDisplayString(isMinimized.value ? "+" : "−"), 1)
|
|
19782
|
+
], 8, _hoisted_2$7)) : createCommentVNode("", true),
|
|
18611
19783
|
__props.showRight && itemState.value.stickynessPosition !== "right" ? (openBlock(), createElementBlock("button", {
|
|
18612
19784
|
key: 1,
|
|
18613
19785
|
class: "minimal-button",
|
|
19786
|
+
"data-tooltip": "true",
|
|
18614
19787
|
title: "Move to Right",
|
|
18615
19788
|
onClick: moveToRight
|
|
18616
19789
|
}, _cache[4] || (_cache[4] = [
|
|
@@ -18619,6 +19792,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18619
19792
|
__props.showBottom && itemState.value.stickynessPosition !== "bottom" ? (openBlock(), createElementBlock("button", {
|
|
18620
19793
|
key: 2,
|
|
18621
19794
|
class: "minimal-button",
|
|
19795
|
+
"data-tooltip": "true",
|
|
18622
19796
|
title: "Move to Bottom",
|
|
18623
19797
|
onClick: moveToBottom
|
|
18624
19798
|
}, _cache[5] || (_cache[5] = [
|
|
@@ -18627,6 +19801,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18627
19801
|
__props.showLeft && itemState.value.stickynessPosition !== "left" ? (openBlock(), createElementBlock("button", {
|
|
18628
19802
|
key: 3,
|
|
18629
19803
|
class: "minimal-button",
|
|
19804
|
+
"data-tooltip": "true",
|
|
18630
19805
|
title: "Move to Left",
|
|
18631
19806
|
onClick: moveToLeft
|
|
18632
19807
|
}, _cache[6] || (_cache[6] = [
|
|
@@ -18635,6 +19810,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18635
19810
|
__props.showTop && itemState.value.stickynessPosition !== "top" ? (openBlock(), createElementBlock("button", {
|
|
18636
19811
|
key: 4,
|
|
18637
19812
|
class: "minimal-button",
|
|
19813
|
+
"data-tooltip": "true",
|
|
18638
19814
|
title: "Move to Top",
|
|
18639
19815
|
onClick: moveToTop
|
|
18640
19816
|
}, _cache[7] || (_cache[7] = [
|
|
@@ -18643,7 +19819,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18643
19819
|
__props.allowFullScreen && !itemState.value.fullScreen ? (openBlock(), createElementBlock("button", {
|
|
18644
19820
|
key: 5,
|
|
18645
19821
|
class: "minimal-button",
|
|
18646
|
-
|
|
19822
|
+
"data-tooltip": "true",
|
|
19823
|
+
"data-tooltip-text": "Toggle Full Screen",
|
|
18647
19824
|
onClick: toggleFullScreen
|
|
18648
19825
|
}, _cache[8] || (_cache[8] = [
|
|
18649
19826
|
createBaseVNode("span", { class: "icon" }, "⬜", -1)
|
|
@@ -18651,12 +19828,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18651
19828
|
__props.allowFullScreen && itemState.value.fullScreen ? (openBlock(), createElementBlock("button", {
|
|
18652
19829
|
key: 6,
|
|
18653
19830
|
class: "minimal-button",
|
|
18654
|
-
|
|
19831
|
+
"data-tooltip": "true",
|
|
19832
|
+
"data-tooltip-text": "Exit Full Screen",
|
|
18655
19833
|
onClick: toggleFullScreen
|
|
18656
19834
|
}, _cache[9] || (_cache[9] = [
|
|
18657
19835
|
createBaseVNode("span", { class: "icon" }, "❐", -1)
|
|
18658
19836
|
]))) : createCommentVNode("", true),
|
|
18659
|
-
|
|
19837
|
+
createBaseVNode("span", {
|
|
19838
|
+
class: "group-badge",
|
|
19839
|
+
onMousedown: startMove
|
|
19840
|
+
}, toDisplayString(__props.title), 33)
|
|
18660
19841
|
], 32),
|
|
18661
19842
|
createBaseVNode("div", {
|
|
18662
19843
|
class: "content",
|
|
@@ -18684,12 +19865,214 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
18684
19865
|
onMousedown: withModifiers(startResizeLeft, ["stop"]),
|
|
18685
19866
|
onMouseenter: _cache[3] || (_cache[3] = ($event) => resizeOnEnter($event, "left"))
|
|
18686
19867
|
}, null, 32)
|
|
18687
|
-
],
|
|
19868
|
+
], 14, _hoisted_1$9);
|
|
19869
|
+
};
|
|
19870
|
+
}
|
|
19871
|
+
});
|
|
19872
|
+
const DraggableItem_vue_vue_type_style_index_0_scoped_47a34251_lang = "";
|
|
19873
|
+
const DraggableItem = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-47a34251"]]);
|
|
19874
|
+
const _hoisted_1$8 = { class: "panel-header" };
|
|
19875
|
+
const _hoisted_2$6 = { class: "panel-body" };
|
|
19876
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
19877
|
+
__name: "layoutControls",
|
|
19878
|
+
emits: ["reset-layout-graph"],
|
|
19879
|
+
setup(__props, { emit: __emit }) {
|
|
19880
|
+
const emit = __emit;
|
|
19881
|
+
const itemStore = useItemStore();
|
|
19882
|
+
const isOpen = ref(false);
|
|
19883
|
+
const position = ref({ x: window.innerWidth - 80, y: window.innerHeight - 80 });
|
|
19884
|
+
const isDragging = ref(false);
|
|
19885
|
+
const hasDragged = ref(false);
|
|
19886
|
+
const dragStart = ref({ x: 0, y: 0 });
|
|
19887
|
+
const initialPosition = ref({ x: 0, y: 0 });
|
|
19888
|
+
const handleViewportResize = () => {
|
|
19889
|
+
const buttonSize = 45;
|
|
19890
|
+
const boundaryMargin = 10;
|
|
19891
|
+
position.value.x = Math.max(
|
|
19892
|
+
boundaryMargin,
|
|
19893
|
+
Math.min(window.innerWidth - buttonSize - boundaryMargin, position.value.x)
|
|
19894
|
+
);
|
|
19895
|
+
position.value.y = Math.max(
|
|
19896
|
+
boundaryMargin,
|
|
19897
|
+
Math.min(window.innerHeight - buttonSize - boundaryMargin, position.value.y)
|
|
19898
|
+
);
|
|
19899
|
+
};
|
|
19900
|
+
const panelStyle = computed$1(() => {
|
|
19901
|
+
const style = {};
|
|
19902
|
+
const isRightHalf = position.value.x > window.innerWidth / 2;
|
|
19903
|
+
const isBottomHalf = position.value.y > window.innerHeight / 2;
|
|
19904
|
+
if (isRightHalf) {
|
|
19905
|
+
style.right = "60px";
|
|
19906
|
+
} else {
|
|
19907
|
+
style.left = "60px";
|
|
19908
|
+
}
|
|
19909
|
+
if (isBottomHalf) {
|
|
19910
|
+
style.bottom = "0px";
|
|
19911
|
+
} else {
|
|
19912
|
+
style.top = "0px";
|
|
19913
|
+
}
|
|
19914
|
+
return style;
|
|
19915
|
+
});
|
|
19916
|
+
onMounted(() => {
|
|
19917
|
+
const savedPosition = localStorage.getItem("layoutControlsPosition");
|
|
19918
|
+
if (savedPosition) {
|
|
19919
|
+
const parsed = JSON.parse(savedPosition);
|
|
19920
|
+
position.value = parsed;
|
|
19921
|
+
handleViewportResize();
|
|
19922
|
+
}
|
|
19923
|
+
window.addEventListener("resize", handleViewportResize);
|
|
19924
|
+
});
|
|
19925
|
+
const savePosition = () => {
|
|
19926
|
+
localStorage.setItem("layoutControlsPosition", JSON.stringify(position.value));
|
|
19927
|
+
};
|
|
19928
|
+
const handleMouseDown = (e2) => {
|
|
19929
|
+
e2.preventDefault();
|
|
19930
|
+
hasDragged.value = false;
|
|
19931
|
+
if (isOpen.value) {
|
|
19932
|
+
return;
|
|
19933
|
+
}
|
|
19934
|
+
isDragging.value = true;
|
|
19935
|
+
dragStart.value = {
|
|
19936
|
+
x: e2.clientX,
|
|
19937
|
+
y: e2.clientY
|
|
19938
|
+
};
|
|
19939
|
+
initialPosition.value = {
|
|
19940
|
+
x: position.value.x,
|
|
19941
|
+
y: position.value.y
|
|
19942
|
+
};
|
|
19943
|
+
document.addEventListener("mousemove", onDrag);
|
|
19944
|
+
document.addEventListener("mouseup", stopDrag);
|
|
19945
|
+
};
|
|
19946
|
+
const handleClick = (e2) => {
|
|
19947
|
+
e2.preventDefault();
|
|
19948
|
+
e2.stopPropagation();
|
|
19949
|
+
if (!hasDragged.value) {
|
|
19950
|
+
isOpen.value = !isOpen.value;
|
|
19951
|
+
}
|
|
19952
|
+
};
|
|
19953
|
+
const onDrag = (e2) => {
|
|
19954
|
+
if (!isDragging.value)
|
|
19955
|
+
return;
|
|
19956
|
+
const deltaX = e2.clientX - dragStart.value.x;
|
|
19957
|
+
const deltaY = e2.clientY - dragStart.value.y;
|
|
19958
|
+
if (Math.abs(deltaX) > 5 || Math.abs(deltaY) > 5) {
|
|
19959
|
+
hasDragged.value = true;
|
|
19960
|
+
}
|
|
19961
|
+
if (hasDragged.value) {
|
|
19962
|
+
let newX = initialPosition.value.x + deltaX;
|
|
19963
|
+
let newY = initialPosition.value.y + deltaY;
|
|
19964
|
+
const buttonSize = 45;
|
|
19965
|
+
const boundaryMargin = 10;
|
|
19966
|
+
newX = Math.max(
|
|
19967
|
+
boundaryMargin,
|
|
19968
|
+
Math.min(window.innerWidth - buttonSize - boundaryMargin, newX)
|
|
19969
|
+
);
|
|
19970
|
+
newY = Math.max(
|
|
19971
|
+
boundaryMargin,
|
|
19972
|
+
Math.min(window.innerHeight - buttonSize - boundaryMargin, newY)
|
|
19973
|
+
);
|
|
19974
|
+
position.value = { x: newX, y: newY };
|
|
19975
|
+
}
|
|
19976
|
+
};
|
|
19977
|
+
const stopDrag = () => {
|
|
19978
|
+
if (isDragging.value) {
|
|
19979
|
+
isDragging.value = false;
|
|
19980
|
+
if (hasDragged.value) {
|
|
19981
|
+
savePosition();
|
|
19982
|
+
}
|
|
19983
|
+
document.removeEventListener("mousemove", onDrag);
|
|
19984
|
+
document.removeEventListener("mouseup", stopDrag);
|
|
19985
|
+
}
|
|
19986
|
+
};
|
|
19987
|
+
const runAction = (action, ...args) => {
|
|
19988
|
+
action(...args);
|
|
19989
|
+
isOpen.value = false;
|
|
19990
|
+
};
|
|
19991
|
+
const arrangeLayout = (layout) => {
|
|
19992
|
+
itemStore.arrangeItems(layout);
|
|
19993
|
+
};
|
|
19994
|
+
const resetLayout = () => {
|
|
19995
|
+
itemStore.resetLayout();
|
|
19996
|
+
};
|
|
19997
|
+
const resetLayoutGraph = () => {
|
|
19998
|
+
emit("reset-layout-graph");
|
|
19999
|
+
};
|
|
20000
|
+
onBeforeUnmount(() => {
|
|
20001
|
+
document.removeEventListener("mousemove", onDrag);
|
|
20002
|
+
document.removeEventListener("mouseup", stopDrag);
|
|
20003
|
+
window.removeEventListener("resize", handleViewportResize);
|
|
20004
|
+
});
|
|
20005
|
+
return (_ctx, _cache) => {
|
|
20006
|
+
return openBlock(), createElementBlock("div", {
|
|
20007
|
+
class: "layout-widget-wrapper",
|
|
20008
|
+
style: normalizeStyle({
|
|
20009
|
+
left: position.value.x + "px",
|
|
20010
|
+
top: position.value.y + "px"
|
|
20011
|
+
})
|
|
20012
|
+
}, [
|
|
20013
|
+
createVNode(Transition$2, { name: "panel-fade" }, {
|
|
20014
|
+
default: withCtx(() => [
|
|
20015
|
+
isOpen.value ? (openBlock(), createElementBlock("div", {
|
|
20016
|
+
key: 0,
|
|
20017
|
+
class: "panel",
|
|
20018
|
+
style: normalizeStyle(panelStyle.value)
|
|
20019
|
+
}, [
|
|
20020
|
+
createBaseVNode("div", _hoisted_1$8, [
|
|
20021
|
+
_cache[5] || (_cache[5] = createBaseVNode("span", { class: "panel-title" }, "Layout Controls", -1)),
|
|
20022
|
+
createBaseVNode("button", {
|
|
20023
|
+
class: "close-btn",
|
|
20024
|
+
title: "Close",
|
|
20025
|
+
onClick: _cache[0] || (_cache[0] = ($event) => isOpen.value = false)
|
|
20026
|
+
}, "✕")
|
|
20027
|
+
]),
|
|
20028
|
+
createBaseVNode("div", _hoisted_2$6, [
|
|
20029
|
+
createBaseVNode("button", {
|
|
20030
|
+
class: "control-btn",
|
|
20031
|
+
onClick: _cache[1] || (_cache[1] = ($event) => runAction(arrangeLayout, "tile"))
|
|
20032
|
+
}, _cache[6] || (_cache[6] = [
|
|
20033
|
+
createBaseVNode("span", { class: "icon" }, "⊞", -1),
|
|
20034
|
+
createTextVNode(" Tile Layout ")
|
|
20035
|
+
])),
|
|
20036
|
+
createBaseVNode("button", {
|
|
20037
|
+
class: "control-btn",
|
|
20038
|
+
onClick: _cache[2] || (_cache[2] = ($event) => runAction(arrangeLayout, "cascade"))
|
|
20039
|
+
}, _cache[7] || (_cache[7] = [
|
|
20040
|
+
createBaseVNode("span", { class: "icon" }, "◫", -1),
|
|
20041
|
+
createTextVNode(" Cascade ")
|
|
20042
|
+
])),
|
|
20043
|
+
createBaseVNode("button", {
|
|
20044
|
+
class: "control-btn",
|
|
20045
|
+
onClick: _cache[3] || (_cache[3] = ($event) => runAction(resetLayout))
|
|
20046
|
+
}, _cache[8] || (_cache[8] = [
|
|
20047
|
+
createBaseVNode("span", { class: "icon" }, "↺", -1),
|
|
20048
|
+
createTextVNode(" Reset window Layout ")
|
|
20049
|
+
])),
|
|
20050
|
+
createBaseVNode("button", {
|
|
20051
|
+
class: "control-btn accent",
|
|
20052
|
+
onClick: _cache[4] || (_cache[4] = ($event) => runAction(resetLayoutGraph))
|
|
20053
|
+
}, _cache[9] || (_cache[9] = [
|
|
20054
|
+
createBaseVNode("span", { class: "icon" }, "⟲", -1),
|
|
20055
|
+
createTextVNode(" Reset Layout Graph ")
|
|
20056
|
+
]))
|
|
20057
|
+
])
|
|
20058
|
+
], 4)) : createCommentVNode("", true)
|
|
20059
|
+
]),
|
|
20060
|
+
_: 1
|
|
20061
|
+
}),
|
|
20062
|
+
createBaseVNode("button", {
|
|
20063
|
+
class: normalizeClass(["trigger-btn", { "is-open": isOpen.value }]),
|
|
20064
|
+
title: "Layout Controls",
|
|
20065
|
+
onMousedown: handleMouseDown,
|
|
20066
|
+
onClick: handleClick
|
|
20067
|
+
}, _cache[10] || (_cache[10] = [
|
|
20068
|
+
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)
|
|
20069
|
+
]), 34)
|
|
20070
|
+
], 4);
|
|
18688
20071
|
};
|
|
18689
20072
|
}
|
|
18690
20073
|
});
|
|
18691
|
-
const
|
|
18692
|
-
const
|
|
20074
|
+
const layoutControls_vue_vue_type_style_index_0_scoped_0bdaa52f_lang = "";
|
|
20075
|
+
const layoutControls = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-0bdaa52f"]]);
|
|
18693
20076
|
var __defProp$2 = Object.defineProperty;
|
|
18694
20077
|
var __defProps = Object.defineProperties;
|
|
18695
20078
|
var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
|
|
@@ -67227,15 +68610,15 @@ var __defProp$1 = Object.defineProperty;
|
|
|
67227
68610
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
67228
68611
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
67229
68612
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
67230
|
-
var
|
|
68613
|
+
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
67231
68614
|
var __spreadValues = (a3, b2) => {
|
|
67232
68615
|
for (var prop in b2 || (b2 = {}))
|
|
67233
68616
|
if (__hasOwnProp.call(b2, prop))
|
|
67234
|
-
|
|
68617
|
+
__defNormalProp2(a3, prop, b2[prop]);
|
|
67235
68618
|
if (__getOwnPropSymbols)
|
|
67236
68619
|
for (var prop of __getOwnPropSymbols(b2)) {
|
|
67237
68620
|
if (__propIsEnum.call(b2, prop))
|
|
67238
|
-
|
|
68621
|
+
__defNormalProp2(a3, prop, b2[prop]);
|
|
67239
68622
|
}
|
|
67240
68623
|
return a3;
|
|
67241
68624
|
};
|
|
@@ -67705,7 +69088,7 @@ var AgGridVue = defineComponent({
|
|
|
67705
69088
|
* @license MIT
|
|
67706
69089
|
**)
|
|
67707
69090
|
*/
|
|
67708
|
-
var
|
|
69091
|
+
var __defProp2 = Object.defineProperty;
|
|
67709
69092
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
67710
69093
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
67711
69094
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
@@ -67713,7 +69096,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
67713
69096
|
if (decorator = decorators[i2])
|
|
67714
69097
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
67715
69098
|
if (kind && result)
|
|
67716
|
-
|
|
69099
|
+
__defProp2(target, key, result);
|
|
67717
69100
|
return result;
|
|
67718
69101
|
};
|
|
67719
69102
|
var _ClientSideNodeManager = class _ClientSideNodeManager2 {
|
|
@@ -69431,6 +70814,18 @@ const _hoisted_1$7 = {
|
|
|
69431
70814
|
key: 0,
|
|
69432
70815
|
class: "spinner-overlay"
|
|
69433
70816
|
};
|
|
70817
|
+
const _hoisted_2$5 = { class: "table-container" };
|
|
70818
|
+
const _hoisted_3$5 = {
|
|
70819
|
+
key: 0,
|
|
70820
|
+
class: "outdated-data-banner"
|
|
70821
|
+
};
|
|
70822
|
+
const _hoisted_4$5 = {
|
|
70823
|
+
key: 1,
|
|
70824
|
+
class: "fetch-data-section"
|
|
70825
|
+
};
|
|
70826
|
+
const _hoisted_5$4 = ["disabled"];
|
|
70827
|
+
const _hoisted_6$3 = { key: 0 };
|
|
70828
|
+
const _hoisted_7$2 = { key: 1 };
|
|
69434
70829
|
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
69435
70830
|
__name: "dataPreview",
|
|
69436
70831
|
props: {
|
|
@@ -69451,6 +70846,31 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69451
70846
|
const columnLength = ref(0);
|
|
69452
70847
|
const gridApi = ref(null);
|
|
69453
70848
|
const columnDefs = ref([{}]);
|
|
70849
|
+
const showFetchButton = ref(false);
|
|
70850
|
+
const currentNodeId = ref(null);
|
|
70851
|
+
const showOutdatedDataBanner = ref(false);
|
|
70852
|
+
const props2 = __props;
|
|
70853
|
+
const { triggerNodeFetch, isPollingActive } = useFlowExecution(
|
|
70854
|
+
props2.flowId || nodeStore.flow_id,
|
|
70855
|
+
{ interval: 2e3, enabled: true },
|
|
70856
|
+
{
|
|
70857
|
+
persistPolling: true,
|
|
70858
|
+
// Keep polling even when component unmounts
|
|
70859
|
+
pollingKey: `table_flow_${props2.flowId || nodeStore.flow_id}`
|
|
70860
|
+
}
|
|
70861
|
+
);
|
|
70862
|
+
const gridHeightComputed = computed$1(() => {
|
|
70863
|
+
if (showFetchButton.value) {
|
|
70864
|
+
return "80px";
|
|
70865
|
+
}
|
|
70866
|
+
return gridHeight.value || "100%";
|
|
70867
|
+
});
|
|
70868
|
+
const overlayNoRowsTemplate = computed$1(() => {
|
|
70869
|
+
if (showFetchButton.value) {
|
|
70870
|
+
return "<span></span>";
|
|
70871
|
+
}
|
|
70872
|
+
return void 0;
|
|
70873
|
+
});
|
|
69454
70874
|
const defaultColDef = {
|
|
69455
70875
|
editable: true,
|
|
69456
70876
|
filter: true,
|
|
@@ -69459,8 +70879,17 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69459
70879
|
};
|
|
69460
70880
|
const onGridReady = (params) => {
|
|
69461
70881
|
gridApi.value = params.api;
|
|
70882
|
+
if (showFetchButton.value) {
|
|
70883
|
+
gridApi.value.hideOverlay();
|
|
70884
|
+
}
|
|
69462
70885
|
};
|
|
69463
|
-
|
|
70886
|
+
function dismissOutdatedBanner() {
|
|
70887
|
+
showOutdatedDataBanner.value = false;
|
|
70888
|
+
}
|
|
70889
|
+
async function handleRefresh() {
|
|
70890
|
+
showOutdatedDataBanner.value = false;
|
|
70891
|
+
await handleFetchData();
|
|
70892
|
+
}
|
|
69464
70893
|
const calculateGridHeight = () => {
|
|
69465
70894
|
const otherElementsHeight = 300;
|
|
69466
70895
|
const availableHeight = window.innerHeight - otherElementsHeight;
|
|
@@ -69470,39 +70899,81 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69470
70899
|
async function downloadData(nodeId) {
|
|
69471
70900
|
try {
|
|
69472
70901
|
isLoading.value = true;
|
|
70902
|
+
showFetchButton.value = false;
|
|
70903
|
+
showOutdatedDataBanner.value = false;
|
|
70904
|
+
currentNodeId.value = nodeId;
|
|
69473
70905
|
let resp = await nodeStore.getTableExample(nodeStore.flow_id, nodeId);
|
|
69474
70906
|
if (resp) {
|
|
69475
70907
|
dataPreview.value = resp;
|
|
70908
|
+
showOutdatedDataBanner.value = !resp.has_run_with_current_setup && resp.has_example_data;
|
|
69476
70909
|
const _cd = [];
|
|
69477
70910
|
const _columns = dataPreview.value.table_schema;
|
|
69478
70911
|
if (props2.showFileStats) {
|
|
69479
70912
|
_columns == null ? void 0 : _columns.forEach((item) => {
|
|
69480
|
-
_cd.push({
|
|
70913
|
+
_cd.push({
|
|
70914
|
+
field: item.name,
|
|
70915
|
+
headerName: item.name,
|
|
70916
|
+
resizable: true
|
|
70917
|
+
});
|
|
69481
70918
|
schema_dict[item.name] = item;
|
|
69482
70919
|
});
|
|
69483
70920
|
} else {
|
|
69484
70921
|
_columns == null ? void 0 : _columns.forEach((item) => {
|
|
69485
|
-
_cd.push({
|
|
70922
|
+
_cd.push({
|
|
70923
|
+
field: item.name,
|
|
70924
|
+
headerName: item.name,
|
|
70925
|
+
resizable: true
|
|
70926
|
+
});
|
|
69486
70927
|
});
|
|
69487
70928
|
}
|
|
69488
70929
|
columnDefs.value = _cd;
|
|
69489
|
-
if (
|
|
69490
|
-
|
|
69491
|
-
|
|
69492
|
-
|
|
70930
|
+
if (resp.has_example_data === false) {
|
|
70931
|
+
showFetchButton.value = true;
|
|
70932
|
+
rowData.value = [];
|
|
70933
|
+
showTable.value = true;
|
|
70934
|
+
dataAvailable.value = false;
|
|
70935
|
+
} else {
|
|
70936
|
+
if (dataPreview.value) {
|
|
70937
|
+
rowData.value = dataPreview.value.data;
|
|
70938
|
+
dataLength.value = dataPreview.value.number_of_records;
|
|
70939
|
+
columnLength.value = dataPreview.value.number_of_columns;
|
|
70940
|
+
}
|
|
70941
|
+
showTable.value = true;
|
|
70942
|
+
dataAvailable.value = true;
|
|
70943
|
+
showFetchButton.value = false;
|
|
69493
70944
|
}
|
|
69494
|
-
showTable.value = true;
|
|
69495
|
-
dataAvailable.value = true;
|
|
69496
70945
|
}
|
|
69497
70946
|
} finally {
|
|
69498
70947
|
isLoading.value = false;
|
|
69499
70948
|
}
|
|
69500
70949
|
}
|
|
70950
|
+
async function handleFetchData() {
|
|
70951
|
+
if (currentNodeId.value !== null) {
|
|
70952
|
+
try {
|
|
70953
|
+
if (isPollingActive(`node_${currentNodeId.value}`)) {
|
|
70954
|
+
console.log("Fetch already in progress for this node");
|
|
70955
|
+
return;
|
|
70956
|
+
}
|
|
70957
|
+
await triggerNodeFetch(currentNodeId.value);
|
|
70958
|
+
const checkInterval = setInterval(async () => {
|
|
70959
|
+
if (!isPollingActive(`node_${currentNodeId.value}`)) {
|
|
70960
|
+
clearInterval(checkInterval);
|
|
70961
|
+
await downloadData(currentNodeId.value);
|
|
70962
|
+
}
|
|
70963
|
+
}, 1e3);
|
|
70964
|
+
setTimeout(() => clearInterval(checkInterval), 6e4);
|
|
70965
|
+
} catch (error) {
|
|
70966
|
+
console.error("Error fetching data:", error);
|
|
70967
|
+
}
|
|
70968
|
+
}
|
|
70969
|
+
}
|
|
69501
70970
|
function removeData() {
|
|
69502
70971
|
rowData.value = [];
|
|
69503
70972
|
showTable.value = false;
|
|
69504
70973
|
dataAvailable.value = false;
|
|
69505
70974
|
columnDefs.value = [{}];
|
|
70975
|
+
showFetchButton.value = false;
|
|
70976
|
+
currentNodeId.value = null;
|
|
69506
70977
|
}
|
|
69507
70978
|
ref(null);
|
|
69508
70979
|
onMounted(() => {
|
|
@@ -69518,13 +70989,41 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
69518
70989
|
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$7, _cache[0] || (_cache[0] = [
|
|
69519
70990
|
createBaseVNode("div", { class: "spinner" }, null, -1)
|
|
69520
70991
|
]))) : createCommentVNode("", true),
|
|
69521
|
-
withDirectives(
|
|
69522
|
-
"
|
|
69523
|
-
|
|
69524
|
-
|
|
69525
|
-
|
|
69526
|
-
|
|
69527
|
-
|
|
70992
|
+
withDirectives(createBaseVNode("div", _hoisted_2$5, [
|
|
70993
|
+
showOutdatedDataBanner.value ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
|
|
70994
|
+
createBaseVNode("p", null, [
|
|
70995
|
+
_cache[1] || (_cache[1] = createTextVNode(" Displayed data might be outdated. ")),
|
|
70996
|
+
createBaseVNode("button", {
|
|
70997
|
+
class: "refresh-link-button",
|
|
70998
|
+
onClick: handleRefresh
|
|
70999
|
+
}, "Refresh now")
|
|
71000
|
+
]),
|
|
71001
|
+
createBaseVNode("button", {
|
|
71002
|
+
class: "dismiss-button",
|
|
71003
|
+
"aria-label": "Dismiss notification",
|
|
71004
|
+
onClick: dismissOutdatedBanner
|
|
71005
|
+
}, " × ")
|
|
71006
|
+
])) : createCommentVNode("", true),
|
|
71007
|
+
createVNode(unref(AgGridVue), {
|
|
71008
|
+
"default-col-def": defaultColDef,
|
|
71009
|
+
"column-defs": columnDefs.value,
|
|
71010
|
+
class: "ag-theme-balham",
|
|
71011
|
+
"row-data": rowData.value,
|
|
71012
|
+
style: normalizeStyle({ width: "100%", height: gridHeightComputed.value }),
|
|
71013
|
+
"overlay-no-rows-template": overlayNoRowsTemplate.value,
|
|
71014
|
+
onGridReady
|
|
71015
|
+
}, null, 8, ["column-defs", "row-data", "style", "overlay-no-rows-template"]),
|
|
71016
|
+
showFetchButton.value ? (openBlock(), createElementBlock("div", _hoisted_4$5, [
|
|
71017
|
+
_cache[2] || (_cache[2] = createBaseVNode("p", null, "Step has not stored any data yet. Click here to trigger a run for this node", -1)),
|
|
71018
|
+
createBaseVNode("button", {
|
|
71019
|
+
class: "fetch-data-button",
|
|
71020
|
+
disabled: unref(nodeStore).isRunning,
|
|
71021
|
+
onClick: handleFetchData
|
|
71022
|
+
}, [
|
|
71023
|
+
!unref(nodeStore).isRunning ? (openBlock(), createElementBlock("span", _hoisted_6$3, "Fetch Data")) : (openBlock(), createElementBlock("span", _hoisted_7$2, "Fetching..."))
|
|
71024
|
+
], 8, _hoisted_5$4)
|
|
71025
|
+
])) : createCommentVNode("", true)
|
|
71026
|
+
], 512), [
|
|
69528
71027
|
[vShow, !isLoading.value]
|
|
69529
71028
|
])
|
|
69530
71029
|
], 64);
|
|
@@ -71059,7 +72558,7 @@ const _hoisted_4$4 = { class: "node-title" };
|
|
|
71059
72558
|
const _hoisted_5$3 = { class: "node-description" };
|
|
71060
72559
|
const _hoisted_6$2 = { key: 1 };
|
|
71061
72560
|
const _hoisted_7$1 = { class: "node-details" };
|
|
71062
|
-
const _hoisted_8 = {
|
|
72561
|
+
const _hoisted_8$1 = {
|
|
71063
72562
|
key: 0,
|
|
71064
72563
|
class: "failure"
|
|
71065
72564
|
};
|
|
@@ -71186,7 +72685,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
71186
72685
|
})
|
|
71187
72686
|
}, toDisplayString(node.success === null ? "Running" : node.success ? "Success" : "Failure"), 3)
|
|
71188
72687
|
]),
|
|
71189
|
-
node.success === false ? (openBlock(), createElementBlock("p", _hoisted_8, "Error: " + toDisplayString(node.error), 1)) : createCommentVNode("", true)
|
|
72688
|
+
node.success === false ? (openBlock(), createElementBlock("p", _hoisted_8$1, "Error: " + toDisplayString(node.error), 1)) : createCommentVNode("", true)
|
|
71190
72689
|
])
|
|
71191
72690
|
]),
|
|
71192
72691
|
_: 2
|
|
@@ -71256,7 +72755,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71256
72755
|
connectionRetries.value = 0;
|
|
71257
72756
|
errorMessage.value = null;
|
|
71258
72757
|
connectionStatus.value = "disconnected";
|
|
71259
|
-
console.log("Starting log streaming");
|
|
71260
72758
|
try {
|
|
71261
72759
|
const token = await authService.getToken();
|
|
71262
72760
|
if (!token) {
|
|
@@ -71288,7 +72786,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71288
72786
|
if (!hasReceivedMessage && nodeStore.isRunning) {
|
|
71289
72787
|
if (connectionRetries.value < maxRetries) {
|
|
71290
72788
|
connectionRetries.value++;
|
|
71291
|
-
console.log(`Retrying log connection (${connectionRetries.value}/${maxRetries})...`);
|
|
71292
72789
|
errorMessage.value = `Connection failed. Retrying (${connectionRetries.value}/${maxRetries})...`;
|
|
71293
72790
|
connectionStatus.value = "error";
|
|
71294
72791
|
stopStreamingLogs();
|
|
@@ -71432,8 +72929,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
71432
72929
|
};
|
|
71433
72930
|
}
|
|
71434
72931
|
});
|
|
71435
|
-
const
|
|
71436
|
-
const LogViewer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-
|
|
72932
|
+
const LogViewer_vue_vue_type_style_index_0_scoped_9b3bdb24_lang = "";
|
|
72933
|
+
const LogViewer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-9b3bdb24"]]);
|
|
71437
72934
|
const _hoisted_1$4 = { class: "context-menu-header" };
|
|
71438
72935
|
const _hoisted_2$2 = { class: "context-menu-items" };
|
|
71439
72936
|
const _hoisted_3$2 = ["onClick"];
|
|
@@ -71535,11 +73032,32 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
71535
73032
|
});
|
|
71536
73033
|
const ContextMenu_vue_vue_type_style_index_0_scoped_7db4e6fc_lang = "";
|
|
71537
73034
|
const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-7db4e6fc"]]);
|
|
73035
|
+
const handleApiError = (error) => {
|
|
73036
|
+
var _a, _b, _c;
|
|
73037
|
+
throw {
|
|
73038
|
+
message: ((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.detail) || "An unknown error occurred",
|
|
73039
|
+
status: ((_c = error.response) == null ? void 0 : _c.status) || 500
|
|
73040
|
+
};
|
|
73041
|
+
};
|
|
73042
|
+
const applyStandardLayout = async (flowId) => {
|
|
73043
|
+
const url = "/flow/apply_standard_layout/";
|
|
73044
|
+
try {
|
|
73045
|
+
const response = await axios.post(url, null, {
|
|
73046
|
+
params: {
|
|
73047
|
+
flow_id: flowId
|
|
73048
|
+
}
|
|
73049
|
+
});
|
|
73050
|
+
return response.data;
|
|
73051
|
+
} catch (error) {
|
|
73052
|
+
return handleApiError(error);
|
|
73053
|
+
}
|
|
73054
|
+
};
|
|
71538
73055
|
const _hoisted_1$3 = { class: "container" };
|
|
71539
73056
|
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
71540
73057
|
__name: "CanvasFlow",
|
|
71541
73058
|
emits: ["save", "run"],
|
|
71542
73059
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
73060
|
+
const itemStore = useItemStore();
|
|
71543
73061
|
const availableHeight = ref(0);
|
|
71544
73062
|
const nodeStore = useNodeStore();
|
|
71545
73063
|
const rawCustomNode = markRaw$1(CustomNode);
|
|
@@ -71563,14 +73081,23 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71563
73081
|
const contextMenuTarget = ref({ type: "pane", id: "" });
|
|
71564
73082
|
const emit = __emit;
|
|
71565
73083
|
const handleCanvasClick = (event) => {
|
|
71566
|
-
nodeStore.closeDrawer();
|
|
71567
73084
|
showTablePreview.value = false;
|
|
73085
|
+
nodeStore.node_id = -1;
|
|
73086
|
+
nodeStore.activeDrawerComponent = null;
|
|
71568
73087
|
nodeStore.hideLogViewer();
|
|
71569
73088
|
clickedPosition.value = {
|
|
71570
73089
|
x: event.x,
|
|
71571
73090
|
y: event.y
|
|
71572
73091
|
};
|
|
71573
73092
|
};
|
|
73093
|
+
const handleNodeSettingsClose = (event) => {
|
|
73094
|
+
nodeStore.node_id = -1;
|
|
73095
|
+
nodeStore.activeDrawerComponent = null;
|
|
73096
|
+
clickedPosition.value = {
|
|
73097
|
+
x: event.x,
|
|
73098
|
+
y: event.y
|
|
73099
|
+
};
|
|
73100
|
+
};
|
|
71574
73101
|
const toggleShowTablePreview = () => {
|
|
71575
73102
|
showTablePreview.value = !showTablePreview.value;
|
|
71576
73103
|
};
|
|
@@ -71589,7 +73116,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71589
73116
|
setNodeTableView(nodeId);
|
|
71590
73117
|
});
|
|
71591
73118
|
fitView({ nodes: [nodeId.toString()] });
|
|
71592
|
-
nodeStore.node_id = nodeId;
|
|
71593
73119
|
};
|
|
71594
73120
|
async function onConnect(params) {
|
|
71595
73121
|
if (params.target && params.source) {
|
|
@@ -71613,6 +73139,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71613
73139
|
const nodeClick = (mouseEvent) => {
|
|
71614
73140
|
showTablePreview.value = true;
|
|
71615
73141
|
nextTick().then(() => {
|
|
73142
|
+
nodeStore.node_id = parseInt(mouseEvent.node.id);
|
|
73143
|
+
itemStore.bringToFront("tablePreview");
|
|
73144
|
+
itemStore.bringToFront("nodeSettings");
|
|
71616
73145
|
if (mouseEvent.node.id && !NodeIsSelected(mouseEvent.node.id) || dataPreview.value && dataPreview.value.dataLength == 0 && dataPreview.value.columnLength == 0) {
|
|
71617
73146
|
setNodeTableView(mouseEvent.node.id);
|
|
71618
73147
|
}
|
|
@@ -71620,7 +73149,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71620
73149
|
});
|
|
71621
73150
|
};
|
|
71622
73151
|
const setNodeTableView = (nodeId) => {
|
|
71623
|
-
console.log(dataPreview.value);
|
|
71624
73152
|
if (dataPreview.value) {
|
|
71625
73153
|
dataPreview.value.downloadData(nodeId);
|
|
71626
73154
|
}
|
|
@@ -71651,13 +73179,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71651
73179
|
console.log("Edge changes length is 2 so coming from a node change event");
|
|
71652
73180
|
return;
|
|
71653
73181
|
}
|
|
71654
|
-
console.log("Edge changes", edgeChanges);
|
|
71655
73182
|
for (const edgeChange of edgeChanges) {
|
|
71656
|
-
if (edgeChange.type === "
|
|
71657
|
-
console.log("This edge change does not work");
|
|
71658
|
-
} else if (edgeChange.type === "remove") {
|
|
73183
|
+
if (edgeChange.type === "remove") {
|
|
71659
73184
|
const nodeConnection = convertEdgeChangeToNodeConnection(edgeChange);
|
|
71660
|
-
console.log("Removing connection", nodeConnection);
|
|
71661
73185
|
deleteConnection(nodeStore.flow_id, nodeConnection);
|
|
71662
73186
|
}
|
|
71663
73187
|
}
|
|
@@ -71696,6 +73220,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71696
73220
|
copyValue(position.x, position.y);
|
|
71697
73221
|
}
|
|
71698
73222
|
};
|
|
73223
|
+
const handleResetLayoutGraph = async () => {
|
|
73224
|
+
await applyStandardLayout(nodeStore.flow_id);
|
|
73225
|
+
loadFlow();
|
|
73226
|
+
};
|
|
73227
|
+
const hideLogViewer = () => {
|
|
73228
|
+
nodeStore.hideLogViewerForThisRun = true;
|
|
73229
|
+
nodeStore.hideLogViewer();
|
|
73230
|
+
};
|
|
71699
73231
|
const handleKeyDown = (event) => {
|
|
71700
73232
|
let eventKeyClicked = event.ctrlKey || event.metaKey;
|
|
71701
73233
|
if (eventKeyClicked && event.key === "v" && event.target) {
|
|
@@ -71778,7 +73310,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71778
73310
|
onClick: closeContextMenu
|
|
71779
73311
|
}, {
|
|
71780
73312
|
default: withCtx(() => [
|
|
71781
|
-
createVNode(unref(_sfc_main$
|
|
73313
|
+
createVNode(unref(_sfc_main$i))
|
|
71782
73314
|
]),
|
|
71783
73315
|
_: 1
|
|
71784
73316
|
}, 8, ["nodes", "edges", "connection-mode"]),
|
|
@@ -71798,7 +73330,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71798
73330
|
"initial-width": 200,
|
|
71799
73331
|
"initial-position": "left",
|
|
71800
73332
|
title: "Data actions",
|
|
71801
|
-
"allow-free-move": true
|
|
73333
|
+
"allow-free-move": true,
|
|
73334
|
+
"prevent-overlap": false
|
|
71802
73335
|
}, {
|
|
71803
73336
|
default: withCtx(() => [
|
|
71804
73337
|
createVNode(NodeList, { onDragstart: unref(onDragStart) }, null, 8, ["onDragstart"])
|
|
@@ -71812,13 +73345,17 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71812
73345
|
title: "Log overview",
|
|
71813
73346
|
"allow-full-screen": true,
|
|
71814
73347
|
"initial-position": "bottom",
|
|
71815
|
-
"
|
|
73348
|
+
"initial-left": 200,
|
|
73349
|
+
"on-minize": hideLogViewer,
|
|
73350
|
+
group: "bottomPanels",
|
|
73351
|
+
"sync-dimensions": true,
|
|
73352
|
+
"prevent-overlap": false
|
|
71816
73353
|
}, {
|
|
71817
73354
|
default: withCtx(() => [
|
|
71818
|
-
createVNode(LogViewer
|
|
73355
|
+
createVNode(LogViewer)
|
|
71819
73356
|
]),
|
|
71820
73357
|
_: 1
|
|
71821
|
-
}
|
|
73358
|
+
})) : createCommentVNode("", true),
|
|
71822
73359
|
unref(nodeStore).showFlowResult ? (openBlock(), createBlock(DraggableItem, {
|
|
71823
73360
|
key: 1,
|
|
71824
73361
|
id: "flowresults",
|
|
@@ -71826,7 +73363,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71826
73363
|
title: "flow results",
|
|
71827
73364
|
"initial-position": "right",
|
|
71828
73365
|
"initial-width": 400,
|
|
71829
|
-
"
|
|
73366
|
+
group: "rightPanels",
|
|
73367
|
+
"prevent-overlap": false
|
|
71830
73368
|
}, {
|
|
71831
73369
|
default: withCtx(() => [
|
|
71832
73370
|
createVNode(FlowResults, { "on-click": selectNodeExternally })
|
|
@@ -71841,7 +73379,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71841
73379
|
title: "Table Preview",
|
|
71842
73380
|
"initial-position": "bottom",
|
|
71843
73381
|
"on-minize": toggleShowTablePreview,
|
|
71844
|
-
"initial-height": tablePreviewHeight.value
|
|
73382
|
+
"initial-height": tablePreviewHeight.value,
|
|
73383
|
+
"initial-left": 200,
|
|
73384
|
+
group: "bottomPanels",
|
|
73385
|
+
"sync-dimensions": true,
|
|
73386
|
+
"prevent-overlap": false
|
|
71845
73387
|
}, {
|
|
71846
73388
|
default: withCtx(() => [
|
|
71847
73389
|
createVNode(_sfc_main$8, {
|
|
@@ -71862,22 +73404,18 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71862
73404
|
id: "nodeSettings",
|
|
71863
73405
|
"show-right": true,
|
|
71864
73406
|
"initial-position": "right",
|
|
71865
|
-
"initial-top": 0,
|
|
71866
73407
|
"initial-width": 800,
|
|
71867
73408
|
"initial-height": nodeSettingsHeight.value,
|
|
71868
73409
|
title: "Node Settings",
|
|
71869
|
-
"on-minize":
|
|
71870
|
-
"allow-full-screen": true
|
|
73410
|
+
"on-minize": handleNodeSettingsClose,
|
|
73411
|
+
"allow-full-screen": true,
|
|
73412
|
+
"prevent-overlap": false
|
|
71871
73413
|
}, {
|
|
71872
|
-
default: withCtx(() =>
|
|
71873
|
-
|
|
71874
|
-
|
|
71875
|
-
|
|
71876
|
-
|
|
71877
|
-
])),
|
|
71878
|
-
_: 1,
|
|
71879
|
-
__: [2]
|
|
71880
|
-
}, 8, ["initial-height", "on-minize"])) : createCommentVNode("", true),
|
|
73414
|
+
default: withCtx(() => [
|
|
73415
|
+
createVNode(_sfc_main$b)
|
|
73416
|
+
]),
|
|
73417
|
+
_: 1
|
|
73418
|
+
}, 8, ["initial-height"])) : createCommentVNode("", true),
|
|
71881
73419
|
unref(nodeStore).showCodeGenerator ? (openBlock(), createBlock(DraggableItem, {
|
|
71882
73420
|
key: 4,
|
|
71883
73421
|
id: "generatedCode",
|
|
@@ -71886,13 +73424,15 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
71886
73424
|
"initial-position": "right",
|
|
71887
73425
|
"allow-free-move": true,
|
|
71888
73426
|
"allow-full-screen": true,
|
|
71889
|
-
"on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false)
|
|
73427
|
+
"on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false),
|
|
73428
|
+
"prevent-overlap": false
|
|
71890
73429
|
}, {
|
|
71891
73430
|
default: withCtx(() => [
|
|
71892
73431
|
createVNode(CodeGenerator)
|
|
71893
73432
|
]),
|
|
71894
73433
|
_: 1
|
|
71895
|
-
}, 8, ["on-minize"])) : createCommentVNode("", true)
|
|
73434
|
+
}, 8, ["on-minize"])) : createCommentVNode("", true),
|
|
73435
|
+
createVNode(layoutControls, { onResetLayoutGraph: handleResetLayoutGraph })
|
|
71896
73436
|
]);
|
|
71897
73437
|
};
|
|
71898
73438
|
}
|
|
@@ -71952,6 +73492,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
71952
73492
|
}
|
|
71953
73493
|
};
|
|
71954
73494
|
const handleSaveFlow = async (flowPath) => {
|
|
73495
|
+
console.log("Saving flow to path:", flowPath);
|
|
71955
73496
|
try {
|
|
71956
73497
|
await saveFlow(props2.flowId, flowPath);
|
|
71957
73498
|
isVisible2.value = false;
|
|
@@ -71984,12 +73525,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
71984
73525
|
createVNode(FileBrowser, {
|
|
71985
73526
|
ref_key: "fileBrowserRef",
|
|
71986
73527
|
ref: fileBrowserRef,
|
|
71987
|
-
"allowed-file-types":
|
|
73528
|
+
"allowed-file-types": unref(ALLOWED_SAVE_EXTENSIONS),
|
|
71988
73529
|
mode: "create",
|
|
71989
73530
|
"initial-file-path": initialPath.value,
|
|
71990
73531
|
onCreateFile: handleSaveFlow,
|
|
71991
73532
|
onOverwriteFile: handleSaveFlow
|
|
71992
|
-
}, null, 8, ["initial-file-path"])
|
|
73533
|
+
}, null, 8, ["allowed-file-types", "initial-file-path"])
|
|
71993
73534
|
]),
|
|
71994
73535
|
_: 1
|
|
71995
73536
|
}, 8, ["modelValue"]);
|
|
@@ -72261,18 +73802,20 @@ const _hoisted_1 = {
|
|
|
72261
73802
|
key: 0,
|
|
72262
73803
|
class: "header"
|
|
72263
73804
|
};
|
|
72264
|
-
const _hoisted_2 = { class: "
|
|
72265
|
-
const _hoisted_3 = { class: "
|
|
72266
|
-
const _hoisted_4 = { class: "
|
|
72267
|
-
const _hoisted_5 = {
|
|
73805
|
+
const _hoisted_2 = { class: "header-top" };
|
|
73806
|
+
const _hoisted_3 = { class: "left-section" };
|
|
73807
|
+
const _hoisted_4 = { class: "header-bottom" };
|
|
73808
|
+
const _hoisted_5 = { class: "middle-section" };
|
|
73809
|
+
const _hoisted_6 = { class: "right-section" };
|
|
73810
|
+
const _hoisted_7 = {
|
|
72268
73811
|
key: 1,
|
|
72269
73812
|
class: "loading-state"
|
|
72270
73813
|
};
|
|
72271
|
-
const
|
|
73814
|
+
const _hoisted_8 = {
|
|
72272
73815
|
key: 2,
|
|
72273
73816
|
class: "empty-state"
|
|
72274
73817
|
};
|
|
72275
|
-
const
|
|
73818
|
+
const _hoisted_9 = { class: "empty-state-content" };
|
|
72276
73819
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
72277
73820
|
__name: "designer",
|
|
72278
73821
|
setup(__props) {
|
|
@@ -72386,6 +73929,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72386
73929
|
headerButtons.value.openOpenDialog();
|
|
72387
73930
|
}
|
|
72388
73931
|
};
|
|
73932
|
+
const openQuickCreateDialog = () => {
|
|
73933
|
+
if (headerButtons.value) {
|
|
73934
|
+
console.log("Opening quick create dialog");
|
|
73935
|
+
headerButtons.value.handleQuickCreateAction();
|
|
73936
|
+
}
|
|
73937
|
+
};
|
|
72389
73938
|
const initialSetup = async () => {
|
|
72390
73939
|
if (initialLoadComplete.value) {
|
|
72391
73940
|
console.log("Initial setup already completed");
|
|
@@ -72431,34 +73980,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72431
73980
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
72432
73981
|
!isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
72433
73982
|
createBaseVNode("div", _hoisted_2, [
|
|
72434
|
-
|
|
72435
|
-
|
|
72436
|
-
|
|
72437
|
-
|
|
72438
|
-
|
|
72439
|
-
|
|
72440
|
-
|
|
72441
|
-
|
|
72442
|
-
createVNode(FlowSelector, {
|
|
72443
|
-
ref_key: "flowSelector",
|
|
72444
|
-
ref: flowSelector,
|
|
72445
|
-
onFlowChanged: handleFlowChange,
|
|
72446
|
-
onCloseTab: handleCloseFlow
|
|
72447
|
-
}, null, 512)
|
|
73983
|
+
createBaseVNode("div", _hoisted_3, [
|
|
73984
|
+
createVNode(HeaderButtons, {
|
|
73985
|
+
ref_key: "headerButtons",
|
|
73986
|
+
ref: headerButtons,
|
|
73987
|
+
onOpenFlow: openFlow,
|
|
73988
|
+
onRefreshFlow: refreshFlow
|
|
73989
|
+
}, null, 512)
|
|
73990
|
+
])
|
|
72448
73991
|
]),
|
|
72449
73992
|
createBaseVNode("div", _hoisted_4, [
|
|
72450
|
-
|
|
73993
|
+
createBaseVNode("div", _hoisted_5, [
|
|
73994
|
+
createVNode(FlowSelector, {
|
|
73995
|
+
ref_key: "flowSelector",
|
|
73996
|
+
ref: flowSelector,
|
|
73997
|
+
onFlowChanged: handleFlowChange,
|
|
73998
|
+
onCloseTab: handleCloseFlow
|
|
73999
|
+
}, null, 512)
|
|
74000
|
+
]),
|
|
74001
|
+
createBaseVNode("div", _hoisted_6, [
|
|
74002
|
+
createVNode(Status)
|
|
74003
|
+
])
|
|
72451
74004
|
])
|
|
72452
74005
|
])) : createCommentVNode("", true),
|
|
72453
|
-
isLoading.value ? (openBlock(), createElementBlock("div",
|
|
74006
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_7, _cache[2] || (_cache[2] = [
|
|
72454
74007
|
createBaseVNode("div", { class: "loading-state-content" }, [
|
|
72455
74008
|
createBaseVNode("p", null, "Loading flows...")
|
|
72456
74009
|
], -1)
|
|
72457
|
-
]))) : !isLoading.value && flowsActive.value.length === 0 ? (openBlock(), createElementBlock("div",
|
|
72458
|
-
createBaseVNode("div",
|
|
72459
|
-
_cache[
|
|
72460
|
-
_cache[
|
|
72461
|
-
_cache[
|
|
74010
|
+
]))) : !isLoading.value && flowsActive.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
74011
|
+
createBaseVNode("div", _hoisted_9, [
|
|
74012
|
+
_cache[6] || (_cache[6] = createBaseVNode("span", { class: "material-icons empty-icon" }, "account_tree", -1)),
|
|
74013
|
+
_cache[7] || (_cache[7] = createBaseVNode("h2", null, "No Active Flows", -1)),
|
|
74014
|
+
_cache[8] || (_cache[8] = createBaseVNode("p", null, "There are currently no active flows in the system.", -1)),
|
|
72462
74015
|
createVNode(_component_el_button, {
|
|
72463
74016
|
type: "primary",
|
|
72464
74017
|
class: "action-button",
|
|
@@ -72482,6 +74035,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72482
74035
|
])),
|
|
72483
74036
|
_: 1,
|
|
72484
74037
|
__: [4]
|
|
74038
|
+
}),
|
|
74039
|
+
createVNode(_component_el_button, {
|
|
74040
|
+
type: "primary",
|
|
74041
|
+
class: "action-button",
|
|
74042
|
+
onClick: openQuickCreateDialog
|
|
74043
|
+
}, {
|
|
74044
|
+
default: withCtx(() => _cache[5] || (_cache[5] = [
|
|
74045
|
+
createBaseVNode("span", { class: "material-icons" }, "folder_open", -1),
|
|
74046
|
+
createTextVNode(" Quick create ")
|
|
74047
|
+
])),
|
|
74048
|
+
_: 1,
|
|
74049
|
+
__: [5]
|
|
72485
74050
|
})
|
|
72486
74051
|
])
|
|
72487
74052
|
])) : (openBlock(), createBlock(_sfc_main$4, {
|
|
@@ -72502,8 +74067,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72502
74067
|
};
|
|
72503
74068
|
}
|
|
72504
74069
|
});
|
|
72505
|
-
const
|
|
72506
|
-
const designer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
74070
|
+
const designer_vue_vue_type_style_index_0_scoped_24dbaac4_lang = "";
|
|
74071
|
+
const designer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-24dbaac4"]]);
|
|
72507
74072
|
const designer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
72508
74073
|
__proto__: null,
|
|
72509
74074
|
default: designer
|
|
@@ -72511,7 +74076,6 @@ const designer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
|
|
|
72511
74076
|
export {
|
|
72512
74077
|
FileBrowser as F,
|
|
72513
74078
|
designer$1 as d,
|
|
72514
|
-
getImageUrl as g,
|
|
72515
74079
|
info_filled_default as i,
|
|
72516
74080
|
oneDark as o,
|
|
72517
74081
|
python as p,
|