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