react-iiif-vault 2.0.13 → 2.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,49 @@
1
+ import{c as fn,l as gn}from"./chunk-P7XHGETS.js";import{forwardRef as _r,useImperativeHandle as ru,useMemo as iu}from"react";import jr,{useContext as Kr,useMemo as Yr}from"react";import{jsx as Qr}from"react/jsx-runtime";var Gr={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},_e=jr.createContext(Gr),j=()=>Kr(_e);function ae({value:e,children:t}){let n=j(),o=Yr(()=>({...n,...e}),[e,n]);return Qr(_e.Provider,{value:o,children:t})}import{jsx as Xr}from"react/jsx-runtime";function ne({canvas:e,children:t}){return Xr(ae,{value:{canvas:e},children:t})}import Zr,{useState as Jr}from"react";import{Vault as hn,globalVault as ei}from"@iiif/helpers/vault";import{jsx as yn}from"react/jsx-runtime";var ue=Zr.createContext({vault:null,setVaultInstance:e=>{}});function he({vault:e,vaultOptions:t,useGlobal:n,resources:o,children:s}){let[i,r]=Jr(()=>e||(n?ei(t):t?new hn(t):new hn));return yn(ue.Provider,{value:{vault:i,setVaultInstance:r},children:yn(ae,{value:o||{},children:s})})}import{useContext as ri}from"react";import ii from"react";import{useContext as ti}from"react";var M=()=>{let{vault:e}=ti(ue);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};import{useEffect as ni,useState as oi}from"react";function k(e,t=[]){let n=M(),[o,s]=oi(()=>e(n.getState(),n));return ni(()=>n.subscribe(i=>e(i,n),i=>{s(i)},!1),t),o}var ye=ii.createContext([]);function je(){let e=ri(ye);return k(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}import{globalVault as ai}from"@iiif/helpers/vault";import{useContext as si}from"react";function ve(e){let t=si(ue);return e||(t&&t.vault?t.vault:ai())}import{useMemo as li}from"react";function O(e={},t=[]){let{id:n,selector:o}=e,s=j(),i=M(),r=n||s.manifest,a=k(l=>r?l.iiif.entities.Manifest[r]:void 0,[r]);return li(()=>{if(a)return o?o(a):a},[a,o,...t])}import{useContext as Vi}from"react";import{createContext as Ni,useMemo as Li}from"react";import{useEffect as ui,useMemo as ci,useState as Ct}from"react";function vn(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,o=ve(),[s,i]=Ct(n),[r,a]=Ct(void 0),l=ci(()=>o.get(n,{skipSelfReturn:!0})||void 0,[n,o]),[u,d]=Ct(l);return ui(()=>{(async()=>{try{let c=l&&!t?l:await o.load(n),m=c?c.id||c["@id"]:null;c&&s!==m&&i(m),d(c)}catch(c){a(c)}})()},[n,t]),{isLoaded:!!u,id:s,requestId:n,error:r,resource:u,cached:!!(u&&u===l)}}function Sn(e,t){let{id:n,isLoaded:o,error:s,resource:i,requestId:r,cached:a}=vn(e,t);return{id:n,isLoaded:o,error:s,manifest:i,requestId:r,cached:a}}import{jsx as di}from"react/jsx-runtime";function xn({manifest:e,children:t}){return di(ae,{value:{manifest:e},children:t})}import{jsx as mi}from"react/jsx-runtime";function bn({range:e,children:t}){return mi(ae,{value:{range:e},children:t})}function pi(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let o=pi(e,e.get(n));if(o)return o}}return null}function Rt(e,t){let n=[];for(let o of t.items)if(o.type==="SpecificResource"&&o.source?.type==="Canvas"&&(o.source.id.indexOf("#")!==-1?n.push({id:o.source.id.split("#")[0],type:"Canvas"}):n.push(o.source)),o.type==="Range"&&n.push(...Rt(e,e.get(o))),o.type==="SpecificResource"){let s=typeof o.source=="string"?o.source:o.source.id;n.push({id:s,type:"Canvas"})}return n}function rc(e,t,n){for(let o of t.structures){let s=Cn(e,e.get(o),n);if(s)return s}return null}function Cn(e,t,n){for(let o of t.items){let s=o?.source?.id?.split("#")[0];if(o.type==="SpecificResource"&&o.source===n||o.type==="SpecificResource"&&o.source?.type==="Canvas"&&n===s)return t;if(o.type==="Range"){let i=Cn(e,e.get(o),n);if(i)return i}}return null}function sc(e,t,n,o=!1){let s=t.behavior,i=n?e.get(n):null;if(!i)return[];let r=i.behavior,a=o?!1:s.includes("paged"),l=a?!1:s.includes("continuous"),u=a||l?!1:s.includes("individuals"),d=r.includes("facing-pages"),c=r.includes("non-paged");if(d||c||u||o)return[{id:i.id,type:"Canvas"}];let[m,p]=At(e,t);if(l)return m;let g=m.findIndex(h=>h.id===n);if(g===-1)return[];for(let h of p)if(h.includes(g))return h.map(S=>m[S]);return[{id:i.id,type:"Canvas"}]}function At(e,t,{disablePaging:n,skipNonPaged:o}={}){let s=t.behavior,i=s.includes("paged"),r=i?!1:s.includes("continuous"),a=i||r?!1:s.includes("individuals"),l=t.type==="Manifest"?t.items:Rt(e,t);if(r)return[l,[l.map((g,h)=>h)]];if(a||!i||n)return[l,l.map((g,h)=>[h])];let u=[],d=[],c=()=>{d.length&&(u.push([...d]),d=[])},m=0,p=!1;for(let g=0;g<l.length;g++){let h=e.get(l[g]);if(h.behavior.includes("non-paged")){g===m&&m++,o||(c(),u.push([g]),c());continue}if(g===m||h.behavior.includes("facing-pages")){d.length&&(p=!0),c(),u.push([g]),c();continue}if(d.push(g),p){c(),p=!1;continue}d.length>1&&c()}return d.length&&c(),[l,u]}import{useCallback as Ke,useMemo as gi,useRef as hi,useState as yi}from"react";import{useMemo as fi}from"react";function Rn(e={},t=[]){let{id:n,selector:o}=e,s=j(),i=n||s.range,r=k(a=>i?a.iiif.entities.Range[i]:void 0,[i]);return fi(()=>{if(r)return o?o(r):r},[r,o,...t])}function An({startCanvas:e,disablePaging:t}){let n=M(),o=O(),s=Rn(),[i,r]=yi(void 0),a=s||o;if(!a)throw new Error("Nothing selected");let[l,u]=gi(()=>At(n,a,{disablePaging:t}),[n,a,t]),d=hi(u);if(d.current!==u){let S=d.current[i][0],v=u.findIndex(f=>f.includes(S));d.current=u,r(v)}let c=Ke(h=>{let S=u.findIndex(v=>v.includes(h));r(S===-1?0:S)},[l,u]),m=Ke(h=>{let S=l.findIndex(v=>v.id===h);S!==-1?c(S):r(0)},[l,u]),p=Ke(()=>{r(h=>h>=u.length-1?h:h+1)},[u]),g=Ke(()=>{r(h=>h<=0?0:h-1)},[u]);return typeof i>"u"&&(e?m(e):r(0)),{visibleItems:u[i]?.map(h=>l[h].id)||[],cursor:i,items:l,sequence:u,hasPrevious:i>0,hasNext:i<u.length-1,setSequenceIndex:r,setCanvasIndex:c,setCanvasId:m,next:p,previous:g}}import{createContext as Tt,useContext as zn,useEffect as Si,useMemo as xi}from"react";import{useStore as Ve}from"zustand";import{createStore as wn}from"zustand/vanilla";function xc(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function K(e,t,n){let o=t.findIndex(r=>r.service.id===e);if(o===-1)return t;let s=[...t],i=n(s[o]);return i===s[o]?t:(s[o]=i,s)}var Tn=()=>wn((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let o=n.service.service.find(s=>s.type==="AuthAccessTokenService2");if(!o)throw new Error("Token service not found");e(()=>({authItems:K(n.id,t().authItems,s=>({...s,isPending:!0}))})),Pn(n.service).then(()=>{Pt(o).then(s=>{let i=s.expiresIn,r=Date.now()+i*1e3;e(()=>({authItems:K(n.id,t().authItems,a=>({...a,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:r}}))}))}).catch(s=>{e(()=>({authItems:K(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let o=n.service.service.find(r=>r.type==="AuthLogoutService2");if(!o)return;let s=`${o.id}?origin=${kn()}`,i=window.open(s);e(()=>({authItems:K(n.id,t().authItems,r=>({...r,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,o=t().currentAuth+1;o>=n||e(()=>({currentAuth:o}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,o)=>{if(!n.service)return;let s=n.service.find(a=>a.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(a=>a.service.id===n.id)){e(()=>({authItems:K(n.id,t().authItems,a=>({...a,instances:a.instances+1}))}));return}if(e(()=>({currentAuth:i.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:o,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!s)throw new Error("Token service not found");Pt(s).then(a=>{e(()=>({authItems:K(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:K(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:a.message}))}))})}if(n.profile==="kiosk"){if(!s)throw new Error("Token service not found");e(()=>({authItems:K(n.id,t().authItems,a=>({...a,isPending:!0}))})),Pn(i).then(()=>{Pt(s).then(a=>{e(()=>({authItems:K(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:K(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:a.message}))}))})})}n.profile},removeService:(n,o)=>{let s=t().currentAuth===t().authItems.findIndex(r=>r.service.id===n.id),i=t().currentAuth;if(s){let r=t().authItems.find(l=>l.service.id===n.id);r&&r.instances>1||(i=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:K(n.id,t().authItems,r=>({...r,instances:r.instances-1})),currentAuth:i}))}})),In=(e,t)=>wn((n,o)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!o().service)return;let s=o().service?.id;if(!s){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=o().token;try{let r=await fetch(s,{headers:i?{Authorization:`Bearer ${o().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(a=>a.json());if(r.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(r.status<400&&r.status>=300){if(!r.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:r.location||null})}else if(r.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!r.substitute,substituteResource:r.substitute||null,error:"Unauthorized",errorHeading:r.heading||{en:["Unauthorized"]},errorNote:r.note||null});else throw new Error("Unknown error")}catch(r){n({status:"error",error:r.message,errorHeading:{en:["Unknown error"]}})}},setToken(s){n({token:s})}}));function Mn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let o of t)if(o.type==="AuthProbeService2"){n.services.probe=o,n.hasAuth=!0;let s=o.service.filter(i=>i.type==="AuthAccessService2");s[0]&&(n.services.access=s[0])}return n}async function Pt(e,{strict:t=!0}={}){return new Promise((n,o)=>{let s=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${s}&origin=${window.location.origin}`,r=u=>{let d=u.data;if(d.messageId===s){if(t&&d.type!=="AuthAccessToken2"){a(),o("Invalid response, expected type=AuthAccessToken2");return}if(!d.accessToken){a(),o("Invalid response, expected accessToken");return}a(),n(d)}},a=()=>window.removeEventListener("message",r),l=document.createElement("iframe");l.src=i,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",r)})}function kn(e){let t=window.location;if(e){let n=document.createElement("a");return n.href=e,n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function Pn(e){let t=`${e.id}?origin=${kn()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((o,s)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),o())},500)})}import{useEffect as En,useMemo as Vn}from"react";import{useStore as vi}from"zustand";function Nn(e){let t=Vn(()=>Mn(e),[e]),n=Ln(t.services.access?.id),o=Vn(()=>In(t.services.probe,n),[t.services.probe]),s=vi(o);return En(()=>{s.status==="unknown"&&!n&&s.probe()},[t.services.probe,s.status]),En(()=>{n&&(s.setToken(n),s.probe())},[n]),[e,s,t.hasAuth]}import{jsx as Ye}from"react/jsx-runtime";var Se=Tt(null),bi=Tt(null);bi.displayName="CurrentAuth";var Ci=Tt(null);Ci.displayName="AuthActions";function On({children:e}){let t=xi(()=>Tn(),[]);return Ye(Se.Provider,{value:t,children:e})}function Bn(){return!!zn(Se)}function Ne(){let e=zn(Se);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ri(){let e=Ne();return Ve(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function Hc(){let e=Ne();return Ve(e,t=>t)}function Ai(e){let t=Ne();return Ve(t,o=>o.authItems.find(s=>s.service.id===e))}function Ln(e){let t=Ne();return Ve(t,o=>o.authItems.find(s=>s.id===e)?.session?.token)}function Dc(e){let t=Ne();return Ve(t,o=>{let s=o.authItems.find(i=>i.service.id===e);return!s||!s.isLoggedIn||!s.session?null:s.session?.token||null})}function Pi(e){let t=Ri(),n=Ai(e.service.id);return Si(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function wt(){return null}function Hn(e){let[t,n,o]=Nn(e.resource),s=e.fallbackComponent||wt,i=e.loadingComponent||wt,r=e.errorComponent||wt,a=n.service,l=null;if(!o||!a)return e.children(t);let u=a.service.filter(d=>d.type==="AuthAccessService2");n.status==="error"&&(l=Ye(r,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=Ye(i,{})),n.status==="success"&&(l=e.children(t));for(let d of u)l=Ye(Pi,{service:d,probeId:a.id,children:l},d.id);return l}import{createContext as Mi,useContext as Yc,useMemo as ki}from"react";import{createStore as wi}from"zustand/vanilla";var Ti=e=>e.id||e["@id"];function Ii(e){return(Array.isArray(e.service)?e.service:[e.service]).find(n=>n.profile==="http://iiif.io/api/search/0/autocomplete"||n.profile==="http://iiif.io/api/search/1/autocomplete"||n.profile==="AutoCompleteService1")}var Dn=e=>{let t;typeof e=="string"?t={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:t=e;let n=t?Ti(t):void 0,o=null;return wi((s,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ii(t):!1,errorMessage:"",search(r,a={}){if(!n)throw new Error("No search service found.");o&&!o.signal.aborted&&o.abort(),o=new AbortController;let l=new URLSearchParams;r.q&&l.set("q",r.q),r.motivation&&l.set("motivation",r.motivation),r.date&&l.set("date",r.date),r.user&&l.set("user",r.user),s({loading:!0}),fetch(`${n}?${l.toString()}`,{signal:o.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...a.headers||{}}}).then(async u=>{if(!o?.signal.aborted)if(u.ok){let d=await u.json();s({resources:d.resources,error:!1,errorMessage:""})}else s({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){s({resources:[],error:!1,errorMessage:""})},highlightResult(r){let a=i().resources.find(l=>l["@id"]===r);s({highlight:a})},nextResult(){let r=i().resources,a=i().highlight;if(!a){s({highlight:r[0]||null});return}let l=r.findIndex(u=>u["@id"]===a["@id"]);if(l===-1){s({highlight:r[0]||null});return}s({highlight:r[l+1]||r[0]||null})},previousResult(){let r=i().resources,a=i().highlight;if(!a){s({highlight:r[r.length-1]||null});return}let l=r.findIndex(u=>u["@id"]===a["@id"]);if(l===-1){s({highlight:r[r.length-1]||null});return}if(l===0){s({highlight:r[r.length-1]||null});return}s({highlight:r[l-1]||r[r.length-1]||null})}}))};import{useStore as Jc}from"zustand";function qn(){let e=O();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}import{jsx as It}from"react/jsx-runtime";var xe=Mi(null);xe.displayName="Search";function Fn(e){let t=qn();return e.store?It(xe.Provider,{value:e.store,children:e.children}):It(Ei,{service:t,children:e.children})}function Ei({service:e,children:t}){let n=ki(()=>Dn(e),[e]);return It(xe.Provider,{value:n,children:t})}import{jsx as W}from"react/jsx-runtime";var Le=()=>{},ze=Ni({setCurrentCanvasId:Le,setCurrentCanvasIndex:Le,nextCanvas:Le,previousCanvas:Le,items:[],sequence:[],setSequenceIndex:Le,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function zi(e){let t=O(),{cursor:n,visibleItems:o,next:s,sequence:i,items:r,setCanvasIndex:a,setCanvasId:l,previous:u,setSequenceIndex:d,hasNext:c,hasPrevious:m}=An({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),p=Li(()=>({sequence:i,items:r,setCurrentCanvasId:l,nextCanvas:s,previousCanvas:u,totalCanvases:r.length,setCurrentCanvasIndex:a,setSequenceIndex:d,currentSequenceIndex:n,hasNext:c,hasPrevious:m}),[i,r,l,s,u,r,a,d,n]);return t?o.length===0?null:W(ze.Provider,{value:p,children:W(ye.Provider,{value:o,children:W(ne,{canvas:o[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),W("div",{children:"Sorry, something went wrong."}))}function $n(e){let t=ve(e.vault),n=Sn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),W("div",{children:"Sorry, something went wrong."});if(n.error)return W("div",{children:n.error.toString()});if(!n.isLoaded)return W("div",{children:"Loading..."});let o=W(zi,{...e,children:e.children});return W(he,{vault:t,children:W(xn,{manifest:n.id,children:W(On,{children:W(Fn,{children:e.rangeId?W(bn,{range:e.rangeId,children:o}):o})})})})}function Ge(){return Vi(ze)}import{ModeContext as _i}from"@atlas-viewer/atlas";import{createContext as ji,useContext as Gn,useEffect as Ki,useMemo as Yi}from"react";import{useStore as Gi}from"zustand";import Oi from"mitt";import{createContext as Bi,useContext as Wn,useEffect as Hi}from"react";import{jsx as qi}from"react/jsx-runtime";var Di=Oi(),Mt=Bi(Di);function Td({children:e,emitter:t}){return qi(Mt.Provider,{value:t,children:e})}function Un(){return Wn(Mt)}function _n(e,t,n=[]){let o=Wn(Mt);Hi(()=>{let s=i=>{t(i)};return o.on(e,s),()=>{o.off(e,s)}},[o,e,...n])}import{createHelper as $i}from"polygon-editor";import{createStore as Wi}from"zustand/vanilla";function kt(e){let t=Math.max(...e.map(i=>i[0])),n=Math.min(...e.map(i=>i[0])),o=Math.max(...e.map(i=>i[1])),s=Math.min(...e.map(i=>i[1]));for(let i of e)if(i[0]!==n&&i[0]!==t&&i[1]!==s&&i[1]!==o||i[0]<n||i[0]>t||i[1]<s||i[1]>o)return!1;return!0}function be(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(i=>i[0])),n=Math.min(...e.points.map(i=>i[1])),o=Math.max(0,...e.points.map(i=>i[0])),s=Math.max(0,...e.points.map(i=>i[1]));return{x:t,y:n,width:o-t,height:s-n}}return null}function Fi(e){return e.type==="SvgSelector"}function Vd(e){return e.type==="BoxSelector"}function Et(e,t){if(Fi(e)){let r=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:a,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${a} ${l}" width="${a}" height="${l}"><${r?"polygon":"polyline"} points="${e.points.map(d=>d.join(",")).join(" ")}" /></svg>`}}return{type:"SvgSelector",value:`<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g><path d='M${e.points.map(a=>a.join(",")).join(" ")}${r?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:n,y:o,width:s,height:i}=e.spatial||{};return!s||!i?null:{type:"FragmentSelector",value:`xywh=${~~n},${~~o},${~~s},${~~i}`}}function Vt(e,t){if(!e||!e.points.length)return null;if(kt(e.points)){let n=e.points.map(l=>l[0]),o=e.points.map(l=>l[1]),s=Math.min(...n),i=Math.min(...o),r=Math.max(...n)-s,a=Math.max(...o)-i;return Et({type:"BoxSelector",spatial:{x:s,y:i,width:r,height:a}},t)}return Et({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function jn(e){if(e.type==="polygon"&&!e.noBox&&e.points&&kt(e.points)){let n=be({open:!1,points:e.points||[]});return jn({...e,type:"box",selector:n})}if(e.type==="polygon"||e.type==="draw")return{polygon:{points:e.points||[],open:e.open||!1},requestType:e.type,boundingBox:be({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Vt({points:e.points||[],open:!1},e.bounds)};let t=e.selector;if(t){let n=[[t.x,t.y],[t.x+t.width,t.y],[t.x+t.width,t.y+t.height],[t.x,t.y+t.height]];return{polygon:{points:n,open:!1},requestType:e.type,boundingBox:t,metadata:{},target:Vt({points:n,open:!1},e.bounds),arguments:e.arguments||{}}}return{polygon:{points:[],open:!1},requestType:e.type,boundingBox:null,target:null,metadata:{},arguments:e.arguments||{}}}var Ui={shapeId:null,noShape:!0,transitioning:!1,actionIntentType:null,transitionIntentType:null,selectedPoints:[],hasClosestLine:!1,lastCreationTool:null,modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:0},bounds:null,showBoundingBox:!1,currentModifiers:{},validIntentKeys:{},pointerInsideShape:!1,closestPoint:null,transitionModifiers:null,selectedStamp:null,bezierLines:[],boxMode:!1,fixedAspectRatio:!1,cursor:"",enabledTools:["pointer","pen","box","lineBox","stamp","hand","line","pencil"],canDelete:!0,canDeselect:!0,isToolSwitchingLocked:!1,currentTool:"box",snapEnabled:!1,snapToPoints:!1,snapToLines:!1,snapToIntersections:!1,snapToGrid:!1,snapToParallel:!1};function Kn({events:e,enabledTools:t,keyboardShortcutMapping:n,keyboardShortcutsEnabled:o=!1,debug:s}){let i=Wi((a,l)=>{let u=null,c=$i({emitter:e,keyboardShortcutsEnabled:o,keyboardShortcutMapping:n,enabledTools:t,customSetState:m=>{s&&console.log("partial state",m),a(p=>({polygonState:{...p.polygonState,...m}}))}},m=>{a(p=>p.tool.requestId?{polygon:{...m,id:p.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",m)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},runtime:null,requestType:null,requests:{},history:c.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:c,polygonState:Ui,setMetadata:(m,p)=>{let g=p||l().tool.requestId;g&&a(h=>({metadata:{...h.metadata,[g]:{...h.metadata[g]||{},...m}}}))},setToolCanvasId:m=>{a(p=>({tool:{...p.tool,canvasId:m}}))},switchTool:{pointer(){a({mode:"sketch"}),r.tools.setTool("pointer")},hand(){a({mode:"explore"}),r.tools.setTool("hand")},draw(){a({mode:"sketch"}),r.tools.setTool("pencil")},pen(){a({mode:"sketch"}),r.tools.setTool("pen")},line(){a({mode:"sketch"}),r.tools.setTool("line")},lineBox(){a({mode:"sketch"}),r.tools.setTool("lineBox")},box(){a({mode:"sketch"}),r.tools.setTool("box")},triangle(){a({mode:"sketch"}),r.tools.setTool("stamp"),r.stamps.triangle()},hexagon(){a({mode:"sketch"}),r.tools.setTool("stamp"),r.stamps.hexagon()},circle(){a({mode:"sketch"}),r.tools.setTool("stamp"),r.stamps.circle()},remove(){let m=l();m.tool.requestId&&(c.setShape({points:[],open:!0}),m.cancelRequest(m.tool.requestId))}},reset:()=>{let m=l();m.tool.requestId&&m.cancelRequest(m.tool.requestId)},setPolygonState:m=>a({polygonState:typeof m=="function"?m(l().polygonState):m}),getRequestId:()=>{let m=Math.random().toString(36).slice(2);return a(p=>({validRequestIds:[...p.validRequestIds,m]})),{requestId:m,clear:()=>{l().tool.requestId,a(p=>({tool:p.tool.requestId===m?{enabled:!1,requestId:null,canvasId:null}:p.tool,validRequestIds:p.validRequestIds.filter(g=>g!==m)}))}}},cancelRequest:m=>{let p=m||l().tool.requestId;p&&(a(g=>({mode:"explore",tool:g.tool.requestId===p?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(h=>h!==p)})),e.emit("atlas.request-cancelled",{id:p}))},requestAnnotation:async(m,p)=>{let h={...l().requests,[p.requestId]:m},S=jn(m);s&&console.log("requestAnnotation",{response:S,request:m});try{let{points:v=[],open:f=!0}=S.polygon||{},{requestId:y,canvasId:x=null,toolId:b}=p,C=b,R=l(),A=R.validRequestIds.includes(y),N=S.requestType;return s&&console.log("setting points",{requestType:N,points:v,open:f}),!A||R.tool.enabled?null:(c.setShape({id:y,points:v,open:f}),N==="polygon"&&(C=C||"pen",c.tools.setTool("pen")),N==="draw"&&(C=C||"draw",c.tools.setTool("pencil")),N==="box"&&(C=C||"box",c.tools.setTool("box")),N==="target"?(C=C||"box",c.tools.setTool("box"),c.lockAspectRatio(),c.tools.lockToolSwitching(),c.tools.setCanDeselect(!1),c.tools.setCanDelete(!1)):(c.tools.unlockToolSwitching(),c.tools.setCanDeselect(!0),c.tools.setCanDelete(!0)),m.bounds&&c.setBounds(m.bounds),e.emit("atlas.annotation-request",{id:y}),a({polygon:{id:y,points:v,open:f},mode:"sketch",requestType:N,tool:{enabled:!0,requestId:y,canvasId:x},requests:h}),C?R.switchTool[C]?.():v.length===0&&R.switchTool.box(),(typeof m.selectByDefault>"u"&&v.length&&N==="box"||m.selectByDefault)&&R.switchTool.pointer(),new Promise(X=>{let T=_=>{_.id===y&&(a(P=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(P.requests).filter(([I])=>I!==y))})),e.off("atlas.request-cancelled",T),e.off("atlas.annotation-completed",z),X(null))},z=_=>{_.id===y&&(a(P=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(P.requests).filter(([I])=>I!==y))})),e.off("atlas.annotation-completed",z),e.off("atlas.request-cancelled",T),X(_))};e.on("atlas.request-cancelled",T),e.on("atlas.annotation-completed",z)}))}catch(v){return console.error(v),null}},completeRequest:m=>{let p=l().tool.requestId;if(typeof m=="string"&&m&&m!==p)return;let g=p?l().requests[p]?.arguments||{}:{},h=p?l().metadata[p]||{}:{},S=l().polygonState.bounds,v=l().polygon;v&&(e.emit("atlas.annotation-completed",{id:v.id,polygon:v,requestType:l().requestType,target:Vt(v,S),canvasId:l().tool.canvasId,boundingBox:be(v),metadata:h,arguments:{...g}}),c.setShape(null))},setAtlasRuntime:m=>{u=m,e.emit("atlas.ready",{runtime:m}),r.setScale(1/u._lastGoodScale),u.world.addLayoutSubscriber((p,g)=>{(p==="event-activation"||p==="zoom-to"||p==="go-home")&&u?._lastGoodScale&&!Number.isNaN(u._lastGoodScale)&&r.setScale(1/u._lastGoodScale)}),a({runtime:u})},clearAtlasRuntime:()=>{u=null,a({stableViewport:null,runtime:null})},setCanvasRelativePosition:(m,p)=>{a(g=>({canvasRelativePositions:{...g.canvasRelativePositions,[m]:p}}))},clearCanvasRelativePosition:m=>{a(p=>{let g={...p.canvasRelativePositions};return delete g[m],{canvasRelativePositions:g}})},changeMode:m=>{a({mode:m})},nudgeLeft:m=>{if(!u)return;let p=u.getViewport(),g=m??p.width*.1;u.world.gotoRegion({x:p.x-g,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeRight:m=>{if(!u)return;let p=u.getViewport(),g=m??p.width*.1;u.world.gotoRegion({x:p.x+g,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeUp:m=>{if(!u)return;let p=u.getViewport(),g=m??p.height*.1;u.world.gotoRegion({x:p.x,y:p.y-g,width:p.width,height:p.height,nudge:!0})},nudgeDown:m=>{if(!u)return;let p=u.getViewport(),g=m??p.height*.1;u.world.gotoRegion({x:p.x,y:p.y+g,width:p.width,height:p.height,nudge:!0})},zoomIn:()=>{u?.world?.zoomIn()},zoomOut:()=>{u?.world?.zoomOut()},goHome:()=>{u?.world?.goHome()},goToRegion:m=>{u?.world?.gotoRegion(m)},getRuntime:()=>u}}),r=i.getState().polygons;return e.on("atlas.annotation-request",()=>{r.clock.start((a,l,u)=>{e.emit("atlas.polygon-render",{state:a,slowState:l,dt:u})},a=>{typeof a=="object"?i.setState({polygonState:a}):i.setState(l=>({polygonState:a(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{r.clock.stop()}),e.on("atlas.request-cancelled",()=>{r.clock.stop()}),i}import{jsx as Yn}from"react/jsx-runtime";var Ce=ji(null);function D(){return Gn(Ce)}var Nt={};function Qn(e="atlas"){return Nt[e]?.getState()}function Oe({children:e,name:t="atlas",existing:n,atlasStoreConfig:o}){let s=Un(),i=Gn(Ce),r=Yi(()=>n||i||Kn({events:s,...o||{}}),[s,n,i]),a=Gi(r,l=>l.mode);return Ki(()=>{let l=t;return l&&(Nt[l]=r),()=>{l&&delete Nt[l]}},[r,t]),Yn(Ce.Provider,{value:r,children:Yn(_i.Provider,{value:a||"explore",children:e})})}import{mergeStyles as Ze}from"@atlas-viewer/atlas";import{useMemo as fa}from"react";import{createContext as Qi,useContext as Xi,useMemo as Zi}from"react";import{jsx as Ji}from"react/jsx-runtime";function Xn(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var Lt=Qi(Xn());Lt.displayName="AnnotationStyle";function Zn(){return Xi(Lt)}function Gd({theme:e,children:t}){let n=Zi(()=>e||Xn(),[e]);return Ji(Lt.Provider,{value:n,children:t})}import{expandTarget as ia}from"@iiif/helpers/annotation-targets";import{useMemo as aa}from"react";import{useEffect as ea,useMemo as ta,useState as na}from"react";import{create as oa}from"zustand";var ra=oa()((e,t)=>{let n=new Map,o=()=>Math.random().toString(36).substring(2,15),s=i=>{let r=n.get(i);if(r)return r;let a=o();return n.set(i,a),a};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(i){let{loadStylesheet:r,setStylesheet:a}=t();if(!i)return null;if(typeof i=="string")return i.startsWith("http")?{id:i,type:"CssStylesheet",value:await r(i)}:{id:a(i),type:"CssStylesheet",value:i};if(i.type==="CssStylesheet"){let l=i.id;if("value"in i){let u=Array.isArray(i.value)?i.value.join(`
2
+ `):i.value;if(u)return{id:a(u,l),type:"CssStylesheet",value:u}}if("id"in i&&i.id){let u=await r(i.id);return{id:i.id,type:"CssStylesheet",value:u}}}return null},async loadStylesheet(i){if(t().loading.includes(i))return"";try{let a=await fetch(i);if(!a.ok)throw new Error(`Failed to load stylesheet from ${i}`);let l=await a.text();return e(u=>({stylesheets:{...u.stylesheets,[i]:l}})),l}catch(a){return e(l=>({errors:[...l.errors,{url:i,error:a}]})),""}},setStylesheet(i,r){let a=r||s(i);return e(l=>({stylesheets:{...l.stylesheets,[a]:i}})),a}}});function Jn(e){let[t,n]=na(""),{loading:o,errors:s,stylesheets:i,parseStylesheet:r}=ra();return ea(()=>{e&&r(e).then(l=>{l?.id&&n(l.id)})},[e,r]),[ta(()=>{let l={};return t&&i[t]&&(l[t]=i[t]),l},[t,i]),{id:t,stylesheets:i,loading:o,errors:s}]}function Qe(e={},t=[]){let{id:n,selector:o}=e,s=j(),i=M(),r=n||s.annotation,a=k(d=>r?d.iiif.entities.Annotation[r]:void 0,[r]),[l]=Jn(a?.stylesheet),u=k(d=>a&&a.body?a.body.map(c=>c?c.type==="SpecificResource"?{...c,source:i.get(c)}:c?d.iiif.entities[c.type][c.id]:null:null).filter(Boolean):[],[a]);return aa(()=>{if(!a)return;let d={...a,body:u,target:ia(a.target,{typeMap:i.getState().iiif.mapping,loadedStylesheets:l})};return o?o(d):d},[a,o,u,l,...t])}import{useMemo as sa}from"react";function w(e={},t=[]){let{id:n,selector:o}=e,s=j(),i=n||s.canvas,r=k(a=>i?a.iiif.entities.Canvas[i]:void 0,[i]);return sa(()=>{if(r)return o?o(r):r},[r,o,...t])}import{useMemo as eo}from"react";import{createEventsHelper as la}from"@iiif/helpers/events";function Xe(e,t){let n=M(),o=eo(()=>la(n),[n]),s=k(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return eo(()=>e?o.getListenersAsProps(e,t):{},[s,e,n,t])}import{useMemo as ua}from"react";import{createStylesHelper as ca}from"@iiif/helpers/styles";function Re(e,t){let n=M(),o=ua(()=>ca(n),[n]);return k(()=>{if(!e)return null;let s=o.getAppliedStyles(e.id);return s?t?s[t]:s:void 0},[e,t])}import{useCallback as pa}from"react";import{HTMLPortal as da,useResizeWorldItem as ma}from"@atlas-viewer/atlas";import{useMemo as oe}from"react";import{Fragment as zt,jsx as Y,jsxs as Ot}from"react/jsx-runtime";function to({handleSize:e,resizable:t,onSave:n,children:o,maintainAspectRatio:s,disableCardinalControls:i,aspectRatio:r,...a}){let l=typeof e>"u"?s?12:8:e,{portalRef:u,mode:d,mouseEvent:c,isEditing:m}=ma({x:a.x||0,y:a.y||0,width:a.width,height:a.height,aspectRatio:r,maintainAspectRatio:s},n),p=oe(()=>c("translate"),[c]),g=oe(()=>c("east"),[c]),h=oe(()=>c("west"),[c]),S=oe(()=>c("south"),[c]),v=oe(()=>c("north"),[c]),f=oe(()=>c("south-east"),[c]),y=oe(()=>c("south-west"),[c]),x=oe(()=>c("north-east"),[c]),b=oe(()=>c("north-west"),[c]),C=d==="sketch",R={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:s||i?"50%":2,position:"absolute",background:"#fff",pointerEvents:m?"none":C?"initial":"none"};return Y(zt,{children:Ot("world-object",{...a,children:[o,C&&t?Y(da,{ref:u,target:{x:0,y:0,height:a.height,width:a.width},relative:!0,interactive:!1,children:C&&t?Ot(zt,{children:[Y("div",{onMouseDown:p,onTouchStart:p,style:{display:"block",width:"100%",height:"100%",cursor:"move",border:"1px solid rgba(255,255,255, .7)",outline:"2px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:m?"none":C?"initial":"none"}}),s?null:Ot(zt,{children:[Y("div",{title:"east",onTouchStart:g,onMouseDown:g,style:{...R,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:i?0:1,transform:`translate(${l/2}px, -${l}px)`}}),Y("div",{title:"west",onMouseDown:h,style:{...R,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:i?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),Y("div",{title:"north",onMouseDown:v,style:{...R,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:i?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),Y("div",{title:"south",onMouseDown:S,style:{...R,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:i?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),Y("div",{title:"north-east",onMouseDown:x,style:{...R,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),Y("div",{title:"south-east",onMouseDown:f,style:{...R,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),Y("div",{title:"south-west",onMouseDown:y,style:{...R,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),Y("div",{title:"north-west",onMouseDown:b,style:{...R,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}import{jsx as no}from"react/jsx-runtime";function oo({id:e,interactive:t,region:n,onClick:o,onHover:s,onSave:i,aspectRatio:r,maintainAspectRatio:a,disableCardinalControls:l,isEditing:u,style:d={backgroundColor:"rgba(0,0,0,.5)"}}){let c=pa(m=>{u&&i?.({id:n.id,x:n.x,y:n.y,height:n.height,width:n.width,...m})},[i,u,n.id,n.x,n.y,n.height,n.width]);return no(to,{id:e,x:n.x,y:n.y,width:n.width,aspectRatio:r,height:n.height,resizable:u,onSave:c,maintainAspectRatio:a,disableCardinalControls:l,children:no("box",{interactive:t,onClick:m=>{m.preventDefault(),m.stopPropagation(),o?.(n)},relativeStyle:!0,onMouseEnter:()=>{s?.(n)},target:{x:0,y:0,width:n.width,height:n.height},style:d})})}import{jsx as ga}from"react/jsx-runtime";var Ae=({id:e,style:t,className:n,interactive:o,targetId:s,ignoreTargetId:i})=>{let r=Qe({id:e}),a=Re(r,"atlas"),l=Re(r,"html"),u=Xe(r,["atlas"]),d=w(),c=Zn(),m=fa(()=>Ze(Ze(Ze(Ze(t,a),r?.motivation?.includes("highlighting")?c.highlighted:c.default),r?.target?.selector?.boxStyle||{})),[t,a,c,r?.motivation,r?.target]),p=s||d?.id;return d&&r&&r.target&&r.target.selector&&(r.target.selector.type==="BoxSelector"||r.target.selector.type==="SvgSelector")&&r.target.source&&(i?!0:r.target.source.id===p||r.target.source===p)?ga(oo,{id:r.id,isEditing:!0,region:r.target.selector.spatial,style:m,className:l?.className||n,interactive:!!(l?.href||o),href:l?.href||null,title:l?.title||null,hrefTarget:l?.target||null,onClick:()=>{},...u}):null};import{Fragment as ya}from"react";import{useMemo as ha}from"react";function ro(e={},t=[]){let{id:n,selector:o}=e,s=j(),i=n||s.annotationPage,r=k(a=>i?a.iiif.entities.AnnotationPage[i]:void 0,[i]);return ha(()=>{if(r)return o?o(r):r},[r,...t])}import{jsx as io}from"react/jsx-runtime";var ce=({className:e,page:t,targetId:n,ignoreTargetId:o})=>{let s=ro({id:t.id})||t,i=Re(s,"atlas"),r=Re(s,"html");return k(a=>s.id?a.iiif.entities.AnnotationPage[s.id]:null,[]),io(ya,{children:s.items?.map(a=>io(Ae,{id:a.id,style:i,className:r?.className||e,targetId:n,ignoreTargetId:o},a.id))})};import{createContext as Ht,useContext as Dt}from"react";import{jsx as Bt}from"react/jsx-runtime";var ao=Ht(null),so=Ht(null),lo=Ht(null);function Jm(){let e=Dt(ao);if(!e)throw new Error("Ctx not found");return e}function ep(){let e=Dt(so);if(!e)throw new Error("Ctx not found");return e}function tp(){let e=Dt(lo);if(!e)throw new Error("Ctx not found");return e}function Je({actions:e,state:t,children:n,currentTime:o,progress:s,element:i}){return Bt(lo.Provider,{value:{currentTime:o,progress:s,element:i},children:Bt(so.Provider,{value:e,children:Bt(ao.Provider,{value:t,children:n})})})}import{useMemo as va}from"react";import{expandTarget as Sa}from"@iiif/helpers";function et(){let e=O(),t=w();return va(()=>{if(!e||!t||!e.start)return null;let n=Sa(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}import{useCallback as Z,useEffect as qt,useReducer as xa,useRef as tt}from"react";function uo(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function ba(e,t){switch(t.type){case"RESET":return t.state;case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function Ft(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Pe(e){let[t,n]=xa(ba,uo(e.duration));qt(()=>{n({type:"RESET",state:uo(e.duration)})},[e.duration]);let o=tt(null),s=tt(null),i=tt(null),r=tt(!1),a=Z(()=>{s.current&&o.current&&(s.current.innerHTML=Ft(o.current.currentTime),i.current&&(i.current.style.width=`${o.current.currentTime/e.duration*100}%`),r.current!==o.current.muted&&(r.current=o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=Z(()=>{o.current&&(n({type:"PLAY_REQUESTED"}),o.current.play().then(()=>{n({type:"PLAY"})}),a())},[a]),u=Z(()=>{o.current&&(o.current.duration>0&&o.current.paused?l():d())},[a]),d=Z(()=>{o.current&&(o.current.pause(),n({type:"PAUSE"}),a())},[a]),c=Z(()=>{o.current&&(o.current.muted=!o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),m=Z(()=>{o.current&&(o.current.muted=!0,n({type:"MUTE"}))},[]),p=Z(()=>{o.current&&(o.current.muted=!1,n({type:"UNMUTE"}))},[]),g=Z(v=>{o.current&&(o.current.muted=!1,o.current.volume=v/100,n({type:"SET_VOLUME",volume:v}))},[]),h=Z(v=>{o.current&&(o.current.currentTime=Math.max(0,Math.min(v*e.duration,e.duration)),a())},[]),S=Z(v=>{if(o.current){let f=typeof v=="function"?v(o.current.currentTime):v;o.current.currentTime=Math.max(0,Math.min(f,e.duration)),a()}},[]);return qt(()=>{let v=setInterval(()=>{a()},350);return()=>clearInterval(v)},[a,e.duration]),qt(()=>{let v=()=>{n({type:"FINISHED"})},f=o.current;return f?.addEventListener("ended",v),()=>f?.removeEventListener("ended",v)},[]),[{element:o,currentTime:s,progress:i},t,{play:l,pause:d,playPause:u,mute:m,unmute:p,toggleMute:c,setVolume:g,setDurationPercent:h,setTime:S}]}import{createContext as co,useContext as Ca,useEffect as Ra}from"react";var $t=co(()=>{}),Wt=co(()=>{});function H(e,t,n,o,s=[]){let i=Ca(e==="portal"?Wt:$t);Ra(()=>(e!=="none"&&i(t,n,o),()=>{i(t,null)}),[t,e,i,...s])}import{jsx as Aa,jsxs as Pa}from"react/jsx-runtime";function Ut({media:e,startTime:t,children:n}){let[{element:o,currentTime:s,progress:i},r,a]=Pe({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return Pa(Je,{state:r,actions:a,currentTime:s,progress:i,element:o,children:[Aa("audio",{ref:o,src:l}),n]},e.url)}function nt({media:e,mediaControlsDeps:t,audioCopmonent:n=Ut,children:o}){let s=et();return H("portal","audio",n,{media:e,startTime:s?s.startTime:null,children:o},[e,s,...t||[]]),null}import{createContext as wa,useContext as Ta}from"react";var de=wa(null);de.displayName="Strategy";function E(){let e=Ta(de);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{Fragment as Ia,jsx as _t,jsxs as Ma}from"react/jsx-runtime";function jt({model:e}){return Ma(Ia,{children:[_t("style",{children:`
3
+ .model-container {
4
+ position: absolute;
5
+ top: 0;
6
+ bottom: 0;
7
+ left: 0;
8
+ right: 0;
9
+ background: #000;
10
+ z-index: 13;
11
+ display: flex;
12
+ justify-content: center;
13
+ pointer-events: visible;
14
+ }
15
+ `}),_t("div",{className:"model-container",children:_t("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function ot({model:e,name:t}){return H("overlay",`model-${t}`,jt,{model:e},[e]),null}import{jsx as ka}from"react/jsx-runtime";function mo(){let{strategy:e}=E();return e.type!=="3d-model"?null:ka(ot,{model:e.model})}import{createContext as Ea,useContext as Va}from"react";var rt=Ea(null);rt.displayName="Controls";function q(){let e=Va(rt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{Fragment as Na,jsx as it,jsxs as La}from"react/jsx-runtime";function po(){let{strategy:e}=E(),{renderViewerControls:t,viewControlsDeps:n}=q(),o=w(),s=o?.accompanyingCanvas,i=o?.placeholderCanvas;return La(Na,{children:[e.type==="media"&&e.media.type==="Sound"&&s?it(ne,{canvas:s.id,children:it(me,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!s?it(ne,{canvas:i.id,children:it(me,{renderViewerControls:t,viewControlsDeps:n})}):null]})}import{createContext as Da,useContext as qa,useMemo as Fa}from"react";import{useCallback as go,useLayoutEffect as Oa,useMemo as Ba,useRef as Ha}from"react";import{entityActions as Kt}from"@iiif/helpers/vault/actions";import{useMemo as za}from"react";function fo(){let t=M().getStore();return za(()=>n=>t.dispatch(n),[t])}function ho(e){return typeof e!="string"&&e&&e.bindToVault}function yo(){let e=M(),t=Ha([]),n=fo(),o=Ba(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);Oa(()=>{let a={id:o,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Kt.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[o]);let s=k(a=>o&&a.iiif.entities.AnnotationPage[o]||null,[o]),i=go((a,l)=>{if(o){if(ho(a)){let c=a;c.__vault||c.bindToVault(e),a=typeof c.source=="string"?c.source:c.source.id,t.current[a]=c}else typeof a!="string"&&(a=a.id);let u=e.get({id:o,type:"AnnotationPage"}),d=e.get({id:a,type:"Annotation"});u&&d&&(u.items.find(c=>c.id===d.id)||n(Kt.addReference({id:o,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:l})))}},[o]),r=go(a=>{o&&(ho(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),t.current[a]&&t.current[a].beforeRemove(),e.get({id:o,type:"AnnotationPage"})&&n(Kt.removeReference({id:o,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[o]);return[s,{addAnnotation:i,removeAnnotation:r}]}import{jsx as $a}from"react/jsx-runtime";var vo=Da(null);function So(){let e=qa(vo);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function xo({children:e}){let[t,{addAnnotation:n,removeAnnotation:o}]=yo();return $a(vo.Provider,{value:Fa(()=>({fullPage:t,addAnnotation:n,removeAnnotation:o}),[t]),children:e})}import{Fragment as Wa,jsx as bo,jsxs as Ua}from"react/jsx-runtime";function Co({children:e}){let{strategy:t}=E(),[n]=So();return t.type!=="images"?null:Ua(Wa,{children:[n?bo(ce,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(o=>bo(ce,{page:o},o.id)):null,e]})}import{useEffect as Qa,useMemo as Xa,useRef as Za,useState as Ja}from"react";import{useEffect as _a}from"react";var Ro=(e,t=[])=>{let n=M();_a(()=>{e(n)},[n,...t])};import ja,{useContext as Ka}from"react";import{ImageServiceLoader as Ya}from"@iiif/helpers/image-service";var Ga=ja.createContext(new Ya);function Ao(){return Ka(Ga)}import{createThumbnailHelper as es}from"@iiif/helpers/thumbnail";function we(e,t,{canvasId:n,manifestId:o}={}){let s=M(),i=Ao(),r=Xa(()=>es(s,{imageServiceLoader:i}),[s,i]),[a,l]=Ja(),u=O(o?{id:o}:void 0),d=w(n?{id:n}:void 0),c=d||u,m=Za(!1);if(Qa(()=>(m.current=!1,()=>{m.current=!0}),[]),!c)throw new Error("Must be called under a manifest or canvas context.");return Ro(p=>{r.getBestThumbnailAtSize(c,e,t).then(g=>{g.best&&!m.current&&l(g.best)})},[c]),a}import{jsx as Po}from"react/jsx-runtime";function Te({x:e=0,y:t=0}){let n=w(),o=we({maxWidth:256,maxHeight:256});return!n||!o||o.type!=="fixed"?null:Po("world-object",{height:n.height,width:n.width,x:e,y:t,children:Po("world-image",{uri:o.id,target:{x:0,y:0,width:n.width,height:n.height},display:o.width&&o.height?{width:o.width,height:o.height}:void 0,crop:void 0})})}import{jsx as ts,jsxs as ns}from"react/jsx-runtime";function wo({as:e}){let{strategy:t}=E(),{renderMediaControls:n,mediaControlsDeps:o}=q();return t.type!=="media"||t.media.type!=="Sound"?null:ns(nt,{media:t.media,mediaControlsDeps:o,audioCopmonent:e,children:[ts(Te,{}),n?n(t):null]},t.media.url)}import{HTMLPortal as Ko}from"@atlas-viewer/atlas";import{useLayoutEffect as Rs,useMemo as As}from"react";import{useStore as Yo}from"zustand";import{createContext as os,useContext as rs}from"react";import{useStore as is}from"zustand";import{jsx as as}from"react/jsx-runtime";var Yt=os(null);Yt.displayName="ComplexTimeline";function To({children:e,store:t}){return as(Yt.Provider,{value:t,children:e})}function Vf(e){let t=rs(Yt);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return is(t,e)}import ss from"mitt";import{createStore as ls}from"zustand/vanilla";function Io({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:o}){if(o<=n){let s=t.findIndex(a=>a.time>n);if(s===-1)return[e,[]];let i={},r=t.slice(e,s);for(let a of r)a.type==="enter"&&(i[a.id]=a),a.type==="exit"&&(i[a.id]?delete i[a.id]:i[a.id]=a);return[s,Object.values(i)]}return[e,[]]}function Mo({complexTimeline:e,startTime:t=0}){let n=ss(),o={},s={progress:null,currentTime:null},i=0,r=null,a=0,l=null;function u(){let f=S.getState().visibleElements,y=o,x=[],b=Object.keys(y);for(let C of b){let R=y[C],A=f[C];R&&A&&x.push(R)}return x}function d(){return Object.keys(o).map(f=>o[f])}function c(v){s.currentTime&&(s.currentTime.innerHTML=Ft(v),s.progress&&(s.progress.style.width=`${v/e.duration*100}%`))}let m=()=>{let v=S.getState(),f=v.currentPrime;if(!f)return;let y=o,x=v.visibleElements,b=Object.keys(y);for(let C of b){let R=y[C],A=x[C];if(R&&C!==f.id&&A){let N=a-A.time*1e3;Math.abs(a-A.time*1e3-R.currentTime*1e3)>300&&(R.currentTime=N/1e3)}}},p=(v=0)=>{let f=v-i,y=S.getState();if(y.isPlaying){let x=y.currentPrime;if(x){let A=o[x.id];A&&(A.paused?a+=f:a=(x.time+A.currentTime)*1e3)}else a+=f;let b=a/1e3;if(b>y.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),g(),c(0);return}c(b);let[C,R]=Io({currentTime:b,currentKeyFrameIndex:y.nextKeyframeIndex,keyframes:y.complexTimeline.keyframes,targetTime:b});R.length&&y.applyKeyframes(C,R)}i=v,r=requestAnimationFrame(p)},g=()=>{r&&cancelAnimationFrame(r)},h=(v,f)=>{},S=ls((v,f)=>({complexTimeline:e,elements:{},visibleElements:{},isBuffering:!1,bufferMap:{},isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,isReady:!1,volume:100,duration:e.duration,clockStartRequests:0,clockStartTime:0,primeTime:0,currentPrime:null,clockRunning:!1,nextKeyframeIndex:0,startClock:()=>{f().clockRunning||(p(),l=setInterval(m,500)),v({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(y,x){let b=f(),C={...b.visibleElements},R=b.currentPrime;for(let A of x)A.type==="enter"&&(C[A.id]=A,n.emit("complex-timeline.enter",{id:A.id})),A.type==="exit"&&(C[A.id]=null,n.emit("complex-timeline.exit",{id:A.id})),A.isPrime&&(R=A);v({nextKeyframeIndex:y,visibleElements:C,currentPrime:R})},stopClock:()=>{let y=f().clockStartRequests;if(y!==0){if(y===1){g(),l&&clearInterval(l),v({clockRunning:!1,clockStartRequests:0});return}v({clockStartRequests:y-1})}},setElement:(y,x)=>{o[y]=x;let b=Object.keys(o),C=f().complexTimeline;h(x,y),C.items.filter(A=>A.type!=="Image"&&A.type!=="Text").every(A=>b.includes(A.annotationId))&&!f().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:C}),v({isReady:!0}))},removeElement:y=>{delete o[y]},mute(){for(let y of d())y.muted=!0;v({isMuted:!0})},unmute(){for(let y of d())y.muted=!1;v({isMuted:!1})},play(){if(!f().isPlaying){for(let x of u())x.play();v({isPlaying:!0})}},pause(){if(f().isPlaying){for(let x of u())x.pause();v({isPlaying:!1})}},playPause(){let y=f();y.isPlaying?y.pause():y.play()},setDurationPercent(y){let b=f().duration*y;f().setTime(b)},setTime(y){let x=f(),b=a/1e3,C=typeof y=="function"?y(b):y,R=x.nextKeyframeIndex;if(b>C){v({visibleElements:{},currentPrime:null});let P=Object.keys(x.visibleElements);for(let I of P)n.emit("complex-timeline.exit",{id:I});b=0,R=0}let[A,N]=Io({currentTime:b,currentKeyFrameIndex:R,keyframes:x.complexTimeline.keyframes,targetTime:C});x.applyKeyframes(A,N),a=C*1e3;let T=S.getState().visibleElements,z=o,_=Object.keys(T);for(let P of _){let I=T[P];if(I){let $=z[P];$&&($.currentTime=(a-I.time*1e3)/1e3)}}c(C)},setVolume(y){for(let x of d())x.volume=Math.min(1,Math.max(0,y/100));v({volume:y})},toggleMute(){let y=f();y.isMuted?(y.unmute(),v({isMuted:!1})):(y.mute(),v({isMuted:!0}))},clearProgressElement(){s.progress=null},setProgressElement(y){s.progress=y},setCurrentTimeElement(y){s.currentTime=y},clearCurrentTimeElement(){s.currentTime=null}}));return n.on("complex-timeline.enter",v=>{let f=S.getState(),y=v.id,x=o[y];x&&f.isPlaying&&x.play()}),n.on("complex-timeline.exit",v=>{let f=S.getState(),y=v.id,x=o[y];x&&(x.currentTime=0,x.pause())}),S.getState().setTime(t),{store:S,emitter:n}}import{Fragment as Uo,useMemo as _o}from"react";import{useEffect as ko,useRef as De,useState as cs}from"react";var us=[.6,.02,0,.75],Df=16,Be={linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1],"ease-in-cubic":us,"ease-out-cubic":[.215,.61,.355,1]};function qf(e,t,n){let o=Math.max(0,Math.min(1,n));return{x:e.x+(t.x-e.x)*o,y:e.y+(t.y-e.y)*o,width:e.width+(t.width-e.width)*o,height:e.height+(t.height-e.height)*o}}function Ff(e,t){let n=[],o=e;for(let s of t)n.push({from:o,to:s}),o=s;return n}function He([e,t,n,o]){let s=3*e,i=3*(n-e)-s,r=1-s-i,a=3*t,l=3*(o-t)-a,u=1-a-l;function d(g){return((r*g+i)*g+s)*g}function c(g){return((u*g+l)*g+a)*g}function m(g){return(3*r*g+2*i)*g+s}function p(g,h=1e-6){let S=g;for(let y=0;y<8;y++){let x=d(S)-g;if(Math.abs(x)<h)return S;let b=m(S);if(Math.abs(b)<1e-6)break;S=S-x/b}let v=0,f=1;for(S=g;v<f;){let y=d(S);if(Math.abs(y-g)<h)return S;g>y?v=S:f=S,S=(f-v)*.5+v}return S}return g=>{if(g<=0)return 0;if(g>=1)return 1;let h=p(g);return c(h)}}function $f(e,t){if(!t||t.length===0)return{index:-1,t:0};if(Number.isNaN(e)||!isFinite(e))return{index:-1,t:0};if(e<0)return{index:-1,t:0};if(e>=t.length)return{index:t.length,t:0};let n=Math.floor(e),o=e-n;return{index:n,t:o}}function Eo(e,{duration:t=300,easing:n}={}){let o=De(He(Be["ease-in-out"]));ko(()=>{if(!n)o.current=He(Be["ease-in-out"]);else if(typeof n=="function")o.current=n;else if(Array.isArray(n))o.current=He(n);else{let d=Be[n];o.current=He(d??Be["ease-in-out"])}},[n]);let[s,i]=cs(e),r=De(e??0),a=De(null),l=De(null),u=De(e);return ko(()=>{if(e===void 0){i(void 0);return}let d=u.current;if(u.current=e,d===void 0){r.current=e,i(e);return}if(d===e&&s===e)return;l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),a.current=null;let c=r.current,m=(((e||0)-c)%360+540)%360-180,p=c+m;function g(h){a.current===null&&(a.current=h);let S=h-a.current,v=Math.min(S/t,1),f=o.current(v),y=c+(p-c)*f;r.current=y,i(y),v<1?l.current=requestAnimationFrame(g):(r.current=((e||0)%360+360)%360,i(r.current),l.current=null)}return l.current=requestAnimationFrame(g),()=>{l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)}},[e,t]),s}import{HTMLPortal as vs}from"@atlas-viewer/atlas";import{getId as Ss}from"@iiif/parser/image-3";import ds,{useContext as ms}from"react";import{imageServices as ps}from"@iiif/helpers/image-service";import{useStore as at}from"zustand";var Vo=ds.createContext(ps.store);Vo.displayName="ImageServicesHelper";function st(){return ms(Vo)}function No(e){let t=st();return at(t,({loaded:n})=>n[e])}function lt(){let e=st();return at(e,({loadServiceSync:t})=>t)}function Lo(){let e=st();return at(e,({loaded:t})=>t)}function Xf(){let e=st();return at(e,({loadService:t})=>t)}import Ie,{useMemo as Gt}from"react";import{jsx as J}from"react/jsx-runtime";var Oo=Ie.createContext("en"),Bo=Ie.createContext({}),Ho=Ie.createContext(null);function tg(e){return J(Bo.Provider,{value:e.translations,children:e.children})}function ng(e){return J(Oo.Provider,{value:e.language,children:e.children})}function og(e){return J(Ho.Provider,{value:e.convert,children:e.children})}function Do(){return Ie.useContext(Ho)}function Qt(){return Ie.useContext(Oo)}function qo(){return Ie.useContext(Bo)}function zo(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function fs({as:e,language:t,children:n,viewingDirection:o,...s}){let i=Qt();return Gt(()=>zo(i)===zo(t),[i,t])?e?J(e,{...s,children:n}):J("span",{...s,children:n}):e?J(e,{...s,lang:t,dir:o,children:n}):J("span",{...s,lang:t,dir:o,children:n})}function Fo(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let o=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(o&&t.indexOf(o)!==-1)return o;for(let s of n)if(t.indexOf(s)!==-1)return s;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var gs=(e,t=[])=>{let n=Qt();return Gt(()=>{let o=e();return Fo(n,o,[])},[n,...t])};function pe(e,t,n,o){return t?n?n(e[t]||t,o||"none"):e[t]||t:""}function hs(e,t,n=`
16
+ `,o={}){let s=Do(),i=gs(()=>Object.keys(e||{}),[e]);return[Gt(()=>{if(!e)return pe(o,t,s)||"";if(typeof e=="string")return pe(o,e,s);let r=i?e[i]:void 0;return r?typeof r=="string"?r:r.map(a=>pe(o,a,s,i)).join(n):""},[i,t,e]),i]}function rg(){let e=Qt(),t=qo(),n=Do();return function(s,i="",r=`
17
+ `,a=t){let l=Object.keys(s||{}),u=Fo(e,l,[]);if(!s)return pe(a,i,n)||"";if(typeof s=="string")return pe(a,s,n);let d=u?s[u]:void 0;return d?typeof d=="string"?pe(a,d,n,u):d.map(c=>pe(a,c,n,u)).join(typeof r<"u"?r:`
18
+ `):""}}function qe({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:s,...i}){let r=qo(),[a,l]=hs(o,t,s,r);return l?J(fs,{...i,as:e,language:l,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a}):e?J(e,{...i,children:a}):J("span",{...i,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a})}import{isImageServiceLevel as $o}from"@iiif/parser/image-3";import{useMemo as Xt}from"react";import{jsx as ut,jsxs as ys}from"react/jsx-runtime";var Zt=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],s=e.enableThumbnail,i=e.enableSizes,r=Xt(()=>{let u=e.tiles.imageService.id||e.tiles.imageService["@id"];return u?.endsWith("/info.json")?u.slice(0,-1*10):u},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),a=Xt(()=>{let u=e.tiles.imageService.tiles||[];if(!u.length){let d=e.width,c=[1],m=1;for(;2**m<d;)m=m*2,c.push(m);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&$o(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:$o(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:[]}return u},[e.tiles.imageService,e.width]),l=Xt(()=>{let u=e.tiles.imageService;return(u?u["@context"]?Array.isArray(u["@context"])?u["@context"]:[u["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return ut("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:ys("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[s&&e.tiles.thumbnail?ut("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,i&&o.map((u,d)=>ut("world-image",{uri:`${r}/full/${u.width},${l?u.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:u.width,height:u.height},crop:e.crop},d)),a.map(u=>(u.scaleFactors||[]).map(d=>ut("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:u,scaleFactor:d,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${d}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};import{jsx as re,jsxs as bs}from"react/jsx-runtime";function xs({resource:e,heading:t,note:n,extra:o}){return o?re(vs,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:re("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:bs("div",{children:[re(qe,{children:t||"Not authorised"}),n&&re("p",{children:re(qe,{children:n})}),re("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Wo({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:s,renderOptions:i,rotation:r,manualRotation:a}){let l=Bn(),u=Ss(e.service),d=No(u),c=lt(),m=d?.service;c(e.service,e);let p=m&&d?.status==="done",g=(m?.preferredFormats||[])[0],h=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(p===!1)return null;if(!l){let S=e.service,v=S.width||e.width||0,f=S.height||e.height||0,y=0,x=0,b=e.target?.spatial.width||v,C=e.target?.spatial.height||f,R=b,A=C;return(r===90||r===270)&&!a&&([b,C]=[C,b],y=(R-b)/2,x=(A-C)/2),a&&([b,C]=[C,b]),re(Zt,{enableThumbnail:s,renderOptions:i,rotation:r,tiles:{id:S.id||S["@id"]||"unknown",height:f,width:v,imageService:S,thumbnail:h},enableSizes:o,x:y,y:x,format:g,width:b,height:C,crop:n})}return re(Hn,{resource:e.service,errorComponent:xs,extra:e,children:S=>{let v=S.width||e.width||0,f=S.height||e.height||0,y=0,x=0,b=e.target?.spatial.width||v,C=e.target?.spatial.height||f,R=b,A=C;return(r===90||r===270)&&!a&&([b,C]=[C,b],y=(R-b)/2,x=(A-C)/2),re(Zt,{enableThumbnail:s,renderOptions:i,tiles:{id:S.id||S["@id"]||"unknown",height:f,width:v,imageService:S,thumbnail:h},rotation:r,format:g,enableSizes:o,x:y,y:x,width:b,height:C,crop:n})}},e.id)}import{jsx as Jt,jsxs as en}from"react/jsx-runtime";function Me({id:e,image:t,thumbnail:n,isStatic:o,x:s=0,y:i=0,children:r,selector:a,onClick:l,rotation:u,enableSizes:d,enableAnnotations:c}){let m=_o(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]),p=_o(()=>{if(typeof t.rotation<"u")return t.rotation;if(!t.annotation)return 0;let C=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(C&&C.selector?.type==="ImageApiSelector")return Number(C.selector.rotation)},[t]),g=Eo(u),h=!!t.service,S=s+t.target.spatial.x,v=i+t.target.spatial.y,f=t.target.spatial.width,y=t.target.spatial.height,x=t.target.spatial.width,b=t.target.spatial.height;return(p===90||p===270)&&([x,b]=[b,x],h||([f,y]=[y,f],S+=(t.target.spatial.width-f)/2,v+=(t.target.spatial.height-y)/2)),en("world-object",{x:S,y:v,width:f,height:y,onClick:l,rotation:t.service?void 0:typeof g<"u"?g:p,children:[t.service?en(Uo,{children:[Jt(Wo,{image:t,thumbnail:n,crop:m,enableSizes:d,rotation:typeof g<"u"?g:p,manualRotation:typeof u<"u"}),r]},"service"):en(Uo,{children:[Jt("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:x,height:b},display:x&&b?{width:x,height:b}:void 0,crop:m}),r]},"no-service"),c&&t.annotationPages?t.annotationPages.map(C=>Jt(ce,{page:C,className:"image-service-annotation",ignoreTargetId:!0},C.id)):null]},e+(h?"server":"no-service"))}import{HTMLPortal as Cs}from"@atlas-viewer/atlas";import{Fragment as jo,jsx as Fe}from"react/jsx-runtime";function ct({strategy:e,onClickPaintingAnnotation:t}){return Fe(jo,{children:e.items.map((n,o)=>Fe(jo,{children:Fe(Cs,{onClick:t?s=>{s.stopPropagation(),t(n.annotationId,n,s)}:void 0,target:n.target?.spatial||void 0,children:Fe("div",{"data-textual-content":!0,children:Fe(qe,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}import{Fragment as Ps,jsx as fe,jsxs as ws}from"react/jsx-runtime";function Go({strategy:e,children:t}){let{store:n}=As(()=>Mo({complexTimeline:e}),[e]),o=Yo(n,r=>r.isReady),s=Yo(n,r=>r.visibleElements);function i(r){return a=>{a&&n.getState().setElement(r,a)}}return Rs(()=>{if(o){let{startClock:r,stopClock:a}=n.getState();return r(),()=>{a()}}},[e,o]),H("portal","custom-controls",To,{store:n,children:t},[o]),ws(Ps,{children:[e.items.map(r=>r.type!=="Image"||!s[r.annotationId]?null:fe(Me,{image:r,id:r.annotationId},r.id)),e.items.map((r,a)=>r.type!=="Text"||!s[r.annotationId]?null:fe(ct,{strategy:{type:"textual-content",items:[r]}},a)),e.items.map((r,a)=>r.type!=="Video"||!r.target.spatial?null:fe(Ko,{target:r.target.spatial,children:fe("video",{ref:i(r.annotationId),src:r.url,style:{height:"100%",width:"100%",opacity:s[r.annotationId]?1:0}})},a)),e.items.map((r,a)=>r.type!=="Sound"?null:fe(Ko,{children:fe("audio",{ref:i(r.annotationId),src:r.url})},a)),e.highlights.map(({annotation:r})=>s[r.id]?fe(Ae,{id:r.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},r.id):null)]})}import{jsx as Ts}from"react/jsx-runtime";function Qo(){let{strategy:e}=E(),{renderComplexTimelineControls:t}=q();return e.type!=="complex-timeline"?null:Ts(Go,{strategy:e,children:t?t(e):null})}import{jsx as Is}from"react/jsx-runtime";function dt({style:e}){let t=w();return!t||!t.height||!t.width?null:Is("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}import{jsx as Ms}from"react/jsx-runtime";function Xo({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=E();return n.type!=="empty"&&!t?null:Ms(dt,{style:e})}import{createContext as ks,useContext as Es}from"react";var ge=ks(null);function mt(){return Es(ge)}import{Fragment as Ns,jsx as Vs,jsxs as Ls}from"react/jsx-runtime";function Zo({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,rotation:s,children:i}){let{strategy:r}=E(),{renderViewerControls:a,viewControlsDeps:l}=q(),u=w(),d=mt(),c=we({maxWidth:256,maxHeight:256});if(H(d&&r.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${u?.id}`,ge.Provider,a?{value:d||null,children:a(r)}:{},[u,d,r,...l||[]]),r.type!=="images")return null;let m=r.images.length===1?s:0;return Ls(Ns,{children:[r.images.map((p,g)=>Vs(Me,{isStatic:e,image:p,id:p.id,thumbnail:g===0?c:void 0,selector:p.selector,enableSizes:t,enableAnnotations:n,rotation:m,onClick:o?h=>{o(p.annotationId,p,h)}:void 0},p.id+g)),i]})}import{Fragment as Os,jsx as zs,jsxs as Bs}from"react/jsx-runtime";function Jo({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=E(),{renderViewerControls:o,viewControlsDeps:s}=q(),i=mt(),r=w();return H(i&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${r?.id}`,ge.Provider,o?{value:i||null,children:o(n)}:{},[r,i,n,...s||[]]),n.type!=="textual-content"?null:Bs(Os,{children:[zs(ct,{strategy:n,onClickPaintingAnnotation:e}),t]})}import{jsx as er,jsxs as Hs}from"react/jsx-runtime";function tn({element:e,media:t,startTime:n,playPause:o,poster:s}){let i="div",r=n?`${t.url}#t=${n}`:t.url;return Hs(i,{className:"video-container",part:"video-container",onClick:o,children:[er("style",{children:`
19
+ .video-container {
20
+ position: absolute;
21
+ top: 0;
22
+ bottom: 0;
23
+ left: 0;
24
+ right: 0;
25
+ background: #000;
26
+ z-index: 13;
27
+ display: flex;
28
+ justify-content: center;
29
+ pointer-events: visible;
30
+ }
31
+ `}),er("video",{poster:s,ref:e,src:r,style:{width:"100%",objectFit:"contain"}})]})}function pt({media:e,mediaControlsDeps:t,children:n,videoComponent:o=tn,captions:s}){let i=w(),r=et(),a=i&&i.placeholderCanvas&&i.placeholderCanvas.id||void 0,l=we({},!1,{canvasId:a}),[{element:u,currentTime:d,progress:c},m,p]=Pe({duration:e.duration});return H("overlay","video-element",o,{element:u,media:e,playPause:p.playPause,poster:l?.id,canvas:i,startTime:r?r.startTime:null,captions:s},[l]),H("portal","custom-controls",Je,{state:m,actions:p,currentTime:d,progress:c,element:u,children:n},[d,m,e,...t||[]]),null}import{jsx as Ds,jsxs as qs}from"react/jsx-runtime";function tr({as:e}){let{strategy:t}=E(),{renderMediaControls:n,mediaControlsDeps:o}=q();return t.type!=="media"||t.media.type!=="Video"?null:qs(pt,{captions:t.captions,media:t.media,mediaControlsDeps:o,videoComponent:e,children:[Ds(Te,{}),n?n(t):null]},t.media.url)}import{useRef as Fs}from"react";import{jsx as nr,jsxs as Ws}from"react/jsx-runtime";function $s({element:e,media:t,playPause:n}){let o=Fs(null);return t.youTubeId?Ws("div",{className:"video-container",part:"video-container",onClick:n,children:[nr("style",{children:`
32
+ .video-container {
33
+ position: absolute;
34
+ top: 0;
35
+ bottom: 0;
36
+ left: 0;
37
+ right: 0;
38
+ background: #000;
39
+ z-index: 13;
40
+ display: flex;
41
+ justify-content: center;
42
+ pointer-events: visible;
43
+ }
44
+ .video-yt {
45
+ border: none;
46
+ width: 100%;
47
+ object-fit: contain;
48
+ }
49
+ `}),nr("iframe",{className:"video-yt",ref:o,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function or({media:e,mediaControlsDeps:t,children:n}){let[{element:o,currentTime:s,progress:i},r,a]=Pe({duration:e.duration});return H("overlay","video-element",$s,{element:o,media:e,playPause:a.playPause}),null}import{jsx as Us,jsxs as _s}from"react/jsx-runtime";function rr(){let{strategy:e}=E(),{renderMediaControls:t,mediaControlsDeps:n}=q();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:_s(or,{media:e.media,mediaControlsDeps:n,children:[Us(Te,{}),t?t(e):null]})}import{startTransition as kl,useMemo as El}from"react";import{useStore as te}from"zustand";import{HTMLPortal as Gs,useAtlas as Qs}from"@atlas-viewer/atlas";import{useCallback as rn,useEffect as an}from"react";import{createSvgHelpers as js}from"polygon-editor";import{useEffect as Ks,useRef as ee,useState as ar}from"react";import{useStore as nn}from"zustand";function ir(e){let t=D(),n=nn(t,i=>i.polygons),o=nn(t,i=>i.polygonState),s=nn(t,i=>i.polygon);return _n("atlas.polygon-render",({state:i,slowState:r,dt:a})=>{e(i,r,a)}),{currentShape:s,state:o,helper:n}}import{Fragment as on,jsx as V,jsxs as ke}from"react/jsx-runtime";var ie=js(),Ys={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function sr(e){let{image:t}=e,n={...Ys,...e.theme||{}},o=ee(),s=ee(),i=ee(),r=ee(),a=ee(),l=ee(),u=ee(),d=ee(),c=ee(),m=ee(),[p,g]=ar(null),[h,S]=ar(!1),{helper:v,state:f,currentShape:y}=ir((T,z)=>{if(T.closestLineIndex,ie.updateTransitionBoundingBox(i.current,T,z),ie.updateBoundingBoxPolygon(o.current,T,z),ie.updateBoundingBoxPolygon(s.current,T,z),ie.updateTransitionShape(u.current,T,z),ie.updateClosestLinePointTransform(a.current,T,z),ie.updateSelectBox(r.current,T,z),ie.updatePointLine(d.current,T,z),ie.updateDrawPreview(l.current,T,z,3),ie.updateLineBox(c.current,T),g(T.transitionDirection),S(T.transitionRotate),T.closestLineIndex!==-1&&m.current){let _=T.polygon,P=_.points[T.closestLineIndex],I=_.points[(T.closestLineIndex+1)%_.points.length];P&&I&&m.current.setAttribute("points",`${P[0]},${P[1]} ${I[0]},${I[1]}`)}});Ks(()=>{let T=()=>{v.modifiers.reset()};return document.addEventListener("mouseleave",T),()=>{document.removeEventListener("mouseleave",T)}},[]);let x=ke(on,{children:[ke("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[V("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke,className:"marker"}),V("circle",{cx:"5",cy:"5",r:"3",fill:n.controlFill})]}),V("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:V("circle",{cx:"5",cy:"5",r:"5",fill:n.activeLineStroke,className:"marker"})}),ke("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[V("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke}),V("circle",{cx:"5",cy:"5",r:"3",fill:n.activeLineStroke})]}),ke("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[V("rect",{width:"10",height:"10",fill:n.lineStroke}),V("rect",{x:"1",y:"1",width:"8",height:"8",fill:n.controlFill})]})]}),b=y?y.open?"polyline":"polygon":null,C=!f.showBoundingBox&&f.closestPoint!==null&&f.actionIntentType==="select-point",R=f.actionIntentType==="add-open-point",A=f.transitionIntentType==="split-line",N=f.transitioning&&f.selectedStamp&&f.transitionIntentType==="stamp-shape",X=y&&b?ke(on,{children:[V(b,{fill:(!f.transitioning||f.transitionIntentType==="select-multiple-points")&&!y.open?n.shapeFill:"none",strokeWidth:N||f.showBoundingBox&&f.boxMode||f.transitioning&&f.transitionIntentType==="split-line"||f.transitioning&&f.transitionIntentType==="move-point"?0:2,stroke:n.shapeStroke,points:y.points.map(T=>T.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerMid:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerEnd:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}),f.currentTool==="lineBox"&&f.actionIntentType==="close-line-box"?V("polygon",{fill:n.shapeFill,ref:c,stroke:n.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,f.transitionIntentType==="draw-shape"&&f.transitioning?V("polyline",{ref:l,fill:"none",stroke:n.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(f.transitioning&&f.transitionIntentType==="move-point")&&!(f.transitioning&&f.transitionIntentType==="stamp-shape")&&!f.showBoundingBox&&f.selectedPoints&&f.selectedPoints.length?V("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:y.points.filter((T,z)=>f.selectedPoints?.includes(z)).map(T=>T.join(",")).join(" "),opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,C&&!f.transitioning&&f.closestPoint!==null&&y.points[f.closestPoint]?V("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:n.activeLineStroke,points:`${y.points[f.closestPoint][0]},${y.points[f.closestPoint][1]}`,opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,!f.transitioning&&(f.actionIntentType==="add-open-point"||f.actionIntentType==="close-shape"||f.actionIntentType==="close-shape-line")?V("polyline",{stroke:n.activeLineStroke,ref:d,strokeWidth:f.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?V("g",{children:V("polyline",{ref:m,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:n.activeLineStroke,strokeWidth:3})}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?V("g",{ref:a,children:V("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,f.transitioning?V(b,{ref:u,fill:y.open?"none":n.shapeFill,stroke:f.transitionIntentType==="stamp-shape"?n.activeLineStroke:n.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(y.open,2)}):null,f.transitioning&&f.transitionIntentType==="select-multiple-points"?V("rect",{ref:r,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,f.showBoundingBox&&!N?ke(on,{children:[V("polygon",{ref:o,strokeWidth:2,stroke:n.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),V("polygon",{ref:s,strokeWidth:2,stroke:n.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:v.state.slowState.currentTool,setCurrentTool:v.tools.setTool,helper:v,currentShape:y,state:f,isAddingPoint:R,isSplitting:A,isStamping:N,isHoveringPoint:C,transitionDirection:p,transitionRotate:h,defs:x,editor:X}}import{jsx as $e,jsxs as Xs}from"react/jsx-runtime";function lr(e){let t=Qs(),{image:n}=e,{helper:o,defs:s,editor:i,state:r,transitionDirection:a,isSplitting:l,transitionRotate:u,isHoveringPoint:d,isAddingPoint:c}=sr({image:e.image,theme:e.theme}),m=rn(h=>{h.button!==2&&o.pointer([[~~h.atlas.x,~~h.atlas.y]])},[o]),p=rn(h=>{h.button!==2&&o.pointerDown()},[o]),g=rn(h=>{h.button!==2&&o.pointerUp()},[o]);return an(()=>{let h=S=>{o.key.up(S.key)};return document.addEventListener("keyup",h),()=>{document.removeEventListener("keyup",h)}},[o]),an(()=>{let h=S=>{S.target&&["INPUT","TEXTAREA"].includes(S.target.tagName)||S.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||o.key.down(S.key)};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[o]),an(()=>{let h=[];return a&&h.push(`atlas-cursor-${a}`),r.actionIntentType==="cut-line"&&r.modifiers?.Shift&&h.push("atlas-cursor-cut"),(d||r.transitionIntentType==="move-shape"||r.transitionIntentType==="move-point")&&h.push("atlas-cursor-move"),c&&h.push("atlas-cursor-crosshair"),l&&h.push("atlas-cursor-copy"),u&&h.push("atlas-cursor-rotate"),r.transitionIntentType==="draw-shape"&&h.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...h),()=>{t?.canvas&&t.canvas.classList.remove(...h)}},[t?.canvas,c,d,l,r.modifiers?.Shift,r.actionIntentType,r.transitionIntentType,a,u]),$e("world-object",{height:n.height,width:n.width,onMouseMove:m,onMouseDown:p,onMouseUp:g,onMouseLeave:o.blur,children:$e(Gs,{relative:!0,interactive:!1,children:$e("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:Xs("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[$e("title",{children:"Annotation Editor"}),$e("defs",{children:s}),i]})})})})}import{useCallback as Pl}from"react";import{create as wl}from"zustand";import{HTMLPortal as dl}from"@atlas-viewer/atlas";import{autoUpdate as ml,detectOverflow as pl,flip as fl,offset as gl,shift as hl,useDismiss as yl,useFloating as vl,useInteractions as Sl}from"@floating-ui/react";import{createPortal as xl}from"react-dom";import ll,{useContext as F,useMemo as ul}from"react";import Zs from"react";import{createContext as Js,useMemo as el}from"react";import tl from"mitt";import{jsx as ol}from"react/jsx-runtime";var nl=tl(),Ee=Js({emitter:nl});Ee.displayName="Events";function ur(){return Zs.useContext(Ee).emitter}function dy({emitter:e,children:t}){return ol(Ee.Provider,{value:el(()=>({emitter:e}),[e]),children:t})}import{createContext as rl,useContext as il,useMemo as al}from"react";import{jsx as sl}from"react/jsx-runtime";var We=rl("");function cr({children:e,identifier:t}){let n=al(()=>t??Math.random().toString(36).substring(2,9),[t]);return sl(We.Provider,{value:n,children:e})}function ft(){return il(We)}import{jsx as U}from"react/jsx-runtime";var Ue=ll.createContext({});function gt(){let e=F(Ue),t=Object.keys(e),n={};for(let o of t)e[o].Provider&&(n[o]={value:F(e[o]),Provider:e[o].Provider});return n}function cl(e){let t=Object.keys(e),n=e.children;for(let o of t){if(o==="children")continue;let{value:s,Provider:i}=e[o];n=U(i,{value:s,children:n})}return n}function Iy(e){let t=F(Ue),n=ul(()=>({...t,...e.providers}),[e.providers]);return U(Ue.Provider,{value:n,children:e.children})}function ht(){return{VaultContext:F(ue),ResourceContext:F(_e),SimpleViewerReactContext:F(ze),VisibleCanvasReactContext:F(ye),AuthRContext:F(Se),SearchReactContext:F(xe),ReactEventContext:F(Ee),ContextBridgeReactContext:F(Ue),StrategyReactContext:F(de),AtlasStoreReactContext:F(Ce),ViewerIdentifierContext:F(We)}}function yt(e){return U(he,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:U(ye.Provider,{value:e.bridge.VisibleCanvasReactContext,children:U(ze.Provider,{value:e.bridge.SimpleViewerReactContext,children:U(Ee.Provider,{value:e.bridge.ReactEventContext,children:U(Ce.Provider,{value:e.bridge.AtlasStoreReactContext,children:U(Se.Provider,{value:e.bridge.AuthRContext,children:U(xe.Provider,{value:e.bridge.SearchReactContext,children:U(We.Provider,{value:e.bridge.ViewerIdentifierContext,children:U(Ue.Provider,{value:e.bridge.ContextBridgeReactContext,children:U(de.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?U(cl,{...e.custom,children:e.children}):e.children})})})})})})})})})})}import{jsx as sn,jsxs as Al}from"react/jsx-runtime";var pr=10,dr=1;function bl(e){let[t,n]=e.split("-");return[t,n]}function mr(e,t,n){return t>n?e:Math.min(Math.max(e,t),n)}function Cl(e){return e.top>0||e.right>0||e.bottom>0||e.left>0}function Rl(e){return{name:"insideHighlightFallback",options:e,async fn(t){if(e.width<=dr||e.height<=dr)return{};let n=await pl(t,{altBoundary:!0});if(!Cl(n))return{};let{reference:o,floating:s}=t.rects,[i,r]=bl(t.initialPlacement),a=Math.min(pr,o.width/2,o.height/2),l=o.x+(o.width-s.width)/2,u=o.y+(o.height-s.height)/2,d=t.x,c=t.y;return i==="top"||i==="bottom"?(c=i==="top"?o.y+a:o.y+o.height-s.height-a,r==="start"?d=o.x+a:r==="end"?d=o.x+o.width-s.width-a:d=l,d=mr(d,o.x+a,o.x+o.width-s.width-a)):(d=i==="left"?o.x+a:o.x+o.width-s.width-a,r==="start"?c=o.y+a:r==="end"?c=o.y+o.height-s.height-a:c=u,c=mr(c,o.y+a,o.y+o.height-s.height-a)),{x:d,y:c}}}}function vt({annotation:e,target:t,children:n,dismissable:o,isOpen:s,onOpenChange:i,placement:r}){let a=ft(),l=ht(),u=gt(),{refs:d,floatingStyles:c,context:m}=vl({open:s,onOpenChange:i,nodeId:e.id,placement:r||"bottom",middleware:[gl(pr),fl({mainAxis:!0,fallbackStrategy:"bestFit",altBoundary:!0}),hl({altBoundary:!0}),Rl(t)],whileElementsMounted:ml}),p=yl(m),{getReferenceProps:g,getFloatingProps:h}=Sl([o?p:null].filter(S=>S!==null));return Al(dl,{relative:!0,target:t,interactive:!1,children:[sn("div",{ref:d.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),xl(sn(yt,{bridge:l,custom:u,children:sn("div",{ref:d.setFloating,style:c,...h(),children:n})}),document.getElementById(`atlas-floating-ui-${a}`))]})}import{Fragment as Il,jsx as fr}from"react/jsx-runtime";var Tl=wl()(e=>({isMenuOpen:!1,menuPosition:{x:0,y:0},setMenuPosition(t){e({menuPosition:t})},toggle(t){e(n=>({isMenuOpen:!n.isMenuOpen,menuPosition:t}))},open(t){e({isMenuOpen:!0,menuPosition:t})},setIsMenuOpen(t){e(typeof t=="function"?n=>({isMenuOpen:t(n.isMenuOpen)}):{isMenuOpen:t})},close(){e({isMenuOpen:!1})}}));function St(e,t,n){let{isMenuOpen:o,setIsMenuOpen:s,close:i,open:r,menuPosition:a,setMenuPosition:l,toggle:u}=Tl(),d=Pl(p=>{n&&(p.preventDefault(),p.stopPropagation(),u(p.atlas))},[u,n]);return[fr(Il,{children:n&&o&&fr(vt,{dismissable:!0,placement:"bottom-start",isOpen:o,onOpenChange:s,annotation:{id:e},target:{x:a.x,y:a.y,height:1,width:1},children:o&&n({canvasId:t,position:a,close:()=>s(!1)})})}),{onContextMenu:d},{open:r,close:i,toggle:u,isMenuOpen:o,setIsMenuOpen:s,menuPosition:a,setMenuPosition:l}]}import{useStore as Ml}from"zustand";function gr(){let e=D();return Ml(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}import{Fragment as hr,jsx as se,jsxs as ln}from"react/jsx-runtime";function yr({theme:e,renderContextMenu:t,children:n}){let o=D(),s=w(),i=te(o,b=>b.polygon),r=te(o,b=>b.polygonState.currentTool),a=te(o,b=>b.mode),l=te(o,b=>b.changeMode),u=te(o,b=>b.polygonState.transitioning),{enabled:d,requestId:c}=te(o,b=>b.tool),m=El(()=>be(i),[i]),p=gr(),[g,h]=St("editing-annotation",s?.id,t),S=p?.annotationPopup||n||se(Vl,{}),v=p?.svgTheme||e,f=()=>{l("sketch")};if(!d||!s||!c||!i)return null;let y=m&&i.id&&!u&&(r==="pointer"||r==="hand"||!i.open)?se(vt,{annotation:i,target:m,children:S}):null,x="shape";return a==="explore"?ln(hr,{children:[se(x,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:s.width,height:s.height},style:{":hover":{backgroundColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderWidth:"4px",borderColor:"rgba(255, 255, 255, .4)"},...h}),se(x,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:s.width,height:s.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),y]}):ln(hr,{children:[t?se(x,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:s.width,height:s.height},...h}):null,se(lr,{image:s,theme:v}),y,g]})}function Vl(){let e=D(),t=te(e,r=>r.changeMode),n=te(e,r=>r.mode),o=te(e,r=>r.completeRequest),s=te(e,r=>r.tool),i=()=>{kl(()=>{o()})};return s.enabled?ln("div",{className:"svg-tools-container animate-fadeIn",children:[n!=="sketch"&&se("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),se("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}import{useEffect as un,useMemo as cn}from"react";import{useEffect as Tr,useMemo as Ir}from"react";import{useCallback as xr,useMemo as Ll}from"react";function Nl(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function vr(e,t){return k(n=>{let o=[];if(!e)return o;let s=Object.keys(n.iiif.entities.AnnotationPage);for(let i of s)if(!t||t.indexOf(i)!==-1){let r=Nl(n,i);r&&r.views&&r.views[e]&&o.push(i)}return o},[e,t])}function Sr({canvas:e,manifest:t,all:n,canvases:o}){let s=[];if(t)for(let i of t.annotations)s.indexOf(i.id)===-1&&s.push(i.id);if(n){if(o&&o.length)for(let i of o)for(let r of i.annotations)s.indexOf(r.id)===-1&&s.push(r.id)}else if(e)for(let i of e.annotations)s.indexOf(i.id)===-1&&s.push(i.id);return s}function zl(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function br(e,t={}){let n=M(),o=O(),s=w(),i=je(),r=Ll(()=>Sr({all:t.all,manifest:o,canvas:s,canvases:i}),[t.all,s,i,o]),a=vr(e,t.all?void 0:r),l=xr(d=>{e&&n.setMetaValue([d,"annotationPageManager","views"],c=>c&&!c[e]?c:{...c||{},[e]:!1})},[e,n]),u=xr((d,c={})=>{if(!e)return;let m=n.getState(),p=[];if(c?.deselectOthers){let g=Object.keys(m.iiif.entities.AnnotationPage);for(let h of g){let S=zl(m,h);S&&S.views&&S.views[e]&&p.push(h)}}for(let g of p)l(g);n.setMetaValue([d,"annotationPageManager","views"],g=>g&&g[e]?g:{...g||{},[e]:!0})},[e,l,n]);return{availablePageIds:r,enabledPageIds:a,setPageEnabled:u,setPageDisabled:l}}function Cr(e,t){return k((n,o)=>o.get(e.map(s=>({id:s,type:t}))),[e,t])}import Ol from"mitt";import{useCallback as Bl}from"react";import{createStore as Hl}from"zustand";var Dl=Hl((e,t)=>({loaded:{},setLoaded:(n,o="done")=>{e(s=>({loaded:{...s.loaded,[n]:o}}))}})),ql=Ol();ql.on("loaded",e=>{Dl.getState().setLoaded(e.imageServiceId)});function Rr(){let e=lt(),t=Lo();return[Bl((o,{height:s,width:i})=>o&&e(o,{height:s,width:i},!0),[e]),t]}import{useCallback as Fl,useMemo as Pr,useState as $l}from"react";function Ar(e={}){let t=Qe(),n=w(e.canvasId?{id:e.canvasId}:void 0);return k((o,s)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=s.get(n.items),r=[];for(let a of i)r.push(...s.get(a.items));return r},[n])}import{createPaintingAnnotationsHelper as Wl}from"@iiif/helpers/painting-annotations";function wr(e,t=[]){let n=M(),o=Pr(()=>Wl(n),[]),s=Ar({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,r]=$l(e?.defaultChoices||[]),a=Pr(()=>o.getPaintables(s,i),[n,s,i,...t]),u={makeChoice:Fl((d,{deselectOthers:c=!0,deselect:m=!1}={})=>{a.choice&&r(p=>{if(m){let h=p.filter(S=>S!==d);if(h.length===0){let S=a.items[0].resource.id;return S?[S]:[]}return h}if(c)return[d];let g=[...p];if(g.length===0&&a.items.length){let h=a.items[0].resource.id;h&&g.push(h)}return p.indexOf(d)!==-1?p:[...p,d]})},[a.choice])};return[a,u]}function Mr(e){let t=O(),n=w(),o=M(),s=ur(),i=e?.emitter||s,[r,a]=Rr(),{enabledPageIds:l}=br(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=Cr(l,"AnnotationPage"),d=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[c,m]=wr(e,[a]);Tr(()=>{let g=h=>{m.makeChoice(h.choiceId,{deselectOthers:h.deselectOthers,deselect:h.deselect})};return i.on("make-choice",g),()=>{i.off("make-choice",g)}},[]);let p=Ir(()=>gn({canvas:n,paintables:c,supports:d,loadImageService:r,vault:o}),[n,c,o,m.makeChoice]);return Tr(()=>{let g=c.allChoices,h={canvasId:n?.id,manifestId:t?.id};g&&i.emit("choice-change",{choice:g,partOf:h})},[n?.id,c.allChoices]),Ir(()=>p.type==="unknown"?[p,fn]:[{...p,annotations:{pages:u}},m],[p,u])}import{createStylesHelper as Ul}from"@iiif/helpers";import{jsx as kr}from"react/jsx-runtime";function Er({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:o,mediaControlsDeps:s,renderMediaControls:i,renderViewerControls:r,viewControlsDeps:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,throwOnUnknown:d,children:c}){let m=w(),p=M(),g=cn(()=>Ul(p),[p]),[h,S]=Mr({strategies:e||["images"],defaultChoices:n?.map(({id:x})=>x)}),v="choice"in h?h.choice:void 0;if(un(()=>{t&&t(S)},[h.annotations]),un(()=>{o&&o(v)},[v]),un(()=>{if(n)for(let x of n)typeof x.opacity<"u"&&g.applyStyles({id:x.id},"atlas",{opacity:x.opacity})},[n]),h.type==="unknown"&&d)throw new Error(h.reason||"Unknown strategy");let f=cn(()=>({renderMediaControls:i,mediaControlsDeps:s||[],renderViewerControls:r,viewControlsDeps:a||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:u||[]}),[s,i,r,a,l,u]),y=cn(()=>({strategy:h,actions:S,choices:"choice"in h?h.choice:[]}),[h,m]);return kr(rt.Provider,{value:f,children:kr(de.Provider,{value:y,children:c})})}import{useEffect as Nr,useMemo as Yl}from"react";import{useStore as Lr}from"zustand";import{createContext as _l,useContext as jl,useEffect as Kl}from"react";var dn=_l(()=>{});function Vr(e){let t=w(),n=jl(dn);Kl(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}import{jsxs as Gl}from"react/jsx-runtime";function zr({x:e=0,y:t=0,keepCanvasScale:n=!0,renderContextMenu:o,children:s}){let{strategy:i}=E(),r=w(),a=D(),l=Xe(r,["deep-zoom"]),u=Lr(a,h=>h.setCanvasRelativePosition),d=Lr(a,h=>h.clearCanvasRelativePosition),[c,m]=St(`context-menu/${r?.id}`,r?.id,o),p=Yl(()=>n?1:Math.max(1,...i.type==="images"?i.images.map(h=>(h.width||0)/h.target?.spatial.width):[]),[n,i]);Nr(()=>{if(r)return u(r.id,{x:e,y:t,width:r.width,height:r.height}),()=>{d(r.id)}},[e,t,r,d,u]),Nr(()=>{r&&a.getState().reset()},[a,r]),Vr(p);let g=i.type==="images"?i.images.length:0;return r?Gl("world-object",{height:r.height,width:r.width,x:e,y:t,...m,...l,children:[c,s]},`${r.id}/${i.type}/${g}`):null}import{jsx as G,jsxs as Or}from"react/jsx-runtime";function me({x:e,y:t,onChoiceChange:n,registerActions:o,defaultChoices:s,isStatic:i,renderViewerControls:r,renderMediaControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:d,mediaControlsDeps:c,strategies:m,throwOnUnknown:p,rotation:g,backgroundStyle:h,alwaysShowBackground:S,keepCanvasScale:v=!1,enableSizes:f=!1,enableYouTube:y=!0,onClickPaintingAnnotation:x,components:b={},children:C,annotationPopup:R,svgTheme:A,renderContextMenu:N,renderAnnotationContextMenu:X}){return Or(Er,{throwOnUnknown:p,onChoiceChange:n,registerActions:o,strategies:m,defaultChoices:s,mediaControlsDeps:c,renderMediaControls:a,renderViewerControls:r,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:d,children:[Or(zr,{keepCanvasScale:v,x:e,y:t,renderContextMenu:N,children:[G(Xo,{alwaysShowBackground:S,backgroundStyle:h}),G(Qo,{}),G(Jo,{}),G(Zo,{isStatic:i,enableSizes:f,onClickPaintingAnnotation:x,rotation:g}),G(Co,{}),G(mo,{}),G(wo,{as:b.Audio}),G(tr,{as:b.Video}),y?G(rr,{}):null,G(yr,{theme:A,renderContextMenu:X,children:R}),C]}),G(po,{})]})}import{jsx as Br}from"react/jsx-runtime";function Hr(e){let t=w();return!t||!t.placeholderCanvas?null:Br(ne,{canvas:t.placeholderCanvas.id,children:Br(me,{renderViewerControls:e.renderViewerControls})})}import{AtlasAuto as Jl}from"@atlas-viewer/atlas";import Fr,{useCallback as xt,useMemo as Wr,useState as bt}from"react";import{ErrorBoundary as eu}from"react-error-boundary";import{useStore as $r}from"zustand";import{useEffect as Ql,useMemo as Xl}from"react";function Dr(e,t=2e3){let{currentSequenceIndex:n,sequence:o,items:s}=Ge(),i=w(),r=Xl(()=>{let l=o[n]||[];return l.length===0&&i?[{id:i.id,type:"Canvas"}]:l.map(u=>s[u])},[o,n,i,s]),a=D();Ql(()=>{let u=setInterval(()=>{if(e&&t!==-1){let d={x:e.x,y:e.y,width:e.width,height:e.height},c=a.getState().canvasRelativePositions,m={};for(let p of r){let g=c[p.id];if(g){let h=g.x,S=g.y,v=g.width,f=g.height,y={x:Math.max(h,d.x),y:Math.max(S,d.y),width:Math.min(h+v,d.x+d.width)-Math.max(h,d.x),height:Math.min(S+f,d.y+d.height)-Math.max(S,d.y)};y.width<=0||y.height<=0||(m[p.id]={x:y.x-g.x,y:y.y-g.y,width:y.width,height:y.height}),a.setState({canvasViewports:m})}}}},t);return()=>{clearTimeout(u)}},[r,e,a,t])}import{jsx as mn,jsxs as Zl}from"react/jsx-runtime";function qr({width:e,style:t,height:n,error:o,resetErrorBoundary:s}){return Zl("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[mn("h3",{children:"Error occurred"}),mn("p",{children:o.message}),mn("button",{type:"button",onClick:s,children:"Reset"})]})}import{Fragment as nu,jsx as L,jsxs as ou}from"react/jsx-runtime";function Ur(e){let t=D(),n=Wr(()=>e.name||Math.random().toString(36).substring(2,9),[e.name]);return L(cr,{identifier:n,children:L(Oe,{name:e.name,existing:t,children:L(tu,{...e})})})}function tu({name:e,children:t,errorFallback:n,outerContainerProps:o={},worldScale:s,updateViewportTimeout:i,...r}){let a=D(),l=ft(),u=$r(a,P=>P.mode),d=$r(a,P=>P.setAtlasRuntime),[c,m]=bt(),p=gt(),g=ht(),h=n||qr,[S,v]=bt({}),f=Object.entries(S),[y,x]=bt({}),b=Object.entries(y),[C,R]=bt({}),{worldScale:A,runtimeOptions:N}=Wr(()=>{if(Object.values(C).length===0)return{worldScale:1,runtimeOptions:r.runtimeOptions||{maxOverZoom:1}};let I=Math.max(...Object.values(C));return{worldScale:I,runtimeOptions:{maxOverZoom:I||1,...r.runtimeOptions||{}}}},[C,r.runtimeOptions]);Dr(c?.runtime,i);let X=xt((P,I)=>{R($=>{if(I===-1){let{[P]:pn,...le}=$;return le}return{...$,[P]:I}})},[]),T=xt((P,I,$)=>{v(({[P]:pn,...le})=>I?{...le,[P]:{element:I,props:$}}:le)},[]),z=xt((P,I,$)=>{x(({[P]:pn,...le})=>I?{...le,[P]:{element:I,props:$}}:le)},[]),_=xt(P=>{m(P),d(P.runtime),r.onCreated&&r.onCreated(P)},[r.onCreated,d]);return ou(eu,{resetKeys:[],fallbackRender:P=>L(h,{...r,...P}),children:[L(Jl,{...r,mode:u,containerProps:{style:{position:"relative"},...r.containerProps||{}},htmlChildren:L(nu,{children:f.map(([P,{element:I,props:$}])=>L(Fr.Fragment,{children:L(I,{...$||{}})},P))}),onCreated:_,runtimeOptions:N,children:L(Oe,{name:e,existing:a,children:L(ge.Provider,{value:c,children:L(dn.Provider,{value:X,children:L($t.Provider,{value:T,children:L(Wt.Provider,{value:z,children:L(yt,{bridge:g,custom:p,children:L(xo,{children:t})})})})})})})}),L("div",{children:b.map(([P,{element:I,props:$}])=>L(Fr.Fragment,{children:L(I,{...$||{}})},P))}),L("div",{id:`atlas-floating-ui-${l}`,className:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}import{Fragment as su,jsx as Q,jsxs as lu}from"react/jsx-runtime";var au=_r(function(t,n){let o=O(),s=je(),i=Ge(),{ViewerControls:r,MediaControls:a,ComplexTimelineControls:l}=t.components||{};if(ru(n,()=>i,[i]),!o)return Q("div",{});let u=0,d=o.viewingDirection==="top-to-bottom",c=o.viewingDirection==="bottom-to-top",m=o.viewingDirection==="left-to-right",p=o.viewingDirection==="right-to-left",h=o.behavior.includes("continuous")?0:t.spacing||0,S=c||p,v=iu(()=>S?[...s].reverse():s,[s,S]);return lu(su,{children:[t.header,Q(B.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,homePaddingPx:t.padding,children:v.map((f,y)=>{let x=0,b=0;return!d&&!c?(x=u,u+=f.width+h):(b=u,u+=f.height+h),Q(ne,{canvas:f.id,children:Q(B.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&r?()=>Q(r,{}):void 0,renderMediaControls:y===0&&a?()=>Q(a,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:y===0&&l?()=>Q(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x,y:b,svgTheme:t.svgTheme,rotation:t.rotation,...t.canvasProps||{},children:t.annotations},f.id)},f.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),B=_r(function({children:t,height:n,annotations:o,canvasProps:s,spacing:i,header:r,components:a,mode:l,reuseAtlas:u,renderPreset:d,runtimeOptions:c,annotationPopup:m,name:p,svgTheme:g,updateViewportTimeout:h,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:f,padding:y,rotation:x,...b},C){let R=ve();return Q(Oe,{name:p,children:Q(he,{vault:R,children:Q($n,{...b,children:Q(au,{ref:C,height:n,components:a,spacing:i,canvasProps:s,annotations:o,header:r,mode:l,reuseAtlas:u,renderPreset:d,runtimeOptions:c,annotationPopup:m,svgTheme:g,updateViewportTimeout:h,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:f,padding:y,rotation:x,children:t})})})})});B.RenderImage=Me;B.RenderCanvas=me;B.RenderAnnotationPage=ce;B.RenderAnnotation=Ae;B.Viewer=Ur;B.CanvasBackground=dt;B.Audio=nt;B.Video=pt;B.Model=ot;B.AudioHTML=Ut;B.VideoHTML=tn;B.ModelHTML=jt;B.PlaceholderCanvas=Hr;B.getAtlasStoreByName=Qn;export{_e as a,j as b,ae as c,ne as d,ue as e,he as f,M as g,k as h,ye as i,je as j,ve as k,O as l,vn as m,Sn as n,xn as o,bn as p,pi as q,Rt as r,rc as s,Cn as t,sc as u,At as v,Rn as w,An as x,xc as y,Tn as z,In as A,Mn as B,Pt as C,Pn as D,Se as E,bi as F,Ci as G,On as H,Bn as I,Ne as J,Ri as K,Hc as L,Ai as M,Ln as N,Dc as O,Hn as P,qn as Q,ze as R,zi as S,$n as T,Ge as U,Mt as V,Td as W,Un as X,_n as Y,kt as Z,be as _,Fi as $,Vd as aa,Et as ba,Vt as ca,jn as da,Kn as ea,Ce as fa,D as ga,Qn as ha,Oe as ia,Xn as ja,Zn as ka,Gd as la,ra as ma,Jn as na,Qe as oa,w as pa,Xe as qa,Re as ra,to as sa,oo as ta,Ae as ua,ro as va,ce as wa,Jm as xa,ep as ya,tp as za,Je as Aa,et as Ba,Ft as Ca,Pe as Da,H as Ea,de as Fa,E as Ga,mo as Ha,rt as Ia,q as Ja,po as Ka,fo as La,yo as Ma,So as Na,xo as Oa,Co as Pa,Ro as Qa,Ga as Ra,Ao as Sa,we as Ta,Te as Ua,wo as Va,To as Wa,Vf as Xa,us as Ya,Df as Za,Be as _a,qf as $a,Ff as ab,He as bb,$f as cb,lt as db,Xf as eb,tg as fb,ng as gb,og as hb,Do as ib,Qt as jb,qo as kb,fs as lb,gs as mb,hs as nb,rg as ob,qe as pb,Me as qb,Qo as rb,Xo as sb,ge as tb,mt as ub,Zo as vb,Jo as wb,tr as xb,rr as yb,ir as zb,Ys as Ab,sr as Bb,nl as Cb,Ee as Db,ur as Eb,dy as Fb,gt as Gb,cl as Hb,Iy as Ib,ht as Jb,yt as Kb,Tl as Lb,St as Mb,gr as Nb,yr as Ob,Vl as Pb,Sr as Qb,br as Rb,Cr as Sb,Rr as Tb,Ar as Ub,wr as Vb,Mr as Wb,Er as Xb,zr as Yb,qr as Zb,Ur as _b,B as $b};