Flowfile 0.3.9__py3-none-any.whl → 0.4.0__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.
- flowfile/__init__.py +6 -1
- flowfile/api.py +0 -1
- flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-109ecc3c.js} +2 -2
- flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-19cdd67a.js} +11 -78
- flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-48e0ae20.js} +12 -79
- flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
- flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
- flowfile/web/static/assets/ColumnSelector-ecaf7c44.js +83 -0
- flowfile/web/static/assets/ContextMenu-2b348c4c.js +41 -0
- flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
- flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
- flowfile/web/static/assets/ContextMenu-a779eed7.js +41 -0
- flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
- flowfile/web/static/assets/ContextMenu-eca26a03.js +41 -0
- flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
- flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-a88f8142.js} +14 -84
- flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
- flowfile/web/static/assets/CustomNode-cb863dff.js +211 -0
- flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-819d3267.js} +3 -3
- flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-84ee2834.js} +2 -2
- flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-060dd412.js} +14 -114
- flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
- flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-7fc7750f.js} +13 -74
- flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
- flowfile/web/static/assets/ExploreData-82c95991.js +192 -0
- flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-e1a6ddc7.js} +8 -79
- flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-8aca894a.js} +12 -85
- flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
- flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
- flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-e33686d9.js} +18 -85
- flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
- flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-abda150d.js} +16 -87
- flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-4ecad1d7.js} +13 -159
- flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
- flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-656d07f3.js} +12 -75
- flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
- flowfile/web/static/assets/{Join-5a78a203.js → Join-b84ec849.js} +15 -85
- flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
- flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
- flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-346f4135.js} +11 -82
- flowfile/web/static/assets/MultiSelect-61b98268.js +5 -0
- flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-2a7c8312.js +63 -0
- flowfile/web/static/assets/NumericInput-e36602c2.js +5 -0
- flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-211a1990.js +35 -0
- flowfile/web/static/assets/Output-ddc9079f.css +37 -0
- flowfile/web/static/assets/{Output-411ecaee.js → Output-eb041599.js} +13 -243
- flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
- flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-f5c774f4.js} +14 -138
- flowfile/web/static/assets/PivotValidation-26546cbc.js +61 -0
- flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
- flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
- flowfile/web/static/assets/PivotValidation-e150a24b.js +61 -0
- flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-da3a7abf.js} +13 -80
- flowfile/web/static/assets/Read-0c768769.js +243 -0
- flowfile/web/static/assets/Read-6b17491f.css +62 -0
- flowfile/web/static/assets/RecordCount-84736276.js +53 -0
- flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-60055e6d.js} +8 -80
- flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
- flowfile/web/static/assets/SQLQueryComponent-8a486004.js +38 -0
- flowfile/web/static/assets/{Sample-b4a18476.js → Sample-2d662611.js} +8 -77
- flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-ef586cab.js} +2 -2
- flowfile/web/static/assets/{Select-727688dc.js → Select-2e4a6965.js} +11 -85
- flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
- flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-310b61c0.js} +2 -40
- flowfile/web/static/assets/SettingsSection-5634f439.js +45 -0
- flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
- flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
- flowfile/web/static/assets/SettingsSection-7c68b19f.js +53 -0
- flowfile/web/static/assets/SingleSelect-7298811a.js +5 -0
- flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-43807bad.js +62 -0
- flowfile/web/static/assets/SliderInput-53105476.js +40 -0
- flowfile/web/static/assets/SliderInput-b8fb6a8c.css +4 -0
- flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
- flowfile/web/static/assets/{Sort-be3339a8.js → Sort-4fdebe74.js} +12 -97
- flowfile/web/static/assets/TextInput-28366b7e.js +5 -0
- flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-9cad14ba.js +32 -0
- flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
- flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-73ffa692.js} +14 -83
- flowfile/web/static/assets/ToggleSwitch-598add30.js +5 -0
- flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-f620cd32.js +31 -0
- flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-66239e83.js} +2 -2
- flowfile/web/static/assets/Union-26b10614.js +77 -0
- flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
- flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-33b9edbb.js} +22 -91
- flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
- flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
- flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-ef69d0e2.js} +12 -166
- flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
- flowfile/web/static/assets/UnpivotValidation-8658388e.js +51 -0
- flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-4d7861f4.js} +4 -264
- flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
- flowfile/web/static/assets/{api-023d1733.js → api-2d1394bd.js} +1 -1
- flowfile/web/static/assets/{api-cb00cce6.js → api-c908fffe.js} +1 -1
- flowfile/web/static/assets/{designer-6c322d8e.js → designer-1667687d.js} +2201 -705
- flowfile/web/static/assets/{designer-2197d782.css → designer-665e9408.css} +836 -201
- flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-5eed779e.js} +1 -1
- flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-41ebe3c2.js} +1 -1
- flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-0670d32d.js} +2 -2
- flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-38410ebf.js} +3 -3
- flowfile/web/static/assets/{index-681a3ed0.css → index-50508d4d.css} +8 -0
- flowfile/web/static/assets/{index-683fc198.js → index-5ec791df.js} +210 -31
- flowfile/web/static/assets/outputCsv-059583b6.js +86 -0
- flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
- flowfile/web/static/assets/outputExcel-76b1e02c.js +56 -0
- flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
- flowfile/web/static/assets/outputParquet-440fd4c7.js +31 -0
- flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
- flowfile/web/static/assets/readCsv-9813903a.js +178 -0
- flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
- flowfile/web/static/assets/readExcel-7f40d237.js +203 -0
- flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
- flowfile/web/static/assets/readParquet-22d56002.js +26 -0
- flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
- flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-b3cb072e.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-7ad95bca.js} +7 -7
- flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
- flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
- flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-b1dfaa46.js} +59 -33
- flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-22bac17c.js} +1 -1
- flowfile/web/static/index.html +2 -2
- {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/METADATA +1 -1
- {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/RECORD +160 -102
- flowfile_core/configs/flow_logger.py +5 -13
- flowfile_core/configs/node_store/__init__.py +30 -0
- flowfile_core/configs/node_store/nodes.py +383 -99
- flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
- flowfile_core/configs/settings.py +2 -1
- flowfile_core/database/connection.py +5 -21
- flowfile_core/fileExplorer/funcs.py +239 -121
- flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
- flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
- flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +28 -8
- flowfile_core/flowfile/flow_graph.py +117 -34
- flowfile_core/flowfile/flow_node/flow_node.py +45 -13
- flowfile_core/flowfile/handler.py +22 -3
- flowfile_core/flowfile/manage/open_flowfile.py +9 -1
- flowfile_core/flowfile/node_designer/__init__.py +47 -0
- flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
- flowfile_core/flowfile/node_designer/custom_node.py +371 -0
- flowfile_core/flowfile/node_designer/data_types.py +146 -0
- flowfile_core/flowfile/node_designer/ui_components.py +277 -0
- flowfile_core/flowfile/schema_callbacks.py +8 -4
- flowfile_core/flowfile/setting_generator/settings.py +0 -1
- flowfile_core/main.py +5 -1
- flowfile_core/routes/routes.py +73 -28
- flowfile_core/routes/user_defined_components.py +55 -0
- flowfile_core/schemas/input_schema.py +7 -1
- flowfile_core/schemas/output_model.py +5 -2
- flowfile_core/schemas/schemas.py +8 -3
- flowfile_core/schemas/transform_schema.py +1 -0
- flowfile_core/utils/validate_setup.py +3 -1
- flowfile_worker/__init__.py +6 -35
- flowfile_worker/main.py +5 -2
- flowfile_worker/routes.py +47 -5
- shared/__init__.py +15 -0
- shared/storage_config.py +258 -0
- flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
- flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
- flowfile/web/static/assets/Read-80dc1675.css +0 -197
- flowfile/web/static/assets/Read-c3b1929c.js +0 -701
- flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
- flowfile/web/static/assets/Union-89fd73dc.js +0 -146
- flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
- flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
- flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
- {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/LICENSE +0 -0
- {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/WHEEL +0 -0
- {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { C as CodeLoader } from "./vue-content-loader.es-
|
|
2
|
-
import { u as useNodeStore } from "./vue-codemirror.esm-
|
|
3
|
-
import { C as ColumnSelector } from "./dropDown-
|
|
4
|
-
import { s as selectDynamic } from "./selectDynamic-
|
|
5
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
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
|
|
7
|
-
import
|
|
8
|
-
import "./
|
|
9
|
-
|
|
10
|
-
const _hoisted_1$1 = {
|
|
1
|
+
import { C as CodeLoader } from "./vue-content-loader.es-22bac17c.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
|
|
3
|
+
import { C as ColumnSelector } from "./dropDown-41ebe3c2.js";
|
|
4
|
+
import { s as selectDynamic } from "./selectDynamic-7ad95bca.js";
|
|
5
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-38410ebf.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 } from "./index-5ec791df.js";
|
|
7
|
+
import "./UnavailableFields-66239e83.js";
|
|
8
|
+
import "./designer-1667687d.js";
|
|
9
|
+
const _hoisted_1 = {
|
|
11
10
|
key: 0,
|
|
12
11
|
class: "listbox-wrapper"
|
|
13
12
|
};
|
|
@@ -18,8 +17,8 @@ const _hoisted_5 = { class: "table-wrapper" };
|
|
|
18
17
|
const _hoisted_6 = { class: "selectors-container" };
|
|
19
18
|
const _hoisted_7 = { class: "action-buttons" };
|
|
20
19
|
const _hoisted_8 = ["onClick"];
|
|
21
|
-
const _sfc_main
|
|
22
|
-
__name: "
|
|
20
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
21
|
+
__name: "Join",
|
|
23
22
|
setup(__props, { expose: __expose }) {
|
|
24
23
|
const joinTypes = ["inner", "left", "right", "full", "semi", "anti", "cross"];
|
|
25
24
|
const JOIN_TYPES_WITHOUT_COLUMN_SELECTION = ["anti", "semi"];
|
|
@@ -44,7 +43,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
44
43
|
if (result.value) {
|
|
45
44
|
dataLoaded.value = true;
|
|
46
45
|
}
|
|
47
|
-
nodeStore.isDrawerOpen = true;
|
|
48
46
|
};
|
|
49
47
|
const addJoinCondition = () => {
|
|
50
48
|
if (nodeJoin.value) {
|
|
@@ -78,14 +76,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
78
76
|
const pushNodeData = async () => {
|
|
79
77
|
console.log("Pushing node data");
|
|
80
78
|
nodeStore.updateSettings(nodeJoin);
|
|
81
|
-
nodeStore.isDrawerOpen = false;
|
|
82
79
|
};
|
|
83
80
|
__expose({
|
|
84
81
|
loadNodeData,
|
|
85
82
|
pushNodeData
|
|
86
83
|
});
|
|
87
84
|
return (_ctx, _cache) => {
|
|
88
|
-
return dataLoaded.value && nodeJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1
|
|
85
|
+
return dataLoaded.value && nodeJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
89
86
|
createVNode(GenericNodeSettings, {
|
|
90
87
|
modelValue: nodeJoin.value,
|
|
91
88
|
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => nodeJoin.value = $event)
|
|
@@ -182,75 +179,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
182
179
|
};
|
|
183
180
|
}
|
|
184
181
|
});
|
|
185
|
-
const
|
|
186
|
-
const
|
|
187
|
-
const _hoisted_1 = { ref: "el" };
|
|
188
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
189
|
-
__name: "Join",
|
|
190
|
-
props: {
|
|
191
|
-
nodeId: {
|
|
192
|
-
type: Number,
|
|
193
|
-
required: true
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
setup(__props) {
|
|
197
|
-
const nodeStore = useNodeStore();
|
|
198
|
-
const childComp = ref(null);
|
|
199
|
-
const drawer = ref(false);
|
|
200
|
-
const props = __props;
|
|
201
|
-
const closeOnDrawer = () => {
|
|
202
|
-
var _a;
|
|
203
|
-
(_a = childComp.value) == null ? void 0 : _a.pushNodeData();
|
|
204
|
-
drawer.value = false;
|
|
205
|
-
nodeStore.isDrawerOpen = false;
|
|
206
|
-
};
|
|
207
|
-
const openDrawer = async () => {
|
|
208
|
-
if (nodeStore.node_id === props.nodeId) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
nodeStore.closeDrawer();
|
|
212
|
-
drawer.value = true;
|
|
213
|
-
const drawerOpen = nodeStore.isDrawerOpen;
|
|
214
|
-
nodeStore.isDrawerOpen = true;
|
|
215
|
-
await nextTick();
|
|
216
|
-
if (nodeStore.node_id === props.nodeId && drawerOpen) {
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
if (childComp.value) {
|
|
220
|
-
childComp.value.loadNodeData(props.nodeId);
|
|
221
|
-
nodeStore.openDrawer(closeOnDrawer);
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
onMounted(async () => {
|
|
225
|
-
await nextTick();
|
|
226
|
-
});
|
|
227
|
-
return (_ctx, _cache) => {
|
|
228
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
229
|
-
createVNode(NodeButton, {
|
|
230
|
-
ref: "nodeButton",
|
|
231
|
-
"node-id": __props.nodeId,
|
|
232
|
-
"image-src": "join.png",
|
|
233
|
-
title: `${__props.nodeId}: Join`,
|
|
234
|
-
onClick: openDrawer
|
|
235
|
-
}, null, 8, ["node-id", "title"]),
|
|
236
|
-
drawer.value ? (openBlock(), createBlock(Teleport, {
|
|
237
|
-
key: 0,
|
|
238
|
-
to: "#nodesettings"
|
|
239
|
-
}, [
|
|
240
|
-
createVNode(NodeTitle, {
|
|
241
|
-
title: "Join",
|
|
242
|
-
intro: "Combine datasets based on one or more columns."
|
|
243
|
-
}),
|
|
244
|
-
createVNode(joinInput, {
|
|
245
|
-
ref_key: "childComp",
|
|
246
|
-
ref: childComp,
|
|
247
|
-
"node-id": __props.nodeId
|
|
248
|
-
}, null, 8, ["node-id"])
|
|
249
|
-
])) : createCommentVNode("", true)
|
|
250
|
-
], 512);
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
});
|
|
182
|
+
const Join_vue_vue_type_style_index_0_scoped_7d5cefa4_lang = "";
|
|
183
|
+
const Join = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7d5cefa4"]]);
|
|
254
184
|
export {
|
|
255
|
-
|
|
185
|
+
Join as default
|
|
256
186
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
/* Join Type Selector */
|
|
3
|
-
.join-type-selector[data-v-
|
|
3
|
+
.join-type-selector[data-v-7d5cefa4] {
|
|
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-
|
|
9
|
+
.join-type-label[data-v-7d5cefa4] {
|
|
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-
|
|
17
|
+
.table-wrapper[data-v-7d5cefa4] {
|
|
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-
|
|
23
|
+
.selectors-header[data-v-7d5cefa4] {
|
|
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-
|
|
30
|
+
.selectors-title[data-v-7d5cefa4] {
|
|
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-
|
|
37
|
+
.selectors-container[data-v-7d5cefa4] {
|
|
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-
|
|
45
|
+
.selectors-row[data-v-7d5cefa4] {
|
|
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-
|
|
53
|
+
.selectors-row[data-v-7d5cefa4]:last-child {
|
|
54
54
|
margin-bottom: 0;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
/* Action Buttons */
|
|
58
|
-
.action-buttons[data-v-
|
|
58
|
+
.action-buttons[data-v-7d5cefa4] {
|
|
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-
|
|
65
|
-
.add-join-button[data-v-
|
|
66
|
-
.remove-join-button[data-v-
|
|
64
|
+
.action-button[data-v-7d5cefa4],
|
|
65
|
+
.add-join-button[data-v-7d5cefa4],
|
|
66
|
+
.remove-join-button[data-v-7d5cefa4] {
|
|
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-
|
|
79
|
+
.add-join-button[data-v-7d5cefa4] {
|
|
80
80
|
color: #45a049;
|
|
81
81
|
border-color: #45a049;
|
|
82
82
|
}
|
|
83
|
-
.add-join-button[data-v-
|
|
83
|
+
.add-join-button[data-v-7d5cefa4]:hover {
|
|
84
84
|
background-color: #45a049;
|
|
85
85
|
color: #fff;
|
|
86
86
|
}
|
|
87
|
-
.remove-join-button[data-v-
|
|
87
|
+
.remove-join-button[data-v-7d5cefa4] {
|
|
88
88
|
color: #d32f2f;
|
|
89
89
|
border-color: #d32f2f;
|
|
90
90
|
}
|
|
91
|
-
.remove-join-button[data-v-
|
|
91
|
+
.remove-join-button[data-v-7d5cefa4]:hover {
|
|
92
92
|
background-color: #d32f2f;
|
|
93
93
|
color: #fff;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/* Custom scrollbar */
|
|
97
|
-
.selectors-container[data-v-
|
|
97
|
+
.selectors-container[data-v-7d5cefa4]::-webkit-scrollbar {
|
|
98
98
|
width: 8px;
|
|
99
99
|
}
|
|
100
|
-
.selectors-container[data-v-
|
|
100
|
+
.selectors-container[data-v-7d5cefa4]::-webkit-scrollbar-track {
|
|
101
101
|
background: transparent;
|
|
102
102
|
}
|
|
103
|
-
.selectors-container[data-v-
|
|
103
|
+
.selectors-container[data-v-7d5cefa4]::-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-
|
|
107
|
+
.selectors-container[data-v-7d5cefa4]::-webkit-scrollbar-thumb:hover {
|
|
108
108
|
background-color: rgba(0, 0, 0, 0.2);
|
|
109
109
|
}
|
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
|
|
2
|
-
.settings-section[data-v-
|
|
2
|
+
.settings-section[data-v-3b48a5f1] {
|
|
3
3
|
padding: 1.25rem;
|
|
4
4
|
background: var(--el-bg-color);
|
|
5
5
|
border-radius: 8px;
|
|
6
6
|
margin-bottom: 1rem;
|
|
7
7
|
}
|
|
8
|
-
.table-container[data-v-
|
|
8
|
+
.table-container[data-v-3b48a5f1] {
|
|
9
9
|
max-height: 400px;
|
|
10
10
|
overflow: auto;
|
|
11
11
|
border: 1px solid var(--el-border-color-lighter);
|
|
12
12
|
border-radius: 8px;
|
|
13
13
|
margin-bottom: 1rem;
|
|
14
14
|
}
|
|
15
|
-
.modern-table[data-v-
|
|
15
|
+
.modern-table[data-v-3b48a5f1] {
|
|
16
16
|
width: 100%;
|
|
17
17
|
border-collapse: separate;
|
|
18
18
|
border-spacing: 0;
|
|
19
19
|
background: white;
|
|
20
20
|
}
|
|
21
|
-
.modern-table th[data-v-
|
|
22
|
-
.modern-table td[data-v-
|
|
21
|
+
.modern-table th[data-v-3b48a5f1],
|
|
22
|
+
.modern-table td[data-v-3b48a5f1] {
|
|
23
23
|
padding: 0.5rem;
|
|
24
24
|
border: 1px solid var(--el-border-color-lighter);
|
|
25
25
|
}
|
|
26
|
-
.column-header[data-v-
|
|
26
|
+
.column-header[data-v-3b48a5f1] {
|
|
27
27
|
display: flex;
|
|
28
28
|
flex-direction: column;
|
|
29
29
|
gap: 0.25rem;
|
|
30
30
|
}
|
|
31
|
-
.type-select[data-v-
|
|
31
|
+
.type-select[data-v-3b48a5f1] {
|
|
32
32
|
width: 100%;
|
|
33
33
|
}
|
|
34
|
-
.type-select[data-v-
|
|
34
|
+
.type-select[data-v-3b48a5f1] .el-input__inner {
|
|
35
35
|
font-size: 0.75rem;
|
|
36
36
|
padding: 0 0.5rem;
|
|
37
37
|
}
|
|
38
|
-
.input-header[data-v-
|
|
39
|
-
.input-cell[data-v-
|
|
38
|
+
.input-header[data-v-3b48a5f1],
|
|
39
|
+
.input-cell[data-v-3b48a5f1] {
|
|
40
40
|
width: 100%;
|
|
41
41
|
border: none;
|
|
42
42
|
padding: 0.25rem;
|
|
43
43
|
font-size: 0.875rem;
|
|
44
44
|
background: transparent;
|
|
45
45
|
}
|
|
46
|
-
.input-header[data-v-
|
|
46
|
+
.input-header[data-v-3b48a5f1] {
|
|
47
47
|
font-weight: 500;
|
|
48
48
|
}
|
|
49
|
-
.controls-section[data-v-
|
|
49
|
+
.controls-section[data-v-3b48a5f1] {
|
|
50
50
|
margin: 1rem 0;
|
|
51
51
|
}
|
|
52
|
-
.button-group[data-v-
|
|
52
|
+
.button-group[data-v-3b48a5f1] {
|
|
53
53
|
display: flex;
|
|
54
54
|
gap: 0.5rem;
|
|
55
55
|
}
|
|
56
|
-
.delete-button[data-v-
|
|
56
|
+
.delete-button[data-v-3b48a5f1] {
|
|
57
57
|
width: 20px;
|
|
58
58
|
height: 20px;
|
|
59
59
|
padding: 0;
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
position: relative;
|
|
69
69
|
margin: 0 auto;
|
|
70
70
|
}
|
|
71
|
-
.delete-button[data-v-
|
|
72
|
-
.delete-button[data-v-
|
|
71
|
+
.delete-button[data-v-3b48a5f1]::before,
|
|
72
|
+
.delete-button[data-v-3b48a5f1]::after {
|
|
73
73
|
content: "";
|
|
74
74
|
position: absolute;
|
|
75
75
|
width: 10px;
|
|
@@ -77,19 +77,19 @@
|
|
|
77
77
|
background-color: currentColor;
|
|
78
78
|
transform: rotate(45deg);
|
|
79
79
|
}
|
|
80
|
-
.delete-button[data-v-
|
|
80
|
+
.delete-button[data-v-3b48a5f1]::after {
|
|
81
81
|
transform: rotate(-45deg);
|
|
82
82
|
}
|
|
83
|
-
.delete-button[data-v-
|
|
83
|
+
.delete-button[data-v-3b48a5f1]:hover {
|
|
84
84
|
color: #ff4d4f;
|
|
85
85
|
}
|
|
86
|
-
.raw-data-section[data-v-
|
|
86
|
+
.raw-data-section[data-v-3b48a5f1] {
|
|
87
87
|
margin-top: 1rem;
|
|
88
88
|
padding: 1rem;
|
|
89
89
|
background: var(--el-bg-color-page);
|
|
90
90
|
border-radius: 8px;
|
|
91
91
|
}
|
|
92
|
-
.raw-data-controls[data-v-
|
|
92
|
+
.raw-data-controls[data-v-3b48a5f1] {
|
|
93
93
|
margin-top: 0.5rem;
|
|
94
94
|
display: flex;
|
|
95
95
|
justify-content: flex-end;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import "./designer-6c322d8e.js";
|
|
1
|
+
import { r as ref, d as defineComponent, l as computed, m as watch, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, a8 as withDirectives, a9 as vModelText, u as unref, h as createBlock, g as createTextVNode, s as normalizeClass, t as toDisplayString, i as createCommentVNode, E as ElNotification, _ as _export_sfc } from "./index-5ec791df.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
|
|
3
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-38410ebf.js";
|
|
4
|
+
import "./designer-1667687d.js";
|
|
6
5
|
const createManualInput = (flowId = -1, nodeId = -1, pos_x = 0, pos_y = 0) => {
|
|
7
6
|
const nodeManualInput = ref({
|
|
8
7
|
flow_id: flowId,
|
|
@@ -32,8 +31,8 @@ const _hoisted_12 = {
|
|
|
32
31
|
class: "raw-data-section"
|
|
33
32
|
};
|
|
34
33
|
const _hoisted_13 = { class: "raw-data-controls" };
|
|
35
|
-
const _sfc_main
|
|
36
|
-
__name: "
|
|
34
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
35
|
+
__name: "ManualInput",
|
|
37
36
|
setup(__props, { expose: __expose }) {
|
|
38
37
|
const nodeStore = useNodeStore();
|
|
39
38
|
const dataLoaded = ref(false);
|
|
@@ -126,6 +125,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
126
125
|
const nodeResult = await nodeStore.getNodeData(nodeId, false);
|
|
127
126
|
if (nodeResult == null ? void 0 : nodeResult.setting_input) {
|
|
128
127
|
nodeManualInput.value = nodeResult.setting_input;
|
|
128
|
+
console.log("nodeManualInput.value from input", nodeManualInput.value);
|
|
129
129
|
if (nodeResult.setting_input.raw_data_format && nodeResult.setting_input.raw_data_format.columns && nodeResult.setting_input.raw_data_format.data) {
|
|
130
130
|
populateTableFromRawDataFormat(nodeResult.setting_input.raw_data_format);
|
|
131
131
|
} else if (nodeResult.setting_input.raw_data) {
|
|
@@ -135,6 +135,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
135
135
|
}
|
|
136
136
|
} else {
|
|
137
137
|
nodeManualInput.value = createManualInput(nodeStore.flow_id, nodeStore.node_id).value;
|
|
138
|
+
console.log("nodeManualInput.value no data available", nodeManualInput.value);
|
|
138
139
|
initializeEmptyTable();
|
|
139
140
|
}
|
|
140
141
|
rawDataString.value = JSON.stringify(rawData.value, null, 2);
|
|
@@ -387,80 +388,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
387
388
|
};
|
|
388
389
|
}
|
|
389
390
|
});
|
|
390
|
-
const
|
|
391
|
-
const
|
|
392
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
393
|
-
__name: "ManualInput",
|
|
394
|
-
props: {
|
|
395
|
-
nodeId: {
|
|
396
|
-
type: Number,
|
|
397
|
-
required: true
|
|
398
|
-
}
|
|
399
|
-
},
|
|
400
|
-
setup(__props) {
|
|
401
|
-
const nodeStore = useNodeStore();
|
|
402
|
-
const nodeButton = ref(null);
|
|
403
|
-
const childComp = ref(null);
|
|
404
|
-
const props = __props;
|
|
405
|
-
const el = ref(null);
|
|
406
|
-
const drawer = ref(false);
|
|
407
|
-
const closeOnDrawer = () => {
|
|
408
|
-
var _a;
|
|
409
|
-
drawer.value = false;
|
|
410
|
-
(_a = childComp.value) == null ? void 0 : _a.pushNodeData();
|
|
411
|
-
nodeStore.isDrawerOpen = false;
|
|
412
|
-
};
|
|
413
|
-
const openDrawer = async () => {
|
|
414
|
-
if (nodeStore.node_id === props.nodeId) {
|
|
415
|
-
return;
|
|
416
|
-
}
|
|
417
|
-
nodeStore.closeDrawer();
|
|
418
|
-
drawer.value = true;
|
|
419
|
-
const drawerOpen = nodeStore.isDrawerOpen;
|
|
420
|
-
nodeStore.isDrawerOpen = true;
|
|
421
|
-
await nextTick();
|
|
422
|
-
if (nodeStore.node_id === props.nodeId && drawerOpen) {
|
|
423
|
-
return;
|
|
424
|
-
}
|
|
425
|
-
if (childComp.value) {
|
|
426
|
-
childComp.value.loadNodeData(props.nodeId);
|
|
427
|
-
nodeStore.openDrawer(closeOnDrawer);
|
|
428
|
-
}
|
|
429
|
-
};
|
|
430
|
-
onMounted(async () => {
|
|
431
|
-
await nextTick();
|
|
432
|
-
});
|
|
433
|
-
return (_ctx, _cache) => {
|
|
434
|
-
return openBlock(), createElementBlock("div", {
|
|
435
|
-
ref_key: "el",
|
|
436
|
-
ref: el
|
|
437
|
-
}, [
|
|
438
|
-
createVNode(NodeButton, {
|
|
439
|
-
ref_key: "nodeButton",
|
|
440
|
-
ref: nodeButton,
|
|
441
|
-
"node-id": __props.nodeId,
|
|
442
|
-
"image-src": "manual_input.png",
|
|
443
|
-
title: `${__props.nodeId}: Manual input`,
|
|
444
|
-
onClick: openDrawer
|
|
445
|
-
}, null, 8, ["node-id", "title"]),
|
|
446
|
-
drawer.value ? (openBlock(), createBlock(Teleport, {
|
|
447
|
-
key: 0,
|
|
448
|
-
to: "#nodesettings"
|
|
449
|
-
}, [
|
|
450
|
-
createVNode(NodeTitle, {
|
|
451
|
-
title: "Provide manual input",
|
|
452
|
-
intro: "Provide a fixed data that can be used and combined with other tables."
|
|
453
|
-
}),
|
|
454
|
-
createVNode(manualInput, {
|
|
455
|
-
ref_key: "childComp",
|
|
456
|
-
ref: childComp,
|
|
457
|
-
"node-id": __props.nodeId
|
|
458
|
-
}, null, 8, ["node-id"])
|
|
459
|
-
])) : createCommentVNode("", true)
|
|
460
|
-
], 512);
|
|
461
|
-
};
|
|
462
|
-
}
|
|
463
|
-
});
|
|
391
|
+
const ManualInput_vue_vue_type_style_index_0_scoped_3b48a5f1_lang = "";
|
|
392
|
+
const ManualInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3b48a5f1"]]);
|
|
464
393
|
export {
|
|
465
|
-
|
|
394
|
+
ManualInput as default
|
|
466
395
|
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { d as defineComponent, l as computed, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, f as createVNode, w as withCtx, F as Fragment, q as renderList, h as createBlock } from "./index-5ec791df.js";
|
|
2
|
+
const _hoisted_1 = { class: "component-container" };
|
|
3
|
+
const _hoisted_2 = { class: "listbox-subtitle" };
|
|
4
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "MultiSelect",
|
|
6
|
+
props: {
|
|
7
|
+
schema: {
|
|
8
|
+
type: Object,
|
|
9
|
+
required: true
|
|
10
|
+
},
|
|
11
|
+
modelValue: {
|
|
12
|
+
type: Array,
|
|
13
|
+
default: () => []
|
|
14
|
+
},
|
|
15
|
+
incomingColumns: {
|
|
16
|
+
type: Array,
|
|
17
|
+
default: () => []
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
emits: ["update:modelValue"],
|
|
21
|
+
setup(__props) {
|
|
22
|
+
const props = __props;
|
|
23
|
+
const options = computed(() => {
|
|
24
|
+
if (props.schema.options && !Array.isArray(props.schema.options) && props.schema.options.__type__ === "IncomingColumns") {
|
|
25
|
+
return props.incomingColumns;
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(props.schema.options)) {
|
|
28
|
+
return props.schema.options;
|
|
29
|
+
}
|
|
30
|
+
return [];
|
|
31
|
+
});
|
|
32
|
+
return (_ctx, _cache) => {
|
|
33
|
+
const _component_el_option = resolveComponent("el-option");
|
|
34
|
+
const _component_el_select = resolveComponent("el-select");
|
|
35
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
36
|
+
createBaseVNode("label", _hoisted_2, toDisplayString(__props.schema.label), 1),
|
|
37
|
+
createVNode(_component_el_select, {
|
|
38
|
+
"model-value": __props.modelValue,
|
|
39
|
+
multiple: "",
|
|
40
|
+
filterable: "",
|
|
41
|
+
placeholder: "Select one or more options",
|
|
42
|
+
style: { "width": "100%" },
|
|
43
|
+
size: "large",
|
|
44
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
|
|
45
|
+
}, {
|
|
46
|
+
default: withCtx(() => [
|
|
47
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(options.value, (item) => {
|
|
48
|
+
return openBlock(), createBlock(_component_el_option, {
|
|
49
|
+
key: Array.isArray(item) ? item[0] : item,
|
|
50
|
+
label: Array.isArray(item) ? item[1] : item,
|
|
51
|
+
value: Array.isArray(item) ? item[0] : item
|
|
52
|
+
}, null, 8, ["label", "value"]);
|
|
53
|
+
}), 128))
|
|
54
|
+
]),
|
|
55
|
+
_: 1
|
|
56
|
+
}, 8, ["model-value"])
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
export {
|
|
62
|
+
_sfc_main as _
|
|
63
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { d as defineComponent, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, t as toDisplayString, f as createVNode } from "./index-5ec791df.js";
|
|
2
|
+
const _hoisted_1 = { class: "component-container" };
|
|
3
|
+
const _hoisted_2 = { class: "listbox-subtitle" };
|
|
4
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "NumericInput",
|
|
6
|
+
props: {
|
|
7
|
+
schema: {
|
|
8
|
+
type: Object,
|
|
9
|
+
required: true
|
|
10
|
+
},
|
|
11
|
+
modelValue: Number
|
|
12
|
+
},
|
|
13
|
+
emits: ["update:modelValue"],
|
|
14
|
+
setup(__props) {
|
|
15
|
+
return (_ctx, _cache) => {
|
|
16
|
+
const _component_el_input_number = resolveComponent("el-input-number");
|
|
17
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
18
|
+
createBaseVNode("label", _hoisted_2, toDisplayString(__props.schema.label), 1),
|
|
19
|
+
createVNode(_component_el_input_number, {
|
|
20
|
+
"model-value": __props.modelValue,
|
|
21
|
+
min: __props.schema.min_value,
|
|
22
|
+
max: __props.schema.max_value,
|
|
23
|
+
placeholder: __props.schema.placeholder || "Enter number...",
|
|
24
|
+
"controls-position": "right",
|
|
25
|
+
size: "large",
|
|
26
|
+
style: { "width": "100%" },
|
|
27
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
|
|
28
|
+
}, null, 8, ["model-value", "min", "max", "placeholder"])
|
|
29
|
+
]);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
export {
|
|
34
|
+
_sfc_main as _
|
|
35
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
.main-part[data-v-86e92d7d] {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
padding: 20px;
|
|
6
|
+
border: 1px solid #ddd;
|
|
7
|
+
border-radius: 8px;
|
|
8
|
+
background-color: #fff;
|
|
9
|
+
margin-top: 20px;
|
|
10
|
+
}
|
|
11
|
+
.file-upload-row[data-v-86e92d7d] {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: 10px;
|
|
15
|
+
margin-bottom: 20px;
|
|
16
|
+
}
|
|
17
|
+
.file-upload-label[data-v-86e92d7d] {
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
background-color: #3498db;
|
|
22
|
+
border: 1px solid transparent;
|
|
23
|
+
border-radius: 4px;
|
|
24
|
+
padding: 10px 20px;
|
|
25
|
+
color: white;
|
|
26
|
+
font-size: 16px;
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
transition: all 0.3s ease;
|
|
29
|
+
}
|
|
30
|
+
.file-upload-label[data-v-86e92d7d]:hover {
|
|
31
|
+
background-color: #2980b9;
|
|
32
|
+
}
|
|
33
|
+
.warning-message[data-v-86e92d7d] {
|
|
34
|
+
color: #e74c3c;
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
}
|