react-iiif-vault 1.3.6 → 1.4.0

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