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) • 1.82 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../../utils/helpers.cjs");class h{createField(s){var d;const{type:t,label:l,options:e,validation:r}=s,b=c.createContainer("form-field"),f=c.createLabel(l,e==null?void 0:e.id);let a=null;switch(t){case"text":case"email":case"password":case"number":case"color":case"date":case"time":case"range":a=c.createInputField(t,e==null?void 0:e.placeholder,e==null?void 0:e.value);break;case"textarea":a=c.createTextarea(e==null?void 0:e.placeholder,e==null?void 0:e.value);break;case"select":a=c.createSelectField(((d=e==null?void 0:e.options)==null?void 0:d.map(u=>({value:u,label:u})))||[],e==null?void 0:e.value),e!=null&&e.multiple&&a.setAttribute("multiple","true");break;case"checkbox":case"radio":a=c.createCheckbox(l,(e==null?void 0:e.value)==="true"),e!=null&&e.name&&a.setAttribute("name",e.name);break;case"file":a=c.createFileInput(e==null?void 0:e.multiple);break;case"button":case"submit":case"reset":a=c.createButton(l,()=>{},t);break;default:return null}return e!=null&&e.autocomplete&&(a==null||a.setAttribute("autocomplete",e.autocomplete)),e!=null&&e.readonly&&(a==null||a.setAttribute("readonly","true")),e!=null&&e.disabled&&(a==null||a.setAttribute("disabled","true")),r!=null&&r.pattern&&(a==null||a.setAttribute("pattern",r.pattern)),r!=null&&r.minLength&&(a==null||a.setAttribute("minlength",r.minLength.toString())),r!=null&&r.maxLength&&(a==null||a.setAttribute("maxlength",r.maxLength.toString())),r!=null&&r.min&&(a==null||a.setAttribute("min",r.min.toString())),r!=null&&r.max&&(a==null||a.setAttribute("max",r.max.toString())),e!=null&&e.className&&(a==null||a.classList.add(e.className)),e!=null&&e.id&&(a==null||a.setAttribute("id",e.id)),b.appendChild(f),a&&b.appendChild(a),b}}exports.FieldBuilder=h;