Flowfile 0.3.9__py3-none-any.whl → 0.3.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Flowfile might be problematic. Click here for more details.

Files changed (138) hide show
  1. flowfile/__init__.py +1 -1
  2. flowfile/api.py +0 -1
  3. flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-d7c2c028.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-d467329f.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-071b8b00.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ContextMenu-2dea5e27.js +41 -0
  8. flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
  9. flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
  10. flowfile/web/static/assets/ContextMenu-785554c4.js +41 -0
  11. flowfile/web/static/assets/ContextMenu-a51e19ea.js +41 -0
  12. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  13. flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
  14. flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-cf68ec7a.js} +14 -84
  15. flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-435c5dd8.js} +3 -3
  16. flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-349e33a8.js} +2 -2
  17. flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-8075bd28.js} +14 -114
  18. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  19. flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-3e2dda89.js} +13 -74
  20. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  21. flowfile/web/static/assets/ExploreData-76ec698c.js +192 -0
  22. flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-609a265c.js} +8 -79
  23. flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-97cff793.js} +12 -85
  24. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  25. flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-09de0ec9.js} +18 -85
  26. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  27. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  28. flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-bdf70248.js} +16 -87
  29. flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-0b5a0e05.js} +13 -159
  30. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  31. flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
  32. flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-eaddadde.js} +12 -75
  33. flowfile/web/static/assets/{Join-5a78a203.js → Join-3313371b.js} +15 -85
  34. flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
  35. flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
  36. flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-e8bfc0be.js} +11 -82
  37. flowfile/web/static/assets/{Output-411ecaee.js → Output-7303bb09.js} +13 -243
  38. flowfile/web/static/assets/Output-ddc9079f.css +37 -0
  39. flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-3b1c54ef.js} +14 -138
  40. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  41. flowfile/web/static/assets/PivotValidation-3bb36c8f.js +61 -0
  42. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  43. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  44. flowfile/web/static/assets/PivotValidation-eaa819c0.js +61 -0
  45. flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-aa12e25d.js} +13 -80
  46. flowfile/web/static/assets/Read-6b17491f.css +62 -0
  47. flowfile/web/static/assets/Read-a2bfc618.js +243 -0
  48. flowfile/web/static/assets/RecordCount-aa0dc082.js +53 -0
  49. flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-48ee1a3b.js} +8 -80
  50. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  51. flowfile/web/static/assets/SQLQueryComponent-e149dbf2.js +38 -0
  52. flowfile/web/static/assets/{Sample-b4a18476.js → Sample-f06cb97a.js} +8 -77
  53. flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-37f34886.js} +2 -2
  54. flowfile/web/static/assets/{Select-727688dc.js → Select-b60e6c47.js} +11 -85
  55. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  56. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  57. flowfile/web/static/assets/SettingsSection-70e5a7b1.js +53 -0
  58. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  59. flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-75b6cf4f.js} +2 -40
  60. flowfile/web/static/assets/SettingsSection-e57a672e.js +45 -0
  61. flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
  62. flowfile/web/static/assets/{Sort-be3339a8.js → Sort-51b1ee4d.js} +12 -97
  63. flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-26835f8f.js} +14 -83
  64. flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
  65. flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-88a4cd0c.js} +2 -2
  66. flowfile/web/static/assets/Union-4d0088eb.js +77 -0
  67. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  68. flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-7d554a62.js} +22 -91
  69. flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
  70. flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
  71. flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-4668595c.js} +12 -166
  72. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  73. flowfile/web/static/assets/UnpivotValidation-d4f0e0e8.js +51 -0
  74. flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-5324d566.js} +4 -264
  75. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  76. flowfile/web/static/assets/{api-cb00cce6.js → api-271ed117.js} +1 -1
  77. flowfile/web/static/assets/{api-023d1733.js → api-31e4fea6.js} +1 -1
  78. flowfile/web/static/assets/{designer-2197d782.css → designer-091bdc3f.css} +819 -184
  79. flowfile/web/static/assets/{designer-6c322d8e.js → designer-bf3d9487.js} +2191 -703
  80. flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-4d0a1cea.js} +1 -1
  81. flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-025888df.js} +1 -1
  82. flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-1df991ec.js} +2 -2
  83. flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-d3b2b2ac.js} +3 -3
  84. flowfile/web/static/assets/{index-683fc198.js → index-d0518598.js} +210 -31
  85. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  86. flowfile/web/static/assets/outputCsv-d8457527.js +86 -0
  87. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  88. flowfile/web/static/assets/outputExcel-be89153e.js +56 -0
  89. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  90. flowfile/web/static/assets/outputParquet-fabb445a.js +31 -0
  91. flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
  92. flowfile/web/static/assets/readCsv-e8359522.js +178 -0
  93. flowfile/web/static/assets/readExcel-dabaf51b.js +203 -0
  94. flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
  95. flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
  96. flowfile/web/static/assets/readParquet-e0771ef2.js +26 -0
  97. flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-ce823eee.js} +1 -1
  98. flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-5476546e.js} +7 -7
  99. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  100. flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-9ed00d50.js} +29 -33
  101. flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-7bca2d9b.js} +1 -1
  102. flowfile/web/static/index.html +1 -1
  103. {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/METADATA +1 -1
  104. {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/RECORD +129 -97
  105. flowfile_core/configs/flow_logger.py +5 -13
  106. flowfile_core/configs/node_store/nodes.py +303 -44
  107. flowfile_core/configs/settings.py +2 -1
  108. flowfile_core/database/connection.py +5 -21
  109. flowfile_core/fileExplorer/funcs.py +239 -121
  110. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +28 -8
  111. flowfile_core/flowfile/flow_graph.py +97 -33
  112. flowfile_core/flowfile/flow_node/flow_node.py +41 -9
  113. flowfile_core/flowfile/handler.py +22 -3
  114. flowfile_core/flowfile/schema_callbacks.py +8 -4
  115. flowfile_core/flowfile/setting_generator/settings.py +0 -1
  116. flowfile_core/main.py +4 -1
  117. flowfile_core/routes/routes.py +59 -10
  118. flowfile_core/schemas/input_schema.py +0 -1
  119. flowfile_core/schemas/output_model.py +5 -2
  120. flowfile_core/schemas/schemas.py +2 -0
  121. flowfile_core/schemas/transform_schema.py +1 -0
  122. flowfile_worker/__init__.py +6 -35
  123. flowfile_worker/main.py +5 -2
  124. flowfile_worker/routes.py +47 -5
  125. shared/__init__.py +15 -0
  126. shared/storage_config.py +243 -0
  127. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  128. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  129. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  130. flowfile/web/static/assets/Read-c3b1929c.js +0 -701
  131. flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
  132. flowfile/web/static/assets/Union-89fd73dc.js +0 -146
  133. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  134. flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
  135. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  136. {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/LICENSE +0 -0
  137. {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/WHEEL +0 -0
  138. {flowfile-0.3.9.dist-info → flowfile-0.3.10.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,192 @@
1
+ import { C as CodeLoader } from "./vue-content-loader.es-7bca2d9b.js";
2
+ import VueGraphicWalker from "./VueGraphicWalker-5324d566.js";
3
+ import { a as axios, d as defineComponent, r as ref, l as computed, c as openBlock, e as createElementBlock, h as createBlock, u as unref, p as createBaseVNode, t as toDisplayString, _ as _export_sfc } from "./index-d0518598.js";
4
+ import { u as useNodeStore } from "./vue-codemirror.esm-9ed00d50.js";
5
+ import { u as useItemStore } from "./designer-bf3d9487.js";
6
+ const fetchGraphicWalkerData = async (flowId, nodeId) => {
7
+ var _a, _b;
8
+ console.log(`[GraphicWalker] Fetching data for flow ${flowId}, node ${nodeId}`);
9
+ try {
10
+ const response = await axios.get("/analysis_data/graphic_walker_input", {
11
+ params: { flow_id: flowId, node_id: nodeId },
12
+ headers: { Accept: "application/json" },
13
+ timeout: 3e4
14
+ // Add timeout
15
+ });
16
+ if (!response.data || !response.data.graphic_walker_input) {
17
+ throw new Error("Invalid response data structure");
18
+ }
19
+ console.log(
20
+ `[GraphicWalker] Data fetched successfully with ${((_b = (_a = response.data.graphic_walker_input.dataModel) == null ? void 0 : _a.data) == null ? void 0 : _b.length) || 0} rows`
21
+ );
22
+ return response.data;
23
+ } catch (error) {
24
+ if (error.response) {
25
+ console.error(`[GraphicWalker] Server error ${error.response.status}:`, error.response.data);
26
+ } else if (error.request) {
27
+ console.error("[GraphicWalker] No response received:", error.request);
28
+ } else {
29
+ console.error("[GraphicWalker] Request error:", error.message);
30
+ }
31
+ throw error;
32
+ }
33
+ };
34
+ const _hoisted_1 = { class: "explore-data-container" };
35
+ const _hoisted_2 = {
36
+ key: 1,
37
+ class: "error-display"
38
+ };
39
+ const _hoisted_3 = {
40
+ key: 2,
41
+ class: "graphic-walker-wrapper"
42
+ };
43
+ const _hoisted_4 = {
44
+ key: 1,
45
+ class: "empty-data-message"
46
+ };
47
+ const _hoisted_5 = {
48
+ key: 3,
49
+ class: "fallback-message"
50
+ };
51
+ const _sfc_main = /* @__PURE__ */ defineComponent({
52
+ __name: "ExploreData",
53
+ setup(__props, { expose: __expose }) {
54
+ const isLoading = ref(false);
55
+ const nodeData = ref(null);
56
+ const chartList = ref([]);
57
+ const data = ref([]);
58
+ const fields = ref([]);
59
+ const errorMessage = ref(null);
60
+ const nodeStore = useNodeStore();
61
+ const globalNodeId = ref(-1);
62
+ const windowStore = useItemStore();
63
+ const vueGraphicWalkerRef = ref(null);
64
+ const canDisplayVisualization = computed(() => !isLoading.value && !errorMessage.value);
65
+ const loadNodeData = async (nodeId) => {
66
+ var _a, _b;
67
+ isLoading.value = true;
68
+ errorMessage.value = null;
69
+ globalNodeId.value = nodeId;
70
+ nodeData.value = null;
71
+ data.value = [];
72
+ fields.value = [];
73
+ chartList.value = [];
74
+ windowStore.setFullScreen("nodeSettings", true);
75
+ try {
76
+ const fetchedNodeData = await fetchGraphicWalkerData(nodeStore.flow_id, nodeId);
77
+ if (!(fetchedNodeData == null ? void 0 : fetchedNodeData.graphic_walker_input))
78
+ throw new Error("Received invalid data structure from backend.");
79
+ nodeData.value = fetchedNodeData;
80
+ const inputData = fetchedNodeData.graphic_walker_input;
81
+ fields.value = ((_a = inputData.dataModel) == null ? void 0 : _a.fields) || [];
82
+ data.value = ((_b = inputData.dataModel) == null ? void 0 : _b.data) || [];
83
+ chartList.value = inputData.specList || [];
84
+ } catch (error) {
85
+ console.error("Error loading GraphicWalker data:", error);
86
+ if (error.response && error.response.status === 422) {
87
+ errorMessage.value = "The analysis flow has not been run yet.";
88
+ } else if (error instanceof Error) {
89
+ errorMessage.value = `Failed to load data: ${error.message}`;
90
+ } else {
91
+ errorMessage.value = "An unknown error occurred while loading data.";
92
+ }
93
+ } finally {
94
+ isLoading.value = false;
95
+ }
96
+ };
97
+ const getCurrentSpec = async () => {
98
+ if (!vueGraphicWalkerRef.value) {
99
+ console.error("Cannot get spec: GraphicWalker component reference is missing.");
100
+ errorMessage.value = "Cannot get spec: Component reference missing.";
101
+ return null;
102
+ }
103
+ try {
104
+ const exportedCharts = await vueGraphicWalkerRef.value.exportCode();
105
+ if (exportedCharts === null) {
106
+ console.error("Failed to export chart specification (method returned null or failed).");
107
+ errorMessage.value = "Failed to retrieve current chart configuration.";
108
+ return null;
109
+ }
110
+ if (exportedCharts.length === 0) {
111
+ console.log("No charts were exported from Graphic Walker.");
112
+ return [];
113
+ }
114
+ return exportedCharts;
115
+ } catch (error) {
116
+ console.error("Error calling getCurrentSpec or processing result:", error);
117
+ errorMessage.value = `Failed to process configuration: ${error.message || "Unknown error"}`;
118
+ return null;
119
+ }
120
+ };
121
+ const saveSpecToNodeStore = async (specsToSave) => {
122
+ if (!nodeData.value) {
123
+ console.error("Cannot save: Original node data context is missing.");
124
+ errorMessage.value = "Cannot save: Missing original node data.";
125
+ return false;
126
+ }
127
+ try {
128
+ const saveData = {
129
+ ...nodeData.value,
130
+ graphic_walker_input: {
131
+ ...nodeData.value.graphic_walker_input,
132
+ specList: specsToSave,
133
+ dataModel: { data: [], fields: [] }
134
+ }
135
+ };
136
+ await nodeStore.updateSettingsDirectly(saveData);
137
+ console.log("Node settings updated successfully.");
138
+ return true;
139
+ } catch (error) {
140
+ console.error("Error saving spec to node store:", error);
141
+ errorMessage.value = `Failed to save configuration: ${error.message || "Unknown error"}`;
142
+ return false;
143
+ }
144
+ };
145
+ const pushNodeData = async () => {
146
+ errorMessage.value = null;
147
+ windowStore.setFullScreen("nodeSettings", false);
148
+ const currentSpec = await getCurrentSpec();
149
+ if (currentSpec === null) {
150
+ console.log("Spec retrieval failed, skipping save.");
151
+ return;
152
+ }
153
+ if (currentSpec.length === 0) {
154
+ console.log("No chart configurations exported, skipping save.");
155
+ return;
156
+ }
157
+ const saveSuccess = await saveSpecToNodeStore(currentSpec);
158
+ if (saveSuccess) {
159
+ console.log("Save process completed successfully.");
160
+ } else {
161
+ console.log("Save process failed.");
162
+ }
163
+ };
164
+ __expose({
165
+ loadNodeData,
166
+ pushNodeData
167
+ // Expose the main save action
168
+ });
169
+ return (_ctx, _cache) => {
170
+ return openBlock(), createElementBlock("div", _hoisted_1, [
171
+ isLoading.value ? (openBlock(), createBlock(unref(CodeLoader), { key: 0 })) : errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
172
+ createBaseVNode("p", null, "⚠️ Error: " + toDisplayString(errorMessage.value), 1)
173
+ ])) : canDisplayVisualization.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
174
+ data.value.length > 0 && fields.value.length > 0 ? (openBlock(), createBlock(VueGraphicWalker, {
175
+ key: 0,
176
+ ref_key: "vueGraphicWalkerRef",
177
+ ref: vueGraphicWalkerRef,
178
+ appearance: "light",
179
+ data: data.value,
180
+ fields: fields.value,
181
+ "spec-list": chartList.value
182
+ }, null, 8, ["data", "fields", "spec-list"])) : (openBlock(), createElementBlock("div", _hoisted_4, " Data loaded, but the dataset appears to be empty or lacks defined fields. "))
183
+ ])) : (openBlock(), createElementBlock("div", _hoisted_5, "Please load data for the node."))
184
+ ]);
185
+ };
186
+ }
187
+ });
188
+ const ExploreData_vue_vue_type_style_index_0_scoped_1a3f5721_lang = "";
189
+ const ExploreData = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1a3f5721"]]);
190
+ export {
191
+ ExploreData as default
192
+ };
@@ -1,9 +1,8 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
3
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
4
- import { d as defineComponent, r as ref, a3 as watchEffect, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, i as createCommentVNode, h as createBlock, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-683fc198.js";
5
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
6
- import "./designer-6c322d8e.js";
1
+ import { C as CodeLoader } from "./vue-content-loader.es-7bca2d9b.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-9ed00d50.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-d3b2b2ac.js";
4
+ import { d as defineComponent, r as ref, a3 as watchEffect, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, i as createCommentVNode, h as createBlock, u as unref, _ as _export_sfc } from "./index-d0518598.js";
5
+ import "./designer-bf3d9487.js";
7
6
  function get_template_source_type(type, options) {
8
7
  switch (type) {
9
8
  case "SAMPLE_USERS":
@@ -31,7 +30,7 @@ const _hoisted_3 = {
31
30
  key: 0,
32
31
  class: "file-upload-wrapper"
33
32
  };
34
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
33
+ const _sfc_main = /* @__PURE__ */ defineComponent({
35
34
  __name: "ExternalSource",
36
35
  setup(__props, { expose: __expose }) {
37
36
  const nodeStore = useNodeStore();
@@ -136,77 +135,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
136
135
  }
137
136
  });
138
137
  const ExternalSource_vue_vue_type_style_index_0_scoped_62f1d8e0_lang = "";
139
- const externalSource = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-62f1d8e0"]]);
140
- const _sfc_main = /* @__PURE__ */ defineComponent({
141
- __name: "ExternalSource",
142
- props: {
143
- nodeId: {
144
- type: Number,
145
- required: true
146
- }
147
- },
148
- setup(__props) {
149
- const nodeStore = useNodeStore();
150
- const childComp = ref(null);
151
- const props = __props;
152
- const el = ref(null);
153
- const drawer = ref(false);
154
- const closeOnDrawer = () => {
155
- var _a;
156
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
157
- drawer.value = false;
158
- nodeStore.isDrawerOpen = false;
159
- };
160
- const openDrawer = async () => {
161
- if (nodeStore.node_id === props.nodeId) {
162
- return;
163
- }
164
- nodeStore.closeDrawer();
165
- drawer.value = true;
166
- const drawerOpen = nodeStore.isDrawerOpen;
167
- nodeStore.isDrawerOpen = true;
168
- await nextTick();
169
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
170
- return;
171
- }
172
- if (childComp.value) {
173
- childComp.value.loadNodeData(props.nodeId);
174
- nodeStore.openDrawer(closeOnDrawer);
175
- }
176
- };
177
- onMounted(async () => {
178
- await nextTick();
179
- });
180
- return (_ctx, _cache) => {
181
- return openBlock(), createElementBlock("div", {
182
- ref_key: "el",
183
- ref: el
184
- }, [
185
- createVNode(NodeButton, {
186
- ref: "nodeButton",
187
- "node-id": __props.nodeId,
188
- "image-src": "external_source.png",
189
- title: `${__props.nodeId}: External source`,
190
- onClick: openDrawer
191
- }, null, 8, ["node-id", "title"]),
192
- drawer.value ? (openBlock(), createBlock(Teleport, {
193
- key: 0,
194
- to: "#nodesettings"
195
- }, [
196
- createVNode(NodeTitle, {
197
- title: "External source",
198
- intro: "Import data from an external source"
199
- }),
200
- createVNode(externalSource, {
201
- ref_key: "childComp",
202
- ref: childComp,
203
- "node-id": __props.nodeId
204
- }, null, 8, ["node-id"])
205
- ])) : createCommentVNode("", true)
206
- ], 512);
207
- };
208
- }
209
- });
138
+ const ExternalSource = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-62f1d8e0"]]);
210
139
  export {
211
- _sfc_main as default
140
+ ExternalSource as default
212
141
  };
@@ -1,11 +1,10 @@
1
- import { d as defineComponent, r as ref, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, u as unref, a5 as withDirectives, a6 as vModelText, h as createBlock, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-683fc198.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
3
- import { C as ColumnSelector } from "./dropDown-0b46dd77.js";
4
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
5
- import mainEditorRef from "./fullEditor-ec4e4f95.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
8
- import "./designer-6c322d8e.js";
1
+ import { d as defineComponent, r as ref, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, u as unref, a8 as withDirectives, a9 as vModelText, h as createBlock, _ as _export_sfc } from "./index-d0518598.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-7bca2d9b.js";
3
+ import { C as ColumnSelector } from "./dropDown-025888df.js";
4
+ import { u as useNodeStore } from "./vue-codemirror.esm-9ed00d50.js";
5
+ import mainEditorRef from "./fullEditor-1df991ec.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-d3b2b2ac.js";
7
+ import "./designer-bf3d9487.js";
9
8
  const _hoisted_1 = { key: 0 };
10
9
  const _hoisted_2 = { class: "listbox-wrapper" };
11
10
  const _hoisted_3 = { style: { "border-radius": "20px" } };
@@ -15,8 +14,8 @@ const _hoisted_6 = { class: "selectors-row" };
15
14
  const _hoisted_7 = { key: 0 };
16
15
  const _hoisted_8 = { key: 1 };
17
16
  const _hoisted_9 = { key: 2 };
18
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
19
- __name: "filter",
17
+ const _sfc_main = /* @__PURE__ */ defineComponent({
18
+ __name: "Filter",
20
19
  setup(__props, { expose: __expose }) {
21
20
  const editorString = ref("");
22
21
  const isLoaded = ref(false);
@@ -88,8 +87,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
88
87
  }
89
88
  nodeStore.updateSettings(nodeFilter);
90
89
  }
91
- isLoaded.value = false;
92
- nodeStore.isDrawerOpen = false;
93
90
  };
94
91
  __expose({ loadNodeData, pushNodeData });
95
92
  return (_ctx, _cache) => {
@@ -160,78 +157,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
160
157
  };
161
158
  }
162
159
  });
163
- const filter_vue_vue_type_style_index_0_scoped_84dc735d_lang = "";
164
- const filterInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-84dc735d"]]);
165
- const _sfc_main = /* @__PURE__ */ defineComponent({
166
- __name: "Filter",
167
- props: {
168
- nodeId: {
169
- type: Number,
170
- required: true
171
- }
172
- },
173
- setup(__props) {
174
- const nodeStore = useNodeStore();
175
- const childComp = ref(null);
176
- const props = __props;
177
- const el = ref(null);
178
- const drawer = ref(false);
179
- const closeOnDrawer = () => {
180
- var _a;
181
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
182
- drawer.value = false;
183
- nodeStore.isDrawerOpen = false;
184
- };
185
- const openDrawer = async () => {
186
- if (nodeStore.node_id === props.nodeId) {
187
- return;
188
- }
189
- nodeStore.closeDrawer();
190
- drawer.value = true;
191
- const drawerOpen = nodeStore.isDrawerOpen;
192
- nodeStore.isDrawerOpen = true;
193
- await nextTick();
194
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
195
- return;
196
- }
197
- if (childComp.value) {
198
- childComp.value.loadNodeData(props.nodeId);
199
- nodeStore.openDrawer(closeOnDrawer);
200
- }
201
- };
202
- onMounted(async () => {
203
- await nextTick();
204
- });
205
- return (_ctx, _cache) => {
206
- return openBlock(), createElementBlock("div", {
207
- ref_key: "el",
208
- ref: el
209
- }, [
210
- createVNode(NodeButton, {
211
- ref: "nodeButton",
212
- "node-id": __props.nodeId,
213
- "image-src": "filter.png",
214
- title: `${__props.nodeId}: Filter`,
215
- onClick: openDrawer
216
- }, null, 8, ["node-id", "title"]),
217
- drawer.value ? (openBlock(), createBlock(Teleport, {
218
- key: 0,
219
- to: "#nodesettings"
220
- }, [
221
- createVNode(NodeTitle, {
222
- title: "Filter data",
223
- intro: "Filter rows in the data"
224
- }),
225
- createVNode(filterInput, {
226
- ref_key: "childComp",
227
- ref: childComp,
228
- "node-id": __props.nodeId
229
- }, null, 8, ["node-id"])
230
- ])) : createCommentVNode("", true)
231
- ], 512);
232
- };
233
- }
234
- });
160
+ const Filter_vue_vue_type_style_index_0_scoped_08e238c3_lang = "";
161
+ const Filter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-08e238c3"]]);
235
162
  export {
236
- _sfc_main as default
163
+ Filter as default
237
164
  };
@@ -1,7 +1,7 @@
1
- .x-flip[data-v-84dc735d] {
1
+ .x-flip[data-v-08e238c3] {
2
2
  transform: scaleX(-100%);
3
3
  }
4
- .input-field[data-v-84dc735d] {
4
+ .input-field[data-v-08e238c3] {
5
5
  width: 100%; /* Full width to fit container */
6
6
  padding: 6px 10px; /* Reduced padding */
7
7
  font-size: 14px; /* Smaller font size */
@@ -12,7 +12,7 @@
12
12
  outline: none; /* Remove the default focus outline */
13
13
  transition: border-color 0.2s, box-shadow 0.2s; /* Smooth transition for focus */
14
14
  }
15
- .selectors-row[data-v-84dc735d] {
15
+ .selectors-row[data-v-08e238c3] {
16
16
  display: flex;
17
17
  justify-content: space-between;
18
18
  margin-bottom: 20px; /* Spacing between rows */
@@ -1,17 +1,16 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
3
- import mainEditorRef from "./fullEditor-ec4e4f95.js";
4
- import { C as ColumnSelector } from "./dropDown-0b46dd77.js";
5
- import { d as defineComponent, r as ref, m as watch, c as openBlock, e as createElementBlock, t as toDisplayString, i as createCommentVNode, p as createBaseVNode, f as createVNode, _ as _export_sfc, w as withCtx, u as unref, h as createBlock, n as onMounted, R as nextTick, a7 as Teleport } from "./index-683fc198.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
8
- import "./designer-6c322d8e.js";
9
- const _hoisted_1$2 = {
1
+ import { C as CodeLoader } from "./vue-content-loader.es-7bca2d9b.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-9ed00d50.js";
3
+ import mainEditorRef from "./fullEditor-1df991ec.js";
4
+ import { C as ColumnSelector } from "./dropDown-025888df.js";
5
+ import { d as defineComponent, r as ref, m as watch, c as openBlock, e as createElementBlock, t as toDisplayString, i as createCommentVNode, p as createBaseVNode, f as createVNode, _ as _export_sfc, w as withCtx, u as unref, h as createBlock } from "./index-d0518598.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-d3b2b2ac.js";
7
+ import "./designer-bf3d9487.js";
8
+ const _hoisted_1$1 = {
10
9
  key: 0,
11
10
  class: "label"
12
11
  };
13
12
  const _hoisted_2$1 = { class: "select-wrapper" };
14
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
13
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
15
14
  __name: "dropDownGeneric",
16
15
  props: {
17
16
  modelValue: {
@@ -56,7 +55,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
56
55
  });
57
56
  return (_ctx, _cache) => {
58
57
  return openBlock(), createElementBlock("div", null, [
59
- __props.title !== "" ? (openBlock(), createElementBlock("p", _hoisted_1$2, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
58
+ __props.title !== "" ? (openBlock(), createElementBlock("p", _hoisted_1$1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
60
59
  createBaseVNode("div", _hoisted_2$1, [
61
60
  createVNode(ColumnSelector, {
62
61
  modelValue: localSelectedValue.value,
@@ -72,7 +71,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
72
71
  }
73
72
  });
74
73
  const dropDownGeneric_vue_vue_type_style_index_0_scoped_f2958f57_lang = "";
75
- const DropDownGeneric = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f2958f57"]]);
74
+ const DropDownGeneric = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-f2958f57"]]);
76
75
  const createFormulaInput = (field_name = "", data_type = "String", function_def = "") => {
77
76
  const fieldInput = {
78
77
  name: field_name,
@@ -96,7 +95,7 @@ const createFormulaNode = (flowId = -1, nodeId = -1, pos_x = 0, pos_y = 0, field
96
95
  };
97
96
  return nodeFunction;
98
97
  };
99
- const _hoisted_1$1 = {
98
+ const _hoisted_1 = {
100
99
  key: 0,
101
100
  class: "listbox-wrapper"
102
101
  };
@@ -105,8 +104,8 @@ const _hoisted_3 = {
105
104
  key: 0,
106
105
  class: "selector-container"
107
106
  };
108
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
109
- __name: "formula",
107
+ const _sfc_main = /* @__PURE__ */ defineComponent({
108
+ __name: "Formula",
110
109
  setup(__props, { expose: __expose }) {
111
110
  const showEditor = ref(false);
112
111
  const nodeStore = useNodeStore();
@@ -148,7 +147,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
148
147
  };
149
148
  __expose({ loadNodeData, pushNodeData });
150
149
  return (_ctx, _cache) => {
151
- return dataLoaded.value && nodeFormula.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
150
+ return dataLoaded.value && nodeFormula.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
152
151
  createVNode(GenericNodeSettings, {
153
152
  modelValue: nodeFormula.value,
154
153
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeFormula.value = $event)
@@ -189,74 +188,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
189
188
  };
190
189
  }
191
190
  });
192
- const formula_vue_vue_type_style_index_0_scoped_710d5b5e_lang = "";
193
- const editorInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-710d5b5e"]]);
194
- const _hoisted_1 = { ref: "el" };
195
- const _sfc_main = /* @__PURE__ */ defineComponent({
196
- __name: "Formula",
197
- props: {
198
- nodeId: {
199
- type: Number,
200
- required: true
201
- }
202
- },
203
- setup(__props) {
204
- const nodeStore = useNodeStore();
205
- const childComp = ref(null);
206
- const drawer = ref(false);
207
- const props = __props;
208
- const closeOnDrawer = () => {
209
- var _a;
210
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
211
- drawer.value = false;
212
- nodeStore.isDrawerOpen = false;
213
- };
214
- const openDrawer = async () => {
215
- if (nodeStore.node_id === props.nodeId) {
216
- return;
217
- }
218
- nodeStore.closeDrawer();
219
- drawer.value = true;
220
- const drawerOpen = nodeStore.isDrawerOpen;
221
- nodeStore.isDrawerOpen = true;
222
- await nextTick();
223
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
224
- return;
225
- }
226
- if (childComp.value) {
227
- childComp.value.loadNodeData(props.nodeId);
228
- nodeStore.openDrawer(closeOnDrawer);
229
- }
230
- };
231
- onMounted(async () => {
232
- await nextTick();
233
- });
234
- return (_ctx, _cache) => {
235
- return openBlock(), createElementBlock("div", _hoisted_1, [
236
- createVNode(NodeButton, {
237
- ref: "nodeButton",
238
- "node-id": __props.nodeId,
239
- "image-src": "formula.png",
240
- title: `${__props.nodeId}: Formula`,
241
- onClick: openDrawer
242
- }, null, 8, ["node-id", "title"]),
243
- drawer.value ? (openBlock(), createBlock(Teleport, {
244
- key: 0,
245
- to: "#nodesettings"
246
- }, [
247
- createVNode(NodeTitle, {
248
- title: "Formula",
249
- intro: "Create a new column with a formula"
250
- }),
251
- createVNode(editorInput, {
252
- ref_key: "childComp",
253
- ref: childComp
254
- }, null, 512)
255
- ])) : createCommentVNode("", true)
256
- ], 512);
257
- };
258
- }
259
- });
191
+ const Formula_vue_vue_type_style_index_0_scoped_eac276b3_lang = "";
192
+ const Formula = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-eac276b3"]]);
260
193
  export {
261
- _sfc_main as default
194
+ Formula as default
262
195
  };
@@ -8,18 +8,18 @@
8
8
  width: 100%;
9
9
  position: relative;
10
10
  }
11
- .x-flip[data-v-710d5b5e] {
11
+ .x-flip[data-v-eac276b3] {
12
12
  transform: scaleX(-1);
13
13
  }
14
- .va-navbar__item[data-v-710d5b5e] {
14
+ .va-navbar__item[data-v-eac276b3] {
15
15
  cursor: pointer;
16
16
  margin-bottom: 20px; /* Added margin for spacing */
17
17
  }
18
- .data-type-select[data-v-710d5b5e] {
18
+ .data-type-select[data-v-eac276b3] {
19
19
  margin-top: 10px;
20
20
  margin-bottom: 20px;
21
21
  }
22
- .selector-container[data-v-710d5b5e] {
22
+ .selector-container[data-v-eac276b3] {
23
23
  display: flex; /* Make children align horizontally */
24
24
  align-items: center; /* Center items vertically */
25
25
  gap: 10px; /* Add space between items */