3 lines
22 KiB
JavaScript
3 lines
22 KiB
JavaScript
import{p as ue,q as de,s as z,x as W,y as g,o as p,z as $,h as x,A as N,f as e,B as te,C as se,i as P,D as Ve,E as ke,F as oe,G as De,H as $e,I as ae,V as Ee,g as Z,J as Ie,P as ne,K as Re,L as Ke,M as me,N as ce,e as D,O as Me,Q as qe,b as q,R as ve,S as ee,d as f,T as X,t as B,U as O,W as fe,c as le,X as Be,_ as ie,m as Pe,Y as Ae,k as U,Z as pe,l as Y,$ as Te,j as Ne,u as ze}from"./index-9538feb4.js";import{_ as He}from"./LayoutHeader-d0c4e6dc.js";import{g as ge}from"./statusStyles-743ec7f5.js";function Ue(s=[],n,t){const l=[...s];return l[t]=n,l.sort((i,u)=>i-u)}function ye(s,n,t){const u=100/(t-n)*(s-n);return ue(u,0,100)}function je(s,n){return n>2?`Value ${s+1} of ${n}`:n===2?["Minimum","Maximum"][s]:void 0}function Fe(s,n){if(s.length===1)return 0;const t=s.map(i=>Math.abs(i-n)),l=Math.min(...t);return t.indexOf(l)}function Le(s,n,t){const l=s/2,u=re([0,50],[0,l]);return(l-u(n)*t)*t}function Oe(s){return s.slice(0,-1).map((n,t)=>s[t+1]-n)}function Ye(s,n){if(n>0){const t=Oe(s);return Math.min(...t)>=n}return!0}function re(s,n){return t=>{if(s[0]===s[1]||n[0]===n[1])return n[0];const l=(n[1]-n[0])/(s[1]-s[0]);return n[0]+l*(t-s[0])}}function We(s){return(String(s).split(".")[1]||"").length}function Xe(s,n){const t=10**n;return Math.round(s*t)/t}const be=["PageUp","PageDown"],he=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],_e={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageUp","ArrowUp","ArrowLeft"]},[xe,we]=de(["SliderVertical","SliderHorizontal"]);var Ge=z({__name:"SliderHorizontal",props:{dir:{type:String,required:!1},min:{type:Number,required:!0},max:{type:Number,required:!0},inverted:{type:Boolean,required:!0}},emits:["slideEnd","slideStart","slideMove","homeKeyDown","endKeyDown","stepKeyDown"],setup(s,{emit:n}){const t=s,l=n,{max:i,min:u,dir:o,inverted:a}=se(t),{forwardRef:m,currentElement:r}=W(),_=G(),v=P(),S=P(),K=g(()=>(o==null?void 0:o.value)!=="rtl"&&!a.value||(o==null?void 0:o.value)!=="ltr"&&a.value);function w(y,d){const h=S.value||r.value.getBoundingClientRect(),R=[..._.thumbElements.value][_.valueIndexToChangeRef.value],T=_.thumbAlignment.value==="contain"?R.clientWidth:0;!v.value&&!d&&_.thumbAlignment.value==="contain"&&(v.value=y.clientX-R.getBoundingClientRect().left);const F=[0,h.width-T],A=K.value?[u.value,i.value]:[i.value,u.value],H=re(F,A);S.value=h;const V=d?y.clientX-h.left-T/2:y.clientX-h.left-(v.value??0);return H(V)}const C=g(()=>K.value?"left":"right"),j=g(()=>K.value?"right":"left"),E=g(()=>K.value?1:-1);return we({startEdge:C,endEdge:j,direction:E,size:"width"}),(y,d)=>(p(),$(Se,{ref:e(m),dir:e(o),"data-orientation":"horizontal",style:te({"--reka-slider-thumb-transform":!K.value&&e(_).thumbAlignment.value==="overflow"?"translateX(50%)":"translateX(-50%)"}),onSlideStart:d[0]||(d[0]=h=>{const R=w(h,!0);l("slideStart",R)}),onSlideMove:d[1]||(d[1]=h=>{const R=w(h);l("slideMove",R)}),onSlideEnd:d[2]||(d[2]=()=>{S.value=void 0,v.value=void 0,l("slideEnd")}),onStepKeyDown:d[3]||(d[3]=h=>{const R=K.value?"from-left":"from-right",T=e(_e)[R].includes(h.key);l("stepKeyDown",h,T?-1:1)}),onEndKeyDown:d[4]||(d[4]=h=>l("endKeyDown",h)),onHomeKeyDown:d[5]||(d[5]=h=>l("homeKeyDown",h))},{default:x(()=>[N(y.$slots,"default")]),_:3},8,["dir","style"]))}}),Je=Ge,Qe=z({__name:"SliderVertical",props:{min:{type:Number,required:!0},max:{type:Number,required:!0},inverted:{type:Boolean,required:!0}},emits:["slideEnd","slideStart","slideMove","homeKeyDown","endKeyDown","stepKeyDown"],setup(s,{emit:n}){const t=s,l=n,{max:i,min:u,inverted:o}=se(t),a=G(),{forwardRef:m,currentElement:r}=W(),_=P(),v=P(),S=g(()=>!o.value);function K(E,y){const d=v.value||r.value.getBoundingClientRect(),h=[...a.thumbElements.value][a.valueIndexToChangeRef.value],R=a.thumbAlignment.value==="contain"?h.clientHeight:0;!_.value&&!y&&a.thumbAlignment.value==="contain"&&(_.value=E.clientY-h.getBoundingClientRect().top);const T=[0,d.height-R],F=S.value?[i.value,u.value]:[u.value,i.value],A=re(T,F),H=y?E.clientY-d.top-R/2:E.clientY-d.top-(_.value??0);return v.value=d,A(H)}const w=g(()=>S.value?"bottom":"top"),C=g(()=>S.value?"top":"bottom"),j=g(()=>S.value?1:-1);return we({startEdge:w,endEdge:C,direction:j,size:"height"}),(E,y)=>(p(),$(Se,{ref:e(m),"data-orientation":"vertical",style:te({"--reka-slider-thumb-transform":!S.value&&e(a).thumbAlignment.value==="overflow"?"translateY(-50%)":"translateY(50%)"}),onSlideStart:y[0]||(y[0]=d=>{const h=K(d,!0);l("slideStart",h)}),onSlideMove:y[1]||(y[1]=d=>{const h=K(d);l("slideMove",h)}),onSlideEnd:y[2]||(y[2]=()=>{v.value=void 0,_.value=void 0,l("slideEnd")}),onStepKeyDown:y[3]||(y[3]=d=>{const h=S.value?"from-bottom":"from-top",R=e(_e)[h].includes(d.key);l("stepKeyDown",d,R?-1:1)}),onEndKeyDown:y[4]||(y[4]=d=>l("endKeyDown",d)),onHomeKeyDown:y[5]||(y[5]=d=>l("homeKeyDown",d))},{default:x(()=>[N(E.$slots,"default")]),_:3},8,["style"]))}}),Ze=Qe;const[G,et]=de("SliderRoot");var tt=z({inheritAttrs:!1,__name:"SliderRoot",props:{defaultValue:{type:Array,required:!1,default:()=>[0]},modelValue:{type:[Array,null],required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:"horizontal"},dir:{type:String,required:!1},inverted:{type:Boolean,required:!1,default:!1},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},minStepsBetweenThumbs:{type:Number,required:!1,default:0},thumbAlignment:{type:String,required:!1,default:"contain"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","valueCommit"],setup(s,{emit:n}){const t=s,l=n,{min:i,max:u,step:o,minStepsBetweenThumbs:a,orientation:m,disabled:r,thumbAlignment:_,dir:v}=se(t),S=Ve(v),{forwardRef:K,currentElement:w}=W(),C=ke(w),{CollectionSlot:j}=oe({isProvider:!0}),E=De(t,"modelValue",l,{defaultValue:t.defaultValue,passive:t.modelValue===void 0}),y=g(()=>Array.isArray(E.value)?[...E.value]:[]),d=P(0),h=P(y.value);function R(V){const k=Fe(y.value,V);A(V,k)}function T(V){A(V,d.value)}function F(){const V=h.value[d.value];y.value[d.value]!==V&&l("valueCommit",Ie(y.value))}function A(V,k,{commit:I}={commit:!1}){var b;const L=We(o.value),J=Xe(Math.round((V-i.value)/o.value)*o.value+i.value,L),Q=ue(J,i.value,u.value),c=Ue(y.value,Q,k);if(Ye(c,a.value*o.value)){d.value=c.indexOf(Q);const M=String(c)!==String(E.value);M&&I&&l("valueCommit",c),M&&((b=H.value[d.value])==null||b.focus(),E.value=c)}}const H=P([]);return et({modelValue:E,currentModelValue:y,valueIndexToChangeRef:d,thumbElements:H,orientation:m,min:i,max:u,disabled:r,thumbAlignment:_}),(V,k)=>(p(),$(e(j),null,{default:x(()=>[(p(),$($e(e(m)==="horizontal"?Je:Ze),ae(V.$attrs,{ref:e(K),"as-child":V.asChild,as:V.as,min:e(i),max:e(u),dir:e(S),inverted:V.inverted,"aria-disabled":e(r),"data-disabled":e(r)?"":void 0,onPointerdown:k[0]||(k[0]=()=>{e(r)||(h.value=y.value)}),onSlideStart:k[1]||(k[1]=I=>!e(r)&&R(I)),onSlideMove:k[2]||(k[2]=I=>!e(r)&&T(I)),onSlideEnd:k[3]||(k[3]=I=>!e(r)&&F()),onHomeKeyDown:k[4]||(k[4]=I=>!e(r)&&A(e(i),0,{commit:!0})),onEndKeyDown:k[5]||(k[5]=I=>!e(r)&&A(e(u),y.value.length-1,{commit:!0})),onStepKeyDown:k[6]||(k[6]=(I,L)=>{if(!e(r)){const c=e(be).includes(I.key)||I.shiftKey&&e(he).includes(I.key)?10:1,b=d.value,M=y.value[b],Ce=e(o)*c*L;A(M+Ce,b,{commit:!0})}})}),{default:x(()=>[N(V.$slots,"default",{modelValue:e(E)}),e(C)&&V.name?(p(),$(e(Ee),{key:0,type:"number",value:e(E),name:V.name,required:V.required,disabled:e(r),step:e(o)},null,8,["value","name","required","disabled","step"])):Z("v-if",!0)]),_:3},16,["as-child","as","min","max","dir","inverted","aria-disabled","data-disabled"]))]),_:3}))}}),at=tt,nt=z({__name:"SliderImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},emits:["slideStart","slideMove","slideEnd","homeKeyDown","endKeyDown","stepKeyDown"],setup(s,{emit:n}){const t=s,l=n,i=G();return(u,o)=>(p(),$(e(ne),ae({"data-slider-impl":""},t,{onKeydown:o[0]||(o[0]=a=>{a.key==="Home"?(l("homeKeyDown",a),a.preventDefault()):a.key==="End"?(l("endKeyDown",a),a.preventDefault()):e(be).concat(e(he)).includes(a.key)&&(l("stepKeyDown",a),a.preventDefault())}),onPointerdown:o[1]||(o[1]=a=>{const m=a.target;m.setPointerCapture(a.pointerId),a.preventDefault(),e(i).thumbElements.value.includes(m)?m.focus():l("slideStart",a)}),onPointermove:o[2]||(o[2]=a=>{a.target.hasPointerCapture(a.pointerId)&&l("slideMove",a)}),onPointerup:o[3]||(o[3]=a=>{const m=a.target;m.hasPointerCapture(a.pointerId)&&(m.releasePointerCapture(a.pointerId),l("slideEnd",a))})}),{default:x(()=>[N(u.$slots,"default")]),_:3},16))}}),Se=nt,lt=z({__name:"SliderRange",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){const n=G(),t=xe();W();const l=g(()=>n.currentModelValue.value.map(o=>ye(o,n.min.value,n.max.value))),i=g(()=>n.currentModelValue.value.length>1?Math.min(...l.value):0),u=g(()=>100-Math.max(...l.value,0));return(o,a)=>(p(),$(e(ne),{"data-disabled":e(n).disabled.value?"":void 0,"data-orientation":e(n).orientation.value,"as-child":o.asChild,as:o.as,style:te({[e(t).startEdge.value]:`${i.value}%`,[e(t).endEdge.value]:`${u.value}%`})},{default:x(()=>[N(o.$slots,"default")]),_:3},8,["data-disabled","data-orientation","as-child","as","style"]))}}),st=lt,ot=z({inheritAttrs:!1,__name:"SliderThumbImpl",props:{index:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const n=s,t=G(),l=xe(),{forwardRef:i,currentElement:u}=W(),{CollectionItem:o}=oe(),a=g(()=>{var w,C;return(C=(w=t.modelValue)==null?void 0:w.value)==null?void 0:C[n.index]}),m=g(()=>a.value===void 0?0:ye(a.value,t.min.value??0,t.max.value??100)),r=g(()=>{var w,C;return je(n.index,((C=(w=t.modelValue)==null?void 0:w.value)==null?void 0:C.length)??0)}),_=Re(u),v=g(()=>_[l.size].value),S=g(()=>t.thumbAlignment.value==="overflow"||!v.value?0:Le(v.value,m.value,l.direction.value)),K=Ke();return me(()=>{t.thumbElements.value.push(u.value)}),ce(()=>{const w=t.thumbElements.value.findIndex(C=>C===u.value)??-1;t.thumbElements.value.splice(w,1)}),(w,C)=>(p(),$(e(o),null,{default:x(()=>[D(e(ne),ae(w.$attrs,{ref:e(i),role:"slider",tabindex:e(t).disabled.value?void 0:0,"aria-label":w.$attrs["aria-label"]||r.value,"data-disabled":e(t).disabled.value?"":void 0,"data-orientation":e(t).orientation.value,"aria-valuenow":a.value,"aria-valuemin":e(t).min.value,"aria-valuemax":e(t).max.value,"aria-orientation":e(t).orientation.value,"as-child":w.asChild,as:w.as,style:{transform:"var(--reka-slider-thumb-transform)",position:"absolute",[e(l).startEdge.value]:`calc(${m.value}% + ${S.value}px)`,display:!e(K)&&a.value===void 0?"none":void 0},onFocus:C[0]||(C[0]=()=>{e(t).valueIndexToChangeRef.value=w.index})}),{default:x(()=>[N(w.$slots,"default")]),_:3},16,["tabindex","aria-label","data-disabled","data-orientation","aria-valuenow","aria-valuemin","aria-valuemax","aria-orientation","as-child","as","style"])]),_:3}))}}),rt=ot,it=z({__name:"SliderThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){const n=s,{getItems:t}=oe(),{forwardRef:l,currentElement:i}=W(),u=g(()=>i.value?t(!0).findIndex(o=>o.ref===i.value):-1);return(o,a)=>(p(),$(rt,ae({ref:e(l)},n,{index:u.value}),{default:x(()=>[N(o.$slots,"default")]),_:3},16,["index"]))}}),ut=it,dt=z({__name:"SliderTrack",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){const n=G();return W(),(t,l)=>(p(),$(e(ne),{"as-child":t.asChild,as:t.as,"data-disabled":e(n).disabled.value?"":void 0,"data-orientation":e(n).orientation.value},{default:x(()=>[N(t.$slots,"default")]),_:3},8,["as-child","as","data-disabled","data-orientation"]))}}),mt=dt;const ct=z({__name:"Slider",props:Me({step:{default:1},max:{default:100},min:{default:0}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=qe(s,"modelValue");return(t,l)=>(p(),$(e(at),{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=i=>n.value=i),class:"relative flex items-center select-none touch-none",max:100},{default:x(()=>[D(e(mt),{class:"bg-surface-gray-3 relative grow rounded h-1"},{default:x(()=>[D(e(st),{class:"absolute bg-surface-gray-7 rounded h-full"})]),_:1}),(p(!0),q(ee,null,ve(n.value,(i,u)=>(p(),$(e(ut),{key:"slider-thumb-"+u,class:"size-4 rounded-full bg-surface-white dark:bg-surface-gray-7 shadow-md transition-shadow duration-200 ease-out hover:ring-[6px] ring-gray-600/20 dark:ring-gray-100/20 focus:outline-none","aria-label":"Volume"}))),128))]),_:1},8,["modelValue"]))}}),vt={class:"flex flex-col items-center justify-center py-20"},ft={class:"mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-surface-gray-2"},pt={class:"mb-1 text-lg font-medium text-ink-gray-9"},gt={class:"mb-4 text-sm text-ink-gray-5"},yt={__name:"EmptyState",props:{icon:{type:String,default:"inbox"},title:{type:String,default:"No data"},description:{type:String,default:""}},setup(s){return(n,t)=>(p(),q("div",vt,[f("div",ft,[N(n.$slots,"icon",{},()=>[D(e(X),{name:s.icon,class:"h-6 w-6 text-ink-gray-5"},null,8,["name"])])]),f("h3",pt,B(s.title),1),f("p",gt,B(s.description),1),N(n.$slots,"action")]))}},bt={class:"flex items-start justify-between mb-3"},ht={class:"flex items-center gap-3"},_t={class:"font-medium text-ink-gray-9"},xt={class:"text-sm text-ink-gray-5"},wt={class:"flex items-center justify-between text-sm"},St={class:"flex flex-col gap-1"},Ct={key:0,class:"text-ink-gray-7 font-mono"},Vt={class:"text-ink-gray-5"},kt={__name:"SiteCard",props:{site:{type:Object,required:!0}},emits:["click"],setup(s){const n=s,t=g(()=>ge(n.site.status)),l=g(()=>t.value.badgeVariant),i=g(()=>t.value.icon),u=g(()=>t.value.bgClass),o=g(()=>t.value.iconClass);return(a,m)=>(p(),q("div",{class:"cursor-pointer rounded-lg border bg-white p-5 transition-shadow hover:shadow-md",onClick:m[0]||(m[0]=r=>a.$emit("click"))},[f("div",bt,[f("div",ht,[f("div",{class:O(["flex h-10 w-10 items-center justify-center rounded-lg",u.value])},[D(e(X),{name:i.value,class:O(["h-5 w-5",o.value])},null,8,["name","class"])],2),f("div",null,[f("h3",_t,B(s.site.container_name||s.site.name),1),f("p",xt,B(s.site.image||s.site.plan),1)])]),D(e(fe),{variant:l.value,label:s.site.status},null,8,["variant","label"])]),f("div",wt,[f("div",St,[s.site.ip_address?(p(),q("span",Ct,B(s.site.ip_address),1)):Z("",!0),f("span",Vt,B(s.site.created),1)]),D(e(X),{name:"chevron-right",class:"h-4 w-4 text-ink-gray-4"})])]))}},Dt={key:0,class:"space-y-4"},$t={class:"flex items-center justify-between rounded-lg border border-surface-gray-3 px-4 py-3"},Et=["disabled"],It={class:"flex items-center justify-between mb-2"},Rt={key:0,class:"rounded-lg bg-red-50 p-3 text-sm text-red-600"},Kt={key:1,class:"space-y-4"},Mt={class:"flex items-center gap-3 p-4 rounded-lg bg-surface-gray-1"},qt={class:"flex-1"},Bt={class:"font-medium text-ink-gray-9"},Pt={key:0,class:"space-y-2"},At={class:"h-2 bg-surface-gray-2 rounded-full overflow-hidden"},Tt={class:"text-xs text-ink-gray-5 text-center"},Nt={key:1,class:"rounded-lg bg-red-50 p-3 text-sm text-red-600"},zt={class:"flex justify-end gap-2"},Ht=2e3,Ut={__name:"CreateSiteModal",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","created"],setup(s,{emit:n}){const t=s,l=n,i=g({get:()=>t.modelValue,set:c=>l("update:modelValue",c)}),u=P(!1),o=P(""),a=P(null),m=P(0);let r=null,_=null;const v=Ne({name:"",image:"alpine/edge",trial:!1}),S=P([10]),K=[{label:"Alpine Edge",value:"alpine/edge"},{label:"Ubuntu 22.04",value:"ubuntu/22.04"},{label:"Ubuntu 24.04",value:"ubuntu/24.04"},{label:"Debian 12",value:"debian/12"}],w=g(()=>a.value&&["Creating","Pending"].includes(a.value.status)),C=g(()=>{var c;return ge((c=a.value)==null?void 0:c.status)}),j=g(()=>C.value.bgClass),E=g(()=>C.value.iconClass),y=g(()=>C.value.textClass),d=g(()=>C.value.icon),h=g(()=>{if(!a.value)return"";switch(a.value.status){case"Pending":return"Queued for creation...";case"Creating":return"Creating container...";case"Running":return"Container is ready!";case"Error":return"Creation failed";default:return a.value.status}}),R=g(()=>`${Math.min(m.value,95)}%`),T=g(()=>m.value<30?"Initializing...":m.value<60?"Setting up container...":m.value<90?"Almost ready...":"Finalizing..."),F=le({url:"cloud_portal.cloud_portal.doctype.cloud_container.cloud_container.create_user_container",onSuccess(c){u.value=!1,c.success?(a.value={name:c.name,container_name:c.container_name,status:"Creating"},V(c.name),k()):o.value=c.message||"Failed to create container"},onError(c){var b;u.value=!1,o.value=((b=c.messages)==null?void 0:b[0])||c.message||"Failed to create container"}}),A=le({url:"frappe.client.get_value",onSuccess(c){c&&a.value&&(a.value.status=c.status,a.value.error_message=c.error_message,["Creating","Pending"].includes(c.status)||(I(),m.value=100))}});function H(){const c=v.name.trim();if(!c||!/^[a-z][a-z0-9-]{2,62}$/.test(c)){o.value="Name must be 3-63 chars, start with letter, only lowercase letters, numbers, hyphens";return}o.value="",u.value=!0,F.fetch({container_name:c,image:v.image,container_type:"container",max_users:v.trial?1:S.value[0],trial:v.trial?1:0})}function V(c){r=setInterval(()=>{A.fetch({doctype:"Cloud Container",filters:JSON.stringify({name:c}),fieldname:["status","error_message"]})},Ht)}function k(){m.value=0,_=setInterval(()=>{m.value<90&&(m.value+=Math.random()*10+2)},500)}function I(){r&&(clearInterval(r),r=null),_&&(clearInterval(_),_=null)}function L(){v.name="",v.image="alpine/edge",v.trial=!1,S.value=[10],o.value="",a.value=null,m.value=0}function J(){I(),i.value=!1,a.value&&l("created"),setTimeout(L,300)}function Q(){l("created"),i.value=!1,setTimeout(L,300)}return ce(()=>{I()}),Be(i,c=>{c||(I(),setTimeout(L,300))}),(c,b)=>(p(),$(e(Te),{modelValue:i.value,"onUpdate:modelValue":b[5]||(b[5]=M=>i.value=M),options:{title:a.value?"Creating Container":"Create New Container",size:"lg"}},{"body-content":x(()=>[a.value?(p(),q("div",Kt,[f("div",Mt,[f("div",{class:O(["flex h-12 w-12 items-center justify-center rounded-full",j.value])},[w.value?(p(),$(e(pe),{key:0,class:O(["h-6 w-6",E.value])},null,8,["class"])):(p(),$(e(X),{key:1,name:d.value,class:O(["h-6 w-6",E.value])},null,8,["name","class"]))],2),f("div",qt,[f("p",Bt,B(a.value.container_name),1),f("p",{class:O(["text-sm",y.value])},B(h.value),3)])]),w.value?(p(),q("div",Pt,[f("div",At,[f("div",{class:"h-full bg-blue-500 rounded-full transition-all duration-500",style:te({width:R.value})},null,4)]),f("p",Tt,B(T.value),1)])):Z("",!0),a.value.status==="Error"?(p(),q("div",Nt,B(a.value.error_message||"Container creation failed"),1)):Z("",!0)])):(p(),q("div",Dt,[D(e(ie),{label:"Container Name",modelValue:v.name,"onUpdate:modelValue":b[0]||(b[0]=M=>v.name=M),placeholder:"my-container",description:"3-63 chars, starts with letter, lowercase letters/numbers/hyphens only",disabled:u.value},null,8,["modelValue","disabled"]),D(e(ie),{label:"Image",type:"select",modelValue:v.image,"onUpdate:modelValue":b[1]||(b[1]=M=>v.image=M),options:K,disabled:u.value},null,8,["modelValue","disabled"]),f("div",$t,[b[6]||(b[6]=f("div",null,[f("p",{class:"text-sm font-medium text-ink-gray-9"},"Trial mode"),f("p",{class:"text-xs text-ink-gray-5"},"Demo — fixed 1 user, limited period")],-1)),Pe(f("input",{type:"checkbox","onUpdate:modelValue":b[2]||(b[2]=M=>v.trial=M),disabled:u.value,class:"h-4 w-4 rounded border-gray-300 text-blue-600 cursor-pointer",onChange:b[3]||(b[3]=M=>v.trial&&(S.value=[1]))},null,40,Et),[[Ae,v.trial]])]),f("div",null,[f("div",It,[b[7]||(b[7]=f("label",{class:"text-sm font-medium text-ink-gray-7"},"Number of Users",-1)),D(e(fe),{class:"!rounded-sm",theme:v.trial?"gray":"blue"},{default:x(()=>[U(B(v.trial?1:S.value[0])+" "+B(v.trial?"user (Trial)":S.value[0]===1?"user":"users"),1)]),_:1},8,["theme"])]),D(e(ct),{modelValue:S.value,"onUpdate:modelValue":b[4]||(b[4]=M=>S.value=M),min:1,max:100,disabled:u.value||v.trial,class:O(["w-full",{"opacity-40":v.trial}])},null,8,["modelValue","disabled","class"]),b[8]||(b[8]=f("div",{class:"flex justify-between mt-1 text-xs text-ink-gray-4"},[f("span",null,"1"),f("span",null,"50"),f("span",null,"100")],-1))]),o.value?(p(),q("div",Rt,B(o.value),1)):Z("",!0)]))]),actions:x(()=>[f("div",zt,[a.value?(p(),q(ee,{key:1},[w.value?(p(),$(e(Y),{key:0,variant:"subtle",onClick:J},{default:x(()=>[...b[11]||(b[11]=[U(" Run in Background ",-1)])]),_:1})):(p(),$(e(Y),{key:1,variant:"solid",onClick:Q},{default:x(()=>[U(B(a.value.status==="Error"?"Close":"Done"),1)]),_:1}))],64)):(p(),q(ee,{key:0},[D(e(Y),{variant:"subtle",onClick:J,disabled:u.value},{default:x(()=>[...b[9]||(b[9]=[U("Cancel",-1)])]),_:1},8,["disabled"]),D(e(Y),{variant:"solid",onClick:H,loading:u.value},{default:x(()=>[...b[10]||(b[10]=[U(" Create Container ",-1)])]),_:1},8,["loading"])],64))])]),_:1},8,["modelValue","options"]))}},jt={class:"flex flex-col h-full"},Ft={class:"flex-1 overflow-auto p-5"},Lt={key:0,class:"flex items-center justify-center h-64"},Ot={key:1,class:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3"},Gt={__name:"Sites",setup(s){const n=ze(),t=P(!1),l=P([]),i=le({url:"cloud_portal.cloud_portal.doctype.cloud_container.cloud_container.get_user_containers",auto:!1,onSuccess(m){l.value=m.map(r=>({name:r.name,container_name:r.container_name,status:r.status,image:r.image,ip_address:r.ip_address,created:r.creation?new Date(r.creation).toLocaleDateString():""}))}}),u=g(()=>i.loading&&l.value.length===0);function o(){i.fetch()}function a(m){n.push({name:"SiteDetail",params:{siteId:m}})}return me(()=>{o()}),(m,r)=>(p(),q("div",jt,[D(He,{title:"Containers"},{right:x(()=>[D(e(Y),{variant:"subtle",onClick:o,loading:e(i).loading},{prefix:x(()=>[D(e(X),{name:"refresh-cw",class:"h-4 w-4"})]),default:x(()=>[r[3]||(r[3]=U(" Refresh ",-1))]),_:1},8,["loading"]),D(e(Y),{variant:"solid",onClick:r[0]||(r[0]=_=>t.value=!0)},{prefix:x(()=>[D(e(X),{name:"plus",class:"h-4 w-4"})]),default:x(()=>[r[4]||(r[4]=U(" New Container ",-1))]),_:1})]),_:1}),f("div",Ft,[u.value?(p(),q("div",Lt,[D(e(pe),{class:"h-8 w-8"})])):l.value.length?(p(),q("div",Ot,[(p(!0),q(ee,null,ve(l.value,_=>(p(),$(kt,{key:_.name,site:_,onClick:v=>a(_.name)},null,8,["site","onClick"]))),128))])):(p(),$(yt,{key:2,icon:"server",title:"No containers yet",description:"Create your first container to get started"},{action:x(()=>[D(e(Y),{variant:"solid",onClick:r[1]||(r[1]=_=>t.value=!0)},{default:x(()=>[...r[5]||(r[5]=[U(" Create Container ",-1)])]),_:1})]),_:1}))]),D(Ut,{modelValue:t.value,"onUpdate:modelValue":r[2]||(r[2]=_=>t.value=_),onCreated:o},null,8,["modelValue"])]))}};export{Gt as default};
|
|
//# sourceMappingURL=Sites-640aa70f.js.map
|