admin-ui.asset.php
1 month ago
admin-ui.js
1 month ago
parser.asset.php
1 week ago
parser.js
1 week ago
admin-ui.js
1 lines
| 1 | (()=>{"use strict";var t={n:e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)};const e=window.wp.element,r=window.wp.domReady;var n=t.n(r);const o=window.React,l=window.wp.components,a=window.wp.i18n,i=window.wp.apiFetch;var s=t.n(i);function m({name:t,attributes:e}){return`\x3c!-- wp:${t} ${JSON.stringify(e)} /--\x3e`}const{parseHTMLtoBlocks:c}=JetFormBuilderParser;function d({clearHTML:t,rawHTML:r,setShowModal:n}){const[i,d]=(0,e.useState)(!1);return(0,o.createElement)(l.Flex,{justify:"space-between"},(0,o.createElement)(l.Button,{variant:"secondary",onClick:t},(0,a.__)("Back","jet-form-builder")),(0,o.createElement)(l.Button,{variant:"primary",onClick:async()=>{d(!0);try{const t=c(r);if(!t.length)return console.error((0,a.__)("JFB: Could not parse blocks","jet-form-builder"),r),void d(!1);const e=function(t){return t.map(m).join("\n\n")}(t),n=await s()({method:"POST",path:"/wp/v2/jet-form-builder",data:{title:(0,a.__)("Imported HTML Form","jet-form-builder")+" "+(new Date).toLocaleString("sv-SE").replace("T"," "),content:e,status:"publish"}});window.location.href=(t=>{const e=new URL(JetFormBuilderAdmin.edit_url);return e.searchParams.set("post",t),e.href})(n.id)}catch(t){console.error("Failed to create form:",t),d(!1)}},isBusy:i,disabled:i},(0,a.__)("Create Form","jet-form-builder")))}const{parseHTMLtoBlocks:u,getFormInnerFields:p}=JetFormBuilderParser;function f({setShowModal:t}){const[r,n]=(0,e.useState)(""),[i,s]=(0,e.useState)(""),[m,c]=(0,e.useState)(!1),[u,f]=(0,e.useState)("");return(0,o.createElement)(l.Modal,{style:{width:"60vw"},onRequestClose:()=>t(!1),title:(0,a.__)("Import HTML Form","jet-form-builder"),className:"jfb-html-parser-modal"},u&&(0,o.createElement)(l.Notice,{status:"error",isDismissible:!0,onRemove:()=>f("")},u),Boolean(i.length)?(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{dangerouslySetInnerHTML:{__html:i},style:{padding:"2em 1em",backgroundColor:"#f6f7f7",marginBottom:"1em"}}),(0,o.createElement)(d,{clearHTML:()=>s(""),formHTML:i,rawHTML:r,setShowModal:t})):(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.TextareaControl,{label:(0,a.__)("Paste your HTML here","jet-form-builder"),value:r,onChange:n,rows:7}),(0,o.createElement)("ul",{style:{listStyle:"disc",paddingInlineStart:"1em"}},(0,o.createElement)("li",null,(0,a.__)("You can use any HTML code that contains form elements, but only headings, form controls, and buttons will be parsed.","jet-form-builder")),(0,o.createElement)("li",null,(0,a.__)("All the code you paste here will be parsed into a single Form, even if it contains more than one <form> tag.","jet-form-builder")),(0,o.createElement)("li",null,(0,a.__)("The parser can only understand form elements and structure; it can't parse styling or behavior.","jet-form-builder"))),(0,o.createElement)(l.Flex,{justify:"flex-end",style:{marginTop:"1em"}},(0,o.createElement)(l.Button,{isPrimary:!0,isBusy:m,disabled:m||!r.trim().length,onClick:()=>{c(!0),f("");try{const t=p(r);s(`\n\t\t\t<div class="jet-form-builder-html-parser-preview">\n\t\t\t\t<style>\n\t\t\t\t\t.jet-form-builder-html-parser-preview {\n\t\t\t\t\t\tpointer-events: none;\n\t\t\t\t\t}\n\t\t\t\t\t.jet-form-builder-html-parser-preview textarea,\n\t\t\t\t\t.jet-form-builder-html-parser-preview input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),\n\t\t\t\t\t.jet-form-builder-html-parser-preview select {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\twidth: 100% !important;\n\t\t\t\t\t\tmax-width: 100% !important;\n\t\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\t}\n\t\t\t\t\t.jet-form-builder-html-parser-preview label {\n\t\t\t\t\t\tdisplay:block;\n\t\t\t\t\t\tmargin-bottom:5px;\n\t\t\t\t\t}\n\t\t\t\t\t.jet-form-builder-html-parser-preview br {\n\t\t\t\t\t\tdisplay:none;\n\t\t\t\t\t}\n\t\t\t\t\t.jet-form-builder-html-parser-preview input[type="submit"],\n\t\t\t\t\t.jet-form-builder-html-parser-preview button {\n\t\t\t\t\t\tdisplay:block;\n\t\t\t\t\t\tborder: none;\n\t\t\t\t\t\tbackground-color: #0071a1;\n\t\t\t\t\t\tcolor: #fff;\n\t\t\t\t\t\tpadding: 10px 20px;\n\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t}\n\t\t\t\t</style>\n\t\t\t\t${t}\n\t\t\t</div>\n\t\t\t`)}catch(t){console.error(t),f(t?.message||(0,a.__)("Failed to parse HTML.","jet-form-builder"))}finally{c(!1)}}},m?(0,a.__)("Parsing...","jet-form-builder"):(0,a.__)("Parse HTML","jet-form-builder")))))}function b(){const[t,r]=(0,e.useState)(!1);return(0,o.createElement)(e.Fragment,null,(0,o.createElement)("a",{href:"#",className:"page-title-action",onClick:t=>{t.preventDefault(),r(!0)}},(0,a.__)("Import from HTML","jet-form-builder")),t&&(0,o.createElement)(f,{setShowModal:r}))}n()(()=>{const t=document.querySelector('.page-title-action[href*="post-new.php"]');if(!t)return;const r=document.createElement("div");r.style.display="inline-flex",r.style.marginLeft="4px",t.after(r),(0,e.createRoot)(r).render(wp.element.createElement(b))})})(); |