@bpmn-io/form-js-playground 1.15.3 → 1.15.5

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.
@@ -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 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, '&lt;').replace(/>/g, '&gt;');\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\n/**\n * @param {import('@codemirror/autocomplete').CompletionContext} context\n */\nfunction completions(context) {\n const variables = context.state.facet(variablesFacet)[0];\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const objectOptions = variables.map((label) => ({\n displayLabel: `\"${label}\"`,\n label: `\"${label}\": `,\n type: 'variable',\n apply: (view, completion, from, to) => {\n const doc = view.state.doc;\n const beforeChar = doc.sliceString(from - 1, from);\n const line = doc.lineAt(from);\n const indentation = /^\\s*/.exec(line.text)[0];\n const baseInsert = completion.label;\n\n if (beforeChar === '{') {\n const insert = `\\n ${indentation}${baseInsert},\\n`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 2,\n },\n });\n } else if (beforeChar === ',') {\n const insert = `\\n${indentation}${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n } else {\n const insert = `${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n }\n },\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyNameOptions = variables.map((label) => ({\n label,\n type: 'variable',\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyValueOptions = [\n {\n label: 'true',\n type: 'constant keyword',\n boost: 3,\n },\n {\n label: 'false',\n type: 'constant keyword',\n boost: 2,\n },\n {\n label: 'null',\n type: 'constant keyword',\n boost: 1,\n },\n {\n displayLabel: '[ .. ]',\n label: '[ ]',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n {\n displayLabel: '{ .. }',\n label: '{ }',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n ];\n let finalOptions = [];\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n let word = context.matchBefore(/\\w*/);\n\n if (['Object', '{'].includes(nodeBefore.type.name)) {\n finalOptions = objectOptions;\n }\n\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n finalOptions = propertyNameOptions;\n }\n\n if (['Property', '[', 'Array'].includes(nodeBefore.type.name)) {\n finalOptions = propertyValueOptions;\n }\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options: finalOptions,\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 const updateOutputData = () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n };\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', updateOutputData);\n formViewer.on('formFieldInstance.added', updateOutputData);\n formViewer.on('formFieldInstance.removed', updateOutputData);\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","objectOptions","map","label","displayLabel","apply","view","completion","from","to","doc","beforeChar","sliceString","line","lineAt","indentation","exec","text","baseInsert","insert","dispatch","changes","selection","anchor","length","propertyNameOptions","propertyValueOptions","boost","finalOptions","nodeBefore","syntaxTree","resolve","pos","word","matchBefore","includes","explicit","options","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","setValue","newValue","oldValue","diff","findDiff","start","end","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","undefined","currentData","newData","getSchema","updateOutputData","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.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, '&lt;').replace(/>/g, '&gt;');\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\n/**\n * @param {import('@codemirror/autocomplete').CompletionContext} context\n */\nfunction completions(context) {\n const variables = context.state.facet(variablesFacet)[0];\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const objectOptions = variables.map((label) => ({\n displayLabel: `\"${label}\"`,\n label: `\"${label}\": `,\n type: 'variable',\n apply: (view, completion, from, to) => {\n const doc = view.state.doc;\n const beforeChar = doc.sliceString(from - 1, from);\n const line = doc.lineAt(from);\n const indentation = /^\\s*/.exec(line.text)[0];\n const baseInsert = completion.label;\n\n if (beforeChar === '{') {\n const insert = `\\n ${indentation}${baseInsert},\\n`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 2,\n },\n });\n } else if (beforeChar === ',') {\n const insert = `\\n${indentation}${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n } else {\n const insert = `${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n }\n },\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyNameOptions = variables.map((label) => ({\n label,\n type: 'variable',\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyValueOptions = [\n {\n label: 'true',\n type: 'constant keyword',\n boost: 3,\n },\n {\n label: 'false',\n type: 'constant keyword',\n boost: 2,\n },\n {\n label: 'null',\n type: 'constant keyword',\n boost: 1,\n },\n {\n displayLabel: '[ .. ]',\n label: '[ ]',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n {\n displayLabel: '{ .. }',\n label: '{ }',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n ];\n let finalOptions = [];\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n let word = context.matchBefore(/\\w*/);\n\n if (['Object', '{'].includes(nodeBefore.type.name)) {\n finalOptions = objectOptions;\n }\n\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n finalOptions = propertyNameOptions;\n }\n\n if (['Property', '[', 'Array'].includes(nodeBefore.type.name)) {\n finalOptions = propertyValueOptions;\n }\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options: finalOptions,\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 const updateOutputData = () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n };\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', updateOutputData);\n formViewer.on('formFieldInstance.added', updateOutputData);\n formViewer.on('formFieldInstance.removed', updateOutputData);\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","objectOptions","map","label","displayLabel","apply","view","completion","from","to","doc","beforeChar","sliceString","line","lineAt","indentation","exec","text","baseInsert","insert","dispatch","changes","selection","anchor","length","propertyNameOptions","propertyValueOptions","boost","finalOptions","nodeBefore","syntaxTree","resolve","pos","word","matchBefore","includes","explicit","options","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","setValue","newValue","oldValue","diff","findDiff","start","end","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","undefined","currentData","newData","getSchema","updateOutputData","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 +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 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, '&lt;').replace(/>/g, '&gt;');\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\n/**\n * @param {import('@codemirror/autocomplete').CompletionContext} context\n */\nfunction completions(context) {\n const variables = context.state.facet(variablesFacet)[0];\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const objectOptions = variables.map((label) => ({\n displayLabel: `\"${label}\"`,\n label: `\"${label}\": `,\n type: 'variable',\n apply: (view, completion, from, to) => {\n const doc = view.state.doc;\n const beforeChar = doc.sliceString(from - 1, from);\n const line = doc.lineAt(from);\n const indentation = /^\\s*/.exec(line.text)[0];\n const baseInsert = completion.label;\n\n if (beforeChar === '{') {\n const insert = `\\n ${indentation}${baseInsert},\\n`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 2,\n },\n });\n } else if (beforeChar === ',') {\n const insert = `\\n${indentation}${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n } else {\n const insert = `${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n }\n },\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyNameOptions = variables.map((label) => ({\n label,\n type: 'variable',\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyValueOptions = [\n {\n label: 'true',\n type: 'constant keyword',\n boost: 3,\n },\n {\n label: 'false',\n type: 'constant keyword',\n boost: 2,\n },\n {\n label: 'null',\n type: 'constant keyword',\n boost: 1,\n },\n {\n displayLabel: '[ .. ]',\n label: '[ ]',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n {\n displayLabel: '{ .. }',\n label: '{ }',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n ];\n let finalOptions = [];\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n let word = context.matchBefore(/\\w*/);\n\n if (['Object', '{'].includes(nodeBefore.type.name)) {\n finalOptions = objectOptions;\n }\n\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n finalOptions = propertyNameOptions;\n }\n\n if (['Property', '[', 'Array'].includes(nodeBefore.type.name)) {\n finalOptions = propertyValueOptions;\n }\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options: finalOptions,\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 const updateOutputData = () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n };\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', updateOutputData);\n formViewer.on('formFieldInstance.added', updateOutputData);\n formViewer.on('formFieldInstance.removed', updateOutputData);\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","objectOptions","map","label","displayLabel","apply","view","completion","from","to","doc","beforeChar","sliceString","line","lineAt","indentation","exec","text","baseInsert","insert","dispatch","changes","selection","anchor","length","propertyNameOptions","propertyValueOptions","boost","finalOptions","nodeBefore","syntaxTree","resolve","pos","word","matchBefore","includes","explicit","options","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","setValue","newValue","oldValue","diff","findDiff","start","end","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","undefined","currentData","newData","getSchema","updateOutputData","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, '&lt;').replace(/>/g, '&gt;');\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\n/**\n * @param {import('@codemirror/autocomplete').CompletionContext} context\n */\nfunction completions(context) {\n const variables = context.state.facet(variablesFacet)[0];\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const objectOptions = variables.map((label) => ({\n displayLabel: `\"${label}\"`,\n label: `\"${label}\": `,\n type: 'variable',\n apply: (view, completion, from, to) => {\n const doc = view.state.doc;\n const beforeChar = doc.sliceString(from - 1, from);\n const line = doc.lineAt(from);\n const indentation = /^\\s*/.exec(line.text)[0];\n const baseInsert = completion.label;\n\n if (beforeChar === '{') {\n const insert = `\\n ${indentation}${baseInsert},\\n`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 2,\n },\n });\n } else if (beforeChar === ',') {\n const insert = `\\n${indentation}${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n } else {\n const insert = `${baseInsert},`;\n view.dispatch({\n changes: {\n from,\n to,\n insert,\n },\n selection: {\n anchor: from + insert.length - 1,\n },\n });\n }\n },\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyNameOptions = variables.map((label) => ({\n label,\n type: 'variable',\n }));\n /** @type {import('@codemirror/autocomplete').Completion[]} */\n const propertyValueOptions = [\n {\n label: 'true',\n type: 'constant keyword',\n boost: 3,\n },\n {\n label: 'false',\n type: 'constant keyword',\n boost: 2,\n },\n {\n label: 'null',\n type: 'constant keyword',\n boost: 1,\n },\n {\n displayLabel: '[ .. ]',\n label: '[ ]',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n {\n displayLabel: '{ .. }',\n label: '{ }',\n apply: (view, completion, from, to) => {\n view.dispatch({\n changes: { from, to, insert: completion.label },\n selection: { anchor: from + 2 },\n });\n },\n },\n ];\n let finalOptions = [];\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n let word = context.matchBefore(/\\w*/);\n\n if (['Object', '{'].includes(nodeBefore.type.name)) {\n finalOptions = objectOptions;\n }\n\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n finalOptions = propertyNameOptions;\n }\n\n if (['Property', '[', 'Array'].includes(nodeBefore.type.name)) {\n finalOptions = propertyValueOptions;\n }\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options: finalOptions,\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 const updateOutputData = () => {\n const submitData = formViewer._getSubmitData();\n outputDataEditor.setValue(toString(submitData));\n };\n\n // pipe viewer changes to output data editor\n formViewer.on('changed', updateOutputData);\n formViewer.on('formFieldInstance.added', updateOutputData);\n formViewer.on('formFieldInstance.removed', updateOutputData);\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","objectOptions","map","label","displayLabel","apply","view","completion","from","to","doc","beforeChar","sliceString","line","lineAt","indentation","exec","text","baseInsert","insert","dispatch","changes","selection","anchor","length","propertyNameOptions","propertyValueOptions","boost","finalOptions","nodeBefore","syntaxTree","resolve","pos","word","matchBefore","includes","explicit","options","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","languageCompartment","Compartment","of","json","tabSizeCompartment","EditorState","tabSize","autocompletionConfCompartment","placeholderLinterExtension","createPlaceholderLinterExtension","container","createState","extensions","basicSetup","lintGutter","linter","jsonParseLinter","keymap","indentWithTab","readOnly","EditorView","updateListener","update","docChanged","emit","value","toString","create","setValue","newValue","oldValue","diff","findDiff","start","end","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","undefined","currentData","newData","getSchema","updateOutputData","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;AAC3BC,EAAAA,SAAS,CAAC,MAAM;IACd,SAASC,SAASA,CAACC,KAAK,EAAE;AACxB,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1BD,KAAK,CAACE,eAAe,EAAE;QAEvBL,KAAK,CAACM,OAAO,EAAE;AACjB,MAAA;AACF,IAAA;AAEAC,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,SAAS,CAAC;AAE/C,IAAA,OAAO,MAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,SAAS,CAAC;IACpD,CAAC;AACH,EAAA,CAAC,CAAC;AAEF,EAAA,OACEQ,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,eAAe;AAAAC,IAAAA,QAAA,GACxBC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,wBAAwB;MAACG,OAAO,EAAEd,KAAK,CAACM;KAAc,CAAC,EAClEI,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,uBAAuB;AAAAC,MAAAA,QAAA,GAChCC,GAAA,CAAA,IAAA,EAAA;AAAIF,QAAAA,KAAK,EAAC,sBAAsB;QAAAC,QAAA,EAAEZ,KAAK,CAACe;OAAS,CAAC,EAClDF,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,oBAAoB;QAAAC,QAAA,EAAEZ,KAAK,CAACY;OAAc,CAAC,EACtDC,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,sBAAsB;AAAAC,QAAAA,QAAA,EAC/BC,GAAA,CAAA,QAAA,EAAA;AAAQG,UAAAA,IAAI,EAAC,QAAQ;AAACL,UAAAA,KAAK,EAAC,uCAAuC;UAACG,OAAO,EAAEd,KAAK,CAACM,OAAQ;AAAAM,UAAAA,QAAA,EAAC;SAEpF;AAAC,OACN,CAAC;AAAA,KACH,CAAC;AAAA,GACH,CAAC;AAEV;;AC7BO,SAASK,UAAUA,CAACjB,KAAK,EAAE;AAChC,EAAA,MAAMkB,MAAM,GAAGC,cAAc,CAACnB,KAAK,CAACkB,MAAM,CAAC;EAC3C,MAAME,IAAI,GAAGD,cAAc,CAACnB,KAAK,CAACoB,IAAI,IAAI,EAAE,CAAC;AAE7C,EAAA,MAAMC,QAAQ,GAAGC,MAAM,EAAE;AAEzB,EAAA,MAAMC,OAAO,GAAG,CAAA;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAAA,EAA4BH,IAAI,CAAA;AAChC,4BAAA,EAA8BF,MAAM,CAAA;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAA,CAAG,CAACM,IAAI,EAAE;AAERvB,EAAAA,SAAS,CAAC,MAAM;AACdoB,IAAAA,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE;AAC3B,EAAA,CAAC,CAAC;EAEF,OACEhB,IAAA,CAACX,KAAK,EAAA;AAACgB,IAAAA,IAAI,EAAC,YAAY;IAACT,OAAO,EAAEN,KAAK,CAACM,OAAQ;AAAAM,IAAAA,QAAA,GAC9CF,IAAA,CAAA,GAAA,EAAA;MAAAE,QAAA,EAAA,CAAG,yDACsD,EAAAC,GAAA,CAAA,GAAA,EAAA;AAAGc,QAAAA,IAAI,EAAC,oCAAoC;AAAAf,QAAAA,QAAA,EAAC;AAAO,OAAG,CAAC,EAAA,GACjH;KAAG,CAAC,EAEJC,GAAA,CAAA,UAAA,EAAA;AAAUe,MAAAA,UAAU,EAAC,OAAO;AAACC,MAAAA,GAAG,EAAER,QAAS;AAAAT,MAAAA,QAAA,EACxCW;AAAO,KACA,CAAC;AAAA,GACN,CAAC;AAEZ;;AAEA;;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;AACxF;;ACzDA;AACA;AACA;AACO,MAAMC,cAAc,GAAGC,KAAK,CAACC,MAAM,EAAE;;ACArC,SAASC,uBAAuBA,GAAG;EACxC,OAAO,CACLC,cAAc,CAAC;IACbC,QAAQ,EAAE,CAACC,WAAW;AACxB,GAAC,CAAC,CACH;AACH;;AAEA;AACA;AACA;AACA,SAASA,WAAWA,CAACC,OAAO,EAAE;AAC5B,EAAA,MAAMC,SAAS,GAAGD,OAAO,CAACE,KAAK,CAACC,KAAK,CAACV,cAAc,CAAC,CAAC,CAAC,CAAC;AACxD;AACA,EAAA,MAAMW,aAAa,GAAGH,SAAS,CAACI,GAAG,CAAEC,KAAK,KAAM;IAC9CC,YAAY,EAAE,CAAA,CAAA,EAAID,KAAK,CAAA,CAAA,CAAG;IAC1BA,KAAK,EAAE,CAAA,CAAA,EAAIA,KAAK,CAAA,GAAA,CAAK;AACrB/B,IAAAA,IAAI,EAAE,UAAU;IAChBiC,KAAK,EAAEA,CAACC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,EAAE,KAAK;AACrC,MAAA,MAAMC,GAAG,GAAGJ,IAAI,CAACP,KAAK,CAACW,GAAG;MAC1B,MAAMC,UAAU,GAAGD,GAAG,CAACE,WAAW,CAACJ,IAAI,GAAG,CAAC,EAAEA,IAAI,CAAC;AAClD,MAAA,MAAMK,IAAI,GAAGH,GAAG,CAACI,MAAM,CAACN,IAAI,CAAC;AAC7B,MAAA,MAAMO,WAAW,GAAG,MAAM,CAACC,IAAI,CAACH,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAA,MAAMC,UAAU,GAAGX,UAAU,CAACJ,KAAK;MAEnC,IAAIQ,UAAU,KAAK,GAAG,EAAE;AACtB,QAAA,MAAMQ,MAAM,GAAG,CAAA,IAAA,EAAOJ,WAAW,CAAA,EAAGG,UAAU,CAAA,GAAA,CAAK;QACnDZ,IAAI,CAACc,QAAQ,CAAC;AACZC,UAAAA,OAAO,EAAE;YACPb,IAAI;YACJC,EAAE;AACFU,YAAAA;WACD;AACDG,UAAAA,SAAS,EAAE;AACTC,YAAAA,MAAM,EAAEf,IAAI,GAAGW,MAAM,CAACK,MAAM,GAAG;AACjC;AACF,SAAC,CAAC;AACJ,MAAA,CAAC,MAAM,IAAIb,UAAU,KAAK,GAAG,EAAE;AAC7B,QAAA,MAAMQ,MAAM,GAAG,CAAA,EAAA,EAAKJ,WAAW,CAAA,EAAGG,UAAU,CAAA,CAAA,CAAG;QAC/CZ,IAAI,CAACc,QAAQ,CAAC;AACZC,UAAAA,OAAO,EAAE;YACPb,IAAI;YACJC,EAAE;AACFU,YAAAA;WACD;AACDG,UAAAA,SAAS,EAAE;AACTC,YAAAA,MAAM,EAAEf,IAAI,GAAGW,MAAM,CAACK,MAAM,GAAG;AACjC;AACF,SAAC,CAAC;AACJ,MAAA,CAAC,MAAM;AACL,QAAA,MAAML,MAAM,GAAG,CAAA,EAAGD,UAAU,CAAA,CAAA,CAAG;QAC/BZ,IAAI,CAACc,QAAQ,CAAC;AACZC,UAAAA,OAAO,EAAE;YACPb,IAAI;YACJC,EAAE;AACFU,YAAAA;WACD;AACDG,UAAAA,SAAS,EAAE;AACTC,YAAAA,MAAM,EAAEf,IAAI,GAAGW,MAAM,CAACK,MAAM,GAAG;AACjC;AACF,SAAC,CAAC;AACJ,MAAA;AACF,IAAA;AACF,GAAC,CAAC,CAAC;AACH;AACA,EAAA,MAAMC,mBAAmB,GAAG3B,SAAS,CAACI,GAAG,CAAEC,KAAK,KAAM;IACpDA,KAAK;AACL/B,IAAAA,IAAI,EAAE;AACR,GAAC,CAAC,CAAC;AACH;EACA,MAAMsD,oBAAoB,GAAG,CAC3B;AACEvB,IAAAA,KAAK,EAAE,MAAM;AACb/B,IAAAA,IAAI,EAAE,kBAAkB;AACxBuD,IAAAA,KAAK,EAAE;AACT,GAAC,EACD;AACExB,IAAAA,KAAK,EAAE,OAAO;AACd/B,IAAAA,IAAI,EAAE,kBAAkB;AACxBuD,IAAAA,KAAK,EAAE;AACT,GAAC,EACD;AACExB,IAAAA,KAAK,EAAE,MAAM;AACb/B,IAAAA,IAAI,EAAE,kBAAkB;AACxBuD,IAAAA,KAAK,EAAE;AACT,GAAC,EACD;AACEvB,IAAAA,YAAY,EAAE,QAAQ;AACtBD,IAAAA,KAAK,EAAE,MAAM;IACbE,KAAK,EAAEA,CAACC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,EAAE,KAAK;MACrCH,IAAI,CAACc,QAAQ,CAAC;AACZC,QAAAA,OAAO,EAAE;UAAEb,IAAI;UAAEC,EAAE;UAAEU,MAAM,EAAEZ,UAAU,CAACJ;SAAO;AAC/CmB,QAAAA,SAAS,EAAE;UAAEC,MAAM,EAAEf,IAAI,GAAG;AAAE;AAChC,OAAC,CAAC;AACJ,IAAA;AACF,GAAC,EACD;AACEJ,IAAAA,YAAY,EAAE,QAAQ;AACtBD,IAAAA,KAAK,EAAE,MAAM;IACbE,KAAK,EAAEA,CAACC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,EAAE,KAAK;MACrCH,IAAI,CAACc,QAAQ,CAAC;AACZC,QAAAA,OAAO,EAAE;UAAEb,IAAI;UAAEC,EAAE;UAAEU,MAAM,EAAEZ,UAAU,CAACJ;SAAO;AAC/CmB,QAAAA,SAAS,EAAE;UAAEC,MAAM,EAAEf,IAAI,GAAG;AAAE;AAChC,OAAC,CAAC;AACJ,IAAA;AACF,GAAC,CACF;EACD,IAAIoB,YAAY,GAAG,EAAE;AACrB,EAAA,IAAIC,UAAU,GAAGC,UAAU,CAACjC,OAAO,CAACE,KAAK,CAAC,CAACgC,OAAO,CAAClC,OAAO,CAACmC,GAAG,EAAE,EAAE,CAAC;AACnE,EAAA,IAAIC,IAAI,GAAGpC,OAAO,CAACqC,WAAW,CAAC,KAAK,CAAC;AAErC,EAAA,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAACC,QAAQ,CAACN,UAAU,CAACzD,IAAI,CAACD,IAAI,CAAC,EAAE;AAClDyD,IAAAA,YAAY,GAAG3B,aAAa;AAC9B,EAAA;AAEA,EAAA,IAAI4B,UAAU,CAACzD,IAAI,CAACD,IAAI,KAAK,cAAc,EAAE;IAC3C0B,OAAO,CAACuC,QAAQ,GAAG,IAAI;AACvBR,IAAAA,YAAY,GAAGH,mBAAmB;AACpC,EAAA;AAEA,EAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAACU,QAAQ,CAACN,UAAU,CAACzD,IAAI,CAACD,IAAI,CAAC,EAAE;AAC7DyD,IAAAA,YAAY,GAAGF,oBAAoB;AACrC,EAAA;AAEA,EAAA,IAAIO,IAAI,CAACzB,IAAI,IAAIyB,IAAI,CAACxB,EAAE,IAAI,CAACZ,OAAO,CAACuC,QAAQ,EAAE;AAC7C,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,OAAO;IACL5B,IAAI,EAAEyB,IAAI,CAACzB,IAAI;AACf6B,IAAAA,OAAO,EAAET;GACV;AACH;;AC9HA,MAAMU,WAAW,GAAG,gBAAgB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAACF,OAAO,GAAG,EAAE,EAAE;EACvC,MAAM;IAAEG,iBAAiB,GAAG,EAAE;AAAEC,IAAAA,WAAW,EAAEC,iBAAiB;AAAEC,IAAAA,QAAQ,GAAG;AAAM,GAAC,GAAGN,OAAO;AAC5F,EAAA,MAAMO,OAAO,GAAGC,IAAI,EAAE;AAEtB,EAAA,MAAMC,mBAAmB,GAAG,IAAIC,WAAW,EAAE,CAACC,EAAE,CAACC,IAAI,EAAE,CAAC;AACxD,EAAA,MAAMC,kBAAkB,GAAG,IAAIH,WAAW,EAAE,CAACC,EAAE,CAACG,WAAW,CAACC,OAAO,CAACJ,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAA,MAAMK,6BAA6B,GAAG,IAAIN,WAAW,EAAE;AACvD,EAAA,MAAMO,0BAA0B,GAAGC,gCAAgC,EAAE;EAErE,IAAIC,SAAS,GAAG,IAAI;AAEpB,EAAA,SAASC,WAAWA,CAAC/C,GAAG,EAAEZ,SAAS,GAAG,EAAE,EAAE;AACxC,IAAA,MAAM4D,UAAU,GAAG,CACjBC,UAAU,EACVb,mBAAmB,EACnBI,kBAAkB,EAClBU,UAAU,EAAE,EACZC,MAAM,CAACC,eAAe,EAAE,CAAC,EACzBR,0BAA0B,EAC1BD,6BAA6B,CAACL,EAAE,CAAC1D,cAAc,CAAC0D,EAAE,CAAClD,SAAS,CAAC,CAAC,EAC9DL,uBAAuB,EAAE,EACzBsE,MAAM,CAACf,EAAE,CAAC,CAACgB,aAAa,CAAC,CAAC,EAC1BtB,iBAAiB,GAAGD,WAAW,CAACC,iBAAiB,CAAC,GAAG,EAAE,EACvDS,WAAW,CAACc,QAAQ,CAACjB,EAAE,CAACL,QAAQ,CAAC,EACjCuB,UAAU,CAACC,cAAc,CAACnB,EAAE,CAAEoB,MAAM,IAAK;MACvC,IAAIA,MAAM,CAACC,UAAU,EAAE;AACrBzB,QAAAA,OAAO,CAAC0B,IAAI,CAAC,SAAS,EAAE;UAAEC,KAAK,EAAEH,MAAM,CAACrE,KAAK,CAACW,GAAG,CAAC8D,QAAQ;AAAG,SAAC,CAAC;AACjE,MAAA;IACF,CAAC,CAAC,EACFN,UAAU,CAAC1B,iBAAiB,CAACQ,EAAE,CAACR,iBAAiB,CAAC,CACnD;IAED,OAAOW,WAAW,CAACsB,MAAM,CAAC;MAAE/D,GAAG;AAAEgD,MAAAA;AAAW,KAAC,CAAC;AAChD,EAAA;AAEA,EAAA,MAAMpD,IAAI,GAAG,IAAI4D,UAAU,CAAC;IAC1BnE,KAAK,EAAE0D,WAAW,CAAC,EAAE;AACvB,GAAC,CAAC;AAEF,EAAA,IAAI,CAACiB,QAAQ,GAAG,UAAUC,QAAQ,EAAE;IAClC,MAAMC,QAAQ,GAAGtE,IAAI,CAACP,KAAK,CAACW,GAAG,CAAC8D,QAAQ,EAAE;AAE1C,IAAA,MAAMK,IAAI,GAAGC,QAAQ,CAACF,QAAQ,EAAED,QAAQ,CAAC;AAEzC,IAAA,IAAIE,IAAI,EAAE;MACRvE,IAAI,CAACc,QAAQ,CAAC;AACZC,QAAAA,OAAO,EAAE;UAAEb,IAAI,EAAEqE,IAAI,CAACE,KAAK;UAAEtE,EAAE,EAAEoE,IAAI,CAACG,GAAG;UAAE7D,MAAM,EAAE0D,IAAI,CAAC5D;SAAM;AAC9DK,QAAAA,SAAS,EAAE;UAAEC,MAAM,EAAEsD,IAAI,CAACE,KAAK,GAAGF,IAAI,CAAC5D,IAAI,CAACO;AAAO;AACrD,OAAC,CAAC;AACJ,IAAA;EACF,CAAC;EAED,IAAI,CAACyD,QAAQ,GAAG,YAAY;IAC1B,OAAO3E,IAAI,CAACP,KAAK,CAACW,GAAG,CAAC8D,QAAQ,EAAE;EAClC,CAAC;AAED,EAAA,IAAI,CAACU,YAAY,GAAG,UAAUpF,SAAS,EAAE;IACvCQ,IAAI,CAACc,QAAQ,CAAC;MAAE+D,OAAO,EAAE9B,6BAA6B,CAAC+B,WAAW,CAAC9F,cAAc,CAAC0D,EAAE,CAAClD,SAAS,CAAC;AAAE,KAAC,CAAC;EACrG,CAAC;EAED,IAAI,CAACuF,OAAO,GAAG,YAAY;AACzB,IAAA,OAAO/E,IAAI;EACb,CAAC;AAED,EAAA,IAAI,CAACgF,EAAE,GAAG1C,OAAO,CAAC0C,EAAE;AACpB,EAAA,IAAI,CAACC,GAAG,GAAG3C,OAAO,CAAC2C,GAAG;AACtB,EAAA,IAAI,CAACjB,IAAI,GAAG1B,OAAO,CAAC0B,IAAI;AAExB,EAAA,IAAI,CAACkB,QAAQ,GAAG,UAAUC,UAAU,EAAE;AACpCjC,IAAAA,SAAS,GAAGiC,UAAU;AACtBjC,IAAAA,SAAS,CAACkC,WAAW,CAACpF,IAAI,CAACqF,GAAG,CAAC;IAC/BC,OAAU,CAACpC,SAAS,EAAE7F,QAAQ,CAACkI,IAAI,CAAC,CAACC,GAAG,CAAC,iBAAiB,CAAC;EAC7D,CAAC;EAED,IAAI,CAACC,OAAO,GAAG,YAAY;AACzB,IAAA,IAAIvC,SAAS,IAAIlD,IAAI,CAACqF,GAAG,EAAE;AACzBnC,MAAAA,SAAS,CAACwC,WAAW,CAAC1F,IAAI,CAACqF,GAAG,CAAC;MAC/BC,OAAU,CAACpC,SAAS,EAAE7F,QAAQ,CAACkI,IAAI,CAAC,CAACI,MAAM,CAAC,iBAAiB,CAAC;AAChE,IAAA;IACA3F,IAAI,CAACyF,OAAO,EAAE;EAChB,CAAC;EAED,SAASxC,gCAAgCA,GAAG;IAC1C,OAAOM,MAAM,CAAEvD,IAAI,IAAK;MACtB,MAAM4F,YAAY,GAAG5F,IAAI,CAACqF,GAAG,CAACQ,gBAAgB,CAAC,iBAAiB,CAAC;AACjE,MAAA,IAAID,YAAY,CAAC1E,MAAM,GAAG,CAAC,EAAE;QAC3BoE,OAAU,CAACpC,SAAS,EAAE7F,QAAQ,CAACkI,IAAI,CAAC,CAACC,GAAG,CAACxD,WAAW,CAAC;AACvD,MAAA,CAAC,MAAM;QACLsD,OAAU,CAACpC,SAAS,EAAE7F,QAAQ,CAACkI,IAAI,CAAC,CAACI,MAAM,CAAC3D,WAAW,CAAC;AAC1D,MAAA;AACA,MAAA,OAAO,EAAE;AACX,IAAA,CAAC,CAAC;AACJ,EAAA;AACF;AAEA,SAASwC,QAAQA,CAACsB,MAAM,EAAEC,MAAM,EAAE;EAChC,IAAID,MAAM,KAAKC,MAAM,EAAE;AACrB,IAAA,OAAO,IAAI;AACb,EAAA;EAEAD,MAAM,GAAGA,MAAM,IAAI,EAAE;EACrBC,MAAM,GAAGA,MAAM,IAAI,EAAE;AAErB,EAAA,IAAIC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC5E,MAAM,EAAE6E,MAAM,CAAC7E,MAAM,CAAC;EACtD,IAAIuD,KAAK,GAAG,CAAC;AAEb,EAAA,OAAOA,KAAK,GAAGuB,SAAS,IAAIF,MAAM,CAACrB,KAAK,CAAC,KAAKsB,MAAM,CAACtB,KAAK,CAAC,EAAE;AAC3DA,IAAAA,KAAK,EAAE;AACT,EAAA;EAEA,IAAIA,KAAK,KAAKuB,SAAS,EAAE;IACvB,OAAO;AACLvB,MAAAA,KAAK,EAAEA,KAAK;AACZ9D,MAAAA,IAAI,EAAEoF,MAAM,CAACI,KAAK,CAAC1B,KAAK,CAAC;MACzBC,GAAG,EAAEoB,MAAM,CAAC5E;KACb;AACH,EAAA;AAEA,EAAA,IAAIkF,MAAM,GAAGN,MAAM,CAAC5E,MAAM;AAC1B,EAAA,IAAImF,MAAM,GAAGN,MAAM,CAAC7E,MAAM;EAE1B,OAAOkF,MAAM,GAAG3B,KAAK,IAAI4B,MAAM,GAAG5B,KAAK,IAAIqB,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,KAAKL,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC,EAAE;AACpFD,IAAAA,MAAM,EAAE;AACRC,IAAAA,MAAM,EAAE;AACV,EAAA;EAEA,OAAO;AACL5B,IAAAA,KAAK,EAAEA,KAAK;IACZ9D,IAAI,EAAEoF,MAAM,CAACI,KAAK,CAAC1B,KAAK,EAAE4B,MAAM,CAAC;AACjC3B,IAAAA,GAAG,EAAE0B;GACN;AACH;;ACtJO,SAASE,OAAOA,CAACxJ,KAAK,EAAE;AAC7B,EAAA,MAAMyJ,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAAC3J,KAAK,CAACY,QAAQ,CAAC,GAAGZ,KAAK,CAACY,QAAQ,GAAG,CAACZ,KAAK,CAACY,QAAQ,CAAC;EAElF,MAAM;IAAEgJ,WAAW;AAAEhJ,IAAAA;GAAU,GAAG6I,QAAQ,CAACI,MAAM,CAC/C,CAACC,CAAC,EAAEC,KAAK,KAAK;AACZ,IAAA,MAAMC,MAAM,GAAGD,KAAK,CAAC/I,IAAI,KAAKwI,OAAO,CAACS,UAAU,GAAGH,CAAC,CAACF,WAAW,GAAGE,CAAC,CAAClJ,QAAQ;AAE7EoJ,IAAAA,MAAM,CAACE,IAAI,CAACH,KAAK,CAAC;AAElB,IAAA,OAAOD,CAAC;AACV,EAAA,CAAC,EACD;AAAEF,IAAAA,WAAW,EAAE,EAAE;AAAEhJ,IAAAA,QAAQ,EAAE;AAAG,GAClC,CAAC;AAED,EAAA,OACEF,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,iBAAiB;AAAAC,IAAAA,QAAA,GAC1BF,IAAA,CAAA,IAAA,EAAA;AAAIC,MAAAA,KAAK,EAAC,QAAQ;MAAAC,QAAA,EAAA,CACfZ,KAAK,CAACe,IAAI,EAAC,GAAC,EAAC6I,WAAW,CAACxF,MAAM,GAAGvD,GAAA,CAAA,MAAA,EAAA;AAAMF,QAAAA,KAAK,EAAC,cAAc;AAAAC,QAAAA,QAAA,EAAEgJ;OAAkB,CAAC,GAAG,IAAI;KACvF,CAAC,EACL/I,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,MAAM;AAAAC,MAAAA,QAAA,EAAEA;AAAQ,KAAM,CAAC;AAAA,GAC/B,CAAC;AAEV;AAEA4I,OAAO,CAACS,UAAU,GAAG,UAAUjK,KAAK,EAAE;EACpC,OAAOA,KAAK,CAACY,QAAQ;AACvB,CAAC;;ACTM,SAASuJ,cAAcA,CAACC,MAAM,EAAE;EACrC,MAAM;IACJC,iBAAiB;AAAE;AACnBC,IAAAA,OAAO,EAAEC,aAAa;IACtBrD,IAAI;AACJsD,IAAAA,QAAQ,EAAEC,cAAc;IACxBC,gBAAgB;IAChBC,gBAAgB;IAChBC,uBAAuB;IACvBC,uBAAuB;AACvBC,IAAAA,eAAe,EAAEC,qBAAqB;IACtCC,aAAa;AACbC,IAAAA;AACF,GAAC,GAAGb,MAAM;EAEV,MAAM;IAAEc,OAAO,EAAEC,cAAc,GAAG;AAAK,GAAC,GAAGZ,aAAa,IAAI,EAAE;AAE9D,EAAA,MAAMa,kBAAkB,GAAG9J,MAAM,EAAE;AACnC,EAAA,MAAM+J,mBAAmB,GAAG/J,MAAM,EAAE;AACpC,EAAA,MAAMgK,2BAA2B,GAAGhK,MAAM,EAAE;AAC5C,EAAA,MAAMiK,kBAAkB,GAAGjK,MAAM,EAAE;AACnC,EAAA,MAAMkK,qBAAqB,GAAGlK,MAAM,EAAE;AACtC,EAAA,MAAMmK,sBAAsB,GAAGnK,MAAM,EAAE;AAEvC,EAAA,MAAMoK,aAAa,GAAGpK,MAAM,EAAE;AAC9B,EAAA,MAAMqK,aAAa,GAAGrK,MAAM,EAAE;AAC9B,EAAA,MAAMsK,YAAY,GAAGtK,MAAM,EAAE;AAC7B,EAAA,MAAMuK,aAAa,GAAGvK,MAAM,EAAE;EAE9B,MAAM,CAACwK,SAAS,EAAEC,YAAY,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAAC9K,MAAM,EAAE+K,SAAS,CAAC,GAAGD,QAAQ,EAAE;EACtC,MAAM,CAAC5K,IAAI,EAAE8K,OAAO,CAAC,GAAGF,QAAQ,EAAE;EAElC,MAAMG,IAAI,GAAGC,WAAW,CAAC,CAAClL,MAAM,EAAEE,IAAI,KAAK;IACzCsK,aAAa,CAACjK,OAAO,CAAC4K,YAAY,CAACnL,MAAM,EAAEE,IAAI,CAAC;IAChDwK,YAAY,CAACnK,OAAO,CAAC6F,QAAQ,CAACF,QAAQ,CAAChG,IAAI,CAAC,CAAC;IAC7C6K,SAAS,CAAC/K,MAAM,CAAC;IACjBgL,OAAO,CAAC9K,IAAI,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;;AAEN;AACAnB,EAAAA,SAAS,CAAC,MAAM;IACd,MAAMqM,eAAe,GAAIV,YAAY,CAACnK,OAAO,GAAG,IAAI0D,UAAU,CAAC;AAC7DC,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,YAAY;AAAEmH,QAAAA,QAAQ,EAAE;OAAG;MAC9DlH,WAAW,EAAEmH,2BAA2B;AAC1C,KAAC,CAAE;IAEH,MAAMC,gBAAgB,GAAIZ,aAAa,CAACpK,OAAO,GAAG,IAAI0D,UAAU,CAAC;AAC/DI,MAAAA,QAAQ,EAAE,IAAI;AACdH,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,aAAa;AAAEmH,QAAAA,QAAQ,EAAE;AAAE;AAChE,KAAC,CAAE;IAEH,MAAMG,UAAU,GAAIf,aAAa,CAAClK,OAAO,GAAG,IAAIkL,IAAI,CAAC;MACnDvG,SAAS,EAAEmF,kBAAkB,CAAC9J,OAAO;AACrC4I,MAAAA,iBAAiB,EAAE,CAAC,IAAIA,iBAAiB,IAAI,EAAE,CAAC,EAAE,IAAIO,uBAAuB,IAAI,EAAE,CAAC,CAAC;AACrFgC,MAAAA,UAAU,EAAE;AACV,QAAA,IAAIlC,gBAAgB,IAAI,EAAE,CAAC;AAC3BmC,QAAAA,SAAS,EAAE;AACb;AACF,KAAC,CAAE;IAEH,MAAMC,UAAU,GAAIpB,aAAa,CAACjK,OAAO,GAAG,IAAIsL,UAAU,CAAC;MACzD3G,SAAS,EAAEgF,kBAAkB,CAAC3J,OAAO;AACrCuL,MAAAA,QAAQ,EAAE;AACRC,QAAAA,OAAO,EAAE;OACV;AACDC,MAAAA,OAAO,EAAE;QACPC,MAAM,EAAE9B,mBAAmB,CAAC5J;OAC7B;AACDqJ,MAAAA,eAAe,EAAE;QACfqC,MAAM,EAAE7B,2BAA2B,CAAC7J,OAAO;QAC3C,IAAIsJ,qBAAqB,IAAI,EAAE;OAChC;AACDP,MAAAA,QAAQ,EAAEC,cAAc;AACxBmC,MAAAA,UAAU,EAAE;AACV,QAAA,IAAIjC,gBAAgB,IAAI,EAAE,CAAC;AAC3BkC,QAAAA,SAAS,EAAE;OACZ;AACDxC,MAAAA,iBAAiB,EAAE,CAAC,IAAIA,iBAAiB,IAAI,EAAE,CAAC,EAAE,IAAIQ,uBAAuB,IAAI,EAAE,CAAC;AACtF,KAAC,CAAE;AAEHiC,IAAAA,UAAU,CAAC5E,EAAE,CAAC,eAAe,EAAE,CAAC;AAAEkF,MAAAA;AAAU,KAAC,KAAK;AAChD,MAAA,MAAMC,UAAU,GAAGP,UAAU,CAACQ,GAAG,CAAC,YAAY,CAAC;MAC/C,MAAM;AAAElD,QAAAA;OAAQ,GAAGiD,UAAU,CAACC,GAAG,CAACF,SAAS,CAACpM,IAAI,CAAC;MACjD,MAAM;AAAEuM,QAAAA;AAAwB,OAAC,GAAGnD,MAAM;MAC1C,MAAM;AAAEoD,QAAAA;AAAG,OAAC,GAAGJ,SAAS;AAExB,MAAA,IAAI,CAACK,UAAU,CAACF,uBAAuB,CAAC,EAAE;AACxC,QAAA;AACF,MAAA;AAEA,MAAA,MAAMG,eAAe,GAAGH,uBAAuB,CAACH,SAAS,CAAC;MAE1D,IAAI,CAACM,eAAe,EAAEF,EAAE,CAAC,CAACzI,QAAQ,CAAC4I,SAAS,CAAC,EAAE;AAC7C,QAAA;AACF,MAAA;MAEAzB,OAAO,CAAE0B,WAAW,IAAK;AACvB,QAAA,MAAMC,OAAO,GAAG;AACd,UAAA,GAAGD,WAAW;AACd,UAAA,CAACJ,EAAE,GAAGE;SACP;QAED9B,YAAY,CAACnK,OAAO,CAAC6F,QAAQ,CAACF,QAAQ,CAACyG,OAAO,CAAC,CAAC;AAEhD,QAAA,OAAOA,OAAO;AAChB,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEFf,IAAAA,UAAU,CAAC5E,EAAE,CAAC,SAAS,EAAE,MAAM;AAC7B+D,MAAAA,SAAS,CAACa,UAAU,CAACgB,SAAS,EAAE,CAAC;AACnC,IAAA,CAAC,CAAC;AAEFhB,IAAAA,UAAU,CAAC5E,EAAE,CAAC,qBAAqB,EAAE,MAAM;AACzC;MACAhB,IAAI,CAAC,yBAAyB,CAAC;AACjC,IAAA,CAAC,CAAC;IAEF,MAAM6G,gBAAgB,GAAGA,MAAM;AAC7B,MAAA,MAAMC,UAAU,GAAGtB,UAAU,CAACuB,cAAc,EAAE;AAC9CxB,MAAAA,gBAAgB,CAACnF,QAAQ,CAACF,QAAQ,CAAC4G,UAAU,CAAC,CAAC;IACjD,CAAC;;AAED;AACAtB,IAAAA,UAAU,CAACxE,EAAE,CAAC,SAAS,EAAE6F,gBAAgB,CAAC;AAC1CrB,IAAAA,UAAU,CAACxE,EAAE,CAAC,yBAAyB,EAAE6F,gBAAgB,CAAC;AAC1DrB,IAAAA,UAAU,CAACxE,EAAE,CAAC,2BAA2B,EAAE6F,gBAAgB,CAAC;AAE5DzB,IAAAA,eAAe,CAACpE,EAAE,CAAC,SAAS,EAAG/H,KAAK,IAAK;MACvC,IAAI;QACF+L,OAAO,CAACnK,IAAI,CAACmM,KAAK,CAAC/N,KAAK,CAACgH,KAAK,CAAC,CAAC;MAClC,CAAC,CAAC,OAAOgH,KAAK,EAAE;AACd;AACAjH,QAAAA,IAAI,CAAC,+BAA+B,EAAEiH,KAAK,CAAC;AAC9C,MAAA;AACF,IAAA,CAAC,CAAC;AAEF7B,IAAAA,eAAe,CAAClE,QAAQ,CAACoD,qBAAqB,CAAC/J,OAAO,CAAC;AACvDgL,IAAAA,gBAAgB,CAACrE,QAAQ,CAACqD,sBAAsB,CAAChK,OAAO,CAAC;AAEzD,IAAA,OAAO,MAAM;MACX6K,eAAe,CAAC3D,OAAO,EAAE;MACzB8D,gBAAgB,CAAC9D,OAAO,EAAE;MAC1B+D,UAAU,CAAC/D,OAAO,EAAE;MACpBmE,UAAU,CAACnE,OAAO,EAAE;IACtB,CAAC;AACH,EAAA,CAAC,EAAE,CACD0B,iBAAiB,EACjBQ,uBAAuB,EACvBF,gBAAgB,EAChBzD,IAAI,EACJuD,cAAc,EACdM,qBAAqB,EACrBH,uBAAuB,EACvBF,gBAAgB,CACjB,CAAC;;AAEF;AACAzK,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACmK,MAAM,CAACgE,aAAa,EAAE;AACzB,MAAA;AACF,IAAA;IAEAjC,IAAI,CAAC/B,MAAM,CAACgE,aAAa,EAAEhE,MAAM,CAACiE,WAAW,IAAI,EAAE,CAAC;AACtD,EAAA,CAAC,EAAE,CAACjE,MAAM,CAACgE,aAAa,EAAEhE,MAAM,CAACiE,WAAW,EAAElC,IAAI,CAAC,CAAC;AAEpDlM,EAAAA,SAAS,CAAC,MAAM;IACdiB,MAAM,IAAIyK,aAAa,CAAClK,OAAO,CAAC4K,YAAY,CAACnL,MAAM,EAAEE,IAAI,CAAC;AAC5D,EAAA,CAAC,EAAE,CAACF,MAAM,EAAEE,IAAI,CAAC,CAAC;AAElBnB,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIiB,MAAM,IAAIsK,qBAAqB,CAAC/J,OAAO,EAAE;AAC3C,MAAA,MAAMiB,SAAS,GAAG4L,kBAAkB,CAACpN,MAAM,CAAC;AAC5C0K,MAAAA,YAAY,CAACnK,OAAO,CAACqG,YAAY,CAACpF,SAAS,CAAC;AAC9C,IAAA;AACF,EAAA,CAAC,EAAE,CAACxB,MAAM,CAAC,CAAC;;AAEZ;AACAjB,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+K,aAAa,EAAE;AAClB,MAAA;AACF,IAAA;IAEAA,aAAa,CAACuD,GAAG,GAAG;MAClBC,mBAAmB,EAAGC,IAAI,IAAK7C,YAAY,CAACnK,OAAO,CAAC2G,QAAQ,CAACqG,IAAI,CAAC;MAClEC,qBAAqB,EAAGD,IAAI,IAAK5C,aAAa,CAACpK,OAAO,CAAC2G,QAAQ,CAACqG,IAAI,CAAC;MACrEE,mBAAmB,EAAGF,IAAI,IAAK9C,aAAa,CAAClK,OAAO,CAAC2G,QAAQ,CAACqG,IAAI,CAAC;MACnEG,qBAAqB,EAAGH,IAAI,IAAK/C,aAAa,CAACjK,OAAO,CAAC2G,QAAQ,CAACqG,IAAI,CAAC;AACrEI,MAAAA,sBAAsB,EAAGJ,IAAI,IAAK/C,aAAa,CAACjK,OAAO,CAAC6L,GAAG,CAAC,SAAS,CAAC,CAAClF,QAAQ,CAACqG,IAAI,CAAC;AACrFK,MAAAA,8BAA8B,EAAGL,IAAI,IAAK/C,aAAa,CAACjK,OAAO,CAAC6L,GAAG,CAAC,iBAAiB,CAAC,CAAClF,QAAQ,CAACqG,IAAI,CAAC;AACrGnB,MAAAA,GAAG,EAAEA,CAACvM,IAAI,EAAEgO,MAAM,KAAKrD,aAAa,CAACjK,OAAO,CAAC6L,GAAG,CAACvM,IAAI,EAAEgO,MAAM,CAAC;AAC9DC,MAAAA,aAAa,EAAEA,MAAMpD,YAAY,CAACnK,OAAO;AACzCwN,MAAAA,SAAS,EAAEA,MAAMvD,aAAa,CAACjK,OAAO;AACtCyN,MAAAA,OAAO,EAAEA,MAAMvD,aAAa,CAAClK,OAAO;AACpC0N,MAAAA,aAAa,EAAEA,MAAMtD,aAAa,CAACpK,OAAO;MAC1CqM,SAAS,EAAEA,MAAMpC,aAAa,CAACjK,OAAO,CAACqM,SAAS,EAAE;MAClDsB,UAAU,EAAEA,MAAM1D,aAAa,CAACjK,OAAO,CAAC2N,UAAU,EAAE;AACpDnD,MAAAA,SAAS,EAAEA,SAAS;AACpBC,MAAAA,OAAO,EAAEA;KACV;AAEDjB,IAAAA,MAAM,EAAE;AACV,EAAA,CAAC,EAAE,CAACD,aAAa,EAAEC,MAAM,CAAC,CAAC;;AAE3B;AACAhL,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+K,aAAa,EAAE;AAClB,MAAA;AACF,IAAA;AAEAA,IAAAA,aAAa,CAACuD,GAAG,CAACc,QAAQ,GAAG,OAAO;MAAEnO,MAAM;AAAEE,MAAAA;AAAK,KAAC,CAAC;AACrD4J,IAAAA,aAAa,CAACuD,GAAG,CAACpC,IAAI,GAAGA,IAAI;EAC/B,CAAC,EAAE,CAACnB,aAAa,EAAE9J,MAAM,EAAEE,IAAI,EAAE+K,IAAI,CAAC,CAAC;AAEvC,EAAA,MAAMmD,cAAc,GAAGlD,WAAW,CAAC,MAAM;AACvCmD,IAAAA,QAAQ,CAACxN,IAAI,CAACC,SAAS,CAACd,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC;AACxE,EAAA,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;AAEZ,EAAA,MAAMsO,cAAc,GAAGpD,WAAW,CAAC,MAAM;IACvCL,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAM0D,cAAc,GAAGrD,WAAW,CAAC,MAAM;IACvCL,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OACErL,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE+O,UAAU,CAAC,eAAe,EAAE,cAAc,CAAE;AAAA9O,IAAAA,QAAA,GACtDC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,gBAAgB;AAAAC,MAAAA,QAAA,EACxBkL,SAAS,GAAGjL,GAAA,CAACI,UAAU,EAAA;AAACC,QAAAA,MAAM,EAAEA,MAAO;AAACE,QAAAA,IAAI,EAAEA,IAAK;AAACd,QAAAA,OAAO,EAAEkP;AAAe,OAAE,CAAC,GAAG;KAChF,CAAC,EACN3O,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,2BAA2B;AAACkB,MAAAA,GAAG,EAAEwJ;KAAsB,CAAC,EACnE3K,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,cAAc;MAAAC,QAAA,EAAA,CACvBF,IAAA,CAAC8I,OAAO,EAAA;AAACzI,QAAAA,IAAI,EAAC,iBAAiB;AAAAH,QAAAA,QAAA,GAC5BuK,cAAc,IACbtK,GAAA,CAAC2I,OAAO,CAACS,UAAU,EAAA;AAAArJ,UAAAA,QAAA,EACjBC,GAAA,CAAA,QAAA,EAAA;AAAQG,YAAAA,IAAI,EAAC,QAAQ;AAACL,YAAAA,KAAK,EAAC,gBAAgB;AAACgP,YAAAA,KAAK,EAAC,0BAA0B;AAAC7O,YAAAA,OAAO,EAAEwO,cAAe;AAAA1O,YAAAA,QAAA,EAAC;WAE/F;SACU,CACrB,EAEAuK,cAAc,IACbtK,GAAA,CAAC2I,OAAO,CAACS,UAAU,EAAA;AAAArJ,UAAAA,QAAA,EACjBC,GAAA,CAAA,QAAA,EAAA;AAAQG,YAAAA,IAAI,EAAC,QAAQ;AAACL,YAAAA,KAAK,EAAC,gBAAgB;AAACG,YAAAA,OAAO,EAAE2O,cAAe;AAAA7O,YAAAA,QAAA,EAAC;WAE9D;SACU,CACrB,EAEDC,GAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAEuJ,kBAAmB;AAACzK,UAAAA,KAAK,EAAC;AAAwB,SAAM,CAAC;AAAA,OAC5D,CAAC,EACVE,GAAA,CAAC2I,OAAO,EAAA;AAACzI,QAAAA,IAAI,EAAC,cAAc;AAAAH,QAAAA,QAAA,EAC1BC,GAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAE0J,kBAAmB;AAAC5K,UAAAA,KAAK,EAAC;SAA8B;AAAC,OAC5D,CAAC,EACVE,GAAA,CAAC2I,OAAO,EAAA;AAACzI,QAAAA,IAAI,EAAC,YAAY;AAAAH,QAAAA,QAAA,EACxBC,GAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAE2J,qBAAsB;AAAC7K,UAAAA,KAAK,EAAC;SAA8B;AAAC,OAC/D,CAAC,EACVE,GAAA,CAAC2I,OAAO,EAAA;AAACzI,QAAAA,IAAI,EAAC,aAAa;AAAAH,QAAAA,QAAA,EACzBC,GAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAE4J,sBAAuB;AAAC9K,UAAAA,KAAK,EAAC;SAA8B;AAAC,OAChE,CAAC;KACP,CAAC,EACNE,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,8BAA8B;AAACkB,MAAAA,GAAG,EAAEyJ;AAA4B,KAAE,CAAC;AAAA,GAC3E,CAAC;AAEV;;AAEA;;AAEA,SAASlE,QAAQA,CAACtF,GAAG,EAAE;EACrB,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AACxC;AAEA,SAAS0K,2BAA2BA,GAAG;AACrC,EAAA,MAAMoD,OAAO,GAAGrP,QAAQ,CAACsP,aAAa,CAAC,GAAG,CAAC;AAE3CD,EAAAA,OAAO,CAACE,SAAS,GACf,mIAAmI,GACnI,uCAAuC,GACvC,6BAA6B;AAE/B,EAAA,OAAOF,OAAO;AAChB;;AC5QA,SAASG,UAAUA,CAAC9K,OAAO,EAAE;EAC3B,MAAM;AAAEmB,IAAAA,SAAS,EAAE+G,MAAM;AAAEjM,IAAAA,MAAM,EAAEkN,aAAa;AAAEhN,IAAAA,IAAI,EAAEiN,WAAW;IAAE,GAAG2B;AAAK,GAAC,GAAG/K,OAAO;AAExF,EAAA,MAAMO,OAAO,GAAGC,IAAI,EAAE;AAEtB,EAAA,MAAMW,SAAS,GAAG7F,QAAQ,CAACsP,aAAa,CAAC,KAAK,CAAC;AAE/CzJ,EAAAA,SAAS,CAAC6J,SAAS,CAACvH,GAAG,CAAC,gBAAgB,CAAC;AAEzC,EAAA,IAAIyE,MAAM,EAAE;AACVA,IAAAA,MAAM,CAAC7E,WAAW,CAAClC,SAAS,CAAC;AAC/B,EAAA;EAEA,MAAM8J,UAAU,GAAGC,QAAQ,CAAC,kBAAkB,EAAE,UAAUC,KAAK,EAAE;AAC/D,IAAA,MAAMC,IAAI,GAAGD,KAAK,CAAC,CAAC,CAAC;AAErB,IAAA,IAAIC,IAAI,EAAE;MACR,IAAI;AACF,QAAA,IAAI,CAAC9B,GAAG,CAACtC,SAAS,CAAClK,IAAI,CAACmM,KAAK,CAACmC,IAAI,CAACC,QAAQ,CAAC,CAAC;MAC/C,CAAC,CAAC,OAAOC,GAAG,EAAE;AACZ;AAAA,MAAA;AAEJ,IAAA;AACF,EAAA,CAAC,CAAC;AAEF,EAAA,MAAMC,IAAI,GAAG,UAAUC,EAAE,EAAE;IACzB,OAAO,UAAU,GAAGC,IAAI,EAAE;AACxB,MAAA,IAAI,CAAC,IAAI,CAACnC,GAAG,EAAE;AACb,QAAA,MAAM,IAAIoC,KAAK,CAAC,gCAAgC,CAAC;AACnD,MAAA;AAEA,MAAA,OAAOF,EAAE,CAAC,GAAGC,IAAI,CAAC;IACpB,CAAC;EACH,CAAC;AAED,EAAA,MAAMzF,MAAM,GAAG,YAAY;AACzBzF,IAAAA,OAAO,CAAC0B,IAAI,CAAC,qBAAqB,CAAC;EACrC,CAAC;AAEDd,EAAAA,SAAS,CAAC5F,gBAAgB,CAAC,UAAU,EAAE0P,UAAU,CAAC;EAElDU,MAAM,CACJ/P,GAAA,CAACsJ,cAAc,EAAA;AACbiE,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,WAAW,EAAEA,WAAY;IACzBnH,IAAI,EAAE1B,OAAO,CAAC0B,IAAK;AACnB8D,IAAAA,aAAa,EAAE,IAAK;AACpBC,IAAAA,MAAM,EAAEA,MAAO;IAAA,GACX+E;GACL,CAAC,EACF5J,SACF,CAAC;AAED,EAAA,IAAI,CAAC8B,EAAE,GAAG1C,OAAO,CAAC0C,EAAE;AACpB,EAAA,IAAI,CAACC,GAAG,GAAG3C,OAAO,CAAC2C,GAAG;AAEtB,EAAA,IAAI,CAACjB,IAAI,GAAG1B,OAAO,CAAC0B,IAAI;AAExB,EAAA,IAAI,CAACgB,EAAE,CAAC,SAAS,EAAE,MAAM;AACvB0I,IAAAA,MAAM,CAAC,IAAI,EAAExK,SAAS,CAAC;AACvB+G,IAAAA,MAAM,CAACvE,WAAW,CAACxC,SAAS,CAAC;AAC/B,EAAA,CAAC,CAAC;EAEF,IAAI,CAACuC,OAAO,GAAG,MAAM,IAAI,CAACzB,IAAI,CAAC,SAAS,CAAC;AAEzC,EAAA,IAAI,CAACmI,QAAQ,GAAGmB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACc,QAAQ,EAAE,CAAC;AAE/C,EAAA,IAAI,CAACvB,SAAS,GAAG0C,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACT,SAAS,EAAE,CAAC;AAEjD,EAAA,IAAI,CAAC7B,SAAS,GAAGuE,IAAI,CAAEtP,MAAM,IAAK,IAAI,CAACqN,GAAG,CAACtC,SAAS,CAAC/K,MAAM,CAAC,CAAC;AAE7D,EAAA,IAAI,CAACkO,UAAU,GAAGoB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACa,UAAU,EAAE,CAAC;EAEnD,IAAI,CAAC9B,GAAG,GAAGkD,IAAI,CAAC,CAACzP,IAAI,EAAEgO,MAAM,KAAK,IAAI,CAACR,GAAG,CAACjB,GAAG,CAACvM,IAAI,EAAEgO,MAAM,CAAC,CAAC;AAE7D,EAAA,IAAI,CAACC,aAAa,GAAGwB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACS,aAAa,EAAE,CAAC;AAEzD,EAAA,IAAI,CAACC,SAAS,GAAGuB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACU,SAAS,EAAE,CAAC;EAEjD,IAAI,CAACC,OAAO,GAAGsB,IAAI,CAAC,CAACzP,IAAI,EAAEgO,MAAM,KAAK,IAAI,CAACR,GAAG,CAACW,OAAO,CAACnO,IAAI,EAAEgO,MAAM,CAAC,CAAC;AAErE,EAAA,IAAI,CAACI,aAAa,GAAGqB,IAAI,CAAC,MAAM,IAAI,CAACjC,GAAG,CAACY,aAAa,EAAE,CAAC;AAEzD,EAAA,IAAI,CAACP,qBAAqB,GAAG4B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACK,qBAAqB,CAACH,IAAI,CAAC,CAAC;AAEjF,EAAA,IAAI,CAACoC,sBAAsB,GAAGL,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACI,mBAAmB,CAACF,IAAI,CAAC,CAAC;AAEhF,EAAA,IAAI,CAACD,mBAAmB,GAAGgC,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACC,mBAAmB,CAACC,IAAI,CAAC,CAAC;AAE7E,EAAA,IAAI,CAACC,qBAAqB,GAAG8B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACG,qBAAqB,CAACD,IAAI,CAAC,CAAC;AAEjF,EAAA,IAAI,CAACI,sBAAsB,GAAG2B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACM,sBAAsB,CAACJ,IAAI,CAAC,CAAC;AAEnF,EAAA,IAAI,CAACK,8BAA8B,GAAG0B,IAAI,CAAE/B,IAAI,IAAK,IAAI,CAACF,GAAG,CAACO,8BAA8B,CAACL,IAAI,CAAC,CAAC;AACrG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpmn-io/form-js-playground",
3
- "version": "1.15.3",
3
+ "version": "1.15.5",
4
4
  "description": "A form-js playground",
5
5
  "files": [
6
6
  "dist"
@@ -45,19 +45,19 @@
45
45
  "url": "https://github.com/bpmn-io"
46
46
  },
47
47
  "dependencies": {
48
- "@bpmn-io/form-js-editor": "^1.15.3",
49
- "@bpmn-io/form-js-viewer": "^1.15.3",
50
- "@codemirror/autocomplete": "^6.18.6",
51
- "@codemirror/commands": "^6.8.0",
52
- "@codemirror/lang-json": "^6.0.1",
53
- "@codemirror/language": "^6.11.0",
54
- "@codemirror/lint": "^6.8.4",
48
+ "@bpmn-io/form-js-editor": "1.15.5",
49
+ "@bpmn-io/form-js-viewer": "1.15.4",
50
+ "@codemirror/autocomplete": "^6.19.1",
51
+ "@codemirror/commands": "^6.10.0",
52
+ "@codemirror/lang-json": "^6.0.2",
53
+ "@codemirror/language": "^6.11.3",
54
+ "@codemirror/lint": "^6.9.1",
55
55
  "@codemirror/state": "^6.5.2",
56
- "@codemirror/view": "^6.36.4",
56
+ "@codemirror/view": "^6.38.6",
57
57
  "classnames": "^2.5.1",
58
- "codemirror": "^6.0.1",
58
+ "codemirror": "^6.0.2",
59
59
  "downloadjs": "^1.4.7",
60
- "file-drops": "^0.5.0",
60
+ "file-drops": "^0.6.2",
61
61
  "mitt": "^3.0.1",
62
62
  "preact": "^10.5.14"
63
63
  },
@@ -68,8 +68,8 @@
68
68
  "css-loader": "^7.1.2",
69
69
  "min-dash": "^4.2.3",
70
70
  "min-dom": "^4.1.0",
71
- "rollup-plugin-css-only": "^4.5.2",
71
+ "rollup-plugin-css-only": "^4.5.5",
72
72
  "style-loader": "^4.0.0"
73
73
  },
74
- "gitHead": "fc508fe3094ca05d50d29721b9304f16061a2478"
74
+ "gitHead": "e1c7d9a598230214c7d0d0b8af9118a6a922cb64"
75
75
  }