1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{4843:(e,t,r)=>{"use strict";r.d(t,{$:()=>n});var s=r(79780);function i(){}var n=({storage:e,key:t="REACT_QUERY_OFFLINE_CACHE",throttleTime:r=1e3,serialize:n=JSON.stringify,deserialize:a=JSON.parse,retry:o})=>{if(e){let l=async r=>{try{let s=await n(r);await e.setItem(t,s);return}catch(e){return e}};return{persistClient:function(e,{interval:t=1e3,onError:r=i}={}){if("function"!=typeof e)throw Error("argument is not function.");let n=0,a=null,o=!1,l=!1;return async(...i)=>{if(a=i,!l){for(l=!0;o;)await new Promise(e=>s.zs.setTimeout(e,t));for(;Date.now()<n;)await new Promise(e=>s.zs.setTimeout(e,n-Date.now()));l=!1,o=!0;try{await e(...a)}catch(e){try{r(e)}catch{}}n=Date.now()+t,o=!1}}}(async e=>{let t=e,r=await l(t),s=0;for(;r&&t;)s++,(t=await o?.({persistedClient:t,error:r,errorCount:s}))&&(r=await l(t))},{interval:r}),restoreClient:async()=>{let r=await e.getItem(t);if(r)return await a(r)},removeClient:()=>e.removeItem(t)}}return{persistClient:i,restoreClient:()=>Promise.resolve(void 0),removeClient:i}}},10642:(e,t,r)=>{"use strict";r.d(t,{LoginForm:()=>c});var s=r(69621),i=r(64650),n=r(78929),a=r(97287),o=r(20642),l=r(58488);function c(e){let{tenantName:t,photoUrl:r}=e,c=(0,a.kj)(),[u,d]=n.useState(""),[m,h]=n.useState(""),[p,v]=n.useState(!1),[w,f]=n.useState(!1);async function x(e){e.preventDefault(),f(!0),v(!1);let t=await fetch("/api/login",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:u,password:m})});f(!1),t.ok?(await (0,i.x_)(),window.location.assign("/")):v(!0)}return(0,s.jsx)(o.ZpM,{className:"overflow-hidden p-0",children:(0,s.jsxs)(o.Wux,{className:"grid p-0 md:grid-cols-2",children:[(0,s.jsx)("form",{onSubmit:x,className:"p-6 md:p-8",children:(0,s.jsxs)(o.M_l,{children:[(0,s.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center",children:[(0,s.jsx)("h1",{className:"text-xl font-bold",children:t?c("login.title",{tenantName:t}):c("login.titlePlain")}),(0,s.jsx)("p",{className:"text-balance text-muted-foreground",children:c("login.subtitle")})]}),(0,s.jsxs)(o.D0$,{children:[(0,s.jsx)(o.dhY,{htmlFor:"email",children:c("login.email")}),(0,s.jsx)(o.pde,{id:"email",type:"email",placeholder:"[email protected]",autoComplete:"username",autoFocus:!0,required:!0,value:u,onChange:e=>d(e.currentTarget.value)})]}),(0,s.jsxs)(o.D0$,{children:[(0,s.jsx)(o.dhY,{htmlFor:"password",children:c("login.password")}),(0,s.jsx)(o.pde,{id:"password",type:"password",autoComplete:"current-password",required:!0,value:m,onChange:e=>h(e.currentTarget.value)})]}),p&&(0,s.jsx)(o.bgj,{children:c("login.error")}),(0,s.jsx)(o.D0$,{children:(0,s.jsxs)(o.$nd,{type:"submit",isDisabled:w,className:"w-full",children:[w&&(0,s.jsx)(l.In,{icon:l.Ze.spinner,className:"animate-spin"}),c("login.submit")]})})]})}),(0,s.jsx)("div",{className:"relative hidden bg-muted md:block",children:r&&(0,s.jsx)("img",{src:r,alt:"",className:"absolute inset-0 h-full w-full object-cover"})})]})})}},28463:(e,t,r)=>{Promise.resolve().then(r.bind(r,10642))},64650:(e,t,r)=>{"use strict";r.d(t,{Fm:()=>u,N0:()=>a,lj:()=>n,x_:()=>c});var s=r(4843);let i="ivory-query-cache",n="v2",a=864e5;function o(e,t){return new Promise((e,t)=>{let r=indexedDB.open(i,1);r.onupgradeneeded=()=>r.result.createObjectStore("kv"),r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error)}).then(r=>new Promise((s,i)=>{let n=r.transaction("kv",e),a=t(n.objectStore("kv"));a.onsuccess=()=>s(a.result),a.onerror=()=>i(a.error),n.oncomplete=()=>r.close()}))}let l={getItem:e=>o("readonly",t=>t.get(e)).then(e=>null!=e?e:null),setItem:(e,t)=>o("readwrite",r=>r.put(t,e)).then(()=>void 0),removeItem:e=>o("readwrite",t=>t.delete(e)).then(()=>void 0)};function c(){return new Promise(e=>{let t=indexedDB.deleteDatabase(i);t.onsuccess=t.onerror=t.onblocked=()=>e()})}function u(){return(0,s.$)({storage:l,key:"ivory-rq",throttleTime:1e3})}},79780:(e,t,r)=>{"use strict";r.d(t,{Zq:()=>n,zs:()=>i});var s={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},i=new class{#e=s;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function n(e){setTimeout(e,0)}}},e=>{e.O(0,[4579,7917,642,7287,8488,1976,5785,7358],()=>e(e.s=28463)),_N_E=e.O()}]);
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.