react-iiif-vault 2.0.10 → 2.0.11
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 sl=Object.create;var Eo=Object.defineProperty;var ll=Object.getOwnPropertyDescriptor;var cl=Object.getOwnPropertyNames;var ul=Object.getPrototypeOf,ml=Object.prototype.hasOwnProperty;var dl=(e,t)=>{for(var o in t)Eo(e,o,{get:t[o],enumerable:!0})},Mo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of cl(t))!ml.call(e,r)&&r!==o&&Eo(e,r,{get:()=>t[r],enumerable:!(n=ll(t,r))||n.enumerable});return e},b=(e,t,o)=>(Mo(e,t,"default"),o&&Mo(o,t,"default")),Z=(e,t,o)=>(o=e!=null?sl(ul(e)):{},Mo(t||!e||!e.__esModule?Eo(o,"default",{value:e,enumerable:!0}):o,e)),pl=e=>Mo(Eo({},"__esModule",{value:!0}),e);var x={};dl(x,{AnnotationContext:()=>gc,AnnotationPageContext:()=>hc,AnnotationStyleProvider:()=>kl,AtlasStoreProvider:()=>It,AtlasStoreReactContext:()=>rt,Auth:()=>jn,AuthProvider:()=>Yn,AuthRContext:()=>et,AuthReactContext:()=>Di,AuthReactContextActions:()=>Fi,CanvasAnnotations:()=>rc,CanvasContext:()=>de,CanvasPanel:()=>_,CanvasStrategyProvider:()=>oi,CanvasWorldObject:()=>ii,CollectionContext:()=>yc,CombinedMetadata:()=>ic,ComplexTimelineProvider:()=>Tr,ContextBridge:()=>mo,ControlsReactContext:()=>to,CreateCustomShape:()=>ci,CustomContextBridge:()=>ps,CustomContextBridgeProvider:()=>$l,DEFAULT_BEZIER:()=>ko,DEFAULT_POLL_INTERVAL:()=>xi,DefaultEditingTools:()=>xs,EASING_PRESETS:()=>bi,EventEmitterProvider:()=>Tl,EventsProvider:()=>Fl,Image:()=>_s,ImageService:()=>sc,ImageServiceLoaderContext:()=>ka,InnerViewerProvider:()=>ji,LanguageProvider:()=>Ol,LanguageString:()=>Ya,LocaleString:()=>ue,ManifestContext:()=>zn,ManifestMetadata:()=>cc,MediaPlayerProvider:()=>Jt,Metadata:()=>To,PolygonSelector:()=>nc,RangeContext:()=>On,ReactEmitterContext:()=>Ho,ReactEventContext:()=>ft,ReactVaultContext:()=>Be,RegionHighlight:()=>lr,Render3DModelStrategy:()=>gr,RenderAccompanyingCanvas:()=>hr,RenderAnnotation:()=>at,RenderAnnotationEditing:()=>Wr,RenderAnnotationPage:()=>Fe,RenderAnnotationStrategy:()=>br,RenderAudioStrategy:()=>Pr,RenderComplexTimelineStrategy:()=>Vr,RenderEmptyStrategy:()=>Lr,RenderImageStrategy:()=>zr,RenderSvgEditorControls:()=>fc,RenderTextualContentStrategy:()=>Or,RenderVideoStrategy:()=>Br,RenderYouTubeStrategy:()=>Hr,ResizeWorldItem:()=>ar,ResourceProvider:()=>ne,ResourceReactContext:()=>Ft,SelectorControllerProvider:()=>ec,SequenceThumbnails:()=>dc,SimpleViewerProvider:()=>Qn,SimpleViewerReactContext:()=>Pt,SingleCanvasThumbnail:()=>gi,StrategyReactContext:()=>We,ThumbnailFallbackImage:()=>mt,TranslationProvider:()=>zl,TransliterationProvider:()=>ql,VaultProvider:()=>Ie,ViewerPresetContext:()=>Ce,VirtualAnnotationProvider:()=>xr,VisibleCanvasReactContext:()=>Ze,annotationResponseToSelector:()=>Lc,authDetailsForResource:()=>Wn,buildTransitions:()=>Ri,createAtlasStore:()=>Zn,createAuthStateStore:()=>Fn,createProbe:()=>$n,cubicBezierEasing:()=>Dt,defaultEmitter:()=>ms,defaultSvgTheme:()=>ss,emptyActions:()=>Ur,emptyStrategy:()=>_r,findAllCanvasesInRange:()=>Lo,findFirstCanvasFromRange:()=>zi,findManifestSelectedRange:()=>gl,findSelectedRange:()=>qn,flattenAnnotationPageIds:()=>Yr,formatTime:()=>Wo,get3dStrategy:()=>Gr,getAtlasStoreByName:()=>tr,getComplexTimelineStrategy:()=>Zr,getDefaultAnnotationStyles:()=>or,getImageStrategy:()=>xo,getManifestSequence:()=>zo,getParsedTargetSelector:()=>go,getRenderingStrategy:()=>Ro,getStepFromProgress:()=>Pi,getTextualContentStrategy:()=>bo,getVideoStrategy:()=>Co,getVisibleCanvasesFromCanvasId:()=>hl,hasAuth:()=>yl,interpolateRect:()=>Ci,isBoxSelector:()=>Il,isRectangle:()=>At,isSvgSelector:()=>Xi,makeAccessServiceRequest:()=>Hn,makeAccessTokenRequest:()=>Oo,parseSpecificResource:()=>Wl,polygonToTarget:()=>Tt,requestToAnnotationResponse:()=>jt,seraliseSupportedSelector:()=>Do,svgThemes:()=>Jl,targetIntersects:()=>Vc,unknownResponse:()=>ho,unsupportedStrategy:()=>B,useAnnotation:()=>Qt,useAnnotationPage:()=>cr,useAnnotationPageManager:()=>vo,useAnnotationStyles:()=>Gt,useAnnotationsAtTime:()=>vc,useAtlasContextMenu:()=>fo,useAtlasStore:()=>q,useAuthActions:()=>$i,useAuthService:()=>Wi,useAuthStore:()=>Ct,useAuthToken:()=>Sl,useAuthTokens:()=>Un,useCanvas:()=>T,useCanvasChoices:()=>Sc,useCanvasClock:()=>xc,useCanvasSequence:()=>Bn,useCanvasStartTime:()=>eo,useCanvasSubset:()=>bc,useClosestLanguage:()=>ja,useCollection:()=>Cc,useComplexTimeline:()=>Ll,useContextBridge:()=>uo,useContextMenuStore:()=>vs,useCreateLocaleString:()=>Bl,useCurrentAnnotationActions:()=>Rc,useCurrentAnnotationMetadata:()=>Pc,useCurrentAnnotationRequest:()=>$r,useCurrentAnnotationTransition:()=>Ac,useCurrentAuth:()=>vl,useCustomContextBridge:()=>co,useDispatch:()=>yr,useEmitter:()=>Xn,useEvent:()=>nt,useEventEmitter:()=>so,useEventListener:()=>Tc,useExistingVault:()=>we,useExternalCollection:()=>Ic,useExternalManifest:()=>Ln,useExternalResource:()=>Wt,useIIIFLanguage:()=>tn,useImage:()=>An,useImageService:()=>Si,useImageServiceLoader:()=>oo,useImageTile:()=>wc,useIsAuthEnabled:()=>Kn,useLoadImageService:()=>So,useLocaleString:()=>Ga,useManifest:()=>$,useMediaActions:()=>El,useMediaElements:()=>Nl,useMediaState:()=>Ml,usePaintables:()=>jr,usePaintingAnnotations:()=>ze,usePolygonHelper:()=>Dr,useRange:()=>Ut,useRemoteStylesheet:()=>rr,useRenderControls:()=>re,useRenderingStrategy:()=>ei,useRequestAnnotation:()=>li,useResourceContext:()=>J,useResourceEvents:()=>Xt,useResources:()=>Kr,useSearchService:()=>Gn,useSelectorController:()=>di,useSelectorEmitter:()=>tc,useSelectorEvents:()=>mi,useSelectorHelper:()=>oc,useSimpleMediaPlayer:()=>st,useSimpleViewer:()=>tt,useStaticRenderingStrategy:()=>kc,useStrategy:()=>H,useStyleHelper:()=>Mc,useStyles:()=>it,useStylesheetStore:()=>ra,useSvgEditor:()=>Fr,useSvgEditorControls:()=>hi,useThumbnail:()=>Ne,useTranslations:()=>wr,useTransliteration:()=>Ir,useVault:()=>k,useVaultEffect:()=>Cr,useVaultSelector:()=>z,useViewerPreset:()=>ro,useViewportScroll:()=>Nc,useViewportTour:()=>Ec,useVirtualAnnotationPage:()=>vr,useVirtualAnnotationPageContext:()=>Sr,useVisibleCanvases:()=>Je});module.exports=pl(x);b(x,require("@iiif/helpers/annotation-targets"),module.exports);var ht=require("react");var St=Z(require("react"),1),Ai=require("react/jsx-runtime"),fl={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ft=St.default.createContext(fl),J=()=>(0,St.useContext)(Ft);function ne({value:e,children:t}){let o=J(),n=(0,St.useMemo)(()=>({...o,...e}),[e,o]);return(0,Ai.jsx)(Ft.Provider,{value:n,children:t})}var Ti=require("react/jsx-runtime");function de({canvas:e,children:t}){return(0,Ti.jsx)(ne,{value:{canvas:e},children:t})}var No=Z(require("react"),1),$t=require("@iiif/helpers/vault");var Vn=require("react/jsx-runtime"),Be=No.default.createContext({vault:null,setVaultInstance:e=>{}});function Ie({vault:e,vaultOptions:t,useGlobal:o,resources:n,children:r}){let[i,a]=(0,No.useState)(()=>e||(o?(0,$t.globalVault)(t):t?new $t.Vault(t):new $t.Vault));return(0,Vn.jsx)(Be.Provider,{value:{vault:i,setVaultInstance:a},children:(0,Vn.jsx)(ne,{value:n||{},children:r})})}var wi=require("react"),ki=Z(require("react"),1);var Ii=require("react"),k=()=>{let{vault:e}=(0,Ii.useContext)(Be);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Vo=require("react");function z(e,t=[]){let o=k(),[n,r]=(0,Vo.useState)(()=>e(o.getState(),o));return(0,Vo.useEffect)(()=>o.subscribe(i=>e(i,o),i=>{r(i)},!1),t),n}var Ze=ki.default.createContext([]);function Je(){let e=(0,wi.useContext)(Ze);return z(t=>e.map(o=>t.iiif.entities.Canvas[o]).filter(Boolean),[e])}var Mi=require("@iiif/helpers/vault"),Ei=require("react");function we(e){let t=(0,Ei.useContext)(Be);return e||(t&&t.vault?t.vault:(0,Mi.globalVault)())}var Ni=require("react");function $(e={},t=[]){let{id:o,selector:n}=e,r=J(),i=k(),a=o||r.manifest,s=z(l=>a?l.iiif.entities.Manifest[a]:void 0,[a]);return(0,Ni.useMemo)(()=>{if(s)return n?n(s):s},[s,n,...t])}var Ki=require("react"),Bo=require("react");var He=require("react");function Wt(e,{noCache:t=!1}={}){let o=typeof e=="string"?e:e.id,n=we(),[r,i]=(0,He.useState)(o),[a,s]=(0,He.useState)(void 0),l=(0,He.useMemo)(()=>n.get(o,{skipSelfReturn:!0})||void 0,[o,n]),[c,u]=(0,He.useState)(l);return(0,He.useEffect)(()=>{(async()=>{try{let m=l&&!t?l:await n.load(o),d=m?m.id||m["@id"]:null;m&&r!==d&&i(d),u(m)}catch(m){s(m)}})()},[o,t]),{isLoaded:!!c,id:r,requestId:o,error:a,resource:c,cached:!!(c&&c===l)}}function Ln(e,t){let{id:o,isLoaded:n,error:r,resource:i,requestId:a,cached:s}=Wt(e,t);return{id:o,isLoaded:n,error:r,manifest:i,requestId:a,cached:s}}var Vi=require("react/jsx-runtime");function zn({manifest:e,children:t}){return(0,Vi.jsx)(ne,{value:{manifest:e},children:t})}var Li=require("react/jsx-runtime");function On({range:e,children:t}){return(0,Li.jsx)(ne,{value:{range:e},children:t})}function zi(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=zi(e,e.get(o));if(n)return n}}return null}function Lo(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(...Lo(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 gl(e,t,o){for(let n of t.structures){let r=qn(e,e.get(n),o);if(r)return r}return null}function qn(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=qn(e,e.get(n),o);if(i)return i}}return null}function hl(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"),u=a.includes("facing-pages"),m=a.includes("non-paged");if(u||m||c||n)return[{id:i.id,type:"Canvas"}];let[d,f]=zo(e,t);if(l)return d;let h=d.findIndex(p=>p.id===o);if(h===-1)return[];for(let p of f)if(p.includes(h))return p.map(S=>d[S]);return[{id:i.id,type:"Canvas"}]}function zo(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:Lo(e,t);if(a)return[l,[l.map((h,p)=>p)]];if(s||!i||o)return[l,l.map((h,p)=>[p])];let c=[],u=[],m=()=>{u.length&&(c.push([...u]),u=[])},d=0,f=!1;for(let h=0;h<l.length;h++){let p=e.get(l[h]);if(p.behavior.includes("non-paged")){h===d&&d++,n||(m(),c.push([h]),m());continue}if(h===d||p.behavior.includes("facing-pages")){u.length&&(f=!0),m(),c.push([h]),m();continue}if(u.push(h),f){m(),f=!1;continue}u.length>1&&m()}return u.length&&m(),[l,c]}var ye=require("react");var Oi=require("react");function Ut(e={},t=[]){let{id:o,selector:n}=e,r=J(),i=o||r.range,a=z(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Oi.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}function Bn({startCanvas:e,disablePaging:t}){let o=k(),n=$(),r=Ut(),[i,a]=(0,ye.useState)(void 0),s=r||n;if(!s)throw new Error("Nothing selected");let[l,c]=(0,ye.useMemo)(()=>zo(o,s,{disablePaging:t}),[o,s,t]),u=(0,ye.useRef)(c);if(u.current!==c){let S=u.current[i][0],v=c.findIndex(g=>g.includes(S));u.current=c,a(v)}let m=(0,ye.useCallback)(p=>{let S=c.findIndex(v=>v.includes(p));a(S===-1?0:S)},[l,c]),d=(0,ye.useCallback)(p=>{let S=l.findIndex(v=>v.id===p);S!==-1?m(S):a(0)},[l,c]),f=(0,ye.useCallback)(()=>{a(p=>p>=c.length-1?p:p+1)},[c]),h=(0,ye.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:m,setCanvasId:d,next:f,previous:h}}var Se=require("react"),bt=require("zustand");var Dn=require("zustand/vanilla");function yl(e){let t=e.service||e.services||[];for(let o of t)if(o.type==="AuthProbeService2")return!0;return!1}function ve(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 Fn=()=>(0,Dn.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:ve(o.id,t().authItems,r=>({...r,isPending:!0}))})),Hn(o.service).then(()=>{Oo(n).then(r=>{let i=r.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ve(o.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:a}}))}))}).catch(r=>{e(()=>({authItems:ve(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=${qi()}`,i=window.open(r);e(()=>({authItems:ve(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:ve(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");Oo(r).then(s=>{e(()=>({authItems:ve(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(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:ve(o.id,t().authItems,s=>({...s,isPending:!0}))})),Hn(i).then(()=>{Oo(r).then(s=>{e(()=>({authItems:ve(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(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:ve(o.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),$n=(e,t)=>(0,Dn.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 Wn(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 Oo(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 u=c.data;if(u.messageId===r){if(t&&u.type!=="AuthAccessToken2"){s(),n("Invalid response, expected type=AuthAccessToken2");return}if(!u.accessToken){s(),n("Invalid response, expected accessToken");return}s(),o(u)}},s=()=>window.removeEventListener("message",a),l=document.createElement("iframe");l.src=i,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",a)})}function qi(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 Hn(e){let t=`${e.id}?origin=${qi()}`,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 xt=require("react");var Bi=require("zustand");function Hi(e){let t=(0,xt.useMemo)(()=>Wn(e),[e]),o=Un(t.services.access?.id),n=(0,xt.useMemo)(()=>$n(t.services.probe,o),[t.services.probe]),r=(0,Bi.useStore)(n);return(0,xt.useEffect)(()=>{r.status==="unknown"&&!o&&r.probe()},[t.services.probe,r.status]),(0,xt.useEffect)(()=>{o&&(r.setToken(o),r.probe())},[o]),[e,r,t.hasAuth]}var _t=require("react/jsx-runtime"),et=(0,Se.createContext)(null),Di=(0,Se.createContext)(null);Di.displayName="CurrentAuth";var Fi=(0,Se.createContext)(null);Fi.displayName="AuthActions";function Yn({children:e}){let t=(0,Se.useMemo)(()=>Fn(),[]);return(0,_t.jsx)(et.Provider,{value:t,children:e})}function Kn(){return!!(0,Se.useContext)(et)}function Ct(){let e=(0,Se.useContext)(et);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function $i(){let e=Ct();return(0,bt.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 vl(){let e=Ct();return(0,bt.useStore)(e,t=>t)}function Wi(e){let t=Ct();return(0,bt.useStore)(t,n=>n.authItems.find(r=>r.service.id===e))}function Un(e){let t=Ct();return(0,bt.useStore)(t,n=>n.authItems.find(r=>r.id===e)?.session?.token)}function Sl(e){let t=Ct();return(0,bt.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 xl(e){let t=$i(),o=Wi(e.service.id);return(0,Se.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),o?(o.error||!o.isLoggedIn,e.children):null}function _n(){return null}function jn(e){let[t,o,n]=Hi(e.resource),r=e.fallbackComponent||_n,i=e.loadingComponent||_n,a=e.errorComponent||_n,s=o.service,l=null;if(!n||!s)return e.children(t);let c=s.service.filter(u=>u.type==="AuthAccessService2");o.status==="error"&&(l=(0,_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 u of c)l=(0,_t.jsx)(xl,{service:u,probeId:s.id,children:l},u.id);return l}var Yt=require("react");var Ui=require("zustand/vanilla"),bl=e=>e.id||e["@id"];function Cl(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 _i=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?bl(t):void 0,n=null;return(0,Ui.createStore)((r,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Cl(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 u=await c.json();r({resources:u.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(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 Rl=require("zustand");function Gn(){let e=$();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var qo=require("react/jsx-runtime"),Rt=(0,Yt.createContext)(null);Rt.displayName="Search";function Yi(e){let t=Gn();return e.store?(0,qo.jsx)(Rt.Provider,{value:e.store,children:e.children}):(0,qo.jsx)(Pl,{service:t,children:e.children})}function Pl({service:e,children:t}){let o=(0,Yt.useMemo)(()=>_i(e),[e]);return(0,qo.jsx)(Rt.Provider,{value:o,children:t})}var se=require("react/jsx-runtime"),Kt=()=>{},Pt=(0,Bo.createContext)({setCurrentCanvasId:Kt,setCurrentCanvasIndex:Kt,nextCanvas:Kt,previousCanvas:Kt,items:[],sequence:[],setSequenceIndex:Kt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function ji(e){let t=$(),{cursor:o,visibleItems:n,next:r,sequence:i,items:a,setCanvasIndex:s,setCanvasId:l,previous:c,setSequenceIndex:u,hasNext:m,hasPrevious:d}=Bn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),f=(0,Bo.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:c,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:u,currentSequenceIndex:o,hasNext:m,hasPrevious:d}),[i,a,l,r,c,a,s,u,o]);return t?n.length===0?null:(0,se.jsx)(Pt.Provider,{value:f,children:(0,se.jsx)(Ze.Provider,{value:n,children:(0,se.jsx)(de,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,se.jsx)("div",{children:"Sorry, something went wrong."}))}function Qn(e){let t=we(e.vault),o=Ln(e.manifest);if(!o)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,se.jsx)("div",{children:"Sorry, something went wrong."});if(o.error)return(0,se.jsx)("div",{children:o.error.toString()});if(!o.isLoaded)return(0,se.jsx)("div",{children:"Loading..."});let n=(0,se.jsx)(ji,{...e,children:e.children});return(0,se.jsx)(Ie,{vault:t,children:(0,se.jsx)(zn,{manifest:o.id,children:(0,se.jsx)(Yn,{children:(0,se.jsx)(Yi,{children:e.rangeId?(0,se.jsx)(On,{range:e.rangeId,children:n}):n})})})})}function tt(){return(0,Ki.useContext)(Pt)}var ea=require("@atlas-viewer/atlas"),ke=require("react"),ta=require("zustand");var Gi=Z(require("mitt"),1),ot=require("react"),Qi=require("react/jsx-runtime"),Al=(0,Gi.default)(),Ho=(0,ot.createContext)(Al);function Tl({children:e,emitter:t}){return(0,Qi.jsx)(Ho.Provider,{value:t,children:e})}function Xn(){return(0,ot.useContext)(Ho)}function nt(e,t,o=[]){let n=(0,ot.useContext)(Ho);(0,ot.useEffect)(()=>{let r=i=>{t(i)};return n.on(e,r),()=>{n.off(e,r)}},[n,e,...o])}var Zi=require("polygon-editor"),Ji=require("zustand/vanilla");function At(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 De(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 Xi(e){return e.type==="SvgSelector"}function Il(e){return e.type==="BoxSelector"}function Do(e,t){if(Xi(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(u=>u.join(",")).join(" ")}" /></svg>`}}return{type:"SvgSelector",value:`<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g><path d='M${e.points.map(s=>s.join(",")).join(" ")}${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 Tt(e,t){if(!e||!e.points.length)return null;if(At(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 Do({type:"BoxSelector",spatial:{x:r,y:i,width:a,height:s}},t)}return Do({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function jt(e){if(e.type==="polygon"&&!e.noBox&&e.points&&At(e.points)){let o=De({open:!1,points:e.points||[]});return jt({...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:De({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Tt({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:Tt({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 wl={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 Zn({events:e,enabledTools:t,keyboardShortcutMapping:o,keyboardShortcutsEnabled:n=!1,debug:r}){let i=(0,Ji.createStore)((s,l)=>{let c=null,m=(0,Zi.createHelper)({emitter:e,keyboardShortcutsEnabled:n,keyboardShortcutMapping:o,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(f=>({polygonState:{...f.polygonState,...d}}))}},d=>{s(f=>f.tool.requestId?{polygon:{...d,id:f.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},runtime:null,requestType:null,requests:{},history:m.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:m,polygonState:wl,setMetadata:(d,f)=>{let h=f||l().tool.requestId;h&&s(p=>({metadata:{...p.metadata,[h]:{...p.metadata[h]||{},...d}}}))},setToolCanvasId:d=>{s(f=>({tool:{...f.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&&(m.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(f=>({validRequestIds:[...f.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(f=>({tool:f.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:f.tool,validRequestIds:f.validRequestIds.filter(h=>h!==d)}))}}},cancelRequest:d=>{let f=d||l().tool.requestId;f&&(s(h=>({mode:"explore",tool:h.tool.requestId===f?{enabled:!1,requestId:null,canvasId:null}:h.tool,validRequestIds:h.validRequestIds.filter(p=>p!==f)})),e.emit("atlas.request-cancelled",{id:f}))},requestAnnotation:async(d,f)=>{let p={...l().requests,[f.requestId]:d},S=jt(d);r&&console.log("requestAnnotation",{response:S,request:d});try{let{points:v=[],open:g=!0}=S.polygon||{},{requestId:y,canvasId:C=null,toolId:R}=f,P=R,A=l(),I=A.validRequestIds.includes(y),O=S.requestType;return r&&console.log("setting points",{requestType:O,points:v,open:g}),!I||A.tool.enabled?null:(m.setShape({id:y,points:v,open:g}),O==="polygon"&&(P=P||"pen",m.tools.setTool("pen")),O==="draw"&&(P=P||"draw",m.tools.setTool("pencil")),O==="box"&&(P=P||"box",m.tools.setTool("box")),O==="target"?(P=P||"box",m.tools.setTool("box"),m.lockAspectRatio(),m.tools.lockToolSwitching(),m.tools.setCanDeselect(!1),m.tools.setCanDelete(!1)):(m.tools.unlockToolSwitching(),m.tools.setCanDeselect(!0),m.tools.setCanDelete(!0)),d.bounds&&m.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:y}),s({polygon:{id:y,points:v,open:g},mode:"sketch",requestType:O,tool:{enabled:!0,requestId:y,canvasId:C},requests:p}),P?A.switchTool[P]?.():v.length===0&&A.switchTool.box(),(typeof d.selectByDefault>"u"&&v.length&&O==="box"||d.selectByDefault)&&A.switchTool.pointer(),new Promise(G=>{let M=w=>{w.id===y&&(s(N=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(N.requests).filter(([V])=>V!==y))})),e.off("atlas.request-cancelled",M),e.off("atlas.annotation-completed",L),G(null))},L=w=>{w.id===y&&(s(N=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(N.requests).filter(([V])=>V!==y))})),e.off("atlas.annotation-completed",L),e.off("atlas.request-cancelled",M),G(w))};e.on("atlas.request-cancelled",M),e.on("atlas.annotation-completed",L)}))}catch(v){return console.error(v),null}},completeRequest:d=>{let f=l().tool.requestId;if(typeof d=="string"&&d&&d!==f)return;let h=f?l().requests[f]?.arguments||{}:{},p=f?l().metadata[f]||{}:{},S=l().polygonState.bounds,v=l().polygon;v&&(e.emit("atlas.annotation-completed",{id:v.id,polygon:v,requestType:l().requestType,target:Tt(v,S),canvasId:l().tool.canvasId,boundingBox:De(v),metadata:p,arguments:{...h}}),m.setShape(null))},setAtlasRuntime:d=>{c=d,e.emit("atlas.ready",{runtime:d}),a.setScale(1/c._lastGoodScale),c.world.addLayoutSubscriber((f,h)=>{(f==="event-activation"||f==="zoom-to"||f==="go-home")&&c?._lastGoodScale&&!Number.isNaN(c._lastGoodScale)&&a.setScale(1/c._lastGoodScale)}),s({runtime:c})},clearAtlasRuntime:()=>{c=null,s({stableViewport:null,runtime:null})},setCanvasRelativePosition:(d,f)=>{s(h=>({canvasRelativePositions:{...h.canvasRelativePositions,[d]:f}}))},clearCanvasRelativePosition:d=>{s(f=>{let h={...f.canvasRelativePositions};return delete h[d],{canvasRelativePositions:h}})},changeMode:d=>{s({mode:d})},nudgeLeft:d=>{if(!c)return;let f=c.getViewport(),h=d??f.width*.1;c.world.gotoRegion({x:f.x-h,y:f.y,width:f.width,height:f.height,nudge:!0})},nudgeRight:d=>{if(!c)return;let f=c.getViewport(),h=d??f.width*.1;c.world.gotoRegion({x:f.x+h,y:f.y,width:f.width,height:f.height,nudge:!0})},nudgeUp:d=>{if(!c)return;let f=c.getViewport(),h=d??f.height*.1;c.world.gotoRegion({x:f.x,y:f.y-h,width:f.width,height:f.height,nudge:!0})},nudgeDown:d=>{if(!c)return;let f=c.getViewport(),h=d??f.height*.1;c.world.gotoRegion({x:f.x,y:f.y+h,width:f.width,height:f.height,nudge:!0})},zoomIn:()=>{c?.world?.zoomIn()},zoomOut:()=>{c?.world?.zoomOut()},goHome:()=>{c?.world?.goHome()},goToRegion:d=>{c?.world?.gotoRegion(d)},getRuntime:()=>c}}),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 er=require("react/jsx-runtime"),rt=(0,ke.createContext)(null);function q(){return(0,ke.useContext)(rt)}var Jn={};function tr(e="atlas"){return Jn[e]?.getState()}function It({children:e,name:t="atlas",existing:o,atlasStoreConfig:n}){let r=Xn(),i=(0,ke.useContext)(rt),a=(0,ke.useMemo)(()=>o||i||Zn({events:r,...n||{}}),[r,o,i]),s=(0,ta.useStore)(a,l=>l.mode);return(0,ke.useEffect)(()=>{let l=t;return l&&(Jn[l]=a),()=>{l&&delete Jn[l]}},[a,t]),(0,er.jsx)(rt.Provider,{value:a,children:(0,er.jsx)(ea.ModeContext.Provider,{value:s||"explore",children:e})})}var Zt=require("@atlas-viewer/atlas"),da=require("react");var wt=require("react"),oa=require("react/jsx-runtime");function or(){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 nr=(0,wt.createContext)(or());nr.displayName="AnnotationStyle";function Gt(){return(0,wt.useContext)(nr)}function kl({theme:e,children:t}){let o=(0,wt.useMemo)(()=>e||or(),[e]);return(0,oa.jsx)(nr.Provider,{value:o,children:t})}var ia=require("@iiif/helpers/annotation-targets"),aa=require("react");var kt=require("react"),na=require("zustand"),ra=(0,na.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 rr(e){let[t,o]=(0,kt.useState)(""),{loading:n,errors:r,stylesheets:i,parseStylesheet:a}=ra();return(0,kt.useEffect)(()=>{e&&a(e).then(l=>{l?.id&&o(l.id)})},[e,a]),[(0,kt.useMemo)(()=>{let l={};return t&&i[t]&&(l[t]=i[t]),l},[t,i]),{id:t,stylesheets:i,loading:n,errors:r}]}function Qt(e={},t=[]){let{id:o,selector:n}=e,r=J(),i=k(),a=o||r.annotation,s=z(u=>a?u.iiif.entities.Annotation[a]:void 0,[a]),[l]=rr(s?.stylesheet),c=z(u=>s&&s.body?s.body.map(m=>m?m.type==="SpecificResource"?{...m,source:i.get(m)}:m?u.iiif.entities[m.type][m.id]:null:null).filter(Boolean):[],[s]);return(0,aa.useMemo)(()=>{if(!s)return;let u={...s,body:c,target:(0,ia.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping,loadedStylesheets:l})};return n?n(u):u},[s,n,c,l,...t])}var sa=require("react");function T(e={},t=[]){let{id:o,selector:n}=e,r=J(),i=o||r.canvas,a=z(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,sa.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}var ir=require("react"),la=require("@iiif/helpers/events");function Xt(e,t){let o=k(),n=(0,ir.useMemo)(()=>(0,la.createEventsHelper)(o),[o]),r=z(()=>e&&e.id?o.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,ir.useMemo)(()=>e?n.getListenersAsProps(e,t):{},[r,e,o,t])}var ca=require("react"),ua=require("@iiif/helpers/styles");function it(e,t){let o=k(),n=(0,ca.useMemo)(()=>(0,ua.createStylesHelper)(o),[o]);return z(()=>{if(!e)return null;let r=n.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var ma=require("react");var Fo=require("@atlas-viewer/atlas"),Ae=require("react"),W=require("react/jsx-runtime");function ar({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:u,mouseEvent:m,isEditing:d}=(0,Fo.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:a,maintainAspectRatio:r},o),f=(0,Ae.useMemo)(()=>m("translate"),[m]),h=(0,Ae.useMemo)(()=>m("east"),[m]),p=(0,Ae.useMemo)(()=>m("west"),[m]),S=(0,Ae.useMemo)(()=>m("south"),[m]),v=(0,Ae.useMemo)(()=>m("north"),[m]),g=(0,Ae.useMemo)(()=>m("south-east"),[m]),y=(0,Ae.useMemo)(()=>m("south-west"),[m]),C=(0,Ae.useMemo)(()=>m("north-east"),[m]),R=(0,Ae.useMemo)(()=>m("north-west"),[m]),P=u==="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,W.jsx)(W.Fragment,{children:(0,W.jsxs)("world-object",{...s,children:[n,P&&t?(0,W.jsx)(Fo.HTMLPortal,{ref:c,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:P&&t?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("div",{onMouseDown:f,onTouchStart:f,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,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("div",{title:"east",onTouchStart:h,onMouseDown:h,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,W.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,W.jsx)("div",{title:"north",onMouseDown:v,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,W.jsx)("div",{title:"south",onMouseDown:S,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,W.jsx)("div",{title:"north-east",onMouseDown:C,style:{...A,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,W.jsx)("div",{title:"south-east",onMouseDown:g,style:{...A,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,W.jsx)("div",{title:"south-west",onMouseDown:y,style:{...A,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,W.jsx)("div",{title:"north-west",onMouseDown:R,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 sr=require("react/jsx-runtime");function lr({id:e,interactive:t,region:o,onClick:n,onHover:r,onSave:i,aspectRatio:a,maintainAspectRatio:s,disableCardinalControls:l,isEditing:c,style:u={backgroundColor:"rgba(0,0,0,.5)"}}){let m=(0,ma.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,sr.jsx)(ar,{id:e,x:o.x,y:o.y,width:o.width,aspectRatio:a,height:o.height,resizable:c,onSave:m,maintainAspectRatio:s,disableCardinalControls:l,children:(0,sr.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:u})})}var pa=require("react/jsx-runtime"),at=({id:e,style:t,className:o,interactive:n,targetId:r,ignoreTargetId:i})=>{let a=Qt({id:e}),s=it(a,"atlas"),l=it(a,"html"),c=Xt(a,["atlas"]),u=T(),m=Gt(),d=(0,da.useMemo)(()=>(0,Zt.mergeStyles)((0,Zt.mergeStyles)((0,Zt.mergeStyles)((0,Zt.mergeStyles)(t,s),a?.motivation?.includes("highlighting")?m.highlighted:m.default),a?.target?.selector?.boxStyle||{})),[t,s,m,a?.motivation,a?.target]),f=r||u?.id;return u&&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===f||a.target.source===f)?(0,pa.jsx)(lr,{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 ga=require("react");var fa=require("react");function cr(e={},t=[]){let{id:o,selector:n}=e,r=J(),i=o||r.annotationPage,a=z(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,fa.useMemo)(()=>{if(a)return n?n(a):a},[a,...t])}var ur=require("react/jsx-runtime"),Fe=({className:e,page:t,targetId:o,ignoreTargetId:n})=>{let r=cr({id:t.id})||t,i=it(r,"atlas"),a=it(r,"html");return z(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,ur.jsx)(ga.Fragment,{children:r.items?.map(s=>(0,ur.jsx)(at,{id:s.id,style:i,className:a?.className||e,targetId:o,ignoreTargetId:n},s.id))})};var $e=require("react"),$o=require("react/jsx-runtime"),ha=(0,$e.createContext)(null),ya=(0,$e.createContext)(null),va=(0,$e.createContext)(null);function Ml(){let e=(0,$e.useContext)(ha);if(!e)throw new Error("Ctx not found");return e}function El(){let e=(0,$e.useContext)(ya);if(!e)throw new Error("Ctx not found");return e}function Nl(){let e=(0,$e.useContext)(va);if(!e)throw new Error("Ctx not found");return e}function Jt({actions:e,state:t,children:o,currentTime:n,progress:r,element:i}){return(0,$o.jsx)(va.Provider,{value:{currentTime:n,progress:r,element:i},children:(0,$o.jsx)(ya.Provider,{value:e,children:(0,$o.jsx)(ha.Provider,{value:t,children:o})})})}var Sa=require("react");var xa=require("@iiif/helpers");function eo(){let e=$(),t=T();return(0,Sa.useMemo)(()=>{if(!e||!t||!e.start)return null;let o=(0,xa.expandTarget)(e.start);return!o||o.source.id!==t.id||!o||!o.selector||o.selector.type!=="TemporalSelector"?null:o.selector.temporal},[e,t])}var F=require("react");function ba(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Vl(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 Wo(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function st(e){let[t,o]=(0,F.useReducer)(Vl,ba(e.duration));(0,F.useEffect)(()=>{o({type:"RESET",state:ba(e.duration)})},[e.duration]);let n=(0,F.useRef)(null),r=(0,F.useRef)(null),i=(0,F.useRef)(null),a=(0,F.useRef)(!1),s=(0,F.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Wo(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,F.useCallback)(()=>{n.current&&(o({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{o({type:"PLAY"})}),s())},[s]),c=(0,F.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?l():u())},[s]),u=(0,F.useCallback)(()=>{n.current&&(n.current.pause(),o({type:"PAUSE"}),s())},[s]),m=(0,F.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(0,F.useCallback)(()=>{n.current&&(n.current.muted=!0,o({type:"MUTE"}))},[]),f=(0,F.useCallback)(()=>{n.current&&(n.current.muted=!1,o({type:"UNMUTE"}))},[]),h=(0,F.useCallback)(v=>{n.current&&(n.current.muted=!1,n.current.volume=v/100,o({type:"SET_VOLUME",volume:v}))},[]),p=(0,F.useCallback)(v=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(v*e.duration,e.duration)),s())},[]),S=(0,F.useCallback)(v=>{if(n.current){let g=typeof v=="function"?v(n.current.currentTime):v;n.current.currentTime=Math.max(0,Math.min(g,e.duration)),s()}},[]);return(0,F.useEffect)(()=>{let v=setInterval(()=>{s()},350);return()=>clearInterval(v)},[s,e.duration]),(0,F.useEffect)(()=>{let v=()=>{o({type:"FINISHED"})},g=n.current;return g?.addEventListener("ended",v),()=>g?.removeEventListener("ended",v)},[]),[{element:n,currentTime:r,progress:i},t,{play:l,pause:u,playPause:c,mute:d,unmute:f,toggleMute:m,setVolume:h,setDurationPercent:p,setTime:S}]}var lt=require("react"),mr=(0,lt.createContext)(()=>{}),dr=(0,lt.createContext)(()=>{});function Q(e,t,o,n,r=[]){let i=(0,lt.useContext)(e==="portal"?dr:mr);(0,lt.useEffect)(()=>(e!=="none"&&i(t,o,n),()=>{i(t,null)}),[t,e,i,...r])}var _o=require("react/jsx-runtime");function pr({media:e,startTime:t,children:o}){let[{element:n,currentTime:r,progress:i},a,s]=st({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,_o.jsxs)(Jt,{state:a,actions:s,currentTime:r,progress:i,element:n,children:[(0,_o.jsx)("audio",{ref:n,src:l}),o]},e.url)}function Uo({media:e,mediaControlsDeps:t,audioCopmonent:o=pr,children:n}){let r=eo();return Q("portal","audio",o,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var Yo=require("react"),We=(0,Yo.createContext)(null);We.displayName="Strategy";function H(){let e=(0,Yo.useContext)(We);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ue=require("react/jsx-runtime");function fr({model:e}){return(0,Ue.jsxs)(Ue.Fragment,{children:[(0,Ue.jsx)("style",{children:`
|
|
1
|
+
"use strict";var ul=Object.create;var En=Object.defineProperty;var ml=Object.getOwnPropertyDescriptor;var dl=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,fl=Object.prototype.hasOwnProperty;var gl=(e,t)=>{for(var n in t)En(e,n,{get:t[n],enumerable:!0})},Mn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of dl(t))!fl.call(e,r)&&r!==n&&En(e,r,{get:()=>t[r],enumerable:!(o=ml(t,r))||o.enumerable});return e},b=(e,t,n)=>(Mn(e,t,"default"),n&&Mn(n,t,"default")),Z=(e,t,n)=>(n=e!=null?ul(pl(e)):{},Mn(t||!e||!e.__esModule?En(n,"default",{value:e,enumerable:!0}):n,e)),hl=e=>Mn(En({},"__esModule",{value:!0}),e);var x={};gl(x,{AnnotationContext:()=>bc,AnnotationPageContext:()=>Cc,AnnotationStyleProvider:()=>Nl,AtlasStoreProvider:()=>It,AtlasStoreReactContext:()=>rt,Auth:()=>jo,AuthProvider:()=>Yo,AuthRContext:()=>et,AuthReactContext:()=>Di,AuthReactContextActions:()=>Fi,CanvasAnnotations:()=>uc,CanvasContext:()=>de,CanvasPanel:()=>_,CanvasStrategyProvider:()=>ni,CanvasWorldObject:()=>ii,CollectionContext:()=>Rc,CombinedMetadata:()=>mc,ComplexTimelineProvider:()=>Tr,ContextBridge:()=>dn,ControlsReactContext:()=>tn,CreateCustomShape:()=>ci,CustomContextBridge:()=>ps,CustomContextBridgeProvider:()=>_l,DEFAULT_BEZIER:()=>kn,DEFAULT_POLL_INTERVAL:()=>xi,DefaultEditingTools:()=>Rs,EASING_PRESETS:()=>bi,EventEmitterProvider:()=>kl,EventsProvider:()=>Ul,Image:()=>js,ImageService:()=>pc,ImageServiceLoaderContext:()=>ka,InnerViewerProvider:()=>ji,LanguageProvider:()=>Hl,LanguageString:()=>Ya,LocaleString:()=>ue,ManifestContext:()=>zo,ManifestMetadata:()=>gc,MediaPlayerProvider:()=>Jt,Metadata:()=>Tn,PolygonSelector:()=>cc,RangeContext:()=>Oo,ReactEmitterContext:()=>Hn,ReactEventContext:()=>ft,ReactVaultContext:()=>qe,RegionHighlight:()=>lr,Render3DModelStrategy:()=>gr,RenderAccompanyingCanvas:()=>hr,RenderAnnotation:()=>at,RenderAnnotationEditing:()=>Wr,RenderAnnotationPage:()=>Fe,RenderAnnotationStrategy:()=>br,RenderAudioStrategy:()=>Pr,RenderComplexTimelineStrategy:()=>Vr,RenderEmptyStrategy:()=>Lr,RenderImageStrategy:()=>zr,RenderSvgEditorControls:()=>xc,RenderTextualContentStrategy:()=>Or,RenderVideoStrategy:()=>qr,RenderYouTubeStrategy:()=>Hr,ResizeWorldItem:()=>ar,ResourceProvider:()=>re,ResourceReactContext:()=>Ft,SelectorControllerProvider:()=>ac,SequenceThumbnails:()=>vc,SimpleViewerProvider:()=>Qo,SimpleViewerReactContext:()=>Pt,SingleCanvasThumbnail:()=>gi,StrategyReactContext:()=>We,ThumbnailFallbackImage:()=>mt,TranslationProvider:()=>ql,TransliterationProvider:()=>Dl,VaultProvider:()=>Ie,ViewerPresetContext:()=>Ce,VirtualAnnotationProvider:()=>xr,VisibleCanvasReactContext:()=>Ze,annotationResponseToSelector:()=>Dc,authDetailsForResource:()=>Wo,buildTransitions:()=>Ri,createAtlasStore:()=>Zo,createAuthStateStore:()=>Fo,createProbe:()=>$o,cubicBezierEasing:()=>Dt,defaultEmitter:()=>ms,defaultSvgTheme:()=>ss,emptyActions:()=>Ur,emptyStrategy:()=>_r,findAllCanvasesInRange:()=>Ln,findFirstCanvasFromRange:()=>zi,findManifestSelectedRange:()=>vl,findSelectedRange:()=>Bo,flattenAnnotationPageIds:()=>Yr,formatTime:()=>Wn,get3dStrategy:()=>Gr,getAtlasStoreByName:()=>tr,getComplexTimelineStrategy:()=>Zr,getDefaultAnnotationStyles:()=>nr,getImageStrategy:()=>xn,getManifestSequence:()=>zn,getParsedTargetSelector:()=>gn,getRenderingStrategy:()=>Rn,getStepFromProgress:()=>Pi,getTextualContentStrategy:()=>bn,getVideoStrategy:()=>Cn,getVisibleCanvasesFromCanvasId:()=>Sl,hasAuth:()=>xl,interpolateRect:()=>Ci,isBoxSelector:()=>Ml,isRectangle:()=>At,isSvgSelector:()=>Xi,makeAccessServiceRequest:()=>Ho,makeAccessTokenRequest:()=>On,parseSpecificResource:()=>Gl,polygonToTarget:()=>Tt,requestToAnnotationResponse:()=>jt,seraliseSupportedSelector:()=>Dn,svgThemes:()=>ic,targetIntersects:()=>Hc,unknownResponse:()=>hn,unsupportedStrategy:()=>q,useAnnotation:()=>Qt,useAnnotationPage:()=>cr,useAnnotationPageManager:()=>vn,useAnnotationStyles:()=>Gt,useAnnotationsAtTime:()=>Pc,useAtlasContextMenu:()=>fn,useAtlasStore:()=>B,useAuthActions:()=>$i,useAuthService:()=>Wi,useAuthStore:()=>Ct,useAuthToken:()=>Cl,useAuthTokens:()=>Uo,useCanvas:()=>T,useCanvasChoices:()=>Ac,useCanvasClock:()=>Tc,useCanvasSequence:()=>qo,useCanvasStartTime:()=>en,useCanvasSubset:()=>Ic,useClosestLanguage:()=>ja,useCollection:()=>wc,useComplexTimeline:()=>Bl,useContextBridge:()=>mn,useContextMenuStore:()=>bs,useCreateLocaleString:()=>Fl,useCurrentAnnotationActions:()=>kc,useCurrentAnnotationMetadata:()=>Mc,useCurrentAnnotationRequest:()=>$r,useCurrentAnnotationTransition:()=>Ec,useCurrentAuth:()=>bl,useCustomContextBridge:()=>un,useDispatch:()=>yr,useEmitter:()=>Xo,useEvent:()=>ot,useEventEmitter:()=>ln,useEventListener:()=>Nc,useExistingVault:()=>we,useExternalCollection:()=>Vc,useExternalManifest:()=>Lo,useExternalResource:()=>Wt,useIIIFLanguage:()=>to,useImage:()=>Ao,useImageService:()=>Si,useImageServiceLoader:()=>nn,useImageTile:()=>Lc,useIsAuthEnabled:()=>Ko,useLoadImageService:()=>Sn,useLocaleString:()=>Ga,useManifest:()=>$,useMediaActions:()=>Ll,useMediaElements:()=>zl,useMediaState:()=>Vl,usePaintables:()=>jr,usePaintingAnnotations:()=>ze,usePolygonHelper:()=>Dr,useRange:()=>Ut,useRemoteStylesheet:()=>rr,useRenderControls:()=>ie,useRenderingStrategy:()=>ei,useRequestAnnotation:()=>li,useResourceContext:()=>J,useResourceEvents:()=>Xt,useResources:()=>Kr,useSearchService:()=>Go,useSelectorController:()=>di,useSelectorEmitter:()=>sc,useSelectorEvents:()=>mi,useSelectorHelper:()=>lc,useSimpleMediaPlayer:()=>st,useSimpleViewer:()=>tt,useStaticRenderingStrategy:()=>zc,useStrategy:()=>H,useStyleHelper:()=>Oc,useStyles:()=>it,useStylesheetStore:()=>ra,useSvgEditor:()=>Fr,useSvgEditorControls:()=>hi,useThumbnail:()=>Ne,useTranslations:()=>wr,useTransliteration:()=>Ir,useVault:()=>k,useVaultEffect:()=>Cr,useVaultSelector:()=>z,useViewerPreset:()=>rn,useViewportScroll:()=>qc,useViewportTour:()=>Bc,useVirtualAnnotationPage:()=>vr,useVirtualAnnotationPageContext:()=>Sr,useVisibleCanvases:()=>Je});module.exports=hl(x);b(x,require("@iiif/helpers/annotation-targets"),module.exports);var ht=require("react");var St=Z(require("react"),1),Ai=require("react/jsx-runtime"),yl={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ft=St.default.createContext(yl),J=()=>(0,St.useContext)(Ft);function re({value:e,children:t}){let n=J(),o=(0,St.useMemo)(()=>({...n,...e}),[e,n]);return(0,Ai.jsx)(Ft.Provider,{value:o,children:t})}var Ti=require("react/jsx-runtime");function de({canvas:e,children:t}){return(0,Ti.jsx)(re,{value:{canvas:e},children:t})}var Nn=Z(require("react"),1),$t=require("@iiif/helpers/vault");var Vo=require("react/jsx-runtime"),qe=Nn.default.createContext({vault:null,setVaultInstance:e=>{}});function Ie({vault:e,vaultOptions:t,useGlobal:n,resources:o,children:r}){let[i,a]=(0,Nn.useState)(()=>e||(n?(0,$t.globalVault)(t):t?new $t.Vault(t):new $t.Vault));return(0,Vo.jsx)(qe.Provider,{value:{vault:i,setVaultInstance:a},children:(0,Vo.jsx)(re,{value:o||{},children:r})})}var wi=require("react"),ki=Z(require("react"),1);var Ii=require("react"),k=()=>{let{vault:e}=(0,Ii.useContext)(qe);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Vn=require("react");function z(e,t=[]){let n=k(),[o,r]=(0,Vn.useState)(()=>e(n.getState(),n));return(0,Vn.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{r(i)},!1),t),o}var Ze=ki.default.createContext([]);function Je(){let e=(0,wi.useContext)(Ze);return z(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var Mi=require("@iiif/helpers/vault"),Ei=require("react");function we(e){let t=(0,Ei.useContext)(qe);return e||(t&&t.vault?t.vault:(0,Mi.globalVault)())}var Ni=require("react");function $(e={},t=[]){let{id:n,selector:o}=e,r=J(),i=k(),a=n||r.manifest,s=z(l=>a?l.iiif.entities.Manifest[a]:void 0,[a]);return(0,Ni.useMemo)(()=>{if(s)return o?o(s):s},[s,o,...t])}var Ki=require("react"),qn=require("react");var He=require("react");function Wt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,o=we(),[r,i]=(0,He.useState)(n),[a,s]=(0,He.useState)(void 0),l=(0,He.useMemo)(()=>o.get(n,{skipSelfReturn:!0})||void 0,[n,o]),[u,c]=(0,He.useState)(l);return(0,He.useEffect)(()=>{(async()=>{try{let m=l&&!t?l:await o.load(n),d=m?m.id||m["@id"]:null;m&&r!==d&&i(d),c(m)}catch(m){s(m)}})()},[n,t]),{isLoaded:!!u,id:r,requestId:n,error:a,resource:u,cached:!!(u&&u===l)}}function Lo(e,t){let{id:n,isLoaded:o,error:r,resource:i,requestId:a,cached:s}=Wt(e,t);return{id:n,isLoaded:o,error:r,manifest:i,requestId:a,cached:s}}var Vi=require("react/jsx-runtime");function zo({manifest:e,children:t}){return(0,Vi.jsx)(re,{value:{manifest:e},children:t})}var Li=require("react/jsx-runtime");function Oo({range:e,children:t}){return(0,Li.jsx)(re,{value:{range:e},children:t})}function zi(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let o=zi(e,e.get(n));if(o)return o}}return null}function Ln(e,t){let n=[];for(let o of t.items)if(o.type==="SpecificResource"&&o.source?.type==="Canvas"&&(o.source.id.indexOf("#")!==-1?n.push({id:o.source.id.split("#")[0],type:"Canvas"}):n.push(o.source)),o.type==="Range"&&n.push(...Ln(e,e.get(o))),o.type==="SpecificResource"){let r=typeof o.source=="string"?o.source:o.source.id;n.push({id:r,type:"Canvas"})}return n}function vl(e,t,n){for(let o of t.structures){let r=Bo(e,e.get(o),n);if(r)return r}return null}function Bo(e,t,n){for(let o of t.items){let r=o?.source?.id?.split("#")[0];if(o.type==="SpecificResource"&&o.source===n||o.type==="SpecificResource"&&o.source?.type==="Canvas"&&n===r)return t;if(o.type==="Range"){let i=Bo(e,e.get(o),n);if(i)return i}}return null}function Sl(e,t,n,o=!1){let r=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=o?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),u=s||l?!1:r.includes("individuals"),c=a.includes("facing-pages"),m=a.includes("non-paged");if(c||m||u||o)return[{id:i.id,type:"Canvas"}];let[d,f]=zn(e,t);if(l)return d;let h=d.findIndex(p=>p.id===n);if(h===-1)return[];for(let p of f)if(p.includes(h))return p.map(S=>d[S]);return[{id:i.id,type:"Canvas"}]}function zn(e,t,{disablePaging:n,skipNonPaged:o}={}){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:Ln(e,t);if(a)return[l,[l.map((h,p)=>p)]];if(s||!i||n)return[l,l.map((h,p)=>[p])];let u=[],c=[],m=()=>{c.length&&(u.push([...c]),c=[])},d=0,f=!1;for(let h=0;h<l.length;h++){let p=e.get(l[h]);if(p.behavior.includes("non-paged")){h===d&&d++,o||(m(),u.push([h]),m());continue}if(h===d||p.behavior.includes("facing-pages")){c.length&&(f=!0),m(),u.push([h]),m();continue}if(c.push(h),f){m(),f=!1;continue}c.length>1&&m()}return c.length&&m(),[l,u]}var ye=require("react");var Oi=require("react");function Ut(e={},t=[]){let{id:n,selector:o}=e,r=J(),i=n||r.range,a=z(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Oi.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}function qo({startCanvas:e,disablePaging:t}){let n=k(),o=$(),r=Ut(),[i,a]=(0,ye.useState)(void 0),s=r||o;if(!s)throw new Error("Nothing selected");let[l,u]=(0,ye.useMemo)(()=>zn(n,s,{disablePaging:t}),[n,s,t]),c=(0,ye.useRef)(u);if(c.current!==u){let S=c.current[i][0],v=u.findIndex(g=>g.includes(S));c.current=u,a(v)}let m=(0,ye.useCallback)(p=>{let S=u.findIndex(v=>v.includes(p));a(S===-1?0:S)},[l,u]),d=(0,ye.useCallback)(p=>{let S=l.findIndex(v=>v.id===p);S!==-1?m(S):a(0)},[l,u]),f=(0,ye.useCallback)(()=>{a(p=>p>=u.length-1?p:p+1)},[u]),h=(0,ye.useCallback)(()=>{a(p=>p<=0?0:p-1)},[u]);return typeof i>"u"&&(e?d(e):a(0)),{visibleItems:u[i]?.map(p=>l[p].id)||[],cursor:i,items:l,sequence:u,hasPrevious:i>0,hasNext:i<u.length-1,setSequenceIndex:a,setCanvasIndex:m,setCanvasId:d,next:f,previous:h}}var Se=require("react"),bt=require("zustand");var Do=require("zustand/vanilla");function xl(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function ve(e,t,n){let o=t.findIndex(a=>a.service.id===e);if(o===-1)return t;let r=[...t],i=n(r[o]);return i===r[o]?t:(r[o]=i,r)}var Fo=()=>(0,Do.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let o=n.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!o)throw new Error("Token service not found");e(()=>({authItems:ve(n.id,t().authItems,r=>({...r,isPending:!0}))})),Ho(n.service).then(()=>{On(o).then(r=>{let i=r.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:a}}))}))}).catch(r=>{e(()=>({authItems:ve(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let o=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!o)return;let r=`${o.id}?origin=${Bi()}`,i=window.open(r);e(()=>({authItems:ve(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,o=t().currentAuth+1;o>=n||e(()=>({currentAuth:o}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,o)=>{if(!n.service)return;let r=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:o,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!r)throw new Error("Token service not found");On(r).then(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,isPending:!0}))})),Ho(i).then(()=>{On(r).then(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,o)=>{let r=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(r){let a=t().authItems.find(l=>l.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:ve(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),$o=(e,t)=>(0,Do.createStore)((n,o)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!o().service)return;let r=o().service?.id;if(!r){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=o().token;try{let a=await fetch(r,{headers:i?{Authorization:`Bearer ${o().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({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");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({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){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){n({token:r})}}));function Wo(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let o of t)if(o.type==="AuthProbeService2"){n.services.probe=o,n.hasAuth=!0;let r=o.service.filter(i=>i.type==="AuthAccessService2");r[0]&&(n.services.access=r[0])}return n}async function On(e,{strict:t=!0}={}){return new Promise((n,o)=>{let r=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${r}&origin=${window.location.origin}`,a=u=>{let c=u.data;if(c.messageId===r){if(t&&c.type!=="AuthAccessToken2"){s(),o("Invalid response, expected type=AuthAccessToken2");return}if(!c.accessToken){s(),o("Invalid response, expected accessToken");return}s(),n(c)}},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 Bi(e){let t=window.location;if(e){let n=document.createElement("a");return n.href=e,n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function Ho(e){let t=`${e.id}?origin=${Bi()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((o,r)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),o())},500)})}var xt=require("react");var qi=require("zustand");function Hi(e){let t=(0,xt.useMemo)(()=>Wo(e),[e]),n=Uo(t.services.access?.id),o=(0,xt.useMemo)(()=>$o(t.services.probe,n),[t.services.probe]),r=(0,qi.useStore)(o);return(0,xt.useEffect)(()=>{r.status==="unknown"&&!n&&r.probe()},[t.services.probe,r.status]),(0,xt.useEffect)(()=>{n&&(r.setToken(n),r.probe())},[n]),[e,r,t.hasAuth]}var _t=require("react/jsx-runtime"),et=(0,Se.createContext)(null),Di=(0,Se.createContext)(null);Di.displayName="CurrentAuth";var Fi=(0,Se.createContext)(null);Fi.displayName="AuthActions";function Yo({children:e}){let t=(0,Se.useMemo)(()=>Fo(),[]);return(0,_t.jsx)(et.Provider,{value:t,children:e})}function Ko(){return!!(0,Se.useContext)(et)}function Ct(){let e=(0,Se.useContext)(et);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function $i(){let e=Ct();return(0,bt.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function bl(){let e=Ct();return(0,bt.useStore)(e,t=>t)}function Wi(e){let t=Ct();return(0,bt.useStore)(t,o=>o.authItems.find(r=>r.service.id===e))}function Uo(e){let t=Ct();return(0,bt.useStore)(t,o=>o.authItems.find(r=>r.id===e)?.session?.token)}function Cl(e){let t=Ct();return(0,bt.useStore)(t,o=>{let r=o.authItems.find(i=>i.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function Rl(e){let t=$i(),n=Wi(e.service.id);return(0,Se.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function _o(){return null}function jo(e){let[t,n,o]=Hi(e.resource),r=e.fallbackComponent||_o,i=e.loadingComponent||_o,a=e.errorComponent||_o,s=n.service,l=null;if(!o||!s)return e.children(t);let u=s.service.filter(c=>c.type==="AuthAccessService2");n.status==="error"&&(l=(0,_t.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=(0,_t.jsx)(i,{})),n.status==="success"&&(l=e.children(t));for(let c of u)l=(0,_t.jsx)(Rl,{service:c,probeId:s.id,children:l},c.id);return l}var Yt=require("react");var Ui=require("zustand/vanilla"),Pl=e=>e.id||e["@id"];function Al(e){return(Array.isArray(e.service)?e.service:[e.service]).find(n=>n.profile==="http://iiif.io/api/search/0/autocomplete"||n.profile==="http://iiif.io/api/search/1/autocomplete"||n.profile==="AutoCompleteService1")}var _i=e=>{let t;typeof e=="string"?t={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:t=e;let n=t?Pl(t):void 0,o=null;return(0,Ui.createStore)((r,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Al(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");o&&!o.signal.aborted&&o.abort(),o=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(`${n}?${l.toString()}`,{signal:o.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async u=>{if(!o?.signal.aborted)if(u.ok){let c=await u.json();r({resources:c.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:u.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(u=>u["@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(u=>u["@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 Tl=require("zustand");function Go(){let e=$();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Bn=require("react/jsx-runtime"),Rt=(0,Yt.createContext)(null);Rt.displayName="Search";function Yi(e){let t=Go();return e.store?(0,Bn.jsx)(Rt.Provider,{value:e.store,children:e.children}):(0,Bn.jsx)(Il,{service:t,children:e.children})}function Il({service:e,children:t}){let n=(0,Yt.useMemo)(()=>_i(e),[e]);return(0,Bn.jsx)(Rt.Provider,{value:n,children:t})}var le=require("react/jsx-runtime"),Kt=()=>{},Pt=(0,qn.createContext)({setCurrentCanvasId:Kt,setCurrentCanvasIndex:Kt,nextCanvas:Kt,previousCanvas:Kt,items:[],sequence:[],setSequenceIndex:Kt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function ji(e){let t=$(),{cursor:n,visibleItems:o,next:r,sequence:i,items:a,setCanvasIndex:s,setCanvasId:l,previous:u,setSequenceIndex:c,hasNext:m,hasPrevious:d}=qo({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),f=(0,qn.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:u,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:c,currentSequenceIndex:n,hasNext:m,hasPrevious:d}),[i,a,l,r,u,a,s,c,n]);return t?o.length===0?null:(0,le.jsx)(Pt.Provider,{value:f,children:(0,le.jsx)(Ze.Provider,{value:o,children:(0,le.jsx)(de,{canvas:o[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,le.jsx)("div",{children:"Sorry, something went wrong."}))}function Qo(e){let t=we(e.vault),n=Lo(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,le.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,le.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,le.jsx)("div",{children:"Loading..."});let o=(0,le.jsx)(ji,{...e,children:e.children});return(0,le.jsx)(Ie,{vault:t,children:(0,le.jsx)(zo,{manifest:n.id,children:(0,le.jsx)(Yo,{children:(0,le.jsx)(Yi,{children:e.rangeId?(0,le.jsx)(Oo,{range:e.rangeId,children:o}):o})})})})}function tt(){return(0,Ki.useContext)(Pt)}var ea=require("@atlas-viewer/atlas"),ke=require("react"),ta=require("zustand");var Gi=Z(require("mitt"),1),nt=require("react"),Qi=require("react/jsx-runtime"),wl=(0,Gi.default)(),Hn=(0,nt.createContext)(wl);function kl({children:e,emitter:t}){return(0,Qi.jsx)(Hn.Provider,{value:t,children:e})}function Xo(){return(0,nt.useContext)(Hn)}function ot(e,t,n=[]){let o=(0,nt.useContext)(Hn);(0,nt.useEffect)(()=>{let r=i=>{t(i)};return o.on(e,r),()=>{o.off(e,r)}},[o,e,...n])}var Zi=require("polygon-editor"),Ji=require("zustand/vanilla");function At(e){let t=Math.max(...e.map(i=>i[0])),n=Math.min(...e.map(i=>i[0])),o=Math.max(...e.map(i=>i[1])),r=Math.min(...e.map(i=>i[1]));for(let i of e)if(i[0]!==n&&i[0]!==t&&i[1]!==r&&i[1]!==o||i[0]<n||i[0]>t||i[1]<r||i[1]>o)return!1;return!0}function De(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(i=>i[0])),n=Math.min(...e.points.map(i=>i[1])),o=Math.max(0,...e.points.map(i=>i[0])),r=Math.max(0,...e.points.map(i=>i[1]));return{x:t,y:n,width:o-t,height:r-n}}return null}function Xi(e){return e.type==="SvgSelector"}function Ml(e){return e.type==="BoxSelector"}function Dn(e,t){if(Xi(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(c=>c.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:n,y:o,width:r,height:i}=e.spatial||{};return!r||!i?null:{type:"FragmentSelector",value:`xywh=${~~n},${~~o},${~~r},${~~i}`}}function Tt(e,t){if(!e||!e.points.length)return null;if(At(e.points)){let n=e.points.map(l=>l[0]),o=e.points.map(l=>l[1]),r=Math.min(...n),i=Math.min(...o),a=Math.max(...n)-r,s=Math.max(...o)-i;return Dn({type:"BoxSelector",spatial:{x:r,y:i,width:a,height:s}},t)}return Dn({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function jt(e){if(e.type==="polygon"&&!e.noBox&&e.points&&At(e.points)){let n=De({open:!1,points:e.points||[]});return jt({...e,type:"box",selector:n})}if(e.type==="polygon"||e.type==="draw")return{polygon:{points:e.points||[],open:e.open||!1},requestType:e.type,boundingBox:De({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Tt({points:e.points||[],open:!1},e.bounds)};let t=e.selector;if(t){let n=[[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:n,open:!1},requestType:e.type,boundingBox:t,metadata:{},target:Tt({points:n,open:!1},e.bounds),arguments:e.arguments||{}}}return{polygon:{points:[],open:!1},requestType:e.type,boundingBox:null,target:null,metadata:{},arguments:e.arguments||{}}}var El={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 Zo({events:e,enabledTools:t,keyboardShortcutMapping:n,keyboardShortcutsEnabled:o=!1,debug:r}){let i=(0,Ji.createStore)((s,l)=>{let u=null,m=(0,Zi.createHelper)({emitter:e,keyboardShortcutsEnabled:o,keyboardShortcutMapping:n,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(f=>({polygonState:{...f.polygonState,...d}}))}},d=>{s(f=>f.tool.requestId?{polygon:{...d,id:f.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},runtime:null,requestType:null,requests:{},history:m.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:m,polygonState:El,setMetadata:(d,f)=>{let h=f||l().tool.requestId;h&&s(p=>({metadata:{...p.metadata,[h]:{...p.metadata[h]||{},...d}}}))},setToolCanvasId:d=>{s(f=>({tool:{...f.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&&(m.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(f=>({validRequestIds:[...f.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(f=>({tool:f.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:f.tool,validRequestIds:f.validRequestIds.filter(h=>h!==d)}))}}},cancelRequest:d=>{let f=d||l().tool.requestId;f&&(s(h=>({mode:"explore",tool:h.tool.requestId===f?{enabled:!1,requestId:null,canvasId:null}:h.tool,validRequestIds:h.validRequestIds.filter(p=>p!==f)})),e.emit("atlas.request-cancelled",{id:f}))},requestAnnotation:async(d,f)=>{let p={...l().requests,[f.requestId]:d},S=jt(d);r&&console.log("requestAnnotation",{response:S,request:d});try{let{points:v=[],open:g=!0}=S.polygon||{},{requestId:y,canvasId:C=null,toolId:R}=f,P=R,A=l(),I=A.validRequestIds.includes(y),O=S.requestType;return r&&console.log("setting points",{requestType:O,points:v,open:g}),!I||A.tool.enabled?null:(m.setShape({id:y,points:v,open:g}),O==="polygon"&&(P=P||"pen",m.tools.setTool("pen")),O==="draw"&&(P=P||"draw",m.tools.setTool("pencil")),O==="box"&&(P=P||"box",m.tools.setTool("box")),O==="target"?(P=P||"box",m.tools.setTool("box"),m.lockAspectRatio(),m.tools.lockToolSwitching(),m.tools.setCanDeselect(!1),m.tools.setCanDelete(!1)):(m.tools.unlockToolSwitching(),m.tools.setCanDeselect(!0),m.tools.setCanDelete(!0)),d.bounds&&m.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:y}),s({polygon:{id:y,points:v,open:g},mode:"sketch",requestType:O,tool:{enabled:!0,requestId:y,canvasId:C},requests:p}),P?A.switchTool[P]?.():v.length===0&&A.switchTool.box(),(typeof d.selectByDefault>"u"&&v.length&&O==="box"||d.selectByDefault)&&A.switchTool.pointer(),new Promise(G=>{let M=w=>{w.id===y&&(s(N=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(N.requests).filter(([V])=>V!==y))})),e.off("atlas.request-cancelled",M),e.off("atlas.annotation-completed",L),G(null))},L=w=>{w.id===y&&(s(N=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(N.requests).filter(([V])=>V!==y))})),e.off("atlas.annotation-completed",L),e.off("atlas.request-cancelled",M),G(w))};e.on("atlas.request-cancelled",M),e.on("atlas.annotation-completed",L)}))}catch(v){return console.error(v),null}},completeRequest:d=>{let f=l().tool.requestId;if(typeof d=="string"&&d&&d!==f)return;let h=f?l().requests[f]?.arguments||{}:{},p=f?l().metadata[f]||{}:{},S=l().polygonState.bounds,v=l().polygon;v&&(e.emit("atlas.annotation-completed",{id:v.id,polygon:v,requestType:l().requestType,target:Tt(v,S),canvasId:l().tool.canvasId,boundingBox:De(v),metadata:p,arguments:{...h}}),m.setShape(null))},setAtlasRuntime:d=>{u=d,e.emit("atlas.ready",{runtime:d}),a.setScale(1/u._lastGoodScale),u.world.addLayoutSubscriber((f,h)=>{(f==="event-activation"||f==="zoom-to"||f==="go-home")&&u?._lastGoodScale&&!Number.isNaN(u._lastGoodScale)&&a.setScale(1/u._lastGoodScale)}),s({runtime:u})},clearAtlasRuntime:()=>{u=null,s({stableViewport:null,runtime:null})},setCanvasRelativePosition:(d,f)=>{s(h=>({canvasRelativePositions:{...h.canvasRelativePositions,[d]:f}}))},clearCanvasRelativePosition:d=>{s(f=>{let h={...f.canvasRelativePositions};return delete h[d],{canvasRelativePositions:h}})},changeMode:d=>{s({mode:d})},nudgeLeft:d=>{if(!u)return;let f=u.getViewport(),h=d??f.width*.1;u.world.gotoRegion({x:f.x-h,y:f.y,width:f.width,height:f.height,nudge:!0})},nudgeRight:d=>{if(!u)return;let f=u.getViewport(),h=d??f.width*.1;u.world.gotoRegion({x:f.x+h,y:f.y,width:f.width,height:f.height,nudge:!0})},nudgeUp:d=>{if(!u)return;let f=u.getViewport(),h=d??f.height*.1;u.world.gotoRegion({x:f.x,y:f.y-h,width:f.width,height:f.height,nudge:!0})},nudgeDown:d=>{if(!u)return;let f=u.getViewport(),h=d??f.height*.1;u.world.gotoRegion({x:f.x,y:f.y+h,width:f.width,height:f.height,nudge:!0})},zoomIn:()=>{u?.world?.zoomIn()},zoomOut:()=>{u?.world?.zoomOut()},goHome:()=>{u?.world?.goHome()},goToRegion:d=>{u?.world?.gotoRegion(d)},getRuntime:()=>u}}),a=i.getState().polygons;return e.on("atlas.annotation-request",()=>{a.clock.start((s,l,u)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:u})},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 er=require("react/jsx-runtime"),rt=(0,ke.createContext)(null);function B(){return(0,ke.useContext)(rt)}var Jo={};function tr(e="atlas"){return Jo[e]?.getState()}function It({children:e,name:t="atlas",existing:n,atlasStoreConfig:o}){let r=Xo(),i=(0,ke.useContext)(rt),a=(0,ke.useMemo)(()=>n||i||Zo({events:r,...o||{}}),[r,n,i]),s=(0,ta.useStore)(a,l=>l.mode);return(0,ke.useEffect)(()=>{let l=t;return l&&(Jo[l]=a),()=>{l&&delete Jo[l]}},[a,t]),(0,er.jsx)(rt.Provider,{value:a,children:(0,er.jsx)(ea.ModeContext.Provider,{value:s||"explore",children:e})})}var Zt=require("@atlas-viewer/atlas"),da=require("react");var wt=require("react"),na=require("react/jsx-runtime");function nr(){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 or=(0,wt.createContext)(nr());or.displayName="AnnotationStyle";function Gt(){return(0,wt.useContext)(or)}function Nl({theme:e,children:t}){let n=(0,wt.useMemo)(()=>e||nr(),[e]);return(0,na.jsx)(or.Provider,{value:n,children:t})}var ia=require("@iiif/helpers/annotation-targets"),aa=require("react");var kt=require("react"),oa=require("zustand"),ra=(0,oa.create)()((e,t)=>{let n=new Map,o=()=>Math.random().toString(36).substring(2,15),r=i=>{let a=n.get(i);if(a)return a;let s=o();return n.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 u=Array.isArray(i.value)?i.value.join(`
|
|
2
|
+
`):i.value;if(u)return{id:s(u,l),type:"CssStylesheet",value:u}}if("id"in i&&i.id){let u=await a(i.id);return{id:i.id,type:"CssStylesheet",value:u}}}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(u=>({stylesheets:{...u.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 rr(e){let[t,n]=(0,kt.useState)(""),{loading:o,errors:r,stylesheets:i,parseStylesheet:a}=ra();return(0,kt.useEffect)(()=>{e&&a(e).then(l=>{l?.id&&n(l.id)})},[e,a]),[(0,kt.useMemo)(()=>{let l={};return t&&i[t]&&(l[t]=i[t]),l},[t,i]),{id:t,stylesheets:i,loading:o,errors:r}]}function Qt(e={},t=[]){let{id:n,selector:o}=e,r=J(),i=k(),a=n||r.annotation,s=z(c=>a?c.iiif.entities.Annotation[a]:void 0,[a]),[l]=rr(s?.stylesheet),u=z(c=>s&&s.body?s.body.map(m=>m?m.type==="SpecificResource"?{...m,source:i.get(m)}:m?c.iiif.entities[m.type][m.id]:null:null).filter(Boolean):[],[s]);return(0,aa.useMemo)(()=>{if(!s)return;let c={...s,body:u,target:(0,ia.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping,loadedStylesheets:l})};return o?o(c):c},[s,o,u,l,...t])}var sa=require("react");function T(e={},t=[]){let{id:n,selector:o}=e,r=J(),i=n||r.canvas,a=z(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,sa.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}var ir=require("react"),la=require("@iiif/helpers/events");function Xt(e,t){let n=k(),o=(0,ir.useMemo)(()=>(0,la.createEventsHelper)(n),[n]),r=z(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,ir.useMemo)(()=>e?o.getListenersAsProps(e,t):{},[r,e,n,t])}var ca=require("react"),ua=require("@iiif/helpers/styles");function it(e,t){let n=k(),o=(0,ca.useMemo)(()=>(0,ua.createStylesHelper)(n),[n]);return z(()=>{if(!e)return null;let r=o.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var ma=require("react");var Fn=require("@atlas-viewer/atlas"),Ae=require("react"),W=require("react/jsx-runtime");function ar({handleSize:e,resizable:t,onSave:n,children:o,maintainAspectRatio:r,disableCardinalControls:i,aspectRatio:a,...s}){let l=typeof e>"u"?r?12:8:e,{portalRef:u,mode:c,mouseEvent:m,isEditing:d}=(0,Fn.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:a,maintainAspectRatio:r},n),f=(0,Ae.useMemo)(()=>m("translate"),[m]),h=(0,Ae.useMemo)(()=>m("east"),[m]),p=(0,Ae.useMemo)(()=>m("west"),[m]),S=(0,Ae.useMemo)(()=>m("south"),[m]),v=(0,Ae.useMemo)(()=>m("north"),[m]),g=(0,Ae.useMemo)(()=>m("south-east"),[m]),y=(0,Ae.useMemo)(()=>m("south-west"),[m]),C=(0,Ae.useMemo)(()=>m("north-east"),[m]),R=(0,Ae.useMemo)(()=>m("north-west"),[m]),P=c==="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,W.jsx)(W.Fragment,{children:(0,W.jsxs)("world-object",{...s,children:[o,P&&t?(0,W.jsx)(Fn.HTMLPortal,{ref:u,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:P&&t?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("div",{onMouseDown:f,onTouchStart:f,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,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("div",{title:"east",onTouchStart:h,onMouseDown:h,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,W.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,W.jsx)("div",{title:"north",onMouseDown:v,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,W.jsx)("div",{title:"south",onMouseDown:S,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,W.jsx)("div",{title:"north-east",onMouseDown:C,style:{...A,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,W.jsx)("div",{title:"south-east",onMouseDown:g,style:{...A,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,W.jsx)("div",{title:"south-west",onMouseDown:y,style:{...A,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,W.jsx)("div",{title:"north-west",onMouseDown:R,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 sr=require("react/jsx-runtime");function lr({id:e,interactive:t,region:n,onClick:o,onHover:r,onSave:i,aspectRatio:a,maintainAspectRatio:s,disableCardinalControls:l,isEditing:u,style:c={backgroundColor:"rgba(0,0,0,.5)"}}){let m=(0,ma.useCallback)(d=>{u&&i?.({id:n.id,x:n.x,y:n.y,height:n.height,width:n.width,...d})},[i,u,n.id,n.x,n.y,n.height,n.width]);return(0,sr.jsx)(ar,{id:e,x:n.x,y:n.y,width:n.width,aspectRatio:a,height:n.height,resizable:u,onSave:m,maintainAspectRatio:s,disableCardinalControls:l,children:(0,sr.jsx)("box",{interactive:t,onClick:d=>{d.preventDefault(),d.stopPropagation(),o?.(n)},relativeStyle:!0,onMouseEnter:()=>{r?.(n)},target:{x:0,y:0,width:n.width,height:n.height},style:c})})}var pa=require("react/jsx-runtime"),at=({id:e,style:t,className:n,interactive:o,targetId:r,ignoreTargetId:i})=>{let a=Qt({id:e}),s=it(a,"atlas"),l=it(a,"html"),u=Xt(a,["atlas"]),c=T(),m=Gt(),d=(0,da.useMemo)(()=>(0,Zt.mergeStyles)((0,Zt.mergeStyles)((0,Zt.mergeStyles)((0,Zt.mergeStyles)(t,s),a?.motivation?.includes("highlighting")?m.highlighted:m.default),a?.target?.selector?.boxStyle||{})),[t,s,m,a?.motivation,a?.target]),f=r||c?.id;return c&&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===f||a.target.source===f)?(0,pa.jsx)(lr,{id:a.id,isEditing:!0,region:a.target.selector.spatial,style:d,className:l?.className||n,interactive:!!(l?.href||o),href:l?.href||null,title:l?.title||null,hrefTarget:l?.target||null,onClick:()=>{},...u}):null};var ga=require("react");var fa=require("react");function cr(e={},t=[]){let{id:n,selector:o}=e,r=J(),i=n||r.annotationPage,a=z(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,fa.useMemo)(()=>{if(a)return o?o(a):a},[a,...t])}var ur=require("react/jsx-runtime"),Fe=({className:e,page:t,targetId:n,ignoreTargetId:o})=>{let r=cr({id:t.id})||t,i=it(r,"atlas"),a=it(r,"html");return z(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,ur.jsx)(ga.Fragment,{children:r.items?.map(s=>(0,ur.jsx)(at,{id:s.id,style:i,className:a?.className||e,targetId:n,ignoreTargetId:o},s.id))})};var $e=require("react"),$n=require("react/jsx-runtime"),ha=(0,$e.createContext)(null),ya=(0,$e.createContext)(null),va=(0,$e.createContext)(null);function Vl(){let e=(0,$e.useContext)(ha);if(!e)throw new Error("Ctx not found");return e}function Ll(){let e=(0,$e.useContext)(ya);if(!e)throw new Error("Ctx not found");return e}function zl(){let e=(0,$e.useContext)(va);if(!e)throw new Error("Ctx not found");return e}function Jt({actions:e,state:t,children:n,currentTime:o,progress:r,element:i}){return(0,$n.jsx)(va.Provider,{value:{currentTime:o,progress:r,element:i},children:(0,$n.jsx)(ya.Provider,{value:e,children:(0,$n.jsx)(ha.Provider,{value:t,children:n})})})}var Sa=require("react");var xa=require("@iiif/helpers");function en(){let e=$(),t=T();return(0,Sa.useMemo)(()=>{if(!e||!t||!e.start)return null;let n=(0,xa.expandTarget)(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}var F=require("react");function ba(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Ol(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 Wn(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function st(e){let[t,n]=(0,F.useReducer)(Ol,ba(e.duration));(0,F.useEffect)(()=>{n({type:"RESET",state:ba(e.duration)})},[e.duration]);let o=(0,F.useRef)(null),r=(0,F.useRef)(null),i=(0,F.useRef)(null),a=(0,F.useRef)(!1),s=(0,F.useCallback)(()=>{r.current&&o.current&&(r.current.innerHTML=Wn(o.current.currentTime),i.current&&(i.current.style.width=`${o.current.currentTime/e.duration*100}%`),a.current!==o.current.muted&&(a.current=o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,F.useCallback)(()=>{o.current&&(n({type:"PLAY_REQUESTED"}),o.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),u=(0,F.useCallback)(()=>{o.current&&(o.current.duration>0&&o.current.paused?l():c())},[s]),c=(0,F.useCallback)(()=>{o.current&&(o.current.pause(),n({type:"PAUSE"}),s())},[s]),m=(0,F.useCallback)(()=>{o.current&&(o.current.muted=!o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(0,F.useCallback)(()=>{o.current&&(o.current.muted=!0,n({type:"MUTE"}))},[]),f=(0,F.useCallback)(()=>{o.current&&(o.current.muted=!1,n({type:"UNMUTE"}))},[]),h=(0,F.useCallback)(v=>{o.current&&(o.current.muted=!1,o.current.volume=v/100,n({type:"SET_VOLUME",volume:v}))},[]),p=(0,F.useCallback)(v=>{o.current&&(o.current.currentTime=Math.max(0,Math.min(v*e.duration,e.duration)),s())},[]),S=(0,F.useCallback)(v=>{if(o.current){let g=typeof v=="function"?v(o.current.currentTime):v;o.current.currentTime=Math.max(0,Math.min(g,e.duration)),s()}},[]);return(0,F.useEffect)(()=>{let v=setInterval(()=>{s()},350);return()=>clearInterval(v)},[s,e.duration]),(0,F.useEffect)(()=>{let v=()=>{n({type:"FINISHED"})},g=o.current;return g?.addEventListener("ended",v),()=>g?.removeEventListener("ended",v)},[]),[{element:o,currentTime:r,progress:i},t,{play:l,pause:c,playPause:u,mute:d,unmute:f,toggleMute:m,setVolume:h,setDurationPercent:p,setTime:S}]}var lt=require("react"),mr=(0,lt.createContext)(()=>{}),dr=(0,lt.createContext)(()=>{});function Q(e,t,n,o,r=[]){let i=(0,lt.useContext)(e==="portal"?dr:mr);(0,lt.useEffect)(()=>(e!=="none"&&i(t,n,o),()=>{i(t,null)}),[t,e,i,...r])}var _n=require("react/jsx-runtime");function pr({media:e,startTime:t,children:n}){let[{element:o,currentTime:r,progress:i},a,s]=st({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,_n.jsxs)(Jt,{state:a,actions:s,currentTime:r,progress:i,element:o,children:[(0,_n.jsx)("audio",{ref:o,src:l}),n]},e.url)}function Un({media:e,mediaControlsDeps:t,audioCopmonent:n=pr,children:o}){let r=en();return Q("portal","audio",n,{media:e,startTime:r?r.startTime:null,children:o},[e,r,...t||[]]),null}var Yn=require("react"),We=(0,Yn.createContext)(null);We.displayName="Strategy";function H(){let e=(0,Yn.useContext)(We);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ue=require("react/jsx-runtime");function fr({model:e}){return(0,Ue.jsxs)(Ue.Fragment,{children:[(0,Ue.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,Ue.jsx)("div",{className:"model-container",children:(0,Ue.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Ko({model:e,name:t}){return Q("overlay",`model-${t}`,fr,{model:e},[e]),null}var Ca=require("react/jsx-runtime");function gr(){let{strategy:e}=H();return e.type!=="3d-model"?null:(0,Ca.jsx)(Ko,{model:e.model})}var jo=require("react"),to=(0,jo.createContext)(null);to.displayName="Controls";function re(){let e=(0,jo.useContext)(to);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Me=require("react/jsx-runtime");function hr(){let{strategy:e}=H(),{renderViewerControls:t,viewControlsDeps:o}=re(),n=T(),r=n?.accompanyingCanvas,i=n?.placeholderCanvas;return(0,Me.jsxs)(Me.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Me.jsx)(de,{canvas:r.id,children:(0,Me.jsx)(ct,{renderViewerControls:t,viewControlsDeps:o})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!r?(0,Me.jsx)(de,{canvas:i.id,children:(0,Me.jsx)(ct,{renderViewerControls:t,viewControlsDeps:o})}):null]})}var Mt=require("react");var Ee=require("react");var Go=require("@iiif/helpers/vault/actions");var Ra=require("react");function yr(){let t=k().getStore();return(0,Ra.useMemo)(()=>o=>t.dispatch(o),[t])}function Pa(e){return typeof e!="string"&&e&&e.bindToVault}function vr(){let e=k(),t=(0,Ee.useRef)([]),o=yr(),n=(0,Ee.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,Ee.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(Go.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[n]);let r=z(s=>n&&s.iiif.entities.AnnotationPage[n]||null,[n]),i=(0,Ee.useCallback)((s,l)=>{if(n){if(Pa(s)){let m=s;m.__vault||m.bindToVault(e),s=typeof m.source=="string"?m.source:m.source.id,t.current[s]=m}else typeof s!="string"&&(s=s.id);let c=e.get({id:n,type:"AnnotationPage"}),u=e.get({id:s,type:"Annotation"});c&&u&&(c.items.find(m=>m.id===u.id)||o(Go.entityActions.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[n]),a=(0,Ee.useCallback)(s=>{n&&(Pa(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(Go.entityActions.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[n]);return[r,{addAnnotation:i,removeAnnotation:a}]}var Ta=require("react/jsx-runtime"),Aa=(0,Mt.createContext)(null);function Sr(){let e=(0,Mt.useContext)(Aa);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function xr({children:e}){let[t,{addAnnotation:o,removeAnnotation:n}]=vr();return(0,Ta.jsx)(Aa.Provider,{value:(0,Mt.useMemo)(()=>({fullPage:t,addAnnotation:o,removeAnnotation:n}),[t]),children:e})}var ut=require("react/jsx-runtime");function br({children:e}){let{strategy:t}=H(),[o]=Sr();return t.type!=="images"?null:(0,ut.jsxs)(ut.Fragment,{children:[o?(0,ut.jsx)(Fe,{page:o}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,ut.jsx)(Fe,{page:n},n.id)):null,e]})}var _e=require("react");var Ia=require("react"),Cr=(e,t=[])=>{let o=k();(0,Ia.useEffect)(()=>{e(o)},[o,...t])};var Qo=Z(require("react"),1),wa=require("@iiif/helpers/image-service"),ka=Qo.default.createContext(new wa.ImageServiceLoader);function oo(){return(0,Qo.useContext)(ka)}var Ma=require("@iiif/helpers/thumbnail");function Ne(e,t,{canvasId:o,manifestId:n}={}){let r=k(),i=oo(),a=(0,_e.useMemo)(()=>(0,Ma.createThumbnailHelper)(r,{imageServiceLoader:i}),[r,i]),[s,l]=(0,_e.useState)(),c=$(n?{id:n}:void 0),u=T(o?{id:o}:void 0),m=u||c,d=(0,_e.useRef)(!1);if((0,_e.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!m)throw new Error("Must be called under a manifest or canvas context.");return Cr(f=>{a.getBestThumbnailAtSize(m,e,t).then(h=>{h.best&&!d.current&&l(h.best)})},[m]),s}var Rr=require("react/jsx-runtime");function mt({x:e=0,y:t=0}){let o=T(),n=Ne({maxWidth:256,maxHeight:256});return!o||!n||n.type!=="fixed"?null:(0,Rr.jsx)("world-object",{height:o.height,width:o.width,x:e,y:t,children:(0,Rr.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 Xo=require("react/jsx-runtime");function Pr({as:e}){let{strategy:t}=H(),{renderMediaControls:o,mediaControlsDeps:n}=re();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Xo.jsxs)(Uo,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,Xo.jsx)(mt,{}),o?o(t):null]},t.media.url)}var Er=require("@atlas-viewer/atlas"),rn=require("react"),Nr=require("zustand");var Zo=require("react"),Ea=require("zustand"),Na=require("react/jsx-runtime"),Ar=(0,Zo.createContext)(null);Ar.displayName="ComplexTimeline";function Tr({children:e,store:t}){return(0,Na.jsx)(Ar.Provider,{value:t,children:e})}function Ll(e){let t=(0,Zo.useContext)(Ar);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,Ea.useStore)(t,e)}var La=Z(require("mitt"),1),za=require("zustand/vanilla");function Va({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 Oa({complexTimeline:e,startTime:t=0}){let o=(0,La.default)(),n={},r={progress:null,currentTime:null},i=0,a=null,s=0,l=null;function c(){let g=S.getState().visibleElements,y=n,C=[],R=Object.keys(y);for(let P of R){let A=y[P],I=g[P];A&&I&&C.push(A)}return C}function u(){return Object.keys(n).map(g=>n[g])}function m(v){r.currentTime&&(r.currentTime.innerHTML=Wo(v),r.progress&&(r.progress.style.width=`${v/e.duration*100}%`))}let d=()=>{let v=S.getState(),g=v.currentPrime;if(!g)return;let y=n,C=v.visibleElements,R=Object.keys(y);for(let P of R){let A=y[P],I=C[P];if(A&&P!==g.id&&I){let O=s-I.time*1e3;Math.abs(s-I.time*1e3-A.currentTime*1e3)>300&&(A.currentTime=O/1e3)}}},f=(v=0)=>{let g=v-i,y=S.getState();if(y.isPlaying){let C=y.currentPrime;if(C){let I=n[C.id];I&&(I.paused?s+=g:s=(C.time+I.currentTime)*1e3)}else s+=g;let R=s/1e3;if(R>y.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),h(),m(0);return}m(R);let[P,A]=Va({currentTime:R,currentKeyFrameIndex:y.nextKeyframeIndex,keyframes:y.complexTimeline.keyframes,targetTime:R});A.length&&y.applyKeyframes(P,A)}i=v,a=requestAnimationFrame(f)},h=()=>{a&&cancelAnimationFrame(a)},p=(v,g)=>{},S=(0,za.createStore)((v,g)=>({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:()=>{g().clockRunning||(f(),l=setInterval(d,500)),v({clockRunning:!0,clockStartRequests:g().clockStartRequests+1})},applyKeyframes(y,C){let R=g(),P={...R.visibleElements},A=R.currentPrime;for(let I of C)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);v({nextKeyframeIndex:y,visibleElements:P,currentPrime:A})},stopClock:()=>{let y=g().clockStartRequests;if(y!==0){if(y===1){h(),l&&clearInterval(l),v({clockRunning:!1,clockStartRequests:0});return}v({clockStartRequests:y-1})}},setElement:(y,C)=>{n[y]=C;let R=Object.keys(n),P=g().complexTimeline;p(C,y),P.items.filter(I=>I.type!=="Image"&&I.type!=="Text").every(I=>R.includes(I.annotationId))&&!g().isReady&&(o.emit("complex-timeline.ready",{complexTimeline:P}),v({isReady:!0}))},removeElement:y=>{delete n[y]},mute(){for(let y of u())y.muted=!0;v({isMuted:!0})},unmute(){for(let y of u())y.muted=!1;v({isMuted:!1})},play(){if(!g().isPlaying){for(let C of c())C.play();v({isPlaying:!0})}},pause(){if(g().isPlaying){for(let C of c())C.pause();v({isPlaying:!1})}},playPause(){let y=g();y.isPlaying?y.pause():y.play()},setDurationPercent(y){let R=g().duration*y;g().setTime(R)},setTime(y){let C=g(),R=s/1e3,P=typeof y=="function"?y(R):y,A=C.nextKeyframeIndex;if(R>P){v({visibleElements:{},currentPrime:null});let N=Object.keys(C.visibleElements);for(let V of N)o.emit("complex-timeline.exit",{id:V});R=0,A=0}let[I,O]=Va({currentTime:R,currentKeyFrameIndex:A,keyframes:C.complexTimeline.keyframes,targetTime:P});C.applyKeyframes(I,O),s=P*1e3;let M=S.getState().visibleElements,L=n,w=Object.keys(M);for(let N of w){let V=M[N];if(V){let Pe=L[N];Pe&&(Pe.currentTime=(s-V.time*1e3)/1e3)}}m(P)},setVolume(y){for(let C of u())C.volume=Math.min(1,Math.max(0,y/100));v({volume:y})},toggleMute(){let y=g();y.isMuted?(y.unmute(),v({isMuted:!1})):(y.mute(),v({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(y){r.progress=y},setCurrentTimeElement(y){r.currentTime=y},clearCurrentTimeElement(){r.currentTime=null}}));return o.on("complex-timeline.enter",v=>{let g=S.getState(),y=v.id,C=n[y];C&&g.isPlaying&&C.play()}),o.on("complex-timeline.exit",v=>{let g=S.getState(),y=v.id,C=n[y];C&&(C.currentTime=0,C.pause())}),S.getState().setTime(t),{store:S,emitter:o}}var Nt=require("react");var Qa=require("@atlas-viewer/atlas"),Xa=require("@iiif/parser/image-3");var Jo=Z(require("react"),1),qa=require("@iiif/helpers/image-service"),no=require("zustand"),Ba=Jo.default.createContext(qa.imageServices.store);Ba.displayName="ImageServicesHelper";function en(){return(0,Jo.useContext)(Ba)}function Ha(e){let t=en();return(0,no.useStore)(t,({loaded:o})=>o[e])}function Et(){let e=en();return(0,no.useStore)(e,({loadServiceSync:t})=>t)}function Da(){let e=en();return(0,no.useStore)(e,({loaded:t})=>t)}function Fa(){let e=en();return(0,no.useStore)(e,({loadService:t})=>t)}var be=Z(require("react"),1),xe=require("react/jsx-runtime"),Wa=be.default.createContext("en"),Ua=be.default.createContext({}),_a=be.default.createContext(null);function zl(e){return(0,xe.jsx)(Ua.Provider,{value:e.translations,children:e.children})}function Ol(e){return(0,xe.jsx)(Wa.Provider,{value:e.language,children:e.children})}function ql(e){return(0,xe.jsx)(_a.Provider,{value:e.convert,children:e.children})}function Ir(){return be.default.useContext(_a)}function tn(){return be.default.useContext(Wa)}function wr(){return be.default.useContext(Ua)}function $a(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Ya({as:e,language:t,children:o,viewingDirection:n,...r}){let i=tn();return(0,be.useMemo)(()=>$a(i)===$a(t),[i,t])?e?(0,xe.jsx)(e,{...r,children:o}):(0,xe.jsx)("span",{...r,children:o}):e?(0,xe.jsx)(e,{...r,lang:t,dir:n,children:o}):(0,xe.jsx)("span",{...r,lang:t,dir:n,children:o})}function Ka(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 ja=(e,t=[])=>{let o=tn();return(0,be.useMemo)(()=>{let n=e();return Ka(o,n,[])},[o,...t])};function dt(e,t,o,n){return t?o?o(e[t]||t,n||"none"):e[t]||t:""}function Ga(e,t,o=`
|
|
16
|
-
`,
|
|
17
|
-
`,s=t){let l=Object.keys(r||{}),
|
|
18
|
-
`):""}}function ue({as:e,defaultText:t,enableDangerouslySetInnerHTML:
|
|
15
|
+
`}),(0,Ue.jsx)("div",{className:"model-container",children:(0,Ue.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Kn({model:e,name:t}){return Q("overlay",`model-${t}`,fr,{model:e},[e]),null}var Ca=require("react/jsx-runtime");function gr(){let{strategy:e}=H();return e.type!=="3d-model"?null:(0,Ca.jsx)(Kn,{model:e.model})}var jn=require("react"),tn=(0,jn.createContext)(null);tn.displayName="Controls";function ie(){let e=(0,jn.useContext)(tn);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Me=require("react/jsx-runtime");function hr(){let{strategy:e}=H(),{renderViewerControls:t,viewControlsDeps:n}=ie(),o=T(),r=o?.accompanyingCanvas,i=o?.placeholderCanvas;return(0,Me.jsxs)(Me.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Me.jsx)(de,{canvas:r.id,children:(0,Me.jsx)(ct,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!r?(0,Me.jsx)(de,{canvas:i.id,children:(0,Me.jsx)(ct,{renderViewerControls:t,viewControlsDeps:n})}):null]})}var Mt=require("react");var Ee=require("react");var Gn=require("@iiif/helpers/vault/actions");var Ra=require("react");function yr(){let t=k().getStore();return(0,Ra.useMemo)(()=>n=>t.dispatch(n),[t])}function Pa(e){return typeof e!="string"&&e&&e.bindToVault}function vr(){let e=k(),t=(0,Ee.useRef)([]),n=yr(),o=(0,Ee.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,Ee.useLayoutEffect)(()=>{let s={id:o,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Gn.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[o]);let r=z(s=>o&&s.iiif.entities.AnnotationPage[o]||null,[o]),i=(0,Ee.useCallback)((s,l)=>{if(o){if(Pa(s)){let m=s;m.__vault||m.bindToVault(e),s=typeof m.source=="string"?m.source:m.source.id,t.current[s]=m}else typeof s!="string"&&(s=s.id);let u=e.get({id:o,type:"AnnotationPage"}),c=e.get({id:s,type:"Annotation"});u&&c&&(u.items.find(m=>m.id===c.id)||n(Gn.entityActions.addReference({id:o,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[o]),a=(0,Ee.useCallback)(s=>{o&&(Pa(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:o,type:"AnnotationPage"})&&n(Gn.entityActions.removeReference({id:o,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[o]);return[r,{addAnnotation:i,removeAnnotation:a}]}var Ta=require("react/jsx-runtime"),Aa=(0,Mt.createContext)(null);function Sr(){let e=(0,Mt.useContext)(Aa);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function xr({children:e}){let[t,{addAnnotation:n,removeAnnotation:o}]=vr();return(0,Ta.jsx)(Aa.Provider,{value:(0,Mt.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:o}),[t]),children:e})}var ut=require("react/jsx-runtime");function br({children:e}){let{strategy:t}=H(),[n]=Sr();return t.type!=="images"?null:(0,ut.jsxs)(ut.Fragment,{children:[n?(0,ut.jsx)(Fe,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(o=>(0,ut.jsx)(Fe,{page:o},o.id)):null,e]})}var _e=require("react");var Ia=require("react"),Cr=(e,t=[])=>{let n=k();(0,Ia.useEffect)(()=>{e(n)},[n,...t])};var Qn=Z(require("react"),1),wa=require("@iiif/helpers/image-service"),ka=Qn.default.createContext(new wa.ImageServiceLoader);function nn(){return(0,Qn.useContext)(ka)}var Ma=require("@iiif/helpers/thumbnail");function Ne(e,t,{canvasId:n,manifestId:o}={}){let r=k(),i=nn(),a=(0,_e.useMemo)(()=>(0,Ma.createThumbnailHelper)(r,{imageServiceLoader:i}),[r,i]),[s,l]=(0,_e.useState)(),u=$(o?{id:o}:void 0),c=T(n?{id:n}:void 0),m=c||u,d=(0,_e.useRef)(!1);if((0,_e.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!m)throw new Error("Must be called under a manifest or canvas context.");return Cr(f=>{a.getBestThumbnailAtSize(m,e,t).then(h=>{h.best&&!d.current&&l(h.best)})},[m]),s}var Rr=require("react/jsx-runtime");function mt({x:e=0,y:t=0}){let n=T(),o=Ne({maxWidth:256,maxHeight:256});return!n||!o||o.type!=="fixed"?null:(0,Rr.jsx)("world-object",{height:n.height,width:n.width,x:e,y:t,children:(0,Rr.jsx)("world-image",{uri:o.id,target:{x:0,y:0,width:n.width,height:n.height},display:o.width&&o.height?{width:o.width,height:o.height}:void 0,crop:void 0})})}var Xn=require("react/jsx-runtime");function Pr({as:e}){let{strategy:t}=H(),{renderMediaControls:n,mediaControlsDeps:o}=ie();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Xn.jsxs)(Un,{media:t.media,mediaControlsDeps:o,audioCopmonent:e,children:[(0,Xn.jsx)(mt,{}),n?n(t):null]},t.media.url)}var Er=require("@atlas-viewer/atlas"),ro=require("react"),Nr=require("zustand");var Zn=require("react"),Ea=require("zustand"),Na=require("react/jsx-runtime"),Ar=(0,Zn.createContext)(null);Ar.displayName="ComplexTimeline";function Tr({children:e,store:t}){return(0,Na.jsx)(Ar.Provider,{value:t,children:e})}function Bl(e){let t=(0,Zn.useContext)(Ar);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,Ea.useStore)(t,e)}var La=Z(require("mitt"),1),za=require("zustand/vanilla");function Va({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:o}){if(o<=n){let r=t.findIndex(s=>s.time>n);if(r===-1)return[e,[]];let 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 Oa({complexTimeline:e,startTime:t=0}){let n=(0,La.default)(),o={},r={progress:null,currentTime:null},i=0,a=null,s=0,l=null;function u(){let g=S.getState().visibleElements,y=o,C=[],R=Object.keys(y);for(let P of R){let A=y[P],I=g[P];A&&I&&C.push(A)}return C}function c(){return Object.keys(o).map(g=>o[g])}function m(v){r.currentTime&&(r.currentTime.innerHTML=Wn(v),r.progress&&(r.progress.style.width=`${v/e.duration*100}%`))}let d=()=>{let v=S.getState(),g=v.currentPrime;if(!g)return;let y=o,C=v.visibleElements,R=Object.keys(y);for(let P of R){let A=y[P],I=C[P];if(A&&P!==g.id&&I){let O=s-I.time*1e3;Math.abs(s-I.time*1e3-A.currentTime*1e3)>300&&(A.currentTime=O/1e3)}}},f=(v=0)=>{let g=v-i,y=S.getState();if(y.isPlaying){let C=y.currentPrime;if(C){let I=o[C.id];I&&(I.paused?s+=g:s=(C.time+I.currentTime)*1e3)}else s+=g;let R=s/1e3;if(R>y.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),h(),m(0);return}m(R);let[P,A]=Va({currentTime:R,currentKeyFrameIndex:y.nextKeyframeIndex,keyframes:y.complexTimeline.keyframes,targetTime:R});A.length&&y.applyKeyframes(P,A)}i=v,a=requestAnimationFrame(f)},h=()=>{a&&cancelAnimationFrame(a)},p=(v,g)=>{},S=(0,za.createStore)((v,g)=>({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:()=>{g().clockRunning||(f(),l=setInterval(d,500)),v({clockRunning:!0,clockStartRequests:g().clockStartRequests+1})},applyKeyframes(y,C){let R=g(),P={...R.visibleElements},A=R.currentPrime;for(let I of C)I.type==="enter"&&(P[I.id]=I,n.emit("complex-timeline.enter",{id:I.id})),I.type==="exit"&&(P[I.id]=null,n.emit("complex-timeline.exit",{id:I.id})),I.isPrime&&(A=I);v({nextKeyframeIndex:y,visibleElements:P,currentPrime:A})},stopClock:()=>{let y=g().clockStartRequests;if(y!==0){if(y===1){h(),l&&clearInterval(l),v({clockRunning:!1,clockStartRequests:0});return}v({clockStartRequests:y-1})}},setElement:(y,C)=>{o[y]=C;let R=Object.keys(o),P=g().complexTimeline;p(C,y),P.items.filter(I=>I.type!=="Image"&&I.type!=="Text").every(I=>R.includes(I.annotationId))&&!g().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:P}),v({isReady:!0}))},removeElement:y=>{delete o[y]},mute(){for(let y of c())y.muted=!0;v({isMuted:!0})},unmute(){for(let y of c())y.muted=!1;v({isMuted:!1})},play(){if(!g().isPlaying){for(let C of u())C.play();v({isPlaying:!0})}},pause(){if(g().isPlaying){for(let C of u())C.pause();v({isPlaying:!1})}},playPause(){let y=g();y.isPlaying?y.pause():y.play()},setDurationPercent(y){let R=g().duration*y;g().setTime(R)},setTime(y){let C=g(),R=s/1e3,P=typeof y=="function"?y(R):y,A=C.nextKeyframeIndex;if(R>P){v({visibleElements:{},currentPrime:null});let N=Object.keys(C.visibleElements);for(let V of N)n.emit("complex-timeline.exit",{id:V});R=0,A=0}let[I,O]=Va({currentTime:R,currentKeyFrameIndex:A,keyframes:C.complexTimeline.keyframes,targetTime:P});C.applyKeyframes(I,O),s=P*1e3;let M=S.getState().visibleElements,L=o,w=Object.keys(M);for(let N of w){let V=M[N];if(V){let Pe=L[N];Pe&&(Pe.currentTime=(s-V.time*1e3)/1e3)}}m(P)},setVolume(y){for(let C of c())C.volume=Math.min(1,Math.max(0,y/100));v({volume:y})},toggleMute(){let y=g();y.isMuted?(y.unmute(),v({isMuted:!1})):(y.mute(),v({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(y){r.progress=y},setCurrentTimeElement(y){r.currentTime=y},clearCurrentTimeElement(){r.currentTime=null}}));return n.on("complex-timeline.enter",v=>{let g=S.getState(),y=v.id,C=o[y];C&&g.isPlaying&&C.play()}),n.on("complex-timeline.exit",v=>{let g=S.getState(),y=v.id,C=o[y];C&&(C.currentTime=0,C.pause())}),S.getState().setTime(t),{store:S,emitter:n}}var Nt=require("react");var Qa=require("@atlas-viewer/atlas"),Xa=require("@iiif/parser/image-3");var Jn=Z(require("react"),1),Ba=require("@iiif/helpers/image-service"),on=require("zustand"),qa=Jn.default.createContext(Ba.imageServices.store);qa.displayName="ImageServicesHelper";function eo(){return(0,Jn.useContext)(qa)}function Ha(e){let t=eo();return(0,on.useStore)(t,({loaded:n})=>n[e])}function Et(){let e=eo();return(0,on.useStore)(e,({loadServiceSync:t})=>t)}function Da(){let e=eo();return(0,on.useStore)(e,({loaded:t})=>t)}function Fa(){let e=eo();return(0,on.useStore)(e,({loadService:t})=>t)}var be=Z(require("react"),1),xe=require("react/jsx-runtime"),Wa=be.default.createContext("en"),Ua=be.default.createContext({}),_a=be.default.createContext(null);function ql(e){return(0,xe.jsx)(Ua.Provider,{value:e.translations,children:e.children})}function Hl(e){return(0,xe.jsx)(Wa.Provider,{value:e.language,children:e.children})}function Dl(e){return(0,xe.jsx)(_a.Provider,{value:e.convert,children:e.children})}function Ir(){return be.default.useContext(_a)}function to(){return be.default.useContext(Wa)}function wr(){return be.default.useContext(Ua)}function $a(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Ya({as:e,language:t,children:n,viewingDirection:o,...r}){let i=to();return(0,be.useMemo)(()=>$a(i)===$a(t),[i,t])?e?(0,xe.jsx)(e,{...r,children:n}):(0,xe.jsx)("span",{...r,children:n}):e?(0,xe.jsx)(e,{...r,lang:t,dir:o,children:n}):(0,xe.jsx)("span",{...r,lang:t,dir:o,children:n})}function Ka(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let o=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(o&&t.indexOf(o)!==-1)return o;for(let r of n)if(t.indexOf(r)!==-1)return r;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var ja=(e,t=[])=>{let n=to();return(0,be.useMemo)(()=>{let o=e();return Ka(n,o,[])},[n,...t])};function dt(e,t,n,o){return t?n?n(e[t]||t,o||"none"):e[t]||t:""}function Ga(e,t,n=`
|
|
16
|
+
`,o={}){let r=Ir(),i=ja(()=>Object.keys(e||{}),[e]);return[(0,be.useMemo)(()=>{if(!e)return dt(o,t,r)||"";if(typeof e=="string")return dt(o,e,r);let a=i?e[i]:void 0;return a?typeof a=="string"?a:a.map(s=>dt(o,s,r,i)).join(n):""},[i,t,e]),i]}function Fl(){let e=to(),t=wr(),n=Ir();return function(r,i="",a=`
|
|
17
|
+
`,s=t){let l=Object.keys(r||{}),u=Ka(e,l,[]);if(!r)return dt(s,i,n)||"";if(typeof r=="string")return dt(s,r,n);let c=u?r[u]:void 0;return c?typeof c=="string"?dt(s,c,n,u):c.map(m=>dt(s,m,n,u)).join(typeof a<"u"?a:`
|
|
18
|
+
`):""}}function ue({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:r,...i}){let a=wr(),[s,l]=Ga(o,t,r,a);return l?(0,xe.jsx)(Ya,{...i,as:e,language:l,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,xe.jsx)(e,{...i,children:s}):(0,xe.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var kr=require("@iiif/parser/image-3"),no=require("react"),pt=require("react/jsx-runtime"),Mr=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],r=e.enableThumbnail,i=e.enableSizes,a=(0,no.useMemo)(()=>{let u=e.tiles.imageService.id||e.tiles.imageService["@id"];return u?.endsWith("/info.json")?u.slice(0,-1*10):u},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,no.useMemo)(()=>{let u=e.tiles.imageService.tiles||[];if(!u.length){let c=e.width,m=[1],d=1;for(;2**d<c;)d=d*2,m.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,kr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:m}]:(0,kr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:m}]:[]}return u},[e.tiles.imageService,e.width]),l=(0,no.useMemo)(()=>{let u=e.tiles.imageService;return(u?u["@context"]?Array.isArray(u["@context"])?u["@context"]:[u["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,pt.jsx)("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,pt.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,pt.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&&o.map((u,c)=>(0,pt.jsx)("world-image",{uri:`${a}/full/${u.width},${l?u.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:u.width,height:u.height},crop:e.crop},c)),s.map(u=>(u.scaleFactors||[]).map(c=>(0,pt.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:u,scaleFactor:c,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${c}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var pe=require("react/jsx-runtime");function $l({resource:e,heading:t,note:n,extra:o}){return o?(0,pe.jsx)(Qa.HTMLPortal,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,pe.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,pe.jsxs)("div",{children:[(0,pe.jsx)(ue,{children:t||"Not authorised"}),n&&(0,pe.jsx)("p",{children:(0,pe.jsx)(ue,{children:n})}),(0,pe.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Za({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:r,renderOptions:i,rotation:a}){let s=Ko(),l=(0,Xa.getId)(e.service),u=Ha(l),c=Et(),m=u?.service;c(e.service,e);let d=m&&u?.status==="done",f=(m?.preferredFormats||[])[0],h=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,S=p.width||e.width||0,v=p.height||e.height||0,g=0,y=0,C=e.target?.spatial.width||S,R=e.target?.spatial.height||v,P=C,A=R;return(a===90||a===270)&&([C,R]=[R,C],g=(P-C)/2,y=(A-R)/2),(0,pe.jsx)(Mr,{enableThumbnail:r,renderOptions:i,rotation:a,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:S,imageService:p,thumbnail:h},enableSizes:o,x:g,y,format:f,width:C,height:R,crop:n})}return(0,pe.jsx)(jo,{resource:e.service,errorComponent:$l,extra:e,children:p=>{let S=p.width||e.width||0,v=p.height||e.height||0,g=0,y=0,C=e.target?.spatial.width||S,R=e.target?.spatial.height||v,P=C,A=R;return(a===90||a===270)&&([C,R]=[R,C],g=(P-C)/2,y=(A-R)/2),(0,pe.jsx)(Mr,{enableThumbnail:r,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:S,imageService:p,thumbnail:h},rotation:a,format:f,enableSizes:o,x:g,y,width:C,height:R,crop:n})}},e.id)}var Ye=require("react/jsx-runtime");function Ke({id:e,image:t,thumbnail:n,isStatic:o,x:r=0,y:i=0,children:a,selector:s,onClick:l,enableSizes:u,enableAnnotations:c}){let m=(0,Nt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,Nt.useMemo)(()=>{if(typeof t.rotation<"u")return t.rotation;if(!t.annotation)return 0;let C=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(C&&C.selector?.type==="ImageApiSelector")return Number(C.selector.rotation)},[t]),f=!!t.service,h=r+t.target.spatial.x,p=i+t.target.spatial.y,S=t.target.spatial.width,v=t.target.spatial.height,g=t.target.spatial.width,y=t.target.spatial.height;return(d===90||d===270)&&([g,y]=[y,g],f||([S,v]=[v,S],h+=(t.target.spatial.width-S)/2,p+=(t.target.spatial.height-v)/2)),(0,Ye.jsxs)("world-object",{x:h,y:p,width:S,height:v,onClick:l,rotation:f?0:d,children:[t.service?(0,Ye.jsxs)(Nt.Fragment,{children:[(0,Ye.jsx)(Za,{image:t,thumbnail:n,crop:m,enableSizes:u,rotation:d}),a]},"service"):(0,Ye.jsxs)(Nt.Fragment,{children:[(0,Ye.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:g,height:y},display:g&&y?{width:g,height:y}:void 0,crop:m}),a]},"no-service"),c&&t.annotationPages?t.annotationPages.map(C=>(0,Ye.jsx)(Fe,{page:C,className:"image-service-annotation",ignoreTargetId:!0},C.id)):null]},e+(f?"server":"no-service"))}var Ja=require("@atlas-viewer/atlas");var Ve=require("react/jsx-runtime");function oo({strategy:e,onClickPaintingAnnotation:t}){return(0,Ve.jsx)(Ve.Fragment,{children:e.items.map((n,o)=>(0,Ve.jsx)(Ve.Fragment,{children:(0,Ve.jsx)(Ja.HTMLPortal,{onClick:t?r=>{r.stopPropagation(),t(n.annotationId,n,r)}:void 0,target:n.target?.spatial||void 0,children:(0,Ve.jsx)("div",{"data-textual-content":!0,children:(0,Ve.jsx)(ue,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}var fe=require("react/jsx-runtime");function es({strategy:e,children:t}){let{store:n}=(0,ro.useMemo)(()=>Oa({complexTimeline:e}),[e]),o=(0,Nr.useStore)(n,a=>a.isReady),r=(0,Nr.useStore)(n,a=>a.visibleElements);function i(a){return s=>{s&&n.getState().setElement(a,s)}}return(0,ro.useLayoutEffect)(()=>{if(o){let{startClock:a,stopClock:s}=n.getState();return a(),()=>{s()}}},[e,o]),Q("portal","custom-controls",Tr,{store:n,children:t},[o]),(0,fe.jsxs)(fe.Fragment,{children:[e.items.map(a=>a.type!=="Image"||!r[a.annotationId]?null:(0,fe.jsx)(Ke,{image:a,id:a.annotationId},a.id)),e.items.map((a,s)=>a.type!=="Text"||!r[a.annotationId]?null:(0,fe.jsx)(oo,{strategy:{type:"textual-content",items:[a]}},s)),e.items.map((a,s)=>a.type!=="Video"||!a.target.spatial?null:(0,fe.jsx)(Er.HTMLPortal,{target:a.target.spatial,children:(0,fe.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,fe.jsx)(Er.HTMLPortal,{children:(0,fe.jsx)("audio",{ref:i(a.annotationId),src:a.url})},s)),e.highlights.map(({annotation:a})=>r[a.id]?(0,fe.jsx)(at,{id:a.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},a.id):null)]})}var ts=require("react/jsx-runtime");function Vr(){let{strategy:e}=H(),{renderComplexTimelineControls:t}=ie();return e.type!=="complex-timeline"?null:(0,ts.jsx)(es,{strategy:e,children:t?t(e):null})}var ns=require("react/jsx-runtime");function io({style:e}){let t=T();return!t||!t.height||!t.width?null:(0,ns.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var os=require("react/jsx-runtime");function Lr({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=H();return n.type!=="empty"&&!t?null:(0,os.jsx)(io,{style:e})}var ao=require("react"),Ce=(0,ao.createContext)(null);function rn(){return(0,ao.useContext)(Ce)}var Vt=require("react/jsx-runtime");function zr({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,children:r}){let{strategy:i}=H(),{renderViewerControls:a,viewControlsDeps:s}=ie(),l=T(),u=rn(),c=Ne({maxWidth:256,maxHeight:256});return Q(u&&i.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${l?.id}`,Ce.Provider,a?{value:u||null,children:a(i)}:{},[l,u,i,...s||[]]),i.type!=="images"?null:(0,Vt.jsxs)(Vt.Fragment,{children:[i.images.map((m,d)=>(0,Vt.jsx)(Ke,{isStatic:e,image:m,id:m.id,thumbnail:d===0?c:void 0,selector:m.selector,enableSizes:t,enableAnnotations:n,onClick:o?f=>{o(m.annotationId,m,f)}:void 0},m.id+d)),r]})}var Lt=require("react/jsx-runtime");function Or({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=H(),{renderViewerControls:o,viewControlsDeps:r}=ie(),i=rn(),a=T();return Q(i&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${a?.id}`,Ce.Provider,o?{value:i||null,children:o(n)}:{},[a,i,n,...r||[]]),n.type!=="textual-content"?null:(0,Lt.jsxs)(Lt.Fragment,{children:[(0,Lt.jsx)(oo,{strategy:n,onClickPaintingAnnotation:e}),t]})}var an=require("react/jsx-runtime");function Br({element:e,media:t,startTime:n,playPause:o,poster:r}){let i="div",a=n?`${t.url}#t=${n}`:t.url;return(0,an.jsxs)(i,{className:"video-container",part:"video-container",onClick:o,children:[(0,an.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,
|
|
31
|
+
`}),(0,an.jsx)("video",{poster:r,ref:e,src:a,style:{width:"100%",objectFit:"contain"}})]})}function so({media:e,mediaControlsDeps:t,children:n,videoComponent:o=Br,captions:r}){let i=T(),a=en(),s=i&&i.placeholderCanvas&&i.placeholderCanvas.id||void 0,l=Ne({},!1,{canvasId:s}),[{element:u,currentTime:c,progress:m},d,f]=st({duration:e.duration});return Q("overlay","video-element",o,{element:u,media:e,playPause:f.playPause,poster:l?.id,canvas:i,startTime:a?a.startTime:null,captions:r},[l]),Q("portal","custom-controls",Jt,{state:d,actions:f,currentTime:c,progress:m,element:u,children:n},[c,d,e,...t||[]]),null}var lo=require("react/jsx-runtime");function qr({as:e}){let{strategy:t}=H(),{renderMediaControls:n,mediaControlsDeps:o}=ie();return t.type!=="media"||t.media.type!=="Video"?null:(0,lo.jsxs)(so,{captions:t.captions,media:t.media,mediaControlsDeps:o,videoComponent:e,children:[(0,lo.jsx)(mt,{}),n?n(t):null]},t.media.url)}var rs=require("react"),sn=require("react/jsx-runtime");function Wl({element:e,media:t,playPause:n}){let o=(0,rs.useRef)(null);return t.youTubeId?(0,sn.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,sn.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,ao.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 is({media:e,mediaControlsDeps:t,children:o}){let[{element:n,currentTime:r,progress:i},a,s]=st({duration:e.duration});return Q("overlay","video-element",Dl,{element:n,media:e,playPause:s.playPause}),null}var un=require("react/jsx-runtime");function Hr(){let{strategy:e}=H(),{renderMediaControls:t,mediaControlsDeps:o}=re();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,un.jsxs)(is,{media:e.media,mediaControlsDeps:o,children:[(0,un.jsx)(mt,{}),t?t(e):null]})}var gn=require("react"),Re=require("zustand");var dn=require("@atlas-viewer/atlas"),Ge=require("react");var as=require("polygon-editor"),ee=require("react");var mn=require("zustand");function Dr(e){let t=q(),o=(0,mn.useStore)(t,i=>i.polygons),n=(0,mn.useStore)(t,i=>i.polygonState),r=(0,mn.useStore)(t,i=>i.polygon);return nt("atlas.polygon-render",({state:i,slowState:a,dt:s})=>{e(i,a,s)}),{currentShape:r,state:n,helper:o}}var E=require("react/jsx-runtime"),Le=(0,as.createSvgHelpers)(),ss={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function Fr(e){let{image:t}=e,o={...ss,...e.theme||{}},n=(0,ee.useRef)(),r=(0,ee.useRef)(),i=(0,ee.useRef)(),a=(0,ee.useRef)(),s=(0,ee.useRef)(),l=(0,ee.useRef)(),c=(0,ee.useRef)(),u=(0,ee.useRef)(),m=(0,ee.useRef)(),d=(0,ee.useRef)(),[f,h]=(0,ee.useState)(null),[p,S]=(0,ee.useState)(!1),{helper:v,state:g,currentShape:y}=Dr((M,L)=>{if(M.closestLineIndex,Le.updateTransitionBoundingBox(i.current,M,L),Le.updateBoundingBoxPolygon(n.current,M,L),Le.updateBoundingBoxPolygon(r.current,M,L),Le.updateTransitionShape(c.current,M,L),Le.updateClosestLinePointTransform(s.current,M,L),Le.updateSelectBox(a.current,M,L),Le.updatePointLine(u.current,M,L),Le.updateDrawPreview(l.current,M,L,3),Le.updateLineBox(m.current,M),h(M.transitionDirection),S(M.transitionRotate),M.closestLineIndex!==-1&&d.current){let w=M.polygon,N=w.points[M.closestLineIndex],V=w.points[(M.closestLineIndex+1)%w.points.length];N&&V&&d.current.setAttribute("points",`${N[0]},${N[1]} ${V[0]},${V[1]}`)}});(0,ee.useEffect)(()=>{let M=()=>{v.modifiers.reset()};return document.addEventListener("mouseleave",M),()=>{document.removeEventListener("mouseleave",M)}},[]);let C=(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,E.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke,className:"marker"}),(0,E.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.controlFill})]}),(0,E.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,E.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.activeLineStroke,className:"marker"})}),(0,E.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,E.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke}),(0,E.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.activeLineStroke})]}),(0,E.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,E.jsx)("rect",{width:"10",height:"10",fill:o.lineStroke}),(0,E.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:o.controlFill})]})]}),R=y?y.open?"polyline":"polygon":null,P=!g.showBoundingBox&&g.closestPoint!==null&&g.actionIntentType==="select-point",A=g.actionIntentType==="add-open-point",I=g.transitionIntentType==="split-line",O=g.transitioning&&g.selectedStamp&&g.transitionIntentType==="stamp-shape",G=y&&R?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(R,{fill:(!g.transitioning||g.transitionIntentType==="select-multiple-points")&&!y.open?o.shapeFill:"none",strokeWidth:O||g.showBoundingBox&&g.boxMode||g.transitioning&&g.transitionIntentType==="split-line"||g.transitioning&&g.transitionIntentType==="move-point"?0:2,stroke:o.shapeStroke,points:y.points.map(M=>M.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:g.showBoundingBox?void 0:g.boxMode?"url(#resizer)":"url(#dot)",markerMid:g.showBoundingBox?void 0:g.boxMode?"url(#resizer)":"url(#dot)",markerEnd:g.showBoundingBox?void 0:g.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}),g.currentTool==="lineBox"&&g.actionIntentType==="close-line-box"?(0,E.jsx)("polygon",{fill:o.shapeFill,ref:m,stroke:o.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,g.transitionIntentType==="draw-shape"&&g.transitioning?(0,E.jsx)("polyline",{ref:l,fill:"none",stroke:o.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(g.transitioning&&g.transitionIntentType==="move-point")&&!(g.transitioning&&g.transitionIntentType==="stamp-shape")&&!g.showBoundingBox&&g.selectedPoints&&g.selectedPoints.length?(0,E.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:y.points.filter((M,L)=>g.selectedPoints?.includes(L)).map(M=>M.join(",")).join(" "),opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}):null,P&&!g.transitioning&&g.closestPoint!==null&&y.points[g.closestPoint]?(0,E.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:o.activeLineStroke,points:`${y.points[g.closestPoint][0]},${y.points[g.closestPoint][1]}`,opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}):null,!g.transitioning&&(g.actionIntentType==="add-open-point"||g.actionIntentType==="close-shape"||g.actionIntentType==="close-shape-line")?(0,E.jsx)("polyline",{stroke:o.activeLineStroke,ref:u,strokeWidth:g.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,g.hasClosestLine&&!g.showBoundingBox&&!g.transitioning&&g.currentTool!=="box"&&g.transitionIntentType==="split-line"?(0,E.jsx)("g",{children:(0,E.jsx)("polyline",{ref:d,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:o.activeLineStroke,strokeWidth:3})}):null,g.hasClosestLine&&!g.showBoundingBox&&!g.transitioning&&g.currentTool!=="box"&&g.transitionIntentType==="split-line"?(0,E.jsx)("g",{ref:s,children:(0,E.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,g.transitioning?(0,E.jsx)(R,{ref:c,fill:y.open?"none":o.shapeFill,stroke:g.transitionIntentType==="stamp-shape"?o.activeLineStroke:o.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(y.open,2)}):null,g.transitioning&&g.transitionIntentType==="select-multiple-points"?(0,E.jsx)("rect",{ref:a,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,g.showBoundingBox&&!O?(0,E.jsxs)(E.Fragment,{children:[(0,E.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,E.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:v.state.slowState.currentTool,setCurrentTool:v.tools.setTool,helper:v,currentShape:y,state:g,isAddingPoint:A,isSplitting:I,isStamping:O,isHoveringPoint:P,transitionDirection:f,transitionRotate:p,defs:C,editor:G}}var je=require("react/jsx-runtime");function ls(e){let t=(0,dn.useAtlas)(),{image:o}=e,{helper:n,defs:r,editor:i,state:a,transitionDirection:s,isSplitting:l,transitionRotate:c,isHoveringPoint:u,isAddingPoint:m}=Fr({image:e.image,theme:e.theme}),d=(0,Ge.useCallback)(p=>{p.button!==2&&n.pointer([[~~p.atlas.x,~~p.atlas.y]])},[n]),f=(0,Ge.useCallback)(p=>{p.button!==2&&n.pointerDown()},[n]),h=(0,Ge.useCallback)(p=>{p.button!==2&&n.pointerUp()},[n]);return(0,Ge.useEffect)(()=>{let p=S=>{n.key.up(S.key)};return document.addEventListener("keyup",p),()=>{document.removeEventListener("keyup",p)}},[n]),(0,Ge.useEffect)(()=>{let p=S=>{S.target&&["INPUT","TEXTAREA"].includes(S.target.tagName)||S.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||n.key.down(S.key)};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[n]),(0,Ge.useEffect)(()=>{let p=[];return s&&p.push(`atlas-cursor-${s}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&p.push("atlas-cursor-cut"),(u||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&p.push("atlas-cursor-move"),m&&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,m,u,l,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,s,c]),(0,je.jsx)("world-object",{height:o.height,width:o.width,onMouseMove:d,onMouseDown:f,onMouseUp:h,onMouseLeave:n.blur,children:(0,je.jsx)(dn.HTMLPortal,{relative:!0,interactive:!1,children:(0,je.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,je.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,je.jsx)("title",{children:"Annotation Editor"}),(0,je.jsx)("defs",{children:r}),i]})})})})}var hs=require("react"),ys=require("zustand");var fs=require("@atlas-viewer/atlas"),le=require("@floating-ui/react"),gs=require("react-dom");var Y=Z(require("react"),1);var cs=Z(require("react"),1),pn=require("react"),us=Z(require("mitt"),1),ds=require("react/jsx-runtime"),ms=(0,us.default)(),ft=(0,pn.createContext)({emitter:ms});ft.displayName="Events";function so(){return cs.default.useContext(ft).emitter}function Fl({emitter:e,children:t}){return(0,ds.jsx)(ft.Provider,{value:(0,pn.useMemo)(()=>({emitter:e}),[e]),children:t})}var me=require("react/jsx-runtime"),lo=Y.default.createContext({});function co(){let e=(0,Y.useContext)(lo),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 ps(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,me.jsx)(i,{value:r,children:o})}return o}function $l(e){let t=(0,Y.useContext)(lo),o=(0,Y.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,me.jsx)(lo.Provider,{value:o,children:e.children})}function uo(){return{VaultContext:(0,Y.useContext)(Be),ResourceContext:(0,Y.useContext)(Ft),SimpleViewerReactContext:(0,Y.useContext)(Pt),VisibleCanvasReactContext:(0,Y.useContext)(Ze),AuthRContext:(0,Y.useContext)(et),SearchReactContext:(0,Y.useContext)(Rt),ReactEventContext:(0,Y.useContext)(ft),ContextBridgeReactContext:(0,Y.useContext)(lo),StrategyReactContext:(0,Y.useContext)(We),AtlasStoreReactContext:(0,Y.useContext)(rt)}}function mo(e){return(0,me.jsx)(Ie,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,me.jsx)(Ze.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,me.jsx)(Pt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,me.jsx)(ft.Provider,{value:e.bridge.ReactEventContext,children:(0,me.jsx)(rt.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,me.jsx)(et.Provider,{value:e.bridge.AuthRContext,children:(0,me.jsx)(Rt.Provider,{value:e.bridge.SearchReactContext,children:(0,me.jsx)(lo.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,me.jsx)(We.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,me.jsx)(ps,{...e.custom,children:e.children}):e.children})})})})})})})})})}var zt=require("react/jsx-runtime");function fn({annotation:e,target:t,children:o,dismissable:n,isOpen:r,onOpenChange:i,placement:a}){let s=uo(),l=co(),{refs:c,floatingStyles:u,context:m}=(0,le.useFloating)({open:r,onOpenChange:i,nodeId:e.id,placement:a||"bottom",middleware:[(0,le.offset)(10),(0,le.shift)(),(0,le.flip)({mainAxis:!0})],whileElementsMounted:le.autoUpdate}),d=(0,le.useDismiss)(m),{getReferenceProps:f,getFloatingProps:h}=(0,le.useInteractions)([n?d:null].filter(p=>p!==null));return(0,zt.jsxs)(fs.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,zt.jsx)("div",{ref:c.setReference,...f(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,gs.createPortal)((0,zt.jsx)(mo,{bridge:s,custom:l,children:(0,zt.jsx)("div",{ref:c.setFloating,style:u,...h(),children:o})}),document.getElementById("atlas-floating-ui"))]})}var po=require("react/jsx-runtime"),vs=(0,ys.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 fo(e,t,o){let{isMenuOpen:n,setIsMenuOpen:r,close:i,open:a,menuPosition:s,setMenuPosition:l,toggle:c}=vs(),u=(0,hs.useCallback)(f=>{o&&(f.preventDefault(),f.stopPropagation(),c(f.atlas))},[c,o]);return[(0,po.jsx)(po.Fragment,{children:o&&n&&(0,po.jsx)(fn,{dismissable:!0,placement:"bottom-start",isOpen:n,onOpenChange:r,annotation:{id:e},target:{x:s.x,y:s.y,height:1,width:1},children:n&&o({canvasId:t,position:s,close:()=>r(!1)})})}),{onContextMenu:u},{open:a,close:i,toggle:c,isMenuOpen:n,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var Ss=require("zustand");function $r(){let e=q();return(0,Ss.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var te=require("react/jsx-runtime");function Wr({theme:e,renderContextMenu:t,children:o}){let n=q(),r=T(),i=(0,Re.useStore)(n,R=>R.polygon),a=(0,Re.useStore)(n,R=>R.polygonState.currentTool),s=(0,Re.useStore)(n,R=>R.mode),l=(0,Re.useStore)(n,R=>R.changeMode),c=(0,Re.useStore)(n,R=>R.polygonState.transitioning),{enabled:u,requestId:m}=(0,Re.useStore)(n,R=>R.tool),d=(0,gn.useMemo)(()=>De(i),[i]),f=$r(),[h,p]=fo("editing-annotation",r?.id,t),S=f?.annotationPopup||o||(0,te.jsx)(xs,{}),v=f?.svgTheme||e,g=()=>{l("sketch")};if(!u||!r||!m||!i)return null;let y=d&&i.id&&!c&&(a==="pointer"||a==="hand"||!i.open)?(0,te.jsx)(fn,{annotation:i,target:d,children:S}):null,C="shape";return s==="explore"?(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(C,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:g,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,te.jsx)(C,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:g,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)"}}),y]}):(0,te.jsxs)(te.Fragment,{children:[t?(0,te.jsx)(C,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:r.width,height:r.height},...p}):null,(0,te.jsx)(ls,{image:r,theme:v}),y,h]})}function xs(){let e=q(),t=(0,Re.useStore)(e,a=>a.changeMode),o=(0,Re.useStore)(e,a=>a.mode),n=(0,Re.useStore)(e,a=>a.completeRequest),r=(0,Re.useStore)(e,a=>a.tool),i=()=>{(0,gn.startTransition)(()=>{n()})};return r.enabled?(0,te.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[o!=="sketch"&&(0,te.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,te.jsx)("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}var Qe=require("react");var Ot=require("react");var bs=require("@iiif/helpers");function Wl(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function go(e,t){let{selector:o,source:n}=(0,bs.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 Ur={makeChoice:()=>{}},ho={type:"unknown"},B=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),_r=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var yo=require("react");function Ul(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function Cs(e,t){return z(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=Ul(o,i);a&&a.views&&a.views[e]&&n.push(i)}return n},[e,t])}function Yr({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 _l(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function vo(e,t={}){let o=k(),n=$(),r=T(),i=Je(),a=(0,yo.useMemo)(()=>Yr({all:t.all,manifest:n,canvas:r,canvases:i}),[t.all,r,i,n]),s=Cs(e,t.all?void 0:a),l=(0,yo.useCallback)(u=>{e&&o.setMetaValue([u,"annotationPageManager","views"],m=>m&&!m[e]?m:{...m||{},[e]:!1})},[e,o]),c=(0,yo.useCallback)((u,m={})=>{if(!e)return;let d=o.getState(),f=[];if(m?.deselectOthers){let h=Object.keys(d.iiif.entities.AnnotationPage);for(let p of h){let S=_l(d,p);S&&S.views&&S.views[e]&&f.push(p)}}for(let h of f)l(h);o.setMetaValue([u,"annotationPageManager","views"],h=>h&&h[e]?h:{...h||{},[e]:!0})},[e,l,o]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:c,setPageDisabled:l}}function Kr(e,t){return z((o,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var Rs=Z(require("mitt"),1),Ps=require("react"),As=require("zustand");var Yl=(0,As.createStore)((e,t)=>({loaded:{},setLoaded:(o,n="done")=>{e(r=>({loaded:{...r.loaded,[o]:n}}))}})),Kl=(0,Rs.default)();Kl.on("loaded",e=>{Yl.getState().setLoaded(e.imageServiceId)});function So(){let e=Et(),t=Da();return[(0,Ps.useCallback)((n,{height:r,width:i})=>n&&e(n,{height:r,width:i},!0),[e]),t]}var gt=require("react");function ze(e={}){let t=Qt(),o=T(e.canvasId?{id:e.canvasId}:void 0);return z((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 Ts=require("@iiif/helpers/painting-annotations");function jr(e,t=[]){let o=k(),n=(0,gt.useMemo)(()=>(0,Ts.createPaintingAnnotationsHelper)(o),[]),r=ze({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,gt.useState)(e?.defaultChoices||[]),s=(0,gt.useMemo)(()=>n.getPaintables(r,i),[o,r,i,...t]),c={makeChoice:(0,gt.useCallback)((u,{deselectOthers:m=!0,deselect:d=!1}={})=>{s.choice&&a(f=>{if(d){let p=f.filter(S=>S!==u);if(p.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return p}if(m)return[u];let h=[...f];if(h.length===0&&s.items.length){let p=s.items[0].resource.id;p&&h.push(p)}return f.indexOf(u)!==-1?f:[...f,u]})},[s.choice])};return[s,c]}var jl=["model/gltf-binary"];function Gr(e,t){let o=t.items[0],n=o.resource;return n.format?jl.indexOf(n.format)===-1?B(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:o.annotationId,annotation:o.annotation}:B("Unknown format")}function hn(e,t){let o=t.items,n=o[0];if(o.length===0||!n)return B("No audio");if(!e.duration)return B("No duration on canvas");if(o.length>1)return B("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:[]}}):B("Unknown audio")}var Qr=require("@iiif/helpers/annotation-targets"),ws=require("@iiif/parser/image-3");function Oe(e){return e.replace(/^http:/,"https:")}function Is(e){if(!(e?.type!=="ImageApiSelector"||typeof e.rotation>"u"))return Xr(e.rotation)}function Xr(e){if(e===null||typeof e>"u"||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}function Gl(e){let t=e.selector||{};return{...e.rotationOrigin||t.rotationOrigin?{rotationOrigin:e.rotationOrigin||t.rotationOrigin}:{},...e.translate||t.translate?{translate:e.translate||t.translate}:{},...e.transform||t.transform?{transform:e.transform||t.transform}:{},...e.style||t.boxStyle?{style:e.style||t.boxStyle}:{},...e.styleClass?{styleClass:e.styleClass}:{}}}function xo(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 B("No resource Identifier");let l=(i.resource.type==="SpecificResource"?Is(i.resource.selector):void 0)??Is(i.selector)??Xr(i.rotation)??Xr(i.selector?.rotation),c=typeof l<"u",u;if(a.service){let y=(0,ws.getImageServices)(a);y[0]&&(u=o(y[0],c?{width:Number(a.width||e.width),height:Number(a.height||e.height)}:e))}let m={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[d,f]=go(e,i.target),h=e.id?.split("?")[0]||"";if(!(Oe(f.id||"")===Oe(e.id)||Oe(decodeURIComponent(f.id||""))===Oe(e.id||"")||Oe(f.id||"")===Oe(h)||Oe(decodeURIComponent(f.id||""))===Oe(h)))continue;let p=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,S=i.resource.type==="SpecificResource"?(0,Qr.expandTarget)(i.resource):null;if(i.selector){let y=(0,Qr.expandTarget)({type:"SpecificResource",source:i.resource,selector:i.selector});y&&(S=y)}let v=S&&S.selector&&(S.selector.type==="BoxSelector"||S.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:S.selector.spatial.x,y:S.selector.spatial.y,width:S.selector.spatial.width,height:S.selector.spatial.height},...typeof S.selector.rotation<"u"?{rotation:S.selector.rotation}:{},...S.selector.rotationOrigin?{rotationOrigin:S.selector.rotationOrigin}:{},...S.selector.translate?{translate:S.selector.translate}:{},...S.selector.transform?{transform:S.selector.transform}:{},...S.selector.boxStyle?{boxStyle:S.selector.boxStyle}:{}}:void 0;u&&!u.id&&(u.id=u["@id"]);let g={id:a.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(c||d||v?a.width:e.width),height:Number(c||d||v?a.height:e.height),...typeof l<"u"?{rotation:l}:{},...Gl(i),service:u,sizes:u&&u.sizes?u.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:d&&d.type!=="PointSelector"?d:m,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};n.push(g)}return{type:"images",image:n[0],images:n,choice:t.choice}}function ks(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=>ks(r,t,n))}return t}function bo(e,t){let o=[];return t.items.forEach(n=>{if(n.resource){let[r]=go(e,n.target);o.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:ks(n.resource),target:r})}}),{type:"textual-content",items:o}}var yn=require("@iiif/helpers");var Ql=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Co(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 B("Only one video source supported");let l=r[0]?.resource,c=!!(l.service||[]).find(p=>(p.profile||"").includes("youtube.com"));if(!c&&s)return B("Video does not have duration");if(!l)return B("Unknown video");if((!l.format||l.format==="text/html")&&!c)return B("Video does not have format");let u=[],m=o.get(e.annotations||[]);for(let p of m){let S=o.get(p.items||[]);for(let v of S)if((v.motivation?Array.isArray(v.motivation||"")?v.motivation:[v.motivation]:[]).includes("supplementing")){let y=o.get(v.body||[]);for(let C of y){let R=C;if(R.type==="Choice")for(let P of R.items){let A=o.get(P);A.format==="text/vtt"&&u.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else R.format==="text/vtt"&&u.push({id:R.id,type:"Text",format:"text/vtt",label:R.label,language:R.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}}},f=(0,yn.expandTarget)(i.target);f.selector&&f.selector.type==="TemporalBoxSelector"&&(d.target=f.selector);let{selector:h}=(0,yn.parseSelector)(i.selector);if(h===null){let p=d.target.temporal.startTime,v=(d.target.temporal.endTime||e.duration)-p;d.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:v}}}else h.type==="TemporalSelector"&&(d.selector=h);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(Ql);if(!p[1])return B("Video is not known youtube video");d.youTubeId=p[1]}return{type:"media",media:d,annotations:{pages:[]},noSpatial:a,captions:u}}var Ms=require("@iiif/helpers");function Zr(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(u){u.choice&&(u.choice.type==="complex-choice"?i.items.push(...u.choice.items):i.items.push(u.choice))}for(let u of t.items){if(u.type==="image"){let m=xo(e,{choice:null,allChoices:null,types:["image"],items:[u]},o);if(m.type==="images"){if(!m.image)continue;s(m),r.items.push(m.image);let d={id:m.image.annotationId,type:"enter",resourceType:"image",time:m.image.target?.temporal?.startTime||0};r.keyframes.push(d);let f={id:m.image.annotationId,type:"exit",resourceType:"image",time:m.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(f)}}if(u.type==="textualbody"){let m=bo(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(m.type==="textual-content"){s(m);let d=m.items[0];r.items.push(d);let f=d.target,h={id:d.annotationId,type:"enter",resourceType:"text",time:f.temporal?.startTime||0};r.keyframes.push(h);let p={id:d.annotationId,type:"exit",resourceType:"text",time:f.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(u.type==="video"){let m=Co(e,{choice:null,allChoices:null,types:["video"],items:[u]},n,!0);if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let f={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(f);let h={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(h)}}if(u.type==="audio"||u.type==="sound"){let m=hn(e,{choice:null,allChoices:null,types:["audio"],items:[u]});if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let f={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(f);let h={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(h)}}}for(let u of a)for(let m of u.items){let d=n.get(m),f=(0,Ms.expandTarget)(d.target,{typeMap:n.getState?.().iiif.mapping});if(f.selector?.temporal){let h={id:d.id,type:"enter",resourceType:"highlight",time:f.selector.temporal.startTime||0};r.keyframes.push(h);let p={id:d.id,type:"exit",resourceType:"highlight",time:f.selector.temporal.endTime||e.duration||0};r.keyframes.push(p)}r.highlights.push({annotation:d,target:f})}r.keyframes.sort((u,m)=>u.time-m.time);let l=[],c=[];for(let u of r.keyframes){if(u.resourceType==="image"||u.resourceType==="text"||u.resourceType==="highlight"){c.push(u);continue}if(u.type==="enter"){l.length===0&&(u.isPrime=!0),l.push(u),c.push(u);continue}if(u.type==="exit"&&(c.push(u),l=l.filter(m=>m.id!==u.id),l.length!==0)){let m=l[0],d={id:m.id,type:"change",isPrime:!0,resourceType:m.resourceType,time:u.time};c.push(d)}}return r.keyframes=c,i.items.length&&(r.choice=i),r}var vn={},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;vn[e]={...vn[e]||{},[t]:{...(vn[e]||{})[t]||{},[o]:a}}},getResourceMeta:(e,t)=>{let o=vn[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 Ro({canvas:e,paintables:t,supports:o,loadImageService:n,vault:r=Jr}){if(!e)return ho;if(t.types.length===0)return o.indexOf("empty")!==-1?_r(e.width,e.height):ho;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?B("Complex timeline not supported"):Zr(e,t,n,r);let i=t.types[0];return i==="image"?o.indexOf("images")===-1?B("Image not supported"):xo(e,t,n):i==="Model"||i==="model"?o.indexOf("3d-model")===-1?B("3D not supported"):Gr(e,t):i==="textualbody"?o.indexOf("textual-content")===-1?B("Textual content not supported"):bo(e,t):i==="sound"||i==="audio"?o.indexOf("media")===-1?B("Media not supported"):hn(e,t):i==="video"?o.indexOf("media")===-1?B("Media not supported"):Co(e,t,r):ho}function ei(e){let t=$(),o=T(),n=k(),r=so(),i=e?.emitter||r,[a,s]=So(),{enabledPageIds:l}=vo(e?.annotationPageManagerId||t?.id||o?.id,{all:!1}),c=Kr(l,"AnnotationPage"),u=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[m,d]=jr(e,[s]);(0,Ot.useEffect)(()=>{let h=p=>{d.makeChoice(p.choiceId,{deselectOthers:p.deselectOthers,deselect:p.deselect})};return i.on("make-choice",h),()=>{i.off("make-choice",h)}},[]);let f=(0,Ot.useMemo)(()=>Ro({canvas:o,paintables:m,supports:u,loadImageService:a,vault:n}),[o,m,n,d.makeChoice]);return(0,Ot.useEffect)(()=>{let h=m.allChoices,p={canvasId:o?.id,manifestId:t?.id};h&&i.emit("choice-change",{choice:h,partOf:p})},[o?.id,m.allChoices]),(0,Ot.useMemo)(()=>f.type==="unknown"?[f,Ur]:[{...f,annotations:{pages:c}},d],[f,c])}var Es=require("@iiif/helpers");var ti=require("react/jsx-runtime");function oi({strategies:e,registerActions:t,defaultChoices:o,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:i,renderViewerControls:a,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,throwOnUnknown:u,children:m}){let d=T(),f=k(),h=(0,Qe.useMemo)(()=>(0,Es.createStylesHelper)(f),[f]),[p,S]=ei({strategies:e||["images"],defaultChoices:o?.map(({id:C})=>C)}),v="choice"in p?p.choice:void 0;if((0,Qe.useEffect)(()=>{t&&t(S)},[p.annotations]),(0,Qe.useEffect)(()=>{n&&n(v)},[v]),(0,Qe.useEffect)(()=>{if(o)for(let C of o)typeof C.opacity<"u"&&h.applyStyles({id:C.id},"atlas",{opacity:C.opacity})},[o]),p.type==="unknown"&&u)throw new Error(p.reason||"Unknown strategy");let g=(0,Qe.useMemo)(()=>({renderMediaControls:i,mediaControlsDeps:r||[],renderViewerControls:a,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:c||[]}),[r,i,a,s,l,c]),y=(0,Qe.useMemo)(()=>({strategy:p,actions:S,choices:"choice"in p?p.choice:[]}),[p,d]);return(0,ti.jsx)(to.Provider,{value:g,children:(0,ti.jsx)(We.Provider,{value:y,children:m})})}var Po=require("react"),ri=require("zustand");var qt=require("react");var ni=(0,qt.createContext)(()=>{});function Ns(e){let t=T(),o=(0,qt.useContext)(ni);(0,qt.useEffect)(()=>t&&t.id?(o(t.id,e),()=>o(t.id,-1)):()=>{},[t,e])}var Vs=require("react/jsx-runtime");function ii({x:e=0,y:t=0,keepCanvasScale:o=!0,renderContextMenu:n,children:r}){let{strategy:i}=H(),a=T(),s=q(),l=Xt(a,["deep-zoom"]),c=(0,ri.useStore)(s,p=>p.setCanvasRelativePosition),u=(0,ri.useStore)(s,p=>p.clearCanvasRelativePosition),[m,d]=fo(`context-menu/${a?.id}`,a?.id,n),f=(0,Po.useMemo)(()=>o?1:Math.max(1,...i.type==="images"?i.images.map(p=>(p.width||0)/p.target?.spatial.width):[]),[o,i]);(0,Po.useEffect)(()=>{if(a)return c(a.id,{x:e,y:t,width:a.width,height:a.height}),()=>{u(a.id)}},[e,t,a,u,c]),(0,Po.useEffect)(()=>{a&&s.getState().reset()},[s,a]),Ns(f);let h=i.type==="images"?i.images.length:0;return a?(0,Vs.jsxs)("world-object",{height:a.height,width:a.width,x:e,y:t,...d,...l,children:[m,r]},`${a.id}/${i.type}/${h}`):null}var ie=require("react/jsx-runtime");function ct({x:e,y:t,onChoiceChange:o,registerActions:n,defaultChoices:r,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,mediaControlsDeps:m,strategies:d,throwOnUnknown:f,backgroundStyle:h,alwaysShowBackground:p,keepCanvasScale:S=!1,enableSizes:v=!1,enableYouTube:g=!0,onClickPaintingAnnotation:y,components:C={},children:R,annotationPopup:P,svgTheme:A,renderContextMenu:I,renderAnnotationContextMenu:O}){return(0,ie.jsxs)(oi,{throwOnUnknown:f,onChoiceChange:o,registerActions:n,strategies:d,defaultChoices:r,mediaControlsDeps:m,renderMediaControls:s,renderViewerControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,children:[(0,ie.jsxs)(ii,{keepCanvasScale:S,x:e,y:t,renderContextMenu:I,children:[(0,ie.jsx)(Lr,{alwaysShowBackground:p,backgroundStyle:h}),(0,ie.jsx)(Vr,{}),(0,ie.jsx)(Or,{}),(0,ie.jsx)(zr,{isStatic:i,enableSizes:v,onClickPaintingAnnotation:y}),(0,ie.jsx)(br,{}),(0,ie.jsx)(gr,{}),(0,ie.jsx)(Pr,{as:C.Audio}),(0,ie.jsx)(Br,{as:C.Video}),g?(0,ie.jsx)(Hr,{}):null,(0,ie.jsx)(Wr,{theme:A,renderContextMenu:O,children:P}),R]}),(0,ie.jsx)(hr,{})]})}var ai=require("react/jsx-runtime");function Ls(e){let t=T();return!t||!t.placeholderCanvas?null:(0,ai.jsx)(de,{canvas:t.placeholderCanvas.id,children:(0,ai.jsx)(ct,{renderViewerControls:e.renderViewerControls})})}var Os=require("@atlas-viewer/atlas"),ae=Z(require("react"),1),qs=require("react-error-boundary"),si=require("zustand");var Sn=require("react");function zs(e,t=2e3){let{currentSequenceIndex:o,sequence:n,items:r}=tt(),i=T(),a=(0,Sn.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=q();(0,Sn.useEffect)(()=>{let c=setInterval(()=>{if(e&&t!==-1){let u={x:e.x,y:e.y,width:e.width,height:e.height},m=s.getState().canvasRelativePositions,d={};for(let f of a){let h=m[f.id];if(h){let p=h.x,S=h.y,v=h.width,g=h.height,y={x:Math.max(p,u.x),y:Math.max(S,u.y),width:Math.min(p+v,u.x+u.width)-Math.max(p,u.x),height:Math.min(S+g,u.y+u.height)-Math.max(S,u.y)};y.width<=0||y.height<=0||(d[f.id]={x:y.x-h.x,y:y.y-h.y,width:y.width,height:y.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(c)}},[a,e,s,t])}var Bt=require("react/jsx-runtime");function xn({width:e,style:t,height:o,error:n,resetErrorBoundary:r}){return(0,Bt.jsxs)("div",{style:{width:e,height:o,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Bt.jsx)("h3",{children:"Error occurred"}),(0,Bt.jsx)("p",{children:n.message}),(0,Bt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var D=require("react/jsx-runtime");function bn(e){let t=q();return(0,D.jsx)(It,{name:e.name,existing:t,children:(0,D.jsx)(Xl,{...e})})}function Xl({name:e,children:t,errorFallback:o,outerContainerProps:n={},worldScale:r,updateViewportTimeout:i,...a}){let s=q(),l=(0,si.useStore)(s,w=>w.mode),c=(0,si.useStore)(s,w=>w.setAtlasRuntime),[u,m]=(0,ae.useState)(),d=co(),f=uo(),h=o||xn,[p,S]=(0,ae.useState)({}),v=Object.entries(p),[g,y]=(0,ae.useState)({}),C=Object.entries(g),[R,P]=(0,ae.useState)({}),{worldScale:A,runtimeOptions:I}=(0,ae.useMemo)(()=>{if(Object.values(R).length===0)return{worldScale:1,runtimeOptions:a.runtimeOptions||{maxOverZoom:1}};let N=Math.max(...Object.values(R));return{worldScale:N,runtimeOptions:{maxOverZoom:N||1,...a.runtimeOptions||{}}}},[R,a.runtimeOptions]);zs(u?.runtime,i);let O=(0,ae.useCallback)((w,N)=>{P(V=>{if(N===-1){let{[w]:Pe,...he}=V;return he}return{...V,[w]:N}})},[]),G=(0,ae.useCallback)((w,N,V)=>{S(({[w]:Pe,...he})=>N?{...he,[w]:{element:N,props:V}}:he)},[]),M=(0,ae.useCallback)((w,N,V)=>{y(({[w]:Pe,...he})=>N?{...he,[w]:{element:N,props:V}}:he)},[]),L=(0,ae.useCallback)(w=>{m(w),c(w.runtime),a.onCreated&&a.onCreated(w)},[a.onCreated,c]);return(0,D.jsxs)(qs.ErrorBoundary,{resetKeys:[],fallbackRender:w=>(0,D.jsx)(h,{...a,...w}),children:[(0,D.jsx)(Os.AtlasAuto,{...a,mode:l,containerProps:{style:{position:"relative"},...a.containerProps||{}},htmlChildren:(0,D.jsx)(D.Fragment,{children:v.map(([w,{element:N,props:V}])=>(0,D.jsx)(ae.default.Fragment,{children:(0,D.jsx)(N,{...V||{}})},w))}),onCreated:L,runtimeOptions:I,children:(0,D.jsx)(It,{name:e,existing:s,children:(0,D.jsx)(Ce.Provider,{value:u,children:(0,D.jsx)(ni.Provider,{value:O,children:(0,D.jsx)(mr.Provider,{value:G,children:(0,D.jsx)(dr.Provider,{value:M,children:(0,D.jsx)(mo,{bridge:f,custom:d,children:(0,D.jsx)(xr,{children:t})})})})})})})}),(0,D.jsx)("div",{children:C.map(([w,{element:N,props:V}])=>(0,D.jsx)(ae.default.Fragment,{children:(0,D.jsx)(N,{...V||{}})},w))}),(0,D.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var oe=require("react/jsx-runtime"),Zl=(0,ht.forwardRef)(function(t,o){let n=$(),r=Je(),i=tt(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,ht.useImperativeHandle)(o,()=>i,[i]),!n)return(0,oe.jsx)("div",{});let c=0,u=n.viewingDirection==="top-to-bottom",m=n.viewingDirection==="bottom-to-top",d=n.viewingDirection==="left-to-right",f=n.viewingDirection==="right-to-left",p=n.behavior.includes("continuous")?0:t.spacing||0,S=m||f,v=(0,ht.useMemo)(()=>S?[...r].reverse():r,[r,S]);return(0,oe.jsxs)(oe.Fragment,{children:[t.header,(0,oe.jsx)(_.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,homePaddingPx:t.padding,children:v.map((g,y)=>{let C=0,R=0;return!u&&!m?(C=c,c+=g.width+p):(R=c,c+=g.height+p),(0,oe.jsx)(de,{canvas:g.id,children:(0,oe.jsx)(_.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&a?()=>(0,oe.jsx)(a,{}):void 0,renderMediaControls:y===0&&s?()=>(0,oe.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:y===0&&l?()=>(0,oe.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:C,y:R,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},g.id)},g.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),_=(0,ht.forwardRef)(function({children:t,height:o,annotations:n,canvasProps:r,spacing:i,header:a,components:s,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:m,annotationPopup:d,name:f,svgTheme:h,updateViewportTimeout:p,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:g,padding:y,...C},R){let P=we();return(0,oe.jsx)(It,{name:f,children:(0,oe.jsx)(Ie,{vault:P,children:(0,oe.jsx)(Qn,{...C,children:(0,oe.jsx)(Zl,{ref:R,height:o,components:s,spacing:i,canvasProps:r,annotations:n,header:a,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:m,annotationPopup:d,svgTheme:h,updateViewportTimeout:p,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:g,padding:y,children:t})})})})});_.RenderImage=Ke;_.RenderCanvas=ct;_.RenderAnnotationPage=Fe;_.RenderAnnotation=at;_.Viewer=bn;_.CanvasBackground=an;_.Audio=Uo;_.Video=ln;_.Model=Ko;_.AudioHTML=pr;_.VideoHTML=qr;_.ModelHTML=fr;_.PlaceholderCanvas=Ls;_.getAtlasStoreByName=tr;var Bs=require("react");var ge=require("react"),yt=require("zustand");function li(e){let[t,o]=(0,ge.useState)(0),n=q(),r=(0,yt.useStore)(n,R=>R.tool.enabled),i=(0,yt.useStore)(n,R=>R.tool.requestId),a=(0,yt.useStore)(n,R=>R.getRequestId),s=(0,yt.useStore)(n,R=>R.requestAnnotation),l=(0,yt.useStore)(n,R=>R.completeRequest),c=(0,yt.useStore)(n,R=>R.cancelRequest),u=(0,ge.useRef)(e?.onSuccess);u.current=e?.onSuccess;let[m,d]=(0,ge.useState)(!1),[f,h]=(0,ge.useState)(null),[p,S]=(0,ge.useState)(null),v=r&&i!==p,g=r&&i===p,y=(0,ge.useCallback)(async(R,P)=>{if(p){let A=u.current;d(!0);let I=await s(R,{...P,requestId:p});if(I)return A?.(I),o(G=>G+1),d(!1),h(I),I;let O={id:p,cancelled:!0,...jt(R)};return A?.(O),h(O),o(G=>G+1),d(!1),O}return null},[s,p]),C=(0,ge.useCallback)(()=>{h(null),d(!1)},[]);return(0,ge.useEffect)(()=>{let R=a();return S(R.requestId),()=>{R.clear()}},[t]),{id:t,busy:v,isPending:m,isActive:g,requestId:p,requestAnnotation:y,cancelRequest:()=>p?c(p):void 0,completeRequest:()=>p?l(p):void 0,reset:C,data:f}}var Jl=[{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 ci(e){let{id:t,data:o,requestAnnotation:n,cancelRequest:r,isPending:i}=li({onSuccess:a=>{e.updateShape(a.polygon)}});return(0,Bs.useEffect)(()=>(n({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var X=require("react"),ui=Z(require("mitt"),1),Hs=require("react/jsx-runtime"),Cn=(0,X.createContext)((0,ui.default)());Cn.displayName="SelectorHelper";function ec({children:e}){return(0,Hs.jsx)(Cn.Provider,{value:(0,X.useMemo)(()=>(0,ui.default)(),[]),children:e})}function tc(){return(0,X.useContext)(Cn)}function mi(e){let t=di(),[o,n]=(0,X.useState)(!1);(0,X.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,X.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,X.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,X.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:r,onHover:i,isHighlighted:o}}function di(){let e=(0,X.useContext)(Cn);return(0,X.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 oc(){let e=di();return(0,X.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 pi=require("react/jsx-runtime");function nc(e){let t=T(),o=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:i,isHighlighted:a}=mi(e.id),s=Gt(),l=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(n){let c="shape",u=e.polygon,m=u.open;return u?(0,pi.jsx)(c,{id:`shape-${r}`,points:u.points,open:m,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,pi.jsx)(ci,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Ds=require("@atlas-viewer/atlas");var Rn=require("react"),Ao=require("react/jsx-runtime"),rc=(0,Rn.forwardRef)(function({canvasId:t},o){let n=(0,Ds.useCanvas)(),r=vo(t||n?.id),i=k();return(0,Rn.useImperativeHandle)(o,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,Ao.jsx)(Ao.Fragment,{children:r.enabledPageIds.map(a=>(0,Ao.jsx)(_.RenderAnnotationPage,{page:i.get(a)},a))})});var $s=require("react");var Fs=require("react");var U=require("react/jsx-runtime");function To({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:u,tableFooter:m,tableHeader:d,customLabelRender:f,customValueRender:h}){let p=(0,Fs.useMemo)(()=>{let v=(t||[]).reduce((y,C)=>[...y,...C.keys],[]),g={};for(let y of e){let C=y?.label?Object.values(y.label):[];for(let R of C)if(R?.length&&(v.indexOf(`metadata.${R[0]}`)!==-1||v.length===0)&&y){let P=`metadata.${R[0]}`;g[P]=g[P]?g[P]:[],g[P].push(y);break}}return g},[t,e]);return Object.keys(p).length===0&&n?(0,U.jsx)(U.Fragment,{children:i})||(0,U.jsx)("div",{className:a.empty,children:s}):t?.length?(0,U.jsxs)("table",{className:a.container,children:[d,(0,U.jsx)("tbody",{children:t.map((v,g)=>{let y=[];for(let R of v.keys)for(let P of p[R]||[]){let A=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:P.value},g+"__"+R);h?y.push(h(P,A)):y.push(A)}if(y.length===0)return null;let C=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,separator:u,defaultText:c,children:v.label});return(0,U.jsxs)("tr",{className:a.row,children:[(0,U.jsx)("td",{className:a.label,style:o?{minWidth:o}:{},children:f?f(v.label,C):C}),(0,U.jsx)("td",{className:a.value,children:y})]},g)})}),m]}):(0,U.jsxs)("table",{className:a.container,children:[d,(0,U.jsx)("tbody",{children:e?.length?e.map((v,g)=>{if(!v)return null;let y=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:v.label}),C=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:v.value});return(0,U.jsxs)("tr",{className:a.row,children:[(0,U.jsx)("td",{className:a.label,style:o?{minWidth:o}:{},children:f?f(v.label,y):y}),(0,U.jsx)("td",{className:a.value,children:h?h(v,C):C})]},g)}):null}),m]})}var Ws=require("react/jsx-runtime");function ic(e){let t=$(),o=T(),n=Ut(),r=(0,$s.useMemo)(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=n?.metadata||[];return[...i,...a,...s]},[t,o,n]);return(0,Ws.jsx)(To,{metadata:r,...e})}var Tn=require("react");var Pn=require("@iiif/parser/image-3"),Us=require("react");function An(e,t={},o=[]){return(0,Us.useMemo)(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let r=(0,Pn.createImageServiceRequest)(e);return(0,Pn.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 Io=require("react/jsx-runtime");function ac(e){let t=typeof e.src=="string"?e.src:e.src.id,o=oo(),[n,r]=(0,Tn.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=An(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,Tn.useEffect)(()=>()=>{r(!1)},[t]),a?(0,Io.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Io.jsx)(_s,{...e,fetchImageService:!1})}function _s(e){if(e.fetchImageService)return(0,Io.jsx)(ac,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=An(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,Io.jsx)("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}var In=require("react"),Ys=require("react-error-boundary");var qe=require("react/jsx-runtime");function sc({src:e,errorFallback:t,interactive:o,skipSizes:n,children:r,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:l,y:c,...u}){let m=we(),[d,f]=(0,In.useState)(),h=t||xn,[p,S]=So(),v=(0,In.useMemo)(()=>{let y=S[e]?.status,C=p({id:e},{});return C?.height&&C.width&&y!=="loading"?{id:e,width:C.width,height:C.height,service:C,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:C.width,height:C.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:C.width,height:C.height}}}:null},[p,e,S]);if(!v||!v.height||!v.width)return null;let g=s?void 0:u.homePosition?u.homePosition.width/u.homePosition.height:v.width/v.height;return(0,qe.jsx)(Ys.ErrorBoundary,{resetKeys:[],fallbackRender:y=>(0,qe.jsx)(h,{...u,...y}),children:(0,qe.jsx)(Ie,{vault:m,children:(0,qe.jsx)(bn,{...u,aspectRatio:g,containerProps:{style:{position:"relative"},...u.containerProps||{}},onCreated:y=>{f(y),u.onCreated&&u.onCreated(y)},children:(0,qe.jsxs)(Ce.Provider,{value:d,children:[(0,qe.jsx)(Ke,{image:v,id:v.id,isStatic:!o,x:l,y:c},v.id),(0,qe.jsx)(lc,{viewerPreset:d,renderViewerControls:i,image:v,src:e,viewControlsDeps:a}),r]})})})})}function lc({viewerPreset:e,renderViewerControls:t,image:o,src:n,viewControlsDeps:r}){return Q(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,Ce.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[n,e,...r||[]]),null}var Ks=require("react/jsx-runtime");function cc(e){let t=$();return(0,Ks.jsx)(To,{metadata:t?.metadata||[],...e})}var wn=require("react");var fi=Z(require("react-lazy-load-image-component"),1);var js=require("@iiif/helpers/i18n"),ce=require("react/jsx-runtime"),{LazyLoadComponent:uc}=fi||fi.default;function gi(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,ce.jsx)(mc,{...e}),c=(0,ce.jsx)(uc,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:r?(0,ce.jsx)(de,{canvas:r,children:l}):l});return i?(0,ce.jsx)("figure",{className:n?.figure,children:c}):c}function mc({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,js.getValue)(a?.label)||"",u=Ne({width:s,height:l,allowUnsafe:!0},i);return!u||u.type!=="fixed"?(0,ce.jsx)(ce.Fragment,{children:e}):(0,ce.jsxs)(ce.Fragment,{children:[(0,ce.jsx)("div",{className:o?.imageWrapper,children:(0,ce.jsx)("img",{className:o?.img,src:u.id,alt:c})}),n?(0,ce.jsx)(ue,{as:"figcaption",className:o?.label,children:a?.label}):null]})}var Ht=require("react/jsx-runtime");function dc({scrollBehaviour:e,dereference:t,flat:o,size:n,classes:r={},showLabel:i,figure:a,fallback:s}){let l=(0,wn.useRef)(null),{items:c,sequence:u,currentSequenceIndex:m,setSequenceIndex:d}=tt(),f={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,wn.useLayoutEffect)(()=>{if(!l.current)return;let p=l.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[m]);let h=[];for(let p of u){let S=[],v=u[m]===p;for(let g of p){let y=c[g];S.push((0,Ht.jsx)("div",{className:v?f.item:r.item,children:(0,Ht.jsx)(gi,{classes:v?f:r,canvasId:y.id,size:n,dereference:t,showLabel:i,figure:a,placeholder:(0,Ht.jsx)("div",{style:{height:128,width:128}}),fallback:s})},g))}if(o){h.push(S);continue}h.push((0,Ht.jsx)("div",{onClick:g=>{d(u.indexOf(p))},"data-selected":v,className:v?f.row:r.row,children:S},p.join("-")))}return(0,Ht.jsx)("div",{ref:l,className:r.container,children:h})}var wo=require("zustand");function hi(){let e=q(),t=(0,wo.useStore)(e,i=>i.completeRequest),o=(0,wo.useStore)(e,i=>i.polygonState.currentTool),n=(0,wo.useStore)(e,i=>i.polygonState.selectedStamp),r=(0,wo.useStore)(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:n,switchTool:r}}var K=require("react/jsx-runtime"),pc={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function fc({showShapes:e=!0,enabled:t=pc,classNames:o={},icons:n={}}){let{currentTool:r,switchTool:i,selectedStamp:a}=hi();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 Gs=require("react/jsx-runtime");function gc({annotation:e,children:t}){return(0,Gs.jsx)(ne,{value:{annotation:e},children:t})}var Qs=require("react/jsx-runtime");function hc({annotationPage:e,children:t}){return(0,Qs.jsx)(ne,{value:{annotationPage:e},children:t})}var Xs=require("react/jsx-runtime");function yc({collection:e,children:t}){return(0,Xs.jsx)(ne,{value:{collection:e},children:t})}function vc(e,t={}){return ze(t)}var Zs=require("@atlas-viewer/atlas"),Xe=require("react");function Sc({canvasId:e}={}){let t=(0,Zs.useCanvas)(),o=Je(),n=(0,Xe.useMemo)(()=>e?[e]:t?[t.id]:o.map(c=>c.id),[e,t,o]),[r,i]=(0,Xe.useState)({}),a=so();(0,Xe.useEffect)(()=>{let c=u=>{let m=u.partOf.canvasId;m&&i(d=>({...d,[m]:u.choice}))};return a.on("choice-change",c),()=>{a.off("choice-change",c)}},[]);let s=(0,Xe.useMemo)(()=>{let c=[];for(let u of n){let m=r[u];m&&c.push({canvasId:u,choice:m})}return c},[n,r]),l=(0,Xe.useMemo)(()=>({makeChoice:(c,u)=>{a.emit("make-choice",{choiceId:c,...u})}}),[a]);return{choices:s,actions:l}}function xc(e,t=!1){}function bc(e){let o=J().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return z(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 Js=require("react");function Cc(e,t=[]){let{id:o,selector:n}=e,r=J(),i=o||r.collection,a=z(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,Js.useMemo)(()=>{if(a)return n?n(a):a},[a,n,...t])}var kn=require("react"),yi=require("zustand");function Rc(){let e=q(),t=(0,yi.useStore)(e,n=>n.completeRequest),o=(0,yi.useStore)(e,n=>n.cancelRequest);return(0,kn.useMemo)(()=>({saveAnnotation:()=>{(0,kn.startTransition)(()=>{t()})},cancelRequest:o}),[t,o])}var el=require("react"),Mn=require("zustand");function Pc({requestId:e}={}){let t=q(),o=(0,Mn.useStore)(t,s=>s.metadata),n=(0,Mn.useStore)(t,s=>s.tool.requestId),r=e||n,i=(0,Mn.useStore)(t,s=>s.setMetadata),a=(0,el.useCallback)(s=>i(s,r||void 0),[i,r]);return[r?o[r]||{}:{},a]}var tl=require("zustand");function Ac(e){let t=q(),o=(0,tl.useStore)(t,n=>n.tool.requestId);nt("polygons.start-transition",n=>{e.requestId&&o!==e.requestId||e?.onStart?.(n.transitionIntent)},[o,e.requestId]),nt("polygons.end-transition",n=>{e.requestId&&o!==e.requestId||e?.onEnd?.(n.transitionIntent,n.response)},[o,e.requestId]),nt("polygons.transition",n=>{e.requestId&&o!==e.requestId||e?.onTransition?.(n.transitionIntent)},[o,e.requestId])}var En=require("react"),ol=require("@iiif/helpers/events");function Tc(e,t,o,n,r=[]){let i=k(),a=(0,En.useMemo)(()=>(0,ol.createEventsHelper)(i),[i]);(0,En.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,o,n),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...r])}function Ic(e,t){let{id:o,isLoaded:n,error:r,resource:i,requestId:a,cached:s}=Wt(e,t);return{id:o,isLoaded:n,error:r,manifest:i,requestId:a,cached:s}}var vi=require("@iiif/parser/image-3");var Te=require("react");function Si({cacheKey:e}={}){let t=T(),o=ze(),n=k(),r=Et(),i=Fa(),[a,s]=(0,Te.useState)(void 0),[l,c]=(0,Te.useState)(!1),[u,m]=(0,Te.useState)("idle"),[d,f]=(0,Te.useState)(void 0),h=t?t.id:"undefined",p=(0,Te.useMemo)(()=>{try{if(t&&o.length){let v=o[0],g=n.get(v.body[0]),C=(0,vi.getImageServices)(g)[0];return C&&r(C,{width:C.width||t.width,height:C.height||t.height},!0)||void 0}}catch(v){console.error(v)}},[h,e,t]),S=u==="success"&&a?a:p;return(0,Te.useEffect)(()=>{(async()=>{try{if(t&&o.length){let v=o[0],g=n.get(v.body[0]),C=(0,vi.getImageServices)(g)[0];if(!C)return;c(!0),m("loading");try{let R=await i(C,{width:C.width||t.width,height:C.height||t.height})||void 0;s(R),m("success"),c(!1)}catch(R){m("error"),f(R)}}}catch(v){m("error"),f(v)}})()},[h,e]),(0,Te.useMemo)(()=>({data:S,isFetching:l,status:u,error:d}),[S,l,u,d])}function wc(){let e=Si();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 Nn=require("react");var nl=require("@iiif/helpers");function kc({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=k(),o=T(),n=ze(),r=(0,Nn.useMemo)(()=>(0,nl.createPaintingAnnotationsHelper)(t),[t]),i=(0,Nn.useMemo)(()=>r.getPaintables(n),[r,n]);return(0,Nn.useMemo)(()=>Ro({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}var rl=require("@iiif/helpers/styles"),il=require("react");function Mc(){let e=k();return(0,il.useMemo)(()=>(0,rl.createStylesHelper)(e),[e])}var j=require("react");var ko=[.6,.02,0,.75],xi=16,bi={linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1],"ease-in-cubic":ko,"ease-out-cubic":[.215,.61,.355,1]};function Ci(e,t,o){let n=Math.max(0,Math.min(1,o));return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n,width:e.width+(t.width-e.width)*n,height:e.height+(t.height-e.height)*n}}function Ri(e,t){let o=[],n=e;for(let r of t)o.push({from:n,to:r}),n=r;return o}function Dt([e,t,o,n]){let r=3*e,i=3*(o-e)-r,a=1-r-i,s=3*t,l=3*(n-t)-s,c=1-s-l;function u(h){return((a*h+i)*h+r)*h}function m(h){return((c*h+l)*h+s)*h}function d(h){return(3*a*h+2*i)*h+r}function f(h,p=1e-6){let S=h;for(let y=0;y<8;y++){let C=u(S)-h;if(Math.abs(C)<p)return S;let R=d(S);if(Math.abs(R)<1e-6)break;S=S-C/R}let v=0,g=1;for(S=h;v<g;){let y=u(S);if(Math.abs(y-h)<p)return S;h>y?v=S:g=S,S=(g-v)*.5+v}return S}return h=>{if(h<=0)return 0;if(h>=1)return 1;let p=f(h);return m(p)}}function Pi(e,t){if(!t||t.length===0)return{index:-1,t:0};if(Number.isNaN(e)||!isFinite(e))return{index:-1,t:0};if(e<0)return{index:-1,t:0};if(e>=t.length)return{index:t.length,t:0};let o=Math.floor(e),n=e-o;return{index:o,t:n}}function Ec(e){let{initial:t,regions:o,progress:n,getProgress:r,enabled:i=!0,easing:a,reportEveryFrame:s=!1,pollInterval:l=xi,loop:c=!1,onEnter:u,onExit:m,onProgress:d,jumpTo:f}=e,h=(0,j.useMemo)(()=>Ri(t,o),[t,o]),[p,S]=(0,j.useState)(()=>-1),[v,g]=(0,j.useState)(0),y=(0,j.useRef)(-1),C=(0,j.useRef)(0),R=(0,j.useRef)(!0),P=(0,j.useRef)(()=>{});(0,j.useEffect)(()=>(R.current=!0,()=>{R.current=!1}),[]);let A=(0,j.useMemo)(()=>{if(!a)return Dt(ko);if(typeof a=="function")return a;if(Array.isArray(a)&&a.length===4)return Dt(a);let L=bi[a];return L?Dt(L):Dt(ko)},[a]),I=(0,j.useCallback)(L=>{if(!(L<0||L>=h.length)&&(S(L),y.current=L,C.current=0,g(0),u))try{u(L)}catch{}},[h,u]);(0,j.useEffect)(()=>{P.current=I,f&&f(I)},[I,f]);function O(L){let{index:w,t:N}=Pi(L,h),V=w;if(c&&h.length>0){let he=h.length;V=(w%he+he)%he}let Pe=A(N);if(V!==y.current){if(y.current>=0&&m)try{m(y.current)}catch{}if(V>=0&&u)try{u(V)}catch{}y.current=V,R.current&&S(V)}if(C.current=Pe,R.current&&(s||V!==p)&&g(Pe),d&&V>=0)try{d(V,Pe)}catch{}}(0,j.useEffect)(()=>{i&&typeof n=="number"&&O(n)},[n,i]),(0,j.useEffect)(()=>{if(!i||typeof r!="function")return;let L=null,w=()=>{try{let N=r();O(N)}catch{}};return w(),L=setInterval(w,l),()=>clearInterval(L)},[r,i,l]);let G=p>=0&&p<h.length?h[p]:void 0,M=G?Ci(G.from,G.to,C.current):void 0;return{transitions:h,currentIndex:p,currentTransition:G,t:C.current,rect:M,jumpTo:I}}var vt=require("react");function Nc(e,t={}){let{axis:o="y",offset:n=0,steps:r=1,enabled:i=!0}=t,[a,s]=(0,vt.useState)(0),l=(0,vt.useRef)(-1),c=(0,vt.useRef)(null);return(0,vt.useEffect)(()=>{if(!i||!e||!e.current)return;let u=e.current,m=()=>{let f=o==="y"?u.scrollTop:u.scrollLeft,h=o==="y"?u.clientHeight:u.clientWidth,S=(o==="y"?u.scrollHeight:u.scrollWidth)-h,g=(S<=0?0:Math.max(0,Math.min(1,(f+n)/S)))*r;g!==l.current&&(l.current=g,s(g)),c.current=null},d=()=>{c.current===null&&(c.current=requestAnimationFrame(m))};return u.addEventListener("scroll",d,{passive:!0}),m(),()=>{u.removeEventListener("scroll",d),c.current!==null&&cancelAnimationFrame(c.current)}},[e,o,n,r,i]),a}function Vc(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 al=Z(require("tiny-invariant"),1);function Lc(e,t){let o=e.boundingBox||De(e.polygon);if(e.polygon&&!At(e.polygon.points)){let n=e.target||Tt(e.polygon,t);return(0,al.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,sn.jsx)("iframe",{className:"video-yt",ref:o,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function is({media:e,mediaControlsDeps:t,children:n}){let[{element:o,currentTime:r,progress:i},a,s]=st({duration:e.duration});return Q("overlay","video-element",Wl,{element:o,media:e,playPause:s.playPause}),null}var co=require("react/jsx-runtime");function Hr(){let{strategy:e}=H(),{renderMediaControls:t,mediaControlsDeps:n}=ie();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,co.jsxs)(is,{media:e.media,mediaControlsDeps:n,children:[(0,co.jsx)(mt,{}),t?t(e):null]})}var go=require("react"),Re=require("zustand");var mo=require("@atlas-viewer/atlas"),Ge=require("react");var as=require("polygon-editor"),ee=require("react");var uo=require("zustand");function Dr(e){let t=B(),n=(0,uo.useStore)(t,i=>i.polygons),o=(0,uo.useStore)(t,i=>i.polygonState),r=(0,uo.useStore)(t,i=>i.polygon);return ot("atlas.polygon-render",({state:i,slowState:a,dt:s})=>{e(i,a,s)}),{currentShape:r,state:o,helper:n}}var E=require("react/jsx-runtime"),Le=(0,as.createSvgHelpers)(),ss={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function Fr(e){let{image:t}=e,n={...ss,...e.theme||{}},o=(0,ee.useRef)(),r=(0,ee.useRef)(),i=(0,ee.useRef)(),a=(0,ee.useRef)(),s=(0,ee.useRef)(),l=(0,ee.useRef)(),u=(0,ee.useRef)(),c=(0,ee.useRef)(),m=(0,ee.useRef)(),d=(0,ee.useRef)(),[f,h]=(0,ee.useState)(null),[p,S]=(0,ee.useState)(!1),{helper:v,state:g,currentShape:y}=Dr((M,L)=>{if(M.closestLineIndex,Le.updateTransitionBoundingBox(i.current,M,L),Le.updateBoundingBoxPolygon(o.current,M,L),Le.updateBoundingBoxPolygon(r.current,M,L),Le.updateTransitionShape(u.current,M,L),Le.updateClosestLinePointTransform(s.current,M,L),Le.updateSelectBox(a.current,M,L),Le.updatePointLine(c.current,M,L),Le.updateDrawPreview(l.current,M,L,3),Le.updateLineBox(m.current,M),h(M.transitionDirection),S(M.transitionRotate),M.closestLineIndex!==-1&&d.current){let w=M.polygon,N=w.points[M.closestLineIndex],V=w.points[(M.closestLineIndex+1)%w.points.length];N&&V&&d.current.setAttribute("points",`${N[0]},${N[1]} ${V[0]},${V[1]}`)}});(0,ee.useEffect)(()=>{let M=()=>{v.modifiers.reset()};return document.addEventListener("mouseleave",M),()=>{document.removeEventListener("mouseleave",M)}},[]);let C=(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,E.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke,className:"marker"}),(0,E.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:n.controlFill})]}),(0,E.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,E.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.activeLineStroke,className:"marker"})}),(0,E.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,E.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke}),(0,E.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:n.activeLineStroke})]}),(0,E.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,E.jsx)("rect",{width:"10",height:"10",fill:n.lineStroke}),(0,E.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:n.controlFill})]})]}),R=y?y.open?"polyline":"polygon":null,P=!g.showBoundingBox&&g.closestPoint!==null&&g.actionIntentType==="select-point",A=g.actionIntentType==="add-open-point",I=g.transitionIntentType==="split-line",O=g.transitioning&&g.selectedStamp&&g.transitionIntentType==="stamp-shape",G=y&&R?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(R,{fill:(!g.transitioning||g.transitionIntentType==="select-multiple-points")&&!y.open?n.shapeFill:"none",strokeWidth:O||g.showBoundingBox&&g.boxMode||g.transitioning&&g.transitionIntentType==="split-line"||g.transitioning&&g.transitionIntentType==="move-point"?0:2,stroke:n.shapeStroke,points:y.points.map(M=>M.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:g.showBoundingBox?void 0:g.boxMode?"url(#resizer)":"url(#dot)",markerMid:g.showBoundingBox?void 0:g.boxMode?"url(#resizer)":"url(#dot)",markerEnd:g.showBoundingBox?void 0:g.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}),g.currentTool==="lineBox"&&g.actionIntentType==="close-line-box"?(0,E.jsx)("polygon",{fill:n.shapeFill,ref:m,stroke:n.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,g.transitionIntentType==="draw-shape"&&g.transitioning?(0,E.jsx)("polyline",{ref:l,fill:"none",stroke:n.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(g.transitioning&&g.transitionIntentType==="move-point")&&!(g.transitioning&&g.transitionIntentType==="stamp-shape")&&!g.showBoundingBox&&g.selectedPoints&&g.selectedPoints.length?(0,E.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:y.points.filter((M,L)=>g.selectedPoints?.includes(L)).map(M=>M.join(",")).join(" "),opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}):null,P&&!g.transitioning&&g.closestPoint!==null&&y.points[g.closestPoint]?(0,E.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:n.activeLineStroke,points:`${y.points[g.closestPoint][0]},${y.points[g.closestPoint][1]}`,opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}):null,!g.transitioning&&(g.actionIntentType==="add-open-point"||g.actionIntentType==="close-shape"||g.actionIntentType==="close-shape-line")?(0,E.jsx)("polyline",{stroke:n.activeLineStroke,ref:c,strokeWidth:g.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,g.hasClosestLine&&!g.showBoundingBox&&!g.transitioning&&g.currentTool!=="box"&&g.transitionIntentType==="split-line"?(0,E.jsx)("g",{children:(0,E.jsx)("polyline",{ref:d,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:n.activeLineStroke,strokeWidth:3})}):null,g.hasClosestLine&&!g.showBoundingBox&&!g.transitioning&&g.currentTool!=="box"&&g.transitionIntentType==="split-line"?(0,E.jsx)("g",{ref:s,children:(0,E.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,g.transitioning?(0,E.jsx)(R,{ref:u,fill:y.open?"none":n.shapeFill,stroke:g.transitionIntentType==="stamp-shape"?n.activeLineStroke:n.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(y.open,2)}):null,g.transitioning&&g.transitionIntentType==="select-multiple-points"?(0,E.jsx)("rect",{ref:a,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,g.showBoundingBox&&!O?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)("polygon",{ref:o,strokeWidth:2,stroke:n.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),(0,E.jsx)("polygon",{ref:r,strokeWidth:2,stroke:n.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:v.state.slowState.currentTool,setCurrentTool:v.tools.setTool,helper:v,currentShape:y,state:g,isAddingPoint:A,isSplitting:I,isStamping:O,isHoveringPoint:P,transitionDirection:f,transitionRotate:p,defs:C,editor:G}}var je=require("react/jsx-runtime");function ls(e){let t=(0,mo.useAtlas)(),{image:n}=e,{helper:o,defs:r,editor:i,state:a,transitionDirection:s,isSplitting:l,transitionRotate:u,isHoveringPoint:c,isAddingPoint:m}=Fr({image:e.image,theme:e.theme}),d=(0,Ge.useCallback)(p=>{p.button!==2&&o.pointer([[~~p.atlas.x,~~p.atlas.y]])},[o]),f=(0,Ge.useCallback)(p=>{p.button!==2&&o.pointerDown()},[o]),h=(0,Ge.useCallback)(p=>{p.button!==2&&o.pointerUp()},[o]);return(0,Ge.useEffect)(()=>{let p=S=>{o.key.up(S.key)};return document.addEventListener("keyup",p),()=>{document.removeEventListener("keyup",p)}},[o]),(0,Ge.useEffect)(()=>{let p=S=>{S.target&&["INPUT","TEXTAREA"].includes(S.target.tagName)||S.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||o.key.down(S.key)};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[o]),(0,Ge.useEffect)(()=>{let p=[];return s&&p.push(`atlas-cursor-${s}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&p.push("atlas-cursor-cut"),(c||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&p.push("atlas-cursor-move"),m&&p.push("atlas-cursor-crosshair"),l&&p.push("atlas-cursor-copy"),u&&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,m,c,l,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,s,u]),(0,je.jsx)("world-object",{height:n.height,width:n.width,onMouseMove:d,onMouseDown:f,onMouseUp:h,onMouseLeave:o.blur,children:(0,je.jsx)(mo.HTMLPortal,{relative:!0,interactive:!1,children:(0,je.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,je.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[(0,je.jsx)("title",{children:"Annotation Editor"}),(0,je.jsx)("defs",{children:r}),i]})})})})}var Ss=require("react"),xs=require("zustand");var hs=require("@atlas-viewer/atlas"),te=require("@floating-ui/react"),ys=require("react-dom");var Y=Z(require("react"),1);var cs=Z(require("react"),1),po=require("react"),us=Z(require("mitt"),1),ds=require("react/jsx-runtime"),ms=(0,us.default)(),ft=(0,po.createContext)({emitter:ms});ft.displayName="Events";function ln(){return cs.default.useContext(ft).emitter}function Ul({emitter:e,children:t}){return(0,ds.jsx)(ft.Provider,{value:(0,po.useMemo)(()=>({emitter:e}),[e]),children:t})}var me=require("react/jsx-runtime"),cn=Y.default.createContext({});function un(){let e=(0,Y.useContext)(cn),t=Object.keys(e),n={};for(let o of t)e[o].Provider&&(n[o]={value:(0,Y.useContext)(e[o]),Provider:e[o].Provider});return n}function ps(e){let t=Object.keys(e),n=e.children;for(let o of t){if(o==="children")continue;let{value:r,Provider:i}=e[o];n=(0,me.jsx)(i,{value:r,children:n})}return n}function _l(e){let t=(0,Y.useContext)(cn),n=(0,Y.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,me.jsx)(cn.Provider,{value:n,children:e.children})}function mn(){return{VaultContext:(0,Y.useContext)(qe),ResourceContext:(0,Y.useContext)(Ft),SimpleViewerReactContext:(0,Y.useContext)(Pt),VisibleCanvasReactContext:(0,Y.useContext)(Ze),AuthRContext:(0,Y.useContext)(et),SearchReactContext:(0,Y.useContext)(Rt),ReactEventContext:(0,Y.useContext)(ft),ContextBridgeReactContext:(0,Y.useContext)(cn),StrategyReactContext:(0,Y.useContext)(We),AtlasStoreReactContext:(0,Y.useContext)(rt)}}function dn(e){return(0,me.jsx)(Ie,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,me.jsx)(Ze.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,me.jsx)(Pt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,me.jsx)(ft.Provider,{value:e.bridge.ReactEventContext,children:(0,me.jsx)(rt.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,me.jsx)(et.Provider,{value:e.bridge.AuthRContext,children:(0,me.jsx)(Rt.Provider,{value:e.bridge.SearchReactContext,children:(0,me.jsx)(cn.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,me.jsx)(We.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,me.jsx)(ps,{...e.custom,children:e.children}):e.children})})})})})})})})})}var zt=require("react/jsx-runtime"),vs=10,fs=1;function Yl(e){let[t,n]=e.split("-");return[t,n]}function gs(e,t,n){return t>n?e:Math.min(Math.max(e,t),n)}function Kl(e){return e.top>0||e.right>0||e.bottom>0||e.left>0}function jl(e){return{name:"insideHighlightFallback",options:e,async fn(t){if(e.width<=fs||e.height<=fs)return{};let n=await(0,te.detectOverflow)(t,{altBoundary:!0});if(!Kl(n))return{};let{reference:o,floating:r}=t.rects,[i,a]=Yl(t.initialPlacement),s=Math.min(vs,o.width/2,o.height/2),l=o.x+(o.width-r.width)/2,u=o.y+(o.height-r.height)/2,c=t.x,m=t.y;return i==="top"||i==="bottom"?(m=i==="top"?o.y+s:o.y+o.height-r.height-s,a==="start"?c=o.x+s:a==="end"?c=o.x+o.width-r.width-s:c=l,c=gs(c,o.x+s,o.x+o.width-r.width-s)):(c=i==="left"?o.x+s:o.x+o.width-r.width-s,a==="start"?m=o.y+s:a==="end"?m=o.y+o.height-r.height-s:m=u,m=gs(m,o.y+s,o.y+o.height-r.height-s)),{x:c,y:m}}}}function fo({annotation:e,target:t,children:n,dismissable:o,isOpen:r,onOpenChange:i,placement:a}){let s=mn(),l=un(),{refs:u,floatingStyles:c,context:m}=(0,te.useFloating)({open:r,onOpenChange:i,nodeId:e.id,placement:a||"bottom",middleware:[(0,te.offset)(vs),(0,te.flip)({mainAxis:!0,fallbackStrategy:"bestFit",altBoundary:!0}),(0,te.shift)({altBoundary:!0}),jl(t)],whileElementsMounted:te.autoUpdate}),d=(0,te.useDismiss)(m),{getReferenceProps:f,getFloatingProps:h}=(0,te.useInteractions)([o?d:null].filter(p=>p!==null));return(0,zt.jsxs)(hs.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,zt.jsx)("div",{ref:u.setReference,...f(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,ys.createPortal)((0,zt.jsx)(dn,{bridge:s,custom:l,children:(0,zt.jsx)("div",{ref:u.setFloating,style:c,...h(),children:n})}),document.getElementById("atlas-floating-ui"))]})}var pn=require("react/jsx-runtime"),bs=(0,xs.create)()(e=>({isMenuOpen:!1,menuPosition:{x:0,y:0},setMenuPosition(t){e({menuPosition:t})},toggle(t){e(n=>({isMenuOpen:!n.isMenuOpen,menuPosition:t}))},open(t){e({isMenuOpen:!0,menuPosition:t})},setIsMenuOpen(t){e(typeof t=="function"?n=>({isMenuOpen:t(n.isMenuOpen)}):{isMenuOpen:t})},close(){e({isMenuOpen:!1})}}));function fn(e,t,n){let{isMenuOpen:o,setIsMenuOpen:r,close:i,open:a,menuPosition:s,setMenuPosition:l,toggle:u}=bs(),c=(0,Ss.useCallback)(f=>{n&&(f.preventDefault(),f.stopPropagation(),u(f.atlas))},[u,n]);return[(0,pn.jsx)(pn.Fragment,{children:n&&o&&(0,pn.jsx)(fo,{dismissable:!0,placement:"bottom-start",isOpen:o,onOpenChange:r,annotation:{id:e},target:{x:s.x,y:s.y,height:1,width:1},children:o&&n({canvasId:t,position:s,close:()=>r(!1)})})}),{onContextMenu:c},{open:a,close:i,toggle:u,isMenuOpen:o,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var Cs=require("zustand");function $r(){let e=B();return(0,Cs.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var ne=require("react/jsx-runtime");function Wr({theme:e,renderContextMenu:t,children:n}){let o=B(),r=T(),i=(0,Re.useStore)(o,R=>R.polygon),a=(0,Re.useStore)(o,R=>R.polygonState.currentTool),s=(0,Re.useStore)(o,R=>R.mode),l=(0,Re.useStore)(o,R=>R.changeMode),u=(0,Re.useStore)(o,R=>R.polygonState.transitioning),{enabled:c,requestId:m}=(0,Re.useStore)(o,R=>R.tool),d=(0,go.useMemo)(()=>De(i),[i]),f=$r(),[h,p]=fn("editing-annotation",r?.id,t),S=f?.annotationPopup||n||(0,ne.jsx)(Rs,{}),v=f?.svgTheme||e,g=()=>{l("sketch")};if(!c||!r||!m||!i)return null;let y=d&&i.id&&!u&&(a==="pointer"||a==="hand"||!i.open)?(0,ne.jsx)(fo,{annotation:i,target:d,children:S}):null,C="shape";return s==="explore"?(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(C,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:g,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,ne.jsx)(C,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:g,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)"}}),y]}):(0,ne.jsxs)(ne.Fragment,{children:[t?(0,ne.jsx)(C,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:r.width,height:r.height},...p}):null,(0,ne.jsx)(ls,{image:r,theme:v}),y,h]})}function Rs(){let e=B(),t=(0,Re.useStore)(e,a=>a.changeMode),n=(0,Re.useStore)(e,a=>a.mode),o=(0,Re.useStore)(e,a=>a.completeRequest),r=(0,Re.useStore)(e,a=>a.tool),i=()=>{(0,go.startTransition)(()=>{o()})};return r.enabled?(0,ne.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[n!=="sketch"&&(0,ne.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,ne.jsx)("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}var Qe=require("react");var Ot=require("react");var Ps=require("@iiif/helpers");function Gl(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function gn(e,t){let{selector:n,source:o}=(0,Ps.expandTarget)(t);if(o.id!==e.id)return[null,o];let r={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:r.spatial}:n:null,o]}var Ur={makeChoice:()=>{}},hn={type:"unknown"},q=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),_r=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var yn=require("react");function Ql(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function As(e,t){return z(n=>{let o=[];if(!e)return o;let r=Object.keys(n.iiif.entities.AnnotationPage);for(let i of r)if(!t||t.indexOf(i)!==-1){let a=Ql(n,i);a&&a.views&&a.views[e]&&o.push(i)}return o},[e,t])}function Yr({canvas:e,manifest:t,all:n,canvases:o}){let r=[];if(t)for(let i of t.annotations)r.indexOf(i.id)===-1&&r.push(i.id);if(n){if(o&&o.length)for(let i of o)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 Xl(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function vn(e,t={}){let n=k(),o=$(),r=T(),i=Je(),a=(0,yn.useMemo)(()=>Yr({all:t.all,manifest:o,canvas:r,canvases:i}),[t.all,r,i,o]),s=As(e,t.all?void 0:a),l=(0,yn.useCallback)(c=>{e&&n.setMetaValue([c,"annotationPageManager","views"],m=>m&&!m[e]?m:{...m||{},[e]:!1})},[e,n]),u=(0,yn.useCallback)((c,m={})=>{if(!e)return;let d=n.getState(),f=[];if(m?.deselectOthers){let h=Object.keys(d.iiif.entities.AnnotationPage);for(let p of h){let S=Xl(d,p);S&&S.views&&S.views[e]&&f.push(p)}}for(let h of f)l(h);n.setMetaValue([c,"annotationPageManager","views"],h=>h&&h[e]?h:{...h||{},[e]:!0})},[e,l,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:u,setPageDisabled:l}}function Kr(e,t){return z((n,o)=>o.get(e.map(r=>({id:r,type:t}))),[e,t])}var Ts=Z(require("mitt"),1),Is=require("react"),ws=require("zustand");var Zl=(0,ws.createStore)((e,t)=>({loaded:{},setLoaded:(n,o="done")=>{e(r=>({loaded:{...r.loaded,[n]:o}}))}})),Jl=(0,Ts.default)();Jl.on("loaded",e=>{Zl.getState().setLoaded(e.imageServiceId)});function Sn(){let e=Et(),t=Da();return[(0,Is.useCallback)((o,{height:r,width:i})=>o&&e(o,{height:r,width:i},!0),[e]),t]}var gt=require("react");function ze(e={}){let t=Qt(),n=T(e.canvasId?{id:e.canvasId}:void 0);return z((o,r)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=r.get(n.items),a=[];for(let s of i)a.push(...r.get(s.items));return a},[n])}var ks=require("@iiif/helpers/painting-annotations");function jr(e,t=[]){let n=k(),o=(0,gt.useMemo)(()=>(0,ks.createPaintingAnnotationsHelper)(n),[]),r=ze({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,gt.useState)(e?.defaultChoices||[]),s=(0,gt.useMemo)(()=>o.getPaintables(r,i),[n,r,i,...t]),u={makeChoice:(0,gt.useCallback)((c,{deselectOthers:m=!0,deselect:d=!1}={})=>{s.choice&&a(f=>{if(d){let p=f.filter(S=>S!==c);if(p.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return p}if(m)return[c];let h=[...f];if(h.length===0&&s.items.length){let p=s.items[0].resource.id;p&&h.push(p)}return f.indexOf(c)!==-1?f:[...f,c]})},[s.choice])};return[s,u]}var ec=["model/gltf-binary"];function Gr(e,t){let n=t.items[0],o=n.resource;return o.format?ec.indexOf(o.format)===-1?q(`3D format: ${o.format} is unsupported`):{type:"3d-model",model:o,annotationId:n.annotationId,annotation:n.annotation}:q("Unknown format")}function ho(e,t){let n=t.items,o=n[0];if(n.length===0||!o)return q("No audio");if(!e.duration)return q("No duration on canvas");if(n.length>1)return q("Only one audio source supported");let r=o.resource;return r?("format"in r||(r.format="audio/mpeg"),{type:"media",media:{annotationId:o.annotationId,annotation:o.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:[]}}):q("Unknown audio")}var Qr=require("@iiif/helpers/annotation-targets"),Es=require("@iiif/parser/image-3");function Oe(e){return e.replace(/^http:/,"https:")}function Ms(e){if(!(e?.type!=="ImageApiSelector"||typeof e.rotation>"u"))return Xr(e.rotation)}function Xr(e){if(e===null||typeof e>"u"||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}function tc(e){let t=e.selector||{};return{...e.rotationOrigin||t.rotationOrigin?{rotationOrigin:e.rotationOrigin||t.rotationOrigin}:{},...e.translate||t.translate?{translate:e.translate||t.translate}:{},...e.transform||t.transform?{transform:e.transform||t.transform}:{},...e.style||t.boxStyle?{style:e.style||t.boxStyle}:{},...e.styleClass?{styleClass:e.styleClass}:{}}}function xn(e,t,n){let o=[],r=[];for(let i of t.items){let a=i.resource&&i.resource.type==="SpecificResource"?i.resource.source:i.resource;if(!a.id)return q("No resource Identifier");let l=(i.resource.type==="SpecificResource"?Ms(i.resource.selector):void 0)??Ms(i.selector)??Xr(i.rotation)??Xr(i.selector?.rotation),u=typeof l<"u",c;if(a.service){let y=(0,Es.getImageServices)(a);y[0]&&(c=n(y[0],u?{width:Number(a.width||e.width),height:Number(a.height||e.height)}:e))}let m={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[d,f]=gn(e,i.target),h=e.id?.split("?")[0]||"";if(!(Oe(f.id||"")===Oe(e.id)||Oe(decodeURIComponent(f.id||""))===Oe(e.id||"")||Oe(f.id||"")===Oe(h)||Oe(decodeURIComponent(f.id||""))===Oe(h)))continue;let p=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,S=i.resource.type==="SpecificResource"?(0,Qr.expandTarget)(i.resource):null;if(i.selector){let y=(0,Qr.expandTarget)({type:"SpecificResource",source:i.resource,selector:i.selector});y&&(S=y)}let v=S&&S.selector&&(S.selector.type==="BoxSelector"||S.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:S.selector.spatial.x,y:S.selector.spatial.y,width:S.selector.spatial.width,height:S.selector.spatial.height},...typeof S.selector.rotation<"u"?{rotation:S.selector.rotation}:{},...S.selector.rotationOrigin?{rotationOrigin:S.selector.rotationOrigin}:{},...S.selector.translate?{translate:S.selector.translate}:{},...S.selector.transform?{transform:S.selector.transform}:{},...S.selector.boxStyle?{boxStyle:S.selector.boxStyle}:{}}:void 0;c&&!c.id&&(c.id=c["@id"]);let g={id:a.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(u||d||v?a.width:e.width),height:Number(u||d||v?a.height:e.height),...typeof l<"u"?{rotation:l}:{},...tc(i),service:c,sizes:c&&c.sizes?c.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:d&&d.type!=="PointSelector"?d:m,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};o.push(g)}return{type:"images",image:o[0],images:o,choice:t.choice}}function Ns(e,t={},n){let o=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[o]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(r=>Ns(r,t,o))}return t}function bn(e,t){let n=[];return t.items.forEach(o=>{if(o.resource){let[r]=gn(e,o.target);n.push({type:"Text",annotationId:o.annotationId,annotation:o.annotation,text:Ns(o.resource),target:r})}}),{type:"textual-content",items:n}}var yo=require("@iiif/helpers");var nc=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Cn(e,t,n,o=!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 q("Only one video source supported");let l=r[0]?.resource,u=!!(l.service||[]).find(p=>(p.profile||"").includes("youtube.com"));if(!u&&s)return q("Video does not have duration");if(!l)return q("Unknown video");if((!l.format||l.format==="text/html")&&!u)return q("Video does not have format");let c=[],m=n.get(e.annotations||[]);for(let p of m){let S=n.get(p.items||[]);for(let v of S)if((v.motivation?Array.isArray(v.motivation||"")?v.motivation:[v.motivation]:[]).includes("supplementing")){let y=n.get(v.body||[]);for(let C of y){let R=C;if(R.type==="Choice")for(let P of R.items){let A=n.get(P);A.format==="text/vtt"&&c.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else R.format==="text/vtt"&&c.push({id:R.id,type:"Text",format:"text/vtt",label:R.label,language:R.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}}},f=(0,yo.expandTarget)(i.target);f.selector&&f.selector.type==="TemporalBoxSelector"&&(d.target=f.selector);let{selector:h}=(0,yo.parseSelector)(i.selector);if(h===null){let p=d.target.temporal.startTime,v=(d.target.temporal.endTime||e.duration)-p;d.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:v}}}else h.type==="TemporalSelector"&&(d.selector=h);if(o&&!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}}),u){d.type="VideoYouTube";let p=l.id.match(nc);if(!p[1])return q("Video is not known youtube video");d.youTubeId=p[1]}return{type:"media",media:d,annotations:{pages:[]},noSpatial:a,captions:c}}var Vs=require("@iiif/helpers");function Zr(e,t,n,o){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},i={type:"complex-choice",items:[]},a=o.get(e.annotations);function s(c){c.choice&&(c.choice.type==="complex-choice"?i.items.push(...c.choice.items):i.items.push(c.choice))}for(let c of t.items){if(c.type==="image"){let m=xn(e,{choice:null,allChoices:null,types:["image"],items:[c]},n);if(m.type==="images"){if(!m.image)continue;s(m),r.items.push(m.image);let d={id:m.image.annotationId,type:"enter",resourceType:"image",time:m.image.target?.temporal?.startTime||0};r.keyframes.push(d);let f={id:m.image.annotationId,type:"exit",resourceType:"image",time:m.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(f)}}if(c.type==="textualbody"){let m=bn(e,{choice:null,allChoices:null,types:["textualbody"],items:[c]});if(m.type==="textual-content"){s(m);let d=m.items[0];r.items.push(d);let f=d.target,h={id:d.annotationId,type:"enter",resourceType:"text",time:f.temporal?.startTime||0};r.keyframes.push(h);let p={id:d.annotationId,type:"exit",resourceType:"text",time:f.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(c.type==="video"){let m=Cn(e,{choice:null,allChoices:null,types:["video"],items:[c]},o,!0);if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let f={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(f);let h={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(h)}}if(c.type==="audio"||c.type==="sound"){let m=ho(e,{choice:null,allChoices:null,types:["audio"],items:[c]});if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let f={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(f);let h={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(h)}}}for(let c of a)for(let m of c.items){let d=o.get(m),f=(0,Vs.expandTarget)(d.target,{typeMap:o.getState?.().iiif.mapping});if(f.selector?.temporal){let h={id:d.id,type:"enter",resourceType:"highlight",time:f.selector.temporal.startTime||0};r.keyframes.push(h);let p={id:d.id,type:"exit",resourceType:"highlight",time:f.selector.temporal.endTime||e.duration||0};r.keyframes.push(p)}r.highlights.push({annotation:d,target:f})}r.keyframes.sort((c,m)=>c.time-m.time);let l=[],u=[];for(let c of r.keyframes){if(c.resourceType==="image"||c.resourceType==="text"||c.resourceType==="highlight"){u.push(c);continue}if(c.type==="enter"){l.length===0&&(c.isPrime=!0),l.push(c),u.push(c);continue}if(c.type==="exit"&&(u.push(c),l=l.filter(m=>m.id!==c.id),l.length!==0)){let m=l[0],d={id:m.id,type:"change",isPrime:!0,resourceType:m.resourceType,time:c.time};u.push(d)}}return r.keyframes=u,i.items.length&&(r.choice=i),r}var vo={},Jr={get(e){return e},setMetaValue([e,t,n],o){let r=Jr.getResourceMeta(e,t),i=r?r[n]:void 0,a=typeof o=="function"?o(i):o;vo[e]={...vo[e]||{},[t]:{...(vo[e]||{})[t]||{},[n]:a}}},getResourceMeta:(e,t)=>{let n=vo[e];if(n)return t?n[t]:n},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(n=>n.json())},requestStatus(e){}};function Rn({canvas:e,paintables:t,supports:n,loadImageService:o,vault:r=Jr}){if(!e)return hn;if(t.types.length===0)return n.indexOf("empty")!==-1?_r(e.width,e.height):hn;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return n.indexOf("complex-timeline")===-1?q("Complex timeline not supported"):Zr(e,t,o,r);let i=t.types[0];return i==="image"?n.indexOf("images")===-1?q("Image not supported"):xn(e,t,o):i==="Model"||i==="model"?n.indexOf("3d-model")===-1?q("3D not supported"):Gr(e,t):i==="textualbody"?n.indexOf("textual-content")===-1?q("Textual content not supported"):bn(e,t):i==="sound"||i==="audio"?n.indexOf("media")===-1?q("Media not supported"):ho(e,t):i==="video"?n.indexOf("media")===-1?q("Media not supported"):Cn(e,t,r):hn}function ei(e){let t=$(),n=T(),o=k(),r=ln(),i=e?.emitter||r,[a,s]=Sn(),{enabledPageIds:l}=vn(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=Kr(l,"AnnotationPage"),c=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[m,d]=jr(e,[s]);(0,Ot.useEffect)(()=>{let h=p=>{d.makeChoice(p.choiceId,{deselectOthers:p.deselectOthers,deselect:p.deselect})};return i.on("make-choice",h),()=>{i.off("make-choice",h)}},[]);let f=(0,Ot.useMemo)(()=>Rn({canvas:n,paintables:m,supports:c,loadImageService:a,vault:o}),[n,m,o,d.makeChoice]);return(0,Ot.useEffect)(()=>{let h=m.allChoices,p={canvasId:n?.id,manifestId:t?.id};h&&i.emit("choice-change",{choice:h,partOf:p})},[n?.id,m.allChoices]),(0,Ot.useMemo)(()=>f.type==="unknown"?[f,Ur]:[{...f,annotations:{pages:u}},d],[f,u])}var Ls=require("@iiif/helpers");var ti=require("react/jsx-runtime");function ni({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:o,mediaControlsDeps:r,renderMediaControls:i,renderViewerControls:a,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,throwOnUnknown:c,children:m}){let d=T(),f=k(),h=(0,Qe.useMemo)(()=>(0,Ls.createStylesHelper)(f),[f]),[p,S]=ei({strategies:e||["images"],defaultChoices:n?.map(({id:C})=>C)}),v="choice"in p?p.choice:void 0;if((0,Qe.useEffect)(()=>{t&&t(S)},[p.annotations]),(0,Qe.useEffect)(()=>{o&&o(v)},[v]),(0,Qe.useEffect)(()=>{if(n)for(let C of n)typeof C.opacity<"u"&&h.applyStyles({id:C.id},"atlas",{opacity:C.opacity})},[n]),p.type==="unknown"&&c)throw new Error(p.reason||"Unknown strategy");let g=(0,Qe.useMemo)(()=>({renderMediaControls:i,mediaControlsDeps:r||[],renderViewerControls:a,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:u||[]}),[r,i,a,s,l,u]),y=(0,Qe.useMemo)(()=>({strategy:p,actions:S,choices:"choice"in p?p.choice:[]}),[p,d]);return(0,ti.jsx)(tn.Provider,{value:g,children:(0,ti.jsx)(We.Provider,{value:y,children:m})})}var Pn=require("react"),ri=require("zustand");var Bt=require("react");var oi=(0,Bt.createContext)(()=>{});function zs(e){let t=T(),n=(0,Bt.useContext)(oi);(0,Bt.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var Os=require("react/jsx-runtime");function ii({x:e=0,y:t=0,keepCanvasScale:n=!0,renderContextMenu:o,children:r}){let{strategy:i}=H(),a=T(),s=B(),l=Xt(a,["deep-zoom"]),u=(0,ri.useStore)(s,p=>p.setCanvasRelativePosition),c=(0,ri.useStore)(s,p=>p.clearCanvasRelativePosition),[m,d]=fn(`context-menu/${a?.id}`,a?.id,o),f=(0,Pn.useMemo)(()=>n?1:Math.max(1,...i.type==="images"?i.images.map(p=>(p.width||0)/p.target?.spatial.width):[]),[n,i]);(0,Pn.useEffect)(()=>{if(a)return u(a.id,{x:e,y:t,width:a.width,height:a.height}),()=>{c(a.id)}},[e,t,a,c,u]),(0,Pn.useEffect)(()=>{a&&s.getState().reset()},[s,a]),zs(f);let h=i.type==="images"?i.images.length:0;return a?(0,Os.jsxs)("world-object",{height:a.height,width:a.width,x:e,y:t,...d,...l,children:[m,r]},`${a.id}/${i.type}/${h}`):null}var ae=require("react/jsx-runtime");function ct({x:e,y:t,onChoiceChange:n,registerActions:o,defaultChoices:r,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:c,mediaControlsDeps:m,strategies:d,throwOnUnknown:f,backgroundStyle:h,alwaysShowBackground:p,keepCanvasScale:S=!1,enableSizes:v=!1,enableYouTube:g=!0,onClickPaintingAnnotation:y,components:C={},children:R,annotationPopup:P,svgTheme:A,renderContextMenu:I,renderAnnotationContextMenu:O}){return(0,ae.jsxs)(ni,{throwOnUnknown:f,onChoiceChange:n,registerActions:o,strategies:d,defaultChoices:r,mediaControlsDeps:m,renderMediaControls:s,renderViewerControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:c,children:[(0,ae.jsxs)(ii,{keepCanvasScale:S,x:e,y:t,renderContextMenu:I,children:[(0,ae.jsx)(Lr,{alwaysShowBackground:p,backgroundStyle:h}),(0,ae.jsx)(Vr,{}),(0,ae.jsx)(Or,{}),(0,ae.jsx)(zr,{isStatic:i,enableSizes:v,onClickPaintingAnnotation:y}),(0,ae.jsx)(br,{}),(0,ae.jsx)(gr,{}),(0,ae.jsx)(Pr,{as:C.Audio}),(0,ae.jsx)(qr,{as:C.Video}),g?(0,ae.jsx)(Hr,{}):null,(0,ae.jsx)(Wr,{theme:A,renderContextMenu:O,children:P}),R]}),(0,ae.jsx)(hr,{})]})}var ai=require("react/jsx-runtime");function Bs(e){let t=T();return!t||!t.placeholderCanvas?null:(0,ai.jsx)(de,{canvas:t.placeholderCanvas.id,children:(0,ai.jsx)(ct,{renderViewerControls:e.renderViewerControls})})}var Hs=require("@atlas-viewer/atlas"),se=Z(require("react"),1),Ds=require("react-error-boundary"),si=require("zustand");var So=require("react");function qs(e,t=2e3){let{currentSequenceIndex:n,sequence:o,items:r}=tt(),i=T(),a=(0,So.useMemo)(()=>{let l=o[n]||[];return l.length===0&&i?[{id:i.id,type:"Canvas"}]:l.map(u=>r[u])},[o,n,i,r]),s=B();(0,So.useEffect)(()=>{let u=setInterval(()=>{if(e&&t!==-1){let c={x:e.x,y:e.y,width:e.width,height:e.height},m=s.getState().canvasRelativePositions,d={};for(let f of a){let h=m[f.id];if(h){let p=h.x,S=h.y,v=h.width,g=h.height,y={x:Math.max(p,c.x),y:Math.max(S,c.y),width:Math.min(p+v,c.x+c.width)-Math.max(p,c.x),height:Math.min(S+g,c.y+c.height)-Math.max(S,c.y)};y.width<=0||y.height<=0||(d[f.id]={x:y.x-h.x,y:y.y-h.y,width:y.width,height:y.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(u)}},[a,e,s,t])}var qt=require("react/jsx-runtime");function xo({width:e,style:t,height:n,error:o,resetErrorBoundary:r}){return(0,qt.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,qt.jsx)("h3",{children:"Error occurred"}),(0,qt.jsx)("p",{children:o.message}),(0,qt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var D=require("react/jsx-runtime");function bo(e){let t=B();return(0,D.jsx)(It,{name:e.name,existing:t,children:(0,D.jsx)(oc,{...e})})}function oc({name:e,children:t,errorFallback:n,outerContainerProps:o={},worldScale:r,updateViewportTimeout:i,...a}){let s=B(),l=(0,si.useStore)(s,w=>w.mode),u=(0,si.useStore)(s,w=>w.setAtlasRuntime),[c,m]=(0,se.useState)(),d=un(),f=mn(),h=n||xo,[p,S]=(0,se.useState)({}),v=Object.entries(p),[g,y]=(0,se.useState)({}),C=Object.entries(g),[R,P]=(0,se.useState)({}),{worldScale:A,runtimeOptions:I}=(0,se.useMemo)(()=>{if(Object.values(R).length===0)return{worldScale:1,runtimeOptions:a.runtimeOptions||{maxOverZoom:1}};let N=Math.max(...Object.values(R));return{worldScale:N,runtimeOptions:{maxOverZoom:N||1,...a.runtimeOptions||{}}}},[R,a.runtimeOptions]);qs(c?.runtime,i);let O=(0,se.useCallback)((w,N)=>{P(V=>{if(N===-1){let{[w]:Pe,...he}=V;return he}return{...V,[w]:N}})},[]),G=(0,se.useCallback)((w,N,V)=>{S(({[w]:Pe,...he})=>N?{...he,[w]:{element:N,props:V}}:he)},[]),M=(0,se.useCallback)((w,N,V)=>{y(({[w]:Pe,...he})=>N?{...he,[w]:{element:N,props:V}}:he)},[]),L=(0,se.useCallback)(w=>{m(w),u(w.runtime),a.onCreated&&a.onCreated(w)},[a.onCreated,u]);return(0,D.jsxs)(Ds.ErrorBoundary,{resetKeys:[],fallbackRender:w=>(0,D.jsx)(h,{...a,...w}),children:[(0,D.jsx)(Hs.AtlasAuto,{...a,mode:l,containerProps:{style:{position:"relative"},...a.containerProps||{}},htmlChildren:(0,D.jsx)(D.Fragment,{children:v.map(([w,{element:N,props:V}])=>(0,D.jsx)(se.default.Fragment,{children:(0,D.jsx)(N,{...V||{}})},w))}),onCreated:L,runtimeOptions:I,children:(0,D.jsx)(It,{name:e,existing:s,children:(0,D.jsx)(Ce.Provider,{value:c,children:(0,D.jsx)(oi.Provider,{value:O,children:(0,D.jsx)(mr.Provider,{value:G,children:(0,D.jsx)(dr.Provider,{value:M,children:(0,D.jsx)(dn,{bridge:f,custom:d,children:(0,D.jsx)(xr,{children:t})})})})})})})}),(0,D.jsx)("div",{children:C.map(([w,{element:N,props:V}])=>(0,D.jsx)(se.default.Fragment,{children:(0,D.jsx)(N,{...V||{}})},w))}),(0,D.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var oe=require("react/jsx-runtime"),rc=(0,ht.forwardRef)(function(t,n){let o=$(),r=Je(),i=tt(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,ht.useImperativeHandle)(n,()=>i,[i]),!o)return(0,oe.jsx)("div",{});let u=0,c=o.viewingDirection==="top-to-bottom",m=o.viewingDirection==="bottom-to-top",d=o.viewingDirection==="left-to-right",f=o.viewingDirection==="right-to-left",p=o.behavior.includes("continuous")?0:t.spacing||0,S=m||f,v=(0,ht.useMemo)(()=>S?[...r].reverse():r,[r,S]);return(0,oe.jsxs)(oe.Fragment,{children:[t.header,(0,oe.jsx)(_.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,homePaddingPx:t.padding,children:v.map((g,y)=>{let C=0,R=0;return!c&&!m?(C=u,u+=g.width+p):(R=u,u+=g.height+p),(0,oe.jsx)(de,{canvas:g.id,children:(0,oe.jsx)(_.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&a?()=>(0,oe.jsx)(a,{}):void 0,renderMediaControls:y===0&&s?()=>(0,oe.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:y===0&&l?()=>(0,oe.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:C,y:R,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},g.id)},g.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),_=(0,ht.forwardRef)(function({children:t,height:n,annotations:o,canvasProps:r,spacing:i,header:a,components:s,mode:l,reuseAtlas:u,renderPreset:c,runtimeOptions:m,annotationPopup:d,name:f,svgTheme:h,updateViewportTimeout:p,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:g,padding:y,...C},R){let P=we();return(0,oe.jsx)(It,{name:f,children:(0,oe.jsx)(Ie,{vault:P,children:(0,oe.jsx)(Qo,{...C,children:(0,oe.jsx)(rc,{ref:R,height:n,components:s,spacing:i,canvasProps:r,annotations:o,header:a,mode:l,reuseAtlas:u,renderPreset:c,runtimeOptions:m,annotationPopup:d,svgTheme:h,updateViewportTimeout:p,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:g,padding:y,children:t})})})})});_.RenderImage=Ke;_.RenderCanvas=ct;_.RenderAnnotationPage=Fe;_.RenderAnnotation=at;_.Viewer=bo;_.CanvasBackground=io;_.Audio=Un;_.Video=so;_.Model=Kn;_.AudioHTML=pr;_.VideoHTML=Br;_.ModelHTML=fr;_.PlaceholderCanvas=Bs;_.getAtlasStoreByName=tr;var Fs=require("react");var ge=require("react"),yt=require("zustand");function li(e){let[t,n]=(0,ge.useState)(0),o=B(),r=(0,yt.useStore)(o,R=>R.tool.enabled),i=(0,yt.useStore)(o,R=>R.tool.requestId),a=(0,yt.useStore)(o,R=>R.getRequestId),s=(0,yt.useStore)(o,R=>R.requestAnnotation),l=(0,yt.useStore)(o,R=>R.completeRequest),u=(0,yt.useStore)(o,R=>R.cancelRequest),c=(0,ge.useRef)(e?.onSuccess);c.current=e?.onSuccess;let[m,d]=(0,ge.useState)(!1),[f,h]=(0,ge.useState)(null),[p,S]=(0,ge.useState)(null),v=r&&i!==p,g=r&&i===p,y=(0,ge.useCallback)(async(R,P)=>{if(p){let A=c.current;d(!0);let I=await s(R,{...P,requestId:p});if(I)return A?.(I),n(G=>G+1),d(!1),h(I),I;let O={id:p,cancelled:!0,...jt(R)};return A?.(O),h(O),n(G=>G+1),d(!1),O}return null},[s,p]),C=(0,ge.useCallback)(()=>{h(null),d(!1)},[]);return(0,ge.useEffect)(()=>{let R=a();return S(R.requestId),()=>{R.clear()}},[t]),{id:t,busy:v,isPending:m,isActive:g,requestId:p,requestAnnotation:y,cancelRequest:()=>p?u(p):void 0,completeRequest:()=>p?l(p):void 0,reset:C,data:f}}var ic=[{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 ci(e){let{id:t,data:n,requestAnnotation:o,cancelRequest:r,isPending:i}=li({onSuccess:a=>{e.updateShape(a.polygon)}});return(0,Fs.useEffect)(()=>(o({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var X=require("react"),ui=Z(require("mitt"),1),$s=require("react/jsx-runtime"),Co=(0,X.createContext)((0,ui.default)());Co.displayName="SelectorHelper";function ac({children:e}){return(0,$s.jsx)(Co.Provider,{value:(0,X.useMemo)(()=>(0,ui.default)(),[]),children:e})}function sc(){return(0,X.useContext)(Co)}function mi(e){let t=di(),[n,o]=(0,X.useState)(!1);(0,X.useEffect)(()=>t.withSelector(e).on("highlight",()=>{o(!0)}),[t,e]),(0,X.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{o(!1)}),[t,e]);let r=(0,X.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,X.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:r,onHover:i,isHighlighted:n}}function di(){let e=(0,X.useContext)(Co);return(0,X.useMemo)(()=>({withSelector(t){return{on(n,o){let r=i=>{i&&i.selectorId===t&&o(i)};return e.on(n,r),()=>{e.off(n,r)}},emit(n,o){e.emit(n,{...o,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function lc(){let e=di();return(0,X.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(n,o){return e.withSelector(t).on(n,o)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(t){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(t,n){return e.on(t,n)}}),[e])}var pi=require("react/jsx-runtime");function cc(e){let t=T(),n=e.annotationBucket,o=e.readOnly,r=e.id,{onClick:i,isHighlighted:a}=mi(e.id),s=Gt(),l=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(o){let u="shape",c=e.polygon,m=c.open;return c?(0,pi.jsx)(u,{id:`shape-${r}`,points:c.points,open:m,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,pi.jsx)(ci,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Ws=require("@atlas-viewer/atlas");var Ro=require("react"),An=require("react/jsx-runtime"),uc=(0,Ro.forwardRef)(function({canvasId:t},n){let o=(0,Ws.useCanvas)(),r=vn(t||o?.id),i=k();return(0,Ro.useImperativeHandle)(n,()=>r,[t,o]),!o||r.enabledPageIds.length===0?null:(0,An.jsx)(An.Fragment,{children:r.enabledPageIds.map(a=>(0,An.jsx)(_.RenderAnnotationPage,{page:i.get(a)},a))})});var _s=require("react");var Us=require("react");var U=require("react/jsx-runtime");function Tn({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:o=!0,allowHtml:r,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:u="",separator:c,tableFooter:m,tableHeader:d,customLabelRender:f,customValueRender:h}){let p=(0,Us.useMemo)(()=>{let v=(t||[]).reduce((y,C)=>[...y,...C.keys],[]),g={};for(let y of e){let C=y?.label?Object.values(y.label):[];for(let R of C)if(R?.length&&(v.indexOf(`metadata.${R[0]}`)!==-1||v.length===0)&&y){let P=`metadata.${R[0]}`;g[P]=g[P]?g[P]:[],g[P].push(y);break}}return g},[t,e]);return Object.keys(p).length===0&&o?(0,U.jsx)(U.Fragment,{children:i})||(0,U.jsx)("div",{className:a.empty,children:s}):t?.length?(0,U.jsxs)("table",{className:a.container,children:[d,(0,U.jsx)("tbody",{children:t.map((v,g)=>{let y=[];for(let R of v.keys)for(let P of p[R]||[]){let A=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:P.value},g+"__"+R);h?y.push(h(P,A)):y.push(A)}if(y.length===0)return null;let C=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,separator:c,defaultText:u,children:v.label});return(0,U.jsxs)("tr",{className:a.row,children:[(0,U.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:f?f(v.label,C):C}),(0,U.jsx)("td",{className:a.value,children:y})]},g)})}),m]}):(0,U.jsxs)("table",{className:a.container,children:[d,(0,U.jsx)("tbody",{children:e?.length?e.map((v,g)=>{if(!v)return null;let y=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:v.label}),C=(0,U.jsx)(ue,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:v.value});return(0,U.jsxs)("tr",{className:a.row,children:[(0,U.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:f?f(v.label,y):y}),(0,U.jsx)("td",{className:a.value,children:h?h(v,C):C})]},g)}):null}),m]})}var Ys=require("react/jsx-runtime");function mc(e){let t=$(),n=T(),o=Ut(),r=(0,_s.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=o?.metadata||[];return[...i,...a,...s]},[t,n,o]);return(0,Ys.jsx)(Tn,{metadata:r,...e})}var To=require("react");var Po=require("@iiif/parser/image-3"),Ks=require("react");function Ao(e,t={},n=[]){return(0,Ks.useMemo)(()=>{if(!e)return null;let o=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(o="default"));let r=(0,Po.createImageServiceRequest)(e);return(0,Po.imageServiceRequestToString)({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:o||"default",prefix:r.prefix,originalPath:r.originalPath})},[...n])}var In=require("react/jsx-runtime");function dc(e){let t=typeof e.src=="string"?e.src:e.src.id,n=nn(),[o,r]=(0,To.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!o&&n.loadService({id:t}).then(()=>{r(!0)});let a=Ao(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[o,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,To.useEffect)(()=>()=>{r(!1)},[t]),a?(0,In.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,In.jsx)(js,{...e,fetchImageService:!1})}function js(e){if(e.fetchImageService)return(0,In.jsx)(dc,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=Ao(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,In.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var Io=require("react"),Gs=require("react-error-boundary");var Be=require("react/jsx-runtime");function pc({src:e,errorFallback:t,interactive:n,skipSizes:o,children:r,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:l,y:u,...c}){let m=we(),[d,f]=(0,Io.useState)(),h=t||xo,[p,S]=Sn(),v=(0,Io.useMemo)(()=>{let y=S[e]?.status,C=p({id:e},{});return C?.height&&C.width&&y!=="loading"?{id:e,width:C.width,height:C.height,service:C,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:C.width,height:C.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:C.width,height:C.height}}}:null},[p,e,S]);if(!v||!v.height||!v.width)return null;let g=s?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:v.width/v.height;return(0,Be.jsx)(Gs.ErrorBoundary,{resetKeys:[],fallbackRender:y=>(0,Be.jsx)(h,{...c,...y}),children:(0,Be.jsx)(Ie,{vault:m,children:(0,Be.jsx)(bo,{...c,aspectRatio:g,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:y=>{f(y),c.onCreated&&c.onCreated(y)},children:(0,Be.jsxs)(Ce.Provider,{value:d,children:[(0,Be.jsx)(Ke,{image:v,id:v.id,isStatic:!n,x:l,y:u},v.id),(0,Be.jsx)(fc,{viewerPreset:d,renderViewerControls:i,image:v,src:e,viewControlsDeps:a}),r]})})})})}function fc({viewerPreset:e,renderViewerControls:t,image:n,src:o,viewControlsDeps:r}){return Q(e&&t?"overlay":"none",`canvas-portal-controls-${o}`,Ce.Provider,t&&n?{value:e||null,children:t({image:n,images:[n],type:"images"})}:{},[o,e,...r||[]]),null}var Qs=require("react/jsx-runtime");function gc(e){let t=$();return(0,Qs.jsx)(Tn,{metadata:t?.metadata||[],...e})}var wo=require("react");var fi=Z(require("react-lazy-load-image-component"),1);var Xs=require("@iiif/helpers/i18n"),ce=require("react/jsx-runtime"),{LazyLoadComponent:hc}=fi||fi.default;function gi(e){let{size:t,visible:n,classes:o,canvasId:r,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,l=(0,ce.jsx)(yc,{...e}),u=(0,ce.jsx)(hc,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:r?(0,ce.jsx)(de,{canvas:r,children:l}):l});return i?(0,ce.jsx)("figure",{className:o?.figure,children:u}):u}function yc({fallback:e,size:t,classes:n,showLabel:o,alt:r,dereference:i=!1}){let a=T(),s=t?.width||128,l=t?.height||t?.width||128,u=r||(0,Xs.getValue)(a?.label)||"",c=Ne({width:s,height:l,allowUnsafe:!0},i);return!c||c.type!=="fixed"?(0,ce.jsx)(ce.Fragment,{children:e}):(0,ce.jsxs)(ce.Fragment,{children:[(0,ce.jsx)("div",{className:n?.imageWrapper,children:(0,ce.jsx)("img",{className:n?.img,src:c.id,alt:u})}),o?(0,ce.jsx)(ue,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var Ht=require("react/jsx-runtime");function vc({scrollBehaviour:e,dereference:t,flat:n,size:o,classes:r={},showLabel:i,figure:a,fallback:s}){let l=(0,wo.useRef)(null),{items:u,sequence:c,currentSequenceIndex:m,setSequenceIndex:d}=tt(),f={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,wo.useLayoutEffect)(()=>{if(!l.current)return;let p=l.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[m]);let h=[];for(let p of c){let S=[],v=c[m]===p;for(let g of p){let y=u[g];S.push((0,Ht.jsx)("div",{className:v?f.item:r.item,children:(0,Ht.jsx)(gi,{classes:v?f:r,canvasId:y.id,size:o,dereference:t,showLabel:i,figure:a,placeholder:(0,Ht.jsx)("div",{style:{height:128,width:128}}),fallback:s})},g))}if(n){h.push(S);continue}h.push((0,Ht.jsx)("div",{onClick:g=>{d(c.indexOf(p))},"data-selected":v,className:v?f.row:r.row,children:S},p.join("-")))}return(0,Ht.jsx)("div",{ref:l,className:r.container,children:h})}var wn=require("zustand");function hi(){let e=B(),t=(0,wn.useStore)(e,i=>i.completeRequest),n=(0,wn.useStore)(e,i=>i.polygonState.currentTool),o=(0,wn.useStore)(e,i=>i.polygonState.selectedStamp),r=(0,wn.useStore)(e,i=>i.switchTool);return{completeRequest:t,currentTool:n,selectedStamp:o,switchTool:r}}var K=require("react/jsx-runtime"),Sc={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function xc({showShapes:e=!0,enabled:t=Sc,classNames:n={},icons:o={}}){let{currentTool:r,switchTool:i,selectedStamp:a}=hi();return(0,K.jsxs)(K.Fragment,{children:[r,(0,K.jsx)("button",{className:n.button,onClick:i.pointer,"data-active":r==="pointer",children:o.PointerIcon||"Pointer"}),(0,K.jsx)("button",{className:n.button,onClick:i.hand,"data-active":r==="hand",children:o.HandIcon||"Hand"}),e?(0,K.jsxs)(K.Fragment,{children:[t.box&&(0,K.jsx)("button",{className:n.button,onClick:i.box,"data-active":r==="box",children:o.BoxIcon||"Box"}),t.pen&&(0,K.jsx)("button",{className:n.button,onClick:i.pen,"data-active":r==="pen",children:o.PenIcon||"Pen"}),t.draw&&(0,K.jsx)("button",{className:n.button,onClick:i.draw,"data-active":r==="pencil",children:o.DrawIcon||"Draw"}),t.line&&(0,K.jsx)("button",{className:n.button,onClick:i.line,"data-active":r==="line",children:o.LineIcon||"Line"}),t.lineBox&&(0,K.jsx)("button",{className:n.button,onClick:i.lineBox,"data-active":r==="lineBox",children:o.LineBoxIcon||"LineBox"}),t.triangle&&(0,K.jsx)("button",{className:n.button,onClick:i.triangle,"data-active":r==="stamp"&&a?.id==="triangle",children:o.TriangleIcon||"Triangle"}),t.hexagon&&(0,K.jsx)("button",{className:n.button,onClick:i.hexagon,"data-active":r==="stamp"&&a?.id==="hexagon",children:o.HexagonIcon||"Hexagon"}),t.circle&&(0,K.jsx)("button",{className:n.button,"data-active":r==="stamp"&&a?.id==="circle",onClick:i.circle,children:o.CircleIcon||"Circle"})]}):null,t.delete&&(0,K.jsx)("button",{className:n.button,onClick:i.remove,children:o.DeleteForeverIcon||"Delete"})]})}var Zs=require("react/jsx-runtime");function bc({annotation:e,children:t}){return(0,Zs.jsx)(re,{value:{annotation:e},children:t})}var Js=require("react/jsx-runtime");function Cc({annotationPage:e,children:t}){return(0,Js.jsx)(re,{value:{annotationPage:e},children:t})}var el=require("react/jsx-runtime");function Rc({collection:e,children:t}){return(0,el.jsx)(re,{value:{collection:e},children:t})}function Pc(e,t={}){return ze(t)}var tl=require("@atlas-viewer/atlas"),Xe=require("react");function Ac({canvasId:e}={}){let t=(0,tl.useCanvas)(),n=Je(),o=(0,Xe.useMemo)(()=>e?[e]:t?[t.id]:n.map(u=>u.id),[e,t,n]),[r,i]=(0,Xe.useState)({}),a=ln();(0,Xe.useEffect)(()=>{let u=c=>{let m=c.partOf.canvasId;m&&i(d=>({...d,[m]:c.choice}))};return a.on("choice-change",u),()=>{a.off("choice-change",u)}},[]);let s=(0,Xe.useMemo)(()=>{let u=[];for(let c of o){let m=r[c];m&&u.push({canvasId:c,choice:m})}return u},[o,r]),l=(0,Xe.useMemo)(()=>({makeChoice:(u,c)=>{a.emit("make-choice",{choiceId:u,...c})}}),[a]);return{choices:s,actions:l}}function Tc(e,t=!1){}function Ic(e){let n=J().manifest,o=e?e.map(r=>typeof r=="string"?r:r?.id):[];return z(r=>{let i=n?r.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let l of i?.items||[])o.indexOf(l.id)!==-1&&s.push(l);return s},[o.join("/")])}var nl=require("react");function wc(e,t=[]){let{id:n,selector:o}=e,r=J(),i=n||r.collection,a=z(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,nl.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}var ko=require("react"),yi=require("zustand");function kc(){let e=B(),t=(0,yi.useStore)(e,o=>o.completeRequest),n=(0,yi.useStore)(e,o=>o.cancelRequest);return(0,ko.useMemo)(()=>({saveAnnotation:()=>{(0,ko.startTransition)(()=>{t()})},cancelRequest:n}),[t,n])}var ol=require("react"),Mo=require("zustand");function Mc({requestId:e}={}){let t=B(),n=(0,Mo.useStore)(t,s=>s.metadata),o=(0,Mo.useStore)(t,s=>s.tool.requestId),r=e||o,i=(0,Mo.useStore)(t,s=>s.setMetadata),a=(0,ol.useCallback)(s=>i(s,r||void 0),[i,r]);return[r?n[r]||{}:{},a]}var rl=require("zustand");function Ec(e){let t=B(),n=(0,rl.useStore)(t,o=>o.tool.requestId);ot("polygons.start-transition",o=>{e.requestId&&n!==e.requestId||e?.onStart?.(o.transitionIntent)},[n,e.requestId]),ot("polygons.end-transition",o=>{e.requestId&&n!==e.requestId||e?.onEnd?.(o.transitionIntent,o.response)},[n,e.requestId]),ot("polygons.transition",o=>{e.requestId&&n!==e.requestId||e?.onTransition?.(o.transitionIntent)},[n,e.requestId])}var Eo=require("react"),il=require("@iiif/helpers/events");function Nc(e,t,n,o,r=[]){let i=k(),a=(0,Eo.useMemo)(()=>(0,il.createEventsHelper)(i),[i]);(0,Eo.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,o),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...r])}function Vc(e,t){let{id:n,isLoaded:o,error:r,resource:i,requestId:a,cached:s}=Wt(e,t);return{id:n,isLoaded:o,error:r,manifest:i,requestId:a,cached:s}}var vi=require("@iiif/parser/image-3");var Te=require("react");function Si({cacheKey:e}={}){let t=T(),n=ze(),o=k(),r=Et(),i=Fa(),[a,s]=(0,Te.useState)(void 0),[l,u]=(0,Te.useState)(!1),[c,m]=(0,Te.useState)("idle"),[d,f]=(0,Te.useState)(void 0),h=t?t.id:"undefined",p=(0,Te.useMemo)(()=>{try{if(t&&n.length){let v=n[0],g=o.get(v.body[0]),C=(0,vi.getImageServices)(g)[0];return C&&r(C,{width:C.width||t.width,height:C.height||t.height},!0)||void 0}}catch(v){console.error(v)}},[h,e,t]),S=c==="success"&&a?a:p;return(0,Te.useEffect)(()=>{(async()=>{try{if(t&&n.length){let v=n[0],g=o.get(v.body[0]),C=(0,vi.getImageServices)(g)[0];if(!C)return;u(!0),m("loading");try{let R=await i(C,{width:C.width||t.width,height:C.height||t.height})||void 0;s(R),m("success"),u(!1)}catch(R){m("error"),f(R)}}}catch(v){m("error"),f(v)}})()},[h,e]),(0,Te.useMemo)(()=>({data:S,isFetching:l,status:c,error:d}),[S,l,c,d])}function Lc(){let e=Si();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 No=require("react");var al=require("@iiif/helpers");function zc({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=k(),n=T(),o=ze(),r=(0,No.useMemo)(()=>(0,al.createPaintingAnnotationsHelper)(t),[t]),i=(0,No.useMemo)(()=>r.getPaintables(o),[r,o]);return(0,No.useMemo)(()=>Rn({canvas:n,loadImageService:a=>a,paintables:i,supports:e}),[n,i,e])}var sl=require("@iiif/helpers/styles"),ll=require("react");function Oc(){let e=k();return(0,ll.useMemo)(()=>(0,sl.createStylesHelper)(e),[e])}var j=require("react");var kn=[.6,.02,0,.75],xi=16,bi={linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1],"ease-in-cubic":kn,"ease-out-cubic":[.215,.61,.355,1]};function Ci(e,t,n){let o=Math.max(0,Math.min(1,n));return{x:e.x+(t.x-e.x)*o,y:e.y+(t.y-e.y)*o,width:e.width+(t.width-e.width)*o,height:e.height+(t.height-e.height)*o}}function Ri(e,t){let n=[],o=e;for(let r of t)n.push({from:o,to:r}),o=r;return n}function Dt([e,t,n,o]){let r=3*e,i=3*(n-e)-r,a=1-r-i,s=3*t,l=3*(o-t)-s,u=1-s-l;function c(h){return((a*h+i)*h+r)*h}function m(h){return((u*h+l)*h+s)*h}function d(h){return(3*a*h+2*i)*h+r}function f(h,p=1e-6){let S=h;for(let y=0;y<8;y++){let C=c(S)-h;if(Math.abs(C)<p)return S;let R=d(S);if(Math.abs(R)<1e-6)break;S=S-C/R}let v=0,g=1;for(S=h;v<g;){let y=c(S);if(Math.abs(y-h)<p)return S;h>y?v=S:g=S,S=(g-v)*.5+v}return S}return h=>{if(h<=0)return 0;if(h>=1)return 1;let p=f(h);return m(p)}}function Pi(e,t){if(!t||t.length===0)return{index:-1,t:0};if(Number.isNaN(e)||!isFinite(e))return{index:-1,t:0};if(e<0)return{index:-1,t:0};if(e>=t.length)return{index:t.length,t:0};let n=Math.floor(e),o=e-n;return{index:n,t:o}}function Bc(e){let{initial:t,regions:n,progress:o,getProgress:r,enabled:i=!0,easing:a,reportEveryFrame:s=!1,pollInterval:l=xi,loop:u=!1,onEnter:c,onExit:m,onProgress:d,jumpTo:f}=e,h=(0,j.useMemo)(()=>Ri(t,n),[t,n]),[p,S]=(0,j.useState)(()=>-1),[v,g]=(0,j.useState)(0),y=(0,j.useRef)(-1),C=(0,j.useRef)(0),R=(0,j.useRef)(!0),P=(0,j.useRef)(()=>{});(0,j.useEffect)(()=>(R.current=!0,()=>{R.current=!1}),[]);let A=(0,j.useMemo)(()=>{if(!a)return Dt(kn);if(typeof a=="function")return a;if(Array.isArray(a)&&a.length===4)return Dt(a);let L=bi[a];return L?Dt(L):Dt(kn)},[a]),I=(0,j.useCallback)(L=>{if(!(L<0||L>=h.length)&&(S(L),y.current=L,C.current=0,g(0),c))try{c(L)}catch{}},[h,c]);(0,j.useEffect)(()=>{P.current=I,f&&f(I)},[I,f]);function O(L){let{index:w,t:N}=Pi(L,h),V=w;if(u&&h.length>0){let he=h.length;V=(w%he+he)%he}let Pe=A(N);if(V!==y.current){if(y.current>=0&&m)try{m(y.current)}catch{}if(V>=0&&c)try{c(V)}catch{}y.current=V,R.current&&S(V)}if(C.current=Pe,R.current&&(s||V!==p)&&g(Pe),d&&V>=0)try{d(V,Pe)}catch{}}(0,j.useEffect)(()=>{i&&typeof o=="number"&&O(o)},[o,i]),(0,j.useEffect)(()=>{if(!i||typeof r!="function")return;let L=null,w=()=>{try{let N=r();O(N)}catch{}};return w(),L=setInterval(w,l),()=>clearInterval(L)},[r,i,l]);let G=p>=0&&p<h.length?h[p]:void 0,M=G?Ci(G.from,G.to,C.current):void 0;return{transitions:h,currentIndex:p,currentTransition:G,t:C.current,rect:M,jumpTo:I}}var vt=require("react");function qc(e,t={}){let{axis:n="y",offset:o=0,steps:r=1,enabled:i=!0}=t,[a,s]=(0,vt.useState)(0),l=(0,vt.useRef)(-1),u=(0,vt.useRef)(null);return(0,vt.useEffect)(()=>{if(!i||!e||!e.current)return;let c=e.current,m=()=>{let f=n==="y"?c.scrollTop:c.scrollLeft,h=n==="y"?c.clientHeight:c.clientWidth,S=(n==="y"?c.scrollHeight:c.scrollWidth)-h,g=(S<=0?0:Math.max(0,Math.min(1,(f+o)/S)))*r;g!==l.current&&(l.current=g,s(g)),u.current=null},d=()=>{u.current===null&&(u.current=requestAnimationFrame(m))};return c.addEventListener("scroll",d,{passive:!0}),m(),()=>{c.removeEventListener("scroll",d),u.current!==null&&cancelAnimationFrame(u.current)}},[e,n,o,r,i]),a}function Hc(e,t){let{x:n,y:o,width:r,height:i}=e,{x:a,y:s}=t,{width:l,height:u}=t;return n+r>a&&n<a+l&&o+i>s&&o<s+u}var cl=Z(require("tiny-invariant"),1);function Dc(e,t){let n=e.boundingBox||De(e.polygon);if(e.polygon&&!At(e.polygon.points)){let o=e.target||Tt(e.polygon,t);return(0,cl.default)(o?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...n||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:o.value}}return{type:"BoxSelector",spatial:n}}
|