Flowfile 0.5.6__py3-none-any.whl → 0.6.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.
Files changed (256) hide show
  1. flowfile/api.py +8 -6
  2. flowfile/web/static/assets/{AdminView-c2c7942b.js → AdminView-C4K1DdHI.js} +28 -33
  3. flowfile/web/static/assets/{CloudConnectionView-7a3042c6.js → CloudConnectionView-BZbPvPUL.js} +39 -50
  4. flowfile/web/static/assets/{CloudStorageReader-24c54524.css → CloudStorageReader-BDByiqPI.css} +25 -25
  5. flowfile/web/static/assets/{CloudStorageReader-709c4037.js → CloudStorageReader-DLVukNJ7.js} +30 -35
  6. flowfile/web/static/assets/{CloudStorageWriter-604c51a8.js → CloudStorageWriter-Bfi-C1QW.js} +32 -37
  7. flowfile/web/static/assets/{CloudStorageWriter-60547855.css → CloudStorageWriter-y8jL8yjG.css} +24 -24
  8. flowfile/web/static/assets/{ColumnActionInput-d63d6746.js → ColumnActionInput-BpiCApw9.js} +7 -12
  9. flowfile/web/static/assets/{ColumnSelector-0c8cd1cd.js → ColumnSelector-CEAwedI7.js} +1 -2
  10. flowfile/web/static/assets/ContextMenu-CdojQu0w.js +9 -0
  11. flowfile/web/static/assets/ContextMenu-D12mhsy1.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-EWUR98va.js +9 -0
  13. flowfile/web/static/assets/{ContextMenu.vue_vue_type_script_setup_true_lang-774c517c.js → ContextMenu.vue_vue_type_script_setup_true_lang-I4rXXd6G.js} +4 -5
  14. flowfile/web/static/assets/{CrossJoin-38e5b99a.js → CrossJoin-BOFfxkJO.js} +19 -18
  15. flowfile/web/static/assets/{CrossJoin-71b4cc10.css → CrossJoin-Cmbyt9im.css} +18 -18
  16. flowfile/web/static/assets/{CustomNode-76e8f3f5.js → CustomNode-Bhpezobq.js} +12 -17
  17. flowfile/web/static/assets/{DatabaseConnectionSettings-38155669.js → DatabaseConnectionSettings-Dw3bSJKB.js} +10 -11
  18. flowfile/web/static/assets/{DatabaseReader-5bf8c75b.css → DatabaseReader-D6pUNUCs.css} +21 -21
  19. flowfile/web/static/assets/{DatabaseReader-2e549c8f.js → DatabaseReader-m87ghlw0.js} +36 -34
  20. flowfile/web/static/assets/{DatabaseView-dc877c29.js → DatabaseView-CisSAtpe.js} +30 -38
  21. flowfile/web/static/assets/{DatabaseWriter-ffb91864.js → DatabaseWriter-Bbj9JLdL.js} +33 -35
  22. flowfile/web/static/assets/{DatabaseWriter-bdcf2c8b.css → DatabaseWriter-RBqdFLj8.css} +17 -17
  23. flowfile/web/static/assets/{DesignerView-a4466dab.js → DesignerView-DemDevTQ.js} +1752 -2054
  24. flowfile/web/static/assets/{DesignerView-71d4e9a1.css → DesignerView-Dm6OzlIc.css} +209 -168
  25. flowfile/web/static/assets/{DocumentationView-979afc84.js → DocumentationView-BrC1ZR3H.js} +3 -4
  26. flowfile/web/static/assets/{ExploreData-e4b92aaf.js → ExploreData-BMKcDuRb.js} +8 -10
  27. flowfile/web/static/assets/{ExternalSource-d08e7227.js → ExternalSource-BXrNNS-f.js} +40 -42
  28. flowfile/web/static/assets/{ExternalSource-7ac7373f.css → ExternalSource-NB6WVl5R.css} +14 -14
  29. flowfile/web/static/assets/{Filter-7add806d.js → Filter-C2MjsN6P.js} +36 -33
  30. flowfile/web/static/assets/{Filter-7494ea97.css → Filter-DCMGGuGC.css} +9 -9
  31. flowfile/web/static/assets/{Formula-53d58c43.css → Formula-BYafbDj8.css} +4 -4
  32. flowfile/web/static/assets/{Formula-36ab24d2.js → Formula-ufuy4mVD.js} +27 -26
  33. flowfile/web/static/assets/{FuzzyMatch-ad6361d6.css → FuzzyMatch-BGJAwgd0.css} +42 -42
  34. flowfile/web/static/assets/{FuzzyMatch-cc01bb04.js → FuzzyMatch-BOHODq3h.js} +36 -38
  35. flowfile/web/static/assets/{GraphSolver-4fb98f3b.js → GraphSolver-B6ZzpNGO.js} +23 -21
  36. flowfile/web/static/assets/{GraphSolver-4b4d7db9.css → GraphSolver-DFN83sj3.css} +4 -4
  37. flowfile/web/static/assets/{GroupBy-b3c8f429.js → GroupBy-B9BRNcfe.js} +30 -29
  38. flowfile/web/static/assets/{Sort-4abb7fae.css → GroupBy-x4ooP5np.css} +1 -1
  39. flowfile/web/static/assets/Join-Bx_g5bZz.css +118 -0
  40. flowfile/web/static/assets/{Join-096b7b26.js → Join-DsBEy1IH.js} +48 -43
  41. flowfile/web/static/assets/{LoginView-c33a246a.js → LoginView-Ct0rhdcO.js} +1 -2
  42. flowfile/web/static/assets/{ManualInput-39111f19.css → ManualInput-DlZmtMdt.css} +48 -48
  43. flowfile/web/static/assets/{ManualInput-7307e9b1.js → ManualInput-bC4BUgnG.js} +40 -41
  44. flowfile/web/static/assets/{MultiSelect-14822c48.js → MultiSelect-DIQ8PuTC.js} +2 -2
  45. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-90c4d340.js → MultiSelect.vue_vue_type_script_setup_true_lang-BefHfqTI.js} +1 -1
  46. flowfile/web/static/assets/{NodeDesigner-5036c392.js → NodeDesigner-D39yzr2k.js} +178 -208
  47. flowfile/web/static/assets/{NodeDesigner-94cd4dd3.css → NodeDesigner-R0l6sYyY.css} +76 -76
  48. flowfile/web/static/assets/{NumericInput-15cf3b72.js → NumericInput-DMSX3oOr.js} +2 -2
  49. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-91e679d7.js → NumericInput.vue_vue_type_script_setup_true_lang-d0YlVHAl.js} +1 -1
  50. flowfile/web/static/assets/{Output-1f8ed42c.js → Output-D0VoXGcW.js} +26 -34
  51. flowfile/web/static/assets/{Output-692dd25d.css → Output-DsmglIDy.css} +5 -5
  52. flowfile/web/static/assets/{Pivot-0e153f4e.js → Pivot-BnMB4sEe.js} +26 -26
  53. flowfile/web/static/assets/{Pivot-0eda81b4.css → Pivot-qKTyWxop.css} +4 -4
  54. flowfile/web/static/assets/{PivotValidation-81ec2a33.js → PivotValidation-B2lWvugt.js} +7 -9
  55. flowfile/web/static/assets/{PivotValidation-5a4f7c79.js → PivotValidation-BPlhRjpL.js} +7 -9
  56. flowfile/web/static/assets/{PolarsCode-a39f15ac.js → PolarsCode-5h0tHnWR.js} +22 -20
  57. flowfile/web/static/assets/{PopOver-ddcfe4f6.js → PopOver-BHpt5rsj.js} +5 -9
  58. flowfile/web/static/assets/{PopOver-d96599db.css → PopOver-CyYM4-rV.css} +1 -1
  59. flowfile/web/static/assets/{Read-90f366bc.css → Read-DJxkrTb_.css} +10 -10
  60. flowfile/web/static/assets/Read-TsLEFh3B.js +227 -0
  61. flowfile/web/static/assets/{RecordCount-e9048ccd.js → RecordCount-DkVixq9v.js} +18 -17
  62. flowfile/web/static/assets/{RecordId-ad02521d.js → RecordId-C2UEGlCf.js} +42 -39
  63. flowfile/web/static/assets/{SQLQueryComponent-2eeecf0b.js → SQLQueryComponent-Dr5KMoD3.js} +2 -3
  64. flowfile/web/static/assets/{Sample-9a68c23d.js → Sample-Cb3eQNmd.js} +30 -30
  65. flowfile/web/static/assets/{SecretSelector-2429f35a.js → SecretSelector-De2L2bSx.js} +3 -4
  66. flowfile/web/static/assets/{SecretsView-c6afc915.js → SecretsView-CheC9BPV.js} +13 -16
  67. flowfile/web/static/assets/{Select-fcd002b6.js → Select-CI8TloRs.js} +41 -36
  68. flowfile/web/static/assets/{SettingsSection-5ce15962.js → SettingsSection-B39ulIiI.js} +1 -2
  69. flowfile/web/static/assets/{SettingsSection-c6b1362c.js → SettingsSection-BiCc7S9h.js} +1 -2
  70. flowfile/web/static/assets/{SettingsSection-cebb91d5.js → SettingsSection-CITK_R7o.js} +2 -3
  71. flowfile/web/static/assets/{SettingsSection-26fe48d4.css → SettingsSection-D2GgY-Aq.css} +4 -4
  72. flowfile/web/static/assets/{SetupView-2d12e01f.js → SetupView-C1aXRDvp.js} +1 -2
  73. flowfile/web/static/assets/{SingleSelect-b67de4eb.js → SingleSelect-Kr_hz90m.js} +2 -2
  74. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-eedb70eb.js → SingleSelect.vue_vue_type_script_setup_true_lang-Rxht5Z5N.js} +1 -1
  75. flowfile/web/static/assets/{SliderInput-fd8134ac.js → SliderInput-CLqpCxCb.js} +1 -2
  76. flowfile/web/static/assets/{GroupBy-5792782d.css → Sort-BIt2kc_p.css} +1 -1
  77. flowfile/web/static/assets/{Sort-c005a573.js → Sort-Dnw_J6Qi.js} +25 -25
  78. flowfile/web/static/assets/{TextInput-1bb31dab.js → TextInput-wdlunIZC.js} +2 -2
  79. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-a51fe730.js → TextInput.vue_vue_type_script_setup_true_lang-Bcj3ywzv.js} +1 -1
  80. flowfile/web/static/assets/{TextToRows-4f363753.js → TextToRows-BhtyGWPq.js} +42 -49
  81. flowfile/web/static/assets/{TextToRows-12afb4f4.css → TextToRows-DivDOLDx.css} +9 -9
  82. flowfile/web/static/assets/{ToggleSwitch-ca0f2e5e.js → ToggleSwitch-B-6WzfFf.js} +2 -2
  83. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-49aa41d8.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-Cj8LqT-b.js} +1 -1
  84. flowfile/web/static/assets/{UnavailableFields-f6147968.js → UnavailableFields-Yf6XSqFB.js} +2 -3
  85. flowfile/web/static/assets/{Union-c65f17b7.js → Union-CwpjeKYC.js} +20 -23
  86. flowfile/web/static/assets/{Unpivot-b6ad6427.css → Union-DQJcpp3-.css} +6 -6
  87. flowfile/web/static/assets/{Unique-a1d96fb2.js → Unique-25v3urqH.js} +75 -74
  88. flowfile/web/static/assets/{Union-d6a8d7d5.css → Unpivot-Deqh1gtI.css} +6 -6
  89. flowfile/web/static/assets/{Unpivot-c2657ff3.js → Unpivot-sYcTTXrq.js} +34 -27
  90. flowfile/web/static/assets/{UnpivotValidation-28e29a3b.js → UnpivotValidation-C5DDEKY2.js} +5 -7
  91. flowfile/web/static/assets/VueGraphicWalker-B8l1_Z92.js +131 -0
  92. flowfile/web/static/assets/VueGraphicWalker-Da_1-3me.css +21 -0
  93. flowfile/web/static/assets/{api-df48ec50.js → api-C0LvF-0C.js} +1 -1
  94. flowfile/web/static/assets/{api-ee542cf7.js → api-DaC83EO_.js} +1 -1
  95. flowfile/web/static/assets/client-C8Ygr6Gb.js +42 -0
  96. flowfile/web/static/assets/{dropDown-7576a76a.js → dropDown-D5YXaPRR.js} +7 -12
  97. flowfile/web/static/assets/{fullEditor-7583bef5.js → fullEditor-BVYnWm05.js} +300 -18
  98. flowfile/web/static/assets/genericNodeSettings-2wAu-QKn.css +75 -0
  99. flowfile/web/static/assets/genericNodeSettings-BBtW_Cpz.js +590 -0
  100. flowfile/web/static/assets/{VueGraphicWalker-2fc3ddd4.js → graphic-walker.es-VrK6vdGE.js} +92305 -89751
  101. flowfile/web/static/assets/index-BCJxPfM5.js +6693 -0
  102. flowfile/web/static/assets/{index-057d770d.js → index-CHPMUR0d.js} +150 -170
  103. flowfile/web/static/assets/index-DPkoZWq8.js +32 -0
  104. flowfile/web/static/assets/index-DnW_KC_I.js +277 -0
  105. flowfile/web/static/assets/index-UFXyfirV.css +10797 -0
  106. flowfile/web/static/assets/index-bcuE0Z0p.js +87456 -0
  107. flowfile/web/static/assets/{node.types-2c15bb7e.js → node.types-Dl4gtSW9.js} +2 -2
  108. flowfile/web/static/assets/{outputCsv-c492b15e.js → outputCsv-BELuBiJZ.js} +1 -2
  109. flowfile/web/static/assets/outputCsv-CdGkv-fN.css +2581 -0
  110. flowfile/web/static/assets/{outputExcel-13bfa10f.js → outputExcel-D0TTNM79.js} +1 -2
  111. flowfile/web/static/assets/{outputParquet-9be1523a.js → outputParquet-Cz9EbRHj.js} +1 -2
  112. flowfile/web/static/assets/{readCsv-5a49a8c9.js → readCsv-7bd3kUMI.js} +1 -2
  113. flowfile/web/static/assets/{readExcel-27c30ad8.js → readExcel-Cq8CCwIv.js} +3 -4
  114. flowfile/web/static/assets/{readParquet-c5244ad5.css → readParquet-CRDmBrsp.css} +4 -4
  115. flowfile/web/static/assets/{readParquet-446bde68.js → readParquet-DjR4mRaj.js} +4 -5
  116. flowfile/web/static/assets/{secrets.api-34431884.js → secrets.api-C9o2KE5V.js} +1 -1
  117. flowfile/web/static/assets/{selectDynamic-5754a2b1.js → selectDynamic-Bl5FVsME.js} +5 -7
  118. flowfile/web/static/assets/useNodeSettings-dMS9zmh_.js +69 -0
  119. flowfile/web/static/assets/{vue-codemirror.esm-8f46fb36.js → vue-codemirror.esm-CwaYwln0.js} +3469 -3064
  120. flowfile/web/static/assets/{vue-content-loader.es-808fe33a.js → vue-content-loader.es-CMoRXo7N.js} +3 -3
  121. flowfile/web/static/index.html +2 -3
  122. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/METADATA +2 -1
  123. flowfile-0.6.1.dist-info/RECORD +417 -0
  124. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/WHEEL +1 -1
  125. flowfile_core/auth/password.py +1 -0
  126. flowfile_core/database/init_db.py +7 -5
  127. flowfile_core/fileExplorer/funcs.py +2 -2
  128. flowfile_core/flowfile/code_generator/code_generator.py +13 -11
  129. flowfile_core/flowfile/filter_expressions.py +327 -0
  130. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +61 -59
  131. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +3 -29
  132. flowfile_core/flowfile/flow_data_engine/flow_file_column/utils.py +45 -14
  133. flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +20 -3
  134. flowfile_core/flowfile/flow_data_engine/subprocess_operations/streaming.py +206 -0
  135. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +146 -24
  136. flowfile_core/flowfile/flow_graph.py +504 -190
  137. flowfile_core/flowfile/flow_node/__init__.py +32 -0
  138. flowfile_core/flowfile/flow_node/executor.py +404 -0
  139. flowfile_core/flowfile/flow_node/flow_node.py +207 -106
  140. flowfile_core/flowfile/flow_node/models.py +40 -0
  141. flowfile_core/flowfile/flow_node/output_field_config_applier.py +217 -0
  142. flowfile_core/flowfile/flow_node/schema_utils.py +78 -0
  143. flowfile_core/flowfile/flow_node/state.py +155 -0
  144. flowfile_core/flowfile/history_manager.py +401 -0
  145. flowfile_core/flowfile/manage/compatibility_enhancements.py +9 -0
  146. flowfile_core/flowfile/manage/io_flowfile.py +3 -1
  147. flowfile_core/flowfile/sources/external_sources/sql_source/models.py +20 -4
  148. flowfile_core/flowfile/util/execution_orderer.py +89 -36
  149. flowfile_core/routes/auth.py +8 -9
  150. flowfile_core/routes/routes.py +320 -101
  151. flowfile_core/routes/user_defined_components.py +18 -16
  152. flowfile_core/schemas/history_schema.py +220 -0
  153. flowfile_core/schemas/input_schema.py +130 -6
  154. flowfile_core/schemas/schemas.py +9 -0
  155. flowfile_core/schemas/transform_schema.py +27 -5
  156. flowfile_core/schemas/yaml_types.py +23 -5
  157. flowfile_frame/adding_expr.py +18 -126
  158. flowfile_frame/callable_utils.py +261 -0
  159. flowfile_frame/database/connection_manager.py +0 -1
  160. flowfile_frame/expr.py +8 -4
  161. flowfile_frame/flow_frame.py +41 -41
  162. flowfile_frame/lazy.py +3 -12
  163. flowfile_frame/lazy_methods.py +5 -64
  164. flowfile_frame/utils.py +13 -32
  165. flowfile_worker/funcs.py +6 -4
  166. flowfile_worker/main.py +2 -0
  167. flowfile_worker/models.py +31 -11
  168. flowfile_worker/routes.py +60 -35
  169. flowfile_worker/spawner.py +7 -1
  170. flowfile_worker/streaming.py +335 -0
  171. flowfile/web/static/assets/ContextMenu-366bf1b4.js +0 -9
  172. flowfile/web/static/assets/ContextMenu-85cf5b44.js +0 -9
  173. flowfile/web/static/assets/ContextMenu-9d28ae6d.js +0 -9
  174. flowfile/web/static/assets/Join-28b5e18f.css +0 -109
  175. flowfile/web/static/assets/Read-39b63932.js +0 -222
  176. flowfile/web/static/assets/VueGraphicWalker-430f0b86.css +0 -6
  177. flowfile/web/static/assets/database_reader-ce1e55f3.svg +0 -24
  178. flowfile/web/static/assets/database_writer-b4ad0753.svg +0 -23
  179. flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  180. flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  181. flowfile/web/static/assets/genericNodeSettings-0155288b.js +0 -136
  182. flowfile/web/static/assets/genericNodeSettings-3b2507ea.css +0 -46
  183. flowfile/web/static/assets/index-aeec439d.js +0 -38
  184. flowfile/web/static/assets/index-ca6799de.js +0 -62760
  185. flowfile/web/static/assets/index-d60c9dd4.css +0 -10777
  186. flowfile/web/static/assets/nodeInput-d478b9ac.js +0 -2
  187. flowfile/web/static/assets/outputCsv-cc84e09f.css +0 -2499
  188. flowfile-0.5.6.dist-info/RECORD +0 -407
  189. /flowfile/web/static/assets/{AdminView-f53bad23.css → AdminView-B2Dthl3u.css} +0 -0
  190. /flowfile/web/static/assets/{CloudConnectionView-cf85f943.css → CloudConnectionView-BdFYGWV7.css} +0 -0
  191. /flowfile/web/static/assets/{ColumnActionInput-c44b7aee.css → ColumnActionInput-dCasSIC9.css} +0 -0
  192. /flowfile/web/static/assets/{ColumnSelector-371637fb.css → ColumnSelector-j6sEOjo1.css} +0 -0
  193. /flowfile/web/static/assets/{CustomNode-edb9b939.css → CustomNode-VPlajG0j.css} +0 -0
  194. /flowfile/web/static/assets/{DatabaseConnectionSettings-c20a1e16.css → DatabaseConnectionSettings-B78hXYgu.css} +0 -0
  195. /flowfile/web/static/assets/{DatabaseView-6655afd6.css → DatabaseView-B-_adk1s.css} +0 -0
  196. /flowfile/web/static/assets/{DocumentationView-9ea6e871.css → DocumentationView-CL7iipFL.css} +0 -0
  197. /flowfile/web/static/assets/{ExploreData-10c5acc8.css → ExploreData-DHjv0Plr.css} +0 -0
  198. /flowfile/web/static/assets/{LoginView-d325d632.css → LoginView-DN1BXY3e.css} +0 -0
  199. /flowfile/web/static/assets/{PivotValidation-0e905b1a.css → PivotValidation-DK-FARWe.css} +0 -0
  200. /flowfile/web/static/assets/{PivotValidation-41b57ad6.css → PivotValidation-FUa9F47u.css} +0 -0
  201. /flowfile/web/static/assets/{PolarsCode-2b1f1f23.css → PolarsCode-G-gRSrSc.css} +0 -0
  202. /flowfile/web/static/assets/{SQLQueryComponent-edb90b98.css → SQLQueryComponent-oAbWw0r-.css} +0 -0
  203. /flowfile/web/static/assets/{SecretSelector-6329f743.css → SecretSelector-CJSadIZx.css} +0 -0
  204. /flowfile/web/static/assets/{SecretsView-aa291340.css → SecretsView-DbzIRAba.css} +0 -0
  205. /flowfile/web/static/assets/{SettingsSection-8f980839.css → SettingsSection-BGcJnH6q.css} +0 -0
  206. /flowfile/web/static/assets/{SettingsSection-07fbbc39.css → SettingsSection-DDWn_EGW.css} +0 -0
  207. /flowfile/web/static/assets/{SetupView-ec26f76a.css → SetupView-CI1nd-5Z.css} +0 -0
  208. /flowfile/web/static/assets/{SliderInput-f2e4f23c.css → SliderInput-BRk-q_Dk.css} +0 -0
  209. /flowfile/web/static/assets/{UnavailableFields-394a1f78.css → UnavailableFields-DRKDImKe.css} +0 -0
  210. /flowfile/web/static/assets/{Unique-2b705521.css → Unique-Absb0aON.css} +0 -0
  211. /flowfile/web/static/assets/{UnpivotValidation-d5ca3b7b.css → UnpivotValidation-DSBkFgS-.css} +0 -0
  212. /flowfile/web/static/assets/{airbyte-292aa232.png → airbyte-W0xvIXwZ.png} +0 -0
  213. /flowfile/web/static/assets/{cloud_storage_reader-aa1415d6.png → cloud_storage_reader-3GpSCk90.png} +0 -0
  214. /flowfile/web/static/assets/{cross_join-d30c0290.png → cross_join-B0qpgYoV.png} +0 -0
  215. /flowfile/web/static/assets/{dropDown-1d6acbd9.css → dropDown-CE0VF5_P.css} +0 -0
  216. /flowfile/web/static/assets/{explore_data-8a0a2861.png → explore_data-tX6olPPL.png} +0 -0
  217. /flowfile/web/static/assets/{fa-brands-400-808443ae.ttf → fa-brands-400-D1LuMI3I.ttf} +0 -0
  218. /flowfile/web/static/assets/{fa-brands-400-d7236a19.woff2 → fa-brands-400-D_cYUPeE.woff2} +0 -0
  219. /flowfile/web/static/assets/{fa-regular-400-e3456d12.woff2 → fa-regular-400-BjRzuEpd.woff2} +0 -0
  220. /flowfile/web/static/assets/{fa-regular-400-54cf6086.ttf → fa-regular-400-DZaxPHgR.ttf} +0 -0
  221. /flowfile/web/static/assets/{fa-solid-900-aa759986.woff2 → fa-solid-900-CTAAxXor.woff2} +0 -0
  222. /flowfile/web/static/assets/{fa-solid-900-d2f05935.ttf → fa-solid-900-D0aA9rwL.ttf} +0 -0
  223. /flowfile/web/static/assets/{fa-v4compatibility-0ce9033c.woff2 → fa-v4compatibility-C9RhG_FT.woff2} +0 -0
  224. /flowfile/web/static/assets/{fa-v4compatibility-30f6abf6.ttf → fa-v4compatibility-CCth-dXg.ttf} +0 -0
  225. /flowfile/web/static/assets/{filter-d7708bda.png → filter-WRdZyUOw.png} +0 -0
  226. /flowfile/web/static/assets/{formula-eeeb1611.png → formula-CgM7uHVI.png} +0 -0
  227. /flowfile/web/static/assets/{fullEditor-fe9f7e18.css → fullEditor-CmDI7T9F.css} +0 -0
  228. /flowfile/web/static/assets/{fuzzy_match-40c161b2.png → fuzzy_match-Yon3k5Tc.png} +0 -0
  229. /flowfile/web/static/assets/{graph_solver-8b7888b8.png → graph_solver-BlMrBttD.png} +0 -0
  230. /flowfile/web/static/assets/{group_by-80561fc3.png → group_by-Gici0CSS.png} +0 -0
  231. /flowfile/web/static/assets/{input_data-ab2eb678.png → input_data-BRdGecLc.png} +0 -0
  232. /flowfile/web/static/assets/{join-349043ae.png → join-BITWRu73.png} +0 -0
  233. /flowfile/web/static/assets/{manual_input-ae98f31d.png → manual_input-CFvo_EUS.png} +0 -0
  234. /flowfile/web/static/assets/{old_join-5d0eb604.png → old_join-B9bkpPqv.png} +0 -0
  235. /flowfile/web/static/assets/{output-06ec0371.png → output-Dp7-ZpC4.png} +0 -0
  236. /flowfile/web/static/assets/{outputExcel-f5d272b2.css → outputExcel-CKgRe2iT.css} +0 -0
  237. /flowfile/web/static/assets/{outputParquet-54597c3c.css → outputParquet-d7j407cK.css} +0 -0
  238. /flowfile/web/static/assets/{pivot-9660df51.png → pivot-DSxKhNlD.png} +0 -0
  239. /flowfile/web/static/assets/{polars_code-05ce5dc6.png → polars_code-DxiztZ1c.png} +0 -0
  240. /flowfile/web/static/assets/{readCsv-3bfac4c3.css → readCsv-BG-1Jilp.css} +0 -0
  241. /flowfile/web/static/assets/{readExcel-3db6b763.css → readExcel-DBQXKPtC.css} +0 -0
  242. /flowfile/web/static/assets/{record_count-dab44eb5.png → record_count-DCeaLtpS.png} +0 -0
  243. /flowfile/web/static/assets/{record_id-0b15856b.png → record_id-FeUjyIFh.png} +0 -0
  244. /flowfile/web/static/assets/{sample-693a88b5.png → sample-DeqfRiB-.png} +0 -0
  245. /flowfile/web/static/assets/{select-b0d0437a.png → select-D4JjbdjS.png} +0 -0
  246. /flowfile/web/static/assets/{selectDynamic-f2fb394f.css → selectDynamic-CjeTPUUo.css} +0 -0
  247. /flowfile/web/static/assets/{sort-2aa579f0.png → sort-DGwUG9WS.png} +0 -0
  248. /flowfile/web/static/assets/{summarize-2a099231.png → summarize-DFaNHpfp.png} +0 -0
  249. /flowfile/web/static/assets/{text_to_rows-859b29ea.png → text_to_rows-BdiAewrN.png} +0 -0
  250. /flowfile/web/static/assets/{union-2d8609f4.png → union-DCK-LSMq.png} +0 -0
  251. /flowfile/web/static/assets/{unique-1958b98a.png → unique-CdP3zZIq.png} +0 -0
  252. /flowfile/web/static/assets/{unpivot-d3cb4b5b.png → unpivot-CHttrEt8.png} +0 -0
  253. /flowfile/web/static/assets/{user-defined-icon-0ae16c90.png → user-defined-icon-BcIp2Vzo.png} +0 -0
  254. /flowfile/web/static/assets/{view-7a0f0be1.png → view-DUSRwjvq.png} +0 -0
  255. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/entry_points.txt +0 -0
  256. {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,12 +1,10 @@
1
- import { C as CodeLoader } from "./vue-content-loader.es-808fe33a.js";
2
- import { d as defineComponent, r as ref, l as useNodeStore, o as openBlock, c as createElementBlock, z as createVNode, A as withCtx, a as createBaseVNode, C as createBlock, B as unref, g as _export_sfc } from "./index-ca6799de.js";
3
- import { s as selectDynamic } from "./selectDynamic-5754a2b1.js";
4
- import { G as GenericNodeSettings } from "./genericNodeSettings-0155288b.js";
5
- import "./UnavailableFields-f6147968.js";
6
- import "./PopOver-ddcfe4f6.js";
7
- import "./DesignerView-a4466dab.js";
8
- import "./index-057d770d.js";
9
- import "./vue-codemirror.esm-8f46fb36.js";
1
+ import { C as CodeLoader } from "./vue-content-loader.es-CMoRXo7N.js";
2
+ import { d as defineComponent, l as useNodeStore, c as createElementBlock, z as createVNode, B as withCtx, a as createBaseVNode, A as unref, C as createBlock, r as ref, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
3
+ import { u as useNodeSettings } from "./useNodeSettings-dMS9zmh_.js";
4
+ import { s as selectDynamic } from "./selectDynamic-Bl5FVsME.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-BBtW_Cpz.js";
6
+ import "./UnavailableFields-Yf6XSqFB.js";
7
+ import "./PopOver-BHpt5rsj.js";
10
8
  const _hoisted_1 = { key: 0 };
11
9
  const _hoisted_2 = { class: "listbox-wrapper" };
12
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -16,6 +14,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16
14
  const nodeStore = useNodeStore();
17
15
  const dataLoaded = ref(false);
18
16
  const nodeCrossJoin = ref(null);
17
+ const { saveSettings, pushNodeData, handleGenericSettingsUpdate } = useNodeSettings({
18
+ nodeRef: nodeCrossJoin
19
+ });
19
20
  const updateSelectInputsHandler = (updatedInputs, isLeft) => {
20
21
  if (isLeft && nodeCrossJoin.value) {
21
22
  nodeCrossJoin.value.cross_join_input.left_select.renames = updatedInputs;
@@ -33,19 +34,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
33
34
  dataLoaded.value = true;
34
35
  }
35
36
  };
36
- const pushNodeData = async () => {
37
- console.log("Pushing node data");
38
- nodeStore.updateSettings(nodeCrossJoin);
39
- };
40
37
  __expose({
41
38
  loadNodeData,
42
- pushNodeData
39
+ pushNodeData,
40
+ saveSettings
43
41
  });
44
42
  return (_ctx, _cache) => {
45
43
  return dataLoaded.value && nodeCrossJoin.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
46
44
  createVNode(GenericNodeSettings, {
47
45
  modelValue: nodeCrossJoin.value,
48
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeCrossJoin.value = $event)
46
+ "onUpdate:modelValue": [
47
+ _cache[2] || (_cache[2] = ($event) => nodeCrossJoin.value = $event),
48
+ unref(handleGenericSettingsUpdate)
49
+ ],
50
+ onRequestSave: unref(saveSettings)
49
51
  }, {
50
52
  default: withCtx(() => {
51
53
  var _a, _b;
@@ -73,13 +75,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
73
75
  ];
74
76
  }),
75
77
  _: 1
76
- }, 8, ["modelValue"])
78
+ }, 8, ["modelValue", "onUpdate:modelValue", "onRequestSave"])
77
79
  ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
78
80
  };
79
81
  }
80
82
  });
81
- const CrossJoin_vue_vue_type_style_index_0_scoped_46e97305_lang = "";
82
- const CrossJoin = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-46e97305"]]);
83
+ const CrossJoin = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-789bbdab"]]);
83
84
  export {
84
85
  CrossJoin as default
85
86
  };
@@ -1,10 +1,10 @@
1
1
 
2
- .selectors-row[data-v-46e97305] {
2
+ .selectors-row[data-v-789bbdab] {
3
3
  display: flex;
4
4
  justify-content: space-between;
5
5
  margin-bottom: 10px; /* Spacing between rows */
6
6
  }
7
- .context-menu[data-v-46e97305] {
7
+ .context-menu[data-v-789bbdab] {
8
8
  position: fixed;
9
9
  z-index: 1000;
10
10
  border: 1px solid #ccc;
@@ -14,7 +14,7 @@
14
14
  border-radius: 4px;
15
15
  user-select: none;
16
16
  }
17
- .context-menu button[data-v-46e97305] {
17
+ .context-menu button[data-v-789bbdab] {
18
18
  display: block;
19
19
  background: none;
20
20
  border: none;
@@ -24,17 +24,17 @@
24
24
  cursor: pointer;
25
25
  z-index: 100;
26
26
  }
27
- .context-menu button[data-v-46e97305]:hover {
27
+ .context-menu button[data-v-789bbdab]:hover {
28
28
  background-color: #f0f0f0;
29
29
  }
30
- .table-wrapper[data-v-46e97305] {
30
+ .table-wrapper[data-v-789bbdab] {
31
31
  max-height: 250px; /* Adjust this value as needed */
32
32
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* subtle shadow for depth */
33
33
  border-radius: 8px; /* rounded corners */
34
34
  overflow: auto; /* ensures the rounded corners are applied to the child elements */
35
35
  margin: 5px; /* adds a small margin around the table */
36
36
  }
37
- .context-menu[data-v-46e97305] {
37
+ .context-menu[data-v-789bbdab] {
38
38
  position: fixed;
39
39
  z-index: 1000;
40
40
  border: 1px solid #ccc;
@@ -42,39 +42,39 @@
42
42
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
43
43
  border-radius: 4px;
44
44
  }
45
- .context-menu ul[data-v-46e97305] {
45
+ .context-menu ul[data-v-789bbdab] {
46
46
  list-style: none;
47
47
  padding: 0;
48
48
  margin: 0;
49
49
  }
50
- .context-menu li[data-v-46e97305] {
50
+ .context-menu li[data-v-789bbdab] {
51
51
  padding: 8px 16px;
52
52
  cursor: pointer;
53
53
  }
54
- .context-menu li[data-v-46e97305]:hover {
54
+ .context-menu li[data-v-789bbdab]:hover {
55
55
  background-color: #f0f0f0;
56
56
  }
57
- .selectors-container[data-v-46e97305] {
57
+ .selectors-container[data-v-789bbdab] {
58
58
  display: flex;
59
59
  flex-direction: column;
60
60
  }
61
- .selectors-row[data-v-46e97305] {
61
+ .selectors-row[data-v-789bbdab] {
62
62
  display: flex;
63
63
  justify-content: space-between;
64
64
  align-items: center;
65
65
  }
66
- .add-button-container[data-v-46e97305] {
66
+ .add-button-container[data-v-789bbdab] {
67
67
  padding-left: 20px; /* Adjust as needed */
68
68
  display: flex;
69
69
  align-items: center;
70
70
  }
71
- .action-buttons[data-v-46e97305] {
71
+ .action-buttons[data-v-789bbdab] {
72
72
  display: flex;
73
73
  align-items: center;
74
74
  justify-content: flex-end; /* Adjust if needed */
75
75
  }
76
- .remove-join-button[data-v-46e97305],
77
- .add-join-button[data-v-46e97305] {
76
+ .remove-join-button[data-v-789bbdab],
77
+ .add-join-button[data-v-789bbdab] {
78
78
  cursor: pointer;
79
79
  margin-left: 10px; /* Space between buttons */
80
80
  padding: 0 6px; /* Adjust padding */
@@ -83,17 +83,17 @@
83
83
  min-width: 30px; /* Minimum width to ensure buttons don't shrink */
84
84
  text-align: center; /* Ensure the symbols are centered */
85
85
  }
86
- .selectors-header[data-v-46e97305] {
86
+ .selectors-header[data-v-789bbdab] {
87
87
  display: flex;
88
88
  justify-content: space-between;
89
89
  padding: 0 15px; /* Adjust padding for finer control */
90
90
  }
91
- .selectors-title[data-v-46e97305] {
91
+ .selectors-title[data-v-789bbdab] {
92
92
  flex: 1; /* Adjust this based on your needs */
93
93
  text-align: center; /* Center the titles */
94
94
  padding: 0 10px; /* Add padding to ensure alignment with the columns below */
95
95
  }
96
- .action-buttons[data-v-46e97305] {
96
+ .action-buttons[data-v-789bbdab] {
97
97
  flex-basis: 60px; /* Adjust according to the width of your buttons */
98
98
  display: flex;
99
99
  justify-content: center; /* Center the buttons within the action column */
@@ -1,19 +1,15 @@
1
- import { k as axios, d as defineComponent, r as ref, l as useNodeStore, o as openBlock, c as createElementBlock, a as createBaseVNode, f as createTextVNode, t as toDisplayString, e as createCommentVNode, z as createVNode, A as withCtx, K as Fragment, L as renderList, i as withDirectives, ap as vShow, C as createBlock, g as _export_sfc } from "./index-ca6799de.js";
2
- import { G as GenericNodeSettings } from "./genericNodeSettings-0155288b.js";
3
- import { _ as _sfc_main$3 } from "./MultiSelect.vue_vue_type_script_setup_true_lang-90c4d340.js";
4
- import { _ as _sfc_main$5 } from "./ToggleSwitch.vue_vue_type_script_setup_true_lang-49aa41d8.js";
5
- import { _ as _sfc_main$1 } from "./TextInput.vue_vue_type_script_setup_true_lang-a51fe730.js";
6
- import { _ as _sfc_main$2 } from "./NumericInput.vue_vue_type_script_setup_true_lang-91e679d7.js";
7
- import SliderInput from "./SliderInput-fd8134ac.js";
8
- import { _ as _sfc_main$4 } from "./SingleSelect.vue_vue_type_script_setup_true_lang-eedb70eb.js";
9
- import ColumnSelector from "./ColumnSelector-0c8cd1cd.js";
10
- import SecretSelector from "./SecretSelector-2429f35a.js";
11
- import ColumnActionInput from "./ColumnActionInput-d63d6746.js";
12
- import "./DesignerView-a4466dab.js";
13
- import "./PopOver-ddcfe4f6.js";
14
- import "./index-057d770d.js";
15
- import "./vue-codemirror.esm-8f46fb36.js";
16
- import "./secrets.api-34431884.js";
1
+ import { k as axios, d as defineComponent, l as useNodeStore, c as createElementBlock, a as createBaseVNode, f as createTextVNode, t as toDisplayString, e as createCommentVNode, z as createVNode, B as withCtx, K as Fragment, L as renderList, h as withDirectives, at as vShow, C as createBlock, r as ref, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
+ import { G as GenericNodeSettings } from "./genericNodeSettings-BBtW_Cpz.js";
3
+ import { _ as _sfc_main$3 } from "./MultiSelect.vue_vue_type_script_setup_true_lang-BefHfqTI.js";
4
+ import { _ as _sfc_main$5 } from "./ToggleSwitch.vue_vue_type_script_setup_true_lang-Cj8LqT-b.js";
5
+ import { _ as _sfc_main$1 } from "./TextInput.vue_vue_type_script_setup_true_lang-Bcj3ywzv.js";
6
+ import { _ as _sfc_main$2 } from "./NumericInput.vue_vue_type_script_setup_true_lang-d0YlVHAl.js";
7
+ import SliderInput from "./SliderInput-CLqpCxCb.js";
8
+ import { _ as _sfc_main$4 } from "./SingleSelect.vue_vue_type_script_setup_true_lang-Rxht5Z5N.js";
9
+ import ColumnSelector from "./ColumnSelector-CEAwedI7.js";
10
+ import SecretSelector from "./SecretSelector-De2L2bSx.js";
11
+ import ColumnActionInput from "./ColumnActionInput-BpiCApw9.js";
12
+ import "./secrets.api-C9o2KE5V.js";
17
13
  async function getCustomNodeSchema(flowId, nodeId) {
18
14
  const response = await axios.get(
19
15
  `/user_defined_components/custom-node-schema`,
@@ -223,7 +219,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
223
219
  };
224
220
  }
225
221
  });
226
- const CustomNode_vue_vue_type_style_index_0_scoped_69093399_lang = "";
227
222
  const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-69093399"]]);
228
223
  export {
229
224
  CustomNode as default
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, r as ref, J as onMounted, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, K as Fragment, L as renderList, e as createCommentVNode, g as _export_sfc } from "./index-ca6799de.js";
2
- import { S as SecretsApi } from "./secrets.api-34431884.js";
1
+ import { d as defineComponent, J as onMounted, c as createElementBlock, a as createBaseVNode, t as toDisplayString, K as Fragment, L as renderList, e as createCommentVNode, r as ref, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
+ import { S as SecretsApi } from "./secrets.api-C9o2KE5V.js";
3
3
  const _hoisted_1 = { class: "connection-settings-container" };
4
4
  const _hoisted_2 = { class: "toggle-button" };
5
5
  const _hoisted_3 = {
@@ -70,18 +70,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
70
70
  _cache[8] || (_cache[8] = createBaseVNode("label", { for: "database-type" }, "Database Type", -1)),
71
71
  createBaseVNode("select", {
72
72
  id: "database-type",
73
- value: _ctx.modelValue.database_type,
73
+ value: __props.modelValue.database_type,
74
74
  class: "form-control",
75
75
  onChange: _cache[0] || (_cache[0] = (e) => updateField("database_type", e.target.value))
76
- }, _cache[7] || (_cache[7] = [
76
+ }, [..._cache[7] || (_cache[7] = [
77
77
  createBaseVNode("option", { value: "postgresql" }, "PostgreSQL", -1)
78
- ]), 40, _hoisted_5)
78
+ ])], 40, _hoisted_5)
79
79
  ]),
80
80
  createBaseVNode("div", _hoisted_6, [
81
81
  _cache[9] || (_cache[9] = createBaseVNode("label", { for: "username" }, "Username", -1)),
82
82
  createBaseVNode("input", {
83
83
  id: "username",
84
- value: _ctx.modelValue.username,
84
+ value: __props.modelValue.username,
85
85
  type: "text",
86
86
  class: "form-control",
87
87
  placeholder: "Enter username",
@@ -92,7 +92,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
92
92
  _cache[11] || (_cache[11] = createBaseVNode("label", { for: "password-ref" }, "Password Reference", -1)),
93
93
  createBaseVNode("select", {
94
94
  id: "password-ref",
95
- value: _ctx.modelValue.password_ref,
95
+ value: __props.modelValue.password_ref,
96
96
  class: "form-control",
97
97
  onChange: _cache[2] || (_cache[2] = (e) => updateField("password_ref", e.target.value))
98
98
  }, [
@@ -109,7 +109,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
109
109
  _cache[12] || (_cache[12] = createBaseVNode("label", { for: "host" }, "Host", -1)),
110
110
  createBaseVNode("input", {
111
111
  id: "host",
112
- value: _ctx.modelValue.host,
112
+ value: __props.modelValue.host,
113
113
  type: "text",
114
114
  class: "form-control",
115
115
  placeholder: "Enter host",
@@ -121,7 +121,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
121
121
  _cache[13] || (_cache[13] = createBaseVNode("label", { for: "port" }, "Port", -1)),
122
122
  createBaseVNode("input", {
123
123
  id: "port",
124
- value: _ctx.modelValue.port,
124
+ value: __props.modelValue.port,
125
125
  type: "number",
126
126
  class: "form-control",
127
127
  placeholder: "Enter port",
@@ -132,7 +132,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
132
132
  _cache[14] || (_cache[14] = createBaseVNode("label", { for: "database" }, "Database", -1)),
133
133
  createBaseVNode("input", {
134
134
  id: "database",
135
- value: _ctx.modelValue.database,
135
+ value: __props.modelValue.database,
136
136
  type: "text",
137
137
  class: "form-control",
138
138
  placeholder: "Enter database name",
@@ -145,7 +145,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
145
145
  };
146
146
  }
147
147
  });
148
- const DatabaseConnectionSettings_vue_vue_type_style_index_0_scoped_62ec37a1_lang = "";
149
148
  const DatabaseConnectionSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-62ec37a1"]]);
150
149
  export {
151
150
  DatabaseConnectionSettings as default
@@ -1,33 +1,33 @@
1
1
 
2
- .db-container[data-v-5433b2ea] {
2
+ .db-container[data-v-a46e24bd] {
3
3
  font-family: var(--font-family-base);
4
4
  max-width: 100%;
5
5
  color: var(--color-text-primary);
6
6
  }
7
- .section-subtitle[data-v-5433b2ea] {
7
+ .section-subtitle[data-v-a46e24bd] {
8
8
  margin: 0 0 0.75rem 0;
9
9
  font-size: 0.95rem;
10
10
  font-weight: 600;
11
11
  color: var(--color-text-secondary);
12
12
  }
13
- .query-section[data-v-5433b2ea] {
13
+ .query-section[data-v-a46e24bd] {
14
14
  margin-top: 1rem;
15
15
  padding-top: 1rem;
16
16
  border-top: 1px solid var(--color-border-light);
17
17
  }
18
- .form-row[data-v-5433b2ea] {
18
+ .form-row[data-v-a46e24bd] {
19
19
  display: flex;
20
20
  gap: 0.75rem;
21
21
  margin-bottom: 0.75rem;
22
22
  width: 100%;
23
23
  box-sizing: border-box;
24
24
  }
25
- .half[data-v-5433b2ea] {
25
+ .half[data-v-a46e24bd] {
26
26
  flex: 1;
27
27
  min-width: 0; /* Allow fields to shrink below their content size */
28
28
  max-width: calc(50% - 0.375rem); /* Account for the gap between items */
29
29
  }
30
- .form-control[data-v-5433b2ea] {
30
+ .form-control[data-v-a46e24bd] {
31
31
  width: 100%;
32
32
  padding: 0.5rem;
33
33
  border: 1px solid var(--color-border-primary);
@@ -37,18 +37,18 @@
37
37
  background-color: var(--color-background-primary);
38
38
  color: var(--color-text-primary);
39
39
  }
40
- .form-group[data-v-5433b2ea] {
40
+ .form-group[data-v-a46e24bd] {
41
41
  margin-bottom: 0.75rem;
42
42
  width: 100%;
43
43
  }
44
- label[data-v-5433b2ea] {
44
+ label[data-v-a46e24bd] {
45
45
  display: block;
46
46
  margin-bottom: 0.25rem;
47
47
  font-size: 0.875rem;
48
48
  font-weight: 500;
49
49
  color: var(--color-text-secondary);
50
50
  }
51
- select.form-control[data-v-5433b2ea] {
51
+ select.form-control[data-v-a46e24bd] {
52
52
  appearance: none;
53
53
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
54
54
  background-repeat: no-repeat;
@@ -58,12 +58,12 @@ select.form-control[data-v-5433b2ea] {
58
58
  }
59
59
 
60
60
  /* Validation section styling */
61
- .validation-section[data-v-5433b2ea] {
61
+ .validation-section[data-v-a46e24bd] {
62
62
  margin-top: 1.5rem;
63
63
  padding-top: 1rem;
64
64
  border-top: 1px solid var(--color-border-light);
65
65
  }
66
- .validate-button[data-v-5433b2ea] {
66
+ .validate-button[data-v-a46e24bd] {
67
67
  background-color: var(--color-info);
68
68
  color: var(--color-text-inverse);
69
69
  border: none;
@@ -74,53 +74,53 @@ select.form-control[data-v-5433b2ea] {
74
74
  cursor: pointer;
75
75
  transition: background-color 0.2s;
76
76
  }
77
- .validate-button[data-v-5433b2ea]:hover {
77
+ .validate-button[data-v-a46e24bd]:hover {
78
78
  background-color: var(--color-info-hover);
79
79
  }
80
- .validate-button[data-v-5433b2ea]:disabled {
80
+ .validate-button[data-v-a46e24bd]:disabled {
81
81
  background-color: var(--color-text-muted);
82
82
  cursor: not-allowed;
83
83
  }
84
- .error-box[data-v-5433b2ea] {
84
+ .error-box[data-v-a46e24bd] {
85
85
  margin-top: 1rem;
86
86
  padding: 0.75rem;
87
87
  border-radius: 4px;
88
88
  background-color: var(--color-danger-light);
89
89
  border: 1px solid var(--color-danger);
90
90
  }
91
- .error-title[data-v-5433b2ea] {
91
+ .error-title[data-v-a46e24bd] {
92
92
  color: var(--color-danger);
93
93
  font-weight: 600;
94
94
  margin-bottom: 0.25rem;
95
95
  }
96
- .error-message[data-v-5433b2ea] {
96
+ .error-message[data-v-a46e24bd] {
97
97
  color: var(--color-danger-hover);
98
98
  font-size: 0.875rem;
99
99
  white-space: pre-wrap;
100
100
  overflow-wrap: break-word;
101
101
  }
102
- .success-box[data-v-5433b2ea] {
102
+ .success-box[data-v-a46e24bd] {
103
103
  margin-top: 1rem;
104
104
  padding: 0.75rem;
105
105
  border-radius: 4px;
106
106
  background-color: var(--color-success-light);
107
107
  border: 1px solid var(--color-success);
108
108
  }
109
- .success-message[data-v-5433b2ea] {
109
+ .success-message[data-v-a46e24bd] {
110
110
  color: var(--color-success);
111
111
  font-size: 0.875rem;
112
112
  }
113
113
  @media (max-width: 640px) {
114
- .form-row[data-v-5433b2ea] {
114
+ .form-row[data-v-a46e24bd] {
115
115
  flex-direction: column;
116
116
  gap: 0.5rem;
117
117
  }
118
118
  }
119
- .el-radio-group[data-v-5433b2ea] {
119
+ .el-radio-group[data-v-a46e24bd] {
120
120
  display: flex !important;
121
121
  flex-direction: row !important;
122
122
  gap: 1rem;
123
123
  }
124
- .el-radio[data-v-5433b2ea] {
124
+ .el-radio[data-v-a46e24bd] {
125
125
  margin-right: 0 !important; /* Override any existing margins */
126
126
  }
@@ -1,14 +1,11 @@
1
- import { d as defineComponent, r as ref, l as useNodeStore, J as onMounted, y as resolveComponent, o as openBlock, c as createElementBlock, z as createVNode, A as withCtx, a as createBaseVNode, K as Fragment, L as renderList, C as createBlock, f as createTextVNode, t as toDisplayString, B as unref, az as ElRadio, i as withDirectives, at as vModelSelect, v as vModelText, e as createCommentVNode, k as axios, N as ElMessage, g as _export_sfc } from "./index-ca6799de.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-808fe33a.js";
3
- import { f as fetchDatabaseConnectionsInterfaces } from "./api-df48ec50.js";
4
- import DatabaseConnectionSettings from "./DatabaseConnectionSettings-38155669.js";
5
- import SqlQueryComponent from "./SQLQueryComponent-2eeecf0b.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-0155288b.js";
7
- import "./secrets.api-34431884.js";
8
- import "./DesignerView-a4466dab.js";
9
- import "./PopOver-ddcfe4f6.js";
10
- import "./index-057d770d.js";
11
- import "./vue-codemirror.esm-8f46fb36.js";
1
+ import { d as defineComponent, l as useNodeStore, J as onMounted, c as createElementBlock, z as createVNode, B as withCtx, a as createBaseVNode, K as Fragment, L as renderList, C as createBlock, f as createTextVNode, t as toDisplayString, A as unref, aE as ElRadio, h as withDirectives, ax as vModelSelect, v as vModelText, e as createCommentVNode, r as ref, k as axios, N as ElMessage, D as resolveComponent, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-CMoRXo7N.js";
3
+ import { u as useNodeSettings } from "./useNodeSettings-dMS9zmh_.js";
4
+ import { f as fetchDatabaseConnectionsInterfaces } from "./api-C0LvF-0C.js";
5
+ import DatabaseConnectionSettings from "./DatabaseConnectionSettings-Dw3bSJKB.js";
6
+ import SqlQueryComponent from "./SQLQueryComponent-Dr5KMoD3.js";
7
+ import { G as GenericNodeSettings } from "./genericNodeSettings-BBtW_Cpz.js";
8
+ import "./secrets.api-C9o2KE5V.js";
12
9
  const createNodeDatabaseReader = (flowId, nodeId) => {
13
10
  const databaseSettings = {
14
11
  query_mode: "table",
@@ -80,6 +77,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
80
77
  const nodeStore = useNodeStore();
81
78
  const nodeDatabaseReader = ref(null);
82
79
  const dataLoaded = ref(false);
80
+ const { saveSettings, pushNodeData, handleGenericSettingsUpdate } = useNodeSettings({
81
+ nodeRef: nodeDatabaseReader,
82
+ onBeforeSave: () => {
83
+ if (!nodeDatabaseReader.value || !nodeDatabaseReader.value.database_settings) {
84
+ return false;
85
+ }
86
+ if (nodeDatabaseReader.value.database_settings.connection_mode === "reference") {
87
+ nodeDatabaseReader.value.database_settings.database_connection = void 0;
88
+ } else {
89
+ nodeDatabaseReader.value.database_settings.database_connection_name = void 0;
90
+ }
91
+ return true;
92
+ }
93
+ });
83
94
  const validationError = ref(null);
84
95
  const validationSuccess = ref(null);
85
96
  const isValidating = ref(false);
@@ -106,8 +117,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
106
117
  if (nodeData) {
107
118
  const hasValidSetup = Boolean((_a = nodeData.setting_input) == null ? void 0 : _a.is_setup);
108
119
  nodeDatabaseReader.value = hasValidSetup ? nodeData.setting_input : createNodeDatabaseReader(nodeStore.flow_id, nodeId);
120
+ dataLoaded.value = true;
109
121
  }
110
- dataLoaded.value = true;
111
122
  } catch (error) {
112
123
  console.error("Error loading node data:", error);
113
124
  dataLoaded.value = false;
@@ -158,19 +169,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
158
169
  isValidating.value = false;
159
170
  }
160
171
  };
161
- const pushNodeData = async () => {
162
- if (!nodeDatabaseReader.value || !nodeDatabaseReader.value.database_settings) {
163
- return;
164
- }
165
- if (nodeDatabaseReader.value.database_settings.connection_mode === "reference") {
166
- nodeDatabaseReader.value.database_settings.database_connection = void 0;
167
- } else {
168
- nodeDatabaseReader.value.database_settings.database_connection_name = void 0;
169
- }
170
- nodeDatabaseReader.value.is_setup = true;
171
- nodeStore.updateSettings(nodeDatabaseReader);
172
- dataLoaded.value = false;
173
- };
174
172
  const fetchConnections = async () => {
175
173
  connectionsAreLoading.value = true;
176
174
  try {
@@ -187,14 +185,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
187
185
  });
188
186
  __expose({
189
187
  loadNodeData,
190
- pushNodeData
188
+ pushNodeData,
189
+ saveSettings
191
190
  });
192
191
  return (_ctx, _cache) => {
193
192
  const _component_el_radio_group = resolveComponent("el-radio-group");
194
193
  return dataLoaded.value && nodeDatabaseReader.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
195
194
  createVNode(GenericNodeSettings, {
196
195
  modelValue: nodeDatabaseReader.value,
197
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => nodeDatabaseReader.value = $event)
196
+ "onUpdate:modelValue": [
197
+ _cache[7] || (_cache[7] = ($event) => nodeDatabaseReader.value = $event),
198
+ unref(handleGenericSettingsUpdate)
199
+ ],
200
+ onRequestSave: unref(saveSettings)
198
201
  }, {
199
202
  default: withCtx(() => [
200
203
  createBaseVNode("div", _hoisted_2, [
@@ -228,10 +231,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
228
231
  onChange: resetFields
229
232
  }, null, 8, ["modelValue"])
230
233
  ])) : (openBlock(), createElementBlock("div", _hoisted_5, [
231
- connectionsAreLoading.value ? (openBlock(), createElementBlock("div", _hoisted_6, _cache[9] || (_cache[9] = [
234
+ connectionsAreLoading.value ? (openBlock(), createElementBlock("div", _hoisted_6, [..._cache[9] || (_cache[9] = [
232
235
  createBaseVNode("div", { class: "loading-spinner" }, null, -1),
233
236
  createBaseVNode("p", null, "Loading connections...", -1)
234
- ]))) : (openBlock(), createElementBlock("div", _hoisted_7, [
237
+ ])])) : (openBlock(), createElementBlock("div", _hoisted_7, [
235
238
  withDirectives(createBaseVNode("select", {
236
239
  id: "connection-select",
237
240
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeDatabaseReader.value.database_settings.database_connection_name = $event),
@@ -262,10 +265,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
262
265
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => nodeDatabaseReader.value.database_settings.query_mode = $event),
263
266
  class: "form-control",
264
267
  onChange: handleQueryModeChange
265
- }, _cache[11] || (_cache[11] = [
268
+ }, [..._cache[11] || (_cache[11] = [
266
269
  createBaseVNode("option", { value: "table" }, "Table", -1),
267
270
  createBaseVNode("option", { value: "query" }, "Query", -1)
268
- ]), 544), [
271
+ ])], 544), [
269
272
  [vModelSelect, nodeDatabaseReader.value.database_settings.query_mode]
270
273
  ])
271
274
  ]),
@@ -324,13 +327,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
324
327
  ])
325
328
  ]),
326
329
  _: 1
327
- }, 8, ["modelValue"])
330
+ }, 8, ["modelValue", "onUpdate:modelValue", "onRequestSave"])
328
331
  ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
329
332
  };
330
333
  }
331
334
  });
332
- const DatabaseReader_vue_vue_type_style_index_0_scoped_5433b2ea_lang = "";
333
- const DatabaseReader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5433b2ea"]]);
335
+ const DatabaseReader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a46e24bd"]]);
334
336
  export {
335
337
  DatabaseReader as default
336
338
  };