Flowfile 0.3.9__py3-none-any.whl → 0.4.0__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 (169) hide show
  1. flowfile/__init__.py +6 -1
  2. flowfile/api.py +0 -1
  3. flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-109ecc3c.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-19cdd67a.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-48e0ae20.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
  8. flowfile/web/static/assets/ColumnSelector-ecaf7c44.js +83 -0
  9. flowfile/web/static/assets/ContextMenu-2b348c4c.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-a779eed7.js +41 -0
  13. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  14. flowfile/web/static/assets/ContextMenu-eca26a03.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-a88f8142.js} +14 -84
  17. flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
  18. flowfile/web/static/assets/CustomNode-cb863dff.js +211 -0
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-819d3267.js} +3 -3
  20. flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-84ee2834.js} +2 -2
  21. flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-060dd412.js} +14 -114
  22. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  23. flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-7fc7750f.js} +13 -74
  24. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  25. flowfile/web/static/assets/ExploreData-82c95991.js +192 -0
  26. flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-e1a6ddc7.js} +8 -79
  27. flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-8aca894a.js} +12 -85
  28. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  29. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  30. flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-e33686d9.js} +18 -85
  31. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  32. flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-abda150d.js} +16 -87
  33. flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-4ecad1d7.js} +13 -159
  34. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  35. flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-656d07f3.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-b84ec849.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-346f4135.js} +11 -82
  41. flowfile/web/static/assets/MultiSelect-61b98268.js +5 -0
  42. flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-2a7c8312.js +63 -0
  43. flowfile/web/static/assets/NumericInput-e36602c2.js +5 -0
  44. flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-211a1990.js +35 -0
  45. flowfile/web/static/assets/Output-ddc9079f.css +37 -0
  46. flowfile/web/static/assets/{Output-411ecaee.js → Output-eb041599.js} +13 -243
  47. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  48. flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-f5c774f4.js} +14 -138
  49. flowfile/web/static/assets/PivotValidation-26546cbc.js +61 -0
  50. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  51. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  52. flowfile/web/static/assets/PivotValidation-e150a24b.js +61 -0
  53. flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-da3a7abf.js} +13 -80
  54. flowfile/web/static/assets/Read-0c768769.js +243 -0
  55. flowfile/web/static/assets/Read-6b17491f.css +62 -0
  56. flowfile/web/static/assets/RecordCount-84736276.js +53 -0
  57. flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-60055e6d.js} +8 -80
  58. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  59. flowfile/web/static/assets/SQLQueryComponent-8a486004.js +38 -0
  60. flowfile/web/static/assets/{Sample-b4a18476.js → Sample-2d662611.js} +8 -77
  61. flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-ef586cab.js} +2 -2
  62. flowfile/web/static/assets/{Select-727688dc.js → Select-2e4a6965.js} +11 -85
  63. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  64. flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-310b61c0.js} +2 -40
  65. flowfile/web/static/assets/SettingsSection-5634f439.js +45 -0
  66. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  67. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  68. flowfile/web/static/assets/SettingsSection-7c68b19f.js +53 -0
  69. flowfile/web/static/assets/SingleSelect-7298811a.js +5 -0
  70. flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-43807bad.js +62 -0
  71. flowfile/web/static/assets/SliderInput-53105476.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-4fdebe74.js} +12 -97
  75. flowfile/web/static/assets/TextInput-28366b7e.js +5 -0
  76. flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-9cad14ba.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-73ffa692.js} +14 -83
  79. flowfile/web/static/assets/ToggleSwitch-598add30.js +5 -0
  80. flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-f620cd32.js +31 -0
  81. flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-66239e83.js} +2 -2
  82. flowfile/web/static/assets/Union-26b10614.js +77 -0
  83. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  84. flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-33b9edbb.js} +22 -91
  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-ef69d0e2.js} +12 -166
  88. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  89. flowfile/web/static/assets/UnpivotValidation-8658388e.js +51 -0
  90. flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-4d7861f4.js} +4 -264
  91. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  92. flowfile/web/static/assets/{api-023d1733.js → api-2d1394bd.js} +1 -1
  93. flowfile/web/static/assets/{api-cb00cce6.js → api-c908fffe.js} +1 -1
  94. flowfile/web/static/assets/{designer-6c322d8e.js → designer-1667687d.js} +2201 -705
  95. flowfile/web/static/assets/{designer-2197d782.css → designer-665e9408.css} +836 -201
  96. flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-5eed779e.js} +1 -1
  97. flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-41ebe3c2.js} +1 -1
  98. flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-0670d32d.js} +2 -2
  99. flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-38410ebf.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-5ec791df.js} +210 -31
  102. flowfile/web/static/assets/outputCsv-059583b6.js +86 -0
  103. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  104. flowfile/web/static/assets/outputExcel-76b1e02c.js +56 -0
  105. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  106. flowfile/web/static/assets/outputParquet-440fd4c7.js +31 -0
  107. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  108. flowfile/web/static/assets/readCsv-9813903a.js +178 -0
  109. flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
  110. flowfile/web/static/assets/readExcel-7f40d237.js +203 -0
  111. flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
  112. flowfile/web/static/assets/readParquet-22d56002.js +26 -0
  113. flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
  114. flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-b3cb072e.js} +1 -1
  115. flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-7ad95bca.js} +7 -7
  116. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  117. flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
  118. flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-b1dfaa46.js} +59 -33
  119. flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-22bac17c.js} +1 -1
  120. flowfile/web/static/index.html +2 -2
  121. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/METADATA +1 -1
  122. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/RECORD +160 -102
  123. flowfile_core/configs/flow_logger.py +5 -13
  124. flowfile_core/configs/node_store/__init__.py +30 -0
  125. flowfile_core/configs/node_store/nodes.py +383 -99
  126. flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
  127. flowfile_core/configs/settings.py +2 -1
  128. flowfile_core/database/connection.py +5 -21
  129. flowfile_core/fileExplorer/funcs.py +239 -121
  130. flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
  131. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
  132. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
  133. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +28 -8
  134. flowfile_core/flowfile/flow_graph.py +117 -34
  135. flowfile_core/flowfile/flow_node/flow_node.py +45 -13
  136. flowfile_core/flowfile/handler.py +22 -3
  137. flowfile_core/flowfile/manage/open_flowfile.py +9 -1
  138. flowfile_core/flowfile/node_designer/__init__.py +47 -0
  139. flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
  140. flowfile_core/flowfile/node_designer/custom_node.py +371 -0
  141. flowfile_core/flowfile/node_designer/data_types.py +146 -0
  142. flowfile_core/flowfile/node_designer/ui_components.py +277 -0
  143. flowfile_core/flowfile/schema_callbacks.py +8 -4
  144. flowfile_core/flowfile/setting_generator/settings.py +0 -1
  145. flowfile_core/main.py +5 -1
  146. flowfile_core/routes/routes.py +73 -28
  147. flowfile_core/routes/user_defined_components.py +55 -0
  148. flowfile_core/schemas/input_schema.py +7 -1
  149. flowfile_core/schemas/output_model.py +5 -2
  150. flowfile_core/schemas/schemas.py +8 -3
  151. flowfile_core/schemas/transform_schema.py +1 -0
  152. flowfile_core/utils/validate_setup.py +3 -1
  153. flowfile_worker/__init__.py +6 -35
  154. flowfile_worker/main.py +5 -2
  155. flowfile_worker/routes.py +47 -5
  156. shared/__init__.py +15 -0
  157. shared/storage_config.py +258 -0
  158. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  159. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  160. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  161. flowfile/web/static/assets/Read-c3b1929c.js +0 -701
  162. flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
  163. flowfile/web/static/assets/Union-89fd73dc.js +0 -146
  164. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  165. flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
  166. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  167. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/LICENSE +0 -0
  168. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/WHEEL +0 -0
  169. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/entry_points.txt +0 -0
@@ -1,13 +1,12 @@
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 { C as ColumnSelector } from "./dropDown-0b46dd77.js";
4
- import { s as selectDynamic } from "./selectDynamic-de91449a.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
6
- import { d as defineComponent, r as ref, l as computed, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, h as createBlock, i as createCommentVNode, F as Fragment, q as renderList, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-683fc198.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
8
- import "./UnavailableFields-8b0cb48e.js";
9
- import "./designer-6c322d8e.js";
10
- const _hoisted_1$1 = {
1
+ import { C as CodeLoader } from "./vue-content-loader.es-22bac17c.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
3
+ import { C as ColumnSelector } from "./dropDown-41ebe3c2.js";
4
+ import { s as selectDynamic } from "./selectDynamic-7ad95bca.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-38410ebf.js";
6
+ import { d as defineComponent, r as ref, l as computed, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, h as createBlock, i as createCommentVNode, F as Fragment, q as renderList, u as unref, _ as _export_sfc } from "./index-5ec791df.js";
7
+ import "./UnavailableFields-66239e83.js";
8
+ import "./designer-1667687d.js";
9
+ const _hoisted_1 = {
11
10
  key: 0,
12
11
  class: "listbox-wrapper"
13
12
  };
@@ -18,8 +17,8 @@ const _hoisted_5 = { class: "table-wrapper" };
18
17
  const _hoisted_6 = { class: "selectors-container" };
19
18
  const _hoisted_7 = { class: "action-buttons" };
20
19
  const _hoisted_8 = ["onClick"];
21
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22
- __name: "join",
20
+ const _sfc_main = /* @__PURE__ */ defineComponent({
21
+ __name: "Join",
23
22
  setup(__props, { expose: __expose }) {
24
23
  const joinTypes = ["inner", "left", "right", "full", "semi", "anti", "cross"];
25
24
  const JOIN_TYPES_WITHOUT_COLUMN_SELECTION = ["anti", "semi"];
@@ -44,7 +43,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
44
43
  if (result.value) {
45
44
  dataLoaded.value = true;
46
45
  }
47
- nodeStore.isDrawerOpen = true;
48
46
  };
49
47
  const addJoinCondition = () => {
50
48
  if (nodeJoin.value) {
@@ -78,14 +76,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
78
76
  const pushNodeData = async () => {
79
77
  console.log("Pushing node data");
80
78
  nodeStore.updateSettings(nodeJoin);
81
- nodeStore.isDrawerOpen = false;
82
79
  };
83
80
  __expose({
84
81
  loadNodeData,
85
82
  pushNodeData
86
83
  });
87
84
  return (_ctx, _cache) => {
88
- return dataLoaded.value && nodeJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
85
+ return dataLoaded.value && nodeJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
89
86
  createVNode(GenericNodeSettings, {
90
87
  modelValue: nodeJoin.value,
91
88
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => nodeJoin.value = $event)
@@ -182,75 +179,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
182
179
  };
183
180
  }
184
181
  });
185
- const join_vue_vue_type_style_index_0_scoped_f4a6a0de_lang = "";
186
- const joinInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-f4a6a0de"]]);
187
- const _hoisted_1 = { ref: "el" };
188
- const _sfc_main = /* @__PURE__ */ defineComponent({
189
- __name: "Join",
190
- props: {
191
- nodeId: {
192
- type: Number,
193
- required: true
194
- }
195
- },
196
- setup(__props) {
197
- const nodeStore = useNodeStore();
198
- const childComp = ref(null);
199
- const drawer = ref(false);
200
- const props = __props;
201
- const closeOnDrawer = () => {
202
- var _a;
203
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
204
- drawer.value = false;
205
- nodeStore.isDrawerOpen = false;
206
- };
207
- const openDrawer = async () => {
208
- if (nodeStore.node_id === props.nodeId) {
209
- return;
210
- }
211
- nodeStore.closeDrawer();
212
- drawer.value = true;
213
- const drawerOpen = nodeStore.isDrawerOpen;
214
- nodeStore.isDrawerOpen = true;
215
- await nextTick();
216
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
217
- return;
218
- }
219
- if (childComp.value) {
220
- childComp.value.loadNodeData(props.nodeId);
221
- nodeStore.openDrawer(closeOnDrawer);
222
- }
223
- };
224
- onMounted(async () => {
225
- await nextTick();
226
- });
227
- return (_ctx, _cache) => {
228
- return openBlock(), createElementBlock("div", _hoisted_1, [
229
- createVNode(NodeButton, {
230
- ref: "nodeButton",
231
- "node-id": __props.nodeId,
232
- "image-src": "join.png",
233
- title: `${__props.nodeId}: Join`,
234
- onClick: openDrawer
235
- }, null, 8, ["node-id", "title"]),
236
- drawer.value ? (openBlock(), createBlock(Teleport, {
237
- key: 0,
238
- to: "#nodesettings"
239
- }, [
240
- createVNode(NodeTitle, {
241
- title: "Join",
242
- intro: "Combine datasets based on one or more columns."
243
- }),
244
- createVNode(joinInput, {
245
- ref_key: "childComp",
246
- ref: childComp,
247
- "node-id": __props.nodeId
248
- }, null, 8, ["node-id"])
249
- ])) : createCommentVNode("", true)
250
- ], 512);
251
- };
252
- }
253
- });
182
+ const Join_vue_vue_type_style_index_0_scoped_7d5cefa4_lang = "";
183
+ const Join = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7d5cefa4"]]);
254
184
  export {
255
- _sfc_main as default
185
+ Join as default
256
186
  };
@@ -1,12 +1,12 @@
1
1
 
2
2
  /* Join Type Selector */
3
- .join-type-selector[data-v-f4a6a0de] {
3
+ .join-type-selector[data-v-7d5cefa4] {
4
4
  display: flex;
5
5
  align-items: center;
6
6
  margin: 12px;
7
7
  gap: 10px;
8
8
  }
9
- .join-type-label[data-v-f4a6a0de] {
9
+ .join-type-label[data-v-7d5cefa4] {
10
10
  font-size: 12px;
11
11
  color: #333;
12
12
  font-weight: 500;
@@ -14,27 +14,27 @@
14
14
  }
15
15
 
16
16
  /* Join Mapping Section */
17
- .table-wrapper[data-v-f4a6a0de] {
17
+ .table-wrapper[data-v-7d5cefa4] {
18
18
  border: 1px solid #eee;
19
19
  border-radius: 6px;
20
20
  overflow: hidden;
21
21
  margin: 5px;
22
22
  }
23
- .selectors-header[data-v-f4a6a0de] {
23
+ .selectors-header[data-v-7d5cefa4] {
24
24
  display: flex;
25
25
  justify-content: space-between;
26
26
  padding: 8px 16px;
27
27
  background-color: #fafafa;
28
28
  border-bottom: 1px solid #eee;
29
29
  }
30
- .selectors-title[data-v-f4a6a0de] {
30
+ .selectors-title[data-v-7d5cefa4] {
31
31
  flex: 1;
32
32
  text-align: center;
33
33
  font-size: 12px;
34
34
  color: #666;
35
35
  font-weight: 500;
36
36
  }
37
- .selectors-container[data-v-f4a6a0de] {
37
+ .selectors-container[data-v-7d5cefa4] {
38
38
  padding: 12px;
39
39
  box-sizing: border-box;
40
40
  width: 100%;
@@ -42,7 +42,7 @@
42
42
  justify-content: space-between;
43
43
  flex-direction: column;
44
44
  }
45
- .selectors-row[data-v-f4a6a0de] {
45
+ .selectors-row[data-v-7d5cefa4] {
46
46
  display: flex;
47
47
  gap: 12px;
48
48
  margin-bottom: 8px;
@@ -50,20 +50,20 @@
50
50
  display: flex;
51
51
  justify-content: space-between;
52
52
  }
53
- .selectors-row[data-v-f4a6a0de]:last-child {
53
+ .selectors-row[data-v-7d5cefa4]:last-child {
54
54
  margin-bottom: 0;
55
55
  }
56
56
 
57
57
  /* Action Buttons */
58
- .action-buttons[data-v-f4a6a0de] {
58
+ .action-buttons[data-v-7d5cefa4] {
59
59
  display: flex;
60
60
  gap: 4px;
61
61
  min-width: 60px;
62
62
  justify-content: center;
63
63
  }
64
- .action-button[data-v-f4a6a0de],
65
- .add-join-button[data-v-f4a6a0de],
66
- .remove-join-button[data-v-f4a6a0de] {
64
+ .action-button[data-v-7d5cefa4],
65
+ .add-join-button[data-v-7d5cefa4],
66
+ .remove-join-button[data-v-7d5cefa4] {
67
67
  cursor: pointer;
68
68
  width: 24px;
69
69
  height: 24px;
@@ -76,34 +76,34 @@
76
76
  font-size: 14px;
77
77
  transition: all 0.2s ease;
78
78
  }
79
- .add-join-button[data-v-f4a6a0de] {
79
+ .add-join-button[data-v-7d5cefa4] {
80
80
  color: #45a049;
81
81
  border-color: #45a049;
82
82
  }
83
- .add-join-button[data-v-f4a6a0de]:hover {
83
+ .add-join-button[data-v-7d5cefa4]:hover {
84
84
  background-color: #45a049;
85
85
  color: #fff;
86
86
  }
87
- .remove-join-button[data-v-f4a6a0de] {
87
+ .remove-join-button[data-v-7d5cefa4] {
88
88
  color: #d32f2f;
89
89
  border-color: #d32f2f;
90
90
  }
91
- .remove-join-button[data-v-f4a6a0de]:hover {
91
+ .remove-join-button[data-v-7d5cefa4]:hover {
92
92
  background-color: #d32f2f;
93
93
  color: #fff;
94
94
  }
95
95
 
96
96
  /* Custom scrollbar */
97
- .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar {
97
+ .selectors-container[data-v-7d5cefa4]::-webkit-scrollbar {
98
98
  width: 8px;
99
99
  }
100
- .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar-track {
100
+ .selectors-container[data-v-7d5cefa4]::-webkit-scrollbar-track {
101
101
  background: transparent;
102
102
  }
103
- .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar-thumb {
103
+ .selectors-container[data-v-7d5cefa4]::-webkit-scrollbar-thumb {
104
104
  background-color: rgba(0, 0, 0, 0.1);
105
105
  border-radius: 4px;
106
106
  }
107
- .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar-thumb:hover {
107
+ .selectors-container[data-v-7d5cefa4]::-webkit-scrollbar-thumb:hover {
108
108
  background-color: rgba(0, 0, 0, 0.2);
109
109
  }
@@ -1,59 +1,59 @@
1
1
 
2
- .settings-section[data-v-2eba6653] {
2
+ .settings-section[data-v-3b48a5f1] {
3
3
  padding: 1.25rem;
4
4
  background: var(--el-bg-color);
5
5
  border-radius: 8px;
6
6
  margin-bottom: 1rem;
7
7
  }
8
- .table-container[data-v-2eba6653] {
8
+ .table-container[data-v-3b48a5f1] {
9
9
  max-height: 400px;
10
10
  overflow: auto;
11
11
  border: 1px solid var(--el-border-color-lighter);
12
12
  border-radius: 8px;
13
13
  margin-bottom: 1rem;
14
14
  }
15
- .modern-table[data-v-2eba6653] {
15
+ .modern-table[data-v-3b48a5f1] {
16
16
  width: 100%;
17
17
  border-collapse: separate;
18
18
  border-spacing: 0;
19
19
  background: white;
20
20
  }
21
- .modern-table th[data-v-2eba6653],
22
- .modern-table td[data-v-2eba6653] {
21
+ .modern-table th[data-v-3b48a5f1],
22
+ .modern-table td[data-v-3b48a5f1] {
23
23
  padding: 0.5rem;
24
24
  border: 1px solid var(--el-border-color-lighter);
25
25
  }
26
- .column-header[data-v-2eba6653] {
26
+ .column-header[data-v-3b48a5f1] {
27
27
  display: flex;
28
28
  flex-direction: column;
29
29
  gap: 0.25rem;
30
30
  }
31
- .type-select[data-v-2eba6653] {
31
+ .type-select[data-v-3b48a5f1] {
32
32
  width: 100%;
33
33
  }
34
- .type-select[data-v-2eba6653] .el-input__inner {
34
+ .type-select[data-v-3b48a5f1] .el-input__inner {
35
35
  font-size: 0.75rem;
36
36
  padding: 0 0.5rem;
37
37
  }
38
- .input-header[data-v-2eba6653],
39
- .input-cell[data-v-2eba6653] {
38
+ .input-header[data-v-3b48a5f1],
39
+ .input-cell[data-v-3b48a5f1] {
40
40
  width: 100%;
41
41
  border: none;
42
42
  padding: 0.25rem;
43
43
  font-size: 0.875rem;
44
44
  background: transparent;
45
45
  }
46
- .input-header[data-v-2eba6653] {
46
+ .input-header[data-v-3b48a5f1] {
47
47
  font-weight: 500;
48
48
  }
49
- .controls-section[data-v-2eba6653] {
49
+ .controls-section[data-v-3b48a5f1] {
50
50
  margin: 1rem 0;
51
51
  }
52
- .button-group[data-v-2eba6653] {
52
+ .button-group[data-v-3b48a5f1] {
53
53
  display: flex;
54
54
  gap: 0.5rem;
55
55
  }
56
- .delete-button[data-v-2eba6653] {
56
+ .delete-button[data-v-3b48a5f1] {
57
57
  width: 20px;
58
58
  height: 20px;
59
59
  padding: 0;
@@ -68,8 +68,8 @@
68
68
  position: relative;
69
69
  margin: 0 auto;
70
70
  }
71
- .delete-button[data-v-2eba6653]::before,
72
- .delete-button[data-v-2eba6653]::after {
71
+ .delete-button[data-v-3b48a5f1]::before,
72
+ .delete-button[data-v-3b48a5f1]::after {
73
73
  content: "";
74
74
  position: absolute;
75
75
  width: 10px;
@@ -77,19 +77,19 @@
77
77
  background-color: currentColor;
78
78
  transform: rotate(45deg);
79
79
  }
80
- .delete-button[data-v-2eba6653]::after {
80
+ .delete-button[data-v-3b48a5f1]::after {
81
81
  transform: rotate(-45deg);
82
82
  }
83
- .delete-button[data-v-2eba6653]:hover {
83
+ .delete-button[data-v-3b48a5f1]:hover {
84
84
  color: #ff4d4f;
85
85
  }
86
- .raw-data-section[data-v-2eba6653] {
86
+ .raw-data-section[data-v-3b48a5f1] {
87
87
  margin-top: 1rem;
88
88
  padding: 1rem;
89
89
  background: var(--el-bg-color-page);
90
90
  border-radius: 8px;
91
91
  }
92
- .raw-data-controls[data-v-2eba6653] {
92
+ .raw-data-controls[data-v-3b48a5f1] {
93
93
  margin-top: 0.5rem;
94
94
  display: flex;
95
95
  justify-content: flex-end;
@@ -1,8 +1,7 @@
1
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
2
- import { r as ref, d as defineComponent, l as computed, m as watch, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, a5 as withDirectives, a6 as vModelText, u as unref, h as createBlock, g as createTextVNode, s as normalizeClass, t as toDisplayString, i as createCommentVNode, E as ElNotification, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-683fc198.js";
3
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
4
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
5
- import "./designer-6c322d8e.js";
1
+ import { r as ref, d as defineComponent, l as computed, m as watch, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, a8 as withDirectives, a9 as vModelText, u as unref, h as createBlock, g as createTextVNode, s as normalizeClass, t as toDisplayString, i as createCommentVNode, E as ElNotification, _ as _export_sfc } from "./index-5ec791df.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-38410ebf.js";
4
+ import "./designer-1667687d.js";
6
5
  const createManualInput = (flowId = -1, nodeId = -1, pos_x = 0, pos_y = 0) => {
7
6
  const nodeManualInput = ref({
8
7
  flow_id: flowId,
@@ -32,8 +31,8 @@ const _hoisted_12 = {
32
31
  class: "raw-data-section"
33
32
  };
34
33
  const _hoisted_13 = { class: "raw-data-controls" };
35
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
36
- __name: "manualInput",
34
+ const _sfc_main = /* @__PURE__ */ defineComponent({
35
+ __name: "ManualInput",
37
36
  setup(__props, { expose: __expose }) {
38
37
  const nodeStore = useNodeStore();
39
38
  const dataLoaded = ref(false);
@@ -126,6 +125,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
126
125
  const nodeResult = await nodeStore.getNodeData(nodeId, false);
127
126
  if (nodeResult == null ? void 0 : nodeResult.setting_input) {
128
127
  nodeManualInput.value = nodeResult.setting_input;
128
+ console.log("nodeManualInput.value from input", nodeManualInput.value);
129
129
  if (nodeResult.setting_input.raw_data_format && nodeResult.setting_input.raw_data_format.columns && nodeResult.setting_input.raw_data_format.data) {
130
130
  populateTableFromRawDataFormat(nodeResult.setting_input.raw_data_format);
131
131
  } else if (nodeResult.setting_input.raw_data) {
@@ -135,6 +135,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
135
135
  }
136
136
  } else {
137
137
  nodeManualInput.value = createManualInput(nodeStore.flow_id, nodeStore.node_id).value;
138
+ console.log("nodeManualInput.value no data available", nodeManualInput.value);
138
139
  initializeEmptyTable();
139
140
  }
140
141
  rawDataString.value = JSON.stringify(rawData.value, null, 2);
@@ -387,80 +388,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
387
388
  };
388
389
  }
389
390
  });
390
- const manualInput_vue_vue_type_style_index_0_scoped_2eba6653_lang = "";
391
- const manualInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-2eba6653"]]);
392
- const _sfc_main = /* @__PURE__ */ defineComponent({
393
- __name: "ManualInput",
394
- props: {
395
- nodeId: {
396
- type: Number,
397
- required: true
398
- }
399
- },
400
- setup(__props) {
401
- const nodeStore = useNodeStore();
402
- const nodeButton = ref(null);
403
- const childComp = ref(null);
404
- const props = __props;
405
- const el = ref(null);
406
- const drawer = ref(false);
407
- const closeOnDrawer = () => {
408
- var _a;
409
- drawer.value = false;
410
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
411
- nodeStore.isDrawerOpen = false;
412
- };
413
- const openDrawer = async () => {
414
- if (nodeStore.node_id === props.nodeId) {
415
- return;
416
- }
417
- nodeStore.closeDrawer();
418
- drawer.value = true;
419
- const drawerOpen = nodeStore.isDrawerOpen;
420
- nodeStore.isDrawerOpen = true;
421
- await nextTick();
422
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
423
- return;
424
- }
425
- if (childComp.value) {
426
- childComp.value.loadNodeData(props.nodeId);
427
- nodeStore.openDrawer(closeOnDrawer);
428
- }
429
- };
430
- onMounted(async () => {
431
- await nextTick();
432
- });
433
- return (_ctx, _cache) => {
434
- return openBlock(), createElementBlock("div", {
435
- ref_key: "el",
436
- ref: el
437
- }, [
438
- createVNode(NodeButton, {
439
- ref_key: "nodeButton",
440
- ref: nodeButton,
441
- "node-id": __props.nodeId,
442
- "image-src": "manual_input.png",
443
- title: `${__props.nodeId}: Manual input`,
444
- onClick: openDrawer
445
- }, null, 8, ["node-id", "title"]),
446
- drawer.value ? (openBlock(), createBlock(Teleport, {
447
- key: 0,
448
- to: "#nodesettings"
449
- }, [
450
- createVNode(NodeTitle, {
451
- title: "Provide manual input",
452
- intro: "Provide a fixed data that can be used and combined with other tables."
453
- }),
454
- createVNode(manualInput, {
455
- ref_key: "childComp",
456
- ref: childComp,
457
- "node-id": __props.nodeId
458
- }, null, 8, ["node-id"])
459
- ])) : createCommentVNode("", true)
460
- ], 512);
461
- };
462
- }
463
- });
391
+ const ManualInput_vue_vue_type_style_index_0_scoped_3b48a5f1_lang = "";
392
+ const ManualInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3b48a5f1"]]);
464
393
  export {
465
- _sfc_main as default
394
+ ManualInput as default
466
395
  };
@@ -0,0 +1,5 @@
1
+ import { _ as _sfc_main } from "./MultiSelect.vue_vue_type_script_setup_true_lang-2a7c8312.js";
2
+ import "./index-5ec791df.js";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,63 @@
1
+ import { d as defineComponent, l as computed, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, f as createVNode, w as withCtx, F as Fragment, q as renderList, h as createBlock } from "./index-5ec791df.js";
2
+ const _hoisted_1 = { class: "component-container" };
3
+ const _hoisted_2 = { class: "listbox-subtitle" };
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "MultiSelect",
6
+ props: {
7
+ schema: {
8
+ type: Object,
9
+ required: true
10
+ },
11
+ modelValue: {
12
+ type: Array,
13
+ default: () => []
14
+ },
15
+ incomingColumns: {
16
+ type: Array,
17
+ default: () => []
18
+ }
19
+ },
20
+ emits: ["update:modelValue"],
21
+ setup(__props) {
22
+ const props = __props;
23
+ const options = computed(() => {
24
+ if (props.schema.options && !Array.isArray(props.schema.options) && props.schema.options.__type__ === "IncomingColumns") {
25
+ return props.incomingColumns;
26
+ }
27
+ if (Array.isArray(props.schema.options)) {
28
+ return props.schema.options;
29
+ }
30
+ return [];
31
+ });
32
+ return (_ctx, _cache) => {
33
+ const _component_el_option = resolveComponent("el-option");
34
+ const _component_el_select = resolveComponent("el-select");
35
+ return openBlock(), createElementBlock("div", _hoisted_1, [
36
+ createBaseVNode("label", _hoisted_2, toDisplayString(__props.schema.label), 1),
37
+ createVNode(_component_el_select, {
38
+ "model-value": __props.modelValue,
39
+ multiple: "",
40
+ filterable: "",
41
+ placeholder: "Select one or more options",
42
+ style: { "width": "100%" },
43
+ size: "large",
44
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
45
+ }, {
46
+ default: withCtx(() => [
47
+ (openBlock(true), createElementBlock(Fragment, null, renderList(options.value, (item) => {
48
+ return openBlock(), createBlock(_component_el_option, {
49
+ key: Array.isArray(item) ? item[0] : item,
50
+ label: Array.isArray(item) ? item[1] : item,
51
+ value: Array.isArray(item) ? item[0] : item
52
+ }, null, 8, ["label", "value"]);
53
+ }), 128))
54
+ ]),
55
+ _: 1
56
+ }, 8, ["model-value"])
57
+ ]);
58
+ };
59
+ }
60
+ });
61
+ export {
62
+ _sfc_main as _
63
+ };
@@ -0,0 +1,5 @@
1
+ import { _ as _sfc_main } from "./NumericInput.vue_vue_type_script_setup_true_lang-211a1990.js";
2
+ import "./index-5ec791df.js";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,35 @@
1
+ import { d as defineComponent, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, f as createVNode } from "./index-5ec791df.js";
2
+ const _hoisted_1 = { class: "component-container" };
3
+ const _hoisted_2 = { class: "listbox-subtitle" };
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "NumericInput",
6
+ props: {
7
+ schema: {
8
+ type: Object,
9
+ required: true
10
+ },
11
+ modelValue: Number
12
+ },
13
+ emits: ["update:modelValue"],
14
+ setup(__props) {
15
+ return (_ctx, _cache) => {
16
+ const _component_el_input_number = resolveComponent("el-input-number");
17
+ return openBlock(), createElementBlock("div", _hoisted_1, [
18
+ createBaseVNode("label", _hoisted_2, toDisplayString(__props.schema.label), 1),
19
+ createVNode(_component_el_input_number, {
20
+ "model-value": __props.modelValue,
21
+ min: __props.schema.min_value,
22
+ max: __props.schema.max_value,
23
+ placeholder: __props.schema.placeholder || "Enter number...",
24
+ "controls-position": "right",
25
+ size: "large",
26
+ style: { "width": "100%" },
27
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
28
+ }, null, 8, ["model-value", "min", "max", "placeholder"])
29
+ ]);
30
+ };
31
+ }
32
+ });
33
+ export {
34
+ _sfc_main as _
35
+ };
@@ -0,0 +1,37 @@
1
+
2
+ .main-part[data-v-86e92d7d] {
3
+ display: flex;
4
+ flex-direction: column;
5
+ padding: 20px;
6
+ border: 1px solid #ddd;
7
+ border-radius: 8px;
8
+ background-color: #fff;
9
+ margin-top: 20px;
10
+ }
11
+ .file-upload-row[data-v-86e92d7d] {
12
+ display: flex;
13
+ align-items: center;
14
+ gap: 10px;
15
+ margin-bottom: 20px;
16
+ }
17
+ .file-upload-label[data-v-86e92d7d] {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ background-color: #3498db;
22
+ border: 1px solid transparent;
23
+ border-radius: 4px;
24
+ padding: 10px 20px;
25
+ color: white;
26
+ font-size: 16px;
27
+ cursor: pointer;
28
+ transition: all 0.3s ease;
29
+ }
30
+ .file-upload-label[data-v-86e92d7d]:hover {
31
+ background-color: #2980b9;
32
+ }
33
+ .warning-message[data-v-86e92d7d] {
34
+ color: #e74c3c;
35
+ display: flex;
36
+ align-items: center;
37
+ }