Files
hub-insurance/wp-content/plugins/generateblocks-pro/dist/blocks/form-field/index.js
T
2026-07-02 15:54:39 -06:00

9 lines
28 KiB
JavaScript

(()=>{"use strict";var e={n:t=>{var l=t&&t.__esModule?()=>t.default:()=>t;return e.d(l,{a:l}),l},d:(t,l)=>{for(var o in l)e.o(l,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:l[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,l=window.wp.blocks,o=window.wp.i18n,n=window.wp.compose,r=window.wp.element,s=window.wp.blockEditor,a=window.wp.components,i=window.wp.data,c=window.wp.primitives,u=(0,r.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(c.Path,{d:"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"})),d=window.gbp.blockStyles,b=window.gbp.stylesBuilder,f=(0,i.createReduxStore)("gbp-current-style",{reducer:b.currentStyleReducer,actions:b.currentStyleActions,selectors:b.currentStyleSelectors}),p=(0,i.createReduxStore)("gbp-styles",{reducer:b.styleReducer,actions:b.styleActions,selectors:b.styleSelectors}),g=(0,i.createReduxStore)("gbp-styles-at-rule",{reducer:b.atRuleReducer,actions:b.atRuleActions,selectors:b.atRuleSelectors}),m=(0,i.createReduxStore)("gbp-styles-nested-rule",{reducer:b.nestedRuleReducer,actions:b.nestedRuleActions,selectors:b.nestedRuleSelectors}),h=window.wp.apiFetch;var k=e.n(h);const y=window.wp.notices,_=window.wp.url,v=window.wp.coreData;var S;window.lodash;const C="undefined"!=typeof gbGlobalStylePermissions&&null!==(S=gbGlobalStylePermissions?.canManageStyles)&&void 0!==S&&S,R=window.wp.editPost;const w=(0,i.createReduxStore)("gbp-block-styles-current-style",{reducer:b.currentStyleReducer,actions:b.currentStyleActions,selectors:b.currentStyleSelectors}),x=(0,i.createReduxStore)("gbp-block-styles-at-rule",{reducer:b.atRuleReducer,actions:b.atRuleActions,selectors:b.atRuleSelectors}),A=(0,i.createReduxStore)("gbp-block-styles-nested-rule",{reducer:b.nestedRuleReducer,actions:b.nestedRuleActions,selectors:b.nestedRuleSelectors});function E(){const e=(0,i.useSelect)((e=>e(x).getAtRule())),{setAtRule:t}=(0,i.useDispatch)(x),l=(0,i.useSelect)((e=>e(A).getNestedRule())),{setNestedRule:n}=(0,i.useDispatch)(A),r=(0,d.useCurrentAtRule)(b.defaultAtRules),{setCurrentStyle:a}=(0,i.useDispatch)(w),c=(0,i.useSelect)((e=>e(w).currentStyle())),{deviceType:u,setDeviceType:h}=(0,d.useDeviceType)(),S=function(){const{setCurrentStyle:e}=(0,i.useDispatch)(f),{setStyles:t}=(0,i.useDispatch)(p),{createNotice:l,removeAllNotices:n}=(0,i.useDispatch)(y.store),{getEntityRecordEdits:r}=(0,i.useSelect)(v.store),{getSelectedBlock:a}=(0,i.useSelect)((e=>e(s.store)),[]),{setAtRule:c}=(0,i.useDispatch)(g),{setNestedRule:u}=(0,i.useDispatch)(m),{openGeneralSidebar:d}=(0,i.useDispatch)(R.store);return async(s,i={})=>{if(!C)return;const{classStyles:b,classPostId:f}=await async function(e){var t;const l=await k()({path:(0,_.addQueryArgs)("/generateblocks-pro/v1/global-classes/get_styles",{globalClass:e}),method:"GET"});let o=null!==(t=l?.response?.data?.styles)&&void 0!==t?t:{};return Array.isArray(o)&&0===o.length&&(o={}),{classStyles:o,classPostId:l?.response?.data?.postId}}(s);if(!f)return n("snackbar"),void l("error",(0,o.sprintf)(
// Translators: Global class name.
// Translators: Global class name.
(0,o.__)("%s does not exist.","generateblocks-pro"),s),{type:"snackbar"});c(""),u(""),d("gblocks-editor-sidebar/gblocks-editor-sidebar"),e({postId:f,name:s,classStyles:b,clientId:a()?.clientId,options:i}),i.nestedRule&&u(i.nestedRule),i.atRule&&c(i.atRule);const p=r("postType","gblocks_styles",f);t(p?.gb_style_data||b),n("snackbar"),l("info",(0,o.sprintf)(
// Translators: Global class name.
// Translators: Global class name.
(0,o.__)("Editing %s.","generateblocks-pro"),s),{type:"snackbar"})}}(),E=function(){const{setCurrentStyle:e}=(0,i.useDispatch)(f),{setStyles:t}=(0,i.useDispatch)(p),{setAtRule:l}=(0,i.useDispatch)(g),{setNestedRule:o}=(0,i.useDispatch)(m);return()=>{e({}),t({}),l(""),o("")}}();return{atRule:e,nestedRule:l,setAtRule:t,currentAtRule:r,setNestedRule:n,setDeviceType:h,deviceType:u,setCurrentStyle:a,currentStyle:c,getPreviewDevice:d.getPreviewDevice,setGlobalStyle:S,cancelEditGlobalStyle:E}}const I=window.wp.hooks,N=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","readonly","required","reversed","selected"];function B(e){const t=e.trim().replace(/[^A-Za-z0-9-_:.]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");return t?/^[A-Za-z]/.test(t)?t:`id-${t}`:""}function F({attributes:e,setAttributes:l,shortcuts:o,onStyleChange:n}){const{atRule:r,setAtRule:s,nestedRule:a,setNestedRule:i,setDeviceType:c,getPreviewDevice:u,currentStyle:f,setGlobalStyle:p,cancelEditGlobalStyle:g}=E(),{styles:m,globalClasses:h=[]}=e,k=(0,b.getStylesObject)(m,r,a);return(0,t.createElement)(b.StylesBuilder,{currentSelector:f?.selector,styles:k,allStyles:m,onDeleteStyle:(e,t)=>{const o=(0,b.deleteStylesObjectKey)(m,e,t);l({styles:o})},nestedRule:a,atRule:r,onStyleChange:(e,t=null)=>n(e,t,r,a),onNestedRuleChange:e=>i(e),onAtRuleChange:e=>{s(e);const t=(0,b.getPreviewWidth)(e),l=u(t);l&&c(l)},onUpdateKey:(e,t,o)=>{const n=(0,b.updateStylesObjectKey)(m,e,t,o);l({styles:n})},selectorShortcuts:o.selectorShortcuts,visibleSelectors:o.visibleShortcuts,onEditStyle:p,cancelEditStyle:g,setLocalTab:d.openBlockStylesTab,scope:"local",allowDevTools:!0,appliedGlobalStyles:h,onAllStylesChange:e=>l({styles:e})})}function L(e,t,l=!1){const{styles:o={},uniqueId:n="",globalClasses:r=[]}=t,s=[];return l&&s.push(e),r.length>0&&s.push(...r),Object.keys(o).length>0&&s.push(`${e}-${n}`),s}const T=window.gbp.components,D={default:{items:[{label:"Hover",value:"&:hover"},{label:"Hover & Focus",value:"&:is(:hover, :focus)"},{label:"Links",value:"a"},{label:"Hovered links",value:"a:hover"}]},interactions:{label:(0,o.__)("Interactions","generateblocks-pro"),items:[{label:"Hover",value:"&:hover"},{label:"Focus",value:"&:focus"},{label:"Hover & Focus",value:"&:is(:hover, :focus)"}]},links:{label:(0,o.__)("Links","generateblocks-pro"),items:[{label:"Links",value:"a"},{label:"Hovered links",value:"a:hover"},{label:"Hovered & focused links",value:"a:is(:hover, :focus)"},{label:"Visited links",value:"a:visited"}]},pseudoElements:{label:(0,o.__)("Pseudo Elements","generateblocks-pro"),items:[{label:"Before",value:"&:before"},{label:"After",value:"&:after"}]}},M=["text","email","url","tel","number","hidden"],O=["radio","checkbox-group"],P=["select","radio","checkbox","checkbox-group"],j=["text","email","url","tel","number","textarea"],H=["div","fieldset"],z=["__none"];function V(e){return e||"text"}function q(e){return String(null!=e?e:"").toLowerCase().replace(/[^a-z0-9_-]/g,"")}function G(e){return O.includes(V(e))}function U(e){return G(e)?"fieldset":"div"}function Z(e,t){const l=U(t);return H.includes(e)&&e===l?e:l}function W(e){return e?.name||e?.blockName||""}function J(e=[],t){for(const l of e){if("generateblocks-pro/form-field"===W(l))continue;if(t===W(l))return l;const e=J(l.innerBlocks||[],t);if(e)return e}return null}function K(e=[],t){const l=[];for(const o of e)"generateblocks-pro/form-field"!==W(o)&&(t!==W(o)?l.push(...K(o.innerBlocks||[],t)):l.push(o));return l}function $(e=[],t){for(const l of e){if(t===W(l))return!0;if($(l.innerBlocks||[],t))return!0}return!1}function Q(e={}){const t={};return e.styles&&Object.keys(e.styles).length&&(t.styles={...e.styles}),Array.isArray(e.globalClasses)&&e.globalClasses.length&&(t.globalClasses=[...e.globalClasses]),t}function X({innerBlocks:e=[],fieldType:t="",fieldName:l=""}={}){const o=[],n=q(l),r=K(e,"generateblocks-pro/form-field-label"),s=K(e,"generateblocks-pro/form-field-control"),a=$(e,"generateblocks-pro/form-field"),i=r.length>0&&!function(e=[],t){return e.some((e=>t===W(e)))}(e,"generateblocks-pro/form-field-label"),c=G(t)&&r.length>0&&!function(e=[]){return"generateblocks-pro/form-field-label"===W(e[0])}(e);return a&&o.push("nestedField"),r.length>1&&o.push("multipleLabels"),s.length>1&&o.push("multipleControls"),n||o.push("missingFieldName"),z.includes(n)&&o.push("reservedFieldName"),n&&0===s.length&&o.push("missingControl"),c?o.push("groupLabelPosition"):i&&o.push("nestedLabel"),o}function Y(e){return J(e?.innerBlocks||[],"generateblocks-pro/form-field-label")}function ee(e){return J(e?.innerBlocks||[],"generateblocks-pro/form-field-control")}function te(e){const t=Y(e),l=ee(e),o=e?.attributes?.fieldName||"",n=V(e?.attributes?.fieldType),r="hidden"===n?"":t?.attributes?.content;return{clientId:e?.clientId,fieldName:o,fieldType:n,isRequired:!!e?.attributes?.isRequired,matchesField:e?.attributes?.matchesField||"",conditions:e?.attributes?.conditions||[],label:r||o,options:l?.attributes?.options||[],checkedValue:l?.attributes?.checkedValue||"",defaultValue:l?.attributes?.defaultValue||""}}const le="generateblocks-pro/form-field";function oe(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function ne(e,t,l){if(!Array.isArray(e)||!t)return!1;for(const o of e){if(o?.name===le&&o?.clientId!==l&&o?.attributes?.fieldName===t)return!0;if(o?.innerBlocks?.length&&ne(o.innerBlocks,t,l))return!0}return!1}const re="gblocks_form";function se(){const[e,t]=(0,v.useEntityProp)("postType",re,"meta"),l=(0,i.useSelect)((e=>re===e("core/editor")?.getCurrentPostType()),[]),{updateBlockAttributes:o}=(0,i.useDispatch)(s.store);return(0,r.useCallback)(((n,r,a="")=>{if(!n||!r||n===r)return;const c=(0,i.select)(s.store).getBlocks();if(ne(c,n,a))return;if(l){const l=e&&e._gb_form||{},o=l.config||{},s=function(e,t,l){if(!e||!t||!l||t===l)return e;let o=e,n=!1;const r=()=>{n||(o={...e},n=!0)};if(e.emailReplyToField===t&&(r(),o.emailReplyToField=l),e.confirmationEmailField===t&&(r(),o.confirmationEmailField=l),oe(e.actionSettings)){let n=e.actionSettings,s=!1;const a=()=>{s||(n={...e.actionSettings},s=!0)};for(const o of Object.keys(e.actionSettings)){const r=e.actionSettings[o];if(!oe(r))continue;let s=r,i=!1;const c=()=>{i||(s={...r},i=!0)};if(r.emailField===t&&(c(),s.emailField=l),r.nameField===t&&(c(),s.nameField=l),"email-signup"===o&&r.optInField===t&&(c(),s.optInField=l),oe(r.fieldMap)&&Object.prototype.hasOwnProperty.call(r.fieldMap,t)){c();const{[t]:e,...o}=r.fieldMap;s.fieldMap=Object.prototype.hasOwnProperty.call(o,l)?o:{...o,[l]:e}}i&&(a(),n[o]=s)}s&&(r(),o.actionSettings=n)}return n?o:e}(o,n,r);s!==o&&t({...e||{},_gb_form:{...l,config:s}})}const u=function(e,t,l){if(!Array.isArray(e)||!t||!l||t===l)return[];const o=[],n=e=>{for(const r of e){if(le===r?.name){const e=r.attributes?.conditions,n={};Array.isArray(e)&&e.some((e=>e?.field===t))&&(n.conditions=e.map((e=>e?.field===t?{...e,field:l}:e))),r.attributes?.matchesField===t&&(n.matchesField=l),Object.keys(n).length&&o.push([r.clientId,n])}r?.innerBlocks?.length&&n(r.innerBlocks)}};return n(e),o}(c,n,r);for(const[e,t]of u)o(e,t)}),[l,e,t,o])}const ae=[];function ie(e,t){return!(!e||!t)&&(e.clientId===t||(e.innerBlocks||[]).some((e=>ie(e,t))))}const ce=(0,n.compose)((function(e){return l=>{var o,n,c,u;const{attributes:d,setAttributes:b,context:f}=l,{htmlAttributes:p={},uniqueId:g,className:m,align:h}=d,k=(0,i.useSelect)((e=>e("core/editor").isSavingPost())),{style:y="",href:_,...v}=p,S=Object.keys(v).reduce(((e,t)=>(e[t]=(e=>{if(null==e)return"";let t="";if("object"==typeof e)try{t=JSON.stringify(e)}catch(e){return""}else t=String(e);return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")})(v[t]),e)),{}),[C,R]=(0,r.useState)(y);var w,x,A,E;(0,r.useEffect)((()=>{!async function(){const e=await(0,I.applyFilters)("generateblocks.editor.htmlAttributes.style",y,{...l});R(e)}()}),[y,f,k]),w=()=>{const e=["alignwide","alignfull"],t=(m?.split(" ")||[]).filter((t=>!e.includes(t)));h&&t.push("align"+h),b({className:t.join(" ")})},x=[h],E=(A=(0,t.useRef)(!0)).current?(A.current=!1,!0):A.current,(0,t.useEffect)((function(){if(!E)return w()}),x);const F="string"==typeof C?C.split(";").reduce(((e,t)=>{const l=t.indexOf(":");if(-1===l)return e;let o=t.slice(0,l).trim();const n=t.slice(l+1).trim();return o&&n&&(o.startsWith("--")||(o=o.replace(/-([a-z])/g,(e=>e[1].toUpperCase()))),e[o]=n),e}),{}):"",L={...S,style:F,"data-gb-id":g,"data-context-post-id":null!==(o=null!==(n=f?.postId)&&void 0!==n?n:f?.["generateblocks/loopIndex"])&&void 0!==o?o:0,"data-align":h||void 0},T=(0,r.useMemo)((()=>Array.isArray(p)?{}:p),[JSON.stringify(p)]);return(0,r.useEffect)((()=>{const e={...p};Object.keys(e).forEach((t=>{const l=t.startsWith("data-"),o=e[t];N.includes(t)||""!==o||l||"alt"===t||delete e[t],"string"!=typeof o&&"boolean"!=typeof o&&delete e[t],"class"===t&&delete e[t]})),function(e,t){if(e===t)return!0;if(!e||!t)return!1;const l=Object.keys(e),o=Object.keys(t);if(l.length!==o.length)return!1;for(const o of l)if(e[o]!==t[o])return!1;return!0}(e,p)||b({htmlAttributes:e})}),[JSON.stringify(p)]),(0,t.createElement)(t.Fragment,null,(0,t.createElement)(e,{...l,editorHtmlAttributes:L,htmlAttributes:T}),(0,t.createElement)(s.InspectorAdvancedControls,null,(0,t.createElement)(a.TextControl,{label:"HTML ID",value:null!==(c=p.id)&&void 0!==c?c:"",onChange:e=>{b({htmlAttributes:{...p,id:e}})},onBlur:()=>{p.id&&b({htmlAttributes:{...p,id:B(p.id)}})}}),(0,t.createElement)(a.TextControl,{label:"ARIA Label",value:null!==(u=p["aria-label"])&&void 0!==u?u:"",onChange:e=>{b({htmlAttributes:{...p,"aria-label":e}})}})))}}),(function(e){return l=>{const{attributes:o,name:n,setAttributes:s,isSelected:a,clientId:i}=l,{uniqueId:c,styles:u,css:f}=o,{atRule:p,deviceType:g,setAtRule:m,currentStyle:h,setCurrentStyle:k,setNestedRule:y}=E(),_=(0,d.useSetStyles)(l,{cleanStylesObject:b.cleanStylesObject}),v=(0,r.useMemo)((()=>c?(0,d.getSelector)(n,c):""),[n,c]),S=Array.isArray(u)?{}:u;return(0,d.useAtRuleEffect)({deviceType:g,atRule:p,setAtRule:m,defaultAtRules:b.defaultAtRules,isSelected:a,getPreviewWidth:b.getPreviewWidth}),(0,d.useGenerateCSSEffect)({selector:v,styles:S,setAttributes:s,getCss:b.getCss,getSelector:d.getSelector,isSelected:a,blockCss:f,clientId:i}),(0,d.useStyleSelectorEffect)({isSelected:a,currentStyle:h,selector:v,setCurrentStyle:k,setNestedRule:y}),(0,d.useDecodeStyleKeys)({styles:u,setAttributes:s}),(0,t.createElement)(t.Fragment,null,(0,t.createElement)(d.Style,{selector:v,getCss:b.getCss,styles:S,clientId:i,name:n}),(0,t.createElement)(e,{...l,selector:v,onStyleChange:function(e,t="",l="",o=""){const n="object"==typeof e?e:{[e]:t},r=(0,d.buildChangedStylesObject)(n,l,o);_(r)},getStyleValue:function(e,t="",l=""){var o,n,r,s;return l?t?null!==(r=u?.[l]?.[t]?.[e])&&void 0!==r?r:"":null!==(n=u?.[l]?.[e])&&void 0!==n?n:"":t?null!==(s=u?.[t]?.[e])&&void 0!==s?s:"":null!==(o=u?.[e])&&void 0!==o?o:""},styles:S}))}}),d.withUniqueId)((function(e){const{attributes:l,setAttributes:c,name:b,clientId:f,onStyleChange:p,getStyleValue:g,editorHtmlAttributes:m={},styles:h={}}=e,{fieldType:k,tagName:y,fieldName:_,isRequired:v,matchesField:S,conditions:C}=l,R=V(k),w=U(R),x="hidden"===R,A="checkbox"===R,E="radio"===R,I="checkbox-group"===R,{replaceInnerBlocks:N,updateBlockAttributes:B,moveBlocksToPosition:O}=(0,i.useDispatch)(s.store),H=se(),z=(0,r.useRef)(_);(0,r.useEffect)((()=>{_&&(z.current=_)}),[_]);const W=(0,i.useSelect)((e=>e(s.store).getBlocks(f)),[f]),J=Y({innerBlocks:W}),K=ee({innerBlocks:W}),$=W.find((e=>"generateblocks-pro/form-field-label"===e.name))||null,le=(0,i.useSelect)((e=>{const{getBlockIndex:t,getBlockParentsByBlockName:l,getBlockRootClientId:o}=e(s.store),n=l(f,"generateblocks-pro/form-field",!0),r=n?.[0]||"";if(!r)return null;const a=o(r),i=t(r,a);return i<0?null:{fromRootClientId:o(f),toRootClientId:a,index:i+1}}),[f]),oe=(0,i.useSelect)((e=>{if(k)return null;const{getBlockParentsByBlockName:t,getBlocks:l}=e(s.store),o=t(f,"generateblocks-pro/form");if(!o.length)return null;const n=[],r=e=>{for(const t of e)"generateblocks-pro/form-field"===t.name&&n.push(t),t.innerBlocks?.length&&r(t.innerBlocks)};r(l(o[0]));const a=n.findIndex((e=>e.clientId===f));return a>0?n[a-1]:n.filter((e=>e.clientId!==f)).pop()||null}),[f,k]),ne=(0,r.useMemo)((()=>function(e){const t=Y(e),l=ee(e);return{fieldAttrs:Q(e?.attributes||{}),labelAttrs:Q(t?.attributes||{}),controlAttrs:Q(l?.attributes||{})}}(oe)),[oe]);(0,r.useEffect)((()=>{const e={};k||Object.assign(e,{fieldType:"text",...ne.fieldAttrs}),y!==w&&(e.tagName=w),Object.keys(e).length&&c(e)}),[w,k,ne.fieldAttrs,c,y]);const re=(0,r.useCallback)((e=>{K?.clientId&&B(K.clientId,e)}),[K?.clientId,B]),[ce,ue]=(0,r.useState)(_),de=(0,n.useDebounce)((e=>{ue(e)}),300);(0,r.useEffect)((()=>{de(_)}),[_,de]);const be=(0,i.useSelect)((e=>{const{getBlockParentsByBlockName:t,getBlocks:l}=e(s.store),o=t(f,"generateblocks-pro/form");if(!o.length)return ae;const n=l(o[0]);return n.length?n:ae}),[f]),fe=(0,r.useMemo)((()=>{if(!be.length)return ae;const e=[],t=l=>{for(const o of l)"generateblocks-pro/form-field"===o.name&&e.push(te(o)),o.innerBlocks?.length&&t(o.innerBlocks)};return t(be),e}),[be]),pe=(0,r.useMemo)((()=>!!ce&&fe.some((e=>e.clientId!==f&&e.fieldName===ce))),[fe,f,ce]),ge=(0,r.useMemo)((()=>fe.filter((e=>e.clientId!==f&&e.fieldName&&P.includes(e.fieldType)))),[fe,f]),me=(0,r.useMemo)((()=>fe.filter((e=>e.clientId!==f&&e.fieldName&&j.includes(e.fieldType)))),[fe,f]),he=j.includes(R),ke=!!S,ye=he&&(me.length>0||ke),_e=(0,r.useMemo)((()=>{const e=S&&me.some((e=>e.fieldName===S));return[{label:(0,o.__)("Select a field…","generateblocks-pro"),value:""},...S&&!e?[{label:(0,o.sprintf)(/* translators: %s: unavailable form field name. */ /* translators: %s: unavailable form field name. */
(0,o.__)("%s (unavailable)","generateblocks-pro"),S),value:S}]:[],...me.map((e=>({label:e.label||e.fieldName,value:e.fieldName})))]}),[me,S]),ve=Array.isArray(C)&&C.length>0,Se=!x&&(ge.length>0||ve),Ce=(0,r.useMemo)((()=>X({innerBlocks:W,fieldType:R,fieldName:_})),[_,W,R]),Re=(0,r.useMemo)((()=>{const e={multipleLabels:(0,o.__)("This field has multiple Form Field Label blocks. Each field can only use one label.","generateblocks-pro"),multipleControls:(0,o.__)("This field has multiple Form Field Control blocks. Each field can only use one control.","generateblocks-pro"),missingFieldName:(0,o.__)("This field needs a field name before publishing.","generateblocks-pro"),reservedFieldName:(0,o.__)("This field name is reserved. Choose a different field name.","generateblocks-pro"),missingControl:(0,o.__)("This field is missing a Form Field Control block.","generateblocks-pro"),groupLabelPosition:(0,o.__)("Radio and checkbox group labels must be the first block directly inside the Form Field block.","generateblocks-pro"),nestedLabel:(0,o.__)("Form Field Label blocks must be placed directly inside the Form Field block.","generateblocks-pro"),nestedField:(0,o.__)("Form Field blocks cannot be placed inside other Form Field blocks.","generateblocks-pro")};return Ce.map((t=>e[t])).filter(Boolean)}),[Ce]),we=1===Ce.length&&"missingFieldName"===Ce[0]?(0,o.__)("Fix this field before publishing:","generateblocks-pro"):(0,o.__)("Fix this field structure before saving or publishing:","generateblocks-pro"),xe=(0,r.useCallback)(((e,t)=>{const l=[...C||[]];l[e]={...l[e],...t},c({conditions:l})}),[C,c]),Ae=(0,r.useCallback)((()=>{c({conditions:[...C||[],{field:"",operator:"is",value:""}]})}),[C,c]),Ee=(0,r.useCallback)((e=>{const t=[...C||[]];t.splice(e,1),c({conditions:t})}),[C,c]),Ie=(0,r.useCallback)((e=>{const t={fieldType:e},l=V(e);if(J?.clientId&&B(J.clientId,{tagName:G(l)?"legend":"label"}),$&&K){const e=W.find((e=>ie(e,K.clientId))),t="checkbox"===l,o=G(l),n="checkbox"===R&&!t&&!o;if(e&&(t||o||n)){const l=W.filter((e=>e.clientId!==$.clientId));let o=0;t?o=l.findIndex((t=>t.clientId===e.clientId))+1:n&&(o=l.findIndex((t=>t.clientId===e.clientId))),o>=0&&(l.splice(o,0,$),W.every(((e,t)=>e.clientId===l[t]?.clientId))||N(f,l,!1))}}"hidden"===e&&(t.isRequired=!1),function(e){return[...M,"textarea","select","radio"].includes(V(e))}(e)||re({defaultValue:""}),c(t)}),[f,K,$,W,J?.clientId,R,N,c,B,re]);(0,r.useEffect)((()=>{G(R)&&$&&0!==W.findIndex((e=>e.clientId===$.clientId))&&N(f,[$,...W.filter((e=>e.clientId!==$.clientId))],!1)}),[f,$,W,R,N]),(0,r.useEffect)((()=>{le&&"function"==typeof O&&O([f],le.fromRootClientId,le.toRootClientId,le.index)}),[f,O,le]);const Ne=L("gb-form-field",{...l,styles:h},!0),Be=(0,s.useBlockProps)({className:[...Ne.filter(Boolean),A?"gb-form-field--checkbox":"",E?"gb-form-field--radio":"",I?"gb-form-field--checkbox-group":""].filter(Boolean).join(" ").trim(),...m}),Fe=(0,s.useInnerBlocksProps)(Be,{allowedBlocks:[...J?[]:["generateblocks-pro/form-field-label"],...K?[]:["generateblocks-pro/form-field-control"],"generateblocks/element","generateblocks/text"],template:"checkbox"===R?[["generateblocks-pro/form-field-control",ne.controlAttrs],["generateblocks-pro/form-field-label",{...ne.labelAttrs,tagName:"label"}]]:[["generateblocks-pro/form-field-label",{...ne.labelAttrs,tagName:G(R)?"legend":"label"}],["generateblocks-pro/form-field-control",ne.controlAttrs]],templateLock:!1}),Le=Z(y,R),Te=(0,r.useMemo)((()=>({selectorShortcuts:D,visibleShortcuts:[]})),[]),De={name:b,attributes:l,setAttributes:c,clientId:f,getStyleValue:g,onStyleChange:p};return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(s.InspectorControls,null,(0,t.createElement)(d.BlockStyles,{settingsTab:(0,t.createElement)(T.OpenPanel,{...De,panelId:"settings"},(0,t.createElement)(a.SelectControl,{label:(0,o.__)("Field type","generateblocks-pro"),value:R,options:[{label:(0,o.__)("Text","generateblocks-pro"),value:"text"},{label:(0,o.__)("Email","generateblocks-pro"),value:"email"},{label:(0,o.__)("URL","generateblocks-pro"),value:"url"},{label:(0,o.__)("Telephone","generateblocks-pro"),value:"tel"},{label:(0,o.__)("Number","generateblocks-pro"),value:"number"},{label:(0,o.__)("Textarea","generateblocks-pro"),value:"textarea"},{label:(0,o.__)("Select","generateblocks-pro"),value:"select"},{label:(0,o.__)("Checkbox","generateblocks-pro"),value:"checkbox"},{label:(0,o.__)("Radio","generateblocks-pro"),value:"radio"},{label:(0,o.__)("Checkbox group","generateblocks-pro"),value:"checkbox-group"},{label:(0,o.__)("Hidden","generateblocks-pro"),value:"hidden"}],onChange:Ie,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(a.TextControl,{label:(0,o.__)("Field name","generateblocks-pro"),help:(0,o.__)("The identifier for this field in the submission data.","generateblocks-pro"),value:_,onChange:e=>{const t=q(e);if(t===_)return;const l=_||z.current;H(l,t,f),c({fieldName:t})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),pe&&(0,t.createElement)(a.Notice,{status:"warning",isDismissible:!1},(0,o.__)("Another field in this form uses the same name. Each field should have a unique name.","generateblocks-pro")),Re.length>0&&(0,t.createElement)(a.Notice,{status:"error",isDismissible:!1},(0,t.createElement)("p",null,we),(0,t.createElement)("ul",null,Re.map((e=>(0,t.createElement)("li",{key:e},e))))),!x&&(0,t.createElement)(a.ToggleControl,{label:(0,o.__)("Required","generateblocks-pro"),checked:!!v,onChange:e=>c({isRequired:e}),__nextHasNoMarginBottom:!0}),ye&&(0,t.createElement)(a.SelectControl,{label:(0,o.__)("Must match field","generateblocks-pro"),help:(0,o.__)("Require this field to match another field in the form.","generateblocks-pro"),value:S||"",options:_e,onChange:e=>c({matchesField:e}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),Se&&(0,t.createElement)("div",{className:"gb-form-repeater"},(0,t.createElement)(a.BaseControl,{label:(0,o.__)("Field Display Conditions","generateblocks-pro"),id:"",help:(0,o.__)("Show this field when all conditions are met.","generateblocks-pro")}),(C||[]).map(((e,l)=>{const n=ge.find((t=>t.fieldName===e.field)),r="is"===e.operator||"isnot"===e.operator,s=[{label:(0,o.__)("Select a field…","generateblocks-pro"),value:""},...e.field&&!n?[{label:(0,o.sprintf)(/* translators: %s: missing form field name. */ /* translators: %s: missing form field name. */
(0,o.__)("%s (missing)","generateblocks-pro"),e.field),value:e.field}]:[],...ge.map((e=>({label:e.label||e.fieldName,value:e.fieldName})))];return(0,t.createElement)("div",{key:l,className:"gb-form-repeater__item gb-form-repeater__item--condition"},(0,t.createElement)("div",{className:"gb-form-repeater__condition-controls"},(0,t.createElement)(a.SelectControl,{label:(0,o.__)("Field","generateblocks-pro"),hideLabelFromVision:!0,value:e.field,options:s,onChange:e=>xe(l,{field:e,value:""}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),(0,t.createElement)(a.SelectControl,{label:(0,o.__)("Operator","generateblocks-pro"),hideLabelFromVision:!0,value:e.operator,options:[{label:(0,o.__)("is","generateblocks-pro"),value:"is"},{label:(0,o.__)("is not","generateblocks-pro"),value:"isnot"},{label:(0,o.__)("is empty","generateblocks-pro"),value:"isempty"},{label:(0,o.__)("is not empty","generateblocks-pro"),value:"isnotempty"}],onChange:e=>xe(l,{operator:e}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),r&&n&&(0,t.createElement)(a.SelectControl,{label:(0,o.__)("Value","generateblocks-pro"),hideLabelFromVision:!0,value:e.value,options:[{label:(0,o.__)("Select a value…","generateblocks-pro"),value:""},..."checkbox"===n.fieldType?[{label:n.checkedValue||"yes",value:n.checkedValue||"yes"}]:(n.options||[]).map((e=>({label:e.label||e.value,value:e.value||e.label})))],onChange:e=>xe(l,{value:e}),__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),(0,t.createElement)(a.Button,{icon:u,label:(0,o.__)("Remove condition","generateblocks-pro"),size:"small",iconSize:"20",isDestructive:!0,onClick:()=>Ee(l)}))})),ge.length>0&&(0,t.createElement)(a.Button,{variant:"secondary",size:"small",onClick:Ae,className:"gb-form-repeater__add-button"},(0,o.__)("Add condition","generateblocks-pro")))),stylesTab:(0,t.createElement)(F,{attributes:l,setAttributes:c,shortcuts:Te,onStyleChange:p})})),(0,t.createElement)(Le,{...Fe}))})),ue=JSON.parse('{"UU":"generateblocks-pro/form-field"}');(0,l.registerBlockType)(ue.UU,{edit:ce,save:function({attributes:e}){const{fieldType:l,tagName:o,htmlAttributes:n={}}=e,r=L("gb-form-field",e,!0),a=s.useBlockProps.save({className:r.join(" ").trim(),...n}),i=s.useInnerBlocksProps.save(a),c=Z(o,l);return(0,t.createElement)(c,{...i})},icon:(0,t.createElement)((function(){return(0,t.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",className:"gblocks-block-icon","aria-hidden":"true",focusable:"false"},(0,t.createElement)("rect",{x:"0",y:"0",width:"24",height:"24",style:{fill:"none"}}),(0,t.createElement)("path",{d:"M21.375,22L2.625,22C2.282,22 2,21.718 2,21.375L2,2.625C2,2.28 2.28,2 2.625,2L21.375,2C21.72,2 22,2.28 22,2.625L22,21.375C22,21.72 21.72,22 21.375,22ZM3.25,20.75L20.75,20.75L20.75,3.25L3.25,3.25L3.25,20.75Z",style:{fillOpacity:.3,fillRule:"nonzero"}}),(0,t.createElement)("path",{d:"M5,11.375L5,7.808C5,7.463 5.28,7.183 5.625,7.183L18.375,7.183C18.72,7.183 19,7.463 19,7.808L19,11.375C19,11.72 18.72,12 18.375,12L5.625,12C5.28,12 5,11.72 5,11.375ZM17.75,10.75L17.75,8.433L6.25,8.433L6.25,10.75L17.75,10.75Z"}),(0,t.createElement)("path",{d:"M12,18.497L12,17.103C12,16.825 12.28,16.6 12.625,16.6L18.375,16.6C18.72,16.6 19,16.825 19,17.103L19,18.497C19,18.775 18.72,19 18.375,19L12.625,19C12.28,19 12,18.775 12,18.497Z",style:{fillOpacity:.3}}),(0,t.createElement)("path",{d:"M9.075,5.621L9.075,5.629C9.075,5.972 8.797,6.25 8.455,6.25L5.621,6.25C5.278,6.25 5,5.972 5,5.629L5,5.621C5,5.278 5.278,5 5.621,5L8.455,5C8.797,5 9.075,5.278 9.075,5.621Z",style:{fillRule:"nonzero"}}),(0,t.createElement)("circle",{cx:"5.6",cy:"13.817",r:"0.6"}),(0,t.createElement)("path",{d:"M19,13.785C19,14.116 18.731,14.385 18.4,14.385L9.1,14.385C8.769,14.385 8.5,14.116 8.5,13.785C8.5,13.454 8.769,13.185 9.1,13.185L18.4,13.185C18.731,13.185 19,13.454 19,13.785Z",style:{fillRule:"nonzero"}}))}),null),__experimentalLabel:(e,{context:t})=>{if("list-view"===t)return e?.metadata?.name?e.metadata.name:function(e){switch(e||"text"){case"email":return(0,o.__)("Email field","generateblocks-pro");case"url":return(0,o.__)("URL field","generateblocks-pro");case"tel":return(0,o.__)("Telephone field","generateblocks-pro");case"number":return(0,o.__)("Number field","generateblocks-pro");case"hidden":return(0,o.__)("Hidden field","generateblocks-pro");case"textarea":return(0,o.__)("Textarea field","generateblocks-pro");case"select":return(0,o.__)("Select field","generateblocks-pro");case"checkbox":return(0,o.__)("Checkbox field","generateblocks-pro");case"radio":return(0,o.__)("Radio field","generateblocks-pro");case"checkbox-group":return(0,o.__)("Checkbox group","generateblocks-pro");case"text":return(0,o.__)("Text field","generateblocks-pro");default:return(0,o.__)("Form field","generateblocks-pro")}}(e?.fieldType)}})})();