WebOCR Manga OCR · Translation · Typesetting`),wa=G(`v`);function Ta(){let[e,t]=s(null);return _(()=>{fetch(`/health`).then(e=>e.ok?e.json():Promise.reject()).then(t).catch(()=>{})}),(()=>{var t=Ca();return t.firstChild.nextSibling,J(t,P(I,{get when(){return e()},children:e=>(()=>{var t=wa();return t.firstChild,J(t,()=>e().version,null),t})()}),null),t})()}function Ea(e){return P(I,{get when(){return e.ok!==null},get fallback(){return(()=>{var t=ka();return J(t,P(xr,{class:`h-3 w-3 animate-spin`}),null),J(t,()=>e.label,null),t})()},get children(){return P(I,{get when(){return e.ok},get fallback(){return(()=>{var t=Aa();return J(t,P(Tr,{class:`h-3 w-3`}),null),J(t,()=>e.label,null),t})()},get children(){var t=Oa();return J(t,P(_r,{class:`h-3 w-3`}),null),J(t,()=>e.label,null),t}})}})}function Da(){let[e,t]=s(null),[n,r]=s(null),[i,a]=s(!1),[o,c]=s(null);_(u);function u(){r(null),fetch(`/health`).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{t(e),c(e.preferred_translation_engine)}).catch(e=>r(String(e)))}let d=()=>{if(n())return!1;let t=e();return t?t.status===`ok`:null},f=()=>{if(n())return`error`;let t=e();return t?t.status:`connecting`};async function p(t){if(!(!e()||i())){r(null),a(!0);try{let e=await fetch(`/api/settings/engine`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({engine:t})});if(!e.ok)throw Error(`Failed to save settings (HTTP ${e.status})`);c(t)}catch(e){r(String(e))}finally{a(!1)}}}return(()=>{var t=Ma(),r=t.firstChild,a=r.firstChild.firstChild,s=a.nextSibling.nextSibling;return J(a,P(yi,{class:`h-6 w-6 text-slate-700`})),J(s,P(Ea,{get ok(){return d()},get label(){return f()}})),J(r,P(I,{get when(){return n()},get children(){var e=ja();return J(e,P(qi,{class:`h-4 w-4 shrink-0`}),null),J(e,n,null),e}}),null),J(r,P(I,{get when(){return e()},children:e=>[(()=>{var t=Na(),n=t.firstChild.nextSibling.firstChild,r=n.firstChild.nextSibling,i=n.nextSibling,a=i.firstChild,o=a.firstChild,s=a.nextSibling,c=i.nextSibling.firstChild,l=c.firstChild,u=c.nextSibling;return J(r,()=>e().version),J(a,P(Gr,{class:`h-3.5 w-3.5`}),o),J(s,()=>e().data_dir),J(c,P(Yr,{class:`h-3.5 w-3.5`}),l),J(u,P(Ea,{get ok(){return e().deepl_available},get label(){return e().deepl_available?`configured`:`not configured`}})),t})(),(()=>{var t=Pa(),n=t.firstChild.nextSibling;return J(n,P(ve,{get each(){return Object.entries(e().models)},children:([e,t])=>{let n=Va[e]??{label:e,Icon:qn},r=n.Icon;return(()=>{var e=La(),i=e.firstChild,a=i.nextSibling,o=a.nextSibling;return J(i,P(r,{class:`h-4 w-4`})),J(a,()=>n.label),J(o,()=>t.name),J(e,P(I,{get when(){return t.enabled},get fallback(){return Ra()},get children(){return P(Ea,{get ok(){return t.ready},get label(){return t.ready?`ready`:`loading`}})}}),null),e})()}})),t})(),(()=>{var t=Ia(),n=t.firstChild.nextSibling.firstChild.nextSibling;return J(n,P(ve,{each:[{value:`auto`,label:`Auto`,desc:`DeepL if configured, else local`},{value:`local`,label:`Local`,desc:`Opus-MT (on-device)`},{value:`deepl`,label:`DeepL`,desc:`DeepL API`}],children:t=>{let n=()=>o()===t.value,r=()=>t.value===`deepl`&&!e().deepl_available;return(()=>{var e=Ba();return e.$$click=()=>p(t.value),J(e,()=>t.label,null),J(e,P(I,{get when(){return n()},get children(){return za()}}),null),l(a=>{var o=r()||i(),s=r()?`DeepL API key not configured`:t.desc,c=`rounded-lg border px-4 py-2 text-sm transition-colors ${n()?`border-violet-500 bg-violet-50 font-semibold text-violet-700`:`border-slate-200 bg-white text-slate-600 hover:border-slate-300 hover:bg-slate-50`} ${r()?`cursor-not-allowed opacity-40`:``}`;return o!==a.e&&(e.disabled=a.e=o),s!==a.t&&q(e,`title`,a.t=s),c!==a.a&&Je(e,a.a=c),a},{e:void 0,t:void 0,a:void 0}),e})()}}),null),J(n,P(I,{get when(){return i()},get children(){var e=Fa(),t=e.firstChild;return J(e,P(xr,{class:`h-3 w-3 animate-spin`}),t),e}}),null),t})()]}),null),t})()}var Oa,ka,Aa,ja,Ma,Na,Pa,Fa,Ia,La,Ra,za,Ba,Va,Ha=t((()=>{X(),W(),_a(),Oa=G(``),ka=G(``),Aa=G(``),ja=G(``),Ma=G(`
Server Status ASP.NET Core · Manga-OCR · Opus-MT
`),Na=G(`
Server info
Version
Data dir DeepL `),Pa=G(`Models
`),Fa=G(` Saving…`),Ia=G(`Translation engine
Default engine used when a request doesn't specify one. Takes effect immediately; no restart needed.
`),La=G(`
`),Ra=G(`disabled`),za=G(`✓`),Ba=G(``),Va={ocr:{label:`OCR`,Icon:zi},translate:{label:`Translate`,Icon:di},dictionary:{label:`Dictionary`,Icon:tr},inpaint:{label:`Inpaint`,Icon:yi},bubble:{label:`Bubble`,Icon:qn}},K([`click`])})),Ua=n({ServerStatusPage:()=>Da}),Wa=t((()=>{Ha()})),Ga=n({OpenApiPage:()=>Ka});function Ka(){return qa()}var qa,Ja=t((()=>{X(),qa=G(`