1import{n as e}from"../chunks/QTnfLwEv.js";import{$t as t,Bt as n,Ct as r,D as i,Dn as a,Ft as o,Ht as s,It as c,K as l,L as u,Lt as d,M as f,R as p,Rt as m,S as h,Sn as g,U as _,Ut as v,Vt as y,X as b,Yt as x,_t as S,an as C,ct as w,en as T,et as E,gt as D,h as O,hn as k,ht as A,in as j,j as ee,kt as te,ln as ne,lt as M,mn as N,mt as P,o as F,ot as I,pt as L,qt as R,rt as z,tt as B,u as re,ut as V,xn as ie,z as ae,zt as oe}from"../chunks/Bk6hEwef.js";import{n as se,r as H,t as ce}from"../chunks/D5KABt2t.js";import{H as le,In as ue}from"../chunks/B67yn771.js";import"../chunks/xihTtKlq.js";import{$ as de,Aa as fe,C as pe,Dt as me,Ei as he,Hr as ge,I as _e,Jr as ve,Jt as ye,Ks as be,Lt as xe,Ma as Se,Na as Ce,Nr as we,Qr as Te,Qt as Ee,R as De,S as Oe,T as ke,Tr as Ae,V as je,Wt as Me,Yi as Ne,ai as Pe,ao as Fe,br as Ie,d as Le,da as Re,gr as ze,h as Be,ht as Ve,i as He,ia as Ue,io as We,ma as Ge,mi as Ke,nr as qe,o as Je,p as Ye,pi as Xe,qs as U,r as Ze,ro as Qe,sn as $e,ti as et,tn as tt,un as nt,w as rt,wa as it,ya as at}from"../chunks/B0JwwPvK.js";import{t as ot}from"../chunks/Clqh2_n3.js";import{_ as st,b as ct,h as lt,s as ut,v as dt,x as ft}from"../chunks/BmzTvuiH.js";import{a as pt,o as mt,t as ht}from"../chunks/_088QnwV.js";import{r as gt}from"../chunks/QNo4yHmN.js";import"../chunks/C7YodD6l.js";import{a as _t,i as vt}from"../chunks/BggnL2_H.js";import{n as yt}from"../chunks/BDK9P39P2.js";import{a as bt}from"../chunks/D4inrRW62.js";import{t as xt}from"../chunks/B-RHda9P2.js";import{n as St,r as W,t as Ct}from"../chunks/fuBMsMoy2.js";import{t as G}from"../chunks/KrloiuUW2.js";import{C as wt,Mt as Tt,Nt as Et,r as Dt,xt as Ot,yt as kt}from"../chunks/TOAT_s3V.js";import{t as K}from"../chunks/BU-rlXv9.js";import{t as At}from"../chunks/D18nR_1W.js";import{t as jt}from"../chunks/CIKG-GVG.js";import{t as q}from"../chunks/LfKStwGC.js";import{a as Mt,n as Nt,t as Pt}from"../chunks/DLRiCWuI.js";import{t as J}from"../chunks/DSuog6At.js";import{a as Ft,i as It,r as Lt}from"../chunks/Bd01My4V.js";import{t as Rt}from"../chunks/D5A40yBt.js";import{t as zt}from"../chunks/BjQjrunm.js";import{t as Bt}from"../chunks/ZDNEHxdh.js";import{t as Vt}from"../chunks/DK-oNI6R.js";import{o as Ht,t as Ut}from"../chunks/Bt-SB3ZA.js";import{n as Y}from"../chunks/Cy6bKNYc.js";import{h as X,i as Wt,t as Gt}from"../chunks/CD1hIHpU.js";import{t as Kt}from"../chunks/pLSqC2GY2.js";import{t as qt}from"../chunks/CGyGx1a82.js";var Z=new class{#e=new He(`show-keys`,!1);#t=x();#n=x(v([]));get cursor(){return r(this.#t)}get events(){return r(this.#n).map(({event:e})=>e)}get enabled(){return this.#e.current}toggle(){this.#e.current=!this.#e.current,R(this.#n,[],!0),R(this.#t,void 0)}onTick(){if(!this.#e.current)return;let e=bt.now();R(this.#n,r(this.#n).filter(({expiresAt:t})=>t>e),!0)}onKeyDown(e){this.#e.current&&(r(this.#n).push({event:e,expiresAt:bt.now().plus({millisecond:1500})}),this.onTick())}onMouseDown(e){this.#e.current&&R(this.#t,{event:e,moving:!1},!0)}onMouseMove(e){this.#e.current&&r(this.#t)&&R(this.#t,{event:e,moving:!0},!0)}onMouseUp(e){this.#e.current&&R(this.#t,void 0)}},Jt=V(`<div></div>`),Yt=V(`<span class="bg-light-400 text-light-900 rounded border px-4 py-2 text-4xl"><!></span>`),Xt=V(`<div><div class="dark flex gap-1"></div></div>`),Zt=V(`<!> <!>`,1);function Qt(e,t){k(t,!0);let i=re(t,`ref`,15),a=T(()=>Z.events),c=T(()=>Z.cursor);F(()=>{let e=setInterval(()=>Z.onTick(),250);return()=>clearInterval(e)});var l=Zt();D(`keydown`,oe,e=>Z.onKeyDown(e)),D(`mousedown`,oe,e=>Z.onMouseDown(e)),D(`mouseup`,oe,e=>Z.onMouseUp(e)),D(`mousemove`,oe,e=>Z.onMouseMove(e));var d=y(l),f=e=>{var t=Jt();let n;o(()=>{p(t,1,ae([be.ScreencastOverlay,r(c).moving&&`bg-red-500/25`,`pointer-events-none absolute size-8 -translate-x-[50%] -translate-y-[50%] rounded-full border-2 border-red-500`])),n=u(t,``,n,{top:`${r(c).event.clientY??``}px`,left:`${r(c).event.clientX??``}px`})}),w(e,t)};z(d,e=>{r(c)&&e(f)});var m=s(d,2),_=e=>{var s=Xt(),c=n(s);E(c,21,()=>r(a),B,(e,i)=>{var a=M(),s=y(a),c=e=>{var n=M();b(y(n),()=>t.child,()=>r(i)),w(e,n)},l=e=>{let t=T(()=>yt(r(i)));var a=Yt(),s=n(a),c=e=>{U(e,{get icon(){return r(t).icon}})},l=e=>{var n=L();o(()=>I(n,r(t).key)),w(e,n)};z(s,e=>{`icon`in r(t)?e(c):e(l,-1)}),g(a),w(e,a)};z(s,e=>{t.child?e(c):e(l,-1)}),w(e,a)}),g(c),g(s),h(s,e=>i(e),()=>i()),o(e=>p(s,1,e),[()=>ae(ut(be.ScreencastOverlay,`bg-light-200/75 pointer-events-none absolute top-[80%] z-1000 flex w-full justify-around p-8`,t.class))]),w(e,s)};z(m,e=>{r(a).length>0&&e(_)}),w(e,l),N()}var Q={Socials:{Futo:`https://futo.org/`,Github:`https://github.com/immich-app/immich`,Discord:`https://discord.immich.app/`,Reddit:`https://www.reddit.com/r/immich/`,Rss:`https://immich.app/blog/feed.xml`,Weblate:`https://hosted.weblate.org/projects/immich/immich/`,X:`https://x.com/immichapp`,YouTube:`https://www.youtube.com/@immich-app`},Get:{iOS:`https://get.immich.app/ios`,Android:`https://get.immich.app/android`,FDroid:`https://get.immich.app/fdroid`,GithubRelease:`https://github.com/immich-app/immich/releases/latest`,Download:`https://immich.app/download`},Sites:{Api:`https://api.immich.app/`,Buy:`https://buy.immich.app/`,Data:`https://data.immich.app/`,Datasets:`https://datasets.immich.app/`,Demo:`https://demo.immich.app/`,Docs:`https://docs.immich.app/`,Get:`https://get.immich.app/`,My:`https://my.immich.app/`,Store:`https://immich.store/`,Awesome:`https://awesome.immich.app/`,Ui:`https://ui.immich.app/`},Pages:{Blog:`https://immich.app/blog`,CursedKnowledge:`https://immich.app/cursed-knowledge`,Roadmap:`https://immich.app/roadmap`,PrivacyPolicy:`https://immich.app/privacy-policy`},Npm:{Sdk:`https://www.npmjs.com/package/@immich/sdk`,Ui:`https://www.npmjs.com/package/@immich/ui`}},$t=e=>e.map(e=>en(e)),en=e=>({icon:lt(dt(e.href))?he:void 0,iconClass:`text-indigo-700 dark:text-indigo-200`,title:e.title,de
1scription:e.description,onAction:()=>st(e.href),extraText:e.href}),tn=$t([{title:`Documentation`,description:`View the documentation for Immich`,href:Q.Sites.Docs},{title:`Blog`,description:`Latest updates, announcements, and stories from the Immich team`,href:Q.Pages.Blog},{title:`Cursed Knowledge`,description:`View our collection of cursed knowledge`,href:Q.Pages.CursedKnowledge},{title:`Roadmap`,description:`View our project roadmap`,href:Q.Pages.Roadmap},{title:`Privacy Policy`,description:`View how we collect, use, and share information when you use Immich`,href:Q.Pages.PrivacyPolicy}]),nn=$t([{title:`Buy Immich`,description:`Support Immich by buying a product key.`,href:Q.Sites.Buy},{title:`Immich Store`,description:`Support the project by purchasing Immich merchandise`,href:Q.Sites.Store},{title:`Immich Datasets`,description:`Help improve Immich by contributing your own files`,href:Q.Sites.Datasets}]),rn=$t([{title:`Immich on the PlayStore`,description:`View Immich on the Google Play Store`,href:Q.Get.Android},{title:`Immich on the iOS App Store`,description:`View Immich on the iOS App Store`,href:Q.Get.iOS}]),an=$t([{title:`Awesome Immich`,description:`A list of awesome Immich apps, integrations, tools, distributions, and guides`,href:Q.Sites.Awesome},{title:`Buy Immich`,description:`Support Immich by buying a product key.`,href:Q.Sites.Buy},{title:`Get Immich`,description:`View downloads links for Immich apps and server`,href:Q.Sites.Get},{title:`My Immich`,description:`Immich link proxy to redirect to your personal instance`,href:Q.Sites.My},{title:`Immich API`,description:`Documentation for the REST API that powers Immich`,href:Q.Sites.Api},{title:`Immich Data`,description:`View interesting data about the growth of Immich over time`,href:Q.Sites.Data},{title:`Immich Documentation`,description:`View the documentation for Immich`,href:Q.Sites.Docs},{title:`Immich Demo`,description:`Test out Immich with our public demo server`,href:Q.Sites.Demo},{title:`Immich UI`,description:`View our Svelte component library, @immich/ui`,href:Q.Sites.Ui}]),on=$t([{title:`reddit`,description:`Join the Immich community on reddit`,href:Q.Socials.Reddit},{title:`GitHub`,description:`View our project on GitHub`,href:Q.Socials.Github},{title:`Discord`,description:`Join the conversation on Discord`,href:Q.Socials.Discord},{title:`Weblate`,description:`Support the project by translating Immich on Weblate`,href:Q.Socials.Weblate},{title:`FUTO`,description:`Learn more about FUTO, the company behind Immich`,href:Q.Sites.Docs}]),sn=e({csr:()=>!0,load:()=>cn,ssr:()=>!1}),cn=(async({fetch:e,url:t})=>{let n;try{await zt(e),Ft(jt.value.maintenanceMode,t)&&await H(jt.value.maintenanceMode?Lt(t):It(t.searchParams))}catch(e){n=e}return St.enable(),At.init(),{error:n,meta:{title:`Immich`}}}),ln=e=>{let t=[{title:e(`admin.user_management`),description:e(`admin.users_page_description`),icon:_e,onAction:()=>H(q.users())},{title:e(`admin.system_settings`),description:e(`admin.settings_page_description`),icon:tt,onAction:()=>H(q.systemSettings())},{title:e(`admin.queues`),description:e(`admin.queues_page_description`),icon:Ge,onAction:()=>H(q.queues())},{title:e(`external_libraries`),description:e(`admin.external_libraries_page_description`),icon:Ve,onAction:()=>H(q.libraries())},{title:e(`server_stats`),description:e(`admin.server_stats_page_description`),icon:Ue,onAction:()=>H(q.systemStatistics())},{title:e(`admin.maintenance_settings`),description:e(`admin.maintenance_settings_description`),icon:We,onAction:()=>H(q.systemMaintenance())}].map(e=>({...e,$if:()=>J.authenticated&&J.user.isAdmin})),n=[{title:e(`photos`),icon:Ae,onAction:()=>H(q.photos())},{title:e(`explore`),icon:Pe,onAction:()=>H(q.explore()),$if:()=>J.authenticated&&Rt.value.search},{title:e(`map`),icon:Ke,onAction:()=>H(q.map()),$if:()=>J.authenticated&&Rt.value.map},{title:e(`people`),description:e(`people_feature_description`),icon:De,onAction:()=>H(q.people()),$if:()=>J.authenticated&&J.preferences.people.enabled},{title:e(`places`),icon:Xe,onAction:()=>H(q.places())},{title:e(`shared_links`),icon:ve,onAction:()=>H(q.sharedLinks()),$if:()=>J.authenticated&&J.preferences.sharedLinks.enabled},{title:e(`recently_added`),icon:Pe,onAction:()=>H(q.recentlyAdded()),$if:()=>J.authenticated},{title:e(`sharing`),icon:_e,onAction:()=>H(q.sharing()),$if:()=>J.authenticated},{title:e(`favorites`),icon:ze,onAction:()=>H(q.favorites()),$if:()=>J.authenticated},{title:e(`albums`),description:e(`albums_feature_description`),icon:Ie,onAction:()=>H(q.albums()),$if:()=>J.authenticated},{title:e(`tags`),description:e(`tag_feature_description`),icon:at,onAction:()=>H(q.tags()),$if:()=>J.authenticated&&J.preferences.tags.enabled},{title:e(`folders`),description:e(`folders_feature_description`),icon:qe,onAction:()=>H(q.folders()),$if:()=>J.authenticated&&J.preferences.folders.enabled},{title:e(`utilities`),icon:fe,onAction:()=>H(q.utilities()),$if:()=>J.authenticated},{title:e(`archive`),icon:de,onAction:()=>H(q.archive()),$if:()=>J.authenticated},{title:e(`locked_folder`),icon:et,onAction:()=>H(q.locked()),$if:()=>J.authenticated},{title:e(`trash`),icon:Ce,onAction:()=>H(q.trash()),$if:()=>J.authenticated&&Rt.value.trash},{title:e(`admin.user_settings`),icon:tt,onAction:()=>H(q.userSettings()),$if:()=>J.authenticated}].map(e=>({$if:()=>J.authenticated,...e})),r=[{title:e(`review_duplicates`),icon:$e,onAction:()=>H(q.duplicatesUtility())},{title:e(`review_large_files`),icon:we,onAction:()=>H(q.largeFileUtility())},{title:e(`manage_geolocation`),icon:nt,onAction:()=>H(q.geolocationUtility())},{title:e(`workflows`),icon:Re,onAction:()=>
1H(q.workflows())}].map(e=>({...e,$if:()=>J.authenticated}));return W({name:e(`page`),actions:[...n,...r,...t]})},un=()=>new URL(G.url.pathname+G.url.search,`https://my.immich.app`),dn=e=>{let t=[{title:e(`theme`),description:e(`toggle_theme_description`),icon:it,onAction:()=>Ze.toggle(),shortcuts:{shift:!0,key:`t`}},{title:e(`system_theme`),description:e(`system_theme_command_description`,{values:{value:Ze.prefersDark?e(`dark`):e(`light`)}}),icon:it,onAction:()=>Ze.setPreference(ft.System)},{title:e(`screencast_mode_title`),description:e(`screencast_mode_description`),icon:ge,onAction:()=>Z.toggle()},{title:e(`my_immich_title`),description:e(`my_immich_description`),onAction:()=>Dt(un().href),shortcuts:{ctrl:!0,shift:!0,key:`m`}}];return W({name:e(`command`),actions:t})},fn=V(`<p class="whitespace-nowrap"> </p>`),pn=V(`<div class="mb-2 flex place-items-center"><div class="w-full pe-10"><div class="flex place-items-center justify-between gap-2 text-xs font-medium"><p class="truncate"> </p> <!></div> <div class="flex place-items-center gap-2"><div class="h-2.5 w-full rounded-full bg-neutral-200 dark:bg-neutral-600"><div class="h-2.5 rounded-full bg-primary"></div></div> <p class="min-w-16 text-right whitespace-nowrap"><span class="text-primary"> </span></p></div></div> <div class="absolute inset-e-4"><!></div></div>`),mn=V(`<div class="fixed inset-s-2 bottom-10 z-60 max-h-67.5 w-79 rounded-2xl border bg-subtle p-4 shadow-lg dark:border-white/10"><!> <div class="my-2 mb-2 flex max-h-50 flex-col overflow-y-auto text-sm"></div></div>`);function hn(e,i){k(i,!1);let a=()=>C(K,`$t`,d),c=()=>C(Et,`$locale`,d),[d,f]=j(),p=(e,t)=>{t.abort?.abort(),Ot.clear(e)};O();var m=M(),h=y(m),_=e=>{var i=mn(),d=n(i);Je(d,{size:`tiny`,children:(e,t)=>{ie();var n=L();o(e=>I(n,e),[()=>a()(`downloading`)]),w(e,n)},$$slots:{default:!0}});var f=s(d,2);E(f,5,()=>Object.keys(Ot.assets),e=>e,(e,i)=>{let d=t(()=>Ot.assets[r(i)]);var f=pn(),m=n(f),h=n(m),_=n(h),v=n(_,!0);g(_);var y=s(_,2),b=e=>{var t=fn(),i=n(t,!0);g(t),o(e=>I(i,e),[()=>kt(r(d).total,c())]),w(e,t)};z(y,e=>{r(d).total&&e(b)}),g(h);var x=s(h,2),S=n(x),C=n(S);g(S);var T=s(S,2),E=n(T),D=n(E,!0);g(E),g(T),g(x),g(m);var O=s(m,2),k=n(O);{let e=t(()=>a()(`close`));Fe(k,{color:`secondary`,variant:`outline`,shape:`round`,get"aria-label"(){return r(e)},onclick:()=>p(r(i),r(d)),size:`tiny`,get icon(){return ye}})}g(O),g(f),o(e=>{I(v,r(i)),u(C,`width: ${r(d).percentage}%`),I(D,e)},[()=>(r(d).percentage/100).toLocaleString(c(),{style:`percent`})]),l(3,f,()=>ke),w(e,f)}),g(f),g(i),l(3,i,()=>pe,()=>({x:-100,duration:350})),w(e,i)};z(h,e=>{Ot.isDownloading&&e(_)}),w(e,m),N(),f()}var gn=V(`<div class="absolute inset-s-0 top-0 h-[3px] w-dvw bg-white"><span class="absolute h-[3px] bg-immich-primary"></span></div>`);function _n(e,t){k(t,!0);let i=()=>C(l,`$progress`,a),[a,s]=j(),c=x(!1),l=Ht(0,{duration:1e3,easing:Le});function d(){R(c,!0),l.set(90)}F(()=>{let e=setTimeout(d,100);return()=>clearTimeout(e)});var f=M(),p=y(f),m=e=>{var t=gn(),r=n(t);let a;g(t),o(()=>a=u(r,``,a,{width:`${i()}%`})),w(e,t)};z(p,e=>{r(c)&&e(m)}),w(e,f),N(),s()}var vn=`wakeLock`in navigator,$,yn=!1;async function bn(){if(vn&&!($&&!$.released)&&!yn){yn=!0;try{$=await navigator.wakeLock.request(`screen`)}catch(e){console.warn(`Failed to acquire wake lock:`,e)}finally{yn=!1}}}async function xn(){if(!$)return;let e=$;$=void 0,await e.release()}vn&&S(globalThis,`visibilitychange`,()=>{$&&document.visibilityState===`visible`&&bn()});var Sn=V(`<div class="flex items-center justify-between gap-1"><a target="_blank" rel="noopener noreferrer" aria-hidden="true"><!></a> <button type="button" aria-hidden="true"><!></button></div>`),Cn=V(`<div class="flex items-center justify-between gap-1"><button type="button" aria-hidden="true"><!></button> <button type="button" aria-hidden="true"><!></button></div>`),wn=V(`<div class="relative mt-[5px] h-4.5 w-full rounded-md bg-gray-300 text-black dark:bg-gray-700"><div class="h-4.5 rounded-md bg-immich-primary transition-all"></div> <p class="absolute top-0.5 size-full text-center text-[10px] text-white"><!></p></div>`),Tn=V(`<div class="flex flex-row justify-between"><p class="w-full rounded-md text-justify text-danger"> </p></div>`),En=V(`<div class="flex flex-col gap-1 rounded-xl border border-gray-300 bg-primary/10 p-2 text-xs dar
1k:border-subtle"><div class="flex items-center gap-2"><div class="flex items-center justify-center"><!></div> <span class="grow break-all"> </span> <!></div> <!> <!></div>`);function Dn(e,t){k(t,!0);let i=()=>C(K,`$t`,c),a=()=>C(Et,`$locale`,c),[c,d]=j(),p=e=>{X.removeItem(e.id)},m=async e=>{X.removeItem(e.id),await Gt({files:[e.file],albumId:e.albumId})};var h=En(),_=n(h),v=n(_),b=n(v),x=e=>{{let t=T(()=>i()(`pending`));U(e,{get icon(){return Me},size:`24`,class:`text-primary`,get title(){return r(t)}})}},S=e=>{{let t=T(()=>i()(`asset_skipped`));U(e,{get icon(){return Te},size:`24`,spin:!0,class:`text-primary`,get title(){return r(t)}})}},E=e=>{{let t=T(()=>i()(`error`));U(e,{get icon(){return je},size:`24`,class:`text-danger`,get title(){return r(t)}})}},D=e=>{var n=M(),a=y(n),o=e=>{{let t=T(()=>i()(`asset_skipped_in_trash`));U(e,{get icon(){return Se},size:`24`,class:`text-gray-500`,get title(){return r(t)}})}},s=e=>{{let t=T(()=>i()(`asset_skipped`));U(e,{get icon(){return je},size:`24`,class:`text-warning`,get title(){return r(t)}})}};z(a,e=>{t.uploadAsset.isTrashed?e(o):e(s,-1)}),w(e,n)},O=e=>{{let t=T(()=>i()(`asset_uploaded`));U(e,{get icon(){return xe},size:`24`,class:`text-success`,get title(){return r(t)}})}};z(b,e=>{t.uploadAsset.state===Y.PENDING?e(x):t.uploadAsset.state===Y.STARTED?e(S,1):t.uploadAsset.state===Y.ERROR?e(E,2):t.uploadAsset.state===Y.DUPLICATED?e(D,3):t.uploadAsset.state===Y.DONE&&e(O,4)}),g(v);var ee=s(v,2),te=n(ee,!0);g(ee);var ne=s(ee,2),P=e=>{var r=Sn(),i=n(r);f(i,`tabindex`,-1),U(n(i),{get icon(){return he},size:`20`}),g(i);var a=s(i,2);f(a,`tabindex`,-1),U(n(a),{get icon(){return ye},size:`20`}),g(a),g(r),o(e=>f(i,`href`,e),[()=>t.uploadAsset.isTrashed?q.viewTrashedAsset({id:t.uploadAsset.assetId}
1):q.viewAsset({id:t.uploadAsset.assetId})]),A(`click`,a,()=>p(t.uploadAsset)),w(e,r)},F=e=>{var r=Cn(),i=n(r);f(i,`tabindex`,-1),U(n(i),{get icon(){return Ne},size:`20`}),g(i);var a=s(i,2);f(a,`tabindex`,-1),U(n(a),{get icon(){return ye},size:`20`}),g(a),g(r),A(`click`,i,()=>m(t.uploadAsset)),A(`click`,a,()=>p(t.uploadAsset)),w(e,r)};z(ne,e=>{t.uploadAsset.state===Y.DUPLICATED&&t.uploadAsset.assetId?e(P):t.uploadAsset.state===Y.ERROR&&e(F,1)}),g(_);var R=s(_,2),B=e=>{var c=wn(),l=n(c),d=s(l,2),f=n(d),p=e=>{var n=L();o(()=>I(n,t.uploadAsset.message)),w(e,n)},m=T(()=>t.uploadAsset.message===i()(`asset_hashing`)),h=e=>{var n=L();o(e=>I(n,`${t.uploadAsset.message??``} 2 ${t.uploadAsset.progress??``}% - ${e??``}/s - ${t.uploadAsset.eta??``}s`),[()=>kt(t.uploadAsset.speed||0,a())]),w(e,n)};z(f,e=>{r(m)?e(p):e(h,-1)}),g(d),g(c),o(()=>u(l,`width: ${t.uploadAsset.progress}%`)),w(e,c)};z(R,e=>{t.uploadAsset.state===Y.STARTED&&e(B)});var re=s(R,2),V=e=>{var r=Tn(),i=n(r),a=n(i,!0);g(i),g(r),o(()=>I(a,t.uploadAsset.error)),w(e,r)};z(re,e=>{t.uploadAsset.state===Y.ERROR&&e(V)}),g(h),o(()=>I(te,t.uploadAsset.file.name)),l(1,h,()=>Oe,()=>({duration:250})),l(2,h,()=>Oe,()=>({duration:100})),w(e,h),N(),d()}P([`click`]);var On=V(`<div class="mb-4 max-h-100 immich-scrollbar overflow-y-auto rounded-lg"><div class="flex h-6.5 place-items-center gap-1"><label class="immich-form-label" for="upload-concurrency"> </label></div> <input class="immich-form-input w-full" id="upload-concurrency" type="number" min="1" max="50" step="1"/></div>`),kn=V(`<div class="w-81 rounded-xl border border-gray-200 bg-subtle p-4 text-sm shadow-xs dark:border-subtle"><div class="place-item-center mb-4 flex justify-between"><div class="flex flex-col gap-1"><p class="text-xm immich-form-label"> </p> <p class="text-xs immich-form-label"> <span class="text-success"> </span> <span class="text-danger"> </span> <span class="text-warning"> </span></p></div> <div class="flex flex-col items-end"><div class="flex flex-row"><!> <!></div> <!></div></div> <!> <div class="flex max-h-[400px] immich-scrollbar flex-col gap-2 overflow-y-auto rounded-lg"></div></div>`),An=V(`<button type="button" class="absolute -inset-e-4 -top-4 flex size-10 place-content-center place-items-center rounded-full bg-danger p-5 text-xs text-light"> </button>`),jn=V(`<div class="rounded-full"><button type="button" class="absolute -inset-s-4 -top-4 flex size-10 place-content-center place-items-center rounded-full bg-primary p-5 text-xs text-light"> </button> <!> <button type="button" class="flex size-16 place-content-center place-items-center rounded-full bg-subtle p-5 text-sm text-primary shadow-lg"><div class="animate-pulse"><!></div></button></div>`),Mn=V(`<div class="fixed inset-e-16 bottom-6 z-60"><!></div>`);function Nn(e,t){k(t,!0);let a=()=>C(B,`$remainingUploads`,b),u=()=>C(L,`$isUploading`,b),d=()=>C(P,`$stats`,b),p=()=>C(K,`$t`,b),m=()=>C(Et,`$locale`,b),h=()=>C(F,`$isDismissible`,b),_=()=>C(X,`$uploadAssetsStore`,b),[b,S]=j(),O=x(!1),te=x(!1),ne=x(v(Wt.concurrency)),{stats:P,isDismissible:F,isUploading:L,remainingUploads:B}=X,re=T(()=>a()>0);c(()=>{u()&&R(O,!0)}),c(()=>{r(re)?bn():xn()});var V=M(),ie=y(V),ae=e=>{var t=Mn(),c=n(t),u=e=>{var t=kn(),c=n(t),u=n(c),v=n(u),y=n(v,!0);g(v);var b=s(v,2),x=n(b),S=s(x),C=n(S,!0);g(S);var D=s(S),k=s(D),j=n(k,!0);g(k);var M=s(k),N=s(M),P=n(N,!0);g(N),g(b),g(u);var F=s(u,2),L=n(F),B=n(L);{let e=T(()=>p()(`toggle_settings`));Fe(B,{variant:`ghost`,shape:`round`,color:`secondary`,get icon(){return tt},size:`small`,onclick:()=>R(te,!r(te)),get"aria-label"(){return r(e)}})}var re=s(B,2);{let e=T(()=>p()(`minimize`));Fe(re,{variant:`ghost`,shape:`round`,color:`secondary`,get"aria-label"(){return r(e)},get icon(){return Qe},size:`small`,onclick:()=>R(O,!1)})}g(L);var V=s(L,2),ie=e=>{{let t=T(()=>p()(`dismiss_all_errors`));Fe(e,{variant:`ghost`,shape:`round`,color:`secondary`,get"aria-label"(){return r(t)},get icon(){return me},size:`small`,onclick:()=>X.dismissErrors()})}};z(V,e=>{h()&&e(ie)}),g(F),g(c);var ae=s(c,2),oe=e=>{var t=On(),a=n(t),c=n(a),l=n(c,!0);g(c),g(a);var u=s(a,2);ee(u),g(t),o((e,t,n)=>{I(l,e),f(u,`aria-labelledby`,t),f(u,`name`,n)},[()=>p()(`upload_concurrency`),()=>p()(`upload_concurrency`),()=>p()(`upload_concurrency`)]),A(`change`,u,()=>Wt.concurrency=r(ne)),i(u,()=>r(ne),e=>R(ne,e)),w(e,t)};z(ae,e=>{r(te)&&e(oe)});var se=s(ae,2);E(se,5,_,e=>e.id,(e,t)=>{Dn(e,{get uploadAsset(){return r(t)}})}),g(se),g(t),o((e,t,n,r,i,a,o)=>{I(y,e),I(x,`${t??``} `),I(C,n),I(D,` - 3 ${r??``} `),I(j,i),I(M,` - 4 ${a??``} `),I(P,o)},[()=>p()(`upload_progress`,{values:{remaining:a(),processed:d().total-a(),total:d().total}}),()=>p()(`upload_status_uploaded`),()=>
4d().success.toLocaleString(m()),()=>p()(`upload_status_errors`),()=>d().errors.toLocaleString(m()),()=>p()(`upload_status_duplicates`),()=>d().duplicates.toLocaleString(m())]),l(1,t,()=>rt,()=>({duration:250,easing:Ye})),w(e,t)},v=e=>{var t=jn(),r=n(t),i=n(r,!0);g(r);var c=s(r,2),u=e=>{var t=An(),r=n(t,!0);g(t),o(e=>I(r,e),[()=>d().errors.toLocaleString(m())]),A(`click`,t,()=>R(O,!0)),l(1,t,()=>rt,()=>({duration:250,easing:Ye})),w(e,t)};z(c,e=>{d().errors>0&&e(u)});var f=s(c,2),p=n(f);U(n(p),{get icon(){return Ee},size:`30`}),g(p),g(f),g(t),o(e=>I(i,e),[()=>a().toLocaleString(m())]),A(`click`,r,()=>R(O,!0)),l(1,r,()=>rt,()=>({duration:250,easing:Ye})),A(`click`,f,()=>R(O,!0)),l(1,f,()=>rt,()=>({duration:250,easing:Ye})),w(e,t)};z(c,e=>{r(O)?e(u):e(v,-1)}),g(t),D(`outroend`,t,()=>{d().errors>0?vt.danger(p()(`upload_errors`,{values:{count:d().errors}})):d().success>0&&vt.primary(p()(`upload_success`)),d().duplicates>0&&vt.warning(p()(`upload_skipped_duplicates`,{values:{count:d().duplicates}})),X.reset()}),l(1,t,()=>Oe,()=>({duration:250})),l(2,t,()=>Oe,()=>({duration:250})),w(e,t)};z(ie,e=>{u()&&e(ae)}),w(e,V),N(),S()}P([`change`,`click`]);var Pn=V(`<span class="font-medium underline"><a href="https://github.com/immich-app/immich/releases/latest" target="_blank" rel="noopener noreferrer"> </a></span>`),Fn=V(`<code> </code>`),In=V(`<!> <div class="mt-4 font-medium"> </div> <div class="font-sm mt-8"><code> </code> <br/> <code> </code></div>`,1);function Ln(e,t){k(t,!0);let i=()=>C(K,`$t`,a),[a,c]=j();{let a=T(()=>i()(`new_version_available`)),c=T(()=>i()(`acknowledge`));xt(e,{size:`small`,get title(){return`ð ${r(a)??``}`},get closeText(){return r(c)},closeColor:`primary`,get onClose(){return t.onClose},icon:!1,children:(e,r)=>{var a=In(),c=y(a);Kt(c,{key:`version_announcement_message`,children:(e,t)=>{let r=()=>(t?.()).tag,i=()=>(t?.()).message;var a=M(),s=y(a),c=e=>{var t=Pn(),r=n(t),a=n(r,!0);g(r),g(t),o(()=>I(a,i())),w(e,t)},l=e=>{var t=Fn(),r=n(t,!0);g(t),o(()=>I(r,i())),w(e,t)};z(s,e=>{r()===`link`?e(c):r()===`code`&&e(l,1)}),w(e,a)},$$slots:{default:!0}});var l=s(c,2),u=n(l,!0);g(l);var d=s(l,2),f=n(d),p=n(f);g(f);var m=s(f,4),h=n(m);g(m),g(d),o((e,n,r)=>{I(u,e),I(p,`${n??``}: ${t.serverVersion??``}`),I(h,`${r??``}: ${t.releaseVersion??``}`)},[()=>i()(`version_announcement_closing`),()=>i()(`server_version`),()=>i()(`latest_version`)]),w(e,a)},$$slots:{default:!0}})}N(),c()}function Rn(e,t){k(t,!0);let n=x(void 0);Vt(e,{onReleaseEvent:async e=>{if(!e.isAvailable||!J.user.isAdmin)return;let t=wt(e.releaseVersion),i=wt(e.serverVersion);if(!(!e.type||e.type===le.Patch||e.type===le.Prepatch||localStorage.getItem(`appVersion`)===t))try{await r(n)?.close(),R(n,ht.open(Ln,{serverVersion:i,releaseVersion:t}),!0),r(n).onClose.then(()=>{localStorage.setItem(`appVersion`,t)})}catch(e){console.error(`Error [VersionAnnouncementBox]:`,e)}}}),N()}var zn=V(`<div class="font-medium"> </div>`);function Bn(e,t){k(t,!0);let i=()=>C(K,`$t`,a),[a,s]=j();{let a=T(()=>i()(`server_restarting_title`));mt(e,{size:`small`,get title(){return r(a)},get onClose(){return t.onClose},icon:!1,children:(e,t)=>{pt(e,{children:(e,t)=>{var r=zn(),a=n(r,!0);g(r),o(e=>I(a,e),[()=>i()(`server_restarting_description`)]),w(e,r)},$$slots:{default:!0}})},$$slots:{default:!0}})}N(),s()}var Vn=V(`<meta property="og:image"/>`),Hn=V(`<meta name="description"/> <meta property="og:type" content="website"/> <meta property="og:title"/> <meta property="og:description"/> <!>`,1),Un=V(`<link rel="manifest" href="/manifest.json" crossorigin="use-credentials"/> <meta name="theme-color" content="white" media="(prefers-color-scheme: light)"/> <meta name="theme-color" content="black" media="(prefers-color-scheme: dark)"/> <!>`,1),Wn=V(`<!> <!> <!> <!> <!> <!>`,1),Gn=V(`<!> <!> <!>`,1);function Kn(e,t){k(t,!0);let n=()=>C(K,`$t`,p),i=()=>C(Tt,`$lang`,p),l=()=>C(Et,`$locale`,p),u=()=>C(S,`$serverRestarting`,p),[p,h]=j(),g=Object.fromEntries(`Start airplay,Stop airplay,Audio,Start casting,Stop casting,Enter picture in picture mode,Exit picture in picture mode,Seek backward,Seek forward,audio player,seek,audio tracks,chapter: {chapterName},live,start airplay,stop airplay,start casting,stop casting,enter picture in picture mode,exit picture in picture mode,seek to live,playing live,seek back {seekOffset} seconds,seek forward {seekOffset}
4 seconds,Encryption Error,The media is encrypted and there are no keys to decrypt it.`.split(`,`).map(e=>[e,e]));c(()=>{Be({cancel:n()(`cancel`),close:n()(`close`),confirm:n()(`confirm`),expand:n()(`expand`),collapse:n()(`collapse`),search_placeholder:n()(`search`),search_no_results:n()(`no_results`),prompt_default:n()(`are_you_sure_to_do_this`),show_password:n()(`show_password`),hide_password:n()(`hide_password`),dark_theme:Ze.value===ct.Dark?n()(`light_theme`):n()(`dark_theme`),open_menu:n()(`open`),command_palette_prompt_default:n()(`command_palette_prompt`),command_palette_to_select:n()(`command_palette_to_select`),command_palette_to_navigate:n()(`command_palette_to_navigate`),command_palette_to_close:n()(`command_palette_to_close`),command_palette_to_show_all:n()(`command_palette_to_show_all`),navigate_next:n()(`next`),navigate_previous:n()(`previous`),open_calendar:n()(`open_calendar`),toast_success_title:n()(`success`),toast_info_title:n()(`info`),toast_warning_title:n()(`warning`),toast_danger_title:n()(`error`),save:n()(`save`),supporter:n()(`supporter`)}),Ut(i(),{...g,Captions:n()(`media_chrome.captions`),"Enable captions":n()(`media_chrome.enable_captions`),"Disable captions":n()(`media_chrome.disable_captions`),"Enter fullscreen mode":n()(`media_chrome.enter_fullscreen_mode`),"Exit fullscreen mode":n()(`media_chrome.exit_fullscreen_mode`),Mute:n()(`media_chrome.mute`),Unmute:n()(`media_chrome.unmute`),Loop:n()(`media_chrome.loop`),Play:n()(`play`),Pause:n()(`pause`),"Playback rate":n()(`media_chrome.playback_rate`),"Playback rate {playbackRate}":n()(`media_chrome.playback_rate_value`),Quality:n()(`media_chrome.quality`),Settings:n()(`settings`),Auto:n()(`media_chrome.auto`),"video player":n()(`media_chrome.video_player`),volume:n()(`media_chrome.volume`),"closed captions":n()(`media_chrome.closed_captions`),"current playback rate":n()(`media_chrome.playback_rate_current`),"playback time":n()(`media_chrome.playback_time`),"media loading":n()(`media_chrome.media_loading`),settings:n()(`settings`),quality:n()(`media_chrome.quality`),play:n()(`play`),pause:n()(`pause`),mute:n()(`media_chrome.mute`),unmute:n()(`media_chrome.unmute`),Off:n()(`media_chrome.captions_off`),"enter fullscreen mode":n()(`media_chrome.enter_fullscreen_mode`),"exit fullscreen mode":n()(`media_chrome.exit_fullscreen_mode`),"Network Error":n()(`media_chrome.network_error`),"Decode Error":n()(`media_chrome.decode_error`),"Source Not Supported":n()(`media_chrome.not_supported_error`),"A network error caused the media download to fail.":n()(`media_chrome.network_error_description`),"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.":n()(`media_chrome.media_error_description`),"An unsupported error occurred. The server or network failed, or your browser does not support this format.":n()(`media_chrome.unsupported_error_description`),hour:n()(`hour`),hours:n()(`hours`),minute:n()(`minute`),minutes:n()(`minutes`),second:n()(`media_chrome.second`),seconds:n()(`media_chrome.seconds`),"{time} remaining":n()(`media_chrome.time_value_remaining`),"{currentTime} of {totalTime}":n()(`media_chrome.time_value_of_total_time`),"video not loaded, unknown time.":n()(`media_chrome.video_not_loaded_unknown_time`)})}),c(()=>gt(l()));let v=x(!1);vt.setOptions({class:`top-16 fixed`}),F(()=>{document.querySelector(`#stencil`)?.remove()}),ot.emit(`AppInit`),se(({from:e,to:t})=>{qt.isOpen&&qt.reset();let n=e?.route?.id,r=t?.route?.id;n&&r&&n===r||(ot.emit(`AppNavigate`),R(v,!0))}),ce(()=>{R(v,!1)});let{serverRestarting:S}=Mt;d(()=>{J.authenticated||u()||G.url.pathname.startsWith(q.maintenanceMode())?Nt():Pt()}),S.subscribe(e=>{e&&Ft(e.isMaintenanceMode,location)&&ht.show(Bn,{}).catch(e=>console.error(`Error [ServerRestartBox]:`,e))});let E=async()=>{let e=ne(S);if(e&&Ft(e.isMaintenanceMode,location)){let{maintenanceMode:t}=await ue();t===e.isMaintenanceMode&&location.reload()}};var D=Gn();_(`12qhfyh`,e=>{var t=Un(),n=s(y(t),6),r=e=>{var t=Hn(),n=y(t),r=s(n,4),i=s(r,2),a=s(i,2),c=e=>{var t=Vn();o(()=>f(t,`content`,new URL(G.data.meta.imageUrl,jt.value.externalDomain||location.origin).href)),w(e,t)};z(a,e=>{G.data.meta.imageUrl&&e(c)}),o(()=>{f(n,`content`,G.data.meta.description),f(r,`content`,G.data.meta.title),f(i,`c
4ontent`,G.data.meta.description)}),w(e,t)};z(n,e=>{G.data.meta&&e(r)}),te(()=>{m.title=`${(G.data.meta?.title||`Web`)??``} - Immich`}),w(e,t)});var O=y(D);Vt(O,{onWebsocketConnect:E});var A=s(O,2);Rn(A,{}),_t(s(A,2),{children:(e,i)=>{var o=Wn(),c=y(o),l=e=>{Bt(e,{get error(){return G.data.error}})},u=e=>{var n=M();b(y(n),()=>t.children??a),w(e,n)};z(c,e=>{G.data.error?e(l):e(u,-1)});var d=s(c,2),f=e=>{_n(e,{})};z(d,e=>{r(v)&&e(f)});var p=s(d,2);hn(p,{});var m=s(p,2);Nn(m,{});var h=s(m,2);Qt(h,{});var g=s(h,2);{let e=T(()=>[ln(n()),dn(n()),W({name:n()(`documentation`),types:[`doc`,`documentation`],actions:tn}),W({name:n()(`support`),actions:nn}),W({name:`Socials`,types:[`social`,`socials`],actions:on}),W({name:n()(`mobile_app`),actions:rn}),W({name:`Sites`,types:[`site`,`sites`],actions:an})]);Ct(g,{get providers(){return r(e)}})}w(e,o)},$$slots:{default:!0}}),w(e,D),N(),h()}export{Kn as component,sn as universal};
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.