Flowfile 0.2.2__py3-none-any.whl → 0.3.0.1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (149) hide show
  1. flowfile/__init__.py +14 -7
  2. flowfile/__main__.py +51 -15
  3. flowfile/api.py +379 -0
  4. flowfile/web/__init__.py +155 -0
  5. flowfile/web/static/assets/AirbyteReader-1ac35765.css +314 -0
  6. flowfile/web/static/assets/AirbyteReader-cb0c1d4a.js +921 -0
  7. flowfile/web/static/assets/CrossJoin-41efa4cb.css +100 -0
  8. flowfile/web/static/assets/CrossJoin-a514fa59.js +153 -0
  9. flowfile/web/static/assets/DatabaseConnectionSettings-0c04b2e5.css +77 -0
  10. flowfile/web/static/assets/DatabaseConnectionSettings-f2cecf33.js +151 -0
  11. flowfile/web/static/assets/DatabaseManager-30fa27e5.css +64 -0
  12. flowfile/web/static/assets/DatabaseManager-83ee3c98.js +484 -0
  13. flowfile/web/static/assets/DatabaseReader-dc0c6881.js +426 -0
  14. flowfile/web/static/assets/DatabaseReader-f50c6558.css +158 -0
  15. flowfile/web/static/assets/DatabaseWriter-2f570e53.css +96 -0
  16. flowfile/web/static/assets/DatabaseWriter-5afe9f8d.js +312 -0
  17. flowfile/web/static/assets/ExploreData-5bdae813.css +45 -0
  18. flowfile/web/static/assets/ExploreData-c7ee19cf.js +118306 -0
  19. flowfile/web/static/assets/ExternalSource-17b23a01.js +225 -0
  20. flowfile/web/static/assets/ExternalSource-e37b6275.css +94 -0
  21. flowfile/web/static/assets/Filter-90856b4f.js +238 -0
  22. flowfile/web/static/assets/Filter-a9d08ba1.css +20 -0
  23. flowfile/web/static/assets/Formula-38b71e9e.js +197 -0
  24. flowfile/web/static/assets/Formula-d60a74f4.css +17 -0
  25. flowfile/web/static/assets/FuzzyMatch-6857de82.css +254 -0
  26. flowfile/web/static/assets/FuzzyMatch-d0f1fe81.js +422 -0
  27. flowfile/web/static/assets/GoogleSheet-854294a4.js +2616 -0
  28. flowfile/web/static/assets/GoogleSheet-92084da7.css +233 -0
  29. flowfile/web/static/assets/GraphSolver-0c86bbc6.js +382 -0
  30. flowfile/web/static/assets/GraphSolver-17fd26db.css +68 -0
  31. flowfile/web/static/assets/GroupBy-ab1ea74b.css +51 -0
  32. flowfile/web/static/assets/GroupBy-f2772e9f.js +413 -0
  33. flowfile/web/static/assets/Join-41c0f331.css +109 -0
  34. flowfile/web/static/assets/Join-bc3e1cf7.js +247 -0
  35. flowfile/web/static/assets/ManualInput-03aa0245.js +391 -0
  36. flowfile/web/static/assets/ManualInput-ac7b9972.css +84 -0
  37. flowfile/web/static/assets/Output-48f81019.css +2642 -0
  38. flowfile/web/static/assets/Output-5b35eee8.js +536 -0
  39. flowfile/web/static/assets/Pivot-7164087c.js +408 -0
  40. flowfile/web/static/assets/Pivot-f415e85f.css +35 -0
  41. flowfile/web/static/assets/PolarsCode-3abf6507.js +2863 -0
  42. flowfile/web/static/assets/PolarsCode-650322d1.css +35 -0
  43. flowfile/web/static/assets/PopOver-b37ff9be.js +577 -0
  44. flowfile/web/static/assets/PopOver-bccfde04.css +32 -0
  45. flowfile/web/static/assets/Read-65966a3e.js +701 -0
  46. flowfile/web/static/assets/Read-80dc1675.css +197 -0
  47. flowfile/web/static/assets/RecordCount-c66c6d6d.js +121 -0
  48. flowfile/web/static/assets/RecordId-826dc095.js +339 -0
  49. flowfile/web/static/assets/Sample-4ed555c8.js +184 -0
  50. flowfile/web/static/assets/SecretManager-eac1e97d.js +382 -0
  51. flowfile/web/static/assets/Select-085f05cc.js +231 -0
  52. flowfile/web/static/assets/SettingsSection-1f5e79c1.js +87 -0
  53. flowfile/web/static/assets/SettingsSection-9c836ecc.css +47 -0
  54. flowfile/web/static/assets/Sort-3e6cb414.js +309 -0
  55. flowfile/web/static/assets/Sort-7ccfa0fe.css +51 -0
  56. flowfile/web/static/assets/TextToRows-606349bc.js +307 -0
  57. flowfile/web/static/assets/TextToRows-c92d1ec2.css +48 -0
  58. flowfile/web/static/assets/UnavailableFields-5edd5322.css +49 -0
  59. flowfile/web/static/assets/UnavailableFields-b41976ed.js +36 -0
  60. flowfile/web/static/assets/Union-8d9ac7f9.css +30 -0
  61. flowfile/web/static/assets/Union-fca91665.js +145 -0
  62. flowfile/web/static/assets/Unique-a59f830e.js +273 -0
  63. flowfile/web/static/assets/Unique-b5615727.css +51 -0
  64. flowfile/web/static/assets/Unpivot-246e9bbd.css +77 -0
  65. flowfile/web/static/assets/Unpivot-c3815565.js +441 -0
  66. flowfile/web/static/assets/airbyte-292aa232.png +0 -0
  67. flowfile/web/static/assets/api-22b338bd.js +60 -0
  68. flowfile/web/static/assets/cross_join-d30c0290.png +0 -0
  69. flowfile/web/static/assets/database_reader-ce1e55f3.svg +24 -0
  70. flowfile/web/static/assets/database_writer-b4ad0753.svg +23 -0
  71. flowfile/web/static/assets/designer-2394122a.css +10697 -0
  72. flowfile/web/static/assets/designer-e5bbe26f.js +69712 -0
  73. flowfile/web/static/assets/documentation-08045cf2.js +33 -0
  74. flowfile/web/static/assets/documentation-12216a74.css +50 -0
  75. flowfile/web/static/assets/dropDown-35135ba8.css +143 -0
  76. flowfile/web/static/assets/dropDown-5e7e9a5a.js +319 -0
  77. flowfile/web/static/assets/dropDownGeneric-50a91b99.js +72 -0
  78. flowfile/web/static/assets/dropDownGeneric-895680d6.css +10 -0
  79. flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  80. flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  81. flowfile/web/static/assets/explore_data-8a0a2861.png +0 -0
  82. flowfile/web/static/assets/fa-brands-400-808443ae.ttf +0 -0
  83. flowfile/web/static/assets/fa-brands-400-d7236a19.woff2 +0 -0
  84. flowfile/web/static/assets/fa-regular-400-54cf6086.ttf +0 -0
  85. flowfile/web/static/assets/fa-regular-400-e3456d12.woff2 +0 -0
  86. flowfile/web/static/assets/fa-solid-900-aa759986.woff2 +0 -0
  87. flowfile/web/static/assets/fa-solid-900-d2f05935.ttf +0 -0
  88. flowfile/web/static/assets/fa-v4compatibility-0ce9033c.woff2 +0 -0
  89. flowfile/web/static/assets/fa-v4compatibility-30f6abf6.ttf +0 -0
  90. flowfile/web/static/assets/filter-d7708bda.png +0 -0
  91. flowfile/web/static/assets/formula-eeeb1611.png +0 -0
  92. flowfile/web/static/assets/fullEditor-178376bb.css +256 -0
  93. flowfile/web/static/assets/fullEditor-705c6ccb.js +630 -0
  94. flowfile/web/static/assets/fuzzy_match-40c161b2.png +0 -0
  95. flowfile/web/static/assets/genericNodeSettings-65587f20.js +137 -0
  96. flowfile/web/static/assets/genericNodeSettings-924759c7.css +46 -0
  97. flowfile/web/static/assets/graph_solver-8b7888b8.png +0 -0
  98. flowfile/web/static/assets/group_by-80561fc3.png +0 -0
  99. flowfile/web/static/assets/index-552863fd.js +58652 -0
  100. flowfile/web/static/assets/index-681a3ed0.css +8843 -0
  101. flowfile/web/static/assets/input_data-ab2eb678.png +0 -0
  102. flowfile/web/static/assets/join-349043ae.png +0 -0
  103. flowfile/web/static/assets/manual_input-ae98f31d.png +0 -0
  104. flowfile/web/static/assets/nodeTitle-cf9bae3c.js +227 -0
  105. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +134 -0
  106. flowfile/web/static/assets/old_join-5d0eb604.png +0 -0
  107. flowfile/web/static/assets/output-06ec0371.png +0 -0
  108. flowfile/web/static/assets/pivot-9660df51.png +0 -0
  109. flowfile/web/static/assets/polars_code-05ce5dc6.png +0 -0
  110. flowfile/web/static/assets/record_count-dab44eb5.png +0 -0
  111. flowfile/web/static/assets/record_id-0b15856b.png +0 -0
  112. flowfile/web/static/assets/sample-693a88b5.png +0 -0
  113. flowfile/web/static/assets/secretApi-3ad510e1.js +46 -0
  114. flowfile/web/static/assets/select-b0d0437a.png +0 -0
  115. flowfile/web/static/assets/selectDynamic-b062bc9b.css +107 -0
  116. flowfile/web/static/assets/selectDynamic-bd644891.js +302 -0
  117. flowfile/web/static/assets/sort-2aa579f0.png +0 -0
  118. flowfile/web/static/assets/summarize-2a099231.png +0 -0
  119. flowfile/web/static/assets/text_to_rows-859b29ea.png +0 -0
  120. flowfile/web/static/assets/union-2d8609f4.png +0 -0
  121. flowfile/web/static/assets/unique-1958b98a.png +0 -0
  122. flowfile/web/static/assets/unpivot-d3cb4b5b.png +0 -0
  123. flowfile/web/static/assets/view-7a0f0be1.png +0 -0
  124. flowfile/web/static/assets/vue-codemirror.esm-dd17b478.js +22281 -0
  125. flowfile/web/static/assets/vue-content-loader.es-6b36f05e.js +210 -0
  126. flowfile/web/static/flowfile.svg +47 -0
  127. flowfile/web/static/icons/flowfile.png +0 -0
  128. flowfile/web/static/images/airbyte.png +0 -0
  129. flowfile/web/static/images/flowfile.svg +47 -0
  130. flowfile/web/static/images/google.svg +1 -0
  131. flowfile/web/static/images/sheets.png +0 -0
  132. flowfile/web/static/index.html +22 -0
  133. flowfile/web/static/vite.svg +1 -0
  134. flowfile/web/static/vue.svg +1 -0
  135. flowfile-0.3.0.1.dist-info/METADATA +219 -0
  136. {flowfile-0.2.2.dist-info → flowfile-0.3.0.1.dist-info}/RECORD +147 -16
  137. {flowfile-0.2.2.dist-info → flowfile-0.3.0.1.dist-info}/entry_points.txt +1 -1
  138. flowfile_core/configs/settings.py +7 -32
  139. flowfile_core/flowfile/FlowfileFlow.py +4 -2
  140. flowfile_core/flowfile/analytics/analytics_processor.py +1 -1
  141. flowfile_core/main.py +4 -1
  142. flowfile_core/schemas/input_schema.py +1 -8
  143. flowfile_frame/__init__.py +1 -2
  144. flowfile_frame/flow_frame.py +6 -6
  145. flowfile_frame/utils.py +1 -140
  146. flowfile-0.2.2.dist-info/METADATA +0 -225
  147. flowfile_frame/__main__.py +0 -12
  148. {flowfile-0.2.2.dist-info → flowfile-0.3.0.1.dist-info}/LICENSE +0 -0
  149. {flowfile-0.2.2.dist-info → flowfile-0.3.0.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,51 @@
1
+
2
+ .context-menu[data-v-001e3d98] {
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
+ user-select: none;
11
+ }
12
+ .context-menu button[data-v-001e3d98] {
13
+ display: block;
14
+ background: none;
15
+ border: none;
16
+ padding: 4px 8px;
17
+ text-align: left;
18
+ width: 100%;
19
+ cursor: pointer;
20
+ z-index: 100;
21
+ }
22
+ .context-menu button[data-v-001e3d98]:hover {
23
+ background-color: #f0f0f0;
24
+ }
25
+ .table-wrapper[data-v-001e3d98] {
26
+ max-height: 300px; /* Adjust this value as needed */
27
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* subtle shadow for depth */
28
+ border-radius: 8px; /* rounded corners */
29
+ overflow: auto; /* ensures the rounded corners are applied to the child elements */
30
+ margin: 5px; /* adds a small margin around the table */
31
+ }
32
+ .context-menu[data-v-001e3d98] {
33
+ position: fixed;
34
+ z-index: 1000;
35
+ border: 1px solid #ccc;
36
+ background-color: white;
37
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
38
+ border-radius: 4px;
39
+ }
40
+ .context-menu ul[data-v-001e3d98] {
41
+ list-style: none;
42
+ padding: 0;
43
+ margin: 0;
44
+ }
45
+ .context-menu li[data-v-001e3d98] {
46
+ padding: 8px 16px;
47
+ cursor: pointer;
48
+ }
49
+ .context-menu li[data-v-001e3d98]:hover {
50
+ background-color: #f0f0f0;
51
+ }
@@ -0,0 +1,307 @@
1
+ import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, a4 as withDirectives, a5 as vModelText, h as createBlock, u as unref, _ as _export_sfc, a6 as Teleport } from "./index-552863fd.js";
2
+ import { u as useNodeStore } from "./PopOver-b37ff9be.js";
3
+ import { C as ColumnSelector } from "./dropDown-5e7e9a5a.js";
4
+ import { u as unavailableField } from "./UnavailableFields-b41976ed.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-65587f20.js";
6
+ import { C as CodeLoader } from "./vue-content-loader.es-6b36f05e.js";
7
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-cf9bae3c.js";
8
+ import "./designer-e5bbe26f.js";
9
+ const _hoisted_1$1 = {
10
+ key: 0,
11
+ class: "listbox-wrapper"
12
+ };
13
+ const _hoisted_2 = { class: "table" };
14
+ const _hoisted_3 = {
15
+ key: 0,
16
+ class: "selectors"
17
+ };
18
+ const _hoisted_4 = {
19
+ key: 0,
20
+ class: "error-msg"
21
+ };
22
+ const _hoisted_5 = { class: "row" };
23
+ const _hoisted_6 = { class: "input-wrapper" };
24
+ const _hoisted_7 = { class: "row" };
25
+ const _hoisted_8 = {
26
+ key: 1,
27
+ class: "row"
28
+ };
29
+ const _hoisted_9 = {
30
+ key: 2,
31
+ class: "row"
32
+ };
33
+ const _hoisted_10 = { class: "row" };
34
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
35
+ __name: "textToRows",
36
+ setup(__props, { expose: __expose }) {
37
+ const containsVal = (arr, val) => {
38
+ return arr.includes(val);
39
+ };
40
+ const result = ref(null);
41
+ const nodeStore = useNodeStore();
42
+ const isLoaded = ref(false);
43
+ const nodeTextToRows = ref(null);
44
+ const hasInvalidFields = computed(() => {
45
+ return false;
46
+ });
47
+ const getEmptySetup = () => {
48
+ return {
49
+ column_to_split: "",
50
+ output_column_name: "",
51
+ split_by_fixed_value: true,
52
+ split_fixed_value: ",",
53
+ split_by_column: ""
54
+ };
55
+ };
56
+ const loadNodeData = async (nodeId) => {
57
+ var _a, _b, _c;
58
+ console.log("doing this for fuzzy mathcing");
59
+ result.value = await nodeStore.getNodeData(nodeId, true);
60
+ nodeTextToRows.value = (_a = result.value) == null ? void 0 : _a.setting_input;
61
+ if (!((_b = nodeTextToRows.value) == null ? void 0 : _b.is_setup) && ((_c = result.value) == null ? void 0 : _c.main_input)) {
62
+ nodeTextToRows.value.text_to_rows_input = getEmptySetup();
63
+ } else {
64
+ isLoaded.value = true;
65
+ }
66
+ isLoaded.value = true;
67
+ };
68
+ const handleChange = (newValue, type) => {
69
+ var _a;
70
+ if ((_a = nodeTextToRows.value) == null ? void 0 : _a.text_to_rows_input)
71
+ if (type === "columnToSplit") {
72
+ nodeTextToRows.value.text_to_rows_input.column_to_split = newValue;
73
+ } else {
74
+ nodeTextToRows.value.text_to_rows_input.split_by_column = newValue;
75
+ }
76
+ };
77
+ const pushNodeData = async () => {
78
+ isLoaded.value = false;
79
+ nodeStore.isDrawerOpen = false;
80
+ if (nodeTextToRows.value) {
81
+ nodeTextToRows.value.is_setup = true;
82
+ }
83
+ nodeStore.updateSettings(nodeTextToRows);
84
+ };
85
+ __expose({
86
+ loadNodeData,
87
+ pushNodeData,
88
+ hasInvalidFields
89
+ });
90
+ onMounted(async () => {
91
+ await nextTick();
92
+ });
93
+ return (_ctx, _cache) => {
94
+ const _component_el_row = resolveComponent("el-row");
95
+ const _component_el_radio = resolveComponent("el-radio");
96
+ const _component_el_radio_group = resolveComponent("el-radio-group");
97
+ const _component_el_col = resolveComponent("el-col");
98
+ return isLoaded.value && nodeTextToRows.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
99
+ createVNode(GenericNodeSettings, {
100
+ modelValue: nodeTextToRows.value,
101
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => nodeTextToRows.value = $event)
102
+ }, {
103
+ default: withCtx(() => {
104
+ var _a, _b, _c;
105
+ return [
106
+ createBaseVNode("div", _hoisted_2, [
107
+ ((_a = nodeTextToRows.value) == null ? void 0 : _a.text_to_rows_input) ? (openBlock(), createElementBlock("div", _hoisted_3, [
108
+ !containsVal(
109
+ ((_c = (_b = result.value) == null ? void 0 : _b.main_input) == null ? void 0 : _c.columns) ?? [],
110
+ nodeTextToRows.value.text_to_rows_input.column_to_split
111
+ ) ? (openBlock(), createElementBlock("div", _hoisted_4, [
112
+ createVNode(unavailableField, {
113
+ "tooltip-text": "Setup is not valid",
114
+ class: "error-icon"
115
+ }),
116
+ _cache[8] || (_cache[8] = createTextVNode(" Check the column you want to split "))
117
+ ])) : createCommentVNode("", true),
118
+ createBaseVNode("div", _hoisted_5, [
119
+ createVNode(_component_el_row, null, {
120
+ default: withCtx(() => {
121
+ var _a2, _b2;
122
+ return [
123
+ createBaseVNode("div", _hoisted_6, [
124
+ _cache[9] || (_cache[9] = createBaseVNode("label", null, "Column to split", -1)),
125
+ createVNode(ColumnSelector, {
126
+ modelValue: nodeTextToRows.value.text_to_rows_input.column_to_split,
127
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => nodeTextToRows.value.text_to_rows_input.column_to_split = $event),
128
+ "column-options": (_b2 = (_a2 = result.value) == null ? void 0 : _a2.main_input) == null ? void 0 : _b2.columns,
129
+ "onUpdate:value": _cache[1] || (_cache[1] = (value) => handleChange(value, "columnToSplit"))
130
+ }, null, 8, ["modelValue", "column-options"])
131
+ ])
132
+ ];
133
+ }),
134
+ _: 1
135
+ })
136
+ ]),
137
+ createBaseVNode("div", _hoisted_7, [
138
+ createVNode(_component_el_radio_group, {
139
+ modelValue: nodeTextToRows.value.text_to_rows_input.split_by_fixed_value,
140
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeTextToRows.value.text_to_rows_input.split_by_fixed_value = $event),
141
+ size: "large"
142
+ }, {
143
+ default: withCtx(() => [
144
+ createVNode(_component_el_radio, { label: true }, {
145
+ default: withCtx(() => _cache[10] || (_cache[10] = [
146
+ createTextVNode("Split by a fixed value")
147
+ ])),
148
+ _: 1
149
+ }),
150
+ createVNode(_component_el_radio, { label: false }, {
151
+ default: withCtx(() => _cache[11] || (_cache[11] = [
152
+ createTextVNode("Split by a column")
153
+ ])),
154
+ _: 1
155
+ })
156
+ ]),
157
+ _: 1
158
+ }, 8, ["modelValue"])
159
+ ]),
160
+ nodeTextToRows.value.text_to_rows_input.split_by_fixed_value ? (openBlock(), createElementBlock("div", _hoisted_8, [
161
+ createVNode(_component_el_col, { span: 10 }, {
162
+ default: withCtx(() => _cache[12] || (_cache[12] = [
163
+ createBaseVNode("label", null, "Split by value", -1)
164
+ ])),
165
+ _: 1
166
+ }),
167
+ createVNode(_component_el_col, { span: 8 }, {
168
+ default: withCtx(() => [
169
+ withDirectives(createBaseVNode("input", {
170
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => nodeTextToRows.value.text_to_rows_input.split_fixed_value = $event),
171
+ type: "text",
172
+ placeholder: "Enter split value"
173
+ }, null, 512), [
174
+ [vModelText, nodeTextToRows.value.text_to_rows_input.split_fixed_value]
175
+ ])
176
+ ]),
177
+ _: 1
178
+ })
179
+ ])) : createCommentVNode("", true),
180
+ !nodeTextToRows.value.text_to_rows_input.split_by_fixed_value ? (openBlock(), createElementBlock("div", _hoisted_9, [
181
+ createVNode(_component_el_col, { span: 10 }, {
182
+ default: withCtx(() => _cache[13] || (_cache[13] = [
183
+ createBaseVNode("label", null, "Column that contains the value to split", -1)
184
+ ])),
185
+ _: 1
186
+ }),
187
+ createVNode(_component_el_col, { span: 8 }, {
188
+ default: withCtx(() => {
189
+ var _a2, _b2;
190
+ return [
191
+ createVNode(ColumnSelector, {
192
+ modelValue: nodeTextToRows.value.text_to_rows_input.split_by_column,
193
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => nodeTextToRows.value.text_to_rows_input.split_by_column = $event),
194
+ "column-options": (_b2 = (_a2 = result.value) == null ? void 0 : _a2.main_input) == null ? void 0 : _b2.columns,
195
+ "allow-other": false,
196
+ "onUpdate:value": _cache[5] || (_cache[5] = (value) => handleChange(value, "splitValueColumn"))
197
+ }, null, 8, ["modelValue", "column-options"])
198
+ ];
199
+ }),
200
+ _: 1
201
+ })
202
+ ])) : createCommentVNode("", true),
203
+ createBaseVNode("div", _hoisted_10, [
204
+ createVNode(_component_el_col, { span: 10 }, {
205
+ default: withCtx(() => _cache[14] || (_cache[14] = [
206
+ createBaseVNode("label", null, "Output column name", -1)
207
+ ])),
208
+ _: 1
209
+ }),
210
+ createVNode(_component_el_col, { span: 8 }, {
211
+ default: withCtx(() => {
212
+ var _a2, _b2;
213
+ return [
214
+ createVNode(ColumnSelector, {
215
+ modelValue: nodeTextToRows.value.text_to_rows_input.output_column_name,
216
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => nodeTextToRows.value.text_to_rows_input.output_column_name = $event),
217
+ "column-options": (_b2 = (_a2 = result.value) == null ? void 0 : _a2.main_input) == null ? void 0 : _b2.columns,
218
+ "allow-other": true,
219
+ placeholder: "Enter output column name"
220
+ }, null, 8, ["modelValue", "column-options"])
221
+ ];
222
+ }),
223
+ _: 1
224
+ })
225
+ ])
226
+ ])) : createCommentVNode("", true)
227
+ ])
228
+ ];
229
+ }),
230
+ _: 1
231
+ }, 8, ["modelValue"])
232
+ ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
233
+ };
234
+ }
235
+ });
236
+ const textToRows_vue_vue_type_style_index_0_scoped_bf118d5c_lang = "";
237
+ const joinInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-bf118d5c"]]);
238
+ const _hoisted_1 = { ref: "el" };
239
+ const _sfc_main = /* @__PURE__ */ defineComponent({
240
+ __name: "TextToRows",
241
+ props: {
242
+ nodeId: {
243
+ type: Number,
244
+ required: true
245
+ }
246
+ },
247
+ setup(__props) {
248
+ const nodeStore = useNodeStore();
249
+ const props = __props;
250
+ const childComp = ref(null);
251
+ const drawer = ref(false);
252
+ const closeOnDrawer = () => {
253
+ var _a;
254
+ (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
255
+ drawer.value = false;
256
+ nodeStore.isDrawerOpen = false;
257
+ };
258
+ const openDrawer = async () => {
259
+ if (nodeStore.node_id === props.nodeId) {
260
+ return;
261
+ }
262
+ nodeStore.closeDrawer();
263
+ drawer.value = true;
264
+ const drawerOpen = nodeStore.isDrawerOpen;
265
+ nodeStore.isDrawerOpen = true;
266
+ await nextTick();
267
+ if (nodeStore.node_id === props.nodeId && drawerOpen) {
268
+ return;
269
+ }
270
+ if (childComp.value) {
271
+ childComp.value.loadNodeData(props.nodeId);
272
+ nodeStore.openDrawer(closeOnDrawer);
273
+ }
274
+ };
275
+ onMounted(async () => {
276
+ await nextTick();
277
+ });
278
+ return (_ctx, _cache) => {
279
+ return openBlock(), createElementBlock("div", _hoisted_1, [
280
+ createVNode(NodeButton, {
281
+ ref: "nodeButton",
282
+ "node-id": __props.nodeId,
283
+ "image-src": "text_to_rows.png",
284
+ title: `${__props.nodeId}: Fuzzy match`,
285
+ onClick: openDrawer
286
+ }, null, 8, ["node-id", "title"]),
287
+ drawer.value ? (openBlock(), createBlock(Teleport, {
288
+ key: 0,
289
+ to: "#nodesettings"
290
+ }, [
291
+ createVNode(NodeTitle, {
292
+ title: "Text to rows",
293
+ intro: "Split text into rows based on a delimiter"
294
+ }),
295
+ createVNode(joinInput, {
296
+ ref_key: "childComp",
297
+ ref: childComp,
298
+ "node-id": __props.nodeId
299
+ }, null, 8, ["node-id"])
300
+ ])) : createCommentVNode("", true)
301
+ ], 512);
302
+ };
303
+ }
304
+ });
305
+ export {
306
+ _sfc_main as default
307
+ };
@@ -0,0 +1,48 @@
1
+
2
+ .selectors[data-v-bf118d5c] {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: 8px;
6
+ }
7
+ .input-wrapper[data-v-bf118d5c] {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: 4px;
11
+ }
12
+ label[data-v-bf118d5c] {
13
+ font-weight: 500;
14
+ color: #333;
15
+ font-size: 14px;
16
+ }
17
+ input[data-v-bf118d5c] {
18
+ padding: 3px;
19
+ border: 1px solid #ccc;
20
+ border-radius: 4px;
21
+ font-size: 14px;
22
+ width: 100%;
23
+ }
24
+ .row[data-v-bf118d5c] {
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: space-between;
28
+ gap: 16px;
29
+ }
30
+ .error-msg[data-v-bf118d5c] {
31
+ font-size: 13px;
32
+ color: #ff4d4f;
33
+ display: flex;
34
+ align-items: center;
35
+ gap: 6px;
36
+ }
37
+ .error-icon[data-v-bf118d5c] {
38
+ margin-right: 6px;
39
+ }
40
+ .table[data-v-bf118d5c] {
41
+ padding: 12px;
42
+ border-radius: 6px;
43
+
44
+ box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
45
+ }
46
+ el-checkbox[data-v-bf118d5c] {
47
+ margin-top: 10px;
48
+ }
@@ -0,0 +1,49 @@
1
+
2
+ .icon-wrapper[data-v-8e1fe8b0] {
3
+ position: relative;
4
+ display: inline-block;
5
+ }
6
+ .unavailable-icon[data-v-8e1fe8b0] {
7
+ display: inline-block;
8
+ width: 16px;
9
+ height: 16px;
10
+ line-height: 16px;
11
+ text-align: center;
12
+ background-color: #d9534f; /* Bootstrap danger color */
13
+ color: white;
14
+ font-weight: bold;
15
+ font-size: 1.2em;
16
+ border-radius: 50%; /* Makes it round */
17
+ margin-left: 8px;
18
+ cursor: default;
19
+ user-select: none;
20
+ transition:
21
+ background-color 0.3s,
22
+ transform 0.3s;
23
+ z-index: 1000;
24
+ }
25
+ .unavailable-icon[data-v-8e1fe8b0]:hover {
26
+ background-color: #c9302c; /* Darker red on hover */
27
+ transform: scale(1.1); /* Slightly enlarges the icon */
28
+ }
29
+ .tooltip-text[data-v-8e1fe8b0] {
30
+ visibility: hidden;
31
+ background-color: #333;
32
+ color: #fff;
33
+ text-align: center;
34
+ border-radius: 4px;
35
+ padding: 5px;
36
+ position: absolute;
37
+ z-index: 1;
38
+ bottom: 125%; /* Position the tooltip above the icon */
39
+ left: 50%;
40
+ transform: translateX(-50%);
41
+ white-space: nowrap;
42
+ opacity: 0;
43
+ transition: opacity 0.3s;
44
+ }
45
+ .icon-wrapper:hover .tooltip-text[data-v-8e1fe8b0] {
46
+ visibility: visible;
47
+ opacity: 1;
48
+ z-index: 10000;
49
+ }
@@ -0,0 +1,36 @@
1
+ import { P as PopOver } from "./PopOver-b37ff9be.js";
2
+ import { d as defineComponent, c as openBlock, h as createBlock, w as withCtx, p as createBaseVNode, t as toDisplayString, _ as _export_sfc } from "./index-552863fd.js";
3
+ const _hoisted_1 = { class: "icon-wrapper" };
4
+ const _hoisted_2 = { class: "unavailable-icon" };
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "UnavailableFields",
7
+ props: {
8
+ iconText: {
9
+ type: String,
10
+ default: "!"
11
+ // Default to '!' if no input is provided
12
+ },
13
+ tooltipText: {
14
+ type: String,
15
+ default: "Field not available"
16
+ // Default tooltip text
17
+ }
18
+ },
19
+ setup(__props) {
20
+ return (_ctx, _cache) => {
21
+ return openBlock(), createBlock(PopOver, { content: __props.tooltipText }, {
22
+ default: withCtx(() => [
23
+ createBaseVNode("div", _hoisted_1, [
24
+ createBaseVNode("span", _hoisted_2, toDisplayString(__props.iconText), 1)
25
+ ])
26
+ ]),
27
+ _: 1
28
+ }, 8, ["content"]);
29
+ };
30
+ }
31
+ });
32
+ const UnavailableFields_vue_vue_type_style_index_0_scoped_8e1fe8b0_lang = "";
33
+ const unavailableField = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8e1fe8b0"]]);
34
+ export {
35
+ unavailableField as u
36
+ };
@@ -0,0 +1,30 @@
1
+
2
+ .context-menu[data-v-beb191a2] {
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-beb191a2] {
12
+ list-style: none;
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+ .context-menu li[data-v-beb191a2] {
17
+ padding: 8px 16px;
18
+ cursor: pointer;
19
+ }
20
+ .context-menu li[data-v-beb191a2]:hover {
21
+ background-color: #f0f0f0;
22
+ }
23
+ .switch-container[data-v-beb191a2] {
24
+ display: flex;
25
+ align-items: center;
26
+ margin: 12px;
27
+ }
28
+ .switch-container span[data-v-beb191a2] {
29
+ margin-right: 10px;
30
+ }
@@ -0,0 +1,145 @@
1
+ import { u as useNodeStore } from "./PopOver-b37ff9be.js";
2
+ import { G as GenericNodeSettings } from "./genericNodeSettings-65587f20.js";
3
+ import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, g as createTextVNode, i as createCommentVNode, _ as _export_sfc, h as createBlock, a6 as Teleport } from "./index-552863fd.js";
4
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-cf9bae3c.js";
5
+ import "./designer-e5bbe26f.js";
6
+ const _hoisted_1$1 = {
7
+ key: 0,
8
+ class: "listbox-wrapper"
9
+ };
10
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
11
+ __name: "Union",
12
+ setup(__props, { expose: __expose }) {
13
+ const nodeStore = useNodeStore();
14
+ const showContextMenu = ref(false);
15
+ const dataLoaded = ref(false);
16
+ const nodeData = ref(null);
17
+ const unionInput = ref({ mode: "relaxed" });
18
+ const nodeUnion = ref(null);
19
+ const loadNodeData = async (nodeId) => {
20
+ var _a;
21
+ console.log("loadNodeData from union ");
22
+ nodeData.value = await nodeStore.getNodeData(nodeId, false);
23
+ nodeUnion.value = (_a = nodeData.value) == null ? void 0 : _a.setting_input;
24
+ if (nodeData.value) {
25
+ if (nodeUnion.value) {
26
+ if (nodeUnion.value.union_input) {
27
+ unionInput.value = nodeUnion.value.union_input;
28
+ } else {
29
+ nodeUnion.value.union_input = unionInput.value;
30
+ }
31
+ }
32
+ }
33
+ dataLoaded.value = true;
34
+ nodeStore.isDrawerOpen = true;
35
+ console.log("loadNodeData from groupby");
36
+ };
37
+ const handleClickOutside = (event) => {
38
+ const targetEvent = event.target;
39
+ if (targetEvent.id === "pivot-context-menu")
40
+ return;
41
+ showContextMenu.value = false;
42
+ };
43
+ const pushNodeData = async () => {
44
+ if (unionInput.value) {
45
+ nodeStore.updateSettings(nodeUnion);
46
+ }
47
+ nodeStore.isDrawerOpen = false;
48
+ };
49
+ __expose({
50
+ loadNodeData,
51
+ pushNodeData
52
+ });
53
+ onMounted(async () => {
54
+ await nextTick();
55
+ window.addEventListener("click", handleClickOutside);
56
+ });
57
+ onUnmounted(() => {
58
+ window.removeEventListener("click", handleClickOutside);
59
+ });
60
+ return (_ctx, _cache) => {
61
+ return dataLoaded.value && nodeUnion.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
62
+ createVNode(GenericNodeSettings, {
63
+ modelValue: nodeUnion.value,
64
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => nodeUnion.value = $event)
65
+ }, {
66
+ default: withCtx(() => _cache[1] || (_cache[1] = [
67
+ createTextVNode(" 'Union multiple tables into one table, this node does not have settings' ")
68
+ ])),
69
+ _: 1
70
+ }, 8, ["modelValue"])
71
+ ])) : createCommentVNode("", true);
72
+ };
73
+ }
74
+ });
75
+ const Union_vue_vue_type_style_index_0_scoped_beb191a2_lang = "";
76
+ const readInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-beb191a2"]]);
77
+ const _hoisted_1 = { ref: "el" };
78
+ const _sfc_main = /* @__PURE__ */ defineComponent({
79
+ __name: "Union",
80
+ props: {
81
+ nodeId: {
82
+ type: Number,
83
+ required: true
84
+ }
85
+ },
86
+ setup(__props) {
87
+ const nodeStore = useNodeStore();
88
+ const childComp = ref(null);
89
+ const props = __props;
90
+ const drawer = ref(false);
91
+ const closeOnDrawer = () => {
92
+ var _a;
93
+ drawer.value = false;
94
+ (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
95
+ };
96
+ const openDrawer = async () => {
97
+ if (nodeStore.node_id === props.nodeId) {
98
+ return;
99
+ }
100
+ nodeStore.closeDrawer();
101
+ drawer.value = true;
102
+ const drawerOpen = nodeStore.isDrawerOpen;
103
+ nodeStore.isDrawerOpen = true;
104
+ await nextTick();
105
+ if (nodeStore.node_id === props.nodeId && drawerOpen) {
106
+ return;
107
+ }
108
+ if (childComp.value) {
109
+ childComp.value.loadNodeData(props.nodeId);
110
+ nodeStore.openDrawer(closeOnDrawer);
111
+ }
112
+ };
113
+ onMounted(async () => {
114
+ await nextTick();
115
+ });
116
+ return (_ctx, _cache) => {
117
+ return openBlock(), createElementBlock("div", _hoisted_1, [
118
+ createVNode(NodeButton, {
119
+ ref: "nodeButton",
120
+ "node-id": __props.nodeId,
121
+ "image-src": "union.png",
122
+ title: `${__props.nodeId}: Union data`,
123
+ onClick: openDrawer
124
+ }, null, 8, ["node-id", "title"]),
125
+ drawer.value ? (openBlock(), createBlock(Teleport, {
126
+ key: 0,
127
+ to: "#nodesettings"
128
+ }, [
129
+ createVNode(NodeTitle, {
130
+ title: "Union data",
131
+ intro: "Union data into multiple tables. This node does not have settings"
132
+ }),
133
+ createVNode(readInput, {
134
+ ref_key: "childComp",
135
+ ref: childComp,
136
+ "node-id": __props.nodeId
137
+ }, null, 8, ["node-id"])
138
+ ])) : createCommentVNode("", true)
139
+ ], 512);
140
+ };
141
+ }
142
+ });
143
+ export {
144
+ _sfc_main as default
145
+ };