UNPKG

on-codemerge

Version:

A WYSIWYG editor for on-codemerge is a user-friendly interface that allows users to edit and view their code in real time, exactly as it will appear in the final product

2 lines (1 loc) 2.07 kB
"use strict";var m=Object.defineProperty;var M=(n,e,i)=>e in n?m(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i;var r=(n,e,i)=>M(n,typeof e!="symbol"?e+"":e,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("./FieldBuilder.cjs"),b=require("./ValidationManager.cjs"),y=require("./OptionManager.cjs"),a=require("../../../utils/helpers.cjs");class F{constructor(){r(this,"fieldBuilder");r(this,"optionManager");r(this,"validationManager");r(this,"fieldsConfig",[]);this.optionManager=new y.OptionManager,this.fieldBuilder=new O.FieldBuilder,this.validationManager=new b.ValidationManager}addField(e){this.fieldsConfig.push(e)}removeField(e){e>=0&&e<this.fieldsConfig.length&&this.fieldsConfig.splice(e,1)}getFields(){return this.fieldsConfig}clearFields(){this.fieldsConfig=[]}createForm(e,i="GET"){const l=a.createForm("generated-form space-y-4",e,i);this.fieldsConfig.forEach(t=>{var u,g;let o=null;if(t.type==="button"){const s=((u=t.options)==null?void 0:u.target)||"";o=a.createLink(t.label,s,"_blank")}else o=this.fieldBuilder.createField(t);if(o){if(t.validation&&this.validationManager.addValidation(o,t.validation),t.type==="select"&&((g=t.options)!=null&&g.options)){const s=o.querySelector("select");s&&t.options.options.forEach(f=>{const h=a.createSelectOption(f,f);s.appendChild(h)})}l.appendChild(o)}});const d=a.createContainer("button-container flex gap-2"),c=a.createButton("Submit",()=>{},"primary");c.type="submit",c.className+=" flex-1 p-2 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2";const p=a.createButton("Reset",()=>{},"secondary");return p.type="reset",p.className+=" flex-1 p-2 rounded-md focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2",d.appendChild(c),d.appendChild(p),l.appendChild(d),l}setOptionsContainer(e){this.optionManager.setOptionsContainer(e)}addOption(e=""){this.optionManager.addOption(e)}getOptions(){return this.optionManager.getOptions()}clearOptions(){this.optionManager.clearOptions()}}exports.FormManager=F;