react-iiif-vault 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var Qs=Object.create;var Io=Object.defineProperty;var Xs=Object.getOwnPropertyDescriptor;var Zs=Object.getOwnPropertyNames;var Js=Object.getPrototypeOf,el=Object.prototype.hasOwnProperty;var tl=(e,t)=>{for(var o in t)Io(e,o,{get:t[o],enumerable:!0})},To=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Zs(t))!el.call(e,r)&&r!==o&&Io(e,r,{get:()=>t[r],enumerable:!(n=Xs(t,r))||n.enumerable});return e},x=(e,t,o)=>(To(e,t,"default"),o&&To(o,t,"default")),Q=(e,t,o)=>(o=e!=null?Qs(Js(e)):{},To(t||!e||!e.__esModule?Io(o,"default",{value:e,enumerable:!0}):o,e)),ol=e=>To(Io({},"__esModule",{value:!0}),e);var S={};tl(S,{AnnotationContext:()=>nc,AnnotationPageContext:()=>rc,AnnotationStyleProvider:()=>vl,AtlasStoreProvider:()=>Pt,AtlasStoreReactContext:()=>ot,Auth:()=>Un,AuthProvider:()=>$n,AuthRContext:()=>Ze,AuthReactContext:()=>Mi,AuthReactContextActions:()=>Ei,CanvasAnnotations:()=>Yl,CanvasContext:()=>me,CanvasPanel:()=>U,CanvasStrategyProvider:()=>Xr,CanvasWorldObject:()=>ei,CollectionContext:()=>ic,CombinedMetadata:()=>Kl,ComplexTimelineProvider:()=>Cr,ContextBridge:()=>lo,ControlsReactContext:()=>Zt,CreateCustomShape:()=>ri,CustomContextBridge:()=>ns,CustomContextBridgeProvider:()=>El,DefaultEditingTools:()=>us,EventEmitterProvider:()=>gl,EventsProvider:()=>Ml,Image:()=>Ls,ImageService:()=>Gl,ImageServiceLoaderContext:()=>Sa,InnerViewerProvider:()=>Oi,LanguageProvider:()=>Al,LanguageString:()=>qa,LocaleString:()=>le,ManifestContext:()=>En,ManifestMetadata:()=>Xl,MediaPlayerProvider:()=>Qt,Metadata:()=>Ro,PolygonSelector:()=>_l,RangeContext:()=>Nn,ReactEmitterContext:()=>zo,ReactEventContext:()=>dt,ReactVaultContext:()=>Ne,RegionHighlight:()=>rr,Render3DModelStrategy:()=>mr,RenderAccompanyingCanvas:()=>dr,RenderAnnotation:()=>rt,RenderAnnotationEditing:()=>Hr,RenderAnnotationPage:()=>ze,RenderAnnotationStrategy:()=>yr,RenderAudioStrategy:()=>xr,RenderComplexTimelineStrategy:()=>kr,RenderEmptyStrategy:()=>Mr,RenderImageStrategy:()=>Er,RenderSvgEditorControls:()=>oc,RenderTextualContentStrategy:()=>Nr,RenderVideoStrategy:()=>Lr,RenderYouTubeStrategy:()=>zr,ResizeWorldItem:()=>or,ResourceProvider:()=>te,ResourceReactContext:()=>Ot,SelectorControllerProvider:()=>$l,SequenceThumbnails:()=>ec,SimpleViewerProvider:()=>Yn,SimpleViewerReactContext:()=>bt,SingleCanvasThumbnail:()=>ui,StrategyReactContext:()=>Be,ThumbnailFallbackImage:()=>ct,TranslationProvider:()=>Pl,TransliterationProvider:()=>Tl,VaultProvider:()=>je,ViewerPresetContext:()=>xe,VirtualAnnotationProvider:()=>hr,VisibleCanvasReactContext:()=>Ge,annotationResponseToSelector:()=>xc,authDetailsForResource:()=>Hn,createAtlasStore:()=>jn,createAuthStateStore:()=>Bn,createProbe:()=>On,defaultEmitter:()=>ts,defaultSvgTheme:()=>Xa,emptyActions:()=>Dr,emptyStrategy:()=>Fr,findAllCanvasesInRange:()=>Mo,findFirstCanvasFromRange:()=>Ai,findManifestSelectedRange:()=>rl,findSelectedRange:()=>Vn,flattenAnnotationPageIds:()=>$r,formatTime:()=>Ho,get3dStrategy:()=>_r,getAtlasStoreByName:()=>Xn,getComplexTimelineStrategy:()=>Kr,getDefaultAnnotationStyles:()=>Zn,getImageStrategy:()=>yo,getManifestSequence:()=>Eo,getParsedTargetSelector:()=>mo,getRenderingStrategy:()=>xo,getTextualContentStrategy:()=>vo,getVideoStrategy:()=>So,getVisibleCanvasesFromCanvasId:()=>il,hasAuth:()=>al,isBoxSelector:()=>hl,isRectangle:()=>Ct,isSvgSelector:()=>Fi,makeAccessServiceRequest:()=>zn,makeAccessTokenRequest:()=>No,parseSpecificResource:()=>Nl,polygonToTarget:()=>Rt,requestToAnnotationResponse:()=>_t,seraliseSupportedSelector:()=>qo,svgThemes:()=>Fl,targetIntersects:()=>Sc,unknownResponse:()=>po,unsupportedStrategy:()=>z,useAnnotation:()=>Kt,useAnnotationPage:()=>ir,useAnnotationPageManager:()=>go,useAnnotationStyles:()=>Yt,useAnnotationsAtTime:()=>ac,useAtlasContextMenu:()=>uo,useAtlasStore:()=>L,useAuthActions:()=>Ni,useAuthService:()=>Vi,useAuthStore:()=>St,useAuthToken:()=>ll,useAuthTokens:()=>Dn,useCanvas:()=>T,useCanvasChoices:()=>sc,useCanvasClock:()=>lc,useCanvasSequence:()=>Ln,useCanvasStartTime:()=>Xt,useCanvasSubset:()=>cc,useClosestLanguage:()=>Oa,useCollection:()=>uc,useComplexTimeline:()=>Rl,useContextBridge:()=>so,useContextMenuStore:()=>ls,useCreateLocaleString:()=>Il,useCurrentAnnotationActions:()=>mc,useCurrentAnnotationMetadata:()=>dc,useCurrentAnnotationRequest:()=>Or,useCurrentAnnotationTransition:()=>pc,useCurrentAuth:()=>sl,useCustomContextBridge:()=>ao,useDispatch:()=>pr,useEmitter:()=>Kn,useEvent:()=>tt,useEventEmitter:()=>ro,useEventListener:()=>fc,useExistingVault:()=>Xe,useExternalCollection:()=>gc,useExternalManifest:()=>Mn,useExternalResource:()=>Dt,useIIIFLanguage:()=>Xo,useImage:()=>bn,useImageService:()=>fi,useImageServiceLoader:()=>Jt,useImageTile:()=>hc,useIsAuthEnabled:()=>Wn,useLoadImageService:()=>ho,useLocaleString:()=>Ha,useManifest:()=>F,useMediaActions:()=>xl,useMediaElements:()=>bl,useMediaState:()=>Sl,usePaintables:()=>Ur,usePaintingAnnotations:()=>Me,usePolygonHelper:()=>qr,useRange:()=>Ft,useRemoteStylesheet:()=>er,useRenderControls:()=>oe,useRenderingStrategy:()=>Gr,useRequestAnnotation:()=>ni,useResourceContext:()=>X,useResourceEvents:()=>jt,useResources:()=>Wr,useSearchService:()=>_n,useSelectorController:()=>si,useSelectorEmitter:()=>Wl,useSelectorEvents:()=>ai,useSelectorHelper:()=>Ul,useSimpleMediaPlayer:()=>it,useSimpleViewer:()=>Je,useStaticRenderingStrategy:()=>yc,useStrategy:()=>O,useStyleHelper:()=>vc,useStyles:()=>nt,useStylesheetStore:()=>ji,useSvgEditor:()=>Br,useSvgEditorControls:()=>mi,useThumbnail:()=>Ie,useTranslations:()=>Pr,useTransliteration:()=>Rr,useVault:()=>w,useVaultEffect:()=>vr,useVaultSelector:()=>N,useViewerPreset:()=>to,useVirtualAnnotationPage:()=>fr,useVirtualAnnotationPageContext:()=>gr,useVisibleCanvases:()=>Qe});module.exports=ol(S);x(S,require("@iiif/helpers/annotation-targets"),module.exports);var ft=require("react");var ht=Q(require("react"),1),gi=require("react/jsx-runtime"),nl={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ot=ht.default.createContext(nl),X=()=>(0,ht.useContext)(Ot);function te({value:e,children:t}){let o=X(),n=(0,ht.useMemo)(()=>({...o,...e}),[e,o]);return(0,gi.jsx)(Ot.Provider,{value:n,children:t})}var hi=require("react/jsx-runtime");function me({canvas:e,children:t}){return(0,hi.jsx)(te,{value:{canvas:e},children:t})}var wo=Q(require("react"),1),Ht=require("@iiif/helpers/vault");var kn=require("react/jsx-runtime"),Ne=wo.default.createContext({vault:null,setVaultInstance:e=>{}});function je({vault:e,vaultOptions:t,useGlobal:o,resources:n,children:r}){let[i,a]=(0,wo.useState)(()=>e||(o?(0,Ht.globalVault)(t):t?new Ht.Vault(t):new Ht.Vault));return(0,kn.jsx)(Ne.Provider,{value:{vault:i,setVaultInstance:a},children:(0,kn.jsx)(te,{value:n||{},children:r})})}var vi=require("react"),Si=Q(require("react"),1);var yi=require("react"),w=()=>{let{vault:e}=(0,yi.useContext)(Ne);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var ko=require("react");function N(e,t=[]){let o=w(),[n,r]=(0,ko.useState)(()=>e(o.getState(),o));return(0,ko.useEffect)(()=>o.subscribe(i=>e(i,o),i=>{r(i)},!1),t),n}var Ge=Si.default.createContext([]);function Qe(){let e=(0,vi.useContext)(Ge);return N(t=>e.map(o=>t.iiif.entities.Canvas[o]).filter(Boolean),[e])}var xi=require("@iiif/helpers/vault"),bi=require("react");function Xe(e){let t=(0,bi.useContext)(Ne);return e||(t&&t.vault?t.vault:(0,xi.globalVault)())}var Ci=require("react");function F(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=w(),a=o||r.manifest,s=N(l=>a?l.iiif.entities.Manifest[a]:void 0,[a]);return(0,Ci.useMemo)(()=>{if(s)return n?n(s):s},[s,n,...t])}var Bi=require("react"),Lo=require("react");var Ve=require("react");function Dt(e,{noCache:t=!1}={}){let o=typeof e=="string"?e:e.id,n=Xe(),[r,i]=(0,Ve.useState)(o),[a,s]=(0,Ve.useState)(void 0),l=(0,Ve.useMemo)(()=>n.get(o,{skipSelfReturn:!0})||void 0,[o,n]),[c,m]=(0,Ve.useState)(l);return(0,Ve.useEffect)(()=>{(async()=>{try{let u=l&&!t?l:await n.load(o),d=u?u.id||u["@id"]:null;u&&r!==d&&i(d),m(u)}catch(u){s(u)}})()},[o,t]),{isLoaded:!!c,id:r,requestId:o,error:a,resource:c,cached:!!(c&&c===l)}}function Mn(e,t){let{id:o,isLoaded:n,error:r,resource:i,requestId:a,cached:s}=Dt(e,t);return{id:o,isLoaded:n,error:r,manifest:i,requestId:a,cached:s}}var Ri=require("react/jsx-runtime");function En({manifest:e,children:t}){return(0,Ri.jsx)(te,{value:{manifest:e},children:t})}var Pi=require("react/jsx-runtime");function Nn({range:e,children:t}){return(0,Pi.jsx)(te,{value:{range:e},children:t})}function Ai(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=Ai(e,e.get(o));if(n)return n}}return null}function Mo(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(...Mo(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 rl(e,t,o){for(let n of t.structures){let r=Vn(e,e.get(n),o);if(r)return r}return null}function Vn(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 i=Vn(e,e.get(n),o);if(i)return i}}return null}function il(e,t,o,n=!1){let r=t.behavior,i=o?e.get(o):null;if(!i)return[];let a=i.behavior,s=n?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),c=s||l?!1:r.includes("individuals"),m=a.includes("facing-pages"),u=a.includes("non-paged");if(m||u||c||n)return[{id:i.id,type:"Canvas"}];let[d,g]=Eo(e,t);if(l)return d;let v=d.findIndex(p=>p.id===o);if(v===-1)return[];for(let p of g)if(p.includes(v))return p.map(b=>d[b]);return[{id:i.id,type:"Canvas"}]}function Eo(e,t,{disablePaging:o,skipNonPaged:n}={}){let r=t.behavior,i=r.includes("paged"),a=i?!1:r.includes("continuous"),s=i||a?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:Mo(e,t);if(a)return[l,[l.map((v,p)=>p)]];if(s||!i||o)return[l,l.map((v,p)=>[p])];let c=[],m=[],u=()=>{m.length&&(c.push([...m]),m=[])},d=0,g=!1;for(let v=0;v<l.length;v++){let p=e.get(l[v]);if(p.behavior.includes("non-paged")){v===d&&d++,n||(u(),c.push([v]),u());continue}if(v===d||p.behavior.includes("facing-pages")){m.length&&(g=!0),u(),c.push([v]),u();continue}if(m.push(v),g){u(),g=!1;continue}m.length>1&&u()}return m.length&&u(),[l,c]}var ge=require("react");var Ti=require("react");function Ft(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.range,a=N(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Ti.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}function Ln({startCanvas:e,disablePaging:t}){let o=w(),n=F(),r=Ft(),[i,a]=(0,ge.useState)(void 0),s=r||n;if(!s)throw new Error("Nothing selected");let[l,c]=(0,ge.useMemo)(()=>Eo(o,s,{disablePaging:t}),[o,s,t]),m=(0,ge.useRef)(c);if(m.current!==c){let b=m.current[i][0],y=c.findIndex(f=>f.includes(b));m.current=c,a(y)}let u=(0,ge.useCallback)(p=>{let b=c.findIndex(y=>y.includes(p));a(b===-1?0:b)},[l,c]),d=(0,ge.useCallback)(p=>{let b=l.findIndex(y=>y.id===p);b!==-1?u(b):a(0)},[l,c]),g=(0,ge.useCallback)(()=>{a(p=>p>=c.length-1?p:p+1)},[c]),v=(0,ge.useCallback)(()=>{a(p=>p<=0?0:p-1)},[c]);return typeof i>"u"&&(e?d(e):a(0)),{visibleItems:c[i]?.map(p=>l[p].id)||[],cursor:i,items:l,sequence:c,hasPrevious:i>0,hasNext:i<c.length-1,setSequenceIndex:a,setCanvasIndex:u,setCanvasId:d,next:g,previous:v}}var ye=require("react"),vt=require("zustand");var qn=require("zustand/vanilla");function al(e){let t=e.service||e.services||[];for(let o of t)if(o.type==="AuthProbeService2")return!0;return!1}function he(e,t,o){let n=t.findIndex(a=>a.service.id===e);if(n===-1)return t;let r=[...t],i=o(r[n]);return i===r[n]?t:(r[n]=i,r)}var Bn=()=>(0,qn.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:he(o.id,t().authItems,r=>({...r,isPending:!0}))})),zn(o.service).then(()=>{No(n).then(r=>{let i=r.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:he(o.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:a}}))}))}).catch(r=>{e(()=>({authItems:he(o.id,t().authItems,i=>({...i,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(a=>a.type==="AuthLogoutService2");if(!n)return;let r=`${n.id}?origin=${Ii()}`,i=window.open(r);e(()=>({authItems:he(o.id,t().authItems,a=>({...a,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"),i=o;if(t().authItems.find(s=>s.service.id===o.id)){e(()=>({authItems:he(o.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.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");No(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(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:he(o.id,t().authItems,s=>({...s,isPending:!0}))})),zn(i).then(()=>{No(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(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(a=>a.service.id===o.id),i=t().currentAuth;if(r){let a=t().authItems.find(l=>l.service.id===o.id);a&&a.instances>1||(i=t().authItems.findIndex(c=>c.service.id!==o.id&&c.instances>0))}e(()=>({authItems:he(o.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),On=(e,t)=>(0,qn.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 i=n().token;try{let a=await fetch(r,{headers:i?{Authorization:`Bearer ${n().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)o({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");o({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)o({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){o({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){o({token:r})}}));function Hn(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(i=>i.type==="AuthAccessService2");r[0]&&(o.services.access=r[0])}return o}async function No(e,{strict:t=!0}={}){return new Promise((o,n)=>{let r=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${r}&origin=${window.location.origin}`,a=c=>{let m=c.data;if(m.messageId===r){if(t&&m.type!=="AuthAccessToken2"){s(),n("Invalid response, expected type=AuthAccessToken2");return}if(!m.accessToken){s(),n("Invalid response, expected accessToken");return}s(),o(m)}},s=()=>window.removeEventListener("message",a),l=document.createElement("iframe");l.src=i,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",a)})}function Ii(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 zn(e){let t=`${e.id}?origin=${Ii()}`,o=window.open(t);if(!o)throw new Error("Failed to open window");return new Promise((n,r)=>{let i=setInterval(()=>{o.closed&&(clearInterval(i),n())},500)})}var yt=require("react");var wi=require("zustand");function ki(e){let t=(0,yt.useMemo)(()=>Hn(e),[e]),o=Dn(t.services.access?.id),n=(0,yt.useMemo)(()=>On(t.services.probe,o),[t.services.probe]),r=(0,wi.useStore)(n);return(0,yt.useEffect)(()=>{r.status==="unknown"&&!o&&r.probe()},[t.services.probe,r.status]),(0,yt.useEffect)(()=>{o&&(r.setToken(o),r.probe())},[o]),[e,r,t.hasAuth]}var $t=require("react/jsx-runtime"),Ze=(0,ye.createContext)(null),Mi=(0,ye.createContext)(null);Mi.displayName="CurrentAuth";var Ei=(0,ye.createContext)(null);Ei.displayName="AuthActions";function $n({children:e}){let t=(0,ye.useMemo)(()=>Bn(),[]);return(0,$t.jsx)(Ze.Provider,{value:t,children:e})}function Wn(){return!!(0,ye.useContext)(Ze)}function St(){let e=(0,ye.useContext)(Ze);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ni(){let e=St();return(0,vt.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 sl(){let e=St();return(0,vt.useStore)(e,t=>t)}function Vi(e){let t=St();return(0,vt.useStore)(t,n=>n.authItems.find(r=>r.service.id===e))}function Dn(e){let t=St();return(0,vt.useStore)(t,n=>n.authItems.find(r=>r.id===e)?.session?.token)}function ll(e){let t=St();return(0,vt.useStore)(t,n=>{let r=n.authItems.find(i=>i.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function cl(e){let t=Ni(),o=Vi(e.service.id);return(0,ye.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),o?(o.error||!o.isLoggedIn,e.children):null}function Fn(){return null}function Un(e){let[t,o,n]=ki(e.resource),r=e.fallbackComponent||Fn,i=e.loadingComponent||Fn,a=e.errorComponent||Fn,s=o.service,l=null;if(!n||!s)return e.children(t);let c=s.service.filter(m=>m.type==="AuthAccessService2");o.status==="error"&&(l=(0,$t.jsx)(a,{resource:e.resource,error:o.error||"",heading:o.errorHeading,note:o.errorNote,extra:e.extra})),(o.status==="unknown"||o.status==="probing")&&(l=(0,$t.jsx)(i,{})),o.status==="success"&&(l=e.children(t));for(let m of c)l=(0,$t.jsx)(cl,{service:m,probeId:s.id,children:l},m.id);return l}var Wt=require("react");var Li=require("zustand/vanilla"),ul=e=>e.id||e["@id"];function ml(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 zi=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?ul(t):void 0,n=null;return(0,Li.createStore)((r,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!ml(t):!1,errorMessage:"",search(a,s={}){if(!o)throw new Error("No search service found.");n&&!n.signal.aborted&&n.abort(),n=new AbortController;let l=new URLSearchParams;a.q&&l.set("q",a.q),a.motivation&&l.set("motivation",a.motivation),a.date&&l.set("date",a.date),a.user&&l.set("user",a.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 m=await c.json();r({resources:m.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(l=>l["@id"]===a);r({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[0]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[0]||null});return}r({highlight:a[l+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[a.length-1]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[a.length-1]||null});return}if(l===0){r({highlight:a[a.length-1]||null});return}r({highlight:a[l-1]||a[a.length-1]||null})}}))};var dl=require("zustand");function _n(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Vo=require("react/jsx-runtime"),xt=(0,Wt.createContext)(null);xt.displayName="Search";function qi(e){let t=_n();return e.store?(0,Vo.jsx)(xt.Provider,{value:e.store,children:e.children}):(0,Vo.jsx)(pl,{service:t,children:e.children})}function pl({service:e,children:t}){let o=(0,Wt.useMemo)(()=>zi(e),[e]);return(0,Vo.jsx)(xt.Provider,{value:o,children:t})}var ie=require("react/jsx-runtime"),Ut=()=>{},bt=(0,Lo.createContext)({setCurrentCanvasId:Ut,setCurrentCanvasIndex:Ut,nextCanvas:Ut,previousCanvas:Ut,items:[],sequence:[],setSequenceIndex:Ut,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Oi(e){let t=F(),{cursor:o,visibleItems:n,next:r,sequence:i,items:a,setCanvasIndex:s,setCanvasId:l,previous:c,setSequenceIndex:m,hasNext:u,hasPrevious:d}=Ln({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=(0,Lo.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:c,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:m,currentSequenceIndex:o,hasNext:u,hasPrevious:d}),[i,a,l,r,c,a,s,m,o]);return t?n.length===0?null:(0,ie.jsx)(bt.Provider,{value:g,children:(0,ie.jsx)(Ge.Provider,{value:n,children:(0,ie.jsx)(me,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."}))}function Yn(e){let t=Xe(e.vault),o=Mn(e.manifest);if(!o)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."});if(o.error)return(0,ie.jsx)("div",{children:o.error.toString()});if(!o.isLoaded)return(0,ie.jsx)("div",{children:"Loading..."});let n=(0,ie.jsx)(Oi,{...e,children:e.children});return(0,ie.jsx)(je,{vault:t,children:(0,ie.jsx)(En,{manifest:o.id,children:(0,ie.jsx)($n,{children:(0,ie.jsx)(qi,{children:e.rangeId?(0,ie.jsx)(Nn,{range:e.rangeId,children:n}):n})})})})}function Je(){return(0,Bi.useContext)(bt)}var Ui=require("@atlas-viewer/atlas"),Pe=require("react"),_i=require("zustand");var Hi=Q(require("mitt"),1),et=require("react"),Di=require("react/jsx-runtime"),fl=(0,Hi.default)(),zo=(0,et.createContext)(fl);function gl({children:e,emitter:t}){return(0,Di.jsx)(zo.Provider,{value:t,children:e})}function Kn(){return(0,et.useContext)(zo)}function tt(e,t,o=[]){let n=(0,et.useContext)(zo);(0,et.useEffect)(()=>{let r=i=>{t(i)};return n.on(e,r),()=>{n.off(e,r)}},[n,e,...o])}var $i=require("polygon-editor"),Wi=require("zustand/vanilla");function Ct(e){let t=Math.max(...e.map(i=>i[0])),o=Math.min(...e.map(i=>i[0])),n=Math.max(...e.map(i=>i[1])),r=Math.min(...e.map(i=>i[1]));for(let i of e)if(i[0]!==o&&i[0]!==t&&i[1]!==r&&i[1]!==n||i[0]<o||i[0]>t||i[1]<r||i[1]>n)return!1;return!0}function Le(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(i=>i[0])),o=Math.min(...e.points.map(i=>i[1])),n=Math.max(0,...e.points.map(i=>i[0])),r=Math.max(0,...e.points.map(i=>i[1]));return{x:t,y:o,width:n-t,height:r-o}}return null}function Fi(e){return e.type==="SvgSelector"}function hl(e){return e.type==="BoxSelector"}function qo(e,t){if(Fi(e)){let a=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}"><${a?"polygon":"polyline"} points="${e.points.map(m=>m.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(" ")}${a?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:o,y:n,width:r,height:i}=e.spatial||{};return!r||!i?null:{type:"FragmentSelector",value:`xywh=${~~o},${~~n},${~~r},${~~i}`}}function Rt(e,t){if(!e||!e.points.length)return null;if(Ct(e.points)){let o=e.points.map(l=>l[0]),n=e.points.map(l=>l[1]),r=Math.min(...o),i=Math.min(...n),a=Math.max(...o)-r,s=Math.max(...n)-i;return qo({type:"BoxSelector",spatial:{x:r,y:i,width:a,height:s}},t)}return qo({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function _t(e){if(e.type==="polygon"&&!e.noBox&&e.points&&Ct(e.points)){let o=Le({open:!1,points:e.points||[]});return _t({...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:Le({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Rt({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:Rt({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 yl={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 jn({events:e,enabledTools:t,keyboardShortcutMapping:o,keyboardShortcutsEnabled:n=!1,debug:r}){let i=(0,Wi.createStore)((s,l)=>{let c=null,u=(0,$i.createHelper)({emitter:e,keyboardShortcutsEnabled:n,keyboardShortcutMapping:o,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(g=>({polygonState:{...g.polygonState,...d}}))}},d=>{s(g=>g.tool.requestId?{polygon:{...d,id:g.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",d)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},requestType:null,requests:{},history:u.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:u,polygonState:yl,setMetadata:(d,g)=>{let v=g||l().tool.requestId;v&&s(p=>({metadata:{...p.metadata,[v]:{...p.metadata[v]||{},...d}}}))},setToolCanvasId:d=>{s(g=>({tool:{...g.tool,canvasId:d}}))},switchTool:{pointer(){s({mode:"sketch"}),a.tools.setTool("pointer")},hand(){s({mode:"explore"}),a.tools.setTool("hand")},draw(){s({mode:"sketch"}),a.tools.setTool("pencil")},pen(){s({mode:"sketch"}),a.tools.setTool("pen")},line(){s({mode:"sketch"}),a.tools.setTool("line")},lineBox(){s({mode:"sketch"}),a.tools.setTool("lineBox")},box(){s({mode:"sketch"}),a.tools.setTool("box")},triangle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.triangle()},hexagon(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.hexagon()},circle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.circle()},remove(){let d=l();d.tool.requestId&&(u.setShape({points:[],open:!0}),d.cancelRequest(d.tool.requestId))}},reset:()=>{let d=l();d.tool.requestId&&d.cancelRequest(d.tool.requestId)},setPolygonState:d=>s({polygonState:typeof d=="function"?d(l().polygonState):d}),getRequestId:()=>{let d=Math.random().toString(36).slice(2);return s(g=>({validRequestIds:[...g.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(g=>({tool:g.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(v=>v!==d)}))}}},cancelRequest:d=>{let g=d||l().tool.requestId;g&&(s(v=>({mode:"explore",tool:v.tool.requestId===g?{enabled:!1,requestId:null,canvasId:null}:v.tool,validRequestIds:v.validRequestIds.filter(p=>p!==g)})),e.emit("atlas.request-cancelled",{id:g}))},requestAnnotation:async(d,g)=>{let p={...l().requests,[g.requestId]:d},b=_t(d);r&&console.log("requestAnnotation",{response:b,request:d});try{let{points:y=[],open:f=!0}=b.polygon||{},{requestId:h,canvasId:R=null,toolId:C}=g,P=C,A=l(),I=A.validRequestIds.includes(h),q=b.requestType;return r&&console.log("setting points",{requestType:q,points:y,open:f}),!I||A.tool.enabled?null:(u.setShape({id:h,points:y,open:f}),q==="polygon"&&(P=P||"pen",u.tools.setTool("pen")),q==="draw"&&(P=P||"draw",u.tools.setTool("pencil")),q==="box"&&(P=P||"box",u.tools.setTool("box")),q==="target"?(P=P||"box",u.tools.setTool("box"),u.lockAspectRatio(),u.tools.lockToolSwitching(),u.tools.setCanDeselect(!1),u.tools.setCanDelete(!1)):(u.tools.unlockToolSwitching(),u.tools.setCanDeselect(!0),u.tools.setCanDelete(!0)),d.bounds&&u.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:h}),s({polygon:{id:h,points:y,open:f},mode:"sketch",requestType:q,tool:{enabled:!0,requestId:h,canvasId:R},requests:p}),P?A.switchTool[P]?.():y.length===0&&A.switchTool.box(),(typeof d.selectByDefault>"u"&&y.length&&q==="box"||d.selectByDefault)&&A.switchTool.pointer(),new Promise(ue=>{let E=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.request-cancelled",E),e.off("atlas.annotation-completed",_),ue(null))},_=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.annotation-completed",_),e.off("atlas.request-cancelled",E),ue(k))};e.on("atlas.request-cancelled",E),e.on("atlas.annotation-completed",_)}))}catch(y){return console.error(y),null}},completeRequest:d=>{let g=l().tool.requestId;if(typeof d=="string"&&d&&d!==g)return;let v=g?l().requests[g]?.arguments||{}:{},p=g?l().metadata[g]||{}:{},b=l().polygonState.bounds,y=l().polygon;y&&(e.emit("atlas.annotation-completed",{id:y.id,polygon:y,requestType:l().requestType,target:Rt(y,b),canvasId:l().tool.canvasId,boundingBox:Le(y),metadata:p,arguments:{...v}}),u.setShape(null))},setAtlasRuntime:d=>{c=d,e.emit("atlas.ready",{runtime:d}),a.setScale(1/c._lastGoodScale),c.world.addLayoutSubscriber((g,v)=>{(g==="event-activation"||g==="zoom-to"||g==="go-home")&&c?._lastGoodScale&&!Number.isNaN(c._lastGoodScale)&&a.setScale(1/c._lastGoodScale)})},clearAtlasRuntime:()=>{c=null,s({stableViewport:null})},setCanvasRelativePosition:(d,g)=>{s(v=>({canvasRelativePositions:{...v.canvasRelativePositions,[d]:g}}))},clearCanvasRelativePosition:d=>{s(g=>{let v={...g.canvasRelativePositions};return delete v[d],{canvasRelativePositions:v}})},changeMode:d=>{s({mode:d})},nudgeLeft:()=>{},nudgeRight:()=>{},nudgeUp:()=>{},nudgeDown:()=>{},zoomIn:()=>{c?.world?.zoomIn()},zoomOut:()=>{c?.world?.zoomOut()},goHome:()=>{c?.world?.goHome()}}}),a=i.getState().polygons;return e.on("atlas.annotation-request",()=>{a.clock.start((s,l,c)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:c})},s=>{typeof s=="object"?i.setState({polygonState:s}):i.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{a.clock.stop()}),e.on("atlas.request-cancelled",()=>{a.clock.stop()}),i}var Qn=require("react/jsx-runtime"),ot=(0,Pe.createContext)(null);function L(){return(0,Pe.useContext)(ot)}var Gn={};function Xn(e="atlas"){return Gn[e]?.getState()}function Pt({children:e,name:t="atlas",existing:o,atlasStoreConfig:n}){let r=Kn(),i=(0,Pe.useContext)(ot),a=(0,Pe.useMemo)(()=>o||i||jn({events:r,...n||{}}),[r,o,i]),s=(0,_i.useStore)(a,l=>l.mode);return(0,Pe.useEffect)(()=>{let l=t;return l&&(Gn[l]=a),()=>{l&&delete Gn[l]}},[a,t]),(0,Qn.jsx)(ot.Provider,{value:a,children:(0,Qn.jsx)(Ui.ModeContext.Provider,{value:s||"explore",children:e})})}var Gt=require("@atlas-viewer/atlas"),oa=require("react");var At=require("react"),Yi=require("react/jsx-runtime");function Zn(){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 Jn=(0,At.createContext)(Zn());Jn.displayName="AnnotationStyle";function Yt(){return(0,At.useContext)(Jn)}function vl({theme:e,children:t}){let o=(0,At.useMemo)(()=>e||Zn(),[e]);return(0,Yi.jsx)(Jn.Provider,{value:o,children:t})}var Gi=require("@iiif/helpers/annotation-targets"),Qi=require("react");var Tt=require("react"),Ki=require("zustand"),ji=(0,Ki.create)()((e,t)=>{let o=new Map,n=()=>Math.random().toString(36).substring(2,15),r=i=>{let a=o.get(i);if(a)return a;let s=n();return o.set(i,s),s};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(i){let{loadStylesheet:a,setStylesheet:s}=t();if(!i)return null;if(typeof i=="string")return i.startsWith("http")?{id:i,type:"CssStylesheet",value:await a(i)}:{id:s(i),type:"CssStylesheet",value:i};if(i.type==="CssStylesheet"){let l=i.id;if("value"in i){let c=Array.isArray(i.value)?i.value.join(`
2
- `):i.value;if(c)return{id:s(c,l),type:"CssStylesheet",value:c}}if("id"in i&&i.id){let c=await a(i.id);return{id:i.id,type:"CssStylesheet",value:c}}}return null},async loadStylesheet(i){if(t().loading.includes(i))return"";try{let s=await fetch(i);if(!s.ok)throw new Error(`Failed to load stylesheet from ${i}`);let l=await s.text();return e(c=>({stylesheets:{...c.stylesheets,[i]:l}})),l}catch(s){return e(l=>({errors:[...l.errors,{url:i,error:s}]})),""}},setStylesheet(i,a){let s=a||r(i);return e(l=>({stylesheets:{...l.stylesheets,[s]:i}})),s}}});function er(e){let[t,o]=(0,Tt.useState)(""),{loading:n,errors:r,stylesheets:i,parseStylesheet:a}=ji();return(0,Tt.useEffect)(()=>{e&&a(e).then(l=>{l?.id&&o(l.id)})},[e,a]),[(0,Tt.useMemo)(()=>{let l={};return t&&i[t]&&(l[t]=i[t]),l},[t,i]),{id:t,stylesheets:i,loading:n,errors:r}]}function Kt(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=w(),a=o||r.annotation,s=N(m=>a?m.iiif.entities.Annotation[a]:void 0,[a]),[l]=er(s?.stylesheet),c=N(m=>s&&s.body?s.body.map(u=>u?u.type==="SpecificResource"?{...u,source:i.get(u)}:u?m.iiif.entities[u.type][u.id]:null:null).filter(Boolean):[],[s]);return(0,Qi.useMemo)(()=>{if(!s)return;let m={...s,body:c,target:(0,Gi.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping,loadedStylesheets:l})};return n?n(m):m},[s,n,c,l,...t])}var Xi=require("react");function T(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.canvas,a=N(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,Xi.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}var tr=require("react"),Zi=require("@iiif/helpers/events");function jt(e,t){let o=w(),n=(0,tr.useMemo)(()=>(0,Zi.createEventsHelper)(o),[o]),r=N(()=>e&&e.id?o.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,tr.useMemo)(()=>e?n.getListenersAsProps(e,t):{},[r,e,o,t])}var Ji=require("react"),ea=require("@iiif/helpers/styles");function nt(e,t){let o=w(),n=(0,Ji.useMemo)(()=>(0,ea.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 ta=require("react");var Bo=require("@atlas-viewer/atlas"),Ce=require("react"),$=require("react/jsx-runtime");function or({handleSize:e,resizable:t,onSave:o,children:n,maintainAspectRatio:r,disableCardinalControls:i,aspectRatio:a,...s}){let l=typeof e>"u"?r?12:8:e,{portalRef:c,mode:m,mouseEvent:u,isEditing:d}=(0,Bo.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:a,maintainAspectRatio:r},o),g=(0,Ce.useMemo)(()=>u("translate"),[u]),v=(0,Ce.useMemo)(()=>u("east"),[u]),p=(0,Ce.useMemo)(()=>u("west"),[u]),b=(0,Ce.useMemo)(()=>u("south"),[u]),y=(0,Ce.useMemo)(()=>u("north"),[u]),f=(0,Ce.useMemo)(()=>u("south-east"),[u]),h=(0,Ce.useMemo)(()=>u("south-west"),[u]),R=(0,Ce.useMemo)(()=>u("north-east"),[u]),C=(0,Ce.useMemo)(()=>u("north-west"),[u]),P=m==="sketch",A={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:r||i?"50%":2,position:"absolute",background:"#fff",pointerEvents:d?"none":P?"initial":"none"};return(0,$.jsx)($.Fragment,{children:(0,$.jsxs)("world-object",{...s,children:[n,P&&t?(0,$.jsx)(Bo.HTMLPortal,{ref:c,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:P&&t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{onMouseDown:g,onTouchStart:g,style:{display:"block",width:"100%",height:"100%",cursor:"move",border:"1px solid rgba(255,255,255, .7)",outline:"2px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:d?"none":P?"initial":"none"}}),r?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{title:"east",onTouchStart:v,onMouseDown:v,style:{...A,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:i?0:1,transform:`translate(${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"west",onMouseDown:p,style:{...A,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:i?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"north",onMouseDown:y,style:{...A,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:i?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south",onMouseDown:b,style:{...A,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:i?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),(0,$.jsx)("div",{title:"north-east",onMouseDown:R,style:{...A,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south-east",onMouseDown:f,style:{...A,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"south-west",onMouseDown:h,style:{...A,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"north-west",onMouseDown:C,style:{...A,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}var nr=require("react/jsx-runtime");function rr({id:e,interactive:t,region:o,onClick:n,onHover:r,onSave:i,aspectRatio:a,maintainAspectRatio:s,disableCardinalControls:l,isEditing:c,style:m={backgroundColor:"rgba(0,0,0,.5)"}}){let u=(0,ta.useCallback)(d=>{c&&i?.({id:o.id,x:o.x,y:o.y,height:o.height,width:o.width,...d})},[i,c,o.id,o.x,o.y,o.height,o.width]);return(0,nr.jsx)(or,{id:e,x:o.x,y:o.y,width:o.width,aspectRatio:a,height:o.height,resizable:c,onSave:u,maintainAspectRatio:s,disableCardinalControls:l,children:(0,nr.jsx)("box",{interactive:t,onClick:d=>{d.preventDefault(),d.stopPropagation(),n?.(o)},relativeStyle:!0,onMouseEnter:()=>{r?.(o)},target:{x:0,y:0,width:o.width,height:o.height},style:m})})}var na=require("react/jsx-runtime"),rt=({id:e,style:t,className:o,interactive:n,targetId:r,ignoreTargetId:i})=>{let a=Kt({id:e}),s=nt(a,"atlas"),l=nt(a,"html"),c=jt(a,["atlas"]),m=T(),u=Yt(),d=(0,oa.useMemo)(()=>(0,Gt.mergeStyles)((0,Gt.mergeStyles)((0,Gt.mergeStyles)((0,Gt.mergeStyles)(t,s),a?.motivation?.includes("highlighting")?u.highlighted:u.default),a?.target?.selector?.boxStyle||{})),[t,s,u,a?.motivation,a?.target]),g=r||m?.id;return m&&a&&a.target&&a.target.selector&&(a.target.selector.type==="BoxSelector"||a.target.selector.type==="SvgSelector")&&a.target.source&&(i?!0:a.target.source.id===g||a.target.source===g)?(0,na.jsx)(rr,{id:a.id,isEditing:!0,region:a.target.selector.spatial,style:d,className:l?.className||o,interactive:!!(l?.href||n),href:l?.href||null,title:l?.title||null,hrefTarget:l?.target||null,onClick:()=>{},...c}):null};var ia=require("react");var ra=require("react");function ir(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.annotationPage,a=N(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,ra.useMemo)(()=>{if(a)return n?n(a):a},[a,...t])}var ar=require("react/jsx-runtime"),ze=({className:e,page:t,targetId:o,ignoreTargetId:n})=>{let r=ir({id:t.id})||t,i=nt(r,"atlas"),a=nt(r,"html");return N(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,ar.jsx)(ia.Fragment,{children:r.items?.map(s=>(0,ar.jsx)(rt,{id:s.id,style:i,className:a?.className||e,targetId:o,ignoreTargetId:n},s.id))})};var qe=require("react"),Oo=require("react/jsx-runtime"),aa=(0,qe.createContext)(null),sa=(0,qe.createContext)(null),la=(0,qe.createContext)(null);function Sl(){let e=(0,qe.useContext)(aa);if(!e)throw new Error("Ctx not found");return e}function xl(){let e=(0,qe.useContext)(sa);if(!e)throw new Error("Ctx not found");return e}function bl(){let e=(0,qe.useContext)(la);if(!e)throw new Error("Ctx not found");return e}function Qt({actions:e,state:t,children:o,currentTime:n,progress:r,element:i}){return(0,Oo.jsx)(la.Provider,{value:{currentTime:n,progress:r,element:i},children:(0,Oo.jsx)(sa.Provider,{value:e,children:(0,Oo.jsx)(aa.Provider,{value:t,children:o})})})}var ca=require("react");var ua=require("@iiif/helpers");function Xt(){let e=F(),t=T();return(0,ca.useMemo)(()=>{if(!e||!t||!e.start)return null;let o=(0,ua.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 ma(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Cl(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 Ho(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function it(e){let[t,o]=(0,D.useReducer)(Cl,ma(e.duration));(0,D.useEffect)(()=>{o({type:"RESET",state:ma(e.duration)})},[e.duration]);let n=(0,D.useRef)(null),r=(0,D.useRef)(null),i=(0,D.useRef)(null),a=(0,D.useRef)(!1),s=(0,D.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Ho(n.current.currentTime),i.current&&(i.current.style.width=`${n.current.currentTime/e.duration*100}%`),a.current!==n.current.muted&&(a.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():m())},[s]),m=(0,D.useCallback)(()=>{n.current&&(n.current.pause(),o({type:"PAUSE"}),s())},[s]),u=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(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"}))},[]),v=(0,D.useCallback)(y=>{n.current&&(n.current.muted=!1,n.current.volume=y/100,o({type:"SET_VOLUME",volume:y}))},[]),p=(0,D.useCallback)(y=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(y*e.duration,e.duration)),s())},[]),b=(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:i},t,{play:l,pause:m,playPause:c,mute:d,unmute:g,toggleMute:u,setVolume:v,setDurationPercent:p,setTime:b}]}var at=require("react"),sr=(0,at.createContext)(()=>{}),lr=(0,at.createContext)(()=>{});function j(e,t,o,n,r=[]){let i=(0,at.useContext)(e==="portal"?lr:sr);(0,at.useEffect)(()=>(e!=="none"&&i(t,o,n),()=>{i(t,null)}),[t,e,i,...r])}var Fo=require("react/jsx-runtime");function cr({media:e,startTime:t,children:o}){let[{element:n,currentTime:r,progress:i},a,s]=it({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,Fo.jsxs)(Qt,{state:a,actions:s,currentTime:r,progress:i,element:n,children:[(0,Fo.jsx)("audio",{ref:n,src:l}),o]},e.url)}function Do({media:e,mediaControlsDeps:t,audioCopmonent:o=cr,children:n}){let r=Xt();return j("portal","audio",o,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var $o=require("react"),Be=(0,$o.createContext)(null);Be.displayName="Strategy";function O(){let e=(0,$o.useContext)(Be);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Oe=require("react/jsx-runtime");function ur({model:e}){return(0,Oe.jsxs)(Oe.Fragment,{children:[(0,Oe.jsx)("style",{children:`
1
+ "use strict";var Qs=Object.create;var Io=Object.defineProperty;var Xs=Object.getOwnPropertyDescriptor;var Zs=Object.getOwnPropertyNames;var Js=Object.getPrototypeOf,el=Object.prototype.hasOwnProperty;var tl=(e,t)=>{for(var o in t)Io(e,o,{get:t[o],enumerable:!0})},To=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Zs(t))!el.call(e,r)&&r!==o&&Io(e,r,{get:()=>t[r],enumerable:!(n=Xs(t,r))||n.enumerable});return e},x=(e,t,o)=>(To(e,t,"default"),o&&To(o,t,"default")),Q=(e,t,o)=>(o=e!=null?Qs(Js(e)):{},To(t||!e||!e.__esModule?Io(o,"default",{value:e,enumerable:!0}):o,e)),ol=e=>To(Io({},"__esModule",{value:!0}),e);var S={};tl(S,{AnnotationContext:()=>nc,AnnotationPageContext:()=>rc,AnnotationStyleProvider:()=>vl,AtlasStoreProvider:()=>Pt,AtlasStoreReactContext:()=>ot,Auth:()=>Un,AuthProvider:()=>$n,AuthRContext:()=>Ze,AuthReactContext:()=>Mi,AuthReactContextActions:()=>Ei,CanvasAnnotations:()=>Yl,CanvasContext:()=>me,CanvasPanel:()=>U,CanvasStrategyProvider:()=>Xr,CanvasWorldObject:()=>ei,CollectionContext:()=>ic,CombinedMetadata:()=>Kl,ComplexTimelineProvider:()=>Cr,ContextBridge:()=>lo,ControlsReactContext:()=>Zt,CreateCustomShape:()=>ri,CustomContextBridge:()=>ns,CustomContextBridgeProvider:()=>El,DefaultEditingTools:()=>us,EventEmitterProvider:()=>gl,EventsProvider:()=>Ml,Image:()=>Ls,ImageService:()=>Gl,ImageServiceLoaderContext:()=>Sa,InnerViewerProvider:()=>Oi,LanguageProvider:()=>Al,LanguageString:()=>qa,LocaleString:()=>le,ManifestContext:()=>En,ManifestMetadata:()=>Xl,MediaPlayerProvider:()=>Qt,Metadata:()=>Ro,PolygonSelector:()=>_l,RangeContext:()=>Nn,ReactEmitterContext:()=>zo,ReactEventContext:()=>dt,ReactVaultContext:()=>ze,RegionHighlight:()=>rr,Render3DModelStrategy:()=>mr,RenderAccompanyingCanvas:()=>dr,RenderAnnotation:()=>rt,RenderAnnotationEditing:()=>Hr,RenderAnnotationPage:()=>Oe,RenderAnnotationStrategy:()=>yr,RenderAudioStrategy:()=>xr,RenderComplexTimelineStrategy:()=>kr,RenderEmptyStrategy:()=>Mr,RenderImageStrategy:()=>Er,RenderSvgEditorControls:()=>oc,RenderTextualContentStrategy:()=>Nr,RenderVideoStrategy:()=>Lr,RenderYouTubeStrategy:()=>zr,ResizeWorldItem:()=>or,ResourceProvider:()=>te,ResourceReactContext:()=>Ot,SelectorControllerProvider:()=>$l,SequenceThumbnails:()=>ec,SimpleViewerProvider:()=>Yn,SimpleViewerReactContext:()=>bt,SingleCanvasThumbnail:()=>ui,StrategyReactContext:()=>De,ThumbnailFallbackImage:()=>ct,TranslationProvider:()=>Pl,TransliterationProvider:()=>Tl,VaultProvider:()=>Pe,ViewerPresetContext:()=>xe,VirtualAnnotationProvider:()=>hr,VisibleCanvasReactContext:()=>Qe,annotationResponseToSelector:()=>xc,authDetailsForResource:()=>Hn,createAtlasStore:()=>jn,createAuthStateStore:()=>Bn,createProbe:()=>On,defaultEmitter:()=>ts,defaultSvgTheme:()=>Xa,emptyActions:()=>Dr,emptyStrategy:()=>Fr,findAllCanvasesInRange:()=>Mo,findFirstCanvasFromRange:()=>Ai,findManifestSelectedRange:()=>rl,findSelectedRange:()=>Vn,flattenAnnotationPageIds:()=>$r,formatTime:()=>Ho,get3dStrategy:()=>_r,getAtlasStoreByName:()=>Xn,getComplexTimelineStrategy:()=>Kr,getDefaultAnnotationStyles:()=>Zn,getImageStrategy:()=>yo,getManifestSequence:()=>Eo,getParsedTargetSelector:()=>mo,getRenderingStrategy:()=>xo,getTextualContentStrategy:()=>vo,getVideoStrategy:()=>So,getVisibleCanvasesFromCanvasId:()=>il,hasAuth:()=>al,isBoxSelector:()=>hl,isRectangle:()=>Ct,isSvgSelector:()=>Fi,makeAccessServiceRequest:()=>zn,makeAccessTokenRequest:()=>No,parseSpecificResource:()=>Nl,polygonToTarget:()=>Rt,requestToAnnotationResponse:()=>_t,seraliseSupportedSelector:()=>qo,svgThemes:()=>Fl,targetIntersects:()=>Sc,unknownResponse:()=>po,unsupportedStrategy:()=>z,useAnnotation:()=>Kt,useAnnotationPage:()=>ir,useAnnotationPageManager:()=>go,useAnnotationStyles:()=>Yt,useAnnotationsAtTime:()=>ac,useAtlasContextMenu:()=>uo,useAtlasStore:()=>L,useAuthActions:()=>Ni,useAuthService:()=>Vi,useAuthStore:()=>St,useAuthToken:()=>ll,useAuthTokens:()=>Dn,useCanvas:()=>T,useCanvasChoices:()=>sc,useCanvasClock:()=>lc,useCanvasSequence:()=>Ln,useCanvasStartTime:()=>Xt,useCanvasSubset:()=>cc,useClosestLanguage:()=>Oa,useCollection:()=>uc,useComplexTimeline:()=>Rl,useContextBridge:()=>so,useContextMenuStore:()=>ls,useCreateLocaleString:()=>Il,useCurrentAnnotationActions:()=>mc,useCurrentAnnotationMetadata:()=>dc,useCurrentAnnotationRequest:()=>Or,useCurrentAnnotationTransition:()=>pc,useCurrentAuth:()=>sl,useCustomContextBridge:()=>ao,useDispatch:()=>pr,useEmitter:()=>Kn,useEvent:()=>tt,useEventEmitter:()=>ro,useEventListener:()=>fc,useExistingVault:()=>Ae,useExternalCollection:()=>gc,useExternalManifest:()=>Mn,useExternalResource:()=>Dt,useIIIFLanguage:()=>Xo,useImage:()=>bn,useImageService:()=>fi,useImageServiceLoader:()=>Jt,useImageTile:()=>hc,useIsAuthEnabled:()=>Wn,useLoadImageService:()=>ho,useLocaleString:()=>Ha,useManifest:()=>F,useMediaActions:()=>xl,useMediaElements:()=>bl,useMediaState:()=>Sl,usePaintables:()=>Ur,usePaintingAnnotations:()=>Ne,usePolygonHelper:()=>qr,useRange:()=>Ft,useRemoteStylesheet:()=>er,useRenderControls:()=>oe,useRenderingStrategy:()=>Gr,useRequestAnnotation:()=>ni,useResourceContext:()=>X,useResourceEvents:()=>jt,useResources:()=>Wr,useSearchService:()=>_n,useSelectorController:()=>si,useSelectorEmitter:()=>Wl,useSelectorEvents:()=>ai,useSelectorHelper:()=>Ul,useSimpleMediaPlayer:()=>it,useSimpleViewer:()=>Je,useStaticRenderingStrategy:()=>yc,useStrategy:()=>O,useStyleHelper:()=>vc,useStyles:()=>nt,useStylesheetStore:()=>ji,useSvgEditor:()=>Br,useSvgEditorControls:()=>mi,useThumbnail:()=>ke,useTranslations:()=>Pr,useTransliteration:()=>Rr,useVault:()=>w,useVaultEffect:()=>vr,useVaultSelector:()=>N,useViewerPreset:()=>to,useVirtualAnnotationPage:()=>fr,useVirtualAnnotationPageContext:()=>gr,useVisibleCanvases:()=>Xe});module.exports=ol(S);x(S,require("@iiif/helpers/annotation-targets"),module.exports);var ft=require("react");var ht=Q(require("react"),1),gi=require("react/jsx-runtime"),nl={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ot=ht.default.createContext(nl),X=()=>(0,ht.useContext)(Ot);function te({value:e,children:t}){let o=X(),n=(0,ht.useMemo)(()=>({...o,...e}),[e,o]);return(0,gi.jsx)(Ot.Provider,{value:n,children:t})}var hi=require("react/jsx-runtime");function me({canvas:e,children:t}){return(0,hi.jsx)(te,{value:{canvas:e},children:t})}var wo=Q(require("react"),1),Ht=require("@iiif/helpers/vault");var kn=require("react/jsx-runtime"),ze=wo.default.createContext({vault:null,setVaultInstance:e=>{}});function Pe({vault:e,vaultOptions:t,useGlobal:o,resources:n,children:r}){let[i,a]=(0,wo.useState)(()=>e||(o?(0,Ht.globalVault)(t):t?new Ht.Vault(t):new Ht.Vault));return(0,kn.jsx)(ze.Provider,{value:{vault:i,setVaultInstance:a},children:(0,kn.jsx)(te,{value:n||{},children:r})})}var vi=require("react"),Si=Q(require("react"),1);var yi=require("react"),w=()=>{let{vault:e}=(0,yi.useContext)(ze);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var ko=require("react");function N(e,t=[]){let o=w(),[n,r]=(0,ko.useState)(()=>e(o.getState(),o));return(0,ko.useEffect)(()=>o.subscribe(i=>e(i,o),i=>{r(i)},!1),t),n}var Qe=Si.default.createContext([]);function Xe(){let e=(0,vi.useContext)(Qe);return N(t=>e.map(o=>t.iiif.entities.Canvas[o]).filter(Boolean),[e])}var xi=require("@iiif/helpers/vault"),bi=require("react");function Ae(e){let t=(0,bi.useContext)(ze);return e||(t&&t.vault?t.vault:(0,xi.globalVault)())}var Ci=require("react");function F(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=w(),a=o||r.manifest,s=N(l=>a?l.iiif.entities.Manifest[a]:void 0,[a]);return(0,Ci.useMemo)(()=>{if(s)return n?n(s):s},[s,n,...t])}var Bi=require("react"),Lo=require("react");var qe=require("react");function Dt(e,{noCache:t=!1}={}){let o=typeof e=="string"?e:e.id,n=Ae(),[r,i]=(0,qe.useState)(o),[a,s]=(0,qe.useState)(void 0),l=(0,qe.useMemo)(()=>n.get(o,{skipSelfReturn:!0})||void 0,[o,n]),[c,m]=(0,qe.useState)(l);return(0,qe.useEffect)(()=>{(async()=>{try{let u=l&&!t?l:await n.load(o),d=u?u.id||u["@id"]:null;u&&r!==d&&i(d),m(u)}catch(u){s(u)}})()},[o,t]),{isLoaded:!!c,id:r,requestId:o,error:a,resource:c,cached:!!(c&&c===l)}}function Mn(e,t){let{id:o,isLoaded:n,error:r,resource:i,requestId:a,cached:s}=Dt(e,t);return{id:o,isLoaded:n,error:r,manifest:i,requestId:a,cached:s}}var Ri=require("react/jsx-runtime");function En({manifest:e,children:t}){return(0,Ri.jsx)(te,{value:{manifest:e},children:t})}var Pi=require("react/jsx-runtime");function Nn({range:e,children:t}){return(0,Pi.jsx)(te,{value:{range:e},children:t})}function Ai(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=Ai(e,e.get(o));if(n)return n}}return null}function Mo(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(...Mo(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 rl(e,t,o){for(let n of t.structures){let r=Vn(e,e.get(n),o);if(r)return r}return null}function Vn(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 i=Vn(e,e.get(n),o);if(i)return i}}return null}function il(e,t,o,n=!1){let r=t.behavior,i=o?e.get(o):null;if(!i)return[];let a=i.behavior,s=n?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),c=s||l?!1:r.includes("individuals"),m=a.includes("facing-pages"),u=a.includes("non-paged");if(m||u||c||n)return[{id:i.id,type:"Canvas"}];let[d,g]=Eo(e,t);if(l)return d;let v=d.findIndex(p=>p.id===o);if(v===-1)return[];for(let p of g)if(p.includes(v))return p.map(R=>d[R]);return[{id:i.id,type:"Canvas"}]}function Eo(e,t,{disablePaging:o,skipNonPaged:n}={}){let r=t.behavior,i=r.includes("paged"),a=i?!1:r.includes("continuous"),s=i||a?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:Mo(e,t);if(a)return[l,[l.map((v,p)=>p)]];if(s||!i||o)return[l,l.map((v,p)=>[p])];let c=[],m=[],u=()=>{m.length&&(c.push([...m]),m=[])},d=0,g=!1;for(let v=0;v<l.length;v++){let p=e.get(l[v]);if(p.behavior.includes("non-paged")){v===d&&d++,n||(u(),c.push([v]),u());continue}if(v===d||p.behavior.includes("facing-pages")){m.length&&(g=!0),u(),c.push([v]),u();continue}if(m.push(v),g){u(),g=!1;continue}m.length>1&&u()}return m.length&&u(),[l,c]}var ge=require("react");var Ti=require("react");function Ft(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.range,a=N(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Ti.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}function Ln({startCanvas:e,disablePaging:t}){let o=w(),n=F(),r=Ft(),[i,a]=(0,ge.useState)(void 0),s=r||n;if(!s)throw new Error("Nothing selected");let[l,c]=(0,ge.useMemo)(()=>Eo(o,s,{disablePaging:t}),[o,s,t]),m=(0,ge.useRef)(c);if(m.current!==c){let R=m.current[i][0],y=c.findIndex(f=>f.includes(R));m.current=c,a(y)}let u=(0,ge.useCallback)(p=>{let R=c.findIndex(y=>y.includes(p));a(R===-1?0:R)},[l,c]),d=(0,ge.useCallback)(p=>{let R=l.findIndex(y=>y.id===p);R!==-1?u(R):a(0)},[l,c]),g=(0,ge.useCallback)(()=>{a(p=>p>=c.length-1?p:p+1)},[c]),v=(0,ge.useCallback)(()=>{a(p=>p<=0?0:p-1)},[c]);return typeof i>"u"&&(e?d(e):a(0)),{visibleItems:c[i]?.map(p=>l[p].id)||[],cursor:i,items:l,sequence:c,hasPrevious:i>0,hasNext:i<c.length-1,setSequenceIndex:a,setCanvasIndex:u,setCanvasId:d,next:g,previous:v}}var ye=require("react"),vt=require("zustand");var qn=require("zustand/vanilla");function al(e){let t=e.service||e.services||[];for(let o of t)if(o.type==="AuthProbeService2")return!0;return!1}function he(e,t,o){let n=t.findIndex(a=>a.service.id===e);if(n===-1)return t;let r=[...t],i=o(r[n]);return i===r[n]?t:(r[n]=i,r)}var Bn=()=>(0,qn.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:he(o.id,t().authItems,r=>({...r,isPending:!0}))})),zn(o.service).then(()=>{No(n).then(r=>{let i=r.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:he(o.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:a}}))}))}).catch(r=>{e(()=>({authItems:he(o.id,t().authItems,i=>({...i,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(a=>a.type==="AuthLogoutService2");if(!n)return;let r=`${n.id}?origin=${Ii()}`,i=window.open(r);e(()=>({authItems:he(o.id,t().authItems,a=>({...a,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"),i=o;if(t().authItems.find(s=>s.service.id===o.id)){e(()=>({authItems:he(o.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.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");No(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(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:he(o.id,t().authItems,s=>({...s,isPending:!0}))})),zn(i).then(()=>{No(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(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(a=>a.service.id===o.id),i=t().currentAuth;if(r){let a=t().authItems.find(l=>l.service.id===o.id);a&&a.instances>1||(i=t().authItems.findIndex(c=>c.service.id!==o.id&&c.instances>0))}e(()=>({authItems:he(o.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),On=(e,t)=>(0,qn.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 i=n().token;try{let a=await fetch(r,{headers:i?{Authorization:`Bearer ${n().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)o({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");o({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)o({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){o({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){o({token:r})}}));function Hn(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(i=>i.type==="AuthAccessService2");r[0]&&(o.services.access=r[0])}return o}async function No(e,{strict:t=!0}={}){return new Promise((o,n)=>{let r=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${r}&origin=${window.location.origin}`,a=c=>{let m=c.data;if(m.messageId===r){if(t&&m.type!=="AuthAccessToken2"){s(),n("Invalid response, expected type=AuthAccessToken2");return}if(!m.accessToken){s(),n("Invalid response, expected accessToken");return}s(),o(m)}},s=()=>window.removeEventListener("message",a),l=document.createElement("iframe");l.src=i,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",a)})}function Ii(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 zn(e){let t=`${e.id}?origin=${Ii()}`,o=window.open(t);if(!o)throw new Error("Failed to open window");return new Promise((n,r)=>{let i=setInterval(()=>{o.closed&&(clearInterval(i),n())},500)})}var yt=require("react");var wi=require("zustand");function ki(e){let t=(0,yt.useMemo)(()=>Hn(e),[e]),o=Dn(t.services.access?.id),n=(0,yt.useMemo)(()=>On(t.services.probe,o),[t.services.probe]),r=(0,wi.useStore)(n);return(0,yt.useEffect)(()=>{r.status==="unknown"&&!o&&r.probe()},[t.services.probe,r.status]),(0,yt.useEffect)(()=>{o&&(r.setToken(o),r.probe())},[o]),[e,r,t.hasAuth]}var $t=require("react/jsx-runtime"),Ze=(0,ye.createContext)(null),Mi=(0,ye.createContext)(null);Mi.displayName="CurrentAuth";var Ei=(0,ye.createContext)(null);Ei.displayName="AuthActions";function $n({children:e}){let t=(0,ye.useMemo)(()=>Bn(),[]);return(0,$t.jsx)(Ze.Provider,{value:t,children:e})}function Wn(){return!!(0,ye.useContext)(Ze)}function St(){let e=(0,ye.useContext)(Ze);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ni(){let e=St();return(0,vt.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 sl(){let e=St();return(0,vt.useStore)(e,t=>t)}function Vi(e){let t=St();return(0,vt.useStore)(t,n=>n.authItems.find(r=>r.service.id===e))}function Dn(e){let t=St();return(0,vt.useStore)(t,n=>n.authItems.find(r=>r.id===e)?.session?.token)}function ll(e){let t=St();return(0,vt.useStore)(t,n=>{let r=n.authItems.find(i=>i.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function cl(e){let t=Ni(),o=Vi(e.service.id);return(0,ye.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),o?(o.error||!o.isLoggedIn,e.children):null}function Fn(){return null}function Un(e){let[t,o,n]=ki(e.resource),r=e.fallbackComponent||Fn,i=e.loadingComponent||Fn,a=e.errorComponent||Fn,s=o.service,l=null;if(!n||!s)return e.children(t);let c=s.service.filter(m=>m.type==="AuthAccessService2");o.status==="error"&&(l=(0,$t.jsx)(a,{resource:e.resource,error:o.error||"",heading:o.errorHeading,note:o.errorNote,extra:e.extra})),(o.status==="unknown"||o.status==="probing")&&(l=(0,$t.jsx)(i,{})),o.status==="success"&&(l=e.children(t));for(let m of c)l=(0,$t.jsx)(cl,{service:m,probeId:s.id,children:l},m.id);return l}var Wt=require("react");var Li=require("zustand/vanilla"),ul=e=>e.id||e["@id"];function ml(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 zi=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?ul(t):void 0,n=null;return(0,Li.createStore)((r,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!ml(t):!1,errorMessage:"",search(a,s={}){if(!o)throw new Error("No search service found.");n&&!n.signal.aborted&&n.abort(),n=new AbortController;let l=new URLSearchParams;a.q&&l.set("q",a.q),a.motivation&&l.set("motivation",a.motivation),a.date&&l.set("date",a.date),a.user&&l.set("user",a.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 m=await c.json();r({resources:m.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(l=>l["@id"]===a);r({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[0]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[0]||null});return}r({highlight:a[l+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[a.length-1]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[a.length-1]||null});return}if(l===0){r({highlight:a[a.length-1]||null});return}r({highlight:a[l-1]||a[a.length-1]||null})}}))};var dl=require("zustand");function _n(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Vo=require("react/jsx-runtime"),xt=(0,Wt.createContext)(null);xt.displayName="Search";function qi(e){let t=_n();return e.store?(0,Vo.jsx)(xt.Provider,{value:e.store,children:e.children}):(0,Vo.jsx)(pl,{service:t,children:e.children})}function pl({service:e,children:t}){let o=(0,Wt.useMemo)(()=>zi(e),[e]);return(0,Vo.jsx)(xt.Provider,{value:o,children:t})}var ie=require("react/jsx-runtime"),Ut=()=>{},bt=(0,Lo.createContext)({setCurrentCanvasId:Ut,setCurrentCanvasIndex:Ut,nextCanvas:Ut,previousCanvas:Ut,items:[],sequence:[],setSequenceIndex:Ut,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Oi(e){let t=F(),{cursor:o,visibleItems:n,next:r,sequence:i,items:a,setCanvasIndex:s,setCanvasId:l,previous:c,setSequenceIndex:m,hasNext:u,hasPrevious:d}=Ln({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=(0,Lo.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:c,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:m,currentSequenceIndex:o,hasNext:u,hasPrevious:d}),[i,a,l,r,c,a,s,m,o]);return t?n.length===0?null:(0,ie.jsx)(bt.Provider,{value:g,children:(0,ie.jsx)(Qe.Provider,{value:n,children:(0,ie.jsx)(me,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."}))}function Yn(e){let t=Ae(e.vault),o=Mn(e.manifest);if(!o)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."});if(o.error)return(0,ie.jsx)("div",{children:o.error.toString()});if(!o.isLoaded)return(0,ie.jsx)("div",{children:"Loading..."});let n=(0,ie.jsx)(Oi,{...e,children:e.children});return(0,ie.jsx)(Pe,{vault:t,children:(0,ie.jsx)(En,{manifest:o.id,children:(0,ie.jsx)($n,{children:(0,ie.jsx)(qi,{children:e.rangeId?(0,ie.jsx)(Nn,{range:e.rangeId,children:n}):n})})})})}function Je(){return(0,Bi.useContext)(bt)}var Ui=require("@atlas-viewer/atlas"),Te=require("react"),_i=require("zustand");var Hi=Q(require("mitt"),1),et=require("react"),Di=require("react/jsx-runtime"),fl=(0,Hi.default)(),zo=(0,et.createContext)(fl);function gl({children:e,emitter:t}){return(0,Di.jsx)(zo.Provider,{value:t,children:e})}function Kn(){return(0,et.useContext)(zo)}function tt(e,t,o=[]){let n=(0,et.useContext)(zo);(0,et.useEffect)(()=>{let r=i=>{t(i)};return n.on(e,r),()=>{n.off(e,r)}},[n,e,...o])}var $i=require("polygon-editor"),Wi=require("zustand/vanilla");function Ct(e){let t=Math.max(...e.map(i=>i[0])),o=Math.min(...e.map(i=>i[0])),n=Math.max(...e.map(i=>i[1])),r=Math.min(...e.map(i=>i[1]));for(let i of e)if(i[0]!==o&&i[0]!==t&&i[1]!==r&&i[1]!==n||i[0]<o||i[0]>t||i[1]<r||i[1]>n)return!1;return!0}function Be(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(i=>i[0])),o=Math.min(...e.points.map(i=>i[1])),n=Math.max(0,...e.points.map(i=>i[0])),r=Math.max(0,...e.points.map(i=>i[1]));return{x:t,y:o,width:n-t,height:r-o}}return null}function Fi(e){return e.type==="SvgSelector"}function hl(e){return e.type==="BoxSelector"}function qo(e,t){if(Fi(e)){let a=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}"><${a?"polygon":"polyline"} points="${e.points.map(m=>m.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(" ")}${a?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:o,y:n,width:r,height:i}=e.spatial||{};return!r||!i?null:{type:"FragmentSelector",value:`xywh=${~~o},${~~n},${~~r},${~~i}`}}function Rt(e,t){if(!e||!e.points.length)return null;if(Ct(e.points)){let o=e.points.map(l=>l[0]),n=e.points.map(l=>l[1]),r=Math.min(...o),i=Math.min(...n),a=Math.max(...o)-r,s=Math.max(...n)-i;return qo({type:"BoxSelector",spatial:{x:r,y:i,width:a,height:s}},t)}return qo({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function _t(e){if(e.type==="polygon"&&!e.noBox&&e.points&&Ct(e.points)){let o=Be({open:!1,points:e.points||[]});return _t({...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:Be({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Rt({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:Rt({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 yl={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 jn({events:e,enabledTools:t,keyboardShortcutMapping:o,keyboardShortcutsEnabled:n=!1,debug:r}){let i=(0,Wi.createStore)((s,l)=>{let c=null,u=(0,$i.createHelper)({emitter:e,keyboardShortcutsEnabled:n,keyboardShortcutMapping:o,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(g=>({polygonState:{...g.polygonState,...d}}))}},d=>{s(g=>g.tool.requestId?{polygon:{...d,id:g.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",d)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},requestType:null,requests:{},history:u.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:u,polygonState:yl,setMetadata:(d,g)=>{let v=g||l().tool.requestId;v&&s(p=>({metadata:{...p.metadata,[v]:{...p.metadata[v]||{},...d}}}))},setToolCanvasId:d=>{s(g=>({tool:{...g.tool,canvasId:d}}))},switchTool:{pointer(){s({mode:"sketch"}),a.tools.setTool("pointer")},hand(){s({mode:"explore"}),a.tools.setTool("hand")},draw(){s({mode:"sketch"}),a.tools.setTool("pencil")},pen(){s({mode:"sketch"}),a.tools.setTool("pen")},line(){s({mode:"sketch"}),a.tools.setTool("line")},lineBox(){s({mode:"sketch"}),a.tools.setTool("lineBox")},box(){s({mode:"sketch"}),a.tools.setTool("box")},triangle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.triangle()},hexagon(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.hexagon()},circle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.circle()},remove(){let d=l();d.tool.requestId&&(u.setShape({points:[],open:!0}),d.cancelRequest(d.tool.requestId))}},reset:()=>{let d=l();d.tool.requestId&&d.cancelRequest(d.tool.requestId)},setPolygonState:d=>s({polygonState:typeof d=="function"?d(l().polygonState):d}),getRequestId:()=>{let d=Math.random().toString(36).slice(2);return s(g=>({validRequestIds:[...g.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(g=>({tool:g.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(v=>v!==d)}))}}},cancelRequest:d=>{let g=d||l().tool.requestId;g&&(s(v=>({mode:"explore",tool:v.tool.requestId===g?{enabled:!1,requestId:null,canvasId:null}:v.tool,validRequestIds:v.validRequestIds.filter(p=>p!==g)})),e.emit("atlas.request-cancelled",{id:g}))},requestAnnotation:async(d,g)=>{let p={...l().requests,[g.requestId]:d},R=_t(d);r&&console.log("requestAnnotation",{response:R,request:d});try{let{points:y=[],open:f=!0}=R.polygon||{},{requestId:h,canvasId:b=null,toolId:C}=g,P=C,A=l(),I=A.validRequestIds.includes(h),q=R.requestType;return r&&console.log("setting points",{requestType:q,points:y,open:f}),!I||A.tool.enabled?null:(u.setShape({id:h,points:y,open:f}),q==="polygon"&&(P=P||"pen",u.tools.setTool("pen")),q==="draw"&&(P=P||"draw",u.tools.setTool("pencil")),q==="box"&&(P=P||"box",u.tools.setTool("box")),q==="target"?(P=P||"box",u.tools.setTool("box"),u.lockAspectRatio(),u.tools.lockToolSwitching(),u.tools.setCanDeselect(!1),u.tools.setCanDelete(!1)):(u.tools.unlockToolSwitching(),u.tools.setCanDeselect(!0),u.tools.setCanDelete(!0)),d.bounds&&u.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:h}),s({polygon:{id:h,points:y,open:f},mode:"sketch",requestType:q,tool:{enabled:!0,requestId:h,canvasId:b},requests:p}),P?A.switchTool[P]?.():y.length===0&&A.switchTool.box(),(typeof d.selectByDefault>"u"&&y.length&&q==="box"||d.selectByDefault)&&A.switchTool.pointer(),new Promise(ue=>{let E=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.request-cancelled",E),e.off("atlas.annotation-completed",_),ue(null))},_=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.annotation-completed",_),e.off("atlas.request-cancelled",E),ue(k))};e.on("atlas.request-cancelled",E),e.on("atlas.annotation-completed",_)}))}catch(y){return console.error(y),null}},completeRequest:d=>{let g=l().tool.requestId;if(typeof d=="string"&&d&&d!==g)return;let v=g?l().requests[g]?.arguments||{}:{},p=g?l().metadata[g]||{}:{},R=l().polygonState.bounds,y=l().polygon;y&&(e.emit("atlas.annotation-completed",{id:y.id,polygon:y,requestType:l().requestType,target:Rt(y,R),canvasId:l().tool.canvasId,boundingBox:Be(y),metadata:p,arguments:{...v}}),u.setShape(null))},setAtlasRuntime:d=>{c=d,e.emit("atlas.ready",{runtime:d}),a.setScale(1/c._lastGoodScale),c.world.addLayoutSubscriber((g,v)=>{(g==="event-activation"||g==="zoom-to"||g==="go-home")&&c?._lastGoodScale&&!Number.isNaN(c._lastGoodScale)&&a.setScale(1/c._lastGoodScale)})},clearAtlasRuntime:()=>{c=null,s({stableViewport:null})},setCanvasRelativePosition:(d,g)=>{s(v=>({canvasRelativePositions:{...v.canvasRelativePositions,[d]:g}}))},clearCanvasRelativePosition:d=>{s(g=>{let v={...g.canvasRelativePositions};return delete v[d],{canvasRelativePositions:v}})},changeMode:d=>{s({mode:d})},nudgeLeft:()=>{},nudgeRight:()=>{},nudgeUp:()=>{},nudgeDown:()=>{},zoomIn:()=>{c?.world?.zoomIn()},zoomOut:()=>{c?.world?.zoomOut()},goHome:()=>{c?.world?.goHome()}}}),a=i.getState().polygons;return e.on("atlas.annotation-request",()=>{a.clock.start((s,l,c)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:c})},s=>{typeof s=="object"?i.setState({polygonState:s}):i.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{a.clock.stop()}),e.on("atlas.request-cancelled",()=>{a.clock.stop()}),i}var Qn=require("react/jsx-runtime"),ot=(0,Te.createContext)(null);function L(){return(0,Te.useContext)(ot)}var Gn={};function Xn(e="atlas"){return Gn[e]?.getState()}function Pt({children:e,name:t="atlas",existing:o,atlasStoreConfig:n}){let r=Kn(),i=(0,Te.useContext)(ot),a=(0,Te.useMemo)(()=>o||i||jn({events:r,...n||{}}),[r,o,i]),s=(0,_i.useStore)(a,l=>l.mode);return(0,Te.useEffect)(()=>{let l=t;return l&&(Gn[l]=a),()=>{l&&delete Gn[l]}},[a,t]),(0,Qn.jsx)(ot.Provider,{value:a,children:(0,Qn.jsx)(Ui.ModeContext.Provider,{value:s||"explore",children:e})})}var Gt=require("@atlas-viewer/atlas"),oa=require("react");var At=require("react"),Yi=require("react/jsx-runtime");function Zn(){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 Jn=(0,At.createContext)(Zn());Jn.displayName="AnnotationStyle";function Yt(){return(0,At.useContext)(Jn)}function vl({theme:e,children:t}){let o=(0,At.useMemo)(()=>e||Zn(),[e]);return(0,Yi.jsx)(Jn.Provider,{value:o,children:t})}var Gi=require("@iiif/helpers/annotation-targets"),Qi=require("react");var Tt=require("react"),Ki=require("zustand"),ji=(0,Ki.create)()((e,t)=>{let o=new Map,n=()=>Math.random().toString(36).substring(2,15),r=i=>{let a=o.get(i);if(a)return a;let s=n();return o.set(i,s),s};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(i){let{loadStylesheet:a,setStylesheet:s}=t();if(!i)return null;if(typeof i=="string")return i.startsWith("http")?{id:i,type:"CssStylesheet",value:await a(i)}:{id:s(i),type:"CssStylesheet",value:i};if(i.type==="CssStylesheet"){let l=i.id;if("value"in i){let c=Array.isArray(i.value)?i.value.join(`
2
+ `):i.value;if(c)return{id:s(c,l),type:"CssStylesheet",value:c}}if("id"in i&&i.id){let c=await a(i.id);return{id:i.id,type:"CssStylesheet",value:c}}}return null},async loadStylesheet(i){if(t().loading.includes(i))return"";try{let s=await fetch(i);if(!s.ok)throw new Error(`Failed to load stylesheet from ${i}`);let l=await s.text();return e(c=>({stylesheets:{...c.stylesheets,[i]:l}})),l}catch(s){return e(l=>({errors:[...l.errors,{url:i,error:s}]})),""}},setStylesheet(i,a){let s=a||r(i);return e(l=>({stylesheets:{...l.stylesheets,[s]:i}})),s}}});function er(e){let[t,o]=(0,Tt.useState)(""),{loading:n,errors:r,stylesheets:i,parseStylesheet:a}=ji();return(0,Tt.useEffect)(()=>{e&&a(e).then(l=>{l?.id&&o(l.id)})},[e,a]),[(0,Tt.useMemo)(()=>{let l={};return t&&i[t]&&(l[t]=i[t]),l},[t,i]),{id:t,stylesheets:i,loading:n,errors:r}]}function Kt(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=w(),a=o||r.annotation,s=N(m=>a?m.iiif.entities.Annotation[a]:void 0,[a]),[l]=er(s?.stylesheet),c=N(m=>s&&s.body?s.body.map(u=>u?u.type==="SpecificResource"?{...u,source:i.get(u)}:u?m.iiif.entities[u.type][u.id]:null:null).filter(Boolean):[],[s]);return(0,Qi.useMemo)(()=>{if(!s)return;let m={...s,body:c,target:(0,Gi.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping,loadedStylesheets:l})};return n?n(m):m},[s,n,c,l,...t])}var Xi=require("react");function T(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.canvas,a=N(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,Xi.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}var tr=require("react"),Zi=require("@iiif/helpers/events");function jt(e,t){let o=w(),n=(0,tr.useMemo)(()=>(0,Zi.createEventsHelper)(o),[o]),r=N(()=>e&&e.id?o.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,tr.useMemo)(()=>e?n.getListenersAsProps(e,t):{},[r,e,o,t])}var Ji=require("react"),ea=require("@iiif/helpers/styles");function nt(e,t){let o=w(),n=(0,Ji.useMemo)(()=>(0,ea.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 ta=require("react");var Bo=require("@atlas-viewer/atlas"),Ce=require("react"),$=require("react/jsx-runtime");function or({handleSize:e,resizable:t,onSave:o,children:n,maintainAspectRatio:r,disableCardinalControls:i,aspectRatio:a,...s}){let l=typeof e>"u"?r?12:8:e,{portalRef:c,mode:m,mouseEvent:u,isEditing:d}=(0,Bo.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:a,maintainAspectRatio:r},o),g=(0,Ce.useMemo)(()=>u("translate"),[u]),v=(0,Ce.useMemo)(()=>u("east"),[u]),p=(0,Ce.useMemo)(()=>u("west"),[u]),R=(0,Ce.useMemo)(()=>u("south"),[u]),y=(0,Ce.useMemo)(()=>u("north"),[u]),f=(0,Ce.useMemo)(()=>u("south-east"),[u]),h=(0,Ce.useMemo)(()=>u("south-west"),[u]),b=(0,Ce.useMemo)(()=>u("north-east"),[u]),C=(0,Ce.useMemo)(()=>u("north-west"),[u]),P=m==="sketch",A={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:r||i?"50%":2,position:"absolute",background:"#fff",pointerEvents:d?"none":P?"initial":"none"};return(0,$.jsx)($.Fragment,{children:(0,$.jsxs)("world-object",{...s,children:[n,P&&t?(0,$.jsx)(Bo.HTMLPortal,{ref:c,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:P&&t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{onMouseDown:g,onTouchStart:g,style:{display:"block",width:"100%",height:"100%",cursor:"move",border:"1px solid rgba(255,255,255, .7)",outline:"2px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:d?"none":P?"initial":"none"}}),r?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{title:"east",onTouchStart:v,onMouseDown:v,style:{...A,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:i?0:1,transform:`translate(${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"west",onMouseDown:p,style:{...A,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:i?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"north",onMouseDown:y,style:{...A,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:i?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south",onMouseDown:R,style:{...A,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:i?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),(0,$.jsx)("div",{title:"north-east",onMouseDown:b,style:{...A,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south-east",onMouseDown:f,style:{...A,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"south-west",onMouseDown:h,style:{...A,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"north-west",onMouseDown:C,style:{...A,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}var nr=require("react/jsx-runtime");function rr({id:e,interactive:t,region:o,onClick:n,onHover:r,onSave:i,aspectRatio:a,maintainAspectRatio:s,disableCardinalControls:l,isEditing:c,style:m={backgroundColor:"rgba(0,0,0,.5)"}}){let u=(0,ta.useCallback)(d=>{c&&i?.({id:o.id,x:o.x,y:o.y,height:o.height,width:o.width,...d})},[i,c,o.id,o.x,o.y,o.height,o.width]);return(0,nr.jsx)(or,{id:e,x:o.x,y:o.y,width:o.width,aspectRatio:a,height:o.height,resizable:c,onSave:u,maintainAspectRatio:s,disableCardinalControls:l,children:(0,nr.jsx)("box",{interactive:t,onClick:d=>{d.preventDefault(),d.stopPropagation(),n?.(o)},relativeStyle:!0,onMouseEnter:()=>{r?.(o)},target:{x:0,y:0,width:o.width,height:o.height},style:m})})}var na=require("react/jsx-runtime"),rt=({id:e,style:t,className:o,interactive:n,targetId:r,ignoreTargetId:i})=>{let a=Kt({id:e}),s=nt(a,"atlas"),l=nt(a,"html"),c=jt(a,["atlas"]),m=T(),u=Yt(),d=(0,oa.useMemo)(()=>(0,Gt.mergeStyles)((0,Gt.mergeStyles)((0,Gt.mergeStyles)((0,Gt.mergeStyles)(t,s),a?.motivation?.includes("highlighting")?u.highlighted:u.default),a?.target?.selector?.boxStyle||{})),[t,s,u,a?.motivation,a?.target]),g=r||m?.id;return m&&a&&a.target&&a.target.selector&&(a.target.selector.type==="BoxSelector"||a.target.selector.type==="SvgSelector")&&a.target.source&&(i?!0:a.target.source.id===g||a.target.source===g)?(0,na.jsx)(rr,{id:a.id,isEditing:!0,region:a.target.selector.spatial,style:d,className:l?.className||o,interactive:!!(l?.href||n),href:l?.href||null,title:l?.title||null,hrefTarget:l?.target||null,onClick:()=>{},...c}):null};var ia=require("react");var ra=require("react");function ir(e={},t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.annotationPage,a=N(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,ra.useMemo)(()=>{if(a)return n?n(a):a},[a,...t])}var ar=require("react/jsx-runtime"),Oe=({className:e,page:t,targetId:o,ignoreTargetId:n})=>{let r=ir({id:t.id})||t,i=nt(r,"atlas"),a=nt(r,"html");return N(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,ar.jsx)(ia.Fragment,{children:r.items?.map(s=>(0,ar.jsx)(rt,{id:s.id,style:i,className:a?.className||e,targetId:o,ignoreTargetId:n},s.id))})};var He=require("react"),Oo=require("react/jsx-runtime"),aa=(0,He.createContext)(null),sa=(0,He.createContext)(null),la=(0,He.createContext)(null);function Sl(){let e=(0,He.useContext)(aa);if(!e)throw new Error("Ctx not found");return e}function xl(){let e=(0,He.useContext)(sa);if(!e)throw new Error("Ctx not found");return e}function bl(){let e=(0,He.useContext)(la);if(!e)throw new Error("Ctx not found");return e}function Qt({actions:e,state:t,children:o,currentTime:n,progress:r,element:i}){return(0,Oo.jsx)(la.Provider,{value:{currentTime:n,progress:r,element:i},children:(0,Oo.jsx)(sa.Provider,{value:e,children:(0,Oo.jsx)(aa.Provider,{value:t,children:o})})})}var ca=require("react");var ua=require("@iiif/helpers");function Xt(){let e=F(),t=T();return(0,ca.useMemo)(()=>{if(!e||!t||!e.start)return null;let o=(0,ua.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 ma(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Cl(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 Ho(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function it(e){let[t,o]=(0,D.useReducer)(Cl,ma(e.duration));(0,D.useEffect)(()=>{o({type:"RESET",state:ma(e.duration)})},[e.duration]);let n=(0,D.useRef)(null),r=(0,D.useRef)(null),i=(0,D.useRef)(null),a=(0,D.useRef)(!1),s=(0,D.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Ho(n.current.currentTime),i.current&&(i.current.style.width=`${n.current.currentTime/e.duration*100}%`),a.current!==n.current.muted&&(a.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():m())},[s]),m=(0,D.useCallback)(()=>{n.current&&(n.current.pause(),o({type:"PAUSE"}),s())},[s]),u=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(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"}))},[]),v=(0,D.useCallback)(y=>{n.current&&(n.current.muted=!1,n.current.volume=y/100,o({type:"SET_VOLUME",volume:y}))},[]),p=(0,D.useCallback)(y=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(y*e.duration,e.duration)),s())},[]),R=(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:i},t,{play:l,pause:m,playPause:c,mute:d,unmute:g,toggleMute:u,setVolume:v,setDurationPercent:p,setTime:R}]}var at=require("react"),sr=(0,at.createContext)(()=>{}),lr=(0,at.createContext)(()=>{});function j(e,t,o,n,r=[]){let i=(0,at.useContext)(e==="portal"?lr:sr);(0,at.useEffect)(()=>(e!=="none"&&i(t,o,n),()=>{i(t,null)}),[t,e,i,...r])}var Fo=require("react/jsx-runtime");function cr({media:e,startTime:t,children:o}){let[{element:n,currentTime:r,progress:i},a,s]=it({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,Fo.jsxs)(Qt,{state:a,actions:s,currentTime:r,progress:i,element:n,children:[(0,Fo.jsx)("audio",{ref:n,src:l}),o]},e.url)}function Do({media:e,mediaControlsDeps:t,audioCopmonent:o=cr,children:n}){let r=Xt();return j("portal","audio",o,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var $o=require("react"),De=(0,$o.createContext)(null);De.displayName="Strategy";function O(){let e=(0,$o.useContext)(De);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Fe=require("react/jsx-runtime");function ur({model:e}){return(0,Fe.jsxs)(Fe.Fragment,{children:[(0,Fe.jsx)("style",{children:`
3
3
  .model-container {
4
4
  position: absolute;
5
5
  top: 0;
@@ -12,10 +12,10 @@
12
12
  justify-content: center;
13
13
  pointer-events: visible;
14
14
  }
15
- `}),(0,Oe.jsx)("div",{className:"model-container",children:(0,Oe.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Wo({model:e,name:t}){return j("overlay",`model-${t}`,ur,{model:e},[e]),null}var da=require("react/jsx-runtime");function mr(){let{strategy:e}=O();return e.type!=="3d-model"?null:(0,da.jsx)(Wo,{model:e.model})}var Uo=require("react"),Zt=(0,Uo.createContext)(null);Zt.displayName="Controls";function oe(){let e=(0,Uo.useContext)(Zt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ae=require("react/jsx-runtime");function dr(){let{strategy:e}=O(),{renderViewerControls:t,viewControlsDeps:o}=oe(),n=T(),r=n?.accompanyingCanvas,i=n?.placeholderCanvas;return(0,Ae.jsxs)(Ae.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Ae.jsx)(me,{canvas:r.id,children:(0,Ae.jsx)(st,{renderViewerControls:t,viewControlsDeps:o})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!r?(0,Ae.jsx)(me,{canvas:i.id,children:(0,Ae.jsx)(st,{renderViewerControls:t,viewControlsDeps:o})}):null]})}var It=require("react");var Te=require("react");var _o=require("@iiif/helpers/vault/actions");var pa=require("react");function pr(){let t=w().getStore();return(0,pa.useMemo)(()=>o=>t.dispatch(o),[t])}function fa(e){return typeof e!="string"&&e&&e.bindToVault}function fr(){let e=w(),t=(0,Te.useRef)([]),o=pr(),n=(0,Te.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,Te.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(_o.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[n]);let r=N(s=>n&&s.iiif.entities.AnnotationPage[n]||null,[n]),i=(0,Te.useCallback)((s,l)=>{if(n){if(fa(s)){let u=s;u.__vault||u.bindToVault(e),s=typeof u.source=="string"?u.source:u.source.id,t.current[s]=u}else typeof s!="string"&&(s=s.id);let c=e.get({id:n,type:"AnnotationPage"}),m=e.get({id:s,type:"Annotation"});c&&m&&(c.items.find(u=>u.id===m.id)||o(_o.entityActions.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[n]),a=(0,Te.useCallback)(s=>{n&&(fa(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(_o.entityActions.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[n]);return[r,{addAnnotation:i,removeAnnotation:a}]}var ha=require("react/jsx-runtime"),ga=(0,It.createContext)(null);function gr(){let e=(0,It.useContext)(ga);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function hr({children:e}){let[t,{addAnnotation:o,removeAnnotation:n}]=fr();return(0,ha.jsx)(ga.Provider,{value:(0,It.useMemo)(()=>({fullPage:t,addAnnotation:o,removeAnnotation:n}),[t]),children:e})}var lt=require("react/jsx-runtime");function yr({children:e}){let{strategy:t}=O(),[o]=gr();return t.type!=="images"?null:(0,lt.jsxs)(lt.Fragment,{children:[o?(0,lt.jsx)(ze,{page:o}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,lt.jsx)(ze,{page:n},n.id)):null,e]})}var He=require("react");var ya=require("react"),vr=(e,t=[])=>{let o=w();(0,ya.useEffect)(()=>{e(o)},[o,...t])};var Yo=Q(require("react"),1),va=require("@iiif/helpers/image-service"),Sa=Yo.default.createContext(new va.ImageServiceLoader);function Jt(){return(0,Yo.useContext)(Sa)}var xa=require("@iiif/helpers/thumbnail");function Ie(e,t,{canvasId:o,manifestId:n}={}){let r=w(),i=Jt(),a=(0,He.useMemo)(()=>(0,xa.createThumbnailHelper)(r,{imageServiceLoader:i}),[r,i]),[s,l]=(0,He.useState)(),c=F(n?{id:n}:void 0),m=T(o?{id:o}:void 0),u=m||c,d=(0,He.useRef)(!1);if((0,He.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!u)throw new Error("Must be called under a manifest or canvas context.");return vr(g=>{a.getBestThumbnailAtSize(u,e,t).then(v=>{v.best&&!d.current&&l(v.best)})},[u]),s}var Sr=require("react/jsx-runtime");function ct({x:e=0,y:t=0}){let o=T(),n=Ie({maxWidth:256,maxHeight:256});return!o||!n||n.type!=="fixed"?null:(0,Sr.jsx)("world-object",{height:o.height,width:o.width,x:e,y:t,children:(0,Sr.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 Ko=require("react/jsx-runtime");function xr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Ko.jsxs)(Do,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,Ko.jsx)(ct,{}),o?o(t):null]},t.media.url)}var Ir=require("@atlas-viewer/atlas"),en=require("react"),wr=require("zustand");var jo=require("react"),ba=require("zustand"),Ca=require("react/jsx-runtime"),br=(0,jo.createContext)(null);br.displayName="ComplexTimeline";function Cr({children:e,store:t}){return(0,Ca.jsx)(br.Provider,{value:t,children:e})}function Rl(e){let t=(0,jo.useContext)(br);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,ba.useStore)(t,e)}var Pa=Q(require("mitt"),1),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 i={},a=t.slice(e,r);for(let s of a)s.type==="enter"&&(i[s.id]=s),s.type==="exit"&&(i[s.id]?delete i[s.id]:i[s.id]=s);return[r,Object.values(i)]}return[e,[]]}function Ta({complexTimeline:e,startTime:t=0}){let o=(0,Pa.default)(),n={},r={progress:null,currentTime:null},i=0,a=null,s=0,l=null;function c(){let f=b.getState().visibleElements,h=n,R=[],C=Object.keys(h);for(let P of C){let A=h[P],I=f[P];A&&I&&R.push(A)}return R}function m(){return Object.keys(n).map(f=>n[f])}function u(y){r.currentTime&&(r.currentTime.innerHTML=Ho(y),r.progress&&(r.progress.style.width=`${y/e.duration*100}%`))}let d=()=>{let y=b.getState(),f=y.currentPrime;if(!f)return;let h=n,R=y.visibleElements,C=Object.keys(h);for(let P of C){let A=h[P],I=R[P];if(A&&P!==f.id&&I){let q=s-I.time*1e3;Math.abs(s-I.time*1e3-A.currentTime*1e3)>300&&(A.currentTime=q/1e3)}}},g=(y=0)=>{let f=y-i,h=b.getState();if(h.isPlaying){let R=h.currentPrime;if(R){let I=n[R.id];I&&(I.paused?s+=f:s=(R.time+I.currentTime)*1e3)}else s+=f;let C=s/1e3;if(C>h.duration){b.getState().setTime(0),b.setState({isPlaying:!1}),v(),u(0);return}u(C);let[P,A]=Ra({currentTime:C,currentKeyFrameIndex:h.nextKeyframeIndex,keyframes:h.complexTimeline.keyframes,targetTime:C});A.length&&h.applyKeyframes(P,A)}i=y,a=requestAnimationFrame(g)},v=()=>{a&&cancelAnimationFrame(a)},p=(y,f)=>{},b=(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(d,500)),y({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(h,R){let C=f(),P={...C.visibleElements},A=C.currentPrime;for(let I of R)I.type==="enter"&&(P[I.id]=I,o.emit("complex-timeline.enter",{id:I.id})),I.type==="exit"&&(P[I.id]=null,o.emit("complex-timeline.exit",{id:I.id})),I.isPrime&&(A=I);y({nextKeyframeIndex:h,visibleElements:P,currentPrime:A})},stopClock:()=>{let h=f().clockStartRequests;if(h!==0){if(h===1){v(),l&&clearInterval(l),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:h-1})}},setElement:(h,R)=>{n[h]=R;let C=Object.keys(n),P=f().complexTimeline;p(R,h),P.items.filter(I=>I.type!=="Image"&&I.type!=="Text").every(I=>C.includes(I.annotationId))&&!f().isReady&&(o.emit("complex-timeline.ready",{complexTimeline:P}),y({isReady:!0}))},removeElement:h=>{delete n[h]},mute(){for(let h of m())h.muted=!0;y({isMuted:!0})},unmute(){for(let h of m())h.muted=!1;y({isMuted:!1})},play(){if(!f().isPlaying){for(let R of c())R.play();y({isPlaying:!0})}},pause(){if(f().isPlaying){for(let R of c())R.pause();y({isPlaying:!1})}},playPause(){let h=f();h.isPlaying?h.pause():h.play()},setDurationPercent(h){let C=f().duration*h;f().setTime(C)},setTime(h){let R=f(),C=s/1e3,P=typeof h=="function"?h(C):h,A=R.nextKeyframeIndex;if(C>P){y({visibleElements:{},currentPrime:null});let V=Object.keys(R.visibleElements);for(let B of V)o.emit("complex-timeline.exit",{id:B});C=0,A=0}let[I,q]=Ra({currentTime:C,currentKeyFrameIndex:A,keyframes:R.complexTimeline.keyframes,targetTime:P});R.applyKeyframes(I,q),s=P*1e3;let E=b.getState().visibleElements,_=n,k=Object.keys(E);for(let V of k){let B=E[V];if(B){let Bt=_[V];Bt&&(Bt.currentTime=(s-B.time*1e3)/1e3)}}u(P)},setVolume(h){for(let R of m())R.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=b.getState(),h=y.id,R=n[h];R&&f.isPlaying&&R.play()}),o.on("complex-timeline.exit",y=>{let f=b.getState(),h=y.id,R=n[h];R&&(R.currentTime=0,R.pause())}),b.getState().setTime(t),{store:b,emitter:o}}var kt=require("react");var Da=require("@atlas-viewer/atlas"),Fa=require("@iiif/parser/image-3");var Go=Q(require("react"),1),Ia=require("@iiif/helpers/image-service"),eo=require("zustand"),wa=Go.default.createContext(Ia.imageServices.store);wa.displayName="ImageServicesHelper";function Qo(){return(0,Go.useContext)(wa)}function ka(e){let t=Qo();return(0,eo.useStore)(t,({loaded:o})=>o[e])}function wt(){let e=Qo();return(0,eo.useStore)(e,({loadServiceSync:t})=>t)}function Ma(){let e=Qo();return(0,eo.useStore)(e,({loaded:t})=>t)}function Ea(){let e=Qo();return(0,eo.useStore)(e,({loadService:t})=>t)}var Se=Q(require("react"),1),ve=require("react/jsx-runtime"),Va=Se.default.createContext("en"),La=Se.default.createContext({}),za=Se.default.createContext(null);function Pl(e){return(0,ve.jsx)(La.Provider,{value:e.translations,children:e.children})}function Al(e){return(0,ve.jsx)(Va.Provider,{value:e.language,children:e.children})}function Tl(e){return(0,ve.jsx)(za.Provider,{value:e.convert,children:e.children})}function Rr(){return Se.default.useContext(za)}function Xo(){return Se.default.useContext(Va)}function Pr(){return Se.default.useContext(La)}function Na(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function qa({as:e,language:t,children:o,viewingDirection:n,...r}){let i=Xo();return(0,Se.useMemo)(()=>Na(i)===Na(t),[i,t])?e?(0,ve.jsx)(e,{...r,children:o}):(0,ve.jsx)("span",{...r,children:o}):e?(0,ve.jsx)(e,{...r,lang:t,dir:n,children:o}):(0,ve.jsx)("span",{...r,lang:t,dir:n,children:o})}function Ba(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 Oa=(e,t=[])=>{let o=Xo();return(0,Se.useMemo)(()=>{let n=e();return Ba(o,n,[])},[o,...t])};function ut(e,t,o,n){return t?o?o(e[t]||t,n||"none"):e[t]||t:""}function Ha(e,t,o=`
15
+ `}),(0,Fe.jsx)("div",{className:"model-container",children:(0,Fe.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Wo({model:e,name:t}){return j("overlay",`model-${t}`,ur,{model:e},[e]),null}var da=require("react/jsx-runtime");function mr(){let{strategy:e}=O();return e.type!=="3d-model"?null:(0,da.jsx)(Wo,{model:e.model})}var Uo=require("react"),Zt=(0,Uo.createContext)(null);Zt.displayName="Controls";function oe(){let e=(0,Uo.useContext)(Zt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ie=require("react/jsx-runtime");function dr(){let{strategy:e}=O(),{renderViewerControls:t,viewControlsDeps:o}=oe(),n=T(),r=n?.accompanyingCanvas,i=n?.placeholderCanvas;return(0,Ie.jsxs)(Ie.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Ie.jsx)(me,{canvas:r.id,children:(0,Ie.jsx)(st,{renderViewerControls:t,viewControlsDeps:o})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!r?(0,Ie.jsx)(me,{canvas:i.id,children:(0,Ie.jsx)(st,{renderViewerControls:t,viewControlsDeps:o})}):null]})}var It=require("react");var we=require("react");var _o=require("@iiif/helpers/vault/actions");var pa=require("react");function pr(){let t=w().getStore();return(0,pa.useMemo)(()=>o=>t.dispatch(o),[t])}function fa(e){return typeof e!="string"&&e&&e.bindToVault}function fr(){let e=w(),t=(0,we.useRef)([]),o=pr(),n=(0,we.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,we.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(_o.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[n]);let r=N(s=>n&&s.iiif.entities.AnnotationPage[n]||null,[n]),i=(0,we.useCallback)((s,l)=>{if(n){if(fa(s)){let u=s;u.__vault||u.bindToVault(e),s=typeof u.source=="string"?u.source:u.source.id,t.current[s]=u}else typeof s!="string"&&(s=s.id);let c=e.get({id:n,type:"AnnotationPage"}),m=e.get({id:s,type:"Annotation"});c&&m&&(c.items.find(u=>u.id===m.id)||o(_o.entityActions.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[n]),a=(0,we.useCallback)(s=>{n&&(fa(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(_o.entityActions.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[n]);return[r,{addAnnotation:i,removeAnnotation:a}]}var ha=require("react/jsx-runtime"),ga=(0,It.createContext)(null);function gr(){let e=(0,It.useContext)(ga);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function hr({children:e}){let[t,{addAnnotation:o,removeAnnotation:n}]=fr();return(0,ha.jsx)(ga.Provider,{value:(0,It.useMemo)(()=>({fullPage:t,addAnnotation:o,removeAnnotation:n}),[t]),children:e})}var lt=require("react/jsx-runtime");function yr({children:e}){let{strategy:t}=O(),[o]=gr();return t.type!=="images"?null:(0,lt.jsxs)(lt.Fragment,{children:[o?(0,lt.jsx)(Oe,{page:o}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,lt.jsx)(Oe,{page:n},n.id)):null,e]})}var $e=require("react");var ya=require("react"),vr=(e,t=[])=>{let o=w();(0,ya.useEffect)(()=>{e(o)},[o,...t])};var Yo=Q(require("react"),1),va=require("@iiif/helpers/image-service"),Sa=Yo.default.createContext(new va.ImageServiceLoader);function Jt(){return(0,Yo.useContext)(Sa)}var xa=require("@iiif/helpers/thumbnail");function ke(e,t,{canvasId:o,manifestId:n}={}){let r=w(),i=Jt(),a=(0,$e.useMemo)(()=>(0,xa.createThumbnailHelper)(r,{imageServiceLoader:i}),[r,i]),[s,l]=(0,$e.useState)(),c=F(n?{id:n}:void 0),m=T(o?{id:o}:void 0),u=m||c,d=(0,$e.useRef)(!1);if((0,$e.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!u)throw new Error("Must be called under a manifest or canvas context.");return vr(g=>{a.getBestThumbnailAtSize(u,e,t).then(v=>{v.best&&!d.current&&l(v.best)})},[u]),s}var Sr=require("react/jsx-runtime");function ct({x:e=0,y:t=0}){let o=T(),n=ke({maxWidth:256,maxHeight:256});return!o||!n||n.type!=="fixed"?null:(0,Sr.jsx)("world-object",{height:o.height,width:o.width,x:e,y:t,children:(0,Sr.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 Ko=require("react/jsx-runtime");function xr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Ko.jsxs)(Do,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,Ko.jsx)(ct,{}),o?o(t):null]},t.media.url)}var Ir=require("@atlas-viewer/atlas"),en=require("react"),wr=require("zustand");var jo=require("react"),ba=require("zustand"),Ca=require("react/jsx-runtime"),br=(0,jo.createContext)(null);br.displayName="ComplexTimeline";function Cr({children:e,store:t}){return(0,Ca.jsx)(br.Provider,{value:t,children:e})}function Rl(e){let t=(0,jo.useContext)(br);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,ba.useStore)(t,e)}var Pa=Q(require("mitt"),1),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 i={},a=t.slice(e,r);for(let s of a)s.type==="enter"&&(i[s.id]=s),s.type==="exit"&&(i[s.id]?delete i[s.id]:i[s.id]=s);return[r,Object.values(i)]}return[e,[]]}function Ta({complexTimeline:e,startTime:t=0}){let o=(0,Pa.default)(),n={},r={progress:null,currentTime:null},i=0,a=null,s=0,l=null;function c(){let f=R.getState().visibleElements,h=n,b=[],C=Object.keys(h);for(let P of C){let A=h[P],I=f[P];A&&I&&b.push(A)}return b}function m(){return Object.keys(n).map(f=>n[f])}function u(y){r.currentTime&&(r.currentTime.innerHTML=Ho(y),r.progress&&(r.progress.style.width=`${y/e.duration*100}%`))}let d=()=>{let y=R.getState(),f=y.currentPrime;if(!f)return;let h=n,b=y.visibleElements,C=Object.keys(h);for(let P of C){let A=h[P],I=b[P];if(A&&P!==f.id&&I){let q=s-I.time*1e3;Math.abs(s-I.time*1e3-A.currentTime*1e3)>300&&(A.currentTime=q/1e3)}}},g=(y=0)=>{let f=y-i,h=R.getState();if(h.isPlaying){let b=h.currentPrime;if(b){let I=n[b.id];I&&(I.paused?s+=f:s=(b.time+I.currentTime)*1e3)}else s+=f;let C=s/1e3;if(C>h.duration){R.getState().setTime(0),R.setState({isPlaying:!1}),v(),u(0);return}u(C);let[P,A]=Ra({currentTime:C,currentKeyFrameIndex:h.nextKeyframeIndex,keyframes:h.complexTimeline.keyframes,targetTime:C});A.length&&h.applyKeyframes(P,A)}i=y,a=requestAnimationFrame(g)},v=()=>{a&&cancelAnimationFrame(a)},p=(y,f)=>{},R=(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(d,500)),y({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(h,b){let C=f(),P={...C.visibleElements},A=C.currentPrime;for(let I of b)I.type==="enter"&&(P[I.id]=I,o.emit("complex-timeline.enter",{id:I.id})),I.type==="exit"&&(P[I.id]=null,o.emit("complex-timeline.exit",{id:I.id})),I.isPrime&&(A=I);y({nextKeyframeIndex:h,visibleElements:P,currentPrime:A})},stopClock:()=>{let h=f().clockStartRequests;if(h!==0){if(h===1){v(),l&&clearInterval(l),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:h-1})}},setElement:(h,b)=>{n[h]=b;let C=Object.keys(n),P=f().complexTimeline;p(b,h),P.items.filter(I=>I.type!=="Image"&&I.type!=="Text").every(I=>C.includes(I.annotationId))&&!f().isReady&&(o.emit("complex-timeline.ready",{complexTimeline:P}),y({isReady:!0}))},removeElement:h=>{delete n[h]},mute(){for(let h of m())h.muted=!0;y({isMuted:!0})},unmute(){for(let h of m())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 C=f().duration*h;f().setTime(C)},setTime(h){let b=f(),C=s/1e3,P=typeof h=="function"?h(C):h,A=b.nextKeyframeIndex;if(C>P){y({visibleElements:{},currentPrime:null});let V=Object.keys(b.visibleElements);for(let B of V)o.emit("complex-timeline.exit",{id:B});C=0,A=0}let[I,q]=Ra({currentTime:C,currentKeyFrameIndex:A,keyframes:b.complexTimeline.keyframes,targetTime:P});b.applyKeyframes(I,q),s=P*1e3;let E=R.getState().visibleElements,_=n,k=Object.keys(E);for(let V of k){let B=E[V];if(B){let Bt=_[V];Bt&&(Bt.currentTime=(s-B.time*1e3)/1e3)}}u(P)},setVolume(h){for(let b of m())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=R.getState(),h=y.id,b=n[h];b&&f.isPlaying&&b.play()}),o.on("complex-timeline.exit",y=>{let f=R.getState(),h=y.id,b=n[h];b&&(b.currentTime=0,b.pause())}),R.getState().setTime(t),{store:R,emitter:o}}var kt=require("react");var Da=require("@atlas-viewer/atlas"),Fa=require("@iiif/parser/image-3");var Go=Q(require("react"),1),Ia=require("@iiif/helpers/image-service"),eo=require("zustand"),wa=Go.default.createContext(Ia.imageServices.store);wa.displayName="ImageServicesHelper";function Qo(){return(0,Go.useContext)(wa)}function ka(e){let t=Qo();return(0,eo.useStore)(t,({loaded:o})=>o[e])}function wt(){let e=Qo();return(0,eo.useStore)(e,({loadServiceSync:t})=>t)}function Ma(){let e=Qo();return(0,eo.useStore)(e,({loaded:t})=>t)}function Ea(){let e=Qo();return(0,eo.useStore)(e,({loadService:t})=>t)}var Se=Q(require("react"),1),ve=require("react/jsx-runtime"),Va=Se.default.createContext("en"),La=Se.default.createContext({}),za=Se.default.createContext(null);function Pl(e){return(0,ve.jsx)(La.Provider,{value:e.translations,children:e.children})}function Al(e){return(0,ve.jsx)(Va.Provider,{value:e.language,children:e.children})}function Tl(e){return(0,ve.jsx)(za.Provider,{value:e.convert,children:e.children})}function Rr(){return Se.default.useContext(za)}function Xo(){return Se.default.useContext(Va)}function Pr(){return Se.default.useContext(La)}function Na(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function qa({as:e,language:t,children:o,viewingDirection:n,...r}){let i=Xo();return(0,Se.useMemo)(()=>Na(i)===Na(t),[i,t])?e?(0,ve.jsx)(e,{...r,children:o}):(0,ve.jsx)("span",{...r,children:o}):e?(0,ve.jsx)(e,{...r,lang:t,dir:n,children:o}):(0,ve.jsx)("span",{...r,lang:t,dir:n,children:o})}function Ba(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 Oa=(e,t=[])=>{let o=Xo();return(0,Se.useMemo)(()=>{let n=e();return Ba(o,n,[])},[o,...t])};function ut(e,t,o,n){return t?o?o(e[t]||t,n||"none"):e[t]||t:""}function Ha(e,t,o=`
16
16
  `,n={}){let r=Rr(),i=Oa(()=>Object.keys(e||{}),[e]);return[(0,Se.useMemo)(()=>{if(!e)return ut(n,t,r)||"";if(typeof e=="string")return ut(n,e,r);let a=i?e[i]:void 0;return a?typeof a=="string"?a:a.map(s=>ut(n,s,r,i)).join(o):""},[i,t,e]),i]}function Il(){let e=Xo(),t=Pr(),o=Rr();return function(r,i="",a=`
17
17
  `,s=t){let l=Object.keys(r||{}),c=Ba(e,l,[]);if(!r)return ut(s,i,o)||"";if(typeof r=="string")return ut(s,r,o);let m=c?r[c]:void 0;return m?typeof m=="string"?ut(s,m,o,c):m.map(u=>ut(s,u,o,c)).join(typeof a<"u"?a:`
18
- `):""}}function le({as:e,defaultText:t,enableDangerouslySetInnerHTML:o,children:n,separator:r,...i}){let a=Pr(),[s,l]=Ha(n,t,r,a);return l?(0,ve.jsx)(qa,{...i,as:e,language:l,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s}):e?(0,ve.jsx)(e,{...i,children:s}):(0,ve.jsx)("span",{...i,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s})}var Ar=require("@iiif/parser/image-3"),Zo=require("react"),mt=require("react/jsx-runtime"),Tr=e=>{let t=e.format||"jpg",o=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,i=e.enableSizes,a=(0,Zo.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,Zo.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let m=e.width,u=[1],d=1;for(;2**d<m;)d=d*2,u.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,Ar.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:(0,Ar.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:[]}return c},[e.tiles.imageService,e.width]),l=(0,Zo.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,mt.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,mt.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,mt.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,i&&n.map((c,m)=>(0,mt.jsx)("world-image",{uri:`${a}/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},m)),s.map(c=>(c.scaleFactors||[]).map(m=>(0,mt.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:c,scaleFactor:m,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${m}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var de=require("react/jsx-runtime");function wl({resource:e,heading:t,note:o,extra:n}){return n?(0,de.jsx)(Da.HTMLPortal,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,de.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,de.jsxs)("div",{children:[(0,de.jsx)(le,{children:t||"Not authorised"}),o&&(0,de.jsx)("p",{children:(0,de.jsx)(le,{children:o})}),(0,de.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function $a({image:e,thumbnail:t,crop:o,enableSizes:n,enableThumbnail:r,renderOptions:i,rotation:a}){let s=Wn(),l=(0,Fa.getId)(e.service),c=ka(l),m=wt(),u=c?.service;m(e.service,e);let d=u&&c?.status==="done",g=(u?.preferredFormats||[])[0],v=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!s){let p=e.service,b=p.width||e.width||0,y=p.height||e.height||0,f=0,h=0,R=e.target?.spatial.width||b,C=e.target?.spatial.height||y;return(a===90||a===270)&&([R,C]=[C,R],C>R?h=-(C-R)/2:f=-(R-C)/2),(0,de.jsx)(Tr,{enableThumbnail:r,renderOptions:i,rotation:a,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:b,imageService:p,thumbnail:v},enableSizes:n,x:f,y:h,format:g,width:R,height:C,crop:o})}return(0,de.jsx)(Un,{resource:e.service,errorComponent:wl,extra:e,children:p=>{let b=p.width||e.width||0,y=p.height||e.height||0,f=0,h=0,R=e.target?.spatial.width||b,C=e.target?.spatial.height||y;return(a===90||a===270)&&([R,C]=[C,R],C<R?(h=-(C-R)/2,f=(R-C)/2):(h=(C-R)/2,f=-(R-C)/2)),(0,de.jsx)(Tr,{enableThumbnail:r,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:b,imageService:p,thumbnail:v},rotation:a,format:g,enableSizes:n,x:f,y:h,width:R,height:C,crop:o})}},e.id)}var De=require("react/jsx-runtime");function Fe({id:e,image:t,thumbnail:o,isStatic:n,x:r=0,y:i=0,children:a,selector:s,onClick:l,enableSizes:c,enableAnnotations:m}){let u=(0,kt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,kt.useMemo)(()=>{let h=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(h&&h.selector?.type==="ImageApiSelector")return Number(h.selector.rotation)},[t]),g=r+t.target.spatial.x,v=i+t.target.spatial.y,p=t.target.spatial.width,b=t.target.spatial.height,y=t.target.spatial.width,f=t.target.spatial.height;return(d===90||d===270)&&([p,b]=[b,p],[y,f]=[f,y]),(0,De.jsxs)("world-object",{x:g,y:v,width:p,height:b,onClick:l,rotation:d,children:[t.service?(0,De.jsxs)(kt.Fragment,{children:[(0,De.jsx)($a,{image:t,thumbnail:o,crop:u,enableSizes:c,rotation:d}),a]},"service"):(0,De.jsxs)(kt.Fragment,{children:[(0,De.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:y,height:f},display:y&&f?{width:y,height:f}:void 0,crop:u}),a]},"no-service"),m&&t.annotationPages?t.annotationPages.map(h=>(0,De.jsx)(ze,{page:h,className:"image-service-annotation",ignoreTargetId:!0},h.id)):null]},e+(t.service?"server":"no-service"))}var Wa=require("@atlas-viewer/atlas");var we=require("react/jsx-runtime");function Jo({strategy:e,onClickPaintingAnnotation:t}){return(0,we.jsx)(we.Fragment,{children:e.items.map((o,n)=>(0,we.jsx)(we.Fragment,{children:(0,we.jsx)(Wa.HTMLPortal,{onClick:t?r=>{r.stopPropagation(),t(o.annotationId,o,r)}:void 0,target:o.target?.spatial||void 0,children:(0,we.jsx)("div",{"data-textual-content":!0,children:(0,we.jsx)(le,{enableDangerouslySetInnerHTML:!0,children:o.text})})},n)}))})}var pe=require("react/jsx-runtime");function Ua({strategy:e,children:t}){let{store:o}=(0,en.useMemo)(()=>Ta({complexTimeline:e}),[e]),n=(0,wr.useStore)(o,a=>a.isReady),r=(0,wr.useStore)(o,a=>a.visibleElements);function i(a){return s=>{s&&o.getState().setElement(a,s)}}return(0,en.useLayoutEffect)(()=>{if(n){let{startClock:a,stopClock:s}=o.getState();return a(),()=>{s()}}},[e,n]),j("portal","custom-controls",Cr,{store:o,children:t},[n]),(0,pe.jsxs)(pe.Fragment,{children:[e.items.map(a=>a.type!=="Image"||!r[a.annotationId]?null:(0,pe.jsx)(Fe,{image:a,id:a.annotationId},a.id)),e.items.map((a,s)=>a.type!=="Text"||!r[a.annotationId]?null:(0,pe.jsx)(Jo,{strategy:{type:"textual-content",items:[a]}},s)),e.items.map((a,s)=>a.type!=="Video"||!a.target.spatial?null:(0,pe.jsx)(Ir.HTMLPortal,{target:a.target.spatial,children:(0,pe.jsx)("video",{ref:i(a.annotationId),src:a.url,style:{height:"100%",width:"100%",opacity:r[a.annotationId]?1:0}})},s)),e.items.map((a,s)=>a.type!=="Sound"?null:(0,pe.jsx)(Ir.HTMLPortal,{children:(0,pe.jsx)("audio",{ref:i(a.annotationId),src:a.url})},s)),e.highlights.map(({annotation:a})=>r[a.id]?(0,pe.jsx)(rt,{id:a.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},a.id):null)]})}var _a=require("react/jsx-runtime");function kr(){let{strategy:e}=O(),{renderComplexTimelineControls:t}=oe();return e.type!=="complex-timeline"?null:(0,_a.jsx)(Ua,{strategy:e,children:t?t(e):null})}var Ya=require("react/jsx-runtime");function tn({style:e}){let t=T();return!t||!t.height||!t.width?null:(0,Ya.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ka=require("react/jsx-runtime");function Mr({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:o}=O();return o.type!=="empty"&&!t?null:(0,Ka.jsx)(tn,{style:e})}var on=require("react"),xe=(0,on.createContext)(null);function to(){return(0,on.useContext)(xe)}var Mt=require("react/jsx-runtime");function Er({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:o=!0,onClickPaintingAnnotation:n,children:r}){let{strategy:i}=O(),{renderViewerControls:a,viewControlsDeps:s}=oe(),l=T(),c=to(),m=Ie({maxWidth:256,maxHeight:256});return j(c&&i.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${l?.id}`,xe.Provider,a?{value:c||null,children:a(i)}:{},[l,c,i,...s||[]]),i.type!=="images"?null:(0,Mt.jsxs)(Mt.Fragment,{children:[i.images.map((u,d)=>(0,Mt.jsx)(Fe,{isStatic:e,image:u,id:u.id,thumbnail:d===0?m:void 0,selector:u.selector,enableSizes:t,enableAnnotations:o,onClick:n?g=>{n(u.annotationId,u,g)}:void 0},u.id+d)),r]})}var Et=require("react/jsx-runtime");function Nr({onClickPaintingAnnotation:e,children:t}){let{strategy:o}=O(),{renderViewerControls:n,viewControlsDeps:r}=oe(),i=to(),a=T();return j(i&&o.type==="textual-content"&&n?"overlay":"none",`canvas-portal-controls-${a?.id}`,xe.Provider,n?{value:i||null,children:n(o)}:{},[a,i,o,...r||[]]),o.type!=="textual-content"?null:(0,Et.jsxs)(Et.Fragment,{children:[(0,Et.jsx)(Jo,{strategy:o,onClickPaintingAnnotation:e}),t]})}var oo=require("react/jsx-runtime");function Vr({element:e,media:t,startTime:o,playPause:n,poster:r}){let i="div",a=o?`${t.url}#t=${o}`:t.url;return(0,oo.jsxs)(i,{className:"video-container",part:"video-container",onClick:n,children:[(0,oo.jsx)("style",{children:`
18
+ `):""}}function le({as:e,defaultText:t,enableDangerouslySetInnerHTML:o,children:n,separator:r,...i}){let a=Pr(),[s,l]=Ha(n,t,r,a);return l?(0,ve.jsx)(qa,{...i,as:e,language:l,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s}):e?(0,ve.jsx)(e,{...i,children:s}):(0,ve.jsx)("span",{...i,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s})}var Ar=require("@iiif/parser/image-3"),Zo=require("react"),mt=require("react/jsx-runtime"),Tr=e=>{let t=e.format||"jpg",o=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,i=e.enableSizes,a=(0,Zo.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,Zo.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let m=e.width,u=[1],d=1;for(;2**d<m;)d=d*2,u.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,Ar.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:(0,Ar.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:[]}return c},[e.tiles.imageService,e.width]),l=(0,Zo.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,mt.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,mt.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,mt.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,i&&n.map((c,m)=>(0,mt.jsx)("world-image",{uri:`${a}/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},m)),s.map(c=>(c.scaleFactors||[]).map(m=>(0,mt.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:c,scaleFactor:m,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${m}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var de=require("react/jsx-runtime");function wl({resource:e,heading:t,note:o,extra:n}){return n?(0,de.jsx)(Da.HTMLPortal,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,de.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,de.jsxs)("div",{children:[(0,de.jsx)(le,{children:t||"Not authorised"}),o&&(0,de.jsx)("p",{children:(0,de.jsx)(le,{children:o})}),(0,de.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function $a({image:e,thumbnail:t,crop:o,enableSizes:n,enableThumbnail:r,renderOptions:i,rotation:a}){let s=Wn(),l=(0,Fa.getId)(e.service),c=ka(l),m=wt(),u=c?.service;m(e.service,e);let d=u&&c?.status==="done",g=(u?.preferredFormats||[])[0],v=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!s){let p=e.service,R=p.width||e.width||0,y=p.height||e.height||0,f=0,h=0,b=e.target?.spatial.width||R,C=e.target?.spatial.height||y;return(a===90||a===270)&&([b,C]=[C,b],C>b?h=-(C-b)/2:f=-(b-C)/2),(0,de.jsx)(Tr,{enableThumbnail:r,renderOptions:i,rotation:a,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:R,imageService:p,thumbnail:v},enableSizes:n,x:f,y:h,format:g,width:b,height:C,crop:o})}return(0,de.jsx)(Un,{resource:e.service,errorComponent:wl,extra:e,children:p=>{let R=p.width||e.width||0,y=p.height||e.height||0,f=0,h=0,b=e.target?.spatial.width||R,C=e.target?.spatial.height||y;return(a===90||a===270)&&([b,C]=[C,b],C<b?(h=-(C-b)/2,f=(b-C)/2):(h=(C-b)/2,f=-(b-C)/2)),(0,de.jsx)(Tr,{enableThumbnail:r,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:R,imageService:p,thumbnail:v},rotation:a,format:g,enableSizes:n,x:f,y:h,width:b,height:C,crop:o})}},e.id)}var We=require("react/jsx-runtime");function Ue({id:e,image:t,thumbnail:o,isStatic:n,x:r=0,y:i=0,children:a,selector:s,onClick:l,enableSizes:c,enableAnnotations:m}){let u=(0,kt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,kt.useMemo)(()=>{if(!t.annotation)return 0;let h=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(h&&h.selector?.type==="ImageApiSelector")return Number(h.selector.rotation)},[t]),g=r+t.target.spatial.x,v=i+t.target.spatial.y,p=t.target.spatial.width,R=t.target.spatial.height,y=t.target.spatial.width,f=t.target.spatial.height;return(d===90||d===270)&&([p,R]=[R,p],[y,f]=[f,y]),(0,We.jsxs)("world-object",{x:g,y:v,width:p,height:R,onClick:l,rotation:d,children:[t.service?(0,We.jsxs)(kt.Fragment,{children:[(0,We.jsx)($a,{image:t,thumbnail:o,crop:u,enableSizes:c,rotation:d}),a]},"service"):(0,We.jsxs)(kt.Fragment,{children:[(0,We.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:y,height:f},display:y&&f?{width:y,height:f}:void 0,crop:u}),a]},"no-service"),m&&t.annotationPages?t.annotationPages.map(h=>(0,We.jsx)(Oe,{page:h,className:"image-service-annotation",ignoreTargetId:!0},h.id)):null]},e+(t.service?"server":"no-service"))}var Wa=require("@atlas-viewer/atlas");var Me=require("react/jsx-runtime");function Jo({strategy:e,onClickPaintingAnnotation:t}){return(0,Me.jsx)(Me.Fragment,{children:e.items.map((o,n)=>(0,Me.jsx)(Me.Fragment,{children:(0,Me.jsx)(Wa.HTMLPortal,{onClick:t?r=>{r.stopPropagation(),t(o.annotationId,o,r)}:void 0,target:o.target?.spatial||void 0,children:(0,Me.jsx)("div",{"data-textual-content":!0,children:(0,Me.jsx)(le,{enableDangerouslySetInnerHTML:!0,children:o.text})})},n)}))})}var pe=require("react/jsx-runtime");function Ua({strategy:e,children:t}){let{store:o}=(0,en.useMemo)(()=>Ta({complexTimeline:e}),[e]),n=(0,wr.useStore)(o,a=>a.isReady),r=(0,wr.useStore)(o,a=>a.visibleElements);function i(a){return s=>{s&&o.getState().setElement(a,s)}}return(0,en.useLayoutEffect)(()=>{if(n){let{startClock:a,stopClock:s}=o.getState();return a(),()=>{s()}}},[e,n]),j("portal","custom-controls",Cr,{store:o,children:t},[n]),(0,pe.jsxs)(pe.Fragment,{children:[e.items.map(a=>a.type!=="Image"||!r[a.annotationId]?null:(0,pe.jsx)(Ue,{image:a,id:a.annotationId},a.id)),e.items.map((a,s)=>a.type!=="Text"||!r[a.annotationId]?null:(0,pe.jsx)(Jo,{strategy:{type:"textual-content",items:[a]}},s)),e.items.map((a,s)=>a.type!=="Video"||!a.target.spatial?null:(0,pe.jsx)(Ir.HTMLPortal,{target:a.target.spatial,children:(0,pe.jsx)("video",{ref:i(a.annotationId),src:a.url,style:{height:"100%",width:"100%",opacity:r[a.annotationId]?1:0}})},s)),e.items.map((a,s)=>a.type!=="Sound"?null:(0,pe.jsx)(Ir.HTMLPortal,{children:(0,pe.jsx)("audio",{ref:i(a.annotationId),src:a.url})},s)),e.highlights.map(({annotation:a})=>r[a.id]?(0,pe.jsx)(rt,{id:a.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},a.id):null)]})}var _a=require("react/jsx-runtime");function kr(){let{strategy:e}=O(),{renderComplexTimelineControls:t}=oe();return e.type!=="complex-timeline"?null:(0,_a.jsx)(Ua,{strategy:e,children:t?t(e):null})}var Ya=require("react/jsx-runtime");function tn({style:e}){let t=T();return!t||!t.height||!t.width?null:(0,Ya.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ka=require("react/jsx-runtime");function Mr({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:o}=O();return o.type!=="empty"&&!t?null:(0,Ka.jsx)(tn,{style:e})}var on=require("react"),xe=(0,on.createContext)(null);function to(){return(0,on.useContext)(xe)}var Mt=require("react/jsx-runtime");function Er({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:o=!0,onClickPaintingAnnotation:n,children:r}){let{strategy:i}=O(),{renderViewerControls:a,viewControlsDeps:s}=oe(),l=T(),c=to(),m=ke({maxWidth:256,maxHeight:256});return j(c&&i.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${l?.id}`,xe.Provider,a?{value:c||null,children:a(i)}:{},[l,c,i,...s||[]]),i.type!=="images"?null:(0,Mt.jsxs)(Mt.Fragment,{children:[i.images.map((u,d)=>(0,Mt.jsx)(Ue,{isStatic:e,image:u,id:u.id,thumbnail:d===0?m:void 0,selector:u.selector,enableSizes:t,enableAnnotations:o,onClick:n?g=>{n(u.annotationId,u,g)}:void 0},u.id+d)),r]})}var Et=require("react/jsx-runtime");function Nr({onClickPaintingAnnotation:e,children:t}){let{strategy:o}=O(),{renderViewerControls:n,viewControlsDeps:r}=oe(),i=to(),a=T();return j(i&&o.type==="textual-content"&&n?"overlay":"none",`canvas-portal-controls-${a?.id}`,xe.Provider,n?{value:i||null,children:n(o)}:{},[a,i,o,...r||[]]),o.type!=="textual-content"?null:(0,Et.jsxs)(Et.Fragment,{children:[(0,Et.jsx)(Jo,{strategy:o,onClickPaintingAnnotation:e}),t]})}var oo=require("react/jsx-runtime");function Vr({element:e,media:t,startTime:o,playPause:n,poster:r}){let i="div",a=o?`${t.url}#t=${o}`:t.url;return(0,oo.jsxs)(i,{className:"video-container",part:"video-container",onClick:n,children:[(0,oo.jsx)("style",{children:`
19
19
  .video-container {
20
20
  position: absolute;
21
21
  top: 0;
@@ -28,7 +28,7 @@
28
28
  justify-content: center;
29
29
  pointer-events: visible;
30
30
  }
31
- `}),(0,oo.jsx)("video",{poster:r,ref:e,src:a,style:{width:"100%",objectFit:"contain"}})]})}function nn({media:e,mediaControlsDeps:t,children:o,videoComponent:n=Vr,captions:r}){let i=T(),a=Xt(),s=i&&i.placeholderCanvas&&i.placeholderCanvas.id||void 0,l=Ie({},!1,{canvasId:s}),[{element:c,currentTime:m,progress:u},d,g]=it({duration:e.duration});return j("overlay","video-element",n,{element:c,media:e,playPause:g.playPause,poster:l?.id,canvas:i,startTime:a?a.startTime:null,captions:r},[l]),j("portal","custom-controls",Qt,{state:d,actions:g,currentTime:m,progress:u,element:c,children:o},[m,d,e,...t||[]]),null}var rn=require("react/jsx-runtime");function Lr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Video"?null:(0,rn.jsxs)(nn,{captions:t.captions,media:t.media,mediaControlsDeps:n,videoComponent:e,children:[(0,rn.jsx)(ct,{}),o?o(t):null]},t.media.url)}var ja=require("react"),no=require("react/jsx-runtime");function kl({element:e,media:t,playPause:o}){let n=(0,ja.useRef)(null);return t.youTubeId?(0,no.jsxs)("div",{className:"video-container",part:"video-container",onClick:o,children:[(0,no.jsx)("style",{children:`
31
+ `}),(0,oo.jsx)("video",{poster:r,ref:e,src:a,style:{width:"100%",objectFit:"contain"}})]})}function nn({media:e,mediaControlsDeps:t,children:o,videoComponent:n=Vr,captions:r}){let i=T(),a=Xt(),s=i&&i.placeholderCanvas&&i.placeholderCanvas.id||void 0,l=ke({},!1,{canvasId:s}),[{element:c,currentTime:m,progress:u},d,g]=it({duration:e.duration});return j("overlay","video-element",n,{element:c,media:e,playPause:g.playPause,poster:l?.id,canvas:i,startTime:a?a.startTime:null,captions:r},[l]),j("portal","custom-controls",Qt,{state:d,actions:g,currentTime:m,progress:u,element:c,children:o},[m,d,e,...t||[]]),null}var rn=require("react/jsx-runtime");function Lr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Video"?null:(0,rn.jsxs)(nn,{captions:t.captions,media:t.media,mediaControlsDeps:n,videoComponent:e,children:[(0,rn.jsx)(ct,{}),o?o(t):null]},t.media.url)}var ja=require("react"),no=require("react/jsx-runtime");function kl({element:e,media:t,playPause:o}){let n=(0,ja.useRef)(null);return t.youTubeId?(0,no.jsxs)("div",{className:"video-container",part:"video-container",onClick:o,children:[(0,no.jsx)("style",{children:`
32
32
  .video-container {
33
33
  position: absolute;
34
34
  top: 0;
@@ -46,4 +46,4 @@
46
46
  width: 100%;
47
47
  object-fit: contain;
48
48
  }
49
- `}),(0,no.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 Ga({media:e,mediaControlsDeps:t,children:o}){let[{element:n,currentTime:r,progress:i},a,s]=it({duration:e.duration});return j("overlay","video-element",kl,{element:n,media:e,playPause:s.playPause}),null}var an=require("react/jsx-runtime");function zr(){let{strategy:e}=O(),{renderMediaControls:t,mediaControlsDeps:o}=oe();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,an.jsxs)(Ga,{media:e.media,mediaControlsDeps:o,children:[(0,an.jsx)(ct,{}),t?t(e):null]})}var mn=require("react"),be=require("zustand");var ln=require("@atlas-viewer/atlas"),We=require("react");var Qa=require("polygon-editor"),Z=require("react");var sn=require("zustand");function qr(e){let t=L(),o=(0,sn.useStore)(t,i=>i.polygons),n=(0,sn.useStore)(t,i=>i.polygonState),r=(0,sn.useStore)(t,i=>i.polygon);return tt("atlas.polygon-render",({state:i,slowState:a,dt:s})=>{e(i,a,s)}),{currentShape:r,state:n,helper:o}}var M=require("react/jsx-runtime"),ke=(0,Qa.createSvgHelpers)(),Xa={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function Br(e){let{image:t}=e,o={...Xa,...e.theme||{}},n=(0,Z.useRef)(),r=(0,Z.useRef)(),i=(0,Z.useRef)(),a=(0,Z.useRef)(),s=(0,Z.useRef)(),l=(0,Z.useRef)(),c=(0,Z.useRef)(),m=(0,Z.useRef)(),u=(0,Z.useRef)(),d=(0,Z.useRef)(),[g,v]=(0,Z.useState)(null),[p,b]=(0,Z.useState)(!1),{helper:y,state:f,currentShape:h}=qr((E,_)=>{if(E.closestLineIndex,ke.updateTransitionBoundingBox(i.current,E,_),ke.updateBoundingBoxPolygon(n.current,E,_),ke.updateBoundingBoxPolygon(r.current,E,_),ke.updateTransitionShape(c.current,E,_),ke.updateClosestLinePointTransform(s.current,E,_),ke.updateSelectBox(a.current,E,_),ke.updatePointLine(m.current,E,_),ke.updateDrawPreview(l.current,E,_,3),ke.updateLineBox(u.current,E),v(E.transitionDirection),b(E.transitionRotate),E.closestLineIndex!==-1&&d.current){let k=E.polygon,V=k.points[E.closestLineIndex],B=k.points[(E.closestLineIndex+1)%k.points.length];V&&B&&d.current.setAttribute("points",`${V[0]},${V[1]} ${B[0]},${B[1]}`)}});(0,Z.useEffect)(()=>{let E=()=>{y.modifiers.reset()};return document.addEventListener("mouseleave",E),()=>{document.removeEventListener("mouseleave",E)}},[]);let R=(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke,className:"marker"}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.controlFill})]}),(0,M.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.activeLineStroke,className:"marker"})}),(0,M.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.activeLineStroke})]}),(0,M.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,M.jsx)("rect",{width:"10",height:"10",fill:o.lineStroke}),(0,M.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:o.controlFill})]})]}),C=h?h.open?"polyline":"polygon":null,P=!f.showBoundingBox&&f.closestPoint!==null&&f.actionIntentType==="select-point",A=f.actionIntentType==="add-open-point",I=f.transitionIntentType==="split-line",q=f.transitioning&&f.selectedStamp&&f.transitionIntentType==="stamp-shape",ue=h&&C?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(C,{fill:(!f.transitioning||f.transitionIntentType==="select-multiple-points")&&!h.open?o.shapeFill:"none",strokeWidth:q||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(E=>E.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,M.jsx)("polygon",{fill:o.shapeFill,ref:u,stroke:o.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,f.transitionIntentType==="draw-shape"&&f.transitioning?(0,M.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,M.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((E,_)=>f.selectedPoints?.includes(_)).map(E=>E.join(",")).join(" "),opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,P&&!f.transitioning&&f.closestPoint!==null&&h.points[f.closestPoint]?(0,M.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,M.jsx)("polyline",{stroke:o.activeLineStroke,ref:m,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,M.jsx)("g",{children:(0,M.jsx)("polyline",{ref:d,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,M.jsx)("g",{ref:s,children:(0,M.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,f.transitioning?(0,M.jsx)(C,{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,M.jsx)("rect",{ref:a,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,f.showBoundingBox&&!q?(0,M.jsxs)(M.Fragment,{children:[(0,M.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,M.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:A,isSplitting:I,isStamping:q,isHoveringPoint:P,transitionDirection:g,transitionRotate:p,defs:R,editor:ue}}var $e=require("react/jsx-runtime");function Za(e){let t=(0,ln.useAtlas)(),{image:o}=e,{helper:n,defs:r,editor:i,state:a,transitionDirection:s,isSplitting:l,transitionRotate:c,isHoveringPoint:m,isAddingPoint:u}=Br({image:e.image,theme:e.theme}),d=(0,We.useCallback)(p=>{p.button!==2&&n.pointer([[~~p.atlas.x,~~p.atlas.y]])},[n]),g=(0,We.useCallback)(p=>{p.button!==2&&n.pointerDown()},[n]),v=(0,We.useCallback)(p=>{p.button!==2&&n.pointerUp()},[n]);return(0,We.useEffect)(()=>{let p=b=>{n.key.up(b.key)};return document.addEventListener("keyup",p),()=>{document.removeEventListener("keyup",p)}},[n]),(0,We.useEffect)(()=>{let p=b=>{b.target&&["INPUT","TEXTAREA"].includes(b.target.tagName)||b.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||n.key.down(b.key)};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[n]),(0,We.useEffect)(()=>{let p=[];return s&&p.push(`atlas-cursor-${s}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&p.push("atlas-cursor-cut"),(m||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&p.push("atlas-cursor-move"),u&&p.push("atlas-cursor-crosshair"),l&&p.push("atlas-cursor-copy"),c&&p.push("atlas-cursor-rotate"),a.transitionIntentType==="draw-shape"&&p.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...p),()=>{t?.canvas&&t.canvas.classList.remove(...p)}},[t?.canvas,u,m,l,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,s,c]),(0,$e.jsx)("world-object",{height:o.height,width:o.width,onMouseMove:d,onMouseDown:g,onMouseUp:v,onMouseLeave:n.blur,children:(0,$e.jsx)(ln.HTMLPortal,{relative:!0,interactive:!1,children:(0,$e.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,$e.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,$e.jsx)("title",{children:"Annotation Editor"}),(0,$e.jsx)("defs",{children:r}),i]})})})})}var as=require("react"),ss=require("zustand");var rs=require("@atlas-viewer/atlas"),ae=require("@floating-ui/react"),is=require("react-dom");var Y=Q(require("react"),1);var Ja=Q(require("react"),1),cn=require("react"),es=Q(require("mitt"),1),os=require("react/jsx-runtime"),ts=(0,es.default)(),dt=(0,cn.createContext)({emitter:ts});dt.displayName="Events";function ro(){return Ja.default.useContext(dt).emitter}function Ml({emitter:e,children:t}){return(0,os.jsx)(dt.Provider,{value:(0,cn.useMemo)(()=>({emitter:e}),[e]),children:t})}var ce=require("react/jsx-runtime"),io=Y.default.createContext({});function ao(){let e=(0,Y.useContext)(io),t=Object.keys(e),o={};for(let n of t)e[n].Provider&&(o[n]={value:(0,Y.useContext)(e[n]),Provider:e[n].Provider});return o}function ns(e){let t=Object.keys(e),o=e.children;for(let n of t){if(n==="children")continue;let{value:r,Provider:i}=e[n];o=(0,ce.jsx)(i,{value:r,children:o})}return o}function El(e){let t=(0,Y.useContext)(io),o=(0,Y.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,ce.jsx)(io.Provider,{value:o,children:e.children})}function so(){return{VaultContext:(0,Y.useContext)(Ne),ResourceContext:(0,Y.useContext)(Ot),SimpleViewerReactContext:(0,Y.useContext)(bt),VisibleCanvasReactContext:(0,Y.useContext)(Ge),AuthRContext:(0,Y.useContext)(Ze),SearchReactContext:(0,Y.useContext)(xt),ReactEventContext:(0,Y.useContext)(dt),ContextBridgeReactContext:(0,Y.useContext)(io),StrategyReactContext:(0,Y.useContext)(Be),AtlasStoreReactContext:(0,Y.useContext)(ot)}}function lo(e){return(0,ce.jsx)(je,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(Ge.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(bt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(dt.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(ot.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,ce.jsx)(Ze.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(xt.Provider,{value:e.bridge.SearchReactContext,children:(0,ce.jsx)(io.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,ce.jsx)(Be.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,ce.jsx)(ns,{...e.custom,children:e.children}):e.children})})})})})})})})})}var Nt=require("react/jsx-runtime");function un({annotation:e,target:t,children:o,dismissable:n,isOpen:r,onOpenChange:i,placement:a}){let s=so(),l=ao(),{refs:c,floatingStyles:m,context:u}=(0,ae.useFloating)({open:r,onOpenChange:i,nodeId:e.id,placement:a||"bottom",middleware:[(0,ae.offset)(10),(0,ae.shift)(),(0,ae.flip)({mainAxis:!0})],whileElementsMounted:ae.autoUpdate}),d=(0,ae.useDismiss)(u),{getReferenceProps:g,getFloatingProps:v}=(0,ae.useInteractions)([n?d:null].filter(p=>p!==null));return(0,Nt.jsxs)(rs.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Nt.jsx)("div",{ref:c.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,is.createPortal)((0,Nt.jsx)(lo,{bridge:s,custom:l,children:(0,Nt.jsx)("div",{ref:c.setFloating,style:m,...v(),children:o})}),document.getElementById("atlas-floating-ui"))]})}var co=require("react/jsx-runtime"),ls=(0,ss.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 uo(e,t,o){let{isMenuOpen:n,setIsMenuOpen:r,close:i,open:a,menuPosition:s,setMenuPosition:l,toggle:c}=ls(),m=(0,as.useCallback)(g=>{o&&(g.preventDefault(),g.stopPropagation(),c(g.atlas))},[c,o]);return[(0,co.jsx)(co.Fragment,{children:o&&n&&(0,co.jsx)(un,{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:m},{open:a,close:i,toggle:c,isMenuOpen:n,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var cs=require("zustand");function Or(){let e=L();return(0,cs.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var J=require("react/jsx-runtime");function Hr({theme:e,renderContextMenu:t,children:o}){let n=L(),r=T(),i=(0,be.useStore)(n,C=>C.polygon),a=(0,be.useStore)(n,C=>C.polygonState.currentTool),s=(0,be.useStore)(n,C=>C.mode),l=(0,be.useStore)(n,C=>C.changeMode),c=(0,be.useStore)(n,C=>C.polygonState.transitioning),{enabled:m,requestId:u}=(0,be.useStore)(n,C=>C.tool),d=(0,mn.useMemo)(()=>Le(i),[i]),g=Or(),[v,p]=uo("editing-annotation",r?.id,t),b=g?.annotationPopup||o||(0,J.jsx)(us,{}),y=g?.svgTheme||e,f=()=>{l("sketch")};if(!m||!r||!u||!i)return null;let h=d&&i.id&&!c&&(a==="pointer"||a==="hand"||!i.open)?(0,J.jsx)(un,{annotation:i,target:d,children:b}):null,R="shape";return s==="explore"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.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)"},...p}),(0,J.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.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,J.jsxs)(J.Fragment,{children:[t?(0,J.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:r.width,height:r.height},...p}):null,(0,J.jsx)(Za,{image:r,theme:y}),h,v]})}function us(){let e=L(),t=(0,be.useStore)(e,a=>a.changeMode),o=(0,be.useStore)(e,a=>a.mode),n=(0,be.useStore)(e,a=>a.completeRequest),r=(0,be.useStore)(e,a=>a.tool),i=()=>{(0,mn.startTransition)(()=>{n()})};return r.enabled?(0,J.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[o!=="sketch"&&(0,J.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,J.jsx)("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}var Ue=require("react");var Vt=require("react");var ms=require("@iiif/helpers");function Nl(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function mo(e,t){let{selector:o,source:n}=(0,ms.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 Dr={makeChoice:()=>{}},po={type:"unknown"},z=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Fr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var fo=require("react");function Vl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function ds(e,t){return N(o=>{let n=[];if(!e)return n;let r=Object.keys(o.iiif.entities.AnnotationPage);for(let i of r)if(!t||t.indexOf(i)!==-1){let a=Vl(o,i);a&&a.views&&a.views[e]&&n.push(i)}return n},[e,t])}function $r({canvas:e,manifest:t,all:o,canvases:n}){let r=[];if(t)for(let i of t.annotations)r.indexOf(i.id)===-1&&r.push(i.id);if(o){if(n&&n.length)for(let i of n)for(let a of i.annotations)r.indexOf(a.id)===-1&&r.push(a.id)}else if(e)for(let i of e.annotations)r.indexOf(i.id)===-1&&r.push(i.id);return r}function Ll(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function go(e,t={}){let o=w(),n=F(),r=T(),i=Qe(),a=(0,fo.useMemo)(()=>$r({all:t.all,manifest:n,canvas:r,canvases:i}),[t.all,r,i,n]),s=ds(e,t.all?void 0:a),l=(0,fo.useCallback)(m=>{e&&o.setMetaValue([m,"annotationPageManager","views"],u=>u&&!u[e]?u:{...u||{},[e]:!1})},[e,o]),c=(0,fo.useCallback)((m,u={})=>{if(!e)return;let d=o.getState(),g=[];if(u?.deselectOthers){let v=Object.keys(d.iiif.entities.AnnotationPage);for(let p of v){let b=Ll(d,p);b&&b.views&&b.views[e]&&g.push(p)}}for(let v of g)l(v);o.setMetaValue([m,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,l,o]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:c,setPageDisabled:l}}function Wr(e,t){return N((o,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var ps=Q(require("mitt"),1),fs=require("react"),gs=require("zustand");var zl=(0,gs.createStore)((e,t)=>({loaded:{},setLoaded:(o,n="done")=>{e(r=>({loaded:{...r.loaded,[o]:n}}))}})),ql=(0,ps.default)();ql.on("loaded",e=>{zl.getState().setLoaded(e.imageServiceId)});function ho(){let e=wt(),t=Ma();return[(0,fs.useCallback)((n,{height:r,width:i})=>n&&e(n,{height:r,width:i},!0),[e]),t]}var pt=require("react");function Me(e={}){let t=Kt(),o=T(e.canvasId?{id:e.canvasId}:void 0);return N((n,r)=>{if(!o)return[];if(t&&e.enableSingleAnnotation)return[t];let i=r.get(o.items),a=[];for(let s of i)a.push(...r.get(s.items));return a},[o])}var hs=require("@iiif/helpers/painting-annotations");function Ur(e,t=[]){let o=w(),n=(0,pt.useMemo)(()=>(0,hs.createPaintingAnnotationsHelper)(o),[]),r=Me({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,pt.useState)(e?.defaultChoices||[]),s=(0,pt.useMemo)(()=>n.getPaintables(r,i),[o,r,i,...t]),c={makeChoice:(0,pt.useCallback)((m,{deselectOthers:u=!0,deselect:d=!1}={})=>{s.choice&&a(g=>{if(d){let p=g.filter(b=>b!==m);if(p.length===0){let b=s.items[0].resource.id;return b?[b]:[]}return p}if(u)return[m];let v=[...g];if(v.length===0&&s.items.length){let p=s.items[0].resource.id;p&&v.push(p)}return g.indexOf(m)!==-1?g:[...g,m]})},[s.choice])};return[s,c]}var Bl=["model/gltf-binary"];function _r(e,t){let o=t.items[0],n=o.resource;return n.format?Bl.indexOf(n.format)===-1?z(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:o.annotationId,annotation:o.annotation}:z("Unknown format")}function dn(e,t){let o=t.items,n=o[0];if(o.length===0||!n)return z("No audio");if(!e.duration)return z("No duration on canvas");if(o.length>1)return z("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:[]}}):z("Unknown audio")}var Yr=require("@iiif/helpers/annotation-targets"),ys=require("@iiif/parser/image-3");function Ee(e){return e.replace(/^http:/,"https:")}function yo(e,t,o){let n=[],r=[];for(let i of t.items){let a=i.resource&&i.resource.type==="SpecificResource"?i.resource.source:i.resource;if(!a.id)return z("No resource Identifier");let s;if(a.service){let b=(0,ys.getImageServices)(a);b[0]&&(s=o(b[0],e))}let l={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[c,m]=mo(e,i.target),u=e.id?.split("?")[0]||"";if(!(Ee(m.id||"")===Ee(e.id)||Ee(decodeURIComponent(m.id||""))===Ee(e.id||"")||Ee(m.id||"")===Ee(u)||Ee(decodeURIComponent(m.id||""))===Ee(u)))continue;let d=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,g=i.resource.type==="SpecificResource"?(0,Yr.expandTarget)(i.resource):null;if(i.selector){let b=(0,Yr.expandTarget)({type:"SpecificResource",source:i.resource,selector:i.selector});b&&(g=b)}let v=g&&g.selector&&(g.selector.type==="BoxSelector"||g.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:g.selector.spatial.x,y:g.selector.spatial.y,width:g.selector.spatial.width,height:g.selector.spatial.height}}:void 0;s&&!s.id&&(s.id=s["@id"]);let p={id:a.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(c||v?a.width:e.width),height:Number(c||v?a.height:e.height),service:s,sizes:s&&s.sizes?s.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:c&&c.type!=="PointSelector"?c:l,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};n.push(p)}return{type:"images",image:n[0],images:n,choice:t.choice}}function vs(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=>vs(r,t,n))}return t}function vo(e,t){let o=[];return t.items.forEach(n=>{if(n.resource){let[r]=mo(e,n.target);o.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:vs(n.resource),target:r})}}),{type:"textual-content",items:o}}var pn=require("@iiif/helpers");var Ol=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function So(e,t,o,n=!1){let r=t.items.filter(p=>p.type==="video"),i=r[0],a=!1,s=!1;if(e.duration||(s=!0),r.length>1||!i)return z("Only one video source supported");let l=r[0]?.resource,c=!!(l.service||[]).find(p=>(p.profile||"").includes("youtube.com"));if(!c&&s)return z("Video does not have duration");if(!l)return z("Unknown video");if((!l.format||l.format==="text/html")&&!c)return z("Video does not have format");let m=[],u=o.get(e.annotations||[]);for(let p of u){let b=o.get(p.items||[]);for(let y of b)if((y.motivation?Array.isArray(y.motivation||"")?y.motivation:[y.motivation]:[]).includes("supplementing")){let h=o.get(y.body||[]);for(let R of h){let C=R;if(C.type==="Choice")for(let P of C.items){let A=o.get(P);A.format==="text/vtt"&&m.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else C.format==="text/vtt"&&m.push({id:C.id,type:"Text",format:"text/vtt",label:C.label,language:C.language})}}}let d={annotationId:i.annotationId,annotation:i.annotation,duration:e.duration,url:l.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:l.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},g=(0,pn.expandTarget)(i.target);g.selector&&g.selector.type==="TemporalBoxSelector"&&(d.target=g.selector);let{selector:v}=(0,pn.parseSelector)(i.selector);if(v===null){let p=d.target.temporal.startTime,y=(d.target.temporal.endTime||e.duration)-p;d.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:y}}}else v.type==="TemporalSelector"&&(d.selector=v);if(n&&!d.target.spatial&&(a=!0,d.target={type:"TemporalBoxSelector",temporal:d.target.temporal,spatial:{x:e.width/2,y:e.height/2,width:e.width/2,height:e.height/2}}),c){d.type="VideoYouTube";let p=l.id.match(Ol);if(!p[1])return z("Video is not known youtube video");d.youTubeId=p[1]}return{type:"media",media:d,annotations:{pages:[]},noSpatial:a,captions:m}}var Ss=require("@iiif/helpers");function Kr(e,t,o,n){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},i={type:"complex-choice",items:[]},a=n.get(e.annotations);function s(m){m.choice&&(m.choice.type==="complex-choice"?i.items.push(...m.choice.items):i.items.push(m.choice))}for(let m of t.items){if(m.type==="image"){let u=yo(e,{choice:null,allChoices:null,types:["image"],items:[m]},o);if(u.type==="images"){if(!u.image)continue;s(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 g={id:u.image.annotationId,type:"exit",resourceType:"image",time:u.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}if(m.type==="textualbody"){let u=vo(e,{choice:null,allChoices:null,types:["textualbody"],items:[m]});if(u.type==="textual-content"){s(u);let d=u.items[0];r.items.push(d);let g=d.target,v={id:d.annotationId,type:"enter",resourceType:"text",time:g.temporal?.startTime||0};r.keyframes.push(v);let p={id:d.annotationId,type:"exit",resourceType:"text",time:g.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(m.type==="video"){let u=So(e,{choice:null,allChoices:null,types:["video"],items:[m]},n,!0);if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let v={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}if(m.type==="audio"||m.type==="sound"){let u=dn(e,{choice:null,allChoices:null,types:["audio"],items:[m]});if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let v={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}}for(let m of a)for(let u of m.items){let d=n.get(u),g=(0,Ss.expandTarget)(d.target,{typeMap:n.getState?.().iiif.mapping});if(g.selector?.temporal){let v={id:d.id,type:"enter",resourceType:"highlight",time:g.selector.temporal.startTime||0};r.keyframes.push(v);let p={id:d.id,type:"exit",resourceType:"highlight",time:g.selector.temporal.endTime||e.duration||0};r.keyframes.push(p)}r.highlights.push({annotation:d,target:g})}r.keyframes.sort((m,u)=>m.time-u.time);let l=[],c=[];for(let m of r.keyframes){if(m.resourceType==="image"||m.resourceType==="text"||m.resourceType==="highlight"){c.push(m);continue}if(m.type==="enter"){l.length===0&&(m.isPrime=!0),l.push(m),c.push(m);continue}if(m.type==="exit"&&(c.push(m),l=l.filter(u=>u.id!==m.id),l.length!==0)){let u=l[0],d={id:u.id,type:"change",isPrime:!0,resourceType:u.resourceType,time:m.time};c.push(d)}}return r.keyframes=c,i.items.length&&(r.choice=i),r}var fn={},jr={get(e){return e},setMetaValue([e,t,o],n){let r=jr.getResourceMeta(e,t),i=r?r[o]:void 0,a=typeof n=="function"?n(i):n;fn[e]={...fn[e]||{},[t]:{...(fn[e]||{})[t]||{},[o]:a}}},getResourceMeta:(e,t)=>{let o=fn[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 xo({canvas:e,paintables:t,supports:o,loadImageService:n,vault:r=jr}){if(!e)return po;if(t.types.length===0)return o.indexOf("empty")!==-1?Fr(e.width,e.height):po;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return o.indexOf("complex-timeline")===-1?z("Complex timeline not supported"):Kr(e,t,n,r);let i=t.types[0];return i==="image"?o.indexOf("images")===-1?z("Image not supported"):yo(e,t,n):i==="Model"||i==="model"?o.indexOf("3d-model")===-1?z("3D not supported"):_r(e,t):i==="textualbody"?o.indexOf("textual-content")===-1?z("Textual content not supported"):vo(e,t):i==="sound"||i==="audio"?o.indexOf("media")===-1?z("Media not supported"):dn(e,t):i==="video"?o.indexOf("media")===-1?z("Media not supported"):So(e,t,r):po}function Gr(e){let t=F(),o=T(),n=w(),r=ro(),i=e?.emitter||r,[a,s]=ho(),{enabledPageIds:l}=go(e?.annotationPageManagerId||t?.id||o?.id,{all:!1}),c=Wr(l,"AnnotationPage"),m=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[u,d]=Ur(e,[s]);(0,Vt.useEffect)(()=>{let v=p=>{d.makeChoice(p.choiceId,{deselectOthers:p.deselectOthers,deselect:p.deselect})};return i.on("make-choice",v),()=>{i.off("make-choice",v)}},[]);let g=(0,Vt.useMemo)(()=>xo({canvas:o,paintables:u,supports:m,loadImageService:a,vault:n}),[o,u,n,d.makeChoice]);return(0,Vt.useEffect)(()=>{let v=u.allChoices,p={canvasId:o?.id,manifestId:t?.id};v&&i.emit("choice-change",{choice:v,partOf:p})},[o?.id,u.allChoices]),(0,Vt.useMemo)(()=>g.type==="unknown"?[g,Dr]:[{...g,annotations:{pages:c}},d],[g,c])}var xs=require("@iiif/helpers");var Qr=require("react/jsx-runtime");function Xr({strategies:e,registerActions:t,defaultChoices:o,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:i,renderViewerControls:a,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,throwOnUnknown:m,children:u}){let d=T(),g=w(),v=(0,Ue.useMemo)(()=>(0,xs.createStylesHelper)(g),[g]),[p,b]=Gr({strategies:e||["images"],defaultChoices:o?.map(({id:R})=>R)}),y="choice"in p?p.choice:void 0;if((0,Ue.useEffect)(()=>{t&&t(b)},[p.annotations]),(0,Ue.useEffect)(()=>{n&&n(y)},[y]),(0,Ue.useEffect)(()=>{if(o)for(let R of o)typeof R.opacity<"u"&&v.applyStyles({id:R.id},"atlas",{opacity:R.opacity})},[o]),p.type==="unknown"&&m)throw new Error(p.reason||"Unknown strategy");let f=(0,Ue.useMemo)(()=>({renderMediaControls:i,mediaControlsDeps:r||[],renderViewerControls:a,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:c||[]}),[r,i,a,s,l,c]),h=(0,Ue.useMemo)(()=>({strategy:p,actions:b,choices:"choice"in p?p.choice:[]}),[p,d]);return(0,Qr.jsx)(Zt.Provider,{value:f,children:(0,Qr.jsx)(Be.Provider,{value:h,children:u})})}var bo=require("react"),Jr=require("zustand");var Lt=require("react");var Zr=(0,Lt.createContext)(()=>{});function bs(e){let t=T(),o=(0,Lt.useContext)(Zr);(0,Lt.useEffect)(()=>t&&t.id?(o(t.id,e),()=>o(t.id,-1)):()=>{},[t,e])}var Cs=require("react/jsx-runtime");function ei({x:e=0,y:t=0,keepCanvasScale:o=!0,renderContextMenu:n,children:r}){let{strategy:i}=O(),a=T(),s=L(),l=jt(a,["deep-zoom"]),c=(0,Jr.useStore)(s,p=>p.setCanvasRelativePosition),m=(0,Jr.useStore)(s,p=>p.clearCanvasRelativePosition),[u,d]=uo(`context-menu/${a?.id}`,a?.id,n),g=(0,bo.useMemo)(()=>o?1:Math.max(1,...i.type==="images"?i.images.map(p=>(p.width||0)/p.target?.spatial.width):[]),[o,i]);(0,bo.useEffect)(()=>{if(a)return c(a.id,{x:e,y:t,width:a.width,height:a.height}),()=>{m(a.id)}},[e,t,a,m,c]),(0,bo.useEffect)(()=>{a&&s.getState().reset()},[s,a]),bs(g);let v=i.type==="images"?i.images.length:0;return a?(0,Cs.jsxs)("world-object",{height:a.height,width:a.width,x:e,y:t,...d,...l,children:[u,r]},`${a.id}/${i.type}/${v}`):null}var ne=require("react/jsx-runtime");function st({x:e,y:t,onChoiceChange:o,registerActions:n,defaultChoices:r,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:m,mediaControlsDeps:u,strategies:d,throwOnUnknown:g,backgroundStyle:v,alwaysShowBackground:p,keepCanvasScale:b=!1,enableSizes:y=!1,enableYouTube:f=!0,onClickPaintingAnnotation:h,components:R={},children:C,annotationPopup:P,svgTheme:A,renderContextMenu:I,renderAnnotationContextMenu:q}){return(0,ne.jsxs)(Xr,{throwOnUnknown:g,onChoiceChange:o,registerActions:n,strategies:d,defaultChoices:r,mediaControlsDeps:u,renderMediaControls:s,renderViewerControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:m,children:[(0,ne.jsxs)(ei,{keepCanvasScale:b,x:e,y:t,renderContextMenu:I,children:[(0,ne.jsx)(Mr,{alwaysShowBackground:p,backgroundStyle:v}),(0,ne.jsx)(kr,{}),(0,ne.jsx)(Nr,{}),(0,ne.jsx)(Er,{isStatic:i,enableSizes:y,onClickPaintingAnnotation:h}),(0,ne.jsx)(yr,{}),(0,ne.jsx)(mr,{}),(0,ne.jsx)(xr,{as:R.Audio}),(0,ne.jsx)(Lr,{as:R.Video}),f?(0,ne.jsx)(zr,{}):null,(0,ne.jsx)(Hr,{theme:A,renderContextMenu:q,children:P}),C]}),(0,ne.jsx)(dr,{})]})}var ti=require("react/jsx-runtime");function Rs(e){let t=T();return!t||!t.placeholderCanvas?null:(0,ti.jsx)(me,{canvas:t.placeholderCanvas.id,children:(0,ti.jsx)(st,{renderViewerControls:e.renderViewerControls})})}var As=require("@atlas-viewer/atlas"),re=Q(require("react"),1),Ts=require("react-error-boundary"),oi=require("zustand");var gn=require("react");function Ps(e,t=2e3){let{currentSequenceIndex:o,sequence:n,items:r}=Je(),i=T(),a=(0,gn.useMemo)(()=>{let l=n[o]||[];return l.length===0&&i?[{id:i.id,type:"Canvas"}]:l.map(c=>r[c])},[n,o,i,r]),s=L();(0,gn.useEffect)(()=>{let c=setInterval(()=>{if(e&&t!==-1){let m={x:e.x,y:e.y,width:e.width,height:e.height},u=s.getState().canvasRelativePositions,d={};for(let g of a){let v=u[g.id];if(v){let p=v.x,b=v.y,y=v.width,f=v.height,h={x:Math.max(p,m.x),y:Math.max(b,m.y),width:Math.min(p+y,m.x+m.width)-Math.max(p,m.x),height:Math.min(b+f,m.y+m.height)-Math.max(b,m.y)};h.width<=0||h.height<=0||(d[g.id]={x:h.x-v.x,y:h.y-v.y,width:h.width,height:h.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(c)}},[a,e,s,t])}var zt=require("react/jsx-runtime");function hn({width:e,style:t,height:o,error:n,resetErrorBoundary:r}){return(0,zt.jsxs)("div",{style:{width:e,height:o,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,zt.jsx)("h3",{children:"Error occurred"}),(0,zt.jsx)("p",{children:n.message}),(0,zt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var H=require("react/jsx-runtime");function yn(e){let t=L();return(0,H.jsx)(Pt,{name:e.name,existing:t,children:(0,H.jsx)(Hl,{...e})})}function Hl({name:e,children:t,errorFallback:o,outerContainerProps:n={},worldScale:r,updateViewportTimeout:i,...a}){let s=L(),l=(0,oi.useStore)(s,k=>k.mode),c=(0,oi.useStore)(s,k=>k.setAtlasRuntime),[m,u]=(0,re.useState)(),d=ao(),g=so(),v=o||hn,[p,b]=(0,re.useState)({}),y=Object.entries(p),[f,h]=(0,re.useState)({}),R=Object.entries(f),[C,P]=(0,re.useState)({}),{worldScale:A,runtimeOptions:I}=(0,re.useMemo)(()=>{if(Object.values(C).length===0)return{worldScale:1,runtimeOptions:a.runtimeOptions||{maxOverZoom:1}};let V=Math.max(...Object.values(C));return{worldScale:V,runtimeOptions:{maxOverZoom:V||1,...a.runtimeOptions||{}}}},[C,a.runtimeOptions]);Ps(m?.runtime,i);let q=(0,re.useCallback)((k,V)=>{P(B=>{if(V===-1){let{[k]:Bt,...Ke}=B;return Ke}return{...B,[k]:V}})},[]),ue=(0,re.useCallback)((k,V,B)=>{b(({[k]:Bt,...Ke})=>V?{...Ke,[k]:{element:V,props:B}}:Ke)},[]),E=(0,re.useCallback)((k,V,B)=>{h(({[k]:Bt,...Ke})=>V?{...Ke,[k]:{element:V,props:B}}:Ke)},[]),_=(0,re.useCallback)(k=>{u(k),c(k.runtime),a.onCreated&&a.onCreated(k)},[a.onCreated,c]);return(0,H.jsxs)(Ts.ErrorBoundary,{resetKeys:[],fallbackRender:k=>(0,H.jsx)(v,{...a,...k}),children:[(0,H.jsx)(As.AtlasAuto,{...a,mode:l,containerProps:{style:{position:"relative"},...a.containerProps||{}},htmlChildren:(0,H.jsx)(H.Fragment,{children:y.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),onCreated:_,runtimeOptions:I,children:(0,H.jsx)(Pt,{name:e,existing:s,children:(0,H.jsx)(xe.Provider,{value:m,children:(0,H.jsx)(Zr.Provider,{value:q,children:(0,H.jsx)(sr.Provider,{value:ue,children:(0,H.jsx)(lr.Provider,{value:E,children:(0,H.jsx)(lo,{bridge:g,custom:d,children:(0,H.jsx)(hr,{children:t})})})})})})})}),(0,H.jsx)("div",{children:R.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),(0,H.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var ee=require("react/jsx-runtime"),Dl=(0,ft.forwardRef)(function(t,o){let n=F(),r=Qe(),i=Je(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,ft.useImperativeHandle)(o,()=>i,[i]),!n)return(0,ee.jsx)("div",{});let c=0,m=n.viewingDirection==="top-to-bottom",u=n.viewingDirection==="bottom-to-top",d=n.viewingDirection==="left-to-right",g=n.viewingDirection==="right-to-left",p=n.behavior.includes("continuous")?0:t.spacing||0,b=u||g,y=(0,ft.useMemo)(()=>b?[...r].reverse():r,[r,b]);return(0,ee.jsxs)(ee.Fragment,{children:[t.header,(0,ee.jsx)(U.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,children:y.map((f,h)=>{let R=0,C=0;return!m&&!u?(R=c,c+=f.width+p):(C=c,c+=f.height+p),(0,ee.jsx)(me,{canvas:f.id,children:(0,ee.jsx)(U.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:h===0&&a?()=>(0,ee.jsx)(a,{}):void 0,renderMediaControls:h===0&&s?()=>(0,ee.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:h===0&&l?()=>(0,ee.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:R,y:C,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},f.id)},f.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),U=(0,ft.forwardRef)(function({children:t,height:o,annotations:n,canvasProps:r,spacing:i,header:a,components:s,mode:l,reuseAtlas:c,renderPreset:m,runtimeOptions:u,annotationPopup:d,name:g,svgTheme:v,updateViewportTimeout:p,renderContextMenu:b,keepCanvasScale:y,renderAnnotationContextMenu:f,...h},R){let C=Xe();return(0,ee.jsx)(Pt,{name:g,children:(0,ee.jsx)(je,{vault:C,children:(0,ee.jsx)(Yn,{...h,children:(0,ee.jsx)(Dl,{ref:R,height:o,components:s,spacing:i,canvasProps:r,annotations:n,header:a,mode:l,reuseAtlas:c,renderPreset:m,runtimeOptions:u,annotationPopup:d,svgTheme:v,updateViewportTimeout:p,renderContextMenu:b,keepCanvasScale:y,renderAnnotationContextMenu:f,children:t})})})})});U.RenderImage=Fe;U.RenderCanvas=st;U.RenderAnnotationPage=ze;U.RenderAnnotation=rt;U.Viewer=yn;U.CanvasBackground=tn;U.Audio=Do;U.Video=nn;U.Model=Wo;U.AudioHTML=cr;U.VideoHTML=Vr;U.ModelHTML=ur;U.PlaceholderCanvas=Rs;U.getAtlasStoreByName=Xn;var Is=require("react");var fe=require("react"),gt=require("zustand");function ni(e){let[t,o]=(0,fe.useState)(0),n=L(),r=(0,gt.useStore)(n,C=>C.tool.enabled),i=(0,gt.useStore)(n,C=>C.tool.requestId),a=(0,gt.useStore)(n,C=>C.getRequestId),s=(0,gt.useStore)(n,C=>C.requestAnnotation),l=(0,gt.useStore)(n,C=>C.completeRequest),c=(0,gt.useStore)(n,C=>C.cancelRequest),m=(0,fe.useRef)(e?.onSuccess);m.current=e?.onSuccess;let[u,d]=(0,fe.useState)(!1),[g,v]=(0,fe.useState)(null),[p,b]=(0,fe.useState)(null),y=r&&i!==p,f=r&&i===p,h=(0,fe.useCallback)(async(C,P)=>{if(p){let A=m.current;d(!0);let I=await s(C,{...P,requestId:p});if(I)return A?.(I),o(ue=>ue+1),d(!1),v(I),I;let q={id:p,cancelled:!0,..._t(C)};return A?.(q),v(q),o(ue=>ue+1),d(!1),q}return null},[s,p]),R=(0,fe.useCallback)(()=>{v(null),d(!1)},[]);return(0,fe.useEffect)(()=>{let C=a();return b(C.requestId),()=>{C.clear()}},[t]),{id:t,busy:y,isPending:u,isActive:f,requestId:p,requestAnnotation:h,cancelRequest:()=>p?c(p):void 0,completeRequest:()=>p?l(p):void 0,reset:R,data:g}}var Fl=[{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 ri(e){let{id:t,data:o,requestAnnotation:n,cancelRequest:r,isPending:i}=ni({onSuccess:a=>{e.updateShape(a.polygon)}});return(0,Is.useEffect)(()=>(n({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var G=require("react"),ii=Q(require("mitt"),1),ws=require("react/jsx-runtime"),vn=(0,G.createContext)((0,ii.default)());vn.displayName="SelectorHelper";function $l({children:e}){return(0,ws.jsx)(vn.Provider,{value:(0,G.useMemo)(()=>(0,ii.default)(),[]),children:e})}function Wl(){return(0,G.useContext)(vn)}function ai(e){let t=si(),[o,n]=(0,G.useState)(!1);(0,G.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,G.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,G.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,G.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:r,onHover:i,isHighlighted:o}}function si(){let e=(0,G.useContext)(vn);return(0,G.useMemo)(()=>({withSelector(t){return{on(o,n){let r=i=>{i&&i.selectorId===t&&n(i)};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 Ul(){let e=si();return(0,G.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 li=require("react/jsx-runtime");function _l(e){let t=T(),o=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:i,isHighlighted:a}=ai(e.id),s=Yt(),l=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(n){let c="shape",m=e.polygon,u=m.open;return m?(0,li.jsx)(c,{id:`shape-${r}`,points:m.points,open:u,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,li.jsx)(ri,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var ks=require("@atlas-viewer/atlas");var Sn=require("react"),Co=require("react/jsx-runtime"),Yl=(0,Sn.forwardRef)(function({canvasId:t},o){let n=(0,ks.useCanvas)(),r=go(t||n?.id),i=w();return(0,Sn.useImperativeHandle)(o,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,Co.jsx)(Co.Fragment,{children:r.enabledPageIds.map(a=>(0,Co.jsx)(U.RenderAnnotationPage,{page:i.get(a)},a))})});var Es=require("react");var Ms=require("react");var W=require("react/jsx-runtime");function Ro({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:c="",separator:m,tableFooter:u,tableHeader:d,customLabelRender:g,customValueRender:v}){let p=(0,Ms.useMemo)(()=>{let y=(t||[]).reduce((h,R)=>[...h,...R.keys],[]),f={};for(let h of e){let R=h?.label?Object.values(h.label):[];for(let C of R)if(C?.length&&(y.indexOf(`metadata.${C[0]}`)!==-1||y.length===0)&&h){let P=`metadata.${C[0]}`;f[P]=f[P]?f[P]:[],f[P].push(h);break}}return f},[t,e]);return Object.keys(p).length===0&&n?(0,W.jsx)(W.Fragment,{children:i})||(0,W.jsx)("div",{className:a.empty,children:s}):t?.length?(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:t.map((y,f)=>{let h=[];for(let C of y.keys)for(let P of p[C]||[]){let A=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:m,children:P.value},f+"__"+C);v?h.push(v(P,A)):h.push(A)}if(h.length===0)return null;let R=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,separator:m,defaultText:c,children:y.label});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:o?{minWidth:o}:{},children:g?g(y.label,R):R}),(0,W.jsx)("td",{className:a.value,children:h})]},f)})}),u]}):(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:e?.length?e.map((y,f)=>{if(!y)return null;let h=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:m,children:y.label}),R=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:m,children:y.value});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:o?{minWidth:o}:{},children:g?g(y.label,h):h}),(0,W.jsx)("td",{className:a.value,children:v?v(y,R):R})]},f)}):null}),u]})}var Ns=require("react/jsx-runtime");function Kl(e){let t=F(),o=T(),n=Ft(),r=(0,Es.useMemo)(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=n?.metadata||[];return[...i,...a,...s]},[t,o,n]);return(0,Ns.jsx)(Ro,{metadata:r,...e})}var Cn=require("react");var xn=require("@iiif/parser/image-3"),Vs=require("react");function bn(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,xn.createImageServiceRequest)(e);return(0,xn.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 Po=require("react/jsx-runtime");function jl(e){let t=typeof e.src=="string"?e.src:e.src.id,o=Jt(),[n,r]=(0,Cn.useState)(!1),i;if(t){let s=o.loadServiceSync({id:t});s&&(i=s)}!i&&!n&&o.loadService({id:t}).then(()=>{r(!0)});let a=bn(i,{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,Cn.useEffect)(()=>()=>{r(!1)},[t]),a?(0,Po.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Po.jsx)(Ls,{...e,fetchImageService:!1})}function Ls(e){if(e.fetchImageService)return(0,Po.jsx)(jl,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=bn(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,Po.jsx)("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}var Rn=require("react"),zs=require("react-error-boundary");var _e=require("react/jsx-runtime");function Gl({src:e,errorFallback:t,interactive:o,skipSizes:n,children:r,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:l,y:c,...m}){let[u,d]=(0,Rn.useState)(),g=t||hn,[v,p]=ho(),b=(0,Rn.useMemo)(()=>{let f=p[e]?.status,h=v({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},[v,e,p]);if(!b||!b.height||!b.width)return null;let y=s?void 0:m.homePosition?m.homePosition.width/m.homePosition.height:b.width/b.height;return(0,_e.jsx)(zs.ErrorBoundary,{resetKeys:[],fallbackRender:f=>(0,_e.jsx)(g,{...m,...f}),children:(0,_e.jsx)(yn,{...m,aspectRatio:y,containerProps:{style:{position:"relative"},...m.containerProps||{}},onCreated:f=>{d(f),m.onCreated&&m.onCreated(f)},children:(0,_e.jsxs)(xe.Provider,{value:u,children:[(0,_e.jsx)(Fe,{image:b,id:b.id,isStatic:!o,x:l,y:c},b.id),(0,_e.jsx)(Ql,{viewerPreset:u,renderViewerControls:i,image:b,src:e,viewControlsDeps:a}),r]})})})}function Ql({viewerPreset:e,renderViewerControls:t,image:o,src:n,viewControlsDeps:r}){return j(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,xe.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[n,e,...r||[]]),null}var qs=require("react/jsx-runtime");function Xl(e){let t=F();return(0,qs.jsx)(Ro,{metadata:t?.metadata||[],...e})}var Pn=require("react");var ci=Q(require("react-lazy-load-image-component"),1);var Bs=require("@iiif/helpers/i18n"),se=require("react/jsx-runtime"),{LazyLoadComponent:Zl}=ci||ci.default;function ui(e){let{size:t,visible:o,classes:n,canvasId:r,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,l=(0,se.jsx)(Jl,{...e}),c=(0,se.jsx)(Zl,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:r?(0,se.jsx)(me,{canvas:r,children:l}):l});return i?(0,se.jsx)("figure",{className:n?.figure,children:c}):c}function Jl({fallback:e,size:t,classes:o,showLabel:n,alt:r,dereference:i=!1}){let a=T(),s=t?.width||128,l=t?.height||t?.width||128,c=r||(0,Bs.getValue)(a?.label)||"",m=Ie({width:s,height:l,allowUnsafe:!0},i);return!m||m.type!=="fixed"?(0,se.jsx)(se.Fragment,{children:e}):(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("div",{className:o?.imageWrapper,children:(0,se.jsx)("img",{className:o?.img,src:m.id,alt:c})}),n?(0,se.jsx)(le,{as:"figcaption",className:o?.label,children:a?.label}):null]})}var qt=require("react/jsx-runtime");function ec({scrollBehaviour:e,dereference:t,flat:o,size:n,classes:r={},showLabel:i,figure:a,fallback:s}){let l=(0,Pn.useRef)(null),{items:c,sequence:m,currentSequenceIndex:u,setSequenceIndex:d}=Je(),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,Pn.useLayoutEffect)(()=>{if(!l.current)return;let p=l.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[u]);let v=[];for(let p of m){let b=[],y=m[u]===p;for(let f of p){let h=c[f];b.push((0,qt.jsx)("div",{className:y?g.item:r.item,children:(0,qt.jsx)(ui,{classes:y?g:r,canvasId:h.id,size:n,dereference:t,showLabel:i,figure:a,placeholder:(0,qt.jsx)("div",{style:{height:128,width:128}}),fallback:s})},f))}if(o){v.push(b);continue}v.push((0,qt.jsx)("div",{onClick:f=>{d(m.indexOf(p))},"data-selected":y,className:y?g.row:r.row,children:b},p.join("-")))}return(0,qt.jsx)("div",{ref:l,className:r.container,children:v})}var Ao=require("zustand");function mi(){let e=L(),t=(0,Ao.useStore)(e,i=>i.completeRequest),o=(0,Ao.useStore)(e,i=>i.polygonState.currentTool),n=(0,Ao.useStore)(e,i=>i.polygonState.selectedStamp),r=(0,Ao.useStore)(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:n,switchTool:r}}var K=require("react/jsx-runtime"),tc={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function oc({showShapes:e=!0,enabled:t=tc,classNames:o={},icons:n={}}){let{currentTool:r,switchTool:i,selectedStamp:a}=mi();return(0,K.jsxs)(K.Fragment,{children:[r,(0,K.jsx)("button",{className:o.button,onClick:i.pointer,"data-active":r==="pointer",children:n.PointerIcon||"Pointer"}),(0,K.jsx)("button",{className:o.button,onClick:i.hand,"data-active":r==="hand",children:n.HandIcon||"Hand"}),e?(0,K.jsxs)(K.Fragment,{children:[t.box&&(0,K.jsx)("button",{className:o.button,onClick:i.box,"data-active":r==="box",children:n.BoxIcon||"Box"}),t.pen&&(0,K.jsx)("button",{className:o.button,onClick:i.pen,"data-active":r==="pen",children:n.PenIcon||"Pen"}),t.draw&&(0,K.jsx)("button",{className:o.button,onClick:i.draw,"data-active":r==="pencil",children:n.DrawIcon||"Draw"}),t.line&&(0,K.jsx)("button",{className:o.button,onClick:i.line,"data-active":r==="line",children:n.LineIcon||"Line"}),t.lineBox&&(0,K.jsx)("button",{className:o.button,onClick:i.lineBox,"data-active":r==="lineBox",children:n.LineBoxIcon||"LineBox"}),t.triangle&&(0,K.jsx)("button",{className:o.button,onClick:i.triangle,"data-active":r==="stamp"&&a?.id==="triangle",children:n.TriangleIcon||"Triangle"}),t.hexagon&&(0,K.jsx)("button",{className:o.button,onClick:i.hexagon,"data-active":r==="stamp"&&a?.id==="hexagon",children:n.HexagonIcon||"Hexagon"}),t.circle&&(0,K.jsx)("button",{className:o.button,"data-active":r==="stamp"&&a?.id==="circle",onClick:i.circle,children:n.CircleIcon||"Circle"})]}):null,t.delete&&(0,K.jsx)("button",{className:o.button,onClick:i.remove,children:n.DeleteForeverIcon||"Delete"})]})}var Os=require("react/jsx-runtime");function nc({annotation:e,children:t}){return(0,Os.jsx)(te,{value:{annotation:e},children:t})}var Hs=require("react/jsx-runtime");function rc({annotationPage:e,children:t}){return(0,Hs.jsx)(te,{value:{annotationPage:e},children:t})}var Ds=require("react/jsx-runtime");function ic({collection:e,children:t}){return(0,Ds.jsx)(te,{value:{collection:e},children:t})}function ac(e,t={}){return Me(t)}var Fs=require("@atlas-viewer/atlas"),Ye=require("react");function sc({canvasId:e}={}){let t=(0,Fs.useCanvas)(),o=Qe(),n=(0,Ye.useMemo)(()=>e?[e]:t?[t.id]:o.map(c=>c.id),[e,t,o]),[r,i]=(0,Ye.useState)({}),a=ro();(0,Ye.useEffect)(()=>{let c=m=>{let u=m.partOf.canvasId;u&&i(d=>({...d,[u]:m.choice}))};return a.on("choice-change",c),()=>{a.off("choice-change",c)}},[]);let s=(0,Ye.useMemo)(()=>{let c=[];for(let m of n){let u=r[m];u&&c.push({canvasId:m,choice:u})}return c},[n,r]),l=(0,Ye.useMemo)(()=>({makeChoice:(c,m)=>{a.emit("make-choice",{choiceId:c,...m})}}),[a]);return{choices:s,actions:l}}function lc(e,t=!1){}function cc(e){let o=X().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return N(r=>{let i=o?r.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let l of i?.items||[])n.indexOf(l.id)!==-1&&s.push(l);return s},[n.join("/")])}var $s=require("react");function uc(e,t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.collection,a=N(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,$s.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}var An=require("react"),di=require("zustand");function mc(){let e=L(),t=(0,di.useStore)(e,n=>n.completeRequest),o=(0,di.useStore)(e,n=>n.cancelRequest);return(0,An.useMemo)(()=>({saveAnnotation:()=>{(0,An.startTransition)(()=>{t()})},cancelRequest:o}),[t,o])}var Ws=require("react"),Tn=require("zustand");function dc({requestId:e}={}){let t=L(),o=(0,Tn.useStore)(t,s=>s.metadata),n=(0,Tn.useStore)(t,s=>s.tool.requestId),r=e||n,i=(0,Tn.useStore)(t,s=>s.setMetadata),a=(0,Ws.useCallback)(s=>i(s,r||void 0),[i,r]);return[r?o[r]||{}:{},a]}var Us=require("zustand");function pc(e){let t=L(),o=(0,Us.useStore)(t,n=>n.tool.requestId);tt("polygons.start-transition",n=>{e.requestId&&o!==e.requestId||e?.onStart?.(n.transitionIntent)},[o,e.requestId]),tt("polygons.end-transition",n=>{e.requestId&&o!==e.requestId||e?.onEnd?.(n.transitionIntent,n.response)},[o,e.requestId]),tt("polygons.transition",n=>{e.requestId&&o!==e.requestId||e?.onTransition?.(n.transitionIntent)},[o,e.requestId])}var In=require("react"),_s=require("@iiif/helpers/events");function fc(e,t,o,n,r=[]){let i=w(),a=(0,In.useMemo)(()=>(0,_s.createEventsHelper)(i),[i]);(0,In.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,o,n),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...r])}function gc(e,t){let{id:o,isLoaded:n,error:r,resource:i,requestId:a,cached:s}=Dt(e,t);return{id:o,isLoaded:n,error:r,manifest:i,requestId:a,cached:s}}var pi=require("@iiif/parser/image-3");var Re=require("react");function fi({cacheKey:e}={}){let t=T(),o=Me(),n=w(),r=wt(),i=Ea(),[a,s]=(0,Re.useState)(void 0),[l,c]=(0,Re.useState)(!1),[m,u]=(0,Re.useState)("idle"),[d,g]=(0,Re.useState)(void 0),v=t?t.id:"undefined",p=(0,Re.useMemo)(()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),R=(0,pi.getImageServices)(f)[0];return R&&r(R,{width:R.width||t.width,height:R.height||t.height},!0)||void 0}}catch(y){console.error(y)}},[v,e,t]),b=m==="success"&&a?a:p;return(0,Re.useEffect)(()=>{(async()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),R=(0,pi.getImageServices)(f)[0];if(!R)return;c(!0),u("loading");try{let C=await i(R,{width:R.width||t.width,height:R.height||t.height})||void 0;s(C),u("success"),c(!1)}catch(C){u("error"),g(C)}}}catch(y){u("error"),g(y)}})()},[v,e]),(0,Re.useMemo)(()=>({data:b,isFetching:l,status:m,error:d}),[b,l,m,d])}function hc(){let e=fi();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 wn=require("react");var Ys=require("@iiif/helpers");function yc({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=w(),o=T(),n=Me(),r=(0,wn.useMemo)(()=>(0,Ys.createPaintingAnnotationsHelper)(t),[t]),i=(0,wn.useMemo)(()=>r.getPaintables(n),[r,n]);return(0,wn.useMemo)(()=>xo({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}var Ks=require("@iiif/helpers/styles"),js=require("react");function vc(){let e=w();return(0,js.useMemo)(()=>(0,Ks.createStylesHelper)(e),[e])}function Sc(e,t){let{x:o,y:n,width:r,height:i}=e,{x:a,y:s}=t,{width:l,height:c}=t;return o+r>a&&o<a+l&&n+i>s&&n<s+c}var Gs=Q(require("tiny-invariant"),1);function xc(e,t){let o=e.boundingBox||Le(e.polygon);if(e.polygon&&!Ct(e.polygon.points)){let n=e.target||Rt(e.polygon,t);return(0,Gs.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}}
49
+ `}),(0,no.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 Ga({media:e,mediaControlsDeps:t,children:o}){let[{element:n,currentTime:r,progress:i},a,s]=it({duration:e.duration});return j("overlay","video-element",kl,{element:n,media:e,playPause:s.playPause}),null}var an=require("react/jsx-runtime");function zr(){let{strategy:e}=O(),{renderMediaControls:t,mediaControlsDeps:o}=oe();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,an.jsxs)(Ga,{media:e.media,mediaControlsDeps:o,children:[(0,an.jsx)(ct,{}),t?t(e):null]})}var mn=require("react"),be=require("zustand");var ln=require("@atlas-viewer/atlas"),Ye=require("react");var Qa=require("polygon-editor"),Z=require("react");var sn=require("zustand");function qr(e){let t=L(),o=(0,sn.useStore)(t,i=>i.polygons),n=(0,sn.useStore)(t,i=>i.polygonState),r=(0,sn.useStore)(t,i=>i.polygon);return tt("atlas.polygon-render",({state:i,slowState:a,dt:s})=>{e(i,a,s)}),{currentShape:r,state:n,helper:o}}var M=require("react/jsx-runtime"),Ee=(0,Qa.createSvgHelpers)(),Xa={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function Br(e){let{image:t}=e,o={...Xa,...e.theme||{}},n=(0,Z.useRef)(),r=(0,Z.useRef)(),i=(0,Z.useRef)(),a=(0,Z.useRef)(),s=(0,Z.useRef)(),l=(0,Z.useRef)(),c=(0,Z.useRef)(),m=(0,Z.useRef)(),u=(0,Z.useRef)(),d=(0,Z.useRef)(),[g,v]=(0,Z.useState)(null),[p,R]=(0,Z.useState)(!1),{helper:y,state:f,currentShape:h}=qr((E,_)=>{if(E.closestLineIndex,Ee.updateTransitionBoundingBox(i.current,E,_),Ee.updateBoundingBoxPolygon(n.current,E,_),Ee.updateBoundingBoxPolygon(r.current,E,_),Ee.updateTransitionShape(c.current,E,_),Ee.updateClosestLinePointTransform(s.current,E,_),Ee.updateSelectBox(a.current,E,_),Ee.updatePointLine(m.current,E,_),Ee.updateDrawPreview(l.current,E,_,3),Ee.updateLineBox(u.current,E),v(E.transitionDirection),R(E.transitionRotate),E.closestLineIndex!==-1&&d.current){let k=E.polygon,V=k.points[E.closestLineIndex],B=k.points[(E.closestLineIndex+1)%k.points.length];V&&B&&d.current.setAttribute("points",`${V[0]},${V[1]} ${B[0]},${B[1]}`)}});(0,Z.useEffect)(()=>{let E=()=>{y.modifiers.reset()};return document.addEventListener("mouseleave",E),()=>{document.removeEventListener("mouseleave",E)}},[]);let b=(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke,className:"marker"}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.controlFill})]}),(0,M.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.activeLineStroke,className:"marker"})}),(0,M.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.activeLineStroke})]}),(0,M.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,M.jsx)("rect",{width:"10",height:"10",fill:o.lineStroke}),(0,M.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:o.controlFill})]})]}),C=h?h.open?"polyline":"polygon":null,P=!f.showBoundingBox&&f.closestPoint!==null&&f.actionIntentType==="select-point",A=f.actionIntentType==="add-open-point",I=f.transitionIntentType==="split-line",q=f.transitioning&&f.selectedStamp&&f.transitionIntentType==="stamp-shape",ue=h&&C?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(C,{fill:(!f.transitioning||f.transitionIntentType==="select-multiple-points")&&!h.open?o.shapeFill:"none",strokeWidth:q||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(E=>E.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,M.jsx)("polygon",{fill:o.shapeFill,ref:u,stroke:o.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,f.transitionIntentType==="draw-shape"&&f.transitioning?(0,M.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,M.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((E,_)=>f.selectedPoints?.includes(_)).map(E=>E.join(",")).join(" "),opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,P&&!f.transitioning&&f.closestPoint!==null&&h.points[f.closestPoint]?(0,M.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,M.jsx)("polyline",{stroke:o.activeLineStroke,ref:m,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,M.jsx)("g",{children:(0,M.jsx)("polyline",{ref:d,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,M.jsx)("g",{ref:s,children:(0,M.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,f.transitioning?(0,M.jsx)(C,{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,M.jsx)("rect",{ref:a,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,f.showBoundingBox&&!q?(0,M.jsxs)(M.Fragment,{children:[(0,M.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,M.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:A,isSplitting:I,isStamping:q,isHoveringPoint:P,transitionDirection:g,transitionRotate:p,defs:b,editor:ue}}var _e=require("react/jsx-runtime");function Za(e){let t=(0,ln.useAtlas)(),{image:o}=e,{helper:n,defs:r,editor:i,state:a,transitionDirection:s,isSplitting:l,transitionRotate:c,isHoveringPoint:m,isAddingPoint:u}=Br({image:e.image,theme:e.theme}),d=(0,Ye.useCallback)(p=>{p.button!==2&&n.pointer([[~~p.atlas.x,~~p.atlas.y]])},[n]),g=(0,Ye.useCallback)(p=>{p.button!==2&&n.pointerDown()},[n]),v=(0,Ye.useCallback)(p=>{p.button!==2&&n.pointerUp()},[n]);return(0,Ye.useEffect)(()=>{let p=R=>{n.key.up(R.key)};return document.addEventListener("keyup",p),()=>{document.removeEventListener("keyup",p)}},[n]),(0,Ye.useEffect)(()=>{let p=R=>{R.target&&["INPUT","TEXTAREA"].includes(R.target.tagName)||R.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||n.key.down(R.key)};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[n]),(0,Ye.useEffect)(()=>{let p=[];return s&&p.push(`atlas-cursor-${s}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&p.push("atlas-cursor-cut"),(m||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&p.push("atlas-cursor-move"),u&&p.push("atlas-cursor-crosshair"),l&&p.push("atlas-cursor-copy"),c&&p.push("atlas-cursor-rotate"),a.transitionIntentType==="draw-shape"&&p.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...p),()=>{t?.canvas&&t.canvas.classList.remove(...p)}},[t?.canvas,u,m,l,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,s,c]),(0,_e.jsx)("world-object",{height:o.height,width:o.width,onMouseMove:d,onMouseDown:g,onMouseUp:v,onMouseLeave:n.blur,children:(0,_e.jsx)(ln.HTMLPortal,{relative:!0,interactive:!1,children:(0,_e.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,_e.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,_e.jsx)("title",{children:"Annotation Editor"}),(0,_e.jsx)("defs",{children:r}),i]})})})})}var as=require("react"),ss=require("zustand");var rs=require("@atlas-viewer/atlas"),ae=require("@floating-ui/react"),is=require("react-dom");var Y=Q(require("react"),1);var Ja=Q(require("react"),1),cn=require("react"),es=Q(require("mitt"),1),os=require("react/jsx-runtime"),ts=(0,es.default)(),dt=(0,cn.createContext)({emitter:ts});dt.displayName="Events";function ro(){return Ja.default.useContext(dt).emitter}function Ml({emitter:e,children:t}){return(0,os.jsx)(dt.Provider,{value:(0,cn.useMemo)(()=>({emitter:e}),[e]),children:t})}var ce=require("react/jsx-runtime"),io=Y.default.createContext({});function ao(){let e=(0,Y.useContext)(io),t=Object.keys(e),o={};for(let n of t)e[n].Provider&&(o[n]={value:(0,Y.useContext)(e[n]),Provider:e[n].Provider});return o}function ns(e){let t=Object.keys(e),o=e.children;for(let n of t){if(n==="children")continue;let{value:r,Provider:i}=e[n];o=(0,ce.jsx)(i,{value:r,children:o})}return o}function El(e){let t=(0,Y.useContext)(io),o=(0,Y.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,ce.jsx)(io.Provider,{value:o,children:e.children})}function so(){return{VaultContext:(0,Y.useContext)(ze),ResourceContext:(0,Y.useContext)(Ot),SimpleViewerReactContext:(0,Y.useContext)(bt),VisibleCanvasReactContext:(0,Y.useContext)(Qe),AuthRContext:(0,Y.useContext)(Ze),SearchReactContext:(0,Y.useContext)(xt),ReactEventContext:(0,Y.useContext)(dt),ContextBridgeReactContext:(0,Y.useContext)(io),StrategyReactContext:(0,Y.useContext)(De),AtlasStoreReactContext:(0,Y.useContext)(ot)}}function lo(e){return(0,ce.jsx)(Pe,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(Qe.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(bt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(dt.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(ot.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,ce.jsx)(Ze.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(xt.Provider,{value:e.bridge.SearchReactContext,children:(0,ce.jsx)(io.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,ce.jsx)(De.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,ce.jsx)(ns,{...e.custom,children:e.children}):e.children})})})})})})})})})}var Nt=require("react/jsx-runtime");function un({annotation:e,target:t,children:o,dismissable:n,isOpen:r,onOpenChange:i,placement:a}){let s=so(),l=ao(),{refs:c,floatingStyles:m,context:u}=(0,ae.useFloating)({open:r,onOpenChange:i,nodeId:e.id,placement:a||"bottom",middleware:[(0,ae.offset)(10),(0,ae.shift)(),(0,ae.flip)({mainAxis:!0})],whileElementsMounted:ae.autoUpdate}),d=(0,ae.useDismiss)(u),{getReferenceProps:g,getFloatingProps:v}=(0,ae.useInteractions)([n?d:null].filter(p=>p!==null));return(0,Nt.jsxs)(rs.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Nt.jsx)("div",{ref:c.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,is.createPortal)((0,Nt.jsx)(lo,{bridge:s,custom:l,children:(0,Nt.jsx)("div",{ref:c.setFloating,style:m,...v(),children:o})}),document.getElementById("atlas-floating-ui"))]})}var co=require("react/jsx-runtime"),ls=(0,ss.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 uo(e,t,o){let{isMenuOpen:n,setIsMenuOpen:r,close:i,open:a,menuPosition:s,setMenuPosition:l,toggle:c}=ls(),m=(0,as.useCallback)(g=>{o&&(g.preventDefault(),g.stopPropagation(),c(g.atlas))},[c,o]);return[(0,co.jsx)(co.Fragment,{children:o&&n&&(0,co.jsx)(un,{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:m},{open:a,close:i,toggle:c,isMenuOpen:n,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var cs=require("zustand");function Or(){let e=L();return(0,cs.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var J=require("react/jsx-runtime");function Hr({theme:e,renderContextMenu:t,children:o}){let n=L(),r=T(),i=(0,be.useStore)(n,C=>C.polygon),a=(0,be.useStore)(n,C=>C.polygonState.currentTool),s=(0,be.useStore)(n,C=>C.mode),l=(0,be.useStore)(n,C=>C.changeMode),c=(0,be.useStore)(n,C=>C.polygonState.transitioning),{enabled:m,requestId:u}=(0,be.useStore)(n,C=>C.tool),d=(0,mn.useMemo)(()=>Be(i),[i]),g=Or(),[v,p]=uo("editing-annotation",r?.id,t),R=g?.annotationPopup||o||(0,J.jsx)(us,{}),y=g?.svgTheme||e,f=()=>{l("sketch")};if(!m||!r||!u||!i)return null;let h=d&&i.id&&!c&&(a==="pointer"||a==="hand"||!i.open)?(0,J.jsx)(un,{annotation:i,target:d,children:R}):null,b="shape";return s==="explore"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(b,{id:`shape-${i.id}`,points:i.points,open:i.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)"},...p}),(0,J.jsx)(b,{id:`shape-${i.id}`,points:i.points,open:i.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,J.jsxs)(J.Fragment,{children:[t?(0,J.jsx)(b,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:r.width,height:r.height},...p}):null,(0,J.jsx)(Za,{image:r,theme:y}),h,v]})}function us(){let e=L(),t=(0,be.useStore)(e,a=>a.changeMode),o=(0,be.useStore)(e,a=>a.mode),n=(0,be.useStore)(e,a=>a.completeRequest),r=(0,be.useStore)(e,a=>a.tool),i=()=>{(0,mn.startTransition)(()=>{n()})};return r.enabled?(0,J.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[o!=="sketch"&&(0,J.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,J.jsx)("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}var Ke=require("react");var Vt=require("react");var ms=require("@iiif/helpers");function Nl(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function mo(e,t){let{selector:o,source:n}=(0,ms.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 Dr={makeChoice:()=>{}},po={type:"unknown"},z=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Fr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var fo=require("react");function Vl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function ds(e,t){return N(o=>{let n=[];if(!e)return n;let r=Object.keys(o.iiif.entities.AnnotationPage);for(let i of r)if(!t||t.indexOf(i)!==-1){let a=Vl(o,i);a&&a.views&&a.views[e]&&n.push(i)}return n},[e,t])}function $r({canvas:e,manifest:t,all:o,canvases:n}){let r=[];if(t)for(let i of t.annotations)r.indexOf(i.id)===-1&&r.push(i.id);if(o){if(n&&n.length)for(let i of n)for(let a of i.annotations)r.indexOf(a.id)===-1&&r.push(a.id)}else if(e)for(let i of e.annotations)r.indexOf(i.id)===-1&&r.push(i.id);return r}function Ll(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function go(e,t={}){let o=w(),n=F(),r=T(),i=Xe(),a=(0,fo.useMemo)(()=>$r({all:t.all,manifest:n,canvas:r,canvases:i}),[t.all,r,i,n]),s=ds(e,t.all?void 0:a),l=(0,fo.useCallback)(m=>{e&&o.setMetaValue([m,"annotationPageManager","views"],u=>u&&!u[e]?u:{...u||{},[e]:!1})},[e,o]),c=(0,fo.useCallback)((m,u={})=>{if(!e)return;let d=o.getState(),g=[];if(u?.deselectOthers){let v=Object.keys(d.iiif.entities.AnnotationPage);for(let p of v){let R=Ll(d,p);R&&R.views&&R.views[e]&&g.push(p)}}for(let v of g)l(v);o.setMetaValue([m,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,l,o]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:c,setPageDisabled:l}}function Wr(e,t){return N((o,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var ps=Q(require("mitt"),1),fs=require("react"),gs=require("zustand");var zl=(0,gs.createStore)((e,t)=>({loaded:{},setLoaded:(o,n="done")=>{e(r=>({loaded:{...r.loaded,[o]:n}}))}})),ql=(0,ps.default)();ql.on("loaded",e=>{zl.getState().setLoaded(e.imageServiceId)});function ho(){let e=wt(),t=Ma();return[(0,fs.useCallback)((n,{height:r,width:i})=>n&&e(n,{height:r,width:i},!0),[e]),t]}var pt=require("react");function Ne(e={}){let t=Kt(),o=T(e.canvasId?{id:e.canvasId}:void 0);return N((n,r)=>{if(!o)return[];if(t&&e.enableSingleAnnotation)return[t];let i=r.get(o.items),a=[];for(let s of i)a.push(...r.get(s.items));return a},[o])}var hs=require("@iiif/helpers/painting-annotations");function Ur(e,t=[]){let o=w(),n=(0,pt.useMemo)(()=>(0,hs.createPaintingAnnotationsHelper)(o),[]),r=Ne({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,pt.useState)(e?.defaultChoices||[]),s=(0,pt.useMemo)(()=>n.getPaintables(r,i),[o,r,i,...t]),c={makeChoice:(0,pt.useCallback)((m,{deselectOthers:u=!0,deselect:d=!1}={})=>{s.choice&&a(g=>{if(d){let p=g.filter(R=>R!==m);if(p.length===0){let R=s.items[0].resource.id;return R?[R]:[]}return p}if(u)return[m];let v=[...g];if(v.length===0&&s.items.length){let p=s.items[0].resource.id;p&&v.push(p)}return g.indexOf(m)!==-1?g:[...g,m]})},[s.choice])};return[s,c]}var Bl=["model/gltf-binary"];function _r(e,t){let o=t.items[0],n=o.resource;return n.format?Bl.indexOf(n.format)===-1?z(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:o.annotationId,annotation:o.annotation}:z("Unknown format")}function dn(e,t){let o=t.items,n=o[0];if(o.length===0||!n)return z("No audio");if(!e.duration)return z("No duration on canvas");if(o.length>1)return z("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:[]}}):z("Unknown audio")}var Yr=require("@iiif/helpers/annotation-targets"),ys=require("@iiif/parser/image-3");function Ve(e){return e.replace(/^http:/,"https:")}function yo(e,t,o){let n=[],r=[];for(let i of t.items){let a=i.resource&&i.resource.type==="SpecificResource"?i.resource.source:i.resource;if(!a.id)return z("No resource Identifier");let s;if(a.service){let R=(0,ys.getImageServices)(a);R[0]&&(s=o(R[0],e))}let l={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[c,m]=mo(e,i.target),u=e.id?.split("?")[0]||"";if(!(Ve(m.id||"")===Ve(e.id)||Ve(decodeURIComponent(m.id||""))===Ve(e.id||"")||Ve(m.id||"")===Ve(u)||Ve(decodeURIComponent(m.id||""))===Ve(u)))continue;let d=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,g=i.resource.type==="SpecificResource"?(0,Yr.expandTarget)(i.resource):null;if(i.selector){let R=(0,Yr.expandTarget)({type:"SpecificResource",source:i.resource,selector:i.selector});R&&(g=R)}let v=g&&g.selector&&(g.selector.type==="BoxSelector"||g.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:g.selector.spatial.x,y:g.selector.spatial.y,width:g.selector.spatial.width,height:g.selector.spatial.height}}:void 0;s&&!s.id&&(s.id=s["@id"]);let p={id:a.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(c||v?a.width:e.width),height:Number(c||v?a.height:e.height),service:s,sizes:s&&s.sizes?s.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:c&&c.type!=="PointSelector"?c:l,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};n.push(p)}return{type:"images",image:n[0],images:n,choice:t.choice}}function vs(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=>vs(r,t,n))}return t}function vo(e,t){let o=[];return t.items.forEach(n=>{if(n.resource){let[r]=mo(e,n.target);o.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:vs(n.resource),target:r})}}),{type:"textual-content",items:o}}var pn=require("@iiif/helpers");var Ol=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function So(e,t,o,n=!1){let r=t.items.filter(p=>p.type==="video"),i=r[0],a=!1,s=!1;if(e.duration||(s=!0),r.length>1||!i)return z("Only one video source supported");let l=r[0]?.resource,c=!!(l.service||[]).find(p=>(p.profile||"").includes("youtube.com"));if(!c&&s)return z("Video does not have duration");if(!l)return z("Unknown video");if((!l.format||l.format==="text/html")&&!c)return z("Video does not have format");let m=[],u=o.get(e.annotations||[]);for(let p of u){let R=o.get(p.items||[]);for(let y of R)if((y.motivation?Array.isArray(y.motivation||"")?y.motivation:[y.motivation]:[]).includes("supplementing")){let h=o.get(y.body||[]);for(let b of h){let C=b;if(C.type==="Choice")for(let P of C.items){let A=o.get(P);A.format==="text/vtt"&&m.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else C.format==="text/vtt"&&m.push({id:C.id,type:"Text",format:"text/vtt",label:C.label,language:C.language})}}}let d={annotationId:i.annotationId,annotation:i.annotation,duration:e.duration,url:l.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:l.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},g=(0,pn.expandTarget)(i.target);g.selector&&g.selector.type==="TemporalBoxSelector"&&(d.target=g.selector);let{selector:v}=(0,pn.parseSelector)(i.selector);if(v===null){let p=d.target.temporal.startTime,y=(d.target.temporal.endTime||e.duration)-p;d.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:y}}}else v.type==="TemporalSelector"&&(d.selector=v);if(n&&!d.target.spatial&&(a=!0,d.target={type:"TemporalBoxSelector",temporal:d.target.temporal,spatial:{x:e.width/2,y:e.height/2,width:e.width/2,height:e.height/2}}),c){d.type="VideoYouTube";let p=l.id.match(Ol);if(!p[1])return z("Video is not known youtube video");d.youTubeId=p[1]}return{type:"media",media:d,annotations:{pages:[]},noSpatial:a,captions:m}}var Ss=require("@iiif/helpers");function Kr(e,t,o,n){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},i={type:"complex-choice",items:[]},a=n.get(e.annotations);function s(m){m.choice&&(m.choice.type==="complex-choice"?i.items.push(...m.choice.items):i.items.push(m.choice))}for(let m of t.items){if(m.type==="image"){let u=yo(e,{choice:null,allChoices:null,types:["image"],items:[m]},o);if(u.type==="images"){if(!u.image)continue;s(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 g={id:u.image.annotationId,type:"exit",resourceType:"image",time:u.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}if(m.type==="textualbody"){let u=vo(e,{choice:null,allChoices:null,types:["textualbody"],items:[m]});if(u.type==="textual-content"){s(u);let d=u.items[0];r.items.push(d);let g=d.target,v={id:d.annotationId,type:"enter",resourceType:"text",time:g.temporal?.startTime||0};r.keyframes.push(v);let p={id:d.annotationId,type:"exit",resourceType:"text",time:g.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(m.type==="video"){let u=So(e,{choice:null,allChoices:null,types:["video"],items:[m]},n,!0);if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let v={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}if(m.type==="audio"||m.type==="sound"){let u=dn(e,{choice:null,allChoices:null,types:["audio"],items:[m]});if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let v={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}}for(let m of a)for(let u of m.items){let d=n.get(u),g=(0,Ss.expandTarget)(d.target,{typeMap:n.getState?.().iiif.mapping});if(g.selector?.temporal){let v={id:d.id,type:"enter",resourceType:"highlight",time:g.selector.temporal.startTime||0};r.keyframes.push(v);let p={id:d.id,type:"exit",resourceType:"highlight",time:g.selector.temporal.endTime||e.duration||0};r.keyframes.push(p)}r.highlights.push({annotation:d,target:g})}r.keyframes.sort((m,u)=>m.time-u.time);let l=[],c=[];for(let m of r.keyframes){if(m.resourceType==="image"||m.resourceType==="text"||m.resourceType==="highlight"){c.push(m);continue}if(m.type==="enter"){l.length===0&&(m.isPrime=!0),l.push(m),c.push(m);continue}if(m.type==="exit"&&(c.push(m),l=l.filter(u=>u.id!==m.id),l.length!==0)){let u=l[0],d={id:u.id,type:"change",isPrime:!0,resourceType:u.resourceType,time:m.time};c.push(d)}}return r.keyframes=c,i.items.length&&(r.choice=i),r}var fn={},jr={get(e){return e},setMetaValue([e,t,o],n){let r=jr.getResourceMeta(e,t),i=r?r[o]:void 0,a=typeof n=="function"?n(i):n;fn[e]={...fn[e]||{},[t]:{...(fn[e]||{})[t]||{},[o]:a}}},getResourceMeta:(e,t)=>{let o=fn[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 xo({canvas:e,paintables:t,supports:o,loadImageService:n,vault:r=jr}){if(!e)return po;if(t.types.length===0)return o.indexOf("empty")!==-1?Fr(e.width,e.height):po;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return o.indexOf("complex-timeline")===-1?z("Complex timeline not supported"):Kr(e,t,n,r);let i=t.types[0];return i==="image"?o.indexOf("images")===-1?z("Image not supported"):yo(e,t,n):i==="Model"||i==="model"?o.indexOf("3d-model")===-1?z("3D not supported"):_r(e,t):i==="textualbody"?o.indexOf("textual-content")===-1?z("Textual content not supported"):vo(e,t):i==="sound"||i==="audio"?o.indexOf("media")===-1?z("Media not supported"):dn(e,t):i==="video"?o.indexOf("media")===-1?z("Media not supported"):So(e,t,r):po}function Gr(e){let t=F(),o=T(),n=w(),r=ro(),i=e?.emitter||r,[a,s]=ho(),{enabledPageIds:l}=go(e?.annotationPageManagerId||t?.id||o?.id,{all:!1}),c=Wr(l,"AnnotationPage"),m=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[u,d]=Ur(e,[s]);(0,Vt.useEffect)(()=>{let v=p=>{d.makeChoice(p.choiceId,{deselectOthers:p.deselectOthers,deselect:p.deselect})};return i.on("make-choice",v),()=>{i.off("make-choice",v)}},[]);let g=(0,Vt.useMemo)(()=>xo({canvas:o,paintables:u,supports:m,loadImageService:a,vault:n}),[o,u,n,d.makeChoice]);return(0,Vt.useEffect)(()=>{let v=u.allChoices,p={canvasId:o?.id,manifestId:t?.id};v&&i.emit("choice-change",{choice:v,partOf:p})},[o?.id,u.allChoices]),(0,Vt.useMemo)(()=>g.type==="unknown"?[g,Dr]:[{...g,annotations:{pages:c}},d],[g,c])}var xs=require("@iiif/helpers");var Qr=require("react/jsx-runtime");function Xr({strategies:e,registerActions:t,defaultChoices:o,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:i,renderViewerControls:a,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,throwOnUnknown:m,children:u}){let d=T(),g=w(),v=(0,Ke.useMemo)(()=>(0,xs.createStylesHelper)(g),[g]),[p,R]=Gr({strategies:e||["images"],defaultChoices:o?.map(({id:b})=>b)}),y="choice"in p?p.choice:void 0;if((0,Ke.useEffect)(()=>{t&&t(R)},[p.annotations]),(0,Ke.useEffect)(()=>{n&&n(y)},[y]),(0,Ke.useEffect)(()=>{if(o)for(let b of o)typeof b.opacity<"u"&&v.applyStyles({id:b.id},"atlas",{opacity:b.opacity})},[o]),p.type==="unknown"&&m)throw new Error(p.reason||"Unknown strategy");let f=(0,Ke.useMemo)(()=>({renderMediaControls:i,mediaControlsDeps:r||[],renderViewerControls:a,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:c||[]}),[r,i,a,s,l,c]),h=(0,Ke.useMemo)(()=>({strategy:p,actions:R,choices:"choice"in p?p.choice:[]}),[p,d]);return(0,Qr.jsx)(Zt.Provider,{value:f,children:(0,Qr.jsx)(De.Provider,{value:h,children:u})})}var bo=require("react"),Jr=require("zustand");var Lt=require("react");var Zr=(0,Lt.createContext)(()=>{});function bs(e){let t=T(),o=(0,Lt.useContext)(Zr);(0,Lt.useEffect)(()=>t&&t.id?(o(t.id,e),()=>o(t.id,-1)):()=>{},[t,e])}var Cs=require("react/jsx-runtime");function ei({x:e=0,y:t=0,keepCanvasScale:o=!0,renderContextMenu:n,children:r}){let{strategy:i}=O(),a=T(),s=L(),l=jt(a,["deep-zoom"]),c=(0,Jr.useStore)(s,p=>p.setCanvasRelativePosition),m=(0,Jr.useStore)(s,p=>p.clearCanvasRelativePosition),[u,d]=uo(`context-menu/${a?.id}`,a?.id,n),g=(0,bo.useMemo)(()=>o?1:Math.max(1,...i.type==="images"?i.images.map(p=>(p.width||0)/p.target?.spatial.width):[]),[o,i]);(0,bo.useEffect)(()=>{if(a)return c(a.id,{x:e,y:t,width:a.width,height:a.height}),()=>{m(a.id)}},[e,t,a,m,c]),(0,bo.useEffect)(()=>{a&&s.getState().reset()},[s,a]),bs(g);let v=i.type==="images"?i.images.length:0;return a?(0,Cs.jsxs)("world-object",{height:a.height,width:a.width,x:e,y:t,...d,...l,children:[u,r]},`${a.id}/${i.type}/${v}`):null}var ne=require("react/jsx-runtime");function st({x:e,y:t,onChoiceChange:o,registerActions:n,defaultChoices:r,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:m,mediaControlsDeps:u,strategies:d,throwOnUnknown:g,backgroundStyle:v,alwaysShowBackground:p,keepCanvasScale:R=!1,enableSizes:y=!1,enableYouTube:f=!0,onClickPaintingAnnotation:h,components:b={},children:C,annotationPopup:P,svgTheme:A,renderContextMenu:I,renderAnnotationContextMenu:q}){return(0,ne.jsxs)(Xr,{throwOnUnknown:g,onChoiceChange:o,registerActions:n,strategies:d,defaultChoices:r,mediaControlsDeps:u,renderMediaControls:s,renderViewerControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:m,children:[(0,ne.jsxs)(ei,{keepCanvasScale:R,x:e,y:t,renderContextMenu:I,children:[(0,ne.jsx)(Mr,{alwaysShowBackground:p,backgroundStyle:v}),(0,ne.jsx)(kr,{}),(0,ne.jsx)(Nr,{}),(0,ne.jsx)(Er,{isStatic:i,enableSizes:y,onClickPaintingAnnotation:h}),(0,ne.jsx)(yr,{}),(0,ne.jsx)(mr,{}),(0,ne.jsx)(xr,{as:b.Audio}),(0,ne.jsx)(Lr,{as:b.Video}),f?(0,ne.jsx)(zr,{}):null,(0,ne.jsx)(Hr,{theme:A,renderContextMenu:q,children:P}),C]}),(0,ne.jsx)(dr,{})]})}var ti=require("react/jsx-runtime");function Rs(e){let t=T();return!t||!t.placeholderCanvas?null:(0,ti.jsx)(me,{canvas:t.placeholderCanvas.id,children:(0,ti.jsx)(st,{renderViewerControls:e.renderViewerControls})})}var As=require("@atlas-viewer/atlas"),re=Q(require("react"),1),Ts=require("react-error-boundary"),oi=require("zustand");var gn=require("react");function Ps(e,t=2e3){let{currentSequenceIndex:o,sequence:n,items:r}=Je(),i=T(),a=(0,gn.useMemo)(()=>{let l=n[o]||[];return l.length===0&&i?[{id:i.id,type:"Canvas"}]:l.map(c=>r[c])},[n,o,i,r]),s=L();(0,gn.useEffect)(()=>{let c=setInterval(()=>{if(e&&t!==-1){let m={x:e.x,y:e.y,width:e.width,height:e.height},u=s.getState().canvasRelativePositions,d={};for(let g of a){let v=u[g.id];if(v){let p=v.x,R=v.y,y=v.width,f=v.height,h={x:Math.max(p,m.x),y:Math.max(R,m.y),width:Math.min(p+y,m.x+m.width)-Math.max(p,m.x),height:Math.min(R+f,m.y+m.height)-Math.max(R,m.y)};h.width<=0||h.height<=0||(d[g.id]={x:h.x-v.x,y:h.y-v.y,width:h.width,height:h.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(c)}},[a,e,s,t])}var zt=require("react/jsx-runtime");function hn({width:e,style:t,height:o,error:n,resetErrorBoundary:r}){return(0,zt.jsxs)("div",{style:{width:e,height:o,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,zt.jsx)("h3",{children:"Error occurred"}),(0,zt.jsx)("p",{children:n.message}),(0,zt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var H=require("react/jsx-runtime");function yn(e){let t=L();return(0,H.jsx)(Pt,{name:e.name,existing:t,children:(0,H.jsx)(Hl,{...e})})}function Hl({name:e,children:t,errorFallback:o,outerContainerProps:n={},worldScale:r,updateViewportTimeout:i,...a}){let s=L(),l=(0,oi.useStore)(s,k=>k.mode),c=(0,oi.useStore)(s,k=>k.setAtlasRuntime),[m,u]=(0,re.useState)(),d=ao(),g=so(),v=o||hn,[p,R]=(0,re.useState)({}),y=Object.entries(p),[f,h]=(0,re.useState)({}),b=Object.entries(f),[C,P]=(0,re.useState)({}),{worldScale:A,runtimeOptions:I}=(0,re.useMemo)(()=>{if(Object.values(C).length===0)return{worldScale:1,runtimeOptions:a.runtimeOptions||{maxOverZoom:1}};let V=Math.max(...Object.values(C));return{worldScale:V,runtimeOptions:{maxOverZoom:V||1,...a.runtimeOptions||{}}}},[C,a.runtimeOptions]);Ps(m?.runtime,i);let q=(0,re.useCallback)((k,V)=>{P(B=>{if(V===-1){let{[k]:Bt,...Ge}=B;return Ge}return{...B,[k]:V}})},[]),ue=(0,re.useCallback)((k,V,B)=>{R(({[k]:Bt,...Ge})=>V?{...Ge,[k]:{element:V,props:B}}:Ge)},[]),E=(0,re.useCallback)((k,V,B)=>{h(({[k]:Bt,...Ge})=>V?{...Ge,[k]:{element:V,props:B}}:Ge)},[]),_=(0,re.useCallback)(k=>{u(k),c(k.runtime),a.onCreated&&a.onCreated(k)},[a.onCreated,c]);return(0,H.jsxs)(Ts.ErrorBoundary,{resetKeys:[],fallbackRender:k=>(0,H.jsx)(v,{...a,...k}),children:[(0,H.jsx)(As.AtlasAuto,{...a,mode:l,containerProps:{style:{position:"relative"},...a.containerProps||{}},htmlChildren:(0,H.jsx)(H.Fragment,{children:y.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),onCreated:_,runtimeOptions:I,children:(0,H.jsx)(Pt,{name:e,existing:s,children:(0,H.jsx)(xe.Provider,{value:m,children:(0,H.jsx)(Zr.Provider,{value:q,children:(0,H.jsx)(sr.Provider,{value:ue,children:(0,H.jsx)(lr.Provider,{value:E,children:(0,H.jsx)(lo,{bridge:g,custom:d,children:(0,H.jsx)(hr,{children:t})})})})})})})}),(0,H.jsx)("div",{children:b.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),(0,H.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var ee=require("react/jsx-runtime"),Dl=(0,ft.forwardRef)(function(t,o){let n=F(),r=Xe(),i=Je(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,ft.useImperativeHandle)(o,()=>i,[i]),!n)return(0,ee.jsx)("div",{});let c=0,m=n.viewingDirection==="top-to-bottom",u=n.viewingDirection==="bottom-to-top",d=n.viewingDirection==="left-to-right",g=n.viewingDirection==="right-to-left",p=n.behavior.includes("continuous")?0:t.spacing||0,R=u||g,y=(0,ft.useMemo)(()=>R?[...r].reverse():r,[r,R]);return(0,ee.jsxs)(ee.Fragment,{children:[t.header,(0,ee.jsx)(U.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,children:y.map((f,h)=>{let b=0,C=0;return!m&&!u?(b=c,c+=f.width+p):(C=c,c+=f.height+p),(0,ee.jsx)(me,{canvas:f.id,children:(0,ee.jsx)(U.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:h===0&&a?()=>(0,ee.jsx)(a,{}):void 0,renderMediaControls:h===0&&s?()=>(0,ee.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:h===0&&l?()=>(0,ee.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:b,y:C,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},f.id)},f.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),U=(0,ft.forwardRef)(function({children:t,height:o,annotations:n,canvasProps:r,spacing:i,header:a,components:s,mode:l,reuseAtlas:c,renderPreset:m,runtimeOptions:u,annotationPopup:d,name:g,svgTheme:v,updateViewportTimeout:p,renderContextMenu:R,keepCanvasScale:y,renderAnnotationContextMenu:f,...h},b){let C=Ae();return(0,ee.jsx)(Pt,{name:g,children:(0,ee.jsx)(Pe,{vault:C,children:(0,ee.jsx)(Yn,{...h,children:(0,ee.jsx)(Dl,{ref:b,height:o,components:s,spacing:i,canvasProps:r,annotations:n,header:a,mode:l,reuseAtlas:c,renderPreset:m,runtimeOptions:u,annotationPopup:d,svgTheme:v,updateViewportTimeout:p,renderContextMenu:R,keepCanvasScale:y,renderAnnotationContextMenu:f,children:t})})})})});U.RenderImage=Ue;U.RenderCanvas=st;U.RenderAnnotationPage=Oe;U.RenderAnnotation=rt;U.Viewer=yn;U.CanvasBackground=tn;U.Audio=Do;U.Video=nn;U.Model=Wo;U.AudioHTML=cr;U.VideoHTML=Vr;U.ModelHTML=ur;U.PlaceholderCanvas=Rs;U.getAtlasStoreByName=Xn;var Is=require("react");var fe=require("react"),gt=require("zustand");function ni(e){let[t,o]=(0,fe.useState)(0),n=L(),r=(0,gt.useStore)(n,C=>C.tool.enabled),i=(0,gt.useStore)(n,C=>C.tool.requestId),a=(0,gt.useStore)(n,C=>C.getRequestId),s=(0,gt.useStore)(n,C=>C.requestAnnotation),l=(0,gt.useStore)(n,C=>C.completeRequest),c=(0,gt.useStore)(n,C=>C.cancelRequest),m=(0,fe.useRef)(e?.onSuccess);m.current=e?.onSuccess;let[u,d]=(0,fe.useState)(!1),[g,v]=(0,fe.useState)(null),[p,R]=(0,fe.useState)(null),y=r&&i!==p,f=r&&i===p,h=(0,fe.useCallback)(async(C,P)=>{if(p){let A=m.current;d(!0);let I=await s(C,{...P,requestId:p});if(I)return A?.(I),o(ue=>ue+1),d(!1),v(I),I;let q={id:p,cancelled:!0,..._t(C)};return A?.(q),v(q),o(ue=>ue+1),d(!1),q}return null},[s,p]),b=(0,fe.useCallback)(()=>{v(null),d(!1)},[]);return(0,fe.useEffect)(()=>{let C=a();return R(C.requestId),()=>{C.clear()}},[t]),{id:t,busy:y,isPending:u,isActive:f,requestId:p,requestAnnotation:h,cancelRequest:()=>p?c(p):void 0,completeRequest:()=>p?l(p):void 0,reset:b,data:g}}var Fl=[{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 ri(e){let{id:t,data:o,requestAnnotation:n,cancelRequest:r,isPending:i}=ni({onSuccess:a=>{e.updateShape(a.polygon)}});return(0,Is.useEffect)(()=>(n({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var G=require("react"),ii=Q(require("mitt"),1),ws=require("react/jsx-runtime"),vn=(0,G.createContext)((0,ii.default)());vn.displayName="SelectorHelper";function $l({children:e}){return(0,ws.jsx)(vn.Provider,{value:(0,G.useMemo)(()=>(0,ii.default)(),[]),children:e})}function Wl(){return(0,G.useContext)(vn)}function ai(e){let t=si(),[o,n]=(0,G.useState)(!1);(0,G.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,G.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,G.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,G.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:r,onHover:i,isHighlighted:o}}function si(){let e=(0,G.useContext)(vn);return(0,G.useMemo)(()=>({withSelector(t){return{on(o,n){let r=i=>{i&&i.selectorId===t&&n(i)};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 Ul(){let e=si();return(0,G.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 li=require("react/jsx-runtime");function _l(e){let t=T(),o=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:i,isHighlighted:a}=ai(e.id),s=Yt(),l=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(n){let c="shape",m=e.polygon,u=m.open;return m?(0,li.jsx)(c,{id:`shape-${r}`,points:m.points,open:u,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,li.jsx)(ri,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var ks=require("@atlas-viewer/atlas");var Sn=require("react"),Co=require("react/jsx-runtime"),Yl=(0,Sn.forwardRef)(function({canvasId:t},o){let n=(0,ks.useCanvas)(),r=go(t||n?.id),i=w();return(0,Sn.useImperativeHandle)(o,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,Co.jsx)(Co.Fragment,{children:r.enabledPageIds.map(a=>(0,Co.jsx)(U.RenderAnnotationPage,{page:i.get(a)},a))})});var Es=require("react");var Ms=require("react");var W=require("react/jsx-runtime");function Ro({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:c="",separator:m,tableFooter:u,tableHeader:d,customLabelRender:g,customValueRender:v}){let p=(0,Ms.useMemo)(()=>{let y=(t||[]).reduce((h,b)=>[...h,...b.keys],[]),f={};for(let h of e){let b=h?.label?Object.values(h.label):[];for(let C of b)if(C?.length&&(y.indexOf(`metadata.${C[0]}`)!==-1||y.length===0)&&h){let P=`metadata.${C[0]}`;f[P]=f[P]?f[P]:[],f[P].push(h);break}}return f},[t,e]);return Object.keys(p).length===0&&n?(0,W.jsx)(W.Fragment,{children:i})||(0,W.jsx)("div",{className:a.empty,children:s}):t?.length?(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:t.map((y,f)=>{let h=[];for(let C of y.keys)for(let P of p[C]||[]){let A=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:m,children:P.value},f+"__"+C);v?h.push(v(P,A)):h.push(A)}if(h.length===0)return null;let b=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,separator:m,defaultText:c,children:y.label});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:o?{minWidth:o}:{},children:g?g(y.label,b):b}),(0,W.jsx)("td",{className:a.value,children:h})]},f)})}),u]}):(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:e?.length?e.map((y,f)=>{if(!y)return null;let h=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:m,children:y.label}),b=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:m,children:y.value});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:o?{minWidth:o}:{},children:g?g(y.label,h):h}),(0,W.jsx)("td",{className:a.value,children:v?v(y,b):b})]},f)}):null}),u]})}var Ns=require("react/jsx-runtime");function Kl(e){let t=F(),o=T(),n=Ft(),r=(0,Es.useMemo)(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=n?.metadata||[];return[...i,...a,...s]},[t,o,n]);return(0,Ns.jsx)(Ro,{metadata:r,...e})}var Cn=require("react");var xn=require("@iiif/parser/image-3"),Vs=require("react");function bn(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,xn.createImageServiceRequest)(e);return(0,xn.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 Po=require("react/jsx-runtime");function jl(e){let t=typeof e.src=="string"?e.src:e.src.id,o=Jt(),[n,r]=(0,Cn.useState)(!1),i;if(t){let s=o.loadServiceSync({id:t});s&&(i=s)}!i&&!n&&o.loadService({id:t}).then(()=>{r(!0)});let a=bn(i,{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,Cn.useEffect)(()=>()=>{r(!1)},[t]),a?(0,Po.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Po.jsx)(Ls,{...e,fetchImageService:!1})}function Ls(e){if(e.fetchImageService)return(0,Po.jsx)(jl,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=bn(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,Po.jsx)("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}var Rn=require("react"),zs=require("react-error-boundary");var Le=require("react/jsx-runtime");function Gl({src:e,errorFallback:t,interactive:o,skipSizes:n,children:r,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:l,y:c,...m}){let u=Ae(),[d,g]=(0,Rn.useState)(),v=t||hn,[p,R]=ho(),y=(0,Rn.useMemo)(()=>{let h=R[e]?.status,b=p({id:e},{});return b?.height&&b.width&&h!=="loading"?{id:e,width:b.width,height:b.height,service:b,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:b.width,height:b.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:b.width,height:b.height}}}:null},[p,e,R]);if(!y||!y.height||!y.width)return null;let f=s?void 0:m.homePosition?m.homePosition.width/m.homePosition.height:y.width/y.height;return(0,Le.jsx)(zs.ErrorBoundary,{resetKeys:[],fallbackRender:h=>(0,Le.jsx)(v,{...m,...h}),children:(0,Le.jsx)(Pe,{vault:u,children:(0,Le.jsx)(yn,{...m,aspectRatio:f,containerProps:{style:{position:"relative"},...m.containerProps||{}},onCreated:h=>{g(h),m.onCreated&&m.onCreated(h)},children:(0,Le.jsxs)(xe.Provider,{value:d,children:[(0,Le.jsx)(Ue,{image:y,id:y.id,isStatic:!o,x:l,y:c},y.id),(0,Le.jsx)(Ql,{viewerPreset:d,renderViewerControls:i,image:y,src:e,viewControlsDeps:a}),r]})})})})}function Ql({viewerPreset:e,renderViewerControls:t,image:o,src:n,viewControlsDeps:r}){return j(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,xe.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[n,e,...r||[]]),null}var qs=require("react/jsx-runtime");function Xl(e){let t=F();return(0,qs.jsx)(Ro,{metadata:t?.metadata||[],...e})}var Pn=require("react");var ci=Q(require("react-lazy-load-image-component"),1);var Bs=require("@iiif/helpers/i18n"),se=require("react/jsx-runtime"),{LazyLoadComponent:Zl}=ci||ci.default;function ui(e){let{size:t,visible:o,classes:n,canvasId:r,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,l=(0,se.jsx)(Jl,{...e}),c=(0,se.jsx)(Zl,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:r?(0,se.jsx)(me,{canvas:r,children:l}):l});return i?(0,se.jsx)("figure",{className:n?.figure,children:c}):c}function Jl({fallback:e,size:t,classes:o,showLabel:n,alt:r,dereference:i=!1}){let a=T(),s=t?.width||128,l=t?.height||t?.width||128,c=r||(0,Bs.getValue)(a?.label)||"",m=ke({width:s,height:l,allowUnsafe:!0},i);return!m||m.type!=="fixed"?(0,se.jsx)(se.Fragment,{children:e}):(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("div",{className:o?.imageWrapper,children:(0,se.jsx)("img",{className:o?.img,src:m.id,alt:c})}),n?(0,se.jsx)(le,{as:"figcaption",className:o?.label,children:a?.label}):null]})}var qt=require("react/jsx-runtime");function ec({scrollBehaviour:e,dereference:t,flat:o,size:n,classes:r={},showLabel:i,figure:a,fallback:s}){let l=(0,Pn.useRef)(null),{items:c,sequence:m,currentSequenceIndex:u,setSequenceIndex:d}=Je(),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,Pn.useLayoutEffect)(()=>{if(!l.current)return;let p=l.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[u]);let v=[];for(let p of m){let R=[],y=m[u]===p;for(let f of p){let h=c[f];R.push((0,qt.jsx)("div",{className:y?g.item:r.item,children:(0,qt.jsx)(ui,{classes:y?g:r,canvasId:h.id,size:n,dereference:t,showLabel:i,figure:a,placeholder:(0,qt.jsx)("div",{style:{height:128,width:128}}),fallback:s})},f))}if(o){v.push(R);continue}v.push((0,qt.jsx)("div",{onClick:f=>{d(m.indexOf(p))},"data-selected":y,className:y?g.row:r.row,children:R},p.join("-")))}return(0,qt.jsx)("div",{ref:l,className:r.container,children:v})}var Ao=require("zustand");function mi(){let e=L(),t=(0,Ao.useStore)(e,i=>i.completeRequest),o=(0,Ao.useStore)(e,i=>i.polygonState.currentTool),n=(0,Ao.useStore)(e,i=>i.polygonState.selectedStamp),r=(0,Ao.useStore)(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:n,switchTool:r}}var K=require("react/jsx-runtime"),tc={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function oc({showShapes:e=!0,enabled:t=tc,classNames:o={},icons:n={}}){let{currentTool:r,switchTool:i,selectedStamp:a}=mi();return(0,K.jsxs)(K.Fragment,{children:[r,(0,K.jsx)("button",{className:o.button,onClick:i.pointer,"data-active":r==="pointer",children:n.PointerIcon||"Pointer"}),(0,K.jsx)("button",{className:o.button,onClick:i.hand,"data-active":r==="hand",children:n.HandIcon||"Hand"}),e?(0,K.jsxs)(K.Fragment,{children:[t.box&&(0,K.jsx)("button",{className:o.button,onClick:i.box,"data-active":r==="box",children:n.BoxIcon||"Box"}),t.pen&&(0,K.jsx)("button",{className:o.button,onClick:i.pen,"data-active":r==="pen",children:n.PenIcon||"Pen"}),t.draw&&(0,K.jsx)("button",{className:o.button,onClick:i.draw,"data-active":r==="pencil",children:n.DrawIcon||"Draw"}),t.line&&(0,K.jsx)("button",{className:o.button,onClick:i.line,"data-active":r==="line",children:n.LineIcon||"Line"}),t.lineBox&&(0,K.jsx)("button",{className:o.button,onClick:i.lineBox,"data-active":r==="lineBox",children:n.LineBoxIcon||"LineBox"}),t.triangle&&(0,K.jsx)("button",{className:o.button,onClick:i.triangle,"data-active":r==="stamp"&&a?.id==="triangle",children:n.TriangleIcon||"Triangle"}),t.hexagon&&(0,K.jsx)("button",{className:o.button,onClick:i.hexagon,"data-active":r==="stamp"&&a?.id==="hexagon",children:n.HexagonIcon||"Hexagon"}),t.circle&&(0,K.jsx)("button",{className:o.button,"data-active":r==="stamp"&&a?.id==="circle",onClick:i.circle,children:n.CircleIcon||"Circle"})]}):null,t.delete&&(0,K.jsx)("button",{className:o.button,onClick:i.remove,children:n.DeleteForeverIcon||"Delete"})]})}var Os=require("react/jsx-runtime");function nc({annotation:e,children:t}){return(0,Os.jsx)(te,{value:{annotation:e},children:t})}var Hs=require("react/jsx-runtime");function rc({annotationPage:e,children:t}){return(0,Hs.jsx)(te,{value:{annotationPage:e},children:t})}var Ds=require("react/jsx-runtime");function ic({collection:e,children:t}){return(0,Ds.jsx)(te,{value:{collection:e},children:t})}function ac(e,t={}){return Ne(t)}var Fs=require("@atlas-viewer/atlas"),je=require("react");function sc({canvasId:e}={}){let t=(0,Fs.useCanvas)(),o=Xe(),n=(0,je.useMemo)(()=>e?[e]:t?[t.id]:o.map(c=>c.id),[e,t,o]),[r,i]=(0,je.useState)({}),a=ro();(0,je.useEffect)(()=>{let c=m=>{let u=m.partOf.canvasId;u&&i(d=>({...d,[u]:m.choice}))};return a.on("choice-change",c),()=>{a.off("choice-change",c)}},[]);let s=(0,je.useMemo)(()=>{let c=[];for(let m of n){let u=r[m];u&&c.push({canvasId:m,choice:u})}return c},[n,r]),l=(0,je.useMemo)(()=>({makeChoice:(c,m)=>{a.emit("make-choice",{choiceId:c,...m})}}),[a]);return{choices:s,actions:l}}function lc(e,t=!1){}function cc(e){let o=X().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return N(r=>{let i=o?r.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let l of i?.items||[])n.indexOf(l.id)!==-1&&s.push(l);return s},[n.join("/")])}var $s=require("react");function uc(e,t=[]){let{id:o,selector:n}=e,r=X(),i=o||r.collection,a=N(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,$s.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}var An=require("react"),di=require("zustand");function mc(){let e=L(),t=(0,di.useStore)(e,n=>n.completeRequest),o=(0,di.useStore)(e,n=>n.cancelRequest);return(0,An.useMemo)(()=>({saveAnnotation:()=>{(0,An.startTransition)(()=>{t()})},cancelRequest:o}),[t,o])}var Ws=require("react"),Tn=require("zustand");function dc({requestId:e}={}){let t=L(),o=(0,Tn.useStore)(t,s=>s.metadata),n=(0,Tn.useStore)(t,s=>s.tool.requestId),r=e||n,i=(0,Tn.useStore)(t,s=>s.setMetadata),a=(0,Ws.useCallback)(s=>i(s,r||void 0),[i,r]);return[r?o[r]||{}:{},a]}var Us=require("zustand");function pc(e){let t=L(),o=(0,Us.useStore)(t,n=>n.tool.requestId);tt("polygons.start-transition",n=>{e.requestId&&o!==e.requestId||e?.onStart?.(n.transitionIntent)},[o,e.requestId]),tt("polygons.end-transition",n=>{e.requestId&&o!==e.requestId||e?.onEnd?.(n.transitionIntent,n.response)},[o,e.requestId]),tt("polygons.transition",n=>{e.requestId&&o!==e.requestId||e?.onTransition?.(n.transitionIntent)},[o,e.requestId])}var In=require("react"),_s=require("@iiif/helpers/events");function fc(e,t,o,n,r=[]){let i=w(),a=(0,In.useMemo)(()=>(0,_s.createEventsHelper)(i),[i]);(0,In.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,o,n),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...r])}function gc(e,t){let{id:o,isLoaded:n,error:r,resource:i,requestId:a,cached:s}=Dt(e,t);return{id:o,isLoaded:n,error:r,manifest:i,requestId:a,cached:s}}var pi=require("@iiif/parser/image-3");var Re=require("react");function fi({cacheKey:e}={}){let t=T(),o=Ne(),n=w(),r=wt(),i=Ea(),[a,s]=(0,Re.useState)(void 0),[l,c]=(0,Re.useState)(!1),[m,u]=(0,Re.useState)("idle"),[d,g]=(0,Re.useState)(void 0),v=t?t.id:"undefined",p=(0,Re.useMemo)(()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),b=(0,pi.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)}},[v,e,t]),R=m==="success"&&a?a:p;return(0,Re.useEffect)(()=>{(async()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),b=(0,pi.getImageServices)(f)[0];if(!b)return;c(!0),u("loading");try{let C=await i(b,{width:b.width||t.width,height:b.height||t.height})||void 0;s(C),u("success"),c(!1)}catch(C){u("error"),g(C)}}}catch(y){u("error"),g(y)}})()},[v,e]),(0,Re.useMemo)(()=>({data:R,isFetching:l,status:m,error:d}),[R,l,m,d])}function hc(){let e=fi();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 wn=require("react");var Ys=require("@iiif/helpers");function yc({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=w(),o=T(),n=Ne(),r=(0,wn.useMemo)(()=>(0,Ys.createPaintingAnnotationsHelper)(t),[t]),i=(0,wn.useMemo)(()=>r.getPaintables(n),[r,n]);return(0,wn.useMemo)(()=>xo({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}var Ks=require("@iiif/helpers/styles"),js=require("react");function vc(){let e=w();return(0,js.useMemo)(()=>(0,Ks.createStylesHelper)(e),[e])}function Sc(e,t){let{x:o,y:n,width:r,height:i}=e,{x:a,y:s}=t,{width:l,height:c}=t;return o+r>a&&o<a+l&&n+i>s&&n<s+c}var Gs=Q(require("tiny-invariant"),1);function xc(e,t){let o=e.boundingBox||Be(e.polygon);if(e.polygon&&!Ct(e.polygon.points)){let n=e.target||Rt(e.polygon,t);return(0,Gs.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}}