@bpmn-io/form-js-playground 1.8.3 → 1.8.4
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/README.md +47 -50
- package/dist/assets/form-js-playground.css +260 -259
- package/dist/form-playground.umd.js +9753 -226
- package/dist/index.cjs +2 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +2 -3
- package/dist/index.es.js.map +1 -1
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -358,7 +358,7 @@ function PlaygroundRoot(config) {
|
|
|
358
358
|
additionalModules: [...(additionalModules || []), ...(viewerAdditionalModules || [])],
|
|
359
359
|
properties: {
|
|
360
360
|
...(viewerProperties || {}),
|
|
361
|
-
|
|
361
|
+
ariaLabel: 'Form Preview'
|
|
362
362
|
}
|
|
363
363
|
});
|
|
364
364
|
const formEditor = formEditorRef.current = new formJsEditor.FormEditor({
|
|
@@ -376,7 +376,7 @@ function PlaygroundRoot(config) {
|
|
|
376
376
|
exporter: exporterConfig,
|
|
377
377
|
properties: {
|
|
378
378
|
...(editorProperties || {}),
|
|
379
|
-
|
|
379
|
+
ariaLabel: 'Form Definition'
|
|
380
380
|
},
|
|
381
381
|
additionalModules: [...(additionalModules || []), ...(editorAdditionalModules || [])]
|
|
382
382
|
});
|
|
@@ -593,7 +593,6 @@ function Playground(options) {
|
|
|
593
593
|
try {
|
|
594
594
|
this.api.setSchema(JSON.parse(file.contents));
|
|
595
595
|
} catch (err) {
|
|
596
|
-
|
|
597
596
|
// TODO(nikku): indicate JSON parse error
|
|
598
597
|
}
|
|
599
598
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","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 type=\"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';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\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';\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } 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';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\nimport { classes as domClasses } from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-cm-no-lint';\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const { contentAttributes = {}, placeholder: editorPlaceholder, readonly = false } = options;\n const emitter = mitt();\n\n const languageCompartment = new Compartment().of(json());\n const tabSizeCompartment = new Compartment().of(EditorState.tabSize.of(2));\n const autocompletionConfCompartment = new Compartment();\n const placeholderLinterExtension = createPlaceholderLinterExtension();\n\n let container = null;\n\n function createState(doc, variables = []) {\n const extensions = [\n basicSetup,\n languageCompartment,\n tabSizeCompartment,\n lintGutter(),\n linter(jsonParseLinter()),\n placeholderLinterExtension,\n autocompletionConfCompartment.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([ indentWithTab ]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n EditorState.readOnly.of(readonly),\n EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', { value: update.state.doc.toString() });\n }\n }),\n EditorView.contentAttributes.of(contentAttributes)\n ];\n\n return EditorState.create({ doc, extensions });\n }\n\n const view = new EditorView({\n state: createState('')\n });\n\n this.setValue = function(newValue) {\n const oldValue = view.state.doc.toString();\n\n const diff = findDiff(oldValue, newValue);\n\n if (diff) {\n view.dispatch({\n changes: { from: diff.start, to: diff.end, insert: diff.text },\n selection: { anchor: diff.start + diff.text.length }\n });\n }\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n this.setVariables = function(variables) {\n view.dispatch({ effects: autocompletionConfCompartment.reconfigure(variablesFacet.of(variables)) });\n };\n\n this.getView = function() {\n return view;\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 = _container;\n container.appendChild(view.dom);\n domClasses(container, document.body).add('fjs-json-editor');\n };\n\n this.destroy = function() {\n if (container && view.dom) {\n container.removeChild(view.dom);\n domClasses(container, document.body).remove('fjs-json-editor');\n }\n view.destroy();\n };\n\n function createPlaceholderLinterExtension() {\n return linter(view => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n if (placeholders.length > 0) {\n domClasses(container, document.body).add(NO_LINT_CLS);\n } else {\n domClasses(container, document.body).remove(NO_LINT_CLS);\n }\n return [];\n });\n }\n}\n\nfunction findDiff(oldStr, newStr) {\n\n if (oldStr === newStr) {\n return null;\n }\n\n oldStr = oldStr || '';\n newStr = newStr || '';\n\n let minLength = Math.min(oldStr.length, newStr.length);\n let start = 0;\n\n while (start < minLength && oldStr[start] === newStr[start]) {\n start++;\n }\n\n if (start === minLength) {\n return {\n start: start,\n text: newStr.slice(start),\n end: oldStr.length\n };\n }\n\n let endOld = oldStr.length;\n let endNew = newStr.length;\n\n while (endOld > start && endNew > start && oldStr[endOld - 1] === newStr[endNew - 1]) {\n endOld--;\n endNew--;\n }\n\n return {\n start: start,\n text: newStr.slice(start, endNew),\n end: endOld\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';\nimport { isFunction } from 'min-dash';\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\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\nexport function PlaygroundRoot(config) {\n\n const {\n additionalModules, // goes into both editor + viewer\n actions: actionsConfig,\n emit,\n exporter: exporterConfig,\n viewerProperties,\n editorProperties,\n viewerAdditionalModules,\n editorAdditionalModules,\n propertiesPanel: propertiesPanelConfig,\n apiLinkTarget,\n onInit\n } = config;\n\n const {\n display: displayActions = true\n } = actionsConfig || {};\n\n const editorContainerRef = useRef();\n const paletteContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n const viewerContainerRef = useRef();\n const inputDataContainerRef = useRef();\n const outputDataContainerRef = useRef();\n\n const formEditorRef = useRef();\n const formViewerRef = useRef();\n const inputDataRef = useRef();\n const outputDataRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n const [ schema, setSchema ] = useState();\n const [ data, setData ] = useState();\n\n const load = useCallback((schema, data) => {\n formEditorRef.current.importSchema(schema, data);\n inputDataRef.current.setValue(toString(data));\n setSchema(schema);\n setData(data);\n }, []);\n\n // initialize and link the editors\n useEffect(() => {\n const inputDataEditor = inputDataRef.current = new JSONEditor({\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder()\n });\n\n const outputDataEditor = outputDataRef.current = new JSONEditor({\n readonly: true,\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 }\n });\n\n const formViewer = formViewerRef.current = new Form({\n container: viewerContainerRef.current,\n additionalModules: [\n ...(additionalModules || []),\n ...(viewerAdditionalModules || [])\n ],\n properties: {\n ...(viewerProperties || {}),\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n container: editorContainerRef.current,\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...(propertiesPanelConfig || {})\n },\n exporter: exporterConfig,\n properties: {\n ...(editorProperties || {}),\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: [\n ...(additionalModules || []),\n ...(editorAdditionalModules || [])\n ]\n });\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([ initialDemoData, id ].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n inputDataRef.current.setValue(\n toString(newData)\n );\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n });\n\n inputDataEditor.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 inputDataEditor.attachTo(inputDataContainerRef.current);\n outputDataEditor.attachTo(outputDataContainerRef.current);\n\n return () => {\n inputDataEditor.destroy();\n outputDataEditor.destroy();\n formViewer.destroy();\n formEditor.destroy();\n };\n }, [ additionalModules, editorAdditionalModules, editorProperties, emit, exporterConfig, propertiesPanelConfig, viewerAdditionalModules, viewerProperties ]);\n\n // initialize data through props\n useEffect(() => {\n if (!config.initialSchema) {\n return;\n }\n\n load(config.initialSchema, config.initialData || {});\n }, [ config.initialSchema, config.initialData, load ]);\n\n useEffect(() => {\n schema && formViewerRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n if (schema && inputDataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n inputDataRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n // exposes api to parent\n useEffect(() => {\n\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api = {\n attachDataContainer: (node) => inputDataRef.current.attachTo(node),\n attachResultContainer: (node) => outputDataRef.current.attachTo(node),\n attachFormContainer: (node) => formViewerRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachPaletteContainer: (node) => formEditorRef.current.get('palette').attachTo(node),\n attachPropertiesPanelContainer: (node) => formEditorRef.current.get('propertiesPanel').attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => inputDataRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formViewerRef.current,\n getResultView: () => outputDataRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n saveSchema: () => formEditorRef.current.saveSchema(),\n setSchema: setSchema,\n setData: setData\n };\n\n onInit();\n\n }, [ apiLinkTarget, onInit ]);\n\n // separate effect for state to avoid re-creating the api object every time\n useEffect(() => {\n\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api.getState = () => ({ schema, data });\n apiLinkTarget.api.load = load;\n\n }, [ apiLinkTarget, schema, data, load ]);\n\n const handleDownload = useCallback(() => {\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 type=\"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 type=\"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={ viewerContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ inputDataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ outputDataContainerRef } 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}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\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' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\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 { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nfunction Playground(options) {\n\n const {\n container: parent,\n schema: initialSchema,\n data: initialData,\n ...rest\n } = options;\n\n const emitter = mitt();\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 this.api.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const safe = function(fn) {\n return function(...args) {\n if (!this.api) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function() {\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n initialSchema={ initialSchema }\n initialData={ initialData }\n emit={ emitter.emit }\n apiLinkTarget={ this }\n onInit={ onInit }\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', () => {\n render(null, container);\n parent.removeChild(container);\n });\n\n this.destroy = () => this.emit('destroy');\n\n this.getState = safe(() => this.api.getState());\n\n this.getSchema = safe(() => this.api.getSchema());\n\n this.setSchema = safe((schema) => this.api.setSchema(schema));\n\n this.saveSchema = safe(() => this.api.saveSchema());\n\n this.get = safe((name, strict) => this.api.get(name, strict));\n\n this.getDataEditor = safe(() => this.api.getDataEditor());\n\n this.getEditor = safe(() => this.api.getEditor());\n\n this.getForm = safe((name, strict) => this.api.getForm(name, strict));\n\n this.getResultView = safe(() => this.api.getResultView());\n\n this.attachEditorContainer = safe((node) => this.api.attachEditorContainer(node));\n\n this.attachPreviewContainer = safe((node) => this.api.attachFormContainer(node));\n\n this.attachDataContainer = safe((node) => this.api.attachDataContainer(node));\n\n this.attachResultContainer = safe((node) => this.api.attachResultContainer(node));\n\n this.attachPaletteContainer = safe((node) => this.api.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = safe((node) => this.api.attachPropertiesPanelContainer(node));\n}\n\nexport { Playground };"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","type","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","doc","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","view","setValue","newValue","oldValue","diff","findDiff","dispatch","changes","start","end","insert","text","selection","anchor","length","getValue","setVariables","effects","reconfigure","getView","on","off","attachTo","_container","appendChild","dom","domClasses","body","add","destroy","removeChild","remove","placeholders","querySelectorAll","oldStr","newStr","minLength","Math","min","slice","endOld","endNew","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","config","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","apiLinkTarget","onInit","display","displayActions","editorContainerRef","paletteContainerRef","propertiesPanelContainerRef","viewerContainerRef","inputDataContainerRef","outputDataContainerRef","formEditorRef","formViewerRef","inputDataRef","outputDataRef","showEmbed","setShowEmbed","useState","setSchema","setData","load","useCallback","importSchema","inputDataEditor","tabIndex","createDataEditorPlaceholder","outputDataEditor","formViewer","Form","properties","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","get","generateInitialDemoData","id","isFunction","initialDemoData","includes","undefined","currentData","newData","getSchema","submitData","_getSubmitData","parse","error","initialSchema","initialData","getSchemaVariables","api","attachDataContainer","node","attachResultContainer","attachFormContainer","attachEditorContainer","attachPaletteContainer","attachPropertiesPanelContainer","strict","getDataEditor","getEditor","getForm","getResultView","saveSchema","getState","handleDownload","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","safe","fn","args","Error","render","attachPreviewContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEO,SAASA,KAAKA,CAACC,KAAK,EAAE;AAE3BC,EAAAA,eAAS,CAAC,MAAM;IACd,SAASC,SAASA,CAACC,KAAK,EAAE;AAExB,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1BD,KAAK,CAACE,eAAe,EAAE,CAAA;QAEvBL,KAAK,CAACM,OAAO,EAAE,CAAA;AACjB,OAAA;AACF,KAAA;AAEAC,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,SAAS,CAAC,CAAA;AAE/C,IAAA,OAAO,MAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,SAAS,CAAC,CAAA;KACnD,CAAA;AACH,GAAC,CAAC,CAAA;AAEF,EAAA,OACEQ,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,eAAe;AAAAC,IAAAA,QAAA,GACxBC,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,wBAAwB;MAACG,OAAO,EAAGd,KAAK,CAACM,OAAAA;KAAe,CAAC,EACpEI,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,uBAAuB;AAAAC,MAAAA,QAAA,GAChCC,cAAA,CAAA,IAAA,EAAA;AAAIF,QAAAA,KAAK,EAAC,sBAAsB;QAAAC,QAAA,EAAGZ,KAAK,CAACe,IAAAA;OAAU,CAAC,EACpDF,cAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,oBAAoB;QAAAC,QAAA,EAC3BZ,KAAK,CAACY,QAAAA;OACL,CAAC,EACNC,cAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,sBAAsB;AAAAC,QAAAA,QAAA,EAC/BC,cAAA,CAAA,QAAA,EAAA;AAAQG,UAAAA,IAAI,EAAC,QAAQ;AAACL,UAAAA,KAAK,EAAC,uCAAuC;UAACG,OAAO,EAAGd,KAAK,CAACM,OAAS;AAAAM,UAAAA,QAAA,EAAC,OAAA;SAAa,CAAA;AAAC,OACzG,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV;;AC9BO,SAASK,UAAUA,CAACjB,KAAK,EAAE;AAEhC,EAAA,MAAMkB,MAAM,GAAGC,cAAc,CAACnB,KAAK,CAACkB,MAAM,CAAC,CAAA;EAC3C,MAAME,IAAI,GAAGD,cAAc,CAACnB,KAAK,CAACoB,IAAI,IAAI,EAAE,CAAC,CAAA;AAE7C,EAAA,MAAMC,QAAQ,GAAGC,YAAM,EAAE,CAAA;AAEzB,EAAA,MAAMC,OAAO,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAA,EAA4BH,IAAK,CAAA;AACjC,4BAAA,EAA8BF,MAAO,CAAA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAG,CAAA,CAACM,IAAI,EAAE,CAAA;AAERvB,EAAAA,eAAS,CAAC,MAAM;AACdoB,IAAAA,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE,CAAA;AAC3B,GAAC,CAAC,CAAA;EAEF,OACEhB,eAAA,CAACX,KAAK,EAAA;AAACgB,IAAAA,IAAI,EAAC,YAAY;IAACT,OAAO,EAAGN,KAAK,CAACM,OAAS;AAAAM,IAAAA,QAAA,GAChDF,eAAA,CAAA,GAAA,EAAA;MAAAE,QAAA,EAAA,CAAG,yDAAuD,EAAAC,cAAA,CAAA,GAAA,EAAA;AAAGc,QAAAA,IAAI,EAAC,oCAAoC;AAAAf,QAAAA,QAAA,EAAC,SAAA;AAAO,OAAG,CAAC,EAAC,GAAA,CAAA;KAAG,CAAC,EAEvHC,cAAA,CAAA,UAAA,EAAA;AAAUe,MAAAA,UAAU,EAAC,OAAO;AAACC,MAAAA,GAAG,EAAGR,QAAU;AAAAT,MAAAA,QAAA,EAAEW,OAAAA;AAAO,KAAW,CAAC,CAAA;AAAA,GAC7D,CAAC,CAAA;AAEZ,CAAA;;AAGA;;AAEA,SAASJ,cAAcA,CAACW,GAAG,EAAE;EAC3B,OAAOC,IAAI,CAACC,SAAS,CAACD,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC,CAAC,CAACG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACxF;;ACxDA;AACA;AACA;AACO,MAAMC,cAAc,GAAGC,WAAK,CAACC,MAAM,EAAE;;ACArC,SAASC,uBAAuBA,GAAG;EACxC,OAAO,CACLC,2BAAc,CAAC;IACbC,QAAQ,EAAE,CACRC,WAAW,CAAA;AAEf,GAAC,CAAC,CACH,CAAA;AACH,CAAA;AAEA,SAASA,WAAWA,CAACC,OAAO,EAAE;AAE5B,EAAA,MAAMC,SAAS,GAAGD,OAAO,CAACE,KAAK,CAACC,KAAK,CAACV,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAExD,EAAA,MAAMW,OAAO,GAAGH,SAAS,CAACI,GAAG,CAACC,CAAC,KAAK;AAClCC,IAAAA,KAAK,EAAED,CAAC;AACR/B,IAAAA,IAAI,EAAE,UAAA;AACR,GAAC,CAAC,CAAC,CAAA;AAEH,EAAA,IAAIiC,UAAU,GAAGC,mBAAU,CAACT,OAAO,CAACE,KAAK,CAAC,CAACQ,OAAO,CAACV,OAAO,CAACW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;;AAEnE;AACA,EAAA,IAAIH,UAAU,CAACjC,IAAI,CAACD,IAAI,KAAK,cAAc,EAAE;IAC3C0B,OAAO,CAACY,QAAQ,GAAG,IAAI,CAAA;AACzB,GAAA;AAEA,EAAA,IAAIC,IAAI,GAAGb,OAAO,CAACc,WAAW,CAAC,KAAK,CAAC,CAAA;AAErC,EAAA,IAAID,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACG,EAAE,IAAI,CAAChB,OAAO,CAACY,QAAQ,EAAE;AAC7C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO;IACLG,IAAI,EAAEF,IAAI,CAACE,IAAI;AACfX,IAAAA,OAAAA;GACD,CAAA;AACH;;AC9BA,MAAMa,WAAW,GAAG,gBAAgB,CAAA;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAACd,OAAO,GAAG,EAAE,EAAE;EACvC,MAAM;IAAEe,iBAAiB,GAAG,EAAE;AAAEC,IAAAA,WAAW,EAAEC,iBAAiB;AAAEC,IAAAA,QAAQ,GAAG,KAAA;AAAM,GAAC,GAAGlB,OAAO,CAAA;AAC5F,EAAA,MAAMmB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,MAAMC,mBAAmB,GAAG,IAAIC,iBAAW,EAAE,CAACC,EAAE,CAACC,aAAI,EAAE,CAAC,CAAA;AACxD,EAAA,MAAMC,kBAAkB,GAAG,IAAIH,iBAAW,EAAE,CAACC,EAAE,CAACG,iBAAW,CAACC,OAAO,CAACJ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1E,EAAA,MAAMK,6BAA6B,GAAG,IAAIN,iBAAW,EAAE,CAAA;AACvD,EAAA,MAAMO,0BAA0B,GAAGC,gCAAgC,EAAE,CAAA;EAErE,IAAIC,SAAS,GAAG,IAAI,CAAA;AAEpB,EAAA,SAASC,WAAWA,CAACC,GAAG,EAAEpC,SAAS,GAAG,EAAE,EAAE;AACxC,IAAA,MAAMqC,UAAU,GAAG,CACjBC,qBAAU,EACVd,mBAAmB,EACnBI,kBAAkB,EAClBW,eAAU,EAAE,EACZC,WAAM,CAACC,wBAAe,EAAE,CAAC,EACzBT,0BAA0B,EAC1BD,6BAA6B,CAACL,EAAE,CAAClC,cAAc,CAACkC,EAAE,CAAC1B,SAAS,CAAC,CAAC,EAC9DL,uBAAuB,EAAE,EACzB+C,WAAM,CAAChB,EAAE,CAAC,CAAEiB,sBAAa,CAAE,CAAC,EAC5BvB,iBAAiB,GAAGD,gBAAW,CAACC,iBAAiB,CAAC,GAAG,EAAE,EACvDS,iBAAW,CAACe,QAAQ,CAAClB,EAAE,CAACL,QAAQ,CAAC,EACjCwB,eAAU,CAACC,cAAc,CAACpB,EAAE,CAACqB,MAAM,IAAI;MACrC,IAAIA,MAAM,CAACC,UAAU,EAAE;AACrB1B,QAAAA,OAAO,CAAC2B,IAAI,CAAC,SAAS,EAAE;UAAEC,KAAK,EAAEH,MAAM,CAAC9C,KAAK,CAACmC,GAAG,CAACe,QAAQ,EAAC;AAAE,SAAC,CAAC,CAAA;AACjE,OAAA;KACD,CAAC,EACFN,eAAU,CAAC3B,iBAAiB,CAACQ,EAAE,CAACR,iBAAiB,CAAC,CACnD,CAAA;IAED,OAAOW,iBAAW,CAACuB,MAAM,CAAC;MAAEhB,GAAG;AAAEC,MAAAA,UAAAA;AAAW,KAAC,CAAC,CAAA;AAChD,GAAA;AAEA,EAAA,MAAMgB,MAAI,GAAG,IAAIR,eAAU,CAAC;IAC1B5C,KAAK,EAAEkC,WAAW,CAAC,EAAE,CAAA;AACvB,GAAC,CAAC,CAAA;AAEF,EAAA,IAAI,CAACmB,QAAQ,GAAG,UAASC,QAAQ,EAAE;IACjC,MAAMC,QAAQ,GAAGH,MAAI,CAACpD,KAAK,CAACmC,GAAG,CAACe,QAAQ,EAAE,CAAA;AAE1C,IAAA,MAAMM,IAAI,GAAGC,QAAQ,CAACF,QAAQ,EAAED,QAAQ,CAAC,CAAA;AAEzC,IAAA,IAAIE,IAAI,EAAE;MACRJ,MAAI,CAACM,QAAQ,CAAC;AACZC,QAAAA,OAAO,EAAE;UAAE9C,IAAI,EAAE2C,IAAI,CAACI,KAAK;UAAE9C,EAAE,EAAE0C,IAAI,CAACK,GAAG;UAAEC,MAAM,EAAEN,IAAI,CAACO,IAAAA;SAAM;AAC9DC,QAAAA,SAAS,EAAE;UAAEC,MAAM,EAAET,IAAI,CAACI,KAAK,GAAGJ,IAAI,CAACO,IAAI,CAACG,MAAAA;AAAO,SAAA;AACrD,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,CAAA;EAED,IAAI,CAACC,QAAQ,GAAG,YAAW;IACzB,OAAOf,MAAI,CAACpD,KAAK,CAACmC,GAAG,CAACe,QAAQ,EAAE,CAAA;GACjC,CAAA;AAED,EAAA,IAAI,CAACkB,YAAY,GAAG,UAASrE,SAAS,EAAE;IACtCqD,MAAI,CAACM,QAAQ,CAAC;MAAEW,OAAO,EAAEvC,6BAA6B,CAACwC,WAAW,CAAC/E,cAAc,CAACkC,EAAE,CAAC1B,SAAS,CAAC,CAAA;AAAE,KAAC,CAAC,CAAA;GACpG,CAAA;EAED,IAAI,CAACwE,OAAO,GAAG,YAAW;AACxB,IAAA,OAAOnB,MAAI,CAAA;GACZ,CAAA;AAED,EAAA,IAAI,CAACoB,EAAE,GAAGnD,OAAO,CAACmD,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAGpD,OAAO,CAACoD,GAAG,CAAA;AACtB,EAAA,IAAI,CAACzB,IAAI,GAAG3B,OAAO,CAAC2B,IAAI,CAAA;AAExB,EAAA,IAAI,CAAC0B,QAAQ,GAAG,UAASC,UAAU,EAAE;AACnC1C,IAAAA,SAAS,GAAG0C,UAAU,CAAA;AACtB1C,IAAAA,SAAS,CAAC2C,WAAW,CAACxB,MAAI,CAACyB,GAAG,CAAC,CAAA;IAC/BC,cAAU,CAAC7C,SAAS,EAAErE,QAAQ,CAACmH,IAAI,CAAC,CAACC,GAAG,CAAC,iBAAiB,CAAC,CAAA;GAC5D,CAAA;EAED,IAAI,CAACC,OAAO,GAAG,YAAW;AACxB,IAAA,IAAIhD,SAAS,IAAImB,MAAI,CAACyB,GAAG,EAAE;AACzB5C,MAAAA,SAAS,CAACiD,WAAW,CAAC9B,MAAI,CAACyB,GAAG,CAAC,CAAA;MAC/BC,cAAU,CAAC7C,SAAS,EAAErE,QAAQ,CAACmH,IAAI,CAAC,CAACI,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAChE,KAAA;IACA/B,MAAI,CAAC6B,OAAO,EAAE,CAAA;GACf,CAAA;EAED,SAASjD,gCAAgCA,GAAG;IAC1C,OAAOO,WAAM,CAACa,IAAI,IAAI;MACpB,MAAMgC,YAAY,GAAGhC,IAAI,CAACyB,GAAG,CAACQ,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;AACjE,MAAA,IAAID,YAAY,CAAClB,MAAM,GAAG,CAAC,EAAE;QAC3BY,cAAU,CAAC7C,SAAS,EAAErE,QAAQ,CAACmH,IAAI,CAAC,CAACC,GAAG,CAACjE,WAAW,CAAC,CAAA;AACvD,OAAC,MAAM;QACL+D,cAAU,CAAC7C,SAAS,EAAErE,QAAQ,CAACmH,IAAI,CAAC,CAACI,MAAM,CAACpE,WAAW,CAAC,CAAA;AAC1D,OAAA;AACA,MAAA,OAAO,EAAE,CAAA;AACX,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAA;AAEA,SAAS0C,QAAQA,CAAC6B,MAAM,EAAEC,MAAM,EAAE;EAEhC,IAAID,MAAM,KAAKC,MAAM,EAAE;AACrB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEAD,MAAM,GAAGA,MAAM,IAAI,EAAE,CAAA;EACrBC,MAAM,GAAGA,MAAM,IAAI,EAAE,CAAA;AAErB,EAAA,IAAIC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACJ,MAAM,CAACpB,MAAM,EAAEqB,MAAM,CAACrB,MAAM,CAAC,CAAA;EACtD,IAAIN,KAAK,GAAG,CAAC,CAAA;AAEb,EAAA,OAAOA,KAAK,GAAG4B,SAAS,IAAIF,MAAM,CAAC1B,KAAK,CAAC,KAAK2B,MAAM,CAAC3B,KAAK,CAAC,EAAE;AAC3DA,IAAAA,KAAK,EAAE,CAAA;AACT,GAAA;EAEA,IAAIA,KAAK,KAAK4B,SAAS,EAAE;IACvB,OAAO;AACL5B,MAAAA,KAAK,EAAEA,KAAK;AACZG,MAAAA,IAAI,EAAEwB,MAAM,CAACI,KAAK,CAAC/B,KAAK,CAAC;MACzBC,GAAG,EAAEyB,MAAM,CAACpB,MAAAA;KACb,CAAA;AACH,GAAA;AAEA,EAAA,IAAI0B,MAAM,GAAGN,MAAM,CAACpB,MAAM,CAAA;AAC1B,EAAA,IAAI2B,MAAM,GAAGN,MAAM,CAACrB,MAAM,CAAA;EAE1B,OAAO0B,MAAM,GAAGhC,KAAK,IAAIiC,MAAM,GAAGjC,KAAK,IAAI0B,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,KAAKL,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,EAAE;AACpFD,IAAAA,MAAM,EAAE,CAAA;AACRC,IAAAA,MAAM,EAAE,CAAA;AACV,GAAA;EAEA,OAAO;AACLjC,IAAAA,KAAK,EAAEA,KAAK;IACZG,IAAI,EAAEwB,MAAM,CAACI,KAAK,CAAC/B,KAAK,EAAEiC,MAAM,CAAC;AACjChC,IAAAA,GAAG,EAAE+B,MAAAA;GACN,CAAA;AACH;;ACvJO,SAASE,OAAOA,CAACzI,KAAK,EAAE;AAE7B,EAAA,MAAM0I,QAAQ,GACZC,KAAK,CAACC,OAAO,CAAC5I,KAAK,CAACY,QAAQ,CAAC,GACzBZ,KAAK,CAACY,QAAQ,GAChB,CAAEZ,KAAK,CAACY,QAAQ,CAAE,CAAA;EAEtB,MAAM;IACJiI,WAAW;AACXjI,IAAAA,QAAAA;GACD,GAAG8H,QAAQ,CAACI,MAAM,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;AAChC,IAAA,MAAMC,MAAM,GACVD,KAAK,CAAChI,IAAI,KAAKyH,OAAO,CAACS,UAAU,GAC7BH,CAAC,CAACF,WAAW,GACbE,CAAC,CAACnI,QAAQ,CAAA;AAEhBqI,IAAAA,MAAM,CAACE,IAAI,CAACH,KAAK,CAAC,CAAA;AAElB,IAAA,OAAOD,CAAC,CAAA;AACV,GAAC,EAAE;AAAEF,IAAAA,WAAW,EAAE,EAAE;AAAEjI,IAAAA,QAAQ,EAAE,EAAA;AAAG,GAAC,CAAC,CAAA;AAErC,EAAA,OACEF,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,iBAAiB;AAAAC,IAAAA,QAAA,GAC1BF,eAAA,CAAA,IAAA,EAAA;AAAIC,MAAAA,KAAK,EAAC,QAAQ;MAAAC,QAAA,EAAA,CAAGZ,KAAK,CAACe,IAAI,EAAE,GAAC,EAAE8H,WAAW,CAAChC,MAAM,GAAGhG,cAAA,CAAA,MAAA,EAAA;AAAMF,QAAAA,KAAK,EAAC,cAAc;AAAAC,QAAAA,QAAA,EAAGiI,WAAAA;OAAmB,CAAC,GAAG,IAAI,CAAA;KAAM,CAAC,EACxHhI,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,MAAM;AAAAC,MAAAA,QAAA,EACbA,QAAAA;AAAQ,KACP,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;AAEA6H,OAAO,CAACS,UAAU,GAAG,UAASlJ,KAAK,EAAE;EACnC,OAAOA,KAAK,CAACY,QAAQ,CAAA;AACvB,CAAC;;ACXM,SAASwI,cAAcA,CAACC,MAAM,EAAE;EAErC,MAAM;IACJC,iBAAiB;AAAE;AACnBC,IAAAA,OAAO,EAAEC,aAAa;IACtB7D,IAAI;AACJ8D,IAAAA,QAAQ,EAAEC,cAAc;IACxBC,gBAAgB;IAChBC,gBAAgB;IAChBC,uBAAuB;IACvBC,uBAAuB;AACvBC,IAAAA,eAAe,EAAEC,qBAAqB;IACtCC,aAAa;AACbC,IAAAA,MAAAA;AACF,GAAC,GAAGb,MAAM,CAAA;EAEV,MAAM;IACJc,OAAO,EAAEC,cAAc,GAAG,IAAA;AAC5B,GAAC,GAAGZ,aAAa,IAAI,EAAE,CAAA;AAEvB,EAAA,MAAMa,kBAAkB,GAAG/I,YAAM,EAAE,CAAA;AACnC,EAAA,MAAMgJ,mBAAmB,GAAGhJ,YAAM,EAAE,CAAA;AACpC,EAAA,MAAMiJ,2BAA2B,GAAGjJ,YAAM,EAAE,CAAA;AAC5C,EAAA,MAAMkJ,kBAAkB,GAAGlJ,YAAM,EAAE,CAAA;AACnC,EAAA,MAAMmJ,qBAAqB,GAAGnJ,YAAM,EAAE,CAAA;AACtC,EAAA,MAAMoJ,sBAAsB,GAAGpJ,YAAM,EAAE,CAAA;AAEvC,EAAA,MAAMqJ,aAAa,GAAGrJ,YAAM,EAAE,CAAA;AAC9B,EAAA,MAAMsJ,aAAa,GAAGtJ,YAAM,EAAE,CAAA;AAC9B,EAAA,MAAMuJ,YAAY,GAAGvJ,YAAM,EAAE,CAAA;AAC7B,EAAA,MAAMwJ,aAAa,GAAGxJ,YAAM,EAAE,CAAA;EAE9B,MAAM,CAAEyJ,SAAS,EAAEC,YAAY,CAAE,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAA;EACnD,MAAM,CAAE/J,MAAM,EAAEgK,SAAS,CAAE,GAAGD,cAAQ,EAAE,CAAA;EACxC,MAAM,CAAE7J,IAAI,EAAE+J,OAAO,CAAE,GAAGF,cAAQ,EAAE,CAAA;EAEpC,MAAMG,IAAI,GAAGC,iBAAW,CAAC,CAACnK,MAAM,EAAEE,IAAI,KAAK;IACzCuJ,aAAa,CAAClJ,OAAO,CAAC6J,YAAY,CAACpK,MAAM,EAAEE,IAAI,CAAC,CAAA;IAChDyJ,YAAY,CAACpJ,OAAO,CAACuE,QAAQ,CAACH,QAAQ,CAACzE,IAAI,CAAC,CAAC,CAAA;IAC7C8J,SAAS,CAAChK,MAAM,CAAC,CAAA;IACjBiK,OAAO,CAAC/J,IAAI,CAAC,CAAA;GACd,EAAE,EAAE,CAAC,CAAA;;AAEN;AACAnB,EAAAA,eAAS,CAAC,MAAM;IACd,MAAMsL,eAAe,GAAGV,YAAY,CAACpJ,OAAO,GAAG,IAAIkC,UAAU,CAAC;AAC5DC,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,YAAY;AAAE4H,QAAAA,QAAQ,EAAE,CAAA;OAAG;MAC9D3H,WAAW,EAAE4H,2BAA2B,EAAC;AAC3C,KAAC,CAAC,CAAA;IAEF,MAAMC,gBAAgB,GAAGZ,aAAa,CAACrJ,OAAO,GAAG,IAAIkC,UAAU,CAAC;AAC9DI,MAAAA,QAAQ,EAAE,IAAI;AACdH,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,aAAa;AAAE4H,QAAAA,QAAQ,EAAE,CAAA;AAAE,OAAA;AAChE,KAAC,CAAC,CAAA;IAEF,MAAMG,UAAU,GAAGf,aAAa,CAACnJ,OAAO,GAAG,IAAImK,iBAAI,CAAC;MAClDhH,SAAS,EAAE4F,kBAAkB,CAAC/I,OAAO;AACrC6H,MAAAA,iBAAiB,EAAE,CACjB,IAAIA,iBAAiB,IAAI,EAAE,CAAC,EAC5B,IAAIO,uBAAuB,IAAI,EAAE,CAAC,CACnC;AACDgC,MAAAA,UAAU,EAAE;AACV,QAAA,IAAIlC,gBAAgB,IAAI,EAAE,CAAC;AAC3B,QAAA,WAAW,EAAE,cAAA;AACf,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAMmC,UAAU,GAAGnB,aAAa,CAAClJ,OAAO,GAAG,IAAIsK,uBAAU,CAAC;MACxDnH,SAAS,EAAEyF,kBAAkB,CAAC5I,OAAO;AACrCuK,MAAAA,QAAQ,EAAE;AACRC,QAAAA,OAAO,EAAE,IAAA;OACV;AACDC,MAAAA,OAAO,EAAE;QACPC,MAAM,EAAE7B,mBAAmB,CAAC7I,OAAAA;OAC7B;AACDsI,MAAAA,eAAe,EAAE;QACfoC,MAAM,EAAE5B,2BAA2B,CAAC9I,OAAO;QAC3C,IAAIuI,qBAAqB,IAAI,EAAE,CAAA;OAChC;AACDP,MAAAA,QAAQ,EAAEC,cAAc;AACxBmC,MAAAA,UAAU,EAAE;AACV,QAAA,IAAIjC,gBAAgB,IAAI,EAAE,CAAC;AAC3B,QAAA,WAAW,EAAE,iBAAA;OACd;AACDN,MAAAA,iBAAiB,EAAE,CACjB,IAAIA,iBAAiB,IAAI,EAAE,CAAC,EAC5B,IAAIQ,uBAAuB,IAAI,EAAE,CAAC,CAAA;AAEtC,KAAC,CAAC,CAAA;AAEFgC,IAAAA,UAAU,CAAC3E,EAAE,CAAC,eAAe,EAAE,CAAC;AAAEiF,MAAAA,SAAAA;AAAU,KAAC,KAAK;AAChD,MAAA,MAAMC,UAAU,GAAGP,UAAU,CAACQ,GAAG,CAAC,YAAY,CAAC,CAAA;MAC/C,MAAM;AAAEjD,QAAAA,MAAAA;OAAQ,GAAGgD,UAAU,CAACC,GAAG,CAACF,SAAS,CAACpL,IAAI,CAAC,CAAA;MACjD,MAAM;AAAEuL,QAAAA,uBAAAA;AAAwB,OAAC,GAAGlD,MAAM,CAAA;MAC1C,MAAM;AAAEmD,QAAAA,EAAAA;AAAG,OAAC,GAAGJ,SAAS,CAAA;AAExB,MAAA,IAAI,CAACK,kBAAU,CAACF,uBAAuB,CAAC,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,MAAMG,eAAe,GAAGH,uBAAuB,CAACH,SAAS,CAAC,CAAA;MAE1D,IAAI,CAAEM,eAAe,EAAEF,EAAE,CAAE,CAACG,QAAQ,CAACC,SAAS,CAAC,EAAE;AAC/C,QAAA,OAAA;AACF,OAAA;MAEAzB,OAAO,CAAE0B,WAAW,IAAK;AACvB,QAAA,MAAMC,OAAO,GAAG;AACd,UAAA,GAAGD,WAAW;AACd,UAAA,CAACL,EAAE,GAAGE,eAAAA;SACP,CAAA;QAED7B,YAAY,CAACpJ,OAAO,CAACuE,QAAQ,CAC3BH,QAAQ,CAACiH,OAAO,CAClB,CAAC,CAAA;AAED,QAAA,OAAOA,OAAO,CAAA;AAChB,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEFhB,IAAAA,UAAU,CAAC3E,EAAE,CAAC,SAAS,EAAE,MAAM;AAC7B+D,MAAAA,SAAS,CAACY,UAAU,CAACiB,SAAS,EAAE,CAAC,CAAA;AACnC,KAAC,CAAC,CAAA;AAEFjB,IAAAA,UAAU,CAAC3E,EAAE,CAAC,qBAAqB,EAAE,MAAM;AAEzC;MACAxB,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACjC,KAAC,CAAC,CAAA;;AAEF;AACAgG,IAAAA,UAAU,CAACxE,EAAE,CAAC,SAAS,EAAE,MAAM;AAC7B,MAAA,MAAM6F,UAAU,GAAGrB,UAAU,CAACsB,cAAc,EAAE,CAAA;AAC9CvB,MAAAA,gBAAgB,CAAC1F,QAAQ,CAACH,QAAQ,CAACmH,UAAU,CAAC,CAAC,CAAA;AACjD,KAAC,CAAC,CAAA;AAEFzB,IAAAA,eAAe,CAACpE,EAAE,CAAC,SAAS,EAAEhH,KAAK,IAAI;MACrC,IAAI;QACFgL,OAAO,CAACpJ,IAAI,CAACmL,KAAK,CAAC/M,KAAK,CAACyF,KAAK,CAAC,CAAC,CAAA;OACjC,CAAC,OAAOuH,KAAK,EAAE;AAEd;AACAxH,QAAAA,IAAI,CAAC,+BAA+B,EAAEwH,KAAK,CAAC,CAAA;AAC9C,OAAA;AACF,KAAC,CAAC,CAAA;AAEF5B,IAAAA,eAAe,CAAClE,QAAQ,CAACoD,qBAAqB,CAAChJ,OAAO,CAAC,CAAA;AACvDiK,IAAAA,gBAAgB,CAACrE,QAAQ,CAACqD,sBAAsB,CAACjJ,OAAO,CAAC,CAAA;AAEzD,IAAA,OAAO,MAAM;MACX8J,eAAe,CAAC3D,OAAO,EAAE,CAAA;MACzB8D,gBAAgB,CAAC9D,OAAO,EAAE,CAAA;MAC1B+D,UAAU,CAAC/D,OAAO,EAAE,CAAA;MACpBkE,UAAU,CAAClE,OAAO,EAAE,CAAA;KACrB,CAAA;AACH,GAAC,EAAE,CAAE0B,iBAAiB,EAAEQ,uBAAuB,EAAEF,gBAAgB,EAAEjE,IAAI,EAAE+D,cAAc,EAAEM,qBAAqB,EAAEH,uBAAuB,EAAEF,gBAAgB,CAAE,CAAC,CAAA;;AAE5J;AACA1J,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACoJ,MAAM,CAAC+D,aAAa,EAAE;AACzB,MAAA,OAAA;AACF,KAAA;IAEAhC,IAAI,CAAC/B,MAAM,CAAC+D,aAAa,EAAE/D,MAAM,CAACgE,WAAW,IAAI,EAAE,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEhE,MAAM,CAAC+D,aAAa,EAAE/D,MAAM,CAACgE,WAAW,EAAEjC,IAAI,CAAE,CAAC,CAAA;AAEtDnL,EAAAA,eAAS,CAAC,MAAM;IACdiB,MAAM,IAAI0J,aAAa,CAACnJ,OAAO,CAAC6J,YAAY,CAACpK,MAAM,EAAEE,IAAI,CAAC,CAAA;AAC5D,GAAC,EAAE,CAAEF,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpBnB,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIiB,MAAM,IAAIuJ,qBAAqB,CAAChJ,OAAO,EAAE;AAC3C,MAAA,MAAMiB,SAAS,GAAG4K,+BAAkB,CAACpM,MAAM,CAAC,CAAA;AAC5C2J,MAAAA,YAAY,CAACpJ,OAAO,CAACsF,YAAY,CAACrE,SAAS,CAAC,CAAA;AAC9C,KAAA;AACF,GAAC,EAAE,CAAExB,MAAM,CAAE,CAAC,CAAA;;AAEd;AACAjB,EAAAA,eAAS,CAAC,MAAM;IAEd,IAAI,CAACgK,aAAa,EAAE;AAClB,MAAA,OAAA;AACF,KAAA;IAEAA,aAAa,CAACsD,GAAG,GAAG;MAClBC,mBAAmB,EAAGC,IAAI,IAAK5C,YAAY,CAACpJ,OAAO,CAAC4F,QAAQ,CAACoG,IAAI,CAAC;MAClEC,qBAAqB,EAAGD,IAAI,IAAK3C,aAAa,CAACrJ,OAAO,CAAC4F,QAAQ,CAACoG,IAAI,CAAC;MACrEE,mBAAmB,EAAGF,IAAI,IAAK7C,aAAa,CAACnJ,OAAO,CAAC4F,QAAQ,CAACoG,IAAI,CAAC;MACnEG,qBAAqB,EAAGH,IAAI,IAAK9C,aAAa,CAAClJ,OAAO,CAAC4F,QAAQ,CAACoG,IAAI,CAAC;AACrEI,MAAAA,sBAAsB,EAAGJ,IAAI,IAAK9C,aAAa,CAAClJ,OAAO,CAAC6K,GAAG,CAAC,SAAS,CAAC,CAACjF,QAAQ,CAACoG,IAAI,CAAC;AACrFK,MAAAA,8BAA8B,EAAGL,IAAI,IAAK9C,aAAa,CAAClJ,OAAO,CAAC6K,GAAG,CAAC,iBAAiB,CAAC,CAACjF,QAAQ,CAACoG,IAAI,CAAC;AACrGnB,MAAAA,GAAG,EAAEA,CAACvL,IAAI,EAAEgN,MAAM,KAAKpD,aAAa,CAAClJ,OAAO,CAAC6K,GAAG,CAACvL,IAAI,EAAEgN,MAAM,CAAC;AAC9DC,MAAAA,aAAa,EAAEA,MAAMnD,YAAY,CAACpJ,OAAO;AACzCwM,MAAAA,SAAS,EAAEA,MAAMtD,aAAa,CAAClJ,OAAO;AACtCyM,MAAAA,OAAO,EAAEA,MAAMtD,aAAa,CAACnJ,OAAO;AACpC0M,MAAAA,aAAa,EAAEA,MAAMrD,aAAa,CAACrJ,OAAO;MAC1CsL,SAAS,EAAEA,MAAMpC,aAAa,CAAClJ,OAAO,CAACsL,SAAS,EAAE;MAClDqB,UAAU,EAAEA,MAAMzD,aAAa,CAAClJ,OAAO,CAAC2M,UAAU,EAAE;AACpDlD,MAAAA,SAAS,EAAEA,SAAS;AACpBC,MAAAA,OAAO,EAAEA,OAAAA;KACV,CAAA;AAEDjB,IAAAA,MAAM,EAAE,CAAA;AAEV,GAAC,EAAE,CAAED,aAAa,EAAEC,MAAM,CAAE,CAAC,CAAA;;AAE7B;AACAjK,EAAAA,eAAS,CAAC,MAAM;IAEd,IAAI,CAACgK,aAAa,EAAE;AAClB,MAAA,OAAA;AACF,KAAA;AAEAA,IAAAA,aAAa,CAACsD,GAAG,CAACc,QAAQ,GAAG,OAAO;MAAEnN,MAAM;AAAEE,MAAAA,IAAAA;AAAK,KAAC,CAAC,CAAA;AACrD6I,IAAAA,aAAa,CAACsD,GAAG,CAACnC,IAAI,GAAGA,IAAI,CAAA;GAE9B,EAAE,CAAEnB,aAAa,EAAE/I,MAAM,EAAEE,IAAI,EAAEgK,IAAI,CAAE,CAAC,CAAA;AAEzC,EAAA,MAAMkD,cAAc,GAAGjD,iBAAW,CAAC,MAAM;AACvCkD,IAAAA,QAAQ,CAACxM,IAAI,CAACC,SAAS,CAACd,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AACxE,GAAC,EAAE,CAAEA,MAAM,CAAE,CAAC,CAAA;AAEd,EAAA,MAAMsN,cAAc,GAAGnD,iBAAW,CAAC,MAAM;IACvCL,YAAY,CAAC,KAAK,CAAC,CAAA;GACpB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMyD,cAAc,GAAGpD,iBAAW,CAAC,MAAM;IACvCL,YAAY,CAAC,IAAI,CAAC,CAAA;GACnB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OACEtK,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAG+N,UAAU,CACrB,eAAe,EACf,cACF,CAAG;AAAA9N,IAAAA,QAAA,GACDC,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,gBAAgB;AAAAC,MAAAA,QAAA,EACvBmK,SAAS,GAAGlK,cAAA,CAACI,UAAU,EAAA;AAACC,QAAAA,MAAM,EAAGA,MAAQ;AAACE,QAAAA,IAAI,EAAGA,IAAM;AAACd,QAAAA,OAAO,EAAGkO,cAAAA;AAAgB,OAAE,CAAC,GAAG,IAAA;KACvF,CAAC,EACN3N,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,2BAA2B;AAACkB,MAAAA,GAAG,EAAGyI,mBAAAA;KAAuB,CAAC,EACrE5J,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,cAAc;MAAAC,QAAA,EAAA,CAEvBF,eAAA,CAAC+H,OAAO,EAAA;AAAC1H,QAAAA,IAAI,EAAC,iBAAiB;AAAAH,QAAAA,QAAA,GAG3BwJ,cAAc,IAAIvJ,cAAA,CAAC4H,OAAO,CAACS,UAAU,EAAA;AAAAtI,UAAAA,QAAA,EACnCC,cAAA,CAAA,QAAA,EAAA;AACEG,YAAAA,IAAI,EAAC,QAAQ;AACbL,YAAAA,KAAK,EAAC,gBAAgB;AACtBgO,YAAAA,KAAK,EAAC,0BAA0B;AAChC7N,YAAAA,OAAO,EAAGwN,cAAgB;AAAA1N,YAAAA,QAAA,EAC3B,UAAA;WAAgB,CAAA;SACC,CAAC,EAIrBwJ,cAAc,IAAIvJ,cAAA,CAAC4H,OAAO,CAACS,UAAU,EAAA;AAAAtI,UAAAA,QAAA,EACnCC,cAAA,CAAA,QAAA,EAAA;AACEG,YAAAA,IAAI,EAAC,QAAQ;AACbL,YAAAA,KAAK,EAAC,gBAAgB;AACtBG,YAAAA,OAAO,EAAG2N,cAAgB;AAAA7N,YAAAA,QAAA,EAC3B,OAAA;WAAa,CAAA;SACI,CAAC,EAGvBC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAGwI,kBAAoB;AAAC1J,UAAAA,KAAK,EAAC,wBAAA;AAAwB,SAAM,CAAC,CAAA;AAAA,OAC9D,CAAC,EACVE,cAAA,CAAC4H,OAAO,EAAA;AAAC1H,QAAAA,IAAI,EAAC,cAAc;AAAAH,QAAAA,QAAA,EAC1BC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG2I,kBAAoB;AAAC7J,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC9D,CAAC,EACVE,cAAA,CAAC4H,OAAO,EAAA;AAAC1H,QAAAA,IAAI,EAAC,YAAY;AAAAH,QAAAA,QAAA,EACxBC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG4I,qBAAuB;AAAC9J,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OACjE,CAAC,EACVE,cAAA,CAAC4H,OAAO,EAAA;AAAC1H,QAAAA,IAAI,EAAC,aAAa;AAAAH,QAAAA,QAAA,EACzBC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG6I,sBAAwB;AAAC/J,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAClE,CAAC,CAAA;KACP,CAAC,EACNE,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,8BAA8B;AAACkB,MAAAA,GAAG,EAAG0I,2BAAAA;AAA6B,KAAE,CAAC,CAAA;AAAA,GAC7E,CAAC,CAAA;AAEV,CAAA;;AAGA;;AAEA,SAAS1E,QAAQA,CAAC/D,GAAG,EAAE;EACrB,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACxC,CAAA;AAEA,SAAS2J,2BAA2BA,GAAG;AACrC,EAAA,MAAMmD,OAAO,GAAGrO,QAAQ,CAACsO,aAAa,CAAC,GAAG,CAAC,CAAA;AAE3CD,EAAAA,OAAO,CAACE,SAAS,GAAG,mIAAmI,GACrJ,uCAAuC,GACvC,6BAA6B,CAAA;AAE/B,EAAA,OAAOF,OAAO,CAAA;AAChB;;AC/RA,SAASG,UAAUA,CAAClM,OAAO,EAAE;EAE3B,MAAM;AACJ+B,IAAAA,SAAS,EAAEuH,MAAM;AACjBjL,IAAAA,MAAM,EAAEkM,aAAa;AACrBhM,IAAAA,IAAI,EAAEiM,WAAW;IACjB,GAAG2B,IAAAA;AACL,GAAC,GAAGnM,OAAO,CAAA;AAEX,EAAA,MAAMmB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,MAAMW,SAAS,GAAGrE,QAAQ,CAACsO,aAAa,CAAC,KAAK,CAAC,CAAA;AAE/CjK,EAAAA,SAAS,CAACqK,SAAS,CAACtH,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAEzC,EAAA,IAAIwE,MAAM,EAAE;AACVA,IAAAA,MAAM,CAAC5E,WAAW,CAAC3C,SAAS,CAAC,CAAA;AAC/B,GAAA;EAEA,MAAMsK,UAAU,GAAGC,QAAQ,CAAC,kBAAkB,EAAE,UAASC,KAAK,EAAE;AAC9D,IAAA,MAAMC,IAAI,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAA;AAErB,IAAA,IAAIC,IAAI,EAAE;MACR,IAAI;AACF,QAAA,IAAI,CAAC9B,GAAG,CAACrC,SAAS,CAACnJ,IAAI,CAACmL,KAAK,CAACmC,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAA;OAC9C,CAAC,OAAOC,GAAG,EAAE;;AAEZ;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,IAAI,GAAG,UAASC,EAAE,EAAE;IACxB,OAAO,UAAS,GAAGC,IAAI,EAAE;AACvB,MAAA,IAAI,CAAC,IAAI,CAACnC,GAAG,EAAE;AACb,QAAA,MAAM,IAAIoC,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACnD,OAAA;AAEA,MAAA,OAAOF,EAAE,CAAC,GAAGC,IAAI,CAAC,CAAA;KACnB,CAAA;GACF,CAAA;AAED,EAAA,MAAMxF,MAAM,GAAG,YAAW;AACxBlG,IAAAA,OAAO,CAAC2B,IAAI,CAAC,qBAAqB,CAAC,CAAA;GACpC,CAAA;AAEDf,EAAAA,SAAS,CAACpE,gBAAgB,CAAC,UAAU,EAAE0O,UAAU,CAAC,CAAA;EAElDU,aAAM,CACJ/O,cAAA,CAACuI,cAAc,EAAA;AACbgE,IAAAA,aAAa,EAAGA,aAAe;AAC/BC,IAAAA,WAAW,EAAGA,WAAa;IAC3B1H,IAAI,EAAG3B,OAAO,CAAC2B,IAAM;AACrBsE,IAAAA,aAAa,EAAG,IAAM;AACtBC,IAAAA,MAAM,EAAGA,MAAQ;IAAA,GACZ8E,IAAAA;GACN,CAAC,EACFpK,SACF,CAAC,CAAA;AAED,EAAA,IAAI,CAACuC,EAAE,GAAGnD,OAAO,CAACmD,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAGpD,OAAO,CAACoD,GAAG,CAAA;AAEtB,EAAA,IAAI,CAACzB,IAAI,GAAG3B,OAAO,CAAC2B,IAAI,CAAA;AAExB,EAAA,IAAI,CAACwB,EAAE,CAAC,SAAS,EAAE,MAAM;AACvByI,IAAAA,aAAM,CAAC,IAAI,EAAEhL,SAAS,CAAC,CAAA;AACvBuH,IAAAA,MAAM,CAACtE,WAAW,CAACjD,SAAS,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;EAEF,IAAI,CAACgD,OAAO,GAAG,MAAM,IAAI,CAACjC,IAAI,CAAC,SAAS,CAAC,CAAA;AAEzC,EAAA,IAAI,CAAC0I,QAAQ,GAAGmB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACc,QAAQ,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACtB,SAAS,GAAGyC,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACR,SAAS,EAAE,CAAC,CAAA;AAEjD,EAAA,IAAI,CAAC7B,SAAS,GAAGsE,IAAI,CAAEtO,MAAM,IAAK,IAAI,CAACqM,GAAG,CAACrC,SAAS,CAAChK,MAAM,CAAC,CAAC,CAAA;AAE7D,EAAA,IAAI,CAACkN,UAAU,GAAGoB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACa,UAAU,EAAE,CAAC,CAAA;EAEnD,IAAI,CAAC9B,GAAG,GAAGkD,IAAI,CAAC,CAACzO,IAAI,EAAEgN,MAAM,KAAK,IAAI,CAACR,GAAG,CAACjB,GAAG,CAACvL,IAAI,EAAEgN,MAAM,CAAC,CAAC,CAAA;AAE7D,EAAA,IAAI,CAACC,aAAa,GAAGwB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACS,aAAa,EAAE,CAAC,CAAA;AAEzD,EAAA,IAAI,CAACC,SAAS,GAAGuB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACU,SAAS,EAAE,CAAC,CAAA;EAEjD,IAAI,CAACC,OAAO,GAAGsB,IAAI,CAAC,CAACzO,IAAI,EAAEgN,MAAM,KAAK,IAAI,CAACR,GAAG,CAACW,OAAO,CAACnN,IAAI,EAAEgN,MAAM,CAAC,CAAC,CAAA;AAErE,EAAA,IAAI,CAACI,aAAa,GAAGqB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACY,aAAa,EAAE,CAAC,CAAA;AAEzD,EAAA,IAAI,CAACP,qBAAqB,GAAG4B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACK,qBAAqB,CAACH,IAAI,CAAC,CAAC,CAAA;AAEjF,EAAA,IAAI,CAACoC,sBAAsB,GAAGL,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACI,mBAAmB,CAACF,IAAI,CAAC,CAAC,CAAA;AAEhF,EAAA,IAAI,CAACD,mBAAmB,GAAGgC,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACC,mBAAmB,CAACC,IAAI,CAAC,CAAC,CAAA;AAE7E,EAAA,IAAI,CAACC,qBAAqB,GAAG8B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACG,qBAAqB,CAACD,IAAI,CAAC,CAAC,CAAA;AAEjF,EAAA,IAAI,CAACI,sBAAsB,GAAG2B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACM,sBAAsB,CAACJ,IAAI,CAAC,CAAC,CAAA;AAEnF,EAAA,IAAI,CAACK,8BAA8B,GAAG0B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACO,8BAA8B,CAACL,IAAI,CAAC,CAAC,CAAA;AACrG;;;;"}
|
|
1
|
+
{"version":3,"file":"index.cjs","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 useEffect(() => {\n function handleKey(event) {\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\">{props.children}</div>\n <div class=\"fjs-pgl-modal-footer\">\n <button type=\"button\" class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={props.onClose}>\n Close\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\nexport function EmbedModal(props) {\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>\n Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:\n </p>\n\n <textarea spellCheck=\"false\" ref={fieldRef}>\n {snippet}\n </textarea>\n </Modal>\n );\n}\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}\n","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();\n","import { autocompletion } from '@codemirror/autocomplete';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\n return [\n autocompletion({\n override: [completions],\n }),\n ];\n}\n\nfunction completions(context) {\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}\n","import mitt from 'mitt';\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } 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';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\nimport { classes as domClasses } from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-cm-no-lint';\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const { contentAttributes = {}, placeholder: editorPlaceholder, readonly = false } = options;\n const emitter = mitt();\n\n const languageCompartment = new Compartment().of(json());\n const tabSizeCompartment = new Compartment().of(EditorState.tabSize.of(2));\n const autocompletionConfCompartment = new Compartment();\n const placeholderLinterExtension = createPlaceholderLinterExtension();\n\n let container = null;\n\n function createState(doc, variables = []) {\n const extensions = [\n basicSetup,\n languageCompartment,\n tabSizeCompartment,\n lintGutter(),\n linter(jsonParseLinter()),\n placeholderLinterExtension,\n autocompletionConfCompartment.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([indentWithTab]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n EditorState.readOnly.of(readonly),\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n emitter.emit('changed', { value: update.state.doc.toString() });\n }\n }),\n EditorView.contentAttributes.of(contentAttributes),\n ];\n\n return EditorState.create({ doc, extensions });\n }\n\n const view = new EditorView({\n state: createState(''),\n });\n\n this.setValue = function (newValue) {\n const oldValue = view.state.doc.toString();\n\n const diff = findDiff(oldValue, newValue);\n\n if (diff) {\n view.dispatch({\n changes: { from: diff.start, to: diff.end, insert: diff.text },\n selection: { anchor: diff.start + diff.text.length },\n });\n }\n };\n\n this.getValue = function () {\n return view.state.doc.toString();\n };\n\n this.setVariables = function (variables) {\n view.dispatch({ effects: autocompletionConfCompartment.reconfigure(variablesFacet.of(variables)) });\n };\n\n this.getView = function () {\n return view;\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 = _container;\n container.appendChild(view.dom);\n domClasses(container, document.body).add('fjs-json-editor');\n };\n\n this.destroy = function () {\n if (container && view.dom) {\n container.removeChild(view.dom);\n domClasses(container, document.body).remove('fjs-json-editor');\n }\n view.destroy();\n };\n\n function createPlaceholderLinterExtension() {\n return linter((view) => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n if (placeholders.length > 0) {\n domClasses(container, document.body).add(NO_LINT_CLS);\n } else {\n domClasses(container, document.body).remove(NO_LINT_CLS);\n }\n return [];\n });\n }\n}\n\nfunction findDiff(oldStr, newStr) {\n if (oldStr === newStr) {\n return null;\n }\n\n oldStr = oldStr || '';\n newStr = newStr || '';\n\n let minLength = Math.min(oldStr.length, newStr.length);\n let start = 0;\n\n while (start < minLength && oldStr[start] === newStr[start]) {\n start++;\n }\n\n if (start === minLength) {\n return {\n start: start,\n text: newStr.slice(start),\n end: oldStr.length,\n };\n }\n\n let endOld = oldStr.length;\n let endNew = newStr.length;\n\n while (endOld > start && endNew > start && oldStr[endOld - 1] === newStr[endNew - 1]) {\n endOld--;\n endNew--;\n }\n\n return {\n start: start,\n text: newStr.slice(start, endNew),\n end: endOld,\n };\n}\n","export function Section(props) {\n const elements = Array.isArray(props.children) ? props.children : [props.children];\n\n const { headerItems, children } = elements.reduce(\n (_, child) => {\n const bucket = child.type === Section.HeaderItem ? _.headerItems : _.children;\n\n bucket.push(child);\n\n return _;\n },\n { headerItems: [], children: [] },\n );\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">\n {props.name} {headerItems.length ? <span class=\"header-items\">{headerItems}</span> : null}\n </h1>\n <div class=\"body\">{children}</div>\n </div>\n );\n}\n\nSection.HeaderItem = function (props) {\n return props.children;\n};\n","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\nimport { isFunction } from 'min-dash';\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport { Form, getSchemaVariables } from '@bpmn-io/form-js-viewer';\n\nimport { FormEditor } from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\nexport function PlaygroundRoot(config) {\n const {\n additionalModules, // goes into both editor + viewer\n actions: actionsConfig,\n emit,\n exporter: exporterConfig,\n viewerProperties,\n editorProperties,\n viewerAdditionalModules,\n editorAdditionalModules,\n propertiesPanel: propertiesPanelConfig,\n apiLinkTarget,\n onInit,\n } = config;\n\n const { display: displayActions = true } = actionsConfig || {};\n\n const editorContainerRef = useRef();\n const paletteContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n const viewerContainerRef = useRef();\n const inputDataContainerRef = useRef();\n const outputDataContainerRef = useRef();\n\n const formEditorRef = useRef();\n const formViewerRef = useRef();\n const inputDataRef = useRef();\n const outputDataRef = useRef();\n\n const [showEmbed, setShowEmbed] = useState(false);\n const [schema, setSchema] = useState();\n const [data, setData] = useState();\n\n const load = useCallback((schema, data) => {\n formEditorRef.current.importSchema(schema, data);\n inputDataRef.current.setValue(toString(data));\n setSchema(schema);\n setData(data);\n }, []);\n\n // initialize and link the editors\n useEffect(() => {\n const inputDataEditor = (inputDataRef.current = new JSONEditor({\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder(),\n }));\n\n const outputDataEditor = (outputDataRef.current = new JSONEditor({\n readonly: true,\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 },\n }));\n\n const formViewer = (formViewerRef.current = new Form({\n container: viewerContainerRef.current,\n additionalModules: [...(additionalModules || []), ...(viewerAdditionalModules || [])],\n properties: {\n ...(viewerProperties || {}),\n ariaLabel: 'Form Preview',\n },\n }));\n\n const formEditor = (formEditorRef.current = new FormEditor({\n container: editorContainerRef.current,\n renderer: {\n compact: true,\n },\n palette: {\n parent: paletteContainerRef.current,\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...(propertiesPanelConfig || {}),\n },\n exporter: exporterConfig,\n properties: {\n ...(editorProperties || {}),\n ariaLabel: 'Form Definition',\n },\n additionalModules: [...(additionalModules || []), ...(editorAdditionalModules || [])],\n }));\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([initialDemoData, id].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n inputDataRef.current.setValue(toString(newData));\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n });\n\n inputDataEditor.on('changed', (event) => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n inputDataEditor.attachTo(inputDataContainerRef.current);\n outputDataEditor.attachTo(outputDataContainerRef.current);\n\n return () => {\n inputDataEditor.destroy();\n outputDataEditor.destroy();\n formViewer.destroy();\n formEditor.destroy();\n };\n }, [\n additionalModules,\n editorAdditionalModules,\n editorProperties,\n emit,\n exporterConfig,\n propertiesPanelConfig,\n viewerAdditionalModules,\n viewerProperties,\n ]);\n\n // initialize data through props\n useEffect(() => {\n if (!config.initialSchema) {\n return;\n }\n\n load(config.initialSchema, config.initialData || {});\n }, [config.initialSchema, config.initialData, load]);\n\n useEffect(() => {\n schema && formViewerRef.current.importSchema(schema, data);\n }, [schema, data]);\n\n useEffect(() => {\n if (schema && inputDataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n inputDataRef.current.setVariables(variables);\n }\n }, [schema]);\n\n // exposes api to parent\n useEffect(() => {\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api = {\n attachDataContainer: (node) => inputDataRef.current.attachTo(node),\n attachResultContainer: (node) => outputDataRef.current.attachTo(node),\n attachFormContainer: (node) => formViewerRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachPaletteContainer: (node) => formEditorRef.current.get('palette').attachTo(node),\n attachPropertiesPanelContainer: (node) => formEditorRef.current.get('propertiesPanel').attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => inputDataRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formViewerRef.current,\n getResultView: () => outputDataRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n saveSchema: () => formEditorRef.current.saveSchema(),\n setSchema: setSchema,\n setData: setData,\n };\n\n onInit();\n }, [apiLinkTarget, onInit]);\n\n // separate effect for state to avoid re-creating the api object every time\n useEffect(() => {\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api.getState = () => ({ schema, data });\n apiLinkTarget.api.load = load;\n }, [apiLinkTarget, schema, data, load]);\n\n const handleDownload = useCallback(() => {\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('fjs-container', 'fjs-pgl-root')}>\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 <Section name=\"Form Definition\">\n {displayActions && (\n <Section.HeaderItem>\n <button type=\"button\" class=\"fjs-pgl-button\" title=\"Download form definition\" onClick={handleDownload}>\n Download\n </button>\n </Section.HeaderItem>\n )}\n\n {displayActions && (\n <Section.HeaderItem>\n <button type=\"button\" class=\"fjs-pgl-button\" onClick={showEmbedModal}>\n Embed\n </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={viewerContainerRef} class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={inputDataContainerRef} class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={outputDataContainerRef} 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// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\n element.innerHTML =\n 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\n}\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 { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nfunction Playground(options) {\n const { container: parent, schema: initialSchema, data: initialData, ...rest } = options;\n\n const emitter = mitt();\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 this.api.setSchema(JSON.parse(file.contents));\n } catch (err) {\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const safe = function (fn) {\n return function (...args) {\n if (!this.api) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function () {\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n initialSchema={initialSchema}\n initialData={initialData}\n emit={emitter.emit}\n apiLinkTarget={this}\n onInit={onInit}\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', () => {\n render(null, container);\n parent.removeChild(container);\n });\n\n this.destroy = () => this.emit('destroy');\n\n this.getState = safe(() => this.api.getState());\n\n this.getSchema = safe(() => this.api.getSchema());\n\n this.setSchema = safe((schema) => this.api.setSchema(schema));\n\n this.saveSchema = safe(() => this.api.saveSchema());\n\n this.get = safe((name, strict) => this.api.get(name, strict));\n\n this.getDataEditor = safe(() => this.api.getDataEditor());\n\n this.getEditor = safe(() => this.api.getEditor());\n\n this.getForm = safe((name, strict) => this.api.getForm(name, strict));\n\n this.getResultView = safe(() => this.api.getResultView());\n\n this.attachEditorContainer = safe((node) => this.api.attachEditorContainer(node));\n\n this.attachPreviewContainer = safe((node) => this.api.attachFormContainer(node));\n\n this.attachDataContainer = safe((node) => this.api.attachDataContainer(node));\n\n this.attachResultContainer = safe((node) => this.api.attachResultContainer(node));\n\n this.attachPaletteContainer = safe((node) => this.api.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = safe((node) => this.api.attachPropertiesPanelContainer(node));\n}\n\nexport { Playground };\n"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","type","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","doc","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","view","setValue","newValue","oldValue","diff","findDiff","dispatch","changes","start","end","insert","text","selection","anchor","length","getValue","setVariables","effects","reconfigure","getView","on","off","attachTo","_container","appendChild","dom","domClasses","body","add","destroy","removeChild","remove","placeholders","querySelectorAll","oldStr","newStr","minLength","Math","min","slice","endOld","endNew","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","config","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","apiLinkTarget","onInit","display","displayActions","editorContainerRef","paletteContainerRef","propertiesPanelContainerRef","viewerContainerRef","inputDataContainerRef","outputDataContainerRef","formEditorRef","formViewerRef","inputDataRef","outputDataRef","showEmbed","setShowEmbed","useState","setSchema","setData","load","useCallback","importSchema","inputDataEditor","tabIndex","createDataEditorPlaceholder","outputDataEditor","formViewer","Form","properties","ariaLabel","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","get","generateInitialDemoData","id","isFunction","initialDemoData","includes","undefined","currentData","newData","getSchema","submitData","_getSubmitData","parse","error","initialSchema","initialData","getSchemaVariables","api","attachDataContainer","node","attachResultContainer","attachFormContainer","attachEditorContainer","attachPaletteContainer","attachPropertiesPanelContainer","strict","getDataEditor","getEditor","getForm","getResultView","saveSchema","getState","handleDownload","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","safe","fn","args","Error","render","attachPreviewContainer"],"mappings":"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"}
|
package/dist/index.es.js
CHANGED
|
@@ -356,7 +356,7 @@ function PlaygroundRoot(config) {
|
|
|
356
356
|
additionalModules: [...(additionalModules || []), ...(viewerAdditionalModules || [])],
|
|
357
357
|
properties: {
|
|
358
358
|
...(viewerProperties || {}),
|
|
359
|
-
|
|
359
|
+
ariaLabel: 'Form Preview'
|
|
360
360
|
}
|
|
361
361
|
});
|
|
362
362
|
const formEditor = formEditorRef.current = new FormEditor({
|
|
@@ -374,7 +374,7 @@ function PlaygroundRoot(config) {
|
|
|
374
374
|
exporter: exporterConfig,
|
|
375
375
|
properties: {
|
|
376
376
|
...(editorProperties || {}),
|
|
377
|
-
|
|
377
|
+
ariaLabel: 'Form Definition'
|
|
378
378
|
},
|
|
379
379
|
additionalModules: [...(additionalModules || []), ...(editorAdditionalModules || [])]
|
|
380
380
|
});
|
|
@@ -591,7 +591,6 @@ function Playground(options) {
|
|
|
591
591
|
try {
|
|
592
592
|
this.api.setSchema(JSON.parse(file.contents));
|
|
593
593
|
} catch (err) {
|
|
594
|
-
|
|
595
594
|
// TODO(nikku): indicate JSON parse error
|
|
596
595
|
}
|
|
597
596
|
}
|
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 type=\"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';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\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';\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } 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';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\nimport { classes as domClasses } from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-cm-no-lint';\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const { contentAttributes = {}, placeholder: editorPlaceholder, readonly = false } = options;\n const emitter = mitt();\n\n const languageCompartment = new Compartment().of(json());\n const tabSizeCompartment = new Compartment().of(EditorState.tabSize.of(2));\n const autocompletionConfCompartment = new Compartment();\n const placeholderLinterExtension = createPlaceholderLinterExtension();\n\n let container = null;\n\n function createState(doc, variables = []) {\n const extensions = [\n basicSetup,\n languageCompartment,\n tabSizeCompartment,\n lintGutter(),\n linter(jsonParseLinter()),\n placeholderLinterExtension,\n autocompletionConfCompartment.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([ indentWithTab ]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n EditorState.readOnly.of(readonly),\n EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', { value: update.state.doc.toString() });\n }\n }),\n EditorView.contentAttributes.of(contentAttributes)\n ];\n\n return EditorState.create({ doc, extensions });\n }\n\n const view = new EditorView({\n state: createState('')\n });\n\n this.setValue = function(newValue) {\n const oldValue = view.state.doc.toString();\n\n const diff = findDiff(oldValue, newValue);\n\n if (diff) {\n view.dispatch({\n changes: { from: diff.start, to: diff.end, insert: diff.text },\n selection: { anchor: diff.start + diff.text.length }\n });\n }\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n this.setVariables = function(variables) {\n view.dispatch({ effects: autocompletionConfCompartment.reconfigure(variablesFacet.of(variables)) });\n };\n\n this.getView = function() {\n return view;\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 = _container;\n container.appendChild(view.dom);\n domClasses(container, document.body).add('fjs-json-editor');\n };\n\n this.destroy = function() {\n if (container && view.dom) {\n container.removeChild(view.dom);\n domClasses(container, document.body).remove('fjs-json-editor');\n }\n view.destroy();\n };\n\n function createPlaceholderLinterExtension() {\n return linter(view => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n if (placeholders.length > 0) {\n domClasses(container, document.body).add(NO_LINT_CLS);\n } else {\n domClasses(container, document.body).remove(NO_LINT_CLS);\n }\n return [];\n });\n }\n}\n\nfunction findDiff(oldStr, newStr) {\n\n if (oldStr === newStr) {\n return null;\n }\n\n oldStr = oldStr || '';\n newStr = newStr || '';\n\n let minLength = Math.min(oldStr.length, newStr.length);\n let start = 0;\n\n while (start < minLength && oldStr[start] === newStr[start]) {\n start++;\n }\n\n if (start === minLength) {\n return {\n start: start,\n text: newStr.slice(start),\n end: oldStr.length\n };\n }\n\n let endOld = oldStr.length;\n let endNew = newStr.length;\n\n while (endOld > start && endNew > start && oldStr[endOld - 1] === newStr[endNew - 1]) {\n endOld--;\n endNew--;\n }\n\n return {\n start: start,\n text: newStr.slice(start, endNew),\n end: endOld\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';\nimport { isFunction } from 'min-dash';\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\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\nexport function PlaygroundRoot(config) {\n\n const {\n additionalModules, // goes into both editor + viewer\n actions: actionsConfig,\n emit,\n exporter: exporterConfig,\n viewerProperties,\n editorProperties,\n viewerAdditionalModules,\n editorAdditionalModules,\n propertiesPanel: propertiesPanelConfig,\n apiLinkTarget,\n onInit\n } = config;\n\n const {\n display: displayActions = true\n } = actionsConfig || {};\n\n const editorContainerRef = useRef();\n const paletteContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n const viewerContainerRef = useRef();\n const inputDataContainerRef = useRef();\n const outputDataContainerRef = useRef();\n\n const formEditorRef = useRef();\n const formViewerRef = useRef();\n const inputDataRef = useRef();\n const outputDataRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n const [ schema, setSchema ] = useState();\n const [ data, setData ] = useState();\n\n const load = useCallback((schema, data) => {\n formEditorRef.current.importSchema(schema, data);\n inputDataRef.current.setValue(toString(data));\n setSchema(schema);\n setData(data);\n }, []);\n\n // initialize and link the editors\n useEffect(() => {\n const inputDataEditor = inputDataRef.current = new JSONEditor({\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder()\n });\n\n const outputDataEditor = outputDataRef.current = new JSONEditor({\n readonly: true,\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 }\n });\n\n const formViewer = formViewerRef.current = new Form({\n container: viewerContainerRef.current,\n additionalModules: [\n ...(additionalModules || []),\n ...(viewerAdditionalModules || [])\n ],\n properties: {\n ...(viewerProperties || {}),\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n container: editorContainerRef.current,\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...(propertiesPanelConfig || {})\n },\n exporter: exporterConfig,\n properties: {\n ...(editorProperties || {}),\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: [\n ...(additionalModules || []),\n ...(editorAdditionalModules || [])\n ]\n });\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([ initialDemoData, id ].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n inputDataRef.current.setValue(\n toString(newData)\n );\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n });\n\n inputDataEditor.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 inputDataEditor.attachTo(inputDataContainerRef.current);\n outputDataEditor.attachTo(outputDataContainerRef.current);\n\n return () => {\n inputDataEditor.destroy();\n outputDataEditor.destroy();\n formViewer.destroy();\n formEditor.destroy();\n };\n }, [ additionalModules, editorAdditionalModules, editorProperties, emit, exporterConfig, propertiesPanelConfig, viewerAdditionalModules, viewerProperties ]);\n\n // initialize data through props\n useEffect(() => {\n if (!config.initialSchema) {\n return;\n }\n\n load(config.initialSchema, config.initialData || {});\n }, [ config.initialSchema, config.initialData, load ]);\n\n useEffect(() => {\n schema && formViewerRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n if (schema && inputDataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n inputDataRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n // exposes api to parent\n useEffect(() => {\n\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api = {\n attachDataContainer: (node) => inputDataRef.current.attachTo(node),\n attachResultContainer: (node) => outputDataRef.current.attachTo(node),\n attachFormContainer: (node) => formViewerRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachPaletteContainer: (node) => formEditorRef.current.get('palette').attachTo(node),\n attachPropertiesPanelContainer: (node) => formEditorRef.current.get('propertiesPanel').attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => inputDataRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formViewerRef.current,\n getResultView: () => outputDataRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n saveSchema: () => formEditorRef.current.saveSchema(),\n setSchema: setSchema,\n setData: setData\n };\n\n onInit();\n\n }, [ apiLinkTarget, onInit ]);\n\n // separate effect for state to avoid re-creating the api object every time\n useEffect(() => {\n\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api.getState = () => ({ schema, data });\n apiLinkTarget.api.load = load;\n\n }, [ apiLinkTarget, schema, data, load ]);\n\n const handleDownload = useCallback(() => {\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 type=\"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 type=\"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={ viewerContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ inputDataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ outputDataContainerRef } 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}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\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' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\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 { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nfunction Playground(options) {\n\n const {\n container: parent,\n schema: initialSchema,\n data: initialData,\n ...rest\n } = options;\n\n const emitter = mitt();\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 this.api.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const safe = function(fn) {\n return function(...args) {\n if (!this.api) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function() {\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n initialSchema={ initialSchema }\n initialData={ initialData }\n emit={ emitter.emit }\n apiLinkTarget={ this }\n onInit={ onInit }\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', () => {\n render(null, container);\n parent.removeChild(container);\n });\n\n this.destroy = () => this.emit('destroy');\n\n this.getState = safe(() => this.api.getState());\n\n this.getSchema = safe(() => this.api.getSchema());\n\n this.setSchema = safe((schema) => this.api.setSchema(schema));\n\n this.saveSchema = safe(() => this.api.saveSchema());\n\n this.get = safe((name, strict) => this.api.get(name, strict));\n\n this.getDataEditor = safe(() => this.api.getDataEditor());\n\n this.getEditor = safe(() => this.api.getEditor());\n\n this.getForm = safe((name, strict) => this.api.getForm(name, strict));\n\n this.getResultView = safe(() => this.api.getResultView());\n\n this.attachEditorContainer = safe((node) => this.api.attachEditorContainer(node));\n\n this.attachPreviewContainer = safe((node) => this.api.attachFormContainer(node));\n\n this.attachDataContainer = safe((node) => this.api.attachDataContainer(node));\n\n this.attachResultContainer = safe((node) => this.api.attachResultContainer(node));\n\n this.attachPaletteContainer = safe((node) => this.api.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = safe((node) => this.api.attachPropertiesPanelContainer(node));\n}\n\nexport { Playground };"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","type","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","doc","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","view","setValue","newValue","oldValue","diff","findDiff","dispatch","changes","start","end","insert","text","selection","anchor","length","getValue","setVariables","effects","reconfigure","getView","on","off","attachTo","_container","appendChild","dom","domClasses","body","add","destroy","removeChild","remove","placeholders","querySelectorAll","oldStr","newStr","minLength","Math","min","slice","endOld","endNew","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","config","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","apiLinkTarget","onInit","display","displayActions","editorContainerRef","paletteContainerRef","propertiesPanelContainerRef","viewerContainerRef","inputDataContainerRef","outputDataContainerRef","formEditorRef","formViewerRef","inputDataRef","outputDataRef","showEmbed","setShowEmbed","useState","setSchema","setData","load","useCallback","importSchema","inputDataEditor","tabIndex","createDataEditorPlaceholder","outputDataEditor","formViewer","Form","properties","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","get","generateInitialDemoData","id","isFunction","initialDemoData","includes","undefined","currentData","newData","getSchema","submitData","_getSubmitData","parse","error","initialSchema","initialData","getSchemaVariables","api","attachDataContainer","node","attachResultContainer","attachFormContainer","attachEditorContainer","attachPaletteContainer","attachPropertiesPanelContainer","strict","getDataEditor","getEditor","getForm","getResultView","saveSchema","getState","handleDownload","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","safe","fn","args","Error","render","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';\n\nexport function Modal(props) {\n useEffect(() => {\n function handleKey(event) {\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\">{props.children}</div>\n <div class=\"fjs-pgl-modal-footer\">\n <button type=\"button\" class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={props.onClose}>\n Close\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\nexport function EmbedModal(props) {\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>\n Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:\n </p>\n\n <textarea spellCheck=\"false\" ref={fieldRef}>\n {snippet}\n </textarea>\n </Modal>\n );\n}\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}\n","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();\n","import { autocompletion } from '@codemirror/autocomplete';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\n return [\n autocompletion({\n override: [completions],\n }),\n ];\n}\n\nfunction completions(context) {\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}\n","import mitt from 'mitt';\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } 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';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\nimport { classes as domClasses } from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-cm-no-lint';\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const { contentAttributes = {}, placeholder: editorPlaceholder, readonly = false } = options;\n const emitter = mitt();\n\n const languageCompartment = new Compartment().of(json());\n const tabSizeCompartment = new Compartment().of(EditorState.tabSize.of(2));\n const autocompletionConfCompartment = new Compartment();\n const placeholderLinterExtension = createPlaceholderLinterExtension();\n\n let container = null;\n\n function createState(doc, variables = []) {\n const extensions = [\n basicSetup,\n languageCompartment,\n tabSizeCompartment,\n lintGutter(),\n linter(jsonParseLinter()),\n placeholderLinterExtension,\n autocompletionConfCompartment.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([indentWithTab]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n EditorState.readOnly.of(readonly),\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n emitter.emit('changed', { value: update.state.doc.toString() });\n }\n }),\n EditorView.contentAttributes.of(contentAttributes),\n ];\n\n return EditorState.create({ doc, extensions });\n }\n\n const view = new EditorView({\n state: createState(''),\n });\n\n this.setValue = function (newValue) {\n const oldValue = view.state.doc.toString();\n\n const diff = findDiff(oldValue, newValue);\n\n if (diff) {\n view.dispatch({\n changes: { from: diff.start, to: diff.end, insert: diff.text },\n selection: { anchor: diff.start + diff.text.length },\n });\n }\n };\n\n this.getValue = function () {\n return view.state.doc.toString();\n };\n\n this.setVariables = function (variables) {\n view.dispatch({ effects: autocompletionConfCompartment.reconfigure(variablesFacet.of(variables)) });\n };\n\n this.getView = function () {\n return view;\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 = _container;\n container.appendChild(view.dom);\n domClasses(container, document.body).add('fjs-json-editor');\n };\n\n this.destroy = function () {\n if (container && view.dom) {\n container.removeChild(view.dom);\n domClasses(container, document.body).remove('fjs-json-editor');\n }\n view.destroy();\n };\n\n function createPlaceholderLinterExtension() {\n return linter((view) => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n if (placeholders.length > 0) {\n domClasses(container, document.body).add(NO_LINT_CLS);\n } else {\n domClasses(container, document.body).remove(NO_LINT_CLS);\n }\n return [];\n });\n }\n}\n\nfunction findDiff(oldStr, newStr) {\n if (oldStr === newStr) {\n return null;\n }\n\n oldStr = oldStr || '';\n newStr = newStr || '';\n\n let minLength = Math.min(oldStr.length, newStr.length);\n let start = 0;\n\n while (start < minLength && oldStr[start] === newStr[start]) {\n start++;\n }\n\n if (start === minLength) {\n return {\n start: start,\n text: newStr.slice(start),\n end: oldStr.length,\n };\n }\n\n let endOld = oldStr.length;\n let endNew = newStr.length;\n\n while (endOld > start && endNew > start && oldStr[endOld - 1] === newStr[endNew - 1]) {\n endOld--;\n endNew--;\n }\n\n return {\n start: start,\n text: newStr.slice(start, endNew),\n end: endOld,\n };\n}\n","export function Section(props) {\n const elements = Array.isArray(props.children) ? props.children : [props.children];\n\n const { headerItems, children } = elements.reduce(\n (_, child) => {\n const bucket = child.type === Section.HeaderItem ? _.headerItems : _.children;\n\n bucket.push(child);\n\n return _;\n },\n { headerItems: [], children: [] },\n );\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">\n {props.name} {headerItems.length ? <span class=\"header-items\">{headerItems}</span> : null}\n </h1>\n <div class=\"body\">{children}</div>\n </div>\n );\n}\n\nSection.HeaderItem = function (props) {\n return props.children;\n};\n","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\nimport { isFunction } from 'min-dash';\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport { Form, getSchemaVariables } from '@bpmn-io/form-js-viewer';\n\nimport { FormEditor } from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\nexport function PlaygroundRoot(config) {\n const {\n additionalModules, // goes into both editor + viewer\n actions: actionsConfig,\n emit,\n exporter: exporterConfig,\n viewerProperties,\n editorProperties,\n viewerAdditionalModules,\n editorAdditionalModules,\n propertiesPanel: propertiesPanelConfig,\n apiLinkTarget,\n onInit,\n } = config;\n\n const { display: displayActions = true } = actionsConfig || {};\n\n const editorContainerRef = useRef();\n const paletteContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n const viewerContainerRef = useRef();\n const inputDataContainerRef = useRef();\n const outputDataContainerRef = useRef();\n\n const formEditorRef = useRef();\n const formViewerRef = useRef();\n const inputDataRef = useRef();\n const outputDataRef = useRef();\n\n const [showEmbed, setShowEmbed] = useState(false);\n const [schema, setSchema] = useState();\n const [data, setData] = useState();\n\n const load = useCallback((schema, data) => {\n formEditorRef.current.importSchema(schema, data);\n inputDataRef.current.setValue(toString(data));\n setSchema(schema);\n setData(data);\n }, []);\n\n // initialize and link the editors\n useEffect(() => {\n const inputDataEditor = (inputDataRef.current = new JSONEditor({\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder(),\n }));\n\n const outputDataEditor = (outputDataRef.current = new JSONEditor({\n readonly: true,\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 },\n }));\n\n const formViewer = (formViewerRef.current = new Form({\n container: viewerContainerRef.current,\n additionalModules: [...(additionalModules || []), ...(viewerAdditionalModules || [])],\n properties: {\n ...(viewerProperties || {}),\n ariaLabel: 'Form Preview',\n },\n }));\n\n const formEditor = (formEditorRef.current = new FormEditor({\n container: editorContainerRef.current,\n renderer: {\n compact: true,\n },\n palette: {\n parent: paletteContainerRef.current,\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...(propertiesPanelConfig || {}),\n },\n exporter: exporterConfig,\n properties: {\n ...(editorProperties || {}),\n ariaLabel: 'Form Definition',\n },\n additionalModules: [...(additionalModules || []), ...(editorAdditionalModules || [])],\n }));\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([initialDemoData, id].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n inputDataRef.current.setValue(toString(newData));\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n });\n\n inputDataEditor.on('changed', (event) => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n inputDataEditor.attachTo(inputDataContainerRef.current);\n outputDataEditor.attachTo(outputDataContainerRef.current);\n\n return () => {\n inputDataEditor.destroy();\n outputDataEditor.destroy();\n formViewer.destroy();\n formEditor.destroy();\n };\n }, [\n additionalModules,\n editorAdditionalModules,\n editorProperties,\n emit,\n exporterConfig,\n propertiesPanelConfig,\n viewerAdditionalModules,\n viewerProperties,\n ]);\n\n // initialize data through props\n useEffect(() => {\n if (!config.initialSchema) {\n return;\n }\n\n load(config.initialSchema, config.initialData || {});\n }, [config.initialSchema, config.initialData, load]);\n\n useEffect(() => {\n schema && formViewerRef.current.importSchema(schema, data);\n }, [schema, data]);\n\n useEffect(() => {\n if (schema && inputDataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n inputDataRef.current.setVariables(variables);\n }\n }, [schema]);\n\n // exposes api to parent\n useEffect(() => {\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api = {\n attachDataContainer: (node) => inputDataRef.current.attachTo(node),\n attachResultContainer: (node) => outputDataRef.current.attachTo(node),\n attachFormContainer: (node) => formViewerRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachPaletteContainer: (node) => formEditorRef.current.get('palette').attachTo(node),\n attachPropertiesPanelContainer: (node) => formEditorRef.current.get('propertiesPanel').attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => inputDataRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formViewerRef.current,\n getResultView: () => outputDataRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n saveSchema: () => formEditorRef.current.saveSchema(),\n setSchema: setSchema,\n setData: setData,\n };\n\n onInit();\n }, [apiLinkTarget, onInit]);\n\n // separate effect for state to avoid re-creating the api object every time\n useEffect(() => {\n if (!apiLinkTarget) {\n return;\n }\n\n apiLinkTarget.api.getState = () => ({ schema, data });\n apiLinkTarget.api.load = load;\n }, [apiLinkTarget, schema, data, load]);\n\n const handleDownload = useCallback(() => {\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('fjs-container', 'fjs-pgl-root')}>\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 <Section name=\"Form Definition\">\n {displayActions && (\n <Section.HeaderItem>\n <button type=\"button\" class=\"fjs-pgl-button\" title=\"Download form definition\" onClick={handleDownload}>\n Download\n </button>\n </Section.HeaderItem>\n )}\n\n {displayActions && (\n <Section.HeaderItem>\n <button type=\"button\" class=\"fjs-pgl-button\" onClick={showEmbedModal}>\n Embed\n </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={viewerContainerRef} class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={inputDataContainerRef} class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={outputDataContainerRef} 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// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\n element.innerHTML =\n 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\n}\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 { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nfunction Playground(options) {\n const { container: parent, schema: initialSchema, data: initialData, ...rest } = options;\n\n const emitter = mitt();\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 this.api.setSchema(JSON.parse(file.contents));\n } catch (err) {\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const safe = function (fn) {\n return function (...args) {\n if (!this.api) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function () {\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n initialSchema={initialSchema}\n initialData={initialData}\n emit={emitter.emit}\n apiLinkTarget={this}\n onInit={onInit}\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', () => {\n render(null, container);\n parent.removeChild(container);\n });\n\n this.destroy = () => this.emit('destroy');\n\n this.getState = safe(() => this.api.getState());\n\n this.getSchema = safe(() => this.api.getSchema());\n\n this.setSchema = safe((schema) => this.api.setSchema(schema));\n\n this.saveSchema = safe(() => this.api.saveSchema());\n\n this.get = safe((name, strict) => this.api.get(name, strict));\n\n this.getDataEditor = safe(() => this.api.getDataEditor());\n\n this.getEditor = safe(() => this.api.getEditor());\n\n this.getForm = safe((name, strict) => this.api.getForm(name, strict));\n\n this.getResultView = safe(() => this.api.getResultView());\n\n this.attachEditorContainer = safe((node) => this.api.attachEditorContainer(node));\n\n this.attachPreviewContainer = safe((node) => this.api.attachFormContainer(node));\n\n this.attachDataContainer = safe((node) => this.api.attachDataContainer(node));\n\n this.attachResultContainer = safe((node) => this.api.attachResultContainer(node));\n\n this.attachPaletteContainer = safe((node) => this.api.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = safe((node) => this.api.attachPropertiesPanelContainer(node));\n}\n\nexport { Playground };\n"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","type","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","doc","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","view","setValue","newValue","oldValue","diff","findDiff","dispatch","changes","start","end","insert","text","selection","anchor","length","getValue","setVariables","effects","reconfigure","getView","on","off","attachTo","_container","appendChild","dom","domClasses","body","add","destroy","removeChild","remove","placeholders","querySelectorAll","oldStr","newStr","minLength","Math","min","slice","endOld","endNew","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","config","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","apiLinkTarget","onInit","display","displayActions","editorContainerRef","paletteContainerRef","propertiesPanelContainerRef","viewerContainerRef","inputDataContainerRef","outputDataContainerRef","formEditorRef","formViewerRef","inputDataRef","outputDataRef","showEmbed","setShowEmbed","useState","setSchema","setData","load","useCallback","importSchema","inputDataEditor","tabIndex","createDataEditorPlaceholder","outputDataEditor","formViewer","Form","properties","ariaLabel","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","get","generateInitialDemoData","id","isFunction","initialDemoData","includes","undefined","currentData","newData","getSchema","submitData","_getSubmitData","parse","error","initialSchema","initialData","getSchemaVariables","api","attachDataContainer","node","attachResultContainer","attachFormContainer","attachEditorContainer","attachPaletteContainer","attachPropertiesPanelContainer","strict","getDataEditor","getEditor","getForm","getResultView","saveSchema","getState","handleDownload","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","safe","fn","args","Error","render","attachPreviewContainer"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bpmn-io/form-js-playground",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.4",
|
|
4
4
|
"description": "A form-js playground",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"url": "https://github.com/bpmn-io"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@bpmn-io/form-js-editor": "^1.8.
|
|
49
|
-
"@bpmn-io/form-js-viewer": "^1.8.
|
|
48
|
+
"@bpmn-io/form-js-editor": "^1.8.4",
|
|
49
|
+
"@bpmn-io/form-js-viewer": "^1.8.4",
|
|
50
50
|
"@codemirror/autocomplete": "^6.12.0",
|
|
51
51
|
"@codemirror/commands": "^6.1.2",
|
|
52
52
|
"@codemirror/lang-json": "^6.0.1",
|
|
@@ -65,11 +65,11 @@
|
|
|
65
65
|
"*.css"
|
|
66
66
|
],
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"css-loader": "^
|
|
68
|
+
"css-loader": "^7.0.0",
|
|
69
69
|
"min-dash": "^4.2.1",
|
|
70
70
|
"min-dom": "^5.0.0",
|
|
71
71
|
"rollup-plugin-css-only": "^4.0.0",
|
|
72
|
-
"style-loader": "^
|
|
72
|
+
"style-loader": "^4.0.0"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "c9a4761209756fce5711053526023f42bf3b7b54"
|
|
75
75
|
}
|