Flowfile 0.3.3.2__py3-none-any.whl → 0.3.4.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Flowfile might be problematic. Click here for more details.
- flowfile/__init__.py +1 -1
- flowfile/__main__.py +0 -2
- flowfile/api.py +94 -46
- flowfile/web/__init__.py +4 -1
- flowfile/web/static/assets/{AirbyteReader-2b1cf2d8.js → AirbyteReader-e08044e5.js} +8 -8
- flowfile/web/static/assets/{CrossJoin-cc3ab73c.js → CrossJoin-dfcf7351.js} +8 -8
- flowfile/web/static/assets/{DatabaseConnectionSettings-307c4652.js → DatabaseConnectionSettings-b2afb1d7.js} +2 -2
- flowfile/web/static/assets/{DatabaseManager-69faa6e1.js → DatabaseManager-824a49b2.js} +2 -2
- flowfile/web/static/assets/{DatabaseReader-e4134cd0.js → DatabaseReader-a48124d8.js} +9 -9
- flowfile/web/static/assets/{DatabaseWriter-d32d75b1.js → DatabaseWriter-b47cbae2.js} +9 -9
- flowfile/web/static/assets/{ExploreData-5eb48389.js → ExploreData-fdfc45a4.js} +5 -5
- flowfile/web/static/assets/{ExternalSource-29489051.js → ExternalSource-861b0e71.js} +6 -6
- flowfile/web/static/assets/{Filter-031332bb.js → Filter-f87bb897.js} +8 -9
- flowfile/web/static/assets/{Formula-3b900540.js → Formula-1e2ed720.js} +9 -10
- flowfile/web/static/assets/{FuzzyMatch-dee31153.js → FuzzyMatch-b6cc4fdd.js} +9 -9
- flowfile/web/static/assets/{GraphSolver-ca74eb47.js → GraphSolver-6a371f4c.js} +5 -5
- flowfile/web/static/assets/{GroupBy-081b6591.js → GroupBy-f7b7f472.js} +6 -6
- flowfile/web/static/assets/{Join-b467376f.js → Join-eec38203.js} +9 -9
- flowfile/web/static/assets/{ManualInput-ffffb80a.js → ManualInput-9aaa46fb.js} +5 -5
- flowfile/web/static/assets/{Output-9a87d4ba.js → Output-3b2ca045.js} +4 -4
- flowfile/web/static/assets/{Pivot-ee3e6093.js → Pivot-a4f5d88f.js} +6 -6
- flowfile/web/static/assets/PolarsCode-49ce444f.js +306 -0
- flowfile/web/static/assets/{Read-67fee3a0.js → Read-07acdc9a.js} +6 -6
- flowfile/web/static/assets/{RecordCount-a2acd02d.js → RecordCount-6a21da56.js} +5 -5
- flowfile/web/static/assets/{RecordId-0c8bcd77.js → RecordId-949bdc17.js} +6 -6
- flowfile/web/static/assets/{Sample-60594a3a.js → Sample-7afca6e1.js} +5 -5
- flowfile/web/static/assets/{SecretManager-bbcec2ac.js → SecretManager-b41c029d.js} +2 -2
- flowfile/web/static/assets/{Select-9540e6ca.js → Select-32b28406.js} +8 -8
- flowfile/web/static/assets/{SettingsSection-48f28104.js → SettingsSection-a0f15a05.js} +1 -1
- flowfile/web/static/assets/{Sort-6dbe3633.js → Sort-fc6ba0e2.js} +6 -6
- flowfile/web/static/assets/{TextToRows-27aab4a8.js → TextToRows-23127596.js} +8 -8
- flowfile/web/static/assets/{UnavailableFields-8143044b.js → UnavailableFields-c42880a3.js} +2 -2
- flowfile/web/static/assets/{Union-52460248.js → Union-39eecc6c.js} +5 -5
- flowfile/web/static/assets/{Unique-f6962644.js → Unique-a0e8fe61.js} +8 -8
- flowfile/web/static/assets/{Unpivot-1ff1e938.js → Unpivot-1e2d43f0.js} +5 -5
- flowfile/web/static/assets/{api-3b345d92.js → api-44ca9e9c.js} +1 -1
- flowfile/web/static/assets/{designer-2394122a.css → designer-186f2e71.css} +64 -9
- flowfile/web/static/assets/{designer-4736134f.js → designer-267d44f1.js} +2835 -105
- flowfile/web/static/assets/{documentation-b9545eba.js → documentation-6c0810a2.js} +1 -1
- flowfile/web/static/assets/{dropDown-d5a4014c.js → dropDown-52790b15.js} +1 -1
- flowfile/web/static/assets/{dropDownGeneric-1f4e32ec.js → dropDownGeneric-60f56a8a.js} +2 -2
- flowfile/web/static/assets/{fullEditor-f4791c23.js → fullEditor-e272b506.js} +2 -3
- flowfile/web/static/assets/{genericNodeSettings-1d456350.js → genericNodeSettings-4bdcf98e.js} +3 -3
- flowfile/web/static/assets/{index-f25c9283.js → index-e235a8bc.js} +12 -12
- flowfile/web/static/assets/{nodeTitle-cad6fd9d.js → nodeTitle-fc3fc4b7.js} +3 -3
- flowfile/web/static/assets/{secretApi-01f07e2c.js → secretApi-cdc2a3fd.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-f46a4e3f.js → selectDynamic-96aa82cd.js} +3 -3
- flowfile/web/static/assets/{vue-codemirror.esm-eb98fc8b.js → vue-codemirror.esm-25e75a08.js} +610 -29
- flowfile/web/static/assets/{vue-content-loader.es-860c0380.js → vue-content-loader.es-6c4b1c24.js} +1 -1
- flowfile/web/static/index.html +1 -1
- {flowfile-0.3.3.2.dist-info → flowfile-0.3.4.1.dist-info}/METADATA +16 -3
- {flowfile-0.3.3.2.dist-info → flowfile-0.3.4.1.dist-info}/RECORD +73 -73
- flowfile_core/flowfile/code_generator/__init__.py +0 -0
- flowfile_core/flowfile/code_generator/code_generator.py +723 -0
- flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +1 -1
- flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +1 -1
- flowfile_core/flowfile/{FlowfileFlow.py → flow_graph.py} +3 -3
- flowfile_core/flowfile/flow_graph_utils.py +1 -1
- flowfile_core/flowfile/handler.py +1 -1
- flowfile_core/flowfile/manage/open_flowfile.py +1 -1
- flowfile_core/flowfile/util/calculate_layout.py +1 -1
- flowfile_core/routes/routes.py +11 -1
- flowfile_core/schemas/input_schema.py +2 -1
- flowfile_frame/adapters.py +1 -1
- flowfile_frame/flow_frame.py +1 -4
- flowfile_frame/flow_frame.pyi +1 -1
- flowfile_frame/flow_frame_methods.py +1 -1
- flowfile_frame/lazy.py +1 -1
- flowfile_frame/utils.py +1 -1
- flowfile/readme.md +0 -127
- flowfile/web/static/assets/PolarsCode-03921254.js +0 -2865
- flowfile/web/static/assets/PopOver-3bdf8951.js +0 -577
- /flowfile/web/static/assets/{PopOver-bccfde04.css → vue-codemirror-bccfde04.css} +0 -0
- {flowfile-0.3.3.2.dist-info → flowfile-0.3.4.1.dist-info}/LICENSE +0 -0
- {flowfile-0.3.3.2.dist-info → flowfile-0.3.4.1.dist-info}/WHEEL +0 -0
- {flowfile-0.3.3.2.dist-info → flowfile-0.3.4.1.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
|
|
2
|
+
import { v as keymap, w as acceptCompletion, x as indentMore, q as EditorState, r as autocompletion, o as T, u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
3
|
+
import { p as python, o as oneDark } from "./designer-267d44f1.js";
|
|
4
|
+
import { d as defineComponent, r as ref, X as shallowRef, m as watch, c as openBlock, e as createElementBlock, f as createVNode, u as unref, t as toDisplayString, i as createCommentVNode, w as withCtx, h as createBlock, n as onMounted, R as nextTick, a7 as Teleport } from "./index-e235a8bc.js";
|
|
5
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
6
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
7
|
+
const polarsCompletionVals = [
|
|
8
|
+
// Polars basics
|
|
9
|
+
{ label: "pl", type: "variable", info: "Polars main module" },
|
|
10
|
+
{ label: "col", type: "function", info: "Column selector" },
|
|
11
|
+
{ label: "lit", type: "function", info: "Literal value" },
|
|
12
|
+
{ label: "expr", type: "function", info: "Expression builder" },
|
|
13
|
+
// Common Polars operations
|
|
14
|
+
{ label: "select", type: "method", info: "Select columns" },
|
|
15
|
+
{ label: "filter", type: "method", info: "Filter rows" },
|
|
16
|
+
{ label: "group_by", type: "method", info: "Group by columns" },
|
|
17
|
+
{ label: "agg", type: "method", info: "Aggregate operations" },
|
|
18
|
+
{ label: "sort", type: "method", info: "Sort DataFrame" },
|
|
19
|
+
{ label: "with_columns", type: "method", info: "Add/modify columns" },
|
|
20
|
+
{ label: "join", type: "method", info: "Join operations" },
|
|
21
|
+
// Aggregation functions
|
|
22
|
+
{ label: "sum", type: "method", info: "Sum values" },
|
|
23
|
+
{ label: "mean", type: "method", info: "Calculate mean" },
|
|
24
|
+
{ label: "min", type: "method", info: "Find minimum" },
|
|
25
|
+
{ label: "max", type: "method", info: "Find maximum" },
|
|
26
|
+
{ label: "count", type: "method", info: "Count records" },
|
|
27
|
+
// Common variables
|
|
28
|
+
{ label: "input_df", type: "variable", info: "Input DataFrame" },
|
|
29
|
+
{ label: "output_df", type: "variable", info: "Output DataFrame" },
|
|
30
|
+
// Basic Python
|
|
31
|
+
{ label: "print", type: "function" },
|
|
32
|
+
{ label: "len", type: "function" },
|
|
33
|
+
{ label: "range", type: "function" },
|
|
34
|
+
{ label: "list", type: "type" },
|
|
35
|
+
{ label: "dict", type: "type" },
|
|
36
|
+
{ label: "set", type: "type" },
|
|
37
|
+
{ label: "str", type: "type" },
|
|
38
|
+
{ label: "int", type: "type" },
|
|
39
|
+
{ label: "float", type: "type" },
|
|
40
|
+
{ label: "bool", type: "type" }
|
|
41
|
+
];
|
|
42
|
+
const _hoisted_1$2 = { class: "polars-editor-root" };
|
|
43
|
+
const _hoisted_2 = {
|
|
44
|
+
key: 0,
|
|
45
|
+
class: "validation-error"
|
|
46
|
+
};
|
|
47
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
48
|
+
__name: "pythonEditor",
|
|
49
|
+
props: {
|
|
50
|
+
editorString: { type: String, required: true }
|
|
51
|
+
},
|
|
52
|
+
emits: ["update-editor-string", "validation-error"],
|
|
53
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
54
|
+
const props = __props;
|
|
55
|
+
const emit = __emit;
|
|
56
|
+
const validationError = ref(null);
|
|
57
|
+
const polarsCompletions = (context) => {
|
|
58
|
+
let word = context.matchBefore(/\w*/);
|
|
59
|
+
if ((word == null ? void 0 : word.from) == (word == null ? void 0 : word.to) && !context.explicit) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
from: word == null ? void 0 : word.from,
|
|
64
|
+
options: polarsCompletionVals
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
const tabKeymap = keymap.of([
|
|
68
|
+
{
|
|
69
|
+
key: "Tab",
|
|
70
|
+
run: (view2) => {
|
|
71
|
+
if (acceptCompletion(view2)) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
return indentMore(view2);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
]);
|
|
78
|
+
const insertTextAtCursor = (text) => {
|
|
79
|
+
if (view.value) {
|
|
80
|
+
view.value.dispatch({
|
|
81
|
+
changes: {
|
|
82
|
+
from: view.value.state.selection.main.head,
|
|
83
|
+
to: view.value.state.selection.main.head,
|
|
84
|
+
insert: text
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const code = ref(props.editorString);
|
|
90
|
+
const view = shallowRef(null);
|
|
91
|
+
const extensions = [
|
|
92
|
+
python(),
|
|
93
|
+
oneDark,
|
|
94
|
+
EditorState.tabSize.of(4),
|
|
95
|
+
autocompletion({
|
|
96
|
+
override: [polarsCompletions],
|
|
97
|
+
defaultKeymap: false,
|
|
98
|
+
// Disable default keymap
|
|
99
|
+
closeOnBlur: false
|
|
100
|
+
}),
|
|
101
|
+
tabKeymap
|
|
102
|
+
];
|
|
103
|
+
const handleReady = (payload) => {
|
|
104
|
+
view.value = payload.view;
|
|
105
|
+
};
|
|
106
|
+
const log = (type, event) => {
|
|
107
|
+
console.log(type, event);
|
|
108
|
+
};
|
|
109
|
+
const handleBlur = async (_) => {
|
|
110
|
+
try {
|
|
111
|
+
validationError.value = null;
|
|
112
|
+
emit("validation-error", null);
|
|
113
|
+
} catch (error) {
|
|
114
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
115
|
+
validationError.value = errorMessage;
|
|
116
|
+
emit("validation-error", errorMessage);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
watch(code, (newCode) => {
|
|
120
|
+
emit("update-editor-string", newCode);
|
|
121
|
+
});
|
|
122
|
+
__expose({ insertTextAtCursor });
|
|
123
|
+
return (_ctx, _cache) => {
|
|
124
|
+
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
|
125
|
+
createVNode(unref(T), {
|
|
126
|
+
modelValue: code.value,
|
|
127
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => code.value = $event),
|
|
128
|
+
placeholder: "Enter Polars code here...",
|
|
129
|
+
style: { height: "500px" },
|
|
130
|
+
autofocus: true,
|
|
131
|
+
"indent-with-tab": false,
|
|
132
|
+
"tab-size": 4,
|
|
133
|
+
extensions,
|
|
134
|
+
onReady: handleReady,
|
|
135
|
+
onFocus: _cache[1] || (_cache[1] = ($event) => log("focus", $event)),
|
|
136
|
+
onBlur: handleBlur
|
|
137
|
+
}, null, 8, ["modelValue"]),
|
|
138
|
+
validationError.value ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(validationError.value), 1)) : createCommentVNode("", true)
|
|
139
|
+
]);
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
const pythonEditor_vue_vue_type_style_index_0_lang = "";
|
|
144
|
+
const createPolarsCodeNode = (flowId, nodeId) => {
|
|
145
|
+
const polarsCodeInput = {
|
|
146
|
+
polars_code: `# Example of usage (you can remove this)
|
|
147
|
+
# Single line transformations:
|
|
148
|
+
# input_df.filter(pl.col('column_name') > 0)
|
|
149
|
+
|
|
150
|
+
# Multi-line transformations (must assign to output_df):
|
|
151
|
+
# result = input_df.select(['a', 'b'])
|
|
152
|
+
# filtered = result.filter(pl.col('a') > 0)
|
|
153
|
+
# output_df = filtered.with_columns(pl.col('b').alias('new_b'))
|
|
154
|
+
|
|
155
|
+
# Multiple input dataframes are available as input_df_0, input_df_1, etc:
|
|
156
|
+
# output_df = input_df_0.join(input_df_1, on='id')
|
|
157
|
+
|
|
158
|
+
# No inputs example (node will act as a starter node):
|
|
159
|
+
# output_df = pl.DataFrame({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})
|
|
160
|
+
|
|
161
|
+
# Your code here:
|
|
162
|
+
input_df`
|
|
163
|
+
};
|
|
164
|
+
const nodePolarsCode = {
|
|
165
|
+
flow_id: flowId,
|
|
166
|
+
node_id: nodeId,
|
|
167
|
+
pos_x: 0,
|
|
168
|
+
pos_y: 0,
|
|
169
|
+
polars_code_input: polarsCodeInput,
|
|
170
|
+
cache_results: false
|
|
171
|
+
};
|
|
172
|
+
return nodePolarsCode;
|
|
173
|
+
};
|
|
174
|
+
const _hoisted_1$1 = {
|
|
175
|
+
key: 0,
|
|
176
|
+
class: "listbox-wrapper"
|
|
177
|
+
};
|
|
178
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
179
|
+
__name: "polarsCode",
|
|
180
|
+
setup(__props, { expose: __expose }) {
|
|
181
|
+
const showEditor = ref(false);
|
|
182
|
+
const nodeStore = useNodeStore();
|
|
183
|
+
const dataLoaded = ref(false);
|
|
184
|
+
const editorChild = ref(null);
|
|
185
|
+
const nodePolarsCode = ref(null);
|
|
186
|
+
const nodeData = ref(null);
|
|
187
|
+
const handleEditorUpdate = (newCode) => {
|
|
188
|
+
if (nodePolarsCode.value && nodePolarsCode.value.polars_code_input) {
|
|
189
|
+
nodePolarsCode.value.polars_code_input.polars_code = newCode;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const loadNodeData = async (nodeId) => {
|
|
193
|
+
var _a, _b, _c, _d;
|
|
194
|
+
try {
|
|
195
|
+
nodeData.value = await nodeStore.getNodeData(nodeId, false);
|
|
196
|
+
if (nodeData.value) {
|
|
197
|
+
const hasValidSetup = Boolean(
|
|
198
|
+
((_b = (_a = nodeData.value) == null ? void 0 : _a.setting_input) == null ? void 0 : _b.is_setup) && ((_d = (_c = nodeData.value) == null ? void 0 : _c.setting_input) == null ? void 0 : _d.polars_code_input)
|
|
199
|
+
);
|
|
200
|
+
nodePolarsCode.value = hasValidSetup ? nodeData.value.setting_input : createPolarsCodeNode(nodeStore.flow_id, nodeStore.node_id);
|
|
201
|
+
showEditor.value = true;
|
|
202
|
+
dataLoaded.value = true;
|
|
203
|
+
}
|
|
204
|
+
} catch (error) {
|
|
205
|
+
console.error("Failed to load node data:", error);
|
|
206
|
+
showEditor.value = false;
|
|
207
|
+
dataLoaded.value = false;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
const pushNodeData = async () => {
|
|
211
|
+
if (!nodePolarsCode.value || !nodePolarsCode.value.polars_code_input.polars_code) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
nodePolarsCode.value.is_setup = true;
|
|
215
|
+
nodeStore.updateSettings(nodePolarsCode);
|
|
216
|
+
showEditor.value = false;
|
|
217
|
+
dataLoaded.value = false;
|
|
218
|
+
};
|
|
219
|
+
__expose({ loadNodeData, pushNodeData });
|
|
220
|
+
return (_ctx, _cache) => {
|
|
221
|
+
return dataLoaded.value && nodePolarsCode.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
222
|
+
createVNode(GenericNodeSettings, { "model-value": nodePolarsCode.value }, {
|
|
223
|
+
default: withCtx(() => [
|
|
224
|
+
showEditor.value && nodePolarsCode.value ? (openBlock(), createBlock(_sfc_main$2, {
|
|
225
|
+
key: 0,
|
|
226
|
+
ref_key: "editorChild",
|
|
227
|
+
ref: editorChild,
|
|
228
|
+
"editor-string": nodePolarsCode.value.polars_code_input.polars_code,
|
|
229
|
+
onUpdateEditorString: handleEditorUpdate
|
|
230
|
+
}, null, 8, ["editor-string"])) : createCommentVNode("", true)
|
|
231
|
+
]),
|
|
232
|
+
_: 1
|
|
233
|
+
}, 8, ["model-value"])
|
|
234
|
+
])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
const _hoisted_1 = { ref: "el" };
|
|
239
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
240
|
+
__name: "PolarsCode",
|
|
241
|
+
props: {
|
|
242
|
+
nodeId: {
|
|
243
|
+
type: Number,
|
|
244
|
+
required: true
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
setup(__props) {
|
|
248
|
+
const nodeStore = useNodeStore();
|
|
249
|
+
const childComp = ref(null);
|
|
250
|
+
const props = __props;
|
|
251
|
+
const drawer = ref(false);
|
|
252
|
+
const closeOnDrawer = () => {
|
|
253
|
+
var _a;
|
|
254
|
+
drawer.value = false;
|
|
255
|
+
(_a = childComp.value) == null ? void 0 : _a.pushNodeData();
|
|
256
|
+
};
|
|
257
|
+
const openDrawer = async () => {
|
|
258
|
+
if (nodeStore.node_id === props.nodeId) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
nodeStore.closeDrawer();
|
|
262
|
+
drawer.value = true;
|
|
263
|
+
const drawerOpen = nodeStore.isDrawerOpen;
|
|
264
|
+
nodeStore.isDrawerOpen = true;
|
|
265
|
+
await nextTick();
|
|
266
|
+
if (nodeStore.node_id === props.nodeId && drawerOpen) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
if (childComp.value) {
|
|
270
|
+
childComp.value.loadNodeData(props.nodeId);
|
|
271
|
+
nodeStore.openDrawer(closeOnDrawer);
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
onMounted(async () => {
|
|
275
|
+
await nextTick();
|
|
276
|
+
});
|
|
277
|
+
return (_ctx, _cache) => {
|
|
278
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
279
|
+
createVNode(NodeButton, {
|
|
280
|
+
ref: "nodeButton",
|
|
281
|
+
"node-id": __props.nodeId,
|
|
282
|
+
"image-src": "polars_code.png",
|
|
283
|
+
title: `${__props.nodeId}: Polars code`,
|
|
284
|
+
onClick: openDrawer
|
|
285
|
+
}, null, 8, ["node-id", "title"]),
|
|
286
|
+
drawer.value ? (openBlock(), createBlock(Teleport, {
|
|
287
|
+
key: 0,
|
|
288
|
+
to: "#nodesettings"
|
|
289
|
+
}, [
|
|
290
|
+
createVNode(NodeTitle, {
|
|
291
|
+
title: "Polars code",
|
|
292
|
+
intro: "Use custom Polars code to transform data."
|
|
293
|
+
}),
|
|
294
|
+
createVNode(_sfc_main$1, {
|
|
295
|
+
ref_key: "childComp",
|
|
296
|
+
ref: childComp,
|
|
297
|
+
"node-id": __props.nodeId
|
|
298
|
+
}, null, 8, ["node-id"])
|
|
299
|
+
])) : createCommentVNode("", true)
|
|
300
|
+
], 512);
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
export {
|
|
305
|
+
_sfc_main as default
|
|
306
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { C as CodeLoader } from "./vue-content-loader.es-
|
|
2
|
-
import { a as axios, d as defineComponent, r as ref, l as computed, n as onMounted, m as watch, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, f as createVNode, w as withCtx, i as createCommentVNode, t as toDisplayString, a5 as withDirectives, a6 as vModelText, h as createBlock, u as unref, _ as _export_sfc, ar as ElCheckbox, F as Fragment, q as renderList, an as ElOption, ao as ElSelect, as as ElSlider, R as nextTick, a7 as Teleport } from "./index-
|
|
3
|
-
import { C as ColumnSelector } from "./dropDown-
|
|
4
|
-
import { u as useNodeStore } from "./
|
|
5
|
-
import { F as FileBrowser } from "./designer-
|
|
6
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
1
|
+
import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
|
|
2
|
+
import { a as axios, d as defineComponent, r as ref, l as computed, n as onMounted, m as watch, b as resolveComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, f as createVNode, w as withCtx, i as createCommentVNode, t as toDisplayString, a5 as withDirectives, a6 as vModelText, h as createBlock, u as unref, _ as _export_sfc, ar as ElCheckbox, F as Fragment, q as renderList, an as ElOption, ao as ElSelect, as as ElSlider, R as nextTick, a7 as Teleport } from "./index-e235a8bc.js";
|
|
3
|
+
import { C as ColumnSelector } from "./dropDown-52790b15.js";
|
|
4
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
5
|
+
import { F as FileBrowser } from "./designer-267d44f1.js";
|
|
6
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
7
7
|
const getXlsxSheetNamesForPath = async (path) => {
|
|
8
8
|
const response = await axios.get(`/api/get_xlsx_sheet_names?path=${path}`);
|
|
9
9
|
return response.data;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { u as useNodeStore } from "./
|
|
2
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
3
|
-
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, i as createCommentVNode, h as createBlock, a7 as Teleport } from "./index-
|
|
4
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
5
|
-
import "./designer-
|
|
1
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
2
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
3
|
+
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, i as createCommentVNode, h as createBlock, a7 as Teleport } from "./index-e235a8bc.js";
|
|
4
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
5
|
+
import "./designer-267d44f1.js";
|
|
6
6
|
const _hoisted_1$1 = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "listbox-wrapper"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, a5 as withDirectives, a6 as vModelText, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, t as toDisplayString, h as createBlock, i as createCommentVNode, a7 as Teleport } from "./index-
|
|
2
|
-
import { u as useNodeStore } from "./
|
|
3
|
-
import { C as ContextMenu, S as SettingsSection } from "./SettingsSection-
|
|
4
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
5
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
6
|
-
import "./designer-
|
|
1
|
+
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, a5 as withDirectives, a6 as vModelText, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, t as toDisplayString, h as createBlock, i as createCommentVNode, a7 as Teleport } from "./index-e235a8bc.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
3
|
+
import { C as ContextMenu, S as SettingsSection } from "./SettingsSection-a0f15a05.js";
|
|
4
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
5
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
6
|
+
import "./designer-267d44f1.js";
|
|
7
7
|
const _hoisted_1 = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "listbox-wrapper"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, a5 as withDirectives, a6 as vModelText, i as createCommentVNode, h as createBlock, a7 as Teleport } from "./index-
|
|
2
|
-
import { u as useNodeStore } from "./
|
|
3
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
4
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
5
|
-
import "./designer-
|
|
1
|
+
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, a5 as withDirectives, a6 as vModelText, i as createCommentVNode, h as createBlock, a7 as Teleport } from "./index-e235a8bc.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
3
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
4
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
5
|
+
import "./designer-267d44f1.js";
|
|
6
6
|
const _hoisted_1$1 = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "listbox-wrapper"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as ref, l as computed, d as defineComponent, n as onMounted, e as createElementBlock, p as createBaseVNode, v as withModifiers, a5 as withDirectives, a6 as vModelText,
|
|
2
|
-
import { f as fetchSecretsApi, a as addSecretApi, g as getSecretValueApi, d as deleteSecretApi } from "./secretApi-
|
|
1
|
+
import { r as ref, l as computed, d as defineComponent, n as onMounted, e as createElementBlock, p as createBaseVNode, v as withModifiers, a5 as withDirectives, a6 as vModelText, ah as vModelDynamic, s as normalizeClass, g as createTextVNode, t as toDisplayString, u as unref, O as isRef, i as createCommentVNode, F as Fragment, q as renderList, c as openBlock } from "./index-e235a8bc.js";
|
|
2
|
+
import { f as fetchSecretsApi, a as addSecretApi, g as getSecretValueApi, d as deleteSecretApi } from "./secretApi-cdc2a3fd.js";
|
|
3
3
|
function useSecretManager() {
|
|
4
4
|
const secrets = ref([]);
|
|
5
5
|
const isLoading = ref(true);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { r as ref, d as defineComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, h as createBlock, u as unref, n as onMounted, R as nextTick, a7 as Teleport, i as createCommentVNode } from "./index-
|
|
2
|
-
import { C as CodeLoader } from "./vue-content-loader.es-
|
|
3
|
-
import { u as useNodeStore } from "./
|
|
4
|
-
import { s as selectDynamic } from "./selectDynamic-
|
|
5
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
6
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
7
|
-
import "./UnavailableFields-
|
|
8
|
-
import "./designer-
|
|
1
|
+
import { r as ref, d as defineComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, h as createBlock, u as unref, n as onMounted, R as nextTick, a7 as Teleport, i as createCommentVNode } from "./index-e235a8bc.js";
|
|
2
|
+
import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
|
|
3
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
4
|
+
import { s as selectDynamic } from "./selectDynamic-96aa82cd.js";
|
|
5
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
6
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
7
|
+
import "./UnavailableFields-c42880a3.js";
|
|
8
|
+
import "./designer-267d44f1.js";
|
|
9
9
|
const createSelectInput = (column_name, data_type = void 0, position = void 0, original_position = void 0) => {
|
|
10
10
|
const selectInput = {
|
|
11
11
|
old_name: column_name,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as defineComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, T as normalizeStyle, _ as _export_sfc, g as createTextVNode, i as createCommentVNode } from "./index-
|
|
1
|
+
import { d as defineComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, T as normalizeStyle, _ as _export_sfc, g as createTextVNode, i as createCommentVNode } from "./index-e235a8bc.js";
|
|
2
2
|
const _hoisted_1$1 = ["onClick"];
|
|
3
3
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
4
4
|
__name: "ContextMenu",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, i as createCommentVNode, T as normalizeStyle, v as withModifiers, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-
|
|
2
|
-
import { u as useNodeStore } from "./
|
|
3
|
-
import { C as CodeLoader } from "./vue-content-loader.es-
|
|
4
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
5
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
6
|
-
import "./designer-
|
|
1
|
+
import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, i as createCommentVNode, T as normalizeStyle, v as withModifiers, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-e235a8bc.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
3
|
+
import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
|
|
4
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
5
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
6
|
+
import "./designer-267d44f1.js";
|
|
7
7
|
const _hoisted_1$1 = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "listbox-wrapper"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, a5 as withDirectives, a6 as vModelText, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-
|
|
2
|
-
import { u as useNodeStore } from "./
|
|
3
|
-
import { C as ColumnSelector } from "./dropDown-
|
|
4
|
-
import { u as unavailableField } from "./UnavailableFields-
|
|
5
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
6
|
-
import { C as CodeLoader } from "./vue-content-loader.es-
|
|
7
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
8
|
-
import "./designer-
|
|
1
|
+
import { d as defineComponent, r as ref, l as computed, n as onMounted, R as nextTick, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, p as createBaseVNode, g as createTextVNode, i as createCommentVNode, a5 as withDirectives, a6 as vModelText, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport } from "./index-e235a8bc.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
3
|
+
import { C as ColumnSelector } from "./dropDown-52790b15.js";
|
|
4
|
+
import { u as unavailableField } from "./UnavailableFields-c42880a3.js";
|
|
5
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
6
|
+
import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
|
|
7
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
8
|
+
import "./designer-267d44f1.js";
|
|
9
9
|
const _hoisted_1$1 = {
|
|
10
10
|
key: 0,
|
|
11
11
|
class: "listbox-wrapper"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PopOver } from "./
|
|
2
|
-
import { d as defineComponent, c as openBlock, h as createBlock, w as withCtx, p as createBaseVNode, t as toDisplayString, _ as _export_sfc } from "./index-
|
|
1
|
+
import { P as PopOver } from "./vue-codemirror.esm-25e75a08.js";
|
|
2
|
+
import { d as defineComponent, c as openBlock, h as createBlock, w as withCtx, p as createBaseVNode, t as toDisplayString, _ as _export_sfc } from "./index-e235a8bc.js";
|
|
3
3
|
const _hoisted_1 = { class: "icon-wrapper" };
|
|
4
4
|
const _hoisted_2 = { class: "unavailable-icon" };
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { u as useNodeStore } from "./
|
|
2
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
3
|
-
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, g as createTextVNode, i as createCommentVNode, _ as _export_sfc, h as createBlock, a7 as Teleport } from "./index-
|
|
4
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
5
|
-
import "./designer-
|
|
1
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
2
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
3
|
+
import { d as defineComponent, r as ref, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, g as createTextVNode, i as createCommentVNode, _ as _export_sfc, h as createBlock, a7 as Teleport } from "./index-e235a8bc.js";
|
|
4
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
5
|
+
import "./designer-267d44f1.js";
|
|
6
6
|
const _hoisted_1$1 = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "listbox-wrapper"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { r as ref, d as defineComponent, l as computed, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport, i as createCommentVNode } from "./index-
|
|
2
|
-
import { C as CodeLoader } from "./vue-content-loader.es-
|
|
3
|
-
import { u as useNodeStore } from "./
|
|
4
|
-
import { s as selectDynamic } from "./selectDynamic-
|
|
5
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
6
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
7
|
-
import "./UnavailableFields-
|
|
8
|
-
import "./designer-
|
|
1
|
+
import { r as ref, d as defineComponent, l as computed, n as onMounted, R as nextTick, o as onUnmounted, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, h as createBlock, u as unref, _ as _export_sfc, a7 as Teleport, i as createCommentVNode } from "./index-e235a8bc.js";
|
|
2
|
+
import { C as CodeLoader } from "./vue-content-loader.es-6c4b1c24.js";
|
|
3
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
4
|
+
import { s as selectDynamic } from "./selectDynamic-96aa82cd.js";
|
|
5
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
6
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
7
|
+
import "./UnavailableFields-c42880a3.js";
|
|
8
|
+
import "./designer-267d44f1.js";
|
|
9
9
|
const createSelectInputFromName = (columnName, keep = true) => {
|
|
10
10
|
return {
|
|
11
11
|
old_name: columnName,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as defineComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, T as normalizeStyle, _ as _export_sfc, g as createTextVNode, i as createCommentVNode, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, f as createVNode, w as withCtx, v as withModifiers, h as createBlock, a7 as Teleport } from "./index-
|
|
2
|
-
import { u as useNodeStore } from "./
|
|
3
|
-
import { G as GenericNodeSettings } from "./genericNodeSettings-
|
|
4
|
-
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-
|
|
5
|
-
import "./designer-
|
|
1
|
+
import { d as defineComponent, c as openBlock, e as createElementBlock, p as createBaseVNode, F as Fragment, q as renderList, s as normalizeClass, t as toDisplayString, T as normalizeStyle, _ as _export_sfc, g as createTextVNode, i as createCommentVNode, r as ref, n as onMounted, R as nextTick, o as onUnmounted, b as resolveComponent, f as createVNode, w as withCtx, v as withModifiers, h as createBlock, a7 as Teleport } from "./index-e235a8bc.js";
|
|
2
|
+
import { u as useNodeStore } from "./vue-codemirror.esm-25e75a08.js";
|
|
3
|
+
import { G as GenericNodeSettings } from "./genericNodeSettings-4bdcf98e.js";
|
|
4
|
+
import { N as NodeButton, a as NodeTitle } from "./nodeTitle-fc3fc4b7.js";
|
|
5
|
+
import "./designer-267d44f1.js";
|
|
6
6
|
const _hoisted_1$3 = ["onClick"];
|
|
7
7
|
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
8
8
|
__name: "ContextMenu",
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
margin-top: 12px;
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
-
.action-buttons[data-v-
|
|
271
|
+
.action-buttons[data-v-7b6ecb3e] {
|
|
272
272
|
padding-left: 20px;
|
|
273
273
|
display: flex;
|
|
274
274
|
align-items: center;
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
BlinkMacSystemFont,
|
|
282
282
|
sans-serif;
|
|
283
283
|
}
|
|
284
|
-
.action-btn[data-v-
|
|
284
|
+
.action-btn[data-v-7b6ecb3e] {
|
|
285
285
|
display: flex;
|
|
286
286
|
align-items: center;
|
|
287
287
|
gap: 6px;
|
|
@@ -298,22 +298,22 @@
|
|
|
298
298
|
letter-spacing: 0.01em;
|
|
299
299
|
box-shadow: 0 1px 2px rgba(1, 5, 13, 0.08); /* Slightly darker shadow */
|
|
300
300
|
}
|
|
301
|
-
.action-btn[data-v-
|
|
301
|
+
.action-btn[data-v-7b6ecb3e]:hover {
|
|
302
302
|
background-color: rgba(16, 24, 40, 0.08); /* Darker hover background */
|
|
303
303
|
border-color: rgba(16, 24, 40, 0.18); /* Darker hover border */
|
|
304
304
|
}
|
|
305
|
-
.action-btn[data-v-
|
|
305
|
+
.action-btn[data-v-7b6ecb3e]:active {
|
|
306
306
|
transform: translateY(1px);
|
|
307
307
|
box-shadow: none;
|
|
308
308
|
}
|
|
309
|
-
.btn-icon[data-v-
|
|
309
|
+
.btn-icon[data-v-7b6ecb3e] {
|
|
310
310
|
font-size: 16px;
|
|
311
311
|
color: rgb(2, 27, 45); /* Darker icon color */
|
|
312
312
|
}
|
|
313
|
-
.btn-text[data-v-
|
|
313
|
+
.btn-text[data-v-7b6ecb3e] {
|
|
314
314
|
white-space: nowrap;
|
|
315
315
|
}
|
|
316
|
-
.settings-modal-content[data-v-
|
|
316
|
+
.settings-modal-content[data-v-7b6ecb3e] {
|
|
317
317
|
padding: 16px;
|
|
318
318
|
font-family:
|
|
319
319
|
"Inter",
|
|
@@ -322,10 +322,10 @@
|
|
|
322
322
|
BlinkMacSystemFont,
|
|
323
323
|
sans-serif;
|
|
324
324
|
}
|
|
325
|
-
.form-group[data-v-
|
|
325
|
+
.form-group[data-v-7b6ecb3e] {
|
|
326
326
|
margin-bottom: 16px;
|
|
327
327
|
}
|
|
328
|
-
.form-group label[data-v-
|
|
328
|
+
.form-group label[data-v-7b6ecb3e] {
|
|
329
329
|
display: block;
|
|
330
330
|
margin-bottom: 8px;
|
|
331
331
|
font-size: 14px;
|
|
@@ -568,6 +568,61 @@
|
|
|
568
568
|
font-family: "Roboto", "Source Sans Pro", Avenir, Helvetica, Arial, sans-serif;
|
|
569
569
|
}
|
|
570
570
|
|
|
571
|
+
.code-container[data-v-8bafe064] {
|
|
572
|
+
max-width: 1200px;
|
|
573
|
+
margin: 0 auto;
|
|
574
|
+
padding: 20px;
|
|
575
|
+
}
|
|
576
|
+
.code-header[data-v-8bafe064] {
|
|
577
|
+
display: flex;
|
|
578
|
+
justify-content: space-between;
|
|
579
|
+
align-items: center;
|
|
580
|
+
margin-bottom: 20px;
|
|
581
|
+
}
|
|
582
|
+
.code-header h4[data-v-8bafe064] {
|
|
583
|
+
margin: 0;
|
|
584
|
+
}
|
|
585
|
+
.header-actions[data-v-8bafe064] {
|
|
586
|
+
display: flex;
|
|
587
|
+
gap: 12px;
|
|
588
|
+
}
|
|
589
|
+
.export-button[data-v-8bafe064],
|
|
590
|
+
.refresh-button[data-v-8bafe064] {
|
|
591
|
+
display: flex;
|
|
592
|
+
align-items: center;
|
|
593
|
+
gap: 8px;
|
|
594
|
+
padding: 8px 16px;
|
|
595
|
+
background: #007acc;
|
|
596
|
+
color: white;
|
|
597
|
+
border: none;
|
|
598
|
+
border-radius: 6px;
|
|
599
|
+
cursor: pointer;
|
|
600
|
+
font-size: 14px;
|
|
601
|
+
transition: background 0.2s;
|
|
602
|
+
}
|
|
603
|
+
.export-button[data-v-8bafe064]:hover,
|
|
604
|
+
.refresh-button[data-v-8bafe064]:hover:not(:disabled) {
|
|
605
|
+
background: #005a9e;
|
|
606
|
+
}
|
|
607
|
+
.refresh-button[data-v-8bafe064]:disabled {
|
|
608
|
+
background: #6c757d;
|
|
609
|
+
cursor: not-allowed;
|
|
610
|
+
}
|
|
611
|
+
.spinner[data-v-8bafe064] {
|
|
612
|
+
display: inline-block;
|
|
613
|
+
width: 14px;
|
|
614
|
+
height: 14px;
|
|
615
|
+
border: 2px solid #ffffff;
|
|
616
|
+
border-radius: 50%;
|
|
617
|
+
border-top-color: transparent;
|
|
618
|
+
animation: spin-8bafe064 0.8s linear infinite;
|
|
619
|
+
}
|
|
620
|
+
@keyframes spin-8bafe064 {
|
|
621
|
+
to {
|
|
622
|
+
transform: rotate(360deg);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
|
|
571
626
|
.nodes-wrapper[data-v-a8d4b46b] {
|
|
572
627
|
display: flex;
|
|
573
628
|
flex-direction: column;
|