| 
							 | 
						<!DOCTYPE html> | 
					
					
						
						| 
							 | 
						<html lang="en"> | 
					
					
						
						| 
							 | 
						<head> | 
					
					
						
						| 
							 | 
						    <meta charset="UTF-8"> | 
					
					
						
						| 
							 | 
						    <meta name="viewport" content="width=device-width, initial-scale=1.0"> | 
					
					
						
						| 
							 | 
						    <title>Form Viewer</title> | 
					
					
						
						| 
							 | 
						</head> | 
					
					
						
						| 
							 | 
						<body> | 
					
					
						
						| 
							 | 
						    <div id="form-container"></div> | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						    <script> | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						        const formJson = { | 
					
					
						
						| 
							 | 
						  "components": [ | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "text": "# File an Invoice\n\nAdd your invoice details below.", | 
					
					
						
						| 
							 | 
						      "type": "text", | 
					
					
						
						| 
							 | 
						      "id": "Field_1na090z", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_0lmsy15" | 
					
					
						
						| 
							 | 
						      } | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "label": "Image view", | 
					
					
						
						| 
							 | 
						      "type": "image", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_1ju954r", | 
					
					
						
						| 
							 | 
						        "columns": null | 
					
					
						
						| 
							 | 
						      }, | 
					
					
						
						| 
							 | 
						      "id": "Field_0kfhe9d", | 
					
					
						
						| 
							 | 
						      "source": "https://i.ibb.co/NrZMfsR/105.png" | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "key": "creditor", | 
					
					
						
						| 
							 | 
						      "label": "Creditor", | 
					
					
						
						| 
							 | 
						      "type": "textfield", | 
					
					
						
						| 
							 | 
						      "validate": { | 
					
					
						
						| 
							 | 
						        "required": true | 
					
					
						
						| 
							 | 
						      }, | 
					
					
						
						| 
							 | 
						      "id": "Field_12chft0", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_1rvpcsw" | 
					
					
						
						| 
							 | 
						      } | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "description": "An invoice number in the format: C-123.", | 
					
					
						
						| 
							 | 
						      "key": "invoiceNumber", | 
					
					
						
						| 
							 | 
						      "label": "Invoice Number", | 
					
					
						
						| 
							 | 
						      "type": "textfield", | 
					
					
						
						| 
							 | 
						      "validate": { | 
					
					
						
						| 
							 | 
						        "pattern": "^C-[0-9]+$" | 
					
					
						
						| 
							 | 
						      }, | 
					
					
						
						| 
							 | 
						      "id": "Field_0jcge34", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_0960rdj" | 
					
					
						
						| 
							 | 
						      } | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "values": [ | 
					
					
						
						| 
							 | 
						        { | 
					
					
						
						| 
							 | 
						          "label": "Value", | 
					
					
						
						| 
							 | 
						          "value": "value" | 
					
					
						
						| 
							 | 
						        } | 
					
					
						
						| 
							 | 
						      ], | 
					
					
						
						| 
							 | 
						      "label": "Tag list", | 
					
					
						
						| 
							 | 
						      "type": "taglist", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_1szoxy7", | 
					
					
						
						| 
							 | 
						        "columns": null | 
					
					
						
						| 
							 | 
						      }, | 
					
					
						
						| 
							 | 
						      "id": "Field_0mea1nt", | 
					
					
						
						| 
							 | 
						      "key": "taglist_30y47" | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "values": [ | 
					
					
						
						| 
							 | 
						        { | 
					
					
						
						| 
							 | 
						          "label": "Value", | 
					
					
						
						| 
							 | 
						          "value": "value" | 
					
					
						
						| 
							 | 
						        } | 
					
					
						
						| 
							 | 
						      ], | 
					
					
						
						| 
							 | 
						      "label": "Checkbox group", | 
					
					
						
						| 
							 | 
						      "type": "checklist", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_1szoxy7", | 
					
					
						
						| 
							 | 
						        "columns": null | 
					
					
						
						| 
							 | 
						      }, | 
					
					
						
						| 
							 | 
						      "id": "Field_0u7r33p", | 
					
					
						
						| 
							 | 
						      "key": "checklist_vyc3y" | 
					
					
						
						| 
							 | 
						    }, | 
					
					
						
						| 
							 | 
						    { | 
					
					
						
						| 
							 | 
						      "action": "submit", | 
					
					
						
						| 
							 | 
						      "key": "submit", | 
					
					
						
						| 
							 | 
						      "label": "Submit", | 
					
					
						
						| 
							 | 
						      "type": "button", | 
					
					
						
						| 
							 | 
						      "id": "Field_0ie528a", | 
					
					
						
						| 
							 | 
						      "layout": { | 
					
					
						
						| 
							 | 
						        "row": "Row_1szoxy7" | 
					
					
						
						| 
							 | 
						      } | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						  ], | 
					
					
						
						| 
							 | 
						  "schemaVersion": 16, | 
					
					
						
						| 
							 | 
						  "exporter": { | 
					
					
						
						| 
							 | 
						    "name": "form-js (https://demo.bpmn.io)", | 
					
					
						
						| 
							 | 
						    "version": "1.8.3" | 
					
					
						
						| 
							 | 
						  }, | 
					
					
						
						| 
							 | 
						  "type": "default", | 
					
					
						
						| 
							 | 
						  "id": "Form_020yixm" | 
					
					
						
						| 
							 | 
						}; | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						        function generateForm(formData) { | 
					
					
						
						| 
							 | 
						            const container = document.getElementById('form-container'); | 
					
					
						
						| 
							 | 
						            formData.components.forEach(component => { | 
					
					
						
						| 
							 | 
						                const element = document.createElement('div'); | 
					
					
						
						| 
							 | 
						                element.id = component.id; | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						                if (component.type === 'text') { | 
					
					
						
						| 
							 | 
						                    element.innerHTML = `<p>${component.text}</p>`; | 
					
					
						
						| 
							 | 
						                } else if (component.type === 'textfield') { | 
					
					
						
						| 
							 | 
						                    element.innerHTML = `<label for="${component.key}">${component.label}</label> | 
					
					
						
						| 
							 | 
						                                         <input type="text" id="${component.key}" name="${component.key}" ${component.validate.required ? 'required' : ''}>`; | 
					
					
						
						| 
							 | 
						                } else if (component.type === 'checklist') { | 
					
					
						
						| 
							 | 
						                    element.innerHTML = `<label>${component.label}</label>`; | 
					
					
						
						| 
							 | 
						                    component.values.forEach(value => { | 
					
					
						
						| 
							 | 
						                        element.innerHTML += `<input type="checkbox" id="${value.value}" name="${value.value}" value="${value.value}"> | 
					
					
						
						| 
							 | 
						                                              <label for="${value.value}">${value.label}</label>`; | 
					
					
						
						| 
							 | 
						                    }); | 
					
					
						
						| 
							 | 
						                } else if (component.type === 'button') { | 
					
					
						
						| 
							 | 
						                    element.innerHTML = `<button type="button" id="${component.key}">${component.label}</button>`; | 
					
					
						
						| 
							 | 
						                } | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						                container.appendChild(element); | 
					
					
						
						| 
							 | 
						            }); | 
					
					
						
						| 
							 | 
						        } | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						        generateForm(formJson); | 
					
					
						
						| 
							 | 
						    </script> | 
					
					
						
						| 
							 | 
						</body> | 
					
					
						
						| 
							 | 
						</html> |