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,12 +1,12 @@
1
- import { d as defineComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, _ as _export_sfc, r as ref, n as onMounted, b as resolveComponent, f as createVNode, w as withCtx, F as Fragment, q as renderList, h as createBlock, u as unref, al as ElRadio, g as createTextVNode, t as toDisplayString, a5 as withDirectives, ag as vModelSelect, a6 as vModelText, i as createCommentVNode, a as axios, z as ElMessage, R as nextTick, a7 as Teleport } from "./index-683fc198.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
3
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
4
- import { f as fetchDatabaseConnectionsInterfaces } from "./api-023d1733.js";
5
- import { D as DatabaseConnectionSettings } from "./DatabaseConnectionSettings-d5c625b3.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
8
- import "./secretApi-baceb6f9.js";
9
- import "./designer-6c322d8e.js";
1
+ import { d as defineComponent, r as ref, n as onMounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, h as createBlock, g as createTextVNode, t as toDisplayString, u as unref, ap as ElRadio, a8 as withDirectives, ak as vModelSelect, a9 as vModelText, i as createCommentVNode, a as axios, z as ElMessage, _ as _export_sfc } from "./index-5429bbf8.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-2c8e608f.js";
3
+ import { u as useNodeStore } from "./vue-codemirror.esm-41b0e0d7.js";
4
+ import { f as fetchDatabaseConnectionsInterfaces } from "./api-cf1221f0.js";
5
+ import DatabaseConnectionSettings from "./DatabaseConnectionSettings-6f3e4ea5.js";
6
+ import SqlQueryComponent from "./SQLQueryComponent-df51adbe.js";
7
+ import { G as GenericNodeSettings } from "./genericNodeSettings-4fe5f36b.js";
8
+ import "./secretApi-68435402.js";
9
+ import "./designer-9633482a.js";
10
10
  const createNodeDatabaseReader = (flowId, nodeId) => {
11
11
  const databaseSettings = {
12
12
  query_mode: "table",
@@ -35,41 +35,7 @@ const createNodeDatabaseReader = (flowId, nodeId) => {
35
35
  };
36
36
  return nodePolarsCode;
37
37
  };
38
- const _hoisted_1$2 = { class: "query-section" };
39
- const _hoisted_2$1 = { class: "form-group" };
40
- const _hoisted_3$1 = ["value"];
41
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
42
- __name: "SQLQueryComponent",
43
- props: {
44
- modelValue: {}
45
- },
46
- emits: ["update:modelValue"],
47
- setup(__props, { emit: __emit }) {
48
- const emit = __emit;
49
- const onInput = (event) => {
50
- const target = event.target;
51
- emit("update:modelValue", target.value);
52
- };
53
- return (_ctx, _cache) => {
54
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
55
- _cache[0] || (_cache[0] = createBaseVNode("h4", { class: "section-subtitle" }, "SQL Query", -1)),
56
- createBaseVNode("div", _hoisted_2$1, [
57
- createBaseVNode("textarea", {
58
- id: "query",
59
- value: _ctx.modelValue,
60
- class: "form-control textarea",
61
- placeholder: "Enter SQL query",
62
- rows: "4",
63
- onInput
64
- }, null, 40, _hoisted_3$1)
65
- ])
66
- ]);
67
- };
68
- }
69
- });
70
- const SQLQueryComponent_vue_vue_type_style_index_0_scoped_29602f2f_lang = "";
71
- const SqlQueryComponent = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-29602f2f"]]);
72
- const _hoisted_1$1 = {
38
+ const _hoisted_1 = {
73
39
  key: 0,
74
40
  class: "db-container"
75
41
  };
@@ -101,7 +67,7 @@ const _hoisted_19 = {
101
67
  class: "success-box"
102
68
  };
103
69
  const _hoisted_20 = { class: "success-message" };
104
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
70
+ const _sfc_main = /* @__PURE__ */ defineComponent({
105
71
  __name: "DatabaseReader",
106
72
  props: {
107
73
  nodeId: {}
@@ -215,7 +181,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
215
181
  });
216
182
  return (_ctx, _cache) => {
217
183
  const _component_el_radio_group = resolveComponent("el-radio-group");
218
- return dataLoaded.value && nodeDatabaseReader.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
184
+ return dataLoaded.value && nodeDatabaseReader.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
219
185
  createVNode(GenericNodeSettings, {
220
186
  modelValue: nodeDatabaseReader.value,
221
187
  "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => nodeDatabaseReader.value = $event)
@@ -354,73 +320,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
354
320
  }
355
321
  });
356
322
  const DatabaseReader_vue_vue_type_style_index_0_scoped_ae4d7dc5_lang = "";
357
- const DatabaseReader = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ae4d7dc5"]]);
358
- const _hoisted_1 = { ref: "el" };
359
- const _sfc_main = /* @__PURE__ */ defineComponent({
360
- __name: "DatabaseReader",
361
- props: {
362
- nodeId: {
363
- type: Number,
364
- required: true
365
- }
366
- },
367
- setup(__props) {
368
- const nodeStore = useNodeStore();
369
- const childComp = ref(null);
370
- const props = __props;
371
- const drawer = ref(false);
372
- const closeOnDrawer = () => {
373
- var _a;
374
- drawer.value = false;
375
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
376
- };
377
- const openDrawer = async () => {
378
- if (nodeStore.node_id === props.nodeId) {
379
- return;
380
- }
381
- nodeStore.closeDrawer();
382
- drawer.value = true;
383
- const drawerOpen = nodeStore.isDrawerOpen;
384
- nodeStore.isDrawerOpen = true;
385
- await nextTick();
386
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
387
- return;
388
- }
389
- if (childComp.value) {
390
- childComp.value.loadNodeData(props.nodeId);
391
- nodeStore.openDrawer(closeOnDrawer);
392
- }
393
- };
394
- onMounted(async () => {
395
- await nextTick();
396
- });
397
- return (_ctx, _cache) => {
398
- return openBlock(), createElementBlock("div", _hoisted_1, [
399
- createVNode(NodeButton, {
400
- ref: "nodeButton",
401
- "node-id": __props.nodeId,
402
- "image-src": "database_reader.svg",
403
- title: `${__props.nodeId}: Database reader`,
404
- onClick: openDrawer
405
- }, null, 8, ["node-id", "title"]),
406
- drawer.value ? (openBlock(), createBlock(Teleport, {
407
- key: 0,
408
- to: "#nodesettings"
409
- }, [
410
- createVNode(NodeTitle, {
411
- title: "Read data from database",
412
- intro: "Read data from database"
413
- }),
414
- createVNode(DatabaseReader, {
415
- ref_key: "childComp",
416
- ref: childComp,
417
- "node-id": __props.nodeId
418
- }, null, 8, ["node-id"])
419
- ])) : createCommentVNode("", true)
420
- ], 512);
421
- };
422
- }
423
- });
323
+ const DatabaseReader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ae4d7dc5"]]);
424
324
  export {
425
- _sfc_main as default
325
+ DatabaseReader as default
426
326
  };
@@ -1,12 +1,11 @@
1
- import { d as defineComponent, r as ref, n as onMounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, h as createBlock, u as unref, al as ElRadio, g as createTextVNode, t as toDisplayString, a5 as withDirectives, ag as vModelSelect, a6 as vModelText, z as ElMessage, _ as _export_sfc, R as nextTick, a7 as Teleport, i as createCommentVNode } from "./index-683fc198.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
3
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
4
- import { f as fetchDatabaseConnectionsInterfaces } from "./api-023d1733.js";
5
- import { D as DatabaseConnectionSettings } from "./DatabaseConnectionSettings-d5c625b3.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
8
- import "./secretApi-baceb6f9.js";
9
- import "./designer-6c322d8e.js";
1
+ import { d as defineComponent, r as ref, n as onMounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, h as createBlock, g as createTextVNode, t as toDisplayString, u as unref, ap as ElRadio, a8 as withDirectives, ak as vModelSelect, a9 as vModelText, z as ElMessage, _ as _export_sfc } from "./index-5429bbf8.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-2c8e608f.js";
3
+ import { u as useNodeStore } from "./vue-codemirror.esm-41b0e0d7.js";
4
+ import { f as fetchDatabaseConnectionsInterfaces } from "./api-cf1221f0.js";
5
+ import DatabaseConnectionSettings from "./DatabaseConnectionSettings-6f3e4ea5.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-4fe5f36b.js";
7
+ import "./secretApi-68435402.js";
8
+ import "./designer-9633482a.js";
10
9
  const createNodeDatabaseWriter = (flowId, nodeId) => {
11
10
  const databaseWriteSettings = {
12
11
  if_exists: "replace",
@@ -33,7 +32,7 @@ const createNodeDatabaseWriter = (flowId, nodeId) => {
33
32
  };
34
33
  return nodePolarsCode;
35
34
  };
36
- const _hoisted_1$1 = {
35
+ const _hoisted_1 = {
37
36
  key: 0,
38
37
  class: "db-container"
39
38
  };
@@ -51,7 +50,7 @@ const _hoisted_12 = { class: "form-group half" };
51
50
  const _hoisted_13 = { class: "listbox-wrapper" };
52
51
  const _hoisted_14 = { class: "form-group" };
53
52
  const _hoisted_15 = ["value"];
54
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
53
+ const _sfc_main = /* @__PURE__ */ defineComponent({
55
54
  __name: "DatabaseWriter",
56
55
  props: {
57
56
  nodeId: {}
@@ -115,7 +114,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
115
114
  });
116
115
  return (_ctx, _cache) => {
117
116
  const _component_el_radio_group = resolveComponent("el-radio-group");
118
- return dataLoaded.value && nodeData.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
117
+ return dataLoaded.value && nodeData.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
119
118
  createVNode(GenericNodeSettings, {
120
119
  modelValue: nodeData.value,
121
120
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => nodeData.value = $event)
@@ -246,67 +245,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
246
245
  }
247
246
  });
248
247
  const DatabaseWriter_vue_vue_type_style_index_0_scoped_90b52fee_lang = "";
249
- const DatabaseWriter = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-90b52fee"]]);
250
- const _hoisted_1 = { ref: "el" };
251
- const _sfc_main = /* @__PURE__ */ defineComponent({
252
- __name: "DatabaseWriter",
253
- props: {
254
- nodeId: {
255
- type: Number,
256
- required: true
257
- }
258
- },
259
- setup(__props) {
260
- const nodeStore = useNodeStore();
261
- const childComp = ref(null);
262
- const props = __props;
263
- const drawer = ref(false);
264
- const closeOnDrawer = () => {
265
- var _a;
266
- drawer.value = false;
267
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
268
- };
269
- const openDrawer = async () => {
270
- nodeStore.closeDrawer();
271
- drawer.value = true;
272
- nodeStore.isDrawerOpen;
273
- nodeStore.isDrawerOpen = true;
274
- await nextTick();
275
- if (childComp.value) {
276
- childComp.value.loadNodeData(props.nodeId);
277
- nodeStore.openDrawer(closeOnDrawer);
278
- }
279
- };
280
- onMounted(async () => {
281
- await nextTick();
282
- });
283
- return (_ctx, _cache) => {
284
- return openBlock(), createElementBlock("div", _hoisted_1, [
285
- createVNode(NodeButton, {
286
- ref: "nodeButton",
287
- "node-id": __props.nodeId,
288
- "image-src": "database_writer.svg",
289
- title: `${__props.nodeId}: Database writer`,
290
- onClick: openDrawer
291
- }, null, 8, ["node-id", "title"]),
292
- drawer.value ? (openBlock(), createBlock(Teleport, {
293
- key: 0,
294
- to: "#nodesettings"
295
- }, [
296
- createVNode(NodeTitle, {
297
- title: "Write data to database",
298
- intro: "Write data to database"
299
- }),
300
- createVNode(DatabaseWriter, {
301
- ref_key: "childComp",
302
- ref: childComp,
303
- "node-id": __props.nodeId
304
- }, null, 8, ["node-id"])
305
- ])) : createCommentVNode("", true)
306
- ], 512);
307
- };
308
- }
309
- });
248
+ const DatabaseWriter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-90b52fee"]]);
310
249
  export {
311
- _sfc_main as default
250
+ DatabaseWriter as default
312
251
  };
@@ -1,25 +1,19 @@
1
1
 
2
- div[data-v-5af75af4] {
3
- width: 100%;
4
- min-height: 500px;
5
- height: 100%;
6
- }
7
-
8
- .explore-data-container[data-v-669bd025] {
2
+ .explore-data-container[data-v-1a3f5721] {
9
3
  height: 100%;
10
4
  display: flex;
11
5
  flex-direction: column;
12
6
  }
13
- .graphic-walker-wrapper[data-v-669bd025] {
7
+ .graphic-walker-wrapper[data-v-1a3f5721] {
14
8
  flex-grow: 1; /* Allow wrapper to fill space */
15
9
  min-height: 300px; /* Ensure minimum size */
16
10
  overflow: hidden; /* Prevent content spillover if needed */
17
11
  }
18
12
  /* Ensure the child fills the wrapper if necessary */
19
- [data-v-669bd025] .graphic-walker-wrapper > div {
13
+ [data-v-1a3f5721] .graphic-walker-wrapper > div {
20
14
  height: 100%;
21
15
  }
22
- .error-display[data-v-669bd025] {
16
+ .error-display[data-v-1a3f5721] {
23
17
  padding: 1rem;
24
18
  color: #a94442; /* Dark red */
25
19
  border: 1px solid #ebccd1; /* Light red border */
@@ -27,19 +21,19 @@ div[data-v-5af75af4] {
27
21
  margin: 1rem;
28
22
  border-radius: 4px;
29
23
  }
30
- .empty-data-message[data-v-669bd025],
31
- .fallback-message[data-v-669bd025] {
24
+ .empty-data-message[data-v-1a3f5721],
25
+ .fallback-message[data-v-1a3f5721] {
32
26
  padding: 1rem;
33
27
  text-align: center;
34
28
  color: #777; /* Grey */
35
29
  }
36
30
  /* Add styles for the button if needed */
37
- button[data-v-669bd025] {
31
+ button[data-v-1a3f5721] {
38
32
  margin: 0.5rem 1rem;
39
33
  padding: 0.5rem 1rem;
40
34
  cursor: pointer;
41
35
  }
42
- button[data-v-669bd025]:disabled {
36
+ button[data-v-1a3f5721]:disabled {
43
37
  cursor: not-allowed;
44
38
  opacity: 0.6;
45
39
  }
@@ -0,0 +1,192 @@
1
+ import { C as CodeLoader } from "./vue-content-loader.es-2c8e608f.js";
2
+ import VueGraphicWalker from "./VueGraphicWalker-e51b9924.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-5429bbf8.js";
4
+ import { u as useNodeStore } from "./vue-codemirror.esm-41b0e0d7.js";
5
+ import { u as useItemStore } from "./designer-9633482a.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-2c8e608f.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-41b0e0d7.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-4fe5f36b.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-5429bbf8.js";
5
+ import "./designer-9633482a.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
  };