@bpmn-io/form-js-playground 1.1.0 → 1.3.0-alpha.0
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.
- package/LICENSE +22 -22
- package/dist/assets/form-js-playground.css +259 -259
- package/dist/form-playground.umd.js +6096 -3351
- package/dist/index.cjs +52 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +53 -13
- package/dist/index.es.js.map +1 -1
- package/dist/types/components/JSONEditor.d.ts +23 -3
- package/package.json +4 -4
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\n\nimport { syntaxTree } from '@codemirror/language';\n\nimport { variablesFacet } from './VariablesFacet';\n\nexport default function() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\n\nimport autocompletion from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\n\nexport function JSONEditor(options = {}) {\n const {\n readonly = false,\n contentAttributes = {}\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletion(),\n keymap.of([ indentWithTab ]),\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(container) {\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\n\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = []\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || {});\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n props.onInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n });\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input' }\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output' }\n });\n\n const form = formRef.current = new Form({\n additionalModules: viewerAdditionalModules,\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: editorAdditionalModules\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notifiy interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n props.onStateChanged({\n schema,\n data\n });\n }, [ schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { {\n * actions?: { display: Boolean }\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * exporter?: { name: String, version: String }\n * schema: any\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport default function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","JSONEditor","readonly","contentAttributes","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","autocompletionConf","linterExtension","linter","jsonParseLinter","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","view","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","length","PlaygroundRoot","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","attachDataContainer","node","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","resultView","form","Form","additionalModules","properties","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","title","Playground","rest","createElement","classList","add","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\r\n\r\nexport function Modal(props) {\r\n\r\n useEffect(() => {\r\n function handleKey(event) {\r\n\r\n if (event.key === 'Escape') {\r\n event.stopPropagation();\r\n\r\n props.onClose();\r\n }\r\n }\r\n\r\n document.addEventListener('keydown', handleKey);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', handleKey);\r\n };\r\n });\r\n\r\n return (\r\n <div class=\"fjs-pgl-modal\">\r\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\r\n <div class=\"fjs-pgl-modal-content\">\r\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\r\n <div class=\"fjs-pgl-modal-body\">\r\n { props.children }\r\n </div>\r\n <div class=\"fjs-pgl-modal-footer\">\r\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useRef } from 'preact/hooks';\r\n\r\nimport { Modal } from './Modal';\r\n\r\n\r\nexport function EmbedModal(props) {\r\n\r\n const schema = serializeValue(props.schema);\r\n const data = serializeValue(props.data || {});\r\n\r\n const fieldRef = useRef();\r\n\r\n const snippet = `<!-- styles needed for rendering -->\r\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\r\n\r\n<!-- container to render the form into -->\r\n<div class=\"fjs-pgl-form-container\"></div>\r\n\r\n<!-- scripts needed for embedding -->\r\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\r\n\r\n<!-- actual script to instantiate the form and load form schema + data -->\r\n<script>\r\n const data = JSON.parse(${data});\r\n const schema = JSON.parse(${schema});\r\n\r\n const form = new FormViewer.Form({\r\n container: document.querySelector(\".fjs-pgl-form-container\")\r\n });\r\n\r\n form.on(\"submit\", (event) => {\r\n console.log(event.data, event.errors);\r\n });\r\n\r\n form.importSchema(schema, data).catch(err => {\r\n console.error(\"Failed to render form\", err);\r\n });\r\n</script>\r\n `.trim();\r\n\r\n useEffect(() => {\r\n fieldRef.current.select();\r\n });\r\n\r\n return (\r\n <Modal name=\"Embed form\" onClose={ props.onClose }>\r\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\r\n\r\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\r\n </Modal>\r\n );\r\n}\r\n\r\n\r\n// helpers ///////////\r\n\r\nfunction serializeValue(obj) {\r\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\r\n}","import { Facet } from '@codemirror/state';\r\n\r\n/**\r\n * @type {Facet<import('..').Variables>} Variables\r\n */\r\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\r\n\r\nimport { syntaxTree } from '@codemirror/language';\r\n\r\nimport { variablesFacet } from './VariablesFacet';\r\n\r\nexport default function() {\r\n return [\r\n autocompletion({\r\n override: [\r\n completions\r\n ]\r\n })\r\n ];\r\n}\r\n\r\nfunction completions(context) {\r\n\r\n const variables = context.state.facet(variablesFacet)[0];\r\n\r\n const options = variables.map(v => ({\r\n label: v,\r\n type: 'variable'\r\n }));\r\n\r\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\r\n\r\n // handle inside property name as explicit call\r\n if (nodeBefore.type.name === 'PropertyName') {\r\n context.explicit = true;\r\n }\r\n\r\n let word = context.matchBefore(/\\w*/);\r\n\r\n if (word.from == word.to && !context.explicit) {\r\n return null;\r\n }\r\n\r\n return {\r\n from: word.from,\r\n options\r\n };\r\n}","import mitt from 'mitt';\r\n\r\nimport { basicSetup } from 'codemirror';\r\nimport { EditorView, keymap, placeholder } from '@codemirror/view';\r\nimport { EditorState, Compartment } from '@codemirror/state';\r\nimport { lintGutter, linter } from '@codemirror/lint';\r\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\r\nimport { indentWithTab } from '@codemirror/commands';\r\n\r\nimport autocompletion from './autocompletion/index';\r\nimport { variablesFacet } from './autocompletion/VariablesFacet';\r\n\r\nimport {\r\n classes as domClasses\r\n} from 'min-dom';\r\n\r\nconst NO_LINT_CLS = 'fjs-no-json-lint';\r\n\r\n\r\n/**\r\n * @param {object} options\r\n * @param {boolean} [options.readonly]\r\n * @param {object} [options.contentAttributes]\r\n * @param {string | HTMLElement} [options.placeholder]\r\n */\r\nexport function JSONEditor(options = {}) {\r\n const {\r\n contentAttributes = {},\r\n placeholder: editorPlaceholder,\r\n readonly = false,\r\n } = options;\r\n\r\n const emitter = mitt();\r\n\r\n let language = new Compartment().of(json());\r\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\r\n\r\n let container = null;\r\n\r\n\r\n /**\r\n * @typedef {Array<string>} Variables\r\n */\r\n\r\n const autocompletionConf = new Compartment();\r\n\r\n const linterExtension = linter(jsonParseLinter());\r\n\r\n // this sets no-linting mode if placeholders are present\r\n const placeholderLinterExtension = linter(view => {\r\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\r\n\r\n if (placeholders.length > 0) {\r\n set(container, NO_LINT_CLS);\r\n } else {\r\n unset(container, NO_LINT_CLS);\r\n }\r\n\r\n return [];\r\n });\r\n\r\n function createState(doc, extensions = [], variables = []) {\r\n return EditorState.create({\r\n doc,\r\n extensions: [\r\n basicSetup,\r\n language,\r\n tabSize,\r\n linterExtension,\r\n placeholderLinterExtension,\r\n lintGutter(),\r\n autocompletionConf.of(variablesFacet.of(variables)),\r\n autocompletion(),\r\n keymap.of([ indentWithTab ]),\r\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\r\n ...extensions\r\n ]\r\n });\r\n }\r\n\r\n function createView(readonly) {\r\n\r\n const updateListener = EditorView.updateListener.of(update => {\r\n if (update.docChanged) {\r\n emitter.emit('changed', {\r\n value: update.view.state.doc.toString()\r\n });\r\n }\r\n });\r\n\r\n const editable = EditorView.editable.of(!readonly);\r\n\r\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\r\n\r\n const view = new EditorView({\r\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\r\n });\r\n\r\n view.setValue = function(value) {\r\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\r\n };\r\n\r\n view.setVariables = function(variables) {\r\n this.setState(createState(\r\n view.state.doc.toString(),\r\n [ updateListener, editable, contentAttributesExtension ],\r\n variables\r\n ));\r\n };\r\n\r\n return view;\r\n }\r\n\r\n const view = this._view = createView(readonly);\r\n\r\n this.setValue = function(value) {\r\n view.setValue(value);\r\n };\r\n\r\n this.getValue = function() {\r\n return view.state.doc.toString();\r\n };\r\n\r\n /**\r\n * @param {Variables} variables\r\n */\r\n this.setVariables = function(variables) {\r\n view.setVariables(variables);\r\n };\r\n\r\n this.on = emitter.on;\r\n this.off = emitter.off;\r\n this.emit = emitter.emit;\r\n\r\n this.attachTo = function(_container) {\r\n container = _container;\r\n container.appendChild(view.dom);\r\n };\r\n\r\n this.destroy = function() {\r\n if (view.dom.parentNode) {\r\n view.dom.parentNode.removeChild(view.dom);\r\n }\r\n\r\n view.destroy();\r\n };\r\n}\r\n\r\n// helpers //////////////////////\r\n\r\n\r\nfunction set(node, cls) {\r\n const classes = domClasses(node, document.body);\r\n classes.add(cls);\r\n}\r\n\r\nfunction unset(node, cls) {\r\n const classes = domClasses(node, document.body);\r\n classes.remove(cls);\r\n}\r\n","export function Section(props) {\r\n\r\n const elements =\r\n Array.isArray(props.children)\r\n ? props.children :\r\n [ props.children ];\r\n\r\n const {\r\n headerItems,\r\n children\r\n } = elements.reduce((_, child) => {\r\n const bucket =\r\n child.type === Section.HeaderItem\r\n ? _.headerItems\r\n : _.children;\r\n\r\n bucket.push(child);\r\n\r\n return _;\r\n }, { headerItems: [], children: [] });\r\n\r\n return (\r\n <div class=\"fjs-pgl-section\">\r\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\r\n <div class=\"body\">\r\n { children }\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nSection.HeaderItem = function(props) {\r\n return props.children;\r\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\r\n\r\nimport download from 'downloadjs';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport {\r\n Form,\r\n getSchemaVariables\r\n} from '@bpmn-io/form-js-viewer';\r\n\r\nimport {\r\n FormEditor\r\n} from '@bpmn-io/form-js-editor';\r\n\r\nimport { EmbedModal } from './EmbedModal';\r\nimport { JSONEditor } from './JSONEditor';\r\nimport { Section } from './Section';\r\n\r\n\r\nimport './FileDrop.css';\r\nimport './PlaygroundRoot.css';\r\n\r\n\r\nexport function PlaygroundRoot(props) {\r\n\r\n const {\r\n actions: actionsConfig = {},\r\n emit,\r\n exporter: exporterConfig = {},\r\n viewerProperties = {},\r\n editorProperties = {},\r\n viewerAdditionalModules = [],\r\n editorAdditionalModules = []\r\n } = props;\r\n\r\n const {\r\n display: displayActions = true\r\n } = actionsConfig;\r\n\r\n const paletteContainerRef = useRef();\r\n const editorContainerRef = useRef();\r\n const formContainerRef = useRef();\r\n const dataContainerRef = useRef();\r\n const resultContainerRef = useRef();\r\n const propertiesPanelContainerRef = useRef();\r\n\r\n const paletteRef = useRef();\r\n const formEditorRef = useRef();\r\n const formRef = useRef();\r\n const dataEditorRef = useRef();\r\n const resultViewRef = useRef();\r\n const propertiesPanelRef = useRef();\r\n\r\n const [ showEmbed, setShowEmbed ] = useState(false);\r\n\r\n const [ initialData ] = useState(props.data || undefined);\r\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\r\n\r\n const [ data, setData ] = useState(props.data || {});\r\n const [ schema, setSchema ] = useState(props.schema);\r\n\r\n const [ resultData, setResultData ] = useState({});\r\n\r\n // pipe to playground API\r\n useEffect(() => {\r\n props.onInit({\r\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\r\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\r\n attachFormContainer: (node) => formRef.current.attachTo(node),\r\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\r\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\r\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\r\n get: (name, strict) => formEditorRef.current.get(name, strict),\r\n getDataEditor: () => dataEditorRef.current,\r\n getEditor: () => formEditorRef.current,\r\n getForm: () => formRef.current,\r\n getResultView: () => resultViewRef.current,\r\n getSchema: () => formEditorRef.current.getSchema(),\r\n setSchema: setInitialSchema,\r\n saveSchema: () => formEditorRef.current.saveSchema()\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n setInitialSchema(props.schema || {});\r\n }, [ props.schema ]);\r\n\r\n useEffect(() => {\r\n const dataEditor = dataEditorRef.current = new JSONEditor({\r\n value: toString(data),\r\n contentAttributes: { 'aria-label': 'Form Input' },\r\n placeholder: createDataEditorPlaceholder()\r\n });\r\n\r\n const resultView = resultViewRef.current = new JSONEditor({\r\n readonly: true,\r\n value: toString(resultData),\r\n contentAttributes: { 'aria-label': 'Form Output' }\r\n });\r\n\r\n const form = formRef.current = new Form({\r\n additionalModules: viewerAdditionalModules,\r\n properties: {\r\n ...viewerProperties,\r\n 'ariaLabel': 'Form Preview'\r\n }\r\n });\r\n\r\n const formEditor = formEditorRef.current = new FormEditor({\r\n renderer: {\r\n compact: true\r\n },\r\n palette: {\r\n parent: paletteContainerRef.current\r\n },\r\n propertiesPanel: {\r\n parent: propertiesPanelContainerRef.current\r\n },\r\n exporter: exporterConfig,\r\n properties: {\r\n ...editorProperties,\r\n 'ariaLabel': 'Form Definition'\r\n },\r\n additionalModules: editorAdditionalModules\r\n });\r\n\r\n paletteRef.current = formEditor.get('palette');\r\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\r\n\r\n formEditor.on('changed', () => {\r\n setSchema(formEditor.getSchema());\r\n });\r\n\r\n formEditor.on('formEditor.rendered', () => {\r\n\r\n // notifiy interested parties after render\r\n emit('formPlayground.rendered');\r\n });\r\n\r\n form.on('changed', () => {\r\n setResultData(form._getSubmitData());\r\n });\r\n\r\n dataEditor.on('changed', event => {\r\n try {\r\n setData(JSON.parse(event.value));\r\n } catch (error) {\r\n\r\n // notify interested about input data error\r\n emit('formPlayground.inputDataError', error);\r\n }\r\n });\r\n\r\n const formContainer = formContainerRef.current;\r\n const editorContainer = editorContainerRef.current;\r\n const dataContainer = dataContainerRef.current;\r\n const resultContainer = resultContainerRef.current;\r\n\r\n dataEditor.attachTo(dataContainer);\r\n resultView.attachTo(resultContainer);\r\n form.attachTo(formContainer);\r\n formEditor.attachTo(editorContainer);\r\n\r\n return () => {\r\n dataEditor.destroy();\r\n resultView.destroy();\r\n form.destroy();\r\n formEditor.destroy();\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n dataEditorRef.current.setValue(toString(initialData));\r\n }, [ initialData ]);\r\n\r\n useEffect(() => {\r\n if (initialSchema) {\r\n formEditorRef.current.importSchema(initialSchema);\r\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\r\n }\r\n }, [ initialSchema ]);\r\n\r\n useEffect(() => {\r\n if (schema && dataContainerRef.current) {\r\n const variables = getSchemaVariables(schema);\r\n dataEditorRef.current.setVariables(variables);\r\n }\r\n }, [ schema ]);\r\n\r\n useEffect(() => {\r\n schema && formRef.current.importSchema(schema, data);\r\n }, [ schema, data ]);\r\n\r\n useEffect(() => {\r\n resultViewRef.current.setValue(toString(resultData));\r\n }, [ resultData ]);\r\n\r\n useEffect(() => {\r\n props.onStateChanged({\r\n schema,\r\n data\r\n });\r\n }, [ schema, data ]);\r\n\r\n const handleDownload = useCallback(() => {\r\n\r\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\r\n }, [ schema ]);\r\n\r\n const hideEmbedModal = useCallback(() => {\r\n setShowEmbed(false);\r\n }, []);\r\n\r\n const showEmbedModal = useCallback(() => {\r\n setShowEmbed(true);\r\n }, []);\r\n\r\n return (\r\n <div class={ classNames(\r\n 'fjs-container',\r\n 'fjs-pgl-root'\r\n ) }>\r\n <div class=\"fjs-pgl-modals\">\r\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\r\n </div>\r\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\r\n <div class=\"fjs-pgl-main\">\r\n\r\n <Section name=\"Form Definition\">\r\n\r\n {\r\n displayActions && <Section.HeaderItem>\r\n <button\r\n class=\"fjs-pgl-button\"\r\n title=\"Download form definition\"\r\n onClick={ handleDownload }\r\n >Download</button>\r\n </Section.HeaderItem>\r\n }\r\n\r\n {\r\n displayActions && <Section.HeaderItem>\r\n <button\r\n class=\"fjs-pgl-button\"\r\n onClick={ showEmbedModal }\r\n >Embed</button>\r\n </Section.HeaderItem>\r\n }\r\n\r\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\r\n </Section>\r\n <Section name=\"Form Preview\">\r\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\r\n </Section>\r\n <Section name=\"Form Input\">\r\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\r\n </Section>\r\n <Section name=\"Form Output\">\r\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\r\n </Section>\r\n </div>\r\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\r\n </div>\r\n );\r\n}\r\n\r\n\r\n// helpers ///////////////\r\n\r\nfunction toString(obj) {\r\n return JSON.stringify(obj, null, ' ');\r\n}\r\n\r\nfunction createDataEditorPlaceholder() {\r\n const element = document.createElement('p');\r\n\r\n element.innerHTML = 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\r\n 'Follow the JSON format like this:\\n\\n' +\r\n '{\\n \"variable\": \"value\"\\n}';\r\n\r\n return element;\r\n}","import { render } from 'preact';\r\n\r\nimport fileDrop from 'file-drops';\r\n\r\nimport mitt from 'mitt';\r\n\r\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\r\n\r\n/**\r\n * @typedef { {\r\n * actions?: { display: Boolean }\r\n * container?: Element\r\n * data: any\r\n * editor?: { inlinePropertiesPanel: Boolean }\r\n * exporter?: { name: String, version: String }\r\n * schema: any\r\n * } } FormPlaygroundOptions\r\n */\r\n\r\n/**\r\n * @param {FormPlaygroundOptions} options\r\n */\r\nexport default function Playground(options) {\r\n\r\n const {\r\n container: parent,\r\n schema,\r\n data,\r\n ...rest\r\n } = options;\r\n\r\n const emitter = mitt();\r\n\r\n let state = { data, schema };\r\n let ref;\r\n\r\n const container = document.createElement('div');\r\n\r\n container.classList.add('fjs-pgl-parent');\r\n\r\n if (parent) {\r\n parent.appendChild(container);\r\n }\r\n\r\n const handleDrop = fileDrop('Drop a form file', function(files) {\r\n const file = files[0];\r\n\r\n if (file) {\r\n try {\r\n ref.setSchema(JSON.parse(file.contents));\r\n } catch (err) {\r\n\r\n // TODO(nikku): indicate JSON parse error\r\n }\r\n }\r\n });\r\n\r\n const withRef = function(fn) {\r\n return function(...args) {\r\n if (!ref) {\r\n throw new Error('Playground is not initialized.');\r\n }\r\n\r\n return fn(...args);\r\n };\r\n };\r\n\r\n const onInit = function(_ref) {\r\n ref = _ref;\r\n emitter.emit('formPlayground.init');\r\n };\r\n\r\n container.addEventListener('dragover', handleDrop);\r\n\r\n render(\r\n <PlaygroundRoot\r\n data={ data }\r\n emit={ emitter.emit }\r\n onInit={ onInit }\r\n onStateChanged={ (_state) => state = _state }\r\n schema={ schema }\r\n { ...rest }\r\n />,\r\n container\r\n );\r\n\r\n this.on = emitter.on;\r\n this.off = emitter.off;\r\n\r\n this.emit = emitter.emit;\r\n\r\n this.on('destroy', function() {\r\n render(null, container);\r\n });\r\n\r\n this.on('destroy', function() {\r\n parent.removeChild(container);\r\n });\r\n\r\n this.getState = function() {\r\n return state;\r\n };\r\n\r\n this.getSchema = withRef(() => ref.getSchema());\r\n\r\n this.setSchema = withRef((schema) => ref.setSchema(schema));\r\n\r\n this.saveSchema = withRef(() => ref.saveSchema());\r\n\r\n this.get = withRef((name, strict) => ref.get(name, strict));\r\n\r\n this.getDataEditor = withRef(() => ref.getDataEditor());\r\n\r\n this.getEditor = withRef(() => ref.getEditor());\r\n\r\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\r\n\r\n this.getResultView = withRef(() => ref.getResultView());\r\n\r\n this.destroy = function() {\r\n this.emit('destroy');\r\n };\r\n\r\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\r\n\r\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\r\n\r\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\r\n\r\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\r\n\r\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\r\n\r\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\r\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","container","autocompletionConf","linterExtension","linter","jsonParseLinter","placeholderLinterExtension","view","placeholders","dom","querySelectorAll","length","set","unset","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","_container","appendChild","destroy","parentNode","removeChild","node","cls","classes","domClasses","body","add","remove","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","undefined","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","attachDataContainer","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","createDataEditorPlaceholder","resultView","form","Form","additionalModules","properties","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
|
|
@@ -1,6 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @param {object} options
|
|
3
|
+
* @param {boolean} [options.readonly]
|
|
4
|
+
* @param {object} [options.contentAttributes]
|
|
5
|
+
* @param {string | HTMLElement} [options.placeholder]
|
|
6
|
+
*/
|
|
7
|
+
export function JSONEditor(options?: {
|
|
8
|
+
readonly?: boolean;
|
|
9
|
+
contentAttributes?: object;
|
|
10
|
+
placeholder?: string | HTMLElement;
|
|
11
|
+
}): void;
|
|
2
12
|
export class JSONEditor {
|
|
3
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @param {object} options
|
|
15
|
+
* @param {boolean} [options.readonly]
|
|
16
|
+
* @param {object} [options.contentAttributes]
|
|
17
|
+
* @param {string | HTMLElement} [options.placeholder]
|
|
18
|
+
*/
|
|
19
|
+
constructor(options?: {
|
|
20
|
+
readonly?: boolean;
|
|
21
|
+
contentAttributes?: object;
|
|
22
|
+
placeholder?: string | HTMLElement;
|
|
23
|
+
});
|
|
4
24
|
_view: EditorView;
|
|
5
25
|
setValue: (value: any) => void;
|
|
6
26
|
getValue: () => string;
|
|
@@ -20,7 +40,7 @@ export class JSONEditor {
|
|
|
20
40
|
<Key_2 extends import("mitt").EventType>(type: Key_2, event: Record<import("mitt").EventType, unknown>[Key_2]): void;
|
|
21
41
|
<Key_3 extends import("mitt").EventType>(type: undefined extends Record<import("mitt").EventType, unknown>[Key_3] ? Key_3 : never): void;
|
|
22
42
|
};
|
|
23
|
-
attachTo: (
|
|
43
|
+
attachTo: (_container: any) => void;
|
|
24
44
|
destroy: () => void;
|
|
25
45
|
}
|
|
26
46
|
import { EditorView } from '@codemirror/view';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bpmn-io/form-js-playground",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0-alpha.0",
|
|
4
4
|
"description": "A form-js playground",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"url": "https://github.com/bpmn-io"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@bpmn-io/form-js-editor": "^1.
|
|
48
|
-
"@bpmn-io/form-js-viewer": "^1.
|
|
47
|
+
"@bpmn-io/form-js-editor": "^1.3.0-alpha.0",
|
|
48
|
+
"@bpmn-io/form-js-viewer": "^1.3.0-alpha.0",
|
|
49
49
|
"@codemirror/autocomplete": "^6.3.4",
|
|
50
50
|
"@codemirror/commands": "^6.1.2",
|
|
51
51
|
"@codemirror/lang-json": "^6.0.0",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"rollup-plugin-css-only": "^4.0.0",
|
|
71
71
|
"style-loader": "^3.3.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "dd5504e512c13945767159900dc8cf884834b937"
|
|
74
74
|
}
|