View, visually edit and simulate JSON-based forms.
This library exports a form viewer, editor and playground.
Renders a form based on a form schema and existing data:
import { Form } from '@bpmn-io/form-js'; const form = new Form({ container: document.querySelector('#form'), }); await form.importSchema(schema, data); form.on('submit', (event) => { console.log(event.data, event.errors); });
See viewer documentation for further details.
Create a new form or edit an exsting one:
import { FormEditor } from '@bpmn-io/form-js'; const formEditor = new FormEditor({ container: document.querySelector('#form-editor'), }); await formEditor.importSchema(schema);
See editor documentation for further details.
Create and simulate a form with input and output data:
import { FormPlayground } from '@bpmn-io/form-js'; const formPlayground = new FormPlayground({ container: document.querySelector('#form-playground'), schema, data, });
See playground documentation for further details.
Use the getSchemaVariables
util to retrieve the variables defined in a form schema. This is useful to gather what data is consumed and produced by a form.
import { getSchemaVariables } from '@bpmn-io/form-js'; const variables = getSchemaVariables(schema); console.log('Schema variables', variables);
It is also possible to distinct between input and output variables:
import { getSchemaVariables } from '@bpmn-io/form-js'; const outputVariables = getSchemaVariables(schema, { inputs: false }); const inputVariables = getSchemaVariables(schema, { outputs: false });
Build the project in a Posix environment. On Windows, that is Git Bash or WSL.
Note we currently support development environments with Node.js version 16 (and npm version 8). We encourage you to use a Node.js version manager (e.g., nvm
or n
) to set up the needed versions.
Prepare the project by installing all dependencies:
npm install
Then, depending on your use-case you may run any of the following commands:
# build the library and run all tests npm run all # spin up a single local form-js instance npm start # spin up a specific instance ## viewer npm run start:viewer ## editor npm run start:editor ## playground npm run start:playground
To run the visual regression tests, read the docs here
Use under the terms of the bpmn.io license.