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