react-iiif-vault 2.0.11 → 2.0.12

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