Flowfile 0.3.0__py3-none-any.whl → 0.3.0.2__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 +13 -6
  2. flowfile/__main__.py +50 -15
  3. flowfile/api.py +383 -0
  4. flowfile/readme.md +130 -0
  5. flowfile/web/__init__.py +155 -0
  6. flowfile/web/static/assets/AirbyteReader-1ac35765.css +314 -0
  7. flowfile/web/static/assets/AirbyteReader-cb0c1d4a.js +921 -0
  8. flowfile/web/static/assets/CrossJoin-41efa4cb.css +100 -0
  9. flowfile/web/static/assets/CrossJoin-a514fa59.js +153 -0
  10. flowfile/web/static/assets/DatabaseConnectionSettings-0c04b2e5.css +77 -0
  11. flowfile/web/static/assets/DatabaseConnectionSettings-f2cecf33.js +151 -0
  12. flowfile/web/static/assets/DatabaseManager-30fa27e5.css +64 -0
  13. flowfile/web/static/assets/DatabaseManager-83ee3c98.js +484 -0
  14. flowfile/web/static/assets/DatabaseReader-dc0c6881.js +426 -0
  15. flowfile/web/static/assets/DatabaseReader-f50c6558.css +158 -0
  16. flowfile/web/static/assets/DatabaseWriter-2f570e53.css +96 -0
  17. flowfile/web/static/assets/DatabaseWriter-5afe9f8d.js +312 -0
  18. flowfile/web/static/assets/ExploreData-5bdae813.css +45 -0
  19. flowfile/web/static/assets/ExploreData-c7ee19cf.js +118306 -0
  20. flowfile/web/static/assets/ExternalSource-17b23a01.js +225 -0
  21. flowfile/web/static/assets/ExternalSource-e37b6275.css +94 -0
  22. flowfile/web/static/assets/Filter-90856b4f.js +238 -0
  23. flowfile/web/static/assets/Filter-a9d08ba1.css +20 -0
  24. flowfile/web/static/assets/Formula-38b71e9e.js +197 -0
  25. flowfile/web/static/assets/Formula-d60a74f4.css +17 -0
  26. flowfile/web/static/assets/FuzzyMatch-6857de82.css +254 -0
  27. flowfile/web/static/assets/FuzzyMatch-d0f1fe81.js +422 -0
  28. flowfile/web/static/assets/GoogleSheet-854294a4.js +2616 -0
  29. flowfile/web/static/assets/GoogleSheet-92084da7.css +233 -0
  30. flowfile/web/static/assets/GraphSolver-0c86bbc6.js +382 -0
  31. flowfile/web/static/assets/GraphSolver-17fd26db.css +68 -0
  32. flowfile/web/static/assets/GroupBy-ab1ea74b.css +51 -0
  33. flowfile/web/static/assets/GroupBy-f2772e9f.js +413 -0
  34. flowfile/web/static/assets/Join-41c0f331.css +109 -0
  35. flowfile/web/static/assets/Join-bc3e1cf7.js +247 -0
  36. flowfile/web/static/assets/ManualInput-03aa0245.js +391 -0
  37. flowfile/web/static/assets/ManualInput-ac7b9972.css +84 -0
  38. flowfile/web/static/assets/Output-48f81019.css +2642 -0
  39. flowfile/web/static/assets/Output-5b35eee8.js +536 -0
  40. flowfile/web/static/assets/Pivot-7164087c.js +408 -0
  41. flowfile/web/static/assets/Pivot-f415e85f.css +35 -0
  42. flowfile/web/static/assets/PolarsCode-3abf6507.js +2863 -0
  43. flowfile/web/static/assets/PolarsCode-650322d1.css +35 -0
  44. flowfile/web/static/assets/PopOver-b37ff9be.js +577 -0
  45. flowfile/web/static/assets/PopOver-bccfde04.css +32 -0
  46. flowfile/web/static/assets/Read-65966a3e.js +701 -0
  47. flowfile/web/static/assets/Read-80dc1675.css +197 -0
  48. flowfile/web/static/assets/RecordCount-c66c6d6d.js +121 -0
  49. flowfile/web/static/assets/RecordId-826dc095.js +339 -0
  50. flowfile/web/static/assets/Sample-4ed555c8.js +184 -0
  51. flowfile/web/static/assets/SecretManager-eac1e97d.js +382 -0
  52. flowfile/web/static/assets/Select-085f05cc.js +231 -0
  53. flowfile/web/static/assets/SettingsSection-1f5e79c1.js +87 -0
  54. flowfile/web/static/assets/SettingsSection-9c836ecc.css +47 -0
  55. flowfile/web/static/assets/Sort-3e6cb414.js +309 -0
  56. flowfile/web/static/assets/Sort-7ccfa0fe.css +51 -0
  57. flowfile/web/static/assets/TextToRows-606349bc.js +307 -0
  58. flowfile/web/static/assets/TextToRows-c92d1ec2.css +48 -0
  59. flowfile/web/static/assets/UnavailableFields-5edd5322.css +49 -0
  60. flowfile/web/static/assets/UnavailableFields-b41976ed.js +36 -0
  61. flowfile/web/static/assets/Union-8d9ac7f9.css +30 -0
  62. flowfile/web/static/assets/Union-fca91665.js +145 -0
  63. flowfile/web/static/assets/Unique-a59f830e.js +273 -0
  64. flowfile/web/static/assets/Unique-b5615727.css +51 -0
  65. flowfile/web/static/assets/Unpivot-246e9bbd.css +77 -0
  66. flowfile/web/static/assets/Unpivot-c3815565.js +441 -0
  67. flowfile/web/static/assets/airbyte-292aa232.png +0 -0
  68. flowfile/web/static/assets/api-22b338bd.js +60 -0
  69. flowfile/web/static/assets/cross_join-d30c0290.png +0 -0
  70. flowfile/web/static/assets/database_reader-ce1e55f3.svg +24 -0
  71. flowfile/web/static/assets/database_writer-b4ad0753.svg +23 -0
  72. flowfile/web/static/assets/designer-2394122a.css +10697 -0
  73. flowfile/web/static/assets/designer-e5bbe26f.js +69712 -0
  74. flowfile/web/static/assets/documentation-08045cf2.js +33 -0
  75. flowfile/web/static/assets/documentation-12216a74.css +50 -0
  76. flowfile/web/static/assets/dropDown-35135ba8.css +143 -0
  77. flowfile/web/static/assets/dropDown-5e7e9a5a.js +319 -0
  78. flowfile/web/static/assets/dropDownGeneric-50a91b99.js +72 -0
  79. flowfile/web/static/assets/dropDownGeneric-895680d6.css +10 -0
  80. flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  81. flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  82. flowfile/web/static/assets/explore_data-8a0a2861.png +0 -0
  83. flowfile/web/static/assets/fa-brands-400-808443ae.ttf +0 -0
  84. flowfile/web/static/assets/fa-brands-400-d7236a19.woff2 +0 -0
  85. flowfile/web/static/assets/fa-regular-400-54cf6086.ttf +0 -0
  86. flowfile/web/static/assets/fa-regular-400-e3456d12.woff2 +0 -0
  87. flowfile/web/static/assets/fa-solid-900-aa759986.woff2 +0 -0
  88. flowfile/web/static/assets/fa-solid-900-d2f05935.ttf +0 -0
  89. flowfile/web/static/assets/fa-v4compatibility-0ce9033c.woff2 +0 -0
  90. flowfile/web/static/assets/fa-v4compatibility-30f6abf6.ttf +0 -0
  91. flowfile/web/static/assets/filter-d7708bda.png +0 -0
  92. flowfile/web/static/assets/formula-eeeb1611.png +0 -0
  93. flowfile/web/static/assets/fullEditor-178376bb.css +256 -0
  94. flowfile/web/static/assets/fullEditor-705c6ccb.js +630 -0
  95. flowfile/web/static/assets/fuzzy_match-40c161b2.png +0 -0
  96. flowfile/web/static/assets/genericNodeSettings-65587f20.js +137 -0
  97. flowfile/web/static/assets/genericNodeSettings-924759c7.css +46 -0
  98. flowfile/web/static/assets/graph_solver-8b7888b8.png +0 -0
  99. flowfile/web/static/assets/group_by-80561fc3.png +0 -0
  100. flowfile/web/static/assets/index-552863fd.js +58652 -0
  101. flowfile/web/static/assets/index-681a3ed0.css +8843 -0
  102. flowfile/web/static/assets/input_data-ab2eb678.png +0 -0
  103. flowfile/web/static/assets/join-349043ae.png +0 -0
  104. flowfile/web/static/assets/manual_input-ae98f31d.png +0 -0
  105. flowfile/web/static/assets/nodeTitle-cf9bae3c.js +227 -0
  106. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +134 -0
  107. flowfile/web/static/assets/old_join-5d0eb604.png +0 -0
  108. flowfile/web/static/assets/output-06ec0371.png +0 -0
  109. flowfile/web/static/assets/pivot-9660df51.png +0 -0
  110. flowfile/web/static/assets/polars_code-05ce5dc6.png +0 -0
  111. flowfile/web/static/assets/record_count-dab44eb5.png +0 -0
  112. flowfile/web/static/assets/record_id-0b15856b.png +0 -0
  113. flowfile/web/static/assets/sample-693a88b5.png +0 -0
  114. flowfile/web/static/assets/secretApi-3ad510e1.js +46 -0
  115. flowfile/web/static/assets/select-b0d0437a.png +0 -0
  116. flowfile/web/static/assets/selectDynamic-b062bc9b.css +107 -0
  117. flowfile/web/static/assets/selectDynamic-bd644891.js +302 -0
  118. flowfile/web/static/assets/sort-2aa579f0.png +0 -0
  119. flowfile/web/static/assets/summarize-2a099231.png +0 -0
  120. flowfile/web/static/assets/text_to_rows-859b29ea.png +0 -0
  121. flowfile/web/static/assets/union-2d8609f4.png +0 -0
  122. flowfile/web/static/assets/unique-1958b98a.png +0 -0
  123. flowfile/web/static/assets/unpivot-d3cb4b5b.png +0 -0
  124. flowfile/web/static/assets/view-7a0f0be1.png +0 -0
  125. flowfile/web/static/assets/vue-codemirror.esm-dd17b478.js +22281 -0
  126. flowfile/web/static/assets/vue-content-loader.es-6b36f05e.js +210 -0
  127. flowfile/web/static/flowfile.svg +47 -0
  128. flowfile/web/static/icons/flowfile.png +0 -0
  129. flowfile/web/static/images/airbyte.png +0 -0
  130. flowfile/web/static/images/flowfile.svg +47 -0
  131. flowfile/web/static/images/google.svg +1 -0
  132. flowfile/web/static/images/sheets.png +0 -0
  133. flowfile/web/static/index.html +22 -0
  134. flowfile/web/static/vite.svg +1 -0
  135. flowfile/web/static/vue.svg +1 -0
  136. flowfile-0.3.0.2.dist-info/METADATA +235 -0
  137. {flowfile-0.3.0.dist-info → flowfile-0.3.0.2.dist-info}/RECORD +147 -15
  138. {flowfile-0.3.0.dist-info → flowfile-0.3.0.2.dist-info}/entry_points.txt +1 -1
  139. flowfile_core/configs/settings.py +7 -32
  140. flowfile_core/flowfile/FlowfileFlow.py +4 -2
  141. flowfile_core/flowfile/analytics/analytics_processor.py +1 -1
  142. flowfile_core/main.py +4 -1
  143. flowfile_core/schemas/input_schema.py +1 -8
  144. flowfile_frame/__init__.py +0 -1
  145. flowfile_frame/utils.py +0 -139
  146. flowfile-0.3.0.dist-info/METADATA +0 -219
  147. flowfile_frame/__main__.py +0 -12
  148. {flowfile-0.3.0.dist-info → flowfile-0.3.0.2.dist-info}/LICENSE +0 -0
  149. {flowfile-0.3.0.dist-info → flowfile-0.3.0.2.dist-info}/WHEEL +0 -0
@@ -0,0 +1,100 @@
1
+
2
+ .selectors-row[data-v-de068ad8] {
3
+ display: flex;
4
+ justify-content: space-between;
5
+ margin-bottom: 10px; /* Spacing between rows */
6
+ }
7
+ .context-menu[data-v-de068ad8] {
8
+ position: fixed;
9
+ z-index: 1000;
10
+ border: 1px solid #ccc;
11
+ background-color: white;
12
+ padding: 8px;
13
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
14
+ border-radius: 4px;
15
+ user-select: none;
16
+ }
17
+ .context-menu button[data-v-de068ad8] {
18
+ display: block;
19
+ background: none;
20
+ border: none;
21
+ padding: 4px 8px;
22
+ text-align: left;
23
+ width: 100%;
24
+ cursor: pointer;
25
+ z-index: 100;
26
+ }
27
+ .context-menu button[data-v-de068ad8]:hover {
28
+ background-color: #f0f0f0;
29
+ }
30
+ .table-wrapper[data-v-de068ad8] {
31
+ max-height: 250px; /* Adjust this value as needed */
32
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* subtle shadow for depth */
33
+ border-radius: 8px; /* rounded corners */
34
+ overflow: auto; /* ensures the rounded corners are applied to the child elements */
35
+ margin: 5px; /* adds a small margin around the table */
36
+ }
37
+ .context-menu[data-v-de068ad8] {
38
+ position: fixed;
39
+ z-index: 1000;
40
+ border: 1px solid #ccc;
41
+ background-color: white;
42
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
43
+ border-radius: 4px;
44
+ }
45
+ .context-menu ul[data-v-de068ad8] {
46
+ list-style: none;
47
+ padding: 0;
48
+ margin: 0;
49
+ }
50
+ .context-menu li[data-v-de068ad8] {
51
+ padding: 8px 16px;
52
+ cursor: pointer;
53
+ }
54
+ .context-menu li[data-v-de068ad8]:hover {
55
+ background-color: #f0f0f0;
56
+ }
57
+ .selectors-container[data-v-de068ad8] {
58
+ display: flex;
59
+ flex-direction: column;
60
+ }
61
+ .selectors-row[data-v-de068ad8] {
62
+ display: flex;
63
+ justify-content: space-between;
64
+ align-items: center;
65
+ }
66
+ .add-button-container[data-v-de068ad8] {
67
+ padding-left: 20px; /* Adjust as needed */
68
+ display: flex;
69
+ align-items: center;
70
+ }
71
+ .action-buttons[data-v-de068ad8] {
72
+ display: flex;
73
+ align-items: center;
74
+ justify-content: flex-end; /* Adjust if needed */
75
+ }
76
+ .remove-join-button[data-v-de068ad8],
77
+ .add-join-button[data-v-de068ad8] {
78
+ cursor: pointer;
79
+ margin-left: 10px; /* Space between buttons */
80
+ padding: 0 6px; /* Adjust padding */
81
+ height: 20px; /* Adjust height to fit */
82
+ width: 30px; /* Ensure equal width for both buttons */
83
+ min-width: 30px; /* Minimum width to ensure buttons don't shrink */
84
+ text-align: center; /* Ensure the symbols are centered */
85
+ }
86
+ .selectors-header[data-v-de068ad8] {
87
+ display: flex;
88
+ justify-content: space-between;
89
+ padding: 0 15px; /* Adjust padding for finer control */
90
+ }
91
+ .selectors-title[data-v-de068ad8] {
92
+ flex: 1; /* Adjust this based on your needs */
93
+ text-align: center; /* Center the titles */
94
+ padding: 0 10px; /* Add padding to ensure alignment with the columns below */
95
+ }
96
+ .action-buttons[data-v-de068ad8] {
97
+ flex-basis: 60px; /* Adjust according to the width of your buttons */
98
+ display: flex;
99
+ justify-content: center; /* Center the buttons within the action column */
100
+ }
@@ -0,0 +1,153 @@
1
+ import { C as CodeLoader } from "./vue-content-loader.es-6b36f05e.js";
2
+ import { u as useNodeStore } from "./PopOver-b37ff9be.js";
3
+ import { s as selectDynamic } from "./selectDynamic-bd644891.js";
4
+ import { G as GenericNodeSettings } from "./genericNodeSettings-65587f20.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, a6 as Teleport, i as createCommentVNode } from "./index-552863fd.js";
6
+ import { N as NodeButton, a as NodeTitle } from "./nodeTitle-cf9bae3c.js";
7
+ import "./UnavailableFields-b41976ed.js";
8
+ import "./designer-e5bbe26f.js";
9
+ const _hoisted_1$1 = { key: 0 };
10
+ const _hoisted_2 = { class: "listbox-wrapper" };
11
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12
+ __name: "crossJoin",
13
+ setup(__props, { expose: __expose }) {
14
+ const result = ref(null);
15
+ const nodeStore = useNodeStore();
16
+ const dataLoaded = ref(false);
17
+ const nodeCrossJoin = ref(null);
18
+ const updateSelectInputsHandler = (updatedInputs, isLeft) => {
19
+ if (isLeft && nodeCrossJoin.value) {
20
+ nodeCrossJoin.value.cross_join_input.left_select.renames = updatedInputs;
21
+ } else if (nodeCrossJoin.value) {
22
+ nodeCrossJoin.value.cross_join_input.right_select.renames = updatedInputs;
23
+ }
24
+ };
25
+ const loadNodeData = async (nodeId) => {
26
+ var _a;
27
+ result.value = await nodeStore.getNodeData(nodeId, false);
28
+ nodeCrossJoin.value = (_a = result.value) == null ? void 0 : _a.setting_input;
29
+ console.log(result.value);
30
+ if (result.value) {
31
+ console.log("Data loaded");
32
+ dataLoaded.value = true;
33
+ }
34
+ nodeStore.isDrawerOpen = true;
35
+ };
36
+ const pushNodeData = async () => {
37
+ console.log("Pushing node data");
38
+ nodeStore.updateSettings(nodeCrossJoin);
39
+ nodeStore.isDrawerOpen = false;
40
+ };
41
+ __expose({
42
+ loadNodeData,
43
+ pushNodeData
44
+ });
45
+ return (_ctx, _cache) => {
46
+ return dataLoaded.value && nodeCrossJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
47
+ createVNode(GenericNodeSettings, {
48
+ modelValue: nodeCrossJoin.value,
49
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeCrossJoin.value = $event)
50
+ }, {
51
+ default: withCtx(() => {
52
+ var _a, _b;
53
+ return [
54
+ createBaseVNode("div", _hoisted_2, [
55
+ createVNode(selectDynamic, {
56
+ "select-inputs": (_a = nodeCrossJoin.value) == null ? void 0 : _a.cross_join_input.left_select.renames,
57
+ "show-keep-option": true,
58
+ "show-title": true,
59
+ "show-headers": true,
60
+ "show-data": true,
61
+ title: "Left data",
62
+ onUpdateSelectInputs: _cache[0] || (_cache[0] = (updatedInputs) => updateSelectInputsHandler(updatedInputs, true))
63
+ }, null, 8, ["select-inputs"]),
64
+ createVNode(selectDynamic, {
65
+ "select-inputs": (_b = nodeCrossJoin.value) == null ? void 0 : _b.cross_join_input.right_select.renames,
66
+ "show-keep-option": true,
67
+ "show-headers": true,
68
+ "show-title": true,
69
+ "show-data": true,
70
+ title: "Right data",
71
+ onUpdateSelectInputs: _cache[1] || (_cache[1] = (updatedInputs) => updateSelectInputsHandler(updatedInputs, true))
72
+ }, null, 8, ["select-inputs"])
73
+ ])
74
+ ];
75
+ }),
76
+ _: 1
77
+ }, 8, ["modelValue"])
78
+ ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
79
+ };
80
+ }
81
+ });
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
+ });
151
+ export {
152
+ _sfc_main as default
153
+ };
@@ -0,0 +1,77 @@
1
+
2
+ .connection-settings-container[data-v-2fd11b08] {
3
+ border: 1px solid #e2e8f0;
4
+ border-radius: 6px;
5
+ margin-bottom: 1rem;
6
+ overflow: hidden;
7
+ }
8
+ .connection-header[data-v-2fd11b08] {
9
+ display: flex;
10
+ justify-content: space-between;
11
+ align-items: center;
12
+ padding: 0.75rem 1rem;
13
+ background-color: #f8fafc;
14
+ cursor: pointer;
15
+ user-select: none;
16
+ border-bottom: 1px solid #e2e8f0;
17
+ }
18
+ .connection-header[data-v-2fd11b08]:hover {
19
+ background-color: #edf2f7;
20
+ }
21
+ .connection-title[data-v-2fd11b08] {
22
+ margin: 0;
23
+ font-size: 0.95rem;
24
+ font-weight: 600;
25
+ color: #4a5568;
26
+ }
27
+ .toggle-button[data-v-2fd11b08] {
28
+ background: none;
29
+ border: none;
30
+ color: #718096;
31
+ font-size: 0.9rem;
32
+ cursor: pointer;
33
+ padding: 0;
34
+ }
35
+ .connection-content[data-v-2fd11b08] {
36
+ padding: 1rem;
37
+ background-color: #ffffff;
38
+ }
39
+ .form-row[data-v-2fd11b08] {
40
+ display: flex;
41
+ gap: 0.75rem;
42
+ margin-bottom: 0.75rem;
43
+ width: 100%;
44
+ box-sizing: border-box;
45
+ }
46
+ .half[data-v-2fd11b08] {
47
+ flex: 1;
48
+ min-width: 0; /* Allow fields to shrink below their content size */
49
+ max-width: calc(50% - 0.375rem); /* Account for the gap between items */
50
+ }
51
+ .form-control[data-v-2fd11b08] {
52
+ width: 100%;
53
+ padding: 0.5rem;
54
+ border: 1px solid #e2e8f0;
55
+ border-radius: 4px;
56
+ font-size: 0.875rem;
57
+ box-sizing: border-box;
58
+ }
59
+ .form-group[data-v-2fd11b08] {
60
+ margin-bottom: 0.75rem;
61
+ width: 100%;
62
+ }
63
+ label[data-v-2fd11b08] {
64
+ display: block;
65
+ margin-bottom: 0.25rem;
66
+ font-size: 0.875rem;
67
+ font-weight: 500;
68
+ color: #4a5568;
69
+ }
70
+ select.form-control[data-v-2fd11b08] {
71
+ appearance: none;
72
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
73
+ background-repeat: no-repeat;
74
+ background-position: right 0.5rem center;
75
+ background-size: 1em;
76
+ padding-right: 2rem;
77
+ }
@@ -0,0 +1,151 @@
1
+ import { f as fetchSecretsApi } from "./secretApi-3ad510e1.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-552863fd.js";
3
+ const _hoisted_1 = { class: "connection-settings-container" };
4
+ const _hoisted_2 = { class: "toggle-button" };
5
+ const _hoisted_3 = {
6
+ key: 0,
7
+ class: "connection-content"
8
+ };
9
+ const _hoisted_4 = { class: "form-group" };
10
+ const _hoisted_5 = ["value"];
11
+ const _hoisted_6 = { class: "form-group" };
12
+ const _hoisted_7 = ["value"];
13
+ const _hoisted_8 = { class: "form-group" };
14
+ const _hoisted_9 = ["value"];
15
+ const _hoisted_10 = ["value"];
16
+ const _hoisted_11 = { class: "form-group" };
17
+ const _hoisted_12 = ["value"];
18
+ const _hoisted_13 = { class: "form-row" };
19
+ const _hoisted_14 = { class: "form-group half" };
20
+ const _hoisted_15 = ["value"];
21
+ const _hoisted_16 = { class: "form-group half" };
22
+ const _hoisted_17 = ["value"];
23
+ const _sfc_main = /* @__PURE__ */ defineComponent({
24
+ __name: "DatabaseConnectionSettings",
25
+ props: {
26
+ modelValue: {}
27
+ },
28
+ emits: ["update:modelValue"],
29
+ setup(__props, { emit: __emit }) {
30
+ const props = __props;
31
+ const emit = __emit;
32
+ const isExpanded = ref(false);
33
+ const availableSecrets = ref([]);
34
+ const updateField = (field, value) => {
35
+ emit("update:modelValue", {
36
+ ...props.modelValue,
37
+ [field]: value
38
+ });
39
+ };
40
+ const fetchSecrets = async () => {
41
+ try {
42
+ const secrets = await fetchSecretsApi();
43
+ availableSecrets.value = secrets;
44
+ } catch (error) {
45
+ console.error(
46
+ "Error fetching secrets:",
47
+ error instanceof Error ? error.message : String(error)
48
+ );
49
+ availableSecrets.value = [];
50
+ }
51
+ };
52
+ const toggleExpanded = () => {
53
+ isExpanded.value = !isExpanded.value;
54
+ };
55
+ onMounted(() => {
56
+ fetchSecrets();
57
+ });
58
+ return (_ctx, _cache) => {
59
+ return openBlock(), createElementBlock("div", _hoisted_1, [
60
+ createBaseVNode("div", {
61
+ class: "connection-header",
62
+ onClick: toggleExpanded
63
+ }, [
64
+ _cache[6] || (_cache[6] = createBaseVNode("h4", { class: "connection-title" }, "In line connection settings", -1)),
65
+ createBaseVNode("button", _hoisted_2, toDisplayString(isExpanded.value ? "▲" : "▼"), 1)
66
+ ]),
67
+ isExpanded.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
68
+ createBaseVNode("div", _hoisted_4, [
69
+ _cache[8] || (_cache[8] = createBaseVNode("label", { for: "database-type" }, "Database Type", -1)),
70
+ createBaseVNode("select", {
71
+ id: "database-type",
72
+ value: _ctx.modelValue.database_type,
73
+ class: "form-control",
74
+ onChange: _cache[0] || (_cache[0] = (e) => updateField("database_type", e.target.value))
75
+ }, _cache[7] || (_cache[7] = [
76
+ createBaseVNode("option", { value: "postgresql" }, "PostgreSQL", -1)
77
+ ]), 40, _hoisted_5)
78
+ ]),
79
+ createBaseVNode("div", _hoisted_6, [
80
+ _cache[9] || (_cache[9] = createBaseVNode("label", { for: "username" }, "Username", -1)),
81
+ createBaseVNode("input", {
82
+ id: "username",
83
+ value: _ctx.modelValue.username,
84
+ type: "text",
85
+ class: "form-control",
86
+ placeholder: "Enter username",
87
+ onInput: _cache[1] || (_cache[1] = (e) => updateField("username", e.target.value))
88
+ }, null, 40, _hoisted_7)
89
+ ]),
90
+ createBaseVNode("div", _hoisted_8, [
91
+ _cache[11] || (_cache[11] = createBaseVNode("label", { for: "password-ref" }, "Password Reference", -1)),
92
+ createBaseVNode("select", {
93
+ id: "password-ref",
94
+ value: _ctx.modelValue.password_ref,
95
+ class: "form-control",
96
+ onChange: _cache[2] || (_cache[2] = (e) => updateField("password_ref", e.target.value))
97
+ }, [
98
+ _cache[10] || (_cache[10] = createBaseVNode("option", { value: "" }, "Select a password from the secrets", -1)),
99
+ (openBlock(true), createElementBlock(Fragment, null, renderList(availableSecrets.value, (secret) => {
100
+ return openBlock(), createElementBlock("option", {
101
+ key: secret.name,
102
+ value: secret.name
103
+ }, toDisplayString(secret.name), 9, _hoisted_10);
104
+ }), 128))
105
+ ], 40, _hoisted_9)
106
+ ]),
107
+ createBaseVNode("div", _hoisted_11, [
108
+ _cache[12] || (_cache[12] = createBaseVNode("label", { for: "host" }, "Host", -1)),
109
+ createBaseVNode("input", {
110
+ id: "host",
111
+ value: _ctx.modelValue.host,
112
+ type: "text",
113
+ class: "form-control",
114
+ placeholder: "Enter host",
115
+ onInput: _cache[3] || (_cache[3] = (e) => updateField("host", e.target.value))
116
+ }, null, 40, _hoisted_12)
117
+ ]),
118
+ createBaseVNode("div", _hoisted_13, [
119
+ createBaseVNode("div", _hoisted_14, [
120
+ _cache[13] || (_cache[13] = createBaseVNode("label", { for: "port" }, "Port", -1)),
121
+ createBaseVNode("input", {
122
+ id: "port",
123
+ value: _ctx.modelValue.port,
124
+ type: "number",
125
+ class: "form-control",
126
+ placeholder: "Enter port",
127
+ onInput: _cache[4] || (_cache[4] = (e) => updateField("port", Number(e.target.value)))
128
+ }, null, 40, _hoisted_15)
129
+ ]),
130
+ createBaseVNode("div", _hoisted_16, [
131
+ _cache[14] || (_cache[14] = createBaseVNode("label", { for: "database" }, "Database", -1)),
132
+ createBaseVNode("input", {
133
+ id: "database",
134
+ value: _ctx.modelValue.database,
135
+ type: "text",
136
+ class: "form-control",
137
+ placeholder: "Enter database name",
138
+ onInput: _cache[5] || (_cache[5] = (e) => updateField("database", e.target.value))
139
+ }, null, 40, _hoisted_17)
140
+ ])
141
+ ])
142
+ ])) : createCommentVNode("", true)
143
+ ]);
144
+ };
145
+ }
146
+ });
147
+ const DatabaseConnectionSettings_vue_vue_type_style_index_0_scoped_2fd11b08_lang = "";
148
+ const DatabaseConnectionSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2fd11b08"]]);
149
+ export {
150
+ DatabaseConnectionSettings as D
151
+ };
@@ -0,0 +1,64 @@
1
+
2
+ .description-text[data-v-87a64956] {
3
+ color: #6c757d;
4
+ margin-top: 0.5rem;
5
+ font-size: 0.95rem;
6
+ }
7
+ .info-box[data-v-87a64956] {
8
+ display: flex;
9
+ gap: 1rem;
10
+ padding: 1rem;
11
+ background-color: #f8f9fa;
12
+ border-left: 4px solid #17a2b8;
13
+ border-radius: 4px;
14
+ }
15
+ .info-box i[data-v-87a64956] {
16
+ color: #17a2b8;
17
+ font-size: 1.5rem;
18
+ margin-top: 0.5rem;
19
+ }
20
+ .info-box p[data-v-87a64956] {
21
+ margin: 0;
22
+ margin-bottom: 0.5rem;
23
+ }
24
+ .info-box p[data-v-87a64956]:last-child {
25
+ margin-bottom: 0;
26
+ }
27
+ .modal-description[data-v-87a64956] {
28
+ color: #6c757d;
29
+ font-size: 0.9rem;
30
+ }
31
+ .badge[data-v-87a64956] {
32
+ background-color: #e9ecef;
33
+ border-radius: 1rem;
34
+ padding: 0.25rem 0.75rem;
35
+ font-size: 0.75rem;
36
+ margin-left: 0.5rem;
37
+ }
38
+ .warning-text[data-v-87a64956] {
39
+ color: #dc3545;
40
+ font-size: 0.875rem;
41
+ margin-top: 0.5rem;
42
+ }
43
+ .dialog-footer[data-v-87a64956] {
44
+ display: flex;
45
+ justify-content: flex-end;
46
+ gap: 0.5rem;
47
+ margin-top: 1rem;
48
+ }
49
+ .connection-details[data-v-87a64956] {
50
+ font-size: 0.85rem;
51
+ color: #6c757d;
52
+ margin-top: 0.25rem;
53
+ }
54
+ .separator[data-v-87a64956] {
55
+ margin: 0 0.5rem;
56
+ }
57
+ .hint-text[data-v-87a64956] {
58
+ color: #6c757d;
59
+ font-size: 0.875rem;
60
+ margin-top: 0.5rem;
61
+ }
62
+ .mb-3[data-v-87a64956] {
63
+ margin-bottom: 1rem;
64
+ }