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.
- flowfile/api.py +8 -6
- flowfile/web/static/assets/{AdminView-c2c7942b.js → AdminView-C4K1DdHI.js} +28 -33
- flowfile/web/static/assets/{CloudConnectionView-7a3042c6.js → CloudConnectionView-BZbPvPUL.js} +39 -50
- flowfile/web/static/assets/{CloudStorageReader-24c54524.css → CloudStorageReader-BDByiqPI.css} +25 -25
- flowfile/web/static/assets/{CloudStorageReader-709c4037.js → CloudStorageReader-DLVukNJ7.js} +30 -35
- flowfile/web/static/assets/{CloudStorageWriter-604c51a8.js → CloudStorageWriter-Bfi-C1QW.js} +32 -37
- flowfile/web/static/assets/{CloudStorageWriter-60547855.css → CloudStorageWriter-y8jL8yjG.css} +24 -24
- flowfile/web/static/assets/{ColumnActionInput-d63d6746.js → ColumnActionInput-BpiCApw9.js} +7 -12
- flowfile/web/static/assets/{ColumnSelector-0c8cd1cd.js → ColumnSelector-CEAwedI7.js} +1 -2
- flowfile/web/static/assets/ContextMenu-CdojQu0w.js +9 -0
- flowfile/web/static/assets/ContextMenu-D12mhsy1.js +9 -0
- flowfile/web/static/assets/ContextMenu-EWUR98va.js +9 -0
- 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
- flowfile/web/static/assets/{CrossJoin-38e5b99a.js → CrossJoin-BOFfxkJO.js} +19 -18
- flowfile/web/static/assets/{CrossJoin-71b4cc10.css → CrossJoin-Cmbyt9im.css} +18 -18
- flowfile/web/static/assets/{CustomNode-76e8f3f5.js → CustomNode-Bhpezobq.js} +12 -17
- flowfile/web/static/assets/{DatabaseConnectionSettings-38155669.js → DatabaseConnectionSettings-Dw3bSJKB.js} +10 -11
- flowfile/web/static/assets/{DatabaseReader-5bf8c75b.css → DatabaseReader-D6pUNUCs.css} +21 -21
- flowfile/web/static/assets/{DatabaseReader-2e549c8f.js → DatabaseReader-m87ghlw0.js} +36 -34
- flowfile/web/static/assets/{DatabaseView-dc877c29.js → DatabaseView-CisSAtpe.js} +30 -38
- flowfile/web/static/assets/{DatabaseWriter-ffb91864.js → DatabaseWriter-Bbj9JLdL.js} +33 -35
- flowfile/web/static/assets/{DatabaseWriter-bdcf2c8b.css → DatabaseWriter-RBqdFLj8.css} +17 -17
- flowfile/web/static/assets/{DesignerView-a4466dab.js → DesignerView-DemDevTQ.js} +1752 -2054
- flowfile/web/static/assets/{DesignerView-71d4e9a1.css → DesignerView-Dm6OzlIc.css} +209 -168
- flowfile/web/static/assets/{DocumentationView-979afc84.js → DocumentationView-BrC1ZR3H.js} +3 -4
- flowfile/web/static/assets/{ExploreData-e4b92aaf.js → ExploreData-BMKcDuRb.js} +8 -10
- flowfile/web/static/assets/{ExternalSource-d08e7227.js → ExternalSource-BXrNNS-f.js} +40 -42
- flowfile/web/static/assets/{ExternalSource-7ac7373f.css → ExternalSource-NB6WVl5R.css} +14 -14
- flowfile/web/static/assets/{Filter-7add806d.js → Filter-C2MjsN6P.js} +36 -33
- flowfile/web/static/assets/{Filter-7494ea97.css → Filter-DCMGGuGC.css} +9 -9
- flowfile/web/static/assets/{Formula-53d58c43.css → Formula-BYafbDj8.css} +4 -4
- flowfile/web/static/assets/{Formula-36ab24d2.js → Formula-ufuy4mVD.js} +27 -26
- flowfile/web/static/assets/{FuzzyMatch-ad6361d6.css → FuzzyMatch-BGJAwgd0.css} +42 -42
- flowfile/web/static/assets/{FuzzyMatch-cc01bb04.js → FuzzyMatch-BOHODq3h.js} +36 -38
- flowfile/web/static/assets/{GraphSolver-4fb98f3b.js → GraphSolver-B6ZzpNGO.js} +23 -21
- flowfile/web/static/assets/{GraphSolver-4b4d7db9.css → GraphSolver-DFN83sj3.css} +4 -4
- flowfile/web/static/assets/{GroupBy-b3c8f429.js → GroupBy-B9BRNcfe.js} +30 -29
- flowfile/web/static/assets/{Sort-4abb7fae.css → GroupBy-x4ooP5np.css} +1 -1
- flowfile/web/static/assets/Join-Bx_g5bZz.css +118 -0
- flowfile/web/static/assets/{Join-096b7b26.js → Join-DsBEy1IH.js} +48 -43
- flowfile/web/static/assets/{LoginView-c33a246a.js → LoginView-Ct0rhdcO.js} +1 -2
- flowfile/web/static/assets/{ManualInput-39111f19.css → ManualInput-DlZmtMdt.css} +48 -48
- flowfile/web/static/assets/{ManualInput-7307e9b1.js → ManualInput-bC4BUgnG.js} +40 -41
- flowfile/web/static/assets/{MultiSelect-14822c48.js → MultiSelect-DIQ8PuTC.js} +2 -2
- 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
- flowfile/web/static/assets/{NodeDesigner-5036c392.js → NodeDesigner-D39yzr2k.js} +178 -208
- flowfile/web/static/assets/{NodeDesigner-94cd4dd3.css → NodeDesigner-R0l6sYyY.css} +76 -76
- flowfile/web/static/assets/{NumericInput-15cf3b72.js → NumericInput-DMSX3oOr.js} +2 -2
- 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
- flowfile/web/static/assets/{Output-1f8ed42c.js → Output-D0VoXGcW.js} +26 -34
- flowfile/web/static/assets/{Output-692dd25d.css → Output-DsmglIDy.css} +5 -5
- flowfile/web/static/assets/{Pivot-0e153f4e.js → Pivot-BnMB4sEe.js} +26 -26
- flowfile/web/static/assets/{Pivot-0eda81b4.css → Pivot-qKTyWxop.css} +4 -4
- flowfile/web/static/assets/{PivotValidation-81ec2a33.js → PivotValidation-B2lWvugt.js} +7 -9
- flowfile/web/static/assets/{PivotValidation-5a4f7c79.js → PivotValidation-BPlhRjpL.js} +7 -9
- flowfile/web/static/assets/{PolarsCode-a39f15ac.js → PolarsCode-5h0tHnWR.js} +22 -20
- flowfile/web/static/assets/{PopOver-ddcfe4f6.js → PopOver-BHpt5rsj.js} +5 -9
- flowfile/web/static/assets/{PopOver-d96599db.css → PopOver-CyYM4-rV.css} +1 -1
- flowfile/web/static/assets/{Read-90f366bc.css → Read-DJxkrTb_.css} +10 -10
- flowfile/web/static/assets/Read-TsLEFh3B.js +227 -0
- flowfile/web/static/assets/{RecordCount-e9048ccd.js → RecordCount-DkVixq9v.js} +18 -17
- flowfile/web/static/assets/{RecordId-ad02521d.js → RecordId-C2UEGlCf.js} +42 -39
- flowfile/web/static/assets/{SQLQueryComponent-2eeecf0b.js → SQLQueryComponent-Dr5KMoD3.js} +2 -3
- flowfile/web/static/assets/{Sample-9a68c23d.js → Sample-Cb3eQNmd.js} +30 -30
- flowfile/web/static/assets/{SecretSelector-2429f35a.js → SecretSelector-De2L2bSx.js} +3 -4
- flowfile/web/static/assets/{SecretsView-c6afc915.js → SecretsView-CheC9BPV.js} +13 -16
- flowfile/web/static/assets/{Select-fcd002b6.js → Select-CI8TloRs.js} +41 -36
- flowfile/web/static/assets/{SettingsSection-5ce15962.js → SettingsSection-B39ulIiI.js} +1 -2
- flowfile/web/static/assets/{SettingsSection-c6b1362c.js → SettingsSection-BiCc7S9h.js} +1 -2
- flowfile/web/static/assets/{SettingsSection-cebb91d5.js → SettingsSection-CITK_R7o.js} +2 -3
- flowfile/web/static/assets/{SettingsSection-26fe48d4.css → SettingsSection-D2GgY-Aq.css} +4 -4
- flowfile/web/static/assets/{SetupView-2d12e01f.js → SetupView-C1aXRDvp.js} +1 -2
- flowfile/web/static/assets/{SingleSelect-b67de4eb.js → SingleSelect-Kr_hz90m.js} +2 -2
- 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
- flowfile/web/static/assets/{SliderInput-fd8134ac.js → SliderInput-CLqpCxCb.js} +1 -2
- flowfile/web/static/assets/{GroupBy-5792782d.css → Sort-BIt2kc_p.css} +1 -1
- flowfile/web/static/assets/{Sort-c005a573.js → Sort-Dnw_J6Qi.js} +25 -25
- flowfile/web/static/assets/{TextInput-1bb31dab.js → TextInput-wdlunIZC.js} +2 -2
- 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
- flowfile/web/static/assets/{TextToRows-4f363753.js → TextToRows-BhtyGWPq.js} +42 -49
- flowfile/web/static/assets/{TextToRows-12afb4f4.css → TextToRows-DivDOLDx.css} +9 -9
- flowfile/web/static/assets/{ToggleSwitch-ca0f2e5e.js → ToggleSwitch-B-6WzfFf.js} +2 -2
- 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
- flowfile/web/static/assets/{UnavailableFields-f6147968.js → UnavailableFields-Yf6XSqFB.js} +2 -3
- flowfile/web/static/assets/{Union-c65f17b7.js → Union-CwpjeKYC.js} +20 -23
- flowfile/web/static/assets/{Unpivot-b6ad6427.css → Union-DQJcpp3-.css} +6 -6
- flowfile/web/static/assets/{Unique-a1d96fb2.js → Unique-25v3urqH.js} +75 -74
- flowfile/web/static/assets/{Union-d6a8d7d5.css → Unpivot-Deqh1gtI.css} +6 -6
- flowfile/web/static/assets/{Unpivot-c2657ff3.js → Unpivot-sYcTTXrq.js} +34 -27
- flowfile/web/static/assets/{UnpivotValidation-28e29a3b.js → UnpivotValidation-C5DDEKY2.js} +5 -7
- flowfile/web/static/assets/VueGraphicWalker-B8l1_Z92.js +131 -0
- flowfile/web/static/assets/VueGraphicWalker-Da_1-3me.css +21 -0
- flowfile/web/static/assets/{api-df48ec50.js → api-C0LvF-0C.js} +1 -1
- flowfile/web/static/assets/{api-ee542cf7.js → api-DaC83EO_.js} +1 -1
- flowfile/web/static/assets/client-C8Ygr6Gb.js +42 -0
- flowfile/web/static/assets/{dropDown-7576a76a.js → dropDown-D5YXaPRR.js} +7 -12
- flowfile/web/static/assets/{fullEditor-7583bef5.js → fullEditor-BVYnWm05.js} +300 -18
- flowfile/web/static/assets/genericNodeSettings-2wAu-QKn.css +75 -0
- flowfile/web/static/assets/genericNodeSettings-BBtW_Cpz.js +590 -0
- flowfile/web/static/assets/{VueGraphicWalker-2fc3ddd4.js → graphic-walker.es-VrK6vdGE.js} +92305 -89751
- flowfile/web/static/assets/index-BCJxPfM5.js +6693 -0
- flowfile/web/static/assets/{index-057d770d.js → index-CHPMUR0d.js} +150 -170
- flowfile/web/static/assets/index-DPkoZWq8.js +32 -0
- flowfile/web/static/assets/index-DnW_KC_I.js +277 -0
- flowfile/web/static/assets/index-UFXyfirV.css +10797 -0
- flowfile/web/static/assets/index-bcuE0Z0p.js +87456 -0
- flowfile/web/static/assets/{node.types-2c15bb7e.js → node.types-Dl4gtSW9.js} +2 -2
- flowfile/web/static/assets/{outputCsv-c492b15e.js → outputCsv-BELuBiJZ.js} +1 -2
- flowfile/web/static/assets/outputCsv-CdGkv-fN.css +2581 -0
- flowfile/web/static/assets/{outputExcel-13bfa10f.js → outputExcel-D0TTNM79.js} +1 -2
- flowfile/web/static/assets/{outputParquet-9be1523a.js → outputParquet-Cz9EbRHj.js} +1 -2
- flowfile/web/static/assets/{readCsv-5a49a8c9.js → readCsv-7bd3kUMI.js} +1 -2
- flowfile/web/static/assets/{readExcel-27c30ad8.js → readExcel-Cq8CCwIv.js} +3 -4
- flowfile/web/static/assets/{readParquet-c5244ad5.css → readParquet-CRDmBrsp.css} +4 -4
- flowfile/web/static/assets/{readParquet-446bde68.js → readParquet-DjR4mRaj.js} +4 -5
- flowfile/web/static/assets/{secrets.api-34431884.js → secrets.api-C9o2KE5V.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-5754a2b1.js → selectDynamic-Bl5FVsME.js} +5 -7
- flowfile/web/static/assets/useNodeSettings-dMS9zmh_.js +69 -0
- flowfile/web/static/assets/{vue-codemirror.esm-8f46fb36.js → vue-codemirror.esm-CwaYwln0.js} +3469 -3064
- flowfile/web/static/assets/{vue-content-loader.es-808fe33a.js → vue-content-loader.es-CMoRXo7N.js} +3 -3
- flowfile/web/static/index.html +2 -3
- {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/METADATA +2 -1
- flowfile-0.6.1.dist-info/RECORD +417 -0
- {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/WHEEL +1 -1
- flowfile_core/auth/password.py +1 -0
- flowfile_core/database/init_db.py +7 -5
- flowfile_core/fileExplorer/funcs.py +2 -2
- flowfile_core/flowfile/code_generator/code_generator.py +13 -11
- flowfile_core/flowfile/filter_expressions.py +327 -0
- flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +61 -59
- flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +3 -29
- flowfile_core/flowfile/flow_data_engine/flow_file_column/utils.py +45 -14
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +20 -3
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/streaming.py +206 -0
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +146 -24
- flowfile_core/flowfile/flow_graph.py +504 -190
- flowfile_core/flowfile/flow_node/__init__.py +32 -0
- flowfile_core/flowfile/flow_node/executor.py +404 -0
- flowfile_core/flowfile/flow_node/flow_node.py +207 -106
- flowfile_core/flowfile/flow_node/models.py +40 -0
- flowfile_core/flowfile/flow_node/output_field_config_applier.py +217 -0
- flowfile_core/flowfile/flow_node/schema_utils.py +78 -0
- flowfile_core/flowfile/flow_node/state.py +155 -0
- flowfile_core/flowfile/history_manager.py +401 -0
- flowfile_core/flowfile/manage/compatibility_enhancements.py +9 -0
- flowfile_core/flowfile/manage/io_flowfile.py +3 -1
- flowfile_core/flowfile/sources/external_sources/sql_source/models.py +20 -4
- flowfile_core/flowfile/util/execution_orderer.py +89 -36
- flowfile_core/routes/auth.py +8 -9
- flowfile_core/routes/routes.py +320 -101
- flowfile_core/routes/user_defined_components.py +18 -16
- flowfile_core/schemas/history_schema.py +220 -0
- flowfile_core/schemas/input_schema.py +130 -6
- flowfile_core/schemas/schemas.py +9 -0
- flowfile_core/schemas/transform_schema.py +27 -5
- flowfile_core/schemas/yaml_types.py +23 -5
- flowfile_frame/adding_expr.py +18 -126
- flowfile_frame/callable_utils.py +261 -0
- flowfile_frame/database/connection_manager.py +0 -1
- flowfile_frame/expr.py +8 -4
- flowfile_frame/flow_frame.py +41 -41
- flowfile_frame/lazy.py +3 -12
- flowfile_frame/lazy_methods.py +5 -64
- flowfile_frame/utils.py +13 -32
- flowfile_worker/funcs.py +6 -4
- flowfile_worker/main.py +2 -0
- flowfile_worker/models.py +31 -11
- flowfile_worker/routes.py +60 -35
- flowfile_worker/spawner.py +7 -1
- flowfile_worker/streaming.py +335 -0
- flowfile/web/static/assets/ContextMenu-366bf1b4.js +0 -9
- flowfile/web/static/assets/ContextMenu-85cf5b44.js +0 -9
- flowfile/web/static/assets/ContextMenu-9d28ae6d.js +0 -9
- flowfile/web/static/assets/Join-28b5e18f.css +0 -109
- flowfile/web/static/assets/Read-39b63932.js +0 -222
- flowfile/web/static/assets/VueGraphicWalker-430f0b86.css +0 -6
- flowfile/web/static/assets/database_reader-ce1e55f3.svg +0 -24
- flowfile/web/static/assets/database_writer-b4ad0753.svg +0 -23
- flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
- flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
- flowfile/web/static/assets/genericNodeSettings-0155288b.js +0 -136
- flowfile/web/static/assets/genericNodeSettings-3b2507ea.css +0 -46
- flowfile/web/static/assets/index-aeec439d.js +0 -38
- flowfile/web/static/assets/index-ca6799de.js +0 -62760
- flowfile/web/static/assets/index-d60c9dd4.css +0 -10777
- flowfile/web/static/assets/nodeInput-d478b9ac.js +0 -2
- flowfile/web/static/assets/outputCsv-cc84e09f.css +0 -2499
- flowfile-0.5.6.dist-info/RECORD +0 -407
- /flowfile/web/static/assets/{AdminView-f53bad23.css → AdminView-B2Dthl3u.css} +0 -0
- /flowfile/web/static/assets/{CloudConnectionView-cf85f943.css → CloudConnectionView-BdFYGWV7.css} +0 -0
- /flowfile/web/static/assets/{ColumnActionInput-c44b7aee.css → ColumnActionInput-dCasSIC9.css} +0 -0
- /flowfile/web/static/assets/{ColumnSelector-371637fb.css → ColumnSelector-j6sEOjo1.css} +0 -0
- /flowfile/web/static/assets/{CustomNode-edb9b939.css → CustomNode-VPlajG0j.css} +0 -0
- /flowfile/web/static/assets/{DatabaseConnectionSettings-c20a1e16.css → DatabaseConnectionSettings-B78hXYgu.css} +0 -0
- /flowfile/web/static/assets/{DatabaseView-6655afd6.css → DatabaseView-B-_adk1s.css} +0 -0
- /flowfile/web/static/assets/{DocumentationView-9ea6e871.css → DocumentationView-CL7iipFL.css} +0 -0
- /flowfile/web/static/assets/{ExploreData-10c5acc8.css → ExploreData-DHjv0Plr.css} +0 -0
- /flowfile/web/static/assets/{LoginView-d325d632.css → LoginView-DN1BXY3e.css} +0 -0
- /flowfile/web/static/assets/{PivotValidation-0e905b1a.css → PivotValidation-DK-FARWe.css} +0 -0
- /flowfile/web/static/assets/{PivotValidation-41b57ad6.css → PivotValidation-FUa9F47u.css} +0 -0
- /flowfile/web/static/assets/{PolarsCode-2b1f1f23.css → PolarsCode-G-gRSrSc.css} +0 -0
- /flowfile/web/static/assets/{SQLQueryComponent-edb90b98.css → SQLQueryComponent-oAbWw0r-.css} +0 -0
- /flowfile/web/static/assets/{SecretSelector-6329f743.css → SecretSelector-CJSadIZx.css} +0 -0
- /flowfile/web/static/assets/{SecretsView-aa291340.css → SecretsView-DbzIRAba.css} +0 -0
- /flowfile/web/static/assets/{SettingsSection-8f980839.css → SettingsSection-BGcJnH6q.css} +0 -0
- /flowfile/web/static/assets/{SettingsSection-07fbbc39.css → SettingsSection-DDWn_EGW.css} +0 -0
- /flowfile/web/static/assets/{SetupView-ec26f76a.css → SetupView-CI1nd-5Z.css} +0 -0
- /flowfile/web/static/assets/{SliderInput-f2e4f23c.css → SliderInput-BRk-q_Dk.css} +0 -0
- /flowfile/web/static/assets/{UnavailableFields-394a1f78.css → UnavailableFields-DRKDImKe.css} +0 -0
- /flowfile/web/static/assets/{Unique-2b705521.css → Unique-Absb0aON.css} +0 -0
- /flowfile/web/static/assets/{UnpivotValidation-d5ca3b7b.css → UnpivotValidation-DSBkFgS-.css} +0 -0
- /flowfile/web/static/assets/{airbyte-292aa232.png → airbyte-W0xvIXwZ.png} +0 -0
- /flowfile/web/static/assets/{cloud_storage_reader-aa1415d6.png → cloud_storage_reader-3GpSCk90.png} +0 -0
- /flowfile/web/static/assets/{cross_join-d30c0290.png → cross_join-B0qpgYoV.png} +0 -0
- /flowfile/web/static/assets/{dropDown-1d6acbd9.css → dropDown-CE0VF5_P.css} +0 -0
- /flowfile/web/static/assets/{explore_data-8a0a2861.png → explore_data-tX6olPPL.png} +0 -0
- /flowfile/web/static/assets/{fa-brands-400-808443ae.ttf → fa-brands-400-D1LuMI3I.ttf} +0 -0
- /flowfile/web/static/assets/{fa-brands-400-d7236a19.woff2 → fa-brands-400-D_cYUPeE.woff2} +0 -0
- /flowfile/web/static/assets/{fa-regular-400-e3456d12.woff2 → fa-regular-400-BjRzuEpd.woff2} +0 -0
- /flowfile/web/static/assets/{fa-regular-400-54cf6086.ttf → fa-regular-400-DZaxPHgR.ttf} +0 -0
- /flowfile/web/static/assets/{fa-solid-900-aa759986.woff2 → fa-solid-900-CTAAxXor.woff2} +0 -0
- /flowfile/web/static/assets/{fa-solid-900-d2f05935.ttf → fa-solid-900-D0aA9rwL.ttf} +0 -0
- /flowfile/web/static/assets/{fa-v4compatibility-0ce9033c.woff2 → fa-v4compatibility-C9RhG_FT.woff2} +0 -0
- /flowfile/web/static/assets/{fa-v4compatibility-30f6abf6.ttf → fa-v4compatibility-CCth-dXg.ttf} +0 -0
- /flowfile/web/static/assets/{filter-d7708bda.png → filter-WRdZyUOw.png} +0 -0
- /flowfile/web/static/assets/{formula-eeeb1611.png → formula-CgM7uHVI.png} +0 -0
- /flowfile/web/static/assets/{fullEditor-fe9f7e18.css → fullEditor-CmDI7T9F.css} +0 -0
- /flowfile/web/static/assets/{fuzzy_match-40c161b2.png → fuzzy_match-Yon3k5Tc.png} +0 -0
- /flowfile/web/static/assets/{graph_solver-8b7888b8.png → graph_solver-BlMrBttD.png} +0 -0
- /flowfile/web/static/assets/{group_by-80561fc3.png → group_by-Gici0CSS.png} +0 -0
- /flowfile/web/static/assets/{input_data-ab2eb678.png → input_data-BRdGecLc.png} +0 -0
- /flowfile/web/static/assets/{join-349043ae.png → join-BITWRu73.png} +0 -0
- /flowfile/web/static/assets/{manual_input-ae98f31d.png → manual_input-CFvo_EUS.png} +0 -0
- /flowfile/web/static/assets/{old_join-5d0eb604.png → old_join-B9bkpPqv.png} +0 -0
- /flowfile/web/static/assets/{output-06ec0371.png → output-Dp7-ZpC4.png} +0 -0
- /flowfile/web/static/assets/{outputExcel-f5d272b2.css → outputExcel-CKgRe2iT.css} +0 -0
- /flowfile/web/static/assets/{outputParquet-54597c3c.css → outputParquet-d7j407cK.css} +0 -0
- /flowfile/web/static/assets/{pivot-9660df51.png → pivot-DSxKhNlD.png} +0 -0
- /flowfile/web/static/assets/{polars_code-05ce5dc6.png → polars_code-DxiztZ1c.png} +0 -0
- /flowfile/web/static/assets/{readCsv-3bfac4c3.css → readCsv-BG-1Jilp.css} +0 -0
- /flowfile/web/static/assets/{readExcel-3db6b763.css → readExcel-DBQXKPtC.css} +0 -0
- /flowfile/web/static/assets/{record_count-dab44eb5.png → record_count-DCeaLtpS.png} +0 -0
- /flowfile/web/static/assets/{record_id-0b15856b.png → record_id-FeUjyIFh.png} +0 -0
- /flowfile/web/static/assets/{sample-693a88b5.png → sample-DeqfRiB-.png} +0 -0
- /flowfile/web/static/assets/{select-b0d0437a.png → select-D4JjbdjS.png} +0 -0
- /flowfile/web/static/assets/{selectDynamic-f2fb394f.css → selectDynamic-CjeTPUUo.css} +0 -0
- /flowfile/web/static/assets/{sort-2aa579f0.png → sort-DGwUG9WS.png} +0 -0
- /flowfile/web/static/assets/{summarize-2a099231.png → summarize-DFaNHpfp.png} +0 -0
- /flowfile/web/static/assets/{text_to_rows-859b29ea.png → text_to_rows-BdiAewrN.png} +0 -0
- /flowfile/web/static/assets/{union-2d8609f4.png → union-DCK-LSMq.png} +0 -0
- /flowfile/web/static/assets/{unique-1958b98a.png → unique-CdP3zZIq.png} +0 -0
- /flowfile/web/static/assets/{unpivot-d3cb4b5b.png → unpivot-CHttrEt8.png} +0 -0
- /flowfile/web/static/assets/{user-defined-icon-0ae16c90.png → user-defined-icon-BcIp2Vzo.png} +0 -0
- /flowfile/web/static/assets/{view-7a0f0be1.png → view-DUSRwjvq.png} +0 -0
- {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/entry_points.txt +0 -0
- {flowfile-0.5.6.dist-info → flowfile-0.6.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as defineComponent,
|
|
2
|
-
import { T, k as keymap, a as acceptCompletion, i as indentMore, b as indentLess, c as EditorState, d as autocompletion, P as Prec, E as EditorView } from "./vue-codemirror.esm-
|
|
3
|
-
import { g as getImageUrl, _ as
|
|
1
|
+
import { d as defineComponent, c as createElementBlock, a as createBaseVNode, K as Fragment, L as renderList, A as unref, n as normalizeClass, t as toDisplayString, o as openBlock, g as _export_sfc, w as withModifiers, e as createCommentVNode, r as ref, f as createTextVNode, b as createStaticVNode, z as createVNode, J as onMounted, k as axios, G as computed, a5 as reactive, H as watch, h as withDirectives, v as vModelText, a6 as isRef, C as createBlock } from "./index-bcuE0Z0p.js";
|
|
2
|
+
import { T, k as keymap, a as acceptCompletion, i as indentMore, b as indentLess, c as EditorState, d as autocompletion, P as Prec, E as EditorView } from "./vue-codemirror.esm-CwaYwln0.js";
|
|
3
|
+
import { g as getImageUrl, _ as __vite_glob_0_33, a as __vite_glob_0_32, b as __vite_glob_0_31, c as __vite_glob_0_30, d as __vite_glob_0_29, e as __vite_glob_0_28, h as __vite_glob_0_27, i as __vite_glob_0_26, j as __vite_glob_0_25, k as __vite_glob_0_24, l as __vite_glob_0_23, m as __vite_glob_0_22, n as __vite_glob_0_21, q as __vite_glob_0_20, r as __vite_glob_0_19, s as __vite_glob_0_18, t as __vite_glob_0_17, u as __vite_glob_0_16, v as __vite_glob_0_15, w as __vite_glob_0_14, x as __vite_glob_0_13, y as __vite_glob_0_12, z as __vite_glob_0_11, A as __vite_glob_0_10, B as __vite_glob_0_9, C as __vite_glob_0_8, D as __vite_glob_0_7, E as __vite_glob_0_6, F as __vite_glob_0_5, G as __vite_glob_0_4, H as __vite_glob_0_3, I as __vite_glob_0_2, J as __vite_glob_0_1, K as __vite_glob_0_0, L as getDefaultIconUrl, M as getCustomIconUrl, o as oneDark, p as python } from "./index-CHPMUR0d.js";
|
|
4
4
|
const STORAGE_KEY = "nodeDesigner_state";
|
|
5
5
|
const availableComponents = [
|
|
6
6
|
{ type: "TextInput", label: "Text Input", icon: "fa-solid fa-font" },
|
|
@@ -71,7 +71,6 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
|
-
const ComponentPalette_vue_vue_type_style_index_0_scoped_7eeb4ea6_lang = "";
|
|
75
74
|
const ComponentPalette = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-7eeb4ea6"]]);
|
|
76
75
|
const _hoisted_1$9 = { class: "section-header" };
|
|
77
76
|
const _hoisted_2$9 = { class: "section-fields" };
|
|
@@ -111,7 +110,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
111
110
|
}
|
|
112
111
|
return (_ctx, _cache) => {
|
|
113
112
|
return openBlock(), createElementBlock("div", {
|
|
114
|
-
class: normalizeClass(["section-card", { selected:
|
|
113
|
+
class: normalizeClass(["section-card", { selected: __props.isSelected }]),
|
|
115
114
|
onClick: _cache[4] || (_cache[4] = ($event) => emit("select"))
|
|
116
115
|
}, [
|
|
117
116
|
createBaseVNode("div", _hoisted_1$9, [
|
|
@@ -119,7 +118,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
119
118
|
createBaseVNode("div", _hoisted_3$8, [
|
|
120
119
|
_cache[5] || (_cache[5] = createBaseVNode("label", null, "Variable Name", -1)),
|
|
121
120
|
createBaseVNode("input", {
|
|
122
|
-
value:
|
|
121
|
+
value: __props.section.name,
|
|
123
122
|
type: "text",
|
|
124
123
|
class: "section-name-input",
|
|
125
124
|
placeholder: "section_name",
|
|
@@ -131,7 +130,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
131
130
|
createBaseVNode("div", _hoisted_5$5, [
|
|
132
131
|
_cache[6] || (_cache[6] = createBaseVNode("label", null, "Display Title", -1)),
|
|
133
132
|
createBaseVNode("input", {
|
|
134
|
-
value:
|
|
133
|
+
value: __props.section.title,
|
|
135
134
|
type: "text",
|
|
136
135
|
class: "section-title-input",
|
|
137
136
|
placeholder: "Section Title",
|
|
@@ -144,9 +143,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
144
143
|
createBaseVNode("button", {
|
|
145
144
|
class: "btn-icon",
|
|
146
145
|
onClick: _cache[2] || (_cache[2] = withModifiers(($event) => emit("remove"), ["stop"]))
|
|
147
|
-
}, _cache[7] || (_cache[7] = [
|
|
146
|
+
}, [..._cache[7] || (_cache[7] = [
|
|
148
147
|
createBaseVNode("i", { class: "fa-solid fa-trash" }, null, -1)
|
|
149
|
-
]))
|
|
148
|
+
])])
|
|
150
149
|
]),
|
|
151
150
|
createBaseVNode("div", {
|
|
152
151
|
class: "section-components",
|
|
@@ -154,10 +153,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
154
153
|
}, ["prevent"])),
|
|
155
154
|
onDrop: handleDrop
|
|
156
155
|
}, [
|
|
157
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
156
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.section.components, (component, compIndex) => {
|
|
158
157
|
return openBlock(), createElementBlock("div", {
|
|
159
158
|
key: compIndex,
|
|
160
|
-
class: normalizeClass(["component-card", { selected:
|
|
159
|
+
class: normalizeClass(["component-card", { selected: __props.isSelected && __props.selectedComponentIndex === compIndex }]),
|
|
161
160
|
onClick: withModifiers(($event) => emit("selectComponent", compIndex), ["stop"])
|
|
162
161
|
}, [
|
|
163
162
|
createBaseVNode("div", _hoisted_8$5, [
|
|
@@ -170,21 +169,20 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
170
169
|
createBaseVNode("button", {
|
|
171
170
|
class: "btn-icon btn-remove",
|
|
172
171
|
onClick: withModifiers(($event) => emit("removeComponent", compIndex), ["stop"])
|
|
173
|
-
}, _cache[8] || (_cache[8] = [
|
|
172
|
+
}, [..._cache[8] || (_cache[8] = [
|
|
174
173
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
175
|
-
]), 8, _hoisted_11$5)
|
|
174
|
+
])], 8, _hoisted_11$5)
|
|
176
175
|
], 10, _hoisted_7$5);
|
|
177
176
|
}), 128)),
|
|
178
|
-
|
|
177
|
+
__props.section.components.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12$4, [..._cache[9] || (_cache[9] = [
|
|
179
178
|
createBaseVNode("i", { class: "fa-solid fa-plus" }, null, -1),
|
|
180
179
|
createBaseVNode("span", null, "Drop components here", -1)
|
|
181
|
-
]))) : createCommentVNode("", true)
|
|
180
|
+
])])) : createCommentVNode("", true)
|
|
182
181
|
], 32)
|
|
183
182
|
], 2);
|
|
184
183
|
};
|
|
185
184
|
}
|
|
186
185
|
});
|
|
187
|
-
const SectionCard_vue_vue_type_style_index_0_scoped_17318956_lang = "";
|
|
188
186
|
const SectionCard = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-17318956"]]);
|
|
189
187
|
function toSnakeCase(str) {
|
|
190
188
|
return str.replace(/\s+/g, "_").replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase().replace(/[^a-z0-9_]/g, "");
|
|
@@ -228,15 +226,12 @@ function useCodeGeneration() {
|
|
|
228
226
|
sectionsCode += ` label="${comp.label || fieldName}",
|
|
229
227
|
`;
|
|
230
228
|
if (comp.component_type === "TextInput") {
|
|
231
|
-
if (comp.default)
|
|
232
|
-
sectionsCode += ` default="${comp.default}",
|
|
229
|
+
if (comp.default) sectionsCode += ` default="${comp.default}",
|
|
233
230
|
`;
|
|
234
|
-
if (comp.placeholder)
|
|
235
|
-
sectionsCode += ` placeholder="${comp.placeholder}",
|
|
231
|
+
if (comp.placeholder) sectionsCode += ` placeholder="${comp.placeholder}",
|
|
236
232
|
`;
|
|
237
233
|
} else if (comp.component_type === "NumericInput") {
|
|
238
|
-
if (comp.default !== void 0)
|
|
239
|
-
sectionsCode += ` default=${comp.default},
|
|
234
|
+
if (comp.default !== void 0) sectionsCode += ` default=${comp.default},
|
|
240
235
|
`;
|
|
241
236
|
if (comp.min_value !== void 0)
|
|
242
237
|
sectionsCode += ` min_value=${comp.min_value},
|
|
@@ -247,8 +242,7 @@ function useCodeGeneration() {
|
|
|
247
242
|
} else if (comp.component_type === "ToggleSwitch") {
|
|
248
243
|
sectionsCode += ` default=${comp.default ? "True" : "False"},
|
|
249
244
|
`;
|
|
250
|
-
if (comp.description)
|
|
251
|
-
sectionsCode += ` description="${comp.description}",
|
|
245
|
+
if (comp.description) sectionsCode += ` description="${comp.description}",
|
|
252
246
|
`;
|
|
253
247
|
} else if (comp.component_type === "SingleSelect" || comp.component_type === "MultiSelect") {
|
|
254
248
|
if (comp.options_source === "incoming_columns") {
|
|
@@ -260,11 +254,9 @@ function useCodeGeneration() {
|
|
|
260
254
|
`;
|
|
261
255
|
}
|
|
262
256
|
} else if (comp.component_type === "ColumnSelector") {
|
|
263
|
-
if (comp.required)
|
|
264
|
-
sectionsCode += ` required=True,
|
|
257
|
+
if (comp.required) sectionsCode += ` required=True,
|
|
265
258
|
`;
|
|
266
|
-
if (comp.multiple)
|
|
267
|
-
sectionsCode += ` multiple=True,
|
|
259
|
+
if (comp.multiple) sectionsCode += ` multiple=True,
|
|
268
260
|
`;
|
|
269
261
|
if (comp.data_types && comp.data_types !== "ALL") {
|
|
270
262
|
sectionsCode += ` data_types="${comp.data_types}",
|
|
@@ -275,18 +267,14 @@ function useCodeGeneration() {
|
|
|
275
267
|
`;
|
|
276
268
|
sectionsCode += ` max_value=${comp.max_value ?? 100},
|
|
277
269
|
`;
|
|
278
|
-
if (comp.step)
|
|
279
|
-
sectionsCode += ` step=${comp.step},
|
|
270
|
+
if (comp.step) sectionsCode += ` step=${comp.step},
|
|
280
271
|
`;
|
|
281
272
|
} else if (comp.component_type === "SecretSelector") {
|
|
282
|
-
if (comp.required)
|
|
283
|
-
sectionsCode += ` required=True,
|
|
273
|
+
if (comp.required) sectionsCode += ` required=True,
|
|
284
274
|
`;
|
|
285
|
-
if (comp.description)
|
|
286
|
-
sectionsCode += ` description="${comp.description}",
|
|
275
|
+
if (comp.description) sectionsCode += ` description="${comp.description}",
|
|
287
276
|
`;
|
|
288
|
-
if (comp.name_prefix)
|
|
289
|
-
sectionsCode += ` name_prefix="${comp.name_prefix}",
|
|
277
|
+
if (comp.name_prefix) sectionsCode += ` name_prefix="${comp.name_prefix}",
|
|
290
278
|
`;
|
|
291
279
|
} else if (comp.component_type === "ColumnActionInput") {
|
|
292
280
|
if (comp.actions_string) {
|
|
@@ -298,11 +286,9 @@ function useCodeGeneration() {
|
|
|
298
286
|
sectionsCode += ` output_name_template="${comp.output_name_template}",
|
|
299
287
|
`;
|
|
300
288
|
}
|
|
301
|
-
if (comp.show_group_by)
|
|
302
|
-
sectionsCode += ` show_group_by=True,
|
|
289
|
+
if (comp.show_group_by) sectionsCode += ` show_group_by=True,
|
|
303
290
|
`;
|
|
304
|
-
if (comp.show_order_by)
|
|
305
|
-
sectionsCode += ` show_order_by=True,
|
|
291
|
+
if (comp.show_order_by) sectionsCode += ` show_order_by=True,
|
|
306
292
|
`;
|
|
307
293
|
if (comp.data_types && comp.data_types !== "ALL") {
|
|
308
294
|
sectionsCode += ` data_types="${comp.data_types}",
|
|
@@ -544,8 +530,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
544
530
|
}
|
|
545
531
|
}
|
|
546
532
|
function insertVariable() {
|
|
547
|
-
if (!props.component || !props.sectionName)
|
|
548
|
-
return;
|
|
533
|
+
if (!props.component || !props.sectionName) return;
|
|
549
534
|
const fieldName = toSnakeCase(props.component.field_name);
|
|
550
535
|
const sectionName = toSnakeCase(props.sectionName);
|
|
551
536
|
const pyType = getTypeForComponent(props.component.component_type, props.component.multiple);
|
|
@@ -563,12 +548,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
563
548
|
createBaseVNode("h3", null, "Properties")
|
|
564
549
|
], -1)),
|
|
565
550
|
createBaseVNode("div", _hoisted_2$8, [
|
|
566
|
-
|
|
551
|
+
__props.component ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
|
|
567
552
|
createBaseVNode("div", _hoisted_4$6, [
|
|
568
553
|
createBaseVNode("i", {
|
|
569
|
-
class: normalizeClass(unref(getComponentIcon)(
|
|
554
|
+
class: normalizeClass(unref(getComponentIcon)(__props.component.component_type))
|
|
570
555
|
}, null, 2),
|
|
571
|
-
createBaseVNode("span", null, toDisplayString(
|
|
556
|
+
createBaseVNode("span", null, toDisplayString(__props.component.component_type), 1)
|
|
572
557
|
]),
|
|
573
558
|
createBaseVNode("div", _hoisted_5$4, [
|
|
574
559
|
_cache[29] || (_cache[29] = createBaseVNode("div", { class: "property-group-title" }, "Basic", -1)),
|
|
@@ -578,7 +563,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
578
563
|
createBaseVNode("span", { class: "required" }, "*")
|
|
579
564
|
], -1)),
|
|
580
565
|
createBaseVNode("input", {
|
|
581
|
-
value:
|
|
566
|
+
value: __props.component.field_name,
|
|
582
567
|
type: "text",
|
|
583
568
|
class: "property-input",
|
|
584
569
|
placeholder: "field_name",
|
|
@@ -588,7 +573,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
588
573
|
createBaseVNode("div", _hoisted_8$4, [
|
|
589
574
|
_cache[28] || (_cache[28] = createBaseVNode("label", { class: "property-label" }, "Label", -1)),
|
|
590
575
|
createBaseVNode("input", {
|
|
591
|
-
value:
|
|
576
|
+
value: __props.component.label,
|
|
592
577
|
type: "text",
|
|
593
578
|
class: "property-input",
|
|
594
579
|
placeholder: "Display Label",
|
|
@@ -596,12 +581,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
596
581
|
}, null, 40, _hoisted_9$4)
|
|
597
582
|
])
|
|
598
583
|
]),
|
|
599
|
-
|
|
584
|
+
__props.component.component_type === "TextInput" ? (openBlock(), createElementBlock("div", _hoisted_10$4, [
|
|
600
585
|
_cache[32] || (_cache[32] = createBaseVNode("div", { class: "property-group-title" }, "Text Options", -1)),
|
|
601
586
|
createBaseVNode("div", _hoisted_11$4, [
|
|
602
587
|
_cache[30] || (_cache[30] = createBaseVNode("label", { class: "property-label" }, "Default Value", -1)),
|
|
603
588
|
createBaseVNode("input", {
|
|
604
|
-
value:
|
|
589
|
+
value: __props.component.default,
|
|
605
590
|
type: "text",
|
|
606
591
|
class: "property-input",
|
|
607
592
|
placeholder: "Default value",
|
|
@@ -611,7 +596,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
611
596
|
createBaseVNode("div", _hoisted_13$3, [
|
|
612
597
|
_cache[31] || (_cache[31] = createBaseVNode("label", { class: "property-label" }, "Placeholder", -1)),
|
|
613
598
|
createBaseVNode("input", {
|
|
614
|
-
value:
|
|
599
|
+
value: __props.component.placeholder,
|
|
615
600
|
type: "text",
|
|
616
601
|
class: "property-input",
|
|
617
602
|
placeholder: "Placeholder text",
|
|
@@ -619,12 +604,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
619
604
|
}, null, 40, _hoisted_14$3)
|
|
620
605
|
])
|
|
621
606
|
])) : createCommentVNode("", true),
|
|
622
|
-
|
|
607
|
+
__props.component.component_type === "NumericInput" ? (openBlock(), createElementBlock("div", _hoisted_15$3, [
|
|
623
608
|
_cache[36] || (_cache[36] = createBaseVNode("div", { class: "property-group-title" }, "Number Options", -1)),
|
|
624
609
|
createBaseVNode("div", _hoisted_16$3, [
|
|
625
610
|
_cache[33] || (_cache[33] = createBaseVNode("label", { class: "property-label" }, "Default Value", -1)),
|
|
626
611
|
createBaseVNode("input", {
|
|
627
|
-
value:
|
|
612
|
+
value: __props.component.default,
|
|
628
613
|
type: "number",
|
|
629
614
|
class: "property-input",
|
|
630
615
|
onInput: _cache[4] || (_cache[4] = ($event) => updateField("default", Number($event.target.value)))
|
|
@@ -633,7 +618,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
633
618
|
createBaseVNode("div", _hoisted_18$2, [
|
|
634
619
|
_cache[34] || (_cache[34] = createBaseVNode("label", { class: "property-label" }, "Min Value", -1)),
|
|
635
620
|
createBaseVNode("input", {
|
|
636
|
-
value:
|
|
621
|
+
value: __props.component.min_value,
|
|
637
622
|
type: "number",
|
|
638
623
|
class: "property-input",
|
|
639
624
|
onInput: _cache[5] || (_cache[5] = ($event) => updateField("min_value", Number($event.target.value)))
|
|
@@ -642,19 +627,19 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
642
627
|
createBaseVNode("div", _hoisted_20, [
|
|
643
628
|
_cache[35] || (_cache[35] = createBaseVNode("label", { class: "property-label" }, "Max Value", -1)),
|
|
644
629
|
createBaseVNode("input", {
|
|
645
|
-
value:
|
|
630
|
+
value: __props.component.max_value,
|
|
646
631
|
type: "number",
|
|
647
632
|
class: "property-input",
|
|
648
633
|
onInput: _cache[6] || (_cache[6] = ($event) => updateField("max_value", Number($event.target.value)))
|
|
649
634
|
}, null, 40, _hoisted_21)
|
|
650
635
|
])
|
|
651
636
|
])) : createCommentVNode("", true),
|
|
652
|
-
|
|
637
|
+
__props.component.component_type === "ToggleSwitch" ? (openBlock(), createElementBlock("div", _hoisted_22, [
|
|
653
638
|
_cache[39] || (_cache[39] = createBaseVNode("div", { class: "property-group-title" }, "Toggle Options", -1)),
|
|
654
639
|
createBaseVNode("div", _hoisted_23, [
|
|
655
640
|
_cache[37] || (_cache[37] = createBaseVNode("label", { class: "property-label" }, "Default Value", -1)),
|
|
656
641
|
createBaseVNode("input", {
|
|
657
|
-
checked:
|
|
642
|
+
checked: __props.component.default,
|
|
658
643
|
type: "checkbox",
|
|
659
644
|
class: "property-checkbox",
|
|
660
645
|
onChange: _cache[7] || (_cache[7] = ($event) => updateField("default", $event.target.checked))
|
|
@@ -663,7 +648,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
663
648
|
createBaseVNode("div", _hoisted_25, [
|
|
664
649
|
_cache[38] || (_cache[38] = createBaseVNode("label", { class: "property-label" }, "Description", -1)),
|
|
665
650
|
createBaseVNode("input", {
|
|
666
|
-
value:
|
|
651
|
+
value: __props.component.description,
|
|
667
652
|
type: "text",
|
|
668
653
|
class: "property-input",
|
|
669
654
|
placeholder: "Toggle description",
|
|
@@ -671,23 +656,23 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
671
656
|
}, null, 40, _hoisted_26)
|
|
672
657
|
])
|
|
673
658
|
])) : createCommentVNode("", true),
|
|
674
|
-
|
|
659
|
+
__props.component.component_type === "SingleSelect" ? (openBlock(), createElementBlock("div", _hoisted_27, [
|
|
675
660
|
_cache[43] || (_cache[43] = createBaseVNode("div", { class: "property-group-title" }, "Select Options", -1)),
|
|
676
661
|
createBaseVNode("div", _hoisted_28, [
|
|
677
662
|
_cache[41] || (_cache[41] = createBaseVNode("label", { class: "property-label" }, "Options Source", -1)),
|
|
678
663
|
createBaseVNode("select", {
|
|
679
|
-
value:
|
|
664
|
+
value: __props.component.options_source,
|
|
680
665
|
class: "property-input",
|
|
681
666
|
onChange: _cache[9] || (_cache[9] = ($event) => updateField("options_source", $event.target.value))
|
|
682
|
-
}, _cache[40] || (_cache[40] = [
|
|
667
|
+
}, [..._cache[40] || (_cache[40] = [
|
|
683
668
|
createBaseVNode("option", { value: "static" }, "Static Options", -1),
|
|
684
669
|
createBaseVNode("option", { value: "incoming_columns" }, "Incoming Columns", -1)
|
|
685
|
-
]), 40, _hoisted_29)
|
|
670
|
+
])], 40, _hoisted_29)
|
|
686
671
|
]),
|
|
687
|
-
|
|
672
|
+
__props.component.options_source === "static" ? (openBlock(), createElementBlock("div", _hoisted_30, [
|
|
688
673
|
_cache[42] || (_cache[42] = createBaseVNode("label", { class: "property-label" }, "Options (comma-separated)", -1)),
|
|
689
674
|
createBaseVNode("input", {
|
|
690
|
-
value:
|
|
675
|
+
value: __props.component.options_string,
|
|
691
676
|
type: "text",
|
|
692
677
|
class: "property-input",
|
|
693
678
|
placeholder: "option1, option2, option3",
|
|
@@ -695,23 +680,23 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
695
680
|
}, null, 40, _hoisted_31)
|
|
696
681
|
])) : createCommentVNode("", true)
|
|
697
682
|
])) : createCommentVNode("", true),
|
|
698
|
-
|
|
683
|
+
__props.component.component_type === "MultiSelect" ? (openBlock(), createElementBlock("div", _hoisted_32, [
|
|
699
684
|
_cache[47] || (_cache[47] = createBaseVNode("div", { class: "property-group-title" }, "Select Options", -1)),
|
|
700
685
|
createBaseVNode("div", _hoisted_33, [
|
|
701
686
|
_cache[45] || (_cache[45] = createBaseVNode("label", { class: "property-label" }, "Options Source", -1)),
|
|
702
687
|
createBaseVNode("select", {
|
|
703
|
-
value:
|
|
688
|
+
value: __props.component.options_source,
|
|
704
689
|
class: "property-input",
|
|
705
690
|
onChange: _cache[11] || (_cache[11] = ($event) => updateField("options_source", $event.target.value))
|
|
706
|
-
}, _cache[44] || (_cache[44] = [
|
|
691
|
+
}, [..._cache[44] || (_cache[44] = [
|
|
707
692
|
createBaseVNode("option", { value: "static" }, "Static Options", -1),
|
|
708
693
|
createBaseVNode("option", { value: "incoming_columns" }, "Incoming Columns", -1)
|
|
709
|
-
]), 40, _hoisted_34)
|
|
694
|
+
])], 40, _hoisted_34)
|
|
710
695
|
]),
|
|
711
|
-
|
|
696
|
+
__props.component.options_source === "static" ? (openBlock(), createElementBlock("div", _hoisted_35, [
|
|
712
697
|
_cache[46] || (_cache[46] = createBaseVNode("label", { class: "property-label" }, "Options (comma-separated)", -1)),
|
|
713
698
|
createBaseVNode("input", {
|
|
714
|
-
value:
|
|
699
|
+
value: __props.component.options_string,
|
|
715
700
|
type: "text",
|
|
716
701
|
class: "property-input",
|
|
717
702
|
placeholder: "option1, option2, option3",
|
|
@@ -719,12 +704,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
719
704
|
}, null, 40, _hoisted_36)
|
|
720
705
|
])) : createCommentVNode("", true)
|
|
721
706
|
])) : createCommentVNode("", true),
|
|
722
|
-
|
|
707
|
+
__props.component.component_type === "ColumnSelector" ? (openBlock(), createElementBlock("div", _hoisted_37, [
|
|
723
708
|
_cache[52] || (_cache[52] = createBaseVNode("div", { class: "property-group-title" }, "Column Options", -1)),
|
|
724
709
|
createBaseVNode("div", _hoisted_38, [
|
|
725
710
|
_cache[48] || (_cache[48] = createBaseVNode("label", { class: "property-label" }, "Required", -1)),
|
|
726
711
|
createBaseVNode("input", {
|
|
727
|
-
checked:
|
|
712
|
+
checked: __props.component.required,
|
|
728
713
|
type: "checkbox",
|
|
729
714
|
class: "property-checkbox",
|
|
730
715
|
onChange: _cache[13] || (_cache[13] = ($event) => updateField("required", $event.target.checked))
|
|
@@ -733,7 +718,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
733
718
|
createBaseVNode("div", _hoisted_40, [
|
|
734
719
|
_cache[49] || (_cache[49] = createBaseVNode("label", { class: "property-label" }, "Multiple Selection", -1)),
|
|
735
720
|
createBaseVNode("input", {
|
|
736
|
-
checked:
|
|
721
|
+
checked: __props.component.multiple,
|
|
737
722
|
type: "checkbox",
|
|
738
723
|
class: "property-checkbox",
|
|
739
724
|
onChange: _cache[14] || (_cache[14] = ($event) => updateField("multiple", $event.target.checked))
|
|
@@ -742,18 +727,18 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
742
727
|
createBaseVNode("div", _hoisted_42, [
|
|
743
728
|
_cache[51] || (_cache[51] = createBaseVNode("label", { class: "property-label" }, "Data Types Filter", -1)),
|
|
744
729
|
createBaseVNode("select", {
|
|
745
|
-
value:
|
|
730
|
+
value: __props.component.data_types,
|
|
746
731
|
class: "property-input",
|
|
747
732
|
onChange: _cache[15] || (_cache[15] = ($event) => updateField("data_types", $event.target.value))
|
|
748
|
-
}, _cache[50] || (_cache[50] = [
|
|
733
|
+
}, [..._cache[50] || (_cache[50] = [
|
|
749
734
|
createBaseVNode("option", { value: "ALL" }, "All Types", -1),
|
|
750
735
|
createBaseVNode("option", { value: "numeric" }, "Numeric", -1),
|
|
751
736
|
createBaseVNode("option", { value: "string" }, "String", -1),
|
|
752
737
|
createBaseVNode("option", { value: "temporal" }, "Temporal", -1)
|
|
753
|
-
]), 40, _hoisted_43)
|
|
738
|
+
])], 40, _hoisted_43)
|
|
754
739
|
])
|
|
755
740
|
])) : createCommentVNode("", true),
|
|
756
|
-
|
|
741
|
+
__props.component.component_type === "SliderInput" ? (openBlock(), createElementBlock("div", _hoisted_44, [
|
|
757
742
|
_cache[56] || (_cache[56] = createBaseVNode("div", { class: "property-group-title" }, "Slider Options", -1)),
|
|
758
743
|
createBaseVNode("div", _hoisted_45, [
|
|
759
744
|
_cache[53] || (_cache[53] = createBaseVNode("label", { class: "property-label" }, [
|
|
@@ -761,7 +746,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
761
746
|
createBaseVNode("span", { class: "required" }, "*")
|
|
762
747
|
], -1)),
|
|
763
748
|
createBaseVNode("input", {
|
|
764
|
-
value:
|
|
749
|
+
value: __props.component.min_value,
|
|
765
750
|
type: "number",
|
|
766
751
|
class: "property-input",
|
|
767
752
|
onInput: _cache[16] || (_cache[16] = ($event) => updateField("min_value", Number($event.target.value)))
|
|
@@ -773,7 +758,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
773
758
|
createBaseVNode("span", { class: "required" }, "*")
|
|
774
759
|
], -1)),
|
|
775
760
|
createBaseVNode("input", {
|
|
776
|
-
value:
|
|
761
|
+
value: __props.component.max_value,
|
|
777
762
|
type: "number",
|
|
778
763
|
class: "property-input",
|
|
779
764
|
onInput: _cache[17] || (_cache[17] = ($event) => updateField("max_value", Number($event.target.value)))
|
|
@@ -782,14 +767,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
782
767
|
createBaseVNode("div", _hoisted_49, [
|
|
783
768
|
_cache[55] || (_cache[55] = createBaseVNode("label", { class: "property-label" }, "Step", -1)),
|
|
784
769
|
createBaseVNode("input", {
|
|
785
|
-
value:
|
|
770
|
+
value: __props.component.step,
|
|
786
771
|
type: "number",
|
|
787
772
|
class: "property-input",
|
|
788
773
|
onInput: _cache[18] || (_cache[18] = ($event) => updateField("step", Number($event.target.value)))
|
|
789
774
|
}, null, 40, _hoisted_50)
|
|
790
775
|
])
|
|
791
776
|
])) : createCommentVNode("", true),
|
|
792
|
-
|
|
777
|
+
__props.component.component_type === "ColumnActionInput" ? (openBlock(), createElementBlock("div", _hoisted_51, [
|
|
793
778
|
_cache[65] || (_cache[65] = createBaseVNode("div", { class: "property-group-title" }, "Column Action Options", -1)),
|
|
794
779
|
createBaseVNode("div", _hoisted_52, [
|
|
795
780
|
_cache[57] || (_cache[57] = createBaseVNode("label", { class: "property-label" }, [
|
|
@@ -797,7 +782,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
797
782
|
createBaseVNode("span", { class: "required" }, "*")
|
|
798
783
|
], -1)),
|
|
799
784
|
createBaseVNode("input", {
|
|
800
|
-
value:
|
|
785
|
+
value: __props.component.actions_string,
|
|
801
786
|
type: "text",
|
|
802
787
|
class: "property-input",
|
|
803
788
|
placeholder: "sum, mean, min, max",
|
|
@@ -808,7 +793,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
808
793
|
createBaseVNode("div", _hoisted_54, [
|
|
809
794
|
_cache[59] || (_cache[59] = createBaseVNode("label", { class: "property-label" }, "Output Name Template", -1)),
|
|
810
795
|
createBaseVNode("input", {
|
|
811
|
-
value:
|
|
796
|
+
value: __props.component.output_name_template,
|
|
812
797
|
type: "text",
|
|
813
798
|
class: "property-input",
|
|
814
799
|
placeholder: "{column}_{action}",
|
|
@@ -819,20 +804,20 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
819
804
|
createBaseVNode("div", _hoisted_56, [
|
|
820
805
|
_cache[62] || (_cache[62] = createBaseVNode("label", { class: "property-label" }, "Data Types Filter", -1)),
|
|
821
806
|
createBaseVNode("select", {
|
|
822
|
-
value:
|
|
807
|
+
value: __props.component.data_types,
|
|
823
808
|
class: "property-input",
|
|
824
809
|
onChange: _cache[21] || (_cache[21] = ($event) => updateField("data_types", $event.target.value))
|
|
825
|
-
}, _cache[61] || (_cache[61] = [
|
|
810
|
+
}, [..._cache[61] || (_cache[61] = [
|
|
826
811
|
createBaseVNode("option", { value: "ALL" }, "All Types", -1),
|
|
827
812
|
createBaseVNode("option", { value: "Numeric" }, "Numeric", -1),
|
|
828
813
|
createBaseVNode("option", { value: "String" }, "String", -1),
|
|
829
814
|
createBaseVNode("option", { value: "Date" }, "Date/Time", -1)
|
|
830
|
-
]), 40, _hoisted_57)
|
|
815
|
+
])], 40, _hoisted_57)
|
|
831
816
|
]),
|
|
832
817
|
createBaseVNode("div", _hoisted_58, [
|
|
833
818
|
_cache[63] || (_cache[63] = createBaseVNode("label", { class: "property-label" }, "Show Group By", -1)),
|
|
834
819
|
createBaseVNode("input", {
|
|
835
|
-
checked:
|
|
820
|
+
checked: __props.component.show_group_by,
|
|
836
821
|
type: "checkbox",
|
|
837
822
|
class: "property-checkbox",
|
|
838
823
|
onChange: _cache[22] || (_cache[22] = ($event) => updateField("show_group_by", $event.target.checked))
|
|
@@ -841,19 +826,19 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
841
826
|
createBaseVNode("div", _hoisted_60, [
|
|
842
827
|
_cache[64] || (_cache[64] = createBaseVNode("label", { class: "property-label" }, "Show Order By", -1)),
|
|
843
828
|
createBaseVNode("input", {
|
|
844
|
-
checked:
|
|
829
|
+
checked: __props.component.show_order_by,
|
|
845
830
|
type: "checkbox",
|
|
846
831
|
class: "property-checkbox",
|
|
847
832
|
onChange: _cache[23] || (_cache[23] = ($event) => updateField("show_order_by", $event.target.checked))
|
|
848
833
|
}, null, 40, _hoisted_61)
|
|
849
834
|
])
|
|
850
835
|
])) : createCommentVNode("", true),
|
|
851
|
-
|
|
836
|
+
__props.component.component_type === "SecretSelector" ? (openBlock(), createElementBlock("div", _hoisted_62, [
|
|
852
837
|
_cache[70] || (_cache[70] = createBaseVNode("div", { class: "property-group-title" }, "Secret Options", -1)),
|
|
853
838
|
createBaseVNode("div", _hoisted_63, [
|
|
854
839
|
_cache[66] || (_cache[66] = createBaseVNode("label", { class: "property-label" }, "Required", -1)),
|
|
855
840
|
createBaseVNode("input", {
|
|
856
|
-
checked:
|
|
841
|
+
checked: __props.component.required,
|
|
857
842
|
type: "checkbox",
|
|
858
843
|
class: "property-checkbox",
|
|
859
844
|
onChange: _cache[24] || (_cache[24] = ($event) => updateField("required", $event.target.checked))
|
|
@@ -862,7 +847,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
862
847
|
createBaseVNode("div", _hoisted_65, [
|
|
863
848
|
_cache[67] || (_cache[67] = createBaseVNode("label", { class: "property-label" }, "Description", -1)),
|
|
864
849
|
createBaseVNode("input", {
|
|
865
|
-
value:
|
|
850
|
+
value: __props.component.description,
|
|
866
851
|
type: "text",
|
|
867
852
|
class: "property-input",
|
|
868
853
|
placeholder: "Help text for the user",
|
|
@@ -872,7 +857,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
872
857
|
createBaseVNode("div", _hoisted_67, [
|
|
873
858
|
_cache[68] || (_cache[68] = createBaseVNode("label", { class: "property-label" }, "Name Prefix Filter", -1)),
|
|
874
859
|
createBaseVNode("input", {
|
|
875
|
-
value:
|
|
860
|
+
value: __props.component.name_prefix,
|
|
876
861
|
type: "text",
|
|
877
862
|
class: "property-input",
|
|
878
863
|
placeholder: "e.g. API_KEY_",
|
|
@@ -885,22 +870,21 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
885
870
|
createBaseVNode("button", {
|
|
886
871
|
class: "action-btn",
|
|
887
872
|
onClick: insertVariable
|
|
888
|
-
}, _cache[71] || (_cache[71] = [
|
|
873
|
+
}, [..._cache[71] || (_cache[71] = [
|
|
889
874
|
createBaseVNode("i", { class: "fa-solid fa-code" }, null, -1),
|
|
890
|
-
createTextVNode(" Insert Variable ")
|
|
891
|
-
])),
|
|
875
|
+
createTextVNode(" Insert Variable ", -1)
|
|
876
|
+
])]),
|
|
892
877
|
_cache[72] || (_cache[72] = createBaseVNode("span", { class: "field-hint" }, "Add typed variable to process method", -1))
|
|
893
878
|
])
|
|
894
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_69, _cache[73] || (_cache[73] = [
|
|
879
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_69, [..._cache[73] || (_cache[73] = [
|
|
895
880
|
createBaseVNode("i", { class: "fa-solid fa-mouse-pointer" }, null, -1),
|
|
896
881
|
createBaseVNode("p", null, "Select a component to edit its properties", -1)
|
|
897
|
-
])))
|
|
882
|
+
])]))
|
|
898
883
|
])
|
|
899
884
|
]);
|
|
900
885
|
};
|
|
901
886
|
}
|
|
902
887
|
});
|
|
903
|
-
const PropertyEditor_vue_vue_type_style_index_0_scoped_30942683_lang = "";
|
|
904
888
|
const PropertyEditor = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-30942683"]]);
|
|
905
889
|
const _hoisted_1$7 = { class: "modal-header" };
|
|
906
890
|
const _hoisted_2$7 = { class: "modal-actions" };
|
|
@@ -913,7 +897,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
913
897
|
setup(__props, { emit: __emit }) {
|
|
914
898
|
const emit = __emit;
|
|
915
899
|
return (_ctx, _cache) => {
|
|
916
|
-
return
|
|
900
|
+
return __props.show ? (openBlock(), createElementBlock("div", {
|
|
917
901
|
key: 0,
|
|
918
902
|
class: "modal-overlay",
|
|
919
903
|
onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
|
|
@@ -931,9 +915,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
931
915
|
createBaseVNode("button", {
|
|
932
916
|
class: "modal-close",
|
|
933
917
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
934
|
-
}, _cache[4] || (_cache[4] = [
|
|
918
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
935
919
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
936
|
-
]))
|
|
920
|
+
])])
|
|
937
921
|
]),
|
|
938
922
|
_cache[6] || (_cache[6] = createStaticVNode('<div class="modal-content" data-v-3a89a078><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Overview</h4><p data-v-3a89a078> The process method is where you write your data transformation logic. It receives input LazyFrames from connected nodes and returns a transformed LazyFrame. </p></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Method Signature</h4><pre class="help-code" data-v-3a89a078><code data-v-3a89a078>def process(self, *inputs: pl.LazyFrame) -> pl.LazyFrame:</code></pre><ul class="help-list" data-v-3a89a078><li data-v-3a89a078><code data-v-3a89a078>inputs</code> - Tuple of input LazyFrames from connected nodes</li><li data-v-3a89a078><code data-v-3a89a078>inputs[0]</code> - First input (most common)</li><li data-v-3a89a078><code data-v-3a89a078>inputs[1]</code> - Second input (for joins, etc.)</li></ul></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Accessing Settings</h4><p data-v-3a89a078>Access user-configured values from your UI components:</p><pre class="help-code" data-v-3a89a078><code data-v-3a89a078>self.settings_schema.section_name.component_name.value</code></pre><p class="help-note" data-v-3a89a078><i class="fa-solid fa-lightbulb" data-v-3a89a078></i> Use autocomplete by typing <code data-v-3a89a078>self.</code> to navigate the settings schema. </p></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Working with Secrets</h4><p data-v-3a89a078>For SecretSelector components, access the decrypted value:</p><pre class="help-code" data-v-3a89a078><code data-v-3a89a078># Get the SecretStr object\nsecret = self.settings_schema.section.api_key.secret_value\n\n# Get the actual decrypted string value\napi_key = secret.get_secret_value()</code></pre></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Common Patterns</h4><div class="pattern-grid" data-v-3a89a078><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Filter Rows</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.filter(pl.col("column") > 10)</code></pre></div><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Select Columns</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.select(["col1", "col2"])</code></pre></div><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Add New Column</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.with_columns(\n pl.col("a").alias("new_col")\n)</code></pre></div><div class="pattern-item" data-v-3a89a078><h5 data-v-3a89a078>Group & Aggregate</h5><pre class="help-code-small" data-v-3a89a078><code data-v-3a89a078>lf = inputs[0]\nreturn lf.group_by("category").agg(\n pl.col("value").sum()\n)</code></pre></div></div></div><div class="help-section" data-v-3a89a078><h4 data-v-3a89a078>Using Settings in Code</h4><pre class="help-code" data-v-3a89a078><code data-v-3a89a078># Example: Using a TextInput value\ncolumn_name = self.settings_schema.options.column_name.value\nlf = inputs[0]\nreturn lf.select(pl.col(column_name))\n\n# Example: Using a ColumnSelector value\nselected_columns = self.settings_schema.columns.selected.value\nreturn lf.select(selected_columns)</code></pre></div></div>', 1)),
|
|
939
923
|
createBaseVNode("div", _hoisted_2$7, [
|
|
@@ -947,7 +931,6 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
947
931
|
};
|
|
948
932
|
}
|
|
949
933
|
});
|
|
950
|
-
const ProcessCodeHelpModal_vue_vue_type_style_index_0_scoped_3a89a078_lang = "";
|
|
951
934
|
const ProcessCodeHelpModal = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-3a89a078"]]);
|
|
952
935
|
const _hoisted_1$6 = { class: "code-editor-section" };
|
|
953
936
|
const _hoisted_2$6 = { class: "code-editor-header" };
|
|
@@ -970,10 +953,10 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
970
953
|
class: "help-btn",
|
|
971
954
|
title: "Show help",
|
|
972
955
|
onClick: _cache[0] || (_cache[0] = ($event) => showHelp.value = true)
|
|
973
|
-
}, _cache[3] || (_cache[3] = [
|
|
956
|
+
}, [..._cache[3] || (_cache[3] = [
|
|
974
957
|
createBaseVNode("i", { class: "fa-solid fa-circle-question" }, null, -1),
|
|
975
958
|
createBaseVNode("span", null, "Help", -1)
|
|
976
|
-
]))
|
|
959
|
+
])])
|
|
977
960
|
]),
|
|
978
961
|
_cache[5] || (_cache[5] = createBaseVNode("p", { class: "code-hint" }, [
|
|
979
962
|
createTextVNode(" Write your data transformation logic. Access settings via "),
|
|
@@ -981,13 +964,13 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
981
964
|
], -1)),
|
|
982
965
|
createBaseVNode("div", _hoisted_3$6, [
|
|
983
966
|
createVNode(unref(T), {
|
|
984
|
-
"model-value":
|
|
967
|
+
"model-value": __props.modelValue,
|
|
985
968
|
placeholder: "# Write your process logic here...",
|
|
986
969
|
style: { height: "300px" },
|
|
987
970
|
autofocus: false,
|
|
988
971
|
"indent-with-tab": false,
|
|
989
972
|
"tab-size": 4,
|
|
990
|
-
extensions:
|
|
973
|
+
extensions: __props.extensions,
|
|
991
974
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => emit("update:modelValue", $event))
|
|
992
975
|
}, null, 8, ["model-value", "extensions"])
|
|
993
976
|
]),
|
|
@@ -999,7 +982,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
999
982
|
};
|
|
1000
983
|
}
|
|
1001
984
|
});
|
|
1002
|
-
const ProcessCodeEditor_vue_vue_type_style_index_0_scoped_7bd9927f_lang = "";
|
|
1003
985
|
const ProcessCodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-7bd9927f"]]);
|
|
1004
986
|
const _hoisted_1$5 = { class: "modal-header" };
|
|
1005
987
|
const _hoisted_2$5 = { class: "modal-content" };
|
|
@@ -1019,7 +1001,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1019
1001
|
alert("Code copied to clipboard!");
|
|
1020
1002
|
}
|
|
1021
1003
|
return (_ctx, _cache) => {
|
|
1022
|
-
return
|
|
1004
|
+
return __props.show ? (openBlock(), createElementBlock("div", {
|
|
1023
1005
|
key: 0,
|
|
1024
1006
|
class: "modal-overlay",
|
|
1025
1007
|
onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
|
|
@@ -1034,14 +1016,14 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1034
1016
|
createBaseVNode("button", {
|
|
1035
1017
|
class: "modal-close",
|
|
1036
1018
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
1037
|
-
}, _cache[4] || (_cache[4] = [
|
|
1019
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
1038
1020
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
1039
|
-
]))
|
|
1021
|
+
])])
|
|
1040
1022
|
]),
|
|
1041
1023
|
createBaseVNode("div", _hoisted_2$5, [
|
|
1042
1024
|
createBaseVNode("div", _hoisted_3$5, [
|
|
1043
1025
|
createBaseVNode("pre", null, [
|
|
1044
|
-
createBaseVNode("code", null, toDisplayString(
|
|
1026
|
+
createBaseVNode("code", null, toDisplayString(__props.code), 1)
|
|
1045
1027
|
])
|
|
1046
1028
|
])
|
|
1047
1029
|
]),
|
|
@@ -1049,10 +1031,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1049
1031
|
createBaseVNode("button", {
|
|
1050
1032
|
class: "btn btn-secondary",
|
|
1051
1033
|
onClick: copyCode
|
|
1052
|
-
}, _cache[6] || (_cache[6] = [
|
|
1034
|
+
}, [..._cache[6] || (_cache[6] = [
|
|
1053
1035
|
createBaseVNode("i", { class: "fa-solid fa-copy" }, null, -1),
|
|
1054
|
-
createTextVNode(" Copy Code ")
|
|
1055
|
-
])),
|
|
1036
|
+
createTextVNode(" Copy Code ", -1)
|
|
1037
|
+
])]),
|
|
1056
1038
|
createBaseVNode("button", {
|
|
1057
1039
|
class: "btn btn-primary",
|
|
1058
1040
|
onClick: _cache[1] || (_cache[1] = ($event) => emit("close"))
|
|
@@ -1063,7 +1045,6 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1063
1045
|
};
|
|
1064
1046
|
}
|
|
1065
1047
|
});
|
|
1066
|
-
const CodePreviewModal_vue_vue_type_style_index_0_scoped_f74c8de3_lang = "";
|
|
1067
1048
|
const CodePreviewModal = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-f74c8de3"]]);
|
|
1068
1049
|
const _hoisted_1$4 = { class: "modal-header modal-header-error" };
|
|
1069
1050
|
const _hoisted_2$4 = { class: "modal-content" };
|
|
@@ -1079,7 +1060,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1079
1060
|
setup(__props, { emit: __emit }) {
|
|
1080
1061
|
const emit = __emit;
|
|
1081
1062
|
return (_ctx, _cache) => {
|
|
1082
|
-
return
|
|
1063
|
+
return __props.show ? (openBlock(), createElementBlock("div", {
|
|
1083
1064
|
key: 0,
|
|
1084
1065
|
class: "modal-overlay",
|
|
1085
1066
|
onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
|
|
@@ -1097,14 +1078,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1097
1078
|
createBaseVNode("button", {
|
|
1098
1079
|
class: "modal-close",
|
|
1099
1080
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
1100
|
-
}, _cache[4] || (_cache[4] = [
|
|
1081
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
1101
1082
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
1102
|
-
]))
|
|
1083
|
+
])])
|
|
1103
1084
|
]),
|
|
1104
1085
|
createBaseVNode("div", _hoisted_2$4, [
|
|
1105
1086
|
_cache[7] || (_cache[7] = createBaseVNode("p", { class: "validation-intro" }, "Please fix the following issues before saving:", -1)),
|
|
1106
1087
|
createBaseVNode("ul", _hoisted_3$4, [
|
|
1107
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
1088
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.errors, (error, index) => {
|
|
1108
1089
|
return openBlock(), createElementBlock("li", {
|
|
1109
1090
|
key: index,
|
|
1110
1091
|
class: "validation-error-item"
|
|
@@ -1126,7 +1107,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1126
1107
|
};
|
|
1127
1108
|
}
|
|
1128
1109
|
});
|
|
1129
|
-
const ValidationModal_vue_vue_type_style_index_0_scoped_bf9df753_lang = "";
|
|
1130
1110
|
const ValidationModal = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-bf9df753"]]);
|
|
1131
1111
|
const _hoisted_1$3 = { class: "modal-header" };
|
|
1132
1112
|
const _hoisted_2$3 = { class: "modal-title" };
|
|
@@ -1175,7 +1155,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1175
1155
|
const emit = __emit;
|
|
1176
1156
|
return (_ctx, _cache) => {
|
|
1177
1157
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
1178
|
-
|
|
1158
|
+
__props.show ? (openBlock(), createElementBlock("div", {
|
|
1179
1159
|
key: 0,
|
|
1180
1160
|
class: "modal-overlay",
|
|
1181
1161
|
onClick: _cache[5] || (_cache[5] = ($event) => emit("close"))
|
|
@@ -1188,35 +1168,35 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1188
1168
|
createBaseVNode("div", _hoisted_1$3, [
|
|
1189
1169
|
createBaseVNode("h3", _hoisted_2$3, [
|
|
1190
1170
|
_cache[11] || (_cache[11] = createBaseVNode("i", { class: "fa-solid fa-folder-open" }, null, -1)),
|
|
1191
|
-
createTextVNode(" " + toDisplayString(
|
|
1171
|
+
createTextVNode(" " + toDisplayString(__props.viewingNodeCode ? __props.viewingNodeName : "Browse Custom Nodes"), 1)
|
|
1192
1172
|
]),
|
|
1193
1173
|
createBaseVNode("button", {
|
|
1194
1174
|
class: "modal-close",
|
|
1195
1175
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
1196
|
-
}, _cache[12] || (_cache[12] = [
|
|
1176
|
+
}, [..._cache[12] || (_cache[12] = [
|
|
1197
1177
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
1198
|
-
]))
|
|
1178
|
+
])])
|
|
1199
1179
|
]),
|
|
1200
1180
|
createBaseVNode("div", _hoisted_3$3, [
|
|
1201
|
-
|
|
1181
|
+
__props.viewingNodeCode ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
|
|
1202
1182
|
createVNode(unref(T), {
|
|
1203
|
-
"model-value":
|
|
1183
|
+
"model-value": __props.viewingNodeCode,
|
|
1204
1184
|
style: { height: "auto", maxHeight: "calc(80vh - 180px)" },
|
|
1205
1185
|
autofocus: false,
|
|
1206
1186
|
"indent-with-tab": false,
|
|
1207
1187
|
"tab-size": 4,
|
|
1208
|
-
extensions:
|
|
1188
|
+
extensions: __props.readOnlyExtensions
|
|
1209
1189
|
}, null, 8, ["model-value", "extensions"])
|
|
1210
1190
|
])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
1211
|
-
|
|
1191
|
+
__props.loading ? (openBlock(), createElementBlock("div", _hoisted_5$3, [..._cache[13] || (_cache[13] = [
|
|
1212
1192
|
createBaseVNode("i", { class: "fa-solid fa-spinner fa-spin" }, null, -1),
|
|
1213
|
-
createTextVNode(" Loading custom nodes... ")
|
|
1214
|
-
]))) :
|
|
1193
|
+
createTextVNode(" Loading custom nodes... ", -1)
|
|
1194
|
+
])])) : __props.nodes.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_6$3, [..._cache[14] || (_cache[14] = [
|
|
1215
1195
|
createBaseVNode("i", { class: "fa-solid fa-folder-open" }, null, -1),
|
|
1216
1196
|
createBaseVNode("p", null, "No custom nodes found", -1),
|
|
1217
1197
|
createBaseVNode("p", { class: "empty-hint" }, "Save a node to see it here", -1)
|
|
1218
|
-
]))) : (openBlock(), createElementBlock("div", _hoisted_7$3, [
|
|
1219
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
1198
|
+
])])) : (openBlock(), createElementBlock("div", _hoisted_7$3, [
|
|
1199
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.nodes, (node) => {
|
|
1220
1200
|
return openBlock(), createElementBlock("div", {
|
|
1221
1201
|
key: node.file_name,
|
|
1222
1202
|
class: "node-card",
|
|
@@ -1239,30 +1219,30 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1239
1219
|
], 64))
|
|
1240
1220
|
]),
|
|
1241
1221
|
createBaseVNode("div", _hoisted_16$2, [
|
|
1242
|
-
|
|
1222
|
+
__props.viewingNodeCode ? (openBlock(), createElementBlock("button", {
|
|
1243
1223
|
key: 0,
|
|
1244
1224
|
class: "btn btn-secondary",
|
|
1245
1225
|
onClick: _cache[1] || (_cache[1] = ($event) => emit("back"))
|
|
1246
|
-
}, _cache[16] || (_cache[16] = [
|
|
1226
|
+
}, [..._cache[16] || (_cache[16] = [
|
|
1247
1227
|
createBaseVNode("i", { class: "fa-solid fa-arrow-left" }, null, -1),
|
|
1248
|
-
createTextVNode(" Back ")
|
|
1249
|
-
]))) : createCommentVNode("", true),
|
|
1250
|
-
|
|
1228
|
+
createTextVNode(" Back ", -1)
|
|
1229
|
+
])])) : createCommentVNode("", true),
|
|
1230
|
+
__props.viewingNodeCode ? (openBlock(), createElementBlock("button", {
|
|
1251
1231
|
key: 1,
|
|
1252
1232
|
class: "btn btn-danger",
|
|
1253
1233
|
onClick: _cache[2] || (_cache[2] = ($event) => emit("confirmDelete"))
|
|
1254
|
-
}, _cache[17] || (_cache[17] = [
|
|
1234
|
+
}, [..._cache[17] || (_cache[17] = [
|
|
1255
1235
|
createBaseVNode("i", { class: "fa-solid fa-trash" }, null, -1),
|
|
1256
|
-
createTextVNode(" Delete ")
|
|
1257
|
-
]))) : createCommentVNode("", true),
|
|
1236
|
+
createTextVNode(" Delete ", -1)
|
|
1237
|
+
])])) : createCommentVNode("", true),
|
|
1258
1238
|
createBaseVNode("button", {
|
|
1259
1239
|
class: "btn btn-secondary",
|
|
1260
1240
|
onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
|
|
1261
|
-
}, toDisplayString(
|
|
1241
|
+
}, toDisplayString(__props.viewingNodeCode ? "Close" : "Cancel"), 1)
|
|
1262
1242
|
])
|
|
1263
1243
|
])
|
|
1264
1244
|
])) : createCommentVNode("", true),
|
|
1265
|
-
|
|
1245
|
+
__props.showDeleteConfirm ? (openBlock(), createElementBlock("div", {
|
|
1266
1246
|
key: 1,
|
|
1267
1247
|
class: "modal-overlay",
|
|
1268
1248
|
onClick: _cache[10] || (_cache[10] = ($event) => emit("cancelDelete"))
|
|
@@ -1280,15 +1260,15 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1280
1260
|
createBaseVNode("button", {
|
|
1281
1261
|
class: "modal-close",
|
|
1282
1262
|
onClick: _cache[6] || (_cache[6] = ($event) => emit("cancelDelete"))
|
|
1283
|
-
}, _cache[18] || (_cache[18] = [
|
|
1263
|
+
}, [..._cache[18] || (_cache[18] = [
|
|
1284
1264
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
1285
|
-
]))
|
|
1265
|
+
])])
|
|
1286
1266
|
]),
|
|
1287
1267
|
createBaseVNode("div", _hoisted_18$1, [
|
|
1288
1268
|
createBaseVNode("p", null, [
|
|
1289
|
-
_cache[20] || (_cache[20] = createTextVNode(" Are you sure you want to delete ")),
|
|
1290
|
-
createBaseVNode("strong", null, toDisplayString(
|
|
1291
|
-
_cache[21] || (_cache[21] = createTextVNode("? "))
|
|
1269
|
+
_cache[20] || (_cache[20] = createTextVNode(" Are you sure you want to delete ", -1)),
|
|
1270
|
+
createBaseVNode("strong", null, toDisplayString(__props.viewingNodeName), 1),
|
|
1271
|
+
_cache[21] || (_cache[21] = createTextVNode("? ", -1))
|
|
1292
1272
|
]),
|
|
1293
1273
|
_cache[22] || (_cache[22] = createBaseVNode("p", { class: "delete-warning" }, "This action cannot be undone.", -1))
|
|
1294
1274
|
]),
|
|
@@ -1300,10 +1280,10 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1300
1280
|
createBaseVNode("button", {
|
|
1301
1281
|
class: "btn btn-danger",
|
|
1302
1282
|
onClick: _cache[8] || (_cache[8] = ($event) => emit("delete"))
|
|
1303
|
-
}, _cache[23] || (_cache[23] = [
|
|
1283
|
+
}, [..._cache[23] || (_cache[23] = [
|
|
1304
1284
|
createBaseVNode("i", { class: "fa-solid fa-trash" }, null, -1),
|
|
1305
|
-
createTextVNode(" Delete ")
|
|
1306
|
-
]))
|
|
1285
|
+
createTextVNode(" Delete ", -1)
|
|
1286
|
+
])])
|
|
1307
1287
|
])
|
|
1308
1288
|
])
|
|
1309
1289
|
])) : createCommentVNode("", true)
|
|
@@ -1311,7 +1291,6 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1311
1291
|
};
|
|
1312
1292
|
}
|
|
1313
1293
|
});
|
|
1314
|
-
const NodeBrowserModal_vue_vue_type_style_index_0_scoped_fca09e8f_lang = "";
|
|
1315
1294
|
const NodeBrowserModal = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-fca09e8f"]]);
|
|
1316
1295
|
const _hoisted_1$2 = { class: "modal-header" };
|
|
1317
1296
|
const _hoisted_2$2 = { class: "modal-content" };
|
|
@@ -1356,7 +1335,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1356
1335
|
{ id: "tips", label: "Tips", icon: "fa-solid fa-lightbulb" }
|
|
1357
1336
|
];
|
|
1358
1337
|
return (_ctx, _cache) => {
|
|
1359
|
-
return
|
|
1338
|
+
return __props.show ? (openBlock(), createElementBlock("div", {
|
|
1360
1339
|
key: 0,
|
|
1361
1340
|
class: "modal-overlay",
|
|
1362
1341
|
onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
|
|
@@ -1374,9 +1353,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1374
1353
|
createBaseVNode("button", {
|
|
1375
1354
|
class: "modal-close",
|
|
1376
1355
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
1377
|
-
}, _cache[4] || (_cache[4] = [
|
|
1356
|
+
}, [..._cache[4] || (_cache[4] = [
|
|
1378
1357
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
1379
|
-
]))
|
|
1358
|
+
])])
|
|
1380
1359
|
]),
|
|
1381
1360
|
createBaseVNode("div", _hoisted_2$2, [
|
|
1382
1361
|
createBaseVNode("div", _hoisted_3$2, [
|
|
@@ -1394,21 +1373,21 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1394
1373
|
}), 64))
|
|
1395
1374
|
]),
|
|
1396
1375
|
createBaseVNode("div", _hoisted_5$2, [
|
|
1397
|
-
activeTab.value === "overview" ? (openBlock(), createElementBlock("div", _hoisted_6$2, _cache[6] || (_cache[6] = [
|
|
1376
|
+
activeTab.value === "overview" ? (openBlock(), createElementBlock("div", _hoisted_6$2, [..._cache[6] || (_cache[6] = [
|
|
1398
1377
|
createStaticVNode('<h4 data-v-865a257f>What is the Node Designer?</h4><p data-v-865a257f> The Node Designer allows you to create custom data transformation nodes without writing boilerplate code. Design your node's UI visually, then write only the transformation logic. </p><div class="feature-grid" data-v-865a257f><div class="feature-card" data-v-865a257f><div class="feature-icon" data-v-865a257f><i class="fa-solid fa-palette" data-v-865a257f></i></div><h5 data-v-865a257f>Visual UI Design</h5><p data-v-865a257f>Drag and drop components to create your node's settings interface</p></div><div class="feature-card" data-v-865a257f><div class="feature-icon" data-v-865a257f><i class="fa-solid fa-code" data-v-865a257f></i></div><h5 data-v-865a257f>Python Processing</h5><p data-v-865a257f>Write Polars transformation code with full autocomplete support</p></div><div class="feature-card" data-v-865a257f><div class="feature-icon" data-v-865a257f><i class="fa-solid fa-plug" data-v-865a257f></i></div><h5 data-v-865a257f>Instant Integration</h5><p data-v-865a257f>Your custom nodes appear immediately in the flow editor</p></div></div><h4 data-v-865a257f>Quick Start</h4><ol class="steps-list" data-v-865a257f><li data-v-865a257f><strong data-v-865a257f>Set metadata</strong> - Name your node and choose a category</li><li data-v-865a257f><strong data-v-865a257f>Add sections</strong> - Create UI sections to organize your settings</li><li data-v-865a257f><strong data-v-865a257f>Add components</strong> - Drag components from the palette into sections </li><li data-v-865a257f><strong data-v-865a257f>Configure properties</strong> - Select a component to edit its properties </li><li data-v-865a257f><strong data-v-865a257f>Write process code</strong> - Implement your transformation logic</li><li data-v-865a257f><strong data-v-865a257f>Save</strong> - Your node is ready to use!</li></ol>', 5)
|
|
1399
|
-
]))) : createCommentVNode("", true),
|
|
1400
|
-
activeTab.value === "layout" ? (openBlock(), createElementBlock("div", _hoisted_7$2, _cache[7] || (_cache[7] = [
|
|
1378
|
+
])])) : createCommentVNode("", true),
|
|
1379
|
+
activeTab.value === "layout" ? (openBlock(), createElementBlock("div", _hoisted_7$2, [..._cache[7] || (_cache[7] = [
|
|
1401
1380
|
createStaticVNode('<h4 data-v-865a257f>Page Layout</h4><div class="layout-diagram" data-v-865a257f><div class="layout-box palette" data-v-865a257f><span class="layout-label" data-v-865a257f>Component Palette</span><p data-v-865a257f>Drag components from here</p></div><div class="layout-box canvas" data-v-865a257f><span class="layout-label" data-v-865a257f>Design Canvas</span><p data-v-865a257f>Build your node UI here</p></div><div class="layout-box properties" data-v-865a257f><span class="layout-label" data-v-865a257f>Properties</span><p data-v-865a257f>Edit selected component</p></div></div><h4 data-v-865a257f>Component Palette (Left)</h4><p data-v-865a257f> Contains all available UI components. Drag them into a section on the Design Canvas to add them to your node. </p><h4 data-v-865a257f>Design Canvas (Center)</h4><ul class="help-list" data-v-865a257f><li data-v-865a257f><strong data-v-865a257f>Node Metadata</strong> - Set your node's name, category, title, description, and number of inputs/outputs </li><li data-v-865a257f><strong data-v-865a257f>UI Sections</strong> - Organize your components into collapsible sections </li><li data-v-865a257f><strong data-v-865a257f>Process Method</strong> - Write your Python transformation code</li></ul><h4 data-v-865a257f>Property Editor (Right)</h4><p data-v-865a257f> When you select a component, its properties appear here. Configure labels, defaults, validation rules, and more. </p>', 8)
|
|
1402
|
-
]))) : createCommentVNode("", true),
|
|
1403
|
-
activeTab.value === "components" ? (openBlock(), createElementBlock("div", _hoisted_8$2, _cache[8] || (_cache[8] = [
|
|
1381
|
+
])])) : createCommentVNode("", true),
|
|
1382
|
+
activeTab.value === "components" ? (openBlock(), createElementBlock("div", _hoisted_8$2, [..._cache[8] || (_cache[8] = [
|
|
1404
1383
|
createStaticVNode('<h4 data-v-865a257f>Available Components</h4><div class="component-list" data-v-865a257f><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-font" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Text Input</h5><p data-v-865a257f>Single-line text entry for strings, names, or patterns</p><code data-v-865a257f>value: str</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-hashtag" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Numeric Input</h5><p data-v-865a257f>Number entry with optional min/max validation</p><code data-v-865a257f>value: int | float</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-toggle-on" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Toggle Switch</h5><p data-v-865a257f>Boolean on/off switch for feature flags</p><code data-v-865a257f>value: bool</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-list" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Single Select</h5><p data-v-865a257f>Dropdown to select one option from a list</p><code data-v-865a257f>value: str</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-list-check" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Multi Select</h5><p data-v-865a257f>Select multiple options from a list</p><code data-v-865a257f>value: list[str]</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-table-columns" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Column Selector</h5><p data-v-865a257f>Select columns from input data (single or multiple)</p><code data-v-865a257f>value: str | list[str]</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-sliders" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Slider</h5><p data-v-865a257f>Numeric slider with min/max/step</p><code data-v-865a257f>value: int | float</code></div></div><div class="component-item" data-v-865a257f><div class="component-icon" data-v-865a257f><i class="fa-solid fa-key" data-v-865a257f></i></div><div class="component-info" data-v-865a257f><h5 data-v-865a257f>Secret Selector</h5><p data-v-865a257f>Securely access stored secrets (API keys, passwords)</p><code data-v-865a257f>secret_value: SecretStr</code></div></div></div>', 2)
|
|
1405
|
-
]))) : createCommentVNode("", true),
|
|
1406
|
-
activeTab.value === "code" ? (openBlock(), createElementBlock("div", _hoisted_9$2, _cache[9] || (_cache[9] = [
|
|
1384
|
+
])])) : createCommentVNode("", true),
|
|
1385
|
+
activeTab.value === "code" ? (openBlock(), createElementBlock("div", _hoisted_9$2, [..._cache[9] || (_cache[9] = [
|
|
1407
1386
|
createStaticVNode('<h4 data-v-865a257f>Process Method</h4><p data-v-865a257f>The process method receives input data and returns transformed output:</p><pre class="help-code" data-v-865a257f><code data-v-865a257f>def process(self, *inputs: pl.LazyFrame) -> pl.LazyFrame:\n lf = inputs[0] # First input\n # Your transformation logic here\n return lf</code></pre><h4 data-v-865a257f>Accessing Settings</h4><p data-v-865a257f>Access user-configured values from your UI components:</p><pre class="help-code" data-v-865a257f><code data-v-865a257f># Pattern: self.settings_schema.section_name.component_name.value\ncolumn = self.settings_schema.options.column_name.value\nthreshold = self.settings_schema.filters.min_value.value</code></pre><h4 data-v-865a257f>Working with Secrets</h4><pre class="help-code" data-v-865a257f><code data-v-865a257f># Get SecretStr, then extract the actual value\napi_key: SecretStr = self.settings_schema.auth.api_key.secret_value\nactual_key = api_key.get_secret_value()</code></pre><h4 data-v-865a257f>Keyboard Shortcuts</h4><div class="shortcuts-grid" data-v-865a257f><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Tab</kbd><span data-v-865a257f>Accept autocomplete / Indent</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Shift</kbd>+<kbd data-v-865a257f>Tab</kbd><span data-v-865a257f>Outdent selected lines</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Arrow Up/Down</kbd><span data-v-865a257f>Navigate autocomplete suggestions</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Escape</kbd><span data-v-865a257f>Close autocomplete menu</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Shift</kbd>+<kbd data-v-865a257f>Arrow</kbd><span data-v-865a257f>Extend selection</span></div><div class="shortcut" data-v-865a257f><kbd data-v-865a257f>Ctrl</kbd>+<kbd data-v-865a257f>Shift</kbd>+<kbd data-v-865a257f>Arrow</kbd><span data-v-865a257f>Select by word</span></div></div>', 10)
|
|
1408
|
-
]))) : createCommentVNode("", true),
|
|
1409
|
-
activeTab.value === "tips" ? (openBlock(), createElementBlock("div", _hoisted_10$2, _cache[10] || (_cache[10] = [
|
|
1387
|
+
])])) : createCommentVNode("", true),
|
|
1388
|
+
activeTab.value === "tips" ? (openBlock(), createElementBlock("div", _hoisted_10$2, [..._cache[10] || (_cache[10] = [
|
|
1410
1389
|
createStaticVNode('<h4 data-v-865a257f>Best Practices</h4><div class="tip-card" data-v-865a257f><div class="tip-icon success" data-v-865a257f><i class="fa-solid fa-check" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Use descriptive names</h5><p data-v-865a257f> Choose clear variable names in sections (e.g., "filters", "options") and components (e.g., "column_name", "threshold") </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon success" data-v-865a257f><i class="fa-solid fa-check" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Group related settings</h5><p data-v-865a257f> Use sections to organize related components together. This creates a better user experience. </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon success" data-v-865a257f><i class="fa-solid fa-check" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Use Column Selector for dynamic columns</h5><p data-v-865a257f> Instead of hardcoding column names, use ColumnSelector to let users pick columns from their data. </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon warning" data-v-865a257f><i class="fa-solid fa-exclamation" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Keep process code simple</h5><p data-v-865a257f> Focus on transformation logic. Complex operations should be broken into multiple nodes. </p></div></div><div class="tip-card" data-v-865a257f><div class="tip-icon warning" data-v-865a257f><i class="fa-solid fa-exclamation" data-v-865a257f></i></div><div class="tip-content" data-v-865a257f><h5 data-v-865a257f>Use secrets for sensitive data</h5><p data-v-865a257f> Never hardcode API keys or passwords. Use the Secret Selector component for secure credential access. </p></div></div><h4 data-v-865a257f>Common Patterns</h4><pre class="help-code" data-v-865a257f><code data-v-865a257f># Filter rows\nreturn lf.filter(pl.col(column) > threshold)\n\n# Select and rename\nreturn lf.select([\n pl.col(old_name).alias(new_name)\n])\n\n# Add computed column\nreturn lf.with_columns(\n (pl.col("a") + pl.col("b")).alias("sum")\n)\n\n# Group and aggregate\nreturn lf.group_by(group_col).agg(\n pl.col(value_col).sum().alias("total")\n)</code></pre>', 8)
|
|
1411
|
-
]))) : createCommentVNode("", true)
|
|
1390
|
+
])])) : createCommentVNode("", true)
|
|
1412
1391
|
])
|
|
1413
1392
|
]),
|
|
1414
1393
|
createBaseVNode("div", _hoisted_11$2, [
|
|
@@ -1422,7 +1401,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1422
1401
|
};
|
|
1423
1402
|
}
|
|
1424
1403
|
});
|
|
1425
|
-
const NodeDesignerHelpModal_vue_vue_type_style_index_0_scoped_865a257f_lang = "";
|
|
1426
1404
|
const NodeDesignerHelpModal = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-865a257f"]]);
|
|
1427
1405
|
const _hoisted_1$1 = { class: "icon-selector" };
|
|
1428
1406
|
const _hoisted_2$1 = { class: "icon-selector-content" };
|
|
@@ -1483,8 +1461,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1483
1461
|
var _a, _b, _c;
|
|
1484
1462
|
const target = event.target;
|
|
1485
1463
|
const file = (_a = target.files) == null ? void 0 : _a[0];
|
|
1486
|
-
if (!file)
|
|
1487
|
-
return;
|
|
1464
|
+
if (!file) return;
|
|
1488
1465
|
const formData = new FormData();
|
|
1489
1466
|
formData.append("file", file);
|
|
1490
1467
|
try {
|
|
@@ -1503,8 +1480,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1503
1480
|
}
|
|
1504
1481
|
async function deleteIcon(iconName) {
|
|
1505
1482
|
var _a, _b;
|
|
1506
|
-
if (!confirm(`Are you sure you want to delete "${iconName}"?`))
|
|
1507
|
-
return;
|
|
1483
|
+
if (!confirm(`Are you sure you want to delete "${iconName}"?`)) return;
|
|
1508
1484
|
try {
|
|
1509
1485
|
await axios.delete(`/user_defined_components/delete-icon/${iconName}`);
|
|
1510
1486
|
if (props.modelValue === iconName) {
|
|
@@ -1523,7 +1499,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1523
1499
|
return getCustomIconUrl(iconName);
|
|
1524
1500
|
}
|
|
1525
1501
|
function getBuiltinIconUrl(iconName) {
|
|
1526
|
-
return new URL((/* @__PURE__ */ Object.assign({ "../../features/designer/assets/icons/Output2.png": __vite_glob_0_0, "../../features/designer/assets/icons/airbyte.png": __vite_glob_0_1, "../../features/designer/assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "../../features/designer/assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "../../features/designer/assets/icons/cross_join.png": __vite_glob_0_4, "../../features/designer/assets/icons/database_reader.svg": __vite_glob_0_5, "../../features/designer/assets/icons/database_writer.svg": __vite_glob_0_6, "../../features/designer/assets/icons/explore_data.png": __vite_glob_0_7, "../../features/designer/assets/icons/external_source.png": __vite_glob_0_8, "../../features/designer/assets/icons/filter.png": __vite_glob_0_9, "../../features/designer/assets/icons/formula.png": __vite_glob_0_10, "../../features/designer/assets/icons/fuzzy_match.png": __vite_glob_0_11, "../../features/designer/assets/icons/google_sheet.png": __vite_glob_0_12, "../../features/designer/assets/icons/graph_solver.png": __vite_glob_0_13, "../../features/designer/assets/icons/group_by.png": __vite_glob_0_14, "../../features/designer/assets/icons/input_data.png": __vite_glob_0_15, "../../features/designer/assets/icons/join.png": __vite_glob_0_16, "../../features/designer/assets/icons/manual_input.png": __vite_glob_0_17, "../../features/designer/assets/icons/old_join.png": __vite_glob_0_18, "../../features/designer/assets/icons/output.png": __vite_glob_0_19, "../../features/designer/assets/icons/pivot.png": __vite_glob_0_20, "../../features/designer/assets/icons/polars_code.png": __vite_glob_0_21, "../../features/designer/assets/icons/record_count.png": __vite_glob_0_22, "../../features/designer/assets/icons/record_id.png": __vite_glob_0_23, "../../features/designer/assets/icons/sample.png": __vite_glob_0_24, "../../features/designer/assets/icons/select.png": __vite_glob_0_25, "../../features/designer/assets/icons/sort.png": __vite_glob_0_26, "../../features/designer/assets/icons/summarize.png": __vite_glob_0_27, "../../features/designer/assets/icons/text_to_rows.png": __vite_glob_0_28, "../../features/designer/assets/icons/union.png": __vite_glob_0_29, "../../features/designer/assets/icons/unique.png": __vite_glob_0_30, "../../features/designer/assets/icons/unpivot.png": __vite_glob_0_31, "../../features/designer/assets/icons/user-defined-icon.png": __vite_glob_0_32, "../../features/designer/assets/icons/view.png": __vite_glob_0_33 }))[`../../features/designer/assets/icons/${iconName}`],
|
|
1502
|
+
return new URL((/* @__PURE__ */ Object.assign({ "../../features/designer/assets/icons/Output2.png": __vite_glob_0_0, "../../features/designer/assets/icons/airbyte.png": __vite_glob_0_1, "../../features/designer/assets/icons/cloud_storage_reader.png": __vite_glob_0_2, "../../features/designer/assets/icons/cloud_storage_writer.png": __vite_glob_0_3, "../../features/designer/assets/icons/cross_join.png": __vite_glob_0_4, "../../features/designer/assets/icons/database_reader.svg": __vite_glob_0_5, "../../features/designer/assets/icons/database_writer.svg": __vite_glob_0_6, "../../features/designer/assets/icons/explore_data.png": __vite_glob_0_7, "../../features/designer/assets/icons/external_source.png": __vite_glob_0_8, "../../features/designer/assets/icons/filter.png": __vite_glob_0_9, "../../features/designer/assets/icons/formula.png": __vite_glob_0_10, "../../features/designer/assets/icons/fuzzy_match.png": __vite_glob_0_11, "../../features/designer/assets/icons/google_sheet.png": __vite_glob_0_12, "../../features/designer/assets/icons/graph_solver.png": __vite_glob_0_13, "../../features/designer/assets/icons/group_by.png": __vite_glob_0_14, "../../features/designer/assets/icons/input_data.png": __vite_glob_0_15, "../../features/designer/assets/icons/join.png": __vite_glob_0_16, "../../features/designer/assets/icons/manual_input.png": __vite_glob_0_17, "../../features/designer/assets/icons/old_join.png": __vite_glob_0_18, "../../features/designer/assets/icons/output.png": __vite_glob_0_19, "../../features/designer/assets/icons/pivot.png": __vite_glob_0_20, "../../features/designer/assets/icons/polars_code.png": __vite_glob_0_21, "../../features/designer/assets/icons/record_count.png": __vite_glob_0_22, "../../features/designer/assets/icons/record_id.png": __vite_glob_0_23, "../../features/designer/assets/icons/sample.png": __vite_glob_0_24, "../../features/designer/assets/icons/select.png": __vite_glob_0_25, "../../features/designer/assets/icons/sort.png": __vite_glob_0_26, "../../features/designer/assets/icons/summarize.png": __vite_glob_0_27, "../../features/designer/assets/icons/text_to_rows.png": __vite_glob_0_28, "../../features/designer/assets/icons/union.png": __vite_glob_0_29, "../../features/designer/assets/icons/unique.png": __vite_glob_0_30, "../../features/designer/assets/icons/unpivot.png": __vite_glob_0_31, "../../features/designer/assets/icons/user-defined-icon.png": __vite_glob_0_32, "../../features/designer/assets/icons/view.png": __vite_glob_0_33 }))[`../../features/designer/assets/icons/${iconName}`], import.meta.url).href;
|
|
1527
1503
|
}
|
|
1528
1504
|
function handleImageError(event) {
|
|
1529
1505
|
const img = event.target;
|
|
@@ -1541,19 +1517,19 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1541
1517
|
onClick: toggleDropdown
|
|
1542
1518
|
}, [
|
|
1543
1519
|
createBaseVNode("img", {
|
|
1544
|
-
src: getDisplayUrl(
|
|
1545
|
-
alt:
|
|
1520
|
+
src: getDisplayUrl(__props.modelValue),
|
|
1521
|
+
alt: __props.modelValue,
|
|
1546
1522
|
class: "icon-preview",
|
|
1547
1523
|
onError: handleImageError
|
|
1548
1524
|
}, null, 40, _hoisted_3$1),
|
|
1549
|
-
createBaseVNode("span", _hoisted_4$1, toDisplayString(
|
|
1525
|
+
createBaseVNode("span", _hoisted_4$1, toDisplayString(__props.modelValue || "Select icon..."), 1),
|
|
1550
1526
|
_cache[2] || (_cache[2] = createBaseVNode("i", { class: "fa-solid fa-chevron-down dropdown-arrow" }, null, -1))
|
|
1551
1527
|
]),
|
|
1552
1528
|
showDropdown.value ? (openBlock(), createElementBlock("div", _hoisted_5$1, [
|
|
1553
1529
|
createBaseVNode("div", _hoisted_6$1, [
|
|
1554
1530
|
createBaseVNode("label", _hoisted_7$1, [
|
|
1555
1531
|
_cache[3] || (_cache[3] = createBaseVNode("i", { class: "fa-solid fa-upload" }, null, -1)),
|
|
1556
|
-
_cache[4] || (_cache[4] = createTextVNode(" Upload Icon ")),
|
|
1532
|
+
_cache[4] || (_cache[4] = createTextVNode(" Upload Icon ", -1)),
|
|
1557
1533
|
createBaseVNode("input", {
|
|
1558
1534
|
type: "file",
|
|
1559
1535
|
accept: ".png,.jpg,.jpeg,.svg,.gif,.webp",
|
|
@@ -1568,7 +1544,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1568
1544
|
(openBlock(true), createElementBlock(Fragment, null, renderList(customIcons.value, (icon) => {
|
|
1569
1545
|
return openBlock(), createElementBlock("div", {
|
|
1570
1546
|
key: icon.file_name,
|
|
1571
|
-
class: normalizeClass(["icon-option", { selected:
|
|
1547
|
+
class: normalizeClass(["icon-option", { selected: __props.modelValue === icon.file_name }]),
|
|
1572
1548
|
onClick: ($event) => selectIcon(icon.file_name)
|
|
1573
1549
|
}, [
|
|
1574
1550
|
createBaseVNode("img", {
|
|
@@ -1582,9 +1558,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1582
1558
|
class: "delete-icon-btn",
|
|
1583
1559
|
title: "Delete icon",
|
|
1584
1560
|
onClick: withModifiers(($event) => deleteIcon(icon.file_name), ["stop"])
|
|
1585
|
-
}, _cache[5] || (_cache[5] = [
|
|
1561
|
+
}, [..._cache[5] || (_cache[5] = [
|
|
1586
1562
|
createBaseVNode("i", { class: "fa-solid fa-times" }, null, -1)
|
|
1587
|
-
]), 8, _hoisted_13$1)
|
|
1563
|
+
])], 8, _hoisted_13$1)
|
|
1588
1564
|
], 10, _hoisted_10$1);
|
|
1589
1565
|
}), 128))
|
|
1590
1566
|
])
|
|
@@ -1593,7 +1569,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1593
1569
|
_cache[8] || (_cache[8] = createBaseVNode("div", { class: "section-title" }, "Default", -1)),
|
|
1594
1570
|
createBaseVNode("div", _hoisted_15$1, [
|
|
1595
1571
|
createBaseVNode("div", {
|
|
1596
|
-
class: normalizeClass(["icon-option", { selected:
|
|
1572
|
+
class: normalizeClass(["icon-option", { selected: __props.modelValue === "user-defined-icon.png" }]),
|
|
1597
1573
|
onClick: _cache[0] || (_cache[0] = ($event) => selectIcon("user-defined-icon.png"))
|
|
1598
1574
|
}, [
|
|
1599
1575
|
createBaseVNode("img", {
|
|
@@ -1616,8 +1592,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1616
1592
|
};
|
|
1617
1593
|
}
|
|
1618
1594
|
});
|
|
1619
|
-
const
|
|
1620
|
-
const IconSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-638bee77"]]);
|
|
1595
|
+
const IconSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-24b16154"]]);
|
|
1621
1596
|
function useNodeDesignerState() {
|
|
1622
1597
|
const nodeMetadata = reactive({ ...defaultNodeMetadata });
|
|
1623
1598
|
const sections = ref([]);
|
|
@@ -1891,8 +1866,7 @@ function useNodeBrowser() {
|
|
|
1891
1866
|
}
|
|
1892
1867
|
async function deleteNode() {
|
|
1893
1868
|
var _a, _b;
|
|
1894
|
-
if (!viewingNodeFileName.value)
|
|
1895
|
-
return;
|
|
1869
|
+
if (!viewingNodeFileName.value) return;
|
|
1896
1870
|
try {
|
|
1897
1871
|
await axios.delete(
|
|
1898
1872
|
`/user_defined_components/delete-custom-node/${viewingNodeFileName.value}`
|
|
@@ -2282,8 +2256,7 @@ function usePolarsAutocompletion(getSections) {
|
|
|
2282
2256
|
};
|
|
2283
2257
|
}
|
|
2284
2258
|
const wordMatch = context.matchBefore(/\w+/);
|
|
2285
|
-
if (!wordMatch && !context.explicit)
|
|
2286
|
-
return null;
|
|
2259
|
+
if (!wordMatch && !context.explicit) return null;
|
|
2287
2260
|
return {
|
|
2288
2261
|
from: wordMatch ? wordMatch.from : context.pos,
|
|
2289
2262
|
options: polarsCompletions,
|
|
@@ -2416,8 +2389,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2416
2389
|
function handleDrop(event, sectionIndex) {
|
|
2417
2390
|
var _a;
|
|
2418
2391
|
const componentType = (_a = event.dataTransfer) == null ? void 0 : _a.getData("component_type");
|
|
2419
|
-
if (!componentType)
|
|
2420
|
-
return;
|
|
2392
|
+
if (!componentType) return;
|
|
2421
2393
|
const compCount = sections.value[sectionIndex].components.length + 1;
|
|
2422
2394
|
const newComponent = {
|
|
2423
2395
|
component_type: componentType,
|
|
@@ -2456,8 +2428,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2456
2428
|
}
|
|
2457
2429
|
}
|
|
2458
2430
|
const selectedSectionName = computed(() => {
|
|
2459
|
-
if (selectedSectionIndex.value === null)
|
|
2460
|
-
return "";
|
|
2431
|
+
if (selectedSectionIndex.value === null) return "";
|
|
2461
2432
|
const section = sections.value[selectedSectionIndex.value];
|
|
2462
2433
|
return (section == null ? void 0 : section.name) || (section == null ? void 0 : section.title) || "";
|
|
2463
2434
|
});
|
|
@@ -2488,38 +2459,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2488
2459
|
createBaseVNode("button", {
|
|
2489
2460
|
class: "btn btn-secondary",
|
|
2490
2461
|
onClick: _cache[0] || (_cache[0] = ($event) => showHelpModal.value = true)
|
|
2491
|
-
}, _cache[20] || (_cache[20] = [
|
|
2462
|
+
}, [..._cache[20] || (_cache[20] = [
|
|
2492
2463
|
createBaseVNode("i", { class: "fa-solid fa-circle-question" }, null, -1),
|
|
2493
|
-
createTextVNode(" Help ")
|
|
2494
|
-
])),
|
|
2464
|
+
createTextVNode(" Help ", -1)
|
|
2465
|
+
])]),
|
|
2495
2466
|
createBaseVNode("button", {
|
|
2496
2467
|
class: "btn btn-secondary",
|
|
2497
2468
|
onClick: _cache[1] || (_cache[1] = ($event) => unref(nodeBrowser).openNodeBrowser())
|
|
2498
|
-
}, _cache[21] || (_cache[21] = [
|
|
2469
|
+
}, [..._cache[21] || (_cache[21] = [
|
|
2499
2470
|
createBaseVNode("i", { class: "fa-solid fa-folder-open" }, null, -1),
|
|
2500
|
-
createTextVNode(" Browse ")
|
|
2501
|
-
])),
|
|
2471
|
+
createTextVNode(" Browse ", -1)
|
|
2472
|
+
])]),
|
|
2502
2473
|
createBaseVNode("button", {
|
|
2503
2474
|
class: "btn btn-secondary",
|
|
2504
2475
|
onClick: handleNew
|
|
2505
|
-
}, _cache[22] || (_cache[22] = [
|
|
2476
|
+
}, [..._cache[22] || (_cache[22] = [
|
|
2506
2477
|
createBaseVNode("i", { class: "fa-solid fa-file" }, null, -1),
|
|
2507
|
-
createTextVNode(" New ")
|
|
2508
|
-
])),
|
|
2478
|
+
createTextVNode(" New ", -1)
|
|
2479
|
+
])]),
|
|
2509
2480
|
createBaseVNode("button", {
|
|
2510
2481
|
class: "btn btn-secondary",
|
|
2511
2482
|
onClick: handlePreview
|
|
2512
|
-
}, _cache[23] || (_cache[23] = [
|
|
2483
|
+
}, [..._cache[23] || (_cache[23] = [
|
|
2513
2484
|
createBaseVNode("i", { class: "fa-solid fa-code" }, null, -1),
|
|
2514
|
-
createTextVNode(" Preview ")
|
|
2515
|
-
])),
|
|
2485
|
+
createTextVNode(" Preview ", -1)
|
|
2486
|
+
])]),
|
|
2516
2487
|
createBaseVNode("button", {
|
|
2517
2488
|
class: "btn btn-primary",
|
|
2518
2489
|
onClick: handleSave
|
|
2519
|
-
}, _cache[24] || (_cache[24] = [
|
|
2490
|
+
}, [..._cache[24] || (_cache[24] = [
|
|
2520
2491
|
createBaseVNode("i", { class: "fa-solid fa-save" }, null, -1),
|
|
2521
|
-
createTextVNode(" Save ")
|
|
2522
|
-
]))
|
|
2492
|
+
createTextVNode(" Save ", -1)
|
|
2493
|
+
])])
|
|
2523
2494
|
])
|
|
2524
2495
|
]),
|
|
2525
2496
|
createBaseVNode("div", _hoisted_4, [
|
|
@@ -2630,10 +2601,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2630
2601
|
createBaseVNode("button", {
|
|
2631
2602
|
class: "add-section-btn",
|
|
2632
2603
|
onClick: _cache[9] || (_cache[9] = ($event) => unref(addSection)())
|
|
2633
|
-
}, _cache[33] || (_cache[33] = [
|
|
2604
|
+
}, [..._cache[33] || (_cache[33] = [
|
|
2634
2605
|
createBaseVNode("i", { class: "fa-solid fa-plus" }, null, -1),
|
|
2635
|
-
createTextVNode(" Add Section ")
|
|
2636
|
-
]))
|
|
2606
|
+
createTextVNode(" Add Section ", -1)
|
|
2607
|
+
])])
|
|
2637
2608
|
]),
|
|
2638
2609
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(sections), (section, sectionIndex) => {
|
|
2639
2610
|
return openBlock(), createBlock(SectionCard, {
|
|
@@ -2653,10 +2624,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2653
2624
|
onUpdateTitle: ($event) => section.title = $event
|
|
2654
2625
|
}, null, 8, ["section", "is-selected", "selected-component-index", "onSelect", "onRemove", "onSelectComponent", "onRemoveComponent", "onDrop", "onUpdateName", "onUpdateTitle"]);
|
|
2655
2626
|
}), 128)),
|
|
2656
|
-
unref(sections).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18, _cache[35] || (_cache[35] = [
|
|
2627
|
+
unref(sections).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18, [..._cache[35] || (_cache[35] = [
|
|
2657
2628
|
createBaseVNode("i", { class: "fa-solid fa-layer-group" }, null, -1),
|
|
2658
2629
|
createBaseVNode("p", null, "No sections yet. Add a section to start designing your node UI.", -1)
|
|
2659
|
-
]))) : createCommentVNode("", true)
|
|
2630
|
+
])])) : createCommentVNode("", true)
|
|
2660
2631
|
]),
|
|
2661
2632
|
createVNode(ProcessCodeEditor, {
|
|
2662
2633
|
modelValue: unref(processCode),
|
|
@@ -2705,7 +2676,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2705
2676
|
};
|
|
2706
2677
|
}
|
|
2707
2678
|
});
|
|
2708
|
-
const NodeDesigner_vue_vue_type_style_index_0_scoped_3db2802e_lang = "";
|
|
2709
2679
|
const NodeDesigner = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3db2802e"]]);
|
|
2710
2680
|
export {
|
|
2711
2681
|
NodeDesigner as default
|