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,11 +1,10 @@
1
- import { r as ref, d as defineComponent, l as computed, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, h as createBlock, u as unref, _ as _export_sfc, 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 { s as selectDynamic } from "./selectDynamic-de91449a.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
6
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
7
- import "./UnavailableFields-8b0cb48e.js";
8
- import "./designer-6c322d8e.js";
1
+ import { r as ref, d as defineComponent, l as computed, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, h as createBlock, u as unref, _ as _export_sfc } from "./index-5ec791df.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-22bac17c.js";
3
+ import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
4
+ import { s as selectDynamic } from "./selectDynamic-7ad95bca.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-38410ebf.js";
6
+ import "./UnavailableFields-66239e83.js";
7
+ import "./designer-1667687d.js";
9
8
  const createSelectInputFromName = (columnName, keep = true) => {
10
9
  return {
11
10
  old_name: columnName,
@@ -19,12 +18,12 @@ const createSelectInputFromName = (columnName, keep = true) => {
19
18
  };
20
19
  };
21
20
  ref(null);
22
- const _hoisted_1$1 = {
21
+ const _hoisted_1 = {
23
22
  key: 0,
24
23
  class: "listbox-wrapper"
25
24
  };
26
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
27
- __name: "unique",
25
+ const _sfc_main = /* @__PURE__ */ defineComponent({
26
+ __name: "Unique",
28
27
  setup(__props, { expose: __expose }) {
29
28
  const nodeStore = useNodeStore();
30
29
  const showContextMenu = ref(false);
@@ -35,7 +34,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
35
34
  const nodeUnique = ref(null);
36
35
  const nodeData = ref(null);
37
36
  const selection = ref([]);
38
- const uniqueInput2 = ref({
37
+ const uniqueInput = ref({
39
38
  columns: [],
40
39
  strategy: "any"
41
40
  });
@@ -56,26 +55,25 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
56
55
  if (nodeData.value) {
57
56
  if (nodeUnique.value) {
58
57
  if (nodeUnique.value.unique_input) {
59
- uniqueInput2.value = nodeUnique.value.unique_input;
58
+ uniqueInput.value = nodeUnique.value.unique_input;
60
59
  } else {
61
- nodeUnique.value.unique_input = uniqueInput2.value;
60
+ nodeUnique.value.unique_input = uniqueInput.value;
62
61
  }
63
- loadSelection(nodeData.value, uniqueInput2.value.columns);
62
+ loadSelection(nodeData.value, uniqueInput.value.columns);
64
63
  }
65
64
  }
66
65
  };
67
66
  const calculateSelects = (updatedInputs) => {
68
67
  console.log(updatedInputs);
69
68
  selection.value = updatedInputs;
70
- uniqueInput2.value.columns = updatedInputs.filter((input) => input.keep).map((input) => input.old_name);
69
+ uniqueInput.value.columns = updatedInputs.filter((input) => input.keep).map((input) => input.old_name);
71
70
  };
72
71
  const setUniqueColumns = () => {
73
- uniqueInput2.value.columns = selection.value.filter((input) => input.keep).map((input) => input.old_name);
72
+ uniqueInput.value.columns = selection.value.filter((input) => input.keep).map((input) => input.old_name);
74
73
  };
75
74
  const loadNodeData = async (nodeId) => {
76
75
  loadData(nodeId);
77
76
  dataLoaded.value = true;
78
- nodeStore.isDrawerOpen = true;
79
77
  };
80
78
  const handleClickOutside = (event) => {
81
79
  var _a;
@@ -92,14 +90,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
92
90
  const missingColumns = computed(() => {
93
91
  var _a, _b;
94
92
  if (nodeData.value && ((_a = nodeData.value.main_input) == null ? void 0 : _a.columns)) {
95
- return getMissingColumns((_b = nodeData.value.main_input) == null ? void 0 : _b.columns, uniqueInput2.value.columns);
93
+ return getMissingColumns((_b = nodeData.value.main_input) == null ? void 0 : _b.columns, uniqueInput.value.columns);
96
94
  }
97
95
  return [];
98
96
  });
99
97
  const calculateMissingColumns = () => {
100
98
  var _a, _b;
101
99
  if (nodeData.value && ((_a = nodeData.value.main_input) == null ? void 0 : _a.columns)) {
102
- return getMissingColumns((_b = nodeData.value.main_input) == null ? void 0 : _b.columns, uniqueInput2.value.columns);
100
+ return getMissingColumns((_b = nodeData.value.main_input) == null ? void 0 : _b.columns, uniqueInput.value.columns);
103
101
  }
104
102
  return [];
105
103
  };
@@ -149,7 +147,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
149
147
  var _a, _b, _c, _d;
150
148
  dataLoaded.value = false;
151
149
  setUniqueColumns();
152
- nodeStore.isDrawerOpen = false;
153
150
  console.log("doing this");
154
151
  console.log((_a = nodeUnique.value) == null ? void 0 : _a.is_setup);
155
152
  console.log(nodeUnique.value);
@@ -174,7 +171,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
174
171
  window.removeEventListener("click", handleClickOutside);
175
172
  });
176
173
  return (_ctx, _cache) => {
177
- return dataLoaded.value && nodeUnique.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
174
+ return dataLoaded.value && nodeUnique.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
178
175
  createVNode(GenericNodeSettings, {
179
176
  modelValue: nodeUnique.value,
180
177
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => nodeUnique.value = $event)
@@ -200,74 +197,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
200
197
  };
201
198
  }
202
199
  });
203
- const unique_vue_vue_type_style_index_0_scoped_8edf8bb6_lang = "";
204
- const uniqueInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-8edf8bb6"]]);
205
- const _hoisted_1 = { ref: "el" };
206
- const _sfc_main = /* @__PURE__ */ defineComponent({
207
- __name: "Unique",
208
- props: {
209
- nodeId: {
210
- type: Number,
211
- required: true
212
- }
213
- },
214
- setup(__props) {
215
- const nodeStore = useNodeStore();
216
- const childComp = ref(null);
217
- const props = __props;
218
- const drawer = ref(false);
219
- const closeOnDrawer = () => {
220
- var _a;
221
- drawer.value = false;
222
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
223
- };
224
- const openDrawer = async () => {
225
- if (nodeStore.node_id === props.nodeId) {
226
- return;
227
- }
228
- nodeStore.closeDrawer();
229
- drawer.value = true;
230
- const drawerOpen = nodeStore.isDrawerOpen;
231
- nodeStore.isDrawerOpen = true;
232
- await nextTick();
233
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
234
- return;
235
- }
236
- if (childComp.value) {
237
- childComp.value.loadNodeData(props.nodeId);
238
- nodeStore.openDrawer(closeOnDrawer);
239
- }
240
- };
241
- onMounted(async () => {
242
- await nextTick();
243
- });
244
- return (_ctx, _cache) => {
245
- return openBlock(), createElementBlock("div", _hoisted_1, [
246
- createVNode(NodeButton, {
247
- ref: "nodeButton",
248
- "node-id": __props.nodeId,
249
- "image-src": "unique.png",
250
- title: `${__props.nodeId}: Drop duplicates`,
251
- onClick: openDrawer
252
- }, null, 8, ["node-id", "title"]),
253
- drawer.value ? (openBlock(), createBlock(Teleport, {
254
- key: 0,
255
- to: "#nodesettings"
256
- }, [
257
- createVNode(NodeTitle, {
258
- title: "Drop duplicates",
259
- intro: "Make the table unique by one or more columns"
260
- }),
261
- createVNode(uniqueInput, {
262
- ref_key: "childComp",
263
- ref: childComp,
264
- "node-id": __props.nodeId
265
- }, null, 8, ["node-id"])
266
- ])) : createCommentVNode("", true)
267
- ], 512);
268
- };
269
- }
270
- });
200
+ const Unique_vue_vue_type_style_index_0_scoped_c7455058_lang = "";
201
+ const Unique = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c7455058"]]);
271
202
  export {
272
- _sfc_main as default
203
+ Unique as default
273
204
  };
@@ -1,5 +1,5 @@
1
1
 
2
- .context-menu[data-v-001e3d98] {
2
+ .context-menu[data-v-c7455058] {
3
3
  position: fixed;
4
4
  z-index: 1000;
5
5
  border: 1px solid #ccc;
@@ -9,7 +9,7 @@
9
9
  border-radius: 4px;
10
10
  user-select: none;
11
11
  }
12
- .context-menu button[data-v-001e3d98] {
12
+ .context-menu button[data-v-c7455058] {
13
13
  display: block;
14
14
  background: none;
15
15
  border: none;
@@ -19,17 +19,17 @@
19
19
  cursor: pointer;
20
20
  z-index: 100;
21
21
  }
22
- .context-menu button[data-v-001e3d98]:hover {
22
+ .context-menu button[data-v-c7455058]:hover {
23
23
  background-color: #f0f0f0;
24
24
  }
25
- .table-wrapper[data-v-001e3d98] {
25
+ .table-wrapper[data-v-c7455058] {
26
26
  max-height: 300px; /* Adjust this value as needed */
27
27
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* subtle shadow for depth */
28
28
  border-radius: 8px; /* rounded corners */
29
29
  overflow: auto; /* ensures the rounded corners are applied to the child elements */
30
30
  margin: 5px; /* adds a small margin around the table */
31
31
  }
32
- .context-menu[data-v-001e3d98] {
32
+ .context-menu[data-v-c7455058] {
33
33
  position: fixed;
34
34
  z-index: 1000;
35
35
  border: 1px solid #ccc;
@@ -37,15 +37,15 @@
37
37
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
38
38
  border-radius: 4px;
39
39
  }
40
- .context-menu ul[data-v-001e3d98] {
40
+ .context-menu ul[data-v-c7455058] {
41
41
  list-style: none;
42
42
  padding: 0;
43
43
  margin: 0;
44
44
  }
45
- .context-menu li[data-v-001e3d98] {
45
+ .context-menu li[data-v-c7455058] {
46
46
  padding: 8px 16px;
47
47
  cursor: pointer;
48
48
  }
49
- .context-menu li[data-v-001e3d98]:hover {
49
+ .context-menu li[data-v-c7455058]:hover {
50
50
  background-color: #f0f0f0;
51
51
  }
@@ -0,0 +1,30 @@
1
+
2
+ .context-menu[data-v-e713e710] {
3
+ position: fixed;
4
+ z-index: 1000;
5
+ border: 1px solid #ccc;
6
+ background-color: white;
7
+ padding: 8px;
8
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
9
+ border-radius: 4px;
10
+ }
11
+ .context-menu ul[data-v-e713e710] {
12
+ list-style: none;
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+ .context-menu li[data-v-e713e710] {
17
+ padding: 8px 16px;
18
+ cursor: pointer;
19
+ }
20
+ .context-menu li[data-v-e713e710]:hover {
21
+ background-color: #f0f0f0;
22
+ }
23
+ .switch-container[data-v-e713e710] {
24
+ display: flex;
25
+ align-items: center;
26
+ margin: 12px;
27
+ }
28
+ .switch-container span[data-v-e713e710] {
29
+ margin-right: 10px;
30
+ }
@@ -1,95 +1,10 @@
1
- import { d as defineComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, T as normalizeStyle, _ as _export_sfc, g as createTextVNode, i as createCommentVNode, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, f as createVNode, w as withCtx, v as withModifiers, h as createBlock, a7 as Teleport } from "./index-683fc198.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
3
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
4
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
5
- import "./designer-6c322d8e.js";
6
- const _hoisted_1$3 = ["onClick"];
7
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
8
- __name: "ContextMenu",
9
- props: {
10
- position: { type: Object, required: true },
11
- options: {
12
- type: Array,
13
- required: true
14
- }
15
- },
16
- emits: ["select", "close"],
17
- setup(__props, { emit: __emit }) {
18
- const emit = __emit;
19
- const selectOption = (action) => {
20
- emit("select", action);
21
- emit("close");
22
- };
23
- return (_ctx, _cache) => {
24
- return openBlock(), createElementBlock("div", {
25
- class: "context-menu",
26
- style: normalizeStyle({ top: __props.position.y + "px", left: __props.position.x + "px" })
27
- }, [
28
- createBaseVNode("ul", null, [
29
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
30
- return openBlock(), createElementBlock("li", {
31
- key: option.action,
32
- class: normalizeClass({ disabled: option.disabled }),
33
- onClick: ($event) => !option.disabled && selectOption(option.action)
34
- }, toDisplayString(option.label), 11, _hoisted_1$3);
35
- }), 128))
36
- ])
37
- ], 4);
38
- };
39
- }
40
- });
41
- const ContextMenu_vue_vue_type_style_index_0_scoped_4f9e01e5_lang = "";
42
- const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-4f9e01e5"]]);
43
- const _hoisted_1$2 = { class: "listbox-wrapper" };
44
- const _hoisted_2$1 = { class: "listbox-row" };
45
- const _hoisted_3$1 = { class: "items-container" };
46
- const _hoisted_4$1 = { key: 0 };
47
- const _hoisted_5$1 = ["onClick"];
48
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
49
- __name: "SettingsSection",
50
- props: {
51
- title: { type: String, required: true },
52
- titleFontSize: { type: String, default: "15px" },
53
- items: { type: Array, required: true }
54
- },
55
- emits: ["removeItem"],
56
- setup(__props, { emit: __emit }) {
57
- const props = __props;
58
- const emit = __emit;
59
- const emitRemove = (item) => {
60
- emit("removeItem", item);
61
- };
62
- return (_ctx, _cache) => {
63
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
64
- createBaseVNode("div", _hoisted_2$1, [
65
- createBaseVNode("div", {
66
- class: "listbox-title",
67
- style: normalizeStyle({ fontSize: props.titleFontSize })
68
- }, toDisplayString(__props.title), 5),
69
- createBaseVNode("div", _hoisted_3$1, [
70
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
71
- return openBlock(), createElementBlock("div", {
72
- key: index,
73
- class: "item-box"
74
- }, [
75
- item !== "" ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
76
- createTextVNode(toDisplayString(item) + " ", 1),
77
- createBaseVNode("span", {
78
- class: "remove-btn",
79
- onClick: ($event) => emitRemove(item)
80
- }, "x", 8, _hoisted_5$1)
81
- ])) : createCommentVNode("", true)
82
- ]);
83
- }), 128))
84
- ])
85
- ])
86
- ]);
87
- };
88
- }
89
- });
90
- const SettingsSection_vue_vue_type_style_index_0_scoped_fd7e6af1_lang = "";
91
- const SettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-fd7e6af1"]]);
92
- const _hoisted_1$1 = {
1
+ import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, t as toDisplayString, h as createBlock, i as createCommentVNode, _ as _export_sfc } from "./index-5ec791df.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
3
+ import ContextMenu from "./ContextMenu-a779eed7.js";
4
+ import SettingsSection from "./SettingsSection-7c68b19f.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-38410ebf.js";
6
+ import "./designer-1667687d.js";
7
+ const _hoisted_1 = {
93
8
  key: 0,
94
9
  class: "listbox-wrapper"
95
10
  };
@@ -104,7 +19,7 @@ const _hoisted_8 = {
104
19
  class: "listbox-wrapper"
105
20
  };
106
21
  const _hoisted_9 = { class: "listbox-wrapper" };
107
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22
+ const _sfc_main = /* @__PURE__ */ defineComponent({
108
23
  __name: "Unpivot",
109
24
  setup(__props, { expose: __expose }) {
110
25
  const nodeStore = useNodeStore();
@@ -216,7 +131,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
216
131
  console.log("loadNodeData from unpivot ");
217
132
  nodeData.value = await nodeStore.getNodeData(nodeId, false);
218
133
  nodeUnpivot.value = (_a = nodeData.value) == null ? void 0 : _a.setting_input;
219
- console.log(nodeUnpivot.value);
220
134
  if (nodeData.value) {
221
135
  if (nodeUnpivot.value) {
222
136
  if (nodeUnpivot.value.unpivot_input) {
@@ -227,7 +141,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
227
141
  }
228
142
  }
229
143
  dataLoaded.value = true;
230
- nodeStore.isDrawerOpen = true;
231
144
  console.log("loadNodeData from groupby");
232
145
  };
233
146
  const handleClickOutside = (event) => {
@@ -249,7 +162,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
249
162
  nodeUnpivot.value.unpivot_input = unpivotInput.value;
250
163
  nodeStore.updateSettings(nodeUnpivot);
251
164
  }
252
- nodeStore.isDrawerOpen = false;
253
165
  };
254
166
  __expose({
255
167
  loadNodeData,
@@ -266,7 +178,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
266
178
  const _component_el_switch = resolveComponent("el-switch");
267
179
  const _component_el_option = resolveComponent("el-option");
268
180
  const _component_el_select = resolveComponent("el-select");
269
- return dataLoaded.value && nodeUnpivot.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
181
+ return dataLoaded.value && nodeUnpivot.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
270
182
  createVNode(GenericNodeSettings, {
271
183
  modelValue: nodeUnpivot.value,
272
184
  "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => nodeUnpivot.value = $event)
@@ -368,74 +280,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
368
280
  };
369
281
  }
370
282
  });
371
- const Unpivot_vue_vue_type_style_index_0_scoped_9746d208_lang = "";
372
- const readInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-9746d208"]]);
373
- const _hoisted_1 = { ref: "el" };
374
- const _sfc_main = /* @__PURE__ */ defineComponent({
375
- __name: "Unpivot",
376
- props: {
377
- nodeId: {
378
- type: Number,
379
- required: true
380
- }
381
- },
382
- setup(__props) {
383
- const nodeStore = useNodeStore();
384
- const childComp = ref(null);
385
- const props = __props;
386
- const drawer = ref(false);
387
- const closeOnDrawer = () => {
388
- var _a;
389
- drawer.value = false;
390
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
391
- };
392
- const openDrawer = async () => {
393
- if (nodeStore.node_id === props.nodeId) {
394
- return;
395
- }
396
- nodeStore.closeDrawer();
397
- drawer.value = true;
398
- const drawerOpen = nodeStore.isDrawerOpen;
399
- nodeStore.isDrawerOpen = true;
400
- await nextTick();
401
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
402
- return;
403
- }
404
- if (childComp.value) {
405
- childComp.value.loadNodeData(props.nodeId);
406
- nodeStore.openDrawer(closeOnDrawer);
407
- }
408
- };
409
- onMounted(async () => {
410
- await nextTick();
411
- });
412
- return (_ctx, _cache) => {
413
- return openBlock(), createElementBlock("div", _hoisted_1, [
414
- createVNode(NodeButton, {
415
- ref: "nodeButton",
416
- "node-id": __props.nodeId,
417
- "image-src": "unpivot.png",
418
- title: `${__props.nodeId}: Unpivot data`,
419
- onClick: openDrawer
420
- }, null, 8, ["node-id", "title"]),
421
- drawer.value ? (openBlock(), createBlock(Teleport, {
422
- key: 0,
423
- to: "#nodesettings"
424
- }, [
425
- createVNode(NodeTitle, {
426
- title: "Unpivot data",
427
- intro: "Pivot columns to rows"
428
- }),
429
- createVNode(readInput, {
430
- ref_key: "childComp",
431
- ref: childComp,
432
- "node-id": __props.nodeId
433
- }, null, 8, ["node-id"])
434
- ])) : createCommentVNode("", true)
435
- ], 512);
436
- };
437
- }
438
- });
283
+ const Unpivot_vue_vue_type_style_index_0_scoped_e713e710_lang = "";
284
+ const Unpivot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e713e710"]]);
439
285
  export {
440
- _sfc_main as default
286
+ Unpivot as default
441
287
  };
@@ -0,0 +1,13 @@
1
+
2
+ .validation-wrapper[data-v-1575257f] {
3
+ background-color: #ffffff;
4
+ }
5
+ .error-message[data-v-1575257f] {
6
+ color: #991b1b;
7
+ margin: 5px 0;
8
+ font-size: 12px;
9
+ }
10
+ .warning-icon[data-v-1575257f] {
11
+ cursor: pointer;
12
+ font-size: 24px;
13
+ }
@@ -0,0 +1,51 @@
1
+ import { d as defineComponent, l as computed, c as openBlock, h as createBlock, w as withCtx, f as createVNode, p as createBaseVNode, u as unref, ar as ElIcon, e as createElementBlock, i as createCommentVNode, as as ElPopover, _ as _export_sfc } from "./index-5ec791df.js";
2
+ const _hoisted_1 = { class: "validation-wrapper" };
3
+ const _hoisted_2 = {
4
+ key: 0,
5
+ class: "error-message"
6
+ };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "UnpivotValidation",
9
+ props: {
10
+ unpivotInput: {}
11
+ },
12
+ setup(__props) {
13
+ const props = __props;
14
+ const showValidationMessages = computed(() => {
15
+ return !(props.unpivotInput.index_columns.length === 0);
16
+ });
17
+ return (_ctx, _cache) => {
18
+ return showValidationMessages.value ? (openBlock(), createBlock(unref(ElPopover), {
19
+ key: 0,
20
+ placement: "top",
21
+ width: "200",
22
+ trigger: "hover",
23
+ content: "Some required fields are missing"
24
+ }, {
25
+ reference: withCtx(() => [
26
+ createVNode(unref(ElIcon), {
27
+ color: "#FF6B6B",
28
+ class: "warning-icon"
29
+ }, {
30
+ default: withCtx(() => _cache[0] || (_cache[0] = [
31
+ createBaseVNode("i", { class: "el-icon-warning" }, null, -1)
32
+ ])),
33
+ _: 1,
34
+ __: [0]
35
+ })
36
+ ]),
37
+ default: withCtx(() => [
38
+ createBaseVNode("div", _hoisted_1, [
39
+ !_ctx.unpivotInput.index_columns ? (openBlock(), createElementBlock("p", _hoisted_2, "Index Column cannot be empty.")) : createCommentVNode("", true)
40
+ ])
41
+ ]),
42
+ _: 1
43
+ })) : createCommentVNode("", true);
44
+ };
45
+ }
46
+ });
47
+ const UnpivotValidation_vue_vue_type_style_index_0_scoped_1575257f_lang = "";
48
+ const UnpivotValidation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1575257f"]]);
49
+ export {
50
+ UnpivotValidation as default
51
+ };