langflow/src/frontend
anovazzi1 eec1fb23d3
feat: adds new JSON viewer (#5407)
* feat: Add JsonEditor component for JSON editing

This commit adds a new component called JsonEditor, which allows users to edit JSON data. The component uses the JSONEditor library and provides options for customizing the editor's appearance and behavior. It also includes functionality for updating the edited data and triggering a callback when the data changes. The component is initialized with an initial data object and can be updated with new data through props. The component is designed to be reusable and can be easily integrated into other parts of the application.

* feat: Add JsonEditor component for JSON editing and replace JsonView

The commit adds a new component called JsonEditor for editing JSON data. It replaces the previous JsonView component used for displaying JSON data. This change improves the functionality and user experience of the application.

* [autofix.ci] apply automated fixes

* Added json editor to package

* Change jsonEditor to use new vanilla jsonEditor

* Added color variables

* Removed unused buttons on json editor

* Removed unused dark store

* Fixed state management on dictAreaModal

* Change default DictComponent value to dict

* removed unused checks

* Changed to forward ref of json editor

* removed nav bar

* Fixed value not being received

* Added check if value is null and handleOnNewValue on this case

* Removed unused button on json editor

* Adds auto focus and change mode to text

* ♻️ (jsonEditor/index.tsx): remove unnecessary comments and improve code readability by removing redundant comments and empty dependency array in useEffect.

* Fixed dict component test

* Refactor json-input component to use VanillaJsonEditor and JsonEditor component

* Remove react-json-view-lite and react18-json-view dependencies

* [autofix.ci] apply automated fixes

* Refactor jsonEditor component to add readOnly prop

* Refactor json-output-view component to add read-only prop

* Refactor switchOutputView component to add JSON output view

* Refactor CSS styles for JSON editor buttons

* Update package-lock.json to add new dependencies for @mapbox/node-pre-gyp and remove jsdom and its related modules

* [autofix.ci] apply automated fixes

* Refactor textModal component to remove unused imports and dependencies

* add filter property to jsonEditor

* [autofix.ci] apply automated fixes

* Refactor jsonEditor component to handle transform queries and display error messages

* [autofix.ci] apply automated fixes

* Refactor jsonEditor component to add filter property and handle transform queries

* Refactor jsonEditor component to add filter property and handle transform queries

* Refactor Output class to add options property

* Refactor json-output-view.tsx to update default height value

* Refactor jsonEditor component to normalize transform query path

* Refactor jsonEditor component to add JSONQuery support for transform queries

* Add jsonquerylang library as a dependency

* Refactor utils.py to add support for applying JSON filters

* Refactor base.py to add apply_options method for JSON filtering

* Fix jsonOutputView to set filter option to undefined when empty

* Enhance apply_json_filter to support Data objects and improve query handling

* Improve json filtering in Output class to return original result if filtered result is None

* Refactor Component class to simplify map_outputs method and enhance output handling

* move jsonquerylang to langflow-base

* Refactor Component and Output classes for improved output handling and type consistency; enhance apply_json_filter to ensure proper data processing and add comprehensive unit tests.

* Add filter_data method to Data class and update apply_options in Output class to utilize it; enhance apply_json_filter return type to Data.

* Import apply_json_filter in Data class to enable data filtering functionality

* Add validation for JSON results in JsonEditor; ensure only objects and arrays are accepted and handle serialization errors

* 📝 (App.css): Add styles for jse-menu separator and cm-gutters to improve UI layout
♻️ (index.tsx): Refactor imports and code formatting for better readability and maintainability
🔧 (index.tsx): Update BaseModal component styles to improve UI layout and responsiveness

* 📝 (custom.css): add extra line at the end of the file for consistency
📝 (App.css): add styling for .jse-menu .jse-button.jse-group-button class
📝 (classes.css): add extra line at the end of the file for consistency

* 🐛 (data.py): fix custom_serializer to handle bytes objects by decoding them to utf-8
♻️ (base.py): refactor options field in Output class to accept BaseModel, dict, or None for better flexibility and compatibility

* Refactor apply_json_filter to directly use jsonquery on result, removing unnecessary string conversion

*  (base.py): Introduce OutputOptions model for output filtering and update Output class to use it

* 🐛 (classes.css): Hide search box background and adjust container positioning for better layout

*  (jsonEditor): Enhance filtering functionality with improved state management and user feedback

* Fixed package lock

* [autofix.ci] apply automated fixes

* Updated package lock

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-03-17 14:25:50 +00:00
..
.dspy_cache fix: use init_subclass instead of metaclass to enforce decorator (#3942) 2024-09-27 12:06:15 +00:00
public fix: add favicon to langflow's frontend project (#2836) 2024-07-19 15:47:06 -03:00
src feat: adds new JSON viewer (#5407) 2025-03-17 14:25:50 +00:00
tests feat: adds new JSON viewer (#5407) 2025-03-17 14:25:50 +00:00
.dockerignore
.eslintrc.json 🔧 (.pre-commit-config.yaml): add eslint-plugin-react@latest as a dependency to improve linting for React components 2024-05-02 18:51:27 -03:00
.gitignore 🔧 (Makefile): remove unnecessary kill command for frontend server in run_frontend target 2024-04-19 12:38:57 -03:00
.prettierignore Format tests and update prettier command 2024-06-10 15:23:52 -03:00
.prettierrc.mjs Fixed Prettier tailwind formatting 2024-06-17 14:37:23 -03:00
cdk.Dockerfile Update Dockerfiles to use latest node version in frontend 2024-04-17 11:21:10 -03:00
dev.Dockerfile Update Dockerfiles to use latest node version in frontend 2024-04-17 11:21:10 -03:00
Dockerfile move cdk folder to scripts/cdk 2023-11-30 16:32:52 +09:00
favicon-new.ico feat: update favicon (#4553) 2024-11-12 16:55:07 -06:00
index.html feat: update favicon (#4553) 2024-11-12 16:55:07 -06:00
nginx.conf
package-lock.json feat: adds new JSON viewer (#5407) 2025-03-17 14:25:50 +00:00
package.json feat: adds new JSON viewer (#5407) 2025-03-17 14:25:50 +00:00
playwright.config.ts chore: removes Poetry references from pyproject.toml and updates the project metadata (#4019) 2024-10-04 17:24:55 +00:00
postcss.config.js
README.md
run-tests.sh tests: new tests folders organization (#3716) 2024-09-09 14:45:30 -03:00
set_proxy.sh add some new types to the .gitattributes 2023-08-24 14:56:09 +00:00
start-nginx.sh
tailwind.config.mjs feat: Publish Flow, API code update and UI components (#6140) 2025-03-17 14:03:59 +00:00
tsconfig.json tests: organize playwright tests by feature suites and optimize CI runtime (#4687) 2024-11-25 20:55:03 +00:00
vite.config.mts fix: Add robust auto-login system with exponential backoff to fix authentication redirects in make command environments (#6848) 2025-03-11 13:02:26 +00:00

Getting Started with Create React App

This project was bootstrapped with Create React App.

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

npm run eject

Note: this is a one-way operation. Once you eject, you cant go back!

If you arent satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.

You dont have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it.

Learn More

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.