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
@@ -962,139 +962,139 @@
962
962
  background: rgba(16, 185, 129, 0.1);
963
963
  }
964
964
 
965
- .icon-selector[data-v-638bee77] {
965
+ .icon-selector[data-v-24b16154] {
966
966
  position: relative;
967
967
  }
968
- .icon-label[data-v-638bee77] {
969
- font-size: 0.75rem;
970
- font-weight: 500;
971
- color: var(--text-secondary, #6b7280);
968
+ .icon-label[data-v-24b16154] {
969
+ font-size: var(--font-size-sm);
970
+ font-weight: var(--font-weight-medium);
971
+ color: var(--color-text-secondary);
972
972
  display: block;
973
- margin-bottom: 0.25rem;
973
+ margin-bottom: var(--spacing-1);
974
974
  }
975
- .icon-selector-content[data-v-638bee77] {
975
+ .icon-selector-content[data-v-24b16154] {
976
976
  position: relative;
977
977
  }
978
- .current-icon[data-v-638bee77] {
978
+ .current-icon[data-v-24b16154] {
979
979
  display: flex;
980
980
  align-items: center;
981
- gap: 0.5rem;
982
- padding: 0.5rem;
983
- border: 1px solid var(--border-color, #d1d5db);
984
- border-radius: 4px;
985
- background: var(--input-bg, #ffffff);
981
+ gap: var(--spacing-2);
982
+ padding: var(--spacing-2);
983
+ border: 1px solid var(--color-border-primary);
984
+ border-radius: var(--border-radius-sm);
985
+ background: var(--color-background-primary);
986
986
  cursor: pointer;
987
- transition: border-color 0.2s;
987
+ transition: border-color var(--transition-normal);
988
988
  }
989
- .current-icon[data-v-638bee77]:hover {
990
- border-color: var(--primary-color, #4a6cf7);
989
+ .current-icon[data-v-24b16154]:hover {
990
+ border-color: var(--color-accent);
991
991
  }
992
- .icon-preview[data-v-638bee77] {
992
+ .icon-preview[data-v-24b16154] {
993
993
  width: 24px;
994
994
  height: 24px;
995
995
  object-fit: contain;
996
996
  }
997
- .icon-name[data-v-638bee77] {
997
+ .icon-name[data-v-24b16154] {
998
998
  flex: 1;
999
- font-size: 0.875rem;
1000
- color: var(--text-primary, #374151);
999
+ font-size: var(--font-size-base);
1000
+ color: var(--color-text-primary);
1001
1001
  overflow: hidden;
1002
1002
  text-overflow: ellipsis;
1003
1003
  white-space: nowrap;
1004
1004
  }
1005
- .dropdown-arrow[data-v-638bee77] {
1006
- font-size: 0.75rem;
1007
- color: var(--text-secondary, #6b7280);
1005
+ .dropdown-arrow[data-v-24b16154] {
1006
+ font-size: var(--font-size-sm);
1007
+ color: var(--color-text-secondary);
1008
1008
  }
1009
- .icon-dropdown[data-v-638bee77] {
1009
+ .icon-dropdown[data-v-24b16154] {
1010
1010
  position: absolute;
1011
1011
  top: 100%;
1012
1012
  left: 0;
1013
1013
  right: 0;
1014
- margin-top: 0.25rem;
1015
- background: var(--bg-primary, #ffffff);
1016
- border: 1px solid var(--border-color, #d1d5db);
1017
- border-radius: 8px;
1014
+ margin-top: var(--spacing-1);
1015
+ background: var(--color-background-primary);
1016
+ border: 1px solid var(--color-border-primary);
1017
+ border-radius: var(--border-radius-lg);
1018
1018
  box-shadow: var(--shadow-lg);
1019
- z-index: 1000;
1019
+ z-index: var(--z-index-dropdown);
1020
1020
  max-height: 300px;
1021
1021
  overflow-y: auto;
1022
1022
  }
1023
- .upload-section[data-v-638bee77] {
1024
- padding: 0.75rem;
1025
- border-bottom: 1px solid var(--border-color, #e5e7eb);
1023
+ .upload-section[data-v-24b16154] {
1024
+ padding: var(--spacing-3);
1025
+ border-bottom: 1px solid var(--color-border-light);
1026
1026
  }
1027
- .upload-btn[data-v-638bee77] {
1027
+ .upload-btn[data-v-24b16154] {
1028
1028
  display: flex;
1029
1029
  align-items: center;
1030
1030
  justify-content: center;
1031
- gap: 0.5rem;
1031
+ gap: var(--spacing-2);
1032
1032
  width: 100%;
1033
- padding: 0.5rem;
1034
- background: var(--bg-secondary, #f3f4f6);
1035
- border: 1px dashed var(--border-color, #d1d5db);
1036
- border-radius: 4px;
1037
- font-size: 0.875rem;
1038
- color: var(--text-secondary, #6b7280);
1033
+ padding: var(--spacing-2);
1034
+ background: var(--color-background-secondary);
1035
+ border: 1px dashed var(--color-border-primary);
1036
+ border-radius: var(--border-radius-sm);
1037
+ font-size: var(--font-size-base);
1038
+ color: var(--color-text-secondary);
1039
1039
  cursor: pointer;
1040
- transition: all 0.2s;
1040
+ transition: all var(--transition-normal);
1041
1041
  }
1042
- .upload-btn[data-v-638bee77]:hover {
1043
- background: var(--bg-tertiary, #e5e7eb);
1044
- border-color: var(--primary-color, #4a6cf7);
1045
- color: var(--primary-color, #4a6cf7);
1042
+ .upload-btn[data-v-24b16154]:hover {
1043
+ background: var(--color-background-tertiary);
1044
+ border-color: var(--color-accent);
1045
+ color: var(--color-accent);
1046
1046
  }
1047
- .icons-section[data-v-638bee77] {
1048
- padding: 0.5rem;
1047
+ .icons-section[data-v-24b16154] {
1048
+ padding: var(--spacing-2);
1049
1049
  }
1050
- .section-title[data-v-638bee77] {
1051
- font-size: 0.75rem;
1052
- font-weight: 600;
1053
- color: var(--text-secondary, #6b7280);
1050
+ .section-title[data-v-24b16154] {
1051
+ font-size: var(--font-size-sm);
1052
+ font-weight: var(--font-weight-semibold);
1053
+ color: var(--color-text-secondary);
1054
1054
  text-transform: uppercase;
1055
1055
  letter-spacing: 0.05em;
1056
- margin-bottom: 0.5rem;
1057
- padding: 0 0.25rem;
1056
+ margin-bottom: var(--spacing-2);
1057
+ padding: 0 var(--spacing-1);
1058
1058
  }
1059
- .icons-grid[data-v-638bee77] {
1059
+ .icons-grid[data-v-24b16154] {
1060
1060
  display: grid;
1061
1061
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
1062
- gap: 0.5rem;
1062
+ gap: var(--spacing-2);
1063
1063
  }
1064
- .icon-option[data-v-638bee77] {
1064
+ .icon-option[data-v-24b16154] {
1065
1065
  position: relative;
1066
1066
  display: flex;
1067
1067
  flex-direction: column;
1068
1068
  align-items: center;
1069
- gap: 0.25rem;
1070
- padding: 0.5rem;
1069
+ gap: var(--spacing-1);
1070
+ padding: var(--spacing-2);
1071
1071
  border: 2px solid transparent;
1072
- border-radius: 6px;
1072
+ border-radius: var(--border-radius-md);
1073
1073
  cursor: pointer;
1074
- transition: all 0.2s;
1074
+ transition: all var(--transition-normal);
1075
1075
  }
1076
- .icon-option[data-v-638bee77]:hover {
1077
- background: var(--bg-secondary, #f3f4f6);
1076
+ .icon-option[data-v-24b16154]:hover {
1077
+ background: var(--color-background-secondary);
1078
1078
  }
1079
- .icon-option.selected[data-v-638bee77] {
1080
- border-color: var(--primary-color, #4a6cf7);
1081
- background: var(--color-focus-ring-button);
1079
+ .icon-option.selected[data-v-24b16154] {
1080
+ border-color: var(--color-accent);
1081
+ background: var(--color-focus-ring-accent);
1082
1082
  }
1083
- .icon-img[data-v-638bee77] {
1083
+ .icon-img[data-v-24b16154] {
1084
1084
  width: 32px;
1085
1085
  height: 32px;
1086
1086
  object-fit: contain;
1087
1087
  }
1088
- .icon-filename[data-v-638bee77] {
1089
- font-size: 0.625rem;
1090
- color: var(--text-secondary, #6b7280);
1088
+ .icon-filename[data-v-24b16154] {
1089
+ font-size: var(--font-size-2xs);
1090
+ color: var(--color-text-secondary);
1091
1091
  text-align: center;
1092
1092
  overflow: hidden;
1093
1093
  text-overflow: ellipsis;
1094
1094
  white-space: nowrap;
1095
1095
  max-width: 100%;
1096
1096
  }
1097
- .delete-icon-btn[data-v-638bee77] {
1097
+ .delete-icon-btn[data-v-24b16154] {
1098
1098
  position: absolute;
1099
1099
  top: 2px;
1100
1100
  right: 2px;
@@ -1102,24 +1102,24 @@
1102
1102
  height: 16px;
1103
1103
  padding: 0;
1104
1104
  border: none;
1105
- border-radius: 50%;
1105
+ border-radius: var(--border-radius-full);
1106
1106
  background: var(--color-danger);
1107
1107
  color: var(--color-text-inverse);
1108
- font-size: 0.625rem;
1108
+ font-size: var(--font-size-2xs);
1109
1109
  cursor: pointer;
1110
1110
  opacity: 0;
1111
- transition: opacity 0.2s;
1111
+ transition: opacity var(--transition-normal);
1112
1112
  display: flex;
1113
1113
  align-items: center;
1114
1114
  justify-content: center;
1115
1115
  }
1116
- .icon-option:hover .delete-icon-btn[data-v-638bee77] {
1116
+ .icon-option:hover .delete-icon-btn[data-v-24b16154] {
1117
1117
  opacity: 1;
1118
1118
  }
1119
- .delete-icon-btn[data-v-638bee77]:hover {
1119
+ .delete-icon-btn[data-v-24b16154]:hover {
1120
1120
  background: var(--color-danger-hover);
1121
1121
  }
1122
- .backdrop[data-v-638bee77] {
1122
+ .backdrop[data-v-24b16154] {
1123
1123
  position: fixed;
1124
1124
  top: 0;
1125
1125
  left: 0;
@@ -1,5 +1,5 @@
1
- import { _ as _sfc_main } from "./NumericInput.vue_vue_type_script_setup_true_lang-91e679d7.js";
2
- import "./index-ca6799de.js";
1
+ import { _ as _sfc_main } from "./NumericInput.vue_vue_type_script_setup_true_lang-d0YlVHAl.js";
2
+ import "./index-bcuE0Z0p.js";
3
3
  export {
4
4
  _sfc_main as default
5
5
  };
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, y as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, t as toDisplayString, z as createVNode } from "./index-ca6799de.js";
1
+ import { d as defineComponent, c as createElementBlock, a as createBaseVNode, t as toDisplayString, z as createVNode, D as resolveComponent, o as openBlock } from "./index-bcuE0Z0p.js";
2
2
  const _hoisted_1 = { class: "component-container" };
3
3
  const _hoisted_2 = { class: "listbox-subtitle" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,13 +1,13 @@
1
- import "./nodeInput-d478b9ac.js";
2
- import { d as defineComponent, l as useNodeStore, r as ref, G as computed, y as resolveComponent, o as openBlock, c as createElementBlock, a as createBaseVNode, C as createBlock, e as createCommentVNode, z as createVNode, A as withCtx, B as unref, f as createTextVNode, K as Fragment, L as renderList, k as axios, g as _export_sfc } from "./index-ca6799de.js";
3
- import CsvTableConfig from "./outputCsv-c492b15e.js";
4
- import ExcelTableConfig from "./outputExcel-13bfa10f.js";
5
- import ParquetTableConfig from "./outputParquet-9be1523a.js";
6
- import { w as warning_filled_default, F as FileBrowser } from "./DesignerView-a4466dab.js";
7
- import { i as isOutputCsvTable, b as isOutputExcelTable, c as isOutputParquetTable } from "./node.types-2c15bb7e.js";
8
- import "./PopOver-ddcfe4f6.js";
9
- import "./index-057d770d.js";
10
- import "./vue-codemirror.esm-8f46fb36.js";
1
+ import { i as isOutputCsvTable, b as isOutputExcelTable, c as isOutputParquetTable } from "./node.types-Dl4gtSW9.js";
2
+ import { d as defineComponent, l as useNodeStore, c as createElementBlock, a as createBaseVNode, C as createBlock, e as createCommentVNode, z as createVNode, B as withCtx, A as unref, aL as warning_filled_default, f as createTextVNode, K as Fragment, L as renderList, r as ref, G as computed, D as resolveComponent, k as axios, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
3
+ import { u as useNodeSettings } from "./useNodeSettings-dMS9zmh_.js";
4
+ import CsvTableConfig from "./outputCsv-BELuBiJZ.js";
5
+ import ExcelTableConfig from "./outputExcel-D0TTNM79.js";
6
+ import ParquetTableConfig from "./outputParquet-Cz9EbRHj.js";
7
+ import { F as FileBrowser } from "./DesignerView-DemDevTQ.js";
8
+ import "./PopOver-BHpt5rsj.js";
9
+ import "./index-CHPMUR0d.js";
10
+ import "./vue-codemirror.esm-CwaYwln0.js";
11
11
  function createDefaultOutputSettings() {
12
12
  return {
13
13
  name: "output.csv",
@@ -57,6 +57,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
57
57
  const nodeStore = useNodeStore();
58
58
  const nodeOutput = ref(null);
59
59
  const dataLoaded = ref(false);
60
+ const { saveSettings, pushNodeData } = useNodeSettings({
61
+ nodeRef: nodeOutput
62
+ });
60
63
  const showFileSelectionModal = ref(false);
61
64
  const selectedDirectoryExists = ref(null);
62
65
  const localFileInfos = ref([]);
@@ -86,8 +89,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
86
89
  }
87
90
  function detectFileType(fileName) {
88
91
  var _a;
89
- if (!fileName)
90
- return;
92
+ if (!fileName) return;
91
93
  const extension = (_a = fileName.split(".").pop()) == null ? void 0 : _a.toLowerCase();
92
94
  if (!extension || !["csv", "xlsx", "xls", "parquet"].includes(extension)) {
93
95
  return;
@@ -106,8 +108,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
106
108
  }
107
109
  }
108
110
  function updateTableSettings(fileType) {
109
- if (!nodeOutput.value)
110
- return;
111
+ if (!nodeOutput.value) return;
111
112
  switch (fileType) {
112
113
  case "csv":
113
114
  nodeOutput.value.output_settings.table_settings = createCsvTableSettings();
@@ -127,8 +128,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
127
128
  }
128
129
  }
129
130
  function handleFileTypeChange() {
130
- if (!nodeOutput.value)
131
- return;
131
+ if (!nodeOutput.value) return;
132
132
  const fileExtMap = {
133
133
  csv: ".csv",
134
134
  excel: ".xlsx",
@@ -142,15 +142,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
142
142
  updateTableSettings(nodeOutput.value.output_settings.file_type);
143
143
  }
144
144
  function handleDirectorySelected(directoryPath) {
145
- if (!nodeOutput.value)
146
- return;
145
+ if (!nodeOutput.value) return;
147
146
  nodeOutput.value.output_settings.directory = directoryPath;
148
147
  showFileSelectionModal.value = false;
149
148
  fetchFiles();
150
149
  }
151
150
  function handleFileSelected(filePath, currentPath, fileName) {
152
- if (!nodeOutput.value)
153
- return;
151
+ if (!nodeOutput.value) return;
154
152
  nodeOutput.value.output_settings.name = fileName;
155
153
  nodeOutput.value.output_settings.directory = currentPath;
156
154
  showFileSelectionModal.value = false;
@@ -183,16 +181,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
183
181
  }
184
182
  dataLoaded.value = true;
185
183
  }
186
- async function pushNodeData() {
187
- var _a;
188
- if ((_a = nodeOutput.value) == null ? void 0 : _a.output_settings) {
189
- await nodeStore.updateSettings(nodeOutput);
190
- dataLoaded.value = false;
191
- }
192
- }
193
184
  __expose({
194
185
  loadNodeData,
195
- pushNodeData
186
+ pushNodeData,
187
+ saveSettings
196
188
  });
197
189
  return (_ctx, _cache) => {
198
190
  const _component_el_input = resolveComponent("el-input");
@@ -207,10 +199,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
207
199
  createBaseVNode("label", {
208
200
  class: "file-upload-label",
209
201
  onClick: _cache[0] || (_cache[0] = ($event) => showFileSelectionModal.value = true)
210
- }, _cache[9] || (_cache[9] = [
202
+ }, [..._cache[9] || (_cache[9] = [
211
203
  createBaseVNode("i", { class: "file-icon fas fa-upload" }, null, -1),
212
204
  createBaseVNode("span", { class: "file-label-text" }, "Folder", -1)
213
- ])),
205
+ ])]),
214
206
  nodeOutput.value.output_settings ? (openBlock(), createBlock(_component_el_input, {
215
207
  key: 0,
216
208
  modelValue: nodeOutput.value.output_settings.directory,
@@ -241,7 +233,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
241
233
  ]),
242
234
  createBaseVNode("div", _hoisted_5, [
243
235
  createBaseVNode("div", _hoisted_6, [
244
- _cache[10] || (_cache[10] = createTextVNode(" File type: ")),
236
+ _cache[10] || (_cache[10] = createTextVNode(" File type: ", -1)),
245
237
  createVNode(_component_el_select, {
246
238
  modelValue: nodeOutput.value.output_settings.file_type,
247
239
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => nodeOutput.value.output_settings.file_type = $event),
@@ -263,7 +255,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
263
255
  _: 1
264
256
  }, 8, ["modelValue", "disabled"])
265
257
  ]),
266
- _cache[11] || (_cache[11] = createTextVNode(" Writing option: ")),
258
+ _cache[11] || (_cache[11] = createTextVNode(" Writing option: ", -1)),
267
259
  createVNode(_component_el_select, {
268
260
  modelValue: nodeOutput.value.output_settings.write_mode,
269
261
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => nodeOutput.value.output_settings.write_mode = $event),
@@ -310,6 +302,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
310
302
  "allowed-file-types": ["csv", "xlsx", "parquet"],
311
303
  "allow-directory-selection": true,
312
304
  mode: "create",
305
+ context: "dataFiles",
313
306
  "is-visible": showFileSelectionModal.value,
314
307
  onDirectorySelected: handleDirectorySelected,
315
308
  onOverwriteFile: handleFileSelected,
@@ -322,8 +315,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
322
315
  };
323
316
  }
324
317
  });
325
- const Output_vue_vue_type_style_index_0_scoped_cd5ad616_lang = "";
326
- const Output = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cd5ad616"]]);
318
+ const Output = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2881bea7"]]);
327
319
  export {
328
320
  Output as default
329
321
  };
@@ -1,5 +1,5 @@
1
1
 
2
- .main-part[data-v-cd5ad616] {
2
+ .main-part[data-v-2881bea7] {
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  padding: 20px;
@@ -8,13 +8,13 @@
8
8
  background-color: var(--color-background-primary);
9
9
  margin-top: 20px;
10
10
  }
11
- .file-upload-row[data-v-cd5ad616] {
11
+ .file-upload-row[data-v-2881bea7] {
12
12
  display: flex;
13
13
  align-items: center;
14
14
  gap: 10px;
15
15
  margin-bottom: 20px;
16
16
  }
17
- .file-upload-label[data-v-cd5ad616] {
17
+ .file-upload-label[data-v-2881bea7] {
18
18
  display: inline-flex;
19
19
  align-items: center;
20
20
  justify-content: center;
@@ -27,10 +27,10 @@
27
27
  cursor: pointer;
28
28
  transition: all 0.3s ease;
29
29
  }
30
- .file-upload-label[data-v-cd5ad616]:hover {
30
+ .file-upload-label[data-v-2881bea7]:hover {
31
31
  background-color: var(--color-button-secondary-hover);
32
32
  }
33
- .warning-message[data-v-cd5ad616] {
33
+ .warning-message[data-v-2881bea7] {
34
34
  color: var(--color-danger);
35
35
  display: flex;
36
36
  align-items: center;
@@ -1,12 +1,13 @@
1
- import { d as defineComponent, l as useNodeStore, r as ref, G as computed, J as onMounted, a2 as nextTick, q as onUnmounted, y as resolveComponent, o as openBlock, c as createElementBlock, z as createVNode, A as withCtx, a as createBaseVNode, K as Fragment, L as renderList, n as normalizeClass, w as withModifiers, t as toDisplayString, C as createBlock, e as createCommentVNode, g as _export_sfc } from "./index-ca6799de.js";
2
- import "./DesignerView-a4466dab.js";
3
- import { _ as _sfc_main$1 } from "./ContextMenu.vue_vue_type_script_setup_true_lang-774c517c.js";
4
- import SettingsSection from "./SettingsSection-5ce15962.js";
5
- import PivotValidation from "./PivotValidation-81ec2a33.js";
6
- import { G as GenericNodeSettings } from "./genericNodeSettings-0155288b.js";
7
- import "./PopOver-ddcfe4f6.js";
8
- import "./index-057d770d.js";
9
- import "./vue-codemirror.esm-8f46fb36.js";
1
+ import { d as defineComponent, l as useNodeStore, J as onMounted, a1 as nextTick, x as onUnmounted, c as createElementBlock, z as createVNode, B as withCtx, a as createBaseVNode, K as Fragment, L as renderList, w as withModifiers, n as normalizeClass, t as toDisplayString, C as createBlock, e as createCommentVNode, A as unref, r as ref, D as resolveComponent, G as computed, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
+ import { u as useNodeSettings } from "./useNodeSettings-dMS9zmh_.js";
3
+ import "./DesignerView-DemDevTQ.js";
4
+ import { _ as _sfc_main$1 } from "./ContextMenu.vue_vue_type_script_setup_true_lang-I4rXXd6G.js";
5
+ import SettingsSection from "./SettingsSection-B39ulIiI.js";
6
+ import PivotValidation from "./PivotValidation-B2lWvugt.js";
7
+ import { G as GenericNodeSettings } from "./genericNodeSettings-BBtW_Cpz.js";
8
+ import "./PopOver-BHpt5rsj.js";
9
+ import "./index-CHPMUR0d.js";
10
+ import "./vue-codemirror.esm-CwaYwln0.js";
10
11
  const _hoisted_1 = {
11
12
  key: 0,
12
13
  class: "listbox-wrapper"
@@ -20,6 +21,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
20
21
  __name: "Pivot",
21
22
  setup(__props, { expose: __expose }) {
22
23
  const nodeStore = useNodeStore();
24
+ const nodePivot = ref(null);
25
+ const { saveSettings, pushNodeData, handleGenericSettingsUpdate } = useNodeSettings({
26
+ nodeRef: nodePivot
27
+ });
23
28
  const showContextMenu = ref(false);
24
29
  const dataLoaded = ref(false);
25
30
  const contextMenuPosition = ref({ x: 0, y: 0 });
@@ -46,7 +51,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
46
51
  value_col: null,
47
52
  aggregations: []
48
53
  });
49
- const nodePivot = ref(null);
50
54
  const singleColumnSelected = computed(() => selectedColumns.value.length === 1);
51
55
  const getColumnClass = (columnName) => {
52
56
  return selectedColumns.value.includes(columnName) ? "is-selected" : "";
@@ -124,10 +128,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
124
128
  };
125
129
  const removeColumnIfExists = (column) => {
126
130
  pivotInput.value.index_columns = pivotInput.value.index_columns.filter((col) => col !== column);
127
- if (pivotInput.value.pivot_column === column)
128
- pivotInput.value.pivot_column = null;
129
- if (pivotInput.value.value_col === column)
130
- pivotInput.value.value_col = null;
131
+ if (pivotInput.value.pivot_column === column) pivotInput.value.pivot_column = null;
132
+ if (pivotInput.value.value_col === column) pivotInput.value.value_col = null;
131
133
  };
132
134
  const removeColumn = (type, column) => {
133
135
  if (type === "index") {
@@ -158,21 +160,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
158
160
  };
159
161
  const handleClickOutside = (event) => {
160
162
  const targetEvent = event.target;
161
- if (targetEvent.id === "pivot-context-menu")
162
- return;
163
+ if (targetEvent.id === "pivot-context-menu") return;
163
164
  showContextMenu.value = false;
164
165
  };
165
166
  const closeContextMenu = () => {
166
167
  showContextMenu.value = false;
167
168
  };
168
- const pushNodeData = async () => {
169
- if (pivotInput.value) {
170
- nodeStore.updateSettings(nodePivot);
171
- }
172
- };
173
169
  __expose({
174
170
  loadNodeData,
175
- pushNodeData
171
+ pushNodeData,
172
+ saveSettings
176
173
  });
177
174
  onMounted(async () => {
178
175
  await nextTick();
@@ -187,7 +184,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
187
184
  return dataLoaded.value && nodePivot.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
188
185
  createVNode(GenericNodeSettings, {
189
186
  modelValue: nodePivot.value,
190
- "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => nodePivot.value = $event)
187
+ "onUpdate:modelValue": [
188
+ _cache[11] || (_cache[11] = ($event) => nodePivot.value = $event),
189
+ unref(handleGenericSettingsUpdate)
190
+ ],
191
+ onRequestSave: unref(saveSettings)
191
192
  }, {
192
193
  default: withCtx(() => {
193
194
  var _a, _b;
@@ -275,13 +276,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
275
276
  ];
276
277
  }),
277
278
  _: 1
278
- }, 8, ["modelValue"])
279
+ }, 8, ["modelValue", "onUpdate:modelValue", "onRequestSave"])
279
280
  ])) : createCommentVNode("", true);
280
281
  };
281
282
  }
282
283
  });
283
- const Pivot_vue_vue_type_style_index_0_scoped_3b84bc31_lang = "";
284
- const Pivot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3b84bc31"]]);
284
+ const Pivot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-706aef9a"]]);
285
285
  export {
286
286
  Pivot as default
287
287
  };
@@ -1,5 +1,5 @@
1
1
 
2
- .context-menu[data-v-3b84bc31] {
2
+ .context-menu[data-v-706aef9a] {
3
3
  position: fixed;
4
4
  z-index: 1000;
5
5
  border: 1px solid #ccc;
@@ -8,15 +8,15 @@
8
8
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
9
9
  border-radius: 4px;
10
10
  }
11
- .context-menu ul[data-v-3b84bc31] {
11
+ .context-menu ul[data-v-706aef9a] {
12
12
  list-style: none;
13
13
  padding: 0;
14
14
  margin: 0;
15
15
  }
16
- .context-menu li[data-v-3b84bc31] {
16
+ .context-menu li[data-v-706aef9a] {
17
17
  padding: 8px 16px;
18
18
  cursor: pointer;
19
19
  }
20
- .context-menu li[data-v-3b84bc31]:hover {
20
+ .context-menu li[data-v-706aef9a]:hover {
21
21
  background-color: #f0f0f0;
22
22
  }
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, G as computed, o as openBlock, C as createBlock, A as withCtx, z as createVNode, a as createBaseVNode, B as unref, ay as ElIcon, c as createElementBlock, e as createCommentVNode, aC as ElPopover, g as _export_sfc } from "./index-ca6799de.js";
1
+ import { d as defineComponent, C as createBlock, B as withCtx, a as createBaseVNode, c as createElementBlock, e as createCommentVNode, z as createVNode, A as unref, aC as ElIcon, aK as ElPopover, G as computed, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
2
  const _hoisted_1 = { class: "validation-wrapper" };
3
3
  const _hoisted_2 = {
4
4
  key: 0,
@@ -35,18 +35,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
35
35
  color: "#FF6B6B",
36
36
  class: "warning-icon"
37
37
  }, {
38
- default: withCtx(() => _cache[0] || (_cache[0] = [
38
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [
39
39
  createBaseVNode("i", { class: "el-icon-warning" }, null, -1)
40
- ])),
41
- _: 1,
42
- __: [0]
40
+ ])]),
41
+ _: 1
43
42
  })
44
43
  ]),
45
44
  default: withCtx(() => [
46
45
  createBaseVNode("div", _hoisted_1, [
47
- !_ctx.pivotInput.pivot_column ? (openBlock(), createElementBlock("p", _hoisted_2, "Pivot Column cannot be empty.")) : createCommentVNode("", true),
48
- !_ctx.pivotInput.value_col ? (openBlock(), createElementBlock("p", _hoisted_3, "Value Column cannot be empty.")) : createCommentVNode("", true),
49
- _ctx.pivotInput.aggregations.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_4, " At least one aggregation must be selected. ")) : createCommentVNode("", true)
46
+ !__props.pivotInput.pivot_column ? (openBlock(), createElementBlock("p", _hoisted_2, "Pivot Column cannot be empty.")) : createCommentVNode("", true),
47
+ !__props.pivotInput.value_col ? (openBlock(), createElementBlock("p", _hoisted_3, "Value Column cannot be empty.")) : createCommentVNode("", true),
48
+ __props.pivotInput.aggregations.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_4, " At least one aggregation must be selected. ")) : createCommentVNode("", true)
50
49
  ])
51
50
  ]),
52
51
  _: 1
@@ -54,7 +53,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
54
53
  };
55
54
  }
56
55
  });
57
- const PivotValidation_vue_vue_type_style_index_0_scoped_30064f3f_lang = "";
58
56
  const PivotValidation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-30064f3f"]]);
59
57
  export {
60
58
  PivotValidation as default
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, G as computed, o as openBlock, C as createBlock, A as withCtx, z as createVNode, a as createBaseVNode, B as unref, ay as ElIcon, c as createElementBlock, e as createCommentVNode, aC as ElPopover, g as _export_sfc } from "./index-ca6799de.js";
1
+ import { d as defineComponent, C as createBlock, B as withCtx, a as createBaseVNode, c as createElementBlock, e as createCommentVNode, z as createVNode, A as unref, aC as ElIcon, aK as ElPopover, G as computed, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
2
  const _hoisted_1 = { class: "validation-wrapper" };
3
3
  const _hoisted_2 = {
4
4
  key: 0,
@@ -35,18 +35,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
35
35
  color: "#FF6B6B",
36
36
  class: "warning-icon"
37
37
  }, {
38
- default: withCtx(() => _cache[0] || (_cache[0] = [
38
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [
39
39
  createBaseVNode("i", { class: "el-icon-warning" }, null, -1)
40
- ])),
41
- _: 1,
42
- __: [0]
40
+ ])]),
41
+ _: 1
43
42
  })
44
43
  ]),
45
44
  default: withCtx(() => [
46
45
  createBaseVNode("div", _hoisted_1, [
47
- !_ctx.pivotInput.pivot_column ? (openBlock(), createElementBlock("p", _hoisted_2, "Pivot Column cannot be empty.")) : createCommentVNode("", true),
48
- !_ctx.pivotInput.value_col ? (openBlock(), createElementBlock("p", _hoisted_3, "Value Column cannot be empty.")) : createCommentVNode("", true),
49
- _ctx.pivotInput.aggregations.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_4, " At least one aggregation must be selected. ")) : createCommentVNode("", true)
46
+ !__props.pivotInput.pivot_column ? (openBlock(), createElementBlock("p", _hoisted_2, "Pivot Column cannot be empty.")) : createCommentVNode("", true),
47
+ !__props.pivotInput.value_col ? (openBlock(), createElementBlock("p", _hoisted_3, "Value Column cannot be empty.")) : createCommentVNode("", true),
48
+ __props.pivotInput.aggregations.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_4, " At least one aggregation must be selected. ")) : createCommentVNode("", true)
50
49
  ])
51
50
  ]),
52
51
  _: 1
@@ -54,7 +53,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
54
53
  };
55
54
  }
56
55
  });
57
- const PivotValidation_vue_vue_type_style_index_0_scoped_2b1abc75_lang = "";
58
56
  const PivotValidation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2b1abc75"]]);
59
57
  export {
60
58
  PivotValidation as default