Edit forms - powered by bpmn.io
npm install @bpmn-io/form-js-editorAn editor to create forms that can be displayed with the form-js viewer.
```
npm install @bpmn-io/form-js-editor
`javascript
import { FormEditor } from '@bpmn-io/form-js-editor';
const schema = {
type: 'default',
components: [
{
key: 'creditor',
label: 'Creditor',
type: 'textfield',
validate: {
required: true,
},
},
],
};
const formEditor = new FormEditor({
container: document.querySelector('#form-editor'),
});
await formEditor.importSchema(schema);
`
Check out a full example.
For proper styling include the necessary stylesheets, and font used:
`html
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,600;1,400&display=swap"
rel="stylesheet" />
`
Create a new form editor with options { container?: HTMLElement }.
`javascript
import { FormEditor } from '@bpmn-io/form-js-editor';
const formEditor = new FormEditor({
container: document.querySelector('#form-editor'),
});
`
Display and edit a form represented via a form schema.
`javascript`
try {
await formEditor.importSchema(schema);
} catch (err) {
console.log('importing form failed', err);
}
Export the form schema.
`javascript
const schema = formEditor.saveSchema(schema);
console.log('exported schema', schema);
`
Attach the form editor to a parent node.
Detach the form editor from its parent node.
Subscribe to an event.
Remove form from editor the document.
- propertiesPanel.focusinpropertiesPanel.focusout
- propertiesPanel.showEntry :: { id }
- propertiesPanel.updated :: { formField }
-
- detachattach
- rendered
- form.init
- form.clear
- form.destroy
- diagram.clear
- diagram.destroy
- dragula.created
- dragula.destroyed
- editorActions.init :: { editorActions }
-
- drag.start :: { element, source }drag.end :: { element }
- drag.drop :: { element, target, source, sibling }
- drag.hover :: { element, container, source }
- drag.out :: { element, container, source }
- drag.cancel :: { element, container, source }
-
- formField.add :: { formField }formField.remove :: { formField }
- formField.updateId :: { formField, newId }`
-
Use under the terms of the bpmn.io license.