@bpmn-io/form-js-playground 0.8.0-alpha.1 → 0.9.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.es.js CHANGED
@@ -3,9 +3,12 @@ import fileDrop from 'file-drops';
3
3
  import mitt from 'mitt';
4
4
  import { useEffect, useRef, useState, useCallback } from 'preact/hooks';
5
5
  import download from 'downloadjs';
6
- import { Form, FormEditor } from '@bpmn-io/form-js';
6
+ import classNames from 'classnames';
7
+ import { Form } from '@bpmn-io/form-js-viewer';
8
+ import { FormEditor } from '@bpmn-io/form-js-editor';
7
9
  import { jsxs, jsx } from 'preact/jsx-runtime';
8
- import { EditorView, basicSetup } from '@codemirror/basic-setup';
10
+ import { basicSetup } from 'codemirror';
11
+ import { EditorView } from '@codemirror/view';
9
12
  import { Compartment, EditorState } from '@codemirror/state';
10
13
  import { json } from '@codemirror/lang-json';
11
14
 
@@ -196,24 +199,50 @@ Section.HeaderItem = function (props) {
196
199
  };
197
200
 
198
201
  function PlaygroundRoot(props) {
202
+ const {
203
+ actions: actionsConfig = {},
204
+ editor: editorConfig = {},
205
+ emit,
206
+ exporter: exporterConfig = {}
207
+ } = props;
208
+ const {
209
+ display: displayActions = true
210
+ } = actionsConfig;
211
+ const {
212
+ inlinePropertiesPanel = true
213
+ } = editorConfig;
199
214
  const paletteContainerRef = useRef();
200
215
  const editorContainerRef = useRef();
201
216
  const formContainerRef = useRef();
202
217
  const dataContainerRef = useRef();
203
218
  const resultContainerRef = useRef();
219
+ const propertiesPanelContainerRef = useRef();
220
+ const paletteRef = useRef();
204
221
  const formEditorRef = useRef();
205
222
  const formRef = useRef();
206
223
  const dataEditorRef = useRef();
207
224
  const resultViewRef = useRef();
225
+ const propertiesPanelRef = useRef();
208
226
  const [showEmbed, setShowEmbed] = useState(false);
209
227
  const [initialData] = useState(props.data || {});
210
228
  const [initialSchema, setInitialSchema] = useState(props.schema);
211
229
  const [data, setData] = useState(props.data || {});
212
230
  const [schema, setSchema] = useState(props.schema);
213
- const [resultData, setResultData] = useState(props.data || {});
231
+ const [resultData, setResultData] = useState(props.data || {}); // pipe to playground API
232
+
214
233
  useEffect(() => {
215
234
  props.onInit({
216
- setSchema: setInitialSchema
235
+ attachDataContainer: node => dataEditorRef.current.attachTo(node),
236
+ attachEditorContainer: node => formEditorRef.current.attachTo(node),
237
+ attachFormContainer: node => formRef.current.attachTo(node),
238
+ attachPaletteContainer: node => paletteRef.current.attachTo(node),
239
+ attachPropertiesPanelContainer: node => propertiesPanelRef.current.attachTo(node),
240
+ attachResultContainer: node => resultViewRef.current.attachTo(node),
241
+ get: (name, strict) => formEditorRef.current.get(name, strict),
242
+ getEditor: () => formEditorRef.current,
243
+ getSchema: () => formEditorRef.current.getSchema(),
244
+ setSchema: setInitialSchema,
245
+ saveSchema: () => formEditorRef.current.saveSchema()
217
246
  });
218
247
  });
219
248
  useEffect(() => {
@@ -234,11 +263,21 @@ function PlaygroundRoot(props) {
234
263
  },
235
264
  palette: {
236
265
  parent: paletteContainerRef.current
237
- }
266
+ },
267
+ propertiesPanel: {
268
+ parent: !inlinePropertiesPanel && propertiesPanelContainerRef.current
269
+ },
270
+ exporter: exporterConfig
238
271
  });
272
+ paletteRef.current = formEditor.get('palette');
273
+ propertiesPanelRef.current = formEditor.get('propertiesPanel');
239
274
  formEditor.on('changed', () => {
240
275
  setSchema(formEditor.getSchema());
241
276
  });
277
+ formEditor.on('formEditor.rendered', () => {
278
+ // notifiy interested parties after render
279
+ emit('formPlayground.rendered');
280
+ });
242
281
  form.on('changed', event => {
243
282
  setResultData(event.data);
244
283
  });
@@ -267,10 +306,10 @@ function PlaygroundRoot(props) {
267
306
  dataEditorRef.current.setValue(toJSON(initialData));
268
307
  }, [initialData]);
269
308
  useEffect(() => {
270
- formEditorRef.current.importSchema(initialSchema);
309
+ initialSchema && formEditorRef.current.importSchema(initialSchema);
271
310
  }, [initialSchema]);
272
311
  useEffect(() => {
273
- formRef.current.importSchema(schema, data);
312
+ schema && formRef.current.importSchema(schema, data);
274
313
  }, [schema, data]);
275
314
  useEffect(() => {
276
315
  resultViewRef.current.setValue(toJSON(resultData));
@@ -291,7 +330,9 @@ function PlaygroundRoot(props) {
291
330
  setShowEmbed(true);
292
331
  }, []);
293
332
  return jsxs("div", {
294
- class: "fjs-container fjs-pgl-root",
333
+ class: classNames('fjs-container', 'fjs-pgl-root', {
334
+ 'fjs-pgl-inline-editor-panel': inlinePropertiesPanel
335
+ }),
295
336
  children: [jsx("div", {
296
337
  class: "fjs-pgl-modals",
297
338
  children: showEmbed ? jsx(EmbedModal, {
@@ -306,14 +347,14 @@ function PlaygroundRoot(props) {
306
347
  class: "fjs-pgl-main",
307
348
  children: [jsxs(Section, {
308
349
  name: "Form Definition",
309
- children: [jsx(Section.HeaderItem, {
350
+ children: [displayActions && jsx(Section.HeaderItem, {
310
351
  children: jsx("button", {
311
352
  class: "fjs-pgl-button",
312
353
  title: "Download form definition",
313
354
  onClick: handleDownload,
314
355
  children: "Download"
315
356
  })
316
- }), jsx(Section.HeaderItem, {
357
+ }), displayActions && jsx(Section.HeaderItem, {
317
358
  children: jsx("button", {
318
359
  class: "fjs-pgl-button",
319
360
  onClick: showEmbedModal,
@@ -342,6 +383,9 @@ function PlaygroundRoot(props) {
342
383
  class: "fjs-pgl-text-container"
343
384
  })
344
385
  })]
386
+ }), jsx("div", {
387
+ class: "fjs-pgl-properties-container",
388
+ ref: propertiesPanelContainerRef
345
389
  })]
346
390
  });
347
391
  } // helpers ///////////////
@@ -354,7 +398,8 @@ function Playground(options) {
354
398
  const {
355
399
  container: parent,
356
400
  schema,
357
- data
401
+ data,
402
+ ...rest
358
403
  } = options;
359
404
  const emitter = mitt();
360
405
  let state = {
@@ -364,7 +409,11 @@ function Playground(options) {
364
409
  let ref;
365
410
  const container = document.createElement('div');
366
411
  container.classList.add('fjs-pgl-parent');
367
- parent.appendChild(container);
412
+
413
+ if (parent) {
414
+ parent.appendChild(container);
415
+ }
416
+
368
417
  const handleDrop = fileDrop('Drop a form file', function (files) {
369
418
  const file = files[0];
370
419
 
@@ -375,12 +424,30 @@ function Playground(options) {
375
424
  }
376
425
  }
377
426
  });
427
+
428
+ const withRef = function (fn) {
429
+ return function (...args) {
430
+ if (!ref) {
431
+ throw new Error('Playground is not initialized.');
432
+ }
433
+
434
+ return fn(...args);
435
+ };
436
+ };
437
+
438
+ const onInit = function (_ref) {
439
+ ref = _ref;
440
+ emitter.emit('formPlayground.init');
441
+ };
442
+
378
443
  container.addEventListener('dragover', handleDrop);
379
444
  render(jsx(PlaygroundRoot, {
380
- schema: schema,
381
445
  data: data,
446
+ emit: emitter.emit,
447
+ onInit: onInit,
382
448
  onStateChanged: _state => state = _state,
383
- onInit: _ref => ref = _ref
449
+ schema: schema,
450
+ ...rest
384
451
  }), container);
385
452
  this.on = emitter.on;
386
453
  this.off = emitter.off;
@@ -396,13 +463,44 @@ function Playground(options) {
396
463
  return state;
397
464
  };
398
465
 
399
- this.setSchema = function (schema) {
466
+ this.getSchema = withRef(function () {
467
+ return ref.getSchema();
468
+ });
469
+ this.setSchema = withRef(function (schema) {
400
470
  return ref.setSchema(schema);
401
- };
471
+ });
472
+ this.saveSchema = withRef(function () {
473
+ return ref.saveSchema();
474
+ });
475
+ this.get = withRef(function (name, strict) {
476
+ return ref.get(name, strict);
477
+ });
478
+ this.getEditor = withRef(function () {
479
+ return ref.getEditor();
480
+ });
402
481
 
403
482
  this.destroy = function () {
404
483
  this.emit('destroy');
405
484
  };
485
+
486
+ this.attachEditorContainer = withRef(function (node) {
487
+ return ref.attachEditorContainer(node);
488
+ });
489
+ this.attachPreviewContainer = withRef(function (node) {
490
+ return ref.attachFormContainer(node);
491
+ });
492
+ this.attachDataContainer = withRef(function (node) {
493
+ return ref.attachDataContainer(node);
494
+ });
495
+ this.attachResultContainer = withRef(function (node) {
496
+ return ref.attachResultContainer(node);
497
+ });
498
+ this.attachPaletteContainer = withRef(function (node) {
499
+ return ref.attachPaletteContainer(node);
500
+ });
501
+ this.attachPropertiesPanelContainer = withRef(function (node) {
502
+ return ref.attachPropertiesPanelContainer(node);
503
+ });
406
504
  }
407
505
 
408
506
  export { Playground };
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.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 mitt from 'mitt';\n\nimport { basicSetup, EditorView } from '@codemirror/basic-setup';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { json } from '@codemirror/lang-json';\n\n\nexport function JSONEditor(options = {}) {\n\n const emitter = mitt();\n\n const {\n readonly = false\n } = options;\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n function createState(doc, extensions = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\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 return view;\n }\n\n const 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 this.on = emitter.on;\n this.off = emitter.off;\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 {\n Form,\n FormEditor\n} from '@bpmn-io/form-js';\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 paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = 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(props.data || {});\n\n useEffect(() => {\n props.onInit({\n setSchema: setInitialSchema\n });\n });\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toJSON(data)\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toJSON(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 });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n form.on('changed', event => {\n setResultData(event.data);\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse 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(toJSON(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n formEditorRef.current.importSchema(initialSchema);\n }, [ initialSchema ]);\n\n useEffect(() => {\n formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toJSON(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=\"fjs-container fjs-pgl-root\">\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\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 Data (Input)\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Data (Submit)\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toJSON(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\nexport default function Playground(options) {\n\n const {\n container: parent,\n schema,\n data\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 parent.appendChild(container);\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 container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n schema={ schema }\n data={ data }\n onStateChanged={ (_state) => state = _state }\n onInit={ _ref => ref = _ref }\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.setSchema = function(schema) {\n return ref.setSchema(schema);\n };\n\n this.destroy = function() {\n this.emit('destroy');\n };\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","JSONEditor","options","emitter","mitt","readonly","language","Compartment","of","json","tabSize","EditorState","createState","doc","extensions","create","basicSetup","createView","updateListener","EditorView","update","docChanged","emit","value","view","state","toString","editable","setValue","setState","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","type","HeaderItem","push","length","PlaygroundRoot","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","formEditorRef","formRef","dataEditorRef","resultViewRef","showEmbed","setShowEmbed","useState","initialData","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","onInit","dataEditor","toJSON","resultView","form","Form","formEditor","FormEditor","renderer","compact","palette","parent","getSchema","parse","err","formContainer","editorContainer","dataContainer","resultContainer","importSchema","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","Playground","ref","createElement","classList","add","handleDrop","fileDrop","files","file","contents","render","_state","_ref","getState"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.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 mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { json } from '@codemirror/lang-json';\n\n\nexport function JSONEditor(options = {}) {\n\n const emitter = mitt();\n\n const {\n readonly = false\n } = options;\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n function createState(doc, extensions = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\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 return view;\n }\n\n const 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 this.on = emitter.on;\n this.off = emitter.off;\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} 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 editor: editorConfig = {},\n emit,\n exporter: exporterConfig = {}\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const {\n inlinePropertiesPanel = true\n } = editorConfig;\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(props.data || {});\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 getEditor: () => formEditorRef.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: toJSON(data)\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toJSON(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: !inlinePropertiesPanel && 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', event => {\n setResultData(event.data);\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse 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(toJSON(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n initialSchema && formEditorRef.current.importSchema(initialSchema);\n }, [ initialSchema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toJSON(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 { 'fjs-pgl-inline-editor-panel': inlinePropertiesPanel }) }>\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 Data (Input)\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Data (Submit)\">\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 toJSON(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(function() {\n return ref.getSchema();\n });\n\n this.setSchema = withRef(function(schema) {\n return ref.setSchema(schema);\n });\n\n this.saveSchema = withRef(function() {\n return ref.saveSchema();\n });\n\n this.get = withRef(function(name, strict) {\n return ref.get(name, strict);\n });\n\n this.getEditor = withRef(function() {\n return ref.getEditor();\n });\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef(function(node) {\n return ref.attachEditorContainer(node);\n });\n\n this.attachPreviewContainer = withRef(function(node) {\n return ref.attachFormContainer(node);\n });\n\n this.attachDataContainer = withRef(function(node) {\n return ref.attachDataContainer(node);\n });\n\n this.attachResultContainer = withRef(function(node) {\n return ref.attachResultContainer(node);\n });\n\n this.attachPaletteContainer = withRef(function(node) {\n return ref.attachPaletteContainer(node);\n });\n\n this.attachPropertiesPanelContainer = withRef(function(node) {\n return ref.attachPropertiesPanelContainer(node);\n });\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","JSONEditor","options","emitter","mitt","readonly","language","Compartment","of","json","tabSize","EditorState","createState","doc","extensions","create","basicSetup","createView","updateListener","EditorView","update","docChanged","emit","value","view","state","toString","editable","setValue","setState","getValue","on","off","attachTo","container","appendChild","dom","destroy","parentNode","removeChild","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","type","HeaderItem","push","length","PlaygroundRoot","actions","actionsConfig","editor","editorConfig","exporter","exporterConfig","display","displayActions","inlinePropertiesPanel","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","getEditor","getSchema","saveSchema","dataEditor","toJSON","resultView","form","Form","formEditor","FormEditor","renderer","compact","palette","parent","propertiesPanel","parse","err","formContainer","editorContainer","dataContainer","resultContainer","importSchema","onStateChanged","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","Playground","rest","ref","createElement","classList","add","handleDrop","fileDrop","files","file","contents","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @typedef { {
3
+ * actions?: { display: Boolean }
4
+ * container?: Element
5
+ * data: any
6
+ * editor?: { inlinePropertiesPanel: Boolean }
7
+ * exporter?: { name: String, version: String }
8
+ * schema: any
9
+ * } } FormPlaygroundOptions
10
+ */
11
+ /**
12
+ * @param {FormPlaygroundOptions} options
13
+ */
14
+ export default function Playground(options: FormPlaygroundOptions): void;
15
+ export default class Playground {
16
+ /**
17
+ * @typedef { {
18
+ * actions?: { display: Boolean }
19
+ * container?: Element
20
+ * data: any
21
+ * editor?: { inlinePropertiesPanel: Boolean }
22
+ * exporter?: { name: String, version: String }
23
+ * schema: any
24
+ * } } FormPlaygroundOptions
25
+ */
26
+ /**
27
+ * @param {FormPlaygroundOptions} options
28
+ */
29
+ constructor(options: FormPlaygroundOptions);
30
+ on: {
31
+ <Key extends import("mitt").EventType>(type: Key, handler: import("mitt").Handler<Record<import("mitt").EventType, unknown>[Key]>): void;
32
+ (type: "*", handler: import("mitt").WildcardHandler<Record<import("mitt").EventType, unknown>>): void;
33
+ };
34
+ off: {
35
+ <Key_1 extends import("mitt").EventType>(type: Key_1, handler?: import("mitt").Handler<Record<import("mitt").EventType, unknown>[Key_1]>): void;
36
+ (type: "*", handler: import("mitt").WildcardHandler<Record<import("mitt").EventType, unknown>>): void;
37
+ };
38
+ emit: {
39
+ <Key_2 extends import("mitt").EventType>(type: Key_2, event: Record<import("mitt").EventType, unknown>[Key_2]): void;
40
+ <Key_3 extends import("mitt").EventType>(type: undefined extends Record<import("mitt").EventType, unknown>[Key_3] ? Key_3 : never): void;
41
+ };
42
+ getState: () => {
43
+ data: any;
44
+ schema: any;
45
+ };
46
+ getSchema: (...args: any[]) => any;
47
+ setSchema: (...args: any[]) => any;
48
+ saveSchema: (...args: any[]) => any;
49
+ get: (...args: any[]) => any;
50
+ getEditor: (...args: any[]) => any;
51
+ destroy: () => void;
52
+ attachEditorContainer: (...args: any[]) => any;
53
+ attachPreviewContainer: (...args: any[]) => any;
54
+ attachDataContainer: (...args: any[]) => any;
55
+ attachResultContainer: (...args: any[]) => any;
56
+ attachPaletteContainer: (...args: any[]) => any;
57
+ attachPropertiesPanelContainer: (...args: any[]) => any;
58
+ }
59
+ export type FormPlaygroundOptions = {
60
+ actions?: {
61
+ display: boolean;
62
+ };
63
+ container?: Element;
64
+ data: any;
65
+ editor?: {
66
+ inlinePropertiesPanel: boolean;
67
+ };
68
+ exporter?: {
69
+ name: string;
70
+ version: string;
71
+ };
72
+ schema: any;
73
+ };
@@ -0,0 +1 @@
1
+ export function EmbedModal(props: any): any;
@@ -0,0 +1,16 @@
1
+ export function JSONEditor(options?: {}): void;
2
+ export class JSONEditor {
3
+ constructor(options?: {});
4
+ setValue: (value: any) => void;
5
+ getValue: () => string;
6
+ on: {
7
+ <Key extends import("mitt").EventType>(type: Key, handler: import("mitt").Handler<Record<import("mitt").EventType, unknown>[Key]>): void;
8
+ (type: "*", handler: import("mitt").WildcardHandler<Record<import("mitt").EventType, unknown>>): void;
9
+ };
10
+ off: {
11
+ <Key_1 extends import("mitt").EventType>(type: Key_1, handler?: import("mitt").Handler<Record<import("mitt").EventType, unknown>[Key_1]>): void;
12
+ (type: "*", handler: import("mitt").WildcardHandler<Record<import("mitt").EventType, unknown>>): void;
13
+ };
14
+ attachTo: (container: any) => void;
15
+ destroy: () => void;
16
+ }
@@ -0,0 +1 @@
1
+ export function Modal(props: any): any;
@@ -0,0 +1 @@
1
+ export function PlaygroundRoot(props: any): any;
@@ -0,0 +1,4 @@
1
+ export function Section(props: any): any;
2
+ export namespace Section {
3
+ function HeaderItem(props: any): any;
4
+ }
@@ -0,0 +1 @@
1
+ export { default as Playground } from "./Playground";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpmn-io/form-js-playground",
3
- "version": "0.8.0-alpha.1",
3
+ "version": "0.9.0",
4
4
  "description": "A form-js playground",
5
5
  "files": [
6
6
  "dist"
@@ -10,7 +10,8 @@
10
10
  "import": "./dist/index.es.js",
11
11
  "require": "./dist/index.cjs"
12
12
  },
13
- "./dist/assets/form-js-playground.css": "./dist/assets/form-js-playground.css"
13
+ "./dist/assets/form-js-playground.css": "./dist/assets/form-js-playground.css",
14
+ "./package.json": "./package.json"
14
15
  },
15
16
  "publishConfig": {
16
17
  "access": "public"
@@ -18,11 +19,17 @@
18
19
  "main": "dist/index.cjs",
19
20
  "module": "dist/index.es.js",
20
21
  "umd:main": "dist/form-playground.umd.js",
22
+ "types": "dist/types/index.d.ts",
21
23
  "scripts": {
22
- "all": "run-s test build",
23
- "build": "rollup -c --failAfterWarnings",
24
+ "all": "run-s lint test build",
25
+ "build": "run-p bundle generate-types",
26
+ "bundle": "rollup -c --failAfterWarnings",
27
+ "bundle:watch": "rollup -c -w",
24
28
  "start": "SINGLE_START=basic npm run dev",
25
29
  "dev": "npm test -- --auto-watch --no-single-run",
30
+ "lint": "run-s lint:*",
31
+ "lint:eslint": "eslint .",
32
+ "generate-types": "tsc --allowJs --skipLibCheck --declaration --emitDeclarationOnly --outDir dist/types src/index.js",
26
33
  "test": "karma start",
27
34
  "prepublishOnly": "npm run build"
28
35
  },
@@ -37,10 +44,13 @@
37
44
  "url": "https://github.com/bpmn-io"
38
45
  },
39
46
  "dependencies": {
40
- "@bpmn-io/form-js": "^0.8.0-alpha.1",
41
- "@codemirror/basic-setup": "^0.18.2",
42
- "@codemirror/lang-json": "^0.18.0",
43
- "@codemirror/state": "^0.18.7",
47
+ "@bpmn-io/form-js-editor": "^0.9.0",
48
+ "@bpmn-io/form-js-viewer": "^0.9.0",
49
+ "@codemirror/lang-json": "^6.0.0",
50
+ "@codemirror/state": "^6.1.1",
51
+ "@codemirror/view": "^6.2.0",
52
+ "classnames": "^2.3.1",
53
+ "codemirror": "^6.0.1",
44
54
  "downloadjs": "^1.4.7",
45
55
  "file-drops": "^0.4.0",
46
56
  "mitt": "^3.0.0",
@@ -51,8 +61,10 @@
51
61
  ],
52
62
  "devDependencies": {
53
63
  "css-loader": "^6.3.0",
64
+ "min-dash": "^3.8.1",
65
+ "min-dom": "^3.2.1",
54
66
  "rollup-plugin-css-only": "^3.1.0",
55
67
  "style-loader": "^3.3.0"
56
68
  },
57
- "gitHead": "2be914efeefa050fb4692ac1a644557fc424917f"
69
+ "gitHead": "10ea539989ea857adc7511e5f1a80a99c7ec96b1"
58
70
  }