Flowfile 0.3.0__py3-none-any.whl → 0.3.0.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.

Files changed (147) hide show
  1. flowfile/__init__.py +13 -6
  2. flowfile/__main__.py +51 -15
  3. flowfile/api.py +379 -0
  4. flowfile/web/__init__.py +155 -0
  5. flowfile/web/static/assets/AirbyteReader-1ac35765.css +314 -0
  6. flowfile/web/static/assets/AirbyteReader-cb0c1d4a.js +921 -0
  7. flowfile/web/static/assets/CrossJoin-41efa4cb.css +100 -0
  8. flowfile/web/static/assets/CrossJoin-a514fa59.js +153 -0
  9. flowfile/web/static/assets/DatabaseConnectionSettings-0c04b2e5.css +77 -0
  10. flowfile/web/static/assets/DatabaseConnectionSettings-f2cecf33.js +151 -0
  11. flowfile/web/static/assets/DatabaseManager-30fa27e5.css +64 -0
  12. flowfile/web/static/assets/DatabaseManager-83ee3c98.js +484 -0
  13. flowfile/web/static/assets/DatabaseReader-dc0c6881.js +426 -0
  14. flowfile/web/static/assets/DatabaseReader-f50c6558.css +158 -0
  15. flowfile/web/static/assets/DatabaseWriter-2f570e53.css +96 -0
  16. flowfile/web/static/assets/DatabaseWriter-5afe9f8d.js +312 -0
  17. flowfile/web/static/assets/ExploreData-5bdae813.css +45 -0
  18. flowfile/web/static/assets/ExploreData-c7ee19cf.js +118306 -0
  19. flowfile/web/static/assets/ExternalSource-17b23a01.js +225 -0
  20. flowfile/web/static/assets/ExternalSource-e37b6275.css +94 -0
  21. flowfile/web/static/assets/Filter-90856b4f.js +238 -0
  22. flowfile/web/static/assets/Filter-a9d08ba1.css +20 -0
  23. flowfile/web/static/assets/Formula-38b71e9e.js +197 -0
  24. flowfile/web/static/assets/Formula-d60a74f4.css +17 -0
  25. flowfile/web/static/assets/FuzzyMatch-6857de82.css +254 -0
  26. flowfile/web/static/assets/FuzzyMatch-d0f1fe81.js +422 -0
  27. flowfile/web/static/assets/GoogleSheet-854294a4.js +2616 -0
  28. flowfile/web/static/assets/GoogleSheet-92084da7.css +233 -0
  29. flowfile/web/static/assets/GraphSolver-0c86bbc6.js +382 -0
  30. flowfile/web/static/assets/GraphSolver-17fd26db.css +68 -0
  31. flowfile/web/static/assets/GroupBy-ab1ea74b.css +51 -0
  32. flowfile/web/static/assets/GroupBy-f2772e9f.js +413 -0
  33. flowfile/web/static/assets/Join-41c0f331.css +109 -0
  34. flowfile/web/static/assets/Join-bc3e1cf7.js +247 -0
  35. flowfile/web/static/assets/ManualInput-03aa0245.js +391 -0
  36. flowfile/web/static/assets/ManualInput-ac7b9972.css +84 -0
  37. flowfile/web/static/assets/Output-48f81019.css +2642 -0
  38. flowfile/web/static/assets/Output-5b35eee8.js +536 -0
  39. flowfile/web/static/assets/Pivot-7164087c.js +408 -0
  40. flowfile/web/static/assets/Pivot-f415e85f.css +35 -0
  41. flowfile/web/static/assets/PolarsCode-3abf6507.js +2863 -0
  42. flowfile/web/static/assets/PolarsCode-650322d1.css +35 -0
  43. flowfile/web/static/assets/PopOver-b37ff9be.js +577 -0
  44. flowfile/web/static/assets/PopOver-bccfde04.css +32 -0
  45. flowfile/web/static/assets/Read-65966a3e.js +701 -0
  46. flowfile/web/static/assets/Read-80dc1675.css +197 -0
  47. flowfile/web/static/assets/RecordCount-c66c6d6d.js +121 -0
  48. flowfile/web/static/assets/RecordId-826dc095.js +339 -0
  49. flowfile/web/static/assets/Sample-4ed555c8.js +184 -0
  50. flowfile/web/static/assets/SecretManager-eac1e97d.js +382 -0
  51. flowfile/web/static/assets/Select-085f05cc.js +231 -0
  52. flowfile/web/static/assets/SettingsSection-1f5e79c1.js +87 -0
  53. flowfile/web/static/assets/SettingsSection-9c836ecc.css +47 -0
  54. flowfile/web/static/assets/Sort-3e6cb414.js +309 -0
  55. flowfile/web/static/assets/Sort-7ccfa0fe.css +51 -0
  56. flowfile/web/static/assets/TextToRows-606349bc.js +307 -0
  57. flowfile/web/static/assets/TextToRows-c92d1ec2.css +48 -0
  58. flowfile/web/static/assets/UnavailableFields-5edd5322.css +49 -0
  59. flowfile/web/static/assets/UnavailableFields-b41976ed.js +36 -0
  60. flowfile/web/static/assets/Union-8d9ac7f9.css +30 -0
  61. flowfile/web/static/assets/Union-fca91665.js +145 -0
  62. flowfile/web/static/assets/Unique-a59f830e.js +273 -0
  63. flowfile/web/static/assets/Unique-b5615727.css +51 -0
  64. flowfile/web/static/assets/Unpivot-246e9bbd.css +77 -0
  65. flowfile/web/static/assets/Unpivot-c3815565.js +441 -0
  66. flowfile/web/static/assets/airbyte-292aa232.png +0 -0
  67. flowfile/web/static/assets/api-22b338bd.js +60 -0
  68. flowfile/web/static/assets/cross_join-d30c0290.png +0 -0
  69. flowfile/web/static/assets/database_reader-ce1e55f3.svg +24 -0
  70. flowfile/web/static/assets/database_writer-b4ad0753.svg +23 -0
  71. flowfile/web/static/assets/designer-2394122a.css +10697 -0
  72. flowfile/web/static/assets/designer-e5bbe26f.js +69712 -0
  73. flowfile/web/static/assets/documentation-08045cf2.js +33 -0
  74. flowfile/web/static/assets/documentation-12216a74.css +50 -0
  75. flowfile/web/static/assets/dropDown-35135ba8.css +143 -0
  76. flowfile/web/static/assets/dropDown-5e7e9a5a.js +319 -0
  77. flowfile/web/static/assets/dropDownGeneric-50a91b99.js +72 -0
  78. flowfile/web/static/assets/dropDownGeneric-895680d6.css +10 -0
  79. flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  80. flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  81. flowfile/web/static/assets/explore_data-8a0a2861.png +0 -0
  82. flowfile/web/static/assets/fa-brands-400-808443ae.ttf +0 -0
  83. flowfile/web/static/assets/fa-brands-400-d7236a19.woff2 +0 -0
  84. flowfile/web/static/assets/fa-regular-400-54cf6086.ttf +0 -0
  85. flowfile/web/static/assets/fa-regular-400-e3456d12.woff2 +0 -0
  86. flowfile/web/static/assets/fa-solid-900-aa759986.woff2 +0 -0
  87. flowfile/web/static/assets/fa-solid-900-d2f05935.ttf +0 -0
  88. flowfile/web/static/assets/fa-v4compatibility-0ce9033c.woff2 +0 -0
  89. flowfile/web/static/assets/fa-v4compatibility-30f6abf6.ttf +0 -0
  90. flowfile/web/static/assets/filter-d7708bda.png +0 -0
  91. flowfile/web/static/assets/formula-eeeb1611.png +0 -0
  92. flowfile/web/static/assets/fullEditor-178376bb.css +256 -0
  93. flowfile/web/static/assets/fullEditor-705c6ccb.js +630 -0
  94. flowfile/web/static/assets/fuzzy_match-40c161b2.png +0 -0
  95. flowfile/web/static/assets/genericNodeSettings-65587f20.js +137 -0
  96. flowfile/web/static/assets/genericNodeSettings-924759c7.css +46 -0
  97. flowfile/web/static/assets/graph_solver-8b7888b8.png +0 -0
  98. flowfile/web/static/assets/group_by-80561fc3.png +0 -0
  99. flowfile/web/static/assets/index-552863fd.js +58652 -0
  100. flowfile/web/static/assets/index-681a3ed0.css +8843 -0
  101. flowfile/web/static/assets/input_data-ab2eb678.png +0 -0
  102. flowfile/web/static/assets/join-349043ae.png +0 -0
  103. flowfile/web/static/assets/manual_input-ae98f31d.png +0 -0
  104. flowfile/web/static/assets/nodeTitle-cf9bae3c.js +227 -0
  105. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +134 -0
  106. flowfile/web/static/assets/old_join-5d0eb604.png +0 -0
  107. flowfile/web/static/assets/output-06ec0371.png +0 -0
  108. flowfile/web/static/assets/pivot-9660df51.png +0 -0
  109. flowfile/web/static/assets/polars_code-05ce5dc6.png +0 -0
  110. flowfile/web/static/assets/record_count-dab44eb5.png +0 -0
  111. flowfile/web/static/assets/record_id-0b15856b.png +0 -0
  112. flowfile/web/static/assets/sample-693a88b5.png +0 -0
  113. flowfile/web/static/assets/secretApi-3ad510e1.js +46 -0
  114. flowfile/web/static/assets/select-b0d0437a.png +0 -0
  115. flowfile/web/static/assets/selectDynamic-b062bc9b.css +107 -0
  116. flowfile/web/static/assets/selectDynamic-bd644891.js +302 -0
  117. flowfile/web/static/assets/sort-2aa579f0.png +0 -0
  118. flowfile/web/static/assets/summarize-2a099231.png +0 -0
  119. flowfile/web/static/assets/text_to_rows-859b29ea.png +0 -0
  120. flowfile/web/static/assets/union-2d8609f4.png +0 -0
  121. flowfile/web/static/assets/unique-1958b98a.png +0 -0
  122. flowfile/web/static/assets/unpivot-d3cb4b5b.png +0 -0
  123. flowfile/web/static/assets/view-7a0f0be1.png +0 -0
  124. flowfile/web/static/assets/vue-codemirror.esm-dd17b478.js +22281 -0
  125. flowfile/web/static/assets/vue-content-loader.es-6b36f05e.js +210 -0
  126. flowfile/web/static/flowfile.svg +47 -0
  127. flowfile/web/static/icons/flowfile.png +0 -0
  128. flowfile/web/static/images/airbyte.png +0 -0
  129. flowfile/web/static/images/flowfile.svg +47 -0
  130. flowfile/web/static/images/google.svg +1 -0
  131. flowfile/web/static/images/sheets.png +0 -0
  132. flowfile/web/static/index.html +22 -0
  133. flowfile/web/static/vite.svg +1 -0
  134. flowfile/web/static/vue.svg +1 -0
  135. {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/METADATA +1 -1
  136. {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/RECORD +146 -15
  137. {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/entry_points.txt +1 -1
  138. flowfile_core/configs/settings.py +7 -32
  139. flowfile_core/flowfile/FlowfileFlow.py +4 -2
  140. flowfile_core/flowfile/analytics/analytics_processor.py +1 -1
  141. flowfile_core/main.py +4 -1
  142. flowfile_core/schemas/input_schema.py +1 -8
  143. flowfile_frame/__init__.py +0 -1
  144. flowfile_frame/utils.py +0 -139
  145. flowfile_frame/__main__.py +0 -12
  146. {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/LICENSE +0 -0
  147. {flowfile-0.3.0.dist-info → flowfile-0.3.0.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,273 @@
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, a6 as Teleport, i as createCommentVNode } from "./index-552863fd.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-6b36f05e.js";
3
+ import { u as useNodeStore } from "./PopOver-b37ff9be.js";
4
+ import { s as selectDynamic } from "./selectDynamic-bd644891.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-65587f20.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 createSelectInputFromName = (columnName, keep = true) => {
10
+ return {
11
+ old_name: columnName,
12
+ new_name: columnName,
13
+ keep,
14
+ is_altered: false,
15
+ data_type_change: false,
16
+ is_available: true,
17
+ position: 0,
18
+ original_position: 0
19
+ };
20
+ };
21
+ ref(null);
22
+ const _hoisted_1$1 = {
23
+ key: 0,
24
+ class: "listbox-wrapper"
25
+ };
26
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
27
+ __name: "unique",
28
+ setup(__props, { expose: __expose }) {
29
+ const nodeStore = useNodeStore();
30
+ const showContextMenu = ref(false);
31
+ const showContextMenuRemove = ref(false);
32
+ const dataLoaded = ref(false);
33
+ const contextMenuColumn = ref(null);
34
+ const contextMenuRef = ref(null);
35
+ const nodeUnique = ref(null);
36
+ const nodeData = ref(null);
37
+ const selection = ref([]);
38
+ const uniqueInput2 = ref({
39
+ columns: [],
40
+ strategy: "any"
41
+ });
42
+ const loadSelection = (nodeData2, columnsToKeep) => {
43
+ var _a;
44
+ if ((_a = nodeData2.main_input) == null ? void 0 : _a.columns) {
45
+ selection.value = nodeData2.main_input.columns.map((column) => {
46
+ const keep = columnsToKeep.includes(column);
47
+ return createSelectInputFromName(column, keep);
48
+ });
49
+ }
50
+ };
51
+ const loadData = async (nodeId) => {
52
+ var _a;
53
+ nodeData.value = await nodeStore.getNodeData(nodeId, false);
54
+ nodeUnique.value = (_a = nodeData.value) == null ? void 0 : _a.setting_input;
55
+ dataLoaded.value = true;
56
+ if (nodeData.value) {
57
+ if (nodeUnique.value) {
58
+ if (nodeUnique.value.unique_input) {
59
+ uniqueInput2.value = nodeUnique.value.unique_input;
60
+ } else {
61
+ nodeUnique.value.unique_input = uniqueInput2.value;
62
+ }
63
+ loadSelection(nodeData.value, uniqueInput2.value.columns);
64
+ }
65
+ }
66
+ };
67
+ const calculateSelects = (updatedInputs) => {
68
+ console.log(updatedInputs);
69
+ selection.value = updatedInputs;
70
+ uniqueInput2.value.columns = updatedInputs.filter((input) => input.keep).map((input) => input.old_name);
71
+ };
72
+ const setUniqueColumns = () => {
73
+ uniqueInput2.value.columns = selection.value.filter((input) => input.keep).map((input) => input.old_name);
74
+ };
75
+ const loadNodeData = async (nodeId) => {
76
+ loadData(nodeId);
77
+ dataLoaded.value = true;
78
+ nodeStore.isDrawerOpen = true;
79
+ };
80
+ const handleClickOutside = (event) => {
81
+ var _a;
82
+ if (!((_a = contextMenuRef.value) == null ? void 0 : _a.contains(event.target))) {
83
+ showContextMenu.value = false;
84
+ contextMenuColumn.value = null;
85
+ showContextMenuRemove.value = false;
86
+ }
87
+ };
88
+ const getMissingColumns = (availableColumns, usedColumns) => {
89
+ const availableSet = new Set(availableColumns);
90
+ return Array.from(new Set(usedColumns.filter((usedColumn) => !availableSet.has(usedColumn))));
91
+ };
92
+ const missingColumns = computed(() => {
93
+ var _a, _b;
94
+ if (nodeData.value && ((_a = nodeData.value.main_input) == null ? void 0 : _a.columns)) {
95
+ return getMissingColumns((_b = nodeData.value.main_input) == null ? void 0 : _b.columns, uniqueInput2.value.columns);
96
+ }
97
+ return [];
98
+ });
99
+ const calculateMissingColumns = () => {
100
+ var _a, _b;
101
+ if (nodeData.value && ((_a = nodeData.value.main_input) == null ? void 0 : _a.columns)) {
102
+ return getMissingColumns((_b = nodeData.value.main_input) == null ? void 0 : _b.columns, uniqueInput2.value.columns);
103
+ }
104
+ return [];
105
+ };
106
+ const validateNode = async () => {
107
+ var _a, _b;
108
+ if ((_a = nodeUnique.value) == null ? void 0 : _a.unique_input) {
109
+ await loadData(Number(nodeUnique.value.node_id));
110
+ }
111
+ const missingColumnsLocal = calculateMissingColumns();
112
+ if (missingColumnsLocal.length > 0 && nodeUnique.value) {
113
+ nodeStore.setNodeValidation(nodeUnique.value.node_id, {
114
+ isValid: false,
115
+ error: `The fields ${missingColumns.value.join(", ")} are missing in the available columns.`
116
+ });
117
+ } else if (((_b = nodeUnique.value) == null ? void 0 : _b.unique_input.columns.length) == 0) {
118
+ nodeStore.setNodeValidation(nodeUnique.value.node_id, {
119
+ isValid: false,
120
+ error: "Please select at least one field."
121
+ });
122
+ } else if (nodeUnique.value) {
123
+ nodeStore.setNodeValidation(nodeUnique.value.node_id, {
124
+ isValid: true,
125
+ error: ""
126
+ });
127
+ }
128
+ };
129
+ const instantValidate = async () => {
130
+ var _a;
131
+ if (missingColumns.value.length > 0 && nodeUnique.value) {
132
+ nodeStore.setNodeValidation(nodeUnique.value.node_id, {
133
+ isValid: false,
134
+ error: `The fields ${missingColumns.value.join(", ")} are missing in the available columns.`
135
+ });
136
+ } else if (((_a = nodeUnique.value) == null ? void 0 : _a.unique_input.columns.length) == 0) {
137
+ nodeStore.setNodeValidation(nodeUnique.value.node_id, {
138
+ isValid: false,
139
+ error: "Please select at least one field."
140
+ });
141
+ } else if (nodeUnique.value) {
142
+ nodeStore.setNodeValidation(nodeUnique.value.node_id, {
143
+ isValid: true,
144
+ error: ""
145
+ });
146
+ }
147
+ };
148
+ const pushNodeData = async () => {
149
+ var _a, _b, _c, _d;
150
+ dataLoaded.value = false;
151
+ setUniqueColumns();
152
+ nodeStore.isDrawerOpen = false;
153
+ console.log("doing this");
154
+ console.log((_a = nodeUnique.value) == null ? void 0 : _a.is_setup);
155
+ console.log(nodeUnique.value);
156
+ if ((_b = nodeUnique.value) == null ? void 0 : _b.is_setup) {
157
+ nodeUnique.value.is_setup = true;
158
+ }
159
+ nodeStore.updateSettings(nodeUnique);
160
+ await instantValidate();
161
+ if ((_c = nodeUnique.value) == null ? void 0 : _c.unique_input) {
162
+ nodeStore.setNodeValidateFunc((_d = nodeUnique.value) == null ? void 0 : _d.node_id, validateNode);
163
+ }
164
+ };
165
+ __expose({
166
+ loadNodeData,
167
+ pushNodeData
168
+ });
169
+ onMounted(async () => {
170
+ await nextTick();
171
+ window.addEventListener("click", handleClickOutside);
172
+ });
173
+ onUnmounted(() => {
174
+ window.removeEventListener("click", handleClickOutside);
175
+ });
176
+ return (_ctx, _cache) => {
177
+ return dataLoaded.value && nodeUnique.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
178
+ createVNode(GenericNodeSettings, {
179
+ modelValue: nodeUnique.value,
180
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => nodeUnique.value = $event)
181
+ }, {
182
+ default: withCtx(() => [
183
+ createVNode(selectDynamic, {
184
+ "select-inputs": selection.value,
185
+ "show-keep-option": true,
186
+ "show-data-type": false,
187
+ "show-new-columns": false,
188
+ "show-old-columns": true,
189
+ "show-headers": true,
190
+ "show-title": false,
191
+ "show-data": true,
192
+ title: "Select data",
193
+ "original-column-header": "Column",
194
+ onUpdateSelectInputs: calculateSelects
195
+ }, null, 8, ["select-inputs"])
196
+ ]),
197
+ _: 1
198
+ }, 8, ["modelValue"])
199
+ ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
200
+ };
201
+ }
202
+ });
203
+ const unique_vue_vue_type_style_index_0_scoped_8edf8bb6_lang = "";
204
+ const uniqueInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-8edf8bb6"]]);
205
+ const _hoisted_1 = { ref: "el" };
206
+ const _sfc_main = /* @__PURE__ */ defineComponent({
207
+ __name: "Unique",
208
+ props: {
209
+ nodeId: {
210
+ type: Number,
211
+ required: true
212
+ }
213
+ },
214
+ setup(__props) {
215
+ const nodeStore = useNodeStore();
216
+ const childComp = ref(null);
217
+ const props = __props;
218
+ const drawer = ref(false);
219
+ const closeOnDrawer = () => {
220
+ var _a;
221
+ drawer.value = false;
222
+ (_a = childComp.value) == null ? void 0 : _a.pushNodeData();
223
+ };
224
+ const openDrawer = async () => {
225
+ if (nodeStore.node_id === props.nodeId) {
226
+ return;
227
+ }
228
+ nodeStore.closeDrawer();
229
+ drawer.value = true;
230
+ const drawerOpen = nodeStore.isDrawerOpen;
231
+ nodeStore.isDrawerOpen = true;
232
+ await nextTick();
233
+ if (nodeStore.node_id === props.nodeId && drawerOpen) {
234
+ return;
235
+ }
236
+ if (childComp.value) {
237
+ childComp.value.loadNodeData(props.nodeId);
238
+ nodeStore.openDrawer(closeOnDrawer);
239
+ }
240
+ };
241
+ onMounted(async () => {
242
+ await nextTick();
243
+ });
244
+ return (_ctx, _cache) => {
245
+ return openBlock(), createElementBlock("div", _hoisted_1, [
246
+ createVNode(NodeButton, {
247
+ ref: "nodeButton",
248
+ "node-id": __props.nodeId,
249
+ "image-src": "unique.png",
250
+ title: `${__props.nodeId}: Drop duplicates`,
251
+ onClick: openDrawer
252
+ }, null, 8, ["node-id", "title"]),
253
+ drawer.value ? (openBlock(), createBlock(Teleport, {
254
+ key: 0,
255
+ to: "#nodesettings"
256
+ }, [
257
+ createVNode(NodeTitle, {
258
+ title: "Drop duplicates",
259
+ intro: "Make the table unique by one or more columns"
260
+ }),
261
+ createVNode(uniqueInput, {
262
+ ref_key: "childComp",
263
+ ref: childComp,
264
+ "node-id": __props.nodeId
265
+ }, null, 8, ["node-id"])
266
+ ])) : createCommentVNode("", true)
267
+ ], 512);
268
+ };
269
+ }
270
+ });
271
+ export {
272
+ _sfc_main as default
273
+ };
@@ -0,0 +1,51 @@
1
+
2
+ .context-menu[data-v-8edf8bb6] {
3
+ position: fixed;
4
+ z-index: 1000;
5
+ border: 1px solid #ccc;
6
+ background-color: white;
7
+ padding: 8px;
8
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
9
+ border-radius: 4px;
10
+ user-select: none;
11
+ }
12
+ .context-menu button[data-v-8edf8bb6] {
13
+ display: block;
14
+ background: none;
15
+ border: none;
16
+ padding: 4px 8px;
17
+ text-align: left;
18
+ width: 100%;
19
+ cursor: pointer;
20
+ z-index: 100;
21
+ }
22
+ .context-menu button[data-v-8edf8bb6]:hover {
23
+ background-color: #f0f0f0;
24
+ }
25
+ .table-wrapper[data-v-8edf8bb6] {
26
+ max-height: 300px; /* Adjust this value as needed */
27
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* subtle shadow for depth */
28
+ border-radius: 8px; /* rounded corners */
29
+ overflow: auto; /* ensures the rounded corners are applied to the child elements */
30
+ margin: 5px; /* adds a small margin around the table */
31
+ }
32
+ .context-menu[data-v-8edf8bb6] {
33
+ position: fixed;
34
+ z-index: 1000;
35
+ border: 1px solid #ccc;
36
+ background-color: white;
37
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
38
+ border-radius: 4px;
39
+ }
40
+ .context-menu ul[data-v-8edf8bb6] {
41
+ list-style: none;
42
+ padding: 0;
43
+ margin: 0;
44
+ }
45
+ .context-menu li[data-v-8edf8bb6] {
46
+ padding: 8px 16px;
47
+ cursor: pointer;
48
+ }
49
+ .context-menu li[data-v-8edf8bb6]:hover {
50
+ background-color: #f0f0f0;
51
+ }
@@ -0,0 +1,77 @@
1
+
2
+ .context-menu[data-v-4f9e01e5] {
3
+ position: fixed;
4
+ z-index: 1000;
5
+ border: 1px solid #ccc;
6
+ background-color: white;
7
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
8
+ border-radius: 4px;
9
+ user-select: none;
10
+ }
11
+ .context-menu ul[data-v-4f9e01e5] {
12
+ list-style: none;
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+ .context-menu li[data-v-4f9e01e5] {
17
+ padding: 8px 16px;
18
+ cursor: pointer;
19
+ }
20
+ .context-menu li.disabled[data-v-4f9e01e5] {
21
+ color: #ccc;
22
+ cursor: not-allowed;
23
+ }
24
+ .context-menu li[data-v-4f9e01e5]:hover:not(.disabled) {
25
+ background-color: #f0f0f0;
26
+ }
27
+
28
+ .items-container[data-v-fd7e6af1] {
29
+ display: flex;
30
+ flex-wrap: wrap;
31
+ gap: 10px; /* Space between items */
32
+ }
33
+ .item-box[data-v-fd7e6af1] {
34
+ display: flex;
35
+ align-items: center;
36
+ padding: 5px 10px;
37
+ background-color: #f0f0f0;
38
+ border-radius: 4px;
39
+ font-size: 12px; /* Font size set to 12px */
40
+ position: relative;
41
+ }
42
+ .remove-btn[data-v-fd7e6af1] {
43
+ margin-left: 8px;
44
+ cursor: pointer;
45
+ color: #100f0f72;
46
+ font-weight: bold;
47
+ }
48
+
49
+ .context-menu[data-v-9746d208] {
50
+ position: fixed;
51
+ z-index: 1000;
52
+ border: 1px solid #ccc;
53
+ background-color: white;
54
+ padding: 8px;
55
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
56
+ border-radius: 4px;
57
+ }
58
+ .context-menu ul[data-v-9746d208] {
59
+ list-style: none;
60
+ padding: 0;
61
+ margin: 0;
62
+ }
63
+ .context-menu li[data-v-9746d208] {
64
+ padding: 8px 16px;
65
+ cursor: pointer;
66
+ }
67
+ .context-menu li[data-v-9746d208]:hover {
68
+ background-color: #f0f0f0;
69
+ }
70
+ .switch-container[data-v-9746d208] {
71
+ display: flex;
72
+ align-items: center;
73
+ margin: 12px;
74
+ }
75
+ .switch-container span[data-v-9746d208] {
76
+ margin-right: 10px;
77
+ }