Flowfile 0.3.9__py3-none-any.whl → 0.5.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.
Files changed (201) hide show
  1. flowfile/__init__.py +8 -1
  2. flowfile/api.py +1 -3
  3. flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-0dfba9f2.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-d5b1b6c9.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-00d87aad.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ColumnSelector-4685e75d.js +83 -0
  8. flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
  9. flowfile/web/static/assets/ContextMenu-23e909da.js +41 -0
  10. flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
  11. flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
  12. flowfile/web/static/assets/ContextMenu-70ae0c79.js +41 -0
  13. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  14. flowfile/web/static/assets/ContextMenu-f149cf7c.js +41 -0
  15. flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
  16. flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-702a3edd.js} +14 -84
  17. flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
  18. flowfile/web/static/assets/CustomNode-b1519993.js +211 -0
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-6f3e4ea5.js} +3 -3
  20. flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-cf5ef661.js} +2 -2
  21. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  22. flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-d38c7295.js} +14 -114
  23. flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-b04ef46a.js} +13 -74
  24. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  25. flowfile/web/static/assets/ExploreData-5fa10ed8.js +192 -0
  26. flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-d39af878.js} +8 -79
  27. flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-9b6d08db.js} +12 -85
  28. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  29. flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-6b04fb1d.js} +20 -87
  30. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  31. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  32. flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-999521f4.js} +16 -87
  33. flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-17dd2198.js} +13 -159
  34. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  35. flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-6b039e18.js} +12 -75
  36. flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
  37. flowfile/web/static/assets/{Join-5a78a203.js → Join-24d0f113.js} +15 -85
  38. flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
  39. flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
  40. flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-34639209.js} +11 -82
  41. flowfile/web/static/assets/MultiSelect-0e8724a3.js +5 -0
  42. flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js +63 -0
  43. flowfile/web/static/assets/NumericInput-3d63a470.js +5 -0
  44. flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js +35 -0
  45. flowfile/web/static/assets/Output-283fe388.css +37 -0
  46. flowfile/web/static/assets/{Output-411ecaee.js → Output-edea9802.js} +62 -273
  47. flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-61d19301.js} +14 -138
  48. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  49. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  50. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  51. flowfile/web/static/assets/PivotValidation-de9f43fe.js +61 -0
  52. flowfile/web/static/assets/PivotValidation-f97fec5b.js +61 -0
  53. flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-bc3c9984.js} +13 -80
  54. flowfile/web/static/assets/Read-64a3f259.js +218 -0
  55. flowfile/web/static/assets/Read-e808b239.css +62 -0
  56. flowfile/web/static/assets/RecordCount-3d5039be.js +53 -0
  57. flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-597510e0.js} +8 -80
  58. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  59. flowfile/web/static/assets/SQLQueryComponent-df51adbe.js +38 -0
  60. flowfile/web/static/assets/{Sample-b4a18476.js → Sample-4be0a507.js} +8 -77
  61. flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-4839be57.js} +2 -2
  62. flowfile/web/static/assets/{Select-727688dc.js → Select-9b72f201.js} +11 -85
  63. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  64. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  65. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  66. flowfile/web/static/assets/SettingsSection-7ded385d.js +45 -0
  67. flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-e1e9c953.js} +2 -40
  68. flowfile/web/static/assets/SettingsSection-f0f75a42.js +53 -0
  69. flowfile/web/static/assets/SingleSelect-6c777aac.js +5 -0
  70. flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js +62 -0
  71. flowfile/web/static/assets/SliderInput-7cb93e62.js +40 -0
  72. flowfile/web/static/assets/SliderInput-b8fb6a8c.css +4 -0
  73. flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
  74. flowfile/web/static/assets/{Sort-be3339a8.js → Sort-6cbde21a.js} +12 -97
  75. flowfile/web/static/assets/TextInput-d9a40c11.js +5 -0
  76. flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-5896c375.js +32 -0
  77. flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
  78. flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-c4fcbf4d.js} +14 -83
  79. flowfile/web/static/assets/ToggleSwitch-4ef91d19.js +5 -0
  80. flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js +31 -0
  81. flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-a03f512c.js} +2 -2
  82. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  83. flowfile/web/static/assets/Union-bfe9b996.js +77 -0
  84. flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-5d023a27.js} +23 -104
  85. flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
  86. flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
  87. flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-91cc5354.js} +12 -166
  88. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  89. flowfile/web/static/assets/UnpivotValidation-7ee2de44.js +51 -0
  90. flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-e51b9924.js} +4 -264
  91. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  92. flowfile/web/static/assets/{api-cb00cce6.js → api-c1bad5ca.js} +1 -1
  93. flowfile/web/static/assets/{api-023d1733.js → api-cf1221f0.js} +1 -1
  94. flowfile/web/static/assets/{designer-2197d782.css → designer-8da3ba3a.css} +859 -201
  95. flowfile/web/static/assets/{designer-6c322d8e.js → designer-9633482a.js} +2297 -733
  96. flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-ca400224.js} +1 -1
  97. flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-614b998d.js} +1 -1
  98. flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-f7971590.js} +2 -2
  99. flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-4fe5f36b.js} +3 -3
  100. flowfile/web/static/assets/{index-681a3ed0.css → index-50508d4d.css} +8 -0
  101. flowfile/web/static/assets/{index-683fc198.js → index-5429bbf8.js} +208 -31
  102. flowfile/web/static/assets/nodeInput-5d0d6b79.js +41 -0
  103. flowfile/web/static/assets/outputCsv-076b85ab.js +86 -0
  104. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  105. flowfile/web/static/assets/outputExcel-0fd17dbe.js +56 -0
  106. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  107. flowfile/web/static/assets/outputParquet-b61e0847.js +31 -0
  108. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  109. flowfile/web/static/assets/readCsv-a8bb8b61.js +179 -0
  110. flowfile/web/static/assets/readCsv-c767cb37.css +52 -0
  111. flowfile/web/static/assets/readExcel-67b4aee0.js +201 -0
  112. flowfile/web/static/assets/readExcel-806d2826.css +64 -0
  113. flowfile/web/static/assets/readParquet-48c81530.css +19 -0
  114. flowfile/web/static/assets/readParquet-92ce1dbc.js +23 -0
  115. flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-68435402.js} +1 -1
  116. flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-92e25ee3.js} +7 -7
  117. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  118. flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
  119. flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-41b0e0d7.js} +65 -36
  120. flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-2c8e608f.js} +1 -1
  121. flowfile/web/static/index.html +2 -2
  122. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/METADATA +5 -3
  123. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/RECORD +191 -121
  124. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/WHEEL +1 -1
  125. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info}/entry_points.txt +1 -0
  126. flowfile_core/__init__.py +3 -0
  127. flowfile_core/configs/flow_logger.py +5 -13
  128. flowfile_core/configs/node_store/__init__.py +30 -0
  129. flowfile_core/configs/node_store/nodes.py +383 -99
  130. flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
  131. flowfile_core/configs/settings.py +2 -1
  132. flowfile_core/database/connection.py +5 -21
  133. flowfile_core/fileExplorer/funcs.py +239 -121
  134. flowfile_core/flowfile/analytics/analytics_processor.py +1 -0
  135. flowfile_core/flowfile/code_generator/code_generator.py +62 -64
  136. flowfile_core/flowfile/flow_data_engine/create/funcs.py +73 -56
  137. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +77 -86
  138. flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
  139. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
  140. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
  141. flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +23 -23
  142. flowfile_core/flowfile/flow_data_engine/join/utils.py +1 -1
  143. flowfile_core/flowfile/flow_data_engine/join/verify_integrity.py +9 -4
  144. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +212 -86
  145. flowfile_core/flowfile/flow_data_engine/utils.py +2 -0
  146. flowfile_core/flowfile/flow_graph.py +240 -54
  147. flowfile_core/flowfile/flow_node/flow_node.py +48 -13
  148. flowfile_core/flowfile/flow_node/models.py +2 -1
  149. flowfile_core/flowfile/handler.py +24 -5
  150. flowfile_core/flowfile/manage/compatibility_enhancements.py +404 -41
  151. flowfile_core/flowfile/manage/io_flowfile.py +394 -0
  152. flowfile_core/flowfile/node_designer/__init__.py +47 -0
  153. flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
  154. flowfile_core/flowfile/node_designer/custom_node.py +371 -0
  155. flowfile_core/flowfile/node_designer/ui_components.py +277 -0
  156. flowfile_core/flowfile/schema_callbacks.py +17 -10
  157. flowfile_core/flowfile/setting_generator/settings.py +15 -10
  158. flowfile_core/main.py +5 -1
  159. flowfile_core/routes/routes.py +73 -30
  160. flowfile_core/routes/user_defined_components.py +55 -0
  161. flowfile_core/schemas/cloud_storage_schemas.py +0 -2
  162. flowfile_core/schemas/input_schema.py +228 -65
  163. flowfile_core/schemas/output_model.py +5 -2
  164. flowfile_core/schemas/schemas.py +153 -35
  165. flowfile_core/schemas/transform_schema.py +1083 -412
  166. flowfile_core/schemas/yaml_types.py +103 -0
  167. flowfile_core/types.py +156 -0
  168. flowfile_core/utils/validate_setup.py +3 -1
  169. flowfile_frame/__init__.py +3 -1
  170. flowfile_frame/flow_frame.py +31 -24
  171. flowfile_frame/flow_frame_methods.py +12 -9
  172. flowfile_worker/__init__.py +9 -35
  173. flowfile_worker/create/__init__.py +3 -21
  174. flowfile_worker/create/funcs.py +68 -56
  175. flowfile_worker/create/models.py +130 -62
  176. flowfile_worker/main.py +5 -2
  177. flowfile_worker/routes.py +52 -13
  178. shared/__init__.py +15 -0
  179. shared/storage_config.py +258 -0
  180. tools/migrate/README.md +56 -0
  181. tools/migrate/__init__.py +12 -0
  182. tools/migrate/__main__.py +131 -0
  183. tools/migrate/legacy_schemas.py +621 -0
  184. tools/migrate/migrate.py +598 -0
  185. tools/migrate/tests/__init__.py +0 -0
  186. tools/migrate/tests/conftest.py +23 -0
  187. tools/migrate/tests/test_migrate.py +627 -0
  188. tools/migrate/tests/test_migration_e2e.py +1010 -0
  189. tools/migrate/tests/test_node_migrations.py +813 -0
  190. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  191. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  192. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  193. flowfile/web/static/assets/Read-c3b1929c.js +0 -701
  194. flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
  195. flowfile/web/static/assets/Union-89fd73dc.js +0 -146
  196. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  197. flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
  198. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  199. flowfile_core/flowfile/manage/open_flowfile.py +0 -135
  200. {flowfile-0.3.9.dist-info → flowfile-0.5.1.dist-info/licenses}/LICENSE +0 -0
  201. /flowfile_core/flowfile/manage/manage_flowfile.py → /tools/__init__.py +0 -0
@@ -0,0 +1,41 @@
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 } from "./index-5429bbf8.js";
2
+ const _hoisted_1 = ["onClick"];
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "ContextMenu",
5
+ props: {
6
+ position: { type: Object, required: true },
7
+ options: {
8
+ type: Array,
9
+ required: true
10
+ }
11
+ },
12
+ emits: ["select", "close"],
13
+ setup(__props, { emit: __emit }) {
14
+ const emit = __emit;
15
+ const selectOption = (action) => {
16
+ emit("select", action);
17
+ emit("close");
18
+ };
19
+ return (_ctx, _cache) => {
20
+ return openBlock(), createElementBlock("div", {
21
+ class: "context-menu",
22
+ style: normalizeStyle({ top: __props.position.y + "px", left: __props.position.x + "px" })
23
+ }, [
24
+ createBaseVNode("ul", null, [
25
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
26
+ return openBlock(), createElementBlock("li", {
27
+ key: option.action,
28
+ class: normalizeClass({ disabled: option.disabled }),
29
+ onClick: ($event) => !option.disabled && selectOption(option.action)
30
+ }, toDisplayString(option.label), 11, _hoisted_1);
31
+ }), 128))
32
+ ])
33
+ ], 4);
34
+ };
35
+ }
36
+ });
37
+ const ContextMenu_vue_vue_type_style_index_0_scoped_d0286fd2_lang = "";
38
+ const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d0286fd2"]]);
39
+ export {
40
+ ContextMenu as default
41
+ };
@@ -0,0 +1,26 @@
1
+
2
+ .context-menu[data-v-4f9e01e5] {
3
+ position: fixed;
4
+ z-index: 1000;
5
+ border: 1px solid #ccc;
6
+ background-color: white;
7
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
8
+ border-radius: 4px;
9
+ user-select: none;
10
+ }
11
+ .context-menu ul[data-v-4f9e01e5] {
12
+ list-style: none;
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+ .context-menu li[data-v-4f9e01e5] {
17
+ padding: 8px 16px;
18
+ cursor: pointer;
19
+ }
20
+ .context-menu li.disabled[data-v-4f9e01e5] {
21
+ color: #ccc;
22
+ cursor: not-allowed;
23
+ }
24
+ .context-menu li[data-v-4f9e01e5]:hover:not(.disabled) {
25
+ background-color: #f0f0f0;
26
+ }
@@ -0,0 +1,41 @@
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 } from "./index-5429bbf8.js";
2
+ const _hoisted_1 = ["onClick"];
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "ContextMenu",
5
+ props: {
6
+ position: { type: Object, required: true },
7
+ options: {
8
+ type: Array,
9
+ required: true
10
+ }
11
+ },
12
+ emits: ["select", "close"],
13
+ setup(__props, { emit: __emit }) {
14
+ const emit = __emit;
15
+ const selectOption = (action) => {
16
+ emit("select", action);
17
+ emit("close");
18
+ };
19
+ return (_ctx, _cache) => {
20
+ return openBlock(), createElementBlock("div", {
21
+ class: "context-menu",
22
+ style: normalizeStyle({ top: __props.position.y + "px", left: __props.position.x + "px" })
23
+ }, [
24
+ createBaseVNode("ul", null, [
25
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
26
+ return openBlock(), createElementBlock("li", {
27
+ key: option.action,
28
+ class: normalizeClass({ disabled: option.disabled }),
29
+ onClick: ($event) => !option.disabled && selectOption(option.action)
30
+ }, toDisplayString(option.label), 11, _hoisted_1);
31
+ }), 128))
32
+ ])
33
+ ], 4);
34
+ };
35
+ }
36
+ });
37
+ const ContextMenu_vue_vue_type_style_index_0_scoped_a562ba5e_lang = "";
38
+ const ContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a562ba5e"]]);
39
+ export {
40
+ ContextMenu as default
41
+ };
@@ -1,10 +1,10 @@
1
1
 
2
- .selectors-row[data-v-de068ad8] {
2
+ .selectors-row[data-v-e594e542] {
3
3
  display: flex;
4
4
  justify-content: space-between;
5
5
  margin-bottom: 10px; /* Spacing between rows */
6
6
  }
7
- .context-menu[data-v-de068ad8] {
7
+ .context-menu[data-v-e594e542] {
8
8
  position: fixed;
9
9
  z-index: 1000;
10
10
  border: 1px solid #ccc;
@@ -14,7 +14,7 @@
14
14
  border-radius: 4px;
15
15
  user-select: none;
16
16
  }
17
- .context-menu button[data-v-de068ad8] {
17
+ .context-menu button[data-v-e594e542] {
18
18
  display: block;
19
19
  background: none;
20
20
  border: none;
@@ -24,17 +24,17 @@
24
24
  cursor: pointer;
25
25
  z-index: 100;
26
26
  }
27
- .context-menu button[data-v-de068ad8]:hover {
27
+ .context-menu button[data-v-e594e542]:hover {
28
28
  background-color: #f0f0f0;
29
29
  }
30
- .table-wrapper[data-v-de068ad8] {
30
+ .table-wrapper[data-v-e594e542] {
31
31
  max-height: 250px; /* Adjust this value as needed */
32
32
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* subtle shadow for depth */
33
33
  border-radius: 8px; /* rounded corners */
34
34
  overflow: auto; /* ensures the rounded corners are applied to the child elements */
35
35
  margin: 5px; /* adds a small margin around the table */
36
36
  }
37
- .context-menu[data-v-de068ad8] {
37
+ .context-menu[data-v-e594e542] {
38
38
  position: fixed;
39
39
  z-index: 1000;
40
40
  border: 1px solid #ccc;
@@ -42,39 +42,39 @@
42
42
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
43
43
  border-radius: 4px;
44
44
  }
45
- .context-menu ul[data-v-de068ad8] {
45
+ .context-menu ul[data-v-e594e542] {
46
46
  list-style: none;
47
47
  padding: 0;
48
48
  margin: 0;
49
49
  }
50
- .context-menu li[data-v-de068ad8] {
50
+ .context-menu li[data-v-e594e542] {
51
51
  padding: 8px 16px;
52
52
  cursor: pointer;
53
53
  }
54
- .context-menu li[data-v-de068ad8]:hover {
54
+ .context-menu li[data-v-e594e542]:hover {
55
55
  background-color: #f0f0f0;
56
56
  }
57
- .selectors-container[data-v-de068ad8] {
57
+ .selectors-container[data-v-e594e542] {
58
58
  display: flex;
59
59
  flex-direction: column;
60
60
  }
61
- .selectors-row[data-v-de068ad8] {
61
+ .selectors-row[data-v-e594e542] {
62
62
  display: flex;
63
63
  justify-content: space-between;
64
64
  align-items: center;
65
65
  }
66
- .add-button-container[data-v-de068ad8] {
66
+ .add-button-container[data-v-e594e542] {
67
67
  padding-left: 20px; /* Adjust as needed */
68
68
  display: flex;
69
69
  align-items: center;
70
70
  }
71
- .action-buttons[data-v-de068ad8] {
71
+ .action-buttons[data-v-e594e542] {
72
72
  display: flex;
73
73
  align-items: center;
74
74
  justify-content: flex-end; /* Adjust if needed */
75
75
  }
76
- .remove-join-button[data-v-de068ad8],
77
- .add-join-button[data-v-de068ad8] {
76
+ .remove-join-button[data-v-e594e542],
77
+ .add-join-button[data-v-e594e542] {
78
78
  cursor: pointer;
79
79
  margin-left: 10px; /* Space between buttons */
80
80
  padding: 0 6px; /* Adjust padding */
@@ -83,17 +83,17 @@
83
83
  min-width: 30px; /* Minimum width to ensure buttons don't shrink */
84
84
  text-align: center; /* Ensure the symbols are centered */
85
85
  }
86
- .selectors-header[data-v-de068ad8] {
86
+ .selectors-header[data-v-e594e542] {
87
87
  display: flex;
88
88
  justify-content: space-between;
89
89
  padding: 0 15px; /* Adjust padding for finer control */
90
90
  }
91
- .selectors-title[data-v-de068ad8] {
91
+ .selectors-title[data-v-e594e542] {
92
92
  flex: 1; /* Adjust this based on your needs */
93
93
  text-align: center; /* Center the titles */
94
94
  padding: 0 10px; /* Add padding to ensure alignment with the columns below */
95
95
  }
96
- .action-buttons[data-v-de068ad8] {
96
+ .action-buttons[data-v-e594e542] {
97
97
  flex-basis: 60px; /* Adjust according to the width of your buttons */
98
98
  display: flex;
99
99
  justify-content: center; /* Center the buttons within the action column */
@@ -1,15 +1,14 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-ba94b82f.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
3
- import { s as selectDynamic } from "./selectDynamic-de91449a.js";
4
- import { G as GenericNodeSettings } from "./genericNodeSettings-def5879b.js";
5
- 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, u as unref, _ as _export_sfc, n as onMounted, R as nextTick, a7 as Teleport, i as createCommentVNode } from "./index-683fc198.js";
6
- import { N as NodeButton, a as NodeTitle } from "./nodeTitle-a16db7c3.js";
7
- import "./UnavailableFields-8b0cb48e.js";
8
- import "./designer-6c322d8e.js";
9
- const _hoisted_1$1 = { key: 0 };
1
+ import { C as CodeLoader } from "./vue-content-loader.es-2c8e608f.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-41b0e0d7.js";
3
+ import { s as selectDynamic } from "./selectDynamic-92e25ee3.js";
4
+ import { G as GenericNodeSettings } from "./genericNodeSettings-4fe5f36b.js";
5
+ 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, u as unref, _ as _export_sfc } from "./index-5429bbf8.js";
6
+ import "./UnavailableFields-a03f512c.js";
7
+ import "./designer-9633482a.js";
8
+ const _hoisted_1 = { key: 0 };
10
9
  const _hoisted_2 = { class: "listbox-wrapper" };
11
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12
- __name: "crossJoin",
10
+ const _sfc_main = /* @__PURE__ */ defineComponent({
11
+ __name: "CrossJoin",
13
12
  setup(__props, { expose: __expose }) {
14
13
  const result = ref(null);
15
14
  const nodeStore = useNodeStore();
@@ -31,19 +30,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
31
30
  console.log("Data loaded");
32
31
  dataLoaded.value = true;
33
32
  }
34
- nodeStore.isDrawerOpen = true;
35
33
  };
36
34
  const pushNodeData = async () => {
37
35
  console.log("Pushing node data");
38
36
  nodeStore.updateSettings(nodeCrossJoin);
39
- nodeStore.isDrawerOpen = false;
40
37
  };
41
38
  __expose({
42
39
  loadNodeData,
43
40
  pushNodeData
44
41
  });
45
42
  return (_ctx, _cache) => {
46
- return dataLoaded.value && nodeCrossJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
43
+ return dataLoaded.value && nodeCrossJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
47
44
  createVNode(GenericNodeSettings, {
48
45
  modelValue: nodeCrossJoin.value,
49
46
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeCrossJoin.value = $event)
@@ -79,75 +76,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
79
76
  };
80
77
  }
81
78
  });
82
- const crossJoin_vue_vue_type_style_index_0_scoped_de068ad8_lang = "";
83
- const joinInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-de068ad8"]]);
84
- const _hoisted_1 = { ref: "el" };
85
- const _sfc_main = /* @__PURE__ */ defineComponent({
86
- __name: "CrossJoin",
87
- props: {
88
- nodeId: {
89
- type: Number,
90
- required: true
91
- }
92
- },
93
- setup(__props) {
94
- const nodeStore = useNodeStore();
95
- const childComp = ref(null);
96
- const drawer = ref(false);
97
- const props = __props;
98
- const closeOnDrawer = () => {
99
- var _a;
100
- (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
101
- drawer.value = false;
102
- nodeStore.isDrawerOpen = false;
103
- };
104
- const openDrawer = async () => {
105
- if (nodeStore.node_id === props.nodeId) {
106
- return;
107
- }
108
- nodeStore.closeDrawer();
109
- drawer.value = true;
110
- const drawerOpen = nodeStore.isDrawerOpen;
111
- nodeStore.isDrawerOpen = true;
112
- await nextTick();
113
- if (nodeStore.node_id === props.nodeId && drawerOpen) {
114
- return;
115
- }
116
- if (childComp.value) {
117
- childComp.value.loadNodeData(props.nodeId);
118
- nodeStore.openDrawer(closeOnDrawer);
119
- }
120
- };
121
- onMounted(async () => {
122
- await nextTick();
123
- });
124
- return (_ctx, _cache) => {
125
- return openBlock(), createElementBlock("div", _hoisted_1, [
126
- createVNode(NodeButton, {
127
- ref: "nodeButton",
128
- "node-id": __props.nodeId,
129
- "image-src": "cross_join.png",
130
- title: `${__props.nodeId}: Join`,
131
- onClick: openDrawer
132
- }, null, 8, ["node-id", "title"]),
133
- drawer.value ? (openBlock(), createBlock(Teleport, {
134
- key: 0,
135
- to: "#nodesettings"
136
- }, [
137
- createVNode(NodeTitle, {
138
- title: "Join",
139
- intro: "Combine datasets based on one or more columns."
140
- }),
141
- createVNode(joinInput, {
142
- ref_key: "childComp",
143
- ref: childComp,
144
- "node-id": __props.nodeId
145
- }, null, 8, ["node-id"])
146
- ])) : createCommentVNode("", true)
147
- ], 512);
148
- };
149
- }
150
- });
79
+ const CrossJoin_vue_vue_type_style_index_0_scoped_e594e542_lang = "";
80
+ const CrossJoin = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e594e542"]]);
151
81
  export {
152
- _sfc_main as default
82
+ CrossJoin as default
153
83
  };
@@ -0,0 +1,32 @@
1
+
2
+ .custom-node-wrapper[data-v-d7137248] {
3
+ padding: 1.5rem;
4
+ background-color: #f9fafb; /* bg-gray-50 */
5
+ }
6
+ .node-header[data-v-d7137248] {
7
+ padding-bottom: 1rem;
8
+ border-bottom: 1px solid #e5e7eb; /* border-gray-200 */
9
+ margin-bottom: 1.5rem;
10
+ }
11
+ .node-title[data-v-d7137248] {
12
+ font-size: 1.25rem; /* text-xl */
13
+ font-weight: 700; /* font-bold */
14
+ color: #1f2937; /* text-gray-800 */
15
+ }
16
+ .node-category[data-v-d7137248] {
17
+ font-size: 0.875rem; /* text-sm */
18
+ color: #6b7280; /* text-gray-500 */
19
+ margin-top: 0.25rem;
20
+ }
21
+ .section-description[data-v-d7137248] {
22
+ font-size: 0.875rem;
23
+ color: #6b7280; /* text-gray-500 */
24
+ margin-top: 0.25rem;
25
+ margin-bottom: 1.25rem;
26
+ padding-left: 0.5rem;
27
+ }
28
+ .components-container[data-v-d7137248] {
29
+ display: flex;
30
+ flex-direction: column;
31
+ gap: 1.25rem; /* space-y-5 */
32
+ }
@@ -0,0 +1,211 @@
1
+ import { a as axios, d as defineComponent, r as ref, c as openBlock, e as createElementBlock, p as createBaseVNode, g as createTextVNode, t as toDisplayString, f as createVNode, w as withCtx, F as Fragment, q as renderList, a8 as withDirectives, af as vShow, i as createCommentVNode, h as createBlock, _ as _export_sfc } from "./index-5429bbf8.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-41b0e0d7.js";
3
+ import { G as GenericNodeSettings } from "./genericNodeSettings-4fe5f36b.js";
4
+ import { _ as _sfc_main$3 } from "./MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js";
5
+ import { _ as _sfc_main$5 } from "./ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js";
6
+ import { _ as _sfc_main$1 } from "./TextInput.vue_vue_type_script_setup_true_lang-5896c375.js";
7
+ import { _ as _sfc_main$2 } from "./NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js";
8
+ import SliderInput from "./SliderInput-7cb93e62.js";
9
+ import { _ as _sfc_main$4 } from "./SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js";
10
+ import ColumnSelector from "./ColumnSelector-4685e75d.js";
11
+ import "./designer-9633482a.js";
12
+ async function getCustomNodeSchema(flowId, nodeId) {
13
+ const response = await axios.get(
14
+ `/user_defined_components/custom-node-schema`,
15
+ {
16
+ params: { flow_id: flowId, node_id: nodeId },
17
+ headers: { accept: "application/json" }
18
+ }
19
+ );
20
+ return response.data;
21
+ }
22
+ const _hoisted_1 = {
23
+ key: 0,
24
+ class: "p-4 text-center text-gray-500"
25
+ };
26
+ const _hoisted_2 = {
27
+ key: 1,
28
+ class: "p-4 text-red-600 bg-red-100 rounded-md"
29
+ };
30
+ const _hoisted_3 = {
31
+ key: 2,
32
+ class: "custom-node-wrapper"
33
+ };
34
+ const _hoisted_4 = { class: "listbox-subtitle" };
35
+ const _hoisted_5 = {
36
+ key: 0,
37
+ class: "section-description"
38
+ };
39
+ const _hoisted_6 = { class: "components-container" };
40
+ const _hoisted_7 = {
41
+ key: 7,
42
+ class: "text-red-500 text-xs"
43
+ };
44
+ const _sfc_main = /* @__PURE__ */ defineComponent({
45
+ __name: "CustomNode",
46
+ setup(__props, { expose: __expose }) {
47
+ const schema = ref(null);
48
+ const formData = ref(null);
49
+ const loading = ref(true);
50
+ const error = ref("");
51
+ const nodeStore = useNodeStore();
52
+ const nodeData = ref(null);
53
+ const availableColumns = ref([]);
54
+ const currentNodeId = ref(null);
55
+ const nodeUserDefined = ref(null);
56
+ const columnTypes = ref([]);
57
+ const loadNodeData = async (nodeId) => {
58
+ var _a, _b, _c;
59
+ loading.value = true;
60
+ error.value = "";
61
+ currentNodeId.value = nodeId;
62
+ try {
63
+ const inputNodeData = await nodeStore.getNodeData(nodeId, false);
64
+ if (!inputNodeData) {
65
+ return;
66
+ }
67
+ const [schemaData] = await Promise.all([getCustomNodeSchema(nodeStore.flow_id, nodeId)]);
68
+ console.log("schemaData", schemaData);
69
+ schema.value = schemaData;
70
+ nodeData.value = inputNodeData;
71
+ nodeUserDefined.value = (_a = nodeData.value) == null ? void 0 : _a.setting_input;
72
+ if (!((_b = nodeData.value) == null ? void 0 : _b.setting_input.is_setup) && nodeUserDefined.value) {
73
+ nodeUserDefined.value.settings = {};
74
+ }
75
+ if ((_c = inputNodeData == null ? void 0 : inputNodeData.main_input) == null ? void 0 : _c.columns) {
76
+ availableColumns.value = inputNodeData.main_input.columns;
77
+ columnTypes.value = inputNodeData.main_input.table_schema;
78
+ } else {
79
+ console.warn(
80
+ `No main_input or columns found for node ${nodeId}. Select components may be empty.`
81
+ );
82
+ }
83
+ initializeFormData(schemaData, inputNodeData == null ? void 0 : inputNodeData.setting_input);
84
+ } catch (err) {
85
+ error.value = err.message || "An unknown error occurred while loading node data.";
86
+ } finally {
87
+ loading.value = false;
88
+ }
89
+ };
90
+ const pushNodeData = async () => {
91
+ if (!nodeData.value || currentNodeId.value === null) {
92
+ console.warn("Cannot push data: node data or ID is not available.");
93
+ return;
94
+ }
95
+ if (nodeUserDefined.value) {
96
+ nodeUserDefined.value.settings = formData.value;
97
+ nodeUserDefined.value.is_user_defined = true;
98
+ nodeUserDefined.value.is_setup = true;
99
+ }
100
+ console.log(JSON.stringify(formData.value, null, 2));
101
+ nodeStore.updateUserDefinedSettings(nodeUserDefined);
102
+ };
103
+ function initializeFormData(schemaData, savedSettings) {
104
+ var _a;
105
+ const data = {};
106
+ for (const sectionKey in schemaData.settings_schema) {
107
+ data[sectionKey] = {};
108
+ const section = schemaData.settings_schema[sectionKey];
109
+ for (const componentKey in section.components) {
110
+ const component = section.components[componentKey];
111
+ const savedValue = (_a = savedSettings == null ? void 0 : savedSettings[sectionKey]) == null ? void 0 : _a[componentKey];
112
+ if (savedValue !== void 0) {
113
+ data[sectionKey][componentKey] = savedValue;
114
+ } else if (component.value !== void 0) {
115
+ data[sectionKey][componentKey] = component.value;
116
+ } else {
117
+ let defaultValue = component.default ?? null;
118
+ if (component.input_type === "array" && defaultValue === null) {
119
+ defaultValue = [];
120
+ }
121
+ data[sectionKey][componentKey] = defaultValue;
122
+ }
123
+ }
124
+ }
125
+ formData.value = data;
126
+ }
127
+ __expose({
128
+ loadNodeData,
129
+ pushNodeData
130
+ });
131
+ return (_ctx, _cache) => {
132
+ return loading.value ? (openBlock(), createElementBlock("div", _hoisted_1, "Loading Node UI...")) : error.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
133
+ _cache[1] || (_cache[1] = createBaseVNode("strong", null, "Error:", -1)),
134
+ createTextVNode(" " + toDisplayString(error.value), 1)
135
+ ])) : schema.value && formData.value && nodeUserDefined.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
136
+ createVNode(GenericNodeSettings, {
137
+ modelValue: nodeUserDefined.value,
138
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => nodeUserDefined.value = $event)
139
+ }, {
140
+ default: withCtx(() => [
141
+ (openBlock(true), createElementBlock(Fragment, null, renderList(schema.value.settings_schema, (section, sectionKey) => {
142
+ return withDirectives((openBlock(), createElementBlock("div", {
143
+ key: sectionKey,
144
+ class: "listbox-wrapper"
145
+ }, [
146
+ createBaseVNode("div", _hoisted_4, toDisplayString(section.title || sectionKey.toString().replace(/_/g, " ")), 1),
147
+ section.description ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(section.description), 1)) : createCommentVNode("", true),
148
+ createBaseVNode("div", _hoisted_6, [
149
+ (openBlock(true), createElementBlock(Fragment, null, renderList(section.components, (component, componentKey) => {
150
+ return openBlock(), createElementBlock("div", {
151
+ key: componentKey,
152
+ class: "component-item"
153
+ }, [
154
+ component.component_type === "TextInput" ? (openBlock(), createBlock(_sfc_main$1, {
155
+ key: 0,
156
+ modelValue: formData.value[sectionKey][componentKey],
157
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
158
+ schema: component
159
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema"])) : component.component_type === "NumericInput" ? (openBlock(), createBlock(_sfc_main$2, {
160
+ key: 1,
161
+ modelValue: formData.value[sectionKey][componentKey],
162
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
163
+ schema: component
164
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema"])) : component.component_type === "SliderInput" ? (openBlock(), createBlock(SliderInput, {
165
+ key: 2,
166
+ modelValue: formData.value[sectionKey][componentKey],
167
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
168
+ schema: component
169
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema"])) : component.component_type === "MultiSelect" ? (openBlock(), createBlock(_sfc_main$3, {
170
+ key: 3,
171
+ modelValue: formData.value[sectionKey][componentKey],
172
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
173
+ schema: component,
174
+ "incoming-columns": availableColumns.value
175
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema", "incoming-columns"])) : component.component_type === "SingleSelect" ? (openBlock(), createBlock(_sfc_main$4, {
176
+ key: 4,
177
+ modelValue: formData.value[sectionKey][componentKey],
178
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
179
+ schema: component,
180
+ "incoming-columns": availableColumns.value
181
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema", "incoming-columns"])) : component.component_type === "ToggleSwitch" ? (openBlock(), createBlock(_sfc_main$5, {
182
+ key: 5,
183
+ modelValue: formData.value[sectionKey][componentKey],
184
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
185
+ schema: component
186
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema"])) : component.component_type === "ColumnSelector" ? (openBlock(), createBlock(ColumnSelector, {
187
+ key: 6,
188
+ modelValue: formData.value[sectionKey][componentKey],
189
+ "onUpdate:modelValue": ($event) => formData.value[sectionKey][componentKey] = $event,
190
+ schema: component,
191
+ "incoming-columns": columnTypes.value
192
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "schema", "incoming-columns"])) : (openBlock(), createElementBlock("div", _hoisted_7, " Unknown component type: " + toDisplayString(component.component_type), 1))
193
+ ]);
194
+ }), 128))
195
+ ])
196
+ ])), [
197
+ [vShow, !section.hidden]
198
+ ]);
199
+ }), 128))
200
+ ]),
201
+ _: 1
202
+ }, 8, ["modelValue"])
203
+ ])) : createCommentVNode("", true);
204
+ };
205
+ }
206
+ });
207
+ const CustomNode_vue_vue_type_style_index_0_scoped_d7137248_lang = "";
208
+ const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d7137248"]]);
209
+ export {
210
+ CustomNode as default
211
+ };
@@ -1,5 +1,5 @@
1
- import { f as fetchSecretsApi } from "./secretApi-baceb6f9.js";
2
- import { d as defineComponent, r as ref, n as onMounted, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, F as Fragment, q as renderList, i as createCommentVNode, _ as _export_sfc } from "./index-683fc198.js";
1
+ import { f as fetchSecretsApi } from "./secretApi-68435402.js";
2
+ import { d as defineComponent, r as ref, n as onMounted, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, F as Fragment, q as renderList, i as createCommentVNode, _ as _export_sfc } from "./index-5429bbf8.js";
3
3
  const _hoisted_1 = { class: "connection-settings-container" };
4
4
  const _hoisted_2 = { class: "toggle-button" };
5
5
  const _hoisted_3 = {
@@ -147,5 +147,5 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
147
147
  const DatabaseConnectionSettings_vue_vue_type_style_index_0_scoped_2fd11b08_lang = "";
148
148
  const DatabaseConnectionSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2fd11b08"]]);
149
149
  export {
150
- DatabaseConnectionSettings as D
150
+ DatabaseConnectionSettings as default
151
151
  };
@@ -1,5 +1,5 @@
1
- import { f as fetchDatabaseConnectionsInterfaces, c as createDatabaseConnectionApi, d as deleteDatabaseConnectionApi } from "./api-023d1733.js";
2
- import { d as defineComponent, r as ref, m as watch, l as computed, c as openBlock, e as createElementBlock, p as createBaseVNode, a5 as withDirectives, a6 as vModelText, ag as vModelSelect, ah as vModelDynamic, s as normalizeClass, ai as vModelCheckbox, t as toDisplayString, v as withModifiers, n as onMounted, g as createTextVNode, F as Fragment, q as renderList, f as createVNode, w as withCtx, u as unref, z as ElMessage, aj as ElDialog, ak as ElButton, _ as _export_sfc } from "./index-683fc198.js";
1
+ import { f as fetchDatabaseConnectionsInterfaces, c as createDatabaseConnectionApi, d as deleteDatabaseConnectionApi } from "./api-cf1221f0.js";
2
+ import { d as defineComponent, r as ref, m as watch, l as computed, c as openBlock, e as createElementBlock, p as createBaseVNode, a8 as withDirectives, a9 as vModelText, ak as vModelSelect, al as vModelDynamic, s as normalizeClass, am as vModelCheckbox, t as toDisplayString, v as withModifiers, n as onMounted, g as createTextVNode, F as Fragment, q as renderList, f as createVNode, w as withCtx, u as unref, z as ElMessage, an as ElDialog, ao as ElButton, _ as _export_sfc } from "./index-5429bbf8.js";
3
3
  const _hoisted_1$1 = { class: "form-grid" };
4
4
  const _hoisted_2$1 = { class: "form-field" };
5
5
  const _hoisted_3$1 = { class: "form-field" };
@@ -1,31 +1,4 @@
1
1
 
2
- .query-section[data-v-29602f2f] {
3
- margin-top: 1rem;
4
- padding-top: 1rem;
5
- border-top: 1px solid #edf2f7;
6
- }
7
- .section-subtitle[data-v-29602f2f] {
8
- margin: 0 0 0.75rem 0;
9
- font-size: 0.95rem;
10
- font-weight: 600;
11
- color: #4a5568;
12
- }
13
- .form-group[data-v-29602f2f] {
14
- margin-bottom: 1rem;
15
- }
16
- .form-control[data-v-29602f2f] {
17
- width: 100%;
18
- padding: 0.5rem;
19
- border: 1px solid #e2e8f0;
20
- border-radius: 4px;
21
- font-size: 0.875rem;
22
- }
23
- .textarea[data-v-29602f2f] {
24
- resize: vertical;
25
- min-height: 100px;
26
- font-family: monospace;
27
- }
28
-
29
2
  .db-container[data-v-ae4d7dc5] {
30
3
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
31
4
  max-width: 100%;