1import{X as ne,J as L,A as k,B as d,V as I,W as K,F,D as y,z as g,b as h,w as D,x as R,E as S,ag as Fe,G as Te,S as Ae,T as Ee,U as x,a3 as G,e as Le,a0 as Re}from"./index-B7FuHUwY.js";import{C as H}from"./ConfirmDialog-O3qojkve.js";import{b as Q,c as Y,n as xe,u as Ie,C as Pe,F as Oe,a as Be,S as Me,p as Ue}from"./useGuestFields-C6HsR8MQ.js";import{a as Ne}from"./createLucideIcon-DD0gdHgQ.js";import{o as Z,P as Ve}from"./PageCanvas-P7tkWU6M.js";import{_ as ae}from"./_plugin-vue_export-helper-1Fh_g1AI.js";import{p as Ge,s as Ke,d as We}from"./transport-GBqzftBG.js";import"./plus-BUBtZ8ke.js";import"./PromptDialog-Cx1z3YYR.js";try{let t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},l=new t.Error().stack;l&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[l]="723190cf-41a8-4c88-a7f8-aaf45704bbca",t._sentryDebugIdIdentifier="sentry-dbid-723190cf-41a8-4c88-a7f8-aaf45704bbca")}catch{}const je={class:"cpalette","aria-label":"Add a field"},qe={class:"cpalette__group"},ze=["data-create","data-node-type"],Je=["title","onClick"],Xe={class:"cpalette__name"},He={class:"cpalette__hint"},Qe={class:"cpalette__group"},Ye=["data-create","data-node-type"],Ze=["title","onClick"],et={class:"cpalette__name"},tt={class:"cpalette__hint"},lt=ne({__name:"ControlsPalette",props:{controller:{}},setup(t){const l=t,o=L(null),a=L(null),u=L([...Q]),r=L([...Y]),v={group:{name:"ast-canvas",pull:"clone",put:!1},sort:!1,clone:()=>{}};Z(o,u,v),Z(a,r,v);function m(f){l.controller.add(f.create,null)}return(f,c)=>(g(),k("aside",je,[d("div",qe,[c[0]||(c[0]=d("div",{class:"cpalette__title"},"Fields",-1)),d("ul",{ref_key:"fieldsEl",ref:o,class:"cpalette__items"},[(g(!0),k(I,null,K(F(Q),i=>(g(),k("li",{key:i.create,class:"cpalette__card","data-create":i.create,"data-node-type":i.nodeType},[d("button",{type:"button",class:"cpalette__add",title:`Drag ${i.label} onto the form, or click to add it`,onClick:_=>m(i)},[d("span",Xe,y(i.label),1),d("span",He,y(i.hint),1)],8,Je)],8,ze))),128))],512)]),d("div",Qe,[c[1]||(c[1]=d("div",{class:"cpalette__title"},"Structure",-1)),d("ul",{ref_key:"structureEl",ref:a,class:"cpalette__items"},[(g(!0),k(I,null,K(F(Y),i=>(g(),k("li",{key:i.create,class:"cpalette__card","data-create":i.create,"data-node-type":i.nodeType},[d("button",{type:"button",class:"cpalette__add",title:`Drag ${i.label} onto the form, or click to add it`,onClick:_=>m(i)},[d("span",et,y(i.label),1),d("span",tt,y(i.hint),1)],8,Ze)],8,Ye))),128))],512)]),c[2]||(c[2]=d("p",{class:"cpalette__footer"},"Click to append, or drag onto the form.",-1))]))}}),nt=ae(lt,[["__scopeId","data-v-f2996dab"]]);function W(t,l){const o=a=>{l(a);for(const u of a.children??[])o(u)};for(const a of t)o(a)}function P(t){const l=[];return W(t,o=>{var u;const a=(u=o.props)==null?void 0:u.row;typeof a=="number"&&l.push(a)}),l}function O(t,l){for(const o of t){if(o.id===l)return o;const a=O(o.children??[],l);if(a)return a}return null}function at(t){return P([t])[0]??null}function ee(t){const l=P(t);return l.length?l[l.length-1]:null}function ot(t,l,o,a){const u=l?O(t,l):null,r=u?u.children??[]:t;for(let m=o;m<r.length;m++){const f=at(r[m]);if(f!=null)return f}const v=ee(u?[u]:t);return v==null?a:v+1}function st(t){return t&&"parent_id"in t?t.parent_id??null:null}function it(t){return t&&"index"in t?t.index??0:0}function rt(t){let l=0;W(t,o=>{var a;typeof((a=o.props)==null?void 0:a.row)=="number"&&(o.props.row=l++)})}function ut(t,l){W(t,o=>{var u;const a=(u=o.props)==null?void 0:u.row;typeof a=="number"&&a>=l&&(o.props.row=a+1)})}function dt(t){const l=h(!0);function o(r){var c,i,_,w;const v=O(((c=t.tree.value)==null?void 0:c.nodes)??[],r);if(typeof((i=v==null?void 0:v.props)==null?void 0:i.row)!="number"){t.reload();return}const m=P(((_=t.tree.value)==null?void 0:_.nodes)??[]),f=t.fields();if(m.length!==f.length){t.reload();return}t.commit(m.map(B=>f[B])),rt(((w=t.tree.value)==null?void 0:w.nodes)??[])}function a(r,v){var i,_;if(v!=null&&("before"in v||"after"in v)){t.reload();return}const m=t.fields(),f=v==null?m.length:ot(((i=t.tree.value)==null?void 0:i.nodes)??[],st(v),it(v),m.length),c=[...m];c.splice(f,0,xe(r)),t.commit(c),ut(((_=t.tree.value)==null?void 0:_.nodes)??[],f),t.select(f)}function u(){}return{enabled:l,dragging:t.dragging,move:o,add:a,insertBlock:u}}const ct={class:"mbuilder airstage-shell"},ft={class:"mbuilder__bar"},vt={class:"mbuilder__barleft"},mt={class:"mbuilder__titlewrap"},pt={key:0,class:"mbuilder__titleerror"},_t={key:0,class:"mbuilder__dirtydot",title:"Unsaved changes since the last save"},ht={class:"mbuilder__refline"},gt={class:"mbuilder__baractions"},bt=["disabled"],yt={key:0,class:"mbuilder__unlinkedhint"},kt=["disabled"],wt={class:"mbuilder__body"},Ct={class:"mbuilder__panel"},te="mbuilder__row--selected",le="mbuilder__row--unlinked",$t=ne({__name:"ModuleBuilder",props:{module:{},schema:{},preview:{},unlinked:{},site:{},theme:{},from:{}},setup(t){const l=t,o=h({...l.module.settings}),a=h(l.preview),u=h(l.unlinked),r=h(null),v=h(!1),m=h(!1),f=h(!1),c=h({}),i=h(l.module.locales[0]),_=h(l.module.title);let w=l.module.title;function B(){const e=_.value.trim();if(e===""){_.value=w;return}e!==w&&q({settings:{},locale:i.value,title:e})}const A=new Map;function j(){Le.reload({only:["module","preview","unlinked"]})}function M(e){e.settings&&(o.value=e.settings),e.preview&&(v.value||(a.value=e.preview)),e.unlinked&&(u.value=e.unlinked)}function oe(e,n=!1){if(!e.ok){c.value=e.errors??{},e.errors||($.value=e.message??"This module couldn't be saved. Try again."),n&&j();return}M(e),c.value={},m.value=!0}function q(e,n=!1){Ge(l.module.id,l.site.id,e).then(s=>{s.ok&&e.title!==void 0&&(w=e.title),oe(s,n)})}function U(e,n,s=!1){const p=Object.keys(e).sort().join(","),b=A.get(p);b&&(window.clearTimeout(b.id),A.delete(p),n&&b.flush());const V=()=>{A.delete(p),q({settings:e,locale:i.value},s)};n?V():A.set(p,{id:window.setTimeout(V,400),flush:V})}function se(e){U(e,!0,!0)}function ie(e,n,s){U({[e]:n},s)}function re(e,n){const s=Array.isArray(o.value.fields)?o.value.fields.length:0;r.value!==null&&e.length<s&&(r.value=null),o.value={...o.value,fields:e},U({fields:e},n)}D(()=>l.module,e=>{o.value={...e.settings},_.value=e.title,w=e.title;const n=Array.isArray(e.settings.fields)?e.settings.fields.length:0;r.value!==null&&r.value>=n&&(r.value=null)}),D(()=>l.preview,e=>{v.value||(a.value=e)}),D(()=>l.unlinked,e=>{u.value=e});function ue(e){var b;const n=e.target.closest("[data-node-id]"),s=n?O(a.value.nodes??[],n.dataset.nodeId??""):null,p=(b=s==null?void 0:s.props)==null?void 0:b.row;r.value=typeof p=="number"?p:null}D(r,()=>{c.value={}});function de(e){if(r.value!==null){const s=P(a.value.nodes??[]).indexOf(r.value);r.value=s===-1?null:s}o.value={...o.value,fields:e},se({fields:e})}const z=dt({tree:a,fields:()=>o.value.fields??[],dragging:v,commit:de,select:e=>{r.value=e},reload:j}),{guestFields:ce,guestFieldsLoaded:fe,loadGuestFields:ve,operandFields:me,operandFieldsLoaded:pe,loadOperandFields:_e}=Ie(l.site.uuid,i),C=h(null);function he(e){C.value=e}function ge(e){var n;(n=C.value)==null||n.call(C,e),C.value=null}function be(){return Promise.resolve({ok:!1,message:"Create a field from the page builder for now."})}const ye={locale:i,defaultLocale:l.module.locales[0],theme:R(()=>l.theme),pageSlugs:R(()=>[]),pageAnchors:R(()=>[]),errors:c,pickImage:he,guestFields:ce,guestFieldsLoaded:fe,loadGuestFields:ve,operandFields:me,operandFieldsLoaded:pe,loadOperandFields:_e,createGuestField:be};Re(Ue,ye);const ke=R(()=>l.schema.filter(e=>e.key!=="fields"));function J(e,n){var s;for(const p of e){if(((s=p.props)==null?void 0:s.row)===n)return p;const b=J(p.children??[],n);if(b)return b}return null}let T=null,N=[];function X(e){const n=J(a.value.nodes??[],e);return n?document.querySelector(`[data-node-id="${CSS.escape(n.id)}"]`):null}function we(){if(T==null||T.classList.remove(te),T=null,r.value===null)return;const e=X(r.value);e&&(e.classList.add(te),T=e)}function Ce(){for(const e of N)e.classList.remove(le);N=[];for(const e of u.value){const n=X(e);n&&(n.classList.add(le),N.push(n))}}D([r,a],we,{flush:"post"}),D([u,a],Ce,{flush:"post"});async function $e(){if(f.value)return;f.value=!0,c.value={};const e=await Ke(l.module.id,l.site.id);if(f.value=!1,!e.ok){c.value=e.errors??{},$.value=e.message??"This module couldn't be saved. Check the unlinked rows and try again.";return}M(e),m.value=!1}const E=h(!1),$=h(null);function De(){E.value=!0}async function Se(){E.value=!1,f.value=!0;const e=await We(l.module.id,l.site.id);if(f.value=!1,!e.ok){$.value=e.message??"This module has never been saved, so there is nothing to go back to.";return}M(e),c.value={},m.value=!1,r.value=null}return(e,n)=>(g(),k(I,null,[S(F(Fe),{title:`${_.value} · ${e.$t("common.forms")}`},null,8,["title"]),d("div",ct,[d("header",ft,[d("div",vt,[S(Pe,{"parent-label":e.$t("common.forms"),"parent-href":F(Ne)(`/modules?site=${encodeURIComponent(t.site.id)}`)},{default:Te(()=>{var s;return[d("div",mt,[Ae(d("input",{"onUpdate:modelValue":n[0]||(n[0]=p=>_.value=p),type:"text",class:"mbuilder__titleinput",maxlength:"120","aria-label":"Module title",onBlur:B},null,544),[[Ee,_.value]]),(s=c.value.title)!=null&&s.length?(g(),k("p",pt,y(c.value.title[0]),1)):x("",!0)])]}),_:1},8,["parent-label","parent-href"]),m.value?(g(),k("span",_t)):x("",!0),d("p",ht,"Fields from "+y(t.site.name),1)]),d("div",gt,[d("button",{type:"button",class:"mbuilder__discard",disabled:f.value,onClick:De}," Discard ",8,bt),u.value.length>0?(g(),k("span",yt,y(u.value.length)+" field"+y(u.value.length===1?"":"s")+" "+y(u.value.length===1?"needs":"need")+" linking ",1)):x("",!0),d("button",{type:"button",class:"mbuilder__save",disabled:f.value,onClick:$e},y(f.value?"Savingâ¦":"Save"),9,kt)])]),d("div",wt,[S(nt,{controller:F(z)},null,8,["controller"]),d("main",{class:"mbuilder__canvas",onClick:ue},[S(Ve,{tree:a.value,theme:t.theme,locale:i.value,"default-locale":t.module.locales[0],appearance:"light","mark-conditions":"",arrange:F(z)},null,8,["tree","theme","locale","default-locale","arrange"])]),d("aside",Ct,[r.value!==null?(g(),G(Oe,{key:0,value:o.value.fields,only:r.value,rules:"",steps:"",groups:"",widths:"",onCommit:re},null,8,["value","only"])):(g(!0),k(I,{key:1},K(ke.value,s=>(g(),G(Me,{key:s.key,field:s,value:o.value[s.key],onCommit:(p,b)=>ie(s.key,p,b)},null,8,["field","value","onCommit"]))),128))])]),C.value?(g(),G(Be,{key:0,"site-uuid":t.site.uuid,onPick:ge,onClose:n[1]||(n[1]=s=>C.value=null)},null,8,["site-uuid"])):x("",!0),S(H,{open:E.value,title:"Discard every change since the last save?",body:"This module goes back to the version you last saved. Anything you have changed since is lost, and there is no undo for it.","confirm-label":"Discard changes",tone:"danger",onConfirm:Se,onCancel:n[2]||(n[2]=s=>E.value=!1)},null,8,["open"]),S(H,{open:$.value!==null,title:"That didnât work",body:$.value??"","confirm-label":"OK","cancel-label":"",onConfirm:n[3]||(n[3]=s=>$.value=null),onCancel:n[4]||(n[4]=s=>
1$.value=null)},null,8,["open","body"])])],64))}}),It=ae($t,[["__scopeId","data-v-6cecba21"]]);export{It as default}; 2//# sourceMappingURL=ModuleBuilder-B_cqOaYv.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.