react-iiif-vault 1.5.0 → 1.5.1

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.
@@ -1,4 +1,4 @@
1
- import{c as St,l as Ct}from"./chunk-PCXRCBVF.js";import{forwardRef as Rr,useImperativeHandle as La}from"react";import ln,{useCallback as rt,useMemo as dn,useState as be}from"react";import{AtlasAuto as Bo,ModeContext as qo}from"@atlas-viewer/atlas";import{ErrorBoundary as _o}from"react-error-boundary";import{useContext as D,useMemo as Ro}from"react";import br,{useContext as Tr,useMemo as Ir}from"react";import{jsx as wr}from"react/jsx-runtime";var Mr={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ce=br.createContext(Mr),O=()=>Tr(Ce);function Y({value:e,children:n}){let t=O(),r=Ir(()=>({...t,...e}),[e,t]);return wr(Ce.Provider,{value:r,children:n})}import Er,{useState as Vr}from"react";import{Vault as xt,globalVault as kr}from"@iiif/helpers/vault";import{jsx as Rt}from"react/jsx-runtime";var j=Er.createContext({vault:null,setVaultInstance:e=>{}});function J({vault:e,vaultOptions:n,useGlobal:t,resources:r,children:o}){let[s,i]=Vr(()=>e||(t?kr(n):n?new xt(n):new xt));return Rt(j.Provider,{value:{vault:s,setVaultInstance:i},children:Rt(Y,{value:r||{},children:o})})}import{useContext as mo}from"react";import{createContext as fo,useMemo as po}from"react";import{globalVault as Nr}from"@iiif/helpers/vault";import{useContext as Lr}from"react";function X(e){let n=Lr(j);return e||(n&&n.vault?n.vault:Nr())}import{useEffect as zr,useMemo as Or,useState as _e}from"react";function At(e,{noCache:n=!1}={}){let t=typeof e=="string"?e:e.id,r=X(),[o,s]=_e(t),[i,a]=_e(void 0),u=Or(()=>r.get(t,{skipSelfReturn:!0})||void 0,[t,r]),[c,l]=_e(u);return zr(()=>{(async()=>{try{let d=u&&!n?u:await r.load(t),h=d?d.id||d["@id"]:null;d&&o!==h&&s(h),l(d)}catch(d){a(d)}})()},[t,n]),{isLoaded:!!c,id:o,requestId:t,error:i,resource:c,cached:!!(c&&c===u)}}function Pt(e,n){let{id:t,isLoaded:r,error:o,resource:s,requestId:i,cached:a}=At(e,n);return{id:t,isLoaded:r,error:o,manifest:s,requestId:i,cached:a}}import{jsx as Hr}from"react/jsx-runtime";function bt({manifest:e,children:n}){return Hr(Y,{value:{manifest:e},children:n})}import{jsx as Fr}from"react/jsx-runtime";function _({canvas:e,children:n}){return Fr(Y,{value:{canvas:e},children:n})}import{useContext as Br}from"react";import qr from"react";import{useContext as Dr}from"react";var P=()=>{let{vault:e}=Dr(j);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};import{useEffect as $r,useState as Ur}from"react";function b(e,n=[]){let t=P(),[r,o]=Ur(()=>e(t.getState(),t));return $r(()=>t.subscribe(s=>e(s,t),s=>{o(s)},!1),n),r}var ee=qr.createContext([]);function xe(){let e=Br(ee);return b(n=>e.map(t=>n.iiif.entities.Canvas[t]).filter(Boolean),[e])}import{useMemo as _r}from"react";function w(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=P(),i=t||o.manifest,a=b(u=>i?u.iiif.entities.Manifest[i]:void 0,[i]);return _r(()=>{if(a)return r?r(a):a},[a,r,...n])}import{jsx as Kr}from"react/jsx-runtime";function Tt({range:e,children:n}){return Kr(Y,{value:{range:e},children:n})}function Wr(e,n){for(let t of n.items){if(t.type==="Canvas")return t;if(t.type==="SpecificResource")return t.source;if(t.type==="Range"){let r=Wr(e,e.get(t));if(r)return r}}return null}function Ke(e,n){let t=[];for(let r of n.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?t.push({id:r.source.id.split("#")[0],type:"Canvas"}):t.push(r.source)),r.type==="Range"&&t.push(...Ke(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;t.push({id:o,type:"Canvas"})}return t}function Ns(e,n,t){for(let r of n.structures){let o=It(e,e.get(r),t);if(o)return o}return null}function It(e,n,t){for(let r of n.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===t||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&t===o)return n;if(r.type==="Range"){let s=It(e,e.get(r),t);if(s)return s}}return null}function Os(e,n,t,r=!1){let o=n.behavior,s=t?e.get(t):null;if(!s)return[];let i=s.behavior,a=r?!1:o.includes("paged"),u=a?!1:o.includes("continuous"),c=a||u?!1:o.includes("individuals"),l=i.includes("facing-pages"),d=i.includes("non-paged");if(l||d||c||r)return[{id:s.id,type:"Canvas"}];let[h,g]=We(e,n);if(u)return h;let v=h.findIndex(m=>m.id===t);if(v===-1)return[];for(let m of g)if(m.includes(v))return m.map(C=>h[C]);return[{id:s.id,type:"Canvas"}]}function We(e,n,{disablePaging:t,skipNonPaged:r}={}){let o=n.behavior,s=o.includes("paged"),i=s?!1:o.includes("continuous"),a=s||i?!1:o.includes("individuals"),u=n.type==="Manifest"?n.items:Ke(e,n);if(i)return[u,[u.map((v,m)=>m)]];if(a||!s||t)return[u,u.map((v,m)=>[m])];let c=[],l=[],d=()=>{l.length&&(c.push([...l]),l=[])},h=0,g=!1;for(let v=0;v<u.length;v++){let m=e.get(u[v]);if(m.behavior.includes("non-paged")){v===h&&h++,r||(d(),c.push([v]),d());continue}if(v===h||m.behavior.includes("facing-pages")){l.length&&(g=!0),d(),c.push([v]),d();continue}if(l.push(v),g){d(),g=!1;continue}l.length>1&&d()}return l.length&&d(),[u,c]}import{useCallback as Re,useMemo as jr,useRef as Qr,useState as Gr}from"react";import{useMemo as Yr}from"react";function Mt(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=t||o.range,i=b(a=>s?a.iiif.entities.Range[s]:void 0,[s]);return Yr(()=>{if(i)return r?r(i):i},[i,r,...n])}function wt({startCanvas:e,disablePaging:n}){let t=P(),r=w(),o=Mt(),[s,i]=Gr(void 0),a=o||r;if(!a)throw new Error("Nothing selected");let[u,c]=jr(()=>We(t,a,{disablePaging:n}),[t,a,n]),l=Qr(c);if(l.current!==c){let C=l.current[s][0],p=c.findIndex(S=>S.includes(C));l.current=c,i(p)}let d=Re(m=>{let C=c.findIndex(p=>p.includes(m));i(C===-1?0:C)},[u,c]),h=Re(m=>{let C=u.findIndex(p=>p.id===m);C!==-1?d(C):i(0)},[u,c]),g=Re(()=>{i(m=>m>=c.length-1?m:m+1)},[c]),v=Re(()=>{i(m=>m<=0?0:m-1)},[c]);return typeof s>"u"&&(e?h(e):i(0)),{visibleItems:c[s]?.map(m=>u[m].id)||[],cursor:s,items:u,sequence:c,hasPrevious:s>0,hasNext:s<c.length-1,setSequenceIndex:i,setCanvasIndex:d,setCanvasId:h,next:g,previous:v}}import{createContext as Qe,useContext as $t,useEffect as Jr,useMemo as Xr}from"react";import{useStore as le}from"zustand";import{createStore as Vt}from"zustand/vanilla";function Qs(e){let n=e.service||e.services||[];for(let t of n)if(t.type==="AuthProbeService2")return!0;return!1}function H(e,n,t){let r=n.findIndex(i=>i.service.id===e);if(r===-1)return n;let o=[...n],s=t(o[r]);return s===o[r]?n:(o[r]=s,o)}var kt=()=>Vt((e,n)=>({currentAuth:-1,authItems:[],login:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot login to non-active service");let r=t.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:H(t.id,n().authItems,o=>({...o,isPending:!0}))})),Et(t.service).then(()=>{Ye(r).then(o=>{let s=o.expiresIn,i=Date.now()+s*1e3;e(()=>({authItems:H(t.id,n().authItems,a=>({...a,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:i}}))}))}).catch(o=>{e(()=>({authItems:H(t.id,n().authItems,s=>({...s,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||!t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot logout of non-active service");let r=t.service.service.find(i=>i.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${zt()}`,s=window.open(o);e(()=>({authItems:H(t.id,n().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let t=n().authItems.length,r=n().currentAuth+1;r>=t||e(()=>({currentAuth:r}))},previousAuth:()=>{let t=n().currentAuth-1;t<0||e(()=>({currentAuth:t}))},setAuth:t=>{t!==-1&&(t<0||t>=n().authItems.length)||e(()=>({currentAuth:t}))},addService:(t,r)=>{if(!t.service)return;let o=t.service.find(a=>a.type==="AuthAccessTokenService2"),s=t;if(n().authItems.find(a=>a.service.id===t.id)){e(()=>({authItems:H(t.id,n().authItems,a=>({...a,instances:a.instances+1}))}));return}if(e(()=>({currentAuth:s.profile==="active"?0:n().currentAuth,authItems:[{id:t.id,type:t.profile,service:t,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...n().authItems]})),t.profile==="external"){if(!o)throw new Error("Token service not found");Ye(o).then(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:a.message}))}))})}if(t.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:H(t.id,n().authItems,a=>({...a,isPending:!0}))})),Et(s).then(()=>{Ye(o).then(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,error:a.message}))}))})})}t.profile},removeService:(t,r)=>{let o=n().currentAuth===n().authItems.findIndex(i=>i.service.id===t.id),s=n().currentAuth;if(o){let i=n().authItems.find(u=>u.service.id===t.id);i&&i.instances>1||(s=n().authItems.findIndex(c=>c.service.id!==t.id&&c.instances>0))}e(()=>({authItems:H(t.id,n().authItems,i=>({...i,instances:i.instances-1})),currentAuth:s}))}})),Nt=(e,n)=>Vt((t,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:n||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){t({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}t({status:"probing"});let s=r().token;try{let i=await fetch(o,{headers:s?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(a=>a.json());if(i.status===200)t({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(i.status<400&&i.status>=300){if(!i.location)throw new Error("Redirect location not found");t({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)t({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!i.substitute,substituteResource:i.substitute||null,error:"Unauthorized",errorHeading:i.heading||{en:["Unauthorized"]},errorNote:i.note||null});else throw new Error("Unknown error")}catch(i){t({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){t({token:o})}}));function Lt(e){let n=e.service||e.services||[],t={hasAuth:!1,services:{}};for(let r of n)if(r.type==="AuthProbeService2"){t.services.probe=r,t.hasAuth=!0;let o=r.service.filter(s=>s.type==="AuthAccessService2");o[0]&&(t.services.access=o[0])}return t}async function Ye(e,{strict:n=!0}={}){return new Promise((t,r)=>{let o=Math.random().toString(36).substring(7),s=`${e.id}?messageId=${o}&origin=${window.location.origin}`,i=c=>{let l=c.data;if(l.messageId===o){if(n&&l.type!=="AuthAccessToken2"){a(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){a(),r("Invalid response, expected accessToken");return}a(),t(l)}},a=()=>window.removeEventListener("message",i),u=document.createElement("iframe");u.src=s,u.style.display="none",document.body.appendChild(u),window.addEventListener("message",i)})}function zt(e){let n=window.location;if(e){let t=document.createElement("a");return t.href=e,t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}return n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}async function Et(e){let n=`${e.id}?origin=${zt()}`,t=window.open(n);if(!t)throw new Error("Failed to open window");return new Promise((r,o)=>{let s=setInterval(()=>{t.closed&&(clearInterval(s),r())},500)})}import{useEffect as Ot,useMemo as Ht}from"react";import{useStore as Zr}from"zustand";function Ft(e){let n=Ht(()=>Lt(e),[e]),t=Dt(n.services.access?.id),r=Ht(()=>Nt(n.services.probe,t),[n.services.probe]),o=Zr(r);return Ot(()=>{o.status==="unknown"&&!t&&o.probe()},[n.services.probe,o.status]),Ot(()=>{t&&(o.setToken(t),o.probe())},[t]),[e,o,n.hasAuth]}import{jsx as Ae}from"react/jsx-runtime";var te=Qe(null),eo=Qe(null);eo.displayName="CurrentAuth";var to=Qe(null);to.displayName="AuthActions";function Ut({children:e}){let n=Xr(()=>kt(),[]);return Ae(te.Provider,{value:n,children:e})}function Bt(){return!!$t(te)}function de(){let e=$t(te);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function no(){let e=de();return le(e,t=>({login:t.login,logout:t.logout,nextAuth:t.nextAuth,previousAuth:t.previousAuth,setAuth:t.setAuth,addService:t.addService,removeService:t.removeService}))}function fu(){let e=de();return le(e,n=>n)}function ro(e){let n=de();return le(n,r=>r.authItems.find(o=>o.service.id===e))}function Dt(e){let n=de();return le(n,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function pu(e){let n=de();return le(n,r=>{let o=r.authItems.find(s=>s.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function oo(e){let n=no(),t=ro(e.service.id);return Jr(()=>(n?.addService(e.service,e.probeId),()=>{n?.removeService(e.service,e.probeId)}),[e.service]),t?(t.error||!t.isLoggedIn,e.children):null}function je(){return null}function qt(e){let[n,t,r]=Ft(e.resource),o=e.fallbackComponent||je,s=e.loadingComponent||je,i=e.errorComponent||je,a=t.service,u=null;if(!r||!a)return e.children(n);let c=a.service.filter(l=>l.type==="AuthAccessService2");t.status==="error"&&(u=Ae(i,{resource:e.resource,error:t.error||"",heading:t.errorHeading,note:t.errorNote,extra:e.extra})),(t.status==="unknown"||t.status==="probing")&&(u=Ae(s,{})),t.status==="success"&&(u=e.children(n));for(let l of c)u=Ae(oo,{service:l,probeId:a.id,children:u},l.id);return u}import{createContext as uo,useContext as Au,useMemo as co}from"react";import{createStore as io}from"zustand/vanilla";var ao=e=>e.id||e["@id"];function so(e){return(Array.isArray(e.service)?e.service:[e.service]).find(t=>t.profile==="http://iiif.io/api/search/0/autocomplete"||t.profile==="http://iiif.io/api/search/1/autocomplete"||t.profile==="AutoCompleteService1")}var _t=e=>{let n;typeof e=="string"?n={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:n=e;let t=n?ao(n):void 0,r=null;return io((o,s)=>({service:n,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!n,hasAutocomplete:n?!!so(n):!1,errorMessage:"",search(i,a={}){if(!t)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let u=new URLSearchParams;i.q&&u.set("q",i.q),i.motivation&&u.set("motivation",i.motivation),i.date&&u.set("date",i.date),i.user&&u.set("user",i.user),o({loading:!0}),fetch(`${t}?${u.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...a.headers||{}}}).then(async c=>{if(!r?.signal.aborted)if(c.ok){let l=await c.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(i){let a=s().resources.find(u=>u["@id"]===i);o({highlight:a})},nextResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[0]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[0]||null});return}o({highlight:i[u+1]||i[0]||null})},previousResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[i.length-1]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[i.length-1]||null});return}if(u===0){o({highlight:i[i.length-1]||null});return}o({highlight:i[u-1]||i[i.length-1]||null})}}))};import{useStore as Mu}from"zustand";function Kt(){let e=w();return e?e.service.find(n=>n.profile==="SearchService1"||n.profile==="http://iiif.io/api/search/1/search"):void 0}import{jsx as Ge}from"react/jsx-runtime";var ne=uo(null);ne.displayName="Search";function Wt(e){let n=Kt();return e.store?Ge(ne.Provider,{value:e.store,children:e.children}):Ge(lo,{service:n,children:e.children})}function lo({service:e,children:n}){let t=co(()=>_t(e),[e]);return Ge(ne.Provider,{value:t,children:n})}import{jsx as z}from"react/jsx-runtime";var me=()=>{},fe=fo({setCurrentCanvasId:me,setCurrentCanvasIndex:me,nextCanvas:me,previousCanvas:me,items:[],sequence:[],setSequenceIndex:me,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function go(e){let n=w(),{cursor:t,visibleItems:r,next:o,sequence:s,items:i,setCanvasIndex:a,setCanvasId:u,previous:c,setSequenceIndex:l,hasNext:d,hasPrevious:h}=wt({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=po(()=>({sequence:s,items:i,setCurrentCanvasId:u,nextCanvas:o,previousCanvas:c,totalCanvases:i.length,setCurrentCanvasIndex:a,setSequenceIndex:l,currentSequenceIndex:t,hasNext:d,hasPrevious:h}),[s,i,u,o,c,i,a,l,t]);return n?r.length===0?null:z(fe.Provider,{value:g,children:z(ee.Provider,{value:r,children:z(_,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),z("div",{children:"Sorry, something went wrong."}))}function Yt(e){let n=X(e.vault),t=Pt(e.manifest);if(!t)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),z("div",{children:"Sorry, something went wrong."});if(t.error)return z("div",{children:t.error.toString()});if(!t.isLoaded)return z("div",{children:"Loading..."});let r=z(go,{...e,children:e.children});return z(J,{vault:n,children:z(bt,{manifest:t.id,children:z(Ut,{children:z(Wt,{children:e.rangeId?z(Tt,{range:e.rangeId,children:r}):r})})})})}function jt(){return mo(fe)}import vo from"react";import{createContext as ho,useMemo as yo}from"react";import So from"mitt";import{jsx as xo}from"react/jsx-runtime";var Co=So(),re=ho({emitter:Co});re.displayName="Events";function Qt(){return vo.useContext(re).emitter}function ic({emitter:e,children:n}){return xo(re.Provider,{value:yo(()=>({emitter:e}),[e]),children:n})}import Ao from"react";import{jsx as K}from"react/jsx-runtime";var Ze=Ao.createContext({});function Gt(){let e=D(Ze),n=Object.keys(e),t={};for(let r of n)e[r].Provider&&(t[r]={value:D(e[r]),Provider:e[r].Provider});return t}function Po(e){let n=Object.keys(e),t=e.children;for(let r of n){if(r==="children")continue;let{value:o,Provider:s}=e[r];t=K(s,{value:o,children:t})}return t}function Sc(e){let n=D(Ze),t=Ro(()=>({...n,...e.providers}),[e.providers]);return K(Ze.Provider,{value:t,children:e.children})}function Zt(){return{VaultContext:D(j),ResourceContext:D(Ce),SimpleViewerReactContext:D(fe),VisibleCanvasReactContext:D(ee),AuthRContext:D(te),SearchReactContext:D(ne),ReactEventContext:D(re)}}function Jt(e){return K(J,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:K(ee.Provider,{value:e.bridge.VisibleCanvasReactContext,children:K(fe.Provider,{value:e.bridge.SimpleViewerReactContext,children:K(re.Provider,{value:e.bridge.ReactEventContext,children:K(te.Provider,{value:e.bridge.AuthRContext,children:K(ne.Provider,{value:e.bridge.SearchReactContext,children:e.custom?K(Po,{...e.custom,children:e.children}):e.children})})})})})})}import{createContext as wo,useContext as Eo,useMemo as Vo}from"react";import{useCallback as en,useLayoutEffect as To,useMemo as Io,useRef as Mo}from"react";import{entityActions as Je}from"@iiif/helpers/vault/actions";import{useMemo as bo}from"react";function Xt(){let n=P().getStore();return bo(()=>t=>n.dispatch(t),[n])}function tn(e){return typeof e!="string"&&e&&e.bindToVault}function nn(){let e=P(),n=Mo([]),t=Xt(),r=Io(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);To(()=>{let a={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};t(Je.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[r]);let o=b(a=>r&&a.iiif.entities.AnnotationPage[r]||null,[r]),s=en((a,u)=>{if(r){if(tn(a)){let d=a;d.__vault||d.bindToVault(e),a=typeof d.source=="string"?d.source:d.source.id,n.current[a]=d}else typeof a!="string"&&(a=a.id);let c=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:a,type:"Annotation"});c&&l&&(c.items.find(d=>d.id===l.id)||t(Je.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:u})))}},[r]),i=en(a=>{r&&(tn(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),n.current[a]&&n.current[a].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&t(Je.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[r]);return[o,{addAnnotation:s,removeAnnotation:i}]}import{jsx as ko}from"react/jsx-runtime";var rn=wo(null);function on(){let e=Eo(rn);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function an({children:e}){let[n,{addAnnotation:t,removeAnnotation:r}]=nn();return ko(rn.Provider,{value:Vo(()=>({fullPage:n,addAnnotation:t,removeAnnotation:r}),[n]),children:e})}import{jsx as Xe,jsxs as No}from"react/jsx-runtime";function sn({width:e,style:n,height:t,error:r,resetErrorBoundary:o}){return No("div",{style:{width:e,height:t,minHeight:500,...n||{},background:"#f9f9f9"},children:[Xe("h3",{children:"Error occurred"}),Xe("p",{children:r.message}),Xe("button",{type:"button",onClick:o,children:"Reset"})]})}import{createContext as Lo,useContext as zo}from"react";var Q=Lo(null);function Pe(){return zo(Q)}import{createContext as un,useContext as Oo,useEffect as Ho}from"react";var et=un(()=>{}),tt=un(()=>{});function E(e,n,t,r,o=[]){let s=Oo(e==="portal"?tt:et);Ho(()=>(e!=="none"&&s(n,t,r),()=>{s(n,null)}),[n,e,s,...o])}import{createContext as Do,useContext as $o,useEffect as Uo}from"react";import{useMemo as Fo}from"react";function A(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=t||o.canvas,i=b(a=>s?a.iiif.entities.Canvas[s]:void 0,[s]);return Fo(()=>{if(i)return r?r(i):i},[i,r,...n])}var nt=Do(()=>{});function cn(e){let n=A(),t=$o(nt);Uo(()=>n&&n.id?(t(n.id,e),()=>t(n.id,-1)):()=>{},[n,e])}import{Fragment as Ko,jsx as V,jsxs as Wo}from"react/jsx-runtime";function mn({children:e,errorFallback:n,outerContainerProps:t={},worldScale:r,...o}){let[s,i]=be(),a=Gt(),u=Zt(),c=n||sn,[l,d]=be({}),h=Object.entries(l),[g,v]=be({}),m=Object.entries(g),[C,p]=be({}),S=dn(()=>r||Math.max(...Object.values(C)),[C]),f=dn(()=>({maxOverZoom:S||1,...o.runtimeOptions||{}}),[S,o.runtimeOptions]),y=rt((R,x)=>{p(N=>{if(x===-1){let{[R]:he,...F}=N;return F}return{...N,[R]:x}})},[]),T=rt((R,x,N)=>{d(({[R]:he,...F})=>x?{...F,[R]:{element:x,props:N}}:F)},[]),I=rt((R,x,N)=>{v(({[R]:he,...F})=>x?{...F,[R]:{element:x,props:N}}:F)},[]);return Wo(_o,{resetKeys:[],fallbackRender:R=>V(c,{...o,...R}),children:[V(Bo,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:V(Ko,{children:h.map(([R,{element:x,props:N}])=>V(ln.Fragment,{children:V(x,{...N||{}})},R))}),onCreated:R=>{i(R),o.onCreated&&o.onCreated(R)},runtimeOptions:f,children:V(Q.Provider,{value:s,children:V(nt.Provider,{value:y,children:V(et.Provider,{value:T,children:V(tt.Provider,{value:I,children:V(Jt,{bridge:u,custom:a,children:V(qo.Provider,{value:o.mode||"explore",children:V(an,{children:e})})})})})})})}),V("div",{children:m.map(([R,{element:x,props:N}])=>V(ln.Fragment,{children:V(x,{...N||{}})},R))})]})}import{mergeStyles as Jo,RegionHighlight as Xo}from"@atlas-viewer/atlas";import{useMemo as fn}from"react";import{createEventsHelper as Yo}from"@iiif/helpers/events";function Te(e,n){let t=P(),r=fn(()=>Yo(t),[t]),o=b(()=>e&&e.id?t.getResourceMeta(e.id,"eventManager"):null,[e]);return fn(()=>e?r.getListenersAsProps(e,n):{},[o,e,t,n])}import{useMemo as jo}from"react";import{createStylesHelper as Qo}from"@iiif/helpers/styles";function oe(e,n){let t=P(),r=jo(()=>Qo(t),[t]);return b(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?n?o[n]:o:void 0},[e,n])}import{useMemo as ei}from"react";import{useMemo as Go}from"react";import{expandTarget as Zo}from"@iiif/helpers/annotation-targets";function Ie(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=P(),i=t||o.annotation,a=b(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),u=b(c=>a&&a.body?a.body.map(l=>l?l.type==="SpecificResource"?{...l,source:s.get(l)}:l?c.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[a]);return Go(()=>{if(!a)return;let c={...a,body:u,target:Zo(a.target,{typeMap:s.getState().iiif.mapping})};return r?r(c):c},[a,r,u,...n])}import{jsx as ti}from"react/jsx-runtime";var Me=({id:e,style:n,className:t,interactive:r})=>{let o=Ie({id:e}),s=oe(o,"atlas"),i=oe(o,"html"),a=Te(o,["atlas"]),u=A(),c=ei(()=>Jo(n,s),[n,s]);return u&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===u.id||o.target.source===u.id)?ti(Xo,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:c,className:i?.className||t,interactive:!!(i?.href||r),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...a}):null};import{Fragment as ri}from"react";import{useMemo as ni}from"react";function pn(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=t||o.annotationPage,i=b(a=>s?a.iiif.entities.AnnotationPage[s]:void 0,[s]);return ni(()=>{if(i)return r?r(i):i},[i,...n])}import{jsx as gn}from"react/jsx-runtime";var pe=({className:e,page:n})=>{let t=pn({id:n.id})||n,r=oe(t,"atlas"),o=oe(t,"html");return b(s=>t.id?s.iiif.entities.AnnotationPage[t.id]:null,[]),gn(ri,{children:t.items?.map(s=>gn(Me,{id:s.id,style:r,className:o?.className||e},s.id))})};import{useEffect as ot,useMemo as it}from"react";import{useEffect as Mn,useMemo as wn}from"react";import{useCallback as yn,useMemo as ii}from"react";function oi(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function vn(e,n){return b(t=>{let r=[];if(!e)return r;let o=Object.keys(t.iiif.entities.AnnotationPage);for(let s of o)if(!n||n.indexOf(s)!==-1){let i=oi(t,s);i&&i.views&&i.views[e]&&r.push(s)}return r},[e,n])}function hn({canvas:e,manifest:n,all:t,canvases:r}){let o=[];if(n)for(let s of n.annotations)o.indexOf(s.id)===-1&&o.push(s.id);if(t){if(r&&r.length)for(let s of r)for(let i of s.annotations)o.indexOf(i.id)===-1&&o.push(i.id)}else if(e)for(let s of e.annotations)o.indexOf(s.id)===-1&&o.push(s.id);return o}function ai(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function Sn(e,n={}){let t=P(),r=w(),o=A(),s=xe(),i=ii(()=>hn({all:n.all,manifest:r,canvas:o,canvases:s}),[n.all,o,s,r]),a=vn(e,n.all?void 0:i),u=yn(l=>{e&&t.setMetaValue([l,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,t]),c=yn((l,d={})=>{if(!e)return;let h=t.getState(),g=[];if(d?.deselectOthers){let v=Object.keys(h.iiif.entities.AnnotationPage);for(let m of v){let C=ai(h,m);C&&C.views&&C.views[e]&&g.push(m)}}for(let v of g)u(v);t.setMetaValue([l,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,u,t]);return{availablePageIds:i,enabledPageIds:a,setPageEnabled:c,setPageDisabled:u}}function Cn(e,n){return b((t,r)=>r.get(e.map(o=>({id:o,type:n}))),[e,n])}import li from"mitt";import{useCallback as di}from"react";import{createStore as mi}from"zustand";import si,{useContext as ui}from"react";import{imageServices as ci}from"@iiif/helpers/image-service";import{useStore as we}from"zustand";var xn=si.createContext(ci.store);xn.displayName="ImageServicesHelper";function Ee(){return ui(xn)}function Rn(e){let n=Ee();return we(n,({loaded:t})=>t[e])}function Ve(){let e=Ee();return we(e,({loadServiceSync:n})=>n)}function An(){let e=Ee();return we(e,({loaded:n})=>n)}function pd(){let e=Ee();return we(e,({loadService:n})=>n)}var fi=mi((e,n)=>({loaded:{},setLoaded:(t,r="done")=>{e(o=>({loaded:{...o.loaded,[t]:r}}))}})),pi=li();pi.on("loaded",e=>{fi.getState().setLoaded(e.imageServiceId)});function Pn(){let e=Ve(),n=An();return[di((r,{height:o,width:s})=>r&&e(r,{height:o,width:s},!0),[]),n]}import{useCallback as gi,useMemo as Tn,useState as vi}from"react";function bn(e={}){let n=Ie(),t=A(e.canvasId?{id:e.canvasId}:void 0);return b((r,o)=>{if(!t)return[];if(n&&e.enableSingleAnnotation)return[n];let s=o.get(t.items),i=[];for(let a of s)i.push(...o.get(a.items));return i},[t])}import{createPaintingAnnotationsHelper as hi}from"@iiif/helpers/painting-annotations";function In(e,n=[]){let t=P(),r=Tn(()=>hi(t),[]),o=bn({enableSingleAnnotation:e?.enableSingleAnnotation}),[s,i]=vi(e?.defaultChoices||[]),a=Tn(()=>r.getPaintables(o,s),[t,o,s,...n]),c={makeChoice:gi((l,{deselectOthers:d=!0,deselect:h=!1}={})=>{a.choice&&i(g=>{if(h){let m=g.filter(C=>C!==l);if(m.length===0){let C=a.items[0].resource.id;return C?[C]:[]}return m}if(d)return[l];let v=[...g];if(v.length===0&&a.items.length){let m=a.items[0].resource.id;m&&v.push(m)}return g.indexOf(l)!==-1?g:[...g,l]})},[a.choice])};return[a,c]}function En(e){let n=w(),t=A(),r=P(),o=Qt(),s=e?.emitter||o,[i,a]=Pn(),{enabledPageIds:u}=Sn(e?.annotationPageManagerId||n?.id||t?.id,{all:!1}),c=Cn(u,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,h]=In(e,[a]);Mn(()=>{let v=m=>{h.makeChoice(m.choiceId,{deselectOthers:m.deselectOthers,deselect:m.deselect})};return s.on("make-choice",v),()=>{s.off("make-choice",v)}},[]);let g=wn(()=>Ct({canvas:t,paintables:d,supports:l,loadImageService:i,vault:r}),[t,d,r,h.makeChoice]);return Mn(()=>{let v=d.allChoices,m={canvasId:t?.id,manifestId:n?.id};v&&s.emit("choice-change",{choice:v,partOf:m})},[t?.id,d.allChoices]),wn(()=>g.type==="unknown"?[g,St]:[{...g,annotations:{pages:c}},h],[g,c])}import{createContext as yi,useContext as Si}from"react";var ke=yi(null);ke.displayName="Strategy";function M(){let e=Si(ke);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{createStylesHelper as Ri}from"@iiif/helpers";import{createContext as Ci,useContext as xi}from"react";var Ne=Ci(null);Ne.displayName="Controls";function L(){let e=xi(Ne);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{jsx as Vn}from"react/jsx-runtime";function kn({strategies:e,registerActions:n,defaultChoices:t,onChoiceChange:r,mediaControlsDeps:o,renderMediaControls:s,renderViewerControls:i,viewControlsDeps:a,renderComplexTimelineControls:u,complexTimelineControlsDeps:c,throwOnUnknown:l,children:d}){let h=A(),g=P(),v=it(()=>Ri(g),[g]),[m,C]=En({strategies:e||["images"],defaultChoices:t?.map(({id:y})=>y)}),p="choice"in m?m.choice:void 0;if(ot(()=>{n&&n(C)},[m.annotations]),ot(()=>{r&&r(p)},[p]),ot(()=>{if(t)for(let y of t)typeof y.opacity<"u"&&v.applyStyles({id:y.id},"atlas",{opacity:y.opacity})},[t]),m.type==="unknown"&&l)throw new Error(m.reason||"Unknown strategy");let S=it(()=>({renderMediaControls:s,mediaControlsDeps:o||[],renderViewerControls:i,viewControlsDeps:a||[],renderComplexTimelineControls:u,complexTimelineControlsDeps:c||[]}),[o,s,i,a,u,c]),f=it(()=>({strategy:m,actions:C,choices:"choice"in m?m.choice:[]}),[m,h]);return Vn(Ne.Provider,{value:S,children:Vn(ke.Provider,{value:f,children:d})})}import{useMemo as Ai}from"react";import{jsx as Pi}from"react/jsx-runtime";function Nn({x:e=0,y:n=0,keepCanvasScale:t,children:r}){let{strategy:o}=M(),s=A(),i=Te(s,["deep-zoom"]),a=Ai(()=>t?1:Math.max(1,...o.type==="images"?o.images.map(c=>(c.width||0)/c.target?.spatial.width):[]),[t,o]);cn(a);let u=o.type==="images"?o.images.length:0;return s?Pi("world-object",{height:s.height,width:s.width,x:e,y:n,...i,children:r},`${s.id}/${o.type}/${u}`):null}import{jsx as bi}from"react/jsx-runtime";function Le({style:e}){let n=A();return!n||!n.height||!n.width?null:bi("box",{interactive:!1,target:{x:0,y:0,width:Number(n.width),height:Number(n.height)},style:e})}import{jsx as Ti}from"react/jsx-runtime";function Ln({backgroundStyle:e,alwaysShowBackground:n}){let{strategy:t}=M();return t.type!=="empty"&&!n?null:Ti(Le,{style:e})}import{useLayoutEffect as Ki,useMemo as Wi}from"react";import Ei from"mitt";import{useCallback as $,useEffect as zn,useReducer as Ii,useRef as ze}from"react";function Mi(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function wi(e,n){switch(n.type){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:n.volume,isMuted:n.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function at(e){let n=Math.round(e);return`${Math.floor(n/60)}:${`${n%60}`.padStart(2,"0")}`}function ie(e){let[n,t]=Ii(wi,Mi(e.duration)),r=ze(null),o=ze(null),s=ze(null),i=ze(!1),a=$(()=>{o.current&&r.current&&(o.current.innerHTML=at(r.current.currentTime),s.current&&(s.current.style.width=`${r.current.currentTime/e.duration*100}%`),i.current!==r.current.muted&&(i.current=r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),u=$(()=>{r.current&&(t({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{t({type:"PLAY"})}),a())},[a]),c=$(()=>{r.current&&(r.current.duration>0&&r.current.paused?u():l())},[a]),l=$(()=>{r.current&&(r.current.pause(),t({type:"PAUSE"}),a())},[a]),d=$(()=>{r.current&&(r.current.muted=!r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),h=$(()=>{r.current&&(r.current.muted=!0,t({type:"MUTE"}))},[]),g=$(()=>{r.current&&(r.current.muted=!1,t({type:"UNMUTE"}))},[]),v=$(p=>{r.current&&(r.current.muted=!1,r.current.volume=p/100,t({type:"SET_VOLUME",volume:p}))},[]),m=$(p=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(p*e.duration,e.duration)),a())},[]),C=$(p=>{if(r.current){let S=typeof p=="function"?p(r.current.currentTime):p;r.current.currentTime=Math.max(0,Math.min(S,e.duration)),a()}},[]);return zn(()=>{let p=setInterval(()=>{a()},350);return()=>clearInterval(p)},[a,e.duration]),zn(()=>{let p=()=>{t({type:"FINISHED"})},S=r.current;return S?.addEventListener("ended",p),()=>S?.removeEventListener("ended",p)},[]),[{element:r,currentTime:o,progress:s},n,{play:u,pause:l,playPause:c,mute:h,unmute:g,toggleMute:d,setVolume:v,setDurationPercent:m,setTime:C}]}import{createStore as Vi}from"zustand/vanilla";function On({currentKeyFrameIndex:e,keyframes:n,targetTime:t,currentTime:r}){if(r<=t){let o=n.findIndex(a=>a.time>t);if(o===-1)return[e,[]];let s={},i=n.slice(e,o);for(let a of i)a.type==="enter"&&(s[a.id]=a),a.type==="exit"&&(s[a.id]?delete s[a.id]:s[a.id]=a);return[o,Object.values(s)]}return[e,[]]}function Hn({complexTimeline:e,startTime:n=0}){let t=Ei(),r={},o={progress:null,currentTime:null},s=0,i=null,a=0,u=null;function c(){let S=C.getState().visibleElements,f=r,y=[],T=Object.keys(f);for(let I of T){let R=f[I],x=S[I];R&&x&&y.push(R)}return y}function l(){return Object.keys(r).map(S=>r[S])}function d(p){o.currentTime&&(o.currentTime.innerHTML=at(p),o.progress&&(o.progress.style.width=`${p/e.duration*100}%`))}let h=()=>{let p=C.getState(),S=p.currentPrime;if(!S)return;let f=r,y=p.visibleElements,T=Object.keys(f);for(let I of T){let R=f[I],x=y[I];if(R&&I!==S.id&&x){let N=a-x.time*1e3;Math.abs(a-x.time*1e3-R.currentTime*1e3)>300&&(R.currentTime=N/1e3)}}},g=(p=0)=>{let S=p-s,f=C.getState();if(f.isPlaying){let y=f.currentPrime;if(y){let x=r[y.id];x&&(x.paused?a+=S:a=(y.time+x.currentTime)*1e3)}else a+=S;let T=a/1e3;if(T>f.duration){C.getState().setTime(0),C.setState({isPlaying:!1}),v(),d(0);return}d(T);let[I,R]=On({currentTime:T,currentKeyFrameIndex:f.nextKeyframeIndex,keyframes:f.complexTimeline.keyframes,targetTime:T});R.length&&f.applyKeyframes(I,R)}s=p,i=requestAnimationFrame(g)},v=()=>{i&&cancelAnimationFrame(i)},m=(p,S)=>{},C=Vi((p,S)=>({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:()=>{S().clockRunning||(g(),u=setInterval(h,500)),p({clockRunning:!0,clockStartRequests:S().clockStartRequests+1})},applyKeyframes(f,y){let T=S(),I={...T.visibleElements},R=T.currentPrime;for(let x of y)x.type==="enter"&&(I[x.id]=x,t.emit("complex-timeline.enter",{id:x.id})),x.type==="exit"&&(I[x.id]=null,t.emit("complex-timeline.exit",{id:x.id})),x.isPrime&&(R=x);p({nextKeyframeIndex:f,visibleElements:I,currentPrime:R})},stopClock:()=>{let f=S().clockStartRequests;if(f!==0){if(f===1){v(),u&&clearInterval(u),p({clockRunning:!1,clockStartRequests:0});return}p({clockStartRequests:f-1})}},setElement:(f,y)=>{r[f]=y;let T=Object.keys(r),I=S().complexTimeline;m(y,f),I.items.filter(x=>x.type!=="Image"&&x.type!=="Text").every(x=>T.includes(x.annotationId))&&!S().isReady&&(t.emit("complex-timeline.ready",{complexTimeline:I}),p({isReady:!0}))},removeElement:f=>{delete r[f]},mute(){for(let f of l())f.muted=!0;p({isMuted:!0})},unmute(){for(let f of l())f.muted=!1;p({isMuted:!1})},play(){if(!S().isPlaying){for(let y of c())y.play();p({isPlaying:!0})}},pause(){if(S().isPlaying){for(let y of c())y.pause();p({isPlaying:!1})}},playPause(){let f=S();f.isPlaying?f.pause():f.play()},setDurationPercent(f){let T=S().duration*f;S().setTime(T)},setTime(f){let y=S(),T=a/1e3,I=typeof f=="function"?f(T):f,R=y.nextKeyframeIndex;if(T>I){p({visibleElements:{},currentPrime:null});let ye=Object.keys(y.visibleElements);for(let Se of ye)t.emit("complex-timeline.exit",{id:Se});T=0,R=0}let[x,N]=On({currentTime:T,currentKeyFrameIndex:R,keyframes:y.complexTimeline.keyframes,targetTime:I});y.applyKeyframes(x,N),a=I*1e3;let F=C.getState().visibleElements,Ar=r,Pr=Object.keys(F);for(let ye of Pr){let Se=F[ye];if(Se){let yt=Ar[ye];yt&&(yt.currentTime=(a-Se.time*1e3)/1e3)}}d(I)},setVolume(f){for(let y of l())y.volume=Math.min(1,Math.max(0,f/100));p({volume:f})},toggleMute(){let f=S();f.isMuted?(f.unmute(),p({isMuted:!1})):(f.mute(),p({isMuted:!0}))},clearProgressElement(){o.progress=null},setProgressElement(f){o.progress=f},setCurrentTimeElement(f){o.currentTime=f},clearCurrentTimeElement(){o.currentTime=null}}));return t.on("complex-timeline.enter",p=>{let S=C.getState(),f=p.id,y=r[f];y&&S.isPlaying&&y.play()}),t.on("complex-timeline.exit",p=>{let S=C.getState(),f=p.id,y=r[f];y&&(y.currentTime=0,y.pause())}),C.getState().setTime(n),{store:C,emitter:t}}import{HTMLPortal as Yi}from"@atlas-viewer/atlas";import{Fragment as Yn,useMemo as Di}from"react";import{HTMLPortal as zi,TileSet as Kn}from"@atlas-viewer/atlas";import ae,{useMemo as st}from"react";import{jsx as U}from"react/jsx-runtime";var Dn=ae.createContext("en"),$n=ae.createContext({}),Un=ae.createContext(null);function Lm(e){return U($n.Provider,{value:e.translations,children:e.children})}function zm(e){return U(Dn.Provider,{value:e.language,children:e.children})}function Om(e){return U(Un.Provider,{value:e.convert,children:e.children})}function Bn(){return ae.useContext(Un)}function ut(){return ae.useContext(Dn)}function qn(){return ae.useContext($n)}function Fn(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function ki({as:e,language:n,children:t,viewingDirection:r,...o}){let s=ut();return st(()=>Fn(s)===Fn(n),[s,n])?e?U(e,{...o,children:t}):U("span",{...o,children:t}):e?U(e,{...o,lang:n,dir:r,children:t}):U("span",{...o,lang:n,dir:r,children:t})}function _n(e,n,t){if(n.length===0)return;if(n.length===1)return n[0];if(n.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&n.indexOf(r)!==-1)return r;for(let o of t)if(n.indexOf(o)!==-1)return o;return n.indexOf("none")!==-1?"none":n.indexOf("@none")!==-1?"@none":n[0]}var Ni=(e,n=[])=>{let t=ut();return st(()=>{let r=e();return _n(t,r,[])},[t,...n])};function G(e,n,t,r){return n?t?t(e[n]||n,r||"none"):e[n]||n:""}function Li(e,n,t=`
1
+ import{c as St,l as Ct}from"./chunk-XNDN34SQ.js";import{forwardRef as Rr,useImperativeHandle as La}from"react";import ln,{useCallback as rt,useMemo as dn,useState as be}from"react";import{AtlasAuto as Bo,ModeContext as qo}from"@atlas-viewer/atlas";import{ErrorBoundary as _o}from"react-error-boundary";import{useContext as D,useMemo as Ro}from"react";import br,{useContext as Tr,useMemo as Ir}from"react";import{jsx as wr}from"react/jsx-runtime";var Mr={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ce=br.createContext(Mr),O=()=>Tr(Ce);function Y({value:e,children:n}){let t=O(),r=Ir(()=>({...t,...e}),[e,t]);return wr(Ce.Provider,{value:r,children:n})}import Er,{useState as Vr}from"react";import{Vault as xt,globalVault as kr}from"@iiif/helpers/vault";import{jsx as Rt}from"react/jsx-runtime";var j=Er.createContext({vault:null,setVaultInstance:e=>{}});function J({vault:e,vaultOptions:n,useGlobal:t,resources:r,children:o}){let[s,i]=Vr(()=>e||(t?kr(n):n?new xt(n):new xt));return Rt(j.Provider,{value:{vault:s,setVaultInstance:i},children:Rt(Y,{value:r||{},children:o})})}import{useContext as mo}from"react";import{createContext as fo,useMemo as po}from"react";import{globalVault as Nr}from"@iiif/helpers/vault";import{useContext as Lr}from"react";function X(e){let n=Lr(j);return e||(n&&n.vault?n.vault:Nr())}import{useEffect as zr,useMemo as Or,useState as _e}from"react";function At(e,{noCache:n=!1}={}){let t=typeof e=="string"?e:e.id,r=X(),[o,s]=_e(t),[i,a]=_e(void 0),u=Or(()=>r.get(t,{skipSelfReturn:!0})||void 0,[t,r]),[c,l]=_e(u);return zr(()=>{(async()=>{try{let d=u&&!n?u:await r.load(t),h=d?d.id||d["@id"]:null;d&&o!==h&&s(h),l(d)}catch(d){a(d)}})()},[t,n]),{isLoaded:!!c,id:o,requestId:t,error:i,resource:c,cached:!!(c&&c===u)}}function Pt(e,n){let{id:t,isLoaded:r,error:o,resource:s,requestId:i,cached:a}=At(e,n);return{id:t,isLoaded:r,error:o,manifest:s,requestId:i,cached:a}}import{jsx as Hr}from"react/jsx-runtime";function bt({manifest:e,children:n}){return Hr(Y,{value:{manifest:e},children:n})}import{jsx as Fr}from"react/jsx-runtime";function _({canvas:e,children:n}){return Fr(Y,{value:{canvas:e},children:n})}import{useContext as Br}from"react";import qr from"react";import{useContext as Dr}from"react";var P=()=>{let{vault:e}=Dr(j);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};import{useEffect as $r,useState as Ur}from"react";function b(e,n=[]){let t=P(),[r,o]=Ur(()=>e(t.getState(),t));return $r(()=>t.subscribe(s=>e(s,t),s=>{o(s)},!1),n),r}var ee=qr.createContext([]);function xe(){let e=Br(ee);return b(n=>e.map(t=>n.iiif.entities.Canvas[t]).filter(Boolean),[e])}import{useMemo as _r}from"react";function w(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=P(),i=t||o.manifest,a=b(u=>i?u.iiif.entities.Manifest[i]:void 0,[i]);return _r(()=>{if(a)return r?r(a):a},[a,r,...n])}import{jsx as Kr}from"react/jsx-runtime";function Tt({range:e,children:n}){return Kr(Y,{value:{range:e},children:n})}function Wr(e,n){for(let t of n.items){if(t.type==="Canvas")return t;if(t.type==="SpecificResource")return t.source;if(t.type==="Range"){let r=Wr(e,e.get(t));if(r)return r}}return null}function Ke(e,n){let t=[];for(let r of n.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?t.push({id:r.source.id.split("#")[0],type:"Canvas"}):t.push(r.source)),r.type==="Range"&&t.push(...Ke(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;t.push({id:o,type:"Canvas"})}return t}function Ns(e,n,t){for(let r of n.structures){let o=It(e,e.get(r),t);if(o)return o}return null}function It(e,n,t){for(let r of n.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===t||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&t===o)return n;if(r.type==="Range"){let s=It(e,e.get(r),t);if(s)return s}}return null}function Os(e,n,t,r=!1){let o=n.behavior,s=t?e.get(t):null;if(!s)return[];let i=s.behavior,a=r?!1:o.includes("paged"),u=a?!1:o.includes("continuous"),c=a||u?!1:o.includes("individuals"),l=i.includes("facing-pages"),d=i.includes("non-paged");if(l||d||c||r)return[{id:s.id,type:"Canvas"}];let[h,g]=We(e,n);if(u)return h;let v=h.findIndex(m=>m.id===t);if(v===-1)return[];for(let m of g)if(m.includes(v))return m.map(C=>h[C]);return[{id:s.id,type:"Canvas"}]}function We(e,n,{disablePaging:t,skipNonPaged:r}={}){let o=n.behavior,s=o.includes("paged"),i=s?!1:o.includes("continuous"),a=s||i?!1:o.includes("individuals"),u=n.type==="Manifest"?n.items:Ke(e,n);if(i)return[u,[u.map((v,m)=>m)]];if(a||!s||t)return[u,u.map((v,m)=>[m])];let c=[],l=[],d=()=>{l.length&&(c.push([...l]),l=[])},h=0,g=!1;for(let v=0;v<u.length;v++){let m=e.get(u[v]);if(m.behavior.includes("non-paged")){v===h&&h++,r||(d(),c.push([v]),d());continue}if(v===h||m.behavior.includes("facing-pages")){l.length&&(g=!0),d(),c.push([v]),d();continue}if(l.push(v),g){d(),g=!1;continue}l.length>1&&d()}return l.length&&d(),[u,c]}import{useCallback as Re,useMemo as jr,useRef as Qr,useState as Gr}from"react";import{useMemo as Yr}from"react";function Mt(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=t||o.range,i=b(a=>s?a.iiif.entities.Range[s]:void 0,[s]);return Yr(()=>{if(i)return r?r(i):i},[i,r,...n])}function wt({startCanvas:e,disablePaging:n}){let t=P(),r=w(),o=Mt(),[s,i]=Gr(void 0),a=o||r;if(!a)throw new Error("Nothing selected");let[u,c]=jr(()=>We(t,a,{disablePaging:n}),[t,a,n]),l=Qr(c);if(l.current!==c){let C=l.current[s][0],p=c.findIndex(S=>S.includes(C));l.current=c,i(p)}let d=Re(m=>{let C=c.findIndex(p=>p.includes(m));i(C===-1?0:C)},[u,c]),h=Re(m=>{let C=u.findIndex(p=>p.id===m);C!==-1?d(C):i(0)},[u,c]),g=Re(()=>{i(m=>m>=c.length-1?m:m+1)},[c]),v=Re(()=>{i(m=>m<=0?0:m-1)},[c]);return typeof s>"u"&&(e?h(e):i(0)),{visibleItems:c[s]?.map(m=>u[m].id)||[],cursor:s,items:u,sequence:c,hasPrevious:s>0,hasNext:s<c.length-1,setSequenceIndex:i,setCanvasIndex:d,setCanvasId:h,next:g,previous:v}}import{createContext as Qe,useContext as $t,useEffect as Jr,useMemo as Xr}from"react";import{useStore as le}from"zustand";import{createStore as Vt}from"zustand/vanilla";function Qs(e){let n=e.service||e.services||[];for(let t of n)if(t.type==="AuthProbeService2")return!0;return!1}function H(e,n,t){let r=n.findIndex(i=>i.service.id===e);if(r===-1)return n;let o=[...n],s=t(o[r]);return s===o[r]?n:(o[r]=s,o)}var kt=()=>Vt((e,n)=>({currentAuth:-1,authItems:[],login:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot login to non-active service");let r=t.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:H(t.id,n().authItems,o=>({...o,isPending:!0}))})),Et(t.service).then(()=>{Ye(r).then(o=>{let s=o.expiresIn,i=Date.now()+s*1e3;e(()=>({authItems:H(t.id,n().authItems,a=>({...a,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:i}}))}))}).catch(o=>{e(()=>({authItems:H(t.id,n().authItems,s=>({...s,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||!t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot logout of non-active service");let r=t.service.service.find(i=>i.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${zt()}`,s=window.open(o);e(()=>({authItems:H(t.id,n().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let t=n().authItems.length,r=n().currentAuth+1;r>=t||e(()=>({currentAuth:r}))},previousAuth:()=>{let t=n().currentAuth-1;t<0||e(()=>({currentAuth:t}))},setAuth:t=>{t!==-1&&(t<0||t>=n().authItems.length)||e(()=>({currentAuth:t}))},addService:(t,r)=>{if(!t.service)return;let o=t.service.find(a=>a.type==="AuthAccessTokenService2"),s=t;if(n().authItems.find(a=>a.service.id===t.id)){e(()=>({authItems:H(t.id,n().authItems,a=>({...a,instances:a.instances+1}))}));return}if(e(()=>({currentAuth:s.profile==="active"?0:n().currentAuth,authItems:[{id:t.id,type:t.profile,service:t,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...n().authItems]})),t.profile==="external"){if(!o)throw new Error("Token service not found");Ye(o).then(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:a.message}))}))})}if(t.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:H(t.id,n().authItems,a=>({...a,isPending:!0}))})),Et(s).then(()=>{Ye(o).then(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:H(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,error:a.message}))}))})})}t.profile},removeService:(t,r)=>{let o=n().currentAuth===n().authItems.findIndex(i=>i.service.id===t.id),s=n().currentAuth;if(o){let i=n().authItems.find(u=>u.service.id===t.id);i&&i.instances>1||(s=n().authItems.findIndex(c=>c.service.id!==t.id&&c.instances>0))}e(()=>({authItems:H(t.id,n().authItems,i=>({...i,instances:i.instances-1})),currentAuth:s}))}})),Nt=(e,n)=>Vt((t,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:n||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){t({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}t({status:"probing"});let s=r().token;try{let i=await fetch(o,{headers:s?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(a=>a.json());if(i.status===200)t({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(i.status<400&&i.status>=300){if(!i.location)throw new Error("Redirect location not found");t({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)t({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!i.substitute,substituteResource:i.substitute||null,error:"Unauthorized",errorHeading:i.heading||{en:["Unauthorized"]},errorNote:i.note||null});else throw new Error("Unknown error")}catch(i){t({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){t({token:o})}}));function Lt(e){let n=e.service||e.services||[],t={hasAuth:!1,services:{}};for(let r of n)if(r.type==="AuthProbeService2"){t.services.probe=r,t.hasAuth=!0;let o=r.service.filter(s=>s.type==="AuthAccessService2");o[0]&&(t.services.access=o[0])}return t}async function Ye(e,{strict:n=!0}={}){return new Promise((t,r)=>{let o=Math.random().toString(36).substring(7),s=`${e.id}?messageId=${o}&origin=${window.location.origin}`,i=c=>{let l=c.data;if(l.messageId===o){if(n&&l.type!=="AuthAccessToken2"){a(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){a(),r("Invalid response, expected accessToken");return}a(),t(l)}},a=()=>window.removeEventListener("message",i),u=document.createElement("iframe");u.src=s,u.style.display="none",document.body.appendChild(u),window.addEventListener("message",i)})}function zt(e){let n=window.location;if(e){let t=document.createElement("a");return t.href=e,t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}return n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}async function Et(e){let n=`${e.id}?origin=${zt()}`,t=window.open(n);if(!t)throw new Error("Failed to open window");return new Promise((r,o)=>{let s=setInterval(()=>{t.closed&&(clearInterval(s),r())},500)})}import{useEffect as Ot,useMemo as Ht}from"react";import{useStore as Zr}from"zustand";function Ft(e){let n=Ht(()=>Lt(e),[e]),t=Dt(n.services.access?.id),r=Ht(()=>Nt(n.services.probe,t),[n.services.probe]),o=Zr(r);return Ot(()=>{o.status==="unknown"&&!t&&o.probe()},[n.services.probe,o.status]),Ot(()=>{t&&(o.setToken(t),o.probe())},[t]),[e,o,n.hasAuth]}import{jsx as Ae}from"react/jsx-runtime";var te=Qe(null),eo=Qe(null);eo.displayName="CurrentAuth";var to=Qe(null);to.displayName="AuthActions";function Ut({children:e}){let n=Xr(()=>kt(),[]);return Ae(te.Provider,{value:n,children:e})}function Bt(){return!!$t(te)}function de(){let e=$t(te);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function no(){let e=de();return le(e,t=>({login:t.login,logout:t.logout,nextAuth:t.nextAuth,previousAuth:t.previousAuth,setAuth:t.setAuth,addService:t.addService,removeService:t.removeService}))}function fu(){let e=de();return le(e,n=>n)}function ro(e){let n=de();return le(n,r=>r.authItems.find(o=>o.service.id===e))}function Dt(e){let n=de();return le(n,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function pu(e){let n=de();return le(n,r=>{let o=r.authItems.find(s=>s.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function oo(e){let n=no(),t=ro(e.service.id);return Jr(()=>(n?.addService(e.service,e.probeId),()=>{n?.removeService(e.service,e.probeId)}),[e.service]),t?(t.error||!t.isLoggedIn,e.children):null}function je(){return null}function qt(e){let[n,t,r]=Ft(e.resource),o=e.fallbackComponent||je,s=e.loadingComponent||je,i=e.errorComponent||je,a=t.service,u=null;if(!r||!a)return e.children(n);let c=a.service.filter(l=>l.type==="AuthAccessService2");t.status==="error"&&(u=Ae(i,{resource:e.resource,error:t.error||"",heading:t.errorHeading,note:t.errorNote,extra:e.extra})),(t.status==="unknown"||t.status==="probing")&&(u=Ae(s,{})),t.status==="success"&&(u=e.children(n));for(let l of c)u=Ae(oo,{service:l,probeId:a.id,children:u},l.id);return u}import{createContext as uo,useContext as Au,useMemo as co}from"react";import{createStore as io}from"zustand/vanilla";var ao=e=>e.id||e["@id"];function so(e){return(Array.isArray(e.service)?e.service:[e.service]).find(t=>t.profile==="http://iiif.io/api/search/0/autocomplete"||t.profile==="http://iiif.io/api/search/1/autocomplete"||t.profile==="AutoCompleteService1")}var _t=e=>{let n;typeof e=="string"?n={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:n=e;let t=n?ao(n):void 0,r=null;return io((o,s)=>({service:n,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!n,hasAutocomplete:n?!!so(n):!1,errorMessage:"",search(i,a={}){if(!t)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let u=new URLSearchParams;i.q&&u.set("q",i.q),i.motivation&&u.set("motivation",i.motivation),i.date&&u.set("date",i.date),i.user&&u.set("user",i.user),o({loading:!0}),fetch(`${t}?${u.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...a.headers||{}}}).then(async c=>{if(!r?.signal.aborted)if(c.ok){let l=await c.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(i){let a=s().resources.find(u=>u["@id"]===i);o({highlight:a})},nextResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[0]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[0]||null});return}o({highlight:i[u+1]||i[0]||null})},previousResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[i.length-1]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[i.length-1]||null});return}if(u===0){o({highlight:i[i.length-1]||null});return}o({highlight:i[u-1]||i[i.length-1]||null})}}))};import{useStore as Mu}from"zustand";function Kt(){let e=w();return e?e.service.find(n=>n.profile==="SearchService1"||n.profile==="http://iiif.io/api/search/1/search"):void 0}import{jsx as Ge}from"react/jsx-runtime";var ne=uo(null);ne.displayName="Search";function Wt(e){let n=Kt();return e.store?Ge(ne.Provider,{value:e.store,children:e.children}):Ge(lo,{service:n,children:e.children})}function lo({service:e,children:n}){let t=co(()=>_t(e),[e]);return Ge(ne.Provider,{value:t,children:n})}import{jsx as z}from"react/jsx-runtime";var me=()=>{},fe=fo({setCurrentCanvasId:me,setCurrentCanvasIndex:me,nextCanvas:me,previousCanvas:me,items:[],sequence:[],setSequenceIndex:me,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function go(e){let n=w(),{cursor:t,visibleItems:r,next:o,sequence:s,items:i,setCanvasIndex:a,setCanvasId:u,previous:c,setSequenceIndex:l,hasNext:d,hasPrevious:h}=wt({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=po(()=>({sequence:s,items:i,setCurrentCanvasId:u,nextCanvas:o,previousCanvas:c,totalCanvases:i.length,setCurrentCanvasIndex:a,setSequenceIndex:l,currentSequenceIndex:t,hasNext:d,hasPrevious:h}),[s,i,u,o,c,i,a,l,t]);return n?r.length===0?null:z(fe.Provider,{value:g,children:z(ee.Provider,{value:r,children:z(_,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),z("div",{children:"Sorry, something went wrong."}))}function Yt(e){let n=X(e.vault),t=Pt(e.manifest);if(!t)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),z("div",{children:"Sorry, something went wrong."});if(t.error)return z("div",{children:t.error.toString()});if(!t.isLoaded)return z("div",{children:"Loading..."});let r=z(go,{...e,children:e.children});return z(J,{vault:n,children:z(bt,{manifest:t.id,children:z(Ut,{children:z(Wt,{children:e.rangeId?z(Tt,{range:e.rangeId,children:r}):r})})})})}function jt(){return mo(fe)}import vo from"react";import{createContext as ho,useMemo as yo}from"react";import So from"mitt";import{jsx as xo}from"react/jsx-runtime";var Co=So(),re=ho({emitter:Co});re.displayName="Events";function Qt(){return vo.useContext(re).emitter}function ic({emitter:e,children:n}){return xo(re.Provider,{value:yo(()=>({emitter:e}),[e]),children:n})}import Ao from"react";import{jsx as K}from"react/jsx-runtime";var Ze=Ao.createContext({});function Gt(){let e=D(Ze),n=Object.keys(e),t={};for(let r of n)e[r].Provider&&(t[r]={value:D(e[r]),Provider:e[r].Provider});return t}function Po(e){let n=Object.keys(e),t=e.children;for(let r of n){if(r==="children")continue;let{value:o,Provider:s}=e[r];t=K(s,{value:o,children:t})}return t}function Sc(e){let n=D(Ze),t=Ro(()=>({...n,...e.providers}),[e.providers]);return K(Ze.Provider,{value:t,children:e.children})}function Zt(){return{VaultContext:D(j),ResourceContext:D(Ce),SimpleViewerReactContext:D(fe),VisibleCanvasReactContext:D(ee),AuthRContext:D(te),SearchReactContext:D(ne),ReactEventContext:D(re)}}function Jt(e){return K(J,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:K(ee.Provider,{value:e.bridge.VisibleCanvasReactContext,children:K(fe.Provider,{value:e.bridge.SimpleViewerReactContext,children:K(re.Provider,{value:e.bridge.ReactEventContext,children:K(te.Provider,{value:e.bridge.AuthRContext,children:K(ne.Provider,{value:e.bridge.SearchReactContext,children:e.custom?K(Po,{...e.custom,children:e.children}):e.children})})})})})})}import{createContext as wo,useContext as Eo,useMemo as Vo}from"react";import{useCallback as en,useLayoutEffect as To,useMemo as Io,useRef as Mo}from"react";import{entityActions as Je}from"@iiif/helpers/vault/actions";import{useMemo as bo}from"react";function Xt(){let n=P().getStore();return bo(()=>t=>n.dispatch(t),[n])}function tn(e){return typeof e!="string"&&e&&e.bindToVault}function nn(){let e=P(),n=Mo([]),t=Xt(),r=Io(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);To(()=>{let a={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};t(Je.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[r]);let o=b(a=>r&&a.iiif.entities.AnnotationPage[r]||null,[r]),s=en((a,u)=>{if(r){if(tn(a)){let d=a;d.__vault||d.bindToVault(e),a=typeof d.source=="string"?d.source:d.source.id,n.current[a]=d}else typeof a!="string"&&(a=a.id);let c=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:a,type:"Annotation"});c&&l&&(c.items.find(d=>d.id===l.id)||t(Je.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:u})))}},[r]),i=en(a=>{r&&(tn(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),n.current[a]&&n.current[a].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&t(Je.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[r]);return[o,{addAnnotation:s,removeAnnotation:i}]}import{jsx as ko}from"react/jsx-runtime";var rn=wo(null);function on(){let e=Eo(rn);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function an({children:e}){let[n,{addAnnotation:t,removeAnnotation:r}]=nn();return ko(rn.Provider,{value:Vo(()=>({fullPage:n,addAnnotation:t,removeAnnotation:r}),[n]),children:e})}import{jsx as Xe,jsxs as No}from"react/jsx-runtime";function sn({width:e,style:n,height:t,error:r,resetErrorBoundary:o}){return No("div",{style:{width:e,height:t,minHeight:500,...n||{},background:"#f9f9f9"},children:[Xe("h3",{children:"Error occurred"}),Xe("p",{children:r.message}),Xe("button",{type:"button",onClick:o,children:"Reset"})]})}import{createContext as Lo,useContext as zo}from"react";var Q=Lo(null);function Pe(){return zo(Q)}import{createContext as un,useContext as Oo,useEffect as Ho}from"react";var et=un(()=>{}),tt=un(()=>{});function E(e,n,t,r,o=[]){let s=Oo(e==="portal"?tt:et);Ho(()=>(e!=="none"&&s(n,t,r),()=>{s(n,null)}),[n,e,s,...o])}import{createContext as Do,useContext as $o,useEffect as Uo}from"react";import{useMemo as Fo}from"react";function A(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=t||o.canvas,i=b(a=>s?a.iiif.entities.Canvas[s]:void 0,[s]);return Fo(()=>{if(i)return r?r(i):i},[i,r,...n])}var nt=Do(()=>{});function cn(e){let n=A(),t=$o(nt);Uo(()=>n&&n.id?(t(n.id,e),()=>t(n.id,-1)):()=>{},[n,e])}import{Fragment as Ko,jsx as V,jsxs as Wo}from"react/jsx-runtime";function mn({children:e,errorFallback:n,outerContainerProps:t={},worldScale:r,...o}){let[s,i]=be(),a=Gt(),u=Zt(),c=n||sn,[l,d]=be({}),h=Object.entries(l),[g,v]=be({}),m=Object.entries(g),[C,p]=be({}),S=dn(()=>r||Math.max(...Object.values(C)),[C]),f=dn(()=>({maxOverZoom:S||1,...o.runtimeOptions||{}}),[S,o.runtimeOptions]),y=rt((R,x)=>{p(N=>{if(x===-1){let{[R]:he,...F}=N;return F}return{...N,[R]:x}})},[]),T=rt((R,x,N)=>{d(({[R]:he,...F})=>x?{...F,[R]:{element:x,props:N}}:F)},[]),I=rt((R,x,N)=>{v(({[R]:he,...F})=>x?{...F,[R]:{element:x,props:N}}:F)},[]);return Wo(_o,{resetKeys:[],fallbackRender:R=>V(c,{...o,...R}),children:[V(Bo,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:V(Ko,{children:h.map(([R,{element:x,props:N}])=>V(ln.Fragment,{children:V(x,{...N||{}})},R))}),onCreated:R=>{i(R),o.onCreated&&o.onCreated(R)},runtimeOptions:f,children:V(Q.Provider,{value:s,children:V(nt.Provider,{value:y,children:V(et.Provider,{value:T,children:V(tt.Provider,{value:I,children:V(Jt,{bridge:u,custom:a,children:V(qo.Provider,{value:o.mode||"explore",children:V(an,{children:e})})})})})})})}),V("div",{children:m.map(([R,{element:x,props:N}])=>V(ln.Fragment,{children:V(x,{...N||{}})},R))})]})}import{mergeStyles as Jo,RegionHighlight as Xo}from"@atlas-viewer/atlas";import{useMemo as fn}from"react";import{createEventsHelper as Yo}from"@iiif/helpers/events";function Te(e,n){let t=P(),r=fn(()=>Yo(t),[t]),o=b(()=>e&&e.id?t.getResourceMeta(e.id,"eventManager"):null,[e]);return fn(()=>e?r.getListenersAsProps(e,n):{},[o,e,t,n])}import{useMemo as jo}from"react";import{createStylesHelper as Qo}from"@iiif/helpers/styles";function oe(e,n){let t=P(),r=jo(()=>Qo(t),[t]);return b(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?n?o[n]:o:void 0},[e,n])}import{useMemo as ei}from"react";import{useMemo as Go}from"react";import{expandTarget as Zo}from"@iiif/helpers/annotation-targets";function Ie(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=P(),i=t||o.annotation,a=b(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),u=b(c=>a&&a.body?a.body.map(l=>l?l.type==="SpecificResource"?{...l,source:s.get(l)}:l?c.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[a]);return Go(()=>{if(!a)return;let c={...a,body:u,target:Zo(a.target,{typeMap:s.getState().iiif.mapping})};return r?r(c):c},[a,r,u,...n])}import{jsx as ti}from"react/jsx-runtime";var Me=({id:e,style:n,className:t,interactive:r})=>{let o=Ie({id:e}),s=oe(o,"atlas"),i=oe(o,"html"),a=Te(o,["atlas"]),u=A(),c=ei(()=>Jo(n,s),[n,s]);return u&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===u.id||o.target.source===u.id)?ti(Xo,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:c,className:i?.className||t,interactive:!!(i?.href||r),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...a}):null};import{Fragment as ri}from"react";import{useMemo as ni}from"react";function pn(e={},n=[]){let{id:t,selector:r}=e,o=O(),s=t||o.annotationPage,i=b(a=>s?a.iiif.entities.AnnotationPage[s]:void 0,[s]);return ni(()=>{if(i)return r?r(i):i},[i,...n])}import{jsx as gn}from"react/jsx-runtime";var pe=({className:e,page:n})=>{let t=pn({id:n.id})||n,r=oe(t,"atlas"),o=oe(t,"html");return b(s=>t.id?s.iiif.entities.AnnotationPage[t.id]:null,[]),gn(ri,{children:t.items?.map(s=>gn(Me,{id:s.id,style:r,className:o?.className||e},s.id))})};import{useEffect as ot,useMemo as it}from"react";import{useEffect as Mn,useMemo as wn}from"react";import{useCallback as yn,useMemo as ii}from"react";function oi(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function vn(e,n){return b(t=>{let r=[];if(!e)return r;let o=Object.keys(t.iiif.entities.AnnotationPage);for(let s of o)if(!n||n.indexOf(s)!==-1){let i=oi(t,s);i&&i.views&&i.views[e]&&r.push(s)}return r},[e,n])}function hn({canvas:e,manifest:n,all:t,canvases:r}){let o=[];if(n)for(let s of n.annotations)o.indexOf(s.id)===-1&&o.push(s.id);if(t){if(r&&r.length)for(let s of r)for(let i of s.annotations)o.indexOf(i.id)===-1&&o.push(i.id)}else if(e)for(let s of e.annotations)o.indexOf(s.id)===-1&&o.push(s.id);return o}function ai(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function Sn(e,n={}){let t=P(),r=w(),o=A(),s=xe(),i=ii(()=>hn({all:n.all,manifest:r,canvas:o,canvases:s}),[n.all,o,s,r]),a=vn(e,n.all?void 0:i),u=yn(l=>{e&&t.setMetaValue([l,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,t]),c=yn((l,d={})=>{if(!e)return;let h=t.getState(),g=[];if(d?.deselectOthers){let v=Object.keys(h.iiif.entities.AnnotationPage);for(let m of v){let C=ai(h,m);C&&C.views&&C.views[e]&&g.push(m)}}for(let v of g)u(v);t.setMetaValue([l,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,u,t]);return{availablePageIds:i,enabledPageIds:a,setPageEnabled:c,setPageDisabled:u}}function Cn(e,n){return b((t,r)=>r.get(e.map(o=>({id:o,type:n}))),[e,n])}import li from"mitt";import{useCallback as di}from"react";import{createStore as mi}from"zustand";import si,{useContext as ui}from"react";import{imageServices as ci}from"@iiif/helpers/image-service";import{useStore as we}from"zustand";var xn=si.createContext(ci.store);xn.displayName="ImageServicesHelper";function Ee(){return ui(xn)}function Rn(e){let n=Ee();return we(n,({loaded:t})=>t[e])}function Ve(){let e=Ee();return we(e,({loadServiceSync:n})=>n)}function An(){let e=Ee();return we(e,({loaded:n})=>n)}function pd(){let e=Ee();return we(e,({loadService:n})=>n)}var fi=mi((e,n)=>({loaded:{},setLoaded:(t,r="done")=>{e(o=>({loaded:{...o.loaded,[t]:r}}))}})),pi=li();pi.on("loaded",e=>{fi.getState().setLoaded(e.imageServiceId)});function Pn(){let e=Ve(),n=An();return[di((r,{height:o,width:s})=>r&&e(r,{height:o,width:s},!0),[]),n]}import{useCallback as gi,useMemo as Tn,useState as vi}from"react";function bn(e={}){let n=Ie(),t=A(e.canvasId?{id:e.canvasId}:void 0);return b((r,o)=>{if(!t)return[];if(n&&e.enableSingleAnnotation)return[n];let s=o.get(t.items),i=[];for(let a of s)i.push(...o.get(a.items));return i},[t])}import{createPaintingAnnotationsHelper as hi}from"@iiif/helpers/painting-annotations";function In(e,n=[]){let t=P(),r=Tn(()=>hi(t),[]),o=bn({enableSingleAnnotation:e?.enableSingleAnnotation}),[s,i]=vi(e?.defaultChoices||[]),a=Tn(()=>r.getPaintables(o,s),[t,o,s,...n]),c={makeChoice:gi((l,{deselectOthers:d=!0,deselect:h=!1}={})=>{a.choice&&i(g=>{if(h){let m=g.filter(C=>C!==l);if(m.length===0){let C=a.items[0].resource.id;return C?[C]:[]}return m}if(d)return[l];let v=[...g];if(v.length===0&&a.items.length){let m=a.items[0].resource.id;m&&v.push(m)}return g.indexOf(l)!==-1?g:[...g,l]})},[a.choice])};return[a,c]}function En(e){let n=w(),t=A(),r=P(),o=Qt(),s=e?.emitter||o,[i,a]=Pn(),{enabledPageIds:u}=Sn(e?.annotationPageManagerId||n?.id||t?.id,{all:!1}),c=Cn(u,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,h]=In(e,[a]);Mn(()=>{let v=m=>{h.makeChoice(m.choiceId,{deselectOthers:m.deselectOthers,deselect:m.deselect})};return s.on("make-choice",v),()=>{s.off("make-choice",v)}},[]);let g=wn(()=>Ct({canvas:t,paintables:d,supports:l,loadImageService:i,vault:r}),[t,d,r,h.makeChoice]);return Mn(()=>{let v=d.allChoices,m={canvasId:t?.id,manifestId:n?.id};v&&s.emit("choice-change",{choice:v,partOf:m})},[t?.id,d.allChoices]),wn(()=>g.type==="unknown"?[g,St]:[{...g,annotations:{pages:c}},h],[g,c])}import{createContext as yi,useContext as Si}from"react";var ke=yi(null);ke.displayName="Strategy";function M(){let e=Si(ke);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{createStylesHelper as Ri}from"@iiif/helpers";import{createContext as Ci,useContext as xi}from"react";var Ne=Ci(null);Ne.displayName="Controls";function L(){let e=xi(Ne);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{jsx as Vn}from"react/jsx-runtime";function kn({strategies:e,registerActions:n,defaultChoices:t,onChoiceChange:r,mediaControlsDeps:o,renderMediaControls:s,renderViewerControls:i,viewControlsDeps:a,renderComplexTimelineControls:u,complexTimelineControlsDeps:c,throwOnUnknown:l,children:d}){let h=A(),g=P(),v=it(()=>Ri(g),[g]),[m,C]=En({strategies:e||["images"],defaultChoices:t?.map(({id:y})=>y)}),p="choice"in m?m.choice:void 0;if(ot(()=>{n&&n(C)},[m.annotations]),ot(()=>{r&&r(p)},[p]),ot(()=>{if(t)for(let y of t)typeof y.opacity<"u"&&v.applyStyles({id:y.id},"atlas",{opacity:y.opacity})},[t]),m.type==="unknown"&&l)throw new Error(m.reason||"Unknown strategy");let S=it(()=>({renderMediaControls:s,mediaControlsDeps:o||[],renderViewerControls:i,viewControlsDeps:a||[],renderComplexTimelineControls:u,complexTimelineControlsDeps:c||[]}),[o,s,i,a,u,c]),f=it(()=>({strategy:m,actions:C,choices:"choice"in m?m.choice:[]}),[m,h]);return Vn(Ne.Provider,{value:S,children:Vn(ke.Provider,{value:f,children:d})})}import{useMemo as Ai}from"react";import{jsx as Pi}from"react/jsx-runtime";function Nn({x:e=0,y:n=0,keepCanvasScale:t,children:r}){let{strategy:o}=M(),s=A(),i=Te(s,["deep-zoom"]),a=Ai(()=>t?1:Math.max(1,...o.type==="images"?o.images.map(c=>(c.width||0)/c.target?.spatial.width):[]),[t,o]);cn(a);let u=o.type==="images"?o.images.length:0;return s?Pi("world-object",{height:s.height,width:s.width,x:e,y:n,...i,children:r},`${s.id}/${o.type}/${u}`):null}import{jsx as bi}from"react/jsx-runtime";function Le({style:e}){let n=A();return!n||!n.height||!n.width?null:bi("box",{interactive:!1,target:{x:0,y:0,width:Number(n.width),height:Number(n.height)},style:e})}import{jsx as Ti}from"react/jsx-runtime";function Ln({backgroundStyle:e,alwaysShowBackground:n}){let{strategy:t}=M();return t.type!=="empty"&&!n?null:Ti(Le,{style:e})}import{useLayoutEffect as Ki,useMemo as Wi}from"react";import Ei from"mitt";import{useCallback as $,useEffect as zn,useReducer as Ii,useRef as ze}from"react";function Mi(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function wi(e,n){switch(n.type){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:n.volume,isMuted:n.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function at(e){let n=Math.round(e);return`${Math.floor(n/60)}:${`${n%60}`.padStart(2,"0")}`}function ie(e){let[n,t]=Ii(wi,Mi(e.duration)),r=ze(null),o=ze(null),s=ze(null),i=ze(!1),a=$(()=>{o.current&&r.current&&(o.current.innerHTML=at(r.current.currentTime),s.current&&(s.current.style.width=`${r.current.currentTime/e.duration*100}%`),i.current!==r.current.muted&&(i.current=r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),u=$(()=>{r.current&&(t({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{t({type:"PLAY"})}),a())},[a]),c=$(()=>{r.current&&(r.current.duration>0&&r.current.paused?u():l())},[a]),l=$(()=>{r.current&&(r.current.pause(),t({type:"PAUSE"}),a())},[a]),d=$(()=>{r.current&&(r.current.muted=!r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),h=$(()=>{r.current&&(r.current.muted=!0,t({type:"MUTE"}))},[]),g=$(()=>{r.current&&(r.current.muted=!1,t({type:"UNMUTE"}))},[]),v=$(p=>{r.current&&(r.current.muted=!1,r.current.volume=p/100,t({type:"SET_VOLUME",volume:p}))},[]),m=$(p=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(p*e.duration,e.duration)),a())},[]),C=$(p=>{if(r.current){let S=typeof p=="function"?p(r.current.currentTime):p;r.current.currentTime=Math.max(0,Math.min(S,e.duration)),a()}},[]);return zn(()=>{let p=setInterval(()=>{a()},350);return()=>clearInterval(p)},[a,e.duration]),zn(()=>{let p=()=>{t({type:"FINISHED"})},S=r.current;return S?.addEventListener("ended",p),()=>S?.removeEventListener("ended",p)},[]),[{element:r,currentTime:o,progress:s},n,{play:u,pause:l,playPause:c,mute:h,unmute:g,toggleMute:d,setVolume:v,setDurationPercent:m,setTime:C}]}import{createStore as Vi}from"zustand/vanilla";function On({currentKeyFrameIndex:e,keyframes:n,targetTime:t,currentTime:r}){if(r<=t){let o=n.findIndex(a=>a.time>t);if(o===-1)return[e,[]];let s={},i=n.slice(e,o);for(let a of i)a.type==="enter"&&(s[a.id]=a),a.type==="exit"&&(s[a.id]?delete s[a.id]:s[a.id]=a);return[o,Object.values(s)]}return[e,[]]}function Hn({complexTimeline:e,startTime:n=0}){let t=Ei(),r={},o={progress:null,currentTime:null},s=0,i=null,a=0,u=null;function c(){let S=C.getState().visibleElements,f=r,y=[],T=Object.keys(f);for(let I of T){let R=f[I],x=S[I];R&&x&&y.push(R)}return y}function l(){return Object.keys(r).map(S=>r[S])}function d(p){o.currentTime&&(o.currentTime.innerHTML=at(p),o.progress&&(o.progress.style.width=`${p/e.duration*100}%`))}let h=()=>{let p=C.getState(),S=p.currentPrime;if(!S)return;let f=r,y=p.visibleElements,T=Object.keys(f);for(let I of T){let R=f[I],x=y[I];if(R&&I!==S.id&&x){let N=a-x.time*1e3;Math.abs(a-x.time*1e3-R.currentTime*1e3)>300&&(R.currentTime=N/1e3)}}},g=(p=0)=>{let S=p-s,f=C.getState();if(f.isPlaying){let y=f.currentPrime;if(y){let x=r[y.id];x&&(x.paused?a+=S:a=(y.time+x.currentTime)*1e3)}else a+=S;let T=a/1e3;if(T>f.duration){C.getState().setTime(0),C.setState({isPlaying:!1}),v(),d(0);return}d(T);let[I,R]=On({currentTime:T,currentKeyFrameIndex:f.nextKeyframeIndex,keyframes:f.complexTimeline.keyframes,targetTime:T});R.length&&f.applyKeyframes(I,R)}s=p,i=requestAnimationFrame(g)},v=()=>{i&&cancelAnimationFrame(i)},m=(p,S)=>{},C=Vi((p,S)=>({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:()=>{S().clockRunning||(g(),u=setInterval(h,500)),p({clockRunning:!0,clockStartRequests:S().clockStartRequests+1})},applyKeyframes(f,y){let T=S(),I={...T.visibleElements},R=T.currentPrime;for(let x of y)x.type==="enter"&&(I[x.id]=x,t.emit("complex-timeline.enter",{id:x.id})),x.type==="exit"&&(I[x.id]=null,t.emit("complex-timeline.exit",{id:x.id})),x.isPrime&&(R=x);p({nextKeyframeIndex:f,visibleElements:I,currentPrime:R})},stopClock:()=>{let f=S().clockStartRequests;if(f!==0){if(f===1){v(),u&&clearInterval(u),p({clockRunning:!1,clockStartRequests:0});return}p({clockStartRequests:f-1})}},setElement:(f,y)=>{r[f]=y;let T=Object.keys(r),I=S().complexTimeline;m(y,f),I.items.filter(x=>x.type!=="Image"&&x.type!=="Text").every(x=>T.includes(x.annotationId))&&!S().isReady&&(t.emit("complex-timeline.ready",{complexTimeline:I}),p({isReady:!0}))},removeElement:f=>{delete r[f]},mute(){for(let f of l())f.muted=!0;p({isMuted:!0})},unmute(){for(let f of l())f.muted=!1;p({isMuted:!1})},play(){if(!S().isPlaying){for(let y of c())y.play();p({isPlaying:!0})}},pause(){if(S().isPlaying){for(let y of c())y.pause();p({isPlaying:!1})}},playPause(){let f=S();f.isPlaying?f.pause():f.play()},setDurationPercent(f){let T=S().duration*f;S().setTime(T)},setTime(f){let y=S(),T=a/1e3,I=typeof f=="function"?f(T):f,R=y.nextKeyframeIndex;if(T>I){p({visibleElements:{},currentPrime:null});let ye=Object.keys(y.visibleElements);for(let Se of ye)t.emit("complex-timeline.exit",{id:Se});T=0,R=0}let[x,N]=On({currentTime:T,currentKeyFrameIndex:R,keyframes:y.complexTimeline.keyframes,targetTime:I});y.applyKeyframes(x,N),a=I*1e3;let F=C.getState().visibleElements,Ar=r,Pr=Object.keys(F);for(let ye of Pr){let Se=F[ye];if(Se){let yt=Ar[ye];yt&&(yt.currentTime=(a-Se.time*1e3)/1e3)}}d(I)},setVolume(f){for(let y of l())y.volume=Math.min(1,Math.max(0,f/100));p({volume:f})},toggleMute(){let f=S();f.isMuted?(f.unmute(),p({isMuted:!1})):(f.mute(),p({isMuted:!0}))},clearProgressElement(){o.progress=null},setProgressElement(f){o.progress=f},setCurrentTimeElement(f){o.currentTime=f},clearCurrentTimeElement(){o.currentTime=null}}));return t.on("complex-timeline.enter",p=>{let S=C.getState(),f=p.id,y=r[f];y&&S.isPlaying&&y.play()}),t.on("complex-timeline.exit",p=>{let S=C.getState(),f=p.id,y=r[f];y&&(y.currentTime=0,y.pause())}),C.getState().setTime(n),{store:C,emitter:t}}import{HTMLPortal as Yi}from"@atlas-viewer/atlas";import{Fragment as Yn,useMemo as Di}from"react";import{HTMLPortal as zi,TileSet as Kn}from"@atlas-viewer/atlas";import ae,{useMemo as st}from"react";import{jsx as U}from"react/jsx-runtime";var Dn=ae.createContext("en"),$n=ae.createContext({}),Un=ae.createContext(null);function Lm(e){return U($n.Provider,{value:e.translations,children:e.children})}function zm(e){return U(Dn.Provider,{value:e.language,children:e.children})}function Om(e){return U(Un.Provider,{value:e.convert,children:e.children})}function Bn(){return ae.useContext(Un)}function ut(){return ae.useContext(Dn)}function qn(){return ae.useContext($n)}function Fn(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function ki({as:e,language:n,children:t,viewingDirection:r,...o}){let s=ut();return st(()=>Fn(s)===Fn(n),[s,n])?e?U(e,{...o,children:t}):U("span",{...o,children:t}):e?U(e,{...o,lang:n,dir:r,children:t}):U("span",{...o,lang:n,dir:r,children:t})}function _n(e,n,t){if(n.length===0)return;if(n.length===1)return n[0];if(n.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&n.indexOf(r)!==-1)return r;for(let o of t)if(n.indexOf(o)!==-1)return o;return n.indexOf("none")!==-1?"none":n.indexOf("@none")!==-1?"@none":n[0]}var Ni=(e,n=[])=>{let t=ut();return st(()=>{let r=e();return _n(t,r,[])},[t,...n])};function G(e,n,t,r){return n?t?t(e[n]||n,r||"none"):e[n]||n:""}function Li(e,n,t=`
2
2
  `,r={}){let o=Bn(),s=Ni(()=>Object.keys(e||{}),[e]);return[st(()=>{if(!e)return G(r,n,o)||"";if(typeof e=="string")return G(r,e,o);let i=s?e[s]:void 0;return i?typeof i=="string"?i:i.map(a=>G(r,a,o,s)).join(t):""},[s,n,e]),s]}function Hm(){let e=ut(),n=qn(),t=Bn();return function(o,s="",i=`
3
3
  `,a=n){let u=Object.keys(o||{}),c=_n(e,u,[]);if(!o)return G(a,s,t)||"";if(typeof o=="string")return G(a,o,t);let l=c?o[c]:void 0;return l?typeof l=="string"?G(a,l,t,c):l.map(d=>G(a,d,t,c)).join(typeof i<"u"?i:`
4
4
  `):""}}function ge({as:e,defaultText:n,enableDangerouslySetInnerHTML:t,children:r,separator:o,...s}){let i=qn(),[a,u]=Li(r,n,o,i);return u?U(ki,{...s,as:e,language:u,title:t?void 0:a,dangerouslySetInnerHTML:t?{__html:a}:void 0,children:t?void 0:a}):e?U(e,{...s,children:a}):U("span",{...s,title:t?void 0:a,dangerouslySetInnerHTML:t?{__html:a}:void 0,children:t?void 0:a})}import{getId as Oi}from"@iiif/parser/image-3";import{jsx as W,jsxs as Fi}from"react/jsx-runtime";function Hi({resource:e,heading:n,note:t,extra:r}){return r?W(zi,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:W("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:Fi("div",{children:[W(ge,{children:n||"Not authorised"}),t&&W("p",{children:W(ge,{children:t})}),W("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Wn({image:e,thumbnail:n,crop:t,enableSizes:r,enableThumbnail:o,renderOptions:s}){let i=Bt(),a=Oi(e.service),u=Rn(a),c=Ve(),l=u?.service;c(e.service,e);let d=l&&u?.status==="done",h=n&&n.type==="fixed"&&n.id&&!n.id.includes("/full/full/")&&!n.id.includes("/max/")?n:void 0;if(d===!1)return null;if(!i){let g=e.service,v=g.width||e.width||0,m=g.height||e.height||0;return W(Kn,{enableThumbnail:o,renderOptions:s,tiles:{id:g.id||g["@id"]||"unknown",height:m,width:v,imageService:g,thumbnail:h},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:t})}return W(qt,{resource:e.service,errorComponent:Hi,extra:e,children:g=>{let v=g.width||e.width||0,m=g.height||e.height||0;return W(Kn,{enableThumbnail:o,renderOptions:s,tiles:{id:g.id||g["@id"]||"unknown",height:m,width:v,imageService:g,thumbnail:h},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:t})}},e.id)}import{jsx as ct,jsxs as jn}from"react/jsx-runtime";function se({id:e,image:n,thumbnail:t,isStatic:r,x:o=0,y:s=0,children:i,selector:a,onClick:u,enableSizes:c}){let l=Di(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]);return ct("world-object",{x:o+n.target.spatial.x,y:s+n.target.spatial.y,width:n.target.spatial.width,height:n.target.spatial.height,onClick:u,children:n.service?jn(Yn,{children:[ct(Wn,{image:n,thumbnail:t,crop:l,enableSizes:c}),i]},"service"):jn(Yn,{children:[ct("world-image",{onClick:u,uri:n.id,target:{x:0,y:0,width:n.target.spatial.width,height:n.target.spatial.height},display:n.width&&n.height?{width:n.width,height:n.height}:void 0,crop:l}),i]},"no-service")},e+(n.service?"server":"no-service"))}import{useStore as Zn}from"zustand";import{createContext as $i,useContext as Ui}from"react";import{useStore as Bi}from"zustand";import{jsx as qi}from"react/jsx-runtime";var lt=$i(null);lt.displayName="ComplexTimeline";function Qn({children:e,store:n}){return qi(lt.Provider,{value:n,children:e})}function of(e){let n=Ui(lt);if(!n)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return Bi(n,e)}import{HTMLPortal as _i}from"@atlas-viewer/atlas";import{Fragment as Gn,jsx as ve}from"react/jsx-runtime";function Oe({strategy:e,onClickPaintingAnnotation:n}){return ve(Gn,{children:e.items.map((t,r)=>ve(Gn,{children:ve(_i,{onClick:n?o=>{o.stopPropagation(),n(t.annotationId,t,o)}:void 0,target:t.target?.spatial||void 0,children:ve("div",{"data-textual-content":!0,children:ve(ge,{enableDangerouslySetInnerHTML:!0,children:t.text})})},r)}))})}import{Fragment as ji,jsx as He,jsxs as Qi}from"react/jsx-runtime";function Jn({strategy:e,children:n}){let{store:t}=Wi(()=>Hn({complexTimeline:e}),[e]),r=Zn(t,i=>i.isReady),o=Zn(t,i=>i.visibleElements);function s(i){return a=>{a&&t.getState().setElement(i,a)}}return Ki(()=>{if(r){let{startClock:i,stopClock:a}=t.getState();return i(),()=>{a()}}},[e,r]),E("portal","custom-controls",Qn,{store:t,children:n},[r]),Qi(ji,{children:[e.items.map(i=>i.type!=="Image"||!o[i.annotationId]?null:He(se,{image:i,id:i.annotationId},i.id)),e.items.map((i,a)=>i.type!=="Text"||!o[i.annotationId]?null:He(Oe,{strategy:{type:"textual-content",items:[i]}},a)),e.items.map((i,a)=>i.type!=="Video"||!i.target.spatial?null:He(Yi,{target:i.target.spatial,children:He("video",{ref:s(i.annotationId),src:i.url,style:{height:"100%",width:"100%",opacity:o[i.annotationId]?1:0}})},a))]})}import{jsx as Gi}from"react/jsx-runtime";function Xn(){let{strategy:e}=M(),{renderComplexTimelineControls:n}=L();return e.type!=="complex-timeline"?null:Gi(Jn,{strategy:e,children:n?n(e):null})}import{Fragment as Ji,jsx as Zi,jsxs as Xi}from"react/jsx-runtime";function er({onClickPaintingAnnotation:e,children:n}){let{strategy:t}=M(),{renderViewerControls:r,viewControlsDeps:o}=L(),s=Pe(),i=A();return E(s&&t.type==="textual-content"&&r?"overlay":"none",`canvas-portal-controls-${i?.id}`,Q.Provider,r?{value:s||null,children:r(t)}:{},[i,s,t,...o||[]]),t.type!=="textual-content"?null:Xi(Ji,{children:[Zi(Oe,{strategy:t,onClickPaintingAnnotation:e}),n]})}import{useEffect as ia,useMemo as aa,useRef as sa,useState as ua}from"react";import{useEffect as ea}from"react";var tr=(e,n=[])=>{let t=P();ea(()=>{e(t)},[t,...n])};import ta,{useContext as na}from"react";import{ImageServiceLoader as ra}from"@iiif/helpers/image-service";var oa=ta.createContext(new ra);function nr(){return na(oa)}import{createThumbnailHelper as ca}from"@iiif/helpers/thumbnail";function ue(e,n,{canvasId:t,manifestId:r}={}){let o=P(),s=nr(),i=aa(()=>ca(o,{imageServiceLoader:s}),[o,s]),[a,u]=ua(),c=w(r?{id:r}:void 0),l=A(t?{id:t}:void 0),d=l||c,h=sa(!1);if(ia(()=>(h.current=!1,()=>{h.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return tr(g=>{i.getBestThumbnailAtSize(d,e,n).then(v=>{v.best&&!h.current&&u(v.best)})},[d]),a}import{Fragment as da,jsx as la,jsxs as ma}from"react/jsx-runtime";function rr({isStatic:e=!1,enableSizes:n=!1,onClickPaintingAnnotation:t,children:r}){let{strategy:o}=M(),{renderViewerControls:s,viewControlsDeps:i}=L(),a=A(),u=Pe(),c=ue({maxWidth:256,maxHeight:256});return E(u&&o.type==="images"&&s?"overlay":"none",`canvas-portal-controls-${a?.id}`,Q.Provider,s?{value:u||null,children:s(o)}:{},[a,u,o,...i||[]]),o.type!=="images"?null:ma(da,{children:[o.images.map((l,d)=>la(se,{isStatic:e,image:l,id:l.id,thumbnail:d===0?c:void 0,selector:l.selector,enableSizes:n,onClick:t?h=>{t(l.annotationId,l,h)}:void 0},l.id+d)),r]})}import{Fragment as fa,jsx as dt,jsxs as pa}from"react/jsx-runtime";function mt({model:e}){return pa(fa,{children:[dt("style",{children:`
@@ -0,0 +1 @@
1
+ import{expandTarget as M}from"@iiif/helpers";function j(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function x(e,o){let{selector:r,source:i}=M(o);if(i.id!==e.id)return[null,i];let t={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[r?r.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:r.temporal,spatial:t.spatial}:r:null,i]}var Q={makeChoice:()=>{}},T={type:"unknown"},p=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),v=(e,o)=>({type:"empty",width:e,height:o,annotations:{pages:[]},image:null,images:[]});var O=["model/gltf-binary"];function R(e,o){let r=o.items[0],i=r.resource;return i.format?O.indexOf(i.format)===-1?p(`3D format: ${i.format} is unsupported`):{type:"3d-model",model:i,annotationId:r.annotationId,annotation:r.annotation}:p("Unknown format")}import{getImageServices as U}from"@iiif/parser/image-3";import{expandTarget as N}from"@iiif/helpers/annotation-targets";function C(e,o,r){let i=[];for(let t of o.items){let s=t.resource&&t.resource.type==="SpecificResource"?t.resource.source:t.resource;if(!s.id)return p("No resource Identifier");let m;if(s.service){let g=U(s);g[0]&&(m=r(g[0],e))}let y={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[d,a]=x(e,t.target),n=e.id?.split("?")[0]||"";if(!(a.id===e.id||decodeURIComponent(a.id||"")===(e.id||"")||a.id===n||decodeURIComponent(a.id||"")===n))continue;let l=t.resource.width&&t.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:t.resource.width,height:t.resource.height}}:void 0,c=t.resource.type==="SpecificResource"?N(t.resource):null;if(t.selector){let g=N({type:"SpecificResource",source:t.resource,selector:t.selector});g&&(c=g)}let u=c&&c.selector&&(c.selector.type==="BoxSelector"||c.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:c.selector.spatial.x,y:c.selector.spatial.y,width:c.selector.spatial.width,height:c.selector.spatial.height}}:void 0;m&&!m.id&&(m.id=m["@id"]);let f={id:s.id,type:"Image",annotationId:t.annotationId,annotation:t.annotation,width:Number(d||u?s.width:e.width),height:Number(d||u?s.height:e.height),service:m,sizes:m&&m.sizes?m.sizes:s.width&&s.height?[{width:s.width,height:s.height}]:[],target:d&&d.type!=="PointSelector"?d:y,selector:u||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};i.push(f)}return{type:"images",image:i[0],images:i,choice:o.choice}}function P(e,o={},r){let i=e.language||r||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(o[i]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(t=>P(t,o,i))}return o}function I(e,o){let r=[];return o.items.forEach(i=>{if(i.resource){let[t]=x(e,i.target);r.push({type:"Text",annotationId:i.annotationId,annotation:i.annotation,text:P(i.resource),target:t})}}),{type:"textual-content",items:r}}import{expandTarget as W,parseSelector as L}from"@iiif/helpers";var E=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function b(e,o,r){let i=o.items.filter(u=>u.type==="video"),t=i[0],s=!1;if(e.duration||(s=!0),i.length>1||!t)return p("Only one video source supported");let m=i[0]?.resource,y=!!(m.service||[]).find(u=>(u.profile||"").includes("youtube.com"));if(!y&&s)return p("Video does not have duration");if(!m)return p("Unknown video");if((!m.format||m.format==="text/html")&&!y)return p("Video does not have format");let d=[],a=r.get(e.annotations||[]);for(let u of a){let f=r.get(u.items||[]);for(let g of f)if((g.motivation?Array.isArray(g.motivation||"")?g.motivation:[g.motivation]:[]).includes("supplementing")){let A=r.get(g.body||[]);for(let B of A){let h=B;if(h.type==="Choice")for(let D of h.items){let S=r.get(D);S.format==="text/vtt"&&d.push({id:S.id,type:"Text",format:"text/vtt",label:S.label,language:S.language})}else h.format==="text/vtt"&&d.push({id:h.id,type:"Text",format:"text/vtt",label:h.label,language:h.language})}}}let n={annotationId:t.annotationId,annotation:t.annotation,duration:e.duration,url:m.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:m.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},l=W(t.target);l.selector&&l.selector.type==="TemporalBoxSelector"&&(n.target=l.selector);let{selector:c}=L(t.selector);if(c===null){let u=n.target.temporal.startTime,g=(n.target.temporal.endTime||e.duration)-u;n.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:g}}}else c.type==="TemporalSelector"&&(n.selector=c);if(y){n.type="VideoYouTube";let u=m.id.match(E);if(!u[1])return p("Video is not known youtube video");n.youTubeId=u[1]}return{type:"media",media:n,annotations:{pages:[]},captions:d}}function k(e,o,r,i){let t={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},s={type:"complex-choice",items:[]};function m(a){a.choice&&(a.choice.type==="complex-choice"?s.items.push(...a.choice.items):s.items.push(a.choice))}for(let a of o.items){if(a.type==="image"){let n=C(e,{choice:null,allChoices:null,types:["image"],items:[a]},r);if(n.type==="images"){m(n),t.items.push(n.image);let l={id:n.image.annotationId,type:"enter",resourceType:"image",time:n.image.target?.temporal?.startTime||0};t.keyframes.push(l);let c={id:n.image.annotationId,type:"exit",resourceType:"image",time:n.image.target?.temporal?.endTime||e.duration||0};t.keyframes.push(c)}}if(a.type==="textualbody"){let n=I(e,{choice:null,allChoices:null,types:["textualbody"],items:[a]});if(n.type==="textual-content"){m(n);let l=n.items[0];t.items.push(l);let c=l.target,u={id:l.annotationId,type:"enter",resourceType:"text",time:c.temporal?.startTime||0};t.keyframes.push(u);let f={id:l.annotationId,type:"exit",resourceType:"text",time:c.temporal?.endTime||e.duration||0};t.keyframes.push(f)}}if(a.type==="video"){let n=b(e,{choice:null,allChoices:null,types:["video"],items:[a]},i);if(n.type==="media"){m(n);let l=n.media;t.items.push(l);let c={id:l.annotationId,type:"enter",resourceType:"video",time:l.target?.temporal?.startTime||0};t.keyframes.push(c);let u={id:l.annotationId,type:"exit",resourceType:"video",time:l.target?.temporal?.endTime||e.duration||0};t.keyframes.push(u)}}}t.keyframes.sort((a,n)=>a.time-n.time);let y=[],d=[];for(let a of t.keyframes){if(a.resourceType==="image"||a.resourceType==="text"){d.push(a);continue}if(a.type==="enter"){y.length===0&&(a.isPrime=!0),y.push(a),d.push(a);continue}if(a.type==="exit"&&(d.push(a),y=y.filter(n=>n.id!==a.id),y.length!==0)){let n=y[0],l={id:n.id,type:"change",isPrime:!0,resourceType:n.resourceType,time:a.time};d.push(l)}}return t.keyframes=d,s.items.length&&(t.choice=s),t}function z(e,o){let r=o.items,i=r[0];if(r.length===0||!i)return p("No audio");if(!e.duration)return p("No duration on canvas");if(r.length>1)return p("Only one audio source supported");let t=i.resource;return t?"format"in t?{type:"media",media:{annotationId:i.annotationId,annotation:i.annotation,duration:e.duration,url:t.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:t.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:p("Audio does not have format"):p("Unknown audio")}var V={},w={get(e){return e},setMetaValue([e,o,r],i){let t=w.getResourceMeta(e,o),s=t?t[r]:void 0,m=typeof i=="function"?i(s):i;V[e]={...V[e]||{},[o]:{...(V[e]||{})[o]||{},[r]:m}}},getResourceMeta:(e,o)=>{let r=V[e];if(r)return o?r[o]:r},async load(e){let o=typeof e=="string"?e:e.id;return fetch(o).then(r=>r.json())},requestStatus(e){}};function Ve({canvas:e,paintables:o,supports:r,loadImageService:i,vault:t=w}){if(!e)return T;if(o.types.length===0)return r.indexOf("empty")!==-1?v(e.width,e.height):T;if(o.types.length!==1)if(o.types.length===2&&o.types.indexOf("text")!==-1)o.types=o.types.filter(m=>m!=="text");else return r.indexOf("complex-timeline")===-1?p("Complex timeline not supported"):k(e,o,i,t);let s=o.types[0];return s==="image"?r.indexOf("images")===-1?p("Image not supported"):C(e,o,i):s==="Model"||s==="model"?r.indexOf("3d-model")===-1?p("3D not supported"):R(e,o):s==="textualbody"?r.indexOf("textual-content")===-1?p("Textual content not supported"):I(e,o):s==="sound"||s==="audio"?r.indexOf("media")===-1?p("Media not supported"):z(e,o):s==="video"?r.indexOf("media")===-1?p("Media not supported"):b(e,o,t):T}export{j as a,x as b,Q as c,T as d,p as e,v as f,R as g,C as h,I as i,b as j,k,Ve as l};
@@ -3,7 +3,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { AtlasProps, Preset, BoxStyle, ViewerMode } from '@atlas-viewer/atlas';
4
4
  import { AnnotationPage, Reference } from '@iiif/presentation-3';
5
5
  import { AnnotationPageNormalized, CanvasNormalized } from '@iiif/presentation-3-normalized';
6
- import { S as SingleAudio, a as SingleVideo, M as MediaStrategy, b as StrategyActions, c as SingleImageStrategy, E as EmptyStrategy, C as ComplexTimelineStrategy, R as RenderingStrategy, I as ImageWithOptionalService } from './useRenderingStrategy-B03X9rQS.cjs';
6
+ import { S as SingleAudio, a as SingleVideo, M as MediaStrategy, b as StrategyActions, c as SingleImageStrategy, E as EmptyStrategy, C as ComplexTimelineStrategy, R as RenderingStrategy, I as ImageWithOptionalService } from './useRenderingStrategy-BiuSDiXu.cjs';
7
7
  import { ChoiceDescription, ImageCandidate, BoxSelector } from '@iiif/helpers';
8
8
  import { Vault } from '@iiif/helpers/vault';
9
9
 
@@ -3,7 +3,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { AtlasProps, Preset, BoxStyle, ViewerMode } from '@atlas-viewer/atlas';
4
4
  import { AnnotationPage, Reference } from '@iiif/presentation-3';
5
5
  import { AnnotationPageNormalized, CanvasNormalized } from '@iiif/presentation-3-normalized';
6
- import { S as SingleAudio, a as SingleVideo, M as MediaStrategy, b as StrategyActions, c as SingleImageStrategy, E as EmptyStrategy, C as ComplexTimelineStrategy, R as RenderingStrategy, I as ImageWithOptionalService } from './useRenderingStrategy-B03X9rQS.js';
6
+ import { S as SingleAudio, a as SingleVideo, M as MediaStrategy, b as StrategyActions, c as SingleImageStrategy, E as EmptyStrategy, C as ComplexTimelineStrategy, R as RenderingStrategy, I as ImageWithOptionalService } from './useRenderingStrategy-BiuSDiXu.js';
7
7
  import { ChoiceDescription, ImageCandidate, BoxSelector } from '@iiif/helpers';
8
8
  import { Vault } from '@iiif/helpers/vault';
9
9