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