@bpmn-io/form-js-playground 0.14.1 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -146,7 +146,8 @@ function completions(context) {
146
146
 
147
147
  function JSONEditor(options = {}) {
148
148
  const {
149
- readonly = false
149
+ readonly = false,
150
+ contentAttributes = {}
150
151
  } = options;
151
152
  const emitter = mitt();
152
153
  let language = new state.Compartment().of(langJson.json());
@@ -173,14 +174,15 @@ function JSONEditor(options = {}) {
173
174
  }
174
175
  });
175
176
  const editable = view.EditorView.editable.of(!readonly);
177
+ const contentAttributesExtension = view.EditorView.contentAttributes.of(contentAttributes);
176
178
  const view$1 = new view.EditorView({
177
- state: createState('', [updateListener, editable])
179
+ state: createState('', [updateListener, editable, contentAttributesExtension])
178
180
  });
179
181
  view$1.setValue = function (value) {
180
- this.setState(createState(value, [updateListener, editable]));
182
+ this.setState(createState(value, [updateListener, editable, contentAttributesExtension]));
181
183
  };
182
184
  view$1.setVariables = function (variables) {
183
- this.setState(createState(view$1.state.doc.toString(), [updateListener, editable], variables));
185
+ this.setState(createState(view$1.state.doc.toString(), [updateListener, editable, contentAttributesExtension], variables));
184
186
  };
185
187
  return view$1;
186
188
  }
@@ -247,7 +249,11 @@ function PlaygroundRoot(props) {
247
249
  const {
248
250
  actions: actionsConfig = {},
249
251
  emit,
250
- exporter: exporterConfig = {}
252
+ exporter: exporterConfig = {},
253
+ viewerProperties = {},
254
+ editorProperties = {},
255
+ viewerAdditionalModules = [],
256
+ editorAdditionalModules = []
251
257
  } = props;
252
258
  const {
253
259
  display: displayActions = true
@@ -295,13 +301,25 @@ function PlaygroundRoot(props) {
295
301
  }, [props.schema]);
296
302
  hooks.useEffect(() => {
297
303
  const dataEditor = dataEditorRef.current = new JSONEditor({
298
- value: toString(data)
304
+ value: toString(data),
305
+ contentAttributes: {
306
+ 'aria-label': 'Form Input'
307
+ }
299
308
  });
300
309
  const resultView = resultViewRef.current = new JSONEditor({
301
310
  readonly: true,
302
- value: toString(resultData)
311
+ value: toString(resultData),
312
+ contentAttributes: {
313
+ 'aria-label': 'Form Output'
314
+ }
315
+ });
316
+ const form = formRef.current = new formJsViewer.Form({
317
+ additionalModules: viewerAdditionalModules,
318
+ properties: {
319
+ ...viewerProperties,
320
+ 'ariaLabel': 'Form Preview'
321
+ }
303
322
  });
304
- const form = formRef.current = new formJsViewer.Form();
305
323
  const formEditor = formEditorRef.current = new formJsEditor.FormEditor({
306
324
  renderer: {
307
325
  compact: true
@@ -312,7 +330,12 @@ function PlaygroundRoot(props) {
312
330
  propertiesPanel: {
313
331
  parent: propertiesPanelContainerRef.current
314
332
  },
315
- exporter: exporterConfig
333
+ exporter: exporterConfig,
334
+ properties: {
335
+ ...editorProperties,
336
+ 'ariaLabel': 'Form Definition'
337
+ },
338
+ additionalModules: editorAdditionalModules
316
339
  });
317
340
  paletteRef.current = formEditor.get('palette');
318
341
  propertiesPanelRef.current = formEditor.get('propertiesPanel');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\n\nimport { syntaxTree } from '@codemirror/language';\n\nimport { variablesFacet } from './VariablesFacet';\n\nexport default function() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\n\nimport autocompletion from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\n\nexport function JSONEditor(options = {}) {\n const {\n readonly = false\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletion(),\n keymap.of([ indentWithTab ]),\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(container) {\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\n\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {}\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || {});\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n props.onInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n });\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data)\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData)\n });\n\n const form = formRef.current = new Form();\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current\n },\n exporter: exporterConfig\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notifiy interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n props.onStateChanged({\n schema,\n data\n });\n }, [ schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { {\n * actions?: { display: Boolean }\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * exporter?: { name: String, version: String }\n * schema: any\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport default function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","_jsx","name","children","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","JSONEditor","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","autocompletionConf","linterExtension","linter","jsonParseLinter","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","view","toString","editable","setValue","setState","setVariables","_view","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","length","PlaygroundRoot","actions","actionsConfig","exporter","exporterConfig","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","attachDataContainer","node","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","resultView","form","Form","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","Playground","rest","ref","createElement","classList","add","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\n\nimport { syntaxTree } from '@codemirror/language';\n\nimport { variablesFacet } from './VariablesFacet';\n\nexport default function() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\n\nimport autocompletion from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\n\nexport function JSONEditor(options = {}) {\n const {\n readonly = false,\n contentAttributes = {}\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletion(),\n keymap.of([ indentWithTab ]),\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(container) {\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\n\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = []\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || {});\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n props.onInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n });\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input' }\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output' }\n });\n\n const form = formRef.current = new Form({\n additionalModules: viewerAdditionalModules,\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: editorAdditionalModules\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notifiy interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n props.onStateChanged({\n schema,\n data\n });\n }, [ schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { {\n * actions?: { display: Boolean }\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * exporter?: { name: String, version: String }\n * schema: any\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport default function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","_jsx","name","children","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","JSONEditor","readonly","contentAttributes","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","autocompletionConf","linterExtension","linter","jsonParseLinter","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","view","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","length","PlaygroundRoot","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","attachDataContainer","node","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","resultView","form","Form","additionalModules","properties","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","Playground","rest","ref","createElement","classList","add","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -144,7 +144,8 @@ function completions(context) {
144
144
 
145
145
  function JSONEditor(options = {}) {
146
146
  const {
147
- readonly = false
147
+ readonly = false,
148
+ contentAttributes = {}
148
149
  } = options;
149
150
  const emitter = mitt();
150
151
  let language = new Compartment().of(json());
@@ -171,14 +172,15 @@ function JSONEditor(options = {}) {
171
172
  }
172
173
  });
173
174
  const editable = EditorView.editable.of(!readonly);
175
+ const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);
174
176
  const view = new EditorView({
175
- state: createState('', [updateListener, editable])
177
+ state: createState('', [updateListener, editable, contentAttributesExtension])
176
178
  });
177
179
  view.setValue = function (value) {
178
- this.setState(createState(value, [updateListener, editable]));
180
+ this.setState(createState(value, [updateListener, editable, contentAttributesExtension]));
179
181
  };
180
182
  view.setVariables = function (variables) {
181
- this.setState(createState(view.state.doc.toString(), [updateListener, editable], variables));
183
+ this.setState(createState(view.state.doc.toString(), [updateListener, editable, contentAttributesExtension], variables));
182
184
  };
183
185
  return view;
184
186
  }
@@ -245,7 +247,11 @@ function PlaygroundRoot(props) {
245
247
  const {
246
248
  actions: actionsConfig = {},
247
249
  emit,
248
- exporter: exporterConfig = {}
250
+ exporter: exporterConfig = {},
251
+ viewerProperties = {},
252
+ editorProperties = {},
253
+ viewerAdditionalModules = [],
254
+ editorAdditionalModules = []
249
255
  } = props;
250
256
  const {
251
257
  display: displayActions = true
@@ -293,13 +299,25 @@ function PlaygroundRoot(props) {
293
299
  }, [props.schema]);
294
300
  useEffect(() => {
295
301
  const dataEditor = dataEditorRef.current = new JSONEditor({
296
- value: toString(data)
302
+ value: toString(data),
303
+ contentAttributes: {
304
+ 'aria-label': 'Form Input'
305
+ }
297
306
  });
298
307
  const resultView = resultViewRef.current = new JSONEditor({
299
308
  readonly: true,
300
- value: toString(resultData)
309
+ value: toString(resultData),
310
+ contentAttributes: {
311
+ 'aria-label': 'Form Output'
312
+ }
313
+ });
314
+ const form = formRef.current = new Form({
315
+ additionalModules: viewerAdditionalModules,
316
+ properties: {
317
+ ...viewerProperties,
318
+ 'ariaLabel': 'Form Preview'
319
+ }
301
320
  });
302
- const form = formRef.current = new Form();
303
321
  const formEditor = formEditorRef.current = new FormEditor({
304
322
  renderer: {
305
323
  compact: true
@@ -310,7 +328,12 @@ function PlaygroundRoot(props) {
310
328
  propertiesPanel: {
311
329
  parent: propertiesPanelContainerRef.current
312
330
  },
313
- exporter: exporterConfig
331
+ exporter: exporterConfig,
332
+ properties: {
333
+ ...editorProperties,
334
+ 'ariaLabel': 'Form Definition'
335
+ },
336
+ additionalModules: editorAdditionalModules
314
337
  });
315
338
  paletteRef.current = formEditor.get('palette');
316
339
  propertiesPanelRef.current = formEditor.get('propertiesPanel');
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\n\nimport { syntaxTree } from '@codemirror/language';\n\nimport { variablesFacet } from './VariablesFacet';\n\nexport default function() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\n\nimport autocompletion from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\n\nexport function JSONEditor(options = {}) {\n const {\n readonly = false\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletion(),\n keymap.of([ indentWithTab ]),\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(container) {\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\n\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {}\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || {});\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n props.onInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n });\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data)\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData)\n });\n\n const form = formRef.current = new Form();\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current\n },\n exporter: exporterConfig\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notifiy interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n props.onStateChanged({\n schema,\n data\n });\n }, [ schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { {\n * actions?: { display: Boolean }\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * exporter?: { name: String, version: String }\n * schema: any\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport default function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","_jsx","name","children","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","JSONEditor","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","autocompletionConf","linterExtension","linter","jsonParseLinter","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","view","toString","editable","setValue","setState","setVariables","_view","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","length","PlaygroundRoot","actions","actionsConfig","exporter","exporterConfig","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","attachDataContainer","node","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","resultView","form","Form","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","Playground","rest","ref","createElement","classList","add","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":";;;;;;;;;;;;;;;;;;AAEO,SAASA,KAAK,CAACC,KAAK,EAAE;AAE3BC,EAAAA,SAAS,CAAC,MAAM;IACd,SAASC,SAAS,CAACC,KAAK,EAAE;AAExB,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1BD,KAAK,CAACE,eAAe,EAAE,CAAA;QAEvBL,KAAK,CAACM,OAAO,EAAE,CAAA;AACjB,OAAA;AACF,KAAA;AAEAC,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,SAAS,CAAC,CAAA;AAE/C,IAAA,OAAO,MAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,SAAS,CAAC,CAAA;KACnD,CAAA;AACH,GAAC,CAAC,CAAA;EAEF,OACEQ,IAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,eAAe;IAAA,QACxB,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,wBAAwB;MAAC,OAAO,EAAGX,KAAK,CAACM,OAAAA;AAAS,KAAA,CAAO,EACpEI,IAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,uBAAuB;MAAA,QAChC,EAAA,CAAAC,GAAA,CAAA,IAAA,EAAA;AAAI,QAAA,KAAK,EAAC,sBAAsB;AAAA,QAAA,QAAA,EAAGX,KAAK,CAACY,IAAAA;AAAI,OAAA,CAAO,EACpDD,GAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,oBAAoB;AAAA,QAAA,QAAA,EAC3BX,KAAK,CAACa,QAAAA;AAAQ,OAAA,CACZ,EACNF,GAAA,CAAA,KAAA,EAAA;AAAK,QAAA,KAAK,EAAC,sBAAsB;QAAA,QAC/B,EAAAA,GAAA,CAAA,QAAA,EAAA;AAAQ,UAAA,KAAK,EAAC,uCAAuC;UAAC,OAAO,EAAGX,KAAK,CAACM,OAAS;AAAA,UAAA,QAAA,EAAA,OAAA;AAAA,SAAA,CAAA;OAC3E,CAAA,CAAA;KACF,CAAA,CAAA;GACF,CAAA,CAAA;AAEV;;AC9BO,SAASQ,UAAU,CAACd,KAAK,EAAE;AAEhC,EAAA,MAAMe,MAAM,GAAGC,cAAc,CAAChB,KAAK,CAACe,MAAM,CAAC,CAAA;EAC3C,MAAME,IAAI,GAAGD,cAAc,CAAChB,KAAK,CAACiB,IAAI,IAAI,EAAE,CAAC,CAAA;EAE7C,MAAMC,QAAQ,GAAGC,MAAM,EAAE,CAAA;AAEzB,EAAA,MAAMC,OAAO,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAA,EAA4BH,IAAK,CAAA;AACjC,4BAAA,EAA8BF,MAAO,CAAA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAG,CAAA,CAACM,IAAI,EAAE,CAAA;AAERpB,EAAAA,SAAS,CAAC,MAAM;AACdiB,IAAAA,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE,CAAA;AAC3B,GAAC,CAAC,CAAA;AAEF,EAAA,OACEb,KAAC,KAAK,EAAA;AAAC,IAAA,IAAI,EAAC,YAAY;IAAC,OAAO,EAAGV,KAAK,CAACM,OAAS;IAAA,QAChD,EAAA,CAAAI,IAAA,CAAA,GAAA,EAAA;MAAA,QAA0D,EAAA,CAAA,yDAAA,EAAAC,GAAA,CAAA,GAAA,EAAA;AAAG,QAAA,IAAI,EAAC,oCAAoC;AAAA,QAAA,QAAA,EAAA,SAAA;OAAY,CAAA,EAAA,GAAA,CAAA;AAAA,KAAA,CAAK,EAEvHA,GAAA,CAAA,UAAA,EAAA;AAAU,MAAA,UAAU,EAAC,OAAO;AAAC,MAAA,GAAG,EAAGO,QAAU;MAAA,QAAEE,EAAAA,OAAAA;KAAmB,CAAA,CAAA;GAC5D,CAAA,CAAA;AAEZ,CAAA;;AAGA;;AAEA,SAASJ,cAAc,CAACQ,GAAG,EAAE;EAC3B,OAAOC,IAAI,CAACC,SAAS,CAACD,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC,CAAC,CAACG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACxF;;ACxDA;AACA;AACA;AACO,MAAMC,cAAc,GAAGC,KAAK,CAACC,MAAM,EAAE;;ACC7B,uBAAW,IAAA;EACxB,OAAO,CACLC,gBAAc,CAAC;IACbC,QAAQ,EAAE,CACRC,WAAW,CAAA;AAEf,GAAC,CAAC,CACH,CAAA;AACH,CAAA;AAEA,SAASA,WAAW,CAACC,OAAO,EAAE;AAE5B,EAAA,MAAMC,SAAS,GAAGD,OAAO,CAACE,KAAK,CAACC,KAAK,CAACT,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAExD,EAAA,MAAMU,OAAO,GAAGH,SAAS,CAACI,GAAG,CAACC,CAAC,KAAK;AAClCC,IAAAA,KAAK,EAAED,CAAC;AACRE,IAAAA,IAAI,EAAE,UAAA;AACR,GAAC,CAAC,CAAC,CAAA;AAEH,EAAA,IAAIC,UAAU,GAAGC,UAAU,CAACV,OAAO,CAACE,KAAK,CAAC,CAACS,OAAO,CAACX,OAAO,CAACY,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;;AAEnE;AACA,EAAA,IAAIH,UAAU,CAACD,IAAI,CAAC9B,IAAI,KAAK,cAAc,EAAE;IAC3CsB,OAAO,CAACa,QAAQ,GAAG,IAAI,CAAA;AACzB,GAAA;AAEA,EAAA,IAAIC,IAAI,GAAGd,OAAO,CAACe,WAAW,CAAC,KAAK,CAAC,CAAA;AAErC,EAAA,IAAID,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACG,EAAE,IAAI,CAACjB,OAAO,CAACa,QAAQ,EAAE;AAC7C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO;IACLG,IAAI,EAAEF,IAAI,CAACE,IAAI;AACfZ,IAAAA,OAAAA;GACD,CAAA;AACH;;AC7BO,SAASc,UAAU,CAACd,OAAO,GAAG,EAAE,EAAE;EACvC,MAAM;AACJe,IAAAA,QAAQ,GAAG,KAAA;AACb,GAAC,GAAGf,OAAO,CAAA;EAEX,MAAMgB,OAAO,GAAGC,IAAI,EAAE,CAAA;EAEtB,IAAIC,QAAQ,GAAG,IAAIC,WAAW,EAAE,CAACC,EAAE,CAACC,IAAI,EAAE,CAAC,CAAA;AAC3C,EAAA,IAAIC,OAAO,GAAG,IAAIH,WAAW,EAAE,CAACC,EAAE,CAACG,WAAW,CAACD,OAAO,CAACF,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;;AAG7D;AACF;AACA;;AAEE,EAAA,MAAMI,kBAAkB,GAAG,IAAIL,WAAW,EAAE,CAAA;AAE5C,EAAA,MAAMM,eAAe,GAAGC,MAAM,CAACC,eAAe,EAAE,CAAC,CAAA;EAEjD,SAASC,WAAW,CAACC,GAAG,EAAEC,UAAU,GAAG,EAAE,EAAEjC,SAAS,GAAG,EAAE,EAAE;IACzD,OAAO0B,WAAW,CAACQ,MAAM,CAAC;MACxBF,GAAG;AACHC,MAAAA,UAAU,EAAE,CACVE,UAAU,EACVd,QAAQ,EACRI,OAAO,EACPG,eAAe,EACfQ,UAAU,EAAE,EACZT,kBAAkB,CAACJ,EAAE,CAAC9B,cAAc,CAAC8B,EAAE,CAACvB,SAAS,CAAC,CAAC,EACnDJ,cAAc,EAAE,EAChByC,MAAM,CAACd,EAAE,CAAC,CAAEe,aAAa,CAAE,CAAC,EAC5B,GAAGL,UAAU,CAAA;AAEjB,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,SAASM,UAAU,CAACrB,QAAQ,EAAE;IAE5B,MAAMsB,cAAc,GAAGC,UAAU,CAACD,cAAc,CAACjB,EAAE,CAACmB,MAAM,IAAI;MAC5D,IAAIA,MAAM,CAACC,UAAU,EAAE;AACrBxB,QAAAA,OAAO,CAACyB,IAAI,CAAC,SAAS,EAAE;UACtBC,KAAK,EAAEH,MAAM,CAACI,IAAI,CAAC7C,KAAK,CAAC+B,GAAG,CAACe,QAAQ,EAAA;AACvC,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAMC,QAAQ,GAAGP,UAAU,CAACO,QAAQ,CAACzB,EAAE,CAAC,CAACL,QAAQ,CAAC,CAAA;AAElD,IAAA,MAAM4B,IAAI,GAAG,IAAIL,UAAU,CAAC;MAC1BxC,KAAK,EAAE8B,WAAW,CAAC,EAAE,EAAE,CAAES,cAAc,EAAEQ,QAAQ,CAAE,CAAA;AACrD,KAAC,CAAC,CAAA;AAEFF,IAAAA,IAAI,CAACG,QAAQ,GAAG,UAASJ,KAAK,EAAE;AAC9B,MAAA,IAAI,CAACK,QAAQ,CAACnB,WAAW,CAACc,KAAK,EAAE,CAAEL,cAAc,EAAEQ,QAAQ,CAAE,CAAC,CAAC,CAAA;KAChE,CAAA;AAEDF,IAAAA,IAAI,CAACK,YAAY,GAAG,UAASnD,SAAS,EAAE;MACtC,IAAI,CAACkD,QAAQ,CAACnB,WAAW,CACvBe,IAAI,CAAC7C,KAAK,CAAC+B,GAAG,CAACe,QAAQ,EAAE,EACzB,CAAEP,cAAc,EAAEQ,QAAQ,CAAE,EAC5BhD,SAAS,CACV,CAAC,CAAA;KACH,CAAA;AAED,IAAA,OAAO8C,IAAI,CAAA;AACb,GAAA;EAEA,MAAMA,IAAI,GAAG,IAAI,CAACM,KAAK,GAAGb,UAAU,CAACrB,QAAQ,CAAC,CAAA;AAE9C,EAAA,IAAI,CAAC+B,QAAQ,GAAG,UAASJ,KAAK,EAAE;AAC9BC,IAAAA,IAAI,CAACG,QAAQ,CAACJ,KAAK,CAAC,CAAA;GACrB,CAAA;EAED,IAAI,CAACQ,QAAQ,GAAG,YAAW;AACzB,IAAA,OAAOP,IAAI,CAAC7C,KAAK,CAAC+B,GAAG,CAACe,QAAQ,EAAE,CAAA;GACjC,CAAA;;AAED;AACF;AACA;AACE,EAAA,IAAI,CAACI,YAAY,GAAG,UAASnD,SAAS,EAAE;AACtC8C,IAAAA,IAAI,CAACK,YAAY,CAACnD,SAAS,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,IAAI,CAACsD,EAAE,GAAGnC,OAAO,CAACmC,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAGpC,OAAO,CAACoC,GAAG,CAAA;AACtB,EAAA,IAAI,CAACX,IAAI,GAAGzB,OAAO,CAACyB,IAAI,CAAA;AAExB,EAAA,IAAI,CAACY,QAAQ,GAAG,UAASC,SAAS,EAAE;AAClCA,IAAAA,SAAS,CAACC,WAAW,CAACZ,IAAI,CAACa,GAAG,CAAC,CAAA;GAChC,CAAA;EAED,IAAI,CAACC,OAAO,GAAG,YAAW;AACxB,IAAA,IAAId,IAAI,CAACa,GAAG,CAACE,UAAU,EAAE;MACvBf,IAAI,CAACa,GAAG,CAACE,UAAU,CAACC,WAAW,CAAChB,IAAI,CAACa,GAAG,CAAC,CAAA;AAC3C,KAAA;IAEAb,IAAI,CAACc,OAAO,EAAE,CAAA;GACf,CAAA;AACH;;AChHO,SAASG,OAAO,CAAClG,KAAK,EAAE;AAE7B,EAAA,MAAMmG,QAAQ,GACZC,KAAK,CAACC,OAAO,CAACrG,KAAK,CAACa,QAAQ,CAAC,GACzBb,KAAK,CAACa,QAAQ,GAChB,CAAEb,KAAK,CAACa,QAAQ,CAAE,CAAA;EAEtB,MAAM;IACJyF,WAAW;AACXzF,IAAAA,QAAAA;GACD,GAAGsF,QAAQ,CAACI,MAAM,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;AAChC,IAAA,MAAMC,MAAM,GACVD,KAAK,CAAC/D,IAAI,KAAKwD,OAAO,CAACS,UAAU,GAC7BH,CAAC,CAACF,WAAW,GACbE,CAAC,CAAC3F,QAAQ,CAAA;AAEhB6F,IAAAA,MAAM,CAACE,IAAI,CAACH,KAAK,CAAC,CAAA;AAElB,IAAA,OAAOD,CAAC,CAAA;AACV,GAAC,EAAE;AAAEF,IAAAA,WAAW,EAAE,EAAE;AAAEzF,IAAAA,QAAQ,EAAE,EAAA;AAAG,GAAC,CAAC,CAAA;EAErC,OACEH,IAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,iBAAiB;IAAA,QAC1B,EAAA,CAAAA,IAAA,CAAA,IAAA,EAAA;AAAI,MAAA,KAAK,EAAC,QAAQ;AAAA,MAAA,QAAA,EAAA,CAAGV,KAAK,CAACY,IAAI,OAAK0F,WAAW,CAACO,MAAM,GAAGlG,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,KAAK,EAAC,cAAc;QAAA,QAAG2F,EAAAA,WAAAA;AAAW,OAAA,CAAS,GAAG,IAAI,CAAA;AAAA,KAAA,CAAO,EACxH3F,GAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,MAAM;MAAA,QACbE,EAAAA,QAAAA;KACE,CAAA,CAAA;GACF,CAAA,CAAA;AAEV,CAAA;AAEAqF,OAAO,CAACS,UAAU,GAAG,UAAS3G,KAAK,EAAE;EACnC,OAAOA,KAAK,CAACa,QAAQ,CAAA;AACvB,CAAC;;ACTM,SAASiG,cAAc,CAAC9G,KAAK,EAAE;EAEpC,MAAM;AACJ+G,IAAAA,OAAO,EAAEC,aAAa,GAAG,EAAE;IAC3BjC,IAAI;IACJkC,QAAQ,EAAEC,cAAc,GAAG,EAAC;AAC9B,GAAC,GAAGlH,KAAK,CAAA;EAET,MAAM;IACJmH,OAAO,EAAEC,cAAc,GAAG,IAAA;AAC5B,GAAC,GAAGJ,aAAa,CAAA;EAEjB,MAAMK,mBAAmB,GAAGlG,MAAM,EAAE,CAAA;EACpC,MAAMmG,kBAAkB,GAAGnG,MAAM,EAAE,CAAA;EACnC,MAAMoG,gBAAgB,GAAGpG,MAAM,EAAE,CAAA;EACjC,MAAMqG,gBAAgB,GAAGrG,MAAM,EAAE,CAAA;EACjC,MAAMsG,kBAAkB,GAAGtG,MAAM,EAAE,CAAA;EACnC,MAAMuG,2BAA2B,GAAGvG,MAAM,EAAE,CAAA;EAE5C,MAAMwG,UAAU,GAAGxG,MAAM,EAAE,CAAA;EAC3B,MAAMyG,aAAa,GAAGzG,MAAM,EAAE,CAAA;EAC9B,MAAM0G,OAAO,GAAG1G,MAAM,EAAE,CAAA;EACxB,MAAM2G,aAAa,GAAG3G,MAAM,EAAE,CAAA;EAC9B,MAAM4G,aAAa,GAAG5G,MAAM,EAAE,CAAA;EAC9B,MAAM6G,kBAAkB,GAAG7G,MAAM,EAAE,CAAA;EAEnC,MAAM,CAAE8G,SAAS,EAAEC,YAAY,CAAE,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEnD,EAAA,MAAM,CAAEC,WAAW,CAAE,GAAGD,QAAQ,CAACnI,KAAK,CAACiB,IAAI,IAAI,EAAE,CAAC,CAAA;EAClD,MAAM,CAAEoH,aAAa,EAAEC,gBAAgB,CAAE,GAAGH,QAAQ,CAACnI,KAAK,CAACe,MAAM,CAAC,CAAA;AAElE,EAAA,MAAM,CAAEE,IAAI,EAAEsH,OAAO,CAAE,GAAGJ,QAAQ,CAACnI,KAAK,CAACiB,IAAI,IAAI,EAAE,CAAC,CAAA;EACpD,MAAM,CAAEF,MAAM,EAAEyH,SAAS,CAAE,GAAGL,QAAQ,CAACnI,KAAK,CAACe,MAAM,CAAC,CAAA;EAEpD,MAAM,CAAE0H,UAAU,EAAEC,aAAa,CAAE,GAAGP,QAAQ,CAAC,EAAE,CAAC,CAAA;;AAElD;AACAlI,EAAAA,SAAS,CAAC,MAAM;IACdD,KAAK,CAAC2I,MAAM,CAAC;MACXC,mBAAmB,EAAGC,IAAI,IAAKf,aAAa,CAACxG,OAAO,CAACqE,QAAQ,CAACkD,IAAI,CAAC;MACnEC,qBAAqB,EAAGD,IAAI,IAAKjB,aAAa,CAACtG,OAAO,CAACqE,QAAQ,CAACkD,IAAI,CAAC;MACrEE,mBAAmB,EAAGF,IAAI,IAAKhB,OAAO,CAACvG,OAAO,CAACqE,QAAQ,CAACkD,IAAI,CAAC;MAC7DG,sBAAsB,EAAGH,IAAI,IAAKlB,UAAU,CAACrG,OAAO,CAACqE,QAAQ,CAACkD,IAAI,CAAC;MACnEI,8BAA8B,EAAGJ,IAAI,IAAKb,kBAAkB,CAAC1G,OAAO,CAACqE,QAAQ,CAACkD,IAAI,CAAC;MACnFK,qBAAqB,EAAGL,IAAI,IAAKd,aAAa,CAACzG,OAAO,CAACqE,QAAQ,CAACkD,IAAI,CAAC;AACrEM,MAAAA,GAAG,EAAE,CAACvI,IAAI,EAAEwI,MAAM,KAAKxB,aAAa,CAACtG,OAAO,CAAC6H,GAAG,CAACvI,IAAI,EAAEwI,MAAM,CAAC;AAC9DC,MAAAA,aAAa,EAAE,MAAMvB,aAAa,CAACxG,OAAO;AAC1CgI,MAAAA,SAAS,EAAE,MAAM1B,aAAa,CAACtG,OAAO;AACtCiI,MAAAA,OAAO,EAAE,MAAM1B,OAAO,CAACvG,OAAO;AAC9BkI,MAAAA,aAAa,EAAE,MAAMzB,aAAa,CAACzG,OAAO;AAC1CmI,MAAAA,SAAS,EAAE,MAAM7B,aAAa,CAACtG,OAAO,CAACmI,SAAS,EAAE;AAClDjB,MAAAA,SAAS,EAAEF,gBAAgB;AAC3BoB,MAAAA,UAAU,EAAE,MAAM9B,aAAa,CAACtG,OAAO,CAACoI,UAAU,EAAA;AACpD,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AAEFzJ,EAAAA,SAAS,CAAC,MAAM;AACdqI,IAAAA,gBAAgB,CAACtI,KAAK,CAACe,MAAM,IAAI,EAAE,CAAC,CAAA;AACtC,GAAC,EAAE,CAAEf,KAAK,CAACe,MAAM,CAAE,CAAC,CAAA;AAEpBd,EAAAA,SAAS,CAAC,MAAM;IACd,MAAM0J,UAAU,GAAG7B,aAAa,CAACxG,OAAO,GAAG,IAAI8B,UAAU,CAAC;MACxD4B,KAAK,EAAEE,QAAQ,CAACjE,IAAI,CAAA;AACtB,KAAC,CAAC,CAAA;IAEF,MAAM2I,UAAU,GAAG7B,aAAa,CAACzG,OAAO,GAAG,IAAI8B,UAAU,CAAC;AACxDC,MAAAA,QAAQ,EAAE,IAAI;MACd2B,KAAK,EAAEE,QAAQ,CAACuD,UAAU,CAAA;AAC5B,KAAC,CAAC,CAAA;IAEF,MAAMoB,IAAI,GAAGhC,OAAO,CAACvG,OAAO,GAAG,IAAIwI,IAAI,EAAE,CAAA;IACzC,MAAMC,UAAU,GAAGnC,aAAa,CAACtG,OAAO,GAAG,IAAI0I,UAAU,CAAC;AACxDC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,OAAO,EAAE,IAAA;OACV;AACDC,MAAAA,OAAO,EAAE;QACPC,MAAM,EAAE/C,mBAAmB,CAAC/F,OAAAA;OAC7B;AACD+I,MAAAA,eAAe,EAAE;QACfD,MAAM,EAAE1C,2BAA2B,CAACpG,OAAAA;OACrC;AACD2F,MAAAA,QAAQ,EAAEC,cAAAA;AACZ,KAAC,CAAC,CAAA;IAEFS,UAAU,CAACrG,OAAO,GAAGyI,UAAU,CAACZ,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9CnB,kBAAkB,CAAC1G,OAAO,GAAGyI,UAAU,CAACZ,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAE9DY,IAAAA,UAAU,CAACtE,EAAE,CAAC,SAAS,EAAE,MAAM;AAC7B+C,MAAAA,SAAS,CAACuB,UAAU,CAACN,SAAS,EAAE,CAAC,CAAA;AACnC,KAAC,CAAC,CAAA;AAEFM,IAAAA,UAAU,CAACtE,EAAE,CAAC,qBAAqB,EAAE,MAAM;AAEzC;MACAV,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACjC,KAAC,CAAC,CAAA;AAEF8E,IAAAA,IAAI,CAACpE,EAAE,CAAC,SAAS,EAAE,MAAM;AACvBiD,MAAAA,aAAa,CAACmB,IAAI,CAACS,cAAc,EAAE,CAAC,CAAA;AACtC,KAAC,CAAC,CAAA;AAEFX,IAAAA,UAAU,CAAClE,EAAE,CAAC,SAAS,EAAEtF,KAAK,IAAI;MAChC,IAAI;QACFoI,OAAO,CAAC9G,IAAI,CAAC8I,KAAK,CAACpK,KAAK,CAAC6E,KAAK,CAAC,CAAC,CAAA;OACjC,CAAC,OAAOwF,KAAK,EAAE;AAEd;AACAzF,QAAAA,IAAI,CAAC,+BAA+B,EAAEyF,KAAK,CAAC,CAAA;AAC9C,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMC,aAAa,GAAGlD,gBAAgB,CAACjG,OAAO,CAAA;AAC9C,IAAA,MAAMoJ,eAAe,GAAGpD,kBAAkB,CAAChG,OAAO,CAAA;AAClD,IAAA,MAAMqJ,aAAa,GAAGnD,gBAAgB,CAAClG,OAAO,CAAA;AAC9C,IAAA,MAAMsJ,eAAe,GAAGnD,kBAAkB,CAACnG,OAAO,CAAA;AAElDqI,IAAAA,UAAU,CAAChE,QAAQ,CAACgF,aAAa,CAAC,CAAA;AAClCf,IAAAA,UAAU,CAACjE,QAAQ,CAACiF,eAAe,CAAC,CAAA;AACpCf,IAAAA,IAAI,CAAClE,QAAQ,CAAC8E,aAAa,CAAC,CAAA;AAC5BV,IAAAA,UAAU,CAACpE,QAAQ,CAAC+E,eAAe,CAAC,CAAA;AAEpC,IAAA,OAAO,MAAM;MACXf,UAAU,CAAC5D,OAAO,EAAE,CAAA;MACpB6D,UAAU,CAAC7D,OAAO,EAAE,CAAA;MACpB8D,IAAI,CAAC9D,OAAO,EAAE,CAAA;MACdgE,UAAU,CAAChE,OAAO,EAAE,CAAA;KACrB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN9F,EAAAA,SAAS,CAAC,MAAM;IACd6H,aAAa,CAACxG,OAAO,CAAC8D,QAAQ,CAACF,QAAQ,CAACkD,WAAW,CAAC,CAAC,CAAA;AACvD,GAAC,EAAE,CAAEA,WAAW,CAAE,CAAC,CAAA;AAEnBnI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIoI,aAAa,EAAE;AACjBT,MAAAA,aAAa,CAACtG,OAAO,CAACuJ,YAAY,CAACxC,aAAa,CAAC,CAAA;MACjDP,aAAa,CAACxG,OAAO,CAACgE,YAAY,CAACwF,kBAAkB,CAACzC,aAAa,CAAC,CAAC,CAAA;AACvE,KAAA;AACF,GAAC,EAAE,CAAEA,aAAa,CAAE,CAAC,CAAA;AAErBpI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIc,MAAM,IAAIyG,gBAAgB,CAAClG,OAAO,EAAE;AACtC,MAAA,MAAMa,SAAS,GAAG2I,kBAAkB,CAAC/J,MAAM,CAAC,CAAA;AAC5C+G,MAAAA,aAAa,CAACxG,OAAO,CAACgE,YAAY,CAACnD,SAAS,CAAC,CAAA;AAC/C,KAAA;AACF,GAAC,EAAE,CAAEpB,MAAM,CAAE,CAAC,CAAA;AAEdd,EAAAA,SAAS,CAAC,MAAM;IACdc,MAAM,IAAI8G,OAAO,CAACvG,OAAO,CAACuJ,YAAY,CAAC9J,MAAM,EAAEE,IAAI,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEF,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpBhB,EAAAA,SAAS,CAAC,MAAM;IACd8H,aAAa,CAACzG,OAAO,CAAC8D,QAAQ,CAACF,QAAQ,CAACuD,UAAU,CAAC,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEA,UAAU,CAAE,CAAC,CAAA;AAElBxI,EAAAA,SAAS,CAAC,MAAM;IACdD,KAAK,CAAC+K,cAAc,CAAC;MACnBhK,MAAM;AACNE,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAAEF,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpB,EAAA,MAAM+J,cAAc,GAAGC,WAAW,CAAC,MAAM;AAEvCC,IAAAA,QAAQ,CAACzJ,IAAI,CAACC,SAAS,CAACX,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AACxE,GAAC,EAAE,CAAEA,MAAM,CAAE,CAAC,CAAA;AAEd,EAAA,MAAMoK,cAAc,GAAGF,WAAW,CAAC,MAAM;IACvC/C,YAAY,CAAC,KAAK,CAAC,CAAA;GACpB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMkD,cAAc,GAAGH,WAAW,CAAC,MAAM;IACvC/C,YAAY,CAAC,IAAI,CAAC,CAAA;GACnB,EAAE,EAAE,CAAC,CAAA;EAEN,OACExH,IAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAG2K,UAAU,CACrB,eAAe,EACf,cAAc,CACb;IAAA,QACD,EAAA,CAAA1K,GAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,gBAAgB;MAAA,QACvBsH,EAAAA,SAAS,GAAGtH,GAAA,CAAC,UAAU,EAAA;AAAC,QAAA,MAAM,EAAGI,MAAQ;AAAC,QAAA,IAAI,EAAGE,IAAM;AAAC,QAAA,OAAO,EAAGkK,cAAAA;AAAgB,OAAA,CAAG,GAAG,IAAA;AAAI,KAAA,CAC1F,EACNxK,GAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,2BAA2B;AAAC,MAAA,GAAG,EAAG0G,mBAAAA;AAAqB,KAAA,CAAG,EACrE3G,IAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,cAAc;AAAA,MAAA,QAAA,EAAA,CAEvBA,KAAC,OAAO,EAAA;AAAC,QAAA,IAAI,EAAC,iBAAiB;AAAA,QAAA,QAAA,EAAA,CAG3B0G,cAAc,IAAIzG,GAAC,CAAA,OAAO,CAAC,UAAU,EAAA;UAAA,QACnC,EAAAA,GAAA,CAAA,QAAA,EAAA;AACE,YAAA,KAAK,EAAC,gBAAgB;AACtB,YAAA,KAAK,EAAC,0BAA0B;AAChC,YAAA,OAAO,EAAGqK,cAAgB;AAAA,YAAA,QAAA,EAAA,UAAA;AAAA,WAAA,CAAA;AACV,SAAA,CACC,EAIrB5D,cAAc,IAAIzG,GAAC,CAAA,OAAO,CAAC,UAAU,EAAA;UAAA,QACnC,EAAAA,GAAA,CAAA,QAAA,EAAA;AACE,YAAA,KAAK,EAAC,gBAAgB;AACtB,YAAA,OAAO,EAAGyK,cAAgB;AAAA,YAAA,QAAA,EAAA,OAAA;AAAA,WAAA,CAAA;AACb,SAAA,CACI,EAGvBzK,GAAA,CAAA,KAAA,EAAA;AAAK,UAAA,GAAG,EAAG2G,kBAAoB;AAAC,UAAA,KAAK,EAAC,wBAAA;SAA+B,CAAA,CAAA;OAC7D,CAAA,EACV3G,IAAC,OAAO,EAAA;AAAC,QAAA,IAAI,EAAC,cAAc;QAAA,QAC1B,EAAAA,GAAA,CAAA,KAAA,EAAA;AAAK,UAAA,GAAG,EAAG4G,gBAAkB;AAAC,UAAA,KAAK,EAAC,wBAAA;AAAwB,SAAA,CAAA;OACpD,CAAA,EACV5G,IAAC,OAAO,EAAA;AAAC,QAAA,IAAI,EAAC,YAAY;QAAA,QACxB,EAAAA,GAAA,CAAA,KAAA,EAAA;AAAK,UAAA,GAAG,EAAG6G,gBAAkB;AAAC,UAAA,KAAK,EAAC,wBAAA;AAAwB,SAAA,CAAA;OACpD,CAAA,EACV7G,IAAC,OAAO,EAAA;AAAC,QAAA,IAAI,EAAC,aAAa;QAAA,QACzB,EAAAA,GAAA,CAAA,KAAA,EAAA;AAAK,UAAA,GAAG,EAAG8G,kBAAoB;AAAC,UAAA,KAAK,EAAC,wBAAA;AAAwB,SAAA,CAAA;OACtD,CAAA,CAAA;AAAA,KAAA,CACN,EACN9G,GAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,8BAA8B;AAAC,MAAA,GAAG,EAAG+G,2BAAAA;KAAgC,CAAA,CAAA;GAC5E,CAAA,CAAA;AAEV,CAAA;;AAGA;;AAEA,SAASxC,QAAQ,CAAC1D,GAAG,EAAE;EACrB,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACxC;;ACvOe,SAAS8J,UAAU,CAAChJ,OAAO,EAAE;EAE1C,MAAM;AACJsD,IAAAA,SAAS,EAAEwE,MAAM;IACjBrJ,MAAM;IACNE,IAAI;IACJ,GAAGsK,IAAAA;AACL,GAAC,GAAGjJ,OAAO,CAAA;EAEX,MAAMgB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,IAAInB,KAAK,GAAG;IAAEnB,IAAI;AAAEF,IAAAA,MAAAA;GAAQ,CAAA;AAC5B,EAAA,IAAIyK,GAAG,CAAA;AAEP,EAAA,MAAM5F,SAAS,GAAGrF,QAAQ,CAACkL,aAAa,CAAC,KAAK,CAAC,CAAA;AAE/C7F,EAAAA,SAAS,CAAC8F,SAAS,CAACC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAEzC,EAAA,IAAIvB,MAAM,EAAE;AACVA,IAAAA,MAAM,CAACvE,WAAW,CAACD,SAAS,CAAC,CAAA;AAC/B,GAAA;EAEA,MAAMgG,UAAU,GAAGC,QAAQ,CAAC,kBAAkB,EAAE,UAASC,KAAK,EAAE;AAC9D,IAAA,MAAMC,IAAI,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAA;AAErB,IAAA,IAAIC,IAAI,EAAE;MACR,IAAI;QACFP,GAAG,CAAChD,SAAS,CAAC/G,IAAI,CAAC8I,KAAK,CAACwB,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAA;OACzC,CAAC,OAAOC,GAAG,EAAE;;AAEZ;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,OAAO,GAAG,UAASC,EAAE,EAAE;IAC3B,OAAO,UAAS,GAAGC,IAAI,EAAE;MACvB,IAAI,CAACZ,GAAG,EAAE;AACR,QAAA,MAAM,IAAIa,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACnD,OAAA;AAEA,MAAA,OAAOF,EAAE,CAAC,GAAGC,IAAI,CAAC,CAAA;KACnB,CAAA;GACF,CAAA;AAED,EAAA,MAAMzD,MAAM,GAAG,UAAS2D,IAAI,EAAE;AAC5Bd,IAAAA,GAAG,GAAGc,IAAI,CAAA;AACVhJ,IAAAA,OAAO,CAACyB,IAAI,CAAC,qBAAqB,CAAC,CAAA;GACpC,CAAA;AAEDa,EAAAA,SAAS,CAACpF,gBAAgB,CAAC,UAAU,EAAEoL,UAAU,CAAC,CAAA;EAElDW,MAAM,CACJ5L,IAAC,cAAc,EAAA;AACb,IAAA,IAAI,EAAGM,IAAM;IACb,IAAI,EAAGqC,OAAO,CAACyB,IAAM;AACrB,IAAA,MAAM,EAAG4D,MAAQ;AACjB,IAAA,cAAc,EAAI6D,MAAM,IAAKpK,KAAK,GAAGoK,MAAQ;AAC7C,IAAA,MAAM,EAAGzL,MAAQ;IAAA,GACZwK,IAAAA;GACL,CAAA,EACF3F,SAAS,CACV,CAAA;AAED,EAAA,IAAI,CAACH,EAAE,GAAGnC,OAAO,CAACmC,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAGpC,OAAO,CAACoC,GAAG,CAAA;AAEtB,EAAA,IAAI,CAACX,IAAI,GAAGzB,OAAO,CAACyB,IAAI,CAAA;AAExB,EAAA,IAAI,CAACU,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B8G,IAAAA,MAAM,CAAC,IAAI,EAAE3G,SAAS,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEF,EAAA,IAAI,CAACH,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B2E,IAAAA,MAAM,CAACnE,WAAW,CAACL,SAAS,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;EAEF,IAAI,CAAC6G,QAAQ,GAAG,YAAW;AACzB,IAAA,OAAOrK,KAAK,CAAA;GACb,CAAA;EAED,IAAI,CAACqH,SAAS,GAAGyC,OAAO,CAAC,MAAMV,GAAG,CAAC/B,SAAS,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACjB,SAAS,GAAG0D,OAAO,CAAEnL,MAAM,IAAKyK,GAAG,CAAChD,SAAS,CAACzH,MAAM,CAAC,CAAC,CAAA;EAE3D,IAAI,CAAC2I,UAAU,GAAGwC,OAAO,CAAC,MAAMV,GAAG,CAAC9B,UAAU,EAAE,CAAC,CAAA;AAEjD,EAAA,IAAI,CAACP,GAAG,GAAG+C,OAAO,CAAC,CAACtL,IAAI,EAAEwI,MAAM,KAAKoC,GAAG,CAACrC,GAAG,CAACvI,IAAI,EAAEwI,MAAM,CAAC,CAAC,CAAA;EAE3D,IAAI,CAACC,aAAa,GAAG6C,OAAO,CAAC,MAAMV,GAAG,CAACnC,aAAa,EAAE,CAAC,CAAA;EAEvD,IAAI,CAACC,SAAS,GAAG4C,OAAO,CAAC,MAAMV,GAAG,CAAClC,SAAS,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACC,OAAO,GAAG2C,OAAO,CAAC,CAACtL,IAAI,EAAEwI,MAAM,KAAKoC,GAAG,CAACjC,OAAO,CAAC3I,IAAI,EAAEwI,MAAM,CAAC,CAAC,CAAA;EAEnE,IAAI,CAACI,aAAa,GAAG0C,OAAO,CAAC,MAAMV,GAAG,CAAChC,aAAa,EAAE,CAAC,CAAA;EAEvD,IAAI,CAACzD,OAAO,GAAG,YAAW;AACxB,IAAA,IAAI,CAAChB,IAAI,CAAC,SAAS,CAAC,CAAA;GACrB,CAAA;AAED,EAAA,IAAI,CAAC+D,qBAAqB,GAAGoD,OAAO,CAAErD,IAAI,IAAK2C,GAAG,CAAC1C,qBAAqB,CAACD,IAAI,CAAC,CAAC,CAAA;AAE/E,EAAA,IAAI,CAAC6D,sBAAsB,GAAGR,OAAO,CAAErD,IAAI,IAAK2C,GAAG,CAACzC,mBAAmB,CAACF,IAAI,CAAC,CAAC,CAAA;AAE9E,EAAA,IAAI,CAACD,mBAAmB,GAAGsD,OAAO,CAAErD,IAAI,IAAK2C,GAAG,CAAC5C,mBAAmB,CAACC,IAAI,CAAC,CAAC,CAAA;AAE3E,EAAA,IAAI,CAACK,qBAAqB,GAAGgD,OAAO,CAAErD,IAAI,IAAK2C,GAAG,CAACtC,qBAAqB,CAACL,IAAI,CAAC,CAAC,CAAA;AAE/E,EAAA,IAAI,CAACG,sBAAsB,GAAGkD,OAAO,CAAErD,IAAI,IAAK2C,GAAG,CAACxC,sBAAsB,CAACH,IAAI,CAAC,CAAC,CAAA;AAEjF,EAAA,IAAI,CAACI,8BAA8B,GAAGiD,OAAO,CAAErD,IAAI,IAAK2C,GAAG,CAACvC,8BAA8B,CAACJ,IAAI,CAAC,CAAC,CAAA;AACnG;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\n\nimport { syntaxTree } from '@codemirror/language';\n\nimport { variablesFacet } from './VariablesFacet';\n\nexport default function() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\n\nimport autocompletion from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\n\nexport function JSONEditor(options = {}) {\n const {\n readonly = false,\n contentAttributes = {}\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletion(),\n keymap.of([ indentWithTab ]),\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(container) {\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\n\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = []\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || {});\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n props.onInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n });\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input' }\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output' }\n });\n\n const form = formRef.current = new Form({\n additionalModules: viewerAdditionalModules,\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: editorAdditionalModules\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notifiy interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n props.onStateChanged({\n schema,\n data\n });\n }, [ schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { {\n * actions?: { display: Boolean }\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * exporter?: { name: String, version: String }\n * schema: any\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport default function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","_jsx","name","children","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","JSONEditor","readonly","contentAttributes","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","autocompletionConf","linterExtension","linter","jsonParseLinter","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","view","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","length","PlaygroundRoot","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","attachDataContainer","node","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","resultView","form","Form","additionalModules","properties","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","Playground","rest","ref","createElement","classList","add","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
@@ -1 +1 @@
1
- export function EmbedModal(props: any): any;
1
+ export function EmbedModal(props: any): JSX.Element;
@@ -1 +1 @@
1
- export function Modal(props: any): any;
1
+ export function Modal(props: any): JSX.Element;
@@ -1 +1 @@
1
- export function PlaygroundRoot(props: any): any;
1
+ export function PlaygroundRoot(props: any): JSX.Element;
@@ -1,4 +1,4 @@
1
- export function Section(props: any): any;
1
+ export function Section(props: any): JSX.Element;
2
2
  export namespace Section {
3
3
  function HeaderItem(props: any): any;
4
4
  }