Files
intotheeast-com-content/plugins/admin2/app/_app/immutable/nodes/18.BmIVYDYF.js
T

4 lines
16 KiB
JavaScript

import"../chunks/DsnmJJEf.js";import{p as dt,f as k,g as e,s as h,j as o,a as l,b as ct,i as P,d as g,r as m,t as A,c as _,m as Ve,u as It,h as L,k as Nt,o as Tt,$ as Lt,n as at,e as ae,l as kt}from"../chunks/krC2xWPP.js";import{s as V,d as Ct,e as Dt,a as Se}from"../chunks/CddAxf8c.js";import{i as w}from"../chunks/DjsWWzyL.js";import{t as J,B as Ie,e as nt}from"../chunks/Lvd_r9sp.js";import{c as Xe}from"../chunks/BcwIk3O9.js";import{h as Ut,s as W}from"../chunks/j_DJpx8B.js";import{b as ut}from"../chunks/CpuCZOqP.js";import{b as X,c as He,i as ne,A as Ot}from"../chunks/Cu5ilWky.js";import{p as Rt}from"../chunks/euuZp6ft.js";import{g as Ke}from"../chunks/BVTiZ3e2.js";import{b as qe}from"../chunks/BSopV7IU.js";import{a as We,c as $t,s as zt,v as Gt,h as jt,B as Mt}from"../chunks/D7PIEGLR.js";import{o as Ft}from"../chunks/DukJHxi2.js";import{S as Bt}from"../chunks/K87jKp17.js";import{C as ot}from"../chunks/CqW2kplp.js";import{c as Vt,U as Xt}from"../chunks/Cp407y3V.js";import{c as Ht}from"../chunks/CJohx04Q.js";import{g as Kt}from"../chunks/18iuIwwJ.js";import{p as be}from"../chunks/BzvfRedh.js";import{c as qt}from"../chunks/CU9nfEd1.js";import{s as Wt}from"../chunks/BUlo3N_r.js";import{D as Jt}from"../chunks/nlum2O0L.js";import{U as Yt,C as Qt}from"../chunks/mRQytvOt.js";import{L as Ue}from"../chunks/C_E2vM9U.js";import{C as Zt}from"../chunks/ZWbUro-G.js";import{D as er}from"../chunks/DBVjMAyX.js";import{U as tr}from"../chunks/hiAQl6ey.js";import{S as rr}from"../chunks/CV_JZMCk.js";async function ar(s){return X.get(`/gpm/plugins/${s}/page`)}async function nr(s,f){return X.get(`/blueprints/plugins/${s}/pages/${f}`)}async function it(s){return X.get(s)}async function or(s,f){return await X.patch(s,f)??{}}async function ir(s,f="POST"){const d=f.toUpperCase();return d==="DELETE"?X.delete(s):d==="PATCH"?X.patch(s):X.post(s)}async function st(s,f){return X.uploadFile(s,f,{fieldName:"file"})}async function sr(s,f){const{blob:d,headers:G}=await X.fetchBlob(s),v=G.get("Content-Disposition")?.match(/filename="?(.+?)"?$/)?.[1]??f;return{blob:d,filename:v}}function ft(s){if(s!=null){if(typeof s=="string")return{message:s};if(typeof s=="object"&&typeof s.message=="string")return s}}function lr(s){if(!s||typeof s!="object")return;const f=s;return ft(f.toast??f.message)}function lt(s,f){const d=ft(s),G=d?.message??f.message,c=d?.type??f.type??"success",v={};d?.duration!=null?v.duration=d.duration===0?1/0:d.duration:d?.dismissible&&(v.duration=1/0),(J[c]??J.message)(G,v)}var dr=_('<div class="rounded-lg border border-destructive/30 bg-destructive/5 p-4 text-sm text-destructive"> </div>'),cr=_('<div class="flex h-40 items-center justify-center rounded-lg border border-dashed border-border"><span class="text-sm text-muted-foreground"> </span></div>'),ur=_('<!> <div class="min-h-0 flex-1"></div>',1);function fr(s,f){dt(f,!0);let d=P(null),G=P(!1),c=P("");const v=`grav-${f.slug}--page`,S=window.__GRAV_PAGE_LOADING??={};function M(){return`/gpm/plugins/${f.slug}/page-script`}async function ye(){if(customElements.get(v)){o(G,!0),oe();return}if(S[v]){try{await S[v],o(G,!0),oe()}catch{o(c,`Failed to load page component for "${f.slug}"`)}return}S[v]=(async()=>{const E=await X.fetchScript(M());window.__GRAV_API_SERVER_URL=He.serverUrl,window.__GRAV_API_PREFIX=He.apiPrefix||"/api/v1",window.__GRAV_API_TOKEN=He.accessToken;const y=new Blob([`window.__GRAV_PAGE_TAG = ${JSON.stringify(v)};
${E}`],{type:"application/javascript"}),H=URL.createObjectURL(y);await import(H),URL.revokeObjectURL(H),await customElements.whenDefined(v)})();try{await S[v],o(G,!0),oe()}catch(E){console.error(`[PluginPage] Failed to load ${f.slug}:`,E),o(c,`Failed to load page component for "${f.slug}"`)}}function oe(){if(!e(d))return;e(d).innerHTML="";const E=document.createElement(v);E.addEventListener("page-state",y=>{f.onstate?.(y.detail??{})}),e(d).appendChild(E)}Ft(()=>{ye()});var Y=ur(),ie=k(Y);{var D=E=>{var y=dr(),H=g(y,!0);m(y),A(()=>V(H,e(c))),l(E,y)},se=E=>{var y=cr(),H=g(y),he=g(H,!0);m(H),m(y),A(Ne=>V(he,Ne),[()=>ne.t("ADMIN_NEXT.PLUGIN_PAGE_COMPONENT.LOADING_PLUGIN_PAGE")]),l(E,y)};w(ie,E=>{e(c)?E(D):e(G)||E(se,1)})}var le=h(ie,2);ut(le,E=>o(d,E),()=>e(d)),l(s,Y),ct()}var vr=_('<button type="button" class="inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"><!></button>'),mr=_('<div class="flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-primary"><i></i></div>'),pr=_('<div class="flex items-center gap-2.5"><!> <h1> </h1></div>'),gr=_("<!> Undo",1),_r=_("<i></i>"),br=_("<!> ",1),yr=_("<i></i>"),hr=_('<button class="flex w-full items-center gap-2 px-3 py-1.5 text-start text-[0.8125rem] text-popover-foreground transition-colors hover:bg-accent/50"><!> </button>'),xr=_('<div class="fixed inset-0 z-40"></div> <div class="absolute end-0 top-full z-50 mt-1 min-w-[220px] rounded-md border border-border bg-popover py-1 shadow-md"></div>',1),Er=_('<div class="relative flex"><!> <button><!></button> <!></div>'),wr=_("<i></i>"),Ar=_("<!> ",1),Pr=_("<i></i>"),Sr=_("<!> ",1),Ir=_('<div><div><div class="flex min-w-0 items-center gap-3"><!> <!></div> <div class="flex shrink-0 items-center gap-2"><!> <!> <!></div></div></div>'),Nr=_('<div class="flex flex-1 items-center justify-center"><!></div>'),Tr=_('<div class="flex flex-1 items-center justify-center"><div class="text-center"><!> <p class="mt-2 text-sm text-destructive"> </p> <!></div></div>'),Lr=_('<div class="rounded-xl border border-dashed border-border p-8 text-center"><p class="text-sm text-muted-foreground"> </p></div>'),kr=_('<div class="flex-1 overflow-y-auto"><div class="space-y-6 px-6 py-6"><!></div></div>'),Cr=_('<div class="flex h-full flex-col"><!> <!></div> <input type="file" accept=".yaml,.yml" class="hidden"/> <!> <!>',1);function la(s,f){dt(f,!0);const d=L(()=>Rt.params.slug??""),G=L(()=>Wt.items.some(t=>t.plugin===e(d)));let c=P(null),v=P(null),S=P(Ve({})),M=P(Ve({})),ye=P("{}"),oe=P(!0),Y=P(!1),ie=P(""),D=P(null),se=P(null),le=L(()=>We(e(S))!==e(ye)),E=L(()=>!e(v)||!jt(e(v).fields,e(S))),y=P(Ve({dirty:!1,valid:!0,busy:!1}));function H(t){o(y,{...e(y),...t},!0)}async function he(){o(oe,!0),o(ie,""),o(y,{dirty:!1,valid:!0,busy:!1},!0);try{const t=await ar(e(d));o(c,t,!0);try{const n=await Kt(e(d));n.custom_fields&&Ht.register(e(d),n.custom_fields)}catch{}if(t.page_type==="blueprint"&&t.blueprint){const[n,r]=await Promise.all([nr(e(d),t.blueprint),t.data_endpoint?it(t.data_endpoint):Promise.resolve({})]);o(v,n,!0),o(S,r,!0),o(ye,We(r),!0)}}catch(t){const n=t instanceof Error?t.message:String(t);o(ie,`Failed to load plugin page: ${n}`)}finally{o(oe,!1)}}function Ne(t,n){const r=t.split("."),u={...e(S)};let i=u;for(let N=0;N<r.length-1;N++){const p=r[N];typeof i[p]!="object"||i[p]===null?i[p]={}:i[p]={...i[p]},i=i[p]}i[r[r.length-1]]=n,o(S,u,!0);const x=e(v)?Gt(e(v).fields,t,u):null;if(x)o(M,{...e(M),[t]:x},!0);else if(e(M)[t]){const{[t]:N,...p}=e(M);o(M,p,!0)}}async function Te(){if(e(c)?.save_endpoint){if(o(M,e(v)?$t(e(v).fields,e(S)):{},!0),Object.keys(e(M)).length>0){zt();return}o(Y,!0);try{const t=await or(e(c).save_endpoint,e(S));lt(lr(t),{message:ne.t("ADMIN_NEXT.TOASTS.ITEM_SAVED",{name:e(c).title??e(d)}),type:"success"}),await he()}catch(t){const n=t instanceof Ot?t.error.toast:void 0,r=t instanceof Error?t.message:"Save failed";lt(n,{message:r,type:"error"})}finally{o(Y,!1)}}}let Oe=P(null);function Je(){e(Oe)?.click()}async function vt(t){const n=t.target,r=n.files?.[0];if(!r||!e(c))return;const u=e(c).actions?.find(i=>i.upload);if(u?.endpoint){o(D,u.id,!0);try{const x=(await st(u.endpoint,r)).message??"Import successful";J.success(x),await he()}catch(i){const x=i instanceof Error?i.message:"Import failed";J.error(x)}finally{o(D,null),n.value=""}}}let Le=P(!1),ve=P(null);async function ke(t){if(t.navigate){Ke(`${qe}${t.navigate}`);return}if(!t.endpoint&&e(c)?.page_type==="component"){mt(t);return}if(!t.endpoint){window.dispatchEvent(new CustomEvent("grav:plugin-page-action",{detail:{plugin:e(d),action:{id:t.id,label:t.label}}}));return}if(t.confirm){o(ve,t,!0),o(Le,!0);return}await Ye(t)}function mt(t){const n=`grav-${e(d)}--page`,r=document.querySelector(n);r&&r.dispatchEvent(new CustomEvent("page-action",{detail:{id:t.id,label:t.label}}))}async function Ye(t){if(!t.endpoint)return;const n=t.endpoint;if(t.download){try{const{blob:r,filename:u}=await sr(n,`${e(d)}-export`),i=document.createElement("a");i.href=URL.createObjectURL(r),i.download=u,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(i.href)}catch(r){const u=r instanceof Error?r.message:"Download failed";J.error(u)}return}if(t.upload){const r=document.createElement("input");r.type="file",r.accept=".yaml,.yml",r.style.display="none",document.body.appendChild(r),r.onchange=async()=>{const u=r.files?.[0];if(r.remove(),!!u){o(D,t.id,!0);try{const x=(await st(n,u)).message??"Import successful";if(J.success(x),e(c)?.data_endpoint){const N=await it(e(c).data_endpoint);o(S,N,!0),o(ye,We(N),!0)}}catch(i){const x=i instanceof Error?i.message:"Import failed";J.error(x)}finally{o(D,null)}}},r.click();return}o(D,t.id,!0);try{const u=(await ir(n,t.method??"POST")).message??"Action completed";J.success(u)}catch(r){const u=r instanceof Error?r.message:"Action failed";J.error(u)}finally{o(D,null)}}function Re(t){return t.download?er:t.upload?tr:t.primary?rr:null}function pt(t){if((t.metaKey||t.ctrlKey)&&t.key==="s"&&(t.preventDefault(),be.autoSaveEnabled?F.forceSave():e(le)&&!e(Y)&&e(c)?.save_endpoint&&Te()),(t.metaKey||t.ctrlKey)&&t.key==="z"&&!t.shiftKey&&be.autoSaveEnabled){const n=(document.activeElement?.tagName??"").toLowerCase();n==="input"||n==="textarea"||document.activeElement?.isContentEditable||(t.preventDefault(),F.undo())}}const $e=qt(()=>be.autoSaveEnabled?e(le)||F.saving||F.undoStack.some(t=>!t.savedToServer):e(le)),F=Vt({save:Te,getValue:t=>{const n=t.split(".");let r=e(S);for(const u of n){if(r==null||typeof r!="object")return;r=r[u]}return r},applyChange:Ne,formName:ne.t("ADMIN_NEXT.TOASTS.FORM_LABEL.PLUGIN_PAGE")});It(()=>{e(d),F.reset(),he()});var Qe=Cr();Ut("14iwarm",t=>{Nt(n=>{Lt.title=n??""},[()=>ne.t("ADMIN_NEXT.APP.PAGE_TITLE",{name:e(c)?.title??e(d)})])}),Dt("keydown",Tt,pt);var ze=k(Qe),Ze=g(ze);Bt(Ze,{children:(n,r)=>{let u=()=>r?.().scrolled;var i=Ir(),x=g(i),N=g(x),p=g(N);{var me=T=>{var U=vr(),ce=g(U);Jt(ce,{name:"arrow-back",size:16}),m(U),Se("click",U,()=>Ke(`${qe}/`)),l(T,U)};w(p,T=>{e(G)||T(me)})}var de=h(p,2);{var xe=T=>{var U=pr(),ce=g(U);{var Q=Ee=>{var we=mr(),je=g(we);m(we),A(Me=>W(je,1,`fa-solid ${Me??""} text-sm`),[()=>e(c).icon.startsWith("fa-")?e(c).icon:"fa-"+e(c).icon]),l(Ee,we)};w(ce,Ee=>{e(c).icon&&!u()&&Ee(Q)})}var a=h(ce,2),De=g(a,!0);m(a),m(U),A(()=>{W(a,1,`font-semibold text-foreground transition-[font-size] duration-200 ${u()?"text-sm":e(G)?"text-xl tracking-tight":"text-lg"}`),V(De,e(c).title)}),l(T,U)};w(de,T=>{e(c)&&T(xe)})}m(N);var Ce=h(N,2),tt=g(Ce);Xt(tt,{get hasChanges(){return e(le)},get saving(){return F.saving},get lastSavedAt(){return F.lastSavedAt},get autoSaveEnabled(){return be.autoSaveEnabled}});var rt=h(tt,2);{var xt=T=>{Ie(T,{variant:"outline",size:"sm",onclick:()=>F.undo(),children:(U,ce)=>{var Q=gr(),a=k(Q);Yt(a,{size:14}),at(),l(U,Q)},$$slots:{default:!0}})};w(rt,T=>{be.autoSaveEnabled&&be.autoSaveToolbarUndo&&F.canUndo&&T(xt)})}var Et=h(rt,2);{var wt=T=>{var U=ae(),ce=k(U);nt(ce,17,()=>e(c).actions,Q=>Q.id,(Q,a)=>{var De=ae(),Ee=k(De);{var we=K=>{var Z=Er(),pe=g(Z);{let q=L(()=>e(a).primary?"default":"outline"),te=L(()=>e(D)===e(a).id);Ie(pe,{get variant(){return e(q)},size:"sm",class:"rounded-e-none",onclick:()=>e(a).primary?Te():e(a).upload?Je():ke(e(a)),get disabled(){return e(te)},children:(O,R)=>{var $=br(),C=k($);{var B=b=>{Ue(b,{size:14,class:"me-1.5 animate-spin"})},re=b=>{const I=L(()=>Re(e(a)));var j=ae(),fe=k(j);{var Fe=_e=>{var Pe=ae(),Be=k(Pe);Xe(Be,()=>e(I),(Pt,St)=>{St(Pt,{size:14,class:"me-1.5"})}),l(_e,Pe)},At=_e=>{var Pe=_r();A(Be=>W(Pe,1,`fa-solid ${Be??""} me-1.5 text-xs`),[()=>e(a).icon.startsWith("fa-")?e(a).icon:"fa-"+e(a).icon]),l(_e,Pe)};w(fe,_e=>{e(I)?_e(Fe):e(a).icon&&_e(At,1)})}l(b,j)};w(C,b=>{e(D)===e(a).id?b(B):b(re,-1)})}var z=h(C);A(()=>V(z,` ${e(a).label??""}`)),l(O,$)},$$slots:{default:!0}})}var ee=h(pe,2),Ae=g(ee);Zt(Ae,{size:12}),m(ee);var ue=h(ee,2);{var ge=q=>{var te=xr(),O=k(te),R=h(O,2);nt(R,21,()=>e(a).children,$=>$.id,($,C)=>{var B=hr(),re=g(B);{var z=I=>{var j=yr();A(fe=>W(j,1,`fa-solid ${fe??""} w-4 text-center text-xs text-muted-foreground`),[()=>e(C).icon.startsWith("fa-")?e(C).icon:"fa-"+e(C).icon]),l(I,j)};w(re,I=>{e(C).icon&&I(z)})}var b=h(re);m(B),A(()=>V(b,` ${e(C).label??""}`)),Se("click",B,()=>{o(se,null),ke(e(C))}),l($,B)}),m(R),Se("click",O,()=>o(se,null)),l(q,te)};w(ue,q=>{e(se)===e(a).id&&q(ge)})}m(Z),A(()=>W(ee,1,`inline-flex h-8 items-center rounded-e-md border border-s-0 px-1.5 transition-colors
${e(a).primary?"border-primary bg-primary text-primary-foreground hover:bg-primary/90":"border-border bg-background text-muted-foreground hover:bg-accent hover:text-accent-foreground"}`)),Se("click",ee,()=>o(se,e(se)===e(a).id?null:e(a).id,!0)),l(K,Z)},je=K=>{const Z=L(()=>e(c)?.page_type==="component");{let pe=L(()=>e(Z)?!e(y).dirty||e(y).busy||!e(y).valid:!e(le)||e(Y)||!e(E));Ie(K,{size:"sm",onclick:()=>e(Z)?ke(e(a)):Te(),get disabled(){return e(pe)},children:(ee,Ae)=>{var ue=Ar(),ge=k(ue);{var q=R=>{Ue(R,{size:14,class:"me-1.5 animate-spin"})},te=R=>{const $=L(()=>Re(e(a)));var C=ae(),B=k(C);{var re=b=>{var I=ae(),j=k(I);Xe(j,()=>e($),(fe,Fe)=>{Fe(fe,{size:14,class:"me-1.5"})}),l(b,I)},z=b=>{var I=wr();A(j=>W(I,1,`fa-solid ${j??""} me-1.5 text-xs`),[()=>e(a).icon.startsWith("fa-")?e(a).icon:"fa-"+e(a).icon]),l(b,I)};w(B,b=>{e($)?b(re):e(a).icon&&b(z,1)})}l(R,C)};w(ge,R=>{e(a).primary&&(e(Y)||e(y).busy)||e(D)===e(a).id?R(q):R(te,-1)})}var O=h(ge);A(()=>V(O,` ${e(a).label??""}`)),l(ee,ue)},$$slots:{default:!0}})}},Me=K=>{{let Z=L(()=>e(D)===e(a).id);Ie(K,{variant:"outline",size:"sm",onclick:()=>e(a).upload?Je():ke(e(a)),get disabled(){return e(Z)},children:(pe,ee)=>{var Ae=Sr(),ue=k(Ae);{var ge=O=>{Ue(O,{size:14,class:"me-1.5 animate-spin"})},q=O=>{const R=L(()=>Re(e(a)));var $=ae(),C=k($);{var B=z=>{var b=ae(),I=k(b);Xe(I,()=>e(R),(j,fe)=>{fe(j,{size:14,class:"me-1.5"})}),l(z,b)},re=z=>{var b=Pr();A(I=>W(b,1,`fa-solid ${I??""} me-1.5 text-xs`),[()=>e(a).icon.startsWith("fa-")?e(a).icon:"fa-"+e(a).icon]),l(z,b)};w(C,z=>{e(R)?z(B):e(a).icon&&z(re,1)})}l(O,$)};w(ue,O=>{e(D)===e(a).id?O(ge):O(q,-1)})}var te=h(ue);A(()=>V(te,` ${e(a).label??""}`)),l(pe,Ae)},$$slots:{default:!0}})}};w(Ee,K=>{e(a).children?.length?K(we):e(a).primary?K(je,1):K(Me,-1)})}l(Q,De)}),l(T,U)};w(Et,T=>{e(c)?.actions&&T(wt)})}m(Ce),m(x),m(i),A(()=>{W(i,1,`px-6 transition-[padding] duration-200 ${u()?"py-2":"pt-6 pb-3"}`),W(x,1,`flex items-center justify-between gap-4 ${u()?"min-h-6":"min-h-8"}`)}),l(n,i)},$$slots:{default:!0}});var gt=h(Ze,2);{var _t=t=>{var n=Nr(),r=g(n);Ue(r,{size:24,class:"animate-spin text-muted-foreground"}),m(n),l(t,n)},bt=t=>{var n=Tr(),r=g(n),u=g(r);Qt(u,{size:32,class:"mx-auto text-destructive"});var i=h(u,2),x=g(i,!0);m(i);var N=h(i,2);Ie(N,{variant:"outline",size:"sm",class:"mt-3",onclick:()=>Ke(`${qe}/`),children:(p,me)=>{at();var de=kt();A(xe=>V(de,xe),[()=>ne.t("ADMIN_NEXT.PLUGIN.BACK_TO_DASHBOARD")]),l(p,de)},$$slots:{default:!0}}),m(r),m(n),A(()=>V(x,e(ie))),l(t,n)},yt=t=>{var n=kr(),r=g(n),u=g(r);{var i=p=>{Mt(p,{get fields(){return e(v).fields},get data(){return e(S)},onchange:Ne,get oncommit(){return F.oncommit},get errors(){return e(M)}})},x=p=>{fr(p,{get slug(){return e(d)},onstate:H})},N=p=>{var me=Lr(),de=g(me),xe=g(de,!0);m(de),m(me),A(Ce=>V(xe,Ce),[()=>ne.t("ADMIN_NEXT.PLUGIN.NO_CONTENT_AVAILABLE_FOR_THIS_PLUGIN")]),l(p,me)};w(u,p=>{e(c).page_type==="blueprint"&&e(v)?p(i):e(c).page_type==="component"?p(x,1):p(N,-1)})}m(r),m(n),l(t,n)};w(gt,t=>{e(oe)?t(_t):e(ie)?t(bt,1):e(c)&&t(yt,2)})}m(ze);var Ge=h(ze,2);ut(Ge,t=>o(Oe,t),()=>e(Oe));var et=h(Ge,2);{let t=L(()=>ne.t("ADMIN_NEXT.UNSAVED_CHANGES"));ot(et,{get open(){return $e.showModal},get title(){return e(t)},message:"You have unsaved changes. Leave anyway?",confirmLabel:"Leave",cancelLabel:"Stay",get onconfirm(){return $e.confirm},get oncancel(){return $e.cancel}})}var ht=h(et,2);{let t=L(()=>ne.t("ADMIN_NEXT.CONFIRM_ACTION")),n=L(()=>e(ve)?.confirm??"");ot(ht,{get open(){return e(Le)},get title(){return e(t)},get message(){return e(n)},confirmLabel:"Continue",onconfirm:()=>{o(Le,!1),e(ve)&&Ye(e(ve)),o(ve,null)},oncancel:()=>{o(Le,!1),o(ve,null)}})}Se("change",Ge,vt),l(s,Qe),ct()}Ct(["click","change"]);export{la as component};