Flowfile 0.3.4.1__py3-none-any.whl → 0.3.6__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 (122) hide show
  1. flowfile/__init__.py +3 -3
  2. flowfile/api.py +36 -15
  3. flowfile/web/static/assets/CloudConnectionManager-2dfdce2f.css +86 -0
  4. flowfile/web/static/assets/CloudConnectionManager-d004942f.js +784 -0
  5. flowfile/web/static/assets/CloudStorageReader-29d14fcc.css +143 -0
  6. flowfile/web/static/assets/CloudStorageReader-eccf9fc2.js +437 -0
  7. flowfile/web/static/assets/CloudStorageWriter-49c9a4b2.css +138 -0
  8. flowfile/web/static/assets/CloudStorageWriter-b1ba6bba.js +430 -0
  9. flowfile/web/static/assets/{CrossJoin-dfcf7351.js → CrossJoin-68981877.js} +8 -8
  10. flowfile/web/static/assets/{DatabaseConnectionSettings-b2afb1d7.js → DatabaseConnectionSettings-0b06649c.js} +2 -2
  11. flowfile/web/static/assets/{DatabaseManager-824a49b2.js → DatabaseManager-8349a426.js} +2 -2
  12. flowfile/web/static/assets/{DatabaseReader-a48124d8.js → DatabaseReader-905344f8.js} +9 -9
  13. flowfile/web/static/assets/{DatabaseWriter-b47cbae2.js → DatabaseWriter-9f5b8638.js} +9 -9
  14. flowfile/web/static/assets/{ExploreData-fdfc45a4.js → ExploreData-131a6d53.js} +5 -5
  15. flowfile/web/static/assets/{ExternalSource-861b0e71.js → ExternalSource-e3549dcc.js} +6 -6
  16. flowfile/web/static/assets/{Filter-f87bb897.js → Filter-6e0730ae.js} +8 -8
  17. flowfile/web/static/assets/{Formula-1e2ed720.js → Formula-02f033e6.js} +75 -9
  18. flowfile/web/static/assets/{Formula-b8cefc31.css → Formula-29f19d21.css} +10 -0
  19. flowfile/web/static/assets/{FuzzyMatch-b6cc4fdd.js → FuzzyMatch-54c14036.js} +9 -9
  20. flowfile/web/static/assets/{GraphSolver-6a371f4c.js → GraphSolver-08a3f499.js} +5 -5
  21. flowfile/web/static/assets/{GroupBy-f7b7f472.js → GroupBy-2ae38139.js} +6 -6
  22. flowfile/web/static/assets/{Join-eec38203.js → Join-493b9772.js} +23 -15
  23. flowfile/web/static/assets/{Join-41c0f331.css → Join-f45eff22.css} +20 -20
  24. flowfile/web/static/assets/{ManualInput-9aaa46fb.js → ManualInput-4373d163.js} +106 -34
  25. flowfile/web/static/assets/{ManualInput-ac7b9972.css → ManualInput-a71b52c6.css} +29 -17
  26. flowfile/web/static/assets/{Output-3b2ca045.js → Output-b534f3c7.js} +4 -4
  27. flowfile/web/static/assets/{Pivot-a4f5d88f.js → Pivot-2968ff65.js} +6 -6
  28. flowfile/web/static/assets/{PolarsCode-49ce444f.js → PolarsCode-65136536.js} +6 -6
  29. flowfile/web/static/assets/{Read-07acdc9a.js → Read-c56339ed.js} +6 -6
  30. flowfile/web/static/assets/{RecordCount-6a21da56.js → RecordCount-1c641a5e.js} +5 -5
  31. flowfile/web/static/assets/{RecordId-949bdc17.js → RecordId-df308b8f.js} +6 -6
  32. flowfile/web/static/assets/{Sample-7afca6e1.js → Sample-293e8a64.js} +5 -5
  33. flowfile/web/static/assets/{SecretManager-b41c029d.js → SecretManager-03911655.js} +2 -2
  34. flowfile/web/static/assets/{Select-32b28406.js → Select-3058a13d.js} +8 -8
  35. flowfile/web/static/assets/{SettingsSection-a0f15a05.js → SettingsSection-fbf4fb39.js} +1 -1
  36. flowfile/web/static/assets/{Sort-fc6ba0e2.js → Sort-a29bbaf7.js} +6 -6
  37. flowfile/web/static/assets/{TextToRows-23127596.js → TextToRows-c7d7760e.js} +8 -8
  38. flowfile/web/static/assets/{UnavailableFields-c42880a3.js → UnavailableFields-118f1d20.js} +2 -2
  39. flowfile/web/static/assets/{Union-39eecc6c.js → Union-f0589571.js} +5 -5
  40. flowfile/web/static/assets/{Unique-a0e8fe61.js → Unique-7329a207.js} +8 -8
  41. flowfile/web/static/assets/{Unpivot-1e2d43f0.js → Unpivot-30b0be15.js} +5 -5
  42. flowfile/web/static/assets/{api-44ca9e9c.js → api-602fb95c.js} +1 -1
  43. flowfile/web/static/assets/api-fb67319c.js +80 -0
  44. flowfile/web/static/assets/cloud_storage_reader-aa1415d6.png +0 -0
  45. flowfile/web/static/assets/{designer-267d44f1.js → designer-94a6bf4d.js} +36 -34
  46. flowfile/web/static/assets/{documentation-6c0810a2.js → documentation-a224831e.js} +1 -1
  47. flowfile/web/static/assets/{dropDown-52790b15.js → dropDown-c2d2aa97.js} +1 -1
  48. flowfile/web/static/assets/{fullEditor-e272b506.js → fullEditor-921ac5fd.js} +2 -2
  49. flowfile/web/static/assets/{genericNodeSettings-4bdcf98e.js → genericNodeSettings-7013cc94.js} +3 -3
  50. flowfile/web/static/assets/{index-e235a8bc.js → index-3a75211d.js} +19 -6
  51. flowfile/web/static/assets/{nodeTitle-fc3fc4b7.js → nodeTitle-a63d4680.js} +3 -3
  52. flowfile/web/static/assets/{secretApi-cdc2a3fd.js → secretApi-763aec6e.js} +1 -1
  53. flowfile/web/static/assets/{selectDynamic-96aa82cd.js → selectDynamic-08464729.js} +3 -3
  54. flowfile/web/static/assets/{vue-codemirror.esm-25e75a08.js → vue-codemirror.esm-f15a5f87.js} +2 -1
  55. flowfile/web/static/assets/{vue-content-loader.es-6c4b1c24.js → vue-content-loader.es-93bd09d7.js} +1 -1
  56. flowfile/web/static/index.html +1 -1
  57. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/METADATA +8 -3
  58. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/RECORD +109 -104
  59. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/entry_points.txt +2 -0
  60. flowfile_core/__init__.py +2 -0
  61. flowfile_core/configs/node_store/nodes.py +8 -6
  62. flowfile_core/database/connection.py +63 -15
  63. flowfile_core/database/init_db.py +0 -1
  64. flowfile_core/database/models.py +49 -2
  65. flowfile_core/flowfile/code_generator/code_generator.py +402 -18
  66. flowfile_core/flowfile/connection_manager/models.py +1 -1
  67. flowfile_core/flowfile/database_connection_manager/db_connections.py +216 -2
  68. flowfile_core/flowfile/extensions.py +1 -1
  69. flowfile_core/flowfile/flow_data_engine/cloud_storage_reader.py +259 -0
  70. flowfile_core/flowfile/flow_data_engine/create/funcs.py +19 -8
  71. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +522 -59
  72. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +12 -2
  73. flowfile_core/flowfile/flow_data_engine/fuzzy_matching/settings_validator.py +1 -1
  74. flowfile_core/flowfile/flow_data_engine/join/__init__.py +2 -1
  75. flowfile_core/flowfile/flow_data_engine/join/utils.py +25 -0
  76. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +29 -22
  77. flowfile_core/flowfile/flow_data_engine/utils.py +1 -40
  78. flowfile_core/flowfile/flow_graph.py +119 -82
  79. flowfile_core/flowfile/flow_node/flow_node.py +68 -33
  80. flowfile_core/flowfile/flow_node/models.py +32 -3
  81. flowfile_core/flowfile/flow_node/schema_callback.py +3 -2
  82. flowfile_core/flowfile/sources/external_sources/__init__.py +0 -2
  83. flowfile_core/flowfile/sources/external_sources/factory.py +4 -7
  84. flowfile_core/flowfile/utils.py +1 -23
  85. flowfile_core/main.py +3 -2
  86. flowfile_core/routes/cloud_connections.py +81 -0
  87. flowfile_core/routes/logs.py +0 -1
  88. flowfile_core/routes/routes.py +3 -39
  89. flowfile_core/schemas/cloud_storage_schemas.py +215 -0
  90. flowfile_core/schemas/input_schema.py +37 -15
  91. flowfile_core/schemas/schemas.py +7 -2
  92. flowfile_core/schemas/transform_schema.py +97 -22
  93. flowfile_core/utils/utils.py +40 -1
  94. flowfile_core/utils/validate_setup.py +41 -0
  95. flowfile_frame/flow_frame.py +253 -102
  96. flowfile_frame/flow_frame_methods.py +13 -13
  97. flowfile_worker/external_sources/s3_source/main.py +216 -0
  98. flowfile_worker/external_sources/s3_source/models.py +142 -0
  99. flowfile_worker/funcs.py +51 -6
  100. flowfile_worker/models.py +22 -2
  101. flowfile_worker/routes.py +40 -38
  102. flowfile_worker/utils.py +1 -1
  103. test_utils/s3/commands.py +46 -0
  104. test_utils/s3/data_generator.py +291 -0
  105. test_utils/s3/fixtures.py +209 -0
  106. flowfile/web/static/assets/AirbyteReader-1ac35765.css +0 -314
  107. flowfile/web/static/assets/AirbyteReader-e08044e5.js +0 -922
  108. flowfile/web/static/assets/dropDownGeneric-60f56a8a.js +0 -72
  109. flowfile/web/static/assets/dropDownGeneric-895680d6.css +0 -10
  110. flowfile_core/flowfile/sources/external_sources/airbyte_sources/airbyte.py +0 -159
  111. flowfile_core/flowfile/sources/external_sources/airbyte_sources/models.py +0 -172
  112. flowfile_core/flowfile/sources/external_sources/airbyte_sources/settings.py +0 -173
  113. flowfile_core/schemas/external_sources/airbyte_schemas.py +0 -20
  114. flowfile_worker/external_sources/airbyte_sources/__init__.py +0 -0
  115. flowfile_worker/external_sources/airbyte_sources/cache_manager.py +0 -161
  116. flowfile_worker/external_sources/airbyte_sources/main.py +0 -89
  117. flowfile_worker/external_sources/airbyte_sources/models.py +0 -133
  118. flowfile_worker/external_sources/airbyte_sources/settings.py +0 -0
  119. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/LICENSE +0 -0
  120. {flowfile-0.3.4.1.dist-info → flowfile-0.3.6.dist-info}/WHEEL +0 -0
  121. {flowfile_core/flowfile/sources/external_sources/airbyte_sources → flowfile_worker/external_sources/s3_source}/__init__.py +0 -0
  122. {flowfile_core/schemas/external_sources → test_utils/s3}/__init__.py +0 -0
@@ -1,8 +1,8 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
2
- import { k as getDefaultExportFromCjs, d as defineComponent, r as ref, n as onMounted, o as onUnmounted, c as openBlock, e as createElementBlock, af as toRaw, _ as _export_sfc, a as axios, l as computed, h as createBlock, u as unref, p as createBaseVNode, t as toDisplayString, f as createVNode, a7 as Teleport, i as createCommentVNode, R as nextTick } from "./index-e235a8bc.js";
3
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
4
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
5
- import { u as useItemStore } from "./designer-267d44f1.js";
1
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
2
+ import { k as getDefaultExportFromCjs, d as defineComponent, r as ref, n as onMounted, o as onUnmounted, c as openBlock, e as createElementBlock, af as toRaw, _ as _export_sfc, a as axios, l as computed, h as createBlock, u as unref, p as createBaseVNode, t as toDisplayString, f as createVNode, a7 as Teleport, i as createCommentVNode, R as nextTick } from "./index-3a75211d.js";
3
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
4
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
5
+ import { u as useItemStore } from "./designer-94a6bf4d.js";
6
6
  function _mergeNamespaces(n10, m10) {
7
7
  for (var i = 0; i < m10.length; i++) {
8
8
  const e20 = m10[i];
@@ -1,9 +1,9 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
3
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
4
- import { d as defineComponent, r as ref, a3 as watchEffect, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, i as createCommentVNode, h as createBlock, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-e235a8bc.js";
5
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
6
- import "./designer-267d44f1.js";
1
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
4
+ import { d as defineComponent, r as ref, a3 as watchEffect, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, i as createCommentVNode, h as createBlock, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-3a75211d.js";
5
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
6
+ import "./designer-94a6bf4d.js";
7
7
  function get_template_source_type(type, options) {
8
8
  switch (type) {
9
9
  case "SAMPLE_USERS":
@@ -1,11 +1,11 @@
1
- import { d as defineComponent, r as ref, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, u as unref, a5 as withDirectives, a6 as vModelText, h as createBlock, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-e235a8bc.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
3
- import { C as ColumnSelector } from "./dropDown-52790b15.js";
4
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
5
- import mainEditorRef from "./fullEditor-e272b506.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
8
- import "./designer-267d44f1.js";
1
+ import { d as defineComponent, r as ref, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, u as unref, a5 as withDirectives, a6 as vModelText, h as createBlock, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-3a75211d.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
3
+ import { C as ColumnSelector } from "./dropDown-c2d2aa97.js";
4
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
5
+ import mainEditorRef from "./fullEditor-921ac5fd.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
7
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
8
+ import "./designer-94a6bf4d.js";
9
9
  const _hoisted_1 = { key: 0 };
10
10
  const _hoisted_2 = { class: "listbox-wrapper" };
11
11
  const _hoisted_3 = { style: { "border-radius": "20px" } };
@@ -1,12 +1,78 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
3
- import mainEditorRef from "./fullEditor-e272b506.js";
4
- import { D as DropDownGeneric } from "./dropDownGeneric-60f56a8a.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
6
- import { d as defineComponent, r as ref, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, u as unref, i as createCommentVNode, h as createBlock, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-e235a8bc.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
8
- import "./dropDown-52790b15.js";
9
- import "./designer-267d44f1.js";
1
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
3
+ import mainEditorRef from "./fullEditor-921ac5fd.js";
4
+ import { C as ColumnSelector } from "./dropDown-c2d2aa97.js";
5
+ import { d as defineComponent, r as ref, m as watch, c as openBlock, e as createElementBlock, t as toDisplayString, i as createCommentVNode, p as createBaseVNode, f as createVNode, _ as _export_sfc, w as withCtx, u as unref, h as createBlock, n as onMounted, R as nextTick, a7 as Teleport } from "./index-3a75211d.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
7
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
8
+ import "./designer-94a6bf4d.js";
9
+ const _hoisted_1$2 = {
10
+ key: 0,
11
+ class: "label"
12
+ };
13
+ const _hoisted_2$1 = { class: "select-wrapper" };
14
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
15
+ __name: "dropDownGeneric",
16
+ props: {
17
+ modelValue: {
18
+ type: String,
19
+ default: "NewField"
20
+ },
21
+ optionList: {
22
+ type: Array,
23
+ required: true
24
+ },
25
+ title: {
26
+ type: String,
27
+ default: ""
28
+ },
29
+ allowOther: {
30
+ type: Boolean,
31
+ default: true
32
+ },
33
+ placeholder: {
34
+ type: String,
35
+ default: "Select an option"
36
+ },
37
+ isLoading: {
38
+ type: Boolean,
39
+ default: false
40
+ }
41
+ },
42
+ emits: ["update:modelValue", "change"],
43
+ setup(__props, { emit: __emit }) {
44
+ const props = __props;
45
+ const emit = __emit;
46
+ const localSelectedValue = ref(props.modelValue);
47
+ watch(
48
+ () => props.modelValue,
49
+ (newVal) => {
50
+ localSelectedValue.value = newVal;
51
+ }
52
+ );
53
+ watch(localSelectedValue, (newVal) => {
54
+ emit("update:modelValue", newVal);
55
+ emit("change", newVal);
56
+ });
57
+ return (_ctx, _cache) => {
58
+ return openBlock(), createElementBlock("div", null, [
59
+ __props.title !== "" ? (openBlock(), createElementBlock("p", _hoisted_1$2, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
60
+ createBaseVNode("div", _hoisted_2$1, [
61
+ createVNode(ColumnSelector, {
62
+ modelValue: localSelectedValue.value,
63
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => localSelectedValue.value = $event),
64
+ "column-options": __props.optionList,
65
+ "allow-other": __props.allowOther,
66
+ placeholder: __props.placeholder,
67
+ "is-loading": __props.isLoading
68
+ }, null, 8, ["modelValue", "column-options", "allow-other", "placeholder", "is-loading"])
69
+ ])
70
+ ]);
71
+ };
72
+ }
73
+ });
74
+ const dropDownGeneric_vue_vue_type_style_index_0_scoped_f2958f57_lang = "";
75
+ const DropDownGeneric = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f2958f57"]]);
10
76
  const createFormulaInput = (field_name = "", data_type = "String", function_def = "") => {
11
77
  const fieldInput = {
12
78
  name: field_name,
@@ -1,3 +1,13 @@
1
+
2
+ .label[data-v-f2958f57] {
3
+ font-weight: bold;
4
+ margin-bottom: 8px;
5
+ color: #333;
6
+ }
7
+ .select-wrapper[data-v-f2958f57] {
8
+ width: 100%;
9
+ position: relative;
10
+ }
1
11
  .x-flip[data-v-710d5b5e] {
2
12
  transform: scaleX(-1);
3
13
  }
@@ -1,12 +1,12 @@
1
- import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, s as normalizeClass, F as Fragment, q as renderList, h as createBlock, i as createCommentVNode, g as createTextVNode, t as toDisplayString, a5 as withDirectives, a6 as vModelText, ag as vModelSelect, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-e235a8bc.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
3
- import { C as ColumnSelector } from "./dropDown-52790b15.js";
4
- import { s as selectDynamic } from "./selectDynamic-96aa82cd.js";
5
- import { u as unavailableField } from "./UnavailableFields-c42880a3.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
7
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
8
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
9
- import "./designer-267d44f1.js";
1
+ import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, s as normalizeClass, F as Fragment, q as renderList, h as createBlock, i as createCommentVNode, g as createTextVNode, t as toDisplayString, a5 as withDirectives, a6 as vModelText, ag as vModelSelect, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-3a75211d.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
3
+ import { C as ColumnSelector } from "./dropDown-c2d2aa97.js";
4
+ import { s as selectDynamic } from "./selectDynamic-08464729.js";
5
+ import { u as unavailableField } from "./UnavailableFields-118f1d20.js";
6
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
7
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
8
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
9
+ import "./designer-94a6bf4d.js";
10
10
  const _hoisted_1$1 = {
11
11
  key: 0,
12
12
  class: "fuzzy-join-container"
@@ -1,8 +1,8 @@
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, l as computed, 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-e235a8bc.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
3
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
4
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
5
- import "./designer-267d44f1.js";
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, l as computed, 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-3a75211d.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
4
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
5
+ import "./designer-94a6bf4d.js";
6
6
  const _hoisted_1$3 = ["onClick"];
7
7
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
8
8
  __name: "ContextMenu",
@@ -1,9 +1,9 @@
1
- import { d as defineComponent, r as ref, l as computed, 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, t as toDisplayString, i as createCommentVNode, T as normalizeStyle, v as withModifiers, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-e235a8bc.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
3
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
4
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
5
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
6
- import "./designer-267d44f1.js";
1
+ import { d as defineComponent, r as ref, l as computed, 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, t as toDisplayString, i as createCommentVNode, T as normalizeStyle, v as withModifiers, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-3a75211d.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
3
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
4
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
5
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
6
+ import "./designer-94a6bf4d.js";
7
7
  const _hoisted_1$1 = { key: 0 };
8
8
  const _hoisted_2 = { class: "listbox-wrapper" };
9
9
  const _hoisted_3 = {
@@ -1,12 +1,12 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
3
- import { C as ColumnSelector } from "./dropDown-52790b15.js";
4
- import { s as selectDynamic } from "./selectDynamic-96aa82cd.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
6
- import { d as defineComponent, r as ref, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, h as createBlock, i as createCommentVNode, F as Fragment, q as renderList, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-e235a8bc.js";
7
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
8
- import "./UnavailableFields-c42880a3.js";
9
- import "./designer-267d44f1.js";
1
+ import { C as CodeLoader } from "./vue-content-loader.es-93bd09d7.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-f15a5f87.js";
3
+ import { C as ColumnSelector } from "./dropDown-c2d2aa97.js";
4
+ import { s as selectDynamic } from "./selectDynamic-08464729.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-7013cc94.js";
6
+ import { d as defineComponent, r as ref, l as computed, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, h as createBlock, i as createCommentVNode, F as Fragment, q as renderList, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport } from "./index-3a75211d.js";
7
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a63d4680.js";
8
+ import "./UnavailableFields-118f1d20.js";
9
+ import "./designer-94a6bf4d.js";
10
10
  const _hoisted_1$1 = {
11
11
  key: 0,
12
12
  class: "listbox-wrapper"
@@ -22,6 +22,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
22
22
  __name: "join",
23
23
  setup(__props, { expose: __expose }) {
24
24
  const joinTypes = ["inner", "left", "right", "full", "semi", "anti", "cross"];
25
+ const JOIN_TYPES_WITHOUT_COLUMN_SELECTION = ["anti", "semi"];
25
26
  const handleJoinTypeError = (error) => {
26
27
  console.error("Join type error:", error);
27
28
  };
@@ -53,6 +54,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
53
54
  });
54
55
  }
55
56
  };
57
+ const showColumnSelection = computed(() => {
58
+ var _a;
59
+ const joinType = (_a = nodeJoin.value) == null ? void 0 : _a.join_input.how;
60
+ return joinType && !JOIN_TYPES_WITHOUT_COLUMN_SELECTION.includes(joinType);
61
+ });
56
62
  const removeJoinCondition = (index) => {
57
63
  if (nodeJoin.value && index >= 0) {
58
64
  nodeJoin.value.join_input.join_mapping.splice(index, 1);
@@ -147,7 +153,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
147
153
  ])
148
154
  ])
149
155
  ]),
150
- createVNode(selectDynamic, {
156
+ showColumnSelection.value ? (openBlock(), createBlock(selectDynamic, {
157
+ key: 0,
151
158
  "select-inputs": (_b = nodeJoin.value) == null ? void 0 : _b.join_input.left_select.renames,
152
159
  "show-keep-option": true,
153
160
  "show-title": true,
@@ -155,8 +162,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
155
162
  "show-data": true,
156
163
  title: "Left data",
157
164
  onUpdateSelectInputs: _cache[1] || (_cache[1] = (updatedInputs) => updateSelectInputsHandler(updatedInputs, true))
158
- }, null, 8, ["select-inputs"]),
159
- createVNode(selectDynamic, {
165
+ }, null, 8, ["select-inputs"])) : createCommentVNode("", true),
166
+ showColumnSelection.value ? (openBlock(), createBlock(selectDynamic, {
167
+ key: 1,
160
168
  "select-inputs": (_c = nodeJoin.value) == null ? void 0 : _c.join_input.right_select.renames,
161
169
  "show-keep-option": true,
162
170
  "show-headers": true,
@@ -164,7 +172,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
164
172
  "show-data": true,
165
173
  title: "Right data",
166
174
  onUpdateSelectInputs: _cache[2] || (_cache[2] = (updatedInputs) => updateSelectInputsHandler(updatedInputs, true))
167
- }, null, 8, ["select-inputs"])
175
+ }, null, 8, ["select-inputs"])) : createCommentVNode("", true)
168
176
  ];
169
177
  }),
170
178
  _: 1,
@@ -174,8 +182,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
174
182
  };
175
183
  }
176
184
  });
177
- const join_vue_vue_type_style_index_0_scoped_ed38aa97_lang = "";
178
- const joinInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ed38aa97"]]);
185
+ const join_vue_vue_type_style_index_0_scoped_f4a6a0de_lang = "";
186
+ const joinInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-f4a6a0de"]]);
179
187
  const _hoisted_1 = { ref: "el" };
180
188
  const _sfc_main = /* @__PURE__ */ defineComponent({
181
189
  __name: "Join",
@@ -1,12 +1,12 @@
1
1
 
2
2
  /* Join Type Selector */
3
- .join-type-selector[data-v-ed38aa97] {
3
+ .join-type-selector[data-v-f4a6a0de] {
4
4
  display: flex;
5
5
  align-items: center;
6
6
  margin: 12px;
7
7
  gap: 10px;
8
8
  }
9
- .join-type-label[data-v-ed38aa97] {
9
+ .join-type-label[data-v-f4a6a0de] {
10
10
  font-size: 12px;
11
11
  color: #333;
12
12
  font-weight: 500;
@@ -14,27 +14,27 @@
14
14
  }
15
15
 
16
16
  /* Join Mapping Section */
17
- .table-wrapper[data-v-ed38aa97] {
17
+ .table-wrapper[data-v-f4a6a0de] {
18
18
  border: 1px solid #eee;
19
19
  border-radius: 6px;
20
20
  overflow: hidden;
21
21
  margin: 5px;
22
22
  }
23
- .selectors-header[data-v-ed38aa97] {
23
+ .selectors-header[data-v-f4a6a0de] {
24
24
  display: flex;
25
25
  justify-content: space-between;
26
26
  padding: 8px 16px;
27
27
  background-color: #fafafa;
28
28
  border-bottom: 1px solid #eee;
29
29
  }
30
- .selectors-title[data-v-ed38aa97] {
30
+ .selectors-title[data-v-f4a6a0de] {
31
31
  flex: 1;
32
32
  text-align: center;
33
33
  font-size: 12px;
34
34
  color: #666;
35
35
  font-weight: 500;
36
36
  }
37
- .selectors-container[data-v-ed38aa97] {
37
+ .selectors-container[data-v-f4a6a0de] {
38
38
  padding: 12px;
39
39
  box-sizing: border-box;
40
40
  width: 100%;
@@ -42,7 +42,7 @@
42
42
  justify-content: space-between;
43
43
  flex-direction: column;
44
44
  }
45
- .selectors-row[data-v-ed38aa97] {
45
+ .selectors-row[data-v-f4a6a0de] {
46
46
  display: flex;
47
47
  gap: 12px;
48
48
  margin-bottom: 8px;
@@ -50,20 +50,20 @@
50
50
  display: flex;
51
51
  justify-content: space-between;
52
52
  }
53
- .selectors-row[data-v-ed38aa97]:last-child {
53
+ .selectors-row[data-v-f4a6a0de]:last-child {
54
54
  margin-bottom: 0;
55
55
  }
56
56
 
57
57
  /* Action Buttons */
58
- .action-buttons[data-v-ed38aa97] {
58
+ .action-buttons[data-v-f4a6a0de] {
59
59
  display: flex;
60
60
  gap: 4px;
61
61
  min-width: 60px;
62
62
  justify-content: center;
63
63
  }
64
- .action-button[data-v-ed38aa97],
65
- .add-join-button[data-v-ed38aa97],
66
- .remove-join-button[data-v-ed38aa97] {
64
+ .action-button[data-v-f4a6a0de],
65
+ .add-join-button[data-v-f4a6a0de],
66
+ .remove-join-button[data-v-f4a6a0de] {
67
67
  cursor: pointer;
68
68
  width: 24px;
69
69
  height: 24px;
@@ -76,34 +76,34 @@
76
76
  font-size: 14px;
77
77
  transition: all 0.2s ease;
78
78
  }
79
- .add-join-button[data-v-ed38aa97] {
79
+ .add-join-button[data-v-f4a6a0de] {
80
80
  color: #45a049;
81
81
  border-color: #45a049;
82
82
  }
83
- .add-join-button[data-v-ed38aa97]:hover {
83
+ .add-join-button[data-v-f4a6a0de]:hover {
84
84
  background-color: #45a049;
85
85
  color: #fff;
86
86
  }
87
- .remove-join-button[data-v-ed38aa97] {
87
+ .remove-join-button[data-v-f4a6a0de] {
88
88
  color: #d32f2f;
89
89
  border-color: #d32f2f;
90
90
  }
91
- .remove-join-button[data-v-ed38aa97]:hover {
91
+ .remove-join-button[data-v-f4a6a0de]:hover {
92
92
  background-color: #d32f2f;
93
93
  color: #fff;
94
94
  }
95
95
 
96
96
  /* Custom scrollbar */
97
- .selectors-container[data-v-ed38aa97]::-webkit-scrollbar {
97
+ .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar {
98
98
  width: 8px;
99
99
  }
100
- .selectors-container[data-v-ed38aa97]::-webkit-scrollbar-track {
100
+ .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar-track {
101
101
  background: transparent;
102
102
  }
103
- .selectors-container[data-v-ed38aa97]::-webkit-scrollbar-thumb {
103
+ .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar-thumb {
104
104
  background-color: rgba(0, 0, 0, 0.1);
105
105
  border-radius: 4px;
106
106
  }
107
- .selectors-container[data-v-ed38aa97]::-webkit-scrollbar-thumb:hover {
107
+ .selectors-container[data-v-f4a6a0de]::-webkit-scrollbar-thumb:hover {
108
108
  background-color: rgba(0, 0, 0, 0.2);
109
109
  }