11 lines
41 KiB
JavaScript
11 lines
41 KiB
JavaScript
(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,n=window.wp.blocks,o=window.wp.domReady;var a=e.n(o);const r=window.wp.plugins,l=window.wp.editor,i=window.wp.data,s=window.wp.element,c=window.wp.i18n;function m({title:e,children:n}){return(0,t.createElement)("div",{className:"gb-form-section"},(0,t.createElement)("h3",{className:"gb-form-section__title"},e),(0,t.createElement)("div",{className:"gb-form-section__body"},n))}const u=window.wp.components,p=window.wp.coreData,g=window.wp.apiFetch;var d=e.n(g);function b(e,t,n,o={},a=!1){const[r,l]=(0,s.useState)([]),[i,m]=(0,s.useState)(!1),[u,p]=(0,s.useState)(""),g=(0,s.useRef)(null),b=(0,s.useRef)(!1),f=JSON.stringify(o),_=(0,s.useCallback)((({bypassCache:o=!1}={})=>{if(!n)return l([]),p(""),void m(!1);g.current&&g.current.abort();const a=new AbortController;g.current=a,m(!0),p("");const r=new URLSearchParams(JSON.parse(f));o&&r.set("nocache","1");const i=r.toString();d()({path:`/generateblocks-pro/v1/integrations/${e}/${t}${i?`?${i}`:""}`,signal:a.signal}).then((e=>{e.success?l(e.options||[]):p(e.message||(0,c.__)("Failed to fetch options.","generateblocks-pro"))})).catch((e=>{"AbortError"!==e.name&&p((0,c.__)("Failed to connect to service.","generateblocks-pro"))})).finally((()=>{g.current===a&&m(!1)}))}),[e,t,n,f]);return(0,s.useEffect)((()=>(_({bypassCache:a&&!b.current}),n&&(b.current=!0),()=>{g.current&&g.current.abort()})),[a,_]),{options:r,loading:i,error:u,refresh:()=>_({bypassCache:!0})}}function f(e,t){return[{label:t||(0,c.__)("- Select -","generateblocks-pro"),value:""},...e.map((e=>({label:e.label+(void 0!==e.count?` (${e.count})`:""),value:String(e.value)})))]}function _({error:e,loading:n,onRefresh:o,refreshLabel:a}){return e?(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},(0,t.createElement)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"}},(0,t.createElement)("span",null,e),(0,t.createElement)(u.Button,{variant:"secondary",size:"small",onClick:o,disabled:n},(0,c.__)("Retry","generateblocks-pro")))):n?(0,t.createElement)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"}},(0,t.createElement)(u.Spinner,null),(0,c.__)("Loading…","generateblocks-pro")):o?(0,t.createElement)("div",{style:{marginTop:"4px",marginBottom:"12px"}},(0,t.createElement)(u.Button,{variant:"link",onClick:o,disabled:n},a||(0,c.__)("Refresh","generateblocks-pro"))):null}function h({provider:e,settings:n={},onChange:o,formFields:a=[],bypassInitialCache:r=!1}){var l,i;const s=e?.id||"",m=e?.destination||{},p=e?.secondaryDestination||{},g=e?.fieldMap||{},d=Array.isArray(e?.settingsFields)?e.settingsFields:[],h=a.filter((e=>"email"!==e.type)),k=b(s,"destinations",!!s&&!!m.hasOptions,{},r),y=b(s,"secondary-destinations",!!s&&!!p.hasOptions,{},r),E=!(!g.enabled||!g.hasOptions||!h.length||g.dependsOnDestination&&!n.destinationId),v=b(s,"fields",!!s&&E,{destinationId:n.destinationId||"",secondaryDestinationId:n.secondaryDestinationId||""},r);if(!e)return null;const C=(e,t)=>{const a={...n,[e]:t};"destinationId"===e&&n.destinationId!==t&&delete a.fieldMap,o(a)},S=[{label:(0,c.__)("- Select -","generateblocks-pro"),value:""},...a.filter((e=>["email","text"].includes(e.type))).map((e=>({label:e.label||e.name,value:e.name})))],x=[{label:(0,c.__)("None","generateblocks-pro"),value:""},...a.filter((e=>"text"===e.type)).map((e=>({label:e.label||e.name,value:e.name})))],w=n.fieldMap&&"object"==typeof n.fieldMap&&!Array.isArray(n.fieldMap)?n.fieldMap:{};return(0,t.createElement)(t.Fragment,null,d.map((e=>(0,t.createElement)(u.TextControl,{key:e.key,label:e.label,help:e.help||void 0,type:e.type||"text",value:n[e.key]||"",placeholder:e.placeholder||"",onChange:t=>C(e.key,t),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),m.hasOptions&&(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.SelectControl,{label:m.label,value:n.destinationId||"",options:f(k.options,m.emptyLabel),onChange:e=>C("destinationId",e),disabled:k.loading,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(_,{error:k.error,loading:k.loading,onRefresh:k.refresh,refreshLabel:m.refreshLabel})),p.hasOptions&&(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.SelectControl,{label:p.label,value:n.secondaryDestinationId||"",options:f(y.options,p.emptyLabel),onChange:e=>C("secondaryDestinationId",e),disabled:y.loading,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(_,{error:y.error,loading:y.loading,onRefresh:y.refresh,refreshLabel:p.refreshLabel})),(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Email field","generateblocks-pro"),value:n.emailField||"email",options:S,onChange:e=>C("emailField",e),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),e.supportsNameField&&(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Name field","generateblocks-pro"),value:n.nameField||"",options:x,onChange:e=>C("nameField",e),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),e.supportsDoubleOptin&&(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Double opt-in","generateblocks-pro"),help:(0,c.__)("Send provider confirmation emails before new subscribers are added.","generateblocks-pro"),checked:!(null!==(l=null!==(i=n.doubleOptin)&&void 0!==i?i:e.defaultDoubleOptin)&&void 0!==l&&!l),onChange:e=>C("doubleOptin",e),__nextHasNoMarginBottom:!0}),E&&(0,t.createElement)(t.Fragment,null,(0,t.createElement)(_,{error:v.error,loading:v.loading,onRefresh:v.refresh,refreshLabel:g.refreshLabel}),!v.loading&&!v.error&&!!h.length&&!v.options.length&&(0,t.createElement)(u.Notice,{status:"info",isDismissible:!1},(0,c.__)("No mappable fields available.","generateblocks-pro")),!v.loading&&!!v.options.length&&h.map((e=>(0,t.createElement)(u.SelectControl,{key:e.name,label:e.label||e.name,value:w[e.name]||"",options:f(v.options,g.emptyLabel),onChange:t=>((e,t)=>{const o=n.fieldMap,a=o&&"object"==typeof o&&!Array.isArray(o)?{...o}:{};t?a[e]=t:delete a[e],C("fieldMap",a)})(e.name,t),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})))))}const k=["define","code"];function y(e){return"define"===e?(0,c.__)("wp-config.php","generateblocks-pro"):"db"===e?(0,c.__)("saved settings","generateblocks-pro"):(0,c.__)("code","generateblocks-pro")}function E({service:e,connectionState:n={},isConnected:o,onConnect:a,onDisconnect:r,onClose:l}){const i=e.connection?.fields?.length?e.connection.fields:[{key:"api_key",label:(0,c.__)("API Key","generateblocks-pro"),type:"password",help:e.help||"",required:!0}],m=n.fields||{},p=e=>k.includes(m[e.key]?.source),g=i.filter((e=>!p(e))),b=g.reduce(((e,t)=>({...e,[t.key]:""})),{}),[f,_]=(0,s.useState)(b),[h,E]=(0,s.useState)(!1),[v,C]=(0,s.useState)(!1),[S,x]=(0,s.useState)(null),[w,B]=(0,s.useState)(!1),T=g.some((e=>!!String(f[e.key]||"").trim())),N=i.every((e=>!e.required||p(e)||!!m[e.key]?.configured||!!String(f[e.key]||"").trim())),F=i.every((e=>!(Object.prototype.hasOwnProperty.call(e,"testRequired")?e.testRequired:e.required)||p(e)||!!m[e.key]?.configured||!!String(f[e.key]||"").trim())),M=()=>Object.fromEntries(Object.entries(f).filter((([,e])=>!!String(e||"").trim())));return(0,t.createElement)(u.Modal,{title:e.label,onRequestClose:l,size:"small"},S&&(0,t.createElement)("div",{style:{margin:"0 0 16px"}},(0,t.createElement)(u.Notice,{status:S.status,isDismissible:!0,onDismiss:()=>x(null)},S.message)),w&&(0,t.createElement)("div",{style:{margin:"0 0 16px"}},(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},(0,t.createElement)("p",null,(0,c.__)("Disconnecting removes these settings for all forms on this site.","generateblocks-pro")),(0,t.createElement)("div",{style:{display:"flex",gap:"8px",justifyContent:"flex-end"}},(0,t.createElement)(u.Button,{variant:"secondary",onClick:()=>B(!1),disabled:v},(0,c.__)("Cancel","generateblocks-pro")),(0,t.createElement)(u.Button,{variant:"primary",isDestructive:!0,onClick:()=>{C(!0),x(null),B(!1),d()({path:`/generateblocks-pro/v1/integrations/${e.id}`,method:"DELETE"}).then((e=>{e.success?(r(),l()):x({status:"error",message:(0,c.__)("Failed to disconnect.","generateblocks-pro")})})).catch((()=>{x({status:"error",message:(0,c.__)("Failed to disconnect.","generateblocks-pro")})})).finally((()=>C(!1)))},disabled:v},v&&(0,t.createElement)(u.Spinner,null),(0,c.__)("Disconnect","generateblocks-pro"))))),o&&(0,t.createElement)("div",{style:{margin:"0 0 16px"}},(0,t.createElement)(u.Notice,{status:"success",isDismissible:!1},(0,c.__)("Connected. Enter new values below to replace saved settings.","generateblocks-pro"))),i.filter(p).map((e=>(0,t.createElement)("div",{key:`${e.key}-code`,style:{margin:"0 0 16px"}},(0,t.createElement)(u.Notice,{status:"info",isDismissible:!1},(0,c.sprintf)(/* translators: 1: field label, 2: source label */ /* translators: 1: field label, 2: source label */
|
||
(0,c.__)("%1$s is managed via %2$s.","generateblocks-pro"),e.label,y(m[e.key]?.source)))))),!!g.length&&(0,t.createElement)("div",{className:"gb-form-integration-connection-fields"},g.map((e=>(0,t.createElement)("div",{key:e.key,className:"gb-form-integration-connection-fields__field"},(0,t.createElement)(u.TextControl,{label:o&&m[e.key]?.configured?(0,c.sprintf)(/* translators: %s: connection setting label */ /* translators: %s: connection setting label */
|
||
(0,c.__)("New %s","generateblocks-pro"),e.label):e.label,type:e.type||"text",value:f[e.key]||"",onChange:t=>((e,t)=>{_((n=>({...n,[e]:t})))})(e.key,t),help:e.help,placeholder:e.placeholder,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))))),(0,t.createElement)("div",{style:{display:"flex",gap:"8px",justifyContent:"space-between",alignItems:"center",marginTop:"1em"}},(0,t.createElement)("div",null,o&&(0,t.createElement)(u.Button,{variant:"link",isDestructive:!0,onClick:()=>{x(null),B(!0)},disabled:v||w},(0,c.__)("Disconnect","generateblocks-pro"))),(0,t.createElement)("div",{style:{display:"flex",gap:"8px"}},(0,t.createElement)(u.Button,{variant:"secondary",onClick:()=>{F&&(E(!0),x(null),d()({path:`/generateblocks-pro/v1/integrations/${e.id}/test`,method:"POST",data:{settings:M()}}).then((e=>{x({status:e.success?"success":"error",message:e.message})})).catch((()=>{x({status:"error",message:(0,c.__)("Connection failed.","generateblocks-pro")})})).finally((()=>E(!1))))},disabled:!F||h||v||w},h&&(0,t.createElement)(u.Spinner,null),(0,c.__)("Test","generateblocks-pro")),(0,t.createElement)(u.Button,{variant:"primary",onClick:()=>{N&&T&&(C(!0),x(null),d()({path:`/generateblocks-pro/v1/integrations/${e.id}`,method:"POST",data:{settings:M()}}).then((e=>{e.success?(a(),l()):x({status:"error",message:e.message||(0,c.__)("Failed to save.","generateblocks-pro")})})).catch((()=>{x({status:"error",message:(0,c.__)("Failed to save.","generateblocks-pro")})})).finally((()=>C(!1))))},disabled:!N||!T||h||v||w},v&&(0,t.createElement)(u.Spinner,null),(0,c.__)("Save","generateblocks-pro")))))}const v=window.wp.compose;function C({fields:e=[],value:n="",onChange:o,multiline:a=!1,label:r,help:l,placeholder:i}){const m=(0,v.useInstanceId)(C,"gb-merge-tag-field"),p=(0,s.useRef)(null),g=(0,s.useRef)(null),d=a?"textarea":"input",b=(0,s.useCallback)((e=>{const t=e?.target;t&&"number"==typeof t.selectionStart&&(g.current={start:t.selectionStart,end:t.selectionEnd})}),[]),f=(0,s.useCallback)((e=>{const t=`{field:${e}}`,a=n||"",r=a.length,l=g.current,i=l?Math.min(Math.max(l.start,0),r):r,s=l?Math.min(Math.max(l.end,0),r):r;o(a.slice(0,i)+t+a.slice(s));const c=i+t.length;g.current={start:c,end:c},window.requestAnimationFrame((()=>{const e=p.current?.querySelector(d);e&&(e.focus(),"number"==typeof e.selectionStart&&e.setSelectionRange(c,c))}))}),[n,o,d]),_={id:m,value:n,placeholder:i,autoComplete:"off","aria-describedby":l?`${m}__help`:void 0,onChange:e=>o(e.target.value),onBlur:b,onSelect:b};return(0,t.createElement)(u.BaseControl,{id:m,label:r,help:l,__nextHasNoMarginBottom:!0},(0,t.createElement)("div",{ref:p,className:"gb-merge-tag-field__control"+(a?" is-multiline":"")},a?(0,t.createElement)("textarea",{..._,className:"components-textarea-control__input gb-merge-tag-field__textarea",rows:4}):(0,t.createElement)("input",{..._,type:"text",className:"components-text-control__input is-next-40px-default-size"}),e.length>0&&(0,t.createElement)(u.DropdownMenu,{className:"gb-merge-tag-field__picker",icon:null,text:"{ }",label:(0,c.__)("Insert a field merge tag","generateblocks-pro"),toggleProps:{variant:"tertiary",size:"small"},popoverProps:{placement:"bottom-end"}},(({onClose:n})=>(0,t.createElement)(u.MenuGroup,{label:(0,c.__)("Form fields","generateblocks-pro")},e.map((e=>(0,t.createElement)(u.MenuItem,{key:e.name,onClick:()=>{f(e.name),n()}},e.label||e.name))))))))}const S="contact",x="email-signup",w="contact-email-signup",B="email",T="email-signup",N="webhook",F="confirmation-email",M={actions:[B]};function D(e={}){const t=e?.[T]?.provider;return"string"==typeof t?t.trim():""}function I(e,t={}){const n=Array.isArray(e)?e:[],o=n.includes(B),a=n.includes(T),r=n.includes(N),l=n.includes(F),i=a?D(t):"";let s=S;return o&&a?s=w:a&&(s=x),{safeActions:n,hasEmail:o,hasEmailSignup:a,hasWebhook:r,hasConfirmationEmail:l,activeIntegration:i,derivedFormType:s}}function R(e){return[...e.hasWebhook?[N]:[],...e.hasConfirmationEmail?[F]:[]]}function H(e){if(!e||"object"!=typeof e||!Object.prototype.hasOwnProperty.call(e,"optInField"))return e;const t={...e};return delete t.optInField,t}const z="gb-form-success";function O(e,t){return(e?.attributes?.className||"").split(/\s+/).includes(t)}function A(e=[]){const t=[];for(const n of e||[])"generateblocks-pro/form"===n?.name&&t.push(n),n?.innerBlocks?.length&&t.push(...A(n.innerBlocks));return t}function P(e){for(const t of e||[]){if(O(t,z))return t;const e=P(t.innerBlocks);if(e)return e}return null}const j=["generateblocks/text",{content:(0,c.__)("Submit","generateblocks-pro"),tagName:"button",htmlAttributes:{type:"submit"},styles:{display:"inline-flex",paddingTop:"0.625em",paddingRight:"1.25em",paddingBottom:"0.625em",paddingLeft:"1.25em",backgroundColor:"#0f172a",color:"#ffffff",borderTopWidth:"0",borderRightWidth:"0",borderBottomWidth:"0",borderLeftWidth:"0",borderTopLeftRadius:"4px",borderTopRightRadius:"4px",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px",fontSize:"0.875em",fontWeight:"500",lineHeight:"1.5",cursor:"pointer","&:is(:hover, :focus)":{backgroundColor:"#1e293b"}}}];function L(e){return e?.name||e?.blockName||""}function W(e=[],t){for(const n of e){if("generateblocks-pro/form-field"===L(n))continue;if(t===L(n))return n;const e=W(n.innerBlocks||[],t);if(e)return e}return null}function $(e){const t=(l=e,W(l?.innerBlocks||[],"generateblocks-pro/form-field-label")),n=function(e){return W(e?.innerBlocks||[],"generateblocks-pro/form-field-control")}(e),o=e?.attributes?.fieldName||"",a=function(e){return e||"text"}(e?.attributes?.fieldType),r="hidden"===a?"":t?.attributes?.content;var l;return{clientId:e?.clientId,fieldName:o,fieldType:a,isRequired:!!e?.attributes?.isRequired,matchesField:e?.attributes?.matchesField||"",conditions:e?.attributes?.conditions||[],label:r||o,options:n?.attributes?.options||[],checkedValue:n?.attributes?.checkedValue||"",defaultValue:n?.attributes?.defaultValue||""}}(0,c.__)("Name","generateblocks-pro"),(0,c.__)("Email","generateblocks-pro"),(0,c.__)("Message","generateblocks-pro"),(0,c.__)("Email","generateblocks-pro"),(0,t.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"50",height:"50",viewBox:"0 0 100 100","aria-hidden":"true"},(0,t.createElement)("path",{d:"M97 0H3a3 3 0 0 0-3 3v94a3 3 0 0 0 3 3h94a3 3 0 0 0 3-3V3a3 3 0 0 0-3-3zm-1 96H4V4h92v92z"}),(0,t.createElement)("path",{d:"M85 18H15a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h70a3 3 0 0 0 3-3v-6a3 3 0 0 0-3-3zm-1 8H16v-4h68v4z"}),(0,t.createElement)("path",{d:"M85 34H15a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h70a3 3 0 0 0 3-3v-6a3 3 0 0 0-3-3zm-1 8H16v-4h68v4z"}),(0,t.createElement)("path",{d:"M85 50H15a3 3 0 0 0-3 3v22a3 3 0 0 0 3 3h70a3 3 0 0 0 3-3V53a3 3 0 0 0-3-3zm-1 24H16V54h68v20z"}),(0,t.createElement)("rect",{x:"20",y:"58",width:"50",height:"2"}),(0,t.createElement)("rect",{x:"20",y:"64",width:"58",height:"2"}),(0,t.createElement)("rect",{x:"20",y:"70",width:"40",height:"2"}),(0,t.createElement)("rect",{x:"14",y:"82",width:"26",height:"9",rx:"2"})),(0,t.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"50",height:"50",viewBox:"0 0 100 100","aria-hidden":"true"},(0,t.createElement)("path",{d:"M97 0H3a3 3 0 0 0-3 3v94a3 3 0 0 0 3 3h94a3 3 0 0 0 3-3V3a3 3 0 0 0-3-3zm-1 96H4V4h92v92z"}),(0,t.createElement)("rect",{x:"22",y:"22",width:"56",height:"7",rx:"1"}),(0,t.createElement)("rect",{x:"28",y:"34",width:"44",height:"3",rx:"1"}),(0,t.createElement)("rect",{x:"32",y:"40",width:"36",height:"3",rx:"1"}),(0,t.createElement)("path",{d:"M85 54H15a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h70a3 3 0 0 0 3-3v-6a3 3 0 0 0-3-3zm-1 8H16v-4h68v4z"}),(0,t.createElement)("rect",{x:"14",y:"72",width:"32",height:"9",rx:"2"}));const V=[],U=(0,s.createContext)(null);function q({children:e}){const[n,o]=(0,p.useEntityProp)("postType","gblocks_form","meta"),a=n&&n._gb_form||{config:{}},r=a.config||{},l=function(e){const t=e&&"object"==typeof e?e:{},n=""!==D(t.actionSettings);if(Array.isArray(t.actions)){const e=n?t.actions:t.actions.filter((e=>T!==e));return e.length===t.actions.length?t:{...t,actions:e}}return{...t,actions:M.actions}}(r),i=function(){const[e,t]=(0,s.useState)({connected:{},integrations:[],error:""}),n=(0,s.useCallback)((()=>{d()({path:"/generateblocks-pro/v1/integrations"}).then((e=>{e.success?t({connected:e.connected||{},integrations:e.integrations||[],error:""}):t((t=>({...t,error:e.message||(0,c.__)("Failed to load integrations.","generateblocks-pro")})))})).catch((e=>{t((t=>({...t,error:e?.message||(0,c.__)("Failed to load integrations.","generateblocks-pro")})))}))}),[]);return(0,s.useEffect)((()=>{n()}),[n]),(0,s.useMemo)((()=>({data:e.connected,integrations:e.integrations,error:e.error,refresh:n})),[n,e.connected,e.error,e.integrations])}(),m=r!==l,{hasEmail:u,hasEmailSignup:g,hasWebhook:b,hasConfirmationEmail:f,activeIntegration:_,derivedFormType:h}=(0,s.useMemo)((()=>I(l.actions,l.actionSettings)),[l.actions,l.actionSettings]),[k,y]=(0,s.useState)(l.formType||"");(0,s.useEffect)((()=>{l.formType&&l.formType!==k&&y(l.formType)}),[l.formType]),(0,s.useEffect)((()=>{m&&o({...n||{},_gb_form:{...a,config:l}})}),[l,a,n,m,o]);const E=(0,s.useCallback)((e=>{o({...n||{},_gb_form:{...a,config:{...l,...e}}})}),[n,a,l,o]),v=(0,s.useMemo)((()=>g||u||k?!g&&k&&k!==h?k:h:""),[h,u,g,k]),C=(0,s.useCallback)((e=>{y(e||""),E(function(e,t){const n=R(I(e?.actions,e?.actionSettings)),o=""!==D(e?.actionSettings),a=e?.actionSettings&&"object"==typeof e.actionSettings?e.actionSettings:{},r=a[T]&&"object"==typeof a[T]?a[T]:{},l=w!==t&&Object.prototype.hasOwnProperty.call(r,"optInField");let i;switch(t){case x:i=[...o?[T]:[],...n];break;case w:i=[B,...o?[T]:[],...n];break;default:i=[B,...n]}const s={actions:i,formType:t||""};return l&&(s.actionSettings={...a,[T]:H(r)}),s}(l,e))}),[l,E]),S=(0,s.useCallback)((e=>{E(function(e,t,n){const o=I(e?.actions,e?.actionSettings),a=e?.actionSettings&&"object"==typeof e.actionSettings?e.actionSettings:{},r=a[T]&&"object"==typeof a[T]?a[T]:{},l=w===n?r:H(r),i=R(o),s=o.hasEmail||w===n,c=s?[B,T,...i]:[T,...i];if(t){const e={};w===n&&"string"==typeof l.optInField&&(e.optInField=l.optInField);const o=l.provider===t?l:e;return{actions:c,formType:n||"",actionSettings:{...a,[T]:{...o,provider:t}}}}return{actions:s?[B,...i]:[...i],formType:n||"",actionSettings:{...a,[T]:{...l,provider:""}}}}(l,e,v))}),[l,v,E]),N=(0,s.useMemo)((()=>({config:l,updateConfig:E,integrationState:i,formType:v,setFormType:C,activeIntegration:_,setActiveIntegration:S,hasEmail:u,hasEmailSignup:g,hasWebhook:b,hasConfirmationEmail:f})),[_,l,v,f,u,g,b,i,S,C,E]);return(0,t.createElement)(U.Provider,{value:N},e)}function K(){const e=(0,s.useContext)(U);if(!e)throw new Error("FormEditorContext is unavailable.");return e}function J(){const e=(0,i.useSelect)((e=>{const t=A(e("core/block-editor").getBlocks());return 1!==t.length?V:t[0].innerBlocks?.length?t[0].innerBlocks:V}),[]);return(0,s.useMemo)((()=>{if(!e.length)return V;const t=[],n=e=>{for(const o of e){if("generateblocks-pro/form-field"===o.name){const e=$(o);e.fieldName&&t.push({name:e.fieldName,fieldName:e.fieldName,label:e.label||e.fieldName,type:e.fieldType,fieldType:e.fieldType,options:e.options||[],checkedValue:e.checkedValue||""})}o.innerBlocks?.length&&n(o.innerBlocks)}};return n(e),t}),[e])}function G(){return K().integrationState}function Z(e){if("button"!==e?.attributes?.tagName)return!1;const t=String(e?.attributes?.htmlAttributes?.type||"").toLowerCase();return""===t||"submit"===t}function Q(e){for(const t of e||[]){if(O(t,z))continue;if(Z(t))return t;const e=Q(t.innerBlocks);if(e)return e}return null}function X(){const{hasFormBlock:e,isChoosingTemplate:o,submitButtonBlock:a,addSubmitButton:r}=function(){const{formBlock:e,submitButtonBlock:t,isChoosingTemplate:o}=(0,i.useSelect)((e=>{const t=A(e("core/block-editor").getBlocks()),n=1===t.length?t[0]:null;return{formBlock:n,submitButtonBlock:n?Q(n.innerBlocks):null,isChoosingTemplate:!!n?.attributes?.showTemplateSelector}}),[]),{insertBlocks:a,selectBlock:r}=(0,i.useDispatch)("core/block-editor"),l=(0,s.useCallback)((()=>{if(t)return void r(t.clientId);if(!e)return;const o=(0,n.createBlocksFromInnerBlocksTemplate)([j]),l=o?.[0];l&&(a(l,void 0,e.clientId,!1),r(l.clientId))}),[e,a,r,t]);return{hasFormBlock:!!e,isChoosingTemplate:o,submitButtonBlock:t,addSubmitButton:l}}();return!e||o||a?null:(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1,className:"gb-form-submit-button-warning"},(0,t.createElement)("p",null,(0,c.__)("No submit button was detected. Add one so visitors have a clear way to submit.","generateblocks-pro")),(0,t.createElement)(u.Button,{variant:"primary",onClick:r},(0,c.__)("Add submit button","generateblocks-pro")))}function Y(){const{config:e,integrationState:n}=K(),o=(0,s.useMemo)((()=>function(e={}){const t=Array.isArray(e?.actions)?e.actions:[],n=e?.actionSettings&&"object"==typeof e.actionSettings?e.actionSettings:{},o=D(n),a="string"==typeof n?.[N]?.url?n[N].url.trim():"",r="string"==typeof e?.confirmationEmailField?e.confirmationEmailField.trim():"",l=[],i=new Set;return t.forEach((e=>{const t="string"==typeof e?e.trim():"";if(t&&!i.has(t))switch(i.add(t),t){case B:l.push({id:B,status:"ready"});break;case T:l.push({id:T,status:o?"ready":"warning",issue:o?"":"provider_missing",provider:o});break;case N:l.push({id:N,status:a?"ready":"warning",issue:a?"":"url_missing"});break;case F:l.push({id:F,status:r?"ready":"warning",issue:r?"":"recipient_missing",secondary:!0});break;default:l.push({id:t,status:"ready",custom:!0})}})),l}(e)),[e]),a=n?.integrations||V;return(0,t.createElement)("div",{className:"gb-form-delivery-actions"},(0,t.createElement)("div",{className:"gb-form-delivery-actions__label"},(0,c.__)("Delivery actions","generateblocks-pro")),o.length?(0,t.createElement)("ul",{className:"gb-form-delivery-actions__list"},o.map((e=>(0,t.createElement)("li",{key:e.id,className:["gb-form-delivery-actions__pill",`gb-form-delivery-actions__pill--${e.status}`,e.secondary?"gb-form-delivery-actions__pill--secondary":"",e.custom?"gb-form-delivery-actions__pill--custom":""].filter(Boolean).join(" ")},function(e,t){switch(e.id){case"email":return(0,c.__)("Email","generateblocks-pro");case"email-signup":return"provider_missing"===e.issue?(0,c.__)("Email signup: not connected","generateblocks-pro"):(0,c.sprintf)(/* translators: %s: email marketing provider name */ /* translators: %s: email marketing provider name */
|
||
(0,c.__)("Email signup: %s","generateblocks-pro"),function(e,t){const n=e.find((e=>e.id===t));return n?.label||t}(t,e.provider));case"webhook":return"url_missing"===e.issue?(0,c.__)("Webhook: URL missing","generateblocks-pro"):(0,c.__)("Webhook","generateblocks-pro");case"confirmation-email":return"recipient_missing"===e.issue?(0,c.__)("Confirmation email: recipient missing","generateblocks-pro"):(0,c.__)("Confirmation email","generateblocks-pro");default:return(0,c.sprintf)(/* translators: %s: custom form action name */ /* translators: %s: custom form action name */
|
||
(0,c.__)("Custom: %s","generateblocks-pro"),e.id)}}(e,a))))):(0,t.createElement)("p",{className:"gb-form-delivery-actions__empty"},(0,c.__)("No delivery actions configured. Visitors will see a configuration error until setup is complete.","generateblocks-pro")))}function ee(){const{formType:e,setFormType:n,hasEmailSignup:o,activeIntegration:a}=K();return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Type","generateblocks-pro"),value:e,options:[{label:(0,c.__)("— Select —","generateblocks-pro"),value:""},{label:(0,c.__)("Contact form","generateblocks-pro"),value:S},{label:(0,c.__)("Email signup","generateblocks-pro"),value:x},{label:(0,c.__)("Contact form + email signup","generateblocks-pro"),value:w}],onChange:n,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(Y,null),o&&!a&&(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},(0,c.__)("This form will show a configuration error to visitors until you connect an email marketing service.","generateblocks-pro")))}function te(){const{config:e,updateConfig:n,activeIntegration:o,setActiveIntegration:a,formType:r}=K(),l=J(),{data:i,integrations:m,error:p,refresh:g}=G(),[d,b]=(0,s.useState)(""),[f,_]=(0,s.useState)(null),[v,C]=(0,s.useState)({}),S=(0,s.useMemo)((()=>m.filter((e=>"email"===e.type&&e.canSubscribe))),[m]),x=(e.actionSettings||{})["email-signup"]||{},B=(0,s.useCallback)((t=>n({actionSettings:{...e.actionSettings||{},"email-signup":t}})),[e.actionSettings,n]),T=[{label:(0,c.__)("— Select —","generateblocks-pro"),value:""},...S.map((e=>({label:e.label,value:e.id})))],N=S.find((e=>e.id===o)),F=S.find((e=>e.id===d)),M=!!i[o]?.connected,D=N?.connection?.fields||[],I=i[o]?.fields||{},R=!!D.length,H=R&&D.every((e=>k.includes(I[e.key]?.source))),z=D.map((e=>I[e.key]?.source)).find((e=>k.includes(e)));return(0,t.createElement)(t.Fragment,null,p&&(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},p),(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Service","generateblocks-pro"),value:f&&d||o,options:T,onChange:e=>{if(e&&!i[e]?.connected){const t=S.find((t=>t.id===e));b(e),_(t?.connection?.fields?.length?t:null)}else b(""),a(e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),d&&F&&!f&&!i[d]?.connected&&!F.connection?.fields?.length&&(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},i[d]?.message||(0,c.sprintf)(/* translators: %s: integration label */ /* translators: %s: integration label */
|
||
(0,c.__)("%s is not available on this site.","generateblocks-pro"),F.label)),o&&N&&!R&&i[o]&&!M&&(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},i[o]?.message||(0,c.sprintf)(/* translators: %s: integration label */ /* translators: %s: integration label */
|
||
(0,c.__)("%s is not available on this site.","generateblocks-pro"),N.label)),o&&N&&R&&!(M&&H)&&(0,t.createElement)("div",{style:{marginTop:"8px",marginBottom:"16px"}},(0,t.createElement)(u.Button,{variant:M?"secondary":"primary",size:"small",onClick:()=>_(N)},M?(0,c.__)("Manage API key","generateblocks-pro"):(0,c.__)("Connect","generateblocks-pro"))),o&&N&&M&&H&&(0,t.createElement)(u.Notice,{status:"info",isDismissible:!1},(0,c.sprintf)(/* translators: %s: connection source label */ /* translators: %s: connection source label */
|
||
(0,c.__)("Connection configured via %s.","generateblocks-pro"),y(z))),o&&N&&M&&(0,t.createElement)(t.Fragment,null,(0,t.createElement)(h,{key:`${o}-${v[o]||0}`,provider:N,settings:x,onChange:e=>B({...e,provider:o}),formFields:l,bypassInitialCache:!!v[o]}),(0,t.createElement)(ne,{optInField:x.optInField,fields:l,isCombinedForm:w===r,onChange:e=>B({...x,provider:o,optInField:e})})),f&&(0,t.createElement)(E,{service:f,connectionState:i[f.id]||{},isConnected:!!i[f.id]?.connected,onConnect:()=>{g(),C((e=>({...e,[f.id]:(e[f.id]||0)+1}))),a(f.id),b("")},onDisconnect:()=>{g(),a("")},onClose:()=>{b(""),_(null)}}))}function ne({optInField:e="",fields:n,isCombinedForm:o,onChange:a}){const r="string"==typeof e?e:"",l=(0,s.useMemo)((()=>n.filter((e=>e.name&&"checkbox"===e.type))),[n]);if(!o)return null;const i=l.find((e=>e.name===r)),m=[{label:(0,c.__)("None","generateblocks-pro"),value:""},...r&&!i?[{label:(0,c.sprintf)(/* translators: %s: missing form field name. */ /* translators: %s: missing form field name. */
|
||
(0,c.__)("%s (missing)","generateblocks-pro"),r),value:r}]:[],...l.map((e=>({label:e.label||e.name,value:e.name})))];return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Signup opt-in field","generateblocks-pro"),help:(0,c.__)("Email signup runs only when this checkbox is checked.","generateblocks-pro"),value:r,options:m,onChange:a,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),!r&&(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},(0,c.__)("Every valid contact submission will also be subscribed until an opt-in field is selected.","generateblocks-pro")))}function oe(){const{config:e,updateConfig:n}=K(),o=J(),a=[{label:(0,c.__)("Auto - first email field","generateblocks-pro"),value:""},{label:(0,c.__)("Use default sender","generateblocks-pro"),value:"__none"},...o.filter((e=>"email"===e.type)).map((e=>({label:e.label||e.name,value:e.name})))];return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.TextControl,{label:(0,c.__)("Send to email","generateblocks-pro"),help:(0,c.__)("Defaults to your site admin email if empty.","generateblocks-pro"),value:e.emailTo||"",onChange:e=>n({emailTo:e}),autoComplete:"off",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(C,{fields:o,label:(0,c.__)("From name","generateblocks-pro"),help:(0,c.__)("Defaults to WordPress if empty.","generateblocks-pro"),value:e.emailFromName||"",onChange:e=>n({emailFromName:e})}),(0,t.createElement)(u.TextControl,{label:(0,c.__)("From email","generateblocks-pro"),help:(0,c.__)("Defaults to the WordPress sender if empty. Use an address from this site domain for best deliverability.","generateblocks-pro"),type:"email",value:e.emailFromEmail||"",onChange:e=>n({emailFromEmail:e}),autoComplete:"off",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(C,{fields:o,label:(0,c.__)("Email subject","generateblocks-pro"),value:e.emailSubject||"",onChange:e=>n({emailSubject:e}),placeholder:(0,c.__)("New Form Submission","generateblocks-pro")}),(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Reply-to field","generateblocks-pro"),help:(0,c.__)("Choose where replies to admin notification emails should go.","generateblocks-pro"),value:e.emailReplyToField||"",options:a,onChange:e=>n({emailReplyToField:e}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))}function ae(){const{config:e,updateConfig:n}=K(),o=J(),a=e.actions||[],r=a.includes("confirmation-email"),l=o.filter((e=>"email"===e.type)).map((e=>({label:e.label||e.name,value:e.name})));return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Send confirmation to submitter","generateblocks-pro"),help:(0,c.__)("Sends an auto-reply to the person who submitted the form.","generateblocks-pro"),checked:r,onChange:e=>{n(e?{actions:[...a,"confirmation-email"]}:{actions:a.filter((e=>"confirmation-email"!==e))})},__nextHasNoMarginBottom:!0}),r&&(0,t.createElement)(t.Fragment,null,l.length?(0,t.createElement)(u.SelectControl,{label:(0,c.__)("Recipient field","generateblocks-pro"),help:(0,c.__)("The email field whose value receives the confirmation.","generateblocks-pro"),value:e.confirmationEmailField||"",options:[{label:(0,c.__)("— Select —","generateblocks-pro"),value:""},...l],onChange:e=>n({confirmationEmailField:e}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}):(0,t.createElement)(u.Notice,{status:"info",isDismissible:!1},(0,c.__)("Add an email field to your form to use this feature.","generateblocks-pro")),(0,t.createElement)(u.TextControl,{label:(0,c.__)("Reply-to email","generateblocks-pro"),help:(0,c.__)("Replies to the confirmation email will go to this address.","generateblocks-pro"),value:e.confirmationEmailReplyToEmail||"",onChange:e=>n({confirmationEmailReplyToEmail:e}),type:"email",autoComplete:"off",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(u.TextControl,{label:(0,c.__)("Reply-to name","generateblocks-pro"),help:(0,c.__)("Optional display name for the reply-to address.","generateblocks-pro"),value:e.confirmationEmailReplyToName||"",onChange:e=>n({confirmationEmailReplyToName:e}),autoComplete:"off",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(C,{fields:o,label:(0,c.__)("Subject","generateblocks-pro"),value:e.confirmationEmailSubject||"",onChange:e=>n({confirmationEmailSubject:e}),placeholder:(0,c.sprintf)(/* translators: %s: site name */ /* translators: %s: site name */
|
||
(0,c.__)("Thank you for contacting %s","generateblocks-pro"),"...")}),(0,t.createElement)(C,{multiline:!0,fields:o,label:(0,c.__)("Message","generateblocks-pro"),value:e.confirmationEmailBody||"",onChange:e=>n({confirmationEmailBody:e}),placeholder:(0,c.__)("Thank you for your submission. We will get back to you soon.","generateblocks-pro")})))}function re(){const{config:e,updateConfig:o}=K(),{successBlock:a,insertSuccessContainer:r,selectSuccessContainer:l}=function(){const{formBlock:e,successBlock:t}=(0,i.useSelect)((e=>{const t=A(e("core/block-editor").getBlocks()),n=1===t.length?t[0]:null;return{formBlock:n,successBlock:n?P(n.innerBlocks):null}}),[]),{insertBlock:o,selectBlock:a}=(0,i.useDispatch)("core/block-editor"),r=(0,s.useCallback)((()=>{if(!e)return;const t=(0,n.createBlock)("generateblocks/element",{tagName:"div",className:z},[(0,n.createBlock)("generateblocks/text",{content:(0,c.__)("Thanks for your submission!","generateblocks-pro"),tagName:"h3"}),(0,n.createBlock)("generateblocks/text",{content:(0,c.__)("We'll be in touch shortly.","generateblocks-pro"),tagName:"p"})]),a=(e.innerBlocks||[]).length;o(t,a,e.clientId,!1)}),[e,o]),l=(0,s.useCallback)((()=>{t&&a(t.clientId)}),[t,a]);return{formClientId:e?.clientId||"",successBlock:t,insertSuccessContainer:r,selectSuccessContainer:l}}(),m=!!a;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.TextareaControl,{label:(0,c.__)("Success message","generateblocks-pro"),help:m?(0,c.__)("A success container is being shown after submission. The message above is unused.","generateblocks-pro"):(0,c.__)("Shown above the form after a successful submission. Use a success container instead for a fully designed thank-you state.","generateblocks-pro"),value:e.successMessage||"",onChange:e=>o({successMessage:e}),disabled:m}),m?(0,t.createElement)(u.Button,{variant:"link",onClick:l,style:{marginBottom:"1em"}},(0,c.__)("Edit success container","generateblocks-pro")):(0,t.createElement)(u.Button,{variant:"secondary",onClick:r,style:{marginBottom:"1em"}},(0,c.__)("Add success container","generateblocks-pro")),(0,t.createElement)(u.TextareaControl,{label:(0,c.__)("Error message","generateblocks-pro"),value:e.errorMessage||"",onChange:e=>o({errorMessage:e})}),(0,t.createElement)(u.TextControl,{label:(0,c.__)("Redirect URL","generateblocks-pro"),help:(0,c.__)("Redirect to this URL after a successful submission. Leave empty to show the success message instead.","generateblocks-pro"),value:e.redirectUrl||"",onChange:e=>o({redirectUrl:e}),type:"url",placeholder:"https://",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))}function le(){const{config:e,updateConfig:n}=K();return(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Store submissions","generateblocks-pro"),help:(0,c.__)("Off (default): nothing is stored — most private, but a failed delivery can’t be recovered. On: recent submissions, including failed deliveries, are kept in the dashboard as a recovery safety net (older entries are auto-removed by retention).","generateblocks-pro"),checked:!!e.storeSubmissions,onChange:e=>n({storeSubmissions:e}),__nextHasNoMarginBottom:!0})}function ie(){const{config:e,updateConfig:n}=K(),{data:o,integrations:a,error:r,refresh:l}=G(),[i,m]=(0,s.useState)(!1),p=a.find((e=>"turnstile"===e.id)),g=!!o.turnstile?.connected,d=o.turnstile?.fields||{},b=p?.connection?.fields||[],f=o.turnstile?.publicFields?.site_key||"",_=!!b.length&&b.every((e=>k.includes(d[e.key]?.source))),h=b.map((e=>d[e.key]?.source)).find((e=>k.includes(e))),v=g&&!!f;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Honeypot","generateblocks-pro"),help:(0,c.__)("A hidden field that catches automated bots.","generateblocks-pro"),checked:!0,disabled:!0,__nextHasNoMarginBottom:!0}),(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Token freshness","generateblocks-pro"),help:(0,c.__)("Rejects submissions with stale, missing, or tampered security tokens.","generateblocks-pro"),checked:!0,disabled:!0,__nextHasNoMarginBottom:!0}),(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Origin check","generateblocks-pro"),help:(0,c.__)("Blocks submissions from external sites.","generateblocks-pro"),checked:!0,disabled:!0,__nextHasNoMarginBottom:!0}),(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Turnstile","generateblocks-pro"),help:(0,c.__)("Cloudflare Turnstile CAPTCHA verification.","generateblocks-pro"),checked:!!e.useTurnstile,onChange:e=>n({useTurnstile:e}),__nextHasNoMarginBottom:!0}),e.useTurnstile&&r&&(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},r),e.useTurnstile&&!v&&(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.Notice,{status:"warning",isDismissible:!1},(0,c.__)("Turnstile requires both a Site Key and a Secret Key. Until both are configured, submissions will continue without Turnstile verification.","generateblocks-pro")),(0,t.createElement)("div",{style:{marginTop:"8px"}},(0,t.createElement)(u.Button,{variant:"primary",size:"small",onClick:()=>m(!0),disabled:!p},(0,c.__)("Connect Turnstile","generateblocks-pro")))),e.useTurnstile&&v&&!_&&(0,t.createElement)("div",{style:{marginTop:"8px"}},(0,t.createElement)(u.Button,{variant:"secondary",size:"small",onClick:()=>m(!0),disabled:!p},(0,c.__)("Manage keys","generateblocks-pro"))),e.useTurnstile&&v&&_&&(0,t.createElement)(u.Notice,{status:"info",isDismissible:!1,style:{marginTop:"8px"}},(0,c.sprintf)(/* translators: %s: connection source label */ /* translators: %s: connection source label */
|
||
(0,c.__)("Keys configured via %s.","generateblocks-pro"),y(h))),i&&p&&(0,t.createElement)(E,{service:p,connectionState:o.turnstile||{},isConnected:v,onConnect:()=>l(),onDisconnect:()=>l(),onClose:()=>m(!1)}))}function se(){const{config:e,updateConfig:n}=K(),o=e.actions||[],a=o.includes("webhook");return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(u.ToggleControl,{label:(0,c.__)("Send to webhook","generateblocks-pro"),help:(0,c.__)("POST submission data as JSON to an external URL (e.g. Zapier, Make, n8n).","generateblocks-pro"),checked:a,onChange:e=>{n(e?{actions:[...o,"webhook"]}:{actions:o.filter((e=>"webhook"!==e))})},__nextHasNoMarginBottom:!0}),a&&(0,t.createElement)(u.TextControl,{label:(0,c.__)("Webhook URL","generateblocks-pro"),value:(e.actionSettings||{}).webhook?.url||"",onChange:t=>n({actionSettings:{...e.actionSettings||{},webhook:{...(e.actionSettings||{}).webhook||{},url:t}}}),type:"url",placeholder:"https://",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))}const ce="gblocks_form",me="generateblocks-pro-form-editor/gb-form";function ue(){const e=function(){const{formType:e,hasEmail:t}=K();return{emailSignup:x===e||w===e,email:t}}();return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(X,null),(0,t.createElement)(m,{title:(0,c.__)("Form Type","generateblocks-pro")},(0,t.createElement)(ee,null)),e.emailSignup&&(0,t.createElement)(m,{title:(0,c.__)("Email Signup","generateblocks-pro")},(0,t.createElement)(te,null)),e.email&&(0,t.createElement)(m,{title:(0,c.__)("Email Settings","generateblocks-pro")},(0,t.createElement)(oe,null)),(0,t.createElement)(m,{title:(0,c.__)("Confirmation Email","generateblocks-pro")},(0,t.createElement)(ae,null)),(0,t.createElement)(m,{title:(0,c.__)("Messages","generateblocks-pro")},(0,t.createElement)(re,null)),(0,t.createElement)(m,{title:(0,c.__)("Submission Storage","generateblocks-pro")},(0,t.createElement)(le,null)),(0,t.createElement)(m,{title:(0,c.__)("Spam Protection","generateblocks-pro")},(0,t.createElement)(ie,null)),(0,t.createElement)(m,{title:(0,c.__)("Webhook","generateblocks-pro")},(0,t.createElement)(se,null)))}a()((()=>{(0,n.getBlockType)("generateblocks-pro/form-render")&&(0,n.unregisterBlockType)("generateblocks-pro/form-render")})),(0,r.registerPlugin)("generateblocks-pro-form-editor",{render:function(){const e=(0,i.useSelect)((e=>e("core/editor").getCurrentPostType()),[]);return function(e){const t=(0,s.useRef)(!1),{toggleEditorPanelOpened:n}=(0,i.useDispatch)("core/editor"),{toggleEditorPanelOpened:o}=(0,i.useDispatch)("core/edit-post"),a=n||o,r=(0,i.useSelect)((e=>{const t=e("core/editor");return t?.isEditorPanelOpened?t.isEditorPanelOpened(me):e("core/edit-post")?.isEditorPanelOpened?.(me)}),[]);(0,s.useEffect)((()=>{t.current||ce===e&&(t.current=!0,!r&&a&&a(me))}),[e,r,a])}(e),ce!==e?null:(0,t.createElement)(l.PluginDocumentSettingPanel,{name:"gb-form",title:(0,c.__)("Form Settings","generateblocks-pro"),className:"gb-form-document-panel"},(0,t.createElement)(q,null,(0,t.createElement)(ue,null)))}})})(); |