react-iiif-vault 1.5.10 → 2.0.1
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/bundle.d.ts +1015 -494
- package/dist/bundle.global.js +53 -86
- package/dist/canvas-panel.cjs +5 -5
- package/dist/canvas-panel.d.cts +8 -5
- package/dist/canvas-panel.d.ts +8 -5
- package/dist/canvas-panel.js +1 -1
- package/dist/chunk-5VWTU5L4.js +48 -0
- package/dist/{chunk-XNDN34SQ.js → chunk-OTG27VBE.js} +1 -1
- package/dist/index-CawyvZZf.d.cts +643 -0
- package/dist/index-yy_738ck.d.ts +643 -0
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +478 -378
- package/dist/index.d.ts +478 -378
- package/dist/index.js +1 -1
- package/dist/{useRenderingStrategy-BiuSDiXu.d.cts → useRenderingStrategy-PvoNjiMV.d.cts} +10 -10
- package/dist/{useRenderingStrategy-BiuSDiXu.d.ts → useRenderingStrategy-PvoNjiMV.d.ts} +10 -10
- package/dist/{utils-CvRzsfRK.d.cts → utils-BVhGgVd5.d.cts} +18 -18
- package/dist/{utils-C-h4SU3S.d.ts → utils-DyrEcegR.d.ts} +18 -18
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/package.json +6 -5
- package/dist/chunk-2ATWK7I4.js +0 -48
- package/dist/index-BJveLrlu.d.cts +0 -214
- package/dist/index-CrfymD6m.d.ts +0 -214
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
"use strict";var Va=Object.create;var Yt=Object.defineProperty;var La=Object.getOwnPropertyDescriptor;var za=Object.getOwnPropertyNames;var Oa=Object.getPrototypeOf,Ha=Object.prototype.hasOwnProperty;var Ba=(e,t)=>{for(var n in t)Yt(e,n,{get:t[n],enumerable:!0})},_t=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of za(t))!Ha.call(e,o)&&o!==n&&Yt(e,o,{get:()=>t[o],enumerable:!(r=La(t,o))||r.enumerable});return e},g=(e,t,n)=>(_t(e,t,"default"),n&&_t(n,t,"default")),Q=(e,t,n)=>(n=e!=null?Va(Oa(e)):{},_t(t||!e||!e.__esModule?Yt(n,"default",{value:e,enumerable:!0}):n,e)),Da=e=>_t(Yt({},"__esModule",{value:!0}),e);var p={};Ba(p,{AnnotationContext:()=>Ls,AnnotationPageContext:()=>zs,AnnotationStyleProvider:()=>Ms,Auth:()=>tr,AuthProvider:()=>Jn,AuthRContext:()=>Ne,AuthReactContext:()=>No,AuthReactContextActions:()=>Vo,CanvasAnnotations:()=>vs,CanvasContext:()=>re,CanvasPanel:()=>F,CanvasStrategyProvider:()=>Mr,CanvasWorldObject:()=>Er,CollectionContext:()=>Os,CombinedMetadata:()=>Ss,ComplexTimelineProvider:()=>Hr,ContextBridge:()=>sr,ControlsReactContext:()=>Lt,CreateCustomShape:()=>uo,CustomContextBridge:()=>Yo,CustomContextBridgeProvider:()=>Za,EventsProvider:()=>Xa,Image:()=>ga,ImageService:()=>Ns,ImageServiceLoaderContext:()=>Ji,InnerViewerProvider:()=>Fo,LanguageProvider:()=>cs,LanguageString:()=>Hi,LocaleString:()=>te,ManifestContext:()=>$n,ManifestMetadata:()=>Cs,MediaPlayerProvider:()=>Ht,Metadata:()=>$t,PolygonSelector:()=>Es,RangeContext:()=>Wn,ReactEventContext:()=>Ve,ReactVaultContext:()=>ve,Render3DModelStrategy:()=>Ur,RenderAccompanyingCanvas:()=>Qr,RenderAnnotationStrategy:()=>_r,RenderAudioStrategy:()=>jr,RenderComplexTimelineStrategy:()=>Dr,RenderEmptyStrategy:()=>Nr,RenderImageStrategy:()=>$r,RenderSvgEditorControls:()=>Ts,RenderTextualContentStrategy:()=>Fr,RenderVideoStrategy:()=>Xr,RenderYouTubeStrategy:()=>Zr,ResourceProvider:()=>W,ResourceReactContext:()=>mt,SelectorControllerProvider:()=>Is,SequenceThumbnails:()=>Ps,SimpleViewerProvider:()=>rr,SimpleViewerReactContext:()=>Je,SingleCanvasThumbnail:()=>to,StrategyReactContext:()=>Vt,ThumbnailFallbackImage:()=>We,TranslationProvider:()=>ss,TransliterationProvider:()=>ls,VaultProvider:()=>we,ViewerPresetContext:()=>oe,VirtualAnnotationProvider:()=>mr,VisibleCanvasReactContext:()=>Me,authDetailsForResource:()=>Gn,createAuthStateStore:()=>jn,createProbe:()=>Qn,defaultEmitter:()=>Wo,emptyActions:()=>vr,emptyStrategy:()=>Sr,findAllCanvasesInRange:()=>Qt,findFirstCanvasFromRange:()=>Io,findManifestSelectedRange:()=>qa,findSelectedRange:()=>Un,flattenAnnotationPageIds:()=>xr,formatTime:()=>hn,get3dStrategy:()=>Rr,getComplexTimelineStrategy:()=>Ar,getDefaultAnnotationStyles:()=>io,getImageStrategy:()=>Mt,getManifestSequence:()=>Gt,getParsedTargetSelector:()=>Pt,getRenderingStrategy:()=>Ir,getTextualContentStrategy:()=>Et,getVideoStrategy:()=>Nt,getVisibleCanvasesFromCanvasId:()=>$a,hasAuth:()=>Wa,makeAccessServiceRequest:()=>Yn,makeAccessTokenRequest:()=>Xt,parseSpecificResource:()=>Ja,svgThemes:()=>Ra,unknownResponse:()=>At,unsupportedStrategy:()=>E,useAnnotation:()=>bt,useAnnotationPage:()=>hr,useAnnotationPageManager:()=>It,useAnnotationStyles:()=>so,useAnnotationsAtTime:()=>Hs,useAuthActions:()=>Lo,useAuthService:()=>zo,useAuthStore:()=>Xe,useAuthToken:()=>_a,useAuthTokens:()=>Xn,useCanvas:()=>P,useCanvasChoices:()=>Bs,useCanvasClock:()=>Ds,useCanvasSequence:()=>_n,useCanvasStartTime:()=>Bt,useCanvasSubset:()=>Fs,useClosestLanguage:()=>Di,useCollection:()=>qs,useComplexTimeline:()=>ds,useContextBridge:()=>ar,useCreateLocaleString:()=>us,useCurrentAuth:()=>Ua,useCustomContextBridge:()=>ir,useDispatch:()=>cr,useEventEmitter:()=>St,useEventListener:()=>$s,useExistingVault:()=>ke,useExternalCollection:()=>Ws,useExternalManifest:()=>qn,useExternalResource:()=>ft,useIIIFLanguage:()=>yn,useImage:()=>Nn,useImageService:()=>po,useImageServiceLoader:()=>Ot,useImageTile:()=>Us,useIsAuthEnabled:()=>er,useLoadImageService:()=>kt,useLocaleString:()=>Fi,useManifest:()=>z,useMediaActions:()=>ps,useMediaElements:()=>gs,useMediaState:()=>fs,usePaintables:()=>br,usePaintingAnnotations:()=>Oe,usePolygonHelper:()=>co,useRange:()=>pt,useRenderControls:()=>_,useRenderingStrategy:()=>wr,useResourceContext:()=>$,useResourceEvents:()=>Ct,useResources:()=>Cr,useSearchService:()=>nr,useSelectorController:()=>oo,useSelectorEmitter:()=>ws,useSelectorEvents:()=>ro,useSelectorHelper:()=>ks,useSimpleMediaPlayer:()=>Be,useSimpleViewer:()=>vt,useStrategy:()=>V,useStyleHelper:()=>_s,useStyles:()=>ze,useSvgEditor:()=>lo,useThumbnail:()=>he,useTranslations:()=>Lr,useTransliteration:()=>Vr,useVault:()=>T,useVaultEffect:()=>qr,useVaultSelector:()=>w,useViewerPreset:()=>xt,useVirtualAnnotationPage:()=>lr,useVirtualAnnotationPageContext:()=>ur,useVisibleCanvases:()=>Ee});module.exports=Da(p);var Ye=require("react");var U=Q(require("react"),1),on=require("@atlas-viewer/atlas"),Jo=require("react-error-boundary");var ee=require("react");var je=Q(require("react"),1),yo=require("react/jsx-runtime"),Fa={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},mt=je.default.createContext(Fa),$=()=>(0,je.useContext)(mt);function W({value:e,children:t}){let n=$(),r=(0,je.useMemo)(()=>({...n,...e}),[e,n]);return(0,yo.jsx)(mt.Provider,{value:r,children:t})}var Kt=Q(require("react"),1),dt=require("@iiif/helpers/vault");var Fn=require("react/jsx-runtime"),ve=Kt.default.createContext({vault:null,setVaultInstance:e=>{}});function we({vault:e,vaultOptions:t,useGlobal:n,resources:r,children:o}){let[a,i]=(0,Kt.useState)(()=>e||(n?(0,dt.globalVault)(t):t?new dt.Vault(t):new dt.Vault));return(0,Fn.jsx)(ve.Provider,{value:{vault:a,setVaultInstance:i},children:(0,Fn.jsx)(W,{value:r||{},children:o})})}var Do=require("react"),Jt=require("react");var vo=require("@iiif/helpers/vault"),So=require("react");function ke(e){let t=(0,So.useContext)(ve);return e||(t&&t.vault?t.vault:(0,vo.globalVault)())}var Se=require("react");function ft(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,r=ke(),[o,a]=(0,Se.useState)(n),[i,s]=(0,Se.useState)(void 0),u=(0,Se.useMemo)(()=>r.get(n,{skipSelfReturn:!0})||void 0,[n,r]),[c,l]=(0,Se.useState)(u);return(0,Se.useEffect)(()=>{(async()=>{try{let d=u&&!t?u:await r.load(n),h=d?d.id||d["@id"]:null;d&&o!==h&&a(h),l(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!c,id:o,requestId:n,error:i,resource:c,cached:!!(c&&c===u)}}function qn(e,t){let{id:n,isLoaded:r,error:o,resource:a,requestId:i,cached:s}=ft(e,t);return{id:n,isLoaded:r,error:o,manifest:a,requestId:i,cached:s}}var xo=require("react/jsx-runtime");function $n({manifest:e,children:t}){return(0,xo.jsx)(W,{value:{manifest:e},children:t})}var Co=require("react/jsx-runtime");function re({canvas:e,children:t}){return(0,Co.jsx)(W,{value:{canvas:e},children:t})}var Ro=require("react"),Po=Q(require("react"),1);var bo=require("react"),T=()=>{let{vault:e}=(0,bo.useContext)(ve);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var jt=require("react");function w(e,t=[]){let n=T(),[r,o]=(0,jt.useState)(()=>e(n.getState(),n));return(0,jt.useEffect)(()=>n.subscribe(a=>e(a,n),a=>{o(a)},!1),t),r}var Me=Po.default.createContext([]);function Ee(){let e=(0,Ro.useContext)(Me);return w(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var Ao=require("react");function z(e={},t=[]){let{id:n,selector:r}=e,o=$(),a=T(),i=n||o.manifest,s=w(u=>i?u.iiif.entities.Manifest[i]:void 0,[i]);return(0,Ao.useMemo)(()=>{if(s)return r?r(s):s},[s,r,...t])}var To=require("react/jsx-runtime");function Wn({range:e,children:t}){return(0,To.jsx)(W,{value:{range:e},children:t})}function Io(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=Io(e,e.get(n));if(r)return r}}return null}function Qt(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(...Qt(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 qa(e,t,n){for(let r of t.structures){let o=Un(e,e.get(r),n);if(o)return o}return null}function Un(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=Un(e,e.get(r),n);if(a)return a}}return null}function $a(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"),u=s?!1:o.includes("continuous"),c=s||u?!1:o.includes("individuals"),l=i.includes("facing-pages"),d=i.includes("non-paged");if(l||d||c||r)return[{id:a.id,type:"Canvas"}];let[h,S]=Gt(e,t);if(u)return h;let v=h.findIndex(f=>f.id===n);if(v===-1)return[];for(let f of S)if(f.includes(v))return f.map(x=>h[x]);return[{id:a.id,type:"Canvas"}]}function Gt(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"),u=t.type==="Manifest"?t.items:Qt(e,t);if(i)return[u,[u.map((v,f)=>f)]];if(s||!a||n)return[u,u.map((v,f)=>[f])];let c=[],l=[],d=()=>{l.length&&(c.push([...l]),l=[])},h=0,S=!1;for(let v=0;v<u.length;v++){let f=e.get(u[v]);if(f.behavior.includes("non-paged")){v===h&&h++,r||(d(),c.push([v]),d());continue}if(v===h||f.behavior.includes("facing-pages")){l.length&&(S=!0),d(),c.push([v]),d();continue}if(l.push(v),S){d(),S=!1;continue}l.length>1&&d()}return l.length&&d(),[u,c]}var ae=require("react");var wo=require("react");function pt(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,wo.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...t])}function _n({startCanvas:e,disablePaging:t}){let n=T(),r=z(),o=pt(),[a,i]=(0,ae.useState)(void 0),s=o||r;if(!s)throw new Error("Nothing selected");let[u,c]=(0,ae.useMemo)(()=>Gt(n,s,{disablePaging:t}),[n,s,t]),l=(0,ae.useRef)(c);if(l.current!==c){let x=l.current[a][0],y=c.findIndex(C=>C.includes(x));l.current=c,i(y)}let d=(0,ae.useCallback)(f=>{let x=c.findIndex(y=>y.includes(f));i(x===-1?0:x)},[u,c]),h=(0,ae.useCallback)(f=>{let x=u.findIndex(y=>y.id===f);x!==-1?d(x):i(0)},[u,c]),S=(0,ae.useCallback)(()=>{i(f=>f>=c.length-1?f:f+1)},[c]),v=(0,ae.useCallback)(()=>{i(f=>f<=0?0:f-1)},[c]);return typeof a>"u"&&(e?h(e):i(0)),{visibleItems:c[a]?.map(f=>u[f].id)||[],cursor:a,items:u,sequence:c,hasPrevious:a>0,hasNext:a<c.length-1,setSequenceIndex:i,setCanvasIndex:d,setCanvasId:h,next:S,previous:v}}var ce=require("react"),Ge=require("zustand");var Kn=require("zustand/vanilla");function Wa(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function se(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 jn=()=>(0,Kn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let r=n.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:se(n.id,t().authItems,o=>({...o,isPending:!0}))})),Yn(n.service).then(()=>{Xt(r).then(o=>{let a=o.expiresIn,i=Date.now()+a*1e3;e(()=>({authItems:se(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:i}}))}))}).catch(o=>{e(()=>({authItems:se(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=${ko()}`,a=window.open(o);e(()=>({authItems:se(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:se(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");Xt(o).then(s=>{e(()=>({authItems:se(n.id,t().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:se(n.id,t().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:se(n.id,t().authItems,s=>({...s,isPending:!0}))})),Yn(a).then(()=>{Xt(o).then(s=>{e(()=>({authItems:se(n.id,t().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:se(n.id,t().authItems,u=>({...u,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(u=>u.service.id===n.id);i&&i.instances>1||(a=t().authItems.findIndex(c=>c.service.id!==n.id&&c.instances>0))}e(()=>({authItems:se(n.id,t().authItems,i=>({...i,instances:i.instances-1})),currentAuth:a}))}})),Qn=(e,t)=>(0,Kn.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 Gn(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 Xt(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 l=c.data;if(l.messageId===o){if(t&&l.type!=="AuthAccessToken2"){s(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){s(),r("Invalid response, expected accessToken");return}s(),n(l)}},s=()=>window.removeEventListener("message",i),u=document.createElement("iframe");u.src=a,u.style.display="none",document.body.appendChild(u),window.addEventListener("message",i)})}function ko(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 Yn(e){let t=`${e.id}?origin=${ko()}`,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 Qe=require("react");var Mo=require("zustand");function Eo(e){let t=(0,Qe.useMemo)(()=>Gn(e),[e]),n=Xn(t.services.access?.id),r=(0,Qe.useMemo)(()=>Qn(t.services.probe,n),[t.services.probe]),o=(0,Mo.useStore)(r);return(0,Qe.useEffect)(()=>{o.status==="unknown"&&!n&&o.probe()},[t.services.probe,o.status]),(0,Qe.useEffect)(()=>{n&&(o.setToken(n),o.probe())},[n]),[e,o,t.hasAuth]}var gt=require("react/jsx-runtime"),Ne=(0,ce.createContext)(null),No=(0,ce.createContext)(null);No.displayName="CurrentAuth";var Vo=(0,ce.createContext)(null);Vo.displayName="AuthActions";function Jn({children:e}){let t=(0,ce.useMemo)(()=>jn(),[]);return(0,gt.jsx)(Ne.Provider,{value:t,children:e})}function er(){return!!(0,ce.useContext)(Ne)}function Xe(){let e=(0,ce.useContext)(Ne);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Lo(){let e=Xe();return(0,Ge.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 Ua(){let e=Xe();return(0,Ge.useStore)(e,t=>t)}function zo(e){let t=Xe();return(0,Ge.useStore)(t,r=>r.authItems.find(o=>o.service.id===e))}function Xn(e){let t=Xe();return(0,Ge.useStore)(t,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function _a(e){let t=Xe();return(0,Ge.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 Ya(e){let t=Lo(),n=zo(e.service.id);return(0,ce.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Zn(){return null}function tr(e){let[t,n,r]=Eo(e.resource),o=e.fallbackComponent||Zn,a=e.loadingComponent||Zn,i=e.errorComponent||Zn,s=n.service,u=null;if(!r||!s)return e.children(t);let c=s.service.filter(l=>l.type==="AuthAccessService2");n.status==="error"&&(u=(0,gt.jsx)(i,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(u=(0,gt.jsx)(a,{})),n.status==="success"&&(u=e.children(t));for(let l of c)u=(0,gt.jsx)(Ya,{service:l,probeId:s.id,children:u},l.id);return u}var ht=require("react");var Oo=require("zustand/vanilla"),Ka=e=>e.id||e["@id"];function ja(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 Ho=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?Ka(t):void 0,r=null;return(0,Oo.createStore)((o,a)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!ja(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 u=new URLSearchParams;i.q&&u.set("q",i.q),i.motivation&&u.set("motivation",i.motivation),i.date&&u.set("date",i.date),i.user&&u.set("user",i.user),o({loading:!0}),fetch(`${n}?${u.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 l=await c.json();o({resources:l.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(u=>u["@id"]===i);o({highlight:s})},nextResult(){let i=a().resources,s=a().highlight;if(!s){o({highlight:i[0]||null});return}let u=i.findIndex(c=>c["@id"]===s["@id"]);if(u===-1){o({highlight:i[0]||null});return}o({highlight:i[u+1]||i[0]||null})},previousResult(){let i=a().resources,s=a().highlight;if(!s){o({highlight:i[i.length-1]||null});return}let u=i.findIndex(c=>c["@id"]===s["@id"]);if(u===-1){o({highlight:i[i.length-1]||null});return}if(u===0){o({highlight:i[i.length-1]||null});return}o({highlight:i[u-1]||i[i.length-1]||null})}}))};var Qa=require("zustand");function nr(){let e=z();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Zt=require("react/jsx-runtime"),Ze=(0,ht.createContext)(null);Ze.displayName="Search";function Bo(e){let t=nr();return e.store?(0,Zt.jsx)(Ze.Provider,{value:e.store,children:e.children}):(0,Zt.jsx)(Ga,{service:t,children:e.children})}function Ga({service:e,children:t}){let n=(0,ht.useMemo)(()=>Ho(e),[e]);return(0,Zt.jsx)(Ze.Provider,{value:n,children:t})}var G=require("react/jsx-runtime"),yt=()=>{},Je=(0,Jt.createContext)({setCurrentCanvasId:yt,setCurrentCanvasIndex:yt,nextCanvas:yt,previousCanvas:yt,items:[],sequence:[],setSequenceIndex:yt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Fo(e){let t=z(),{cursor:n,visibleItems:r,next:o,sequence:a,items:i,setCanvasIndex:s,setCanvasId:u,previous:c,setSequenceIndex:l,hasNext:d,hasPrevious:h}=_n({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),S=(0,Jt.useMemo)(()=>({sequence:a,items:i,setCurrentCanvasId:u,nextCanvas:o,previousCanvas:c,totalCanvases:i.length,setCurrentCanvasIndex:s,setSequenceIndex:l,currentSequenceIndex:n,hasNext:d,hasPrevious:h}),[a,i,u,o,c,i,s,l,n]);return t?r.length===0?null:(0,G.jsx)(Je.Provider,{value:S,children:(0,G.jsx)(Me.Provider,{value:r,children:(0,G.jsx)(re,{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 rr(e){let t=ke(e.vault),n=qn(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)(Fo,{...e,children:e.children});return(0,G.jsx)(we,{vault:t,children:(0,G.jsx)($n,{manifest:n.id,children:(0,G.jsx)(Jn,{children:(0,G.jsx)(Bo,{children:e.rangeId?(0,G.jsx)(Wn,{range:e.rangeId,children:r}):r})})})})}function vt(){return(0,Do.useContext)(Je)}var qo=Q(require("react"),1),en=require("react"),$o=Q(require("mitt"),1),Uo=require("react/jsx-runtime"),Wo=(0,$o.default)(),Ve=(0,en.createContext)({emitter:Wo});Ve.displayName="Events";function St(){return qo.default.useContext(Ve).emitter}function Xa({emitter:e,children:t}){return(0,Uo.jsx)(Ve.Provider,{value:(0,en.useMemo)(()=>({emitter:e}),[e]),children:t})}var _o=Q(require("react"),1),me=require("react/jsx-runtime"),or=_o.default.createContext({});function ir(){let e=(0,ee.useContext)(or),t=Object.keys(e),n={};for(let r of t)e[r].Provider&&(n[r]={value:(0,ee.useContext)(e[r]),Provider:e[r].Provider});return n}function Yo(e){let t=Object.keys(e),n=e.children;for(let r of t){if(r==="children")continue;let{value:o,Provider:a}=e[r];n=(0,me.jsx)(a,{value:o,children:n})}return n}function Za(e){let t=(0,ee.useContext)(or),n=(0,ee.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,me.jsx)(or.Provider,{value:n,children:e.children})}function ar(){return{VaultContext:(0,ee.useContext)(ve),ResourceContext:(0,ee.useContext)(mt),SimpleViewerReactContext:(0,ee.useContext)(Je),VisibleCanvasReactContext:(0,ee.useContext)(Me),AuthRContext:(0,ee.useContext)(Ne),SearchReactContext:(0,ee.useContext)(Ze),ReactEventContext:(0,ee.useContext)(Ve)}}function sr(e){return(0,me.jsx)(we,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,me.jsx)(Me.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,me.jsx)(Je.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,me.jsx)(Ve.Provider,{value:e.bridge.ReactEventContext,children:(0,me.jsx)(Ne.Provider,{value:e.bridge.AuthRContext,children:(0,me.jsx)(Ze.Provider,{value:e.bridge.SearchReactContext,children:e.custom?(0,me.jsx)(Yo,{...e.custom,children:e.children}):e.children})})})})})})}var et=require("react");var fe=require("react");var tn=require("@iiif/helpers/vault/actions");var Ko=require("react");function cr(){let t=T().getStore();return(0,Ko.useMemo)(()=>n=>t.dispatch(n),[t])}function jo(e){return typeof e!="string"&&e&&e.bindToVault}function lr(){let e=T(),t=(0,fe.useRef)([]),n=cr(),r=(0,fe.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,fe.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(tn.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[r]);let o=w(s=>r&&s.iiif.entities.AnnotationPage[r]||null,[r]),a=(0,fe.useCallback)((s,u)=>{if(r){if(jo(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"}),l=e.get({id:s,type:"Annotation"});c&&l&&(c.items.find(d=>d.id===l.id)||n(tn.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:u})))}},[r]),i=(0,fe.useCallback)(s=>{r&&(jo(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(tn.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[r]);return[o,{addAnnotation:a,removeAnnotation:i}]}var Go=require("react/jsx-runtime"),Qo=(0,et.createContext)(null);function ur(){let e=(0,et.useContext)(Qo);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function mr({children:e}){let[t,{addAnnotation:n,removeAnnotation:r}]=lr();return(0,Go.jsx)(Qo.Provider,{value:(0,et.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:r}),[t]),children:e})}var tt=require("react/jsx-runtime");function nn({width:e,style:t,height:n,error:r,resetErrorBoundary:o}){return(0,tt.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,tt.jsx)("h3",{children:"Error occurred"}),(0,tt.jsx)("p",{children:r.message}),(0,tt.jsx)("button",{type:"button",onClick:o,children:"Reset"})]})}var rn=require("react"),oe=(0,rn.createContext)(null);function xt(){return(0,rn.useContext)(oe)}var Le=require("react"),dr=(0,Le.createContext)(()=>{}),fr=(0,Le.createContext)(()=>{});function D(e,t,n,r,o=[]){let a=(0,Le.useContext)(e==="portal"?fr:dr);(0,Le.useEffect)(()=>(e!=="none"&&a(t,n,r),()=>{a(t,null)}),[t,e,a,...o])}var nt=require("react");var Xo=require("react");function P(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,Xo.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...t])}var pr=(0,nt.createContext)(()=>{});function Zo(e){let t=P(),n=(0,nt.useContext)(pr);(0,nt.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var O=require("react/jsx-runtime");function an({children:e,errorFallback:t,outerContainerProps:n={},worldScale:r,...o}){let[a,i]=(0,U.useState)(),s=ir(),u=ar(),c=t||nn,[l,d]=(0,U.useState)({}),h=Object.entries(l),[S,v]=(0,U.useState)({}),f=Object.entries(S),[x,y]=(0,U.useState)({}),C=(0,U.useMemo)(()=>r||Math.max(...Object.values(x)),[x]),m=(0,U.useMemo)(()=>({maxOverZoom:C||1,...o.runtimeOptions||{}}),[C,o.runtimeOptions]),b=(0,U.useCallback)((I,R)=>{y(B=>{if(R===-1){let{[I]:Ke,...k}=B;return k}return{...B,[I]:R}})},[]),A=(0,U.useCallback)((I,R,B)=>{d(({[I]:Ke,...k})=>R?{...k,[I]:{element:R,props:B}}:k)},[]),M=(0,U.useCallback)((I,R,B)=>{v(({[I]:Ke,...k})=>R?{...k,[I]:{element:R,props:B}}:k)},[]);return(0,O.jsxs)(Jo.ErrorBoundary,{resetKeys:[],fallbackRender:I=>(0,O.jsx)(c,{...o,...I}),children:[(0,O.jsx)(on.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,O.jsx)(O.Fragment,{children:h.map(([I,{element:R,props:B}])=>(0,O.jsx)(U.default.Fragment,{children:(0,O.jsx)(R,{...B||{}})},I))}),onCreated:I=>{i(I),o.onCreated&&o.onCreated(I)},runtimeOptions:m,children:(0,O.jsx)(oe.Provider,{value:a,children:(0,O.jsx)(pr.Provider,{value:b,children:(0,O.jsx)(dr.Provider,{value:A,children:(0,O.jsx)(fr.Provider,{value:M,children:(0,O.jsx)(sr,{bridge:u,custom:s,children:(0,O.jsx)(on.ModeContext.Provider,{value:o.mode||"explore",children:(0,O.jsx)(mr,{children:e})})})})})})})}),(0,O.jsx)("div",{children:f.map(([I,{element:R,props:B}])=>(0,O.jsx)(U.default.Fragment,{children:(0,O.jsx)(R,{...B||{}})},I))})]})}var sn=require("@atlas-viewer/atlas");var gr=require("react"),ei=require("@iiif/helpers/events");function Ct(e,t){let n=T(),r=(0,gr.useMemo)(()=>(0,ei.createEventsHelper)(n),[n]),o=w(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,gr.useMemo)(()=>e?r.getListenersAsProps(e,t):{},[o,e,n,t])}var ti=require("react"),ni=require("@iiif/helpers/styles");function ze(e,t){let n=T(),r=(0,ti.useMemo)(()=>(0,ni.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 ii=require("react");var ri=require("react");var oi=require("@iiif/helpers/annotation-targets");function bt(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]),u=w(c=>s&&s.body?s.body.map(l=>l?l.type==="SpecificResource"?{...l,source:a.get(l)}:l?c.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[s]);return(0,ri.useMemo)(()=>{if(!s)return;let c={...s,body:u,target:(0,oi.expandTarget)(s.target,{typeMap:a.getState().iiif.mapping})};return r?r(c):c},[s,r,u,...t])}var ai=require("react/jsx-runtime"),cn=({id:e,style:t,className:n,interactive:r})=>{let o=bt({id:e}),a=ze(o,"atlas"),i=ze(o,"html"),s=Ct(o,["atlas"]),u=P(),c=(0,ii.useMemo)(()=>(0,sn.mergeStyles)(t,a),[t,a]);return u&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===u.id||o.target.source===u.id)?(0,ai.jsx)(sn.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 ci=require("react");var si=require("react");function hr(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,si.useMemo)(()=>{if(i)return r?r(i):i},[i,...t])}var yr=require("react/jsx-runtime"),Rt=({className:e,page:t})=>{let n=hr({id:t.id})||t,r=ze(n,"atlas"),o=ze(n,"html");return w(a=>n.id?a.iiif.entities.AnnotationPage[n.id]:null,[]),(0,yr.jsx)(ci.Fragment,{children:n.items?.map(a=>(0,yr.jsx)(cn,{id:a.id,style:r,className:o?.className||e},a.id))})};var xe=require("react");var ot=require("react");var li=require("@iiif/helpers");function Ja(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function Pt(e,t){let{selector:n,source:r}=(0,li.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 vr={makeChoice:()=>{}},At={type:"unknown"},E=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Sr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Tt=require("react");function es(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function ui(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=es(n,a);i&&i.views&&i.views[e]&&r.push(a)}return r},[e,t])}function xr({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 ts(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function It(e,t={}){let n=T(),r=z(),o=P(),a=Ee(),i=(0,Tt.useMemo)(()=>xr({all:t.all,manifest:r,canvas:o,canvases:a}),[t.all,o,a,r]),s=ui(e,t.all?void 0:i),u=(0,Tt.useCallback)(l=>{e&&n.setMetaValue([l,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),c=(0,Tt.useCallback)((l,d={})=>{if(!e)return;let h=n.getState(),S=[];if(d?.deselectOthers){let v=Object.keys(h.iiif.entities.AnnotationPage);for(let f of v){let x=ts(h,f);x&&x.views&&x.views[e]&&S.push(f)}}for(let v of S)u(v);n.setMetaValue([l,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,u,n]);return{availablePageIds:i,enabledPageIds:s,setPageEnabled:c,setPageDisabled:u}}function Cr(e,t){return w((n,r)=>r.get(e.map(o=>({id:o,type:t}))),[e,t])}var hi=Q(require("mitt"),1),yi=require("react"),vi=require("zustand");var ln=Q(require("react"),1),mi=require("@iiif/helpers/image-service"),wt=require("zustand"),di=ln.default.createContext(mi.imageServices.store);di.displayName="ImageServicesHelper";function un(){return(0,ln.useContext)(di)}function fi(e){let t=un();return(0,wt.useStore)(t,({loaded:n})=>n[e])}function rt(){let e=un();return(0,wt.useStore)(e,({loadServiceSync:t})=>t)}function pi(){let e=un();return(0,wt.useStore)(e,({loaded:t})=>t)}function gi(){let e=un();return(0,wt.useStore)(e,({loadService:t})=>t)}var ns=(0,vi.createStore)((e,t)=>({loaded:{},setLoaded:(n,r="done")=>{e(o=>({loaded:{...o.loaded,[n]:r}}))}})),rs=(0,hi.default)();rs.on("loaded",e=>{ns.getState().setLoaded(e.imageServiceId)});function kt(){let e=rt(),t=pi();return[(0,yi.useCallback)((r,{height:o,width:a})=>r&&e(r,{height:o,width:a},!0),[e]),t]}var He=require("react");function Oe(e={}){let t=bt(),n=P(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 Si=require("@iiif/helpers/painting-annotations");function br(e,t=[]){let n=T(),r=(0,He.useMemo)(()=>(0,Si.createPaintingAnnotationsHelper)(n),[]),o=Oe({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,i]=(0,He.useState)(e?.defaultChoices||[]),s=(0,He.useMemo)(()=>r.getPaintables(o,a),[n,o,a,...t]),c={makeChoice:(0,He.useCallback)((l,{deselectOthers:d=!0,deselect:h=!1}={})=>{s.choice&&i(S=>{if(h){let f=S.filter(x=>x!==l);if(f.length===0){let x=s.items[0].resource.id;return x?[x]:[]}return f}if(d)return[l];let v=[...S];if(v.length===0&&s.items.length){let f=s.items[0].resource.id;f&&v.push(f)}return S.indexOf(l)!==-1?S:[...S,l]})},[s.choice])};return[s,c]}var os=["model/gltf-binary"];function Rr(e,t){let n=t.items[0],r=n.resource;return r.format?os.indexOf(r.format)===-1?E(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r,annotationId:n.annotationId,annotation:n.annotation}:E("Unknown format")}function xi(e,t){let n=t.items,r=n[0];if(n.length===0||!r)return E("No audio");if(!e.duration)return E("No duration on canvas");if(n.length>1)return E("Only one audio source supported");let o=r.resource;return o?"format"in o?{type:"media",media:{annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:o.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:o.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:E("Audio does not have format"):E("Unknown audio")}var Ci=require("@iiif/parser/image-3");var Pr=require("@iiif/helpers/annotation-targets");function Mt(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 E("No resource Identifier");let i;if(a.service){let f=(0,Ci.getImageServices)(a);f[0]&&(i=n(f[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[u,c]=Pt(e,o.target),l=e.id?.split("?")[0]||"";if(!(c.id===e.id||decodeURIComponent(c.id||"")===(e.id||"")||c.id===l||decodeURIComponent(c.id||"")===l))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,Pr.expandTarget)(o.resource):null;if(o.selector){let f=(0,Pr.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});f&&(h=f)}let S=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 v={id:a.id,type:"Image",annotationId:o.annotationId,annotation:o.annotation,width:Number(u||S?a.width:e.width),height:Number(u||S?a.height:e.height),service:i,sizes:i&&i.sizes?i.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:u&&u.type!=="PointSelector"?u:s,selector:S||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};r.push(v)}return{type:"images",image:r[0],images:r,choice:t.choice}}function bi(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=>bi(o,t,r))}return t}function Et(e,t){let n=[];return t.items.forEach(r=>{if(r.resource){let[o]=Pt(e,r.target);n.push({type:"Text",annotationId:r.annotationId,annotation:r.annotation,text:bi(r.resource),target:o})}}),{type:"textual-content",items:n}}var mn=require("@iiif/helpers"),is=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Nt(e,t,n){let r=t.items.filter(S=>S.type==="video"),o=r[0],a=!1;if(e.duration||(a=!0),r.length>1||!o)return E("Only one video source supported");let i=r[0]?.resource,s=!!(i.service||[]).find(S=>(S.profile||"").includes("youtube.com"));if(!s&&a)return E("Video does not have duration");if(!i)return E("Unknown video");if((!i.format||i.format==="text/html")&&!s)return E("Video does not have format");let u=[],c=n.get(e.annotations||[]);for(let S of c){let v=n.get(S.items||[]);for(let f of v)if((f.motivation?Array.isArray(f.motivation||"")?f.motivation:[f.motivation]:[]).includes("supplementing")){let y=n.get(f.body||[]);for(let C of y){let m=C;if(m.type==="Choice")for(let b of m.items){let A=n.get(b);A.format==="text/vtt"&&u.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else m.format==="text/vtt"&&u.push({id:m.id,type:"Text",format:"text/vtt",label:m.label,language:m.language})}}}let l={annotationId:o.annotationId,annotation:o.annotation,duration:e.duration,url:i.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},d=(0,mn.expandTarget)(o.target);d.selector&&d.selector.type==="TemporalBoxSelector"&&(l.target=d.selector);let{selector:h}=(0,mn.parseSelector)(o.selector);if(h===null){let S=l.target.temporal.startTime,f=(l.target.temporal.endTime||e.duration)-S;l.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:f}}}else h.type==="TemporalSelector"&&(l.selector=h);if(s){l.type="VideoYouTube";let S=i.id.match(is);if(!S[1])return E("Video is not known youtube video");l.youTubeId=S[1]}return{type:"media",media:l,annotations:{pages:[]},captions:u}}function Ar(e,t,n,r){let o={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},a={type:"complex-choice",items:[]};function i(c){c.choice&&(c.choice.type==="complex-choice"?a.items.push(...c.choice.items):a.items.push(c.choice))}for(let c of t.items){if(c.type==="image"){let l=Mt(e,{choice:null,allChoices:null,types:["image"],items:[c]},n);if(l.type==="images"){i(l),o.items.push(l.image);let d={id:l.image.annotationId,type:"enter",resourceType:"image",time:l.image.target?.temporal?.startTime||0};o.keyframes.push(d);let h={id:l.image.annotationId,type:"exit",resourceType:"image",time:l.image.target?.temporal?.endTime||e.duration||0};o.keyframes.push(h)}}if(c.type==="textualbody"){let l=Et(e,{choice:null,allChoices:null,types:["textualbody"],items:[c]});if(l.type==="textual-content"){i(l);let d=l.items[0];o.items.push(d);let h=d.target,S={id:d.annotationId,type:"enter",resourceType:"text",time:h.temporal?.startTime||0};o.keyframes.push(S);let v={id:d.annotationId,type:"exit",resourceType:"text",time:h.temporal?.endTime||e.duration||0};o.keyframes.push(v)}}if(c.type==="video"){let l=Nt(e,{choice:null,allChoices:null,types:["video"],items:[c]},r);if(l.type==="media"){i(l);let d=l.media;o.items.push(d);let h={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};o.keyframes.push(h);let S={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};o.keyframes.push(S)}}}o.keyframes.sort((c,l)=>c.time-l.time);let s=[],u=[];for(let c of o.keyframes){if(c.resourceType==="image"||c.resourceType==="text"){u.push(c);continue}if(c.type==="enter"){s.length===0&&(c.isPrime=!0),s.push(c),u.push(c);continue}if(c.type==="exit"&&(u.push(c),s=s.filter(l=>l.id!==c.id),s.length!==0)){let l=s[0],d={id:l.id,type:"change",isPrime:!0,resourceType:l.resourceType,time:c.time};u.push(d)}}return o.keyframes=u,a.items.length&&(o.choice=a),o}var dn={},Tr={get(e){return e},setMetaValue([e,t,n],r){let o=Tr.getResourceMeta(e,t),a=o?o[n]:void 0,i=typeof r=="function"?r(a):r;dn[e]={...dn[e]||{},[t]:{...(dn[e]||{})[t]||{},[n]:i}}},getResourceMeta:(e,t)=>{let n=dn[e];if(n)return t?n[t]:n},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(n=>n.json())},requestStatus(e){}};function Ir({canvas:e,paintables:t,supports:n,loadImageService:r,vault:o=Tr}){if(!e)return At;if(t.types.length===0)return n.indexOf("empty")!==-1?Sr(e.width,e.height):At;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?E("Complex timeline not supported"):Ar(e,t,r,o);let a=t.types[0];return a==="image"?n.indexOf("images")===-1?E("Image not supported"):Mt(e,t,r):a==="Model"||a==="model"?n.indexOf("3d-model")===-1?E("3D not supported"):Rr(e,t):a==="textualbody"?n.indexOf("textual-content")===-1?E("Textual content not supported"):Et(e,t):a==="sound"||a==="audio"?n.indexOf("media")===-1?E("Media not supported"):xi(e,t):a==="video"?n.indexOf("media")===-1?E("Media not supported"):Nt(e,t,o):At}function wr(e){let t=z(),n=P(),r=T(),o=St(),a=e?.emitter||o,[i,s]=kt(),{enabledPageIds:u}=It(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),c=Cr(u,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,h]=br(e,[s]);(0,ot.useEffect)(()=>{let v=f=>{h.makeChoice(f.choiceId,{deselectOthers:f.deselectOthers,deselect:f.deselect})};return a.on("make-choice",v),()=>{a.off("make-choice",v)}},[]);let S=(0,ot.useMemo)(()=>Ir({canvas:n,paintables:d,supports:l,loadImageService:i,vault:r}),[n,d,r,h.makeChoice]);return(0,ot.useEffect)(()=>{let v=d.allChoices,f={canvasId:n?.id,manifestId:t?.id};v&&a.emit("choice-change",{choice:v,partOf:f})},[n?.id,d.allChoices]),(0,ot.useMemo)(()=>S.type==="unknown"?[S,vr]:[{...S,annotations:{pages:c}},h],[S,c])}var fn=require("react"),Vt=(0,fn.createContext)(null);Vt.displayName="Strategy";function V(){let e=(0,fn.useContext)(Vt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ri=require("@iiif/helpers");var pn=require("react"),Lt=(0,pn.createContext)(null);Lt.displayName="Controls";function _(){let e=(0,pn.useContext)(Lt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var kr=require("react/jsx-runtime");function Mr({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:r,mediaControlsDeps:o,renderMediaControls:a,renderViewerControls:i,viewControlsDeps:s,renderComplexTimelineControls:u,complexTimelineControlsDeps:c,throwOnUnknown:l,children:d}){let h=P(),S=T(),v=(0,xe.useMemo)(()=>(0,Ri.createStylesHelper)(S),[S]),[f,x]=wr({strategies:e||["images"],defaultChoices:n?.map(({id:b})=>b)}),y="choice"in f?f.choice:void 0;if((0,xe.useEffect)(()=>{t&&t(x)},[f.annotations]),(0,xe.useEffect)(()=>{r&&r(y)},[y]),(0,xe.useEffect)(()=>{if(n)for(let b of n)typeof b.opacity<"u"&&v.applyStyles({id:b.id},"atlas",{opacity:b.opacity})},[n]),f.type==="unknown"&&l)throw new Error(f.reason||"Unknown strategy");let C=(0,xe.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:o||[],renderViewerControls:i,viewControlsDeps:s||[],renderComplexTimelineControls:u,complexTimelineControlsDeps:c||[]}),[o,a,i,s,u,c]),m=(0,xe.useMemo)(()=>({strategy:f,actions:x,choices:"choice"in f?f.choice:[]}),[f,h]);return(0,kr.jsx)(Lt.Provider,{value:C,children:(0,kr.jsx)(Vt.Provider,{value:m,children:d})})}var Pi=require("react");var Ai=require("react/jsx-runtime");function Er({x:e=0,y:t=0,keepCanvasScale:n,children:r}){let{strategy:o}=V(),a=P(),i=Ct(a,["deep-zoom"]),s=(0,Pi.useMemo)(()=>n?1:Math.max(1,...o.type==="images"?o.images.map(c=>(c.width||0)/c.target?.spatial.width):[]),[n,o]);Zo(s);let u=o.type==="images"?o.images.length:0;return a?(0,Ai.jsx)("world-object",{height:a.height,width:a.width,x:e,y:t,...i,children:r},`${a.id}/${o.type}/${u}`):null}var Ti=require("react/jsx-runtime");function gn({style:e}){let t=P();return!t||!t.height||!t.width?null:(0,Ti.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ii=require("react/jsx-runtime");function Nr({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=V();return n.type!=="empty"&&!t?null:(0,Ii.jsx)(gn,{style:e})}var Cn=require("react");var Mi=Q(require("mitt"),1);var L=require("react");function wi(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function as(e,t){switch(t.type){case"RESET":return t.state;case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function hn(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Be(e){let[t,n]=(0,L.useReducer)(as,wi(e.duration));(0,L.useEffect)(()=>{n({type:"RESET",state:wi(e.duration)})},[e.duration]);let r=(0,L.useRef)(null),o=(0,L.useRef)(null),a=(0,L.useRef)(null),i=(0,L.useRef)(!1),s=(0,L.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=hn(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]),u=(0,L.useCallback)(()=>{r.current&&(n({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),c=(0,L.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?u():l())},[s]),l=(0,L.useCallback)(()=>{r.current&&(r.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,L.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),h=(0,L.useCallback)(()=>{r.current&&(r.current.muted=!0,n({type:"MUTE"}))},[]),S=(0,L.useCallback)(()=>{r.current&&(r.current.muted=!1,n({type:"UNMUTE"}))},[]),v=(0,L.useCallback)(y=>{r.current&&(r.current.muted=!1,r.current.volume=y/100,n({type:"SET_VOLUME",volume:y}))},[]),f=(0,L.useCallback)(y=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(y*e.duration,e.duration)),s())},[]),x=(0,L.useCallback)(y=>{if(r.current){let C=typeof y=="function"?y(r.current.currentTime):y;r.current.currentTime=Math.max(0,Math.min(C,e.duration)),s()}},[]);return(0,L.useEffect)(()=>{let y=setInterval(()=>{s()},350);return()=>clearInterval(y)},[s,e.duration]),(0,L.useEffect)(()=>{let y=()=>{n({type:"FINISHED"})},C=r.current;return C?.addEventListener("ended",y),()=>C?.removeEventListener("ended",y)},[]),[{element:r,currentTime:o,progress:a},t,{play:u,pause:l,playPause:c,mute:h,unmute:S,toggleMute:d,setVolume:v,setDurationPercent:f,setTime:x}]}var Ei=require("zustand/vanilla");function ki({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 Ni({complexTimeline:e,startTime:t=0}){let n=(0,Mi.default)(),r={},o={progress:null,currentTime:null},a=0,i=null,s=0,u=null;function c(){let C=x.getState().visibleElements,m=r,b=[],A=Object.keys(m);for(let M of A){let I=m[M],R=C[M];I&&R&&b.push(I)}return b}function l(){return Object.keys(r).map(C=>r[C])}function d(y){o.currentTime&&(o.currentTime.innerHTML=hn(y),o.progress&&(o.progress.style.width=`${y/e.duration*100}%`))}let h=()=>{let y=x.getState(),C=y.currentPrime;if(!C)return;let m=r,b=y.visibleElements,A=Object.keys(m);for(let M of A){let I=m[M],R=b[M];if(I&&M!==C.id&&R){let B=s-R.time*1e3;Math.abs(s-R.time*1e3-I.currentTime*1e3)>300&&(I.currentTime=B/1e3)}}},S=(y=0)=>{let C=y-a,m=x.getState();if(m.isPlaying){let b=m.currentPrime;if(b){let R=r[b.id];R&&(R.paused?s+=C:s=(b.time+R.currentTime)*1e3)}else s+=C;let A=s/1e3;if(A>m.duration){x.getState().setTime(0),x.setState({isPlaying:!1}),v(),d(0);return}d(A);let[M,I]=ki({currentTime:A,currentKeyFrameIndex:m.nextKeyframeIndex,keyframes:m.complexTimeline.keyframes,targetTime:A});I.length&&m.applyKeyframes(M,I)}a=y,i=requestAnimationFrame(S)},v=()=>{i&&cancelAnimationFrame(i)},f=(y,C)=>{},x=(0,Ei.createStore)((y,C)=>({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:()=>{C().clockRunning||(S(),u=setInterval(h,500)),y({clockRunning:!0,clockStartRequests:C().clockStartRequests+1})},applyKeyframes(m,b){let A=C(),M={...A.visibleElements},I=A.currentPrime;for(let R of b)R.type==="enter"&&(M[R.id]=R,n.emit("complex-timeline.enter",{id:R.id})),R.type==="exit"&&(M[R.id]=null,n.emit("complex-timeline.exit",{id:R.id})),R.isPrime&&(I=R);y({nextKeyframeIndex:m,visibleElements:M,currentPrime:I})},stopClock:()=>{let m=C().clockStartRequests;if(m!==0){if(m===1){v(),u&&clearInterval(u),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:m-1})}},setElement:(m,b)=>{r[m]=b;let A=Object.keys(r),M=C().complexTimeline;f(b,m),M.items.filter(R=>R.type!=="Image"&&R.type!=="Text").every(R=>A.includes(R.annotationId))&&!C().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:M}),y({isReady:!0}))},removeElement:m=>{delete r[m]},mute(){for(let m of l())m.muted=!0;y({isMuted:!0})},unmute(){for(let m of l())m.muted=!1;y({isMuted:!1})},play(){if(!C().isPlaying){for(let b of c())b.play();y({isPlaying:!0})}},pause(){if(C().isPlaying){for(let b of c())b.pause();y({isPlaying:!1})}},playPause(){let m=C();m.isPlaying?m.pause():m.play()},setDurationPercent(m){let A=C().duration*m;C().setTime(A)},setTime(m){let b=C(),A=s/1e3,M=typeof m=="function"?m(A):m,I=b.nextKeyframeIndex;if(A>M){y({visibleElements:{},currentPrime:null});let ut=Object.keys(b.visibleElements);for(let Ut of ut)n.emit("complex-timeline.exit",{id:Ut});A=0,I=0}let[R,B]=ki({currentTime:A,currentKeyFrameIndex:I,keyframes:b.complexTimeline.keyframes,targetTime:M});b.applyKeyframes(R,B),s=M*1e3;let k=x.getState().visibleElements,ne=r,go=Object.keys(k);for(let ut of go){let Ut=k[ut];if(Ut){let ho=ne[ut];ho&&(ho.currentTime=(s-Ut.time*1e3)/1e3)}}d(M)},setVolume(m){for(let b of l())b.volume=Math.min(1,Math.max(0,m/100));y({volume:m})},toggleMute(){let m=C();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 C=x.getState(),m=y.id,b=r[m];b&&C.isPlaying&&b.play()}),n.on("complex-timeline.exit",y=>{let C=x.getState(),m=y.id,b=r[m];b&&(b.currentTime=0,b.pause())}),x.getState().setTime(t),{store:x,emitter:n}}var ji=require("@atlas-viewer/atlas");var zt=require("react");var $i=require("@atlas-viewer/atlas"),Wi=require("@iiif/parser/image-3");var ue=Q(require("react"),1),le=require("react/jsx-runtime"),Li=ue.default.createContext("en"),zi=ue.default.createContext({}),Oi=ue.default.createContext(null);function ss(e){return(0,le.jsx)(zi.Provider,{value:e.translations,children:e.children})}function cs(e){return(0,le.jsx)(Li.Provider,{value:e.language,children:e.children})}function ls(e){return(0,le.jsx)(Oi.Provider,{value:e.convert,children:e.children})}function Vr(){return ue.default.useContext(Oi)}function yn(){return ue.default.useContext(Li)}function Lr(){return ue.default.useContext(zi)}function Vi(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Hi({as:e,language:t,children:n,viewingDirection:r,...o}){let a=yn();return(0,ue.useMemo)(()=>Vi(a)===Vi(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 Bi(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 Di=(e,t=[])=>{let n=yn();return(0,ue.useMemo)(()=>{let r=e();return Bi(n,r,[])},[n,...t])};function De(e,t,n,r){return t?n?n(e[t]||t,r||"none"):e[t]||t:""}function Fi(e,t,n=`
|
|
2
|
-
`,r={}){let o=Vr(),a=Di(()=>Object.keys(e||{}),[e]);return[(0,ue.useMemo)(()=>{if(!e)return De(r,t,o)||"";if(typeof e=="string")return De(r,e,o);let i=a?e[a]:void 0;return i?typeof i=="string"?i:i.map(s=>De(r,s,o,a)).join(n):""},[a,t,e]),a]}function us(){let e=yn(),t=Lr(),n=Vr();return function(o,a="",i=`
|
|
3
|
-
`,s=t){let u=Object.keys(o||{}),c=Bi(e,u,[]);if(!o)return De(s,a,n)||"";if(typeof o=="string")return De(s,o,n);let l=c?o[c]:void 0;return l?typeof l=="string"?De(s,l,n,c):l.map(d=>De(s,d,n,c)).join(typeof i<"u"?i:`
|
|
4
|
-
`):""}}function te({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:r,separator:o,...a}){let i=Lr(),[s,u]=Fi(r,t,o,i);return u?(0,le.jsx)(Hi,{...a,as:e,language:u,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 qi=require("@iiif/parser/image-3"),vn=require("react"),Fe=require("react/jsx-runtime"),zr=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),r=e.tiles.imageService.sizes||[],o=e.enableThumbnail,a=e.enableSizes,i=(0,vn.useMemo)(()=>{let c=e.tiles.imageService.id||e.tiles.imageService["@id"];return c?.endsWith("/info.json")?c.slice(0,-1*10):c},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,vn.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let l=e.width,d=[1],h=1;for(;Math.pow(2,h)<l;)h=h*2,d.push(h);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,qi.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:d}]:[]}return c},[e.tiles.imageService,e.width]),u=(0,vn.useMemo)(()=>{let c=e.tiles.imageService;return(c?c["@context"]?Array.isArray(c["@context"])?c["@context"]:[c["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,Fe.jsx)("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,Fe.jsxs)("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[o&&e.tiles.thumbnail?(0,Fe.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,a&&r.map((c,l)=>(0,Fe.jsx)("world-image",{uri:`${i}/full/${c.width},${u?c.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:c.width,height:c.height},crop:e.crop},l)),s.map(c=>(c.scaleFactors||[]).map(l=>(0,Fe.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:c,scaleFactor:l,crop:e.crop,version3:u},`${e.tiles.imageService.id}-tile-${l}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var ie=require("react/jsx-runtime");function ms({resource:e,heading:t,note:n,extra:r}){return r?(0,ie.jsx)($i.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,ie.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,ie.jsxs)("div",{children:[(0,ie.jsx)(te,{children:t||"Not authorised"}),n&&(0,ie.jsx)("p",{children:(0,ie.jsx)(te,{children:n})}),(0,ie.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Ui({image:e,thumbnail:t,crop:n,enableSizes:r,enableThumbnail:o,renderOptions:a}){let i=er(),s=(0,Wi.getId)(e.service),u=fi(s),c=rt(),l=u?.service;c(e.service,e);let d=l&&u?.status==="done",h=(l?.preferredFormats||[])[0],S=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!i){let v=e.service,f=v.width||e.width||0,x=v.height||e.height||0;return(0,ie.jsx)(zr,{enableThumbnail:o,renderOptions:a,tiles:{id:v.id||v["@id"]||"unknown",height:x,width:f,imageService:v,thumbnail:S},enableSizes:r,x:0,y:0,format:h,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}return(0,ie.jsx)(tr,{resource:e.service,errorComponent:ms,extra:e,children:v=>{let f=v.width||e.width||0,x=v.height||e.height||0;return(0,ie.jsx)(zr,{enableThumbnail:o,renderOptions:a,tiles:{id:v.id||v["@id"]||"unknown",height:x,width:f,imageService:v,thumbnail:S},format:h,enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}},e.id)}var qe=require("react/jsx-runtime");function Ce({id:e,image:t,thumbnail:n,isStatic:r,x:o=0,y:a=0,children:i,selector:s,onClick:u,enableSizes:c}){let l=(0,zt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]);return(0,qe.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:u,children:t.service?(0,qe.jsxs)(zt.Fragment,{children:[(0,qe.jsx)(Ui,{image:t,thumbnail:n,crop:l,enableSizes:c}),i]},"service"):(0,qe.jsxs)(zt.Fragment,{children:[(0,qe.jsx)("world-image",{onClick:u,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:l}),i]},"no-service")},e+(t.service?"server":"no-service"))}var Br=require("zustand");var Sn=require("react"),_i=require("zustand"),Yi=require("react/jsx-runtime"),Or=(0,Sn.createContext)(null);Or.displayName="ComplexTimeline";function Hr({children:e,store:t}){return(0,Yi.jsx)(Or.Provider,{value:t,children:e})}function ds(e){let t=(0,Sn.useContext)(Or);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,_i.useStore)(t,e)}var Ki=require("@atlas-viewer/atlas");var pe=require("react/jsx-runtime");function xn({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)(Ki.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)(te,{enableDangerouslySetInnerHTML:!0,children:n.text})})},r)}))})}var ge=require("react/jsx-runtime");function Qi({strategy:e,children:t}){let{store:n}=(0,Cn.useMemo)(()=>Ni({complexTimeline:e}),[e]),r=(0,Br.useStore)(n,i=>i.isReady),o=(0,Br.useStore)(n,i=>i.visibleElements);function a(i){return s=>{s&&n.getState().setElement(i,s)}}return(0,Cn.useLayoutEffect)(()=>{if(r){let{startClock:i,stopClock:s}=n.getState();return i(),()=>{s()}}},[e,r]),D("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)(Ce,{image:i,id:i.annotationId},i.id)),e.items.map((i,s)=>i.type!=="Text"||!o[i.annotationId]?null:(0,ge.jsx)(xn,{strategy:{type:"textual-content",items:[i]}},s)),e.items.map((i,s)=>i.type!=="Video"||!i.target.spatial?null:(0,ge.jsx)(ji.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 Gi=require("react/jsx-runtime");function Dr(){let{strategy:e}=V(),{renderComplexTimelineControls:t}=_();return e.type!=="complex-timeline"?null:(0,Gi.jsx)(Qi,{strategy:e,children:t?t(e):null})}var it=require("react/jsx-runtime");function Fr({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=V(),{renderViewerControls:r,viewControlsDeps:o}=_(),a=xt(),i=P();return D(a&&n.type==="textual-content"&&r?"overlay":"none",`canvas-portal-controls-${i?.id}`,oe.Provider,r?{value:a||null,children:r(n)}:{},[i,a,n,...o||[]]),n.type!=="textual-content"?null:(0,it.jsxs)(it.Fragment,{children:[(0,it.jsx)(xn,{strategy:n,onClickPaintingAnnotation:e}),t]})}var be=require("react");var Xi=require("react"),qr=(e,t=[])=>{let n=T();(0,Xi.useEffect)(()=>{e(n)},[n,...t])};var bn=Q(require("react"),1),Zi=require("@iiif/helpers/image-service"),Ji=bn.default.createContext(new Zi.ImageServiceLoader);function Ot(){return(0,bn.useContext)(Ji)}var ea=require("@iiif/helpers/thumbnail");function he(e,t,{canvasId:n,manifestId:r}={}){let o=T(),a=Ot(),i=(0,be.useMemo)(()=>(0,ea.createThumbnailHelper)(o,{imageServiceLoader:a}),[o,a]),[s,u]=(0,be.useState)(),c=z(r?{id:r}:void 0),l=P(n?{id:n}:void 0),d=l||c,h=(0,be.useRef)(!1);if((0,be.useEffect)(()=>(h.current=!1,()=>{h.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return qr(S=>{i.getBestThumbnailAtSize(d,e,t).then(v=>{v.best&&!h.current&&u(v.best)})},[d]),s}var at=require("react/jsx-runtime");function $r({isStatic:e=!1,enableSizes:t=!1,onClickPaintingAnnotation:n,children:r}){let{strategy:o}=V(),{renderViewerControls:a,viewControlsDeps:i}=_(),s=P(),u=xt(),c=he({maxWidth:256,maxHeight:256});return D(u&&o.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${s?.id}`,oe.Provider,a?{value:u||null,children:a(o)}:{},[s,u,o,...i||[]]),o.type!=="images"?null:(0,at.jsxs)(at.Fragment,{children:[o.images.map((l,d)=>(0,at.jsx)(Ce,{isStatic:e,image:l,id:l.id,thumbnail:d===0?c:void 0,selector:l.selector,enableSizes:t,onClick:n?h=>{n(l.annotationId,l,h)}:void 0},l.id+d)),r]})}var Re=require("react/jsx-runtime");function Wr({model:e}){return(0,Re.jsxs)(Re.Fragment,{children:[(0,Re.jsx)("style",{children:`
|
|
1
|
+
"use strict";var Ls=Object.create;var So=Object.defineProperty;var zs=Object.getOwnPropertyDescriptor;var qs=Object.getOwnPropertyNames;var Bs=Object.getPrototypeOf,Os=Object.prototype.hasOwnProperty;var Hs=(e,t)=>{for(var o in t)So(e,o,{get:t[o],enumerable:!0})},vo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of qs(t))!Os.call(e,r)&&r!==o&&So(e,r,{get:()=>t[r],enumerable:!(n=zs(t,r))||n.enumerable});return e},S=(e,t,o)=>(vo(e,t,"default"),o&&vo(o,t,"default")),G=(e,t,o)=>(o=e!=null?Ls(Bs(e)):{},vo(t||!e||!e.__esModule?So(o,"default",{value:e,enumerable:!0}):o,e)),Ds=e=>vo(So({},"__esModule",{value:!0}),e);var v={};Hs(v,{AnnotationContext:()=>Fl,AnnotationPageContext:()=>$l,AnnotationStyleProvider:()=>wl,AtlasStoreProvider:()=>St,AtlasStoreReactContext:()=>Qe,Auth:()=>Ln,AuthProvider:()=>Nn,AuthRContext:()=>Ye,AuthReactContext:()=>yi,AuthReactContextActions:()=>vi,CanvasAnnotations:()=>Ml,CanvasContext:()=>ue,CanvasPanel:()=>W,CanvasStrategyProvider:()=>zr,CanvasWorldObject:()=>Or,CollectionContext:()=>Wl,CombinedMetadata:()=>El,ComplexTimelineProvider:()=>ur,ContextBridge:()=>to,ControlsReactContext:()=>_t,CreateCustomShape:()=>$r,CustomContextBridge:()=>Fa,CustomContextBridgeProvider:()=>fl,DefaultEditingTools:()=>Ga,EventEmitterProvider:()=>Js,EventsProvider:()=>pl,Image:()=>Ss,ImageService:()=>Vl,ImageServiceLoaderContext:()=>oa,InnerViewerProvider:()=>Ai,LanguageProvider:()=>sl,LanguageString:()=>ya,LocaleString:()=>se,ManifestContext:()=>Cn,ManifestMetadata:()=>zl,MediaPlayerProvider:()=>Wt,Metadata:()=>go,PolygonSelector:()=>kl,RangeContext:()=>bn,ReactEmitterContext:()=>Io,ReactEventContext:()=>at,ReactVaultContext:()=>ke,Render3DModelStrategy:()=>jn,RenderAccompanyingCanvas:()=>Qn,RenderAnnotation:()=>$t,RenderAnnotationEditing:()=>br,RenderAnnotationPage:()=>xt,RenderAnnotationStrategy:()=>tr,RenderAudioStrategy:()=>rr,RenderComplexTimelineStrategy:()=>dr,RenderEmptyStrategy:()=>pr,RenderImageStrategy:()=>fr,RenderSvgEditorControls:()=>Dl,RenderTextualContentStrategy:()=>gr,RenderVideoStrategy:()=>yr,RenderYouTubeStrategy:()=>vr,ResourceProvider:()=>ee,ResourceReactContext:()=>Nt,SelectorControllerProvider:()=>Al,SequenceThumbnails:()=>Ol,SimpleViewerProvider:()=>qn,SimpleViewerReactContext:()=>ht,SingleCanvasThumbnail:()=>Xr,StrategyReactContext:()=>Ve,ThumbnailFallbackImage:()=>ot,TranslationProvider:()=>al,TransliterationProvider:()=>ll,VaultProvider:()=>$e,ViewerPresetContext:()=>ve,VirtualAnnotationProvider:()=>er,VisibleCanvasReactContext:()=>We,annotationResponseToSelector:()=>nc,authDetailsForResource:()=>kn,createAtlasStore:()=>On,createAuthStateStore:()=>In,createProbe:()=>wn,defaultEmitter:()=>Ha,defaultSvgTheme:()=>za,emptyActions:()=>Rr,emptyStrategy:()=>Pr,findAllCanvasesInRange:()=>bo,findFirstCanvasFromRange:()=>di,findManifestSelectedRange:()=>$s,findSelectedRange:()=>Rn,flattenAnnotationPageIds:()=>Ar,formatTime:()=>Eo,get3dStrategy:()=>wr,getAtlasStoreByName:()=>Fn,getComplexTimelineStrategy:()=>Mr,getDefaultAnnotationStyles:()=>Yr,getImageStrategy:()=>co,getManifestSequence:()=>Ro,getParsedTargetSelector:()=>ro,getRenderingStrategy:()=>Nr,getTextualContentStrategy:()=>uo,getVideoStrategy:()=>mo,getVisibleCanvasesFromCanvasId:()=>Ws,hasAuth:()=>Us,isBoxSelector:()=>el,isRectangle:()=>yt,isSvgSelector:()=>wi,makeAccessServiceRequest:()=>An,makeAccessTokenRequest:()=>Po,parseSpecificResource:()=>gl,polygonToTarget:()=>vt,requestToAnnotationResponse:()=>Ht,seraliseSupportedSelector:()=>wo,svgThemes:()=>Pl,targetIntersects:()=>oc,unknownResponse:()=>io,unsupportedStrategy:()=>L,useAnnotation:()=>Ft,useAnnotationPage:()=>Wn,useAnnotationPageManager:()=>so,useAnnotationStyles:()=>Gr,useAnnotationsAtTime:()=>Ul,useAtlasContextMenu:()=>no,useAtlasStore:()=>V,useAuthActions:()=>Si,useAuthService:()=>xi,useAuthStore:()=>ft,useAuthToken:()=>Ys,useAuthTokens:()=>Mn,useCanvas:()=>P,useCanvasChoices:()=>_l,useCanvasClock:()=>Yl,useCanvasSequence:()=>Pn,useCanvasStartTime:()=>Ut,useCanvasSubset:()=>Kl,useClosestLanguage:()=>Sa,useCollection:()=>Gl,useComplexTimeline:()=>ml,useContextBridge:()=>eo,useContextMenuStore:()=>Ya,useCreateLocaleString:()=>cl,useCurrentAnnotationActions:()=>jl,useCurrentAnnotationMetadata:()=>Ql,useCurrentAnnotationRequest:()=>Cr,useCurrentAnnotationTransition:()=>Xl,useCurrentAuth:()=>_s,useCustomContextBridge:()=>Jt,useDispatch:()=>Xn,useEmitter:()=>Bn,useEvent:()=>je,useEventEmitter:()=>Xt,useEventListener:()=>Zl,useExistingVault:()=>_e,useExternalCollection:()=>Jl,useExternalManifest:()=>xn,useExternalResource:()=>Lt,useIIIFLanguage:()=>$o,useImage:()=>dn,useImageService:()=>ti,useImageServiceLoader:()=>Yt,useImageTile:()=>ec,useIsAuthEnabled:()=>Vn,useLoadImageService:()=>lo,useLocaleString:()=>xa,useManifest:()=>F,useMediaActions:()=>nl,useMediaElements:()=>rl,useMediaState:()=>ol,usePaintables:()=>Ir,usePaintingAnnotations:()=>st,usePolygonHelper:()=>Sr,useRange:()=>zt,useRenderControls:()=>te,useRenderingStrategy:()=>Vr,useRequestAnnotation:()=>Fr,useResourceContext:()=>j,useResourceEvents:()=>Dt,useResources:()=>Tr,useSearchService:()=>zn,useSelectorController:()=>_r,useSelectorEmitter:()=>Tl,useSelectorEvents:()=>Ur,useSelectorHelper:()=>Il,useSimpleMediaPlayer:()=>Ze,useSimpleViewer:()=>Ke,useStrategy:()=>O,useStyleHelper:()=>tc,useStyles:()=>Xe,useSvgEditor:()=>xr,useSvgEditorControls:()=>Zr,useThumbnail:()=>Ae,useTranslations:()=>ar,useTransliteration:()=>ir,useVault:()=>w,useVaultEffect:()=>or,useVaultSelector:()=>N,useViewerPreset:()=>Gt,useVirtualAnnotationPage:()=>Zn,useVirtualAnnotationPageContext:()=>Jn,useVisibleCanvases:()=>Ue});module.exports=Ds(v);S(v,require("@iiif/helpers/annotation-targets"),module.exports);var ct=require("react");var mt=G(require("react"),1),oi=require("react/jsx-runtime"),Fs={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Nt=mt.default.createContext(Fs),j=()=>(0,mt.useContext)(Nt);function ee({value:e,children:t}){let o=j(),n=(0,mt.useMemo)(()=>({...o,...e}),[e,o]);return(0,oi.jsx)(Nt.Provider,{value:n,children:t})}var ni=require("react/jsx-runtime");function ue({canvas:e,children:t}){return(0,ni.jsx)(ee,{value:{canvas:e},children:t})}var xo=G(require("react"),1),Vt=require("@iiif/helpers/vault");var Sn=require("react/jsx-runtime"),ke=xo.default.createContext({vault:null,setVaultInstance:e=>{}});function $e({vault:e,vaultOptions:t,useGlobal:o,resources:n,children:r}){let[a,i]=(0,xo.useState)(()=>e||(o?(0,Vt.globalVault)(t):t?new Vt.Vault(t):new Vt.Vault));return(0,Sn.jsx)(ke.Provider,{value:{vault:a,setVaultInstance:i},children:(0,Sn.jsx)(ee,{value:n||{},children:r})})}var ii=require("react"),ai=G(require("react"),1);var ri=require("react"),w=()=>{let{vault:e}=(0,ri.useContext)(ke);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Co=require("react");function N(e,t=[]){let o=w(),[n,r]=(0,Co.useState)(()=>e(o.getState(),o));return(0,Co.useEffect)(()=>o.subscribe(a=>e(a,o),a=>{r(a)},!1),t),n}var We=ai.default.createContext([]);function Ue(){let e=(0,ii.useContext)(We);return N(t=>e.map(o=>t.iiif.entities.Canvas[o]).filter(Boolean),[e])}var si=require("@iiif/helpers/vault"),li=require("react");function _e(e){let t=(0,li.useContext)(ke);return e||(t&&t.vault?t.vault:(0,si.globalVault)())}var ci=require("react");function F(e={},t=[]){let{id:o,selector:n}=e,r=j(),a=w(),i=o||r.manifest,s=N(l=>i?l.iiif.entities.Manifest[i]:void 0,[i]);return(0,ci.useMemo)(()=>{if(s)return n?n(s):s},[s,n,...t])}var Pi=require("react"),To=require("react");var Me=require("react");function Lt(e,{noCache:t=!1}={}){let o=typeof e=="string"?e:e.id,n=_e(),[r,a]=(0,Me.useState)(o),[i,s]=(0,Me.useState)(void 0),l=(0,Me.useMemo)(()=>n.get(o,{skipSelfReturn:!0})||void 0,[o,n]),[c,u]=(0,Me.useState)(l);return(0,Me.useEffect)(()=>{(async()=>{try{let d=l&&!t?l:await n.load(o),p=d?d.id||d["@id"]:null;d&&r!==p&&a(p),u(d)}catch(d){s(d)}})()},[o,t]),{isLoaded:!!c,id:r,requestId:o,error:i,resource:c,cached:!!(c&&c===l)}}function xn(e,t){let{id:o,isLoaded:n,error:r,resource:a,requestId:i,cached:s}=Lt(e,t);return{id:o,isLoaded:n,error:r,manifest:a,requestId:i,cached:s}}var ui=require("react/jsx-runtime");function Cn({manifest:e,children:t}){return(0,ui.jsx)(ee,{value:{manifest:e},children:t})}var mi=require("react/jsx-runtime");function bn({range:e,children:t}){return(0,mi.jsx)(ee,{value:{range:e},children:t})}function di(e,t){for(let o of t.items){if(o.type==="Canvas")return o;if(o.type==="SpecificResource")return o.source;if(o.type==="Range"){let n=di(e,e.get(o));if(n)return n}}return null}function bo(e,t){let o=[];for(let n of t.items)if(n.type==="SpecificResource"&&n.source?.type==="Canvas"&&(n.source.id.indexOf("#")!==-1?o.push({id:n.source.id.split("#")[0],type:"Canvas"}):o.push(n.source)),n.type==="Range"&&o.push(...bo(e,e.get(n))),n.type==="SpecificResource"){let r=typeof n.source=="string"?n.source:n.source.id;o.push({id:r,type:"Canvas"})}return o}function $s(e,t,o){for(let n of t.structures){let r=Rn(e,e.get(n),o);if(r)return r}return null}function Rn(e,t,o){for(let n of t.items){let r=n?.source?.id?.split("#")[0];if(n.type==="SpecificResource"&&n.source===o||n.type==="SpecificResource"&&n.source?.type==="Canvas"&&o===r)return t;if(n.type==="Range"){let a=Rn(e,e.get(n),o);if(a)return a}}return null}function Ws(e,t,o,n=!1){let r=t.behavior,a=o?e.get(o):null;if(!a)return[];let i=a.behavior,s=n?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),c=s||l?!1:r.includes("individuals"),u=i.includes("facing-pages"),d=i.includes("non-paged");if(u||d||c||n)return[{id:a.id,type:"Canvas"}];let[p,g]=Ro(e,t);if(l)return p;let x=p.findIndex(m=>m.id===o);if(x===-1)return[];for(let m of g)if(m.includes(x))return m.map(C=>p[C]);return[{id:a.id,type:"Canvas"}]}function Ro(e,t,{disablePaging:o,skipNonPaged:n}={}){let r=t.behavior,a=r.includes("paged"),i=a?!1:r.includes("continuous"),s=a||i?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:bo(e,t);if(i)return[l,[l.map((x,m)=>m)]];if(s||!a||o)return[l,l.map((x,m)=>[m])];let c=[],u=[],d=()=>{u.length&&(c.push([...u]),u=[])},p=0,g=!1;for(let x=0;x<l.length;x++){let m=e.get(l[x]);if(m.behavior.includes("non-paged")){x===p&&p++,n||(d(),c.push([x]),d());continue}if(x===p||m.behavior.includes("facing-pages")){u.length&&(g=!0),d(),c.push([x]),d();continue}if(u.push(x),g){d(),g=!1;continue}u.length>1&&d()}return u.length&&d(),[l,c]}var pe=require("react");var pi=require("react");function zt(e={},t=[]){let{id:o,selector:n}=e,r=j(),a=o||r.range,i=N(s=>a?s.iiif.entities.Range[a]:void 0,[a]);return(0,pi.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}function Pn({startCanvas:e,disablePaging:t}){let o=w(),n=F(),r=zt(),[a,i]=(0,pe.useState)(void 0),s=r||n;if(!s)throw new Error("Nothing selected");let[l,c]=(0,pe.useMemo)(()=>Ro(o,s,{disablePaging:t}),[o,s,t]),u=(0,pe.useRef)(c);if(u.current!==c){let C=u.current[a][0],y=c.findIndex(f=>f.includes(C));u.current=c,i(y)}let d=(0,pe.useCallback)(m=>{let C=c.findIndex(y=>y.includes(m));i(C===-1?0:C)},[l,c]),p=(0,pe.useCallback)(m=>{let C=l.findIndex(y=>y.id===m);C!==-1?d(C):i(0)},[l,c]),g=(0,pe.useCallback)(()=>{i(m=>m>=c.length-1?m:m+1)},[c]),x=(0,pe.useCallback)(()=>{i(m=>m<=0?0:m-1)},[c]);return typeof a>"u"&&(e?p(e):i(0)),{visibleItems:c[a]?.map(m=>l[m].id)||[],cursor:a,items:l,sequence:c,hasPrevious:a>0,hasNext:a<c.length-1,setSequenceIndex:i,setCanvasIndex:d,setCanvasId:p,next:g,previous:x}}var ge=require("react"),pt=require("zustand");var Tn=require("zustand/vanilla");function Us(e){let t=e.service||e.services||[];for(let o of t)if(o.type==="AuthProbeService2")return!0;return!1}function fe(e,t,o){let n=t.findIndex(i=>i.service.id===e);if(n===-1)return t;let r=[...t],a=o(r[n]);return a===r[n]?t:(r[n]=a,r)}var In=()=>(0,Tn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let o=t().authItems[t().currentAuth];if(!o||o.isPending||o.isLoggedIn)return;if(o.type!=="active")throw new Error("Cannot login to non-active service");let n=o.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!n)throw new Error("Token service not found");e(()=>({authItems:fe(o.id,t().authItems,r=>({...r,isPending:!0}))})),An(o.service).then(()=>{Po(n).then(r=>{let a=r.expiresIn,i=Date.now()+a*1e3;e(()=>({authItems:fe(o.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:i}}))}))}).catch(r=>{e(()=>({authItems:fe(o.id,t().authItems,a=>({...a,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let o=t().authItems[t().currentAuth];if(!o||o.isPending||!o.isLoggedIn)return;if(o.type!=="active")throw new Error("Cannot logout of non-active service");let n=o.service.service.find(i=>i.type==="AuthLogoutService2");if(!n)return;let r=`${n.id}?origin=${fi()}`,a=window.open(r);e(()=>({authItems:fe(o.id,t().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let o=t().authItems.length,n=t().currentAuth+1;n>=o||e(()=>({currentAuth:n}))},previousAuth:()=>{let o=t().currentAuth-1;o<0||e(()=>({currentAuth:o}))},setAuth:o=>{o!==-1&&(o<0||o>=t().authItems.length)||e(()=>({currentAuth:o}))},addService:(o,n)=>{if(!o.service)return;let r=o.service.find(s=>s.type==="AuthAccessTokenService2"),a=o;if(t().authItems.find(s=>s.service.id===o.id)){e(()=>({authItems:fe(o.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:a.profile==="active"?0:t().currentAuth,authItems:[{id:o.id,type:o.profile,service:o,probeId:n,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),o.profile==="external"){if(!r)throw new Error("Token service not found");Po(r).then(s=>{e(()=>({authItems:fe(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:fe(o.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(o.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:fe(o.id,t().authItems,s=>({...s,isPending:!0}))})),An(a).then(()=>{Po(r).then(s=>{e(()=>({authItems:fe(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:fe(o.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}o.profile},removeService:(o,n)=>{let r=t().currentAuth===t().authItems.findIndex(i=>i.service.id===o.id),a=t().currentAuth;if(r){let i=t().authItems.find(l=>l.service.id===o.id);i&&i.instances>1||(a=t().authItems.findIndex(c=>c.service.id!==o.id&&c.instances>0))}e(()=>({authItems:fe(o.id,t().authItems,i=>({...i,instances:i.instances-1})),currentAuth:a}))}})),wn=(e,t)=>(0,Tn.createStore)((o,n)=>({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(!n().service)return;let r=n().service?.id;if(!r){o({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}o({status:"probing"});let a=n().token;try{let i=await fetch(r,{headers:a?{Authorization:`Bearer ${n().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(i.status===200)o({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");o({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)o({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){o({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){o({token:r})}}));function kn(e){let t=e.service||e.services||[],o={hasAuth:!1,services:{}};for(let n of t)if(n.type==="AuthProbeService2"){o.services.probe=n,o.hasAuth=!0;let r=n.service.filter(a=>a.type==="AuthAccessService2");r[0]&&(o.services.access=r[0])}return o}async function Po(e,{strict:t=!0}={}){return new Promise((o,n)=>{let r=Math.random().toString(36).substring(7),a=`${e.id}?messageId=${r}&origin=${window.location.origin}`,i=c=>{let u=c.data;if(u.messageId===r){if(t&&u.type!=="AuthAccessToken2"){s(),n("Invalid response, expected type=AuthAccessToken2");return}if(!u.accessToken){s(),n("Invalid response, expected accessToken");return}s(),o(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 fi(e){let t=window.location;if(e){let o=document.createElement("a");return o.href=e,o.protocol+"//"+o.hostname+(o.port?":"+o.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function An(e){let t=`${e.id}?origin=${fi()}`,o=window.open(t);if(!o)throw new Error("Failed to open window");return new Promise((n,r)=>{let a=setInterval(()=>{o.closed&&(clearInterval(a),n())},500)})}var dt=require("react");var gi=require("zustand");function hi(e){let t=(0,dt.useMemo)(()=>kn(e),[e]),o=Mn(t.services.access?.id),n=(0,dt.useMemo)(()=>wn(t.services.probe,o),[t.services.probe]),r=(0,gi.useStore)(n);return(0,dt.useEffect)(()=>{r.status==="unknown"&&!o&&r.probe()},[t.services.probe,r.status]),(0,dt.useEffect)(()=>{o&&(r.setToken(o),r.probe())},[o]),[e,r,t.hasAuth]}var qt=require("react/jsx-runtime"),Ye=(0,ge.createContext)(null),yi=(0,ge.createContext)(null);yi.displayName="CurrentAuth";var vi=(0,ge.createContext)(null);vi.displayName="AuthActions";function Nn({children:e}){let t=(0,ge.useMemo)(()=>In(),[]);return(0,qt.jsx)(Ye.Provider,{value:t,children:e})}function Vn(){return!!(0,ge.useContext)(Ye)}function ft(){let e=(0,ge.useContext)(Ye);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Si(){let e=ft();return(0,pt.useStore)(e,o=>({login:o.login,logout:o.logout,nextAuth:o.nextAuth,previousAuth:o.previousAuth,setAuth:o.setAuth,addService:o.addService,removeService:o.removeService}))}function _s(){let e=ft();return(0,pt.useStore)(e,t=>t)}function xi(e){let t=ft();return(0,pt.useStore)(t,n=>n.authItems.find(r=>r.service.id===e))}function Mn(e){let t=ft();return(0,pt.useStore)(t,n=>n.authItems.find(r=>r.id===e)?.session?.token)}function Ys(e){let t=ft();return(0,pt.useStore)(t,n=>{let r=n.authItems.find(a=>a.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function Ks(e){let t=Si(),o=xi(e.service.id);return(0,ge.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),o?(o.error||!o.isLoggedIn,e.children):null}function En(){return null}function Ln(e){let[t,o,n]=hi(e.resource),r=e.fallbackComponent||En,a=e.loadingComponent||En,i=e.errorComponent||En,s=o.service,l=null;if(!n||!s)return e.children(t);let c=s.service.filter(u=>u.type==="AuthAccessService2");o.status==="error"&&(l=(0,qt.jsx)(i,{resource:e.resource,error:o.error||"",heading:o.errorHeading,note:o.errorNote,extra:e.extra})),(o.status==="unknown"||o.status==="probing")&&(l=(0,qt.jsx)(a,{})),o.status==="success"&&(l=e.children(t));for(let u of c)l=(0,qt.jsx)(Ks,{service:u,probeId:s.id,children:l},u.id);return l}var Bt=require("react");var Ci=require("zustand/vanilla"),Gs=e=>e.id||e["@id"];function js(e){return(Array.isArray(e.service)?e.service:[e.service]).find(o=>o.profile==="http://iiif.io/api/search/0/autocomplete"||o.profile==="http://iiif.io/api/search/1/autocomplete"||o.profile==="AutoCompleteService1")}var bi=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 o=t?Gs(t):void 0,n=null;return(0,Ci.createStore)((r,a)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!js(t):!1,errorMessage:"",search(i,s={}){if(!o)throw new Error("No search service found.");n&&!n.signal.aborted&&n.abort(),n=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),r({loading:!0}),fetch(`${o}?${l.toString()}`,{signal:n.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async c=>{if(!n?.signal.aborted)if(c.ok){let u=await c.json();r({resources:u.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(i){let s=a().resources.find(l=>l["@id"]===i);r({highlight:s})},nextResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[0]||null});return}let l=i.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:i[0]||null});return}r({highlight:i[l+1]||i[0]||null})},previousResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[i.length-1]||null});return}let l=i.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:i[i.length-1]||null});return}if(l===0){r({highlight:i[i.length-1]||null});return}r({highlight:i[l-1]||i[i.length-1]||null})}}))};var Qs=require("zustand");function zn(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Ao=require("react/jsx-runtime"),gt=(0,Bt.createContext)(null);gt.displayName="Search";function Ri(e){let t=zn();return e.store?(0,Ao.jsx)(gt.Provider,{value:e.store,children:e.children}):(0,Ao.jsx)(Xs,{service:t,children:e.children})}function Xs({service:e,children:t}){let o=(0,Bt.useMemo)(()=>bi(e),[e]);return(0,Ao.jsx)(gt.Provider,{value:o,children:t})}var re=require("react/jsx-runtime"),Ot=()=>{},ht=(0,To.createContext)({setCurrentCanvasId:Ot,setCurrentCanvasIndex:Ot,nextCanvas:Ot,previousCanvas:Ot,items:[],sequence:[],setSequenceIndex:Ot,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Ai(e){let t=F(),{cursor:o,visibleItems:n,next:r,sequence:a,items:i,setCanvasIndex:s,setCanvasId:l,previous:c,setSequenceIndex:u,hasNext:d,hasPrevious:p}=Pn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=(0,To.useMemo)(()=>({sequence:a,items:i,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:c,totalCanvases:i.length,setCurrentCanvasIndex:s,setSequenceIndex:u,currentSequenceIndex:o,hasNext:d,hasPrevious:p}),[a,i,l,r,c,i,s,u,o]);return t?n.length===0?null:(0,re.jsx)(ht.Provider,{value:g,children:(0,re.jsx)(We.Provider,{value:n,children:(0,re.jsx)(ue,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,re.jsx)("div",{children:"Sorry, something went wrong."}))}function qn(e){let t=_e(e.vault),o=xn(e.manifest);if(!o)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,re.jsx)("div",{children:"Sorry, something went wrong."});if(o.error)return(0,re.jsx)("div",{children:o.error.toString()});if(!o.isLoaded)return(0,re.jsx)("div",{children:"Loading..."});let n=(0,re.jsx)(Ai,{...e,children:e.children});return(0,re.jsx)($e,{vault:t,children:(0,re.jsx)(Cn,{manifest:o.id,children:(0,re.jsx)(Nn,{children:(0,re.jsx)(Ri,{children:e.rangeId?(0,re.jsx)(bn,{range:e.rangeId,children:n}):n})})})})}function Ke(){return(0,Pi.useContext)(ht)}var Ei=require("@atlas-viewer/atlas"),be=require("react"),Ni=require("zustand");var Ti=G(require("mitt"),1),Ge=require("react"),Ii=require("react/jsx-runtime"),Zs=(0,Ti.default)(),Io=(0,Ge.createContext)(Zs);function Js({children:e,emitter:t}){return(0,Ii.jsx)(Io.Provider,{value:t,children:e})}function Bn(){return(0,Ge.useContext)(Io)}function je(e,t,o=[]){let n=(0,Ge.useContext)(Io);(0,Ge.useEffect)(()=>{let r=a=>{t(a)};return n.on(e,r),()=>{n.off(e,r)}},[n,e,...o])}var ki=require("polygon-editor"),Mi=require("zustand/vanilla");function yt(e){let t=Math.max(...e.map(a=>a[0])),o=Math.min(...e.map(a=>a[0])),n=Math.max(...e.map(a=>a[1])),r=Math.min(...e.map(a=>a[1]));for(let a of e)if(a[0]!==o&&a[0]!==t&&a[1]!==r&&a[1]!==n||a[0]<o||a[0]>t||a[1]<r||a[1]>n)return!1;return!0}function Ee(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(a=>a[0])),o=Math.min(...e.points.map(a=>a[1])),n=Math.max(0,...e.points.map(a=>a[0])),r=Math.max(0,...e.points.map(a=>a[1]));return{x:t,y:o,width:n-t,height:r-o}}return null}function wi(e){return e.type==="SvgSelector"}function el(e){return e.type==="BoxSelector"}function wo(e,t){if(wi(e)){let i=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:s,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${l}" width="${s}" height="${l}"><${i?"polygon":"polyline"} points="${e.points.map(u=>u.join(",")).join(" ")}" /></svg>`}}return{type:"SvgSelector",value:`<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g><path d='M${e.points.map(s=>s.join(",")).join(" ")}${i?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:o,y:n,width:r,height:a}=e.spatial||{};return!r||!a?null:{type:"FragmentSelector",value:`xywh=${~~o},${~~n},${~~r},${~~a}`}}function vt(e,t){if(!e||!e.points.length)return null;if(yt(e.points)){let o=e.points.map(l=>l[0]),n=e.points.map(l=>l[1]),r=Math.min(...o),a=Math.min(...n),i=Math.max(...o)-r,s=Math.max(...n)-a;return wo({type:"BoxSelector",spatial:{x:r,y:a,width:i,height:s}},t)}return wo({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function Ht(e){if(e.type==="polygon"&&!e.noBox&&e.points&&yt(e.points)){let o=Ee({open:!1,points:e.points||[]});return Ht({...e,type:"box",selector:o})}if(e.type==="polygon"||e.type==="draw")return{polygon:{points:e.points||[],open:e.open||!1},requestType:e.type,boundingBox:Ee({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:vt({points:e.points||[],open:!1},e.bounds)};let t=e.selector;if(t){let o=[[t.x,t.y],[t.x+t.width,t.y],[t.x+t.width,t.y+t.height],[t.x,t.y+t.height]];return{polygon:{points:o,open:!1},requestType:e.type,boundingBox:t,metadata:{},target:vt({points:o,open:!1},e.bounds),arguments:e.arguments||{}}}return{polygon:{points:[],open:!1},requestType:e.type,boundingBox:null,target:null,metadata:{},arguments:e.arguments||{}}}var tl={shapeId:null,noShape:!0,transitioning:!1,actionIntentType:null,transitionIntentType:null,selectedPoints:[],hasClosestLine:!1,lastCreationTool:null,modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:0},bounds:null,showBoundingBox:!1,currentModifiers:{},validIntentKeys:{},pointerInsideShape:!1,closestPoint:null,transitionModifiers:null,selectedStamp:null,bezierLines:[],boxMode:!1,fixedAspectRatio:!1,cursor:"",enabledTools:["pointer","pen","box","lineBox","stamp","hand","line","pencil"],canDelete:!0,canDeselect:!0,isToolSwitchingLocked:!1,currentTool:"box",snapEnabled:!1,snapToPoints:!1,snapToLines:!1,snapToIntersections:!1,snapToGrid:!1,snapToParallel:!1};function On({events:e,enabledTools:t,keyboardShortcutMapping:o,keyboardShortcutsEnabled:n=!1,debug:r}){let a=(0,Mi.createStore)((s,l)=>{let c=null,d=(0,ki.createHelper)({emitter:e,keyboardShortcutsEnabled:n,keyboardShortcutMapping:o,enabledTools:t,customSetState:p=>{r&&console.log("partial state",p),s(g=>({polygonState:{...g.polygonState,...p}}))}},p=>{s(g=>g.tool.requestId?{polygon:{...p,id:g.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",p)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},requestType:null,requests:{},history:d.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:d,polygonState:tl,setMetadata:(p,g)=>{let x=g||l().tool.requestId;x&&s(m=>({metadata:{...m.metadata,[x]:{...m.metadata[x]||{},...p}}}))},setToolCanvasId:p=>{s(g=>({tool:{...g.tool,canvasId:p}}))},switchTool:{pointer(){s({mode:"sketch"}),i.tools.setTool("pointer")},hand(){s({mode:"explore"}),i.tools.setTool("hand")},draw(){s({mode:"sketch"}),i.tools.setTool("pencil")},pen(){s({mode:"sketch"}),i.tools.setTool("pen")},line(){s({mode:"sketch"}),i.tools.setTool("line")},lineBox(){s({mode:"sketch"}),i.tools.setTool("lineBox")},box(){s({mode:"sketch"}),i.tools.setTool("box")},triangle(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.triangle()},hexagon(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.hexagon()},circle(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.circle()},remove(){let p=l();p.tool.requestId&&(d.setShape({points:[],open:!0}),p.cancelRequest(p.tool.requestId))}},reset:()=>{let p=l();p.tool.requestId&&p.cancelRequest(p.tool.requestId)},setPolygonState:p=>s({polygonState:typeof p=="function"?p(l().polygonState):p}),getRequestId:()=>{let p=Math.random().toString(36).slice(2);return s(g=>({validRequestIds:[...g.validRequestIds,p]})),{requestId:p,clear:()=>{l().tool.requestId,s(g=>({tool:g.tool.requestId===p?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(x=>x!==p)}))}}},cancelRequest:p=>{let g=p||l().tool.requestId;g&&(s(x=>({mode:"explore",tool:x.tool.requestId===g?{enabled:!1,requestId:null,canvasId:null}:x.tool,validRequestIds:x.validRequestIds.filter(m=>m!==g)})),e.emit("atlas.request-cancelled",{id:g}))},requestAnnotation:async(p,g)=>{let m={...l().requests,[g.requestId]:p},C=Ht(p);r&&console.log("requestAnnotation",{response:C,request:p});try{let{points:y=[],open:f=!0}=C.polygon||{},{requestId:h,canvasId:b=null,toolId:R}=g,A=R,E=l(),T=E.validRequestIds.includes(h),z=C.requestType;return r&&console.log("setting points",{requestType:z,points:y,open:f}),!T||E.tool.enabled?null:(d.setShape({id:h,points:y,open:f}),z==="polygon"&&(A=A||"pen",d.tools.setTool("pen")),z==="draw"&&(A=A||"draw",d.tools.setTool("pencil")),z==="box"&&(A=A||"box",d.tools.setTool("box")),z==="target"?(A=A||"box",d.tools.setTool("box"),d.lockAspectRatio(),d.tools.lockToolSwitching(),d.tools.setCanDeselect(!1),d.tools.setCanDelete(!1)):(d.tools.unlockToolSwitching(),d.tools.setCanDeselect(!0),d.tools.setCanDelete(!0)),p.bounds&&d.setBounds(p.bounds),e.emit("atlas.annotation-request",{id:h}),s({polygon:{id:h,points:y,open:f},mode:"sketch",requestType:z,tool:{enabled:!0,requestId:h,canvasId:b},requests:m}),A?E.switchTool[A]?.():y.length===0&&E.switchTool.box(),(typeof p.selectByDefault>"u"&&y.length&&z==="box"||p.selectByDefault)&&E.switchTool.pointer(),new Promise(ce=>{let M=q=>{q.id===h&&(s(B=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(B.requests).filter(([J])=>J!==h))})),e.off("atlas.request-cancelled",M),e.off("atlas.annotation-completed",I),ce(null))},I=q=>{q.id===h&&(s(B=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(B.requests).filter(([J])=>J!==h))})),e.off("atlas.annotation-completed",I),e.off("atlas.request-cancelled",M),ce(q))};e.on("atlas.request-cancelled",M),e.on("atlas.annotation-completed",I)}))}catch(y){return console.error(y),null}},completeRequest:p=>{let g=l().tool.requestId;if(typeof p=="string"&&p&&p!==g)return;let x=g?l().requests[g]?.arguments||{}:{},m=g?l().metadata[g]||{}:{},C=l().polygonState.bounds,y=l().polygon;y&&(e.emit("atlas.annotation-completed",{id:y.id,polygon:y,requestType:l().requestType,target:vt(y,C),canvasId:l().tool.canvasId,boundingBox:Ee(y),metadata:m,arguments:{...x}}),d.setShape(null))},setAtlasRuntime:p=>{c=p,e.emit("atlas.ready",{runtime:p}),i.setScale(1/c._lastGoodScale),c.world.addLayoutSubscriber((g,x)=>{(g==="event-activation"||g==="zoom-to"||g==="go-home")&&c?._lastGoodScale&&!Number.isNaN(c._lastGoodScale)&&i.setScale(1/c._lastGoodScale)})},clearAtlasRuntime:()=>{c=null,s({stableViewport:null})},setCanvasRelativePosition:(p,g)=>{s(x=>({canvasRelativePositions:{...x.canvasRelativePositions,[p]:g}}))},clearCanvasRelativePosition:p=>{s(g=>{let x={...g.canvasRelativePositions};return delete x[p],{canvasRelativePositions:x}})},changeMode:p=>{s({mode:p})},nudgeLeft:()=>{},nudgeRight:()=>{},nudgeUp:()=>{},nudgeDown:()=>{},zoomIn:()=>{c?.world?.zoomIn()},zoomOut:()=>{c?.world?.zoomOut()},goHome:()=>{c?.world?.goHome()}}}),i=a.getState().polygons;return e.on("atlas.annotation-request",()=>{i.clock.start((s,l,c)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:c})},s=>{typeof s=="object"?a.setState({polygonState:s}):a.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{i.clock.stop()}),e.on("atlas.request-cancelled",()=>{i.clock.stop()}),a}var Dn=require("react/jsx-runtime"),Qe=(0,be.createContext)(null);function V(){return(0,be.useContext)(Qe)}var Hn={};function Fn(e="atlas"){return Hn[e]?.getState()}function St({children:e,name:t="atlas",existing:o,atlasStoreConfig:n}){let r=Bn(),a=(0,be.useContext)(Qe),i=(0,be.useMemo)(()=>o||a||On({events:r,...n||{}}),[r,o,a]),s=(0,Ni.useStore)(i,l=>l.mode);return(0,be.useEffect)(()=>{let l=t;return l&&(Hn[l]=i),()=>{l&&delete Hn[l]}},[i,t]),(0,Dn.jsx)(Qe.Provider,{value:i,children:(0,Dn.jsx)(Ei.ModeContext.Provider,{value:s||"explore",children:e})})}var ko=require("@atlas-viewer/atlas");var $n=require("react"),Vi=require("@iiif/helpers/events");function Dt(e,t){let o=w(),n=(0,$n.useMemo)(()=>(0,Vi.createEventsHelper)(o),[o]),r=N(()=>e&&e.id?o.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,$n.useMemo)(()=>e?n.getListenersAsProps(e,t):{},[r,e,o,t])}var Li=require("react"),zi=require("@iiif/helpers/styles");function Xe(e,t){let o=w(),n=(0,Li.useMemo)(()=>(0,zi.createStylesHelper)(o),[o]);return N(()=>{if(!e)return null;let r=n.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var Hi=require("react");var qi=require("react");var Bi=require("@iiif/helpers/annotation-targets");function Ft(e={},t=[]){let{id:o,selector:n}=e,r=j(),a=w(),i=o||r.annotation,s=N(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),l=N(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,qi.useMemo)(()=>{if(!s)return;let c={...s,body:l,target:(0,Bi.expandTarget)(s.target,{typeMap:a.getState().iiif.mapping})};return n?n(c):c},[s,n,l,...t])}var Oi=require("react");function P(e={},t=[]){let{id:o,selector:n}=e,r=j(),a=o||r.canvas,i=N(s=>a?s.iiif.entities.Canvas[a]:void 0,[a]);return(0,Oi.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}var Di=require("react/jsx-runtime"),$t=({id:e,style:t,className:o,interactive:n})=>{let r=Ft({id:e}),a=Xe(r,"atlas"),i=Xe(r,"html"),s=Dt(r,["atlas"]),l=P(),c=(0,Hi.useMemo)(()=>(0,ko.mergeStyles)(t,a),[t,a]);return l&&r&&r.target&&r.target.selector&&r.target.selector.type==="BoxSelector"&&r.target.source&&(r.target.source.id===l.id||r.target.source===l.id)?(0,Di.jsx)(ko.RegionHighlight,{id:r.id,isEditing:!0,region:r.target.selector.spatial,style:c,className:i?.className||o,interactive:!!(i?.href||n),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...s}):null};var $i=require("react");var Fi=require("react");function Wn(e={},t=[]){let{id:o,selector:n}=e,r=j(),a=o||r.annotationPage,i=N(s=>a?s.iiif.entities.AnnotationPage[a]:void 0,[a]);return(0,Fi.useMemo)(()=>{if(i)return n?n(i):i},[i,...t])}var Un=require("react/jsx-runtime"),xt=({className:e,page:t})=>{let o=Wn({id:t.id})||t,n=Xe(o,"atlas"),r=Xe(o,"html");return N(a=>o.id?a.iiif.entities.AnnotationPage[o.id]:null,[]),(0,Un.jsx)($i.Fragment,{children:o.items?.map(a=>(0,Un.jsx)($t,{id:a.id,style:n,className:r?.className||e},a.id))})};var Ne=require("react"),Mo=require("react/jsx-runtime"),Wi=(0,Ne.createContext)(null),Ui=(0,Ne.createContext)(null),_i=(0,Ne.createContext)(null);function ol(){let e=(0,Ne.useContext)(Wi);if(!e)throw new Error("Ctx not found");return e}function nl(){let e=(0,Ne.useContext)(Ui);if(!e)throw new Error("Ctx not found");return e}function rl(){let e=(0,Ne.useContext)(_i);if(!e)throw new Error("Ctx not found");return e}function Wt({actions:e,state:t,children:o,currentTime:n,progress:r,element:a}){return(0,Mo.jsx)(_i.Provider,{value:{currentTime:n,progress:r,element:a},children:(0,Mo.jsx)(Ui.Provider,{value:e,children:(0,Mo.jsx)(Wi.Provider,{value:t,children:o})})})}var Yi=require("react");var Ki=require("@iiif/helpers");function Ut(){let e=F(),t=P();return(0,Yi.useMemo)(()=>{if(!e||!t||!e.start)return null;let o=(0,Ki.expandTarget)(e.start);return!o||o.source.id!==t.id||!o||!o.selector||o.selector.type!=="TemporalSelector"?null:o.selector.temporal},[e,t])}var D=require("react");function Gi(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function il(e,t){switch(t.type){case"RESET":return t.state;case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function Eo(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Ze(e){let[t,o]=(0,D.useReducer)(il,Gi(e.duration));(0,D.useEffect)(()=>{o({type:"RESET",state:Gi(e.duration)})},[e.duration]);let n=(0,D.useRef)(null),r=(0,D.useRef)(null),a=(0,D.useRef)(null),i=(0,D.useRef)(!1),s=(0,D.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Eo(n.current.currentTime),a.current&&(a.current.style.width=`${n.current.currentTime/e.duration*100}%`),i.current!==n.current.muted&&(i.current=n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,D.useCallback)(()=>{n.current&&(o({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{o({type:"PLAY"})}),s())},[s]),c=(0,D.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?l():u())},[s]),u=(0,D.useCallback)(()=>{n.current&&(n.current.pause(),o({type:"PAUSE"}),s())},[s]),d=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),p=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!0,o({type:"MUTE"}))},[]),g=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!1,o({type:"UNMUTE"}))},[]),x=(0,D.useCallback)(y=>{n.current&&(n.current.muted=!1,n.current.volume=y/100,o({type:"SET_VOLUME",volume:y}))},[]),m=(0,D.useCallback)(y=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(y*e.duration,e.duration)),s())},[]),C=(0,D.useCallback)(y=>{if(n.current){let f=typeof y=="function"?y(n.current.currentTime):y;n.current.currentTime=Math.max(0,Math.min(f,e.duration)),s()}},[]);return(0,D.useEffect)(()=>{let y=setInterval(()=>{s()},350);return()=>clearInterval(y)},[s,e.duration]),(0,D.useEffect)(()=>{let y=()=>{o({type:"FINISHED"})},f=n.current;return f?.addEventListener("ended",y),()=>f?.removeEventListener("ended",y)},[]),[{element:n,currentTime:r,progress:a},t,{play:l,pause:u,playPause:c,mute:p,unmute:g,toggleMute:d,setVolume:x,setDurationPercent:m,setTime:C}]}var Je=require("react"),_n=(0,Je.createContext)(()=>{}),Yn=(0,Je.createContext)(()=>{});function Y(e,t,o,n,r=[]){let a=(0,Je.useContext)(e==="portal"?Yn:_n);(0,Je.useEffect)(()=>(e!=="none"&&a(t,o,n),()=>{a(t,null)}),[t,e,a,...r])}var Vo=require("react/jsx-runtime");function Kn({media:e,startTime:t,children:o}){let[{element:n,currentTime:r,progress:a},i,s]=Ze({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,Vo.jsxs)(Wt,{state:i,actions:s,currentTime:r,progress:a,element:n,children:[(0,Vo.jsx)("audio",{ref:n,src:l}),o]},e.url)}function No({media:e,mediaControlsDeps:t,audioCopmonent:o=Kn,children:n}){let r=Ut();return Y("portal","audio",o,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var Lo=require("react"),Ve=(0,Lo.createContext)(null);Ve.displayName="Strategy";function O(){let e=(0,Lo.useContext)(Ve);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Le=require("react/jsx-runtime");function Gn({model:e}){return(0,Le.jsxs)(Le.Fragment,{children:[(0,Le.jsx)("style",{children:`
|
|
5
2
|
.model-container {
|
|
6
3
|
position: absolute;
|
|
7
4
|
top: 0;
|
|
@@ -14,7 +11,10 @@
|
|
|
14
11
|
justify-content: center;
|
|
15
12
|
pointer-events: visible;
|
|
16
13
|
}
|
|
17
|
-
`}),(0,Re.jsx)("div",{className:"model-container",children:(0,Re.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Rn({model:e,name:t}){return D("overlay",`model-${t}`,Wr,{model:e},[e]),null}var ta=require("react/jsx-runtime");function Ur(){let{strategy:e}=V();return e.type!=="3d-model"?null:(0,ta.jsx)(Rn,{model:e.model})}var $e=require("react/jsx-runtime");function _r({children:e}){let{strategy:t}=V(),[n]=ur();return t.type!=="images"?null:(0,$e.jsxs)($e.Fragment,{children:[n?(0,$e.jsx)(Rt,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(r=>(0,$e.jsx)(Rt,{page:r},r.id)):null,e]})}var Pe=require("react"),Pn=require("react/jsx-runtime"),na=(0,Pe.createContext)(null),ra=(0,Pe.createContext)(null),oa=(0,Pe.createContext)(null);function fs(){let e=(0,Pe.useContext)(na);if(!e)throw new Error("Ctx not found");return e}function ps(){let e=(0,Pe.useContext)(ra);if(!e)throw new Error("Ctx not found");return e}function gs(){let e=(0,Pe.useContext)(oa);if(!e)throw new Error("Ctx not found");return e}function Ht({actions:e,state:t,children:n,currentTime:r,progress:o,element:a}){return(0,Pn.jsx)(oa.Provider,{value:{currentTime:r,progress:o,element:a},children:(0,Pn.jsx)(ra.Provider,{value:e,children:(0,Pn.jsx)(na.Provider,{value:t,children:n})})})}var ia=require("react");var aa=require("@iiif/helpers");function Bt(){let e=z(),t=P();return(0,ia.useMemo)(()=>{if(!e||!t||!e.start)return null;let n=(0,aa.expandTarget)(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}var Tn=require("react/jsx-runtime");function Yr({media:e,startTime:t,children:n}){let[{element:r,currentTime:o,progress:a},i,s]=Be({duration:e.duration}),u=t?`${e.url}#t=${t}`:e.url;return(0,Tn.jsxs)(Ht,{state:i,actions:s,currentTime:o,progress:a,element:r,children:[(0,Tn.jsx)("audio",{ref:r,src:u}),n]},e.url)}function An({media:e,mediaControlsDeps:t,audioCopmonent:n=Yr,children:r}){let o=Bt();return D("portal","audio",n,{media:e,startTime:o?o.startTime:null,children:r},[e,o,...t||[]]),null}var Kr=require("react/jsx-runtime");function We({x:e=0,y:t=0}){let n=P(),r=he({maxWidth:256,maxHeight:256});return!n||!r||r.type!=="fixed"?null:(0,Kr.jsx)("world-object",{height:n.height,width:n.width,x:e,y:t,children:(0,Kr.jsx)("world-image",{uri:r.id,target:{x:0,y:0,width:n.width,height:n.height},display:r.width&&r.height?{width:r.width,height:r.height}:void 0,crop:void 0})})}var Ue=require("react/jsx-runtime");function jr({as:e}){let{strategy:t}=V(),{renderMediaControls:n,mediaControlsDeps:r}=_();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Ue.jsx)(Ue.Fragment,{children:(0,Ue.jsxs)(An,{media:t.media,mediaControlsDeps:r,audioCopmonent:e,children:[(0,Ue.jsx)(We,{}),n?n(t):null]},t.media.url)})}var ye=require("react/jsx-runtime");function Qr(){let{strategy:e}=V(),{renderViewerControls:t,viewControlsDeps:n}=_(),r=P(),o=r?.accompanyingCanvas,a=r?.placeholderCanvas;return(0,ye.jsxs)(ye.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&o?(0,ye.jsx)(re,{canvas:o.id,children:(0,ye.jsx)(_e,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!o?(0,ye.jsx)(re,{canvas:a.id,children:(0,ye.jsx)(_e,{renderViewerControls:t,viewControlsDeps:n})}):null]})}var Dt=require("react/jsx-runtime");function Gr({element:e,media:t,startTime:n,playPause:r,poster:o}){let a="div",i=n?`${t.url}#t=${n}`:t.url;return(0,Dt.jsxs)(a,{className:"video-container",part:"video-container",onClick:r,children:[(0,Dt.jsx)("style",{children:`
|
|
14
|
+
`}),(0,Le.jsx)("div",{className:"model-container",children:(0,Le.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function zo({model:e,name:t}){return Y("overlay",`model-${t}`,Gn,{model:e},[e]),null}var ji=require("react/jsx-runtime");function jn(){let{strategy:e}=O();return e.type!=="3d-model"?null:(0,ji.jsx)(zo,{model:e.model})}var qo=require("react"),_t=(0,qo.createContext)(null);_t.displayName="Controls";function te(){let e=(0,qo.useContext)(_t);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Re=require("react/jsx-runtime");function Qn(){let{strategy:e}=O(),{renderViewerControls:t,viewControlsDeps:o}=te(),n=P(),r=n?.accompanyingCanvas,a=n?.placeholderCanvas;return(0,Re.jsxs)(Re.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Re.jsx)(ue,{canvas:r.id,children:(0,Re.jsx)(et,{renderViewerControls:t,viewControlsDeps:o})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!r?(0,Re.jsx)(ue,{canvas:a.id,children:(0,Re.jsx)(et,{renderViewerControls:t,viewControlsDeps:o})}):null]})}var Ct=require("react");var Pe=require("react");var Bo=require("@iiif/helpers/vault/actions");var Qi=require("react");function Xn(){let t=w().getStore();return(0,Qi.useMemo)(()=>o=>t.dispatch(o),[t])}function Xi(e){return typeof e!="string"&&e&&e.bindToVault}function Zn(){let e=w(),t=(0,Pe.useRef)([]),o=Xn(),n=(0,Pe.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,Pe.useLayoutEffect)(()=>{let s={id:n,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};o(Bo.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[n]);let r=N(s=>n&&s.iiif.entities.AnnotationPage[n]||null,[n]),a=(0,Pe.useCallback)((s,l)=>{if(n){if(Xi(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:n,type:"AnnotationPage"}),u=e.get({id:s,type:"Annotation"});c&&u&&(c.items.find(d=>d.id===u.id)||o(Bo.entityActions.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[n]),i=(0,Pe.useCallback)(s=>{n&&(Xi(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:n,type:"AnnotationPage"})&&o(Bo.entityActions.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[n]);return[r,{addAnnotation:a,removeAnnotation:i}]}var Ji=require("react/jsx-runtime"),Zi=(0,Ct.createContext)(null);function Jn(){let e=(0,Ct.useContext)(Zi);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function er({children:e}){let[t,{addAnnotation:o,removeAnnotation:n}]=Zn();return(0,Ji.jsx)(Zi.Provider,{value:(0,Ct.useMemo)(()=>({fullPage:t,addAnnotation:o,removeAnnotation:n}),[t]),children:e})}var tt=require("react/jsx-runtime");function tr({children:e}){let{strategy:t}=O(),[o]=Jn();return t.type!=="images"?null:(0,tt.jsxs)(tt.Fragment,{children:[o?(0,tt.jsx)(xt,{page:o}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,tt.jsx)(xt,{page:n},n.id)):null,e]})}var ze=require("react");var ea=require("react"),or=(e,t=[])=>{let o=w();(0,ea.useEffect)(()=>{e(o)},[o,...t])};var Oo=G(require("react"),1),ta=require("@iiif/helpers/image-service"),oa=Oo.default.createContext(new ta.ImageServiceLoader);function Yt(){return(0,Oo.useContext)(oa)}var na=require("@iiif/helpers/thumbnail");function Ae(e,t,{canvasId:o,manifestId:n}={}){let r=w(),a=Yt(),i=(0,ze.useMemo)(()=>(0,na.createThumbnailHelper)(r,{imageServiceLoader:a}),[r,a]),[s,l]=(0,ze.useState)(),c=F(n?{id:n}:void 0),u=P(o?{id:o}:void 0),d=u||c,p=(0,ze.useRef)(!1);if((0,ze.useEffect)(()=>(p.current=!1,()=>{p.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return or(g=>{i.getBestThumbnailAtSize(d,e,t).then(x=>{x.best&&!p.current&&l(x.best)})},[d]),s}var nr=require("react/jsx-runtime");function ot({x:e=0,y:t=0}){let o=P(),n=Ae({maxWidth:256,maxHeight:256});return!o||!n||n.type!=="fixed"?null:(0,nr.jsx)("world-object",{height:o.height,width:o.width,x:e,y:t,children:(0,nr.jsx)("world-image",{uri:n.id,target:{x:0,y:0,width:o.width,height:o.height},display:n.width&&n.height?{width:n.width,height:n.height}:void 0,crop:void 0})})}var Ho=require("react/jsx-runtime");function rr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=te();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Ho.jsxs)(No,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,Ho.jsx)(ot,{}),o?o(t):null]},t.media.url)}var Yo=require("react");var ia=G(require("mitt"),1);var aa=require("zustand/vanilla");function ra({currentKeyFrameIndex:e,keyframes:t,targetTime:o,currentTime:n}){if(n<=o){let r=t.findIndex(s=>s.time>o);if(r===-1)return[e,[]];let a={},i=t.slice(e,r);for(let s of i)s.type==="enter"&&(a[s.id]=s),s.type==="exit"&&(a[s.id]?delete a[s.id]:a[s.id]=s);return[r,Object.values(a)]}return[e,[]]}function sa({complexTimeline:e,startTime:t=0}){let o=(0,ia.default)(),n={},r={progress:null,currentTime:null},a=0,i=null,s=0,l=null;function c(){let f=C.getState().visibleElements,h=n,b=[],R=Object.keys(h);for(let A of R){let E=h[A],T=f[A];E&&T&&b.push(E)}return b}function u(){return Object.keys(n).map(f=>n[f])}function d(y){r.currentTime&&(r.currentTime.innerHTML=Eo(y),r.progress&&(r.progress.style.width=`${y/e.duration*100}%`))}let p=()=>{let y=C.getState(),f=y.currentPrime;if(!f)return;let h=n,b=y.visibleElements,R=Object.keys(h);for(let A of R){let E=h[A],T=b[A];if(E&&A!==f.id&&T){let z=s-T.time*1e3;Math.abs(s-T.time*1e3-E.currentTime*1e3)>300&&(E.currentTime=z/1e3)}}},g=(y=0)=>{let f=y-a,h=C.getState();if(h.isPlaying){let b=h.currentPrime;if(b){let T=n[b.id];T&&(T.paused?s+=f:s=(b.time+T.currentTime)*1e3)}else s+=f;let R=s/1e3;if(R>h.duration){C.getState().setTime(0),C.setState({isPlaying:!1}),x(),d(0);return}d(R);let[A,E]=ra({currentTime:R,currentKeyFrameIndex:h.nextKeyframeIndex,keyframes:h.complexTimeline.keyframes,targetTime:R});E.length&&h.applyKeyframes(A,E)}a=y,i=requestAnimationFrame(g)},x=()=>{i&&cancelAnimationFrame(i)},m=(y,f)=>{},C=(0,aa.createStore)((y,f)=>({complexTimeline:e,elements:{},visibleElements:{},isBuffering:!1,bufferMap:{},isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,isReady:!1,volume:100,duration:e.duration,clockStartRequests:0,clockStartTime:0,primeTime:0,currentPrime:null,clockRunning:!1,nextKeyframeIndex:0,startClock:()=>{f().clockRunning||(g(),l=setInterval(p,500)),y({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(h,b){let R=f(),A={...R.visibleElements},E=R.currentPrime;for(let T of b)T.type==="enter"&&(A[T.id]=T,o.emit("complex-timeline.enter",{id:T.id})),T.type==="exit"&&(A[T.id]=null,o.emit("complex-timeline.exit",{id:T.id})),T.isPrime&&(E=T);y({nextKeyframeIndex:h,visibleElements:A,currentPrime:E})},stopClock:()=>{let h=f().clockStartRequests;if(h!==0){if(h===1){x(),l&&clearInterval(l),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:h-1})}},setElement:(h,b)=>{n[h]=b;let R=Object.keys(n),A=f().complexTimeline;m(b,h),A.items.filter(T=>T.type!=="Image"&&T.type!=="Text").every(T=>R.includes(T.annotationId))&&!f().isReady&&(o.emit("complex-timeline.ready",{complexTimeline:A}),y({isReady:!0}))},removeElement:h=>{delete n[h]},mute(){for(let h of u())h.muted=!0;y({isMuted:!0})},unmute(){for(let h of u())h.muted=!1;y({isMuted:!1})},play(){if(!f().isPlaying){for(let b of c())b.play();y({isPlaying:!0})}},pause(){if(f().isPlaying){for(let b of c())b.pause();y({isPlaying:!1})}},playPause(){let h=f();h.isPlaying?h.pause():h.play()},setDurationPercent(h){let R=f().duration*h;f().setTime(R)},setTime(h){let b=f(),R=s/1e3,A=typeof h=="function"?h(R):h,E=b.nextKeyframeIndex;if(R>A){y({visibleElements:{},currentPrime:null});let B=Object.keys(b.visibleElements);for(let J of B)o.emit("complex-timeline.exit",{id:J});R=0,E=0}let[T,z]=ra({currentTime:R,currentKeyFrameIndex:E,keyframes:b.complexTimeline.keyframes,targetTime:A});b.applyKeyframes(T,z),s=A*1e3;let M=C.getState().visibleElements,I=n,q=Object.keys(M);for(let B of q){let J=M[B];if(J){let xe=I[B];xe&&(xe.currentTime=(s-J.time*1e3)/1e3)}}d(A)},setVolume(h){for(let b of u())b.volume=Math.min(1,Math.max(0,h/100));y({volume:h})},toggleMute(){let h=f();h.isMuted?(h.unmute(),y({isMuted:!1})):(h.mute(),y({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(h){r.progress=h},setCurrentTimeElement(h){r.currentTime=h},clearCurrentTimeElement(){r.currentTime=null}}));return o.on("complex-timeline.enter",y=>{let f=C.getState(),h=y.id,b=n[h];b&&f.isPlaying&&b.play()}),o.on("complex-timeline.exit",y=>{let f=C.getState(),h=y.id,b=n[h];b&&(b.currentTime=0,b.pause())}),C.getState().setTime(t),{store:C,emitter:o}}var Ia=require("@atlas-viewer/atlas");var Rt=require("react");var Ca=require("@atlas-viewer/atlas"),ba=require("@iiif/parser/image-3");var Do=G(require("react"),1),la=require("@iiif/helpers/image-service"),Kt=require("zustand"),ca=Do.default.createContext(la.imageServices.store);ca.displayName="ImageServicesHelper";function Fo(){return(0,Do.useContext)(ca)}function ua(e){let t=Fo();return(0,Kt.useStore)(t,({loaded:o})=>o[e])}function bt(){let e=Fo();return(0,Kt.useStore)(e,({loadServiceSync:t})=>t)}function ma(){let e=Fo();return(0,Kt.useStore)(e,({loaded:t})=>t)}function da(){let e=Fo();return(0,Kt.useStore)(e,({loadService:t})=>t)}var ye=G(require("react"),1),he=require("react/jsx-runtime"),fa=ye.default.createContext("en"),ga=ye.default.createContext({}),ha=ye.default.createContext(null);function al(e){return(0,he.jsx)(ga.Provider,{value:e.translations,children:e.children})}function sl(e){return(0,he.jsx)(fa.Provider,{value:e.language,children:e.children})}function ll(e){return(0,he.jsx)(ha.Provider,{value:e.convert,children:e.children})}function ir(){return ye.default.useContext(ha)}function $o(){return ye.default.useContext(fa)}function ar(){return ye.default.useContext(ga)}function pa(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function ya({as:e,language:t,children:o,viewingDirection:n,...r}){let a=$o();return(0,ye.useMemo)(()=>pa(a)===pa(t),[a,t])?e?(0,he.jsx)(e,{...r,children:o}):(0,he.jsx)("span",{...r,children:o}):e?(0,he.jsx)(e,{...r,lang:t,dir:n,children:o}):(0,he.jsx)("span",{...r,lang:t,dir:n,children:o})}function va(e,t,o){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let n=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(n&&t.indexOf(n)!==-1)return n;for(let r of o)if(t.indexOf(r)!==-1)return r;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var Sa=(e,t=[])=>{let o=$o();return(0,ye.useMemo)(()=>{let n=e();return va(o,n,[])},[o,...t])};function nt(e,t,o,n){return t?o?o(e[t]||t,n||"none"):e[t]||t:""}function xa(e,t,o=`
|
|
15
|
+
`,n={}){let r=ir(),a=Sa(()=>Object.keys(e||{}),[e]);return[(0,ye.useMemo)(()=>{if(!e)return nt(n,t,r)||"";if(typeof e=="string")return nt(n,e,r);let i=a?e[a]:void 0;return i?typeof i=="string"?i:i.map(s=>nt(n,s,r,a)).join(o):""},[a,t,e]),a]}function cl(){let e=$o(),t=ar(),o=ir();return function(r,a="",i=`
|
|
16
|
+
`,s=t){let l=Object.keys(r||{}),c=va(e,l,[]);if(!r)return nt(s,a,o)||"";if(typeof r=="string")return nt(s,r,o);let u=c?r[c]:void 0;return u?typeof u=="string"?nt(s,u,o,c):u.map(d=>nt(s,d,o,c)).join(typeof i<"u"?i:`
|
|
17
|
+
`):""}}function se({as:e,defaultText:t,enableDangerouslySetInnerHTML:o,children:n,separator:r,...a}){let i=ar(),[s,l]=xa(n,t,r,i);return l?(0,he.jsx)(ya,{...a,as:e,language:l,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s}):e?(0,he.jsx)(e,{...a,children:s}):(0,he.jsx)("span",{...a,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s})}var sr=require("@iiif/parser/image-3"),Wo=require("react"),rt=require("react/jsx-runtime"),lr=e=>{let t=e.format||"jpg",o=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,a=e.enableSizes,i=(0,Wo.useMemo)(()=>{let c=e.tiles.imageService.id||e.tiles.imageService["@id"];return c?.endsWith("/info.json")?c.slice(0,-1*10):c},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,Wo.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let u=e.width,d=[1],p=1;for(;2**p<u;)p=p*2,d.push(p);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,sr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:d}]:(0,sr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:d}]:[]}return c},[e.tiles.imageService,e.width]),l=(0,Wo.useMemo)(()=>{let c=e.tiles.imageService;return(c?c["@context"]?Array.isArray(c["@context"])?c["@context"]:[c["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,rt.jsx)("world-object",{rotation:e.rotation,scale:o,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,rt.jsxs)("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[r&&e.tiles.thumbnail?(0,rt.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,a&&n.map((c,u)=>(0,rt.jsx)("world-image",{uri:`${i}/full/${c.width},${l?c.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:c.width,height:c.height},crop:e.crop},u)),s.map(c=>(c.scaleFactors||[]).map(u=>(0,rt.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:c,scaleFactor:u,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${u}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var me=require("react/jsx-runtime");function ul({resource:e,heading:t,note:o,extra:n}){return n?(0,me.jsx)(Ca.HTMLPortal,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,me.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,me.jsxs)("div",{children:[(0,me.jsx)(se,{children:t||"Not authorised"}),o&&(0,me.jsx)("p",{children:(0,me.jsx)(se,{children:o})}),(0,me.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Ra({image:e,thumbnail:t,crop:o,enableSizes:n,enableThumbnail:r,renderOptions:a,rotation:i}){let s=Vn(),l=(0,ba.getId)(e.service),c=ua(l),u=bt(),d=c?.service;u(e.service,e);let p=d&&c?.status==="done",g=(d?.preferredFormats||[])[0],x=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(p===!1)return null;if(!s){let m=e.service,C=m.width||e.width||0,y=m.height||e.height||0,f=0,h=0,b=e.target?.spatial.width||C,R=e.target?.spatial.height||y;return(i===90||i===270)&&([b,R]=[R,b],R>b?h=-(R-b)/2:f=-(b-R)/2),(0,me.jsx)(lr,{enableThumbnail:r,renderOptions:a,rotation:i,tiles:{id:m.id||m["@id"]||"unknown",height:y,width:C,imageService:m,thumbnail:x},enableSizes:n,x:f,y:h,format:g,width:b,height:R,crop:o})}return(0,me.jsx)(Ln,{resource:e.service,errorComponent:ul,extra:e,children:m=>{let C=m.width||e.width||0,y=m.height||e.height||0,f=0,h=0,b=e.target?.spatial.width||C,R=e.target?.spatial.height||y;return(i===90||i===270)&&([b,R]=[R,b],R<b?(h=-(R-b)/2,f=(b-R)/2):(h=(R-b)/2,f=-(b-R)/2)),(0,me.jsx)(lr,{enableThumbnail:r,renderOptions:a,tiles:{id:m.id||m["@id"]||"unknown",height:y,width:C,imageService:m,thumbnail:x},rotation:i,format:g,enableSizes:n,x:f,y:h,width:b,height:R,crop:o})}},e.id)}var it=require("react/jsx-runtime");function qe({id:e,image:t,thumbnail:o,isStatic:n,x:r=0,y:a=0,children:i,selector:s,onClick:l,enableSizes:c}){let u=(0,Rt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,Rt.useMemo)(()=>{let f=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(f&&f.selector?.type==="ImageApiSelector")return Number(f.selector.rotation)},[t]),p=r+t.target.spatial.x,g=a+t.target.spatial.y,x=t.target.spatial.width,m=t.target.spatial.height,C=t.target.spatial.width,y=t.target.spatial.height;return(d===90||d===270)&&([x,m]=[m,x],[C,y]=[y,C]),(0,it.jsx)("world-object",{x:p,y:g,width:x,height:m,onClick:l,rotation:d,children:t.service?(0,it.jsxs)(Rt.Fragment,{children:[(0,it.jsx)(Ra,{image:t,thumbnail:o,crop:u,enableSizes:c,rotation:d}),i]},"service"):(0,it.jsxs)(Rt.Fragment,{children:[(0,it.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:C,height:y},display:C&&y?{width:C,height:y}:void 0,crop:u}),i]},"no-service")},e+(t.service?"server":"no-service"))}var mr=require("zustand");var Uo=require("react"),Pa=require("zustand"),Aa=require("react/jsx-runtime"),cr=(0,Uo.createContext)(null);cr.displayName="ComplexTimeline";function ur({children:e,store:t}){return(0,Aa.jsx)(cr.Provider,{value:t,children:e})}function ml(e){let t=(0,Uo.useContext)(cr);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,Pa.useStore)(t,e)}var Ta=require("@atlas-viewer/atlas");var Te=require("react/jsx-runtime");function _o({strategy:e,onClickPaintingAnnotation:t}){return(0,Te.jsx)(Te.Fragment,{children:e.items.map((o,n)=>(0,Te.jsx)(Te.Fragment,{children:(0,Te.jsx)(Ta.HTMLPortal,{onClick:t?r=>{r.stopPropagation(),t(o.annotationId,o,r)}:void 0,target:o.target?.spatial||void 0,children:(0,Te.jsx)("div",{"data-textual-content":!0,children:(0,Te.jsx)(se,{enableDangerouslySetInnerHTML:!0,children:o.text})})},n)}))})}var Ie=require("react/jsx-runtime");function wa({strategy:e,children:t}){let{store:o}=(0,Yo.useMemo)(()=>sa({complexTimeline:e}),[e]),n=(0,mr.useStore)(o,i=>i.isReady),r=(0,mr.useStore)(o,i=>i.visibleElements);function a(i){return s=>{s&&o.getState().setElement(i,s)}}return(0,Yo.useLayoutEffect)(()=>{if(n){let{startClock:i,stopClock:s}=o.getState();return i(),()=>{s()}}},[e,n]),Y("portal","custom-controls",ur,{store:o,children:t},[n]),(0,Ie.jsxs)(Ie.Fragment,{children:[e.items.map(i=>i.type!=="Image"||!r[i.annotationId]?null:(0,Ie.jsx)(qe,{image:i,id:i.annotationId},i.id)),e.items.map((i,s)=>i.type!=="Text"||!r[i.annotationId]?null:(0,Ie.jsx)(_o,{strategy:{type:"textual-content",items:[i]}},s)),e.items.map((i,s)=>i.type!=="Video"||!i.target.spatial?null:(0,Ie.jsx)(Ia.HTMLPortal,{target:i.target.spatial,children:(0,Ie.jsx)("video",{ref:a(i.annotationId),src:i.url,style:{height:"100%",width:"100%",opacity:r[i.annotationId]?1:0}})},s))]})}var ka=require("react/jsx-runtime");function dr(){let{strategy:e}=O(),{renderComplexTimelineControls:t}=te();return e.type!=="complex-timeline"?null:(0,ka.jsx)(wa,{strategy:e,children:t?t(e):null})}var Ma=require("react/jsx-runtime");function Ko({style:e}){let t=P();return!t||!t.height||!t.width?null:(0,Ma.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ea=require("react/jsx-runtime");function pr({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:o}=O();return o.type!=="empty"&&!t?null:(0,Ea.jsx)(Ko,{style:e})}var Go=require("react"),ve=(0,Go.createContext)(null);function Gt(){return(0,Go.useContext)(ve)}var Pt=require("react/jsx-runtime");function fr({isStatic:e=!1,enableSizes:t=!1,onClickPaintingAnnotation:o,children:n}){let{strategy:r}=O(),{renderViewerControls:a,viewControlsDeps:i}=te(),s=P(),l=Gt(),c=Ae({maxWidth:256,maxHeight:256});return Y(l&&r.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${s?.id}`,ve.Provider,a?{value:l||null,children:a(r)}:{},[s,l,r,...i||[]]),r.type!=="images"?null:(0,Pt.jsxs)(Pt.Fragment,{children:[r.images.map((u,d)=>(0,Pt.jsx)(qe,{isStatic:e,image:u,id:u.id,thumbnail:d===0?c:void 0,selector:u.selector,enableSizes:t,onClick:o?p=>{o(u.annotationId,u,p)}:void 0},u.id+d)),n]})}var At=require("react/jsx-runtime");function gr({onClickPaintingAnnotation:e,children:t}){let{strategy:o}=O(),{renderViewerControls:n,viewControlsDeps:r}=te(),a=Gt(),i=P();return Y(a&&o.type==="textual-content"&&n?"overlay":"none",`canvas-portal-controls-${i?.id}`,ve.Provider,n?{value:a||null,children:n(o)}:{},[i,a,o,...r||[]]),o.type!=="textual-content"?null:(0,At.jsxs)(At.Fragment,{children:[(0,At.jsx)(_o,{strategy:o,onClickPaintingAnnotation:e}),t]})}var jt=require("react/jsx-runtime");function hr({element:e,media:t,startTime:o,playPause:n,poster:r}){let a="div",i=o?`${t.url}#t=${o}`:t.url;return(0,jt.jsxs)(a,{className:"video-container",part:"video-container",onClick:n,children:[(0,jt.jsx)("style",{children:`
|
|
18
18
|
.video-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,
|
|
30
|
+
`}),(0,jt.jsx)("video",{poster:r,ref:e,src:i,style:{width:"100%",objectFit:"contain"}})]})}function jo({media:e,mediaControlsDeps:t,children:o,videoComponent:n=hr,captions:r}){let a=P(),i=Ut(),s=a&&a.placeholderCanvas&&a.placeholderCanvas.id||void 0,l=Ae({},!1,{canvasId:s}),[{element:c,currentTime:u,progress:d},p,g]=Ze({duration:e.duration});return Y("overlay","video-element",n,{element:c,media:e,playPause:g.playPause,poster:l?.id,canvas:a,startTime:i?i.startTime:null,captions:r},[l]),Y("portal","custom-controls",Wt,{state:p,actions:g,currentTime:u,progress:d,element:c,children:o},[u,p,e,...t||[]]),null}var Qo=require("react/jsx-runtime");function yr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=te();return t.type!=="media"||t.media.type!=="Video"?null:(0,Qo.jsxs)(jo,{captions:t.captions,media:t.media,mediaControlsDeps:n,videoComponent:e,children:[(0,Qo.jsx)(ot,{}),o?o(t):null]},t.media.url)}var Na=require("react"),Qt=require("react/jsx-runtime");function dl({element:e,media:t,playPause:o}){let n=(0,Na.useRef)(null);return t.youTubeId?(0,Qt.jsxs)("div",{className:"video-container",part:"video-container",onClick:o,children:[(0,Qt.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,Ft.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 ca({media:e,mediaControlsDeps:t,children:n}){let[{element:r,currentTime:o,progress:a},i,s]=Be({duration:e.duration});return D("overlay","video-element",hs,{element:r,media:e,playPause:s.playPause}),null}var kn=require("react/jsx-runtime");function Zr(){let{strategy:e}=V(),{renderMediaControls:t,mediaControlsDeps:n}=_();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,kn.jsxs)(ca,{media:e.media,mediaControlsDeps:n,children:[(0,kn.jsx)(We,{}),t?t(e):null]})}var X=require("react/jsx-runtime");function _e({x:e,y:t,onChoiceChange:n,registerActions:r,defaultChoices:o,isStatic:a,renderViewerControls:i,renderMediaControls:s,renderComplexTimelineControls:u,complexTimelineControlsDeps:c,viewControlsDeps:l,mediaControlsDeps:d,strategies:h,throwOnUnknown:S,backgroundStyle:v,alwaysShowBackground:f,keepCanvasScale:x=!1,enableSizes:y=!1,enableYouTube:C=!0,onClickPaintingAnnotation:m,components:b={},children:A}){return(0,X.jsxs)(Mr,{throwOnUnknown:S,onChoiceChange:n,registerActions:r,strategies:h,defaultChoices:o,mediaControlsDeps:d,renderMediaControls:s,renderViewerControls:i,renderComplexTimelineControls:u,complexTimelineControlsDeps:c,viewControlsDeps:l,children:[(0,X.jsxs)(Er,{keepCanvasScale:x,x:e,y:t,children:[(0,X.jsx)(Nr,{alwaysShowBackground:f,backgroundStyle:v}),(0,X.jsx)(Dr,{}),(0,X.jsx)(Fr,{}),(0,X.jsx)($r,{isStatic:a,enableSizes:y,onClickPaintingAnnotation:m}),(0,X.jsx)(_r,{}),(0,X.jsx)(Ur,{}),(0,X.jsx)(jr,{as:b.Audio}),(0,X.jsx)(Xr,{as:b.Video}),C?(0,X.jsx)(Zr,{}):null,A]}),(0,X.jsx)(Qr,{})]})}var Jr=require("react/jsx-runtime");function la(e){let t=P();return!t||!t.placeholderCanvas?null:(0,Jr.jsx)(re,{canvas:t.placeholderCanvas.id,children:(0,Jr.jsx)(_e,{renderViewerControls:e.renderViewerControls})})}var Y=require("react/jsx-runtime"),ys=(0,Ye.forwardRef)(function(t,n){let r=z(),o=Ee(),a=vt(),{ViewerControls:i,MediaControls:s,ComplexTimelineControls:u}=t.components||{};if((0,Ye.useImperativeHandle)(n,()=>a,[a]),!r)return(0,Y.jsx)("div",{});let c=0,l=r.viewingDirection==="top-to-bottom",d=r.viewingDirection==="bottom-to-top",h=r.viewingDirection==="left-to-right",S=r.viewingDirection==="right-to-left",f=r.behavior.includes("continuous")?0:t.spacing||0,x=d||S,y=(0,Ye.useMemo)(()=>x?[...o].reverse():o,[o,x]);return(0,Y.jsxs)(Y.Fragment,{children:[t.header,(0,Y.jsx)(F.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:y.map((C,m)=>{let b=0,A=0;return l?(b=c,c+=C.width+f):(A=c,c+=C.height+f),(0,Y.jsx)(re,{canvas:C.id,children:(0,Y.jsx)(F.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:m===0&&i?()=>(0,Y.jsx)(i,{}):void 0,renderMediaControls:m===0&&s?()=>(0,Y.jsx)(s,{}):void 0,renderComplexTimelineControls:m===0&&u?()=>(0,Y.jsx)(u,{}):void 0,x:b,y:A,...t.canvasProps||{},children:t.annotations},C.id)},C.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),F=(0,Ye.forwardRef)(function({children:t,height:n,annotations:r,canvasProps:o,spacing:a,header:i,components:s,mode:u,reuseAtlas:c,renderPreset:l,runtimeOptions:d,...h},S){let v=ke();return(0,Y.jsx)(we,{vault:v,children:(0,Y.jsx)(rr,{...h,children:(0,Y.jsx)(ys,{ref:S,height:n,components:s,spacing:a,canvasProps:o,annotations:r,header:i,mode:u,reuseAtlas:c,renderPreset:l,runtimeOptions:d,children:t})})})});F.RenderImage=Ce;F.RenderCanvas=_e;F.RenderAnnotationPage=Rt;F.RenderAnnotation=cn;F.Viewer=an;F.CanvasBackground=gn;F.Audio=An;F.Video=In;F.Model=Rn;F.AudioHTML=Yr;F.VideoHTML=Gr;F.ModelHTML=Wr;F.PlaceholderCanvas=la;var ua=require("@atlas-viewer/atlas");var Mn=require("react"),qt=require("react/jsx-runtime"),vs=(0,Mn.forwardRef)(function({canvasId:t},n){let r=(0,ua.useCanvas)(),o=It(t||r?.id),a=T();return(0,Mn.useImperativeHandle)(n,()=>o,[t,r]),!r||o.enabledPageIds.length===0?null:(0,qt.jsx)(qt.Fragment,{children:o.enabledPageIds.map(i=>(0,qt.jsx)(F.RenderAnnotationPage,{page:a.get(i)},i))})});var da=require("react");var ma=require("react");var H=require("react/jsx-runtime");function $t({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:r=!0,allowHtml:o,emptyFallback:a,classes:i={},emptyMessage:s="No metadata available",emptyValueFallback:u="No value",emptyLabelFallback:c="",separator:l,tableFooter:d,tableHeader:h}){let S=(0,ma.useMemo)(()=>{let f=(t||[]).reduce((y,C)=>[...y,...C.keys],[]),x={};for(let y of e){let C=y&&y.label?Object.values(y.label):[];for(let m of C)if(m&&m.length&&(f.indexOf(`metadata.${m[0]}`)!==-1||f.length===0)&&y){let b=`metadata.${m[0]}`;x[b]=x[b]?x[b]:[],x[b].push(y);break}}return x},[t,e]);return Object.keys(S).length===0&&r?(0,H.jsx)(H.Fragment,{children:a})||(0,H.jsx)("div",{className:i.empty,children:s}):t&&t.length?(0,H.jsxs)("table",{className:i.container,children:[h,(0,H.jsx)("tbody",{children:t.map((f,x)=>{let y=[];for(let C of f.keys)for(let m of S[C]||[])y.push((0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,defaultText:u,separator:l,children:m.value},x+"__"+C));return y.length===0?null:(0,H.jsxs)("tr",{className:i.row,children:[(0,H.jsx)("td",{className:i.label,style:n?{minWidth:n}:{},children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,separator:l,defaultText:c,children:f.label})}),(0,H.jsx)("td",{className:i.value,children:y})]},x)})}),d]}):(0,H.jsxs)("table",{className:i.container,children:[h,(0,H.jsx)("tbody",{children:e&&e.length?e.map((f,x)=>f?(0,H.jsxs)("tr",{className:i.row,children:[(0,H.jsx)("td",{className:i.label,style:n?{minWidth:n}:{},children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,defaultText:u,separator:l,children:f.label})}),(0,H.jsx)("td",{className:i.value,children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,defaultText:u,separator:l,children:f.value})})]},x):null):null}),d]})}var fa=require("react/jsx-runtime");function Ss(e){let t=z(),n=P(),r=pt(),o=(0,da.useMemo)(()=>{let a=t?.metadata||[],i=n?.metadata||[],s=r?.metadata||[];return[...a,...i,...s]},[t,n,r]);return(0,fa.jsx)($t,{metadata:o,...e})}var Vn=require("react");var En=require("@iiif/parser/image-3"),pa=require("react");function Nn(e,t={},n=[]){return(0,pa.useMemo)(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let o=(0,En.createImageServiceRequest)(e);return(0,En.imageServiceRequestToString)({identifier:o.identifier,server:o.server,scheme:o.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:o.prefix,originalPath:o.originalPath})},[...n])}var Wt=require("react/jsx-runtime");function xs(e){let t=typeof e.src=="string"?e.src:e.src.id,n=Ot(),[r,o]=(0,Vn.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=Nn(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,Vn.useEffect)(()=>()=>{o(!1)},[t]),i?(0,Wt.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):(0,Wt.jsx)(ga,{...e,fetchImageService:!1})}function ga(e){if(e.fetchImageService)return(0,Wt.jsx)(xs,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=Nn(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,Wt.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var ha=require("react/jsx-runtime");function Cs(e){let t=z();return(0,ha.jsx)($t,{metadata:t?.metadata||[],...e})}var Ln=require("react");var eo=Q(require("react-lazy-load-image-component"),1);var ya=require("@iiif/helpers/i18n"),Z=require("react/jsx-runtime"),{LazyLoadComponent:bs}=eo||eo.default;function to(e){let{size:t,visible:n,classes:r,canvasId:o,figure:a}=e,i=t?.width||128,s=t?.height||t?.width||128,u=(0,Z.jsx)(Rs,{...e}),c=(0,Z.jsx)(bs,{threshold:300,style:{height:s,width:i},visibleByDefault:n,children:o?(0,Z.jsx)(re,{canvas:o,children:u}):u});return a?(0,Z.jsx)("figure",{className:r?.figure,children:c}):c}function Rs({fallback:e,size:t,classes:n,showLabel:r,alt:o,dereference:a=!1}){let i=P(),s=t?.width||128,u=t?.height||t?.width||128,c=o||(0,ya.getValue)(i?.label)||"",l=he({width:s,height:u,allowUnsafe:!0},a);return!l||l.type!=="fixed"?(0,Z.jsx)(Z.Fragment,{children:e}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)("div",{className:n?.imageWrapper,children:(0,Z.jsx)("img",{className:n?.img,src:l.id,alt:c})}),r?(0,Z.jsx)(te,{as:"figcaption",className:n?.label,children:i?.label}):null]})}var st=require("react/jsx-runtime");function Ps({scrollBehaviour:e,dereference:t,flat:n,size:r,classes:o={},showLabel:a,figure:i,fallback:s}){let u=(0,Ln.useRef)(null),{items:c,sequence:l,currentSequenceIndex:d,setSequenceIndex:h}=vt(),S={row:o.selected?.row||o.row,item:o.selected?.item||o.item,figure:o.selected?.figure||o.figure,img:o.selected?.img||o.img,label:o.selected?.label||o.label,imageWrapper:o.selected?.imageWrapper||o.imageWrapper};(0,Ln.useLayoutEffect)(()=>{if(!u.current)return;let f=u.current.querySelector("[data-selected=true]");f&&f.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[d]);let v=[];for(let f of l){let x=[],y=l[d]===f;for(let C of f){let m=c[C];x.push((0,st.jsx)("div",{className:y?S.item:o.item,children:(0,st.jsx)(to,{classes:y?S:o,canvasId:m.id,size:r,dereference:t,showLabel:a,figure:i,placeholder:(0,st.jsx)("div",{style:{height:128,width:128}}),fallback:s})},C))}if(n){v.push(x);continue}v.push((0,st.jsx)("div",{onClick:C=>{h(l.indexOf(f))},"data-selected":y,className:y?S.row:o.row,children:x},f.join("-")))}return(0,st.jsx)("div",{ref:u,className:o.container,children:v})}var K=require("react/jsx-runtime"),As={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function Ts({helper:e,showShapes:t,state:n,enabled:r=As,classNames:o={},icons:a={}}){return(0,K.jsxs)(K.Fragment,{children:[t?(0,K.jsxs)(K.Fragment,{children:[r.draw&&(0,K.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,K.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,K.jsx)("button",{className:o.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),r.lineBox&&(0,K.jsx)("button",{className:o.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),r.square&&(0,K.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),r.triangle&&(0,K.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),r.hexagon&&(0,K.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,K.jsx)("button",{className:o.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}var q=require("react"),no=Q(require("mitt"),1),va=require("react/jsx-runtime"),zn=(0,q.createContext)((0,no.default)());zn.displayName="SelectorHelper";function Is({children:e}){return(0,va.jsx)(zn.Provider,{value:(0,q.useMemo)(()=>(0,no.default)(),[]),children:e})}function ws(){return(0,q.useContext)(zn)}function ro(e){let t=oo(),[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 oo(){let e=(0,q.useContext)(zn);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 ks(){let e=oo();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 ct=require("react"),Sa=require("react/jsx-runtime");function io(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var ao=(0,ct.createContext)(io());ao.displayName="AnnotationStyle";function so(){return(0,ct.useContext)(ao)}function Ms({theme:e,children:t}){let n=(0,ct.useMemo)(()=>e||io(),[e]);return(0,Sa.jsx)(ao.Provider,{value:n,children:t})}var Hn=require("@atlas-viewer/atlas");var j=require("react");var lt=require("react"),xa=require("polygon-editor");function co(e,t,n){let[r,o]=(0,lt.useState)({}),a=(0,lt.useMemo)(()=>(0,xa.createHelper)(e,n),[]);return(0,lt.useEffect)(()=>(a.clock.start(t,o),()=>{a.clock.stop()}),[]),{state:r,helper:a}}var Ca=require("polygon-editor"),N=require("react/jsx-runtime"),Ae=(0,Ca.createSvgHelpers)();function lo(e,t){let{image:n,currentShape:r,onChange:o,hideShapeLines:a}=e,i=(0,j.useRef)(),s=(0,j.useRef)(),u=(0,j.useRef)(),c=(0,j.useRef)(),l=(0,j.useRef)(),d=(0,j.useRef)(),h=(0,j.useRef)(),S=(0,j.useRef)(),[v,f]=(0,j.useState)(null),[x,y]=(0,j.useState)(!1),{helper:C,state:m}=co(r,(k,ne)=>{Ae.updateTransitionBoundingBox(s.current,k,ne),Ae.updateBoundingBoxPolygon(i.current,k,ne),Ae.updateTransitionShape(d.current,k,ne),Ae.updateClosestLinePointTransform(c.current,k,ne),Ae.updateSelectBox(u.current,k,ne),Ae.updatePointLine(h.current,k,ne),Ae.updateDrawPreview(l.current,k,ne,3),Ae.updateLineBox(S.current,k),f(k.transitionDirection),y(k.transitionRotate)},o);(0,j.useEffect)(()=>{C.setShape(r||null)},t),(0,j.useEffect)(()=>{let k=()=>{C.modifiers.reset()};return document.addEventListener("mouseleave",k),()=>{document.removeEventListener("mouseleave",k)}},[]);let b=(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})})]}),A=r?r.open?"polyline":"polygon":null,M=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",I=m.actionIntentType==="add-open-point",R=m.transitionIntentType==="split-line",B=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",Ke=r&&A?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(A,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:B?0:2,stroke:a?"transparent":"#000",points:r.points.map(k=>k.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:S,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,N.jsx)("polyline",{ref:l,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.selectedPoints.length?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:r.points.filter((k,ne)=>m.selectedPoints?.includes(ne)).map(k=>k.join(",")).join(" ")}):null,M&&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)(A,{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:u,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&&!B?(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:C,state:m,isAddingPoint:I,isSplitting:R,isStamping:B,isHoveringPoint:M,transitionDirection:v,transitionRotate:x,defs:b,editor:Ke}}var On=require("react"),ba=require("react-dom"),J=require("react/jsx-runtime"),Ra=[{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 uo(e){let t=e.theme||Ra[0],n=(0,Hn.useAtlas)(),{image:r}=e,{helper:o,defs:a,editor:i,state:s,transitionDirection:u,isSplitting:c,transitionRotate:l,isHoveringPoint:d,isAddingPoint:h,isStamping:S}=lo({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),v=m=>{o.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,On.useEffect)(()=>{let m=b=>{o.key.up(b.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,On.useEffect)(()=>{let m=b=>{o.key.down(b.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,On.useEffect)(()=>{let m=[];return u&&m.push(`atlas-cursor-${u}`),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"),l&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,h,d,c,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,u,l]);let f=e.shape&&e.shape?.points.length===0,x=e.renderControls?e.renderControls(o,s,f):null,y=document.getElementById(e.controlsHtmlId||"atlas-controls"),C="shape";return(0,J.jsx)(J.Fragment,{children:(0,J.jsxs)("world-object",{height:r.height,width:r.width,onMouseMove:v,onMouseDown:o.pointerDown,onMouseUp:o.pointerUp,onMouseLeave:o.blur,children:[e.shape?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(C,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:S?{}:t.outer}),(0,J.jsx)(C,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:S?{}:t.inner})]}):null,(0,J.jsxs)(Hn.HTMLPortal,{relative:!0,interactive:!1,children:[(0,J.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,J.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[(0,J.jsx)("defs",{children:a}),i]})}),y?(0,ba.createPortal)(x,y,"controls"):null]})]})})}var mo=require("react/jsx-runtime");function Es(e){let t=P(),n=e.annotationBucket,r=e.readOnly,o=e.id,{onClick:a,isHighlighted:i}=ro(e.id),s=so(),u=i?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(r){let c="shape",l=e.polygon,d=l.open;return l?(0,mo.jsx)(c,{id:`shape-${o}`,points:l.points,open:d,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:u}):null}return(0,mo.jsx)(uo,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Bn=require("react"),Pa=require("react-error-boundary");var Te=require("react/jsx-runtime");function Ns({src:e,errorFallback:t,interactive:n,skipSizes:r,children:o,renderViewerControls:a,viewControlsDeps:i,fluid:s,x:u,y:c,...l}){let[d,h]=(0,Bn.useState)(),S=t||nn,[v,f]=kt(),x=(0,Bn.useMemo)(()=>{let C=f[e]?.status,m=v({id:e},{});return m?.height&&m.width&&C!=="loading"?{id:e,width:m.width,height:m.height,service:m,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:m.width,height:m.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:m.width,height:m.height}}}:null},[v,e,f]);if(D(d&&a?"overlay":"none",`canvas-portal-controls-${e}`,oe.Provider,a&&x?{value:d||null,children:a({image:x,images:[x],type:"images"})}:{},[e,x,d,...i||[]]),!x||!x.height||!x.width)return null;let y=s?void 0:l.homePosition?l.homePosition.width/l.homePosition.height:x.width/x.height;return(0,Te.jsx)(Pa.ErrorBoundary,{resetKeys:[],fallbackRender:C=>(0,Te.jsx)(S,{...l,...C}),children:(0,Te.jsx)(an,{...l,aspectRatio:y,containerProps:{style:{position:"relative"},...l.containerProps||{}},onCreated:C=>{h(C),l.onCreated&&l.onCreated(C)},children:(0,Te.jsxs)(oe.Provider,{value:d,children:[(0,Te.jsx)(Ce,{image:x,id:x.id,isStatic:!n,x:u,y:c},x.id),(0,Te.jsx)(Vs,{viewerPreset:d,renderViewerControls:a,image:x,src:e,viewControlsDeps:i}),o]})})})}function Vs({viewerPreset:e,renderViewerControls:t,image:n,src:r,viewControlsDeps:o}){return D(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,oe.Provider,t&&n?{value:e||null,children:t({image:n,images:[n],type:"images"})}:{},[r,e,...o||[]]),null}var Aa=require("react/jsx-runtime");function Ls({annotation:e,children:t}){return(0,Aa.jsx)(W,{value:{annotation:e},children:t})}var Ta=require("react/jsx-runtime");function zs({annotationPage:e,children:t}){return(0,Ta.jsx)(W,{value:{annotationPage:e},children:t})}var Ia=require("react/jsx-runtime");function Os({collection:e,children:t}){return(0,Ia.jsx)(W,{value:{collection:e},children:t})}function Hs(e,t={}){return Oe(t)}var wa=require("@atlas-viewer/atlas"),Ie=require("react");function Bs({canvasId:e}={}){let t=(0,wa.useCanvas)(),n=Ee(),r=(0,Ie.useMemo)(()=>e?[e]:t?[t.id]:n.map(c=>c.id),[e,t,n]),[o,a]=(0,Ie.useState)({}),i=St();(0,Ie.useEffect)(()=>{let c=l=>{let d=l.partOf.canvasId;d&&a(h=>({...h,[d]:l.choice}))};return i.on("choice-change",c),()=>{i.off("choice-change",c)}},[]);let s=(0,Ie.useMemo)(()=>{let c=[];for(let l of r){let d=o[l];d&&c.push({canvasId:l,choice:d})}return c},[r,o]),u=(0,Ie.useMemo)(()=>({makeChoice:(c,l)=>{i.emit("make-choice",{choiceId:c,...l})}}),[i]);return{choices:s,actions:u}}function Ds(e,t=!1){}function Fs(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 u of a?.items||[])r.indexOf(u.id)!==-1&&s.push(u);return s},[r.join("/")])}var ka=require("react");function qs(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,ka.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...t])}var Dn=require("react"),Ma=require("@iiif/helpers/events");function $s(e,t,n,r,o=[]){let a=T(),i=(0,Dn.useMemo)(()=>(0,Ma.createEventsHelper)(a),[a]);(0,Dn.useEffect)(()=>{let s=e;return s?(i.addEventListener(s,t,n,r),()=>{i.removeEventListener(s,t,n)}):()=>{}},[i,e,t,...o])}function Ws(e,t){let{id:n,isLoaded:r,error:o,resource:a,requestId:i,cached:s}=ft(e,t);return{id:n,isLoaded:r,error:o,manifest:a,requestId:i,cached:s}}var fo=require("@iiif/parser/image-3");var de=require("react");function po({cacheKey:e}={}){let t=P(),n=Oe(),r=T(),o=rt(),a=gi(),[i,s]=(0,de.useState)(void 0),[u,c]=(0,de.useState)(!1),[l,d]=(0,de.useState)("idle"),[h,S]=(0,de.useState)(void 0),v=t?t.id:"undefined",f=(0,de.useMemo)(()=>{try{if(t&&n.length){let y=n[0],C=r.get(y.body[0]),b=(0,fo.getImageServices)(C)[0];return b&&o(b,{width:b.width||t.width,height:b.height||t.height},!0)||void 0}}catch(y){console.error(y)}},[v,e,t]),x=l==="success"&&i?i:f;return(0,de.useEffect)(()=>{(async()=>{try{if(t&&n.length){let y=n[0],C=r.get(y.body[0]),b=(0,fo.getImageServices)(C)[0];if(!b)return;c(!0),d("loading");try{let A=await a(b,{width:b.width||t.width,height:b.height||t.height})||void 0;s(A),d("success"),c(!1)}catch(A){d("error"),S(A)}}}catch(y){d("error"),S(y)}})()},[v,e]),(0,de.useMemo)(()=>({data:x,isFetching:u,status:l,error:h}),[x,u,l,h])}function Us(){let e=po();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 Ea=require("@iiif/helpers/styles"),Na=require("react");function _s(){let e=T();return(0,Na.useMemo)(()=>(0,Ea.createStylesHelper)(e),[e])}g(p,require("@iiif/helpers/annotation-targets"),module.exports);
|
|
48
|
+
`}),(0,Qt.jsx)("iframe",{className:"video-yt",ref:n,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 Va({media:e,mediaControlsDeps:t,children:o}){let[{element:n,currentTime:r,progress:a},i,s]=Ze({duration:e.duration});return Y("overlay","video-element",dl,{element:n,media:e,playPause:s.playPause}),null}var Xo=require("react/jsx-runtime");function vr(){let{strategy:e}=O(),{renderMediaControls:t,mediaControlsDeps:o}=te();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,Xo.jsxs)(Va,{media:e.media,mediaControlsDeps:o,children:[(0,Xo.jsx)(ot,{}),t?t(e):null]})}var on=require("react"),Se=require("zustand");var Jo=require("@atlas-viewer/atlas"),Oe=require("react");var La=require("polygon-editor"),Q=require("react");var Zo=require("zustand");function Sr(e){let t=V(),o=(0,Zo.useStore)(t,a=>a.polygons),n=(0,Zo.useStore)(t,a=>a.polygonState),r=(0,Zo.useStore)(t,a=>a.polygon);return je("atlas.polygon-render",({state:a,slowState:i,dt:s})=>{e(a,i,s)}),{currentShape:r,state:n,helper:o}}var k=require("react/jsx-runtime"),we=(0,La.createSvgHelpers)(),za={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function xr(e){let{image:t}=e,o={...za,...e.theme||{}},n=(0,Q.useRef)(),r=(0,Q.useRef)(),a=(0,Q.useRef)(),i=(0,Q.useRef)(),s=(0,Q.useRef)(),l=(0,Q.useRef)(),c=(0,Q.useRef)(),u=(0,Q.useRef)(),d=(0,Q.useRef)(),p=(0,Q.useRef)(),[g,x]=(0,Q.useState)(null),[m,C]=(0,Q.useState)(!1),{helper:y,state:f,currentShape:h}=Sr((M,I)=>{if(M.closestLineIndex,we.updateTransitionBoundingBox(a.current,M,I),we.updateBoundingBoxPolygon(n.current,M,I),we.updateBoundingBoxPolygon(r.current,M,I),we.updateTransitionShape(c.current,M,I),we.updateClosestLinePointTransform(s.current,M,I),we.updateSelectBox(i.current,M,I),we.updatePointLine(u.current,M,I),we.updateDrawPreview(l.current,M,I,3),we.updateLineBox(d.current,M),x(M.transitionDirection),C(M.transitionRotate),M.closestLineIndex!==-1&&p.current){let q=M.polygon,B=q.points[M.closestLineIndex],J=q.points[(M.closestLineIndex+1)%q.points.length];B&&J&&p.current.setAttribute("points",`${B[0]},${B[1]} ${J[0]},${J[1]}`)}});(0,Q.useEffect)(()=>{let M=()=>{y.modifiers.reset()};return document.addEventListener("mouseleave",M),()=>{document.removeEventListener("mouseleave",M)}},[]);let b=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,k.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke,className:"marker"}),(0,k.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.controlFill})]}),(0,k.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,k.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.activeLineStroke,className:"marker"})}),(0,k.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,k.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke}),(0,k.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.activeLineStroke})]}),(0,k.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,k.jsx)("rect",{width:"10",height:"10",fill:o.lineStroke}),(0,k.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:o.controlFill})]})]}),R=h?h.open?"polyline":"polygon":null,A=!f.showBoundingBox&&f.closestPoint!==null&&f.actionIntentType==="select-point",E=f.actionIntentType==="add-open-point",T=f.transitionIntentType==="split-line",z=f.transitioning&&f.selectedStamp&&f.transitionIntentType==="stamp-shape",ce=h&&R?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(R,{fill:(!f.transitioning||f.transitionIntentType==="select-multiple-points")&&!h.open?o.shapeFill:"none",strokeWidth:z||f.showBoundingBox&&f.boxMode||f.transitioning&&f.transitionIntentType==="split-line"||f.transitioning&&f.transitionIntentType==="move-point"?0:2,stroke:o.shapeStroke,points:h.points.map(M=>M.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerMid:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerEnd:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}),f.currentTool==="lineBox"&&f.actionIntentType==="close-line-box"?(0,k.jsx)("polygon",{fill:o.shapeFill,ref:d,stroke:o.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,f.transitionIntentType==="draw-shape"&&f.transitioning?(0,k.jsx)("polyline",{ref:l,fill:"none",stroke:o.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(f.transitioning&&f.transitionIntentType==="move-point")&&!(f.transitioning&&f.transitionIntentType==="stamp-shape")&&!f.showBoundingBox&&f.selectedPoints&&f.selectedPoints.length?(0,k.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:h.points.filter((M,I)=>f.selectedPoints?.includes(I)).map(M=>M.join(",")).join(" "),opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,A&&!f.transitioning&&f.closestPoint!==null&&h.points[f.closestPoint]?(0,k.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:o.activeLineStroke,points:`${h.points[f.closestPoint][0]},${h.points[f.closestPoint][1]}`,opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,!f.transitioning&&(f.actionIntentType==="add-open-point"||f.actionIntentType==="close-shape"||f.actionIntentType==="close-shape-line")?(0,k.jsx)("polyline",{stroke:o.activeLineStroke,ref:u,strokeWidth:f.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?(0,k.jsx)("g",{children:(0,k.jsx)("polyline",{ref:p,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:o.activeLineStroke,strokeWidth:3})}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?(0,k.jsx)("g",{ref:s,children:(0,k.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,f.transitioning?(0,k.jsx)(R,{ref:c,fill:h.open?"none":o.shapeFill,stroke:f.transitionIntentType==="stamp-shape"?o.activeLineStroke:o.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(h.open,2)}):null,f.transitioning&&f.transitionIntentType==="select-multiple-points"?(0,k.jsx)("rect",{ref:i,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,f.showBoundingBox&&!z?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("polygon",{ref:n,strokeWidth:2,stroke:o.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),(0,k.jsx)("polygon",{ref:r,strokeWidth:2,stroke:o.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:y.state.slowState.currentTool,setCurrentTool:y.tools.setTool,helper:y,currentShape:h,state:f,isAddingPoint:E,isSplitting:T,isStamping:z,isHoveringPoint:A,transitionDirection:g,transitionRotate:m,defs:b,editor:ce}}var Be=require("react/jsx-runtime");function qa(e){let t=(0,Jo.useAtlas)(),{image:o}=e,{helper:n,defs:r,editor:a,state:i,transitionDirection:s,isSplitting:l,transitionRotate:c,isHoveringPoint:u,isAddingPoint:d}=xr({image:e.image,theme:e.theme}),p=(0,Oe.useCallback)(m=>{m.button!==2&&n.pointer([[~~m.atlas.x,~~m.atlas.y]])},[n]),g=(0,Oe.useCallback)(m=>{m.button!==2&&n.pointerDown()},[n]),x=(0,Oe.useCallback)(m=>{m.button!==2&&n.pointerUp()},[n]);return(0,Oe.useEffect)(()=>{let m=C=>{n.key.up(C.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[n]),(0,Oe.useEffect)(()=>{let m=C=>{C.target&&["INPUT","TEXTAREA"].includes(C.target.tagName)||C.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||n.key.down(C.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[n]),(0,Oe.useEffect)(()=>{let m=[];return s&&m.push(`atlas-cursor-${s}`),i.actionIntentType==="cut-line"&&i.modifiers?.Shift&&m.push("atlas-cursor-cut"),(u||i.transitionIntentType==="move-shape"||i.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),d&&m.push("atlas-cursor-crosshair"),l&&m.push("atlas-cursor-copy"),c&&m.push("atlas-cursor-rotate"),i.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...m),()=>{t?.canvas&&t.canvas.classList.remove(...m)}},[t?.canvas,d,u,l,i.modifiers?.Shift,i.actionIntentType,i.transitionIntentType,s,c]),(0,Be.jsx)("world-object",{height:o.height,width:o.width,onMouseMove:p,onMouseDown:g,onMouseUp:x,onMouseLeave:n.blur,children:(0,Be.jsx)(Jo.HTMLPortal,{relative:!0,interactive:!1,children:(0,Be.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,Be.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,Be.jsx)("title",{children:"Annotation Editor"}),(0,Be.jsx)("defs",{children:r}),a]})})})})}var Ua=require("react"),_a=require("zustand");var $a=require("@atlas-viewer/atlas"),ie=require("@floating-ui/react"),Wa=require("react-dom");var U=G(require("react"),1);var Ba=G(require("react"),1),en=require("react"),Oa=G(require("mitt"),1),Da=require("react/jsx-runtime"),Ha=(0,Oa.default)(),at=(0,en.createContext)({emitter:Ha});at.displayName="Events";function Xt(){return Ba.default.useContext(at).emitter}function pl({emitter:e,children:t}){return(0,Da.jsx)(at.Provider,{value:(0,en.useMemo)(()=>({emitter:e}),[e]),children:t})}var le=require("react/jsx-runtime"),Zt=U.default.createContext({});function Jt(){let e=(0,U.useContext)(Zt),t=Object.keys(e),o={};for(let n of t)e[n].Provider&&(o[n]={value:(0,U.useContext)(e[n]),Provider:e[n].Provider});return o}function Fa(e){let t=Object.keys(e),o=e.children;for(let n of t){if(n==="children")continue;let{value:r,Provider:a}=e[n];o=(0,le.jsx)(a,{value:r,children:o})}return o}function fl(e){let t=(0,U.useContext)(Zt),o=(0,U.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,le.jsx)(Zt.Provider,{value:o,children:e.children})}function eo(){return{VaultContext:(0,U.useContext)(ke),ResourceContext:(0,U.useContext)(Nt),SimpleViewerReactContext:(0,U.useContext)(ht),VisibleCanvasReactContext:(0,U.useContext)(We),AuthRContext:(0,U.useContext)(Ye),SearchReactContext:(0,U.useContext)(gt),ReactEventContext:(0,U.useContext)(at),ContextBridgeReactContext:(0,U.useContext)(Zt),StrategyReactContext:(0,U.useContext)(Ve),AtlasStoreReactContext:(0,U.useContext)(Qe)}}function to(e){return(0,le.jsx)($e,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,le.jsx)(We.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,le.jsx)(ht.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,le.jsx)(at.Provider,{value:e.bridge.ReactEventContext,children:(0,le.jsx)(Qe.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,le.jsx)(Ye.Provider,{value:e.bridge.AuthRContext,children:(0,le.jsx)(gt.Provider,{value:e.bridge.SearchReactContext,children:(0,le.jsx)(Zt.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,le.jsx)(Ve.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,le.jsx)(Fa,{...e.custom,children:e.children}):e.children})})})})})})})})})}var Tt=require("react/jsx-runtime");function tn({annotation:e,target:t,children:o,dismissable:n,isOpen:r,onOpenChange:a,placement:i}){let s=eo(),l=Jt(),{refs:c,floatingStyles:u,context:d}=(0,ie.useFloating)({open:r,onOpenChange:a,nodeId:e.id,placement:i||"bottom",middleware:[(0,ie.offset)(10),(0,ie.shift)(),(0,ie.flip)({mainAxis:!0})],whileElementsMounted:ie.autoUpdate}),p=(0,ie.useDismiss)(d),{getReferenceProps:g,getFloatingProps:x}=(0,ie.useInteractions)([n?p:null].filter(m=>m!==null));return(0,Tt.jsxs)($a.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Tt.jsx)("div",{ref:c.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,Wa.createPortal)((0,Tt.jsx)(to,{bridge:s,custom:l,children:(0,Tt.jsx)("div",{ref:c.setFloating,style:u,...x(),children:o})}),document.getElementById("atlas-floating-ui"))]})}var oo=require("react/jsx-runtime"),Ya=(0,_a.create)()(e=>({isMenuOpen:!1,menuPosition:{x:0,y:0},setMenuPosition(t){e({menuPosition:t})},toggle(t){e(o=>({isMenuOpen:!o.isMenuOpen,menuPosition:t}))},open(t){e({isMenuOpen:!0,menuPosition:t})},setIsMenuOpen(t){e(typeof t=="function"?o=>({isMenuOpen:t(o.isMenuOpen)}):{isMenuOpen:t})},close(){e({isMenuOpen:!1})}}));function no(e,t,o){let{isMenuOpen:n,setIsMenuOpen:r,close:a,open:i,menuPosition:s,setMenuPosition:l,toggle:c}=Ya(),u=(0,Ua.useCallback)(g=>{o&&(g.preventDefault(),g.stopPropagation(),c(g.atlas))},[c,o]);return[(0,oo.jsx)(oo.Fragment,{children:o&&n&&(0,oo.jsx)(tn,{dismissable:!0,placement:"bottom-start",isOpen:n,onOpenChange:r,annotation:{id:e},target:{x:s.x,y:s.y,height:1,width:1},children:n&&o({canvasId:t,position:s,close:()=>r(!1)})})}),{onContextMenu:u},{open:i,close:a,toggle:c,isMenuOpen:n,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var Ka=require("zustand");function Cr(){let e=V();return(0,Ka.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var X=require("react/jsx-runtime");function br({theme:e,renderContextMenu:t,children:o}){let n=V(),r=P(),a=(0,Se.useStore)(n,R=>R.polygon),i=(0,Se.useStore)(n,R=>R.polygonState.currentTool),s=(0,Se.useStore)(n,R=>R.mode),l=(0,Se.useStore)(n,R=>R.changeMode),c=(0,Se.useStore)(n,R=>R.polygonState.transitioning),{enabled:u,requestId:d}=(0,Se.useStore)(n,R=>R.tool),p=(0,on.useMemo)(()=>Ee(a),[a]),g=Cr(),[x,m]=no("editing-annotation",r?.id,t),C=g?.annotationPopup||o||(0,X.jsx)(Ga,{}),y=g?.svgTheme||e,f=()=>{l("sketch")};if(!u||!r||!d||!a)return null;let h=p&&a.id&&!c&&(i==="pointer"||i==="hand"||!a.open)?(0,X.jsx)(tn,{annotation:a,target:p,children:C}):null,b="shape";return s==="explore"?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(b,{id:`shape-${a.id}`,points:a.points,open:a.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{":hover":{backgroundColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderWidth:"4px",borderColor:"rgba(255, 255, 255, .4)"},...m}),(0,X.jsx)(b,{id:`shape-${a.id}`,points:a.points,open:a.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),h]}):(0,X.jsxs)(X.Fragment,{children:[t?(0,X.jsx)(b,{id:`shape-${a.id}`,points:a.points,open:a.open,target:{x:0,y:0,width:r.width,height:r.height},...m}):null,(0,X.jsx)(qa,{image:r,theme:y}),h,x]})}function Ga(){let e=V(),t=(0,Se.useStore)(e,i=>i.changeMode),o=(0,Se.useStore)(e,i=>i.mode),n=(0,Se.useStore)(e,i=>i.completeRequest),r=(0,Se.useStore)(e,i=>i.tool),a=()=>{(0,on.startTransition)(()=>{n()})};return r.enabled?(0,X.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[o!=="sketch"&&(0,X.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,X.jsx)("button",{className:"svg-tools-button",onClick:a,children:"Save"})]}):null}var He=require("react");var It=require("react");var ja=require("@iiif/helpers");function gl(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function ro(e,t){let{selector:o,source:n}=(0,ja.expandTarget)(t);if(n.id!==e.id)return[null,n];let r={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[o?o.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:o.temporal,spatial:r.spatial}:o:null,n]}var Rr={makeChoice:()=>{}},io={type:"unknown"},L=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Pr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var ao=require("react");function hl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function Qa(e,t){return N(o=>{let n=[];if(!e)return n;let r=Object.keys(o.iiif.entities.AnnotationPage);for(let a of r)if(!t||t.indexOf(a)!==-1){let i=hl(o,a);i&&i.views&&i.views[e]&&n.push(a)}return n},[e,t])}function Ar({canvas:e,manifest:t,all:o,canvases:n}){let r=[];if(t)for(let a of t.annotations)r.indexOf(a.id)===-1&&r.push(a.id);if(o){if(n&&n.length)for(let a of n)for(let i of a.annotations)r.indexOf(i.id)===-1&&r.push(i.id)}else if(e)for(let a of e.annotations)r.indexOf(a.id)===-1&&r.push(a.id);return r}function yl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function so(e,t={}){let o=w(),n=F(),r=P(),a=Ue(),i=(0,ao.useMemo)(()=>Ar({all:t.all,manifest:n,canvas:r,canvases:a}),[t.all,r,a,n]),s=Qa(e,t.all?void 0:i),l=(0,ao.useCallback)(u=>{e&&o.setMetaValue([u,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,o]),c=(0,ao.useCallback)((u,d={})=>{if(!e)return;let p=o.getState(),g=[];if(d?.deselectOthers){let x=Object.keys(p.iiif.entities.AnnotationPage);for(let m of x){let C=yl(p,m);C&&C.views&&C.views[e]&&g.push(m)}}for(let x of g)l(x);o.setMetaValue([u,"annotationPageManager","views"],x=>x&&x[e]?x:{...x||{},[e]:!0})},[e,l,o]);return{availablePageIds:i,enabledPageIds:s,setPageEnabled:c,setPageDisabled:l}}function Tr(e,t){return N((o,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var Xa=G(require("mitt"),1),Za=require("react"),Ja=require("zustand");var vl=(0,Ja.createStore)((e,t)=>({loaded:{},setLoaded:(o,n="done")=>{e(r=>({loaded:{...r.loaded,[o]:n}}))}})),Sl=(0,Xa.default)();Sl.on("loaded",e=>{vl.getState().setLoaded(e.imageServiceId)});function lo(){let e=bt(),t=ma();return[(0,Za.useCallback)((n,{height:r,width:a})=>n&&e(n,{height:r,width:a},!0),[e]),t]}var lt=require("react");function st(e={}){let t=Ft(),o=P(e.canvasId?{id:e.canvasId}:void 0);return N((n,r)=>{if(!o)return[];if(t&&e.enableSingleAnnotation)return[t];let a=r.get(o.items),i=[];for(let s of a)i.push(...r.get(s.items));return i},[o])}var es=require("@iiif/helpers/painting-annotations");function Ir(e,t=[]){let o=w(),n=(0,lt.useMemo)(()=>(0,es.createPaintingAnnotationsHelper)(o),[]),r=st({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,i]=(0,lt.useState)(e?.defaultChoices||[]),s=(0,lt.useMemo)(()=>n.getPaintables(r,a),[o,r,a,...t]),c={makeChoice:(0,lt.useCallback)((u,{deselectOthers:d=!0,deselect:p=!1}={})=>{s.choice&&i(g=>{if(p){let m=g.filter(C=>C!==u);if(m.length===0){let C=s.items[0].resource.id;return C?[C]:[]}return m}if(d)return[u];let x=[...g];if(x.length===0&&s.items.length){let m=s.items[0].resource.id;m&&x.push(m)}return g.indexOf(u)!==-1?g:[...g,u]})},[s.choice])};return[s,c]}var xl=["model/gltf-binary"];function wr(e,t){let o=t.items[0],n=o.resource;return n.format?xl.indexOf(n.format)===-1?L(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:o.annotationId,annotation:o.annotation}:L("Unknown format")}function ts(e,t){let o=t.items,n=o[0];if(o.length===0||!n)return L("No audio");if(!e.duration)return L("No duration on canvas");if(o.length>1)return L("Only one audio source supported");let r=n.resource;return r?("format"in r||(r.format="audio/mpeg"),{type:"media",media:{annotationId:n.annotationId,annotation:n.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}):L("Unknown audio")}var os=require("@iiif/parser/image-3");var kr=require("@iiif/helpers/annotation-targets");function co(e,t,o){let n=[];for(let r of t.items){let a=r.resource&&r.resource.type==="SpecificResource"?r.resource.source:r.resource;if(!a.id)return L("No resource Identifier");let i;if(a.service){let m=(0,os.getImageServices)(a);m[0]&&(i=o(m[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[l,c]=ro(e,r.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=r.resource.width&&r.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:r.resource.width,height:r.resource.height}}:void 0,p=r.resource.type==="SpecificResource"?(0,kr.expandTarget)(r.resource):null;if(r.selector){let m=(0,kr.expandTarget)({type:"SpecificResource",source:r.resource,selector:r.selector});m&&(p=m)}let g=p&&p.selector&&(p.selector.type==="BoxSelector"||p.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:p.selector.spatial.x,y:p.selector.spatial.y,width:p.selector.spatial.width,height:p.selector.spatial.height}}:void 0;i&&!i.id&&(i.id=i["@id"]);let x={id:a.id,type:"Image",annotationId:r.annotationId,annotation:r.annotation,width:Number(l||g?a.width:e.width),height:Number(l||g?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:g||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};n.push(x)}return{type:"images",image:n[0],images:n,choice:t.choice}}function ns(e,t={},o){let n=e.language||o||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[n]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(r=>ns(r,t,n))}return t}function uo(e,t){let o=[];return t.items.forEach(n=>{if(n.resource){let[r]=ro(e,n.target);o.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:ns(n.resource),target:r})}}),{type:"textual-content",items:o}}var nn=require("@iiif/helpers"),Cl=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function mo(e,t,o){let n=t.items.filter(g=>g.type==="video"),r=n[0],a=!1;if(e.duration||(a=!0),n.length>1||!r)return L("Only one video source supported");let i=n[0]?.resource,s=!!(i.service||[]).find(g=>(g.profile||"").includes("youtube.com"));if(!s&&a)return L("Video does not have duration");if(!i)return L("Unknown video");if((!i.format||i.format==="text/html")&&!s)return L("Video does not have format");let l=[],c=o.get(e.annotations||[]);for(let g of c){let x=o.get(g.items||[]);for(let m of x)if((m.motivation?Array.isArray(m.motivation||"")?m.motivation:[m.motivation]:[]).includes("supplementing")){let y=o.get(m.body||[]);for(let f of y){let h=f;if(h.type==="Choice")for(let b of h.items){let R=o.get(b);R.format==="text/vtt"&&l.push({id:R.id,type:"Text",format:"text/vtt",label:R.label,language:R.language})}else h.format==="text/vtt"&&l.push({id:h.id,type:"Text",format:"text/vtt",label:h.label,language:h.language})}}}let u={annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:i.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},d=(0,nn.expandTarget)(r.target);d.selector&&d.selector.type==="TemporalBoxSelector"&&(u.target=d.selector);let{selector:p}=(0,nn.parseSelector)(r.selector);if(p===null){let g=u.target.temporal.startTime,m=(u.target.temporal.endTime||e.duration)-g;u.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:m}}}else p.type==="TemporalSelector"&&(u.selector=p);if(s){u.type="VideoYouTube";let g=i.id.match(Cl);if(!g[1])return L("Video is not known youtube video");u.youTubeId=g[1]}return{type:"media",media:u,annotations:{pages:[]},captions:l}}function Mr(e,t,o,n){let r={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},a={type:"complex-choice",items:[]};function i(c){c.choice&&(c.choice.type==="complex-choice"?a.items.push(...c.choice.items):a.items.push(c.choice))}for(let c of t.items){if(c.type==="image"){let u=co(e,{choice:null,allChoices:null,types:["image"],items:[c]},o);if(u.type==="images"){i(u),r.items.push(u.image);let d={id:u.image.annotationId,type:"enter",resourceType:"image",time:u.image.target?.temporal?.startTime||0};r.keyframes.push(d);let p={id:u.image.annotationId,type:"exit",resourceType:"image",time:u.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(c.type==="textualbody"){let u=uo(e,{choice:null,allChoices:null,types:["textualbody"],items:[c]});if(u.type==="textual-content"){i(u);let d=u.items[0];r.items.push(d);let p=d.target,g={id:d.annotationId,type:"enter",resourceType:"text",time:p.temporal?.startTime||0};r.keyframes.push(g);let x={id:d.annotationId,type:"exit",resourceType:"text",time:p.temporal?.endTime||e.duration||0};r.keyframes.push(x)}}if(c.type==="video"){let u=mo(e,{choice:null,allChoices:null,types:["video"],items:[c]},n);if(u.type==="media"){i(u);let d=u.media;r.items.push(d);let p={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(p);let g={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}}r.keyframes.sort((c,u)=>c.time-u.time);let s=[],l=[];for(let c of r.keyframes){if(c.resourceType==="image"||c.resourceType==="text"){l.push(c);continue}if(c.type==="enter"){s.length===0&&(c.isPrime=!0),s.push(c),l.push(c);continue}if(c.type==="exit"&&(l.push(c),s=s.filter(u=>u.id!==c.id),s.length!==0)){let u=s[0],d={id:u.id,type:"change",isPrime:!0,resourceType:u.resourceType,time:c.time};l.push(d)}}return r.keyframes=l,a.items.length&&(r.choice=a),r}var rn={},Er={get(e){return e},setMetaValue([e,t,o],n){let r=Er.getResourceMeta(e,t),a=r?r[o]:void 0,i=typeof n=="function"?n(a):n;rn[e]={...rn[e]||{},[t]:{...(rn[e]||{})[t]||{},[o]:i}}},getResourceMeta:(e,t)=>{let o=rn[e];if(o)return t?o[t]:o},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(o=>o.json())},requestStatus(e){}};function Nr({canvas:e,paintables:t,supports:o,loadImageService:n,vault:r=Er}){if(!e)return io;if(t.types.length===0)return o.indexOf("empty")!==-1?Pr(e.width,e.height):io;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return o.indexOf("complex-timeline")===-1?L("Complex timeline not supported"):Mr(e,t,n,r);let a=t.types[0];return a==="image"?o.indexOf("images")===-1?L("Image not supported"):co(e,t,n):a==="Model"||a==="model"?o.indexOf("3d-model")===-1?L("3D not supported"):wr(e,t):a==="textualbody"?o.indexOf("textual-content")===-1?L("Textual content not supported"):uo(e,t):a==="sound"||a==="audio"?o.indexOf("media")===-1?L("Media not supported"):ts(e,t):a==="video"?o.indexOf("media")===-1?L("Media not supported"):mo(e,t,r):io}function Vr(e){let t=F(),o=P(),n=w(),r=Xt(),a=e?.emitter||r,[i,s]=lo(),{enabledPageIds:l}=so(e?.annotationPageManagerId||t?.id||o?.id,{all:!1}),c=Tr(l,"AnnotationPage"),u=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,p]=Ir(e,[s]);(0,It.useEffect)(()=>{let x=m=>{p.makeChoice(m.choiceId,{deselectOthers:m.deselectOthers,deselect:m.deselect})};return a.on("make-choice",x),()=>{a.off("make-choice",x)}},[]);let g=(0,It.useMemo)(()=>Nr({canvas:o,paintables:d,supports:u,loadImageService:i,vault:n}),[o,d,n,p.makeChoice]);return(0,It.useEffect)(()=>{let x=d.allChoices,m={canvasId:o?.id,manifestId:t?.id};x&&a.emit("choice-change",{choice:x,partOf:m})},[o?.id,d.allChoices]),(0,It.useMemo)(()=>g.type==="unknown"?[g,Rr]:[{...g,annotations:{pages:c}},p],[g,c])}var rs=require("@iiif/helpers");var Lr=require("react/jsx-runtime");function zr({strategies:e,registerActions:t,defaultChoices:o,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:a,renderViewerControls:i,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,throwOnUnknown:u,children:d}){let p=P(),g=w(),x=(0,He.useMemo)(()=>(0,rs.createStylesHelper)(g),[g]),[m,C]=Vr({strategies:e||["images"],defaultChoices:o?.map(({id:b})=>b)}),y="choice"in m?m.choice:void 0;if((0,He.useEffect)(()=>{t&&t(C)},[m.annotations]),(0,He.useEffect)(()=>{n&&n(y)},[y]),(0,He.useEffect)(()=>{if(o)for(let b of o)typeof b.opacity<"u"&&x.applyStyles({id:b.id},"atlas",{opacity:b.opacity})},[o]),m.type==="unknown"&&u)throw new Error(m.reason||"Unknown strategy");let f=(0,He.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:r||[],renderViewerControls:i,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:c||[]}),[r,a,i,s,l,c]),h=(0,He.useMemo)(()=>({strategy:m,actions:C,choices:"choice"in m?m.choice:[]}),[m,p]);return(0,Lr.jsx)(_t.Provider,{value:f,children:(0,Lr.jsx)(Ve.Provider,{value:h,children:d})})}var po=require("react"),Br=require("zustand");var wt=require("react");var qr=(0,wt.createContext)(()=>{});function is(e){let t=P(),o=(0,wt.useContext)(qr);(0,wt.useEffect)(()=>t&&t.id?(o(t.id,e),()=>o(t.id,-1)):()=>{},[t,e])}var as=require("react/jsx-runtime");function Or({x:e=0,y:t=0,keepCanvasScale:o=!0,renderContextMenu:n,children:r}){let{strategy:a}=O(),i=P(),s=V(),l=Dt(i,["deep-zoom"]),c=(0,Br.useStore)(s,m=>m.setCanvasRelativePosition),u=(0,Br.useStore)(s,m=>m.clearCanvasRelativePosition),[d,p]=no(`context-menu/${i?.id}`,i?.id,n),g=(0,po.useMemo)(()=>o?1:Math.max(1,...a.type==="images"?a.images.map(m=>(m.width||0)/m.target?.spatial.width):[]),[o,a]);(0,po.useEffect)(()=>{if(i)return c(i.id,{x:e,y:t,width:i.width,height:i.height}),()=>{u(i.id)}},[e,t,i,u,c]),(0,po.useEffect)(()=>{i&&s.getState().reset()},[s,i]),is(g);let x=a.type==="images"?a.images.length:0;return i?(0,as.jsxs)("world-object",{height:i.height,width:i.width,scale:g,x:e,y:t,...p,...l,children:[d,r]},`${i.id}/${a.type}/${x}`):null}var oe=require("react/jsx-runtime");function et({x:e,y:t,onChoiceChange:o,registerActions:n,defaultChoices:r,isStatic:a,renderViewerControls:i,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,mediaControlsDeps:d,strategies:p,throwOnUnknown:g,backgroundStyle:x,alwaysShowBackground:m,keepCanvasScale:C=!1,enableSizes:y=!1,enableYouTube:f=!0,onClickPaintingAnnotation:h,components:b={},children:R,annotationPopup:A,svgTheme:E,renderContextMenu:T,renderAnnotationContextMenu:z}){return(0,oe.jsxs)(zr,{throwOnUnknown:g,onChoiceChange:o,registerActions:n,strategies:p,defaultChoices:r,mediaControlsDeps:d,renderMediaControls:s,renderViewerControls:i,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,children:[(0,oe.jsxs)(Or,{keepCanvasScale:C,x:e,y:t,renderContextMenu:T,children:[(0,oe.jsx)(pr,{alwaysShowBackground:m,backgroundStyle:x}),(0,oe.jsx)(dr,{}),(0,oe.jsx)(gr,{}),(0,oe.jsx)(fr,{isStatic:a,enableSizes:y,onClickPaintingAnnotation:h}),(0,oe.jsx)(tr,{}),(0,oe.jsx)(jn,{}),(0,oe.jsx)(rr,{as:b.Audio}),(0,oe.jsx)(yr,{as:b.Video}),f?(0,oe.jsx)(vr,{}):null,(0,oe.jsx)(br,{theme:E,renderContextMenu:z,children:A}),R]}),(0,oe.jsx)(Qn,{})]})}var Hr=require("react/jsx-runtime");function ss(e){let t=P();return!t||!t.placeholderCanvas?null:(0,Hr.jsx)(ue,{canvas:t.placeholderCanvas.id,children:(0,Hr.jsx)(et,{renderViewerControls:e.renderViewerControls})})}var cs=require("@atlas-viewer/atlas"),ne=G(require("react"),1),us=require("react-error-boundary"),Dr=require("zustand");var an=require("react");function ls(e,t=2e3){let{currentSequenceIndex:o,sequence:n,items:r}=Ke(),a=P(),i=(0,an.useMemo)(()=>{let l=n[o]||[];return l.length===0&&a?[{id:a.id,type:"Canvas"}]:l.map(c=>r[c])},[n,o,a,r]),s=V();(0,an.useEffect)(()=>{let c=setInterval(()=>{if(e&&t!==-1){let u={x:e.x,y:e.y,width:e.width,height:e.height},d=s.getState().canvasRelativePositions,p={};for(let g of i){let x=d[g.id];if(x){let m=x.x,C=x.y,y=x.width,f=x.height,h={x:Math.max(m,u.x),y:Math.max(C,u.y),width:Math.min(m+y,u.x+u.width)-Math.max(m,u.x),height:Math.min(C+f,u.y+u.height)-Math.max(C,u.y)};h.width<=0||h.height<=0||(p[g.id]={x:h.x-x.x,y:h.y-x.y,width:h.width,height:h.height}),s.setState({canvasViewports:p})}}}},t);return()=>{clearTimeout(c)}},[i,e,s,t])}var kt=require("react/jsx-runtime");function sn({width:e,style:t,height:o,error:n,resetErrorBoundary:r}){return(0,kt.jsxs)("div",{style:{width:e,height:o,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,kt.jsx)("h3",{children:"Error occurred"}),(0,kt.jsx)("p",{children:n.message}),(0,kt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var H=require("react/jsx-runtime");function ln(e){let t=V();return(0,H.jsx)(St,{name:e.name,existing:t,children:(0,H.jsx)(bl,{...e})})}function bl({name:e,children:t,errorFallback:o,outerContainerProps:n={},worldScale:r,updateViewportTimeout:a,...i}){let s=V(),l=(0,Dr.useStore)(s,I=>I.mode),c=(0,Dr.useStore)(s,I=>I.setAtlasRuntime),[u,d]=(0,ne.useState)(),p=Jt(),g=eo(),x=o||sn,[m,C]=(0,ne.useState)({}),y=Object.entries(m),[f,h]=(0,ne.useState)({}),b=Object.entries(f),[R,A]=(0,ne.useState)({}),E=(0,ne.useMemo)(()=>r||Math.max(...Object.values(R)),[R]),T=(0,ne.useMemo)(()=>({maxOverZoom:E||1,...i.runtimeOptions||{}}),[E,i.runtimeOptions]);ls(u?.runtime,a);let z=(0,ne.useCallback)((I,q)=>{A(B=>{if(q===-1){let{[I]:J,...xe}=B;return xe}return{...B,[I]:q}})},[]),ce=(0,ne.useCallback)((I,q,B)=>{C(({[I]:J,...xe})=>q?{...xe,[I]:{element:q,props:B}}:xe)},[]),M=(0,ne.useCallback)((I,q,B)=>{h(({[I]:J,...xe})=>q?{...xe,[I]:{element:q,props:B}}:xe)},[]);return(0,H.jsxs)(us.ErrorBoundary,{resetKeys:[],fallbackRender:I=>(0,H.jsx)(x,{...i,...I}),children:[(0,H.jsx)(cs.AtlasAuto,{...i,mode:l,containerProps:{style:{position:"relative"},...i.containerProps||{}},htmlChildren:(0,H.jsx)(H.Fragment,{children:y.map(([I,{element:q,props:B}])=>(0,H.jsx)(ne.default.Fragment,{children:(0,H.jsx)(q,{...B||{}})},I))}),onCreated:I=>{d(I),c(I.runtime),i.onCreated&&i.onCreated(I)},runtimeOptions:T,children:(0,H.jsx)(St,{name:e,existing:s,children:(0,H.jsx)(ve.Provider,{value:u,children:(0,H.jsx)(qr.Provider,{value:z,children:(0,H.jsx)(_n.Provider,{value:ce,children:(0,H.jsx)(Yn.Provider,{value:M,children:(0,H.jsx)(to,{bridge:g,custom:p,children:(0,H.jsx)(er,{children:t})})})})})})})}),(0,H.jsx)("div",{children:b.map(([I,{element:q,props:B}])=>(0,H.jsx)(ne.default.Fragment,{children:(0,H.jsx)(q,{...B||{}})},I))}),(0,H.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var Z=require("react/jsx-runtime"),Rl=(0,ct.forwardRef)(function(t,o){let n=F(),r=Ue(),a=Ke(),{ViewerControls:i,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,ct.useImperativeHandle)(o,()=>a,[a]),!n)return(0,Z.jsx)("div",{});let c=0,u=n.viewingDirection==="top-to-bottom",d=n.viewingDirection==="bottom-to-top",p=n.viewingDirection==="left-to-right",g=n.viewingDirection==="right-to-left",m=n.behavior.includes("continuous")?0:t.spacing||0,C=d||g,y=(0,ct.useMemo)(()=>C?[...r].reverse():r,[r,C]);return(0,Z.jsxs)(Z.Fragment,{children:[t.header,(0,Z.jsx)(W.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,children:y.map((f,h)=>{let b=0,R=0;return u?(b=c,c+=f.width+m):(R=c,c+=f.height+m),(0,Z.jsx)(ue,{canvas:f.id,children:(0,Z.jsx)(W.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:h===0&&i?()=>(0,Z.jsx)(i,{}):void 0,renderMediaControls:h===0&&s?()=>(0,Z.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:h===0&&l?()=>(0,Z.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:b,y:R,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},f.id)},f.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),W=(0,ct.forwardRef)(function({children:t,height:o,annotations:n,canvasProps:r,spacing:a,header:i,components:s,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:d,annotationPopup:p,name:g,svgTheme:x,updateViewportTimeout:m,renderContextMenu:C,keepCanvasScale:y,renderAnnotationContextMenu:f,...h},b){let R=_e();return(0,Z.jsx)(St,{name:g,children:(0,Z.jsx)($e,{vault:R,children:(0,Z.jsx)(qn,{...h,children:(0,Z.jsx)(Rl,{ref:b,height:o,components:s,spacing:a,canvasProps:r,annotations:n,header:i,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:d,annotationPopup:p,svgTheme:x,updateViewportTimeout:m,renderContextMenu:C,keepCanvasScale:y,renderAnnotationContextMenu:f,children:t})})})})});W.RenderImage=qe;W.RenderCanvas=et;W.RenderAnnotationPage=xt;W.RenderAnnotation=$t;W.Viewer=ln;W.CanvasBackground=Ko;W.Audio=No;W.Video=jo;W.Model=zo;W.AudioHTML=Kn;W.VideoHTML=hr;W.ModelHTML=Gn;W.PlaceholderCanvas=ss;W.getAtlasStoreByName=Fn;var ms=require("react");var de=require("react"),ut=require("zustand");function Fr(e){let[t,o]=(0,de.useState)(0),n=V(),r=(0,ut.useStore)(n,R=>R.tool.enabled),a=(0,ut.useStore)(n,R=>R.tool.requestId),i=(0,ut.useStore)(n,R=>R.getRequestId),s=(0,ut.useStore)(n,R=>R.requestAnnotation),l=(0,ut.useStore)(n,R=>R.completeRequest),c=(0,ut.useStore)(n,R=>R.cancelRequest),u=(0,de.useRef)(e?.onSuccess);u.current=e?.onSuccess;let[d,p]=(0,de.useState)(!1),[g,x]=(0,de.useState)(null),[m,C]=(0,de.useState)(null),y=r&&a!==m,f=r&&a===m,h=(0,de.useCallback)(async(R,A)=>{if(m){let E=u.current;p(!0);let T=await s(R,{...A,requestId:m});if(T)return E?.(T),o(ce=>ce+1),p(!1),x(T),T;let z={id:m,cancelled:!0,...Ht(R)};return E?.(z),x(z),o(ce=>ce+1),p(!1),z}return null},[s,m]),b=(0,de.useCallback)(()=>{x(null),p(!1)},[]);return(0,de.useEffect)(()=>{let R=i();return C(R.requestId),()=>{R.clear()}},[t]),{id:t,busy:y,isPending:d,isActive:f,requestId:m,requestAnnotation:h,cancelRequest:()=>m?c(m):void 0,completeRequest:()=>m?l(m):void 0,reset:b,data:g}}var Pl=[{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 $r(e){let{id:t,data:o,requestAnnotation:n,cancelRequest:r,isPending:a}=Fr({onSuccess:i=>{e.updateShape(i.polygon)}});return(0,ms.useEffect)(()=>(n({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var K=require("react"),Wr=G(require("mitt"),1),ds=require("react/jsx-runtime"),cn=(0,K.createContext)((0,Wr.default)());cn.displayName="SelectorHelper";function Al({children:e}){return(0,ds.jsx)(cn.Provider,{value:(0,K.useMemo)(()=>(0,Wr.default)(),[]),children:e})}function Tl(){return(0,K.useContext)(cn)}function Ur(e){let t=_r(),[o,n]=(0,K.useState)(!1);(0,K.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,K.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,K.useCallback)(i=>{t.emit("click",{selectorId:e,event:i})},[e,t]),a=(0,K.useCallback)(i=>{t.emit("hover",{selectorId:e,event:i})},[e,t]);return{controller:t,onClick:r,onHover:a,isHighlighted:o}}function _r(){let e=(0,K.useContext)(cn);return(0,K.useMemo)(()=>({withSelector(t){return{on(o,n){let r=a=>{a&&a.selectorId===t&&n(a)};return e.on(o,r),()=>{e.off(o,r)}},emit(o,n){e.emit(o,{...n,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Il(){let e=_r();return(0,K.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(o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(o,n){return e.withSelector(t).on(o,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(t){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(t,o){return e.on(t,o)}}),[e])}var Mt=require("react"),ps=require("react/jsx-runtime");function Yr(){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 Kr=(0,Mt.createContext)(Yr());Kr.displayName="AnnotationStyle";function Gr(){return(0,Mt.useContext)(Kr)}function wl({theme:e,children:t}){let o=(0,Mt.useMemo)(()=>e||Yr(),[e]);return(0,ps.jsx)(Kr.Provider,{value:o,children:t})}var jr=require("react/jsx-runtime");function kl(e){let t=P(),o=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:a,isHighlighted:i}=Ur(e.id),s=Gr(),l=i?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(n){let c="shape",u=e.polygon,d=u.open;return u?(0,jr.jsx)(c,{id:`shape-${r}`,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,jr.jsx)($r,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var fs=require("@atlas-viewer/atlas");var un=require("react"),fo=require("react/jsx-runtime"),Ml=(0,un.forwardRef)(function({canvasId:t},o){let n=(0,fs.useCanvas)(),r=so(t||n?.id),a=w();return(0,un.useImperativeHandle)(o,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,fo.jsx)(fo.Fragment,{children:r.enabledPageIds.map(i=>(0,fo.jsx)(W.RenderAnnotationPage,{page:a.get(i)},i))})});var hs=require("react");var gs=require("react");var $=require("react/jsx-runtime");function go({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:a,classes:i={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:c="",separator:u,tableFooter:d,tableHeader:p}){let g=(0,gs.useMemo)(()=>{let m=(t||[]).reduce((y,f)=>[...y,...f.keys],[]),C={};for(let y of e){let f=y&&y.label?Object.values(y.label):[];for(let h of f)if(h&&h.length&&(m.indexOf(`metadata.${h[0]}`)!==-1||m.length===0)&&y){let b=`metadata.${h[0]}`;C[b]=C[b]?C[b]:[],C[b].push(y);break}}return C},[t,e]);return Object.keys(g).length===0&&n?(0,$.jsx)($.Fragment,{children:a})||(0,$.jsx)("div",{className:i.empty,children:s}):t&&t.length?(0,$.jsxs)("table",{className:i.container,children:[p,(0,$.jsx)("tbody",{children:t.map((m,C)=>{let y=[];for(let f of m.keys)for(let h of g[f]||[])y.push((0,$.jsx)(se,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:h.value},C+"__"+f));return y.length===0?null:(0,$.jsxs)("tr",{className:i.row,children:[(0,$.jsx)("td",{className:i.label,style:o?{minWidth:o}:{},children:(0,$.jsx)(se,{enableDangerouslySetInnerHTML:r,separator:u,defaultText:c,children:m.label})}),(0,$.jsx)("td",{className:i.value,children:y})]},C)})}),d]}):(0,$.jsxs)("table",{className:i.container,children:[p,(0,$.jsx)("tbody",{children:e&&e.length?e.map((m,C)=>m?(0,$.jsxs)("tr",{className:i.row,children:[(0,$.jsx)("td",{className:i.label,style:o?{minWidth:o}:{},children:(0,$.jsx)(se,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:m.label})}),(0,$.jsx)("td",{className:i.value,children:(0,$.jsx)(se,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:m.value})})]},C):null):null}),d]})}var ys=require("react/jsx-runtime");function El(e){let t=F(),o=P(),n=zt(),r=(0,hs.useMemo)(()=>{let a=t?.metadata||[],i=o?.metadata||[],s=n?.metadata||[];return[...a,...i,...s]},[t,o,n]);return(0,ys.jsx)(go,{metadata:r,...e})}var pn=require("react");var mn=require("@iiif/parser/image-3"),vs=require("react");function dn(e,t={},o=[]){return(0,vs.useMemo)(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let r=(0,mn.createImageServiceRequest)(e);return(0,mn.imageServiceRequestToString)({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:n||"default",prefix:r.prefix,originalPath:r.originalPath})},[...o])}var ho=require("react/jsx-runtime");function Nl(e){let t=typeof e.src=="string"?e.src:e.src.id,o=Yt(),[n,r]=(0,pn.useState)(!1),a;if(t){let s=o.loadServiceSync({id:t});s&&(a=s)}!a&&!n&&o.loadService({id:t}).then(()=>{r(!0)});let i=dn(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,pn.useEffect)(()=>()=>{r(!1)},[t]),i?(0,ho.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):(0,ho.jsx)(Ss,{...e,fetchImageService:!1})}function Ss(e){if(e.fetchImageService)return(0,ho.jsx)(Nl,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=dn(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?(0,ho.jsx)("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}var fn=require("react"),xs=require("react-error-boundary");var De=require("react/jsx-runtime");function Vl({src:e,errorFallback:t,interactive:o,skipSizes:n,children:r,renderViewerControls:a,viewControlsDeps:i,fluid:s,x:l,y:c,...u}){let[d,p]=(0,fn.useState)(),g=t||sn,[x,m]=lo(),C=(0,fn.useMemo)(()=>{let f=m[e]?.status,h=x({id:e},{});return h?.height&&h.width&&f!=="loading"?{id:e,width:h.width,height:h.height,service:h,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}}}:null},[x,e,m]);if(!C||!C.height||!C.width)return null;let y=s?void 0:u.homePosition?u.homePosition.width/u.homePosition.height:C.width/C.height;return(0,De.jsx)(xs.ErrorBoundary,{resetKeys:[],fallbackRender:f=>(0,De.jsx)(g,{...u,...f}),children:(0,De.jsx)(ln,{...u,aspectRatio:y,containerProps:{style:{position:"relative"},...u.containerProps||{}},onCreated:f=>{p(f),u.onCreated&&u.onCreated(f)},children:(0,De.jsxs)(ve.Provider,{value:d,children:[(0,De.jsx)(qe,{image:C,id:C.id,isStatic:!o,x:l,y:c},C.id),(0,De.jsx)(Ll,{viewerPreset:d,renderViewerControls:a,image:C,src:e,viewControlsDeps:i}),r]})})})}function Ll({viewerPreset:e,renderViewerControls:t,image:o,src:n,viewControlsDeps:r}){return Y(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,ve.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[n,e,...r||[]]),null}var Cs=require("react/jsx-runtime");function zl(e){let t=F();return(0,Cs.jsx)(go,{metadata:t?.metadata||[],...e})}var gn=require("react");var Qr=G(require("react-lazy-load-image-component"),1);var bs=require("@iiif/helpers/i18n"),ae=require("react/jsx-runtime"),{LazyLoadComponent:ql}=Qr||Qr.default;function Xr(e){let{size:t,visible:o,classes:n,canvasId:r,figure:a}=e,i=t?.width||128,s=t?.height||t?.width||128,l=(0,ae.jsx)(Bl,{...e}),c=(0,ae.jsx)(ql,{threshold:300,style:{height:s,width:i},visibleByDefault:o,children:r?(0,ae.jsx)(ue,{canvas:r,children:l}):l});return a?(0,ae.jsx)("figure",{className:n?.figure,children:c}):c}function Bl({fallback:e,size:t,classes:o,showLabel:n,alt:r,dereference:a=!1}){let i=P(),s=t?.width||128,l=t?.height||t?.width||128,c=r||(0,bs.getValue)(i?.label)||"",u=Ae({width:s,height:l,allowUnsafe:!0},a);return!u||u.type!=="fixed"?(0,ae.jsx)(ae.Fragment,{children:e}):(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("div",{className:o?.imageWrapper,children:(0,ae.jsx)("img",{className:o?.img,src:u.id,alt:c})}),n?(0,ae.jsx)(se,{as:"figcaption",className:o?.label,children:i?.label}):null]})}var Et=require("react/jsx-runtime");function Ol({scrollBehaviour:e,dereference:t,flat:o,size:n,classes:r={},showLabel:a,figure:i,fallback:s}){let l=(0,gn.useRef)(null),{items:c,sequence:u,currentSequenceIndex:d,setSequenceIndex:p}=Ke(),g={row:r.selected?.row||r.row,item:r.selected?.item||r.item,figure:r.selected?.figure||r.figure,img:r.selected?.img||r.img,label:r.selected?.label||r.label,imageWrapper:r.selected?.imageWrapper||r.imageWrapper};(0,gn.useLayoutEffect)(()=>{if(!l.current)return;let m=l.current.querySelector("[data-selected=true]");m&&m.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[d]);let x=[];for(let m of u){let C=[],y=u[d]===m;for(let f of m){let h=c[f];C.push((0,Et.jsx)("div",{className:y?g.item:r.item,children:(0,Et.jsx)(Xr,{classes:y?g:r,canvasId:h.id,size:n,dereference:t,showLabel:a,figure:i,placeholder:(0,Et.jsx)("div",{style:{height:128,width:128}}),fallback:s})},f))}if(o){x.push(C);continue}x.push((0,Et.jsx)("div",{onClick:f=>{p(u.indexOf(m))},"data-selected":y,className:y?g.row:r.row,children:C},m.join("-")))}return(0,Et.jsx)("div",{ref:l,className:r.container,children:x})}var yo=require("zustand");function Zr(){let e=V(),t=(0,yo.useStore)(e,a=>a.completeRequest),o=(0,yo.useStore)(e,a=>a.polygonState.currentTool),n=(0,yo.useStore)(e,a=>a.polygonState.selectedStamp),r=(0,yo.useStore)(e,a=>a.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:n,switchTool:r}}var _=require("react/jsx-runtime"),Hl={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function Dl({showShapes:e=!0,enabled:t=Hl,classNames:o={},icons:n={}}){let{currentTool:r,switchTool:a,selectedStamp:i}=Zr();return(0,_.jsxs)(_.Fragment,{children:[r,(0,_.jsx)("button",{className:o.button,onClick:a.pointer,"data-active":r==="pointer",children:n.PointerIcon||"Pointer"}),(0,_.jsx)("button",{className:o.button,onClick:a.hand,"data-active":r==="hand",children:n.HandIcon||"Hand"}),e?(0,_.jsxs)(_.Fragment,{children:[t.box&&(0,_.jsx)("button",{className:o.button,onClick:a.box,"data-active":r==="box",children:n.BoxIcon||"Box"}),t.pen&&(0,_.jsx)("button",{className:o.button,onClick:a.pen,"data-active":r==="pen",children:n.PenIcon||"Pen"}),t.draw&&(0,_.jsx)("button",{className:o.button,onClick:a.draw,"data-active":r==="pencil",children:n.DrawIcon||"Draw"}),t.line&&(0,_.jsx)("button",{className:o.button,onClick:a.line,"data-active":r==="line",children:n.LineIcon||"Line"}),t.lineBox&&(0,_.jsx)("button",{className:o.button,onClick:a.lineBox,"data-active":r==="lineBox",children:n.LineBoxIcon||"LineBox"}),t.triangle&&(0,_.jsx)("button",{className:o.button,onClick:a.triangle,"data-active":r==="stamp"&&i?.id==="triangle",children:n.TriangleIcon||"Triangle"}),t.hexagon&&(0,_.jsx)("button",{className:o.button,onClick:a.hexagon,"data-active":r==="stamp"&&i?.id==="hexagon",children:n.HexagonIcon||"Hexagon"}),t.circle&&(0,_.jsx)("button",{className:o.button,"data-active":r==="stamp"&&i?.id==="circle",onClick:a.circle,children:n.CircleIcon||"Circle"})]}):null,t.delete&&(0,_.jsx)("button",{className:o.button,onClick:a.remove,children:n.DeleteForeverIcon||"Delete"})]})}var Rs=require("react/jsx-runtime");function Fl({annotation:e,children:t}){return(0,Rs.jsx)(ee,{value:{annotation:e},children:t})}var Ps=require("react/jsx-runtime");function $l({annotationPage:e,children:t}){return(0,Ps.jsx)(ee,{value:{annotationPage:e},children:t})}var As=require("react/jsx-runtime");function Wl({collection:e,children:t}){return(0,As.jsx)(ee,{value:{collection:e},children:t})}function Ul(e,t={}){return st(t)}var Ts=require("@atlas-viewer/atlas"),Fe=require("react");function _l({canvasId:e}={}){let t=(0,Ts.useCanvas)(),o=Ue(),n=(0,Fe.useMemo)(()=>e?[e]:t?[t.id]:o.map(c=>c.id),[e,t,o]),[r,a]=(0,Fe.useState)({}),i=Xt();(0,Fe.useEffect)(()=>{let c=u=>{let d=u.partOf.canvasId;d&&a(p=>({...p,[d]:u.choice}))};return i.on("choice-change",c),()=>{i.off("choice-change",c)}},[]);let s=(0,Fe.useMemo)(()=>{let c=[];for(let u of n){let d=r[u];d&&c.push({canvasId:u,choice:d})}return c},[n,r]),l=(0,Fe.useMemo)(()=>({makeChoice:(c,u)=>{i.emit("make-choice",{choiceId:c,...u})}}),[i]);return{choices:s,actions:l}}function Yl(e,t=!1){}function Kl(e){let o=j().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return N(r=>{let a=o?r.iiif.entities.Manifest[o]:void 0,i=a?.items||[];if(typeof e>"u")return i;let s=[];for(let l of a?.items||[])n.indexOf(l.id)!==-1&&s.push(l);return s},[n.join("/")])}var Is=require("react");function Gl(e,t=[]){let{id:o,selector:n}=e,r=j(),a=o||r.collection,i=N(s=>a?s.iiif.entities.Collection[a]:void 0,[a]);return(0,Is.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}var hn=require("react"),Jr=require("zustand");function jl(){let e=V(),t=(0,Jr.useStore)(e,n=>n.completeRequest),o=(0,Jr.useStore)(e,n=>n.cancelRequest);return(0,hn.useMemo)(()=>({saveAnnotation:()=>{(0,hn.startTransition)(()=>{t()})},cancelRequest:o}),[t,o])}var ws=require("react"),yn=require("zustand");function Ql({requestId:e}={}){let t=V(),o=(0,yn.useStore)(t,s=>s.metadata),n=(0,yn.useStore)(t,s=>s.tool.requestId),r=e||n,a=(0,yn.useStore)(t,s=>s.setMetadata),i=(0,ws.useCallback)(s=>a(s,r||void 0),[a,r]);return[r?o[r]||{}:{},i]}var ks=require("zustand");function Xl(e){let t=V(),o=(0,ks.useStore)(t,n=>n.tool.requestId);je("polygons.start-transition",n=>{e.requestId&&o!==e.requestId||e?.onStart?.(n.transitionIntent)},[o,e.requestId]),je("polygons.end-transition",n=>{e.requestId&&o!==e.requestId||e?.onEnd?.(n.transitionIntent,n.response)},[o,e.requestId]),je("polygons.transition",n=>{e.requestId&&o!==e.requestId||e?.onTransition?.(n.transitionIntent)},[o,e.requestId])}var vn=require("react"),Ms=require("@iiif/helpers/events");function Zl(e,t,o,n,r=[]){let a=w(),i=(0,vn.useMemo)(()=>(0,Ms.createEventsHelper)(a),[a]);(0,vn.useEffect)(()=>{let s=e;return s?(i.addEventListener(s,t,o,n),()=>{i.removeEventListener(s,t,o)}):()=>{}},[i,e,t,...r])}function Jl(e,t){let{id:o,isLoaded:n,error:r,resource:a,requestId:i,cached:s}=Lt(e,t);return{id:o,isLoaded:n,error:r,manifest:a,requestId:i,cached:s}}var ei=require("@iiif/parser/image-3");var Ce=require("react");function ti({cacheKey:e}={}){let t=P(),o=st(),n=w(),r=bt(),a=da(),[i,s]=(0,Ce.useState)(void 0),[l,c]=(0,Ce.useState)(!1),[u,d]=(0,Ce.useState)("idle"),[p,g]=(0,Ce.useState)(void 0),x=t?t.id:"undefined",m=(0,Ce.useMemo)(()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),b=(0,ei.getImageServices)(f)[0];return b&&r(b,{width:b.width||t.width,height:b.height||t.height},!0)||void 0}}catch(y){console.error(y)}},[x,e,t]),C=u==="success"&&i?i:m;return(0,Ce.useEffect)(()=>{(async()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),b=(0,ei.getImageServices)(f)[0];if(!b)return;c(!0),d("loading");try{let R=await a(b,{width:b.width||t.width,height:b.height||t.height})||void 0;s(R),d("success"),c(!1)}catch(R){d("error"),g(R)}}}catch(y){d("error"),g(y)}})()},[x,e]),(0,Ce.useMemo)(()=>({data:C,isFetching:l,status:u,error:p}),[C,l,u,p])}function ec(){let e=ti();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 Es=require("@iiif/helpers/styles"),Ns=require("react");function tc(){let e=w();return(0,Ns.useMemo)(()=>(0,Es.createStylesHelper)(e),[e])}function oc(e,t){let{x:o,y:n,width:r,height:a}=e,{x:i,y:s}=t,{width:l,height:c}=t;return o+r>i&&o<i+l&&n+a>s&&n<s+c}var Vs=G(require("tiny-invariant"),1);function nc(e,t){let o=e.boundingBox||Ee(e.polygon);if(e.polygon&&!yt(e.polygon.points)){let n=e.target||vt(e.polygon,t);return(0,Vs.default)(n?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:n.value}}return{type:"BoxSelector",spatial:o}}
|