react-iiif-vault 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var si=Object.create;var wt=Object.defineProperty;var ci=Object.getOwnPropertyDescriptor;var ui=Object.getOwnPropertyNames;var li=Object.getPrototypeOf,di=Object.prototype.hasOwnProperty;var mi=(e,t)=>{for(var n in t)wt(e,n,{get:t[n],enumerable:!0})},It=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ui(t))!di.call(e,o)&&o!==n&&wt(e,o,{get:()=>t[o],enumerable:!(r=ci(t,o))||r.enumerable});return e},p=(e,t,n)=>(It(e,t,"default"),n&&It(n,t,"default")),oe=(e,t,n)=>(n=e!=null?si(li(e)):{},It(t||!e||!e.__esModule?wt(n,"default",{value:e,enumerable:!0}):n,e)),fi=e=>It(wt({},"__esModule",{value:!0}),e);var f={};mi(f,{AnnotationContext:()=>na,AnnotationPageContext:()=>ra,AnnotationStyleProvider:()=>ea,Auth:()=>Cn,AuthProvider:()=>xn,AuthRContext:()=>we,AuthReactContext:()=>Vr,AuthReactContextActions:()=>Lr,CanvasAnnotations:()=>Wi,CanvasContext:()=>ue,CanvasPanel:()=>B,CollectionContext:()=>oa,CombinedMetadata:()=>Ui,ContextBridge:()=>In,CreateCustomShape:()=>fr,EventsProvider:()=>Ri,Image:()=>Uo,ImageServiceLoaderContext:()=>Co,InnerViewerProvider:()=>qr,LanguageProvider:()=>wi,LanguageString:()=>po,LocaleString:()=>K,ManifestContext:()=>un,ManifestMetadata:()=>_i,MediaPlayerProvider:()=>yt,Metadata:()=>At,PolygonSelector:()=>ta,RangeContext:()=>ln,ReactEventContext:()=>Te,ReactVaultContext:()=>pe,RenderSvgEditorControls:()=>Ki,ResourceProvider:()=>q,ResourceReactContext:()=>Je,SelectorControllerProvider:()=>Xi,SequenceThumbnails:()=>ji,SimpleViewerProvider:()=>Pn,SimpleViewerReactContext:()=>We,SingleCanvasThumbnail:()=>or,TranslationProvider:()=>Ii,VaultProvider:()=>Ae,ViewerPresetContext:()=>_e,VirtualAnnotationProvider:()=>kn,VisibleCanvasReactContext:()=>Re,authDetailsForResource:()=>vn,createAuthStateStore:()=>gn,createProbe:()=>hn,defaultEmitter:()=>$r,emptyActions:()=>Fn,emptyStrategy:()=>Dn,findAllCanvasesInRange:()=>kt,findFirstCanvasFromRange:()=>Tr,findManifestSelectedRange:()=>gi,findSelectedRange:()=>dn,flattenAnnotationPageIds:()=>qn,formatTime:()=>Mo,get3dStrategy:()=>_n,getDefaultAnnotationStyles:()=>cr,getImageStrategy:()=>Qn,getManifestSequence:()=>Nt,getParsedTargetSelector:()=>ft,getRenderingStrategy:()=>Kn,getTextualContentStrategy:()=>jn,getVideoStrategy:()=>Gn,getVisibleCanvasesFromCanvasId:()=>hi,hasAuth:()=>vi,makeAccessServiceRequest:()=>fn,makeAccessTokenRequest:()=>Et,parseSpecificResource:()=>ki,svgThemes:()=>Xo,unknownResponse:()=>pt,unsupportedStrategy:()=>I,useAnnotation:()=>ut,useAnnotationPage:()=>Hn,useAnnotationPageManager:()=>ht,useAnnotationStyles:()=>lr,useAnnotationsAtTime:()=>ia,useAuthActions:()=>zr,useAuthService:()=>Hr,useAuthStore:()=>De,useAuthToken:()=>Si,useAuthTokens:()=>yn,useCanvas:()=>R,useCanvasChoices:()=>aa,useCanvasClock:()=>sa,useCanvasSequence:()=>mn,useCanvasSubset:()=>ca,useClosestLanguage:()=>ho,useCollection:()=>ua,useContextBridge:()=>Rn,useCreateLocaleString:()=>Ti,useCurrentAuth:()=>yi,useDispatch:()=>wn,useEventEmitter:()=>st,useEventListener:()=>la,useExistingVault:()=>Pe,useExternalCollection:()=>da,useExternalManifest:()=>cn,useExternalResource:()=>tt,useIIIFLanguage:()=>qt,useImage:()=>Zt,useImageService:()=>hr,useImageServiceLoader:()=>me,useImageTile:()=>ma,useIsAuthEnabled:()=>bn,useLoadImageService:()=>Un,useLocaleString:()=>vo,useManifest:()=>z,useMediaActions:()=>Bi,useMediaElements:()=>Fi,useMediaState:()=>Oi,usePaintables:()=>$n,usePaintingAnnotations:()=>Le,usePolygonHelper:()=>dr,useRange:()=>nt,useRenderingStrategy:()=>Xn,useResourceContext:()=>D,useResourceEvents:()=>ct,useResources:()=>Wn,useSearchService:()=>An,useSelectorController:()=>sr,useSelectorEmitter:()=>Zi,useSelectorEvents:()=>ar,useSelectorHelper:()=>Ji,useSimpleMediaPlayer:()=>He,useSimpleViewer:()=>at,useStyleHelper:()=>fa,useStyles:()=>Ne,useSvgEditor:()=>mr,useThumbnail:()=>vt,useTranslations:()=>Bn,useVault:()=>C,useVaultEffect:()=>Zn,useVaultSelector:()=>A,useViewerPreset:()=>Nn,useVirtualAnnotationPage:()=>Tn,useVirtualAnnotationPageContext:()=>Mn,useVisibleCanvases:()=>Ie});module.exports=fi(f);var bt=require("react");var W=oe(require("react"),1),Bt=require("@atlas-viewer/atlas"),Jr=require("react-error-boundary");var he=require("react");var Oe=oe(require("react"),1),yr=require("react/jsx-runtime"),pi={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Je=Oe.default.createContext(pi),D=()=>(0,Oe.useContext)(Je);function q({value:e,children:t}){let n=D(),r=(0,Oe.useMemo)(()=>({...n,...e}),[e,n]);return(0,yr.jsx)(Je.Provider,{value:r,children:t})}var Tt=oe(require("react"),1),et=require("@iiif/helpers/vault");var sn=require("react/jsx-runtime"),pe=Tt.default.createContext({vault:null,setVaultInstance:e=>{}});function Ae({vault:e,vaultOptions:t,useGlobal:n,resources:r,children:o}){let[i,a]=(0,Tt.useState)(()=>e||(n?(0,et.globalVault)(t):t?new et.Vault(t):new et.Vault));return(0,sn.jsx)(pe.Provider,{value:{vault:i,setVaultInstance:a},children:(0,sn.jsx)(q,{value:r||{},children:o})})}var Dr=require("react"),Lt=require("react");var Sr=require("@iiif/helpers/vault"),xr=require("react");function Pe(e){let t=(0,xr.useContext)(pe);return e||(t&&t.vault?t.vault:(0,Sr.globalVault)())}var ge=require("react");function tt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,r=Pe(),[o,i]=(0,ge.useState)(n),[a,s]=(0,ge.useState)(void 0),c=(0,ge.useMemo)(()=>r.get(n,{skipSelfReturn:!0})||void 0,[n,r]),[u,l]=(0,ge.useState)(c);return(0,ge.useEffect)(()=>{(async()=>{try{let d=c&&!t?c:await r.load(n),v=d?d.id||d["@id"]:null;d&&o!==v&&i(v),l(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!u,id:o,requestId:n,error:a,resource:u,cached:!!(u&&u===c)}}function cn(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=tt(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var br=require("react/jsx-runtime");function un({manifest:e,children:t}){return(0,br.jsx)(q,{value:{manifest:e},children:t})}var Cr=require("react/jsx-runtime");function ue({canvas:e,children:t}){return(0,Cr.jsx)(q,{value:{canvas:e},children:t})}var Pr=require("react"),Rr=oe(require("react"),1);var Ar=require("react"),C=()=>{let{vault:e}=(0,Ar.useContext)(pe);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Mt=require("react");function A(e,t=[]){let n=C(),[r,o]=(0,Mt.useState)(()=>e(n.getState(),n));return(0,Mt.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{o(i)},!1),t),r}var Re=Rr.default.createContext([]);function Ie(){let e=(0,Pr.useContext)(Re);return A(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var Ir=require("react");function z(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=C(),a=n||o.manifest,s=A(c=>a?c.iiif.entities.Manifest[a]:void 0,[a]);return(0,Ir.useMemo)(()=>{if(s)return r?r(s):s},[s,r,...t])}var wr=require("react/jsx-runtime");function ln({range:e,children:t}){return(0,wr.jsx)(q,{value:{range:e},children:t})}function Tr(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let r=Tr(e,e.get(n));if(r)return r}}return null}function kt(e,t){let n=[];for(let r of t.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?n.push({id:r.source.id.split("#")[0],type:"Canvas"}):n.push(r.source)),r.type==="Range"&&n.push(...kt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;n.push({id:o,type:"Canvas"})}return n}function gi(e,t,n){for(let r of t.structures){let o=dn(e,e.get(r),n);if(o)return o}return null}function dn(e,t,n){for(let r of t.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===n||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&n===o)return t;if(r.type==="Range"){let i=dn(e,e.get(r),n);if(i)return i}}return null}function hi(e,t,n,r=!1){let o=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=r?!1:o.includes("paged"),c=s?!1:o.includes("continuous"),u=s||c?!1:o.includes("individuals"),l=a.includes("facing-pages"),d=a.includes("non-paged");if(l||d||u||r)return[{id:i.id,type:"Canvas"}];let[v,y]=Nt(e,t);if(c)return v;let h=v.findIndex(g=>g.id===n);if(h===-1)return[];for(let g of y)if(g.includes(h))return g.map(S=>v[S]);return[{id:i.id,type:"Canvas"}]}function Nt(e,t,{disablePaging:n,skipNonPaged:r}={}){let o=t.behavior,i=o.includes("paged"),a=i?!1:o.includes("continuous"),s=i||a?!1:o.includes("individuals"),c=t.type==="Manifest"?t.items:kt(e,t);if(a)return[c,[c.map((h,g)=>g)]];if(s||!i||n)return[c,c.map((h,g)=>[g])];let u=[],l=[],d=()=>{l.length&&(u.push([...l]),l=[])},v=0,y=!1;for(let h=0;h<c.length;h++){let g=e.get(c[h]);if(g.behavior.includes("non-paged")){h===v&&v++,r||(d(),u.push([h]),d());continue}if(h===v||g.behavior.includes("facing-pages")){l.length&&(y=!0),d(),u.push([h]),d();continue}if(l.push(h),y){d(),y=!1;continue}l.length>1&&d()}return l.length&&d(),[c,u]}var ee=require("react");var Mr=require("react");function nt(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.range,a=A(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Mr.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}function mn({startCanvas:e,disablePaging:t}){let n=C(),r=z(),o=nt(),[i,a]=(0,ee.useState)(void 0),s=o||r;if(!s)throw new Error("Nothing selected");let[c,u]=(0,ee.useMemo)(()=>Nt(n,s,{disablePaging:t}),[n,s,t]),l=(0,ee.useRef)(u);if(l.current!==u){let S=l.current[i][0],x=u.findIndex(T=>T.includes(S));l.current=u,a(x)}let d=(0,ee.useCallback)(g=>{let S=u.findIndex(x=>x.includes(g));a(S===-1?0:S)},[c,u]),v=(0,ee.useCallback)(g=>{let S=c.findIndex(x=>x.id===g);S!==-1?d(S):a(0)},[c,u]),y=(0,ee.useCallback)(()=>{a(g=>g>=u.length-1?g:g+1)},[u]),h=(0,ee.useCallback)(()=>{a(g=>g<=0?0:g-1)},[u]);return typeof i>"u"&&(e?v(e):a(0)),{visibleItems:u[i]?.map(g=>c[g].id)||[],cursor:i,items:c,sequence:u,hasPrevious:i>0,hasNext:i<u.length-1,setSequenceIndex:a,setCanvasIndex:d,setCanvasId:v,next:y,previous:h}}var ne=require("react"),Fe=require("zustand");var pn=require("zustand/vanilla");function vi(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function te(e,t,n){let r=t.findIndex(a=>a.service.id===e);if(r===-1)return t;let o=[...t],i=n(o[r]);return i===o[r]?t:(o[r]=i,o)}var gn=()=>(0,pn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let r=n.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:te(n.id,t().authItems,o=>({...o,isPending:!0}))})),fn(n.service).then(()=>{Et(r).then(o=>{let i=o.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:te(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:a}}))}))}).catch(o=>{e(()=>({authItems:te(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let r=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${kr()}`,i=window.open(o);e(()=>({authItems:te(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,r=t().currentAuth+1;r>=n||e(()=>({currentAuth:r}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,r)=>{if(!n.service)return;let o=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:te(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:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!o)throw new Error("Token service not found");Et(o).then(s=>{e(()=>({authItems:te(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:te(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:te(n.id,t().authItems,s=>({...s,isPending:!0}))})),fn(i).then(()=>{Et(o).then(s=>{e(()=>({authItems:te(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:te(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,r)=>{let o=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(o){let a=t().authItems.find(c=>c.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:te(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),hn=(e,t)=>(0,pn.createStore)((n,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=r().token;try{let a=await fetch(o,{headers:i?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){n({token:o})}}));function vn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let r of t)if(r.type==="AuthProbeService2"){n.services.probe=r,n.hasAuth=!0;let o=r.service.filter(i=>i.type==="AuthAccessService2");o[0]&&(n.services.access=o[0])}return n}async function Et(e,{strict:t=!0}={}){return new Promise((n,r)=>{let o=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${o}&origin=${window.location.origin}`,a=u=>{let l=u.data;if(l.messageId===o){if(t&&l.type!=="AuthAccessToken2"){s(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){s(),r("Invalid response, expected accessToken");return}s(),n(l)}},s=()=>window.removeEventListener("message",a),c=document.createElement("iframe");c.src=i,c.style.display="none",document.body.appendChild(c),window.addEventListener("message",a)})}function kr(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 fn(e){let t=`${e.id}?origin=${kr()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((r,o)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),r())},500)})}var Be=require("react");var Nr=require("zustand");function Er(e){let t=(0,Be.useMemo)(()=>vn(e),[e]),n=yn(t.services.access?.id),r=(0,Be.useMemo)(()=>hn(t.services.probe,n),[t.services.probe]),o=(0,Nr.useStore)(r);return(0,Be.useEffect)(()=>{o.status==="unknown"&&!n&&o.probe()},[t.services.probe,o.status]),(0,Be.useEffect)(()=>{n&&(o.setToken(n),o.probe())},[n]),[e,o,t.hasAuth]}var rt=require("react/jsx-runtime"),we=(0,ne.createContext)(null),Vr=(0,ne.createContext)(null);Vr.displayName="CurrentAuth";var Lr=(0,ne.createContext)(null);Lr.displayName="AuthActions";function xn({children:e}){let t=(0,ne.useMemo)(()=>gn(),[]);return(0,rt.jsx)(we.Provider,{value:t,children:e})}function bn(){return!!(0,ne.useContext)(we)}function De(){let e=(0,ne.useContext)(we);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function zr(){let e=De();return(0,Fe.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 yi(){let e=De();return(0,Fe.useStore)(e,t=>t)}function Hr(e){let t=De();return(0,Fe.useStore)(t,r=>r.authItems.find(o=>o.service.id===e))}function yn(e){let t=De();return(0,Fe.useStore)(t,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function Si(e){let t=De();return(0,Fe.useStore)(t,r=>{let o=r.authItems.find(i=>i.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function xi(e){let t=zr(),n=Hr(e.service.id);return(0,ne.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Sn(){return null}function Cn(e){let[t,n,r]=Er(e.resource),o=e.fallbackComponent||Sn,i=e.loadingComponent||Sn,a=e.errorComponent||Sn,s=n.service,c=null;if(!r||!s)return e.children(t);let u=s.service.filter(l=>l.type==="AuthAccessService2");n.status==="error"&&(c=(0,rt.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(c=(0,rt.jsx)(i,{})),n.status==="success"&&(c=e.children(t));for(let l of u)c=(0,rt.jsx)(xi,{service:l,probeId:s.id,children:c},l.id);return c}var ot=require("react");var Or=require("zustand/vanilla"),bi=e=>e.id||e["@id"];function Ci(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 Br=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?bi(t):void 0,r=null;return(0,Or.createStore)((o,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ci(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let c=new URLSearchParams;a.q&&c.set("q",a.q),a.motivation&&c.set("motivation",a.motivation),a.date&&c.set("date",a.date),a.user&&c.set("user",a.user),o({loading:!0}),fetch(`${n}?${c.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async u=>{if(!r?.signal.aborted)if(u.ok){let l=await u.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(c=>c["@id"]===a);o({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[0]||null});return}let c=a.findIndex(u=>u["@id"]===s["@id"]);if(c===-1){o({highlight:a[0]||null});return}o({highlight:a[c+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[a.length-1]||null});return}let c=a.findIndex(u=>u["@id"]===s["@id"]);if(c===-1){o({highlight:a[a.length-1]||null});return}if(c===0){o({highlight:a[a.length-1]||null});return}o({highlight:a[c-1]||a[a.length-1]||null})}}))};var Ai=require("zustand");function An(){let e=z();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"),qe=(0,ot.createContext)(null);qe.displayName="Search";function Fr(e){let t=An();return e.store?(0,Vt.jsx)(qe.Provider,{value:e.store,children:e.children}):(0,Vt.jsx)(Pi,{service:t,children:e.children})}function Pi({service:e,children:t}){let n=(0,ot.useMemo)(()=>Br(e),[e]);return(0,Vt.jsx)(qe.Provider,{value:n,children:t})}var Y=require("react/jsx-runtime"),it=()=>{},We=(0,Lt.createContext)({setCurrentCanvasId:it,setCurrentCanvasIndex:it,nextCanvas:it,previousCanvas:it,items:[],sequence:[],setSequenceIndex:it,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function qr(e){let t=z(),{cursor:n,visibleItems:r,next:o,sequence:i,items:a,setCanvasIndex:s,setCanvasId:c,previous:u,setSequenceIndex:l,hasNext:d,hasPrevious:v}=mn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),y=(0,Lt.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:c,nextCanvas:o,previousCanvas:u,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:l,currentSequenceIndex:n,hasNext:d,hasPrevious:v}),[i,a,c,o,u,a,s,l,n]);return t?r.length===0?null:(0,Y.jsx)(We.Provider,{value:y,children:(0,Y.jsx)(Re.Provider,{value:r,children:(0,Y.jsx)(ue,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,Y.jsx)("div",{children:"Sorry, something went wrong."}))}function Pn(e){let t=Pe(e.vault),n=cn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,Y.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,Y.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,Y.jsx)("div",{children:"Loading..."});let r=(0,Y.jsx)(qr,{...e,children:e.children});return(0,Y.jsx)(Ae,{vault:t,children:(0,Y.jsx)(un,{manifest:n.id,children:(0,Y.jsx)(xn,{children:(0,Y.jsx)(Fr,{children:e.rangeId?(0,Y.jsx)(ln,{range:e.rangeId,children:r}):r})})})})}function at(){return(0,Dr.useContext)(We)}var Wr=oe(require("react"),1),zt=require("react"),Ur=oe(require("mitt"),1),_r=require("react/jsx-runtime"),$r=(0,Ur.default)(),Te=(0,zt.createContext)({emitter:$r});Te.displayName="Events";function st(){return Wr.default.useContext(Te).emitter}function Ri({emitter:e,children:t}){return(0,_r.jsx)(Te.Provider,{value:(0,zt.useMemo)(()=>({emitter:e}),[e]),children:t})}var Me=require("react/jsx-runtime");function Rn(){return{VaultContext:(0,he.useContext)(pe),ResourceContext:(0,he.useContext)(Je),SimpleViewerReactContext:(0,he.useContext)(We),VisibleCanvasReactContext:(0,he.useContext)(Re),AuthRContext:(0,he.useContext)(we),SearchReactContext:(0,he.useContext)(qe),ReactEventContext:(0,he.useContext)(Te)}}function In(e){return(0,Me.jsx)(Ae,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,Me.jsx)(Re.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,Me.jsx)(We.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,Me.jsx)(Te.Provider,{value:e.bridge.ReactEventContext,children:(0,Me.jsx)(we.Provider,{value:e.bridge.AuthRContext,children:(0,Me.jsx)(qe.Provider,{value:e.bridge.SearchReactContext,children:e.children})})})})})})}var Ue=require("react");var le=require("react");var Ht=require("@iiif/helpers/vault/actions");var Yr=require("react");function wn(){let t=C().getStore();return(0,Yr.useMemo)(()=>n=>t.dispatch(n),[t])}function Qr(e){return typeof e!="string"&&e&&e.bindToVault}function Tn(){let e=C(),t=(0,le.useRef)([]),n=wn(),r=(0,le.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,le.useLayoutEffect)(()=>{let s={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Ht.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[r]);let o=A(s=>r&&s.iiif.entities.AnnotationPage[r]||null,[r]),i=(0,le.useCallback)((s,c)=>{if(r){if(Qr(s)){let d=s;d.__vault||d.bindToVault(e),s=typeof d.source=="string"?d.source:d.source.id,t.current[s]=d}else typeof s!="string"&&(s=s.id);let u=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:s,type:"Annotation"});u&&l&&(u.items.find(d=>d.id===l.id)||n(Ht.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:c})))}},[r]),a=(0,le.useCallback)(s=>{r&&(Qr(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&n(Ht.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[r]);return[o,{addAnnotation:i,removeAnnotation:a}]}var Gr=require("react/jsx-runtime"),jr=(0,Ue.createContext)(null);function Mn(){let e=(0,Ue.useContext)(jr);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function kn({children:e}){let[t,{addAnnotation:n,removeAnnotation:r}]=Tn();return(0,Gr.jsx)(jr.Provider,{value:(0,Ue.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:r}),[t]),children:e})}var $e=require("react/jsx-runtime");function Kr({width:e,style:t,height:n,error:r,resetErrorBoundary:o}){return(0,$e.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,$e.jsx)("h3",{children:"Error occurred"}),(0,$e.jsx)("p",{children:r.message}),(0,$e.jsx)("button",{onClick:o,children:"Reset"})]})}var Ot=require("react"),_e=(0,Ot.createContext)(null);function Nn(){return(0,Ot.useContext)(_e)}var ke=require("react"),En=(0,ke.createContext)(()=>{}),Vn=(0,ke.createContext)(()=>{});function re(e,t,n,r,o=[]){let i=(0,ke.useContext)(e==="portal"?Vn:En);(0,ke.useEffect)(()=>(e!=="none"&&i(t,n,r),()=>{i(t,null)}),[t,e,i,...o])}var Ye=require("react");var Xr=require("react");function R(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.canvas,a=A(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,Xr.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var Ln=(0,Ye.createContext)(()=>{});function Zr(e){let t=R(),n=(0,Ye.useContext)(Ln);(0,Ye.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var V=require("react/jsx-runtime");function eo({children:e,errorFallback:t,outerContainerProps:n={},worldScale:r,...o}){let[i,a]=(0,W.useState)(),s=Rn(),c=t||Kr,[u,l]=(0,W.useState)({}),d=Object.entries(u),[v,y]=(0,W.useState)({}),h=Object.entries(v),[g,S]=(0,W.useState)({}),x=(0,W.useMemo)(()=>r||Math.max(...Object.values(g)),[g]),T=(0,W.useMemo)(()=>({maxOverZoom:x||1,...o.runtimeOptions||{}}),[x,o.runtimeOptions]),m=(0,W.useCallback)((M,O)=>{S(_=>{if(O===-1){let{[M]:b,...J}=_;return J}return{..._,[M]:O}})},[]),H=(0,W.useCallback)((M,O,_)=>{l(({[M]:b,...J})=>O?{...J,[M]:{element:O,props:_}}:J)},[]),fe=(0,W.useCallback)((M,O,_)=>{y(({[M]:b,...J})=>O?{...J,[M]:{element:O,props:_}}:J)},[]);return(0,V.jsxs)(Jr.ErrorBoundary,{resetKeys:[],fallbackRender:M=>(0,V.jsx)(c,{...o,...M}),children:[(0,V.jsx)(Bt.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,V.jsx)(V.Fragment,{children:d.map(([M,{element:O,props:_}])=>(0,V.jsx)(W.default.Fragment,{children:(0,V.jsx)(O,{..._||{}})},M))}),onCreated:M=>{a(M),o.onCreated&&o.onCreated(M)},runtimeOptions:T,children:(0,V.jsx)(_e.Provider,{value:i,children:(0,V.jsx)(Ln.Provider,{value:m,children:(0,V.jsx)(En.Provider,{value:H,children:(0,V.jsx)(Vn.Provider,{value:fe,children:(0,V.jsx)(In,{bridge:s,children:(0,V.jsx)(Bt.ModeContext.Provider,{value:o.mode||"explore",children:(0,V.jsx)(kn,{children:e})})})})})})})}),(0,V.jsx)("div",{children:h.map(([M,{element:O,props:_}])=>(0,V.jsx)(W.default.Fragment,{children:(0,V.jsx)(O,{..._||{}})},M))})]})}var Ft=require("@atlas-viewer/atlas");var zn=require("react"),to=require("@iiif/helpers/events");function ct(e,t){let n=C(),r=(0,zn.useMemo)(()=>(0,to.createEventsHelper)(n),[n]),o=A(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,zn.useMemo)(()=>e?r.getListenersAsProps(e,t):{},[o,e,n,t])}var no=require("react"),ro=require("@iiif/helpers/styles");function Ne(e,t){let n=C(),r=(0,no.useMemo)(()=>(0,ro.createStylesHelper)(n),[n]);return A(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?t?o[t]:o:void 0},[e,t])}var ao=require("react");var oo=require("react");var io=require("@iiif/helpers/annotation-targets");function ut(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=C(),a=n||o.annotation,s=A(u=>a?u.iiif.entities.Annotation[a]:void 0,[a]),c=A(u=>s&&s.body?s.body.map(l=>l?l.type==="SpecificResource"?{...l,source:i.get(l)}:l?u.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[s]);return(0,oo.useMemo)(()=>{if(!s)return;let u={...s,body:c,target:(0,io.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping})};return r?r(u):u},[s,r,c,...t])}var so=require("react/jsx-runtime"),Dt=({id:e,style:t,className:n,interactive:r})=>{let o=ut({id:e}),i=Ne(o,"atlas"),a=Ne(o,"html"),s=ct(o,["atlas"]),c=R(),u=(0,ao.useMemo)(()=>(0,Ft.mergeStyles)(t,i),[t,i]);return c&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===c.id||o.target.source===c.id)?(0,so.jsx)(Ft.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:u,className:a?.className||n,interactive:!!(a?.href||r),href:a?.href||null,title:a?.title||null,hrefTarget:a?.target||null,onClick:()=>{},...s}):null};var uo=require("react");var co=require("react");function Hn(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.annotationPage,a=A(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,co.useMemo)(()=>{if(a)return r?r(a):a},[a,...t])}var On=require("react/jsx-runtime"),lt=({className:e,page:t})=>{let n=Hn({id:t.id})||t,r=Ne(n,"atlas"),o=Ne(n,"html");return A(i=>n.id?i.iiif.entities.AnnotationPage[n.id]:null,[]),(0,On.jsx)(uo.Fragment,{children:n.items?.map(i=>(0,On.jsx)(Dt,{id:i.id,style:r,className:o?.className||e},i.id))})};var Ho=require("@iiif/helpers/styles");var mt=require("react");var dt=require("@atlas-viewer/atlas");var de=oe(require("react"),1),ie=require("react/jsx-runtime"),mo=de.default.createContext("en"),fo=de.default.createContext({});function Ii(e){return(0,ie.jsx)(fo.Provider,{value:e.translations,children:e.children})}function wi(e){return(0,ie.jsx)(mo.Provider,{value:e.language,children:e.children})}function qt(){return de.default.useContext(mo)}function Bn(){return de.default.useContext(fo)}function lo(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function po({as:e,language:t,children:n,viewingDirection:r,...o}){let i=qt();return(0,de.useMemo)(()=>lo(i)===lo(t),[i,t])?e?(0,ie.jsx)(e,{...o,children:n}):(0,ie.jsx)("span",{...o,children:n}):e?(0,ie.jsx)(e,{...o,lang:t,dir:r,children:n}):(0,ie.jsx)("span",{...o,lang:t,dir:r,children:n})}function go(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&t.indexOf(r)!==-1)return r;for(let o of n)if(t.indexOf(o)!==-1)return o;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var ho=(e,t=[])=>{let n=qt();return(0,de.useMemo)(()=>{let r=e();return go(n,r,[])},[n,...t])};function Ee(e,t){return t?e[t]||t:""}function vo(e,t,n=`
2
- `,r={}){let o=ho(()=>Object.keys(e||{}),[e]);return[(0,de.useMemo)(()=>{if(!e)return Ee(r,t)||"";if(typeof e=="string")return Ee(r,e);let i=o?e[o]:void 0;return i?typeof i=="string"?i:i.map(a=>Ee(r,a)).join(n):""},[o,t,e]),o]}function Ti(){let e=qt(),t=Bn();return function(r,o="",i=`
3
- `,a=t){let s=Object.keys(r||{}),c=go(e,s,[]);if(!r)return Ee(a,o)||"";if(typeof r=="string")return Ee(a,r);let u=c?r[c]:void 0;return u?typeof u=="string"?Ee(a,u):u.map(l=>Ee(a,l)).join(typeof i<"u"?i:`
4
- `):""}}function K({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:r,separator:o,...i}){let a=Bn(),[s,c]=vo(r,t,o,a);return c?(0,ie.jsx)(po,{...i,as:e,language:c,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,ie.jsx)(e,{...i,children:s}):(0,ie.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var Z=require("react/jsx-runtime");function Mi({resource:e,heading:t,note:n,extra:r}){return r?(0,Z.jsx)(dt.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,Z.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,Z.jsxs)("div",{children:[(0,Z.jsx)(K,{children:t||"Not authorised"}),n&&(0,Z.jsx)("p",{children:(0,Z.jsx)(K,{children:n})}),(0,Z.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function yo({image:e,thumbnail:t,crop:n,enableSizes:r}){if(!bn()){let i=e.service,a=i.width||e.width||0,s=i.height||e.height||0;return(0,Z.jsx)(dt.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}return(0,Z.jsx)(Cn,{resource:e.service,errorComponent:Mi,extra:e,children:i=>{let a=i.width||e.width||0,s=i.height||e.height||0;return(0,Z.jsx)(dt.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}},e.id)}var Ve=require("react/jsx-runtime");function Wt({id:e,image:t,thumbnail:n,isStatic:r,x:o=0,y:i=0,children:a,selector:s,onClick:c,enableSizes:u}){let l=(0,mt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]);return(0,Ve.jsx)("world-object",{x:o+t.target.spatial.x,y:i+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:c,children:t.service?(0,Ve.jsxs)(mt.Fragment,{children:[(0,Ve.jsx)(yo,{image:t,thumbnail:n,crop:l,enableSizes:u}),a]},"service"):(0,Ve.jsxs)(mt.Fragment,{children:[(0,Ve.jsx)("world-image",{onClick:c,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:l}),a]},"no-service")},e+(t.service?"server":"no-service"))}var ae=require("react"),Oo=require("@atlas-viewer/atlas");var Qe=require("react");var So=require("@iiif/helpers");function ki(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function ft(e,t){let{selector:n,source:r}=(0,So.expandTarget)(t);if(r.id!==e.id)return[null,r];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:o.spatial}:n:null,r]}var Fn={makeChoice:()=>{}},pt={type:"unknown"},I=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Dn=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var gt=require("react");function Ni(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function xo(e,t){return A(n=>{let r=[];if(!e)return r;let o=Object.keys(n.iiif.entities.AnnotationPage);for(let i of o)if(!t||t.indexOf(i)!==-1){let a=Ni(n,i);a&&a.views&&a.views[e]&&r.push(i)}return r},[e,t])}function qn({canvas:e,manifest:t,all:n,canvases:r}){let o=[];if(t)for(let i of t.annotations)o.indexOf(i.id)===-1&&o.push(i.id);if(n){if(r&&r.length)for(let i of r)for(let a of i.annotations)o.indexOf(a.id)===-1&&o.push(a.id)}else if(e)for(let i of e.annotations)o.indexOf(i.id)===-1&&o.push(i.id);return o}function Ei(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function ht(e,t={}){let n=C(),r=z(),o=R(),i=Ie(),a=(0,gt.useMemo)(()=>qn({all:t.all,manifest:r,canvas:o,canvases:i}),[t.all,o,i,r]),s=xo(e,t.all?void 0:a),c=(0,gt.useCallback)(l=>{e&&n.setMetaValue([l,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),u=(0,gt.useCallback)((l,d={})=>{if(!e)return;let v=n.getState(),y=[];if(d?.deselectOthers){let h=Object.keys(v.iiif.entities.AnnotationPage);for(let g of h){let S=Ei(v,g);S&&S.views&&S.views[e]&&y.push(g)}}for(let h of y)c(h);n.setMetaValue([l,"annotationPageManager","views"],h=>h&&h[e]?h:{...h||{},[e]:!0})},[e,c,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:u,setPageDisabled:c}}function Wn(e,t){return A((n,r)=>r.get(e.map(o=>({id:o,type:t}))),[e,t])}var ve=require("react");var Ut=oe(require("react"),1),bo=require("@atlas-viewer/iiif-image-api"),Co=Ut.default.createContext(new bo.ImageServiceLoader);function me(){return(0,Ut.useContext)(Co)}function Un(){let e=me(),[t,n]=(0,ve.useState)({}),r=(0,ve.useRef)(!1);return(0,ve.useEffect)(()=>()=>{r.current=!0},[]),[(0,ve.useCallback)((i,{height:a,width:s})=>{if(i){let c=i.id||i["@id"],u=e.loadServiceSync({id:c,width:i.width||s,height:i.height||a,source:i});u?i=u:t[c]||(r.current||n(l=>({...l,[c]:"loading"})),e.loadService({id:c,width:i.width||s,height:i.height||a}).then(()=>{r.current||n(l=>({...l,[c]:"done"}))}))}return i},[e,t]),t]}var ze=require("react");function Le(e={}){let t=ut(),n=R(e.canvasId?{id:e.canvasId}:void 0);return A((r,o)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=o.get(n.items),a=[];for(let s of i)a.push(...o.get(s.items));return a},[n])}var Ao=require("@iiif/helpers/painting-annotations");function $n(e,t=[]){let n=C(),r=(0,ze.useMemo)(()=>(0,Ao.createPaintingAnnotationsHelper)(n),[]),o=Le({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,ze.useState)(e?.defaultChoices||[]),s=(0,ze.useMemo)(()=>r.getPaintables(o,i),[n,o,i,...t]),u={makeChoice:(0,ze.useCallback)((l,{deselectOthers:d=!0,deselect:v=!1}={})=>{s.choice&&a(y=>{if(v){let g=y.filter(S=>S!==l);if(g.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return g}if(d)return[l];let h=[...y];if(h.length===0&&s.items.length){let g=s.items[0].resource.id;g&&h.push(g)}return y.indexOf(l)!==-1?y:[...y,l]})},[s.choice])};return[s,u]}var Vi=["model/gltf-binary"];function _n(e,t){let r=t.items[0].resource;return r.format?Vi.indexOf(r.format)===-1?I(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r}:I("Unknown format")}function Po(e,t){if(!e.duration)return I("No duration on canvas");if(t.items.length>1)return I("Only one audio source supported");let n=t.items[0]?.resource;return n?n.format?{type:"media",media:{annotationId:t.items[0].annotationId,duration:e.duration,url:n.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:n.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:I("Audio does not have format"):I("Unknown audio")}var Ro=require("@atlas-viewer/iiif-image-api");var Yn=require("@iiif/helpers/annotation-targets");function Qn(e,t,n){let r=[];for(let o of t.items){let i=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!i.id)return I("No resource Identifier");let a;if(i.service){let h=(0,Ro.getImageServices)(i);h[0]&&(a=n(h[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[c,u]=ft(e,o.target);if(!(u.id===e.id||decodeURIComponent(u.id||"")===(e.id||"")))continue;let l=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,d=o.resource.type==="SpecificResource"?(0,Yn.expandTarget)(o.resource):null;if(o.selector){let h=(0,Yn.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});h&&(d=h)}let v=d&&d.selector&&(d.selector.type==="BoxSelector"||d.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:d.selector.spatial.x,y:d.selector.spatial.y,width:d.selector.spatial.width,height:d.selector.spatial.height}}:void 0;a&&!a.id&&(a.id=a["@id"]);let y={id:i.id,type:"Image",annotationId:o.annotationId,width:Number(c||v?i.width:e.width),height:Number(c||v?i.height:e.height),service:a,sizes:a&&a.sizes?a.sizes:i.width&&i.height?[{width:i.width,height:i.height}]:[],target:c&&c.type!=="PointSelector"?c:s,selector:v};r.push(y)}return{type:"images",image:r[0],images:r,choice:t.choice}}function Io(e,t={},n){let r=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[r]=e.value);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>Io(o,t,r))}return t}function jn(e,t){let n=[];return t.items.forEach(r=>{if(r.resource){let[o]=ft(e,r.target);n.push({annotationId:r.annotationId,text:Io(r.resource),target:o})}}),{type:"textual-content",items:n}}var Li=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Gn(e,t){let n=t.items.filter(s=>s.type==="video"),r=!1;if(e.duration||(r=!0),n.length>1)return I("Only one video source supported");let o=n[0]?.resource,i=!!(o.service||[]).find(s=>(s.profile||"").includes("youtube.com"));if(!i&&r)return I("Video does not have duration");if(!o)return I("Unknown video");if((!o.format||o.format==="text/html")&&!i)return I("Video does not have format");let a={annotationId:t.items[0].annotationId,duration:e.duration,url:o.id,type:"Video",items:[],target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:o.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}};if(i){a.type="VideoYouTube";let s=o.id.match(Li);if(!s[1])return I("Video is not known youtube video");a.youTubeId=s[1]}return{type:"media",media:a,annotations:{pages:[]}}}function Kn({canvas:e,paintables:t,supports:n,loadImageService:r}){if(!e)return pt;if(t.types.length===0)return n.indexOf("empty")!==-1?Dn(e.width,e.height):pt;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?I("Complex timeline not supported"):I("ComplexTimelineStrategy not yet supported");let o=t.types[0];return o==="image"?n.indexOf("images")===-1?I("Image not supported"):Qn(e,t,r):o==="Model"||o==="model"?n.indexOf("3d-model")===-1?I("3D not supported"):_n(e,t):o==="textualbody"?n.indexOf("textual-content")===-1?I("Textual content not supported"):jn(e,t):o==="sound"||o==="audio"?n.indexOf("media")===-1?I("Media not supported"):Po(e,t):o==="video"?n.indexOf("media")===-1?I("Media not supported"):Gn(e,t):pt}function Xn(e){let t=z(),n=R(),r=C(),o=st(),i=e?.emitter||o,[a,s]=Un(),{enabledPageIds:c}=ht(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=Wn(c,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,v]=$n(e,[s]);(0,Qe.useEffect)(()=>{let h=g=>{v.makeChoice(g.choiceId,{deselectOthers:g.deselectOthers,deselect:g.deselect})};return i.on("make-choice",h),()=>{i.off("make-choice",h)}},[]);let y=(0,Qe.useMemo)(()=>Kn({canvas:n,paintables:d,supports:l,loadImageService:a}),[n,d,r,v.makeChoice]);return(0,Qe.useEffect)(()=>{let h=d.allChoices,g={canvasId:n?.id,manifestId:t?.id};h&&i.emit("choice-change",{choice:h,partOf:g})},[n?.id,d.allChoices]),(0,Qe.useMemo)(()=>y.type==="unknown"?[y,Fn]:[{...y,annotations:{pages:u}},v],[y,u])}var ye=require("react");var wo=require("react"),Zn=(e,t=[])=>{let n=C();(0,wo.useEffect)(()=>{e(n)},[n,...t])};var To=require("@iiif/helpers/thumbnail");function vt(e,t,{canvasId:n,manifestId:r}={}){let o=C(),i=me(),a=(0,ye.useMemo)(()=>(0,To.createThumbnailHelper)(o,{imageServiceLoader:i}),[o,i]),[s,c]=(0,ye.useState)(),u=z(r?{id:r}:void 0),l=R(n?{id:n}:void 0),d=l||u,v=(0,ye.useRef)(!1);if((0,ye.useEffect)(()=>(v.current=!1,()=>{v.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return Zn(y=>{a.getBestThumbnailAtSize(d,e,t).then(h=>{h.best&&!v.current&&c(h.best)})},[d]),s}var E=require("react");function zi(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Hi(e,t){switch(t.type){case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function Mo(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function He(e){let[t,n]=(0,E.useReducer)(Hi,zi(e.duration)),r=(0,E.useRef)(null),o=(0,E.useRef)(null),i=(0,E.useRef)(null),a=(0,E.useRef)(!1),s=(0,E.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=Mo(r.current.currentTime),i.current&&(i.current.style.width=`${r.current.currentTime/e.duration*100}%`),a.current!==r.current.muted&&(a.current=r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),c=(0,E.useCallback)(()=>{r.current&&(n({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),u=(0,E.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?c():l())},[s]),l=(0,E.useCallback)(()=>{r.current&&(r.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,E.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),v=(0,E.useCallback)(()=>{r.current&&(r.current.muted=!0,n({type:"MUTE"}))},[]),y=(0,E.useCallback)(()=>{r.current&&(r.current.muted=!1,n({type:"UNMUTE"}))},[]),h=(0,E.useCallback)(x=>{r.current&&(r.current.muted=!1,r.current.volume=x/100,n({type:"SET_VOLUME",volume:x}))},[]),g=(0,E.useCallback)(x=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(x*e.duration,e.duration)),s())},[]),S=(0,E.useCallback)(x=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(x,e.duration)),s())},[]);return(0,E.useEffect)(()=>{let x=setInterval(()=>{s()},350);return()=>clearInterval(x)},[s,e.duration]),(0,E.useEffect)(()=>{let x=()=>{n({type:"FINISHED"})},T=r.current;return T?.addEventListener("ended",x),()=>T?.removeEventListener("ended",x)},[]),[{element:r,currentTime:o,progress:i},t,{play:c,pause:l,playPause:u,mute:v,unmute:y,toggleMute:d,setVolume:h,setDurationPercent:g,setTime:S}]}var Se=require("react"),$t=require("react/jsx-runtime"),ko=(0,Se.createContext)(null),No=(0,Se.createContext)(null),Eo=(0,Se.createContext)(null);function Oi(){let e=(0,Se.useContext)(ko);if(!e)throw new Error("Ctx not found");return e}function Bi(){let e=(0,Se.useContext)(No);if(!e)throw new Error("Ctx not found");return e}function Fi(){let e=(0,Se.useContext)(Eo);if(!e)throw new Error("Ctx not found");return e}function yt({actions:e,state:t,children:n,currentTime:r,progress:o,element:i}){return(0,$t.jsx)(Eo.Provider,{value:{currentTime:r,progress:o,element:i},children:(0,$t.jsx)(No.Provider,{value:e,children:(0,$t.jsx)(ko.Provider,{value:t,children:n})})})}var Yt=require("react/jsx-runtime");function Jn({media:e,children:t}){let[{element:n,currentTime:r,progress:o},i,a]=He({duration:e.duration});return(0,Yt.jsxs)(yt,{state:i,actions:a,currentTime:r,progress:o,element:n,children:[(0,Yt.jsx)("audio",{ref:n,src:e.url}),t]})}function _t({media:e,mediaControlsDeps:t,children:n}){return re("portal","audio",Jn,{media:e,children:n},[e,...t||[]]),null}var St=require("react/jsx-runtime");function er({element:e,media:t,playPause:n}){return(0,St.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,St.jsx)("style",{children:`
1
+ "use strict";var li=Object.create;var kt=Object.defineProperty;var di=Object.getOwnPropertyDescriptor;var mi=Object.getOwnPropertyNames;var fi=Object.getPrototypeOf,pi=Object.prototype.hasOwnProperty;var gi=(e,t)=>{for(var n in t)kt(e,n,{get:t[n],enumerable:!0})},Mt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of mi(t))!pi.call(e,o)&&o!==n&&kt(e,o,{get:()=>t[o],enumerable:!(r=di(t,o))||r.enumerable});return e},p=(e,t,n)=>(Mt(e,t,"default"),n&&Mt(n,t,"default")),ie=(e,t,n)=>(n=e!=null?li(fi(e)):{},Mt(t||!e||!e.__esModule?kt(n,"default",{value:e,enumerable:!0}):n,e)),hi=e=>Mt(kt({},"__esModule",{value:!0}),e);var f={};gi(f,{AnnotationContext:()=>ia,AnnotationPageContext:()=>aa,AnnotationStyleProvider:()=>ra,Auth:()=>Pn,AuthProvider:()=>bn,AuthRContext:()=>we,AuthReactContext:()=>Lr,AuthReactContextActions:()=>zr,CanvasAnnotations:()=>_i,CanvasContext:()=>ee,CanvasPanel:()=>B,CollectionContext:()=>sa,CombinedMetadata:()=>Yi,ContextBridge:()=>Tn,CreateCustomShape:()=>pr,EventsProvider:()=>Ti,Image:()=>Yo,ImageServiceLoaderContext:()=>Ao,InnerViewerProvider:()=>Wr,LanguageProvider:()=>ki,LanguageString:()=>go,LocaleString:()=>K,ManifestContext:()=>dn,ManifestMetadata:()=>ji,MediaPlayerProvider:()=>St,Metadata:()=>Pt,PolygonSelector:()=>oa,RangeContext:()=>mn,ReactEventContext:()=>Te,ReactVaultContext:()=>pe,RenderSvgEditorControls:()=>Ji,ResourceProvider:()=>q,ResourceReactContext:()=>tt,SelectorControllerProvider:()=>ea,SequenceThumbnails:()=>Xi,SimpleViewerProvider:()=>In,SimpleViewerReactContext:()=>Ue,SingleCanvasThumbnail:()=>ir,TranslationProvider:()=>Mi,VaultProvider:()=>Ae,ViewerPresetContext:()=>Ye,VirtualAnnotationProvider:()=>En,VisibleCanvasReactContext:()=>Re,authDetailsForResource:()=>Sn,createAuthStateStore:()=>vn,createProbe:()=>yn,defaultEmitter:()=>_r,emptyActions:()=>qn,emptyStrategy:()=>Wn,findAllCanvasesInRange:()=>Vt,findFirstCanvasFromRange:()=>Mr,findManifestSelectedRange:()=>yi,findSelectedRange:()=>fn,flattenAnnotationPageIds:()=>Un,formatTime:()=>ko,get3dStrategy:()=>Qn,getDefaultAnnotationStyles:()=>ur,getImageStrategy:()=>Gn,getManifestSequence:()=>Lt,getParsedTargetSelector:()=>gt,getRenderingStrategy:()=>Zn,getTextualContentStrategy:()=>Kn,getVideoStrategy:()=>Xn,getVisibleCanvasesFromCanvasId:()=>Si,hasAuth:()=>xi,makeAccessServiceRequest:()=>gn,makeAccessTokenRequest:()=>zt,parseSpecificResource:()=>Vi,svgThemes:()=>ei,unknownResponse:()=>ht,unsupportedStrategy:()=>I,useAnnotation:()=>dt,useAnnotationPage:()=>Bn,useAnnotationPageManager:()=>yt,useAnnotationStyles:()=>dr,useAnnotationsAtTime:()=>ca,useAuthActions:()=>Hr,useAuthService:()=>Or,useAuthStore:()=>qe,useAuthToken:()=>bi,useAuthTokens:()=>xn,useCanvas:()=>R,useCanvasChoices:()=>ua,useCanvasClock:()=>la,useCanvasSequence:()=>pn,useCanvasSubset:()=>da,useClosestLanguage:()=>vo,useCollection:()=>ma,useContextBridge:()=>wn,useCreateLocaleString:()=>Ni,useCurrentAuth:()=>Ci,useDispatch:()=>Mn,useEventEmitter:()=>ut,useEventListener:()=>fa,useExistingVault:()=>Pe,useExternalCollection:()=>pa,useExternalManifest:()=>ln,useExternalResource:()=>rt,useIIIFLanguage:()=>$t,useImage:()=>tn,useImageService:()=>vr,useImageServiceLoader:()=>me,useImageTile:()=>ga,useIsAuthEnabled:()=>An,useLoadImageService:()=>_n,useLocaleString:()=>yo,useManifest:()=>z,useMediaActions:()=>qi,useMediaElements:()=>Wi,useMediaState:()=>Di,usePaintables:()=>Yn,usePaintingAnnotations:()=>Le,usePolygonHelper:()=>mr,useRange:()=>ot,useRenderingStrategy:()=>Jn,useResourceContext:()=>D,useResourceEvents:()=>lt,useResources:()=>$n,useSearchService:()=>Rn,useSelectorController:()=>cr,useSelectorEmitter:()=>ta,useSelectorEvents:()=>sr,useSelectorHelper:()=>na,useSimpleMediaPlayer:()=>Oe,useSimpleViewer:()=>ct,useStyleHelper:()=>ha,useStyles:()=>Ne,useSvgEditor:()=>fr,useThumbnail:()=>He,useTranslations:()=>Dn,useVault:()=>b,useVaultEffect:()=>er,useVaultSelector:()=>A,useViewerPreset:()=>Vn,useVirtualAnnotationPage:()=>kn,useVirtualAnnotationPageContext:()=>Nn,useVisibleCanvases:()=>Ie});module.exports=hi(f);var bt=require("react");var W=ie(require("react"),1),qt=require("@atlas-viewer/atlas"),eo=require("react-error-boundary");var he=require("react");var Be=ie(require("react"),1),Sr=require("react/jsx-runtime"),vi={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},tt=Be.default.createContext(vi),D=()=>(0,Be.useContext)(tt);function q({value:e,children:t}){let n=D(),r=(0,Be.useMemo)(()=>({...n,...e}),[e,n]);return(0,Sr.jsx)(tt.Provider,{value:r,children:t})}var Nt=ie(require("react"),1),nt=require("@iiif/helpers/vault");var un=require("react/jsx-runtime"),pe=Nt.default.createContext({vault:null,setVaultInstance:e=>{}});function Ae({vault:e,vaultOptions:t,useGlobal:n,resources:r,children:o}){let[i,a]=(0,Nt.useState)(()=>e||(n?(0,nt.globalVault)(t):t?new nt.Vault(t):new nt.Vault));return(0,un.jsx)(pe.Provider,{value:{vault:i,setVaultInstance:a},children:(0,un.jsx)(q,{value:r||{},children:o})})}var qr=require("react"),Ot=require("react");var xr=require("@iiif/helpers/vault"),Cr=require("react");function Pe(e){let t=(0,Cr.useContext)(pe);return e||(t&&t.vault?t.vault:(0,xr.globalVault)())}var ge=require("react");function rt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,r=Pe(),[o,i]=(0,ge.useState)(n),[a,s]=(0,ge.useState)(void 0),c=(0,ge.useMemo)(()=>r.get(n,{skipSelfReturn:!0})||void 0,[n,r]),[u,l]=(0,ge.useState)(c);return(0,ge.useEffect)(()=>{(async()=>{try{let d=c&&!t?c:await r.load(n),v=d?d.id||d["@id"]:null;d&&o!==v&&i(v),l(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!u,id:o,requestId:n,error:a,resource:u,cached:!!(u&&u===c)}}function ln(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=rt(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var br=require("react/jsx-runtime");function dn({manifest:e,children:t}){return(0,br.jsx)(q,{value:{manifest:e},children:t})}var Ar=require("react/jsx-runtime");function ee({canvas:e,children:t}){return(0,Ar.jsx)(q,{value:{canvas:e},children:t})}var Rr=require("react"),Ir=ie(require("react"),1);var Pr=require("react"),b=()=>{let{vault:e}=(0,Pr.useContext)(pe);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Et=require("react");function A(e,t=[]){let n=b(),[r,o]=(0,Et.useState)(()=>e(n.getState(),n));return(0,Et.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{o(i)},!1),t),r}var Re=Ir.default.createContext([]);function Ie(){let e=(0,Rr.useContext)(Re);return A(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var wr=require("react");function z(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=b(),a=n||o.manifest,s=A(c=>a?c.iiif.entities.Manifest[a]:void 0,[a]);return(0,wr.useMemo)(()=>{if(s)return r?r(s):s},[s,r,...t])}var Tr=require("react/jsx-runtime");function mn({range:e,children:t}){return(0,Tr.jsx)(q,{value:{range:e},children:t})}function Mr(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let r=Mr(e,e.get(n));if(r)return r}}return null}function Vt(e,t){let n=[];for(let r of t.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?n.push({id:r.source.id.split("#")[0],type:"Canvas"}):n.push(r.source)),r.type==="Range"&&n.push(...Vt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;n.push({id:o,type:"Canvas"})}return n}function yi(e,t,n){for(let r of t.structures){let o=fn(e,e.get(r),n);if(o)return o}return null}function fn(e,t,n){for(let r of t.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===n||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&n===o)return t;if(r.type==="Range"){let i=fn(e,e.get(r),n);if(i)return i}}return null}function Si(e,t,n,r=!1){let o=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=r?!1:o.includes("paged"),c=s?!1:o.includes("continuous"),u=s||c?!1:o.includes("individuals"),l=a.includes("facing-pages"),d=a.includes("non-paged");if(l||d||u||r)return[{id:i.id,type:"Canvas"}];let[v,y]=Lt(e,t);if(c)return v;let h=v.findIndex(g=>g.id===n);if(h===-1)return[];for(let g of y)if(g.includes(h))return g.map(S=>v[S]);return[{id:i.id,type:"Canvas"}]}function Lt(e,t,{disablePaging:n,skipNonPaged:r}={}){let o=t.behavior,i=o.includes("paged"),a=i?!1:o.includes("continuous"),s=i||a?!1:o.includes("individuals"),c=t.type==="Manifest"?t.items:Vt(e,t);if(a)return[c,[c.map((h,g)=>g)]];if(s||!i||n)return[c,c.map((h,g)=>[g])];let u=[],l=[],d=()=>{l.length&&(u.push([...l]),l=[])},v=0,y=!1;for(let h=0;h<c.length;h++){let g=e.get(c[h]);if(g.behavior.includes("non-paged")){h===v&&v++,r||(d(),u.push([h]),d());continue}if(h===v||g.behavior.includes("facing-pages")){l.length&&(y=!0),d(),u.push([h]),d();continue}if(l.push(h),y){d(),y=!1;continue}l.length>1&&d()}return l.length&&d(),[c,u]}var te=require("react");var kr=require("react");function ot(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.range,a=A(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,kr.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}function pn({startCanvas:e,disablePaging:t}){let n=b(),r=z(),o=ot(),[i,a]=(0,te.useState)(void 0),s=o||r;if(!s)throw new Error("Nothing selected");let[c,u]=(0,te.useMemo)(()=>Lt(n,s,{disablePaging:t}),[n,s,t]),l=(0,te.useRef)(u);if(l.current!==u){let S=l.current[i][0],C=u.findIndex(T=>T.includes(S));l.current=u,a(C)}let d=(0,te.useCallback)(g=>{let S=u.findIndex(C=>C.includes(g));a(S===-1?0:S)},[c,u]),v=(0,te.useCallback)(g=>{let S=c.findIndex(C=>C.id===g);S!==-1?d(S):a(0)},[c,u]),y=(0,te.useCallback)(()=>{a(g=>g>=u.length-1?g:g+1)},[u]),h=(0,te.useCallback)(()=>{a(g=>g<=0?0:g-1)},[u]);return typeof i>"u"&&(e?v(e):a(0)),{visibleItems:u[i]?.map(g=>c[g].id)||[],cursor:i,items:c,sequence:u,hasPrevious:i>0,hasNext:i<u.length-1,setSequenceIndex:a,setCanvasIndex:d,setCanvasId:v,next:y,previous:h}}var re=require("react"),De=require("zustand");var hn=require("zustand/vanilla");function xi(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function ne(e,t,n){let r=t.findIndex(a=>a.service.id===e);if(r===-1)return t;let o=[...t],i=n(o[r]);return i===o[r]?t:(o[r]=i,o)}var vn=()=>(0,hn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let r=n.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:ne(n.id,t().authItems,o=>({...o,isPending:!0}))})),gn(n.service).then(()=>{zt(r).then(o=>{let i=o.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ne(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:a}}))}))}).catch(o=>{e(()=>({authItems:ne(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let r=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${Nr()}`,i=window.open(o);e(()=>({authItems:ne(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,r=t().currentAuth+1;r>=n||e(()=>({currentAuth:r}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,r)=>{if(!n.service)return;let o=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:ne(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:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!o)throw new Error("Token service not found");zt(o).then(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:ne(n.id,t().authItems,s=>({...s,isPending:!0}))})),gn(i).then(()=>{zt(o).then(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,r)=>{let o=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(o){let a=t().authItems.find(c=>c.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:ne(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),yn=(e,t)=>(0,hn.createStore)((n,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=r().token;try{let a=await fetch(o,{headers:i?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){n({token:o})}}));function Sn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let r of t)if(r.type==="AuthProbeService2"){n.services.probe=r,n.hasAuth=!0;let o=r.service.filter(i=>i.type==="AuthAccessService2");o[0]&&(n.services.access=o[0])}return n}async function zt(e,{strict:t=!0}={}){return new Promise((n,r)=>{let o=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${o}&origin=${window.location.origin}`,a=u=>{let l=u.data;if(l.messageId===o){if(t&&l.type!=="AuthAccessToken2"){s(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){s(),r("Invalid response, expected accessToken");return}s(),n(l)}},s=()=>window.removeEventListener("message",a),c=document.createElement("iframe");c.src=i,c.style.display="none",document.body.appendChild(c),window.addEventListener("message",a)})}function Nr(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 gn(e){let t=`${e.id}?origin=${Nr()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((r,o)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),r())},500)})}var Fe=require("react");var Er=require("zustand");function Vr(e){let t=(0,Fe.useMemo)(()=>Sn(e),[e]),n=xn(t.services.access?.id),r=(0,Fe.useMemo)(()=>yn(t.services.probe,n),[t.services.probe]),o=(0,Er.useStore)(r);return(0,Fe.useEffect)(()=>{o.status==="unknown"&&!n&&o.probe()},[t.services.probe,o.status]),(0,Fe.useEffect)(()=>{n&&(o.setToken(n),o.probe())},[n]),[e,o,t.hasAuth]}var it=require("react/jsx-runtime"),we=(0,re.createContext)(null),Lr=(0,re.createContext)(null);Lr.displayName="CurrentAuth";var zr=(0,re.createContext)(null);zr.displayName="AuthActions";function bn({children:e}){let t=(0,re.useMemo)(()=>vn(),[]);return(0,it.jsx)(we.Provider,{value:t,children:e})}function An(){return!!(0,re.useContext)(we)}function qe(){let e=(0,re.useContext)(we);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Hr(){let e=qe();return(0,De.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 Ci(){let e=qe();return(0,De.useStore)(e,t=>t)}function Or(e){let t=qe();return(0,De.useStore)(t,r=>r.authItems.find(o=>o.service.id===e))}function xn(e){let t=qe();return(0,De.useStore)(t,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function bi(e){let t=qe();return(0,De.useStore)(t,r=>{let o=r.authItems.find(i=>i.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function Ai(e){let t=Hr(),n=Or(e.service.id);return(0,re.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Cn(){return null}function Pn(e){let[t,n,r]=Vr(e.resource),o=e.fallbackComponent||Cn,i=e.loadingComponent||Cn,a=e.errorComponent||Cn,s=n.service,c=null;if(!r||!s)return e.children(t);let u=s.service.filter(l=>l.type==="AuthAccessService2");n.status==="error"&&(c=(0,it.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(c=(0,it.jsx)(i,{})),n.status==="success"&&(c=e.children(t));for(let l of u)c=(0,it.jsx)(Ai,{service:l,probeId:s.id,children:c},l.id);return c}var at=require("react");var Br=require("zustand/vanilla"),Pi=e=>e.id||e["@id"];function Ri(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 Fr=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?Pi(t):void 0,r=null;return(0,Br.createStore)((o,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ri(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let c=new URLSearchParams;a.q&&c.set("q",a.q),a.motivation&&c.set("motivation",a.motivation),a.date&&c.set("date",a.date),a.user&&c.set("user",a.user),o({loading:!0}),fetch(`${n}?${c.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async u=>{if(!r?.signal.aborted)if(u.ok){let l=await u.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(c=>c["@id"]===a);o({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[0]||null});return}let c=a.findIndex(u=>u["@id"]===s["@id"]);if(c===-1){o({highlight:a[0]||null});return}o({highlight:a[c+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[a.length-1]||null});return}let c=a.findIndex(u=>u["@id"]===s["@id"]);if(c===-1){o({highlight:a[a.length-1]||null});return}if(c===0){o({highlight:a[a.length-1]||null});return}o({highlight:a[c-1]||a[a.length-1]||null})}}))};var Ii=require("zustand");function Rn(){let e=z();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Ht=require("react/jsx-runtime"),We=(0,at.createContext)(null);We.displayName="Search";function Dr(e){let t=Rn();return e.store?(0,Ht.jsx)(We.Provider,{value:e.store,children:e.children}):(0,Ht.jsx)(wi,{service:t,children:e.children})}function wi({service:e,children:t}){let n=(0,at.useMemo)(()=>Fr(e),[e]);return(0,Ht.jsx)(We.Provider,{value:n,children:t})}var Y=require("react/jsx-runtime"),st=()=>{},Ue=(0,Ot.createContext)({setCurrentCanvasId:st,setCurrentCanvasIndex:st,nextCanvas:st,previousCanvas:st,items:[],sequence:[],setSequenceIndex:st,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Wr(e){let t=z(),{cursor:n,visibleItems:r,next:o,sequence:i,items:a,setCanvasIndex:s,setCanvasId:c,previous:u,setSequenceIndex:l,hasNext:d,hasPrevious:v}=pn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),y=(0,Ot.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:c,nextCanvas:o,previousCanvas:u,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:l,currentSequenceIndex:n,hasNext:d,hasPrevious:v}),[i,a,c,o,u,a,s,l,n]);return t?r.length===0?null:(0,Y.jsx)(Ue.Provider,{value:y,children:(0,Y.jsx)(Re.Provider,{value:r,children:(0,Y.jsx)(ee,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,Y.jsx)("div",{children:"Sorry, something went wrong."}))}function In(e){let t=Pe(e.vault),n=ln(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,Y.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,Y.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,Y.jsx)("div",{children:"Loading..."});let r=(0,Y.jsx)(Wr,{...e,children:e.children});return(0,Y.jsx)(Ae,{vault:t,children:(0,Y.jsx)(dn,{manifest:n.id,children:(0,Y.jsx)(bn,{children:(0,Y.jsx)(Dr,{children:e.rangeId?(0,Y.jsx)(mn,{range:e.rangeId,children:r}):r})})})})}function ct(){return(0,qr.useContext)(Ue)}var Ur=ie(require("react"),1),Bt=require("react"),$r=ie(require("mitt"),1),Yr=require("react/jsx-runtime"),_r=(0,$r.default)(),Te=(0,Bt.createContext)({emitter:_r});Te.displayName="Events";function ut(){return Ur.default.useContext(Te).emitter}function Ti({emitter:e,children:t}){return(0,Yr.jsx)(Te.Provider,{value:(0,Bt.useMemo)(()=>({emitter:e}),[e]),children:t})}var Me=require("react/jsx-runtime");function wn(){return{VaultContext:(0,he.useContext)(pe),ResourceContext:(0,he.useContext)(tt),SimpleViewerReactContext:(0,he.useContext)(Ue),VisibleCanvasReactContext:(0,he.useContext)(Re),AuthRContext:(0,he.useContext)(we),SearchReactContext:(0,he.useContext)(We),ReactEventContext:(0,he.useContext)(Te)}}function Tn(e){return(0,Me.jsx)(Ae,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,Me.jsx)(Re.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,Me.jsx)(Ue.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,Me.jsx)(Te.Provider,{value:e.bridge.ReactEventContext,children:(0,Me.jsx)(we.Provider,{value:e.bridge.AuthRContext,children:(0,Me.jsx)(We.Provider,{value:e.bridge.SearchReactContext,children:e.children})})})})})})}var $e=require("react");var le=require("react");var Ft=require("@iiif/helpers/vault/actions");var Qr=require("react");function Mn(){let t=b().getStore();return(0,Qr.useMemo)(()=>n=>t.dispatch(n),[t])}function jr(e){return typeof e!="string"&&e&&e.bindToVault}function kn(){let e=b(),t=(0,le.useRef)([]),n=Mn(),r=(0,le.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,le.useLayoutEffect)(()=>{let s={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Ft.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[r]);let o=A(s=>r&&s.iiif.entities.AnnotationPage[r]||null,[r]),i=(0,le.useCallback)((s,c)=>{if(r){if(jr(s)){let d=s;d.__vault||d.bindToVault(e),s=typeof d.source=="string"?d.source:d.source.id,t.current[s]=d}else typeof s!="string"&&(s=s.id);let u=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:s,type:"Annotation"});u&&l&&(u.items.find(d=>d.id===l.id)||n(Ft.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:c})))}},[r]),a=(0,le.useCallback)(s=>{r&&(jr(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&n(Ft.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[r]);return[o,{addAnnotation:i,removeAnnotation:a}]}var Kr=require("react/jsx-runtime"),Gr=(0,$e.createContext)(null);function Nn(){let e=(0,$e.useContext)(Gr);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function En({children:e}){let[t,{addAnnotation:n,removeAnnotation:r}]=kn();return(0,Kr.jsx)(Gr.Provider,{value:(0,$e.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:r}),[t]),children:e})}var _e=require("react/jsx-runtime");function Xr({width:e,style:t,height:n,error:r,resetErrorBoundary:o}){return(0,_e.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,_e.jsx)("h3",{children:"Error occurred"}),(0,_e.jsx)("p",{children:r.message}),(0,_e.jsx)("button",{onClick:o,children:"Reset"})]})}var Dt=require("react"),Ye=(0,Dt.createContext)(null);function Vn(){return(0,Dt.useContext)(Ye)}var ke=require("react"),Ln=(0,ke.createContext)(()=>{}),zn=(0,ke.createContext)(()=>{});function oe(e,t,n,r,o=[]){let i=(0,ke.useContext)(e==="portal"?zn:Ln);(0,ke.useEffect)(()=>(e!=="none"&&i(t,n,r),()=>{i(t,null)}),[t,e,i,...o])}var Qe=require("react");var Zr=require("react");function R(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.canvas,a=A(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,Zr.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var Hn=(0,Qe.createContext)(()=>{});function Jr(e){let t=R(),n=(0,Qe.useContext)(Hn);(0,Qe.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var V=require("react/jsx-runtime");function to({children:e,errorFallback:t,outerContainerProps:n={},worldScale:r,...o}){let[i,a]=(0,W.useState)(),s=wn(),c=t||Xr,[u,l]=(0,W.useState)({}),d=Object.entries(u),[v,y]=(0,W.useState)({}),h=Object.entries(v),[g,S]=(0,W.useState)({}),C=(0,W.useMemo)(()=>r||Math.max(...Object.values(g)),[g]),T=(0,W.useMemo)(()=>({maxOverZoom:C||1,...o.runtimeOptions||{}}),[C,o.runtimeOptions]),m=(0,W.useCallback)((M,O)=>{S(_=>{if(O===-1){let{[M]:x,...J}=_;return J}return{..._,[M]:O}})},[]),H=(0,W.useCallback)((M,O,_)=>{l(({[M]:x,...J})=>O?{...J,[M]:{element:O,props:_}}:J)},[]),fe=(0,W.useCallback)((M,O,_)=>{y(({[M]:x,...J})=>O?{...J,[M]:{element:O,props:_}}:J)},[]);return(0,V.jsxs)(eo.ErrorBoundary,{resetKeys:[],fallbackRender:M=>(0,V.jsx)(c,{...o,...M}),children:[(0,V.jsx)(qt.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,V.jsx)(V.Fragment,{children:d.map(([M,{element:O,props:_}])=>(0,V.jsx)(W.default.Fragment,{children:(0,V.jsx)(O,{..._||{}})},M))}),onCreated:M=>{a(M),o.onCreated&&o.onCreated(M)},runtimeOptions:T,children:(0,V.jsx)(Ye.Provider,{value:i,children:(0,V.jsx)(Hn.Provider,{value:m,children:(0,V.jsx)(Ln.Provider,{value:H,children:(0,V.jsx)(zn.Provider,{value:fe,children:(0,V.jsx)(Tn,{bridge:s,children:(0,V.jsx)(qt.ModeContext.Provider,{value:o.mode||"explore",children:(0,V.jsx)(En,{children:e})})})})})})})}),(0,V.jsx)("div",{children:h.map(([M,{element:O,props:_}])=>(0,V.jsx)(W.default.Fragment,{children:(0,V.jsx)(O,{..._||{}})},M))})]})}var Wt=require("@atlas-viewer/atlas");var On=require("react"),no=require("@iiif/helpers/events");function lt(e,t){let n=b(),r=(0,On.useMemo)(()=>(0,no.createEventsHelper)(n),[n]),o=A(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,On.useMemo)(()=>e?r.getListenersAsProps(e,t):{},[o,e,n,t])}var ro=require("react"),oo=require("@iiif/helpers/styles");function Ne(e,t){let n=b(),r=(0,ro.useMemo)(()=>(0,oo.createStylesHelper)(n),[n]);return A(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?t?o[t]:o:void 0},[e,t])}var so=require("react");var io=require("react");var ao=require("@iiif/helpers/annotation-targets");function dt(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=b(),a=n||o.annotation,s=A(u=>a?u.iiif.entities.Annotation[a]:void 0,[a]),c=A(u=>s&&s.body?s.body.map(l=>l?l.type==="SpecificResource"?{...l,source:i.get(l)}:l?u.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[s]);return(0,io.useMemo)(()=>{if(!s)return;let u={...s,body:c,target:(0,ao.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping})};return r?r(u):u},[s,r,c,...t])}var co=require("react/jsx-runtime"),Ut=({id:e,style:t,className:n,interactive:r})=>{let o=dt({id:e}),i=Ne(o,"atlas"),a=Ne(o,"html"),s=lt(o,["atlas"]),c=R(),u=(0,so.useMemo)(()=>(0,Wt.mergeStyles)(t,i),[t,i]);return c&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===c.id||o.target.source===c.id)?(0,co.jsx)(Wt.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:u,className:a?.className||n,interactive:!!(a?.href||r),href:a?.href||null,title:a?.title||null,hrefTarget:a?.target||null,onClick:()=>{},...s}):null};var lo=require("react");var uo=require("react");function Bn(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.annotationPage,a=A(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,uo.useMemo)(()=>{if(a)return r?r(a):a},[a,...t])}var Fn=require("react/jsx-runtime"),mt=({className:e,page:t})=>{let n=Bn({id:t.id})||t,r=Ne(n,"atlas"),o=Ne(n,"html");return A(i=>n.id?i.iiif.entities.AnnotationPage[n.id]:null,[]),(0,Fn.jsx)(lo.Fragment,{children:n.items?.map(i=>(0,Fn.jsx)(Ut,{id:i.id,style:r,className:o?.className||e},i.id))})};var Fo=require("@iiif/helpers/styles");var pt=require("react");var ft=require("@atlas-viewer/atlas");var de=ie(require("react"),1),ae=require("react/jsx-runtime"),fo=de.default.createContext("en"),po=de.default.createContext({});function Mi(e){return(0,ae.jsx)(po.Provider,{value:e.translations,children:e.children})}function ki(e){return(0,ae.jsx)(fo.Provider,{value:e.language,children:e.children})}function $t(){return de.default.useContext(fo)}function Dn(){return de.default.useContext(po)}function mo(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function go({as:e,language:t,children:n,viewingDirection:r,...o}){let i=$t();return(0,de.useMemo)(()=>mo(i)===mo(t),[i,t])?e?(0,ae.jsx)(e,{...o,children:n}):(0,ae.jsx)("span",{...o,children:n}):e?(0,ae.jsx)(e,{...o,lang:t,dir:r,children:n}):(0,ae.jsx)("span",{...o,lang:t,dir:r,children:n})}function ho(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&t.indexOf(r)!==-1)return r;for(let o of n)if(t.indexOf(o)!==-1)return o;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var vo=(e,t=[])=>{let n=$t();return(0,de.useMemo)(()=>{let r=e();return ho(n,r,[])},[n,...t])};function Ee(e,t){return t?e[t]||t:""}function yo(e,t,n=`
2
+ `,r={}){let o=vo(()=>Object.keys(e||{}),[e]);return[(0,de.useMemo)(()=>{if(!e)return Ee(r,t)||"";if(typeof e=="string")return Ee(r,e);let i=o?e[o]:void 0;return i?typeof i=="string"?i:i.map(a=>Ee(r,a)).join(n):""},[o,t,e]),o]}function Ni(){let e=$t(),t=Dn();return function(r,o="",i=`
3
+ `,a=t){let s=Object.keys(r||{}),c=ho(e,s,[]);if(!r)return Ee(a,o)||"";if(typeof r=="string")return Ee(a,r);let u=c?r[c]:void 0;return u?typeof u=="string"?Ee(a,u):u.map(l=>Ee(a,l)).join(typeof i<"u"?i:`
4
+ `):""}}function K({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:r,separator:o,...i}){let a=Dn(),[s,c]=yo(r,t,o,a);return c?(0,ae.jsx)(go,{...i,as:e,language:c,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,ae.jsx)(e,{...i,children:s}):(0,ae.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var Z=require("react/jsx-runtime");function Ei({resource:e,heading:t,note:n,extra:r}){return r?(0,Z.jsx)(ft.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,Z.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,Z.jsxs)("div",{children:[(0,Z.jsx)(K,{children:t||"Not authorised"}),n&&(0,Z.jsx)("p",{children:(0,Z.jsx)(K,{children:n})}),(0,Z.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function So({image:e,thumbnail:t,crop:n,enableSizes:r}){if(!An()){let i=e.service,a=i.width||e.width||0,s=i.height||e.height||0;return(0,Z.jsx)(ft.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}return(0,Z.jsx)(Pn,{resource:e.service,errorComponent:Ei,extra:e,children:i=>{let a=i.width||e.width||0,s=i.height||e.height||0;return(0,Z.jsx)(ft.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}},e.id)}var Ve=require("react/jsx-runtime");function _t({id:e,image:t,thumbnail:n,isStatic:r,x:o=0,y:i=0,children:a,selector:s,onClick:c,enableSizes:u}){let l=(0,pt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]);return(0,Ve.jsx)("world-object",{x:o+t.target.spatial.x,y:i+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:c,children:t.service?(0,Ve.jsxs)(pt.Fragment,{children:[(0,Ve.jsx)(So,{image:t,thumbnail:n,crop:l,enableSizes:u}),a]},"service"):(0,Ve.jsxs)(pt.Fragment,{children:[(0,Ve.jsx)("world-image",{onClick:c,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:l}),a]},"no-service")},e+(t.service?"server":"no-service"))}var se=require("react"),Do=require("@atlas-viewer/atlas");var je=require("react");var xo=require("@iiif/helpers");function Vi(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function gt(e,t){let{selector:n,source:r}=(0,xo.expandTarget)(t);if(r.id!==e.id)return[null,r];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:o.spatial}:n:null,r]}var qn={makeChoice:()=>{}},ht={type:"unknown"},I=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Wn=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var vt=require("react");function Li(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Co(e,t){return A(n=>{let r=[];if(!e)return r;let o=Object.keys(n.iiif.entities.AnnotationPage);for(let i of o)if(!t||t.indexOf(i)!==-1){let a=Li(n,i);a&&a.views&&a.views[e]&&r.push(i)}return r},[e,t])}function Un({canvas:e,manifest:t,all:n,canvases:r}){let o=[];if(t)for(let i of t.annotations)o.indexOf(i.id)===-1&&o.push(i.id);if(n){if(r&&r.length)for(let i of r)for(let a of i.annotations)o.indexOf(a.id)===-1&&o.push(a.id)}else if(e)for(let i of e.annotations)o.indexOf(i.id)===-1&&o.push(i.id);return o}function zi(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function yt(e,t={}){let n=b(),r=z(),o=R(),i=Ie(),a=(0,vt.useMemo)(()=>Un({all:t.all,manifest:r,canvas:o,canvases:i}),[t.all,o,i,r]),s=Co(e,t.all?void 0:a),c=(0,vt.useCallback)(l=>{e&&n.setMetaValue([l,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),u=(0,vt.useCallback)((l,d={})=>{if(!e)return;let v=n.getState(),y=[];if(d?.deselectOthers){let h=Object.keys(v.iiif.entities.AnnotationPage);for(let g of h){let S=zi(v,g);S&&S.views&&S.views[e]&&y.push(g)}}for(let h of y)c(h);n.setMetaValue([l,"annotationPageManager","views"],h=>h&&h[e]?h:{...h||{},[e]:!0})},[e,c,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:u,setPageDisabled:c}}function $n(e,t){return A((n,r)=>r.get(e.map(o=>({id:o,type:t}))),[e,t])}var ve=require("react");var Yt=ie(require("react"),1),bo=require("@atlas-viewer/iiif-image-api"),Ao=Yt.default.createContext(new bo.ImageServiceLoader);function me(){return(0,Yt.useContext)(Ao)}function _n(){let e=me(),[t,n]=(0,ve.useState)({}),r=(0,ve.useRef)(!1);return(0,ve.useEffect)(()=>()=>{r.current=!0},[]),[(0,ve.useCallback)((i,{height:a,width:s})=>{if(i){let c=i.id||i["@id"],u=e.loadServiceSync({id:c,width:i.width||s,height:i.height||a,source:i});u?i=u:t[c]||(r.current||n(l=>({...l,[c]:"loading"})),e.loadService({id:c,width:i.width||s,height:i.height||a}).then(()=>{r.current||n(l=>({...l,[c]:"done"}))}))}return i},[e,t]),t]}var ze=require("react");function Le(e={}){let t=dt(),n=R(e.canvasId?{id:e.canvasId}:void 0);return A((r,o)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=o.get(n.items),a=[];for(let s of i)a.push(...o.get(s.items));return a},[n])}var Po=require("@iiif/helpers/painting-annotations");function Yn(e,t=[]){let n=b(),r=(0,ze.useMemo)(()=>(0,Po.createPaintingAnnotationsHelper)(n),[]),o=Le({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,ze.useState)(e?.defaultChoices||[]),s=(0,ze.useMemo)(()=>r.getPaintables(o,i),[n,o,i,...t]),u={makeChoice:(0,ze.useCallback)((l,{deselectOthers:d=!0,deselect:v=!1}={})=>{s.choice&&a(y=>{if(v){let g=y.filter(S=>S!==l);if(g.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return g}if(d)return[l];let h=[...y];if(h.length===0&&s.items.length){let g=s.items[0].resource.id;g&&h.push(g)}return y.indexOf(l)!==-1?y:[...y,l]})},[s.choice])};return[s,u]}var Hi=["model/gltf-binary"];function Qn(e,t){let r=t.items[0].resource;return r.format?Hi.indexOf(r.format)===-1?I(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r}:I("Unknown format")}function Ro(e,t){if(!e.duration)return I("No duration on canvas");if(t.items.length>1)return I("Only one audio source supported");let n=t.items[0]?.resource;return n?n.format?{type:"media",media:{annotationId:t.items[0].annotationId,duration:e.duration,url:n.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:n.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:I("Audio does not have format"):I("Unknown audio")}var Io=require("@atlas-viewer/iiif-image-api");var jn=require("@iiif/helpers/annotation-targets");function Gn(e,t,n){let r=[];for(let o of t.items){let i=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!i.id)return I("No resource Identifier");let a;if(i.service){let h=(0,Io.getImageServices)(i);h[0]&&(a=n(h[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[c,u]=gt(e,o.target);if(!(u.id===e.id||decodeURIComponent(u.id||"")===(e.id||"")))continue;let l=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,d=o.resource.type==="SpecificResource"?(0,jn.expandTarget)(o.resource):null;if(o.selector){let h=(0,jn.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});h&&(d=h)}let v=d&&d.selector&&(d.selector.type==="BoxSelector"||d.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:d.selector.spatial.x,y:d.selector.spatial.y,width:d.selector.spatial.width,height:d.selector.spatial.height}}:void 0;a&&!a.id&&(a.id=a["@id"]);let y={id:i.id,type:"Image",annotationId:o.annotationId,width:Number(c||v?i.width:e.width),height:Number(c||v?i.height:e.height),service:a,sizes:a&&a.sizes?a.sizes:i.width&&i.height?[{width:i.width,height:i.height}]:[],target:c&&c.type!=="PointSelector"?c:s,selector:v};r.push(y)}return{type:"images",image:r[0],images:r,choice:t.choice}}function wo(e,t={},n){let r=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[r]=e.value);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>wo(o,t,r))}return t}function Kn(e,t){let n=[];return t.items.forEach(r=>{if(r.resource){let[o]=gt(e,r.target);n.push({annotationId:r.annotationId,text:wo(r.resource),target:o})}}),{type:"textual-content",items:n}}var Oi=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Xn(e,t){let n=t.items.filter(s=>s.type==="video"),r=!1;if(e.duration||(r=!0),n.length>1)return I("Only one video source supported");let o=n[0]?.resource,i=!!(o.service||[]).find(s=>(s.profile||"").includes("youtube.com"));if(!i&&r)return I("Video does not have duration");if(!o)return I("Unknown video");if((!o.format||o.format==="text/html")&&!i)return I("Video does not have format");let a={annotationId:t.items[0].annotationId,duration:e.duration,url:o.id,type:"Video",items:[],target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:o.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}};if(i){a.type="VideoYouTube";let s=o.id.match(Oi);if(!s[1])return I("Video is not known youtube video");a.youTubeId=s[1]}return{type:"media",media:a,annotations:{pages:[]}}}function Zn({canvas:e,paintables:t,supports:n,loadImageService:r}){if(!e)return ht;if(t.types.length===0)return n.indexOf("empty")!==-1?Wn(e.width,e.height):ht;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?I("Complex timeline not supported"):I("ComplexTimelineStrategy not yet supported");let o=t.types[0];return o==="image"?n.indexOf("images")===-1?I("Image not supported"):Gn(e,t,r):o==="Model"||o==="model"?n.indexOf("3d-model")===-1?I("3D not supported"):Qn(e,t):o==="textualbody"?n.indexOf("textual-content")===-1?I("Textual content not supported"):Kn(e,t):o==="sound"||o==="audio"?n.indexOf("media")===-1?I("Media not supported"):Ro(e,t):o==="video"?n.indexOf("media")===-1?I("Media not supported"):Xn(e,t):ht}function Jn(e){let t=z(),n=R(),r=b(),o=ut(),i=e?.emitter||o,[a,s]=_n(),{enabledPageIds:c}=yt(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=$n(c,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,v]=Yn(e,[s]);(0,je.useEffect)(()=>{let h=g=>{v.makeChoice(g.choiceId,{deselectOthers:g.deselectOthers,deselect:g.deselect})};return i.on("make-choice",h),()=>{i.off("make-choice",h)}},[]);let y=(0,je.useMemo)(()=>Zn({canvas:n,paintables:d,supports:l,loadImageService:a}),[n,d,r,v.makeChoice]);return(0,je.useEffect)(()=>{let h=d.allChoices,g={canvasId:n?.id,manifestId:t?.id};h&&i.emit("choice-change",{choice:h,partOf:g})},[n?.id,d.allChoices]),(0,je.useMemo)(()=>y.type==="unknown"?[y,qn]:[{...y,annotations:{pages:u}},v],[y,u])}var ye=require("react");var To=require("react"),er=(e,t=[])=>{let n=b();(0,To.useEffect)(()=>{e(n)},[n,...t])};var Mo=require("@iiif/helpers/thumbnail");function He(e,t,{canvasId:n,manifestId:r}={}){let o=b(),i=me(),a=(0,ye.useMemo)(()=>(0,Mo.createThumbnailHelper)(o,{imageServiceLoader:i}),[o,i]),[s,c]=(0,ye.useState)(),u=z(r?{id:r}:void 0),l=R(n?{id:n}:void 0),d=l||u,v=(0,ye.useRef)(!1);if((0,ye.useEffect)(()=>(v.current=!1,()=>{v.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return er(y=>{a.getBestThumbnailAtSize(d,e,t).then(h=>{h.best&&!v.current&&c(h.best)})},[d]),s}var E=require("react");function Bi(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Fi(e,t){switch(t.type){case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function ko(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Oe(e){let[t,n]=(0,E.useReducer)(Fi,Bi(e.duration)),r=(0,E.useRef)(null),o=(0,E.useRef)(null),i=(0,E.useRef)(null),a=(0,E.useRef)(!1),s=(0,E.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=ko(r.current.currentTime),i.current&&(i.current.style.width=`${r.current.currentTime/e.duration*100}%`),a.current!==r.current.muted&&(a.current=r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),c=(0,E.useCallback)(()=>{r.current&&(n({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),u=(0,E.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?c():l())},[s]),l=(0,E.useCallback)(()=>{r.current&&(r.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,E.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),v=(0,E.useCallback)(()=>{r.current&&(r.current.muted=!0,n({type:"MUTE"}))},[]),y=(0,E.useCallback)(()=>{r.current&&(r.current.muted=!1,n({type:"UNMUTE"}))},[]),h=(0,E.useCallback)(C=>{r.current&&(r.current.muted=!1,r.current.volume=C/100,n({type:"SET_VOLUME",volume:C}))},[]),g=(0,E.useCallback)(C=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(C*e.duration,e.duration)),s())},[]),S=(0,E.useCallback)(C=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(C,e.duration)),s())},[]);return(0,E.useEffect)(()=>{let C=setInterval(()=>{s()},350);return()=>clearInterval(C)},[s,e.duration]),(0,E.useEffect)(()=>{let C=()=>{n({type:"FINISHED"})},T=r.current;return T?.addEventListener("ended",C),()=>T?.removeEventListener("ended",C)},[]),[{element:r,currentTime:o,progress:i},t,{play:c,pause:l,playPause:u,mute:v,unmute:y,toggleMute:d,setVolume:h,setDurationPercent:g,setTime:S}]}var Se=require("react"),Qt=require("react/jsx-runtime"),No=(0,Se.createContext)(null),Eo=(0,Se.createContext)(null),Vo=(0,Se.createContext)(null);function Di(){let e=(0,Se.useContext)(No);if(!e)throw new Error("Ctx not found");return e}function qi(){let e=(0,Se.useContext)(Eo);if(!e)throw new Error("Ctx not found");return e}function Wi(){let e=(0,Se.useContext)(Vo);if(!e)throw new Error("Ctx not found");return e}function St({actions:e,state:t,children:n,currentTime:r,progress:o,element:i}){return(0,Qt.jsx)(Vo.Provider,{value:{currentTime:r,progress:o,element:i},children:(0,Qt.jsx)(Eo.Provider,{value:e,children:(0,Qt.jsx)(No.Provider,{value:t,children:n})})})}var Gt=require("react/jsx-runtime");function tr({media:e,children:t}){let[{element:n,currentTime:r,progress:o},i,a]=Oe({duration:e.duration});return(0,Gt.jsxs)(St,{state:i,actions:a,currentTime:r,progress:o,element:n,children:[(0,Gt.jsx)("audio",{ref:n,src:e.url}),t]})}function jt({media:e,mediaControlsDeps:t,children:n}){return oe("portal","audio",tr,{media:e,children:n},[e,...t||[]]),null}var xt=require("react/jsx-runtime");function nr({element:e,media:t,playPause:n,poster:r}){return(0,xt.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,xt.jsx)("style",{children:`
5
5
  .video-container {
6
6
  position: absolute;
7
7
  top: 0;
@@ -14,7 +14,7 @@
14
14
  justify-content: center;
15
15
  pointer-events: visible;
16
16
  }
17
- `}),(0,St.jsx)("video",{ref:e,src:t.url,style:{width:"100%",objectFit:"contain"}})]})}function Qt({media:e,mediaControlsDeps:t,children:n,videoComponent:r=er}){let[{element:o,currentTime:i,progress:a},s,c]=He({duration:e.duration});return re("overlay","video-element",r,{element:o,media:e,playPause:c.playPause}),re("portal","custom-controls",yt,{state:s,actions:c,currentTime:i,progress:a,element:o,children:n},[i,s,e,...t||[]]),null}var xe=require("react/jsx-runtime");function tr({model:e}){return(0,xe.jsxs)(xe.Fragment,{children:[(0,xe.jsx)("style",{children:`
17
+ `}),(0,xt.jsx)("video",{poster:r,ref:e,src:t.url,style:{width:"100%",objectFit:"contain"}})]})}function Kt({media:e,mediaControlsDeps:t,children:n,videoComponent:r=nr}){let o=R(),i=o&&o.placeholderCanvas&&o.placeholderCanvas.id||void 0,a=He({},!1,{canvasId:i}),[{element:s,currentTime:c,progress:u},l,d]=Oe({duration:e.duration});return oe("overlay","video-element",r,{element:s,media:e,playPause:d.playPause,poster:a?.id},[a]),oe("portal","custom-controls",St,{state:l,actions:d,currentTime:c,progress:u,element:s,children:n},[c,l,e,...t||[]]),null}var xe=require("react/jsx-runtime");function rr({model:e}){return(0,xe.jsxs)(xe.Fragment,{children:[(0,xe.jsx)("style",{children:`
18
18
  .model-container {
19
19
  position: absolute;
20
20
  top: 0;
@@ -27,7 +27,7 @@
27
27
  justify-content: center;
28
28
  pointer-events: visible;
29
29
  }
30
- `}),(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 jt({model:e,name:t}){return re("overlay",`model-${t}`,tr,{model:e},[e]),null}var Vo=require("react/jsx-runtime");function Gt({style:e}){let t=R();return!t||!t.height||!t.width?null:(0,Vo.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Lo=require("react"),xt=require("react/jsx-runtime");function Di({element:e,media:t,playPause:n}){let r=(0,Lo.useRef)(null);return t.youTubeId?(0,xt.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,xt.jsx)("style",{children:`
30
+ `}),(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 Xt({model:e,name:t}){return oe("overlay",`model-${t}`,rr,{model:e},[e]),null}var Lo=require("react/jsx-runtime");function Zt({style:e}){let t=R();return!t||!t.height||!t.width?null:(0,Lo.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ho=require("react/jsx-runtime");function zo(e){return R()?(0,Ho.jsx)(Ge,{renderViewerControls:e.renderViewerControls}):null}var Oo=require("react"),Ct=require("react/jsx-runtime");function Ui({element:e,media:t,playPause:n}){let r=(0,Oo.useRef)(null);return t.youTubeId?(0,Ct.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,Ct.jsx)("style",{children:`
31
31
  .video-container {
32
32
  position: absolute;
33
33
  top: 0;
@@ -45,4 +45,4 @@
45
45
  width: 100%;
46
46
  object-fit: contain;
47
47
  }
48
- `}),(0,xt.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function zo({media:e,mediaControlsDeps:t,children:n}){let[{element:r,currentTime:o,progress:i},a,s]=He({duration:e.duration});return re("overlay","video-element",Di,{element:r,media:e,playPause:s.playPause}),null}var P=require("react/jsx-runtime");function nr({x:e,y:t,onChoiceChange:n,registerActions:r,defaultChoices:o,isStatic:i,renderViewerControls:a,renderMediaControls:s,viewControlsDeps:c,mediaControlsDeps:u,strategies:l,throwOnUnknown:d,backgroundStyle:v,alwaysShowBackground:y,keepCanvasScale:h=!1,enableSizes:g=!1,enableYouTube:S=!0,onClickPaintingAnnotation:x,children:T}){let m=R(),H=ct(m,["deep-zoom"]),[fe]=Mn(),M=Nn(),O=C(),_=(0,ae.useMemo)(()=>(0,Ho.createStylesHelper)(O),[O]),[b,J]=Xn({strategies:l||["images"],defaultChoices:o?.map(({id:k})=>k)}),N=b.type==="images"?b.choice:void 0,X=(0,ae.useMemo)(()=>h?1:Math.max(1,...b.type==="images"?b.images.map(k=>(k.width||0)/k.target?.spatial.width):[]),[h,b]);Zr(X),(0,ae.useEffect)(()=>{r&&r(J)},[b.annotations]),(0,ae.useEffect)(()=>{if(o)for(let k of o)typeof k.opacity<"u"&&_.applyStyles({id:k.id},"atlas",{opacity:k.opacity})},[o]),(0,ae.useLayoutEffect)(()=>{n&&n(N)},[N]),re(M&&(b.type==="images"||b.type==="empty"||b.type==="textual-content"&&a)?"overlay":"none",`canvas-portal-controls-${m?.id}`,_e.Provider,a?{value:M||null,children:a(b)}:{},[m,M,b,...c||[]]);let ce=vt({maxWidth:256,maxHeight:256});if(!m)return null;let an=m.accompanyingCanvas,Xe=ce&&ce.type==="fixed"?(0,P.jsx)("world-object",{height:m.height,width:m.width,x:e,y:t,children:(0,P.jsx)("world-image",{uri:ce.id,target:{x:0,y:0,width:m.width,height:m.height},display:ce.width&&ce.height?{width:ce.width,height:ce.height}:void 0,crop:void 0})}):null;if(b.type==="unknown"){if(Xe)return Xe;if(d)throw new Error(b.reason||"Unknown image strategy");return null}let vr=(0,P.jsxs)(ae.Fragment,{children:[fe?(0,P.jsx)(lt,{page:fe}):null,b.annotations&&b.annotations.pages?b.annotations.pages.map(k=>(0,P.jsx)(lt,{page:k},k.id)):null,T]}),ai=b.type==="images"?b.images.length:0;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)("world-object",{height:m.height,width:m.width,x:e,y:t,...H,children:[b.type==="empty"||y?(0,P.jsx)(Gt,{style:v}):null,b.type==="textual-content"?b.items.map((k,Rt)=>(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Oo.HTMLPortal,{onClick:x?Ze=>{Ze.stopPropagation(),x(k.annotationId,k,Ze)}:void 0,target:k.target?.spatial||void 0,children:(0,P.jsx)("div",{"data-textual-content":!0,children:(0,P.jsx)(K,{enableDangerouslySetInnerHTML:!0,children:k.text})})},Rt),vr]})):null,b.type==="images"?(0,P.jsxs)(P.Fragment,{children:[b.images.map((k,Rt)=>(0,P.jsx)(Wt,{isStatic:i,image:k,id:k.id,thumbnail:Rt===0?ce:void 0,selector:k.selector,enableSizes:g,onClick:x?Ze=>{Ze.stopPropagation(),x(k.annotationId,k,Ze)}:void 0},k.id+Rt)),vr]}):null,b.type==="3d-model"?(0,P.jsx)(jt,{model:b.model}):null,b.type==="media"?(0,P.jsx)(P.Fragment,{children:b.media.type==="Sound"?(0,P.jsxs)(_t,{media:b.media,mediaControlsDeps:u,children:[Xe,s?s(b):null]}):b.media.type==="Video"?(0,P.jsxs)(Qt,{media:b.media,mediaControlsDeps:u,children:[Xe,s?s(b):null]}):b.media.type==="VideoYouTube"&&S?(0,P.jsxs)(zo,{media:b.media,mediaControlsDeps:u,children:[Xe,s?s(b):null]}):null}):null]},`${m.id}/${b.type}/${ai}`),b.type==="media"&&b.media.type==="Sound"&&an?(0,P.jsx)(ue,{canvas:an.id,children:(0,P.jsx)(nr,{renderViewerControls:a})}):null]})}var Q=require("react/jsx-runtime"),qi=(0,bt.forwardRef)(function(t,n){let r=z(),o=Ie(),i=at(),{ViewerControls:a,MediaControls:s}=t.components||{};if((0,bt.useImperativeHandle)(n,()=>i,[i]),!r)return(0,Q.jsx)("div",{});let c=0;return(0,Q.jsxs)(Q.Fragment,{children:[t.header,(0,Q.jsx)(B.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:o.map((u,l)=>{let d=c;return c+=u.width+(t.spacing||0),(0,Q.jsx)(ue,{canvas:u.id,children:(0,Q.jsx)(B.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content"],renderViewerControls:l===0&&a?()=>(0,Q.jsx)(a,{}):void 0,renderMediaControls:l===0&&s?()=>(0,Q.jsx)(s,{}):void 0,x:d,...t.canvasProps||{},children:t.annotations},u.id)},u.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),B=(0,bt.forwardRef)(function({children:t,height:n,annotations:r,canvasProps:o,spacing:i,header:a,components:s,mode:c,reuseAtlas:u,renderPreset:l,runtimeOptions:d,...v},y){let h=Pe();return(0,Q.jsx)(Ae,{vault:h,children:(0,Q.jsx)(Pn,{...v,children:(0,Q.jsx)(qi,{ref:y,height:n,components:s,spacing:i,canvasProps:o,annotations:r,header:a,mode:c,reuseAtlas:u,renderPreset:l,runtimeOptions:d,children:t})})})});B.RenderImage=Wt;B.RenderCanvas=nr;B.RenderAnnotationPage=lt;B.RenderAnnotation=Dt;B.Viewer=eo;B.CanvasBackground=Gt;B.Audio=_t;B.Video=Qt;B.Model=jt;B.AudioHTML=Jn;B.VideoHTML=er;B.ModelHTML=tr;var Bo=require("@atlas-viewer/atlas");var Kt=require("react"),Ct=require("react/jsx-runtime"),Wi=(0,Kt.forwardRef)(function({canvasId:t},n){let r=(0,Bo.useCanvas)(),o=ht(t||r?.id),i=C();return(0,Kt.useImperativeHandle)(n,()=>o,[t,r]),!r||o.enabledPageIds.length===0?null:(0,Ct.jsx)(Ct.Fragment,{children:o.enabledPageIds.map(a=>(0,Ct.jsx)(B.RenderAnnotationPage,{page:i.get(a)},a))})});var Do=require("react");var Fo=require("react");var L=require("react/jsx-runtime");function At({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:r=!0,allowHtml:o,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:c="No value",emptyLabelFallback:u="",separator:l,tableFooter:d,tableHeader:v}){let y=(0,Fo.useMemo)(()=>{let g=(t||[]).reduce((x,T)=>[...x,...T.keys],[]),S={};for(let x of e){let T=x&&x.label?Object.values(x.label):[];for(let m of T)if(m&&m.length&&(g.indexOf(`metadata.${m[0]}`)!==-1||g.length===0)&&x){let H=`metadata.${m[0]}`;S[H]=S[H]?S[H]:[],S[H].push(x);break}}return S},[t,e]);return Object.keys(y).length===0&&r?(0,L.jsx)(L.Fragment,{children:i})||(0,L.jsx)("div",{className:a.empty,children:s}):t&&t.length?(0,L.jsxs)("table",{className:a.container,children:[v,(0,L.jsx)("tbody",{children:t.map((g,S)=>{let x=[];for(let T of g.keys)for(let m of y[T]||[])x.push((0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:m.value},S+"__"+T));return x.length===0?null:(0,L.jsxs)("tr",{className:a.row,children:[(0,L.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,separator:l,defaultText:u,children:g.label})}),(0,L.jsx)("td",{className:a.value,children:x})]},S)})}),d]}):(0,L.jsxs)("table",{className:a.container,children:[v,(0,L.jsx)("tbody",{children:e&&e.length?e.map((g,S)=>g?(0,L.jsxs)("tr",{className:a.row,children:[(0,L.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:g.label})}),(0,L.jsx)("td",{className:a.value,children:(0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:g.value})})]},S):null):null}),d]})}var qo=require("react/jsx-runtime");function Ui(e){let t=z(),n=R(),r=nt(),o=(0,Do.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,n,r]);return(0,qo.jsx)(At,{metadata:o,...e})}var Jt=require("react");var Xt=require("@atlas-viewer/iiif-image-api"),Wo=require("react");function Zt(e,t={},n=[]){return(0,Wo.useMemo)(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let o=(0,Xt.createImageServiceRequest)(e);return(0,Xt.imageServiceRequestToString)({identifier:o.identifier,server:o.server,scheme:o.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:o.prefix,originalPath:o.originalPath})},[...n])}var Pt=require("react/jsx-runtime");function $i(e){let t=typeof e.src=="string"?e.src:e.src.id,n=me(),[r,o]=(0,Jt.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&n.loadService({id:t}).then(()=>{o(!0)});let a=Zt(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,Jt.useEffect)(()=>()=>{o(!1)},[t]),a?(0,Pt.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Pt.jsx)(Uo,{...e,fetchImageService:!1})}function Uo(e){if(e.fetchImageService)return(0,Pt.jsx)($i,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=Zt(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,Pt.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var $o=require("react/jsx-runtime");function _i(e){let t=z();return(0,$o.jsx)(At,{metadata:t?.metadata||[],...e})}var en=require("react");var rr=oe(require("react-lazy-load-image-component"),1);var _o=require("@iiif/helpers/i18n"),j=require("react/jsx-runtime"),{LazyLoadComponent:Yi}=rr||rr.default;function or(e){let{size:t,visible:n,classes:r,canvasId:o,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,c=(0,j.jsx)(Qi,{...e}),u=(0,j.jsx)(Yi,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:o?(0,j.jsx)(ue,{canvas:o,children:c}):c});return i?(0,j.jsx)("figure",{className:r?.figure,children:u}):u}function Qi({fallback:e,size:t,classes:n,showLabel:r,alt:o,dereference:i=!1}){let a=R(),s=t?.width||128,c=t?.height||t?.width||128,u=o||(0,_o.getValue)(a?.label)||"",l=vt({width:s,height:c},i);return!l||l.type!=="fixed"?(0,j.jsx)(j.Fragment,{children:e}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:n?.imageWrapper,children:(0,j.jsx)("img",{className:n?.img,src:l.id,alt:u})}),r?(0,j.jsx)(K,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var je=require("react/jsx-runtime");function ji({flat:e,size:t,classes:n={},showLabel:r,figure:o,fallback:i}){let a=(0,en.useRef)(null),{items:s,sequence:c,currentSequenceIndex:u,setSequenceIndex:l}=at(),d={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};(0,en.useLayoutEffect)(()=>{if(!a.current)return;let y=a.current.querySelector("[data-selected=true]");y&&y.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[u]);let v=[];for(let y of c){let h=[],g=c[u]===y;for(let S of y){let x=s[S];h.push((0,je.jsx)("div",{className:g?d.item:n.item,children:(0,je.jsx)(or,{classes:g?d:n,canvasId:x.id,size:t,showLabel:r,figure:o,placeholder:(0,je.jsx)("div",{style:{height:128,width:128}}),fallback:i})},S))}if(e){v.push(h);continue}v.push((0,je.jsx)("div",{onClick:S=>{l(c.indexOf(y))},"data-selected":g,className:g?d.row:n.row,children:h}))}return(0,je.jsx)("div",{ref:a,className:n.container,children:v})}var U=require("react/jsx-runtime"),Gi={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function Ki({helper:e,showShapes:t,state:n,enabled:r=Gi,classNames:o={},icons:i={}}){return(0,U.jsxs)(U.Fragment,{children:[t?(0,U.jsxs)(U.Fragment,{children:[r.draw&&(0,U.jsx)("button",{className:o.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!n.lineMode&&!n.selectedStamp&&t&&n.drawMode,children:i.DrawIcon||"Draw"}),r.polygon&&(0,U.jsx)("button",{className:o.button,"data-active":!n.lineMode&&!n.selectedStamp&&t&&!n.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:i.PolygonIcon||"Polygon"}),r.line&&(0,U.jsx)("button",{className:o.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:i.LineIcon||"Line"}),r.lineBox&&(0,U.jsx)("button",{className:o.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:i.LineBoxIcon||"LineBox"}),r.square&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:i.SquareIcon||"Square"}),r.triangle&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:i.TriangleIcon||"Triangle"}),r.hexagon&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:i.HexagonIcon||"Hexagon"})]}):null,n.showBoundingBox&&r.delete&&(0,U.jsx)("button",{className:o.button,onClick:()=>e.key.down("Backspace"),children:i.DeleteForeverIcon||"Delete"})]})}var F=require("react"),ir=oe(require("mitt"),1),Yo=require("react/jsx-runtime"),tn=(0,F.createContext)((0,ir.default)());tn.displayName="SelectorHelper";function Xi({children:e}){return(0,Yo.jsx)(tn.Provider,{value:(0,F.useMemo)(()=>(0,ir.default)(),[]),children:e})}function Zi(){return(0,F.useContext)(tn)}function ar(e){let t=sr(),[n,r]=(0,F.useState)(!1);(0,F.useEffect)(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),(0,F.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let o=(0,F.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,F.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:o,onHover:i,isHighlighted:n}}function sr(){let e=(0,F.useContext)(tn);return(0,F.useMemo)(()=>({withSelector(t){return{on(n,r){let o=i=>{i&&i.selectorId===t&&r(i)};return e.on(n,o),()=>{e.off(n,o)}},emit(n,r){e.emit(n,{...r,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function Ji(){let e=sr();return(0,F.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(n,r){return e.withSelector(t).on(n,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(t){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(t,n){return e.on(t,n)}}),[e])}var Ge=require("react"),Qo=require("react/jsx-runtime");function cr(){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 ur=(0,Ge.createContext)(cr());ur.displayName="AnnotationStyle";function lr(){return(0,Ge.useContext)(ur)}function ea({theme:e,children:t}){let n=(0,Ge.useMemo)(()=>e||cr(),[e]);return(0,Qo.jsx)(ur.Provider,{value:n,children:t})}var rn=require("@atlas-viewer/atlas");var $=require("react");var Ke=require("react"),jo=require("polygon-editor");function dr(e,t,n){let[r,o]=(0,Ke.useState)({}),i=(0,Ke.useMemo)(()=>(0,jo.createHelper)(e,n),[]);return(0,Ke.useEffect)(()=>(i.clock.start(t,o),()=>{i.clock.stop()}),[]),{state:r,helper:i}}var Go=require("polygon-editor"),w=require("react/jsx-runtime"),be=(0,Go.createSvgHelpers)();function mr(e,t){let{image:n,currentShape:r,onChange:o,hideShapeLines:i}=e,a=(0,$.useRef)(),s=(0,$.useRef)(),c=(0,$.useRef)(),u=(0,$.useRef)(),l=(0,$.useRef)(),d=(0,$.useRef)(),v=(0,$.useRef)(),y=(0,$.useRef)(),[h,g]=(0,$.useState)(null),[S,x]=(0,$.useState)(!1),{helper:T,state:m}=dr(r,(N,X)=>{be.updateTransitionBoundingBox(s.current,N,X),be.updateBoundingBoxPolygon(a.current,N,X),be.updateTransitionShape(d.current,N,X),be.updateClosestLinePointTransform(u.current,N,X),be.updateSelectBox(c.current,N,X),be.updatePointLine(v.current,N,X),be.updateDrawPreview(l.current,N,X,3),be.updateLineBox(y.current,N),g(N.transitionDirection),x(N.transitionRotate)},o);(0,$.useEffect)(()=>{T.setShape(r||null)},t),(0,$.useEffect)(()=>{let N=()=>{T.modifiers.reset()};return document.addEventListener("mouseleave",N),()=>{document.removeEventListener("mouseleave",N)}},[]);let H=(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("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:"4",className:"marker"})}),(0,w.jsx)("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:"4",fill:"#FAFF00"})}),(0,w.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,w.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),fe=r?r.open?"polyline":"polygon":null,M=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",O=m.actionIntentType==="add-open-point",_=m.transitionIntentType==="split-line",b=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",J=r&&fe?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(fe,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:b?0:2,stroke:i?"transparent":"#000",points:r.points.map(N=>N.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:m.showBoundingBox?void 0:"url(#dot)",markerMid:m.showBoundingBox?void 0:"url(#dot)",markerEnd:m.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),m.lineBoxMode&&m.actionIntentType==="close-line-box"?(0,w.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:y,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,w.jsx)("polyline",{ref:l,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.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:r.points.filter((N,X)=>m.selectedPoints?.includes(X)).map(N=>N.join(",")).join(" ")}):null,M&&m.closestPoint!==null&&r.points[m.closestPoint]?(0,w.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[m.closestPoint][0]},${r.points[m.closestPoint][1]}`}):null,!m.transitioning&&(m.actionIntentType==="add-open-point"||m.actionIntentType==="close-shape"||m.actionIntentType==="close-shape-line")?(0,w.jsx)("polyline",{stroke:"#000",ref:v,strokeWidth:m.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,m.hasClosestLine&&(!m.transitionIntentType||m.transitionIntentType==="split-line")?(0,w.jsx)("g",{ref:u,children:(0,w.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,m.transitioning?(0,w.jsx)(fe,{ref:d,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,m.transitioning&&m.transitionIntentType==="select-multiple-points"?(0,w.jsx)("rect",{ref:c,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,m.showBoundingBox?null:(0,w.jsx)("g",{name:"controls",children:!1}),m.showBoundingBox&&!b?(0,w.jsx)("polygon",{ref:a,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:T,state:m,isAddingPoint:O,isSplitting:_,isStamping:b,isHoveringPoint:M,transitionDirection:h,transitionRotate:S,defs:H,editor:J}}var nn=require("react"),Ko=require("react-dom"),G=require("react/jsx-runtime"),Xo=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function fr(e){let t=e.theme||Xo[0],n=(0,rn.useAtlas)(),{image:r}=e,{helper:o,defs:i,editor:a,state:s,transitionDirection:c,isSplitting:u,transitionRotate:l,isHoveringPoint:d,isAddingPoint:v,isStamping:y}=mr({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),h=m=>{o.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,nn.useEffect)(()=>{let m=H=>{o.key.up(H.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,nn.useEffect)(()=>{let m=H=>{o.key.down(H.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,nn.useEffect)(()=>{let m=[];return c&&m.push(`atlas-cursor-${c}`),s.actionIntentType==="cut-line"&&s.modifiers?.Shift&&m.push("atlas-cursor-cut"),(d||s.transitionIntentType==="move-shape"||s.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),v&&m.push("atlas-cursor-crosshair"),u&&m.push("atlas-cursor-copy"),l&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,v,d,u,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,c,l]);let g=e.shape&&e.shape?.points.length===0,S=e.renderControls?e.renderControls(o,s,g):null,x=document.getElementById(e.controlsHtmlId||"atlas-controls"),T="shape";return(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)("world-object",{height:r.height,width:r.width,onMouseMove:h,onMouseDown:o.pointerDown,onMouseUp:o.pointerUp,onMouseLeave:o.blur,children:[e.shape?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(T,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.outer}),(0,G.jsx)(T,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.inner})]}):null,(0,G.jsxs)(rn.HTMLPortal,{relative:!0,interactive:!1,children:[(0,G.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,G.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[(0,G.jsx)("defs",{children:i}),a]})}),x?(0,Ko.createPortal)(S,x,"controls"):null]})]})})}var pr=require("react/jsx-runtime");function ta(e){let t=R(),n=e.annotationBucket,r=e.readOnly,o=e.id,{onClick:i,isHighlighted:a}=ar(e.id),s=lr(),c=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(r){let u="shape",l=e.polygon,d=l.open;return l?(0,pr.jsx)(u,{id:`shape-${o}`,points:l.points,open:d,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:c}):null}return(0,pr.jsx)(fr,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Zo=require("react/jsx-runtime");function na({annotation:e,children:t}){return(0,Zo.jsx)(q,{value:{annotation:e},children:t})}var Jo=require("react/jsx-runtime");function ra({annotationPage:e,children:t}){return(0,Jo.jsx)(q,{value:{annotationPage:e},children:t})}var ei=require("react/jsx-runtime");function oa({collection:e,children:t}){return(0,ei.jsx)(q,{value:{collection:e},children:t})}function ia(e,t={}){return Le(t)}var ti=require("@atlas-viewer/atlas"),Ce=require("react");function aa({canvasId:e}={}){let t=(0,ti.useCanvas)(),n=Ie(),r=(0,Ce.useMemo)(()=>e?[e]:t?[t.id]:n.map(u=>u.id),[e,t,n]),[o,i]=(0,Ce.useState)({}),a=st();(0,Ce.useEffect)(()=>{let u=l=>{let d=l.partOf.canvasId;d&&i(v=>({...v,[d]:l.choice}))};return a.on("choice-change",u),()=>{a.off("choice-change",u)}},[]);let s=(0,Ce.useMemo)(()=>{let u=[];for(let l of r){let d=o[l];d&&u.push({canvasId:l,choice:d})}return u},[r,o]),c=(0,Ce.useMemo)(()=>({makeChoice:(u,l)=>{a.emit("make-choice",{choiceId:u,...l})}}),[a]);return{choices:s,actions:c}}function sa(e,t=!1){}function ca(e){let n=D().manifest,r=e?e.map(o=>typeof o=="string"?o:o?.id):[];return A(o=>{let i=n?o.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let c of i?.items||[])r.indexOf(c.id)!==-1&&s.push(c);return s},[r.join("/")])}var ni=require("react");function ua(e,t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.collection,a=A(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,ni.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var on=require("react"),ri=require("@iiif/helpers/events");function la(e,t,n,r,o=[]){let i=C(),a=(0,on.useMemo)(()=>(0,ri.createEventsHelper)(i),[i]);(0,on.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,r),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...o])}function da(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=tt(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var gr=require("@atlas-viewer/iiif-image-api");var se=require("react");function hr({cacheKey:e}={}){let t=R(),n=Le(),r=C(),o=me(),[i,a]=(0,se.useState)(void 0),[s,c]=(0,se.useState)(!1),[u,l]=(0,se.useState)("idle"),[d,v]=(0,se.useState)(void 0),y=t?t.id:"undefined",h=(0,se.useMemo)(()=>{try{if(t&&n.length){let S=n[0],x=r.get(S.body[0]),m=(0,gr.getImageServices)(x)[0];return m&&o.loadServiceSync({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0}}catch(S){console.error(S)}},[y,e,t]),g=u==="success"&&i?i:h;return(0,se.useEffect)(()=>{(async()=>{try{if(t&&n.length){let S=n[0],x=r.get(S.body[0]),m=(0,gr.getImageServices)(x)[0];if(!m)return;c(!0),l("loading");try{let H=await o.loadService({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0;a(H),l("success"),c(!1)}catch(H){l("error"),v(H)}}}catch(S){l("error"),v(S)}})()},[y,e]),(0,se.useMemo)(()=>({data:g,isFetching:s,status:u,error:d}),[g,s,u,d])}function ma(){let e=hr();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var oi=require("@iiif/helpers/styles"),ii=require("react");function fa(){let e=C();return(0,ii.useMemo)(()=>(0,oi.createStylesHelper)(e),[e])}p(f,require("@iiif/helpers/annotation-targets"),module.exports);
48
+ `}),(0,Ct.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Bo({media:e,mediaControlsDeps:t,children:n}){let[{element:r,currentTime:o,progress:i},a,s]=Oe({duration:e.duration});return oe("overlay","video-element",Ui,{element:r,media:e,playPause:s.playPause}),null}var P=require("react/jsx-runtime");function Ge({x:e,y:t,onChoiceChange:n,registerActions:r,defaultChoices:o,isStatic:i,renderViewerControls:a,renderMediaControls:s,viewControlsDeps:c,mediaControlsDeps:u,strategies:l,throwOnUnknown:d,backgroundStyle:v,alwaysShowBackground:y,keepCanvasScale:h=!1,enableSizes:g=!1,enableYouTube:S=!0,onClickPaintingAnnotation:C,children:T}){let m=R(),H=lt(m,["deep-zoom"]),[fe]=Nn(),M=Vn(),O=b(),_=(0,se.useMemo)(()=>(0,Fo.createStylesHelper)(O),[O]),[x,J]=Jn({strategies:l||["images"],defaultChoices:o?.map(({id:k})=>k)}),N=x.type==="images"?x.choice:void 0,X=(0,se.useMemo)(()=>h?1:Math.max(1,...x.type==="images"?x.images.map(k=>(k.width||0)/k.target?.spatial.width):[]),[h,x]);Jr(X),(0,se.useEffect)(()=>{r&&r(J)},[x.annotations]),(0,se.useEffect)(()=>{if(o)for(let k of o)typeof k.opacity<"u"&&_.applyStyles({id:k.id},"atlas",{opacity:k.opacity})},[o]),(0,se.useLayoutEffect)(()=>{n&&n(N)},[N]),oe(M&&(x.type==="images"||x.type==="empty"||x.type==="textual-content"&&a)?"overlay":"none",`canvas-portal-controls-${m?.id}`,Ye.Provider,a?{value:M||null,children:a(x)}:{},[m,M,x,...c||[]]);let ue=He({maxWidth:256,maxHeight:256});if(!m)return null;let It=m.accompanyingCanvas,wt=m.placeholderCanvas,Je=ue&&ue.type==="fixed"?(0,P.jsx)("world-object",{height:m.height,width:m.width,x:e,y:t,children:(0,P.jsx)("world-image",{uri:ue.id,target:{x:0,y:0,width:m.width,height:m.height},display:ue.width&&ue.height?{width:ue.width,height:ue.height}:void 0,crop:void 0})}):null;if(x.type==="unknown"){if(Je)return Je;if(d)throw new Error(x.reason||"Unknown image strategy");return null}let yr=(0,P.jsxs)(se.Fragment,{children:[fe?(0,P.jsx)(mt,{page:fe}):null,x.annotations&&x.annotations.pages?x.annotations.pages.map(k=>(0,P.jsx)(mt,{page:k},k.id)):null,T]}),ui=x.type==="images"?x.images.length:0,va=x.type==="media"&&x.media.type==="Video"&&wt?(0,P.jsx)(ee,{canvas:wt.id,children:(0,P.jsx)(zo,{renderViewerControls:a})}):null;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)("world-object",{height:m.height,width:m.width,x:e,y:t,...H,children:[x.type==="empty"||y?(0,P.jsx)(Zt,{style:v}):null,x.type==="textual-content"?x.items.map((k,Tt)=>(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Do.HTMLPortal,{onClick:C?et=>{et.stopPropagation(),C(k.annotationId,k,et)}:void 0,target:k.target?.spatial||void 0,children:(0,P.jsx)("div",{"data-textual-content":!0,children:(0,P.jsx)(K,{enableDangerouslySetInnerHTML:!0,children:k.text})})},Tt),yr]})):null,x.type==="images"?(0,P.jsxs)(P.Fragment,{children:[x.images.map((k,Tt)=>(0,P.jsx)(_t,{isStatic:i,image:k,id:k.id,thumbnail:Tt===0?ue:void 0,selector:k.selector,enableSizes:g,onClick:C?et=>{et.stopPropagation(),C(k.annotationId,k,et)}:void 0},k.id+Tt)),yr]}):null,x.type==="3d-model"?(0,P.jsx)(Xt,{model:x.model}):null,x.type==="media"?(0,P.jsx)(P.Fragment,{children:x.media.type==="Sound"?(0,P.jsxs)(jt,{media:x.media,mediaControlsDeps:u,children:[Je,s?s(x):null]}):x.media.type==="Video"?(0,P.jsxs)(Kt,{media:x.media,mediaControlsDeps:u,children:[Je,s?s(x):null]}):x.media.type==="VideoYouTube"&&S?(0,P.jsxs)(Bo,{media:x.media,mediaControlsDeps:u,children:[Je,s?s(x):null]}):null}):null]},`${m.id}/${x.type}/${ui}`),x.type==="media"&&x.media.type==="Sound"&&It?(0,P.jsx)(ee,{canvas:It.id,children:(0,P.jsx)(Ge,{renderViewerControls:a})}):null,x.type==="media"&&x.media.type==="Sound"&&wt&&!It?(0,P.jsx)(ee,{canvas:wt.id,children:(0,P.jsx)(Ge,{renderViewerControls:a})}):null]})}var Q=require("react/jsx-runtime"),$i=(0,bt.forwardRef)(function(t,n){let r=z(),o=Ie(),i=ct(),{ViewerControls:a,MediaControls:s}=t.components||{};if((0,bt.useImperativeHandle)(n,()=>i,[i]),!r)return(0,Q.jsx)("div",{});let c=0;return(0,Q.jsxs)(Q.Fragment,{children:[t.header,(0,Q.jsx)(B.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:o.map((u,l)=>{let d=c;return c+=u.width+(t.spacing||0),(0,Q.jsx)(ee,{canvas:u.id,children:(0,Q.jsx)(B.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content"],renderViewerControls:l===0&&a?()=>(0,Q.jsx)(a,{}):void 0,renderMediaControls:l===0&&s?()=>(0,Q.jsx)(s,{}):void 0,x:d,...t.canvasProps||{},children:t.annotations},u.id)},u.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),B=(0,bt.forwardRef)(function({children:t,height:n,annotations:r,canvasProps:o,spacing:i,header:a,components:s,mode:c,reuseAtlas:u,renderPreset:l,runtimeOptions:d,...v},y){let h=Pe();return(0,Q.jsx)(Ae,{vault:h,children:(0,Q.jsx)(In,{...v,children:(0,Q.jsx)($i,{ref:y,height:n,components:s,spacing:i,canvasProps:o,annotations:r,header:a,mode:c,reuseAtlas:u,renderPreset:l,runtimeOptions:d,children:t})})})});B.RenderImage=_t;B.RenderCanvas=Ge;B.RenderAnnotationPage=mt;B.RenderAnnotation=Ut;B.Viewer=to;B.CanvasBackground=Zt;B.Audio=jt;B.Video=Kt;B.Model=Xt;B.AudioHTML=tr;B.VideoHTML=nr;B.ModelHTML=rr;var qo=require("@atlas-viewer/atlas");var Jt=require("react"),At=require("react/jsx-runtime"),_i=(0,Jt.forwardRef)(function({canvasId:t},n){let r=(0,qo.useCanvas)(),o=yt(t||r?.id),i=b();return(0,Jt.useImperativeHandle)(n,()=>o,[t,r]),!r||o.enabledPageIds.length===0?null:(0,At.jsx)(At.Fragment,{children:o.enabledPageIds.map(a=>(0,At.jsx)(B.RenderAnnotationPage,{page:i.get(a)},a))})});var Uo=require("react");var Wo=require("react");var L=require("react/jsx-runtime");function Pt({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:r=!0,allowHtml:o,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:c="No value",emptyLabelFallback:u="",separator:l,tableFooter:d,tableHeader:v}){let y=(0,Wo.useMemo)(()=>{let g=(t||[]).reduce((C,T)=>[...C,...T.keys],[]),S={};for(let C of e){let T=C&&C.label?Object.values(C.label):[];for(let m of T)if(m&&m.length&&(g.indexOf(`metadata.${m[0]}`)!==-1||g.length===0)&&C){let H=`metadata.${m[0]}`;S[H]=S[H]?S[H]:[],S[H].push(C);break}}return S},[t,e]);return Object.keys(y).length===0&&r?(0,L.jsx)(L.Fragment,{children:i})||(0,L.jsx)("div",{className:a.empty,children:s}):t&&t.length?(0,L.jsxs)("table",{className:a.container,children:[v,(0,L.jsx)("tbody",{children:t.map((g,S)=>{let C=[];for(let T of g.keys)for(let m of y[T]||[])C.push((0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:m.value},S+"__"+T));return C.length===0?null:(0,L.jsxs)("tr",{className:a.row,children:[(0,L.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,separator:l,defaultText:u,children:g.label})}),(0,L.jsx)("td",{className:a.value,children:C})]},S)})}),d]}):(0,L.jsxs)("table",{className:a.container,children:[v,(0,L.jsx)("tbody",{children:e&&e.length?e.map((g,S)=>g?(0,L.jsxs)("tr",{className:a.row,children:[(0,L.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:g.label})}),(0,L.jsx)("td",{className:a.value,children:(0,L.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:g.value})})]},S):null):null}),d]})}var $o=require("react/jsx-runtime");function Yi(e){let t=z(),n=R(),r=ot(),o=(0,Uo.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,n,r]);return(0,$o.jsx)(Pt,{metadata:o,...e})}var nn=require("react");var en=require("@atlas-viewer/iiif-image-api"),_o=require("react");function tn(e,t={},n=[]){return(0,_o.useMemo)(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let o=(0,en.createImageServiceRequest)(e);return(0,en.imageServiceRequestToString)({identifier:o.identifier,server:o.server,scheme:o.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:o.prefix,originalPath:o.originalPath})},[...n])}var Rt=require("react/jsx-runtime");function Qi(e){let t=typeof e.src=="string"?e.src:e.src.id,n=me(),[r,o]=(0,nn.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&n.loadService({id:t}).then(()=>{o(!0)});let a=tn(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,nn.useEffect)(()=>()=>{o(!1)},[t]),a?(0,Rt.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Rt.jsx)(Yo,{...e,fetchImageService:!1})}function Yo(e){if(e.fetchImageService)return(0,Rt.jsx)(Qi,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=tn(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,Rt.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var Qo=require("react/jsx-runtime");function ji(e){let t=z();return(0,Qo.jsx)(Pt,{metadata:t?.metadata||[],...e})}var rn=require("react");var or=ie(require("react-lazy-load-image-component"),1);var jo=require("@iiif/helpers/i18n"),j=require("react/jsx-runtime"),{LazyLoadComponent:Gi}=or||or.default;function ir(e){let{size:t,visible:n,classes:r,canvasId:o,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,c=(0,j.jsx)(Ki,{...e}),u=(0,j.jsx)(Gi,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:o?(0,j.jsx)(ee,{canvas:o,children:c}):c});return i?(0,j.jsx)("figure",{className:r?.figure,children:u}):u}function Ki({fallback:e,size:t,classes:n,showLabel:r,alt:o,dereference:i=!1}){let a=R(),s=t?.width||128,c=t?.height||t?.width||128,u=o||(0,jo.getValue)(a?.label)||"",l=He({width:s,height:c},i);return!l||l.type!=="fixed"?(0,j.jsx)(j.Fragment,{children:e}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:n?.imageWrapper,children:(0,j.jsx)("img",{className:n?.img,src:l.id,alt:u})}),r?(0,j.jsx)(K,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var Ke=require("react/jsx-runtime");function Xi({flat:e,size:t,classes:n={},showLabel:r,figure:o,fallback:i}){let a=(0,rn.useRef)(null),{items:s,sequence:c,currentSequenceIndex:u,setSequenceIndex:l}=ct(),d={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};(0,rn.useLayoutEffect)(()=>{if(!a.current)return;let y=a.current.querySelector("[data-selected=true]");y&&y.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[u]);let v=[];for(let y of c){let h=[],g=c[u]===y;for(let S of y){let C=s[S];h.push((0,Ke.jsx)("div",{className:g?d.item:n.item,children:(0,Ke.jsx)(ir,{classes:g?d:n,canvasId:C.id,size:t,showLabel:r,figure:o,placeholder:(0,Ke.jsx)("div",{style:{height:128,width:128}}),fallback:i})},S))}if(e){v.push(h);continue}v.push((0,Ke.jsx)("div",{onClick:S=>{l(c.indexOf(y))},"data-selected":g,className:g?d.row:n.row,children:h}))}return(0,Ke.jsx)("div",{ref:a,className:n.container,children:v})}var U=require("react/jsx-runtime"),Zi={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function Ji({helper:e,showShapes:t,state:n,enabled:r=Zi,classNames:o={},icons:i={}}){return(0,U.jsxs)(U.Fragment,{children:[t?(0,U.jsxs)(U.Fragment,{children:[r.draw&&(0,U.jsx)("button",{className:o.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!n.lineMode&&!n.selectedStamp&&t&&n.drawMode,children:i.DrawIcon||"Draw"}),r.polygon&&(0,U.jsx)("button",{className:o.button,"data-active":!n.lineMode&&!n.selectedStamp&&t&&!n.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:i.PolygonIcon||"Polygon"}),r.line&&(0,U.jsx)("button",{className:o.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:i.LineIcon||"Line"}),r.lineBox&&(0,U.jsx)("button",{className:o.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:i.LineBoxIcon||"LineBox"}),r.square&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:i.SquareIcon||"Square"}),r.triangle&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:i.TriangleIcon||"Triangle"}),r.hexagon&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:i.HexagonIcon||"Hexagon"})]}):null,n.showBoundingBox&&r.delete&&(0,U.jsx)("button",{className:o.button,onClick:()=>e.key.down("Backspace"),children:i.DeleteForeverIcon||"Delete"})]})}var F=require("react"),ar=ie(require("mitt"),1),Go=require("react/jsx-runtime"),on=(0,F.createContext)((0,ar.default)());on.displayName="SelectorHelper";function ea({children:e}){return(0,Go.jsx)(on.Provider,{value:(0,F.useMemo)(()=>(0,ar.default)(),[]),children:e})}function ta(){return(0,F.useContext)(on)}function sr(e){let t=cr(),[n,r]=(0,F.useState)(!1);(0,F.useEffect)(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),(0,F.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let o=(0,F.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,F.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:o,onHover:i,isHighlighted:n}}function cr(){let e=(0,F.useContext)(on);return(0,F.useMemo)(()=>({withSelector(t){return{on(n,r){let o=i=>{i&&i.selectorId===t&&r(i)};return e.on(n,o),()=>{e.off(n,o)}},emit(n,r){e.emit(n,{...r,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function na(){let e=cr();return(0,F.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(n,r){return e.withSelector(t).on(n,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(t){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(t,n){return e.on(t,n)}}),[e])}var Xe=require("react"),Ko=require("react/jsx-runtime");function ur(){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 lr=(0,Xe.createContext)(ur());lr.displayName="AnnotationStyle";function dr(){return(0,Xe.useContext)(lr)}function ra({theme:e,children:t}){let n=(0,Xe.useMemo)(()=>e||ur(),[e]);return(0,Ko.jsx)(lr.Provider,{value:n,children:t})}var sn=require("@atlas-viewer/atlas");var $=require("react");var Ze=require("react"),Xo=require("polygon-editor");function mr(e,t,n){let[r,o]=(0,Ze.useState)({}),i=(0,Ze.useMemo)(()=>(0,Xo.createHelper)(e,n),[]);return(0,Ze.useEffect)(()=>(i.clock.start(t,o),()=>{i.clock.stop()}),[]),{state:r,helper:i}}var Zo=require("polygon-editor"),w=require("react/jsx-runtime"),Ce=(0,Zo.createSvgHelpers)();function fr(e,t){let{image:n,currentShape:r,onChange:o,hideShapeLines:i}=e,a=(0,$.useRef)(),s=(0,$.useRef)(),c=(0,$.useRef)(),u=(0,$.useRef)(),l=(0,$.useRef)(),d=(0,$.useRef)(),v=(0,$.useRef)(),y=(0,$.useRef)(),[h,g]=(0,$.useState)(null),[S,C]=(0,$.useState)(!1),{helper:T,state:m}=mr(r,(N,X)=>{Ce.updateTransitionBoundingBox(s.current,N,X),Ce.updateBoundingBoxPolygon(a.current,N,X),Ce.updateTransitionShape(d.current,N,X),Ce.updateClosestLinePointTransform(u.current,N,X),Ce.updateSelectBox(c.current,N,X),Ce.updatePointLine(v.current,N,X),Ce.updateDrawPreview(l.current,N,X,3),Ce.updateLineBox(y.current,N),g(N.transitionDirection),C(N.transitionRotate)},o);(0,$.useEffect)(()=>{T.setShape(r||null)},t),(0,$.useEffect)(()=>{let N=()=>{T.modifiers.reset()};return document.addEventListener("mouseleave",N),()=>{document.removeEventListener("mouseleave",N)}},[]);let H=(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("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:"4",className:"marker"})}),(0,w.jsx)("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:"4",fill:"#FAFF00"})}),(0,w.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,w.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),fe=r?r.open?"polyline":"polygon":null,M=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",O=m.actionIntentType==="add-open-point",_=m.transitionIntentType==="split-line",x=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",J=r&&fe?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(fe,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:x?0:2,stroke:i?"transparent":"#000",points:r.points.map(N=>N.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:m.showBoundingBox?void 0:"url(#dot)",markerMid:m.showBoundingBox?void 0:"url(#dot)",markerEnd:m.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),m.lineBoxMode&&m.actionIntentType==="close-line-box"?(0,w.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:y,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,w.jsx)("polyline",{ref:l,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.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:r.points.filter((N,X)=>m.selectedPoints?.includes(X)).map(N=>N.join(",")).join(" ")}):null,M&&m.closestPoint!==null&&r.points[m.closestPoint]?(0,w.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[m.closestPoint][0]},${r.points[m.closestPoint][1]}`}):null,!m.transitioning&&(m.actionIntentType==="add-open-point"||m.actionIntentType==="close-shape"||m.actionIntentType==="close-shape-line")?(0,w.jsx)("polyline",{stroke:"#000",ref:v,strokeWidth:m.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,m.hasClosestLine&&(!m.transitionIntentType||m.transitionIntentType==="split-line")?(0,w.jsx)("g",{ref:u,children:(0,w.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,m.transitioning?(0,w.jsx)(fe,{ref:d,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,m.transitioning&&m.transitionIntentType==="select-multiple-points"?(0,w.jsx)("rect",{ref:c,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,m.showBoundingBox?null:(0,w.jsx)("g",{name:"controls",children:!1}),m.showBoundingBox&&!x?(0,w.jsx)("polygon",{ref:a,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:T,state:m,isAddingPoint:O,isSplitting:_,isStamping:x,isHoveringPoint:M,transitionDirection:h,transitionRotate:S,defs:H,editor:J}}var an=require("react"),Jo=require("react-dom"),G=require("react/jsx-runtime"),ei=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function pr(e){let t=e.theme||ei[0],n=(0,sn.useAtlas)(),{image:r}=e,{helper:o,defs:i,editor:a,state:s,transitionDirection:c,isSplitting:u,transitionRotate:l,isHoveringPoint:d,isAddingPoint:v,isStamping:y}=fr({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),h=m=>{o.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,an.useEffect)(()=>{let m=H=>{o.key.up(H.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,an.useEffect)(()=>{let m=H=>{o.key.down(H.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,an.useEffect)(()=>{let m=[];return c&&m.push(`atlas-cursor-${c}`),s.actionIntentType==="cut-line"&&s.modifiers?.Shift&&m.push("atlas-cursor-cut"),(d||s.transitionIntentType==="move-shape"||s.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),v&&m.push("atlas-cursor-crosshair"),u&&m.push("atlas-cursor-copy"),l&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,v,d,u,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,c,l]);let g=e.shape&&e.shape?.points.length===0,S=e.renderControls?e.renderControls(o,s,g):null,C=document.getElementById(e.controlsHtmlId||"atlas-controls"),T="shape";return(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)("world-object",{height:r.height,width:r.width,onMouseMove:h,onMouseDown:o.pointerDown,onMouseUp:o.pointerUp,onMouseLeave:o.blur,children:[e.shape?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(T,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.outer}),(0,G.jsx)(T,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.inner})]}):null,(0,G.jsxs)(sn.HTMLPortal,{relative:!0,interactive:!1,children:[(0,G.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,G.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[(0,G.jsx)("defs",{children:i}),a]})}),C?(0,Jo.createPortal)(S,C,"controls"):null]})]})})}var gr=require("react/jsx-runtime");function oa(e){let t=R(),n=e.annotationBucket,r=e.readOnly,o=e.id,{onClick:i,isHighlighted:a}=sr(e.id),s=dr(),c=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(r){let u="shape",l=e.polygon,d=l.open;return l?(0,gr.jsx)(u,{id:`shape-${o}`,points:l.points,open:d,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:c}):null}return(0,gr.jsx)(pr,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var ti=require("react/jsx-runtime");function ia({annotation:e,children:t}){return(0,ti.jsx)(q,{value:{annotation:e},children:t})}var ni=require("react/jsx-runtime");function aa({annotationPage:e,children:t}){return(0,ni.jsx)(q,{value:{annotationPage:e},children:t})}var ri=require("react/jsx-runtime");function sa({collection:e,children:t}){return(0,ri.jsx)(q,{value:{collection:e},children:t})}function ca(e,t={}){return Le(t)}var oi=require("@atlas-viewer/atlas"),be=require("react");function ua({canvasId:e}={}){let t=(0,oi.useCanvas)(),n=Ie(),r=(0,be.useMemo)(()=>e?[e]:t?[t.id]:n.map(u=>u.id),[e,t,n]),[o,i]=(0,be.useState)({}),a=ut();(0,be.useEffect)(()=>{let u=l=>{let d=l.partOf.canvasId;d&&i(v=>({...v,[d]:l.choice}))};return a.on("choice-change",u),()=>{a.off("choice-change",u)}},[]);let s=(0,be.useMemo)(()=>{let u=[];for(let l of r){let d=o[l];d&&u.push({canvasId:l,choice:d})}return u},[r,o]),c=(0,be.useMemo)(()=>({makeChoice:(u,l)=>{a.emit("make-choice",{choiceId:u,...l})}}),[a]);return{choices:s,actions:c}}function la(e,t=!1){}function da(e){let n=D().manifest,r=e?e.map(o=>typeof o=="string"?o:o?.id):[];return A(o=>{let i=n?o.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let c of i?.items||[])r.indexOf(c.id)!==-1&&s.push(c);return s},[r.join("/")])}var ii=require("react");function ma(e,t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.collection,a=A(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,ii.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var cn=require("react"),ai=require("@iiif/helpers/events");function fa(e,t,n,r,o=[]){let i=b(),a=(0,cn.useMemo)(()=>(0,ai.createEventsHelper)(i),[i]);(0,cn.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,r),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...o])}function pa(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=rt(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var hr=require("@atlas-viewer/iiif-image-api");var ce=require("react");function vr({cacheKey:e}={}){let t=R(),n=Le(),r=b(),o=me(),[i,a]=(0,ce.useState)(void 0),[s,c]=(0,ce.useState)(!1),[u,l]=(0,ce.useState)("idle"),[d,v]=(0,ce.useState)(void 0),y=t?t.id:"undefined",h=(0,ce.useMemo)(()=>{try{if(t&&n.length){let S=n[0],C=r.get(S.body[0]),m=(0,hr.getImageServices)(C)[0];return m&&o.loadServiceSync({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0}}catch(S){console.error(S)}},[y,e,t]),g=u==="success"&&i?i:h;return(0,ce.useEffect)(()=>{(async()=>{try{if(t&&n.length){let S=n[0],C=r.get(S.body[0]),m=(0,hr.getImageServices)(C)[0];if(!m)return;c(!0),l("loading");try{let H=await o.loadService({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0;a(H),l("success"),c(!1)}catch(H){l("error"),v(H)}}}catch(S){l("error"),v(S)}})()},[y,e]),(0,ce.useMemo)(()=>({data:g,isFetching:s,status:u,error:d}),[g,s,u,d])}function ga(){let e=vr();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var si=require("@iiif/helpers/styles"),ci=require("react");function ha(){let e=b();return(0,ci.useMemo)(()=>(0,si.createStylesHelper)(e),[e])}p(f,require("@iiif/helpers/annotation-targets"),module.exports);
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SimpleViewerContext, a as SimpleViewerProps } from './index-ns1Yq6EJ.cjs';
2
- export { C as CanvasPanel, c as SimpleViewerActions, d as SimpleViewerActionsType, b as SimpleViewerReducerState } from './index-ns1Yq6EJ.cjs';
1
+ import { S as SimpleViewerContext, a as SimpleViewerProps } from './index-Bxl9_Mut.cjs';
2
+ export { C as CanvasPanel, c as SimpleViewerActions, d as SimpleViewerActionsType, b as SimpleViewerReducerState } from './index-Bxl9_Mut.cjs';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { ReactNode, FunctionComponent, RefObject } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SimpleViewerContext, a as SimpleViewerProps } from './index-DBIPIOrR.js';
2
- export { C as CanvasPanel, c as SimpleViewerActions, d as SimpleViewerActionsType, b as SimpleViewerReducerState } from './index-DBIPIOrR.js';
1
+ import { S as SimpleViewerContext, a as SimpleViewerProps } from './index-DolLOoZi.js';
2
+ export { C as CanvasPanel, c as SimpleViewerActions, d as SimpleViewerActionsType, b as SimpleViewerReducerState } from './index-DolLOoZi.js';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { ReactNode, FunctionComponent, RefObject } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as wo,A as to,Aa as tn,B as oo,Ba as ln,C as no,Ca as cn,D as ro,Da as le,E as io,Ea as mn,F as ao,Fa as un,G as so,Ga as dn,H as lo,Ha as fn,I as co,Ia as gn,J as mo,Ja as pn,K as uo,Ka as ce,L as fo,M as go,N as po,O as ho,P as yo,Q as vo,R as xo,S as bo,T as So,U as ie,V as Co,W as Io,X as ae,Y as ko,Z as Po,_ as To,a as Wt,aa as Ro,b as A,ba as Eo,c as B,ca as Mo,d as Dt,da as No,e as Ft,ea as Bo,f as Ot,fa as T,g as te,ga as Lo,h as $t,ha as Ho,i as Vt,ia as Ao,j as oe,ja as zo,k as P,ka as qo,l as z,la as Wo,m as Xt,ma as Do,n as ne,na as Fo,o as q,oa as Oo,p as Yt,pa as $o,q as _t,qa as Vo,r as Kt,ra as Xo,s as Qt,sa as N,t as Ut,ta as Jo,u as Gt,ua as se,v as Jt,va as Zo,w as re,wa as jo,x as Zt,xa as W,y as jt,ya as en,z as eo,za as D}from"./chunk-AWTNLE7O.js";import{a as Yo,b as _o,c as Ko,d as Qo,e as Uo,f as Go,g as on,h as nn,i as rn,j as an,k as sn}from"./chunk-DXFXJCXN.js";import{useCanvas as We}from"@atlas-viewer/atlas";import{forwardRef as De,useImperativeHandle as Fe}from"react";import{Fragment as Oe,jsx as me}from"react/jsx-runtime";var Sn=De(function({canvasId:t},o){let n=We(),i=se(t||n?.id),a=P();return Fe(o,()=>i,[t,n]),!n||i.enabledPageIds.length===0?null:me(Oe,{children:i.enabledPageIds.map(s=>me(ce.RenderAnnotationPage,{page:a.get(s)},s))})});import{useMemo as Xe}from"react";import{useMemo as $e}from"react";import{Fragment as Ve,jsx as C,jsxs as F}from"react/jsx-runtime";function O({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:i,emptyFallback:a,classes:s={},emptyMessage:l="No metadata available",emptyValueFallback:u="No value",emptyLabelFallback:m="",separator:c,tableFooter:f,tableHeader:x}){let y=$e(()=>{let p=(t||[]).reduce((g,b)=>[...g,...b.keys],[]),d={};for(let g of e){let b=g&&g.label?Object.values(g.label):[];for(let r of b)if(r&&r.length&&(p.indexOf(`metadata.${r[0]}`)!==-1||p.length===0)&&g){let S=`metadata.${r[0]}`;d[S]=d[S]?d[S]:[],d[S].push(g);break}}return d},[t,e]);return Object.keys(y).length===0&&n?C(Ve,{children:a})||C("div",{className:s.empty,children:l}):t&&t.length?F("table",{className:s.container,children:[x,C("tbody",{children:t.map((p,d)=>{let g=[];for(let b of p.keys)for(let r of y[b]||[])g.push(C(N,{enableDangerouslySetInnerHTML:i,defaultText:u,separator:c,children:r.value},d+"__"+b));return g.length===0?null:F("tr",{className:s.row,children:[C("td",{className:s.label,style:o?{minWidth:o}:{},children:C(N,{enableDangerouslySetInnerHTML:i,separator:c,defaultText:m,children:p.label})}),C("td",{className:s.value,children:g})]},d)})}),f]}):F("table",{className:s.container,children:[x,C("tbody",{children:e&&e.length?e.map((p,d)=>p?F("tr",{className:s.row,children:[C("td",{className:s.label,style:o?{minWidth:o}:{},children:C(N,{enableDangerouslySetInnerHTML:i,defaultText:u,separator:c,children:p.label})}),C("td",{className:s.value,children:C(N,{enableDangerouslySetInnerHTML:i,defaultText:u,separator:c,children:p.value})})]},d):null):null}),f]})}import{jsx as Ye}from"react/jsx-runtime";function Hn(e){let t=q(),o=T(),n=re(),i=Xe(()=>{let a=t?.metadata||[],s=o?.metadata||[],l=n?.metadata||[];return[...a,...s,...l]},[t,o,n]);return Ye(O,{metadata:i,...e})}import{useEffect as Ue,useState as Ge}from"react";import{createImageServiceRequest as _e,imageServiceRequestToString as Ke}from"@atlas-viewer/iiif-image-api";import{useMemo as Qe}from"react";function Q(e,t={},o=[]){return Qe(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let i=_e(e);return Ke({identifier:i.identifier,server:i.server,scheme:i.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:n||"default",prefix:i.prefix,originalPath:i.originalPath})},[...o])}import{jsx as $}from"react/jsx-runtime";function Je(e){let t=typeof e.src=="string"?e.src:e.src.id,o=W(),[n,i]=Ge(!1),a;if(t){let l=o.loadServiceSync({id:t});l&&(a=l)}!a&&!n&&o.loadService({id:t}).then(()=>{i(!0)});let s=Q(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return Ue(()=>()=>{i(!1)},[t]),s?$("img",{src:s,alt:e.alt,className:e.className,style:e.style}):$(Ze,{...e,fetchImageService:!1})}function Ze(e){if(e.fetchImageService)return $(Je,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=Q(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?$("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{jsx as je}from"react/jsx-runtime";function Gn(e){let t=q();return je(O,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as rt,useRef as it}from"react";import*as U from"react-lazy-load-image-component";import{getValue as et}from"@iiif/helpers/i18n";import{Fragment as ue,jsx as w,jsxs as nt}from"react/jsx-runtime";var{LazyLoadComponent:tt}=U||U.default;function de(e){let{size:t,visible:o,classes:n,canvasId:i,figure:a}=e,s=t?.width||128,l=t?.height||t?.width||128,u=w(ot,{...e}),m=w(tt,{threshold:300,style:{height:l,width:s},visibleByDefault:o,children:i?w(oe,{canvas:i,children:u}):u});return a?w("figure",{className:n?.figure,children:m}):m}function ot({fallback:e,size:t,classes:o,showLabel:n,alt:i,dereference:a=!1}){let s=T(),l=t?.width||128,u=t?.height||t?.width||128,m=i||et(s?.label)||"",c=le({width:l,height:u},a);return!c||c.type!=="fixed"?w(ue,{children:e}):nt(ue,{children:[w("div",{className:o?.imageWrapper,children:w("img",{className:o?.img,src:c.id,alt:m})}),n?w(N,{as:"figcaption",className:o?.label,children:s?.label}):null]})}import{jsx as L}from"react/jsx-runtime";function cr({flat:e,size:t,classes:o={},showLabel:n,figure:i,fallback:a}){let s=it(null),{items:l,sequence:u,currentSequenceIndex:m,setSequenceIndex:c}=ie(),f={row:o.selected?.row||o.row,item:o.selected?.item||o.item,figure:o.selected?.figure||o.figure,img:o.selected?.img||o.img,label:o.selected?.label||o.label,imageWrapper:o.selected?.imageWrapper||o.imageWrapper};rt(()=>{if(!s.current)return;let y=s.current.querySelector("[data-selected=true]");y&&y.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[m]);let x=[];for(let y of u){let I=[],p=u[m]===y;for(let d of y){let g=l[d];I.push(L("div",{className:p?f.item:o.item,children:L(de,{classes:p?f:o,canvasId:g.id,size:t,showLabel:n,figure:i,placeholder:L("div",{style:{height:128,width:128}}),fallback:a})},d))}if(e){x.push(I);continue}x.push(L("div",{onClick:d=>{c(u.indexOf(y))},"data-selected":p,className:p?f.row:o.row,children:I}))}return L("div",{ref:s,className:o.container,children:x})}import{Fragment as fe,jsx as R,jsxs as ge}from"react/jsx-runtime";var at={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function dr({helper:e,showShapes:t,state:o,enabled:n=at,classNames:i={},icons:a={}}){return ge(fe,{children:[t?ge(fe,{children:[n.draw&&R("button",{className:i.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!o.lineMode&&!o.selectedStamp&&t&&o.drawMode,children:a.DrawIcon||"Draw"}),n.polygon&&R("button",{className:i.button,"data-active":!o.lineMode&&!o.selectedStamp&&t&&!o.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),n.line&&R("button",{className:i.button,"data-active":o.lineMode&&!o.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),n.lineBox&&R("button",{className:i.button,"data-active":o.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),n.square&&R("button",{className:i.button,"data-active":o.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),n.triangle&&R("button",{className:i.button,"data-active":o.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),n.hexagon&&R("button",{className:i.button,"data-active":o.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,o.showBoundingBox&&n.delete&&R("button",{className:i.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}import{createContext as st,useCallback as pe,useContext as ye,useEffect as he,useMemo as G,useState as lt}from"react";import ve from"mitt";import{jsx as ct}from"react/jsx-runtime";var V=st(ve());V.displayName="SelectorHelper";function br({children:e}){return ct(V.Provider,{value:G(()=>ve(),[]),children:e})}function Sr(){return ye(V)}function xe(e){let t=be(),[o,n]=lt(!1);he(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),he(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let i=pe(s=>{t.emit("click",{selectorId:e,event:s})},[e,t]),a=pe(s=>{t.emit("hover",{selectorId:e,event:s})},[e,t]);return{controller:t,onClick:i,onHover:a,isHighlighted:o}}function be(){let e=ye(V);return G(()=>({withSelector(t){return{on(o,n){let i=a=>{a&&a.selectorId===t&&n(a)};return e.on(o,i),()=>{e.off(o,i)}},emit(o,n){e.emit(o,{...n,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Cr(){let e=be();return G(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(o,n){return e.withSelector(t).on(o,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(t){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(t,o){return e.on(t,o)}}),[e])}import{createContext as mt,useContext as ut,useMemo as dt}from"react";import{jsx as ft}from"react/jsx-runtime";function Se(){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 J=mt(Se());J.displayName="AnnotationStyle";function Ce(){return ut(J)}function Tr({theme:e,children:t}){let o=dt(()=>e||Se(),[e]);return ft(J.Provider,{value:o,children:t})}import{HTMLPortal as xt,useAtlas as bt}from"@atlas-viewer/atlas";import{useEffect as ke,useRef as E,useState as Pe}from"react";import{useEffect as gt,useMemo as pt,useState as ht}from"react";import{createHelper as yt}from"polygon-editor";function Ie(e,t,o){let[n,i]=ht({}),a=pt(()=>yt(e,o),[]);return gt(()=>(a.clock.start(t,i),()=>{a.clock.stop()}),[]),{state:n,helper:a}}import{createSvgHelpers as vt}from"polygon-editor";import{Fragment as Te,jsx as v,jsxs as we}from"react/jsx-runtime";var M=vt();function Re(e,t){let{image:o,currentShape:n,onChange:i,hideShapeLines:a}=e,s=E(),l=E(),u=E(),m=E(),c=E(),f=E(),x=E(),y=E(),[I,p]=Pe(null),[d,g]=Pe(!1),{helper:b,state:r}=Ie(n,(h,k)=>{M.updateTransitionBoundingBox(l.current,h,k),M.updateBoundingBoxPolygon(s.current,h,k),M.updateTransitionShape(f.current,h,k),M.updateClosestLinePointTransform(m.current,h,k),M.updateSelectBox(u.current,h,k),M.updatePointLine(x.current,h,k),M.updateDrawPreview(c.current,h,k,3),M.updateLineBox(y.current,h),p(h.transitionDirection),g(h.transitionRotate)},i);ke(()=>{b.setShape(n||null)},t),ke(()=>{let h=()=>{b.modifiers.reset()};return document.addEventListener("mouseleave",h),()=>{document.removeEventListener("mouseleave",h)}},[]);let S=we(Te,{children:[v("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:v("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),v("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:v("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),v("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:v("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),_=n?n.open?"polyline":"polygon":null,ee=!r.showBoundingBox&&r.closestPoint!==null&&r.actionIntentType==="select-point",Ae=r.actionIntentType==="add-open-point",ze=r.transitionIntentType==="split-line",K=r.transitioning&&r.selectedStamp&&r.transitionIntentType==="stamp-shape",qe=n&&_?we(Te,{children:[v(_,{fill:!r.transitioning&&r.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:K?0:2,stroke:a?"transparent":"#000",points:n.points.map(h=>h.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:r.showBoundingBox?void 0:"url(#dot)",markerMid:r.showBoundingBox?void 0:"url(#dot)",markerEnd:r.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),r.lineBoxMode&&r.actionIntentType==="close-line-box"?v("polygon",{fill:"rgba(255, 0, 0, .4)",ref:y,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,r.transitionIntentType==="draw-shape"&&r.transitioning?v("polyline",{ref:c,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!r.showBoundingBox&&r.selectedPoints&&r.selectedPoints.length?v("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:n.points.filter((h,k)=>r.selectedPoints?.includes(k)).map(h=>h.join(",")).join(" ")}):null,ee&&r.closestPoint!==null&&n.points[r.closestPoint]?v("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${n.points[r.closestPoint][0]},${n.points[r.closestPoint][1]}`}):null,!r.transitioning&&(r.actionIntentType==="add-open-point"||r.actionIntentType==="close-shape"||r.actionIntentType==="close-shape-line")?v("polyline",{stroke:"#000",ref:x,strokeWidth:r.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,r.hasClosestLine&&(!r.transitionIntentType||r.transitionIntentType==="split-line")?v("g",{ref:m,children:v("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,r.transitioning?v(_,{ref:f,fill:n.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:n.open?2:0}):null,r.transitioning&&r.transitionIntentType==="select-multiple-points"?v("rect",{ref:u,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,r.showBoundingBox?null:v("g",{name:"controls",children:!1}),r.showBoundingBox&&!K?v("polygon",{ref:s,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:b,state:r,isAddingPoint:Ae,isSplitting:ze,isStamping:K,isHoveringPoint:ee,transitionDirection:I,transitionRotate:d,defs:S,editor:qe}}import{useEffect as Z}from"react";import{createPortal as St}from"react-dom";import{Fragment as Ee,jsx as H,jsxs as X}from"react/jsx-runtime";var Ct=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function Me(e){let t=e.theme||Ct[0],o=bt(),{image:n}=e,{helper:i,defs:a,editor:s,state:l,transitionDirection:u,isSplitting:m,transitionRotate:c,isHoveringPoint:f,isAddingPoint:x,isStamping:y}=Re({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),I=r=>{i.pointer([[~~r.atlas.x,~~r.atlas.y]])};Z(()=>{let r=S=>{i.key.up(S.key)};return document.addEventListener("keyup",r),()=>{document.removeEventListener("keyup",r)}},[]),Z(()=>{let r=S=>{i.key.down(S.key)};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[]),Z(()=>{let r=[];return u&&r.push(`atlas-cursor-${u}`),l.actionIntentType==="cut-line"&&l.modifiers?.Shift&&r.push("atlas-cursor-cut"),(f||l.transitionIntentType==="move-shape"||l.transitionIntentType==="move-point")&&r.push("atlas-cursor-move"),x&&r.push("atlas-cursor-crosshair"),m&&r.push("atlas-cursor-copy"),c&&r.push("atlas-cursor-rotate"),l.transitionIntentType==="draw-shape"&&r.push("atlas-cursor-draw"),o?.canvas&&o.canvas.classList.add(...r),()=>{o?.canvas&&o.canvas.classList.remove(...r)}},[o?.canvas,x,f,m,l.modifiers?.Shift,l.actionIntentType,l.transitionIntentType,u,c]);let p=e.shape&&e.shape?.points.length===0,d=e.renderControls?e.renderControls(i,l,p):null,g=document.getElementById(e.controlsHtmlId||"atlas-controls"),b="shape";return H(Ee,{children:X("world-object",{height:n.height,width:n.width,onMouseMove:I,onMouseDown:i.pointerDown,onMouseUp:i.pointerUp,onMouseLeave:i.blur,children:[e.shape?X(Ee,{children:[H(b,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.outer}),H(b,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.inner})]}):null,X(xt,{relative:!0,interactive:!1,children:[H("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:X("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[H("defs",{children:a}),s]})}),g?St(d,g,"controls"):null]})]})})}import{jsx as Ne}from"react/jsx-runtime";function ti(e){let t=T(),o=e.annotationBucket,n=e.readOnly,i=e.id,{onClick:a,isHighlighted:s}=xe(e.id),l=Ce(),u=s?l.highlighted:l[o||"hidden"]||l.hidden;if(!t)return null;if(n){let m="shape",c=e.polygon,f=c.open;return c?Ne(m,{id:`shape-${i}`,points:c.points,open:f,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:u}):null}return Ne(Me,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{jsx as It}from"react/jsx-runtime";function ii({annotation:e,children:t}){return It(B,{value:{annotation:e},children:t})}import{jsx as kt}from"react/jsx-runtime";function ci({annotationPage:e,children:t}){return kt(B,{value:{annotationPage:e},children:t})}import{jsx as Pt}from"react/jsx-runtime";function fi({collection:e,children:t}){return Pt(B,{value:{collection:e},children:t})}function yi(e,t={}){return D(t)}import{useCanvas as Tt}from"@atlas-viewer/atlas";import{useEffect as wt,useMemo as j,useState as Rt}from"react";function Ii({canvasId:e}={}){let t=Tt(),o=ne(),n=j(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[i,a]=Rt({}),s=ae();wt(()=>{let m=c=>{let f=c.partOf.canvasId;f&&a(x=>({...x,[f]:c.choice}))};return s.on("choice-change",m),()=>{s.off("choice-change",m)}},[]);let l=j(()=>{let m=[];for(let c of n){let f=i[c];f&&m.push({canvasId:c,choice:f})}return m},[n,i]),u=j(()=>({makeChoice:(m,c)=>{s.emit("make-choice",{choiceId:m,...c})}}),[s]);return{choices:l,actions:u}}function Pi(e,t=!1){}function Ei(e){let o=A().manifest,n=e?e.map(i=>typeof i=="string"?i:i?.id):[];return z(i=>{let a=o?i.iiif.entities.Manifest[o]:void 0,s=a?.items||[];if(typeof e>"u")return s;let l=[];for(let u of a?.items||[])n.indexOf(u.id)!==-1&&l.push(u);return l},[n.join("/")])}import{useMemo as Et}from"react";function Hi(e,t=[]){let{id:o,selector:n}=e,i=A(),a=o||i.collection,s=z(l=>a?l.iiif.entities.Collection[a]:void 0,[a]);return Et(()=>{if(s)return n?n(s):s},[s,n,...t])}import{useEffect as Mt,useMemo as Nt}from"react";import{createEventsHelper as Bt}from"@iiif/helpers/events";function Di(e,t,o,n,i=[]){let a=P(),s=Nt(()=>Bt(a),[a]);Mt(()=>{let l=e;return l?(s.addEventListener(l,t,o,n),()=>{s.removeEventListener(l,t,o)}):()=>{}},[s,e,t,...i])}function Vi(e,t){let{id:o,isLoaded:n,error:i,resource:a,requestId:s,cached:l}=te(e,t);return{id:o,isLoaded:n,error:i,manifest:a,requestId:s,cached:l}}import{getImageServices as Be}from"@atlas-viewer/iiif-image-api";import{useEffect as Lt,useMemo as Le,useState as Y}from"react";function He({cacheKey:e}={}){let t=T(),o=D(),n=P(),i=W(),[a,s]=Y(void 0),[l,u]=Y(!1),[m,c]=Y("idle"),[f,x]=Y(void 0),y=t?t.id:"undefined",I=Le(()=>{try{if(t&&o.length){let d=o[0],g=n.get(d.body[0]),r=Be(g)[0];return r&&i.loadServiceSync({id:r.id||r["@id"],width:r.width||t.width,height:r.height||t.height})||void 0}}catch(d){console.error(d)}},[y,e,t]),p=m==="success"&&a?a:I;return Lt(()=>{(async()=>{try{if(t&&o.length){let d=o[0],g=n.get(d.body[0]),r=Be(g)[0];if(!r)return;u(!0),c("loading");try{let S=await i.loadService({id:r.id||r["@id"],width:r.width||t.width,height:r.height||t.height})||void 0;s(S),c("success"),u(!1)}catch(S){c("error"),x(S)}}}catch(d){c("error"),x(d)}})()},[y,e]),Le(()=>({data:p,isFetching:l,status:m,error:f}),[p,l,m,f])}function ji(){let e=He();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}import{createStylesHelper as Ht}from"@iiif/helpers/styles";import{useMemo as At}from"react";function ra(){let e=P();return At(()=>Ht(e),[e])}export*from"@iiif/helpers/annotation-targets";export{ii as AnnotationContext,ci as AnnotationPageContext,Tr as AnnotationStyleProvider,yo as Auth,lo as AuthProvider,io as AuthRContext,ao as AuthReactContext,so as AuthReactContextActions,Sn as CanvasAnnotations,oe as CanvasContext,ce as CanvasPanel,fi as CollectionContext,Hn as CombinedMetadata,To as ContextBridge,Me as CreateCustomShape,ko as EventsProvider,Ze as Image,jo as ImageServiceLoaderContext,bo as InnerViewerProvider,Wo as LanguageProvider,Oo as LanguageString,N as LocaleString,Vt as ManifestContext,Gn as ManifestMetadata,pn as MediaPlayerProvider,O as Metadata,ti as PolygonSelector,Yt as RangeContext,Io as ReactEventContext,Dt as ReactVaultContext,dr as RenderSvgEditorControls,B as ResourceProvider,Wt as ResourceReactContext,br as SelectorControllerProvider,cr as SequenceThumbnails,So as SimpleViewerProvider,xo as SimpleViewerReactContext,de as SingleCanvasThumbnail,qo as TranslationProvider,Ft as VaultProvider,No as ViewerPresetContext,Mo as VirtualAnnotationProvider,Xt as VisibleCanvasReactContext,oo as authDetailsForResource,eo as createAuthStateStore,to as createProbe,Co as defaultEmitter,Ko as emptyActions,Go as emptyStrategy,Kt as findAllCanvasesInRange,_t as findFirstCanvasFromRange,Qt as findManifestSelectedRange,Ut as findSelectedRange,Jo as flattenAnnotationPageIds,mn as formatTime,on as get3dStrategy,Se as getDefaultAnnotationStyles,nn as getImageStrategy,Jt as getManifestSequence,_o as getParsedTargetSelector,sn as getRenderingStrategy,rn as getTextualContentStrategy,an as getVideoStrategy,Gt as getVisibleCanvasesFromCanvasId,jt as hasAuth,ro as makeAccessServiceRequest,no as makeAccessTokenRequest,Yo as parseSpecificResource,Ct as svgThemes,Qo as unknownResponse,Uo as unsupportedStrategy,Ao as useAnnotation,zo as useAnnotationPage,se as useAnnotationPageManager,Ce as useAnnotationStyles,yi as useAnnotationsAtTime,uo as useAuthActions,go as useAuthService,mo as useAuthStore,ho as useAuthToken,po as useAuthTokens,T as useCanvas,Ii as useCanvasChoices,Pi as useCanvasClock,Zt as useCanvasSequence,Ei as useCanvasSubset,$o as useClosestLanguage,Hi as useCollection,Po as useContextBridge,Xo as useCreateLocaleString,fo as useCurrentAuth,wo as useDispatch,ae as useEventEmitter,Di as useEventListener,Ot as useExistingVault,Vi as useExternalCollection,$t as useExternalManifest,te as useExternalResource,Do as useIIIFLanguage,Q as useImage,He as useImageService,W as useImageServiceLoader,ji as useImageTile,co as useIsAuthEnabled,en as useLoadImageService,Vo as useLocaleString,q as useManifest,fn as useMediaActions,gn as useMediaElements,dn as useMediaState,tn as usePaintables,D as usePaintingAnnotations,Ie as usePolygonHelper,re as useRange,ln as useRenderingStrategy,A as useResourceContext,Lo as useResourceEvents,Zo as useResources,vo as useSearchService,be as useSelectorController,Sr as useSelectorEmitter,xe as useSelectorEvents,Cr as useSelectorHelper,un as useSimpleMediaPlayer,ie as useSimpleViewer,ra as useStyleHelper,Ho as useStyles,Re as useSvgEditor,le as useThumbnail,Fo as useTranslations,P as useVault,cn as useVaultEffect,z as useVaultSelector,Bo as useViewerPreset,Ro as useVirtualAnnotationPage,Eo as useVirtualAnnotationPageContext,ne as useVisibleCanvases};
1
+ import{$ as wo,A as to,Aa as tn,B as oo,Ba as ln,C as no,Ca as cn,D as ro,Da as le,E as io,Ea as mn,F as ao,Fa as un,G as so,Ga as dn,H as lo,Ha as fn,I as co,Ia as gn,J as mo,Ja as pn,K as uo,Ka as ce,L as fo,M as go,N as po,O as ho,P as yo,Q as vo,R as xo,S as bo,T as So,U as ie,V as Co,W as Io,X as ae,Y as ko,Z as Po,_ as To,a as Wt,aa as Ro,b as A,ba as Eo,c as B,ca as Mo,d as Dt,da as No,e as Ft,ea as Bo,f as Ot,fa as T,g as te,ga as Lo,h as $t,ha as Ho,i as Vt,ia as Ao,j as oe,ja as zo,k as P,ka as qo,l as z,la as Wo,m as Xt,ma as Do,n as ne,na as Fo,o as q,oa as Oo,p as Yt,pa as $o,q as _t,qa as Vo,r as Kt,ra as Xo,s as Qt,sa as N,t as Ut,ta as Jo,u as Gt,ua as se,v as Jt,va as Zo,w as re,wa as jo,x as Zt,xa as W,y as jt,ya as en,z as eo,za as D}from"./chunk-FMNC7JOX.js";import{a as Yo,b as _o,c as Ko,d as Qo,e as Uo,f as Go,g as on,h as nn,i as rn,j as an,k as sn}from"./chunk-DXFXJCXN.js";import{useCanvas as We}from"@atlas-viewer/atlas";import{forwardRef as De,useImperativeHandle as Fe}from"react";import{Fragment as Oe,jsx as me}from"react/jsx-runtime";var Sn=De(function({canvasId:t},o){let n=We(),i=se(t||n?.id),a=P();return Fe(o,()=>i,[t,n]),!n||i.enabledPageIds.length===0?null:me(Oe,{children:i.enabledPageIds.map(s=>me(ce.RenderAnnotationPage,{page:a.get(s)},s))})});import{useMemo as Xe}from"react";import{useMemo as $e}from"react";import{Fragment as Ve,jsx as C,jsxs as F}from"react/jsx-runtime";function O({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:i,emptyFallback:a,classes:s={},emptyMessage:l="No metadata available",emptyValueFallback:u="No value",emptyLabelFallback:m="",separator:c,tableFooter:f,tableHeader:x}){let y=$e(()=>{let p=(t||[]).reduce((g,b)=>[...g,...b.keys],[]),d={};for(let g of e){let b=g&&g.label?Object.values(g.label):[];for(let r of b)if(r&&r.length&&(p.indexOf(`metadata.${r[0]}`)!==-1||p.length===0)&&g){let S=`metadata.${r[0]}`;d[S]=d[S]?d[S]:[],d[S].push(g);break}}return d},[t,e]);return Object.keys(y).length===0&&n?C(Ve,{children:a})||C("div",{className:s.empty,children:l}):t&&t.length?F("table",{className:s.container,children:[x,C("tbody",{children:t.map((p,d)=>{let g=[];for(let b of p.keys)for(let r of y[b]||[])g.push(C(N,{enableDangerouslySetInnerHTML:i,defaultText:u,separator:c,children:r.value},d+"__"+b));return g.length===0?null:F("tr",{className:s.row,children:[C("td",{className:s.label,style:o?{minWidth:o}:{},children:C(N,{enableDangerouslySetInnerHTML:i,separator:c,defaultText:m,children:p.label})}),C("td",{className:s.value,children:g})]},d)})}),f]}):F("table",{className:s.container,children:[x,C("tbody",{children:e&&e.length?e.map((p,d)=>p?F("tr",{className:s.row,children:[C("td",{className:s.label,style:o?{minWidth:o}:{},children:C(N,{enableDangerouslySetInnerHTML:i,defaultText:u,separator:c,children:p.label})}),C("td",{className:s.value,children:C(N,{enableDangerouslySetInnerHTML:i,defaultText:u,separator:c,children:p.value})})]},d):null):null}),f]})}import{jsx as Ye}from"react/jsx-runtime";function Hn(e){let t=q(),o=T(),n=re(),i=Xe(()=>{let a=t?.metadata||[],s=o?.metadata||[],l=n?.metadata||[];return[...a,...s,...l]},[t,o,n]);return Ye(O,{metadata:i,...e})}import{useEffect as Ue,useState as Ge}from"react";import{createImageServiceRequest as _e,imageServiceRequestToString as Ke}from"@atlas-viewer/iiif-image-api";import{useMemo as Qe}from"react";function Q(e,t={},o=[]){return Qe(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let i=_e(e);return Ke({identifier:i.identifier,server:i.server,scheme:i.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:n||"default",prefix:i.prefix,originalPath:i.originalPath})},[...o])}import{jsx as $}from"react/jsx-runtime";function Je(e){let t=typeof e.src=="string"?e.src:e.src.id,o=W(),[n,i]=Ge(!1),a;if(t){let l=o.loadServiceSync({id:t});l&&(a=l)}!a&&!n&&o.loadService({id:t}).then(()=>{i(!0)});let s=Q(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return Ue(()=>()=>{i(!1)},[t]),s?$("img",{src:s,alt:e.alt,className:e.className,style:e.style}):$(Ze,{...e,fetchImageService:!1})}function Ze(e){if(e.fetchImageService)return $(Je,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=Q(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?$("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{jsx as je}from"react/jsx-runtime";function Gn(e){let t=q();return je(O,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as rt,useRef as it}from"react";import*as U from"react-lazy-load-image-component";import{getValue as et}from"@iiif/helpers/i18n";import{Fragment as ue,jsx as w,jsxs as nt}from"react/jsx-runtime";var{LazyLoadComponent:tt}=U||U.default;function de(e){let{size:t,visible:o,classes:n,canvasId:i,figure:a}=e,s=t?.width||128,l=t?.height||t?.width||128,u=w(ot,{...e}),m=w(tt,{threshold:300,style:{height:l,width:s},visibleByDefault:o,children:i?w(oe,{canvas:i,children:u}):u});return a?w("figure",{className:n?.figure,children:m}):m}function ot({fallback:e,size:t,classes:o,showLabel:n,alt:i,dereference:a=!1}){let s=T(),l=t?.width||128,u=t?.height||t?.width||128,m=i||et(s?.label)||"",c=le({width:l,height:u},a);return!c||c.type!=="fixed"?w(ue,{children:e}):nt(ue,{children:[w("div",{className:o?.imageWrapper,children:w("img",{className:o?.img,src:c.id,alt:m})}),n?w(N,{as:"figcaption",className:o?.label,children:s?.label}):null]})}import{jsx as L}from"react/jsx-runtime";function cr({flat:e,size:t,classes:o={},showLabel:n,figure:i,fallback:a}){let s=it(null),{items:l,sequence:u,currentSequenceIndex:m,setSequenceIndex:c}=ie(),f={row:o.selected?.row||o.row,item:o.selected?.item||o.item,figure:o.selected?.figure||o.figure,img:o.selected?.img||o.img,label:o.selected?.label||o.label,imageWrapper:o.selected?.imageWrapper||o.imageWrapper};rt(()=>{if(!s.current)return;let y=s.current.querySelector("[data-selected=true]");y&&y.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[m]);let x=[];for(let y of u){let I=[],p=u[m]===y;for(let d of y){let g=l[d];I.push(L("div",{className:p?f.item:o.item,children:L(de,{classes:p?f:o,canvasId:g.id,size:t,showLabel:n,figure:i,placeholder:L("div",{style:{height:128,width:128}}),fallback:a})},d))}if(e){x.push(I);continue}x.push(L("div",{onClick:d=>{c(u.indexOf(y))},"data-selected":p,className:p?f.row:o.row,children:I}))}return L("div",{ref:s,className:o.container,children:x})}import{Fragment as fe,jsx as R,jsxs as ge}from"react/jsx-runtime";var at={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function dr({helper:e,showShapes:t,state:o,enabled:n=at,classNames:i={},icons:a={}}){return ge(fe,{children:[t?ge(fe,{children:[n.draw&&R("button",{className:i.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!o.lineMode&&!o.selectedStamp&&t&&o.drawMode,children:a.DrawIcon||"Draw"}),n.polygon&&R("button",{className:i.button,"data-active":!o.lineMode&&!o.selectedStamp&&t&&!o.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),n.line&&R("button",{className:i.button,"data-active":o.lineMode&&!o.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),n.lineBox&&R("button",{className:i.button,"data-active":o.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),n.square&&R("button",{className:i.button,"data-active":o.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),n.triangle&&R("button",{className:i.button,"data-active":o.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),n.hexagon&&R("button",{className:i.button,"data-active":o.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,o.showBoundingBox&&n.delete&&R("button",{className:i.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}import{createContext as st,useCallback as pe,useContext as ye,useEffect as he,useMemo as G,useState as lt}from"react";import ve from"mitt";import{jsx as ct}from"react/jsx-runtime";var V=st(ve());V.displayName="SelectorHelper";function br({children:e}){return ct(V.Provider,{value:G(()=>ve(),[]),children:e})}function Sr(){return ye(V)}function xe(e){let t=be(),[o,n]=lt(!1);he(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),he(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let i=pe(s=>{t.emit("click",{selectorId:e,event:s})},[e,t]),a=pe(s=>{t.emit("hover",{selectorId:e,event:s})},[e,t]);return{controller:t,onClick:i,onHover:a,isHighlighted:o}}function be(){let e=ye(V);return G(()=>({withSelector(t){return{on(o,n){let i=a=>{a&&a.selectorId===t&&n(a)};return e.on(o,i),()=>{e.off(o,i)}},emit(o,n){e.emit(o,{...n,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Cr(){let e=be();return G(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(o,n){return e.withSelector(t).on(o,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(t){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(t,o){return e.on(t,o)}}),[e])}import{createContext as mt,useContext as ut,useMemo as dt}from"react";import{jsx as ft}from"react/jsx-runtime";function Se(){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 J=mt(Se());J.displayName="AnnotationStyle";function Ce(){return ut(J)}function Tr({theme:e,children:t}){let o=dt(()=>e||Se(),[e]);return ft(J.Provider,{value:o,children:t})}import{HTMLPortal as xt,useAtlas as bt}from"@atlas-viewer/atlas";import{useEffect as ke,useRef as E,useState as Pe}from"react";import{useEffect as gt,useMemo as pt,useState as ht}from"react";import{createHelper as yt}from"polygon-editor";function Ie(e,t,o){let[n,i]=ht({}),a=pt(()=>yt(e,o),[]);return gt(()=>(a.clock.start(t,i),()=>{a.clock.stop()}),[]),{state:n,helper:a}}import{createSvgHelpers as vt}from"polygon-editor";import{Fragment as Te,jsx as v,jsxs as we}from"react/jsx-runtime";var M=vt();function Re(e,t){let{image:o,currentShape:n,onChange:i,hideShapeLines:a}=e,s=E(),l=E(),u=E(),m=E(),c=E(),f=E(),x=E(),y=E(),[I,p]=Pe(null),[d,g]=Pe(!1),{helper:b,state:r}=Ie(n,(h,k)=>{M.updateTransitionBoundingBox(l.current,h,k),M.updateBoundingBoxPolygon(s.current,h,k),M.updateTransitionShape(f.current,h,k),M.updateClosestLinePointTransform(m.current,h,k),M.updateSelectBox(u.current,h,k),M.updatePointLine(x.current,h,k),M.updateDrawPreview(c.current,h,k,3),M.updateLineBox(y.current,h),p(h.transitionDirection),g(h.transitionRotate)},i);ke(()=>{b.setShape(n||null)},t),ke(()=>{let h=()=>{b.modifiers.reset()};return document.addEventListener("mouseleave",h),()=>{document.removeEventListener("mouseleave",h)}},[]);let S=we(Te,{children:[v("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:v("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),v("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:v("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),v("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:v("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),_=n?n.open?"polyline":"polygon":null,ee=!r.showBoundingBox&&r.closestPoint!==null&&r.actionIntentType==="select-point",Ae=r.actionIntentType==="add-open-point",ze=r.transitionIntentType==="split-line",K=r.transitioning&&r.selectedStamp&&r.transitionIntentType==="stamp-shape",qe=n&&_?we(Te,{children:[v(_,{fill:!r.transitioning&&r.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:K?0:2,stroke:a?"transparent":"#000",points:n.points.map(h=>h.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:r.showBoundingBox?void 0:"url(#dot)",markerMid:r.showBoundingBox?void 0:"url(#dot)",markerEnd:r.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),r.lineBoxMode&&r.actionIntentType==="close-line-box"?v("polygon",{fill:"rgba(255, 0, 0, .4)",ref:y,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,r.transitionIntentType==="draw-shape"&&r.transitioning?v("polyline",{ref:c,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!r.showBoundingBox&&r.selectedPoints&&r.selectedPoints.length?v("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:n.points.filter((h,k)=>r.selectedPoints?.includes(k)).map(h=>h.join(",")).join(" ")}):null,ee&&r.closestPoint!==null&&n.points[r.closestPoint]?v("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${n.points[r.closestPoint][0]},${n.points[r.closestPoint][1]}`}):null,!r.transitioning&&(r.actionIntentType==="add-open-point"||r.actionIntentType==="close-shape"||r.actionIntentType==="close-shape-line")?v("polyline",{stroke:"#000",ref:x,strokeWidth:r.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,r.hasClosestLine&&(!r.transitionIntentType||r.transitionIntentType==="split-line")?v("g",{ref:m,children:v("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,r.transitioning?v(_,{ref:f,fill:n.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:n.open?2:0}):null,r.transitioning&&r.transitionIntentType==="select-multiple-points"?v("rect",{ref:u,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,r.showBoundingBox?null:v("g",{name:"controls",children:!1}),r.showBoundingBox&&!K?v("polygon",{ref:s,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:b,state:r,isAddingPoint:Ae,isSplitting:ze,isStamping:K,isHoveringPoint:ee,transitionDirection:I,transitionRotate:d,defs:S,editor:qe}}import{useEffect as Z}from"react";import{createPortal as St}from"react-dom";import{Fragment as Ee,jsx as H,jsxs as X}from"react/jsx-runtime";var Ct=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function Me(e){let t=e.theme||Ct[0],o=bt(),{image:n}=e,{helper:i,defs:a,editor:s,state:l,transitionDirection:u,isSplitting:m,transitionRotate:c,isHoveringPoint:f,isAddingPoint:x,isStamping:y}=Re({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),I=r=>{i.pointer([[~~r.atlas.x,~~r.atlas.y]])};Z(()=>{let r=S=>{i.key.up(S.key)};return document.addEventListener("keyup",r),()=>{document.removeEventListener("keyup",r)}},[]),Z(()=>{let r=S=>{i.key.down(S.key)};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[]),Z(()=>{let r=[];return u&&r.push(`atlas-cursor-${u}`),l.actionIntentType==="cut-line"&&l.modifiers?.Shift&&r.push("atlas-cursor-cut"),(f||l.transitionIntentType==="move-shape"||l.transitionIntentType==="move-point")&&r.push("atlas-cursor-move"),x&&r.push("atlas-cursor-crosshair"),m&&r.push("atlas-cursor-copy"),c&&r.push("atlas-cursor-rotate"),l.transitionIntentType==="draw-shape"&&r.push("atlas-cursor-draw"),o?.canvas&&o.canvas.classList.add(...r),()=>{o?.canvas&&o.canvas.classList.remove(...r)}},[o?.canvas,x,f,m,l.modifiers?.Shift,l.actionIntentType,l.transitionIntentType,u,c]);let p=e.shape&&e.shape?.points.length===0,d=e.renderControls?e.renderControls(i,l,p):null,g=document.getElementById(e.controlsHtmlId||"atlas-controls"),b="shape";return H(Ee,{children:X("world-object",{height:n.height,width:n.width,onMouseMove:I,onMouseDown:i.pointerDown,onMouseUp:i.pointerUp,onMouseLeave:i.blur,children:[e.shape?X(Ee,{children:[H(b,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.outer}),H(b,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.inner})]}):null,X(xt,{relative:!0,interactive:!1,children:[H("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:X("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[H("defs",{children:a}),s]})}),g?St(d,g,"controls"):null]})]})})}import{jsx as Ne}from"react/jsx-runtime";function ti(e){let t=T(),o=e.annotationBucket,n=e.readOnly,i=e.id,{onClick:a,isHighlighted:s}=xe(e.id),l=Ce(),u=s?l.highlighted:l[o||"hidden"]||l.hidden;if(!t)return null;if(n){let m="shape",c=e.polygon,f=c.open;return c?Ne(m,{id:`shape-${i}`,points:c.points,open:f,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:u}):null}return Ne(Me,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{jsx as It}from"react/jsx-runtime";function ii({annotation:e,children:t}){return It(B,{value:{annotation:e},children:t})}import{jsx as kt}from"react/jsx-runtime";function ci({annotationPage:e,children:t}){return kt(B,{value:{annotationPage:e},children:t})}import{jsx as Pt}from"react/jsx-runtime";function fi({collection:e,children:t}){return Pt(B,{value:{collection:e},children:t})}function yi(e,t={}){return D(t)}import{useCanvas as Tt}from"@atlas-viewer/atlas";import{useEffect as wt,useMemo as j,useState as Rt}from"react";function Ii({canvasId:e}={}){let t=Tt(),o=ne(),n=j(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[i,a]=Rt({}),s=ae();wt(()=>{let m=c=>{let f=c.partOf.canvasId;f&&a(x=>({...x,[f]:c.choice}))};return s.on("choice-change",m),()=>{s.off("choice-change",m)}},[]);let l=j(()=>{let m=[];for(let c of n){let f=i[c];f&&m.push({canvasId:c,choice:f})}return m},[n,i]),u=j(()=>({makeChoice:(m,c)=>{s.emit("make-choice",{choiceId:m,...c})}}),[s]);return{choices:l,actions:u}}function Pi(e,t=!1){}function Ei(e){let o=A().manifest,n=e?e.map(i=>typeof i=="string"?i:i?.id):[];return z(i=>{let a=o?i.iiif.entities.Manifest[o]:void 0,s=a?.items||[];if(typeof e>"u")return s;let l=[];for(let u of a?.items||[])n.indexOf(u.id)!==-1&&l.push(u);return l},[n.join("/")])}import{useMemo as Et}from"react";function Hi(e,t=[]){let{id:o,selector:n}=e,i=A(),a=o||i.collection,s=z(l=>a?l.iiif.entities.Collection[a]:void 0,[a]);return Et(()=>{if(s)return n?n(s):s},[s,n,...t])}import{useEffect as Mt,useMemo as Nt}from"react";import{createEventsHelper as Bt}from"@iiif/helpers/events";function Di(e,t,o,n,i=[]){let a=P(),s=Nt(()=>Bt(a),[a]);Mt(()=>{let l=e;return l?(s.addEventListener(l,t,o,n),()=>{s.removeEventListener(l,t,o)}):()=>{}},[s,e,t,...i])}function Vi(e,t){let{id:o,isLoaded:n,error:i,resource:a,requestId:s,cached:l}=te(e,t);return{id:o,isLoaded:n,error:i,manifest:a,requestId:s,cached:l}}import{getImageServices as Be}from"@atlas-viewer/iiif-image-api";import{useEffect as Lt,useMemo as Le,useState as Y}from"react";function He({cacheKey:e}={}){let t=T(),o=D(),n=P(),i=W(),[a,s]=Y(void 0),[l,u]=Y(!1),[m,c]=Y("idle"),[f,x]=Y(void 0),y=t?t.id:"undefined",I=Le(()=>{try{if(t&&o.length){let d=o[0],g=n.get(d.body[0]),r=Be(g)[0];return r&&i.loadServiceSync({id:r.id||r["@id"],width:r.width||t.width,height:r.height||t.height})||void 0}}catch(d){console.error(d)}},[y,e,t]),p=m==="success"&&a?a:I;return Lt(()=>{(async()=>{try{if(t&&o.length){let d=o[0],g=n.get(d.body[0]),r=Be(g)[0];if(!r)return;u(!0),c("loading");try{let S=await i.loadService({id:r.id||r["@id"],width:r.width||t.width,height:r.height||t.height})||void 0;s(S),c("success"),u(!1)}catch(S){c("error"),x(S)}}}catch(d){c("error"),x(d)}})()},[y,e]),Le(()=>({data:p,isFetching:l,status:m,error:f}),[p,l,m,f])}function ji(){let e=He();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}import{createStylesHelper as Ht}from"@iiif/helpers/styles";import{useMemo as At}from"react";function ra(){let e=P();return At(()=>Ht(e),[e])}export*from"@iiif/helpers/annotation-targets";export{ii as AnnotationContext,ci as AnnotationPageContext,Tr as AnnotationStyleProvider,yo as Auth,lo as AuthProvider,io as AuthRContext,ao as AuthReactContext,so as AuthReactContextActions,Sn as CanvasAnnotations,oe as CanvasContext,ce as CanvasPanel,fi as CollectionContext,Hn as CombinedMetadata,To as ContextBridge,Me as CreateCustomShape,ko as EventsProvider,Ze as Image,jo as ImageServiceLoaderContext,bo as InnerViewerProvider,Wo as LanguageProvider,Oo as LanguageString,N as LocaleString,Vt as ManifestContext,Gn as ManifestMetadata,pn as MediaPlayerProvider,O as Metadata,ti as PolygonSelector,Yt as RangeContext,Io as ReactEventContext,Dt as ReactVaultContext,dr as RenderSvgEditorControls,B as ResourceProvider,Wt as ResourceReactContext,br as SelectorControllerProvider,cr as SequenceThumbnails,So as SimpleViewerProvider,xo as SimpleViewerReactContext,de as SingleCanvasThumbnail,qo as TranslationProvider,Ft as VaultProvider,No as ViewerPresetContext,Mo as VirtualAnnotationProvider,Xt as VisibleCanvasReactContext,oo as authDetailsForResource,eo as createAuthStateStore,to as createProbe,Co as defaultEmitter,Ko as emptyActions,Go as emptyStrategy,Kt as findAllCanvasesInRange,_t as findFirstCanvasFromRange,Qt as findManifestSelectedRange,Ut as findSelectedRange,Jo as flattenAnnotationPageIds,mn as formatTime,on as get3dStrategy,Se as getDefaultAnnotationStyles,nn as getImageStrategy,Jt as getManifestSequence,_o as getParsedTargetSelector,sn as getRenderingStrategy,rn as getTextualContentStrategy,an as getVideoStrategy,Gt as getVisibleCanvasesFromCanvasId,jt as hasAuth,ro as makeAccessServiceRequest,no as makeAccessTokenRequest,Yo as parseSpecificResource,Ct as svgThemes,Qo as unknownResponse,Uo as unsupportedStrategy,Ao as useAnnotation,zo as useAnnotationPage,se as useAnnotationPageManager,Ce as useAnnotationStyles,yi as useAnnotationsAtTime,uo as useAuthActions,go as useAuthService,mo as useAuthStore,ho as useAuthToken,po as useAuthTokens,T as useCanvas,Ii as useCanvasChoices,Pi as useCanvasClock,Zt as useCanvasSequence,Ei as useCanvasSubset,$o as useClosestLanguage,Hi as useCollection,Po as useContextBridge,Xo as useCreateLocaleString,fo as useCurrentAuth,wo as useDispatch,ae as useEventEmitter,Di as useEventListener,Ot as useExistingVault,Vi as useExternalCollection,$t as useExternalManifest,te as useExternalResource,Do as useIIIFLanguage,Q as useImage,He as useImageService,W as useImageServiceLoader,ji as useImageTile,co as useIsAuthEnabled,en as useLoadImageService,Vo as useLocaleString,q as useManifest,fn as useMediaActions,gn as useMediaElements,dn as useMediaState,tn as usePaintables,D as usePaintingAnnotations,Ie as usePolygonHelper,re as useRange,ln as useRenderingStrategy,A as useResourceContext,Lo as useResourceEvents,Zo as useResources,vo as useSearchService,be as useSelectorController,Sr as useSelectorEmitter,xe as useSelectorEvents,Cr as useSelectorHelper,un as useSimpleMediaPlayer,ie as useSimpleViewer,ra as useStyleHelper,Ho as useStyles,Re as useSvgEditor,le as useThumbnail,Fo as useTranslations,P as useVault,cn as useVaultEffect,z as useVaultSelector,Bo as useViewerPreset,Ro as useVirtualAnnotationPage,Eo as useVirtualAnnotationPageContext,ne as useVisibleCanvases};