var _=Object.defineProperty;var m=(e,t,n)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var i=(e,t,n)=>(m(e,typeof t!="symbol"?t+"":t,n),n);import{d as g,J as v,I as y,a as c,b as s,o as d,f as o,u as r,dc as h,cM as w,A as I,g as p,d8 as u,_ as b,r as P,eb as x}from"./jwt-decode.esm.54a1ea22.js";import{_ as W}from"./AbstraLogo.vue_vue_type_script_setup_true_lang.28bc9fc9.js";import{B as j}from"./BaseLayout.72a6c8f2.js";import{l as f}from"./fetch.1b3d01a0.js";import"./router.4dfadf5d.js";import{a as A}from"./project.1b8374f4.js";import"./tables.1bcb1140.js";import"./Logo.65e0b37c.js";import"./index.c7a996a6.js";import"./record.e83a2eb2.js";import"./string.61e11a30.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="060a6435-faae-45a5-90c2-7acdf84029b4",e._sentryDebugIdIdentifier="sentry-dbid-060a6435-faae-45a5-90c2-7acdf84029b4")}catch{}})();const E=g({__name:"View",props:{controller:{}},setup(e){const t=e,n=t.controller.loadingPercentage();return v(()=>{t.controller.start()}),y(()=>{t.controller.cleanUp()}),(a,l)=>(d(),c(j,null,{content:s(()=>[o(r(h),{align:"center",justify:"center",style:{width:"100vw",height:"100dvh"}},{default:s(()=>[o(r(h),{gap:"large",align:"center",justify:"space-evenly",vertical:"",style:{width:"45%","min-width":"600px",height:"100%"}},{default:s(()=>[o(W,{size:"large"}),o(r(w),{size:[10,10],"show-info":!1,percent:r(n),"stroke-color":"#EA576A"},null,8,["percent"]),o(r(I),{level:3},{default:s(()=>[p("Preparing your environment")]),_:1}),r(n)<100?(d(),c(r(u),{key:0},{default:s(()=>[p("We are setting things up... This may take up to 1 minute.")]),_:1})):(d(),c(r(u),{key:1},{default:s(()=>[p("You will be redirected soon")]),_:1}))]),_:1})]),_:1})]),_:1}))}});const T=b(E,[["__scopeId","data-v-0794e790"]]);function k(e,t){if(!e)return"";const n=t.toString();if(!n)return e;const l=e.includes("?")?"&":"?";return`${e}${l}${n}`}class R{constructor(t,n,a=f){i(this,"projectId");i(this,"loading");i(this,"fetch",f);i(this,"interval",null);i(this,"urls",null);i(this,"totalWaitTime");i(this,"poolingInterval");i(this,"pingResponded",!1);i(this,"redirectPath");this.projectId=t,this.loading=P(0),this.fetch=a,this.totalWaitTime=6e4,this.poolingInterval=2500,this.redirectPath=n}increment(){this.loading.value+=100/(this.totalWaitTime/this.poolingInterval)}speedUp(){this.totalWaitTime=5e3,this.poolingInterval=500,this.interval&&clearInterval(this.interval),this.interval=setInterval(async()=>{this.increment(),this.loading.value>=100&&this.navigate()},this.poolingInterval)}navigate(){if(this.urls){const t=new URLSearchParams;this.redirectPath&&t.set("redirect",this.redirectPath);const n=k(this.urls.redirect,t);window.location.replace(n)}this.cleanUp()}async ping(){if(!this.urls)return!1;if(this.pingResponded)return!0;const t=await this.fetch(this.urls.ping,{signal:AbortSignal.timeout(500)});return this.pingResponded=t.status===200,this.pingResponded}async start(){const t=await A.startWebEditor(this.projectId);this.urls=t,this.interval=setInterval(async()=>{this.increment(),this.pingResponded||await this.ping()&&this.speedUp(),this.loading.value>=100&&this.navigate()},this.poolingInterval)}cleanUp(){this.interval&&clearInterval(this.interval)}loadingPercentage(){return this.loading}}const Q=g({__name:"WebEditor",setup(e){const t=x(),n=t.params.projectId,a=t.query.redirect,l=new R(n,a);return(U,V)=>(d(),c(T,{controller:r(l)},null,8,["controller"]))}});export{Q as default};
//# sourceMappingURL=WebEditor.83f2a960.js.map
