Flowfile 0.5.3__py3-none-any.whl → 0.5.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. flowfile/__init__.py +16 -0
  2. flowfile/__main__.py +94 -1
  3. flowfile/web/static/assets/{AdminView-49392a9a.js → AdminView-c2c7942b.js} +1 -1
  4. flowfile/web/static/assets/{CloudConnectionView-f13f202b.js → CloudConnectionView-7a3042c6.js} +4 -4
  5. flowfile/web/static/assets/{CloudConnectionView-36bcd6df.css → CloudConnectionView-cf85f943.css} +17 -17
  6. flowfile/web/static/assets/{CloudStorageReader-0023d4a5.js → CloudStorageReader-709c4037.js} +8 -8
  7. flowfile/web/static/assets/{CloudStorageWriter-8e781e11.js → CloudStorageWriter-604c51a8.js} +8 -8
  8. flowfile/web/static/assets/ColumnActionInput-c44b7aee.css +159 -0
  9. flowfile/web/static/assets/ColumnActionInput-d63d6746.js +330 -0
  10. flowfile/web/static/assets/{ColumnSelector-8ad68ea9.js → ColumnSelector-0c8cd1cd.js} +1 -1
  11. flowfile/web/static/assets/ContextMenu-366bf1b4.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-85cf5b44.js +9 -0
  13. flowfile/web/static/assets/ContextMenu-9d28ae6d.js +9 -0
  14. flowfile/web/static/assets/ContextMenu.vue_vue_type_script_setup_true_lang-774c517c.js +59 -0
  15. flowfile/web/static/assets/{CrossJoin-03df6938.js → CrossJoin-38e5b99a.js} +9 -9
  16. flowfile/web/static/assets/{CustomNode-8479239b.js → CustomNode-76e8f3f5.js} +27 -20
  17. flowfile/web/static/assets/CustomNode-edb9b939.css +42 -0
  18. flowfile/web/static/assets/{DatabaseConnectionSettings-869e3efd.js → DatabaseConnectionSettings-38155669.js} +4 -4
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-e91df89a.css → DatabaseConnectionSettings-c20a1e16.css} +22 -20
  20. flowfile/web/static/assets/{DatabaseReader-c58b9552.js → DatabaseReader-2e549c8f.js} +13 -13
  21. flowfile/web/static/assets/{DatabaseReader-36898a00.css → DatabaseReader-5bf8c75b.css} +39 -44
  22. flowfile/web/static/assets/{DatabaseView-d26a9140.js → DatabaseView-dc877c29.js} +2 -2
  23. flowfile/web/static/assets/{DatabaseWriter-217a99f1.css → DatabaseWriter-bdcf2c8b.css} +27 -25
  24. flowfile/web/static/assets/{DatabaseWriter-4d05ddc7.js → DatabaseWriter-ffb91864.js} +12 -12
  25. flowfile/web/static/assets/{DesignerView-a6d0ee84.css → DesignerView-71d4e9a1.css} +429 -376
  26. flowfile/web/static/assets/{DesignerView-e6f5c0e8.js → DesignerView-a4466dab.js} +338 -183
  27. flowfile/web/static/assets/{DocumentationView-2e78ef1b.js → DocumentationView-979afc84.js} +3 -3
  28. flowfile/web/static/assets/{DocumentationView-fd46c656.css → DocumentationView-9ea6e871.css} +9 -9
  29. flowfile/web/static/assets/{ExploreData-7b54caca.js → ExploreData-e4b92aaf.js} +7 -7
  30. flowfile/web/static/assets/{ExternalSource-47ab05a3.css → ExternalSource-7ac7373f.css} +17 -17
  31. flowfile/web/static/assets/{ExternalSource-3fa399b2.js → ExternalSource-d08e7227.js} +9 -9
  32. flowfile/web/static/assets/{Filter-8cbbdbf3.js → Filter-7add806d.js} +9 -9
  33. flowfile/web/static/assets/{Formula-aac42b1e.js → Formula-36ab24d2.js} +9 -9
  34. flowfile/web/static/assets/{FuzzyMatch-cd9bbfca.js → FuzzyMatch-cc01bb04.js} +10 -10
  35. flowfile/web/static/assets/{GraphSolver-c24dec17.css → GraphSolver-4b4d7db9.css} +4 -4
  36. flowfile/web/static/assets/{GraphSolver-c7e6780e.js → GraphSolver-4fb98f3b.js} +11 -11
  37. flowfile/web/static/assets/GroupBy-5792782d.css +9 -0
  38. flowfile/web/static/assets/{GroupBy-93c5d22b.js → GroupBy-b3c8f429.js} +9 -9
  39. flowfile/web/static/assets/{Join-a19b2de2.js → Join-096b7b26.js} +10 -10
  40. flowfile/web/static/assets/{LoginView-0df4ed0a.js → LoginView-c33a246a.js} +1 -1
  41. flowfile/web/static/assets/{ManualInput-3702e677.css → ManualInput-39111f19.css} +48 -48
  42. flowfile/web/static/assets/{ManualInput-8d3374b2.js → ManualInput-7307e9b1.js} +55 -13
  43. flowfile/web/static/assets/{MultiSelect-ad1b6243.js → MultiSelect-14822c48.js} +2 -2
  44. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-e278950d.js → MultiSelect.vue_vue_type_script_setup_true_lang-90c4d340.js} +1 -1
  45. flowfile/web/static/assets/{NodeDesigner-40b647c9.js → NodeDesigner-5036c392.js} +171 -69
  46. flowfile/web/static/assets/{NodeDesigner-5f53be3f.css → NodeDesigner-94cd4dd3.css} +190 -190
  47. flowfile/web/static/assets/{NumericInput-7100234c.js → NumericInput-15cf3b72.js} +2 -2
  48. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-5130219f.js → NumericInput.vue_vue_type_script_setup_true_lang-91e679d7.js} +1 -1
  49. flowfile/web/static/assets/{Output-f5efd2aa.js → Output-1f8ed42c.js} +13 -12
  50. flowfile/web/static/assets/{Output-35e97000.css → Output-692dd25d.css} +10 -10
  51. flowfile/web/static/assets/{Pivot-d981d23c.js → Pivot-0e153f4e.js} +10 -10
  52. flowfile/web/static/assets/{PivotValidation-63de1f73.js → PivotValidation-5a4f7c79.js} +1 -1
  53. flowfile/web/static/assets/{PivotValidation-39386e95.js → PivotValidation-81ec2a33.js} +1 -1
  54. flowfile/web/static/assets/{PolarsCode-f9d69217.js → PolarsCode-a39f15ac.js} +7 -7
  55. flowfile/web/static/assets/PopOver-ddcfe4f6.js +138 -0
  56. flowfile/web/static/assets/{Read-aec2e377.js → Read-39b63932.js} +15 -14
  57. flowfile/web/static/assets/{Read-36e7bd51.css → Read-90f366bc.css} +13 -13
  58. flowfile/web/static/assets/{RecordCount-78ed6845.js → RecordCount-e9048ccd.js} +6 -6
  59. flowfile/web/static/assets/{RecordId-2156e890.js → RecordId-ad02521d.js} +9 -9
  60. flowfile/web/static/assets/{SQLQueryComponent-48c72f5b.js → SQLQueryComponent-2eeecf0b.js} +3 -3
  61. flowfile/web/static/assets/SQLQueryComponent-edb90b98.css +29 -0
  62. flowfile/web/static/assets/{Sample-1352ca74.js → Sample-9a68c23d.js} +6 -6
  63. flowfile/web/static/assets/{SecretSelector-22b5ff89.js → SecretSelector-2429f35a.js} +2 -2
  64. flowfile/web/static/assets/{SecretsView-17df66ee.js → SecretsView-c6afc915.js} +2 -2
  65. flowfile/web/static/assets/{Select-0aee4c54.js → Select-fcd002b6.js} +9 -9
  66. flowfile/web/static/assets/{SettingsSection-cd341bb6.js → SettingsSection-5ce15962.js} +1 -1
  67. flowfile/web/static/assets/{SettingsSection-0784e157.js → SettingsSection-c6b1362c.js} +1 -1
  68. flowfile/web/static/assets/{SettingsSection-f2002a6d.js → SettingsSection-cebb91d5.js} +1 -1
  69. flowfile/web/static/assets/SetupView-2d12e01f.js +160 -0
  70. flowfile/web/static/assets/SetupView-ec26f76a.css +230 -0
  71. flowfile/web/static/assets/{SingleSelect-460cc0ea.js → SingleSelect-b67de4eb.js} +2 -2
  72. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-30741bb2.js → SingleSelect.vue_vue_type_script_setup_true_lang-eedb70eb.js} +1 -1
  73. flowfile/web/static/assets/{SliderInput-5d926864.js → SliderInput-fd8134ac.js} +1 -1
  74. flowfile/web/static/assets/Sort-4abb7fae.css +9 -0
  75. flowfile/web/static/assets/{Sort-3cdc971b.js → Sort-c005a573.js} +9 -9
  76. flowfile/web/static/assets/{TextInput-a2d0bfbd.js → TextInput-1bb31dab.js} +2 -2
  77. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-abad1ca2.js → TextInput.vue_vue_type_script_setup_true_lang-a51fe730.js} +1 -1
  78. flowfile/web/static/assets/{TextToRows-918945f7.js → TextToRows-4f363753.js} +9 -9
  79. flowfile/web/static/assets/{ToggleSwitch-f0ef5196.js → ToggleSwitch-ca0f2e5e.js} +2 -2
  80. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-5605c793.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-49aa41d8.js} +1 -1
  81. flowfile/web/static/assets/{UnavailableFields-54d2f518.css → UnavailableFields-394a1f78.css} +13 -13
  82. flowfile/web/static/assets/{UnavailableFields-bdad6144.js → UnavailableFields-f6147968.js} +4 -4
  83. flowfile/web/static/assets/{Union-e8ab8c86.js → Union-c65f17b7.js} +6 -6
  84. flowfile/web/static/assets/Unique-2b705521.css +3 -0
  85. flowfile/web/static/assets/{Unique-8cd4f976.js → Unique-a1d96fb2.js} +12 -12
  86. flowfile/web/static/assets/{Unpivot-710a2948.css → Unpivot-b6ad6427.css} +6 -6
  87. flowfile/web/static/assets/{Unpivot-8da14095.js → Unpivot-c2657ff3.js} +11 -11
  88. flowfile/web/static/assets/{UnpivotValidation-6f7d89ff.js → UnpivotValidation-28e29a3b.js} +1 -1
  89. flowfile/web/static/assets/{VueGraphicWalker-3fb312e1.js → VueGraphicWalker-2fc3ddd4.js} +1 -1
  90. flowfile/web/static/assets/{api-24483f0d.js → api-df48ec50.js} +1 -1
  91. flowfile/web/static/assets/{api-8b81fa73.js → api-ee542cf7.js} +1 -1
  92. flowfile/web/static/assets/{dropDown-3d8dc5fa.css → dropDown-1d6acbd9.css} +26 -26
  93. flowfile/web/static/assets/{dropDown-ac0fda9d.js → dropDown-7576a76a.js} +3 -3
  94. flowfile/web/static/assets/{fullEditor-5497a84a.js → fullEditor-7583bef5.js} +3 -3
  95. flowfile/web/static/assets/{fullEditor-a0be62b3.css → fullEditor-fe9f7e18.css} +3 -3
  96. flowfile/web/static/assets/{genericNodeSettings-99014e1d.js → genericNodeSettings-0155288b.js} +2 -3
  97. flowfile/web/static/assets/{index-3ba44389.js → index-057d770d.js} +2 -2
  98. flowfile/web/static/assets/{index-07dda503.js → index-aeec439d.js} +1 -1
  99. flowfile/web/static/assets/{index-fb6493ae.js → index-ca6799de.js} +2293 -196
  100. flowfile/web/static/assets/{index-e6289dd0.css → index-d60c9dd4.css} +560 -10
  101. flowfile/web/static/assets/nodeInput-d478b9ac.js +2 -0
  102. flowfile/web/static/assets/{outputCsv-8f8ba42d.js → outputCsv-c492b15e.js} +3 -3
  103. flowfile/web/static/assets/outputCsv-cc84e09f.css +2499 -0
  104. flowfile/web/static/assets/{outputExcel-393f4fef.js → outputExcel-13bfa10f.js} +1 -1
  105. flowfile/web/static/assets/{outputParquet-07c81f65.js → outputParquet-9be1523a.js} +1 -1
  106. flowfile/web/static/assets/{readCsv-07f6d9ad.js → readCsv-5a49a8c9.js} +1 -1
  107. flowfile/web/static/assets/{readExcel-ed69bc8f.js → readExcel-27c30ad8.js} +3 -3
  108. flowfile/web/static/assets/{readParquet-e3ed4528.js → readParquet-446bde68.js} +1 -1
  109. flowfile/web/static/assets/{secrets.api-002e7d7e.js → secrets.api-34431884.js} +1 -1
  110. flowfile/web/static/assets/{selectDynamic-80b92899.js → selectDynamic-5754a2b1.js} +2 -3
  111. flowfile/web/static/assets/{vue-codemirror.esm-0965f39f.js → vue-codemirror.esm-8f46fb36.js} +1 -1
  112. flowfile/web/static/assets/{vue-content-loader.es-c506ad97.js → vue-content-loader.es-808fe33a.js} +1 -1
  113. flowfile/web/static/index.html +2 -2
  114. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/METADATA +2 -2
  115. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/RECORD +139 -134
  116. flowfile_core/auth/secrets.py +56 -13
  117. flowfile_core/fileExplorer/funcs.py +26 -4
  118. flowfile_core/flowfile/code_generator/__init__.py +11 -0
  119. flowfile_core/flowfile/code_generator/code_generator.py +347 -2
  120. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +13 -1
  121. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +12 -0
  122. flowfile_core/flowfile/flow_graph.py +2 -0
  123. flowfile_core/flowfile/flow_node/flow_node.py +52 -28
  124. flowfile_core/flowfile/node_designer/__init__.py +4 -0
  125. flowfile_core/flowfile/node_designer/ui_components.py +144 -1
  126. flowfile_core/main.py +2 -4
  127. flowfile_core/routes/public.py +43 -1
  128. flowfile_core/schemas/cloud_storage_schemas.py +39 -15
  129. flowfile_core/secret_manager/secret_manager.py +107 -6
  130. flowfile_frame/__init__.py +11 -0
  131. flowfile_frame/database/__init__.py +36 -0
  132. flowfile_frame/database/connection_manager.py +205 -0
  133. flowfile_frame/database/frame_helpers.py +249 -0
  134. flowfile_worker/configs.py +31 -15
  135. flowfile_worker/secrets.py +105 -15
  136. flowfile_worker/spawner.py +10 -6
  137. flowfile/web/static/assets/ContextMenu-26d4dd27.css +0 -26
  138. flowfile/web/static/assets/ContextMenu-31ee57f0.js +0 -41
  139. flowfile/web/static/assets/ContextMenu-69a74055.js +0 -41
  140. flowfile/web/static/assets/ContextMenu-8e2051c6.js +0 -41
  141. flowfile/web/static/assets/ContextMenu-8ec1729e.css +0 -26
  142. flowfile/web/static/assets/ContextMenu-9b310c60.css +0 -26
  143. flowfile/web/static/assets/CustomNode-59e99a86.css +0 -32
  144. flowfile/web/static/assets/GroupBy-be7ac0bf.css +0 -51
  145. flowfile/web/static/assets/PopOver-b22f049e.js +0 -939
  146. flowfile/web/static/assets/SQLQueryComponent-1c2f26b4.css +0 -27
  147. flowfile/web/static/assets/Sort-8a871341.css +0 -51
  148. flowfile/web/static/assets/Unique-9fb2f567.css +0 -51
  149. flowfile/web/static/assets/nodeInput-0eb13f1a.js +0 -2
  150. flowfile/web/static/assets/outputCsv-b9a072af.css +0 -2499
  151. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/WHEEL +0 -0
  152. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/entry_points.txt +0 -0
  153. {flowfile-0.5.3.dist-info → flowfile-0.5.6.dist-info}/licenses/LICENSE +0 -0
@@ -1,31 +1,31 @@
1
1
 
2
- .settings-section[data-v-933b703f] {
2
+ .settings-section[data-v-4ce8edce] {
3
3
  padding: var(--spacing-4);
4
4
  background: var(--color-background-primary);
5
5
  border-radius: var(--border-radius-lg);
6
6
  }
7
7
 
8
8
  /* Controls Section */
9
- .controls-section[data-v-933b703f] {
9
+ .controls-section[data-v-4ce8edce] {
10
10
  margin-bottom: var(--spacing-3);
11
11
  }
12
- .controls-top[data-v-933b703f] {
12
+ .controls-top[data-v-4ce8edce] {
13
13
  display: flex;
14
14
  justify-content: space-between;
15
15
  align-items: center;
16
16
  flex-wrap: wrap;
17
17
  gap: var(--spacing-2);
18
18
  }
19
- .button-group[data-v-933b703f] {
19
+ .button-group[data-v-4ce8edce] {
20
20
  display: flex;
21
21
  gap: var(--spacing-2);
22
22
  flex-wrap: wrap;
23
23
  }
24
- .table-info[data-v-933b703f] {
24
+ .table-info[data-v-4ce8edce] {
25
25
  display: flex;
26
26
  gap: var(--spacing-2);
27
27
  }
28
- .info-badge[data-v-933b703f] {
28
+ .info-badge[data-v-4ce8edce] {
29
29
  font-size: var(--font-size-xs);
30
30
  color: var(--color-text-secondary);
31
31
  background: var(--color-background-muted);
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  /* Table Container */
37
- .table-container[data-v-933b703f] {
37
+ .table-container[data-v-4ce8edce] {
38
38
  max-height: 350px;
39
39
  overflow: auto;
40
40
  border: 1px solid var(--color-border-light);
@@ -43,20 +43,20 @@
43
43
  }
44
44
 
45
45
  /* Modern Table */
46
- .modern-table[data-v-933b703f] {
46
+ .modern-table[data-v-4ce8edce] {
47
47
  width: 100%;
48
48
  border-collapse: collapse;
49
49
  table-layout: fixed;
50
50
  }
51
51
 
52
52
  /* Header Row */
53
- .header-row[data-v-933b703f] {
53
+ .header-row[data-v-4ce8edce] {
54
54
  position: sticky;
55
55
  top: 0;
56
56
  z-index: 10;
57
57
  background: var(--color-background-muted);
58
58
  }
59
- .row-number-header[data-v-933b703f] {
59
+ .row-number-header[data-v-4ce8edce] {
60
60
  width: 40px;
61
61
  min-width: 40px;
62
62
  max-width: 40px;
@@ -71,7 +71,7 @@
71
71
  left: 0;
72
72
  z-index: 11;
73
73
  }
74
- .column-header-cell[data-v-933b703f] {
74
+ .column-header-cell[data-v-4ce8edce] {
75
75
  min-width: 140px;
76
76
  width: 140px;
77
77
  padding: 0;
@@ -79,19 +79,19 @@
79
79
  border-right: 1px solid var(--color-border-light);
80
80
  vertical-align: top;
81
81
  }
82
- .column-header[data-v-933b703f] {
82
+ .column-header[data-v-4ce8edce] {
83
83
  display: flex;
84
84
  flex-direction: column;
85
85
  height: 100%;
86
86
  }
87
- .header-top[data-v-933b703f] {
87
+ .header-top[data-v-4ce8edce] {
88
88
  display: flex;
89
89
  align-items: center;
90
90
  gap: var(--spacing-1);
91
91
  padding: var(--spacing-2);
92
92
  padding-bottom: var(--spacing-1);
93
93
  }
94
- .input-header[data-v-933b703f] {
94
+ .input-header[data-v-4ce8edce] {
95
95
  flex: 1;
96
96
  min-width: 0;
97
97
  border: none;
@@ -103,14 +103,14 @@
103
103
  border-radius: var(--border-radius-sm);
104
104
  outline: none;
105
105
  }
106
- .input-header[data-v-933b703f]:focus {
106
+ .input-header[data-v-4ce8edce]:focus {
107
107
  background: var(--color-background-primary);
108
108
  box-shadow: 0 0 0 1px var(--color-primary);
109
109
  }
110
- .input-header[data-v-933b703f]::placeholder {
110
+ .input-header[data-v-4ce8edce]::placeholder {
111
111
  color: var(--color-text-muted);
112
112
  }
113
- .delete-column-btn[data-v-933b703f] {
113
+ .delete-column-btn[data-v-4ce8edce] {
114
114
  width: 20px;
115
115
  height: 20px;
116
116
  padding: 0;
@@ -125,32 +125,32 @@
125
125
  transition: all var(--transition-fast);
126
126
  flex-shrink: 0;
127
127
  }
128
- .delete-column-btn[data-v-933b703f]:hover {
128
+ .delete-column-btn[data-v-4ce8edce]:hover {
129
129
  color: var(--color-danger);
130
130
  background: var(--color-danger-bg, rgba(239, 68, 68, 0.1));
131
131
  }
132
- .delete-column-btn i[data-v-933b703f] {
132
+ .delete-column-btn i[data-v-4ce8edce] {
133
133
  font-size: 10px;
134
134
  }
135
- .header-type[data-v-933b703f] {
135
+ .header-type[data-v-4ce8edce] {
136
136
  padding: 0 var(--spacing-2) var(--spacing-2);
137
137
  }
138
- .type-select[data-v-933b703f] {
138
+ .type-select[data-v-4ce8edce] {
139
139
  width: 100%;
140
140
  }
141
- .type-select[data-v-933b703f] .el-input__wrapper {
141
+ .type-select[data-v-4ce8edce] .el-input__wrapper {
142
142
  background: var(--color-background-primary);
143
143
  box-shadow: none;
144
144
  border: 1px solid var(--color-border-light);
145
145
  }
146
- .type-select[data-v-933b703f] .el-input__inner {
146
+ .type-select[data-v-4ce8edce] .el-input__inner {
147
147
  font-size: var(--font-size-xs);
148
148
  height: 24px;
149
149
  }
150
- .type-select[data-v-933b703f] .el-select__caret {
150
+ .type-select[data-v-4ce8edce] .el-select__caret {
151
151
  font-size: 10px;
152
152
  }
153
- .actions-header[data-v-933b703f] {
153
+ .actions-header[data-v-4ce8edce] {
154
154
  width: 36px;
155
155
  min-width: 36px;
156
156
  max-width: 36px;
@@ -159,16 +159,16 @@
159
159
  }
160
160
 
161
161
  /* Data Rows */
162
- .data-row[data-v-933b703f] {
162
+ .data-row[data-v-4ce8edce] {
163
163
  transition: background var(--transition-fast);
164
164
  }
165
- .data-row[data-v-933b703f]:hover {
165
+ .data-row[data-v-4ce8edce]:hover {
166
166
  background: var(--color-background-hover);
167
167
  }
168
- .data-row:hover .row-number[data-v-933b703f] {
168
+ .data-row:hover .row-number[data-v-4ce8edce] {
169
169
  background: var(--color-background-hover);
170
170
  }
171
- .row-number[data-v-933b703f] {
171
+ .row-number[data-v-4ce8edce] {
172
172
  width: 40px;
173
173
  min-width: 40px;
174
174
  max-width: 40px;
@@ -182,14 +182,14 @@
182
182
  left: 0;
183
183
  z-index: 5;
184
184
  }
185
- .data-cell[data-v-933b703f] {
185
+ .data-cell[data-v-4ce8edce] {
186
186
  min-width: 140px;
187
187
  width: 140px;
188
188
  padding: 0;
189
189
  border-bottom: 1px solid var(--color-border-light);
190
190
  border-right: 1px solid var(--color-border-light);
191
191
  }
192
- .input-cell[data-v-933b703f] {
192
+ .input-cell[data-v-4ce8edce] {
193
193
  width: 100%;
194
194
  height: 100%;
195
195
  border: none;
@@ -199,11 +199,11 @@
199
199
  padding: var(--spacing-2);
200
200
  outline: none;
201
201
  }
202
- .input-cell[data-v-933b703f]:focus {
202
+ .input-cell[data-v-4ce8edce]:focus {
203
203
  background: var(--color-background-primary);
204
204
  box-shadow: inset 0 0 0 2px var(--color-primary);
205
205
  }
206
- .row-actions[data-v-933b703f] {
206
+ .row-actions[data-v-4ce8edce] {
207
207
  width: 36px;
208
208
  min-width: 36px;
209
209
  max-width: 36px;
@@ -211,7 +211,7 @@
211
211
  border-bottom: 1px solid var(--color-border-light);
212
212
  padding: var(--spacing-1);
213
213
  }
214
- .delete-row-btn[data-v-933b703f] {
214
+ .delete-row-btn[data-v-4ce8edce] {
215
215
  width: 24px;
216
216
  height: 24px;
217
217
  padding: 0;
@@ -226,68 +226,68 @@
226
226
  transition: all var(--transition-fast);
227
227
  opacity: 0;
228
228
  }
229
- .data-row:hover .delete-row-btn[data-v-933b703f] {
229
+ .data-row:hover .delete-row-btn[data-v-4ce8edce] {
230
230
  opacity: 1;
231
231
  }
232
- .delete-row-btn[data-v-933b703f]:hover {
232
+ .delete-row-btn[data-v-4ce8edce]:hover {
233
233
  color: var(--color-danger);
234
234
  background: var(--color-danger-bg, rgba(239, 68, 68, 0.1));
235
235
  }
236
- .delete-row-btn i[data-v-933b703f] {
236
+ .delete-row-btn i[data-v-4ce8edce] {
237
237
  font-size: 10px;
238
238
  }
239
239
 
240
240
  /* Raw Data Section */
241
- .raw-data-section[data-v-933b703f] {
241
+ .raw-data-section[data-v-4ce8edce] {
242
242
  margin-top: var(--spacing-4);
243
243
  padding: var(--spacing-4);
244
244
  background: var(--color-background-muted);
245
245
  border-radius: var(--border-radius-lg);
246
246
  border: 1px solid var(--color-border-light);
247
247
  }
248
- .raw-data-header[data-v-933b703f] {
248
+ .raw-data-header[data-v-4ce8edce] {
249
249
  display: flex;
250
250
  align-items: baseline;
251
251
  gap: var(--spacing-2);
252
252
  margin-bottom: var(--spacing-3);
253
253
  }
254
- .raw-data-title[data-v-933b703f] {
254
+ .raw-data-title[data-v-4ce8edce] {
255
255
  font-size: var(--font-size-sm);
256
256
  font-weight: var(--font-weight-semibold);
257
257
  color: var(--color-text-primary);
258
258
  }
259
- .raw-data-hint[data-v-933b703f] {
259
+ .raw-data-hint[data-v-4ce8edce] {
260
260
  font-size: var(--font-size-xs);
261
261
  color: var(--color-text-muted);
262
262
  }
263
- .json-editor[data-v-933b703f] .el-textarea__inner {
263
+ .json-editor[data-v-4ce8edce] .el-textarea__inner {
264
264
  font-family: var(--font-mono);
265
265
  font-size: var(--font-size-xs);
266
266
  line-height: 1.5;
267
267
  background: var(--color-background-primary);
268
268
  }
269
- .raw-data-controls[data-v-933b703f] {
269
+ .raw-data-controls[data-v-4ce8edce] {
270
270
  margin-top: var(--spacing-3);
271
271
  display: flex;
272
272
  justify-content: flex-end;
273
273
  }
274
274
 
275
275
  /* Custom Scrollbar */
276
- .table-container[data-v-933b703f]::-webkit-scrollbar {
276
+ .table-container[data-v-4ce8edce]::-webkit-scrollbar {
277
277
  width: 8px;
278
278
  height: 8px;
279
279
  }
280
- .table-container[data-v-933b703f]::-webkit-scrollbar-track {
280
+ .table-container[data-v-4ce8edce]::-webkit-scrollbar-track {
281
281
  background: var(--color-background-muted);
282
282
  border-radius: 4px;
283
283
  }
284
- .table-container[data-v-933b703f]::-webkit-scrollbar-thumb {
284
+ .table-container[data-v-4ce8edce]::-webkit-scrollbar-thumb {
285
285
  background-color: var(--color-gray-400);
286
286
  border-radius: 4px;
287
287
  }
288
- .table-container[data-v-933b703f]::-webkit-scrollbar-thumb:hover {
288
+ .table-container[data-v-4ce8edce]::-webkit-scrollbar-thumb:hover {
289
289
  background-color: var(--color-gray-500);
290
290
  }
291
- .table-container[data-v-933b703f]::-webkit-scrollbar-corner {
291
+ .table-container[data-v-4ce8edce]::-webkit-scrollbar-corner {
292
292
  background: var(--color-background-muted);
293
293
  }
@@ -1,9 +1,9 @@
1
- import { r as ref, d as defineComponent, A as computed, B as watch, l as resolveComponent, o as openBlock, c as createElementBlock, m as createVNode, p as withCtx, b as createBaseVNode, q as createTextVNode, n as normalizeClass, t as toDisplayString, F as Fragment, D as renderList, g as withDirectives, v as vModelText, s as unref, x as createBlock, f as createCommentVNode, E as ElNotification, i as _export_sfc } from "./index-fb6493ae.js";
2
- import { u as useNodeStore } from "./PopOver-b22f049e.js";
3
- import { G as GenericNodeSettings } from "./genericNodeSettings-99014e1d.js";
4
- import "./DesignerView-e6f5c0e8.js";
5
- import "./index-3ba44389.js";
6
- import "./vue-codemirror.esm-0965f39f.js";
1
+ import { r as ref, d as defineComponent, l as useNodeStore, G as computed, H as watch, y as resolveComponent, o as openBlock, c as createElementBlock, z as createVNode, A as withCtx, a as createBaseVNode, f as createTextVNode, n as normalizeClass, t as toDisplayString, K as Fragment, L as renderList, i as withDirectives, v as vModelText, B as unref, C as createBlock, e as createCommentVNode, E as ElNotification, g as _export_sfc } from "./index-ca6799de.js";
2
+ import { G as GenericNodeSettings } from "./genericNodeSettings-0155288b.js";
3
+ import "./DesignerView-a4466dab.js";
4
+ import "./PopOver-ddcfe4f6.js";
5
+ import "./index-057d770d.js";
6
+ import "./vue-codemirror.esm-8f46fb36.js";
7
7
  const createManualInput = (flowId = -1, nodeId = -1, pos_x = 0, pos_y = 0) => {
8
8
  const nodeManualInput = ref({
9
9
  flow_id: flowId,
@@ -54,6 +54,35 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
54
54
  let nextColumnId = 1;
55
55
  let nextRowId = 1;
56
56
  const dataTypes = nodeStore.getDataTypes();
57
+ const inferDataType = (values) => {
58
+ const validValues = values.filter((v) => v !== null && v !== void 0 && v !== "");
59
+ if (validValues.length === 0) {
60
+ return "String";
61
+ }
62
+ const allBooleans = validValues.every(
63
+ (v) => typeof v === "boolean" || v === "true" || v === "false"
64
+ );
65
+ if (allBooleans) {
66
+ return "Boolean";
67
+ }
68
+ const allNumeric = validValues.every((v) => {
69
+ if (typeof v === "number")
70
+ return true;
71
+ if (typeof v === "string") {
72
+ const parsed = Number(v);
73
+ return !isNaN(parsed) && v.trim() !== "";
74
+ }
75
+ return false;
76
+ });
77
+ if (allNumeric) {
78
+ const allIntegers = validValues.every((v) => {
79
+ const num = typeof v === "number" ? v : Number(v);
80
+ return Number.isInteger(num);
81
+ });
82
+ return allIntegers ? "Int64" : "Float64";
83
+ }
84
+ return "String";
85
+ };
57
86
  const rawData = computed(() => {
58
87
  return rows.value.map((row) => {
59
88
  const obj = {};
@@ -85,13 +114,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
85
114
  const populateTableFromData = (data) => {
86
115
  rows.value = [];
87
116
  columns.value = [];
117
+ if (data.length === 0) {
118
+ return;
119
+ }
120
+ const columnNames = Object.keys(data[0]);
121
+ const columnValues = {};
122
+ columnNames.forEach((name) => {
123
+ columnValues[name] = data.map((item) => item[name]);
124
+ });
125
+ columnNames.forEach((name, colIndex) => {
126
+ const inferredType = inferDataType(columnValues[name]);
127
+ columns.value.push({
128
+ id: colIndex + 1,
129
+ name,
130
+ dataType: inferredType
131
+ });
132
+ });
88
133
  data.forEach((item, rowIndex) => {
89
134
  const row = { id: rowIndex + 1, values: {} };
90
- Object.keys(item).forEach((key, colIndex) => {
91
- if (rowIndex === 0) {
92
- columns.value.push({ id: colIndex + 1, name: key, dataType: "String" });
93
- }
94
- row.values[colIndex + 1] = item[key];
135
+ columnNames.forEach((key, colIndex) => {
136
+ row.values[colIndex + 1] = String(item[key] ?? "");
95
137
  });
96
138
  rows.value.push(row);
97
139
  });
@@ -442,8 +484,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
442
484
  };
443
485
  }
444
486
  });
445
- const ManualInput_vue_vue_type_style_index_0_scoped_933b703f_lang = "";
446
- const ManualInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-933b703f"]]);
487
+ const ManualInput_vue_vue_type_style_index_0_scoped_4ce8edce_lang = "";
488
+ const ManualInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4ce8edce"]]);
447
489
  export {
448
490
  ManualInput as default
449
491
  };
@@ -1,5 +1,5 @@
1
- import { _ as _sfc_main } from "./MultiSelect.vue_vue_type_script_setup_true_lang-e278950d.js";
2
- import "./index-fb6493ae.js";
1
+ import { _ as _sfc_main } from "./MultiSelect.vue_vue_type_script_setup_true_lang-90c4d340.js";
2
+ import "./index-ca6799de.js";
3
3
  export {
4
4
  _sfc_main as default
5
5
  };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, A as computed, l as resolveComponent, o as openBlock, c as createElementBlock, b as createBaseVNode, t as toDisplayString, m as createVNode, p as withCtx, F as Fragment, D as renderList, x as createBlock } from "./index-fb6493ae.js";
1
+ import { d as defineComponent, G as computed, y as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, z as createVNode, A as withCtx, K as Fragment, L as renderList, C as createBlock } from "./index-ca6799de.js";
2
2
  const _hoisted_1 = { class: "component-container" };
3
3
  const _hoisted_2 = { class: "listbox-subtitle" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({