1.0.2 • Published 1 month ago

@hieuquang2212/form v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
1 month ago

@bpmn-io/form-js

CI

View, visually edit and simulate JSON-based forms.

Usage

This library exports a form viewer, editor and playground.

Display a form

Renders a form based on [a form schema](./docs/FORM_SCHEMA.md) 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](./packages/form-js-viewer) for further details.

Create and edit a form

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](./packages/form-js-editor) for further details.

Create and simulate a form with input and output data

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](./packages/form-js-playground) for further details.

Retrieve schema variables from a form

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});

Resources

  • [Demo](https://demo.bpmn.io/form)
  • [Issues](https://github.com/bpmn-io/form-js/issues)
  • [Changelog](./packages/form-js/CHANGELOG.md)
  • [Contributing guide](https://github.com/bpmn-io/.github/blob/master/.github/CONTRIBUTING.md#create-a-pull-request)
  • [Form schema](./docs/FORM_SCHEMA.md)

Build and run

Build the project in a Posix environment. On Windows, that is [Git Bash](https://gitforwindows.org/) 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](https://github.com/nvm-sh/nvm) or [n](https://github.com/tj/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](./e2e/README.md)

License

Use under the terms of the [bpmn.io license](http://bpmn.io/license).

abbrevacceptsacornacorn-import-assertionsacorn-jsxadd-streamagent-baseagentkeepaliveaggregate-errorajv-formatsansi-colorsansi-escapesansi-regexansi-stylesanymatchaprobaare-we-there-yetargparsearia-queryarray-buffer-byte-lengtharray-differarray-ifyarray-includesarray-movearray-unionarray.prototype.findlastindexarray.prototype.flatarray.prototype.flatmaparraybuffer.prototype.slicearrifyassertion-errorasyncasynckitatoaavailable-typed-arraysaxiosb4ababel-plugin-polyfill-corejs2babel-plugin-polyfill-corejs3babel-plugin-polyfill-regeneratorbalanced-matchbase64-jsbase64idbasic-ftpbefore-after-hookbig.jsbinary-extensionsblbody-parserboolbasebrace-expansionbracesbrowser-stdoutbrowserslistbufferbuffer-crc32buffer-frombuiltin-modulesbuiltinsbytescacachecall-bindcall-me-maybecamelcasecamelcase-keyscamelizecaniuse-litechalkchardetcheck-errorchokidarchrome-trace-eventchromium-bidiclassnamesclean-stackcli-cursorcli-spinnerscli-widthcliuicloneclone-deepclsxcodemirrorcolorcolor-convertcolor-namecolor-stringcolor-supportcolorettecolorscolumnifycombined-streamcommandercommondircompare-funccomponent-eventcompute-scroll-into-viewconcat-mapconcat-streamconnectconsole-control-stringscontent-typecontraconvert-source-mapcookiecopy-to-clipboardcore-js-compatcore-util-iscorscreltcross-fetchcross-spawncrossventcss-color-keywordscss-to-react-nativecssesccsstypecustom-eventcustom-form-jsdargsdata-uri-to-bufferdate-formatdateformatdebugdecamelizedecamelize-keysdedentdeep-eqldeep-equaldeep-isdeepmergedefaultsdefine-data-propertydefine-lazy-propdefine-propertiesdegeneratordeldelayed-streamdelegatesdepddeprecationdestroydevtools-protocoldidiffdiff-sequencesdir-globdoctrinedom-accessibility-apidom-serializedomhandlerdomifydompurifydot-casedotenv-expanddownloadjsdownshiftduplexereastasianwidthee-firstejselectron-to-chromiumemoji-regexemojis-listencodeurlencodingend-of-streamengine.ioengine.io-parserenhanced-resolveenquirerentenv-pathsenvinfoerr-codeerror-exes-abstractes-get-iteratores-module-lexeres-set-tostringtages-shim-unscopableses-to-primitiveesbuildescaladeescape-htmlescape-string-regexpescodegeneslint-import-resolver-nodeeslint-module-utilseslint-plugin-mochaeslint-plugin-reacteslint-scopeeslint-utilseslint-visitor-keysespreeesprimaesqueryesrecurseestraverseestree-walkeresutilseventemitter3eventsextendexternal-editorextract-zipfast-deep-equalfast-fifofast-globfast-json-stable-stringifyfast-levenshteinfastqfd-slicerfeelersfeelinfiguresfile-dropsfile-entry-cachefilelistfill-rangefinalhandlerfind-cache-dirfind-upflatflat-cacheflatpickrflattedfocus-trapfollow-redirectsfor-eachforeground-childform-datafs-constantsfs-extrafs-minipassfs.realpathfseventsfunction-bindfunction.prototype.namefunctions-have-namesgaugegensyncget-caller-fileget-func-nameget-intrinsicget-package-typeget-pkg-repoget-portget-symbol-descriptionget-urigit-remote-origin-urlgit-upgit-url-parsegitconfiglocalglobglob-parentglob-to-regexpglobalsglobalthisglobbygopdgraceful-fsgraphemerhandlebarshard-rejectionhashas-bigintshas-flaghas-property-descriptorshas-protohas-symbolshas-tostringtaghas-unicodehasownhehosted-git-infohtmhtml-escaperhttp-cache-semanticshttp-errorshttp-proxyhttp-proxy-agenthttps-proxy-agenthuman-signalshumanize-msiconv-liteicss-utilsidsieee754ignoreignore-walkimmutableimport-freshimport-localimurmurhashindent-stringindexofinfer-ownerinflightinheritsinherits-browseriniinit-package-jsoninquirerinternal-slotinvariantipis-argumentsis-array-bufferis-arrayishis-bigintis-binary-pathis-boolean-objectis-builtin-moduleis-callableis-core-moduleis-date-objectis-dockeris-extglobis-fullwidth-code-pointis-globis-interactiveis-lambdais-mapis-moduleis-negative-zerois-numberis-number-objectis-objis-path-cwdis-path-insideis-plain-objis-plain-objectis-referenceis-regexis-setis-shared-array-bufferis-sshis-stringis-symbolis-text-pathis-typed-arrayis-unicode-supportedis-weakmapis-weakrefis-weaksetis-wslisarrayisbinaryfileisexeisobjectistanbul-lib-coverageistanbul-lib-instrumentistanbul-lib-reportistanbul-lib-source-mapsistanbul-reportsjackspeakjakejest-diffjest-get-typejest-workerjs-tokensjs-yamljsescjson-parse-better-errorsjson-parse-even-better-errorsjson-schema-traversejson-stable-stringify-without-jsonifyjson-stringify-safejson5jsonc-parserjsonfilejsonparseJSONStreamjsx-ast-utilsjust-extendkind-oflang-feellevnlezer-feellines-and-columnsload-json-fileloader-runnerlocate-pathlodashlodash.debouncelodash.findlastlodash.getlodash.isequallodash.ismatchlodash.mergelodash.omitlodash.throttlelog-symbolslog4jsloose-envifyloupelower-caselru-cacheluxonlz-stringmagic-stringmake-dirmake-fetch-happenmap-objmarkedmatches-selectormedia-typermemorystreammeowmerge-streammerge2micromatchmimemime-dbmime-typesmimic-fnmin-dashmin-dommin-indentminimatchminimistminimist-optionsminipassminipass-collectminipass-fetchminipass-flushminipass-json-streamminipass-pipelineminipass-sizedminizlibmittmkdirpmkdirp-classicmodify-valuesmsmultimatchmute-streamnanoidnatural-comparenegotiatorneo-asyncnetmaskniseno-casenode-fetchnode-gypnode-machine-idnode-releasesnomsnoptnormalize-package-datanormalize-pathnpm-bundlednpm-normalize-package-binnpm-package-argnpm-run-pathnpmlogobject-assignobject-inspectobject-isobject-keysobject-refsobject.assignobject.entriesobject.fromentriesobject.groupbyobject.hasownobject.valueson-finishedonceonetimeopenoptionatororaos-tmpdirp-finallyp-limitp-locatep-mapp-map-seriesp-pipep-queuep-reducep-timeoutp-tryp-waterfallpac-proxy-agentpac-resolverparent-moduleparse-jsonparse-pathparse-urlparseurlpath-existspath-intersectionpath-is-absolutepath-keypath-parsepath-scurrypath-to-regexppath-typepathvalpendpicocolorspicomatchpidtreepifypkg-dirplaywrightplaywright-corepostcsspostcss-modules-extract-importspostcss-modules-local-by-defaultpostcss-modules-scopepostcss-modules-valuespostcss-selector-parserpostcss-value-parserprelude-lspretty-formatprocess-nextick-argsprogresspromise-inflightpromise-retrypromzardprop-typesprotocolsproxy-agentproxy-from-envpumppunycodepuppeteer-coreqjobsqueue-microtaskqueue-tickquick-lrurambdarandombytesrange-parserraw-bodyreact-isreadread-pkgread-pkg-upreadable-streamreaddirpredentregenerateregenerate-unicode-propertiesregenerator-runtimeregenerator-transformregexp.prototype.flagsregexpu-coreregjsparserrequire-directoryrequire-from-stringrequires-portresize-observer-polyfillresolveresolve-cwdresolve-fromrestore-cursorretryreusifyrfdcrimrafrollup-plugin-css-onlyrun-asyncrun-parallelrxjssafe-array-concatsafe-buffersafe-regex-testsafer-bufferschema-utilssemverserialize-javascriptset-blockingset-function-lengthset-function-namesetprototypeofshallow-cloneshallowequalshebang-commandshebang-regexshell-quoteside-channelsignal-exitsigstoresimple-swizzleslashsmart-buffersnake-casesocket.iosocket.io-adaptersocket.io-parsersockssocks-proxy-agentsource-mapsource-map-jssource-map-supportspdx-correctspdx-exceptionsspdx-expression-parsespdx-license-idssplitsplit2sprintf-jsssristatusesstop-iteration-iteratorstreamrollerstreamxstring_decoderstring-widthstring-width-cjsstring.prototype.matchallstring.prototype.trimstring.prototype.trimendstring.prototype.trimstartstrip-ansistrip-ansi-cjsstrip-bomstrip-final-newlinestrip-indentstrip-json-commentsstrong-log-transformerstyle-modstyled-componentsstylissupports-colorsupports-preserve-symlinks-flagsvg-parsertabbabletapabletartar-fstar-streamtemp-dirterserterser-webpack-plugintest-excludetext-extensionstext-tablethroughtickytiny-svgtmpto-fast-propertiesto-regex-rangetoggle-selectiontoidentifiertr46trim-newlinestsconfig-pathstslibtuf-jstype-checktype-detecttype-festtype-istyped-array-buffertyped-array-byte-lengthtyped-array-byte-offsettyped-array-lengthtypedarrayua-parser-jsuglify-jsunbox-primitiveunbzip2-streamundici-typesunicode-canonical-property-names-ecmascriptunicode-match-property-ecmascriptunicode-match-property-value-ecmascriptunicode-property-aliases-ecmascriptunique-filenameunique-sluguniversal-user-agentuniversalifyunpipeuntildifyupathupdate-browserslist-dburi-jsuse-resize-observerutil-deprecateutils-mergev8-compile-cachevalidate-npm-package-licensevaryvoid-elementsw3c-keynamewatchpackwcwidthwebidl-conversionswebpack-mergewebpack-sourceswhatwg-urlwhichwhich-boxed-primitivewhich-collectionwhich-typed-arraywicg-inertwide-alignwindow-or-globalwordwrapworkerpoolwrap-ansiwrap-ansi-cjswrappywrite-pkgwsxtendy18nyallistyargsyargs-parseryargs-unparseryauzlyocto-queue
1.0.2

1 month ago

1.0.1

1 month ago

1.0.0

1 month ago