forms.js
1 lines
| 1 | (()=>{"use strict";function e(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,l,o,a,i=[],m=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;m=!1}else for(;!(m=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);m=!0);}catch(e){u=!0,l=e}finally{try{if(!m&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw l}}return i}}(e,r)||function(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var r=wp.components,n=r.Modal,l=r.TextareaControl,o=r.Button,a=r.Notice,i=r.ExternalLink,m=r.Flex,u=wp.element.useState,c=wp.i18n,s=c.__,p=c.sprintf,f=wp.apiFetch,d=JetFormBuilderParser,h=d.parseHTMLtoBlocks,w=d.getFormInnerFields,b=["Registration form with minimum inputs","Opt-in form with gender selector like radio","Quiz form with 5 questions with choices about math"];const y=function(t){var r=t.setShowModal,c=t.footer,d=void 0===c?function(){return"Here may be buttons"}:c,y=e(u(""),2),g=y[0],v=y[1],E=e(u(""),2),j=E[0],S=E[1],A=e(u(!1),2),I=A[0],k=A[1],C=e(u(""),2),F=C[0],x=C[1],B=e(u(0),2),T=B[0],M=B[1],O=e(u(0),2),L=O[0],R=O[1];return wp.element.createElement(n,{style:{width:"60vw"},onRequestClose:function(){return r(!1)},title:wp.element.createElement(m,null,s("Generate Form with AI","jet-form-builder"),wp.element.createElement("span",{className:"badge"},s("Beta. Limited 10 requests per month","jet-form-builder"))),className:"jfb-ai-modal"},F&&wp.element.createElement(a,{status:"error",onRemove:function(){return x("")}},wp.element.createElement(m,{direction:"column"},F,wp.element.createElement(i,{href:"https://support.crocoblock.com/support/home/"},s("Contact Crocoblock support","jet-form-builder")))),Boolean(j.length)?wp.element.createElement(React.Fragment,null,wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:j},style:{padding:"2em 1em",backgroundColor:"#f6f7f7",marginBottom:"1em"}}),wp.element.createElement(d,{clearHTML:function(){return S("")},formHTML:j,prompt:g},wp.element.createElement("span",{style:{flex:"1",textAlign:"end",color:"rgb( 117, 117, 117 )"}},p(s("Requests used: %d/%d","jet-form-builder"),T,L)))):wp.element.createElement(React.Fragment,null,wp.element.createElement(l,{label:s("Describe the form you want","jet-form-builder"),value:g,onChange:v,help:s("Prompt example: Simple contact form","jet-form-builder")}),Boolean(g.length)&&wp.element.createElement(o,{variant:"primary",isBusy:I,disabled:I,onClick:function(){k(!0),f({path:"/jet-form-builder/v1/ai/generate",method:"POST",data:{prompt:g}}).then((function(e){x(""),S(w(e.form)),console.group(s("JFB: Parsed blocks from generated HTML","jet-form-builder")),console.log(h(e.form)),console.groupEnd(),M(e.usage),R(e.limit)})).catch((function(e){var t;x(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:s("Undefined error.","jet-form-builder"))})).finally((function(){k(!1)}))}},s("Generate","jet-form-builder")),wp.element.createElement("h4",null,s("Tips to write good prompt:","jet-form-builder")),wp.element.createElement("ul",{style:{listStyle:"disc",paddingInlineStart:"1em"}},wp.element.createElement("li",null,s("Start with the main purpose of the form.","jet-form-builder")),wp.element.createElement("li",null,s("If you need specific fields – describe them in the prompt as well.","jet-form-builder")),wp.element.createElement("li",null,s("It is better to use the English language for the prompt, as AI understands it better than others.","jet-form-builder"))),wp.element.createElement("h4",null,s("Examples of the good prompts:","jet-form-builder")),wp.element.createElement("ul",{style:{listStyle:"disc",paddingInlineStart:"1em"}},b.map((function(e){return wp.element.createElement("li",{key:e},wp.element.createElement(o,{onClick:function(){return v(e)},variant:"link"},e))})))))};function g(e){var t=e.name,r=e.attributes,n=JSON.stringify(r);return"\x3c!-- wp:".concat(t," ").concat(n," /--\x3e")}const v=function(e){return e.map(g).join("\n\n")};var E=wp.components,j=E.Flex,S=E.Button,A=wp.i18n.__,I=wp.apiFetch,k=JetFormBuilderParser.parseHTMLtoBlocks;const C=function(e){var t=e.clearHTML,r=e.formHTML,n=e.prompt,l=e.children,o=void 0===l?null:l;return wp.element.createElement(j,{justify:"flex-start"},wp.element.createElement(S,{variant:"primary",onClick:function(){var e=k(r);e.length?I({method:"POST",path:"/wp/v2/jet-form-builder",data:{title:n,content:v(e),status:"publish"}}).then((function(e){var t,r;window.location.href=(t=e.id,(r=new URL(JetFormBuilderAdmin.edit_url)).searchParams.set("post",t),r.href)})).catch(console.error):console.error(A("JFB: Invalid html","jet-form-builder"),r)}},A("Create form with this template","jet-form-builder")),wp.element.createElement(S,{variant:"secondary",onClick:t},A("Change generation prompt","jet-form-builder")),o)};function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var x=wp.element.useState,B=wp.i18n.__;const T=function(){var e,t,r=(e=x(!1),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,l,o,a,i=[],m=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;m=!1}else for(;!(m=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);m=!0);}catch(e){u=!0,l=e}finally{try{if(!m&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw l}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return F(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?F(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),n=r[0],l=r[1];return wp.element.createElement(React.Fragment,null,wp.element.createElement("a",{href:"#",className:"page-title-action",onClick:function(e){e.preventDefault(),l((function(e){return!e}))}},B("Generate with AI","jet-form-builder")),n&&wp.element.createElement(y,{setShowModal:l,footer:C}))};var M=wp.element.createRoot;wp.domReady((function(){var e=document.createElement("div");e.style.display="inline-flex",document.querySelector('.page-title-action[href*="post-new.php"]').after(e),M(e).render(wp.element.createElement(T,null))}))})(); |