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.
Files changed (201) hide show
  1. flowfile/__init__.py +8 -1
  2. flowfile/api.py +1 -3
  3. flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-0dfba9f2.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-d5b1b6c9.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-00d87aad.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ColumnSelector-4685e75d.js +83 -0
  8. flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
  9. flowfile/web/static/assets/ContextMenu-23e909da.js +41 -0
  10. flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
  11. flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
  12. flowfile/web/static/assets/ContextMenu-70ae0c79.js +41 -0
  13. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  14. flowfile/web/static/assets/ContextMenu-f149cf7c.js +41 -0
  15. flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
  16. flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-702a3edd.js} +14 -84
  17. flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
  18. flowfile/web/static/assets/CustomNode-b1519993.js +211 -0
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-6f3e4ea5.js} +3 -3
  20. flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-cf5ef661.js} +2 -2
  21. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  22. flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-d38c7295.js} +14 -114
  23. flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-b04ef46a.js} +13 -74
  24. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  25. flowfile/web/static/assets/ExploreData-5fa10ed8.js +192 -0
  26. flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-d39af878.js} +8 -79
  27. flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-9b6d08db.js} +12 -85
  28. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  29. flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-6b04fb1d.js} +20 -87
  30. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  31. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  32. flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-999521f4.js} +16 -87
  33. flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-17dd2198.js} +13 -159
  34. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  35. flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-6b039e18.js} +12 -75
  36. flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
  37. flowfile/web/static/assets/{Join-5a78a203.js → Join-24d0f113.js} +15 -85
  38. flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
  39. flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
  40. flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-34639209.js} +11 -82
  41. flowfile/web/static/assets/MultiSelect-0e8724a3.js +5 -0
  42. flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js +63 -0
  43. flowfile/web/static/assets/NumericInput-3d63a470.js +5 -0
  44. flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js +35 -0
  45. flowfile/web/static/assets/Output-283fe388.css +37 -0
  46. flowfile/web/static/assets/{Output-411ecaee.js → Output-edea9802.js} +62 -273
  47. flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-61d19301.js} +14 -138
  48. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  49. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  50. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  51. flowfile/web/static/assets/PivotValidation-de9f43fe.js +61 -0
  52. flowfile/web/static/assets/PivotValidation-f97fec5b.js +61 -0
  53. flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-bc3c9984.js} +13 -80
  54. flowfile/web/static/assets/Read-64a3f259.js +218 -0
  55. flowfile/web/static/assets/Read-e808b239.css +62 -0
  56. flowfile/web/static/assets/RecordCount-3d5039be.js +53 -0
  57. flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-597510e0.js} +8 -80
  58. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  59. flowfile/web/static/assets/SQLQueryComponent-df51adbe.js +38 -0
  60. flowfile/web/static/assets/{Sample-b4a18476.js → Sample-4be0a507.js} +8 -77
  61. flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-4839be57.js} +2 -2
  62. flowfile/web/static/assets/{Select-727688dc.js → Select-9b72f201.js} +11 -85
  63. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  64. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  65. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  66. flowfile/web/static/assets/SettingsSection-7ded385d.js +45 -0
  67. flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-e1e9c953.js} +2 -40
  68. flowfile/web/static/assets/SettingsSection-f0f75a42.js +53 -0
  69. flowfile/web/static/assets/SingleSelect-6c777aac.js +5 -0
  70. flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js +62 -0
  71. flowfile/web/static/assets/SliderInput-7cb93e62.js +40 -0
  72. flowfile/web/static/assets/SliderInput-b8fb6a8c.css +4 -0
  73. flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
  74. flowfile/web/static/assets/{Sort-be3339a8.js → Sort-6cbde21a.js} +12 -97
  75. flowfile/web/static/assets/TextInput-d9a40c11.js +5 -0
  76. flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-5896c375.js +32 -0
  77. flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
  78. flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-c4fcbf4d.js} +14 -83
  79. flowfile/web/static/assets/ToggleSwitch-4ef91d19.js +5 -0
  80. flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js +31 -0
  81. flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-a03f512c.js} +2 -2
  82. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  83. flowfile/web/static/assets/Union-bfe9b996.js +77 -0
  84. flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-5d023a27.js} +23 -104
  85. flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
  86. flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
  87. flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-91cc5354.js} +12 -166
  88. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  89. flowfile/web/static/assets/UnpivotValidation-7ee2de44.js +51 -0
  90. flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-e51b9924.js} +4 -264
  91. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  92. flowfile/web/static/assets/{api-cb00cce6.js → api-c1bad5ca.js} +1 -1
  93. flowfile/web/static/assets/{api-023d1733.js → api-cf1221f0.js} +1 -1
  94. flowfile/web/static/assets/{designer-2197d782.css → designer-8da3ba3a.css} +859 -201
  95. flowfile/web/static/assets/{designer-6c322d8e.js → designer-9633482a.js} +2297 -733
  96. flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-ca400224.js} +1 -1
  97. flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-614b998d.js} +1 -1
  98. flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-f7971590.js} +2 -2
  99. flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-4fe5f36b.js} +3 -3
  100. flowfile/web/static/assets/{index-681a3ed0.css → index-50508d4d.css} +8 -0
  101. flowfile/web/static/assets/{index-683fc198.js → index-5429bbf8.js} +208 -31
  102. flowfile/web/static/assets/nodeInput-5d0d6b79.js +41 -0
  103. flowfile/web/static/assets/outputCsv-076b85ab.js +86 -0
  104. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  105. flowfile/web/static/assets/outputExcel-0fd17dbe.js +56 -0
  106. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  107. flowfile/web/static/assets/outputParquet-b61e0847.js +31 -0
  108. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  109. flowfile/web/static/assets/readCsv-a8bb8b61.js +179 -0
  110. flowfile/web/static/assets/readCsv-c767cb37.css +52 -0
  111. flowfile/web/static/assets/readExcel-67b4aee0.js +201 -0
  112. flowfile/web/static/assets/readExcel-806d2826.css +64 -0
  113. flowfile/web/static/assets/readParquet-48c81530.css +19 -0
  114. flowfile/web/static/assets/readParquet-92ce1dbc.js +23 -0
  115. flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-68435402.js} +1 -1
  116. flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-92e25ee3.js} +7 -7
  117. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  118. flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
  119. flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-41b0e0d7.js} +65 -36
  120. flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-2c8e608f.js} +1 -1
  121. flowfile/web/static/index.html +2 -2
  122. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/METADATA +5 -3
  123. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/RECORD +191 -121
  124. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/WHEEL +1 -1
  125. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/entry_points.txt +1 -0
  126. flowfile_core/__init__.py +3 -0
  127. flowfile_core/configs/flow_logger.py +5 -13
  128. flowfile_core/configs/node_store/__init__.py +30 -0
  129. flowfile_core/configs/node_store/nodes.py +383 -99
  130. flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
  131. flowfile_core/configs/settings.py +2 -1
  132. flowfile_core/database/connection.py +5 -21
  133. flowfile_core/fileExplorer/funcs.py +239 -121
  134. flowfile_core/flowfile/analytics/analytics_processor.py +1 -0
  135. flowfile_core/flowfile/code_generator/code_generator.py +62 -64
  136. flowfile_core/flowfile/flow_data_engine/create/funcs.py +73 -56
  137. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +77 -86
  138. flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
  139. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
  140. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
  141. flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +23 -23
  142. flowfile_core/flowfile/flow_data_engine/join/utils.py +1 -1
  143. flowfile_core/flowfile/flow_data_engine/join/verify_integrity.py +9 -4
  144. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +212 -86
  145. flowfile_core/flowfile/flow_data_engine/utils.py +2 -0
  146. flowfile_core/flowfile/flow_graph.py +240 -54
  147. flowfile_core/flowfile/flow_node/flow_node.py +48 -13
  148. flowfile_core/flowfile/flow_node/models.py +2 -1
  149. flowfile_core/flowfile/handler.py +24 -5
  150. flowfile_core/flowfile/manage/compatibility_enhancements.py +404 -41
  151. flowfile_core/flowfile/manage/io_flowfile.py +394 -0
  152. flowfile_core/flowfile/node_designer/__init__.py +47 -0
  153. flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
  154. flowfile_core/flowfile/node_designer/custom_node.py +371 -0
  155. flowfile_core/flowfile/node_designer/ui_components.py +277 -0
  156. flowfile_core/flowfile/schema_callbacks.py +17 -10
  157. flowfile_core/flowfile/setting_generator/settings.py +15 -10
  158. flowfile_core/main.py +5 -1
  159. flowfile_core/routes/routes.py +73 -30
  160. flowfile_core/routes/user_defined_components.py +55 -0
  161. flowfile_core/schemas/cloud_storage_schemas.py +0 -2
  162. flowfile_core/schemas/input_schema.py +228 -65
  163. flowfile_core/schemas/output_model.py +5 -2
  164. flowfile_core/schemas/schemas.py +153 -35
  165. flowfile_core/schemas/transform_schema.py +1083 -412
  166. flowfile_core/schemas/yaml_types.py +103 -0
  167. flowfile_core/types.py +156 -0
  168. flowfile_core/utils/validate_setup.py +3 -1
  169. flowfile_frame/__init__.py +3 -1
  170. flowfile_frame/flow_frame.py +31 -24
  171. flowfile_frame/flow_frame_methods.py +12 -9
  172. flowfile_worker/__init__.py +9 -35
  173. flowfile_worker/create/__init__.py +3 -21
  174. flowfile_worker/create/funcs.py +68 -56
  175. flowfile_worker/create/models.py +130 -62
  176. flowfile_worker/main.py +5 -2
  177. flowfile_worker/routes.py +52 -13
  178. shared/__init__.py +15 -0
  179. shared/storage_config.py +258 -0
  180. tools/migrate/README.md +56 -0
  181. tools/migrate/__init__.py +12 -0
  182. tools/migrate/__main__.py +131 -0
  183. tools/migrate/legacy_schemas.py +621 -0
  184. tools/migrate/migrate.py +598 -0
  185. tools/migrate/tests/__init__.py +0 -0
  186. tools/migrate/tests/conftest.py +23 -0
  187. tools/migrate/tests/test_migrate.py +627 -0
  188. tools/migrate/tests/test_migration_e2e.py +1010 -0
  189. tools/migrate/tests/test_node_migrations.py +813 -0
  190. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  191. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  192. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  193. flowfile/web/static/assets/Read-c3b1929c.js +0 -701
  194. flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
  195. flowfile/web/static/assets/Union-89fd73dc.js +0 -146
  196. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  197. flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
  198. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  199. flowfile_core/flowfile/manage/open_flowfile.py +0 -135
  200. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info/licenses}/LICENSE +0 -0
  201. /flowfile_core/flowfile/manage/manage_flowfile.py → /tools/__init__.py +0 -0
@@ -1,8 +1,4 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
2
- import { k as getDefaultExportFromCjs, d as defineComponent, r as ref, n as onMounted, o as onUnmounted, c as openBlock, e as createElementBlock, af as toRaw, _ as _export_sfc, a as axios, l as computed, h as createBlock, u as unref, p as createBaseVNode, t as toDisplayString, f as createVNode, a7 as Teleport, i as createCommentVNode, R as nextTick } from "./index-683fc198.js";
3
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
4
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
5
- import { u as useItemStore } from "./designer-6c322d8e.js";
1
+ import { k as getDefaultExportFromCjs, d as defineComponent, r as ref, n as onMounted, o as onUnmounted, c as openBlock, e as createElementBlock, aj as toRaw, _ as _export_sfc } from "./index-5429bbf8.js";
6
2
  function _mergeNamespaces(n10, m10) {
7
3
  for (var i = 0; i < m10.length; i++) {
8
4
  const e19 = m10[i];
@@ -121401,7 +121397,7 @@ Xn((e19) => {
121401
121397
  );
121402
121398
  });
121403
121399
  reactExports.createContext(null);
121404
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
121400
+ const _sfc_main = /* @__PURE__ */ defineComponent({
121405
121401
  __name: "VueGraphicWalker",
121406
121402
  props: {
121407
121403
  data: {},
@@ -121498,263 +121494,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
121498
121494
  }
121499
121495
  });
121500
121496
  const VueGraphicWalker_vue_vue_type_style_index_0_scoped_5af75af4_lang = "";
121501
- const VueGraphicWalker = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-5af75af4"]]);
121502
- const fetchGraphicWalkerData = async (flowId, nodeId) => {
121503
- var _a2, _b2;
121504
- console.log(`[GraphicWalker] Fetching data for flow ${flowId}, node ${nodeId}`);
121505
- try {
121506
- const response = await axios.get("/analysis_data/graphic_walker_input", {
121507
- params: { flow_id: flowId, node_id: nodeId },
121508
- headers: { Accept: "application/json" },
121509
- timeout: 3e4
121510
- // Add timeout
121511
- });
121512
- if (!response.data || !response.data.graphic_walker_input) {
121513
- throw new Error("Invalid response data structure");
121514
- }
121515
- console.log(
121516
- `[GraphicWalker] Data fetched successfully with ${((_b2 = (_a2 = response.data.graphic_walker_input.dataModel) == null ? void 0 : _a2.data) == null ? void 0 : _b2.length) || 0} rows`
121517
- );
121518
- return response.data;
121519
- } catch (error) {
121520
- if (error.response) {
121521
- console.error(`[GraphicWalker] Server error ${error.response.status}:`, error.response.data);
121522
- } else if (error.request) {
121523
- console.error("[GraphicWalker] No response received:", error.request);
121524
- } else {
121525
- console.error("[GraphicWalker] Request error:", error.message);
121526
- }
121527
- throw error;
121528
- }
121529
- };
121530
- const _hoisted_1$1 = { class: "explore-data-container" };
121531
- const _hoisted_2 = {
121532
- key: 1,
121533
- class: "error-display"
121534
- };
121535
- const _hoisted_3 = {
121536
- key: 2,
121537
- class: "graphic-walker-wrapper"
121538
- };
121539
- const _hoisted_4 = {
121540
- key: 1,
121541
- class: "empty-data-message"
121542
- };
121543
- const _hoisted_5 = {
121544
- key: 3,
121545
- class: "fallback-message"
121546
- };
121547
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
121548
- __name: "exploreData",
121549
- setup(__props, { expose: __expose }) {
121550
- const isLoading = ref(false);
121551
- const nodeData = ref(null);
121552
- const chartList = ref([]);
121553
- const data = ref([]);
121554
- const fields = ref([]);
121555
- const errorMessage = ref(null);
121556
- const nodeStore = useNodeStore();
121557
- const globalNodeId = ref(-1);
121558
- const vueGraphicWalkerRef = ref(null);
121559
- const canDisplayVisualization = computed(() => !isLoading.value && !errorMessage.value);
121560
- const loadNodeData = async (nodeId) => {
121561
- var _a2, _b2;
121562
- isLoading.value = true;
121563
- errorMessage.value = null;
121564
- globalNodeId.value = nodeId;
121565
- nodeData.value = null;
121566
- data.value = [];
121567
- fields.value = [];
121568
- chartList.value = [];
121569
- try {
121570
- const fetchedNodeData = await fetchGraphicWalkerData(nodeStore.flow_id, nodeId);
121571
- if (!(fetchedNodeData == null ? void 0 : fetchedNodeData.graphic_walker_input))
121572
- throw new Error("Received invalid data structure from backend.");
121573
- nodeData.value = fetchedNodeData;
121574
- const inputData = fetchedNodeData.graphic_walker_input;
121575
- fields.value = ((_a2 = inputData.dataModel) == null ? void 0 : _a2.fields) || [];
121576
- data.value = ((_b2 = inputData.dataModel) == null ? void 0 : _b2.data) || [];
121577
- chartList.value = inputData.specList || [];
121578
- } catch (error) {
121579
- console.error("Error loading GraphicWalker data:", error);
121580
- if (error.response && error.response.status === 422) {
121581
- errorMessage.value = "The analysis flow has not been run yet.";
121582
- } else if (error instanceof Error) {
121583
- errorMessage.value = `Failed to load data: ${error.message}`;
121584
- } else {
121585
- errorMessage.value = "An unknown error occurred while loading data.";
121586
- }
121587
- } finally {
121588
- isLoading.value = false;
121589
- }
121590
- };
121591
- const getCurrentSpec = async () => {
121592
- if (!vueGraphicWalkerRef.value) {
121593
- console.error("Cannot get spec: GraphicWalker component reference is missing.");
121594
- errorMessage.value = "Cannot get spec: Component reference missing.";
121595
- return null;
121596
- }
121597
- try {
121598
- const exportedCharts = await vueGraphicWalkerRef.value.exportCode();
121599
- if (exportedCharts === null) {
121600
- console.error("Failed to export chart specification (method returned null or failed).");
121601
- errorMessage.value = "Failed to retrieve current chart configuration.";
121602
- return null;
121603
- }
121604
- if (exportedCharts.length === 0) {
121605
- console.log("No charts were exported from Graphic Walker.");
121606
- return [];
121607
- }
121608
- return exportedCharts;
121609
- } catch (error) {
121610
- console.error("Error calling getCurrentSpec or processing result:", error);
121611
- errorMessage.value = `Failed to process configuration: ${error.message || "Unknown error"}`;
121612
- return null;
121613
- }
121614
- };
121615
- const saveSpecToNodeStore = async (specsToSave) => {
121616
- if (!nodeData.value) {
121617
- console.error("Cannot save: Original node data context is missing.");
121618
- errorMessage.value = "Cannot save: Missing original node data.";
121619
- return false;
121620
- }
121621
- try {
121622
- const saveData = {
121623
- ...nodeData.value,
121624
- graphic_walker_input: {
121625
- ...nodeData.value.graphic_walker_input,
121626
- specList: specsToSave,
121627
- dataModel: { data: [], fields: [] }
121628
- }
121629
- };
121630
- nodeStore.node_id = globalNodeId.value;
121631
- await nodeStore.updateSettingsDirectly(saveData);
121632
- console.log("Node settings updated successfully.");
121633
- return true;
121634
- } catch (error) {
121635
- console.error("Error saving spec to node store:", error);
121636
- errorMessage.value = `Failed to save configuration: ${error.message || "Unknown error"}`;
121637
- return false;
121638
- }
121639
- };
121640
- const pushNodeData = async () => {
121641
- errorMessage.value = null;
121642
- const currentSpec = await getCurrentSpec();
121643
- if (currentSpec === null) {
121644
- console.log("Spec retrieval failed, skipping save.");
121645
- return;
121646
- }
121647
- if (currentSpec.length === 0) {
121648
- console.log("No chart configurations exported, skipping save.");
121649
- return;
121650
- }
121651
- const saveSuccess = await saveSpecToNodeStore(currentSpec);
121652
- if (saveSuccess) {
121653
- console.log("Save process completed successfully.");
121654
- } else {
121655
- console.log("Save process failed.");
121656
- }
121657
- nodeStore.isDrawerOpen = false;
121658
- };
121659
- __expose({
121660
- loadNodeData,
121661
- pushNodeData
121662
- // Expose the main save action
121663
- });
121664
- return (_ctx, _cache) => {
121665
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
121666
- isLoading.value ? (openBlock(), createBlock(unref(CodeLoader), { key: 0 })) : errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
121667
- createBaseVNode("p", null, "⚠️ Error: " + toDisplayString(errorMessage.value), 1)
121668
- ])) : canDisplayVisualization.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
121669
- data.value.length > 0 && fields.value.length > 0 ? (openBlock(), createBlock(VueGraphicWalker, {
121670
- key: 0,
121671
- ref_key: "vueGraphicWalkerRef",
121672
- ref: vueGraphicWalkerRef,
121673
- appearance: "light",
121674
- data: data.value,
121675
- fields: fields.value,
121676
- "spec-list": chartList.value
121677
- }, null, 8, ["data", "fields", "spec-list"])) : (openBlock(), createElementBlock("div", _hoisted_4, " Data loaded, but the dataset appears to be empty or lacks defined fields. "))
121678
- ])) : (openBlock(), createElementBlock("div", _hoisted_5, "Please load data for the node."))
121679
- ]);
121680
- };
121681
- }
121682
- });
121683
- const exploreData_vue_vue_type_style_index_0_scoped_669bd025_lang = "";
121684
- const graphicWalker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-669bd025"]]);
121685
- const _hoisted_1 = { style: { "display": "flex", "flex-direction": "column", "height": "100%" } };
121686
- const _sfc_main = /* @__PURE__ */ defineComponent({
121687
- __name: "ExploreData",
121688
- props: {
121689
- nodeId: {
121690
- type: Number,
121691
- required: true
121692
- }
121693
- },
121694
- setup(__props) {
121695
- const nodeStore = useNodeStore();
121696
- const itemStore = useItemStore();
121697
- const props = __props;
121698
- const childComp = ref(null);
121699
- const el2 = ref(null);
121700
- const drawer = ref(false);
121701
- const closeOnDrawer = () => {
121702
- if (childComp.value) {
121703
- childComp.value.pushNodeData();
121704
- }
121705
- drawer.value = false;
121706
- itemStore.setFullScreen("nodeSettings", false);
121707
- };
121708
- const openDrawer = async () => {
121709
- const isDifferentNode = nodeStore.node_id !== props.nodeId;
121710
- if (nodeStore.isDrawerOpen && isDifferentNode) {
121711
- nodeStore.closeDrawer();
121712
- await nextTick();
121713
- } else if (nodeStore.isDrawerOpen && !isDifferentNode) {
121714
- return;
121715
- }
121716
- drawer.value = true;
121717
- nodeStore.openDrawer(closeOnDrawer);
121718
- nodeStore.node_id = props.nodeId;
121719
- await nextTick();
121720
- if (childComp.value) {
121721
- childComp.value.loadNodeData(props.nodeId);
121722
- }
121723
- itemStore.setFullScreen("nodeSettings", true);
121724
- };
121725
- return (_ctx, _cache) => {
121726
- return openBlock(), createElementBlock("div", {
121727
- ref_key: "el",
121728
- ref: el2
121729
- }, [
121730
- createVNode(NodeButton, {
121731
- ref: "nodeButton",
121732
- "node-id": __props.nodeId,
121733
- "image-src": "explore_data.png",
121734
- title: `${__props.nodeId}: Explore data`,
121735
- onClick: openDrawer
121736
- }, null, 8, ["node-id", "title"]),
121737
- drawer.value ? (openBlock(), createBlock(Teleport, {
121738
- key: 0,
121739
- to: "#nodesettings"
121740
- }, [
121741
- createBaseVNode("div", _hoisted_1, [
121742
- createVNode(NodeTitle, {
121743
- title: "explore data",
121744
- intro: "Explore data and creating interactig graphs. The flow must have run for the data to be populated"
121745
- }),
121746
- createVNode(graphicWalker, {
121747
- ref_key: "childComp",
121748
- ref: childComp,
121749
- "node-id": __props.nodeId,
121750
- style: { "flex-grow": "1", "overflow": "auto" }
121751
- }, null, 8, ["node-id"])
121752
- ])
121753
- ])) : createCommentVNode("", true)
121754
- ], 512);
121755
- };
121756
- }
121757
- });
121497
+ const VueGraphicWalker = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5af75af4"]]);
121758
121498
  export {
121759
- _sfc_main as default
121499
+ VueGraphicWalker as default
121760
121500
  };
@@ -0,0 +1,6 @@
1
+
2
+ div[data-v-5af75af4] {
3
+ width: 100%;
4
+ min-height: 500px;
5
+ height: 100%;
6
+ }
@@ -1,4 +1,4 @@
1
- import { a as axios } from "./index-683fc198.js";
1
+ import { a as axios } from "./index-5429bbf8.js";
2
2
  const API_BASE_URL = "/cloud_connections";
3
3
  const toPythonFormat = (connection) => {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { a as axios } from "./index-683fc198.js";
1
+ import { a as axios } from "./index-5429bbf8.js";
2
2
  const API_BASE_URL = "/db_connection_lib";
3
3
  const toPythonFormat = (connection) => {
4
4
  return {