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

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

Potentially problematic release.


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

Files changed (161) hide show
  1. flowfile/__init__.py +4 -3
  2. flowfile/api.py +1 -1
  3. flowfile/web/static/assets/{CloudConnectionManager-c20a740f.js → CloudConnectionManager-d7c2c028.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-960b400a.js → CloudStorageReader-d467329f.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-e3decbdd.js → CloudStorageWriter-071b8b00.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ContextMenu-2dea5e27.js +41 -0
  8. flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
  9. flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
  10. flowfile/web/static/assets/ContextMenu-785554c4.js +41 -0
  11. flowfile/web/static/assets/ContextMenu-a51e19ea.js +41 -0
  12. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  13. flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
  14. flowfile/web/static/assets/{CrossJoin-d67e2405.js → CrossJoin-cf68ec7a.js} +14 -84
  15. flowfile/web/static/assets/{DatabaseConnectionSettings-a81e0f7e.js → DatabaseConnectionSettings-435c5dd8.js} +3 -3
  16. flowfile/web/static/assets/{DatabaseManager-9ea35e84.js → DatabaseManager-349e33a8.js} +2 -2
  17. flowfile/web/static/assets/{DatabaseReader-9578bfa5.js → DatabaseReader-8075bd28.js} +14 -114
  18. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  19. flowfile/web/static/assets/{DatabaseWriter-19531098.js → DatabaseWriter-3e2dda89.js} +13 -74
  20. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  21. flowfile/web/static/assets/ExploreData-76ec698c.js +192 -0
  22. flowfile/web/static/assets/{ExternalSource-2297ef96.js → ExternalSource-609a265c.js} +8 -79
  23. flowfile/web/static/assets/{Filter-f211c03a.js → Filter-97cff793.js} +12 -85
  24. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  25. flowfile/web/static/assets/{Formula-4207ea31.js → Formula-09de0ec9.js} +18 -85
  26. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  27. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  28. flowfile/web/static/assets/{FuzzyMatch-bf120df0.js → FuzzyMatch-bdf70248.js} +16 -87
  29. flowfile/web/static/assets/{GraphSolver-5bb7497a.js → GraphSolver-0b5a0e05.js} +13 -159
  30. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  31. flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
  32. flowfile/web/static/assets/{GroupBy-92c81b65.js → GroupBy-eaddadde.js} +12 -75
  33. flowfile/web/static/assets/{Join-4e49a274.js → Join-3313371b.js} +15 -85
  34. flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
  35. flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
  36. flowfile/web/static/assets/{ManualInput-90998ae8.js → ManualInput-e8bfc0be.js} +11 -82
  37. flowfile/web/static/assets/{Output-81e3e917.js → Output-7303bb09.js} +13 -243
  38. flowfile/web/static/assets/Output-ddc9079f.css +37 -0
  39. flowfile/web/static/assets/{Pivot-a3419842.js → Pivot-3b1c54ef.js} +14 -138
  40. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  41. flowfile/web/static/assets/PivotValidation-3bb36c8f.js +61 -0
  42. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  43. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  44. flowfile/web/static/assets/PivotValidation-eaa819c0.js +61 -0
  45. flowfile/web/static/assets/{PolarsCode-72710deb.js → PolarsCode-aa12e25d.js} +13 -80
  46. flowfile/web/static/assets/Read-6b17491f.css +62 -0
  47. flowfile/web/static/assets/Read-a2bfc618.js +243 -0
  48. flowfile/web/static/assets/RecordCount-aa0dc082.js +53 -0
  49. flowfile/web/static/assets/{RecordId-10baf191.js → RecordId-48ee1a3b.js} +8 -80
  50. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  51. flowfile/web/static/assets/SQLQueryComponent-e149dbf2.js +38 -0
  52. flowfile/web/static/assets/{Sample-3ed9a0ae.js → Sample-f06cb97a.js} +8 -77
  53. flowfile/web/static/assets/{SecretManager-0d49c0e8.js → SecretManager-37f34886.js} +2 -2
  54. flowfile/web/static/assets/{Select-8a02a0b3.js → Select-b60e6c47.js} +11 -85
  55. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  56. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  57. flowfile/web/static/assets/SettingsSection-70e5a7b1.js +53 -0
  58. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  59. flowfile/web/static/assets/{SettingsSection-4c0f45f5.js → SettingsSection-75b6cf4f.js} +2 -40
  60. flowfile/web/static/assets/SettingsSection-e57a672e.js +45 -0
  61. flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
  62. flowfile/web/static/assets/{Sort-f55c9f9d.js → Sort-51b1ee4d.js} +12 -97
  63. flowfile/web/static/assets/{TextToRows-5dbc2145.js → TextToRows-26835f8f.js} +14 -83
  64. flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
  65. flowfile/web/static/assets/{UnavailableFields-a1768e52.js → UnavailableFields-88a4cd0c.js} +2 -2
  66. flowfile/web/static/assets/Union-4d0088eb.js +77 -0
  67. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  68. flowfile/web/static/assets/{Unique-46b250da.js → Unique-7d554a62.js} +22 -91
  69. flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
  70. flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
  71. flowfile/web/static/assets/{Unpivot-25ac84cc.js → Unpivot-4668595c.js} +12 -166
  72. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  73. flowfile/web/static/assets/UnpivotValidation-d4f0e0e8.js +51 -0
  74. flowfile/web/static/assets/{ExploreData-40476474.js → VueGraphicWalker-5324d566.js} +4 -264
  75. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  76. flowfile/web/static/assets/{api-6ef0dcef.js → api-271ed117.js} +1 -1
  77. flowfile/web/static/assets/{api-a0abbdc7.js → api-31e4fea6.js} +1 -1
  78. flowfile/web/static/assets/{designer-186f2e71.css → designer-091bdc3f.css} +819 -184
  79. flowfile/web/static/assets/{designer-13eabd83.js → designer-bf3d9487.js} +2214 -680
  80. flowfile/web/static/assets/{documentation-b87e7f6f.js → documentation-4d0a1cea.js} +1 -1
  81. flowfile/web/static/assets/{dropDown-13564764.js → dropDown-025888df.js} +1 -1
  82. flowfile/web/static/assets/{fullEditor-fd2cd6f9.js → fullEditor-1df991ec.js} +2 -2
  83. flowfile/web/static/assets/{genericNodeSettings-71e11604.js → genericNodeSettings-d3b2b2ac.js} +3 -3
  84. flowfile/web/static/assets/{index-f6c15e76.js → index-d0518598.js} +210 -31
  85. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  86. flowfile/web/static/assets/outputCsv-d8457527.js +86 -0
  87. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  88. flowfile/web/static/assets/outputExcel-be89153e.js +56 -0
  89. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  90. flowfile/web/static/assets/outputParquet-fabb445a.js +31 -0
  91. flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
  92. flowfile/web/static/assets/readCsv-e8359522.js +178 -0
  93. flowfile/web/static/assets/readExcel-dabaf51b.js +203 -0
  94. flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
  95. flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
  96. flowfile/web/static/assets/readParquet-e0771ef2.js +26 -0
  97. flowfile/web/static/assets/{secretApi-dd636aa2.js → secretApi-ce823eee.js} +1 -1
  98. flowfile/web/static/assets/{selectDynamic-af36165e.js → selectDynamic-5476546e.js} +7 -7
  99. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  100. flowfile/web/static/assets/{vue-codemirror.esm-2847001e.js → vue-codemirror.esm-9ed00d50.js} +29 -33
  101. flowfile/web/static/assets/{vue-content-loader.es-0371da73.js → vue-content-loader.es-7bca2d9b.js} +1 -1
  102. flowfile/web/static/index.html +1 -1
  103. {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/METADATA +2 -1
  104. {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/RECORD +147 -117
  105. flowfile_core/configs/flow_logger.py +5 -13
  106. flowfile_core/configs/node_store/nodes.py +303 -44
  107. flowfile_core/configs/settings.py +6 -3
  108. flowfile_core/database/connection.py +5 -21
  109. flowfile_core/fileExplorer/funcs.py +239 -121
  110. flowfile_core/flowfile/code_generator/code_generator.py +36 -0
  111. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +60 -80
  112. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +61 -0
  113. flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +44 -3
  114. flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +3 -3
  115. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +33 -10
  116. flowfile_core/flowfile/flow_graph.py +223 -118
  117. flowfile_core/flowfile/flow_node/flow_node.py +56 -19
  118. flowfile_core/flowfile/flow_node/models.py +0 -2
  119. flowfile_core/flowfile/flow_node/schema_callback.py +138 -43
  120. flowfile_core/flowfile/graph_tree/graph_tree.py +250 -0
  121. flowfile_core/flowfile/graph_tree/models.py +15 -0
  122. flowfile_core/flowfile/handler.py +22 -3
  123. flowfile_core/flowfile/manage/compatibility_enhancements.py +1 -1
  124. flowfile_core/flowfile/{flow_data_engine/fuzzy_matching/settings_validator.py → schema_callbacks.py} +72 -16
  125. flowfile_core/flowfile/setting_generator/settings.py +2 -2
  126. flowfile_core/flowfile/util/execution_orderer.py +9 -0
  127. flowfile_core/flowfile/util/node_skipper.py +8 -0
  128. flowfile_core/main.py +4 -1
  129. flowfile_core/routes/routes.py +59 -10
  130. flowfile_core/schemas/input_schema.py +0 -1
  131. flowfile_core/schemas/output_model.py +5 -2
  132. flowfile_core/schemas/schemas.py +48 -3
  133. flowfile_core/schemas/transform_schema.py +28 -38
  134. flowfile_frame/__init__.py +1 -4
  135. flowfile_frame/flow_frame.py +33 -4
  136. flowfile_frame/flow_frame.pyi +2 -0
  137. flowfile_worker/__init__.py +6 -35
  138. flowfile_worker/funcs.py +7 -3
  139. flowfile_worker/main.py +5 -2
  140. flowfile_worker/models.py +3 -1
  141. flowfile_worker/routes.py +47 -5
  142. shared/__init__.py +15 -0
  143. shared/storage_config.py +243 -0
  144. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  145. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  146. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  147. flowfile/web/static/assets/Read-c4059daf.js +0 -701
  148. flowfile/web/static/assets/RecordCount-c2b5e095.js +0 -122
  149. flowfile/web/static/assets/Union-f2aefdc9.js +0 -146
  150. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  151. flowfile/web/static/assets/nodeTitle-988d9efe.js +0 -227
  152. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  153. flowfile_worker/polars_fuzzy_match/matcher.py +0 -435
  154. flowfile_worker/polars_fuzzy_match/models.py +0 -36
  155. flowfile_worker/polars_fuzzy_match/pre_process.py +0 -213
  156. flowfile_worker/polars_fuzzy_match/process.py +0 -86
  157. flowfile_worker/polars_fuzzy_match/utils.py +0 -50
  158. {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/LICENSE +0 -0
  159. {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/WHEEL +0 -0
  160. {flowfile-0.3.8.dist-info → flowfile-0.3.10.dist-info}/entry_points.txt +0 -0
  161. {flowfile_worker/polars_fuzzy_match → flowfile_core/flowfile/graph_tree}/__init__.py +0 -0
@@ -1,701 +0,0 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-0371da73.js";
2
- import { a as axios, d as defineComponent, r as ref, l as computed, n as onMounted, m as watch, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, f as createVNode, w as withCtx, i as createCommentVNode, t as toDisplayString, a5 as withDirectives, a6 as vModelText, h as createBlock, u as unref, _ as _export_sfc, ar as ElCheckbox, F as Fragment, q as renderList, an as ElOption, ao as ElSelect, as as ElSlider, R as nextTick, a7 as Teleport } from "./index-f6c15e76.js";
3
- import { C as ColumnSelector } from "./dropDown-13564764.js";
4
- import { u as useNodeStore } from "./vue-codemirror.esm-2847001e.js";
5
- import { F as FileBrowser } from "./designer-13eabd83.js";
6
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-988d9efe.js";
7
- const getXlsxSheetNamesForPath = async (path) => {
8
- const response = await axios.get(`/api/get_xlsx_sheet_names?path=${path}`);
9
- return response.data;
10
- };
11
- const _hoisted_1$3 = { key: 0 };
12
- const _hoisted_2$2 = { class: "table" };
13
- const _hoisted_3$2 = {
14
- key: 0,
15
- class: "selectors"
16
- };
17
- const _hoisted_4$2 = { class: "row" };
18
- const _hoisted_5$2 = { class: "input-wrapper" };
19
- const _hoisted_6$2 = {
20
- key: 0,
21
- class: "warning-sign"
22
- };
23
- const _hoisted_7$2 = { class: "row" };
24
- const _hoisted_8$1 = { class: "button-container" };
25
- const _hoisted_9$1 = {
26
- key: 0,
27
- class: "optional-section"
28
- };
29
- const _hoisted_10 = { class: "row" };
30
- const _hoisted_11 = { class: "input-wrapper" };
31
- const _hoisted_12 = { class: "input-wrapper" };
32
- const _hoisted_13 = { class: "row" };
33
- const _hoisted_14 = { class: "input-wrapper" };
34
- const _hoisted_15 = { class: "input-wrapper" };
35
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
36
- __name: "readExcel",
37
- props: {
38
- modelValue: {
39
- type: Object,
40
- required: true
41
- }
42
- },
43
- emits: ["update:modelValue"],
44
- setup(__props, { emit: __emit }) {
45
- const props = __props;
46
- const isLoaded = ref(false);
47
- const emit = __emit;
48
- const localExcelTable = ref({ ...props.modelValue });
49
- const showOptionalSettings = ref(false);
50
- const sheetNames = ref([]);
51
- const sheetNamesLoaded = ref(false);
52
- const getSheetNames = async () => {
53
- sheetNames.value = await getXlsxSheetNamesForPath(localExcelTable.value.path);
54
- sheetNamesLoaded.value = true;
55
- };
56
- const toggleOptionalSettings = () => {
57
- showOptionalSettings.value = !showOptionalSettings.value;
58
- };
59
- const showWarning = computed(() => {
60
- if (!sheetNamesLoaded.value) {
61
- return false;
62
- }
63
- return !sheetNames.value.includes(localExcelTable.value.sheet_name);
64
- });
65
- onMounted(() => {
66
- if (localExcelTable.value.path) {
67
- getSheetNames();
68
- }
69
- isLoaded.value = true;
70
- });
71
- watch(
72
- () => localExcelTable.value,
73
- (newValue) => {
74
- emit("update:modelValue", { ...newValue });
75
- },
76
- { deep: true }
77
- );
78
- return (_ctx, _cache) => {
79
- const _component_el_row = resolveComponent("el-row");
80
- const _component_el_checkbox = resolveComponent("el-checkbox");
81
- return isLoaded.value ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
82
- createBaseVNode("div", _hoisted_2$2, [
83
- localExcelTable.value ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
84
- createBaseVNode("div", _hoisted_4$2, [
85
- createVNode(_component_el_row, null, {
86
- default: withCtx(() => [
87
- createBaseVNode("div", _hoisted_5$2, [
88
- _cache[7] || (_cache[7] = createBaseVNode("label", null, "Sheet Name", -1)),
89
- createVNode(ColumnSelector, {
90
- modelValue: localExcelTable.value.sheet_name,
91
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => localExcelTable.value.sheet_name = $event),
92
- placeholder: "Select or type sheet name",
93
- "column-options": sheetNames.value,
94
- "is-loading": !sheetNamesLoaded.value
95
- }, null, 8, ["modelValue", "column-options", "is-loading"]),
96
- showWarning.value ? (openBlock(), createElementBlock("span", _hoisted_6$2, "⚠️")) : createCommentVNode("", true)
97
- ])
98
- ]),
99
- _: 1
100
- })
101
- ]),
102
- createBaseVNode("div", _hoisted_7$2, [
103
- createVNode(_component_el_checkbox, {
104
- modelValue: localExcelTable.value.has_headers,
105
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => localExcelTable.value.has_headers = $event),
106
- label: "Has headers",
107
- size: "large"
108
- }, null, 8, ["modelValue"]),
109
- createVNode(_component_el_checkbox, {
110
- modelValue: localExcelTable.value.type_inference,
111
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => localExcelTable.value.type_inference = $event),
112
- label: "Type inference",
113
- size: "large"
114
- }, null, 8, ["modelValue"])
115
- ]),
116
- _cache[15] || (_cache[15] = createBaseVNode("hr", { class: "section-divider" }, null, -1)),
117
- createBaseVNode("div", _hoisted_8$1, [
118
- createBaseVNode("button", {
119
- class: "toggle-button",
120
- onClick: toggleOptionalSettings
121
- }, toDisplayString(showOptionalSettings.value ? "Hide" : "Show") + " Optional Settings ", 1)
122
- ]),
123
- showOptionalSettings.value ? (openBlock(), createElementBlock("div", _hoisted_9$1, [
124
- _cache[12] || (_cache[12] = createBaseVNode("hr", { class: "section-divider" }, null, -1)),
125
- _cache[13] || (_cache[13] = createBaseVNode("div", { class: "table-sizes" }, "Table sizes", -1)),
126
- createBaseVNode("div", _hoisted_10, [
127
- createBaseVNode("div", _hoisted_11, [
128
- _cache[8] || (_cache[8] = createBaseVNode("label", { for: "start-row" }, "Start Row", -1)),
129
- withDirectives(createBaseVNode("input", {
130
- id: "start-row",
131
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => localExcelTable.value.start_row = $event),
132
- type: "number",
133
- class: "compact-input"
134
- }, null, 512), [
135
- [
136
- vModelText,
137
- localExcelTable.value.start_row,
138
- void 0,
139
- { number: true }
140
- ]
141
- ])
142
- ]),
143
- createBaseVNode("div", _hoisted_12, [
144
- _cache[9] || (_cache[9] = createBaseVNode("label", { for: "end-row" }, "End Row", -1)),
145
- withDirectives(createBaseVNode("input", {
146
- id: "end-row",
147
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => localExcelTable.value.end_row = $event),
148
- type: "number",
149
- class: "compact-input"
150
- }, null, 512), [
151
- [
152
- vModelText,
153
- localExcelTable.value.end_row,
154
- void 0,
155
- { number: true }
156
- ]
157
- ])
158
- ])
159
- ]),
160
- _cache[14] || (_cache[14] = createBaseVNode("hr", { class: "section-divider" }, null, -1)),
161
- createBaseVNode("div", _hoisted_13, [
162
- createBaseVNode("div", _hoisted_14, [
163
- _cache[10] || (_cache[10] = createBaseVNode("label", { for: "start-column" }, "Start Column", -1)),
164
- withDirectives(createBaseVNode("input", {
165
- id: "start-column",
166
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => localExcelTable.value.start_column = $event),
167
- type: "number",
168
- class: "compact-input"
169
- }, null, 512), [
170
- [
171
- vModelText,
172
- localExcelTable.value.start_column,
173
- void 0,
174
- { number: true }
175
- ]
176
- ])
177
- ]),
178
- createBaseVNode("div", _hoisted_15, [
179
- _cache[11] || (_cache[11] = createBaseVNode("label", { for: "end-column" }, "End Column", -1)),
180
- withDirectives(createBaseVNode("input", {
181
- id: "end-column",
182
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => localExcelTable.value.end_column = $event),
183
- type: "number",
184
- class: "compact-input"
185
- }, null, 512), [
186
- [
187
- vModelText,
188
- localExcelTable.value.end_column,
189
- void 0,
190
- { number: true }
191
- ]
192
- ])
193
- ])
194
- ])
195
- ])) : createCommentVNode("", true)
196
- ])) : createCommentVNode("", true)
197
- ])
198
- ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
199
- };
200
- }
201
- });
202
- const readExcel_vue_vue_type_style_index_0_scoped_e7395814_lang = "";
203
- const ExcelTableConfig = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-e7395814"]]);
204
- const _hoisted_1$2 = { class: "csv-table-settings" };
205
- const _hoisted_2$1 = { class: "row" };
206
- const _hoisted_3$1 = { class: "row" };
207
- const _hoisted_4$1 = { class: "row" };
208
- const _hoisted_5$1 = { class: "row" };
209
- const _hoisted_6$1 = { class: "row" };
210
- const _hoisted_7$1 = { class: "row" };
211
- const _hoisted_8 = { class: "row" };
212
- const _hoisted_9 = { class: "row" };
213
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
214
- __name: "readCsv",
215
- props: {
216
- modelValue: {
217
- type: Object,
218
- required: true
219
- }
220
- },
221
- emits: ["update:modelValue"],
222
- setup(__props, { emit: __emit }) {
223
- const props = __props;
224
- const emit = __emit;
225
- const localCsvTable = ref(props.modelValue);
226
- const updateParent = () => {
227
- emit("update:modelValue", localCsvTable.value);
228
- };
229
- const csv_settings = {
230
- delimiter_options: [",", ";", "|", "tab"],
231
- encoding_options: ["utf-8", "ISO-8859-1", "ASCII"],
232
- row_delimiter: ["\\n", "\\r\\n", "\\r"],
233
- quote_char: ['"', "'", "auto"]
234
- };
235
- watch(
236
- () => props.modelValue,
237
- (newVal) => {
238
- localCsvTable.value = newVal;
239
- },
240
- { deep: true }
241
- );
242
- return (_ctx, _cache) => {
243
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
244
- createBaseVNode("div", _hoisted_2$1, [
245
- _cache[8] || (_cache[8] = createBaseVNode("label", { for: "has-headers" }, "Has Headers:", -1)),
246
- createVNode(unref(ElCheckbox), {
247
- modelValue: localCsvTable.value.has_headers,
248
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => localCsvTable.value.has_headers = $event),
249
- size: "large",
250
- onChange: updateParent
251
- }, null, 8, ["modelValue"])
252
- ]),
253
- createBaseVNode("div", _hoisted_3$1, [
254
- _cache[9] || (_cache[9] = createBaseVNode("label", { for: "delimiter" }, "Delimiter:", -1)),
255
- createVNode(unref(ElSelect), {
256
- modelValue: localCsvTable.value.delimiter,
257
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => localCsvTable.value.delimiter = $event),
258
- placeholder: "Select delimiter",
259
- clearable: "",
260
- size: "small",
261
- onChange: updateParent
262
- }, {
263
- default: withCtx(() => [
264
- (openBlock(true), createElementBlock(Fragment, null, renderList(csv_settings.delimiter_options, (option) => {
265
- return openBlock(), createBlock(unref(ElOption), {
266
- key: option,
267
- label: option,
268
- value: option
269
- }, null, 8, ["label", "value"]);
270
- }), 128))
271
- ]),
272
- _: 1
273
- }, 8, ["modelValue"])
274
- ]),
275
- createBaseVNode("div", _hoisted_4$1, [
276
- _cache[10] || (_cache[10] = createBaseVNode("label", { for: "encoding" }, "Encoding:", -1)),
277
- createVNode(unref(ElSelect), {
278
- modelValue: localCsvTable.value.encoding,
279
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => localCsvTable.value.encoding = $event),
280
- placeholder: "Select encoding",
281
- clearable: "",
282
- size: "small",
283
- onChange: updateParent
284
- }, {
285
- default: withCtx(() => [
286
- (openBlock(true), createElementBlock(Fragment, null, renderList(csv_settings.encoding_options, (option) => {
287
- return openBlock(), createBlock(unref(ElOption), {
288
- key: option,
289
- label: option,
290
- value: option
291
- }, null, 8, ["label", "value"]);
292
- }), 128))
293
- ]),
294
- _: 1
295
- }, 8, ["modelValue"])
296
- ]),
297
- createBaseVNode("div", _hoisted_5$1, [
298
- _cache[11] || (_cache[11] = createBaseVNode("label", { for: "quote-char" }, "Quote Character:", -1)),
299
- createVNode(unref(ElSelect), {
300
- modelValue: localCsvTable.value.quote_char,
301
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => localCsvTable.value.quote_char = $event),
302
- placeholder: "Select quote character",
303
- clearable: "",
304
- size: "small",
305
- onChange: updateParent
306
- }, {
307
- default: withCtx(() => [
308
- (openBlock(true), createElementBlock(Fragment, null, renderList(csv_settings.quote_char, (option) => {
309
- return openBlock(), createBlock(unref(ElOption), {
310
- key: option,
311
- label: option,
312
- value: option
313
- }, null, 8, ["label", "value"]);
314
- }), 128))
315
- ]),
316
- _: 1
317
- }, 8, ["modelValue"])
318
- ]),
319
- createBaseVNode("div", _hoisted_6$1, [
320
- _cache[12] || (_cache[12] = createBaseVNode("label", { for: "row-delimiter" }, "New Line Delimiter:", -1)),
321
- createVNode(unref(ElSelect), {
322
- modelValue: localCsvTable.value.row_delimiter,
323
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => localCsvTable.value.row_delimiter = $event),
324
- placeholder: "Select new line delimiter",
325
- clearable: "",
326
- size: "small",
327
- onChange: updateParent
328
- }, {
329
- default: withCtx(() => [
330
- (openBlock(true), createElementBlock(Fragment, null, renderList(csv_settings.row_delimiter, (option) => {
331
- return openBlock(), createBlock(unref(ElOption), {
332
- key: option,
333
- label: option,
334
- value: option
335
- }, null, 8, ["label", "value"]);
336
- }), 128))
337
- ]),
338
- _: 1
339
- }, 8, ["modelValue"])
340
- ]),
341
- createBaseVNode("div", _hoisted_7$1, [
342
- _cache[13] || (_cache[13] = createBaseVNode("label", { for: "infer-schema-length" }, "Schema Infer Length:", -1)),
343
- createVNode(unref(ElSlider), {
344
- modelValue: localCsvTable.value.infer_schema_length,
345
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => localCsvTable.value.infer_schema_length = $event),
346
- step: 1e3,
347
- max: 1e5,
348
- min: 0,
349
- "show-stops": "",
350
- size: "small",
351
- onChange: updateParent
352
- }, null, 8, ["modelValue"])
353
- ]),
354
- createBaseVNode("div", _hoisted_8, [
355
- _cache[14] || (_cache[14] = createBaseVNode("label", { for: "truncate-long-lines" }, "Truncate Long Lines:", -1)),
356
- createVNode(unref(ElCheckbox), {
357
- modelValue: localCsvTable.value.truncate_ragged_lines,
358
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => localCsvTable.value.truncate_ragged_lines = $event),
359
- size: "large",
360
- onChange: updateParent
361
- }, null, 8, ["modelValue"])
362
- ]),
363
- createBaseVNode("div", _hoisted_9, [
364
- _cache[15] || (_cache[15] = createBaseVNode("label", { for: "ignore-errors" }, "Ignore Errors:", -1)),
365
- createVNode(unref(ElCheckbox), {
366
- modelValue: localCsvTable.value.ignore_errors,
367
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => localCsvTable.value.ignore_errors = $event),
368
- size: "large",
369
- onChange: updateParent
370
- }, null, 8, ["modelValue"])
371
- ])
372
- ]);
373
- };
374
- }
375
- });
376
- const readCsv_vue_vue_type_style_index_0_scoped_d0b76f7b_lang = "";
377
- const CsvTableConfig = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-d0b76f7b"]]);
378
- const _hoisted_1$1 = { class: "parquet-table-settings" };
379
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
380
- __name: "readParquet",
381
- props: {
382
- modelValue: {
383
- type: Object,
384
- required: true
385
- }
386
- },
387
- setup(__props) {
388
- return (_ctx, _cache) => {
389
- return openBlock(), createElementBlock("div", _hoisted_1$1, _cache[0] || (_cache[0] = [
390
- createBaseVNode("div", { class: "message" }, [
391
- createBaseVNode("h2", null, "You are ready to flow!"),
392
- createBaseVNode("p", null, "Your Parquet table setup is complete. Enjoy the smooth data processing experience.")
393
- ], -1)
394
- ]));
395
- };
396
- }
397
- });
398
- const readParquet_vue_vue_type_style_index_0_scoped_0faf0508_lang = "";
399
- const ParquetTableConfig = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-0faf0508"]]);
400
- const _hoisted_1 = {
401
- key: 0,
402
- class: "listbox-wrapper"
403
- };
404
- const _hoisted_2 = { class: "listbox-wrapper" };
405
- const _hoisted_3 = { class: "file-upload-container" };
406
- const _hoisted_4 = {
407
- for: "file-upload",
408
- class: "file-upload-label"
409
- };
410
- const _hoisted_5 = { class: "file-label-text" };
411
- const _hoisted_6 = { key: 0 };
412
- const _hoisted_7 = { class: "listbox-wrapper" };
413
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
414
- __name: "read",
415
- setup(__props, { expose: __expose }) {
416
- const nodeStore = useNodeStore();
417
- const selectedFile = ref(null);
418
- const isExcelFile = ref(false);
419
- const isCsvFile = ref(false);
420
- const isParquetFile = ref(false);
421
- const nodeRead = ref(null);
422
- const dataLoaded = ref(false);
423
- const selectedPath = ref("");
424
- const modalVisibleForOpen = ref(false);
425
- const getDisplayFileName = computed(() => {
426
- var _a, _b, _c;
427
- if ((_a = selectedFile.value) == null ? void 0 : _a.name) {
428
- return selectedFile.value.name;
429
- }
430
- if ((_c = (_b = nodeRead.value) == null ? void 0 : _b.received_file) == null ? void 0 : _c.name) {
431
- return nodeRead.value.received_file.name;
432
- }
433
- return "Choose a file...";
434
- });
435
- const receivedExcelTable = ref({
436
- name: "",
437
- path: "",
438
- file_type: "excel",
439
- sheet_name: "",
440
- start_row: 0,
441
- start_column: 0,
442
- end_row: 0,
443
- end_column: 0,
444
- has_headers: true,
445
- type_inference: false
446
- });
447
- const receivedCsvTable = ref({
448
- name: "",
449
- path: "",
450
- file_type: "csv",
451
- reference: "",
452
- starting_from_line: 0,
453
- delimiter: ",",
454
- has_headers: true,
455
- encoding: "utf-8",
456
- row_delimiter: "",
457
- quote_char: "",
458
- infer_schema_length: 1e3,
459
- truncate_ragged_lines: false,
460
- ignore_errors: false
461
- });
462
- const receivedParquetTable = ref({
463
- name: "",
464
- path: "",
465
- file_type: "parquet"
466
- });
467
- const handleFileChange = (fileInfo) => {
468
- var _a;
469
- try {
470
- if (!fileInfo) {
471
- console.warn("No file info provided");
472
- return;
473
- }
474
- const fileType = (_a = fileInfo.name.split(".").pop()) == null ? void 0 : _a.toLowerCase();
475
- if (!fileType) {
476
- console.warn("No file type detected");
477
- return;
478
- }
479
- isExcelFile.value = false;
480
- isCsvFile.value = false;
481
- isParquetFile.value = false;
482
- switch (fileType) {
483
- case "xlsx":
484
- isExcelFile.value = true;
485
- receivedExcelTable.value.path = fileInfo.path;
486
- receivedExcelTable.value.name = fileInfo.name;
487
- break;
488
- case "csv":
489
- case "txt":
490
- isCsvFile.value = true;
491
- receivedCsvTable.value.path = fileInfo.path;
492
- receivedCsvTable.value.name = fileInfo.name;
493
- break;
494
- case "parquet":
495
- isParquetFile.value = true;
496
- receivedParquetTable.value.path = fileInfo.path;
497
- receivedParquetTable.value.name = fileInfo.name;
498
- break;
499
- default:
500
- console.warn("Unsupported file type:", fileType);
501
- return;
502
- }
503
- selectedFile.value = fileInfo;
504
- selectedPath.value = fileInfo.path;
505
- modalVisibleForOpen.value = false;
506
- } catch (error) {
507
- console.error("Error handling file change:", error);
508
- }
509
- };
510
- const loadNodeData = async (nodeId) => {
511
- var _a;
512
- try {
513
- const nodeResult = await nodeStore.getNodeData(nodeId, false);
514
- if (!nodeResult) {
515
- console.warn("No node result received");
516
- dataLoaded.value = true;
517
- return;
518
- }
519
- nodeRead.value = nodeResult.setting_input;
520
- if (((_a = nodeResult.setting_input) == null ? void 0 : _a.is_setup) && nodeResult.setting_input.received_file) {
521
- const { file_type } = nodeResult.setting_input.received_file;
522
- isExcelFile.value = false;
523
- isCsvFile.value = false;
524
- isParquetFile.value = false;
525
- switch (file_type) {
526
- case "excel":
527
- isExcelFile.value = true;
528
- receivedExcelTable.value = nodeResult.setting_input.received_file;
529
- break;
530
- case "csv":
531
- isCsvFile.value = true;
532
- receivedCsvTable.value = nodeResult.setting_input.received_file;
533
- break;
534
- case "parquet":
535
- isParquetFile.value = true;
536
- receivedParquetTable.value = nodeResult.setting_input.received_file;
537
- break;
538
- }
539
- selectedPath.value = nodeResult.setting_input.received_file.path;
540
- }
541
- dataLoaded.value = true;
542
- } catch (error) {
543
- console.error("Error loading node data:", error);
544
- dataLoaded.value = true;
545
- }
546
- };
547
- const pushNodeData = async () => {
548
- try {
549
- dataLoaded.value = false;
550
- if (!nodeRead.value) {
551
- console.warn("No node read value available");
552
- dataLoaded.value = true;
553
- return;
554
- }
555
- nodeRead.value.is_setup = true;
556
- if (isExcelFile.value) {
557
- nodeRead.value.received_file = receivedExcelTable.value;
558
- } else if (isCsvFile.value) {
559
- nodeRead.value.received_file = receivedCsvTable.value;
560
- } else if (isParquetFile.value) {
561
- nodeRead.value.cache_results = false;
562
- nodeRead.value.received_file = receivedParquetTable.value;
563
- }
564
- await nodeStore.updateSettings(nodeRead);
565
- } catch (error) {
566
- console.error("Error pushing node data:", error);
567
- } finally {
568
- dataLoaded.value = true;
569
- }
570
- };
571
- __expose({
572
- loadNodeData,
573
- pushNodeData
574
- });
575
- return (_ctx, _cache) => {
576
- const _component_el_dialog = resolveComponent("el-dialog");
577
- return dataLoaded.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
578
- createBaseVNode("div", _hoisted_2, [
579
- createBaseVNode("div", _hoisted_3, [
580
- createBaseVNode("div", {
581
- class: "file-upload-wrapper",
582
- onClick: _cache[0] || (_cache[0] = ($event) => modalVisibleForOpen.value = true)
583
- }, [
584
- createBaseVNode("label", _hoisted_4, [
585
- _cache[5] || (_cache[5] = createBaseVNode("i", { class: "fas fa-table file-icon" }, null, -1)),
586
- createBaseVNode("span", _hoisted_5, toDisplayString(getDisplayFileName.value), 1)
587
- ])
588
- ])
589
- ])
590
- ]),
591
- isCsvFile.value || isExcelFile.value || isParquetFile.value ? (openBlock(), createElementBlock("div", _hoisted_6, [
592
- createBaseVNode("div", _hoisted_7, [
593
- _cache[6] || (_cache[6] = createBaseVNode("div", { class: "listbox-subtitle" }, "File Specs", -1)),
594
- isExcelFile.value ? (openBlock(), createBlock(ExcelTableConfig, {
595
- key: 0,
596
- modelValue: receivedExcelTable.value,
597
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => receivedExcelTable.value = $event)
598
- }, null, 8, ["modelValue"])) : createCommentVNode("", true),
599
- isCsvFile.value ? (openBlock(), createBlock(CsvTableConfig, {
600
- key: 1,
601
- modelValue: receivedCsvTable.value,
602
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => receivedCsvTable.value = $event)
603
- }, null, 8, ["modelValue"])) : createCommentVNode("", true),
604
- isParquetFile.value ? (openBlock(), createBlock(ParquetTableConfig, {
605
- key: 2,
606
- modelValue: receivedParquetTable.value,
607
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => receivedParquetTable.value = $event)
608
- }, null, 8, ["modelValue"])) : createCommentVNode("", true)
609
- ])
610
- ])) : createCommentVNode("", true),
611
- createVNode(_component_el_dialog, {
612
- modelValue: modalVisibleForOpen.value,
613
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => modalVisibleForOpen.value = $event),
614
- title: "Select a file to Read",
615
- width: "70%"
616
- }, {
617
- default: withCtx(() => [
618
- createVNode(FileBrowser, {
619
- "allowed-file-types": ["csv", "txt", "parquet", "xlsx"],
620
- mode: "open",
621
- onFileSelected: handleFileChange
622
- })
623
- ]),
624
- _: 1
625
- }, 8, ["modelValue"])
626
- ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
627
- };
628
- }
629
- });
630
- const read_vue_vue_type_style_index_0_scoped_221ad292_lang = "";
631
- const readInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-221ad292"]]);
632
- const _sfc_main = /* @__PURE__ */ defineComponent({
633
- __name: "Read",
634
- props: {
635
- nodeId: {
636
- type: Number,
637
- required: true
638
- }
639
- },
640
- setup(__props) {
641
- const props = __props;
642
- const nodeStore = useNodeStore();
643
- const childComp = ref(null);
644
- const closeOnDrawer = () => {
645
- var _a;
646
- if (drawer.value) {
647
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
648
- drawer.value = false;
649
- }
650
- };
651
- const drawer = ref(false);
652
- const openDrawer = async () => {
653
- if (nodeStore.node_id === props.nodeId) {
654
- return;
655
- }
656
- nodeStore.closeDrawer();
657
- drawer.value = true;
658
- const drawerOpen = nodeStore.isDrawerOpen;
659
- nodeStore.isDrawerOpen = true;
660
- await nextTick();
661
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
662
- return;
663
- }
664
- if (childComp.value) {
665
- childComp.value.loadNodeData(props.nodeId);
666
- nodeStore.openDrawer(closeOnDrawer);
667
- }
668
- };
669
- onMounted(async () => {
670
- await nextTick();
671
- });
672
- return (_ctx, _cache) => {
673
- return openBlock(), createElementBlock("div", null, [
674
- createVNode(NodeButton, {
675
- ref: "nodeButton",
676
- "node-id": __props.nodeId,
677
- "image-src": "input_data.png",
678
- title: `${__props.nodeId}: Read data`,
679
- onClick: openDrawer
680
- }, null, 8, ["node-id", "title"]),
681
- drawer.value ? (openBlock(), createBlock(Teleport, {
682
- key: 0,
683
- to: "#nodesettings"
684
- }, [
685
- createVNode(NodeTitle, {
686
- title: "Read data",
687
- intro: "Read data from a file"
688
- }),
689
- createVNode(readInput, {
690
- ref_key: "childComp",
691
- ref: childComp,
692
- "node-id": __props.nodeId
693
- }, null, 8, ["node-id"])
694
- ])) : createCommentVNode("", true)
695
- ]);
696
- };
697
- }
698
- });
699
- export {
700
- _sfc_main as default
701
- };