react-iiif-vault 1.5.0 → 1.5.2

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