react-iiif-vault 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +4 -2
- package/dist/bundle.global.js +20 -20
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var Gs=Object.create;var To=Object.defineProperty;var Qs=Object.getOwnPropertyDescriptor;var Xs=Object.getOwnPropertyNames;var Zs=Object.getPrototypeOf,Js=Object.prototype.hasOwnProperty;var el=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Ao=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Xs(t))!Js.call(e,r)&&r!==o&&To(e,r,{get:()=>t[r],enumerable:!(n=Qs(t,r))||n.enumerable});return e},x=(e,t,o)=>(Ao(e,t,"default"),o&&Ao(o,t,"default")),Q=(e,t,o)=>(o=e!=null?Gs(Zs(e)):{},Ao(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),tl=e=>Ao(To({},"__esModule",{value:!0}),e);var S={};el(S,{AnnotationContext:()=>oc,AnnotationPageContext:()=>nc,AnnotationStyleProvider:()=>yl,AtlasStoreProvider:()=>Rt,AtlasStoreReactContext:()=>tt,Auth:()=>Wn,AuthProvider:()=>Fn,AuthRContext:()=>Xe,AuthReactContext:()=>ki,AuthReactContextActions:()=>Mi,CanvasAnnotations:()=>_l,CanvasContext:()=>me,CanvasPanel:()=>U,CanvasStrategyProvider:()=>Qr,CanvasWorldObject:()=>Jr,CollectionContext:()=>rc,CombinedMetadata:()=>Yl,ComplexTimelineProvider:()=>br,ContextBridge:()=>so,ControlsReactContext:()=>Xt,CreateCustomShape:()=>ni,CustomContextBridge:()=>os,CustomContextBridgeProvider:()=>Ml,DefaultEditingTools:()=>cs,EventEmitterProvider:()=>fl,EventsProvider:()=>kl,Image:()=>Vs,ImageService:()=>jl,ImageServiceLoaderContext:()=>va,InnerViewerProvider:()=>Bi,LanguageProvider:()=>Pl,LanguageString:()=>za,LocaleString:()=>le,ManifestContext:()=>Mn,ManifestMetadata:()=>Ql,MediaPlayerProvider:()=>Gt,Metadata:()=>Co,PolygonSelector:()=>Ul,RangeContext:()=>En,ReactEmitterContext:()=>Lo,ReactEventContext:()=>mt,ReactVaultContext:()=>Ee,RegionHighlight:()=>nr,Render3DModelStrategy:()=>ur,RenderAccompanyingCanvas:()=>mr,RenderAnnotation:()=>nt,RenderAnnotationEditing:()=>Or,RenderAnnotationPage:()=>Le,RenderAnnotationStrategy:()=>hr,RenderAudioStrategy:()=>Sr,RenderComplexTimelineStrategy:()=>wr,RenderEmptyStrategy:()=>kr,RenderImageStrategy:()=>Mr,RenderSvgEditorControls:()=>tc,RenderTextualContentStrategy:()=>Er,RenderVideoStrategy:()=>Vr,RenderYouTubeStrategy:()=>Lr,ResizeWorldItem:()=>tr,ResourceProvider:()=>te,ResourceReactContext:()=>Bt,SelectorControllerProvider:()=>Fl,SequenceThumbnails:()=>Jl,SimpleViewerProvider:()=>_n,SimpleViewerReactContext:()=>xt,SingleCanvasThumbnail:()=>ci,StrategyReactContext:()=>qe,ThumbnailFallbackImage:()=>lt,TranslationProvider:()=>Rl,TransliterationProvider:()=>Al,VaultProvider:()=>Ke,ViewerPresetContext:()=>xe,VirtualAnnotationProvider:()=>gr,VisibleCanvasReactContext:()=>je,annotationResponseToSelector:()=>Sc,authDetailsForResource:()=>On,createAtlasStore:()=>Kn,createAuthStateStore:()=>qn,createProbe:()=>Bn,defaultEmitter:()=>es,defaultSvgTheme:()=>Qa,emptyActions:()=>Hr,emptyStrategy:()=>Dr,findAllCanvasesInRange:()=>ko,findFirstCanvasFromRange:()=>Pi,findManifestSelectedRange:()=>nl,findSelectedRange:()=>Nn,flattenAnnotationPageIds:()=>Fr,formatTime:()=>Oo,get3dStrategy:()=>Ur,getAtlasStoreByName:()=>Qn,getComplexTimelineStrategy:()=>Yr,getDefaultAnnotationStyles:()=>Xn,getImageStrategy:()=>ho,getManifestSequence:()=>Mo,getParsedTargetSelector:()=>uo,getRenderingStrategy:()=>So,getTextualContentStrategy:()=>yo,getVideoStrategy:()=>vo,getVisibleCanvasesFromCanvasId:()=>rl,hasAuth:()=>il,isBoxSelector:()=>gl,isRectangle:()=>bt,isSvgSelector:()=>Di,makeAccessServiceRequest:()=>Ln,makeAccessTokenRequest:()=>Eo,parseSpecificResource:()=>El,polygonToTarget:()=>Ct,requestToAnnotationResponse:()=>Ut,seraliseSupportedSelector:()=>zo,svgThemes:()=>Dl,targetIntersects:()=>vc,unknownResponse:()=>mo,unsupportedStrategy:()=>z,useAnnotation:()=>Yt,useAnnotationPage:()=>rr,useAnnotationPageManager:()=>fo,useAnnotationStyles:()=>_t,useAnnotationsAtTime:()=>ic,useAtlasContextMenu:()=>co,useAtlasStore:()=>L,useAuthActions:()=>Ei,useAuthService:()=>Ni,useAuthStore:()=>vt,useAuthToken:()=>sl,useAuthTokens:()=>Hn,useCanvas:()=>P,useCanvasChoices:()=>ac,useCanvasClock:()=>sc,useCanvasSequence:()=>Vn,useCanvasStartTime:()=>Qt,useCanvasSubset:()=>lc,useClosestLanguage:()=>Ba,useCollection:()=>cc,useComplexTimeline:()=>Cl,useContextBridge:()=>ao,useContextMenuStore:()=>ss,useCreateLocaleString:()=>Tl,useCurrentAnnotationActions:()=>uc,useCurrentAnnotationMetadata:()=>mc,useCurrentAnnotationRequest:()=>Br,useCurrentAnnotationTransition:()=>dc,useCurrentAuth:()=>al,useCustomContextBridge:()=>io,useDispatch:()=>dr,useEmitter:()=>Yn,useEvent:()=>et,useEventEmitter:()=>no,useEventListener:()=>pc,useExistingVault:()=>Qe,useExternalCollection:()=>fc,useExternalManifest:()=>kn,useExternalResource:()=>Ht,useIIIFLanguage:()=>Qo,useImage:()=>xn,useImageService:()=>pi,useImageServiceLoader:()=>Zt,useImageTile:()=>gc,useIsAuthEnabled:()=>$n,useLoadImageService:()=>go,useLocaleString:()=>Oa,useManifest:()=>F,useMediaActions:()=>Sl,useMediaElements:()=>xl,useMediaState:()=>vl,usePaintables:()=>Wr,usePaintingAnnotations:()=>Me,usePolygonHelper:()=>zr,useRange:()=>Dt,useRemoteStylesheet:()=>Jn,useRenderControls:()=>oe,useRenderingStrategy:()=>jr,useRequestAnnotation:()=>oi,useResourceContext:()=>X,useResourceEvents:()=>Kt,useResources:()=>$r,useSearchService:()=>Un,useSelectorController:()=>ai,useSelectorEmitter:()=>$l,useSelectorEvents:()=>ii,useSelectorHelper:()=>Wl,useSimpleMediaPlayer:()=>rt,useSimpleViewer:()=>Ze,useStaticRenderingStrategy:()=>hc,useStrategy:()=>O,useStyleHelper:()=>yc,useStyles:()=>ot,useStylesheetStore:()=>Ki,useSvgEditor:()=>qr,useSvgEditorControls:()=>ui,useThumbnail:()=>Ie,useTranslations:()=>Rr,useTransliteration:()=>Cr,useVault:()=>w,useVaultEffect:()=>yr,useVaultSelector:()=>N,useViewerPreset:()=>eo,useVirtualAnnotationPage:()=>pr,useVirtualAnnotationPageContext:()=>fr,useVisibleCanvases:()=>Ge});module.exports=tl(S);x(S,require("@iiif/helpers/annotation-targets"),module.exports);var pt=require("react");var gt=Q(require("react"),1),fi=require("react/jsx-runtime"),ol={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Bt=gt.default.createContext(ol),X=()=>(0,gt.useContext)(Bt);function te({value:e,children:t}){let o=X(),n=(0,gt.useMemo)(()=>({...o,...e}),[e,o]);return(0,fi.jsx)(Bt.Provider,{value:n,children:t})}var gi=require("react/jsx-runtime");function me({canvas:e,children:t}){return(0,gi.jsx)(te,{value:{canvas:e},children:t})}var Io=Q(require("react"),1),Ot=require("@iiif/helpers/vault");var wn=require("react/jsx-runtime"),Ee=Io.default.createContext({vault:null,setVaultInstance:e=>{}});function Ke({vault:e,vaultOptions:t,useGlobal:o,resources:n,children:r}){let[a,i]=(0,Io.useState)(()=>e||(o?(0,Ot.globalVault)(t):t?new Ot.Vault(t):new Ot.Vault));return(0,wn.jsx)(Ee.Provider,{value:{vault:a,setVaultInstance:i},children:(0,wn.jsx)(te,{value:n||{},children:r})})}var yi=require("react"),vi=Q(require("react"),1);var hi=require("react"),w=()=>{let{vault:e}=(0,hi.useContext)(Ee);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var wo=require("react");function N(e,t=[]){let o=w(),[n,r]=(0,wo.useState)(()=>e(o.getState(),o));return(0,wo.useEffect)(()=>o.subscribe(a=>e(a,o),a=>{r(a)},!1),t),n}var je=vi.default.createContext([]);function Ge(){let e=(0,yi.useContext)(je);return N(t=>e.map(o=>t.iiif.entities.Canvas[o]).filter(Boolean),[e])}var Si=require("@iiif/helpers/vault"),xi=require("react");function Qe(e){let t=(0,xi.useContext)(Ee);return e||(t&&t.vault?t.vault:(0,Si.globalVault)())}var bi=require("react");function F(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=w(),i=o||r.manifest,s=N(l=>i?l.iiif.entities.Manifest[i]:void 0,[i]);return(0,bi.useMemo)(()=>{if(s)return n?n(s):s},[s,n,...t])}var qi=require("react"),Vo=require("react");var Ne=require("react");function Ht(e,{noCache:t=!1}={}){let o=typeof e=="string"?e:e.id,n=Qe(),[r,a]=(0,Ne.useState)(o),[i,s]=(0,Ne.useState)(void 0),l=(0,Ne.useMemo)(()=>n.get(o,{skipSelfReturn:!0})||void 0,[o,n]),[m,c]=(0,Ne.useState)(l);return(0,Ne.useEffect)(()=>{(async()=>{try{let u=l&&!t?l:await n.load(o),d=u?u.id||u["@id"]:null;u&&r!==d&&a(d),c(u)}catch(u){s(u)}})()},[o,t]),{isLoaded:!!m,id:r,requestId:o,error:i,resource:m,cached:!!(m&&m===l)}}function kn(e,t){let{id:o,isLoaded:n,error:r,resource:a,requestId:i,cached:s}=Ht(e,t);return{id:o,isLoaded:n,error:r,manifest:a,requestId:i,cached:s}}var Ci=require("react/jsx-runtime");function Mn({manifest:e,children:t}){return(0,Ci.jsx)(te,{value:{manifest:e},children:t})}var Ri=require("react/jsx-runtime");function En({range:e,children:t}){return(0,Ri.jsx)(te,{value:{range:e},children:t})}function Pi(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=Pi(e,e.get(o));if(n)return n}}return null}function ko(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(...ko(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 nl(e,t,o){for(let n of t.structures){let r=Nn(e,e.get(n),o);if(r)return r}return null}function Nn(e,t,o){for(let n of t.items){let r=n?.source?.id?.split("#")[0];if(n.type==="SpecificResource"&&n.source===o||n.type==="SpecificResource"&&n.source?.type==="Canvas"&&o===r)return t;if(n.type==="Range"){let a=Nn(e,e.get(n),o);if(a)return a}}return null}function rl(e,t,o,n=!1){let r=t.behavior,a=o?e.get(o):null;if(!a)return[];let i=a.behavior,s=n?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),m=s||l?!1:r.includes("individuals"),c=i.includes("facing-pages"),u=i.includes("non-paged");if(c||u||m||n)return[{id:a.id,type:"Canvas"}];let[d,g]=Mo(e,t);if(l)return d;let v=d.findIndex(p=>p.id===o);if(v===-1)return[];for(let p of g)if(p.includes(v))return p.map(b=>d[b]);return[{id:a.id,type:"Canvas"}]}function Mo(e,t,{disablePaging:o,skipNonPaged:n}={}){let r=t.behavior,a=r.includes("paged"),i=a?!1:r.includes("continuous"),s=a||i?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:ko(e,t);if(i)return[l,[l.map((v,p)=>p)]];if(s||!a||o)return[l,l.map((v,p)=>[p])];let m=[],c=[],u=()=>{c.length&&(m.push([...c]),c=[])},d=0,g=!1;for(let v=0;v<l.length;v++){let p=e.get(l[v]);if(p.behavior.includes("non-paged")){v===d&&d++,n||(u(),m.push([v]),u());continue}if(v===d||p.behavior.includes("facing-pages")){c.length&&(g=!0),u(),m.push([v]),u();continue}if(c.push(v),g){u(),g=!1;continue}c.length>1&&u()}return c.length&&u(),[l,m]}var ge=require("react");var Ai=require("react");function Dt(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.range,i=N(s=>a?s.iiif.entities.Range[a]:void 0,[a]);return(0,Ai.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}function Vn({startCanvas:e,disablePaging:t}){let o=w(),n=F(),r=Dt(),[a,i]=(0,ge.useState)(void 0),s=r||n;if(!s)throw new Error("Nothing selected");let[l,m]=(0,ge.useMemo)(()=>Mo(o,s,{disablePaging:t}),[o,s,t]),c=(0,ge.useRef)(m);if(c.current!==m){let b=c.current[a][0],y=m.findIndex(f=>f.includes(b));c.current=m,i(y)}let u=(0,ge.useCallback)(p=>{let b=m.findIndex(y=>y.includes(p));i(b===-1?0:b)},[l,m]),d=(0,ge.useCallback)(p=>{let b=l.findIndex(y=>y.id===p);b!==-1?u(b):i(0)},[l,m]),g=(0,ge.useCallback)(()=>{i(p=>p>=m.length-1?p:p+1)},[m]),v=(0,ge.useCallback)(()=>{i(p=>p<=0?0:p-1)},[m]);return typeof a>"u"&&(e?d(e):i(0)),{visibleItems:m[a]?.map(p=>l[p].id)||[],cursor:a,items:l,sequence:m,hasPrevious:a>0,hasNext:a<m.length-1,setSequenceIndex:i,setCanvasIndex:u,setCanvasId:d,next:g,previous:v}}var ye=require("react"),yt=require("zustand");var zn=require("zustand/vanilla");function il(e){let t=e.service||e.services||[];for(let o of t)if(o.type==="AuthProbeService2")return!0;return!1}function he(e,t,o){let n=t.findIndex(i=>i.service.id===e);if(n===-1)return t;let r=[...t],a=o(r[n]);return a===r[n]?t:(r[n]=a,r)}var qn=()=>(0,zn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let o=t().authItems[t().currentAuth];if(!o||o.isPending||o.isLoggedIn)return;if(o.type!=="active")throw new Error("Cannot login to non-active service");let n=o.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!n)throw new Error("Token service not found");e(()=>({authItems:he(o.id,t().authItems,r=>({...r,isPending:!0}))})),Ln(o.service).then(()=>{Eo(n).then(r=>{let a=r.expiresIn,i=Date.now()+a*1e3;e(()=>({authItems:he(o.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:i}}))}))}).catch(r=>{e(()=>({authItems:he(o.id,t().authItems,a=>({...a,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let o=t().authItems[t().currentAuth];if(!o||o.isPending||!o.isLoggedIn)return;if(o.type!=="active")throw new Error("Cannot logout of non-active service");let n=o.service.service.find(i=>i.type==="AuthLogoutService2");if(!n)return;let r=`${n.id}?origin=${Ti()}`,a=window.open(r);e(()=>({authItems:he(o.id,t().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let o=t().authItems.length,n=t().currentAuth+1;n>=o||e(()=>({currentAuth:n}))},previousAuth:()=>{let o=t().currentAuth-1;o<0||e(()=>({currentAuth:o}))},setAuth:o=>{o!==-1&&(o<0||o>=t().authItems.length)||e(()=>({currentAuth:o}))},addService:(o,n)=>{if(!o.service)return;let r=o.service.find(s=>s.type==="AuthAccessTokenService2"),a=o;if(t().authItems.find(s=>s.service.id===o.id)){e(()=>({authItems:he(o.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:a.profile==="active"?0:t().currentAuth,authItems:[{id:o.id,type:o.profile,service:o,probeId:n,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),o.profile==="external"){if(!r)throw new Error("Token service not found");Eo(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(o.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:he(o.id,t().authItems,s=>({...s,isPending:!0}))})),Ln(a).then(()=>{Eo(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}o.profile},removeService:(o,n)=>{let r=t().currentAuth===t().authItems.findIndex(i=>i.service.id===o.id),a=t().currentAuth;if(r){let i=t().authItems.find(l=>l.service.id===o.id);i&&i.instances>1||(a=t().authItems.findIndex(m=>m.service.id!==o.id&&m.instances>0))}e(()=>({authItems:he(o.id,t().authItems,i=>({...i,instances:i.instances-1})),currentAuth:a}))}})),Bn=(e,t)=>(0,zn.createStore)((o,n)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!n().service)return;let r=n().service?.id;if(!r){o({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}o({status:"probing"});let a=n().token;try{let i=await fetch(r,{headers:a?{Authorization:`Bearer ${n().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(i.status===200)o({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(i.status<400&&i.status>=300){if(!i.location)throw new Error("Redirect location not found");o({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)o({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!i.substitute,substituteResource:i.substitute||null,error:"Unauthorized",errorHeading:i.heading||{en:["Unauthorized"]},errorNote:i.note||null});else throw new Error("Unknown error")}catch(i){o({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){o({token:r})}}));function On(e){let t=e.service||e.services||[],o={hasAuth:!1,services:{}};for(let n of t)if(n.type==="AuthProbeService2"){o.services.probe=n,o.hasAuth=!0;let r=n.service.filter(a=>a.type==="AuthAccessService2");r[0]&&(o.services.access=r[0])}return o}async function Eo(e,{strict:t=!0}={}){return new Promise((o,n)=>{let r=Math.random().toString(36).substring(7),a=`${e.id}?messageId=${r}&origin=${window.location.origin}`,i=m=>{let c=m.data;if(c.messageId===r){if(t&&c.type!=="AuthAccessToken2"){s(),n("Invalid response, expected type=AuthAccessToken2");return}if(!c.accessToken){s(),n("Invalid response, expected accessToken");return}s(),o(c)}},s=()=>window.removeEventListener("message",i),l=document.createElement("iframe");l.src=a,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",i)})}function Ti(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 Ln(e){let t=`${e.id}?origin=${Ti()}`,o=window.open(t);if(!o)throw new Error("Failed to open window");return new Promise((n,r)=>{let a=setInterval(()=>{o.closed&&(clearInterval(a),n())},500)})}var ht=require("react");var Ii=require("zustand");function wi(e){let t=(0,ht.useMemo)(()=>On(e),[e]),o=Hn(t.services.access?.id),n=(0,ht.useMemo)(()=>Bn(t.services.probe,o),[t.services.probe]),r=(0,Ii.useStore)(n);return(0,ht.useEffect)(()=>{r.status==="unknown"&&!o&&r.probe()},[t.services.probe,r.status]),(0,ht.useEffect)(()=>{o&&(r.setToken(o),r.probe())},[o]),[e,r,t.hasAuth]}var Ft=require("react/jsx-runtime"),Xe=(0,ye.createContext)(null),ki=(0,ye.createContext)(null);ki.displayName="CurrentAuth";var Mi=(0,ye.createContext)(null);Mi.displayName="AuthActions";function Fn({children:e}){let t=(0,ye.useMemo)(()=>qn(),[]);return(0,Ft.jsx)(Xe.Provider,{value:t,children:e})}function $n(){return!!(0,ye.useContext)(Xe)}function vt(){let e=(0,ye.useContext)(Xe);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ei(){let e=vt();return(0,yt.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 al(){let e=vt();return(0,yt.useStore)(e,t=>t)}function Ni(e){let t=vt();return(0,yt.useStore)(t,n=>n.authItems.find(r=>r.service.id===e))}function Hn(e){let t=vt();return(0,yt.useStore)(t,n=>n.authItems.find(r=>r.id===e)?.session?.token)}function sl(e){let t=vt();return(0,yt.useStore)(t,n=>{let r=n.authItems.find(a=>a.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function ll(e){let t=Ei(),o=Ni(e.service.id);return(0,ye.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),o?(o.error||!o.isLoggedIn,e.children):null}function Dn(){return null}function Wn(e){let[t,o,n]=wi(e.resource),r=e.fallbackComponent||Dn,a=e.loadingComponent||Dn,i=e.errorComponent||Dn,s=o.service,l=null;if(!n||!s)return e.children(t);let m=s.service.filter(c=>c.type==="AuthAccessService2");o.status==="error"&&(l=(0,Ft.jsx)(i,{resource:e.resource,error:o.error||"",heading:o.errorHeading,note:o.errorNote,extra:e.extra})),(o.status==="unknown"||o.status==="probing")&&(l=(0,Ft.jsx)(a,{})),o.status==="success"&&(l=e.children(t));for(let c of m)l=(0,Ft.jsx)(ll,{service:c,probeId:s.id,children:l},c.id);return l}var $t=require("react");var Vi=require("zustand/vanilla"),cl=e=>e.id||e["@id"];function ul(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 Li=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?cl(t):void 0,n=null;return(0,Vi.createStore)((r,a)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!ul(t):!1,errorMessage:"",search(i,s={}){if(!o)throw new Error("No search service found.");n&&!n.signal.aborted&&n.abort(),n=new AbortController;let l=new URLSearchParams;i.q&&l.set("q",i.q),i.motivation&&l.set("motivation",i.motivation),i.date&&l.set("date",i.date),i.user&&l.set("user",i.user),r({loading:!0}),fetch(`${o}?${l.toString()}`,{signal:n.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async m=>{if(!n?.signal.aborted)if(m.ok){let c=await m.json();r({resources:c.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:m.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(i){let s=a().resources.find(l=>l["@id"]===i);r({highlight:s})},nextResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[0]||null});return}let l=i.findIndex(m=>m["@id"]===s["@id"]);if(l===-1){r({highlight:i[0]||null});return}r({highlight:i[l+1]||i[0]||null})},previousResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[i.length-1]||null});return}let l=i.findIndex(m=>m["@id"]===s["@id"]);if(l===-1){r({highlight:i[i.length-1]||null});return}if(l===0){r({highlight:i[i.length-1]||null});return}r({highlight:i[l-1]||i[i.length-1]||null})}}))};var ml=require("zustand");function Un(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var No=require("react/jsx-runtime"),St=(0,$t.createContext)(null);St.displayName="Search";function zi(e){let t=Un();return e.store?(0,No.jsx)(St.Provider,{value:e.store,children:e.children}):(0,No.jsx)(dl,{service:t,children:e.children})}function dl({service:e,children:t}){let o=(0,$t.useMemo)(()=>Li(e),[e]);return(0,No.jsx)(St.Provider,{value:o,children:t})}var ie=require("react/jsx-runtime"),Wt=()=>{},xt=(0,Vo.createContext)({setCurrentCanvasId:Wt,setCurrentCanvasIndex:Wt,nextCanvas:Wt,previousCanvas:Wt,items:[],sequence:[],setSequenceIndex:Wt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Bi(e){let t=F(),{cursor:o,visibleItems:n,next:r,sequence:a,items:i,setCanvasIndex:s,setCanvasId:l,previous:m,setSequenceIndex:c,hasNext:u,hasPrevious:d}=Vn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=(0,Vo.useMemo)(()=>({sequence:a,items:i,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:m,totalCanvases:i.length,setCurrentCanvasIndex:s,setSequenceIndex:c,currentSequenceIndex:o,hasNext:u,hasPrevious:d}),[a,i,l,r,m,i,s,c,o]);return t?n.length===0?null:(0,ie.jsx)(xt.Provider,{value:g,children:(0,ie.jsx)(je.Provider,{value:n,children:(0,ie.jsx)(me,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."}))}function _n(e){let t=Qe(e.vault),o=kn(e.manifest);if(!o)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."});if(o.error)return(0,ie.jsx)("div",{children:o.error.toString()});if(!o.isLoaded)return(0,ie.jsx)("div",{children:"Loading..."});let n=(0,ie.jsx)(Bi,{...e,children:e.children});return(0,ie.jsx)(Ke,{vault:t,children:(0,ie.jsx)(Mn,{manifest:o.id,children:(0,ie.jsx)(Fn,{children:(0,ie.jsx)(zi,{children:e.rangeId?(0,ie.jsx)(En,{range:e.rangeId,children:n}):n})})})})}function Ze(){return(0,qi.useContext)(xt)}var Wi=require("@atlas-viewer/atlas"),Pe=require("react"),Ui=require("zustand");var Oi=Q(require("mitt"),1),Je=require("react"),Hi=require("react/jsx-runtime"),pl=(0,Oi.default)(),Lo=(0,Je.createContext)(pl);function fl({children:e,emitter:t}){return(0,Hi.jsx)(Lo.Provider,{value:t,children:e})}function Yn(){return(0,Je.useContext)(Lo)}function et(e,t,o=[]){let n=(0,Je.useContext)(Lo);(0,Je.useEffect)(()=>{let r=a=>{t(a)};return n.on(e,r),()=>{n.off(e,r)}},[n,e,...o])}var Fi=require("polygon-editor"),$i=require("zustand/vanilla");function bt(e){let t=Math.max(...e.map(a=>a[0])),o=Math.min(...e.map(a=>a[0])),n=Math.max(...e.map(a=>a[1])),r=Math.min(...e.map(a=>a[1]));for(let a of e)if(a[0]!==o&&a[0]!==t&&a[1]!==r&&a[1]!==n||a[0]<o||a[0]>t||a[1]<r||a[1]>n)return!1;return!0}function Ve(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(a=>a[0])),o=Math.min(...e.points.map(a=>a[1])),n=Math.max(0,...e.points.map(a=>a[0])),r=Math.max(0,...e.points.map(a=>a[1]));return{x:t,y:o,width:n-t,height:r-o}}return null}function Di(e){return e.type==="SvgSelector"}function gl(e){return e.type==="BoxSelector"}function zo(e,t){if(Di(e)){let i=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:s,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${l}" width="${s}" height="${l}"><${i?"polygon":"polyline"} points="${e.points.map(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(" ")}${i?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:o,y:n,width:r,height:a}=e.spatial||{};return!r||!a?null:{type:"FragmentSelector",value:`xywh=${~~o},${~~n},${~~r},${~~a}`}}function Ct(e,t){if(!e||!e.points.length)return null;if(bt(e.points)){let o=e.points.map(l=>l[0]),n=e.points.map(l=>l[1]),r=Math.min(...o),a=Math.min(...n),i=Math.max(...o)-r,s=Math.max(...n)-a;return zo({type:"BoxSelector",spatial:{x:r,y:a,width:i,height:s}},t)}return zo({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function Ut(e){if(e.type==="polygon"&&!e.noBox&&e.points&&bt(e.points)){let o=Ve({open:!1,points:e.points||[]});return Ut({...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:Ve({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Ct({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:Ct({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 hl={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 Kn({events:e,enabledTools:t,keyboardShortcutMapping:o,keyboardShortcutsEnabled:n=!1,debug:r}){let a=(0,$i.createStore)((s,l)=>{let m=null,u=(0,Fi.createHelper)({emitter:e,keyboardShortcutsEnabled:n,keyboardShortcutMapping:o,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(g=>({polygonState:{...g.polygonState,...d}}))}},d=>{s(g=>g.tool.requestId?{polygon:{...d,id:g.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",d)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},requestType:null,requests:{},history:u.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:u,polygonState:hl,setMetadata:(d,g)=>{let v=g||l().tool.requestId;v&&s(p=>({metadata:{...p.metadata,[v]:{...p.metadata[v]||{},...d}}}))},setToolCanvasId:d=>{s(g=>({tool:{...g.tool,canvasId:d}}))},switchTool:{pointer(){s({mode:"sketch"}),i.tools.setTool("pointer")},hand(){s({mode:"explore"}),i.tools.setTool("hand")},draw(){s({mode:"sketch"}),i.tools.setTool("pencil")},pen(){s({mode:"sketch"}),i.tools.setTool("pen")},line(){s({mode:"sketch"}),i.tools.setTool("line")},lineBox(){s({mode:"sketch"}),i.tools.setTool("lineBox")},box(){s({mode:"sketch"}),i.tools.setTool("box")},triangle(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.triangle()},hexagon(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.hexagon()},circle(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.circle()},remove(){let d=l();d.tool.requestId&&(u.setShape({points:[],open:!0}),d.cancelRequest(d.tool.requestId))}},reset:()=>{let d=l();d.tool.requestId&&d.cancelRequest(d.tool.requestId)},setPolygonState:d=>s({polygonState:typeof d=="function"?d(l().polygonState):d}),getRequestId:()=>{let d=Math.random().toString(36).slice(2);return s(g=>({validRequestIds:[...g.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(g=>({tool:g.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(v=>v!==d)}))}}},cancelRequest:d=>{let g=d||l().tool.requestId;g&&(s(v=>({mode:"explore",tool:v.tool.requestId===g?{enabled:!1,requestId:null,canvasId:null}:v.tool,validRequestIds:v.validRequestIds.filter(p=>p!==g)})),e.emit("atlas.request-cancelled",{id:g}))},requestAnnotation:async(d,g)=>{let p={...l().requests,[g.requestId]:d},b=Ut(d);r&&console.log("requestAnnotation",{response:b,request:d});try{let{points:y=[],open:f=!0}=b.polygon||{},{requestId:h,canvasId:C=null,toolId:R}=g,A=R,T=l(),I=T.validRequestIds.includes(h),q=b.requestType;return r&&console.log("setting points",{requestType:q,points:y,open:f}),!I||T.tool.enabled?null:(u.setShape({id:h,points:y,open:f}),q==="polygon"&&(A=A||"pen",u.tools.setTool("pen")),q==="draw"&&(A=A||"draw",u.tools.setTool("pencil")),q==="box"&&(A=A||"box",u.tools.setTool("box")),q==="target"?(A=A||"box",u.tools.setTool("box"),u.lockAspectRatio(),u.tools.lockToolSwitching(),u.tools.setCanDeselect(!1),u.tools.setCanDelete(!1)):(u.tools.unlockToolSwitching(),u.tools.setCanDeselect(!0),u.tools.setCanDelete(!0)),d.bounds&&u.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:h}),s({polygon:{id:h,points:y,open:f},mode:"sketch",requestType:q,tool:{enabled:!0,requestId:h,canvasId:C},requests:p}),A?T.switchTool[A]?.():y.length===0&&T.switchTool.box(),(typeof d.selectByDefault>"u"&&y.length&&q==="box"||d.selectByDefault)&&T.switchTool.pointer(),new Promise(ue=>{let E=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.request-cancelled",E),e.off("atlas.annotation-completed",_),ue(null))},_=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.annotation-completed",_),e.off("atlas.request-cancelled",E),ue(k))};e.on("atlas.request-cancelled",E),e.on("atlas.annotation-completed",_)}))}catch(y){return console.error(y),null}},completeRequest:d=>{let g=l().tool.requestId;if(typeof d=="string"&&d&&d!==g)return;let v=g?l().requests[g]?.arguments||{}:{},p=g?l().metadata[g]||{}:{},b=l().polygonState.bounds,y=l().polygon;y&&(e.emit("atlas.annotation-completed",{id:y.id,polygon:y,requestType:l().requestType,target:Ct(y,b),canvasId:l().tool.canvasId,boundingBox:Ve(y),metadata:p,arguments:{...v}}),u.setShape(null))},setAtlasRuntime:d=>{m=d,e.emit("atlas.ready",{runtime:d}),i.setScale(1/m._lastGoodScale),m.world.addLayoutSubscriber((g,v)=>{(g==="event-activation"||g==="zoom-to"||g==="go-home")&&m?._lastGoodScale&&!Number.isNaN(m._lastGoodScale)&&i.setScale(1/m._lastGoodScale)})},clearAtlasRuntime:()=>{m=null,s({stableViewport:null})},setCanvasRelativePosition:(d,g)=>{s(v=>({canvasRelativePositions:{...v.canvasRelativePositions,[d]:g}}))},clearCanvasRelativePosition:d=>{s(g=>{let v={...g.canvasRelativePositions};return delete v[d],{canvasRelativePositions:v}})},changeMode:d=>{s({mode:d})},nudgeLeft:()=>{},nudgeRight:()=>{},nudgeUp:()=>{},nudgeDown:()=>{},zoomIn:()=>{m?.world?.zoomIn()},zoomOut:()=>{m?.world?.zoomOut()},goHome:()=>{m?.world?.goHome()}}}),i=a.getState().polygons;return e.on("atlas.annotation-request",()=>{i.clock.start((s,l,m)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:m})},s=>{typeof s=="object"?a.setState({polygonState:s}):a.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{i.clock.stop()}),e.on("atlas.request-cancelled",()=>{i.clock.stop()}),a}var Gn=require("react/jsx-runtime"),tt=(0,Pe.createContext)(null);function L(){return(0,Pe.useContext)(tt)}var jn={};function Qn(e="atlas"){return jn[e]?.getState()}function Rt({children:e,name:t="atlas",existing:o,atlasStoreConfig:n}){let r=Yn(),a=(0,Pe.useContext)(tt),i=(0,Pe.useMemo)(()=>o||a||Kn({events:r,...n||{}}),[r,o,a]),s=(0,Ui.useStore)(i,l=>l.mode);return(0,Pe.useEffect)(()=>{let l=t;return l&&(jn[l]=i),()=>{l&&delete jn[l]}},[i,t]),(0,Gn.jsx)(tt.Provider,{value:i,children:(0,Gn.jsx)(Wi.ModeContext.Provider,{value:s||"explore",children:e})})}var jt=require("@atlas-viewer/atlas"),ta=require("react");var Pt=require("react"),_i=require("react/jsx-runtime");function Xn(){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 Zn=(0,Pt.createContext)(Xn());Zn.displayName="AnnotationStyle";function _t(){return(0,Pt.useContext)(Zn)}function yl({theme:e,children:t}){let o=(0,Pt.useMemo)(()=>e||Xn(),[e]);return(0,_i.jsx)(Zn.Provider,{value:o,children:t})}var ji=require("@iiif/helpers/annotation-targets"),Gi=require("react");var At=require("react"),Yi=require("zustand"),Ki=(0,Yi.create)()((e,t)=>{let o=new Map,n=()=>Math.random().toString(36).substring(2,15),r=a=>{let i=o.get(a);if(i)return i;let s=n();return o.set(a,s),s};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(a){let{loadStylesheet:i,setStylesheet:s}=t();if(!a)return null;if(typeof a=="string")return a.startsWith("http")?{id:a,type:"CssStylesheet",value:await i(a)}:{id:s(a),type:"CssStylesheet",value:a};if(a.type==="CssStylesheet"){let l=a.id;if("value"in a){let m=Array.isArray(a.value)?a.value.join(`
|
|
2
|
-
`):a.value;if(m)return{id:s(m,l),type:"CssStylesheet",value:m}}if("id"in a&&a.id){let m=await i(a.id);return{id:a.id,type:"CssStylesheet",value:m}}}return null},async loadStylesheet(a){if(t().loading.includes(a))return"";try{let s=await fetch(a);if(!s.ok)throw new Error(`Failed to load stylesheet from ${a}`);let l=await s.text();return e(m=>({stylesheets:{...m.stylesheets,[a]:l}})),l}catch(s){return e(l=>({errors:[...l.errors,{url:a,error:s}]})),""}},setStylesheet(a,i){let s=i||r(a);return e(l=>({stylesheets:{...l.stylesheets,[s]:a}})),s}}});function Jn(e){let[t,o]=(0,At.useState)(""),{loading:n,errors:r,stylesheets:a,parseStylesheet:i}=Ki();return(0,At.useEffect)(()=>{e&&i(e).then(l=>{l?.id&&o(l.id)})},[e,i]),[(0,At.useMemo)(()=>{let l={};return t&&a[t]&&(l[t]=a[t]),l},[t,a]),{id:t,stylesheets:a,loading:n,errors:r}]}function Yt(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=w(),i=o||r.annotation,s=N(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),[l]=Jn(s?.stylesheet),m=N(c=>s&&s.body?s.body.map(u=>u?u.type==="SpecificResource"?{...u,source:a.get(u)}:u?c.iiif.entities[u.type][u.id]:null:null).filter(Boolean):[],[s]);return(0,Gi.useMemo)(()=>{if(!s)return;let c={...s,body:m,target:(0,ji.expandTarget)(s.target,{typeMap:a.getState().iiif.mapping,loadedStylesheets:l})};return n?n(c):c},[s,n,m,l,...t])}var Qi=require("react");function P(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.canvas,i=N(s=>a?s.iiif.entities.Canvas[a]:void 0,[a]);return(0,Qi.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}var er=require("react"),Xi=require("@iiif/helpers/events");function Kt(e,t){let o=w(),n=(0,er.useMemo)(()=>(0,Xi.createEventsHelper)(o),[o]),r=N(()=>e&&e.id?o.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,er.useMemo)(()=>e?n.getListenersAsProps(e,t):{},[r,e,o,t])}var Zi=require("react"),Ji=require("@iiif/helpers/styles");function ot(e,t){let o=w(),n=(0,Zi.useMemo)(()=>(0,Ji.createStylesHelper)(o),[o]);return N(()=>{if(!e)return null;let r=n.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var ea=require("react");var qo=require("@atlas-viewer/atlas"),Ce=require("react"),$=require("react/jsx-runtime");function tr({handleSize:e,resizable:t,onSave:o,children:n,maintainAspectRatio:r,disableCardinalControls:a,aspectRatio:i,...s}){let l=typeof e>"u"?r?12:8:e,{portalRef:m,mode:c,mouseEvent:u,isEditing:d}=(0,qo.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:i,maintainAspectRatio:r},o),g=(0,Ce.useMemo)(()=>u("translate"),[u]),v=(0,Ce.useMemo)(()=>u("east"),[u]),p=(0,Ce.useMemo)(()=>u("west"),[u]),b=(0,Ce.useMemo)(()=>u("south"),[u]),y=(0,Ce.useMemo)(()=>u("north"),[u]),f=(0,Ce.useMemo)(()=>u("south-east"),[u]),h=(0,Ce.useMemo)(()=>u("south-west"),[u]),C=(0,Ce.useMemo)(()=>u("north-east"),[u]),R=(0,Ce.useMemo)(()=>u("north-west"),[u]),A=c==="sketch",T={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:r||a?"50%":2,position:"absolute",background:"#fff",pointerEvents:d?"none":A?"initial":"none"};return(0,$.jsx)($.Fragment,{children:(0,$.jsxs)("world-object",{...s,children:[n,A&&t?(0,$.jsx)(qo.HTMLPortal,{ref:m,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:A&&t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{onMouseDown:g,onTouchStart:g,style:{display:"block",width:"100%",height:"100%",cursor:"move",border:"1px solid rgba(255,255,255, .7)",outline:"2px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:d?"none":A?"initial":"none"}}),r?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{title:"east",onTouchStart:v,onMouseDown:v,style:{...T,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:a?0:1,transform:`translate(${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"west",onMouseDown:p,style:{...T,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:a?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"north",onMouseDown:y,style:{...T,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:a?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south",onMouseDown:b,style:{...T,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:a?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),(0,$.jsx)("div",{title:"north-east",onMouseDown:C,style:{...T,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south-east",onMouseDown:f,style:{...T,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"south-west",onMouseDown:h,style:{...T,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"north-west",onMouseDown:R,style:{...T,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}var or=require("react/jsx-runtime");function nr({id:e,interactive:t,region:o,onClick:n,onHover:r,onSave:a,aspectRatio:i,maintainAspectRatio:s,disableCardinalControls:l,isEditing:m,style:c={backgroundColor:"rgba(0,0,0,.5)"}}){let u=(0,ea.useCallback)(d=>{m&&a?.({id:o.id,x:o.x,y:o.y,height:o.height,width:o.width,...d})},[a,m,o.id,o.x,o.y,o.height,o.width]);return(0,or.jsx)(tr,{id:e,x:o.x,y:o.y,width:o.width,aspectRatio:i,height:o.height,resizable:m,onSave:u,maintainAspectRatio:s,disableCardinalControls:l,children:(0,or.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:c})})}var oa=require("react/jsx-runtime"),nt=({id:e,style:t,className:o,interactive:n,targetId:r,ignoreTargetId:a})=>{let i=Yt({id:e}),s=ot(i,"atlas"),l=ot(i,"html"),m=Kt(i,["atlas"]),c=P(),u=_t(),d=(0,ta.useMemo)(()=>(0,jt.mergeStyles)((0,jt.mergeStyles)((0,jt.mergeStyles)((0,jt.mergeStyles)(t,s),i?.motivation?.includes("highlighting")?u.highlighted:u.default),i?.target?.selector?.boxStyle||{})),[t,s,u,i?.motivation,i?.target]),g=r||c?.id;return c&&i&&i.target&&i.target.selector&&(i.target.selector.type==="BoxSelector"||i.target.selector.type==="SvgSelector")&&i.target.source&&(a?!0:i.target.source.id===g||i.target.source===g)?(0,oa.jsx)(nr,{id:i.id,isEditing:!0,region:i.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:()=>{},...m}):null};var ra=require("react");var na=require("react");function rr(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.annotationPage,i=N(s=>a?s.iiif.entities.AnnotationPage[a]:void 0,[a]);return(0,na.useMemo)(()=>{if(i)return n?n(i):i},[i,...t])}var ir=require("react/jsx-runtime"),Le=({className:e,page:t,targetId:o,ignoreTargetId:n})=>{let r=rr({id:t.id})||t,a=ot(r,"atlas"),i=ot(r,"html");return N(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,ir.jsx)(ra.Fragment,{children:r.items?.map(s=>(0,ir.jsx)(nt,{id:s.id,style:a,className:i?.className||e,targetId:o,ignoreTargetId:n},s.id))})};var ze=require("react"),Bo=require("react/jsx-runtime"),ia=(0,ze.createContext)(null),aa=(0,ze.createContext)(null),sa=(0,ze.createContext)(null);function vl(){let e=(0,ze.useContext)(ia);if(!e)throw new Error("Ctx not found");return e}function Sl(){let e=(0,ze.useContext)(aa);if(!e)throw new Error("Ctx not found");return e}function xl(){let e=(0,ze.useContext)(sa);if(!e)throw new Error("Ctx not found");return e}function Gt({actions:e,state:t,children:o,currentTime:n,progress:r,element:a}){return(0,Bo.jsx)(sa.Provider,{value:{currentTime:n,progress:r,element:a},children:(0,Bo.jsx)(aa.Provider,{value:e,children:(0,Bo.jsx)(ia.Provider,{value:t,children:o})})})}var la=require("react");var ca=require("@iiif/helpers");function Qt(){let e=F(),t=P();return(0,la.useMemo)(()=>{if(!e||!t||!e.start)return null;let o=(0,ca.expandTarget)(e.start);return!o||o.source.id!==t.id||!o||!o.selector||o.selector.type!=="TemporalSelector"?null:o.selector.temporal},[e,t])}var D=require("react");function ua(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function bl(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 Oo(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function rt(e){let[t,o]=(0,D.useReducer)(bl,ua(e.duration));(0,D.useEffect)(()=>{o({type:"RESET",state:ua(e.duration)})},[e.duration]);let n=(0,D.useRef)(null),r=(0,D.useRef)(null),a=(0,D.useRef)(null),i=(0,D.useRef)(!1),s=(0,D.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Oo(n.current.currentTime),a.current&&(a.current.style.width=`${n.current.currentTime/e.duration*100}%`),i.current!==n.current.muted&&(i.current=n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,D.useCallback)(()=>{n.current&&(o({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{o({type:"PLAY"})}),s())},[s]),m=(0,D.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?l():c())},[s]),c=(0,D.useCallback)(()=>{n.current&&(n.current.pause(),o({type:"PAUSE"}),s())},[s]),u=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!0,o({type:"MUTE"}))},[]),g=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!1,o({type:"UNMUTE"}))},[]),v=(0,D.useCallback)(y=>{n.current&&(n.current.muted=!1,n.current.volume=y/100,o({type:"SET_VOLUME",volume:y}))},[]),p=(0,D.useCallback)(y=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(y*e.duration,e.duration)),s())},[]),b=(0,D.useCallback)(y=>{if(n.current){let f=typeof y=="function"?y(n.current.currentTime):y;n.current.currentTime=Math.max(0,Math.min(f,e.duration)),s()}},[]);return(0,D.useEffect)(()=>{let y=setInterval(()=>{s()},350);return()=>clearInterval(y)},[s,e.duration]),(0,D.useEffect)(()=>{let y=()=>{o({type:"FINISHED"})},f=n.current;return f?.addEventListener("ended",y),()=>f?.removeEventListener("ended",y)},[]),[{element:n,currentTime:r,progress:a},t,{play:l,pause:c,playPause:m,mute:d,unmute:g,toggleMute:u,setVolume:v,setDurationPercent:p,setTime:b}]}var it=require("react"),ar=(0,it.createContext)(()=>{}),sr=(0,it.createContext)(()=>{});function j(e,t,o,n,r=[]){let a=(0,it.useContext)(e==="portal"?sr:ar);(0,it.useEffect)(()=>(e!=="none"&&a(t,o,n),()=>{a(t,null)}),[t,e,a,...r])}var Do=require("react/jsx-runtime");function lr({media:e,startTime:t,children:o}){let[{element:n,currentTime:r,progress:a},i,s]=rt({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,Do.jsxs)(Gt,{state:i,actions:s,currentTime:r,progress:a,element:n,children:[(0,Do.jsx)("audio",{ref:n,src:l}),o]},e.url)}function Ho({media:e,mediaControlsDeps:t,audioCopmonent:o=lr,children:n}){let r=Qt();return j("portal","audio",o,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var Fo=require("react"),qe=(0,Fo.createContext)(null);qe.displayName="Strategy";function O(){let e=(0,Fo.useContext)(qe);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Be=require("react/jsx-runtime");function cr({model:e}){return(0,Be.jsxs)(Be.Fragment,{children:[(0,Be.jsx)("style",{children:`
|
|
1
|
+
"use strict";var Gs=Object.create;var To=Object.defineProperty;var Qs=Object.getOwnPropertyDescriptor;var Xs=Object.getOwnPropertyNames;var Zs=Object.getPrototypeOf,Js=Object.prototype.hasOwnProperty;var el=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Ao=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Xs(t))!Js.call(e,r)&&r!==o&&To(e,r,{get:()=>t[r],enumerable:!(n=Qs(t,r))||n.enumerable});return e},x=(e,t,o)=>(Ao(e,t,"default"),o&&Ao(o,t,"default")),Q=(e,t,o)=>(o=e!=null?Gs(Zs(e)):{},Ao(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),tl=e=>Ao(To({},"__esModule",{value:!0}),e);var S={};el(S,{AnnotationContext:()=>oc,AnnotationPageContext:()=>nc,AnnotationStyleProvider:()=>yl,AtlasStoreProvider:()=>Rt,AtlasStoreReactContext:()=>tt,Auth:()=>Wn,AuthProvider:()=>Fn,AuthRContext:()=>Xe,AuthReactContext:()=>ki,AuthReactContextActions:()=>Mi,CanvasAnnotations:()=>_l,CanvasContext:()=>me,CanvasPanel:()=>U,CanvasStrategyProvider:()=>Qr,CanvasWorldObject:()=>Jr,CollectionContext:()=>rc,CombinedMetadata:()=>Yl,ComplexTimelineProvider:()=>br,ContextBridge:()=>so,ControlsReactContext:()=>Xt,CreateCustomShape:()=>ni,CustomContextBridge:()=>os,CustomContextBridgeProvider:()=>Ml,DefaultEditingTools:()=>cs,EventEmitterProvider:()=>fl,EventsProvider:()=>kl,Image:()=>Vs,ImageService:()=>jl,ImageServiceLoaderContext:()=>va,InnerViewerProvider:()=>Bi,LanguageProvider:()=>Pl,LanguageString:()=>za,LocaleString:()=>le,ManifestContext:()=>Mn,ManifestMetadata:()=>Ql,MediaPlayerProvider:()=>Gt,Metadata:()=>Co,PolygonSelector:()=>Ul,RangeContext:()=>En,ReactEmitterContext:()=>Lo,ReactEventContext:()=>mt,ReactVaultContext:()=>Ee,RegionHighlight:()=>nr,Render3DModelStrategy:()=>ur,RenderAccompanyingCanvas:()=>mr,RenderAnnotation:()=>nt,RenderAnnotationEditing:()=>Or,RenderAnnotationPage:()=>Le,RenderAnnotationStrategy:()=>hr,RenderAudioStrategy:()=>Sr,RenderComplexTimelineStrategy:()=>wr,RenderEmptyStrategy:()=>kr,RenderImageStrategy:()=>Mr,RenderSvgEditorControls:()=>tc,RenderTextualContentStrategy:()=>Er,RenderVideoStrategy:()=>Vr,RenderYouTubeStrategy:()=>Lr,ResizeWorldItem:()=>tr,ResourceProvider:()=>te,ResourceReactContext:()=>Bt,SelectorControllerProvider:()=>Fl,SequenceThumbnails:()=>Jl,SimpleViewerProvider:()=>_n,SimpleViewerReactContext:()=>xt,SingleCanvasThumbnail:()=>ci,StrategyReactContext:()=>qe,ThumbnailFallbackImage:()=>lt,TranslationProvider:()=>Rl,TransliterationProvider:()=>Al,VaultProvider:()=>Ke,ViewerPresetContext:()=>xe,VirtualAnnotationProvider:()=>gr,VisibleCanvasReactContext:()=>je,annotationResponseToSelector:()=>Sc,authDetailsForResource:()=>On,createAtlasStore:()=>Kn,createAuthStateStore:()=>qn,createProbe:()=>Bn,defaultEmitter:()=>es,defaultSvgTheme:()=>Qa,emptyActions:()=>Hr,emptyStrategy:()=>Dr,findAllCanvasesInRange:()=>ko,findFirstCanvasFromRange:()=>Pi,findManifestSelectedRange:()=>nl,findSelectedRange:()=>Nn,flattenAnnotationPageIds:()=>Fr,formatTime:()=>Oo,get3dStrategy:()=>Ur,getAtlasStoreByName:()=>Qn,getComplexTimelineStrategy:()=>Yr,getDefaultAnnotationStyles:()=>Xn,getImageStrategy:()=>ho,getManifestSequence:()=>Mo,getParsedTargetSelector:()=>uo,getRenderingStrategy:()=>So,getTextualContentStrategy:()=>yo,getVideoStrategy:()=>vo,getVisibleCanvasesFromCanvasId:()=>rl,hasAuth:()=>il,isBoxSelector:()=>gl,isRectangle:()=>bt,isSvgSelector:()=>Di,makeAccessServiceRequest:()=>Ln,makeAccessTokenRequest:()=>Eo,parseSpecificResource:()=>El,polygonToTarget:()=>Ct,requestToAnnotationResponse:()=>Ut,seraliseSupportedSelector:()=>zo,svgThemes:()=>Dl,targetIntersects:()=>vc,unknownResponse:()=>mo,unsupportedStrategy:()=>z,useAnnotation:()=>Yt,useAnnotationPage:()=>rr,useAnnotationPageManager:()=>fo,useAnnotationStyles:()=>_t,useAnnotationsAtTime:()=>ic,useAtlasContextMenu:()=>co,useAtlasStore:()=>L,useAuthActions:()=>Ei,useAuthService:()=>Ni,useAuthStore:()=>vt,useAuthToken:()=>sl,useAuthTokens:()=>Hn,useCanvas:()=>A,useCanvasChoices:()=>ac,useCanvasClock:()=>sc,useCanvasSequence:()=>Vn,useCanvasStartTime:()=>Qt,useCanvasSubset:()=>lc,useClosestLanguage:()=>Ba,useCollection:()=>cc,useComplexTimeline:()=>Cl,useContextBridge:()=>ao,useContextMenuStore:()=>ss,useCreateLocaleString:()=>Tl,useCurrentAnnotationActions:()=>uc,useCurrentAnnotationMetadata:()=>mc,useCurrentAnnotationRequest:()=>Br,useCurrentAnnotationTransition:()=>dc,useCurrentAuth:()=>al,useCustomContextBridge:()=>io,useDispatch:()=>dr,useEmitter:()=>Yn,useEvent:()=>et,useEventEmitter:()=>no,useEventListener:()=>pc,useExistingVault:()=>Qe,useExternalCollection:()=>fc,useExternalManifest:()=>kn,useExternalResource:()=>Ht,useIIIFLanguage:()=>Qo,useImage:()=>xn,useImageService:()=>pi,useImageServiceLoader:()=>Zt,useImageTile:()=>gc,useIsAuthEnabled:()=>$n,useLoadImageService:()=>go,useLocaleString:()=>Oa,useManifest:()=>F,useMediaActions:()=>Sl,useMediaElements:()=>xl,useMediaState:()=>vl,usePaintables:()=>Wr,usePaintingAnnotations:()=>Me,usePolygonHelper:()=>zr,useRange:()=>Dt,useRemoteStylesheet:()=>Jn,useRenderControls:()=>oe,useRenderingStrategy:()=>jr,useRequestAnnotation:()=>oi,useResourceContext:()=>X,useResourceEvents:()=>Kt,useResources:()=>$r,useSearchService:()=>Un,useSelectorController:()=>ai,useSelectorEmitter:()=>$l,useSelectorEvents:()=>ii,useSelectorHelper:()=>Wl,useSimpleMediaPlayer:()=>rt,useSimpleViewer:()=>Ze,useStaticRenderingStrategy:()=>hc,useStrategy:()=>O,useStyleHelper:()=>yc,useStyles:()=>ot,useStylesheetStore:()=>Ki,useSvgEditor:()=>qr,useSvgEditorControls:()=>ui,useThumbnail:()=>Ie,useTranslations:()=>Rr,useTransliteration:()=>Cr,useVault:()=>w,useVaultEffect:()=>yr,useVaultSelector:()=>N,useViewerPreset:()=>eo,useVirtualAnnotationPage:()=>pr,useVirtualAnnotationPageContext:()=>fr,useVisibleCanvases:()=>Ge});module.exports=tl(S);x(S,require("@iiif/helpers/annotation-targets"),module.exports);var pt=require("react");var gt=Q(require("react"),1),fi=require("react/jsx-runtime"),ol={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Bt=gt.default.createContext(ol),X=()=>(0,gt.useContext)(Bt);function te({value:e,children:t}){let o=X(),n=(0,gt.useMemo)(()=>({...o,...e}),[e,o]);return(0,fi.jsx)(Bt.Provider,{value:n,children:t})}var gi=require("react/jsx-runtime");function me({canvas:e,children:t}){return(0,gi.jsx)(te,{value:{canvas:e},children:t})}var Io=Q(require("react"),1),Ot=require("@iiif/helpers/vault");var wn=require("react/jsx-runtime"),Ee=Io.default.createContext({vault:null,setVaultInstance:e=>{}});function Ke({vault:e,vaultOptions:t,useGlobal:o,resources:n,children:r}){let[a,i]=(0,Io.useState)(()=>e||(o?(0,Ot.globalVault)(t):t?new Ot.Vault(t):new Ot.Vault));return(0,wn.jsx)(Ee.Provider,{value:{vault:a,setVaultInstance:i},children:(0,wn.jsx)(te,{value:n||{},children:r})})}var yi=require("react"),vi=Q(require("react"),1);var hi=require("react"),w=()=>{let{vault:e}=(0,hi.useContext)(Ee);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var wo=require("react");function N(e,t=[]){let o=w(),[n,r]=(0,wo.useState)(()=>e(o.getState(),o));return(0,wo.useEffect)(()=>o.subscribe(a=>e(a,o),a=>{r(a)},!1),t),n}var je=vi.default.createContext([]);function Ge(){let e=(0,yi.useContext)(je);return N(t=>e.map(o=>t.iiif.entities.Canvas[o]).filter(Boolean),[e])}var Si=require("@iiif/helpers/vault"),xi=require("react");function Qe(e){let t=(0,xi.useContext)(Ee);return e||(t&&t.vault?t.vault:(0,Si.globalVault)())}var bi=require("react");function F(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=w(),i=o||r.manifest,s=N(l=>i?l.iiif.entities.Manifest[i]:void 0,[i]);return(0,bi.useMemo)(()=>{if(s)return n?n(s):s},[s,n,...t])}var qi=require("react"),Vo=require("react");var Ne=require("react");function Ht(e,{noCache:t=!1}={}){let o=typeof e=="string"?e:e.id,n=Qe(),[r,a]=(0,Ne.useState)(o),[i,s]=(0,Ne.useState)(void 0),l=(0,Ne.useMemo)(()=>n.get(o,{skipSelfReturn:!0})||void 0,[o,n]),[m,c]=(0,Ne.useState)(l);return(0,Ne.useEffect)(()=>{(async()=>{try{let u=l&&!t?l:await n.load(o),d=u?u.id||u["@id"]:null;u&&r!==d&&a(d),c(u)}catch(u){s(u)}})()},[o,t]),{isLoaded:!!m,id:r,requestId:o,error:i,resource:m,cached:!!(m&&m===l)}}function kn(e,t){let{id:o,isLoaded:n,error:r,resource:a,requestId:i,cached:s}=Ht(e,t);return{id:o,isLoaded:n,error:r,manifest:a,requestId:i,cached:s}}var Ci=require("react/jsx-runtime");function Mn({manifest:e,children:t}){return(0,Ci.jsx)(te,{value:{manifest:e},children:t})}var Ri=require("react/jsx-runtime");function En({range:e,children:t}){return(0,Ri.jsx)(te,{value:{range:e},children:t})}function Pi(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=Pi(e,e.get(o));if(n)return n}}return null}function ko(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(...ko(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 nl(e,t,o){for(let n of t.structures){let r=Nn(e,e.get(n),o);if(r)return r}return null}function Nn(e,t,o){for(let n of t.items){let r=n?.source?.id?.split("#")[0];if(n.type==="SpecificResource"&&n.source===o||n.type==="SpecificResource"&&n.source?.type==="Canvas"&&o===r)return t;if(n.type==="Range"){let a=Nn(e,e.get(n),o);if(a)return a}}return null}function rl(e,t,o,n=!1){let r=t.behavior,a=o?e.get(o):null;if(!a)return[];let i=a.behavior,s=n?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),m=s||l?!1:r.includes("individuals"),c=i.includes("facing-pages"),u=i.includes("non-paged");if(c||u||m||n)return[{id:a.id,type:"Canvas"}];let[d,g]=Mo(e,t);if(l)return d;let y=d.findIndex(p=>p.id===o);if(y===-1)return[];for(let p of g)if(p.includes(y))return p.map(b=>d[b]);return[{id:a.id,type:"Canvas"}]}function Mo(e,t,{disablePaging:o,skipNonPaged:n}={}){let r=t.behavior,a=r.includes("paged"),i=a?!1:r.includes("continuous"),s=a||i?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:ko(e,t);if(i)return[l,[l.map((y,p)=>p)]];if(s||!a||o)return[l,l.map((y,p)=>[p])];let m=[],c=[],u=()=>{c.length&&(m.push([...c]),c=[])},d=0,g=!1;for(let y=0;y<l.length;y++){let p=e.get(l[y]);if(p.behavior.includes("non-paged")){y===d&&d++,n||(u(),m.push([y]),u());continue}if(y===d||p.behavior.includes("facing-pages")){c.length&&(g=!0),u(),m.push([y]),u();continue}if(c.push(y),g){u(),g=!1;continue}c.length>1&&u()}return c.length&&u(),[l,m]}var ge=require("react");var Ai=require("react");function Dt(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.range,i=N(s=>a?s.iiif.entities.Range[a]:void 0,[a]);return(0,Ai.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}function Vn({startCanvas:e,disablePaging:t}){let o=w(),n=F(),r=Dt(),[a,i]=(0,ge.useState)(void 0),s=r||n;if(!s)throw new Error("Nothing selected");let[l,m]=(0,ge.useMemo)(()=>Mo(o,s,{disablePaging:t}),[o,s,t]),c=(0,ge.useRef)(m);if(c.current!==m){let b=c.current[a][0],v=m.findIndex(f=>f.includes(b));c.current=m,i(v)}let u=(0,ge.useCallback)(p=>{let b=m.findIndex(v=>v.includes(p));i(b===-1?0:b)},[l,m]),d=(0,ge.useCallback)(p=>{let b=l.findIndex(v=>v.id===p);b!==-1?u(b):i(0)},[l,m]),g=(0,ge.useCallback)(()=>{i(p=>p>=m.length-1?p:p+1)},[m]),y=(0,ge.useCallback)(()=>{i(p=>p<=0?0:p-1)},[m]);return typeof a>"u"&&(e?d(e):i(0)),{visibleItems:m[a]?.map(p=>l[p].id)||[],cursor:a,items:l,sequence:m,hasPrevious:a>0,hasNext:a<m.length-1,setSequenceIndex:i,setCanvasIndex:u,setCanvasId:d,next:g,previous:y}}var ye=require("react"),yt=require("zustand");var zn=require("zustand/vanilla");function il(e){let t=e.service||e.services||[];for(let o of t)if(o.type==="AuthProbeService2")return!0;return!1}function he(e,t,o){let n=t.findIndex(i=>i.service.id===e);if(n===-1)return t;let r=[...t],a=o(r[n]);return a===r[n]?t:(r[n]=a,r)}var qn=()=>(0,zn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let o=t().authItems[t().currentAuth];if(!o||o.isPending||o.isLoggedIn)return;if(o.type!=="active")throw new Error("Cannot login to non-active service");let n=o.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!n)throw new Error("Token service not found");e(()=>({authItems:he(o.id,t().authItems,r=>({...r,isPending:!0}))})),Ln(o.service).then(()=>{Eo(n).then(r=>{let a=r.expiresIn,i=Date.now()+a*1e3;e(()=>({authItems:he(o.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:i}}))}))}).catch(r=>{e(()=>({authItems:he(o.id,t().authItems,a=>({...a,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let o=t().authItems[t().currentAuth];if(!o||o.isPending||!o.isLoggedIn)return;if(o.type!=="active")throw new Error("Cannot logout of non-active service");let n=o.service.service.find(i=>i.type==="AuthLogoutService2");if(!n)return;let r=`${n.id}?origin=${Ti()}`,a=window.open(r);e(()=>({authItems:he(o.id,t().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let o=t().authItems.length,n=t().currentAuth+1;n>=o||e(()=>({currentAuth:n}))},previousAuth:()=>{let o=t().currentAuth-1;o<0||e(()=>({currentAuth:o}))},setAuth:o=>{o!==-1&&(o<0||o>=t().authItems.length)||e(()=>({currentAuth:o}))},addService:(o,n)=>{if(!o.service)return;let r=o.service.find(s=>s.type==="AuthAccessTokenService2"),a=o;if(t().authItems.find(s=>s.service.id===o.id)){e(()=>({authItems:he(o.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:a.profile==="active"?0:t().currentAuth,authItems:[{id:o.id,type:o.profile,service:o,probeId:n,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),o.profile==="external"){if(!r)throw new Error("Token service not found");Eo(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(o.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:he(o.id,t().authItems,s=>({...s,isPending:!0}))})),Ln(a).then(()=>{Eo(r).then(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:he(o.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}o.profile},removeService:(o,n)=>{let r=t().currentAuth===t().authItems.findIndex(i=>i.service.id===o.id),a=t().currentAuth;if(r){let i=t().authItems.find(l=>l.service.id===o.id);i&&i.instances>1||(a=t().authItems.findIndex(m=>m.service.id!==o.id&&m.instances>0))}e(()=>({authItems:he(o.id,t().authItems,i=>({...i,instances:i.instances-1})),currentAuth:a}))}})),Bn=(e,t)=>(0,zn.createStore)((o,n)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!n().service)return;let r=n().service?.id;if(!r){o({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}o({status:"probing"});let a=n().token;try{let i=await fetch(r,{headers:a?{Authorization:`Bearer ${n().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(i.status===200)o({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(i.status<400&&i.status>=300){if(!i.location)throw new Error("Redirect location not found");o({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)o({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!i.substitute,substituteResource:i.substitute||null,error:"Unauthorized",errorHeading:i.heading||{en:["Unauthorized"]},errorNote:i.note||null});else throw new Error("Unknown error")}catch(i){o({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){o({token:r})}}));function On(e){let t=e.service||e.services||[],o={hasAuth:!1,services:{}};for(let n of t)if(n.type==="AuthProbeService2"){o.services.probe=n,o.hasAuth=!0;let r=n.service.filter(a=>a.type==="AuthAccessService2");r[0]&&(o.services.access=r[0])}return o}async function Eo(e,{strict:t=!0}={}){return new Promise((o,n)=>{let r=Math.random().toString(36).substring(7),a=`${e.id}?messageId=${r}&origin=${window.location.origin}`,i=m=>{let c=m.data;if(c.messageId===r){if(t&&c.type!=="AuthAccessToken2"){s(),n("Invalid response, expected type=AuthAccessToken2");return}if(!c.accessToken){s(),n("Invalid response, expected accessToken");return}s(),o(c)}},s=()=>window.removeEventListener("message",i),l=document.createElement("iframe");l.src=a,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",i)})}function Ti(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 Ln(e){let t=`${e.id}?origin=${Ti()}`,o=window.open(t);if(!o)throw new Error("Failed to open window");return new Promise((n,r)=>{let a=setInterval(()=>{o.closed&&(clearInterval(a),n())},500)})}var ht=require("react");var Ii=require("zustand");function wi(e){let t=(0,ht.useMemo)(()=>On(e),[e]),o=Hn(t.services.access?.id),n=(0,ht.useMemo)(()=>Bn(t.services.probe,o),[t.services.probe]),r=(0,Ii.useStore)(n);return(0,ht.useEffect)(()=>{r.status==="unknown"&&!o&&r.probe()},[t.services.probe,r.status]),(0,ht.useEffect)(()=>{o&&(r.setToken(o),r.probe())},[o]),[e,r,t.hasAuth]}var Ft=require("react/jsx-runtime"),Xe=(0,ye.createContext)(null),ki=(0,ye.createContext)(null);ki.displayName="CurrentAuth";var Mi=(0,ye.createContext)(null);Mi.displayName="AuthActions";function Fn({children:e}){let t=(0,ye.useMemo)(()=>qn(),[]);return(0,Ft.jsx)(Xe.Provider,{value:t,children:e})}function $n(){return!!(0,ye.useContext)(Xe)}function vt(){let e=(0,ye.useContext)(Xe);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ei(){let e=vt();return(0,yt.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 al(){let e=vt();return(0,yt.useStore)(e,t=>t)}function Ni(e){let t=vt();return(0,yt.useStore)(t,n=>n.authItems.find(r=>r.service.id===e))}function Hn(e){let t=vt();return(0,yt.useStore)(t,n=>n.authItems.find(r=>r.id===e)?.session?.token)}function sl(e){let t=vt();return(0,yt.useStore)(t,n=>{let r=n.authItems.find(a=>a.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function ll(e){let t=Ei(),o=Ni(e.service.id);return(0,ye.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),o?(o.error||!o.isLoggedIn,e.children):null}function Dn(){return null}function Wn(e){let[t,o,n]=wi(e.resource),r=e.fallbackComponent||Dn,a=e.loadingComponent||Dn,i=e.errorComponent||Dn,s=o.service,l=null;if(!n||!s)return e.children(t);let m=s.service.filter(c=>c.type==="AuthAccessService2");o.status==="error"&&(l=(0,Ft.jsx)(i,{resource:e.resource,error:o.error||"",heading:o.errorHeading,note:o.errorNote,extra:e.extra})),(o.status==="unknown"||o.status==="probing")&&(l=(0,Ft.jsx)(a,{})),o.status==="success"&&(l=e.children(t));for(let c of m)l=(0,Ft.jsx)(ll,{service:c,probeId:s.id,children:l},c.id);return l}var $t=require("react");var Vi=require("zustand/vanilla"),cl=e=>e.id||e["@id"];function ul(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 Li=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?cl(t):void 0,n=null;return(0,Vi.createStore)((r,a)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!ul(t):!1,errorMessage:"",search(i,s={}){if(!o)throw new Error("No search service found.");n&&!n.signal.aborted&&n.abort(),n=new AbortController;let l=new URLSearchParams;i.q&&l.set("q",i.q),i.motivation&&l.set("motivation",i.motivation),i.date&&l.set("date",i.date),i.user&&l.set("user",i.user),r({loading:!0}),fetch(`${o}?${l.toString()}`,{signal:n.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async m=>{if(!n?.signal.aborted)if(m.ok){let c=await m.json();r({resources:c.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:m.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(i){let s=a().resources.find(l=>l["@id"]===i);r({highlight:s})},nextResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[0]||null});return}let l=i.findIndex(m=>m["@id"]===s["@id"]);if(l===-1){r({highlight:i[0]||null});return}r({highlight:i[l+1]||i[0]||null})},previousResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[i.length-1]||null});return}let l=i.findIndex(m=>m["@id"]===s["@id"]);if(l===-1){r({highlight:i[i.length-1]||null});return}if(l===0){r({highlight:i[i.length-1]||null});return}r({highlight:i[l-1]||i[i.length-1]||null})}}))};var ml=require("zustand");function Un(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var No=require("react/jsx-runtime"),St=(0,$t.createContext)(null);St.displayName="Search";function zi(e){let t=Un();return e.store?(0,No.jsx)(St.Provider,{value:e.store,children:e.children}):(0,No.jsx)(dl,{service:t,children:e.children})}function dl({service:e,children:t}){let o=(0,$t.useMemo)(()=>Li(e),[e]);return(0,No.jsx)(St.Provider,{value:o,children:t})}var ie=require("react/jsx-runtime"),Wt=()=>{},xt=(0,Vo.createContext)({setCurrentCanvasId:Wt,setCurrentCanvasIndex:Wt,nextCanvas:Wt,previousCanvas:Wt,items:[],sequence:[],setSequenceIndex:Wt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Bi(e){let t=F(),{cursor:o,visibleItems:n,next:r,sequence:a,items:i,setCanvasIndex:s,setCanvasId:l,previous:m,setSequenceIndex:c,hasNext:u,hasPrevious:d}=Vn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),g=(0,Vo.useMemo)(()=>({sequence:a,items:i,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:m,totalCanvases:i.length,setCurrentCanvasIndex:s,setSequenceIndex:c,currentSequenceIndex:o,hasNext:u,hasPrevious:d}),[a,i,l,r,m,i,s,c,o]);return t?n.length===0?null:(0,ie.jsx)(xt.Provider,{value:g,children:(0,ie.jsx)(je.Provider,{value:n,children:(0,ie.jsx)(me,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."}))}function _n(e){let t=Qe(e.vault),o=kn(e.manifest);if(!o)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ie.jsx)("div",{children:"Sorry, something went wrong."});if(o.error)return(0,ie.jsx)("div",{children:o.error.toString()});if(!o.isLoaded)return(0,ie.jsx)("div",{children:"Loading..."});let n=(0,ie.jsx)(Bi,{...e,children:e.children});return(0,ie.jsx)(Ke,{vault:t,children:(0,ie.jsx)(Mn,{manifest:o.id,children:(0,ie.jsx)(Fn,{children:(0,ie.jsx)(zi,{children:e.rangeId?(0,ie.jsx)(En,{range:e.rangeId,children:n}):n})})})})}function Ze(){return(0,qi.useContext)(xt)}var Wi=require("@atlas-viewer/atlas"),Pe=require("react"),Ui=require("zustand");var Oi=Q(require("mitt"),1),Je=require("react"),Hi=require("react/jsx-runtime"),pl=(0,Oi.default)(),Lo=(0,Je.createContext)(pl);function fl({children:e,emitter:t}){return(0,Hi.jsx)(Lo.Provider,{value:t,children:e})}function Yn(){return(0,Je.useContext)(Lo)}function et(e,t,o=[]){let n=(0,Je.useContext)(Lo);(0,Je.useEffect)(()=>{let r=a=>{t(a)};return n.on(e,r),()=>{n.off(e,r)}},[n,e,...o])}var Fi=require("polygon-editor"),$i=require("zustand/vanilla");function bt(e){let t=Math.max(...e.map(a=>a[0])),o=Math.min(...e.map(a=>a[0])),n=Math.max(...e.map(a=>a[1])),r=Math.min(...e.map(a=>a[1]));for(let a of e)if(a[0]!==o&&a[0]!==t&&a[1]!==r&&a[1]!==n||a[0]<o||a[0]>t||a[1]<r||a[1]>n)return!1;return!0}function Ve(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(a=>a[0])),o=Math.min(...e.points.map(a=>a[1])),n=Math.max(0,...e.points.map(a=>a[0])),r=Math.max(0,...e.points.map(a=>a[1]));return{x:t,y:o,width:n-t,height:r-o}}return null}function Di(e){return e.type==="SvgSelector"}function gl(e){return e.type==="BoxSelector"}function zo(e,t){if(Di(e)){let i=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:s,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${l}" width="${s}" height="${l}"><${i?"polygon":"polyline"} points="${e.points.map(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(" ")}${i?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:o,y:n,width:r,height:a}=e.spatial||{};return!r||!a?null:{type:"FragmentSelector",value:`xywh=${~~o},${~~n},${~~r},${~~a}`}}function Ct(e,t){if(!e||!e.points.length)return null;if(bt(e.points)){let o=e.points.map(l=>l[0]),n=e.points.map(l=>l[1]),r=Math.min(...o),a=Math.min(...n),i=Math.max(...o)-r,s=Math.max(...n)-a;return zo({type:"BoxSelector",spatial:{x:r,y:a,width:i,height:s}},t)}return zo({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function Ut(e){if(e.type==="polygon"&&!e.noBox&&e.points&&bt(e.points)){let o=Ve({open:!1,points:e.points||[]});return Ut({...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:Ve({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Ct({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:Ct({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 hl={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 Kn({events:e,enabledTools:t,keyboardShortcutMapping:o,keyboardShortcutsEnabled:n=!1,debug:r}){let a=(0,$i.createStore)((s,l)=>{let m=null,u=(0,Fi.createHelper)({emitter:e,keyboardShortcutsEnabled:n,keyboardShortcutMapping:o,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(g=>({polygonState:{...g.polygonState,...d}}))}},d=>{s(g=>g.tool.requestId?{polygon:{...d,id:g.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",d)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},requestType:null,requests:{},history:u.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:u,polygonState:hl,setMetadata:(d,g)=>{let y=g||l().tool.requestId;y&&s(p=>({metadata:{...p.metadata,[y]:{...p.metadata[y]||{},...d}}}))},setToolCanvasId:d=>{s(g=>({tool:{...g.tool,canvasId:d}}))},switchTool:{pointer(){s({mode:"sketch"}),i.tools.setTool("pointer")},hand(){s({mode:"explore"}),i.tools.setTool("hand")},draw(){s({mode:"sketch"}),i.tools.setTool("pencil")},pen(){s({mode:"sketch"}),i.tools.setTool("pen")},line(){s({mode:"sketch"}),i.tools.setTool("line")},lineBox(){s({mode:"sketch"}),i.tools.setTool("lineBox")},box(){s({mode:"sketch"}),i.tools.setTool("box")},triangle(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.triangle()},hexagon(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.hexagon()},circle(){s({mode:"sketch"}),i.tools.setTool("stamp"),i.stamps.circle()},remove(){let d=l();d.tool.requestId&&(u.setShape({points:[],open:!0}),d.cancelRequest(d.tool.requestId))}},reset:()=>{let d=l();d.tool.requestId&&d.cancelRequest(d.tool.requestId)},setPolygonState:d=>s({polygonState:typeof d=="function"?d(l().polygonState):d}),getRequestId:()=>{let d=Math.random().toString(36).slice(2);return s(g=>({validRequestIds:[...g.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(g=>({tool:g.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(y=>y!==d)}))}}},cancelRequest:d=>{let g=d||l().tool.requestId;g&&(s(y=>({mode:"explore",tool:y.tool.requestId===g?{enabled:!1,requestId:null,canvasId:null}:y.tool,validRequestIds:y.validRequestIds.filter(p=>p!==g)})),e.emit("atlas.request-cancelled",{id:g}))},requestAnnotation:async(d,g)=>{let p={...l().requests,[g.requestId]:d},b=Ut(d);r&&console.log("requestAnnotation",{response:b,request:d});try{let{points:v=[],open:f=!0}=b.polygon||{},{requestId:h,canvasId:R=null,toolId:C}=g,P=C,T=l(),I=T.validRequestIds.includes(h),q=b.requestType;return r&&console.log("setting points",{requestType:q,points:v,open:f}),!I||T.tool.enabled?null:(u.setShape({id:h,points:v,open:f}),q==="polygon"&&(P=P||"pen",u.tools.setTool("pen")),q==="draw"&&(P=P||"draw",u.tools.setTool("pencil")),q==="box"&&(P=P||"box",u.tools.setTool("box")),q==="target"?(P=P||"box",u.tools.setTool("box"),u.lockAspectRatio(),u.tools.lockToolSwitching(),u.tools.setCanDeselect(!1),u.tools.setCanDelete(!1)):(u.tools.unlockToolSwitching(),u.tools.setCanDeselect(!0),u.tools.setCanDelete(!0)),d.bounds&&u.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:h}),s({polygon:{id:h,points:v,open:f},mode:"sketch",requestType:q,tool:{enabled:!0,requestId:h,canvasId:R},requests:p}),P?T.switchTool[P]?.():v.length===0&&T.switchTool.box(),(typeof d.selectByDefault>"u"&&v.length&&q==="box"||d.selectByDefault)&&T.switchTool.pointer(),new Promise(ue=>{let E=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.request-cancelled",E),e.off("atlas.annotation-completed",_),ue(null))},_=k=>{k.id===h&&(s(V=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(V.requests).filter(([B])=>B!==h))})),e.off("atlas.annotation-completed",_),e.off("atlas.request-cancelled",E),ue(k))};e.on("atlas.request-cancelled",E),e.on("atlas.annotation-completed",_)}))}catch(v){return console.error(v),null}},completeRequest:d=>{let g=l().tool.requestId;if(typeof d=="string"&&d&&d!==g)return;let y=g?l().requests[g]?.arguments||{}:{},p=g?l().metadata[g]||{}:{},b=l().polygonState.bounds,v=l().polygon;v&&(e.emit("atlas.annotation-completed",{id:v.id,polygon:v,requestType:l().requestType,target:Ct(v,b),canvasId:l().tool.canvasId,boundingBox:Ve(v),metadata:p,arguments:{...y}}),u.setShape(null))},setAtlasRuntime:d=>{m=d,e.emit("atlas.ready",{runtime:d}),i.setScale(1/m._lastGoodScale),m.world.addLayoutSubscriber((g,y)=>{(g==="event-activation"||g==="zoom-to"||g==="go-home")&&m?._lastGoodScale&&!Number.isNaN(m._lastGoodScale)&&i.setScale(1/m._lastGoodScale)})},clearAtlasRuntime:()=>{m=null,s({stableViewport:null})},setCanvasRelativePosition:(d,g)=>{s(y=>({canvasRelativePositions:{...y.canvasRelativePositions,[d]:g}}))},clearCanvasRelativePosition:d=>{s(g=>{let y={...g.canvasRelativePositions};return delete y[d],{canvasRelativePositions:y}})},changeMode:d=>{s({mode:d})},nudgeLeft:()=>{},nudgeRight:()=>{},nudgeUp:()=>{},nudgeDown:()=>{},zoomIn:()=>{m?.world?.zoomIn()},zoomOut:()=>{m?.world?.zoomOut()},goHome:()=>{m?.world?.goHome()}}}),i=a.getState().polygons;return e.on("atlas.annotation-request",()=>{i.clock.start((s,l,m)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:m})},s=>{typeof s=="object"?a.setState({polygonState:s}):a.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{i.clock.stop()}),e.on("atlas.request-cancelled",()=>{i.clock.stop()}),a}var Gn=require("react/jsx-runtime"),tt=(0,Pe.createContext)(null);function L(){return(0,Pe.useContext)(tt)}var jn={};function Qn(e="atlas"){return jn[e]?.getState()}function Rt({children:e,name:t="atlas",existing:o,atlasStoreConfig:n}){let r=Yn(),a=(0,Pe.useContext)(tt),i=(0,Pe.useMemo)(()=>o||a||Kn({events:r,...n||{}}),[r,o,a]),s=(0,Ui.useStore)(i,l=>l.mode);return(0,Pe.useEffect)(()=>{let l=t;return l&&(jn[l]=i),()=>{l&&delete jn[l]}},[i,t]),(0,Gn.jsx)(tt.Provider,{value:i,children:(0,Gn.jsx)(Wi.ModeContext.Provider,{value:s||"explore",children:e})})}var jt=require("@atlas-viewer/atlas"),ta=require("react");var Pt=require("react"),_i=require("react/jsx-runtime");function Xn(){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 Zn=(0,Pt.createContext)(Xn());Zn.displayName="AnnotationStyle";function _t(){return(0,Pt.useContext)(Zn)}function yl({theme:e,children:t}){let o=(0,Pt.useMemo)(()=>e||Xn(),[e]);return(0,_i.jsx)(Zn.Provider,{value:o,children:t})}var ji=require("@iiif/helpers/annotation-targets"),Gi=require("react");var At=require("react"),Yi=require("zustand"),Ki=(0,Yi.create)()((e,t)=>{let o=new Map,n=()=>Math.random().toString(36).substring(2,15),r=a=>{let i=o.get(a);if(i)return i;let s=n();return o.set(a,s),s};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(a){let{loadStylesheet:i,setStylesheet:s}=t();if(!a)return null;if(typeof a=="string")return a.startsWith("http")?{id:a,type:"CssStylesheet",value:await i(a)}:{id:s(a),type:"CssStylesheet",value:a};if(a.type==="CssStylesheet"){let l=a.id;if("value"in a){let m=Array.isArray(a.value)?a.value.join(`
|
|
2
|
+
`):a.value;if(m)return{id:s(m,l),type:"CssStylesheet",value:m}}if("id"in a&&a.id){let m=await i(a.id);return{id:a.id,type:"CssStylesheet",value:m}}}return null},async loadStylesheet(a){if(t().loading.includes(a))return"";try{let s=await fetch(a);if(!s.ok)throw new Error(`Failed to load stylesheet from ${a}`);let l=await s.text();return e(m=>({stylesheets:{...m.stylesheets,[a]:l}})),l}catch(s){return e(l=>({errors:[...l.errors,{url:a,error:s}]})),""}},setStylesheet(a,i){let s=i||r(a);return e(l=>({stylesheets:{...l.stylesheets,[s]:a}})),s}}});function Jn(e){let[t,o]=(0,At.useState)(""),{loading:n,errors:r,stylesheets:a,parseStylesheet:i}=Ki();return(0,At.useEffect)(()=>{e&&i(e).then(l=>{l?.id&&o(l.id)})},[e,i]),[(0,At.useMemo)(()=>{let l={};return t&&a[t]&&(l[t]=a[t]),l},[t,a]),{id:t,stylesheets:a,loading:n,errors:r}]}function Yt(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=w(),i=o||r.annotation,s=N(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),[l]=Jn(s?.stylesheet),m=N(c=>s&&s.body?s.body.map(u=>u?u.type==="SpecificResource"?{...u,source:a.get(u)}:u?c.iiif.entities[u.type][u.id]:null:null).filter(Boolean):[],[s]);return(0,Gi.useMemo)(()=>{if(!s)return;let c={...s,body:m,target:(0,ji.expandTarget)(s.target,{typeMap:a.getState().iiif.mapping,loadedStylesheets:l})};return n?n(c):c},[s,n,m,l,...t])}var Qi=require("react");function A(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.canvas,i=N(s=>a?s.iiif.entities.Canvas[a]:void 0,[a]);return(0,Qi.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}var er=require("react"),Xi=require("@iiif/helpers/events");function Kt(e,t){let o=w(),n=(0,er.useMemo)(()=>(0,Xi.createEventsHelper)(o),[o]),r=N(()=>e&&e.id?o.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,er.useMemo)(()=>e?n.getListenersAsProps(e,t):{},[r,e,o,t])}var Zi=require("react"),Ji=require("@iiif/helpers/styles");function ot(e,t){let o=w(),n=(0,Zi.useMemo)(()=>(0,Ji.createStylesHelper)(o),[o]);return N(()=>{if(!e)return null;let r=n.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var ea=require("react");var qo=require("@atlas-viewer/atlas"),Ce=require("react"),$=require("react/jsx-runtime");function tr({handleSize:e,resizable:t,onSave:o,children:n,maintainAspectRatio:r,disableCardinalControls:a,aspectRatio:i,...s}){let l=typeof e>"u"?r?12:8:e,{portalRef:m,mode:c,mouseEvent:u,isEditing:d}=(0,qo.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:i,maintainAspectRatio:r},o),g=(0,Ce.useMemo)(()=>u("translate"),[u]),y=(0,Ce.useMemo)(()=>u("east"),[u]),p=(0,Ce.useMemo)(()=>u("west"),[u]),b=(0,Ce.useMemo)(()=>u("south"),[u]),v=(0,Ce.useMemo)(()=>u("north"),[u]),f=(0,Ce.useMemo)(()=>u("south-east"),[u]),h=(0,Ce.useMemo)(()=>u("south-west"),[u]),R=(0,Ce.useMemo)(()=>u("north-east"),[u]),C=(0,Ce.useMemo)(()=>u("north-west"),[u]),P=c==="sketch",T={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:r||a?"50%":2,position:"absolute",background:"#fff",pointerEvents:d?"none":P?"initial":"none"};return(0,$.jsx)($.Fragment,{children:(0,$.jsxs)("world-object",{...s,children:[n,P&&t?(0,$.jsx)(qo.HTMLPortal,{ref:m,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:P&&t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{onMouseDown:g,onTouchStart:g,style:{display:"block",width:"100%",height:"100%",cursor:"move",border:"1px solid rgba(255,255,255, .7)",outline:"2px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:d?"none":P?"initial":"none"}}),r?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{title:"east",onTouchStart:y,onMouseDown:y,style:{...T,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:a?0:1,transform:`translate(${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"west",onMouseDown:p,style:{...T,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:a?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"north",onMouseDown:v,style:{...T,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:a?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south",onMouseDown:b,style:{...T,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:a?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),(0,$.jsx)("div",{title:"north-east",onMouseDown:R,style:{...T,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south-east",onMouseDown:f,style:{...T,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"south-west",onMouseDown:h,style:{...T,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"north-west",onMouseDown:C,style:{...T,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}var or=require("react/jsx-runtime");function nr({id:e,interactive:t,region:o,onClick:n,onHover:r,onSave:a,aspectRatio:i,maintainAspectRatio:s,disableCardinalControls:l,isEditing:m,style:c={backgroundColor:"rgba(0,0,0,.5)"}}){let u=(0,ea.useCallback)(d=>{m&&a?.({id:o.id,x:o.x,y:o.y,height:o.height,width:o.width,...d})},[a,m,o.id,o.x,o.y,o.height,o.width]);return(0,or.jsx)(tr,{id:e,x:o.x,y:o.y,width:o.width,aspectRatio:i,height:o.height,resizable:m,onSave:u,maintainAspectRatio:s,disableCardinalControls:l,children:(0,or.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:c})})}var oa=require("react/jsx-runtime"),nt=({id:e,style:t,className:o,interactive:n,targetId:r,ignoreTargetId:a})=>{let i=Yt({id:e}),s=ot(i,"atlas"),l=ot(i,"html"),m=Kt(i,["atlas"]),c=A(),u=_t(),d=(0,ta.useMemo)(()=>(0,jt.mergeStyles)((0,jt.mergeStyles)((0,jt.mergeStyles)((0,jt.mergeStyles)(t,s),i?.motivation?.includes("highlighting")?u.highlighted:u.default),i?.target?.selector?.boxStyle||{})),[t,s,u,i?.motivation,i?.target]),g=r||c?.id;return c&&i&&i.target&&i.target.selector&&(i.target.selector.type==="BoxSelector"||i.target.selector.type==="SvgSelector")&&i.target.source&&(a?!0:i.target.source.id===g||i.target.source===g)?(0,oa.jsx)(nr,{id:i.id,isEditing:!0,region:i.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:()=>{},...m}):null};var ra=require("react");var na=require("react");function rr(e={},t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.annotationPage,i=N(s=>a?s.iiif.entities.AnnotationPage[a]:void 0,[a]);return(0,na.useMemo)(()=>{if(i)return n?n(i):i},[i,...t])}var ir=require("react/jsx-runtime"),Le=({className:e,page:t,targetId:o,ignoreTargetId:n})=>{let r=rr({id:t.id})||t,a=ot(r,"atlas"),i=ot(r,"html");return N(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,ir.jsx)(ra.Fragment,{children:r.items?.map(s=>(0,ir.jsx)(nt,{id:s.id,style:a,className:i?.className||e,targetId:o,ignoreTargetId:n},s.id))})};var ze=require("react"),Bo=require("react/jsx-runtime"),ia=(0,ze.createContext)(null),aa=(0,ze.createContext)(null),sa=(0,ze.createContext)(null);function vl(){let e=(0,ze.useContext)(ia);if(!e)throw new Error("Ctx not found");return e}function Sl(){let e=(0,ze.useContext)(aa);if(!e)throw new Error("Ctx not found");return e}function xl(){let e=(0,ze.useContext)(sa);if(!e)throw new Error("Ctx not found");return e}function Gt({actions:e,state:t,children:o,currentTime:n,progress:r,element:a}){return(0,Bo.jsx)(sa.Provider,{value:{currentTime:n,progress:r,element:a},children:(0,Bo.jsx)(aa.Provider,{value:e,children:(0,Bo.jsx)(ia.Provider,{value:t,children:o})})})}var la=require("react");var ca=require("@iiif/helpers");function Qt(){let e=F(),t=A();return(0,la.useMemo)(()=>{if(!e||!t||!e.start)return null;let o=(0,ca.expandTarget)(e.start);return!o||o.source.id!==t.id||!o||!o.selector||o.selector.type!=="TemporalSelector"?null:o.selector.temporal},[e,t])}var D=require("react");function ua(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function bl(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 Oo(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function rt(e){let[t,o]=(0,D.useReducer)(bl,ua(e.duration));(0,D.useEffect)(()=>{o({type:"RESET",state:ua(e.duration)})},[e.duration]);let n=(0,D.useRef)(null),r=(0,D.useRef)(null),a=(0,D.useRef)(null),i=(0,D.useRef)(!1),s=(0,D.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Oo(n.current.currentTime),a.current&&(a.current.style.width=`${n.current.currentTime/e.duration*100}%`),i.current!==n.current.muted&&(i.current=n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,D.useCallback)(()=>{n.current&&(o({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{o({type:"PLAY"})}),s())},[s]),m=(0,D.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?l():c())},[s]),c=(0,D.useCallback)(()=>{n.current&&(n.current.pause(),o({type:"PAUSE"}),s())},[s]),u=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,o(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!0,o({type:"MUTE"}))},[]),g=(0,D.useCallback)(()=>{n.current&&(n.current.muted=!1,o({type:"UNMUTE"}))},[]),y=(0,D.useCallback)(v=>{n.current&&(n.current.muted=!1,n.current.volume=v/100,o({type:"SET_VOLUME",volume:v}))},[]),p=(0,D.useCallback)(v=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(v*e.duration,e.duration)),s())},[]),b=(0,D.useCallback)(v=>{if(n.current){let f=typeof v=="function"?v(n.current.currentTime):v;n.current.currentTime=Math.max(0,Math.min(f,e.duration)),s()}},[]);return(0,D.useEffect)(()=>{let v=setInterval(()=>{s()},350);return()=>clearInterval(v)},[s,e.duration]),(0,D.useEffect)(()=>{let v=()=>{o({type:"FINISHED"})},f=n.current;return f?.addEventListener("ended",v),()=>f?.removeEventListener("ended",v)},[]),[{element:n,currentTime:r,progress:a},t,{play:l,pause:c,playPause:m,mute:d,unmute:g,toggleMute:u,setVolume:y,setDurationPercent:p,setTime:b}]}var it=require("react"),ar=(0,it.createContext)(()=>{}),sr=(0,it.createContext)(()=>{});function j(e,t,o,n,r=[]){let a=(0,it.useContext)(e==="portal"?sr:ar);(0,it.useEffect)(()=>(e!=="none"&&a(t,o,n),()=>{a(t,null)}),[t,e,a,...r])}var Do=require("react/jsx-runtime");function lr({media:e,startTime:t,children:o}){let[{element:n,currentTime:r,progress:a},i,s]=rt({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,Do.jsxs)(Gt,{state:i,actions:s,currentTime:r,progress:a,element:n,children:[(0,Do.jsx)("audio",{ref:n,src:l}),o]},e.url)}function Ho({media:e,mediaControlsDeps:t,audioCopmonent:o=lr,children:n}){let r=Qt();return j("portal","audio",o,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var Fo=require("react"),qe=(0,Fo.createContext)(null);qe.displayName="Strategy";function O(){let e=(0,Fo.useContext)(qe);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Be=require("react/jsx-runtime");function cr({model:e}){return(0,Be.jsxs)(Be.Fragment,{children:[(0,Be.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,Be.jsx)("div",{className:"model-container",children:(0,Be.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function $o({model:e,name:t}){return j("overlay",`model-${t}`,cr,{model:e},[e]),null}var ma=require("react/jsx-runtime");function ur(){let{strategy:e}=O();return e.type!=="3d-model"?null:(0,ma.jsx)($o,{model:e.model})}var Wo=require("react"),Xt=(0,Wo.createContext)(null);Xt.displayName="Controls";function oe(){let e=(0,Wo.useContext)(Xt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ae=require("react/jsx-runtime");function mr(){let{strategy:e}=O(),{renderViewerControls:t,viewControlsDeps:o}=oe(),n=P(),r=n?.accompanyingCanvas,a=n?.placeholderCanvas;return(0,Ae.jsxs)(Ae.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Ae.jsx)(me,{canvas:r.id,children:(0,Ae.jsx)(at,{renderViewerControls:t,viewControlsDeps:o})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!r?(0,Ae.jsx)(me,{canvas:a.id,children:(0,Ae.jsx)(at,{renderViewerControls:t,viewControlsDeps:o})}):null]})}var Tt=require("react");var Te=require("react");var Uo=require("@iiif/helpers/vault/actions");var da=require("react");function dr(){let t=w().getStore();return(0,da.useMemo)(()=>o=>t.dispatch(o),[t])}function pa(e){return typeof e!="string"&&e&&e.bindToVault}function pr(){let e=w(),t=(0,Te.useRef)([]),o=dr(),n=(0,Te.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,Te.useLayoutEffect)(()=>{let s={id:n,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};o(Uo.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[n]);let r=N(s=>n&&s.iiif.entities.AnnotationPage[n]||null,[n]),a=(0,Te.useCallback)((s,l)=>{if(n){if(pa(s)){let u=s;u.__vault||u.bindToVault(e),s=typeof u.source=="string"?u.source:u.source.id,t.current[s]=u}else typeof s!="string"&&(s=s.id);let m=e.get({id:n,type:"AnnotationPage"}),c=e.get({id:s,type:"Annotation"});m&&c&&(m.items.find(u=>u.id===c.id)||o(Uo.entityActions.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[n]),i=(0,Te.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(Uo.entityActions.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[n]);return[r,{addAnnotation:a,removeAnnotation:i}]}var ga=require("react/jsx-runtime"),fa=(0,Tt.createContext)(null);function fr(){let e=(0,Tt.useContext)(fa);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function gr({children:e}){let[t,{addAnnotation:o,removeAnnotation:n}]=pr();return(0,ga.jsx)(fa.Provider,{value:(0,Tt.useMemo)(()=>({fullPage:t,addAnnotation:o,removeAnnotation:n}),[t]),children:e})}var st=require("react/jsx-runtime");function hr({children:e}){let{strategy:t}=O(),[o]=fr();return t.type!=="images"?null:(0,st.jsxs)(st.Fragment,{children:[o?(0,st.jsx)(Le,{page:o}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,st.jsx)(Le,{page:n},n.id)):null,e]})}var Oe=require("react");var ha=require("react"),yr=(e,t=[])=>{let o=w();(0,ha.useEffect)(()=>{e(o)},[o,...t])};var _o=Q(require("react"),1),ya=require("@iiif/helpers/image-service"),va=_o.default.createContext(new ya.ImageServiceLoader);function Zt(){return(0,_o.useContext)(va)}var Sa=require("@iiif/helpers/thumbnail");function Ie(e,t,{canvasId:o,manifestId:n}={}){let r=w(),a=Zt(),i=(0,Oe.useMemo)(()=>(0,Sa.createThumbnailHelper)(r,{imageServiceLoader:a}),[r,a]),[s,l]=(0,Oe.useState)(),m=F(n?{id:n}:void 0),c=P(o?{id:o}:void 0),u=c||m,d=(0,Oe.useRef)(!1);if((0,Oe.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!u)throw new Error("Must be called under a manifest or canvas context.");return yr(g=>{i.getBestThumbnailAtSize(u,e,t).then(v=>{v.best&&!d.current&&l(v.best)})},[u]),s}var vr=require("react/jsx-runtime");function lt({x:e=0,y:t=0}){let o=P(),n=Ie({maxWidth:256,maxHeight:256});return!o||!n||n.type!=="fixed"?null:(0,vr.jsx)("world-object",{height:o.height,width:o.width,x:e,y:t,children:(0,vr.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 Yo=require("react/jsx-runtime");function Sr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Yo.jsxs)(Ho,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,Yo.jsx)(lt,{}),o?o(t):null]},t.media.url)}var Tr=require("@atlas-viewer/atlas"),Jo=require("react"),Ir=require("zustand");var Ko=require("react"),xa=require("zustand"),ba=require("react/jsx-runtime"),xr=(0,Ko.createContext)(null);xr.displayName="ComplexTimeline";function br({children:e,store:t}){return(0,ba.jsx)(xr.Provider,{value:t,children:e})}function Cl(e){let t=(0,Ko.useContext)(xr);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,xa.useStore)(t,e)}var Ra=Q(require("mitt"),1),Pa=require("zustand/vanilla");function Ca({currentKeyFrameIndex:e,keyframes:t,targetTime:o,currentTime:n}){if(n<=o){let r=t.findIndex(s=>s.time>o);if(r===-1)return[e,[]];let a={},i=t.slice(e,r);for(let s of i)s.type==="enter"&&(a[s.id]=s),s.type==="exit"&&(a[s.id]?delete a[s.id]:a[s.id]=s);return[r,Object.values(a)]}return[e,[]]}function Aa({complexTimeline:e,startTime:t=0}){let o=(0,Ra.default)(),n={},r={progress:null,currentTime:null},a=0,i=null,s=0,l=null;function m(){let f=b.getState().visibleElements,h=n,C=[],R=Object.keys(h);for(let A of R){let T=h[A],I=f[A];T&&I&&C.push(T)}return C}function c(){return Object.keys(n).map(f=>n[f])}function u(y){r.currentTime&&(r.currentTime.innerHTML=Oo(y),r.progress&&(r.progress.style.width=`${y/e.duration*100}%`))}let d=()=>{let y=b.getState(),f=y.currentPrime;if(!f)return;let h=n,C=y.visibleElements,R=Object.keys(h);for(let A of R){let T=h[A],I=C[A];if(T&&A!==f.id&&I){let q=s-I.time*1e3;Math.abs(s-I.time*1e3-T.currentTime*1e3)>300&&(T.currentTime=q/1e3)}}},g=(y=0)=>{let f=y-a,h=b.getState();if(h.isPlaying){let C=h.currentPrime;if(C){let I=n[C.id];I&&(I.paused?s+=f:s=(C.time+I.currentTime)*1e3)}else s+=f;let R=s/1e3;if(R>h.duration){b.getState().setTime(0),b.setState({isPlaying:!1}),v(),u(0);return}u(R);let[A,T]=Ca({currentTime:R,currentKeyFrameIndex:h.nextKeyframeIndex,keyframes:h.complexTimeline.keyframes,targetTime:R});T.length&&h.applyKeyframes(A,T)}a=y,i=requestAnimationFrame(g)},v=()=>{i&&cancelAnimationFrame(i)},p=(y,f)=>{},b=(0,Pa.createStore)((y,f)=>({complexTimeline:e,elements:{},visibleElements:{},isBuffering:!1,bufferMap:{},isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,isReady:!1,volume:100,duration:e.duration,clockStartRequests:0,clockStartTime:0,primeTime:0,currentPrime:null,clockRunning:!1,nextKeyframeIndex:0,startClock:()=>{f().clockRunning||(g(),l=setInterval(d,500)),y({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(h,C){let R=f(),A={...R.visibleElements},T=R.currentPrime;for(let I of C)I.type==="enter"&&(A[I.id]=I,o.emit("complex-timeline.enter",{id:I.id})),I.type==="exit"&&(A[I.id]=null,o.emit("complex-timeline.exit",{id:I.id})),I.isPrime&&(T=I);y({nextKeyframeIndex:h,visibleElements:A,currentPrime:T})},stopClock:()=>{let h=f().clockStartRequests;if(h!==0){if(h===1){v(),l&&clearInterval(l),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:h-1})}},setElement:(h,C)=>{n[h]=C;let R=Object.keys(n),A=f().complexTimeline;p(C,h),A.items.filter(I=>I.type!=="Image"&&I.type!=="Text").every(I=>R.includes(I.annotationId))&&!f().isReady&&(o.emit("complex-timeline.ready",{complexTimeline:A}),y({isReady:!0}))},removeElement:h=>{delete n[h]},mute(){for(let h of c())h.muted=!0;y({isMuted:!0})},unmute(){for(let h of c())h.muted=!1;y({isMuted:!1})},play(){if(!f().isPlaying){for(let C of m())C.play();y({isPlaying:!0})}},pause(){if(f().isPlaying){for(let C of m())C.pause();y({isPlaying:!1})}},playPause(){let h=f();h.isPlaying?h.pause():h.play()},setDurationPercent(h){let R=f().duration*h;f().setTime(R)},setTime(h){let C=f(),R=s/1e3,A=typeof h=="function"?h(R):h,T=C.nextKeyframeIndex;if(R>A){y({visibleElements:{},currentPrime:null});let V=Object.keys(C.visibleElements);for(let B of V)o.emit("complex-timeline.exit",{id:B});R=0,T=0}let[I,q]=Ca({currentTime:R,currentKeyFrameIndex:T,keyframes:C.complexTimeline.keyframes,targetTime:A});C.applyKeyframes(I,q),s=A*1e3;let E=b.getState().visibleElements,_=n,k=Object.keys(E);for(let V of k){let B=E[V];if(B){let qt=_[V];qt&&(qt.currentTime=(s-B.time*1e3)/1e3)}}u(A)},setVolume(h){for(let C of c())C.volume=Math.min(1,Math.max(0,h/100));y({volume:h})},toggleMute(){let h=f();h.isMuted?(h.unmute(),y({isMuted:!1})):(h.mute(),y({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(h){r.progress=h},setCurrentTimeElement(h){r.currentTime=h},clearCurrentTimeElement(){r.currentTime=null}}));return o.on("complex-timeline.enter",y=>{let f=b.getState(),h=y.id,C=n[h];C&&f.isPlaying&&C.play()}),o.on("complex-timeline.exit",y=>{let f=b.getState(),h=y.id,C=n[h];C&&(C.currentTime=0,C.pause())}),b.getState().setTime(t),{store:b,emitter:o}}var wt=require("react");var Ha=require("@atlas-viewer/atlas"),Da=require("@iiif/parser/image-3");var jo=Q(require("react"),1),Ta=require("@iiif/helpers/image-service"),Jt=require("zustand"),Ia=jo.default.createContext(Ta.imageServices.store);Ia.displayName="ImageServicesHelper";function Go(){return(0,jo.useContext)(Ia)}function wa(e){let t=Go();return(0,Jt.useStore)(t,({loaded:o})=>o[e])}function It(){let e=Go();return(0,Jt.useStore)(e,({loadServiceSync:t})=>t)}function ka(){let e=Go();return(0,Jt.useStore)(e,({loaded:t})=>t)}function Ma(){let e=Go();return(0,Jt.useStore)(e,({loadService:t})=>t)}var Se=Q(require("react"),1),ve=require("react/jsx-runtime"),Na=Se.default.createContext("en"),Va=Se.default.createContext({}),La=Se.default.createContext(null);function Rl(e){return(0,ve.jsx)(Va.Provider,{value:e.translations,children:e.children})}function Pl(e){return(0,ve.jsx)(Na.Provider,{value:e.language,children:e.children})}function Al(e){return(0,ve.jsx)(La.Provider,{value:e.convert,children:e.children})}function Cr(){return Se.default.useContext(La)}function Qo(){return Se.default.useContext(Na)}function Rr(){return Se.default.useContext(Va)}function Ea(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function za({as:e,language:t,children:o,viewingDirection:n,...r}){let a=Qo();return(0,Se.useMemo)(()=>Ea(a)===Ea(t),[a,t])?e?(0,ve.jsx)(e,{...r,children:o}):(0,ve.jsx)("span",{...r,children:o}):e?(0,ve.jsx)(e,{...r,lang:t,dir:n,children:o}):(0,ve.jsx)("span",{...r,lang:t,dir:n,children:o})}function qa(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 Ba=(e,t=[])=>{let o=Qo();return(0,Se.useMemo)(()=>{let n=e();return qa(o,n,[])},[o,...t])};function ct(e,t,o,n){return t?o?o(e[t]||t,n||"none"):e[t]||t:""}function Oa(e,t,o=`
|
|
15
|
+
`}),(0,Be.jsx)("div",{className:"model-container",children:(0,Be.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function $o({model:e,name:t}){return j("overlay",`model-${t}`,cr,{model:e},[e]),null}var ma=require("react/jsx-runtime");function ur(){let{strategy:e}=O();return e.type!=="3d-model"?null:(0,ma.jsx)($o,{model:e.model})}var Wo=require("react"),Xt=(0,Wo.createContext)(null);Xt.displayName="Controls";function oe(){let e=(0,Wo.useContext)(Xt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ae=require("react/jsx-runtime");function mr(){let{strategy:e}=O(),{renderViewerControls:t,viewControlsDeps:o}=oe(),n=A(),r=n?.accompanyingCanvas,a=n?.placeholderCanvas;return(0,Ae.jsxs)(Ae.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,Ae.jsx)(me,{canvas:r.id,children:(0,Ae.jsx)(at,{renderViewerControls:t,viewControlsDeps:o})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!r?(0,Ae.jsx)(me,{canvas:a.id,children:(0,Ae.jsx)(at,{renderViewerControls:t,viewControlsDeps:o})}):null]})}var Tt=require("react");var Te=require("react");var Uo=require("@iiif/helpers/vault/actions");var da=require("react");function dr(){let t=w().getStore();return(0,da.useMemo)(()=>o=>t.dispatch(o),[t])}function pa(e){return typeof e!="string"&&e&&e.bindToVault}function pr(){let e=w(),t=(0,Te.useRef)([]),o=dr(),n=(0,Te.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,Te.useLayoutEffect)(()=>{let s={id:n,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};o(Uo.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[n]);let r=N(s=>n&&s.iiif.entities.AnnotationPage[n]||null,[n]),a=(0,Te.useCallback)((s,l)=>{if(n){if(pa(s)){let u=s;u.__vault||u.bindToVault(e),s=typeof u.source=="string"?u.source:u.source.id,t.current[s]=u}else typeof s!="string"&&(s=s.id);let m=e.get({id:n,type:"AnnotationPage"}),c=e.get({id:s,type:"Annotation"});m&&c&&(m.items.find(u=>u.id===c.id)||o(Uo.entityActions.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[n]),i=(0,Te.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(Uo.entityActions.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[n]);return[r,{addAnnotation:a,removeAnnotation:i}]}var ga=require("react/jsx-runtime"),fa=(0,Tt.createContext)(null);function fr(){let e=(0,Tt.useContext)(fa);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function gr({children:e}){let[t,{addAnnotation:o,removeAnnotation:n}]=pr();return(0,ga.jsx)(fa.Provider,{value:(0,Tt.useMemo)(()=>({fullPage:t,addAnnotation:o,removeAnnotation:n}),[t]),children:e})}var st=require("react/jsx-runtime");function hr({children:e}){let{strategy:t}=O(),[o]=fr();return t.type!=="images"?null:(0,st.jsxs)(st.Fragment,{children:[o?(0,st.jsx)(Le,{page:o}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,st.jsx)(Le,{page:n},n.id)):null,e]})}var Oe=require("react");var ha=require("react"),yr=(e,t=[])=>{let o=w();(0,ha.useEffect)(()=>{e(o)},[o,...t])};var _o=Q(require("react"),1),ya=require("@iiif/helpers/image-service"),va=_o.default.createContext(new ya.ImageServiceLoader);function Zt(){return(0,_o.useContext)(va)}var Sa=require("@iiif/helpers/thumbnail");function Ie(e,t,{canvasId:o,manifestId:n}={}){let r=w(),a=Zt(),i=(0,Oe.useMemo)(()=>(0,Sa.createThumbnailHelper)(r,{imageServiceLoader:a}),[r,a]),[s,l]=(0,Oe.useState)(),m=F(n?{id:n}:void 0),c=A(o?{id:o}:void 0),u=c||m,d=(0,Oe.useRef)(!1);if((0,Oe.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!u)throw new Error("Must be called under a manifest or canvas context.");return yr(g=>{i.getBestThumbnailAtSize(u,e,t).then(y=>{y.best&&!d.current&&l(y.best)})},[u]),s}var vr=require("react/jsx-runtime");function lt({x:e=0,y:t=0}){let o=A(),n=Ie({maxWidth:256,maxHeight:256});return!o||!n||n.type!=="fixed"?null:(0,vr.jsx)("world-object",{height:o.height,width:o.width,x:e,y:t,children:(0,vr.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 Yo=require("react/jsx-runtime");function Sr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Yo.jsxs)(Ho,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,Yo.jsx)(lt,{}),o?o(t):null]},t.media.url)}var Tr=require("@atlas-viewer/atlas"),Jo=require("react"),Ir=require("zustand");var Ko=require("react"),xa=require("zustand"),ba=require("react/jsx-runtime"),xr=(0,Ko.createContext)(null);xr.displayName="ComplexTimeline";function br({children:e,store:t}){return(0,ba.jsx)(xr.Provider,{value:t,children:e})}function Cl(e){let t=(0,Ko.useContext)(xr);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,xa.useStore)(t,e)}var Ra=Q(require("mitt"),1),Pa=require("zustand/vanilla");function Ca({currentKeyFrameIndex:e,keyframes:t,targetTime:o,currentTime:n}){if(n<=o){let r=t.findIndex(s=>s.time>o);if(r===-1)return[e,[]];let a={},i=t.slice(e,r);for(let s of i)s.type==="enter"&&(a[s.id]=s),s.type==="exit"&&(a[s.id]?delete a[s.id]:a[s.id]=s);return[r,Object.values(a)]}return[e,[]]}function Aa({complexTimeline:e,startTime:t=0}){let o=(0,Ra.default)(),n={},r={progress:null,currentTime:null},a=0,i=null,s=0,l=null;function m(){let f=b.getState().visibleElements,h=n,R=[],C=Object.keys(h);for(let P of C){let T=h[P],I=f[P];T&&I&&R.push(T)}return R}function c(){return Object.keys(n).map(f=>n[f])}function u(v){r.currentTime&&(r.currentTime.innerHTML=Oo(v),r.progress&&(r.progress.style.width=`${v/e.duration*100}%`))}let d=()=>{let v=b.getState(),f=v.currentPrime;if(!f)return;let h=n,R=v.visibleElements,C=Object.keys(h);for(let P of C){let T=h[P],I=R[P];if(T&&P!==f.id&&I){let q=s-I.time*1e3;Math.abs(s-I.time*1e3-T.currentTime*1e3)>300&&(T.currentTime=q/1e3)}}},g=(v=0)=>{let f=v-a,h=b.getState();if(h.isPlaying){let R=h.currentPrime;if(R){let I=n[R.id];I&&(I.paused?s+=f:s=(R.time+I.currentTime)*1e3)}else s+=f;let C=s/1e3;if(C>h.duration){b.getState().setTime(0),b.setState({isPlaying:!1}),y(),u(0);return}u(C);let[P,T]=Ca({currentTime:C,currentKeyFrameIndex:h.nextKeyframeIndex,keyframes:h.complexTimeline.keyframes,targetTime:C});T.length&&h.applyKeyframes(P,T)}a=v,i=requestAnimationFrame(g)},y=()=>{i&&cancelAnimationFrame(i)},p=(v,f)=>{},b=(0,Pa.createStore)((v,f)=>({complexTimeline:e,elements:{},visibleElements:{},isBuffering:!1,bufferMap:{},isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,isReady:!1,volume:100,duration:e.duration,clockStartRequests:0,clockStartTime:0,primeTime:0,currentPrime:null,clockRunning:!1,nextKeyframeIndex:0,startClock:()=>{f().clockRunning||(g(),l=setInterval(d,500)),v({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(h,R){let C=f(),P={...C.visibleElements},T=C.currentPrime;for(let I of R)I.type==="enter"&&(P[I.id]=I,o.emit("complex-timeline.enter",{id:I.id})),I.type==="exit"&&(P[I.id]=null,o.emit("complex-timeline.exit",{id:I.id})),I.isPrime&&(T=I);v({nextKeyframeIndex:h,visibleElements:P,currentPrime:T})},stopClock:()=>{let h=f().clockStartRequests;if(h!==0){if(h===1){y(),l&&clearInterval(l),v({clockRunning:!1,clockStartRequests:0});return}v({clockStartRequests:h-1})}},setElement:(h,R)=>{n[h]=R;let C=Object.keys(n),P=f().complexTimeline;p(R,h),P.items.filter(I=>I.type!=="Image"&&I.type!=="Text").every(I=>C.includes(I.annotationId))&&!f().isReady&&(o.emit("complex-timeline.ready",{complexTimeline:P}),v({isReady:!0}))},removeElement:h=>{delete n[h]},mute(){for(let h of c())h.muted=!0;v({isMuted:!0})},unmute(){for(let h of c())h.muted=!1;v({isMuted:!1})},play(){if(!f().isPlaying){for(let R of m())R.play();v({isPlaying:!0})}},pause(){if(f().isPlaying){for(let R of m())R.pause();v({isPlaying:!1})}},playPause(){let h=f();h.isPlaying?h.pause():h.play()},setDurationPercent(h){let C=f().duration*h;f().setTime(C)},setTime(h){let R=f(),C=s/1e3,P=typeof h=="function"?h(C):h,T=R.nextKeyframeIndex;if(C>P){v({visibleElements:{},currentPrime:null});let V=Object.keys(R.visibleElements);for(let B of V)o.emit("complex-timeline.exit",{id:B});C=0,T=0}let[I,q]=Ca({currentTime:C,currentKeyFrameIndex:T,keyframes:R.complexTimeline.keyframes,targetTime:P});R.applyKeyframes(I,q),s=P*1e3;let E=b.getState().visibleElements,_=n,k=Object.keys(E);for(let V of k){let B=E[V];if(B){let qt=_[V];qt&&(qt.currentTime=(s-B.time*1e3)/1e3)}}u(P)},setVolume(h){for(let R of c())R.volume=Math.min(1,Math.max(0,h/100));v({volume:h})},toggleMute(){let h=f();h.isMuted?(h.unmute(),v({isMuted:!1})):(h.mute(),v({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(h){r.progress=h},setCurrentTimeElement(h){r.currentTime=h},clearCurrentTimeElement(){r.currentTime=null}}));return o.on("complex-timeline.enter",v=>{let f=b.getState(),h=v.id,R=n[h];R&&f.isPlaying&&R.play()}),o.on("complex-timeline.exit",v=>{let f=b.getState(),h=v.id,R=n[h];R&&(R.currentTime=0,R.pause())}),b.getState().setTime(t),{store:b,emitter:o}}var wt=require("react");var Ha=require("@atlas-viewer/atlas"),Da=require("@iiif/parser/image-3");var jo=Q(require("react"),1),Ta=require("@iiif/helpers/image-service"),Jt=require("zustand"),Ia=jo.default.createContext(Ta.imageServices.store);Ia.displayName="ImageServicesHelper";function Go(){return(0,jo.useContext)(Ia)}function wa(e){let t=Go();return(0,Jt.useStore)(t,({loaded:o})=>o[e])}function It(){let e=Go();return(0,Jt.useStore)(e,({loadServiceSync:t})=>t)}function ka(){let e=Go();return(0,Jt.useStore)(e,({loaded:t})=>t)}function Ma(){let e=Go();return(0,Jt.useStore)(e,({loadService:t})=>t)}var Se=Q(require("react"),1),ve=require("react/jsx-runtime"),Na=Se.default.createContext("en"),Va=Se.default.createContext({}),La=Se.default.createContext(null);function Rl(e){return(0,ve.jsx)(Va.Provider,{value:e.translations,children:e.children})}function Pl(e){return(0,ve.jsx)(Na.Provider,{value:e.language,children:e.children})}function Al(e){return(0,ve.jsx)(La.Provider,{value:e.convert,children:e.children})}function Cr(){return Se.default.useContext(La)}function Qo(){return Se.default.useContext(Na)}function Rr(){return Se.default.useContext(Va)}function Ea(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function za({as:e,language:t,children:o,viewingDirection:n,...r}){let a=Qo();return(0,Se.useMemo)(()=>Ea(a)===Ea(t),[a,t])?e?(0,ve.jsx)(e,{...r,children:o}):(0,ve.jsx)("span",{...r,children:o}):e?(0,ve.jsx)(e,{...r,lang:t,dir:n,children:o}):(0,ve.jsx)("span",{...r,lang:t,dir:n,children:o})}function qa(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 Ba=(e,t=[])=>{let o=Qo();return(0,Se.useMemo)(()=>{let n=e();return qa(o,n,[])},[o,...t])};function ct(e,t,o,n){return t?o?o(e[t]||t,n||"none"):e[t]||t:""}function Oa(e,t,o=`
|
|
16
16
|
`,n={}){let r=Cr(),a=Ba(()=>Object.keys(e||{}),[e]);return[(0,Se.useMemo)(()=>{if(!e)return ct(n,t,r)||"";if(typeof e=="string")return ct(n,e,r);let i=a?e[a]:void 0;return i?typeof i=="string"?i:i.map(s=>ct(n,s,r,a)).join(o):""},[a,t,e]),a]}function Tl(){let e=Qo(),t=Rr(),o=Cr();return function(r,a="",i=`
|
|
17
17
|
`,s=t){let l=Object.keys(r||{}),m=qa(e,l,[]);if(!r)return ct(s,a,o)||"";if(typeof r=="string")return ct(s,r,o);let c=m?r[m]:void 0;return c?typeof c=="string"?ct(s,c,o,m):c.map(u=>ct(s,u,o,m)).join(typeof i<"u"?i:`
|
|
18
|
-
`):""}}function le({as:e,defaultText:t,enableDangerouslySetInnerHTML:o,children:n,separator:r,...a}){let i=Rr(),[s,l]=Oa(n,t,r,i);return l?(0,ve.jsx)(za,{...a,as:e,language:l,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s}):e?(0,ve.jsx)(e,{...a,children:s}):(0,ve.jsx)("span",{...a,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s})}var Pr=require("@iiif/parser/image-3"),Xo=require("react"),ut=require("react/jsx-runtime"),Ar=e=>{let t=e.format||"jpg",o=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,a=e.enableSizes,i=(0,Xo.useMemo)(()=>{let m=e.tiles.imageService.id||e.tiles.imageService["@id"];return m?.endsWith("/info.json")?m.slice(0,-1*10):m},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,Xo.useMemo)(()=>{let m=e.tiles.imageService.tiles||[];if(!m.length){let c=e.width,u=[1],d=1;for(;2**d<c;)d=d*2,u.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,Pr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:(0,Pr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:[]}return m},[e.tiles.imageService,e.width]),l=(0,Xo.useMemo)(()=>{let m=e.tiles.imageService;return(m?m["@context"]?Array.isArray(m["@context"])?m["@context"]:[m["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,ut.jsx)("world-object",{rotation:e.rotation,scale:o,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,ut.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,ut.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,a&&n.map((m,c)=>(0,ut.jsx)("world-image",{uri:`${i}/full/${m.width},${l?m.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:m.width,height:m.height},crop:e.crop},c)),s.map(m=>(m.scaleFactors||[]).map(c=>(0,ut.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:m,scaleFactor:c,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${c}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var de=require("react/jsx-runtime");function Il({resource:e,heading:t,note:o,extra:n}){return n?(0,de.jsx)(Ha.HTMLPortal,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,de.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,de.jsxs)("div",{children:[(0,de.jsx)(le,{children:t||"Not authorised"}),o&&(0,de.jsx)("p",{children:(0,de.jsx)(le,{children:o})}),(0,de.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Fa({image:e,thumbnail:t,crop:o,enableSizes:n,enableThumbnail:r,renderOptions:a,rotation:i}){let s=$n(),l=(0,Da.getId)(e.service),m=wa(l),c=It(),u=m?.service;c(e.service,e);let d=u&&m?.status==="done",g=(u?.preferredFormats||[])[0],
|
|
18
|
+
`):""}}function le({as:e,defaultText:t,enableDangerouslySetInnerHTML:o,children:n,separator:r,...a}){let i=Rr(),[s,l]=Oa(n,t,r,i);return l?(0,ve.jsx)(za,{...a,as:e,language:l,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s}):e?(0,ve.jsx)(e,{...a,children:s}):(0,ve.jsx)("span",{...a,title:o?void 0:s,dangerouslySetInnerHTML:o?{__html:s}:void 0,children:o?void 0:s})}var Pr=require("@iiif/parser/image-3"),Xo=require("react"),ut=require("react/jsx-runtime"),Ar=e=>{let t=e.format||"jpg",o=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,a=e.enableSizes,i=(0,Xo.useMemo)(()=>{let m=e.tiles.imageService.id||e.tiles.imageService["@id"];return m?.endsWith("/info.json")?m.slice(0,-1*10):m},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,Xo.useMemo)(()=>{let m=e.tiles.imageService.tiles||[];if(!m.length){let c=e.width,u=[1],d=1;for(;2**d<c;)d=d*2,u.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,Pr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:(0,Pr.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:[]}return m},[e.tiles.imageService,e.width]),l=(0,Xo.useMemo)(()=>{let m=e.tiles.imageService;return(m?m["@context"]?Array.isArray(m["@context"])?m["@context"]:[m["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,ut.jsx)("world-object",{rotation:e.rotation,scale:o,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,ut.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,ut.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,a&&n.map((m,c)=>(0,ut.jsx)("world-image",{uri:`${i}/full/${m.width},${l?m.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:m.width,height:m.height},crop:e.crop},c)),s.map(m=>(m.scaleFactors||[]).map(c=>(0,ut.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:m,scaleFactor:c,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${c}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var de=require("react/jsx-runtime");function Il({resource:e,heading:t,note:o,extra:n}){return n?(0,de.jsx)(Ha.HTMLPortal,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,de.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,de.jsxs)("div",{children:[(0,de.jsx)(le,{children:t||"Not authorised"}),o&&(0,de.jsx)("p",{children:(0,de.jsx)(le,{children:o})}),(0,de.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Fa({image:e,thumbnail:t,crop:o,enableSizes:n,enableThumbnail:r,renderOptions:a,rotation:i}){let s=$n(),l=(0,Da.getId)(e.service),m=wa(l),c=It(),u=m?.service;c(e.service,e);let d=u&&m?.status==="done",g=(u?.preferredFormats||[])[0],y=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!s){let p=e.service,b=p.width||e.width||0,v=p.height||e.height||0,f=0,h=0,R=e.target?.spatial.width||b,C=e.target?.spatial.height||v;return(i===90||i===270)&&([R,C]=[C,R],C>R?h=-(C-R)/2:f=-(R-C)/2),(0,de.jsx)(Ar,{enableThumbnail:r,renderOptions:a,rotation:i,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:b,imageService:p,thumbnail:y},enableSizes:n,x:f,y:h,format:g,width:R,height:C,crop:o})}return(0,de.jsx)(Wn,{resource:e.service,errorComponent:Il,extra:e,children:p=>{let b=p.width||e.width||0,v=p.height||e.height||0,f=0,h=0,R=e.target?.spatial.width||b,C=e.target?.spatial.height||v;return(i===90||i===270)&&([R,C]=[C,R],C<R?(h=-(C-R)/2,f=(R-C)/2):(h=(C-R)/2,f=-(R-C)/2)),(0,de.jsx)(Ar,{enableThumbnail:r,renderOptions:a,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:b,imageService:p,thumbnail:y},rotation:i,format:g,enableSizes:n,x:f,y:h,width:R,height:C,crop:o})}},e.id)}var He=require("react/jsx-runtime");function De({id:e,image:t,thumbnail:o,isStatic:n,x:r=0,y:a=0,children:i,selector:s,onClick:l,enableSizes:m,enableAnnotations:c}){let u=(0,wt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,wt.useMemo)(()=>{let h=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(h&&h.selector?.type==="ImageApiSelector")return Number(h.selector.rotation)},[t]),g=r+t.target.spatial.x,y=a+t.target.spatial.y,p=t.target.spatial.width,b=t.target.spatial.height,v=t.target.spatial.width,f=t.target.spatial.height;return(d===90||d===270)&&([p,b]=[b,p],[v,f]=[f,v]),(0,He.jsxs)("world-object",{x:g,y,width:p,height:b,onClick:l,rotation:d,children:[t.service?(0,He.jsxs)(wt.Fragment,{children:[(0,He.jsx)(Fa,{image:t,thumbnail:o,crop:u,enableSizes:m,rotation:d}),i]},"service"):(0,He.jsxs)(wt.Fragment,{children:[(0,He.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:v,height:f},display:v&&f?{width:v,height:f}:void 0,crop:u}),i]},"no-service"),c&&t.annotationPages?t.annotationPages.map(h=>(0,He.jsx)(Le,{page:h,className:"image-service-annotation",ignoreTargetId:!0},h.id)):null]},e+(t.service?"server":"no-service"))}var $a=require("@atlas-viewer/atlas");var we=require("react/jsx-runtime");function Zo({strategy:e,onClickPaintingAnnotation:t}){return(0,we.jsx)(we.Fragment,{children:e.items.map((o,n)=>(0,we.jsx)(we.Fragment,{children:(0,we.jsx)($a.HTMLPortal,{onClick:t?r=>{r.stopPropagation(),t(o.annotationId,o,r)}:void 0,target:o.target?.spatial||void 0,children:(0,we.jsx)("div",{"data-textual-content":!0,children:(0,we.jsx)(le,{enableDangerouslySetInnerHTML:!0,children:o.text})})},n)}))})}var pe=require("react/jsx-runtime");function Wa({strategy:e,children:t}){let{store:o}=(0,Jo.useMemo)(()=>Aa({complexTimeline:e}),[e]),n=(0,Ir.useStore)(o,i=>i.isReady),r=(0,Ir.useStore)(o,i=>i.visibleElements);function a(i){return s=>{s&&o.getState().setElement(i,s)}}return(0,Jo.useLayoutEffect)(()=>{if(n){let{startClock:i,stopClock:s}=o.getState();return i(),()=>{s()}}},[e,n]),j("portal","custom-controls",br,{store:o,children:t},[n]),(0,pe.jsxs)(pe.Fragment,{children:[e.items.map(i=>i.type!=="Image"||!r[i.annotationId]?null:(0,pe.jsx)(De,{image:i,id:i.annotationId},i.id)),e.items.map((i,s)=>i.type!=="Text"||!r[i.annotationId]?null:(0,pe.jsx)(Zo,{strategy:{type:"textual-content",items:[i]}},s)),e.items.map((i,s)=>i.type!=="Video"||!i.target.spatial?null:(0,pe.jsx)(Tr.HTMLPortal,{target:i.target.spatial,children:(0,pe.jsx)("video",{ref:a(i.annotationId),src:i.url,style:{height:"100%",width:"100%",opacity:r[i.annotationId]?1:0}})},s)),e.items.map((i,s)=>i.type!=="Sound"?null:(0,pe.jsx)(Tr.HTMLPortal,{children:(0,pe.jsx)("audio",{ref:a(i.annotationId),src:i.url})},s)),e.highlights.map(({annotation:i})=>r[i.id]?(0,pe.jsx)(nt,{id:i.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},i.id):null)]})}var Ua=require("react/jsx-runtime");function wr(){let{strategy:e}=O(),{renderComplexTimelineControls:t}=oe();return e.type!=="complex-timeline"?null:(0,Ua.jsx)(Wa,{strategy:e,children:t?t(e):null})}var _a=require("react/jsx-runtime");function en({style:e}){let t=A();return!t||!t.height||!t.width?null:(0,_a.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ya=require("react/jsx-runtime");function kr({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:o}=O();return o.type!=="empty"&&!t?null:(0,Ya.jsx)(en,{style:e})}var tn=require("react"),xe=(0,tn.createContext)(null);function eo(){return(0,tn.useContext)(xe)}var kt=require("react/jsx-runtime");function Mr({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:o=!0,onClickPaintingAnnotation:n,children:r}){let{strategy:a}=O(),{renderViewerControls:i,viewControlsDeps:s}=oe(),l=A(),m=eo(),c=Ie({maxWidth:256,maxHeight:256});return j(m&&a.type==="images"&&i?"overlay":"none",`canvas-portal-controls-${l?.id}`,xe.Provider,i?{value:m||null,children:i(a)}:{},[l,m,a,...s||[]]),a.type!=="images"?null:(0,kt.jsxs)(kt.Fragment,{children:[a.images.map((u,d)=>(0,kt.jsx)(De,{isStatic:e,image:u,id:u.id,thumbnail:d===0?c:void 0,selector:u.selector,enableSizes:t,enableAnnotations:o,onClick:n?g=>{n(u.annotationId,u,g)}:void 0},u.id+d)),r]})}var Mt=require("react/jsx-runtime");function Er({onClickPaintingAnnotation:e,children:t}){let{strategy:o}=O(),{renderViewerControls:n,viewControlsDeps:r}=oe(),a=eo(),i=A();return j(a&&o.type==="textual-content"&&n?"overlay":"none",`canvas-portal-controls-${i?.id}`,xe.Provider,n?{value:a||null,children:n(o)}:{},[i,a,o,...r||[]]),o.type!=="textual-content"?null:(0,Mt.jsxs)(Mt.Fragment,{children:[(0,Mt.jsx)(Zo,{strategy:o,onClickPaintingAnnotation:e}),t]})}var to=require("react/jsx-runtime");function Nr({element:e,media:t,startTime:o,playPause:n,poster:r}){let a="div",i=o?`${t.url}#t=${o}`:t.url;return(0,to.jsxs)(a,{className:"video-container",part:"video-container",onClick:n,children:[(0,to.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,to.jsx)("video",{poster:r,ref:e,src:i,style:{width:"100%",objectFit:"contain"}})]})}function on({media:e,mediaControlsDeps:t,children:o,videoComponent:n=Nr,captions:r}){let a=
|
|
31
|
+
`}),(0,to.jsx)("video",{poster:r,ref:e,src:i,style:{width:"100%",objectFit:"contain"}})]})}function on({media:e,mediaControlsDeps:t,children:o,videoComponent:n=Nr,captions:r}){let a=A(),i=Qt(),s=a&&a.placeholderCanvas&&a.placeholderCanvas.id||void 0,l=Ie({},!1,{canvasId:s}),[{element:m,currentTime:c,progress:u},d,g]=rt({duration:e.duration});return j("overlay","video-element",n,{element:m,media:e,playPause:g.playPause,poster:l?.id,canvas:a,startTime:i?i.startTime:null,captions:r},[l]),j("portal","custom-controls",Gt,{state:d,actions:g,currentTime:c,progress:u,element:m,children:o},[c,d,e,...t||[]]),null}var nn=require("react/jsx-runtime");function Vr({as:e}){let{strategy:t}=O(),{renderMediaControls:o,mediaControlsDeps:n}=oe();return t.type!=="media"||t.media.type!=="Video"?null:(0,nn.jsxs)(on,{captions:t.captions,media:t.media,mediaControlsDeps:n,videoComponent:e,children:[(0,nn.jsx)(lt,{}),o?o(t):null]},t.media.url)}var Ka=require("react"),oo=require("react/jsx-runtime");function wl({element:e,media:t,playPause:o}){let n=(0,Ka.useRef)(null);return t.youTubeId?(0,oo.jsxs)("div",{className:"video-container",part:"video-container",onClick:o,children:[(0,oo.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,oo.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 ja({media:e,mediaControlsDeps:t,children:o}){let[{element:n,currentTime:r,progress:a},i,s]=rt({duration:e.duration});return j("overlay","video-element",wl,{element:n,media:e,playPause:s.playPause}),null}var rn=require("react/jsx-runtime");function Lr(){let{strategy:e}=O(),{renderMediaControls:t,mediaControlsDeps:o}=oe();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,rn.jsxs)(ja,{media:e.media,mediaControlsDeps:o,children:[(0,rn.jsx)(lt,{}),t?t(e):null]})}var un=require("react"),be=require("zustand");var sn=require("@atlas-viewer/atlas"),$e=require("react");var Ga=require("polygon-editor"),Z=require("react");var an=require("zustand");function zr(e){let t=L(),o=(0,an.useStore)(t,a=>a.polygons),n=(0,an.useStore)(t,a=>a.polygonState),r=(0,an.useStore)(t,a=>a.polygon);return et("atlas.polygon-render",({state:a,slowState:i,dt:s})=>{e(a,i,s)}),{currentShape:r,state:n,helper:o}}var M=require("react/jsx-runtime"),ke=(0,Ga.createSvgHelpers)(),Qa={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function qr(e){let{image:t}=e,o={...Qa,...e.theme||{}},n=(0,Z.useRef)(),r=(0,Z.useRef)(),a=(0,Z.useRef)(),i=(0,Z.useRef)(),s=(0,Z.useRef)(),l=(0,Z.useRef)(),m=(0,Z.useRef)(),c=(0,Z.useRef)(),u=(0,Z.useRef)(),d=(0,Z.useRef)(),[g,v]=(0,Z.useState)(null),[p,b]=(0,Z.useState)(!1),{helper:y,state:f,currentShape:h}=zr((E,_)=>{if(E.closestLineIndex,ke.updateTransitionBoundingBox(a.current,E,_),ke.updateBoundingBoxPolygon(n.current,E,_),ke.updateBoundingBoxPolygon(r.current,E,_),ke.updateTransitionShape(m.current,E,_),ke.updateClosestLinePointTransform(s.current,E,_),ke.updateSelectBox(i.current,E,_),ke.updatePointLine(c.current,E,_),ke.updateDrawPreview(l.current,E,_,3),ke.updateLineBox(u.current,E),v(E.transitionDirection),b(E.transitionRotate),E.closestLineIndex!==-1&&d.current){let k=E.polygon,V=k.points[E.closestLineIndex],B=k.points[(E.closestLineIndex+1)%k.points.length];V&&B&&d.current.setAttribute("points",`${V[0]},${V[1]} ${B[0]},${B[1]}`)}});(0,Z.useEffect)(()=>{let E=()=>{y.modifiers.reset()};return document.addEventListener("mouseleave",E),()=>{document.removeEventListener("mouseleave",E)}},[]);let C=(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke,className:"marker"}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.controlFill})]}),(0,M.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.activeLineStroke,className:"marker"})}),(0,M.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.activeLineStroke})]}),(0,M.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,M.jsx)("rect",{width:"10",height:"10",fill:o.lineStroke}),(0,M.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:o.controlFill})]})]}),R=h?h.open?"polyline":"polygon":null,A=!f.showBoundingBox&&f.closestPoint!==null&&f.actionIntentType==="select-point",T=f.actionIntentType==="add-open-point",I=f.transitionIntentType==="split-line",q=f.transitioning&&f.selectedStamp&&f.transitionIntentType==="stamp-shape",ue=h&&R?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(R,{fill:(!f.transitioning||f.transitionIntentType==="select-multiple-points")&&!h.open?o.shapeFill:"none",strokeWidth:q||f.showBoundingBox&&f.boxMode||f.transitioning&&f.transitionIntentType==="split-line"||f.transitioning&&f.transitionIntentType==="move-point"?0:2,stroke:o.shapeStroke,points:h.points.map(E=>E.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerMid:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerEnd:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}),f.currentTool==="lineBox"&&f.actionIntentType==="close-line-box"?(0,M.jsx)("polygon",{fill:o.shapeFill,ref:u,stroke:o.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,f.transitionIntentType==="draw-shape"&&f.transitioning?(0,M.jsx)("polyline",{ref:l,fill:"none",stroke:o.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(f.transitioning&&f.transitionIntentType==="move-point")&&!(f.transitioning&&f.transitionIntentType==="stamp-shape")&&!f.showBoundingBox&&f.selectedPoints&&f.selectedPoints.length?(0,M.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:h.points.filter((E,_)=>f.selectedPoints?.includes(_)).map(E=>E.join(",")).join(" "),opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,A&&!f.transitioning&&f.closestPoint!==null&&h.points[f.closestPoint]?(0,M.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:o.activeLineStroke,points:`${h.points[f.closestPoint][0]},${h.points[f.closestPoint][1]}`,opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,!f.transitioning&&(f.actionIntentType==="add-open-point"||f.actionIntentType==="close-shape"||f.actionIntentType==="close-shape-line")?(0,M.jsx)("polyline",{stroke:o.activeLineStroke,ref:c,strokeWidth:f.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?(0,M.jsx)("g",{children:(0,M.jsx)("polyline",{ref:d,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:o.activeLineStroke,strokeWidth:3})}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?(0,M.jsx)("g",{ref:s,children:(0,M.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,f.transitioning?(0,M.jsx)(R,{ref:m,fill:h.open?"none":o.shapeFill,stroke:f.transitionIntentType==="stamp-shape"?o.activeLineStroke:o.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(h.open,2)}):null,f.transitioning&&f.transitionIntentType==="select-multiple-points"?(0,M.jsx)("rect",{ref:i,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,f.showBoundingBox&&!q?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)("polygon",{ref:n,strokeWidth:2,stroke:o.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),(0,M.jsx)("polygon",{ref:r,strokeWidth:2,stroke:o.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:y.state.slowState.currentTool,setCurrentTool:y.tools.setTool,helper:y,currentShape:h,state:f,isAddingPoint:T,isSplitting:I,isStamping:q,isHoveringPoint:A,transitionDirection:g,transitionRotate:p,defs:C,editor:ue}}var Fe=require("react/jsx-runtime");function Xa(e){let t=(0,sn.useAtlas)(),{image:o}=e,{helper:n,defs:r,editor:a,state:i,transitionDirection:s,isSplitting:l,transitionRotate:m,isHoveringPoint:c,isAddingPoint:u}=qr({image:e.image,theme:e.theme}),d=(0,$e.useCallback)(p=>{p.button!==2&&n.pointer([[~~p.atlas.x,~~p.atlas.y]])},[n]),g=(0,$e.useCallback)(p=>{p.button!==2&&n.pointerDown()},[n]),v=(0,$e.useCallback)(p=>{p.button!==2&&n.pointerUp()},[n]);return(0,$e.useEffect)(()=>{let p=b=>{n.key.up(b.key)};return document.addEventListener("keyup",p),()=>{document.removeEventListener("keyup",p)}},[n]),(0,$e.useEffect)(()=>{let p=b=>{b.target&&["INPUT","TEXTAREA"].includes(b.target.tagName)||b.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||n.key.down(b.key)};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[n]),(0,$e.useEffect)(()=>{let p=[];return s&&p.push(`atlas-cursor-${s}`),i.actionIntentType==="cut-line"&&i.modifiers?.Shift&&p.push("atlas-cursor-cut"),(c||i.transitionIntentType==="move-shape"||i.transitionIntentType==="move-point")&&p.push("atlas-cursor-move"),u&&p.push("atlas-cursor-crosshair"),l&&p.push("atlas-cursor-copy"),m&&p.push("atlas-cursor-rotate"),i.transitionIntentType==="draw-shape"&&p.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...p),()=>{t?.canvas&&t.canvas.classList.remove(...p)}},[t?.canvas,u,c,l,i.modifiers?.Shift,i.actionIntentType,i.transitionIntentType,s,m]),(0,Fe.jsx)("world-object",{height:o.height,width:o.width,onMouseMove:d,onMouseDown:g,onMouseUp:v,onMouseLeave:n.blur,children:(0,Fe.jsx)(sn.HTMLPortal,{relative:!0,interactive:!1,children:(0,Fe.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,Fe.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,Fe.jsx)("title",{children:"Annotation Editor"}),(0,Fe.jsx)("defs",{children:r}),a]})})})})}var is=require("react"),as=require("zustand");var ns=require("@atlas-viewer/atlas"),ae=require("@floating-ui/react"),rs=require("react-dom");var Y=Q(require("react"),1);var Za=Q(require("react"),1),ln=require("react"),Ja=Q(require("mitt"),1),ts=require("react/jsx-runtime"),es=(0,Ja.default)(),mt=(0,ln.createContext)({emitter:es});mt.displayName="Events";function no(){return Za.default.useContext(mt).emitter}function kl({emitter:e,children:t}){return(0,ts.jsx)(mt.Provider,{value:(0,ln.useMemo)(()=>({emitter:e}),[e]),children:t})}var ce=require("react/jsx-runtime"),ro=Y.default.createContext({});function io(){let e=(0,Y.useContext)(ro),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 os(e){let t=Object.keys(e),o=e.children;for(let n of t){if(n==="children")continue;let{value:r,Provider:a}=e[n];o=(0,ce.jsx)(a,{value:r,children:o})}return o}function Ml(e){let t=(0,Y.useContext)(ro),o=(0,Y.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,ce.jsx)(ro.Provider,{value:o,children:e.children})}function ao(){return{VaultContext:(0,Y.useContext)(Ee),ResourceContext:(0,Y.useContext)(Bt),SimpleViewerReactContext:(0,Y.useContext)(xt),VisibleCanvasReactContext:(0,Y.useContext)(je),AuthRContext:(0,Y.useContext)(Xe),SearchReactContext:(0,Y.useContext)(St),ReactEventContext:(0,Y.useContext)(mt),ContextBridgeReactContext:(0,Y.useContext)(ro),StrategyReactContext:(0,Y.useContext)(qe),AtlasStoreReactContext:(0,Y.useContext)(tt)}}function so(e){return(0,ce.jsx)(Ke,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(je.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(xt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(mt.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(tt.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,ce.jsx)(Xe.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(St.Provider,{value:e.bridge.SearchReactContext,children:(0,ce.jsx)(ro.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,ce.jsx)(qe.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,ce.jsx)(os,{...e.custom,children:e.children}):e.children})})})})})})})})})}var Et=require("react/jsx-runtime");function cn({annotation:e,target:t,children:o,dismissable:n,isOpen:r,onOpenChange:a,placement:i}){let s=ao(),l=io(),{refs:m,floatingStyles:c,context:u}=(0,ae.useFloating)({open:r,onOpenChange:a,nodeId:e.id,placement:i||"bottom",middleware:[(0,ae.offset)(10),(0,ae.shift)(),(0,ae.flip)({mainAxis:!0})],whileElementsMounted:ae.autoUpdate}),d=(0,ae.useDismiss)(u),{getReferenceProps:g,getFloatingProps:v}=(0,ae.useInteractions)([n?d:null].filter(p=>p!==null));return(0,Et.jsxs)(ns.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Et.jsx)("div",{ref:m.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,rs.createPortal)((0,Et.jsx)(so,{bridge:s,custom:l,children:(0,Et.jsx)("div",{ref:m.setFloating,style:c,...v(),children:o})}),document.getElementById("atlas-floating-ui"))]})}var lo=require("react/jsx-runtime"),ss=(0,as.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 co(e,t,o){let{isMenuOpen:n,setIsMenuOpen:r,close:a,open:i,menuPosition:s,setMenuPosition:l,toggle:m}=ss(),c=(0,is.useCallback)(g=>{o&&(g.preventDefault(),g.stopPropagation(),m(g.atlas))},[m,o]);return[(0,lo.jsx)(lo.Fragment,{children:o&&n&&(0,lo.jsx)(cn,{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:c},{open:i,close:a,toggle:m,isMenuOpen:n,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var ls=require("zustand");function Br(){let e=L();return(0,ls.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var J=require("react/jsx-runtime");function Or({theme:e,renderContextMenu:t,children:o}){let n=L(),r=P(),a=(0,be.useStore)(n,R=>R.polygon),i=(0,be.useStore)(n,R=>R.polygonState.currentTool),s=(0,be.useStore)(n,R=>R.mode),l=(0,be.useStore)(n,R=>R.changeMode),m=(0,be.useStore)(n,R=>R.polygonState.transitioning),{enabled:c,requestId:u}=(0,be.useStore)(n,R=>R.tool),d=(0,un.useMemo)(()=>Ve(a),[a]),g=Br(),[v,p]=co("editing-annotation",r?.id,t),b=g?.annotationPopup||o||(0,J.jsx)(cs,{}),y=g?.svgTheme||e,f=()=>{l("sketch")};if(!c||!r||!u||!a)return null;let h=d&&a.id&&!m&&(i==="pointer"||i==="hand"||!a.open)?(0,J.jsx)(cn,{annotation:a,target:d,children:b}):null,C="shape";return s==="explore"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(C,{id:`shape-${a.id}`,points:a.points,open:a.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{":hover":{backgroundColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderWidth:"4px",borderColor:"rgba(255, 255, 255, .4)"},...p}),(0,J.jsx)(C,{id:`shape-${a.id}`,points:a.points,open:a.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),h]}):(0,J.jsxs)(J.Fragment,{children:[t?(0,J.jsx)(C,{id:`shape-${a.id}`,points:a.points,open:a.open,target:{x:0,y:0,width:r.width,height:r.height},...p}):null,(0,J.jsx)(Xa,{image:r,theme:y}),h,v]})}function cs(){let e=L(),t=(0,be.useStore)(e,i=>i.changeMode),o=(0,be.useStore)(e,i=>i.mode),n=(0,be.useStore)(e,i=>i.completeRequest),r=(0,be.useStore)(e,i=>i.tool),a=()=>{(0,un.startTransition)(()=>{n()})};return r.enabled?(0,J.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[o!=="sketch"&&(0,J.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,J.jsx)("button",{className:"svg-tools-button",onClick:a,children:"Save"})]}):null}var We=require("react");var Nt=require("react");var us=require("@iiif/helpers");function El(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function uo(e,t){let{selector:o,source:n}=(0,us.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 Hr={makeChoice:()=>{}},mo={type:"unknown"},z=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Dr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var po=require("react");function Nl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function ms(e,t){return N(o=>{let n=[];if(!e)return n;let r=Object.keys(o.iiif.entities.AnnotationPage);for(let a of r)if(!t||t.indexOf(a)!==-1){let i=Nl(o,a);i&&i.views&&i.views[e]&&n.push(a)}return n},[e,t])}function Fr({canvas:e,manifest:t,all:o,canvases:n}){let r=[];if(t)for(let a of t.annotations)r.indexOf(a.id)===-1&&r.push(a.id);if(o){if(n&&n.length)for(let a of n)for(let i of a.annotations)r.indexOf(i.id)===-1&&r.push(i.id)}else if(e)for(let a of e.annotations)r.indexOf(a.id)===-1&&r.push(a.id);return r}function Vl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function fo(e,t={}){let o=w(),n=F(),r=P(),a=Ge(),i=(0,po.useMemo)(()=>Fr({all:t.all,manifest:n,canvas:r,canvases:a}),[t.all,r,a,n]),s=ms(e,t.all?void 0:i),l=(0,po.useCallback)(c=>{e&&o.setMetaValue([c,"annotationPageManager","views"],u=>u&&!u[e]?u:{...u||{},[e]:!1})},[e,o]),m=(0,po.useCallback)((c,u={})=>{if(!e)return;let d=o.getState(),g=[];if(u?.deselectOthers){let v=Object.keys(d.iiif.entities.AnnotationPage);for(let p of v){let b=Vl(d,p);b&&b.views&&b.views[e]&&g.push(p)}}for(let v of g)l(v);o.setMetaValue([c,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,l,o]);return{availablePageIds:i,enabledPageIds:s,setPageEnabled:m,setPageDisabled:l}}function $r(e,t){return N((o,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var ds=Q(require("mitt"),1),ps=require("react"),fs=require("zustand");var Ll=(0,fs.createStore)((e,t)=>({loaded:{},setLoaded:(o,n="done")=>{e(r=>({loaded:{...r.loaded,[o]:n}}))}})),zl=(0,ds.default)();zl.on("loaded",e=>{Ll.getState().setLoaded(e.imageServiceId)});function go(){let e=It(),t=ka();return[(0,ps.useCallback)((n,{height:r,width:a})=>n&&e(n,{height:r,width:a},!0),[e]),t]}var dt=require("react");function Me(e={}){let t=Yt(),o=P(e.canvasId?{id:e.canvasId}:void 0);return N((n,r)=>{if(!o)return[];if(t&&e.enableSingleAnnotation)return[t];let a=r.get(o.items),i=[];for(let s of a)i.push(...r.get(s.items));return i},[o])}var gs=require("@iiif/helpers/painting-annotations");function Wr(e,t=[]){let o=w(),n=(0,dt.useMemo)(()=>(0,gs.createPaintingAnnotationsHelper)(o),[]),r=Me({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,i]=(0,dt.useState)(e?.defaultChoices||[]),s=(0,dt.useMemo)(()=>n.getPaintables(r,a),[o,r,a,...t]),m={makeChoice:(0,dt.useCallback)((c,{deselectOthers:u=!0,deselect:d=!1}={})=>{s.choice&&i(g=>{if(d){let p=g.filter(b=>b!==c);if(p.length===0){let b=s.items[0].resource.id;return b?[b]:[]}return p}if(u)return[c];let v=[...g];if(v.length===0&&s.items.length){let p=s.items[0].resource.id;p&&v.push(p)}return g.indexOf(c)!==-1?g:[...g,c]})},[s.choice])};return[s,m]}var ql=["model/gltf-binary"];function Ur(e,t){let o=t.items[0],n=o.resource;return n.format?ql.indexOf(n.format)===-1?z(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:o.annotationId,annotation:o.annotation}:z("Unknown format")}function mn(e,t){let o=t.items,n=o[0];if(o.length===0||!n)return z("No audio");if(!e.duration)return z("No duration on canvas");if(o.length>1)return z("Only one audio source supported");let r=n.resource;return r?("format"in r||(r.format="audio/mpeg"),{type:"media",media:{annotationId:n.annotationId,annotation:n.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}):z("Unknown audio")}var _r=require("@iiif/helpers/annotation-targets"),hs=require("@iiif/parser/image-3");function ho(e,t,o){let n=[],r=[];for(let a of t.items){let i=a.resource&&a.resource.type==="SpecificResource"?a.resource.source:a.resource;if(!i.id)return z("No resource Identifier");let s;if(i.service){let b=(0,hs.getImageServices)(i);b[0]&&(s=o(b[0],e))}let l={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[m,c]=uo(e,a.target),u=e.id?.split("?")[0]||"";if(!(c.id===e.id||decodeURIComponent(c.id||"")===(e.id||"")||c.id===u||decodeURIComponent(c.id||"")===u))continue;let d=a.resource.width&&a.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:a.resource.width,height:a.resource.height}}:void 0,g=a.resource.type==="SpecificResource"?(0,_r.expandTarget)(a.resource):null;if(a.selector){let b=(0,_r.expandTarget)({type:"SpecificResource",source:a.resource,selector:a.selector});b&&(g=b)}let v=g&&g.selector&&(g.selector.type==="BoxSelector"||g.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:g.selector.spatial.x,y:g.selector.spatial.y,width:g.selector.spatial.width,height:g.selector.spatial.height}}:void 0;s&&!s.id&&(s.id=s["@id"]);let p={id:i.id,type:"Image",annotationId:a.annotationId,annotation:a.annotation,width:Number(m||v?i.width:e.width),height:Number(m||v?i.height:e.height),service:s,sizes:s&&s.sizes?s.sizes:i.width&&i.height?[{width:i.width,height:i.height}]:[],target:m&&m.type!=="PointSelector"?m:l,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:a.resource.annotations||[]};n.push(p)}return{type:"images",image:n[0],images:n,choice:t.choice}}function ys(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=>ys(r,t,n))}return t}function yo(e,t){let o=[];return t.items.forEach(n=>{if(n.resource){let[r]=uo(e,n.target);o.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:ys(n.resource),target:r})}}),{type:"textual-content",items:o}}var dn=require("@iiif/helpers"),Bl=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function vo(e,t,o){let n=t.items.filter(g=>g.type==="video"),r=n[0],a=!1;if(e.duration||(a=!0),n.length>1||!r)return z("Only one video source supported");let i=n[0]?.resource,s=!!(i.service||[]).find(g=>(g.profile||"").includes("youtube.com"));if(!s&&a)return z("Video does not have duration");if(!i)return z("Unknown video");if((!i.format||i.format==="text/html")&&!s)return z("Video does not have format");let l=[],m=o.get(e.annotations||[]);for(let g of m){let v=o.get(g.items||[]);for(let p of v)if((p.motivation?Array.isArray(p.motivation||"")?p.motivation:[p.motivation]:[]).includes("supplementing")){let y=o.get(p.body||[]);for(let f of y){let h=f;if(h.type==="Choice")for(let C of h.items){let R=o.get(C);R.format==="text/vtt"&&l.push({id:R.id,type:"Text",format:"text/vtt",label:R.label,language:R.language})}else h.format==="text/vtt"&&l.push({id:h.id,type:"Text",format:"text/vtt",label:h.label,language:h.language})}}}let c={annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:i.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},u=(0,dn.expandTarget)(r.target);u.selector&&u.selector.type==="TemporalBoxSelector"&&(c.target=u.selector);let{selector:d}=(0,dn.parseSelector)(r.selector);if(d===null){let g=c.target.temporal.startTime,p=(c.target.temporal.endTime||e.duration)-g;c.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:p}}}else d.type==="TemporalSelector"&&(c.selector=d);if(s){c.type="VideoYouTube";let g=i.id.match(Bl);if(!g[1])return z("Video is not known youtube video");c.youTubeId=g[1]}return{type:"media",media:c,annotations:{pages:[]},captions:l}}var vs=require("@iiif/helpers");function Yr(e,t,o,n){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},a={type:"complex-choice",items:[]},i=n.get(e.annotations);function s(c){c.choice&&(c.choice.type==="complex-choice"?a.items.push(...c.choice.items):a.items.push(c.choice))}for(let c of t.items){if(c.type==="image"){let u=ho(e,{choice:null,allChoices:null,types:["image"],items:[c]},o);if(u.type==="images"){s(u),r.items.push(u.image);let d={id:u.image.annotationId,type:"enter",resourceType:"image",time:u.image.target?.temporal?.startTime||0};r.keyframes.push(d);let g={id:u.image.annotationId,type:"exit",resourceType:"image",time:u.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}if(c.type==="textualbody"){let u=yo(e,{choice:null,allChoices:null,types:["textualbody"],items:[c]});if(u.type==="textual-content"){s(u);let d=u.items[0];r.items.push(d);let g=d.target,v={id:d.annotationId,type:"enter",resourceType:"text",time:g.temporal?.startTime||0};r.keyframes.push(v);let p={id:d.annotationId,type:"exit",resourceType:"text",time:g.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(c.type==="video"){let u=vo(e,{choice:null,allChoices:null,types:["video"],items:[c]},n);if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let v={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}if(c.type==="audio"||c.type==="sound"){let u=mn(e,{choice:null,allChoices:null,types:["audio"],items:[c]});if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let v={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}}for(let c of i)for(let u of c.items){let d=n.get(u),g=(0,vs.expandTarget)(d.target,{typeMap:n.getState?.().iiif.mapping});if(g.selector?.temporal){let v={id:d.id,type:"enter",resourceType:"highlight",time:g.selector.temporal.startTime||0};r.keyframes.push(v);let p={id:d.id,type:"exit",resourceType:"highlight",time:g.selector.temporal.endTime||e.duration||0};r.keyframes.push(p)}r.highlights.push({annotation:d,target:g})}r.keyframes.sort((c,u)=>c.time-u.time);let l=[],m=[];for(let c of r.keyframes){if(c.resourceType==="image"||c.resourceType==="text"||c.resourceType==="highlight"){m.push(c);continue}if(c.type==="enter"){l.length===0&&(c.isPrime=!0),l.push(c),m.push(c);continue}if(c.type==="exit"&&(m.push(c),l=l.filter(u=>u.id!==c.id),l.length!==0)){let u=l[0],d={id:u.id,type:"change",isPrime:!0,resourceType:u.resourceType,time:c.time};m.push(d)}}return r.keyframes=m,a.items.length&&(r.choice=a),r}var pn={},Kr={get(e){return e},setMetaValue([e,t,o],n){let r=Kr.getResourceMeta(e,t),a=r?r[o]:void 0,i=typeof n=="function"?n(a):n;pn[e]={...pn[e]||{},[t]:{...(pn[e]||{})[t]||{},[o]:i}}},getResourceMeta:(e,t)=>{let o=pn[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 So({canvas:e,paintables:t,supports:o,loadImageService:n,vault:r=Kr}){if(!e)return mo;if(t.types.length===0)return o.indexOf("empty")!==-1?Dr(e.width,e.height):mo;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return o.indexOf("complex-timeline")===-1?z("Complex timeline not supported"):Yr(e,t,n,r);let a=t.types[0];return a==="image"?o.indexOf("images")===-1?z("Image not supported"):ho(e,t,n):a==="Model"||a==="model"?o.indexOf("3d-model")===-1?z("3D not supported"):Ur(e,t):a==="textualbody"?o.indexOf("textual-content")===-1?z("Textual content not supported"):yo(e,t):a==="sound"||a==="audio"?o.indexOf("media")===-1?z("Media not supported"):mn(e,t):a==="video"?o.indexOf("media")===-1?z("Media not supported"):vo(e,t,r):mo}function jr(e){let t=F(),o=P(),n=w(),r=no(),a=e?.emitter||r,[i,s]=go(),{enabledPageIds:l}=fo(e?.annotationPageManagerId||t?.id||o?.id,{all:!1}),m=$r(l,"AnnotationPage"),c=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[u,d]=Wr(e,[s]);(0,Nt.useEffect)(()=>{let v=p=>{d.makeChoice(p.choiceId,{deselectOthers:p.deselectOthers,deselect:p.deselect})};return a.on("make-choice",v),()=>{a.off("make-choice",v)}},[]);let g=(0,Nt.useMemo)(()=>So({canvas:o,paintables:u,supports:c,loadImageService:i,vault:n}),[o,u,n,d.makeChoice]);return(0,Nt.useEffect)(()=>{let v=u.allChoices,p={canvasId:o?.id,manifestId:t?.id};v&&a.emit("choice-change",{choice:v,partOf:p})},[o?.id,u.allChoices]),(0,Nt.useMemo)(()=>g.type==="unknown"?[g,Hr]:[{...g,annotations:{pages:m}},d],[g,m])}var Ss=require("@iiif/helpers");var Gr=require("react/jsx-runtime");function Qr({strategies:e,registerActions:t,defaultChoices:o,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:a,renderViewerControls:i,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:m,throwOnUnknown:c,children:u}){let d=P(),g=w(),v=(0,We.useMemo)(()=>(0,Ss.createStylesHelper)(g),[g]),[p,b]=jr({strategies:e||["images"],defaultChoices:o?.map(({id:C})=>C)}),y="choice"in p?p.choice:void 0;if((0,We.useEffect)(()=>{t&&t(b)},[p.annotations]),(0,We.useEffect)(()=>{n&&n(y)},[y]),(0,We.useEffect)(()=>{if(o)for(let C of o)typeof C.opacity<"u"&&v.applyStyles({id:C.id},"atlas",{opacity:C.opacity})},[o]),p.type==="unknown"&&c)throw new Error(p.reason||"Unknown strategy");let f=(0,We.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:r||[],renderViewerControls:i,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:m||[]}),[r,a,i,s,l,m]),h=(0,We.useMemo)(()=>({strategy:p,actions:b,choices:"choice"in p?p.choice:[]}),[p,d]);return(0,Gr.jsx)(Xt.Provider,{value:f,children:(0,Gr.jsx)(qe.Provider,{value:h,children:u})})}var xo=require("react"),Zr=require("zustand");var Vt=require("react");var Xr=(0,Vt.createContext)(()=>{});function xs(e){let t=P(),o=(0,Vt.useContext)(Xr);(0,Vt.useEffect)(()=>t&&t.id?(o(t.id,e),()=>o(t.id,-1)):()=>{},[t,e])}var bs=require("react/jsx-runtime");function Jr({x:e=0,y:t=0,keepCanvasScale:o=!0,renderContextMenu:n,children:r}){let{strategy:a}=O(),i=P(),s=L(),l=Kt(i,["deep-zoom"]),m=(0,Zr.useStore)(s,p=>p.setCanvasRelativePosition),c=(0,Zr.useStore)(s,p=>p.clearCanvasRelativePosition),[u,d]=co(`context-menu/${i?.id}`,i?.id,n),g=(0,xo.useMemo)(()=>o?1:Math.max(1,...a.type==="images"?a.images.map(p=>(p.width||0)/p.target?.spatial.width):[]),[o,a]);(0,xo.useEffect)(()=>{if(i)return m(i.id,{x:e,y:t,width:i.width,height:i.height}),()=>{c(i.id)}},[e,t,i,c,m]),(0,xo.useEffect)(()=>{i&&s.getState().reset()},[s,i]),xs(g);let v=a.type==="images"?a.images.length:0;return i?(0,bs.jsxs)("world-object",{height:i.height,width:i.width,x:e,y:t,...d,...l,children:[u,r]},`${i.id}/${a.type}/${v}`):null}var ne=require("react/jsx-runtime");function at({x:e,y:t,onChoiceChange:o,registerActions:n,defaultChoices:r,isStatic:a,renderViewerControls:i,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:m,viewControlsDeps:c,mediaControlsDeps:u,strategies:d,throwOnUnknown:g,backgroundStyle:v,alwaysShowBackground:p,keepCanvasScale:b=!1,enableSizes:y=!1,enableYouTube:f=!0,onClickPaintingAnnotation:h,components:C={},children:R,annotationPopup:A,svgTheme:T,renderContextMenu:I,renderAnnotationContextMenu:q}){return(0,ne.jsxs)(Qr,{throwOnUnknown:g,onChoiceChange:o,registerActions:n,strategies:d,defaultChoices:r,mediaControlsDeps:u,renderMediaControls:s,renderViewerControls:i,renderComplexTimelineControls:l,complexTimelineControlsDeps:m,viewControlsDeps:c,children:[(0,ne.jsxs)(Jr,{keepCanvasScale:b,x:e,y:t,renderContextMenu:I,children:[(0,ne.jsx)(kr,{alwaysShowBackground:p,backgroundStyle:v}),(0,ne.jsx)(wr,{}),(0,ne.jsx)(Er,{}),(0,ne.jsx)(Mr,{isStatic:a,enableSizes:y,onClickPaintingAnnotation:h}),(0,ne.jsx)(hr,{}),(0,ne.jsx)(ur,{}),(0,ne.jsx)(Sr,{as:C.Audio}),(0,ne.jsx)(Vr,{as:C.Video}),f?(0,ne.jsx)(Lr,{}):null,(0,ne.jsx)(Or,{theme:T,renderContextMenu:q,children:A}),R]}),(0,ne.jsx)(mr,{})]})}var ei=require("react/jsx-runtime");function Cs(e){let t=P();return!t||!t.placeholderCanvas?null:(0,ei.jsx)(me,{canvas:t.placeholderCanvas.id,children:(0,ei.jsx)(at,{renderViewerControls:e.renderViewerControls})})}var Ps=require("@atlas-viewer/atlas"),re=Q(require("react"),1),As=require("react-error-boundary"),ti=require("zustand");var fn=require("react");function Rs(e,t=2e3){let{currentSequenceIndex:o,sequence:n,items:r}=Ze(),a=P(),i=(0,fn.useMemo)(()=>{let l=n[o]||[];return l.length===0&&a?[{id:a.id,type:"Canvas"}]:l.map(m=>r[m])},[n,o,a,r]),s=L();(0,fn.useEffect)(()=>{let m=setInterval(()=>{if(e&&t!==-1){let c={x:e.x,y:e.y,width:e.width,height:e.height},u=s.getState().canvasRelativePositions,d={};for(let g of i){let v=u[g.id];if(v){let p=v.x,b=v.y,y=v.width,f=v.height,h={x:Math.max(p,c.x),y:Math.max(b,c.y),width:Math.min(p+y,c.x+c.width)-Math.max(p,c.x),height:Math.min(b+f,c.y+c.height)-Math.max(b,c.y)};h.width<=0||h.height<=0||(d[g.id]={x:h.x-v.x,y:h.y-v.y,width:h.width,height:h.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(m)}},[i,e,s,t])}var Lt=require("react/jsx-runtime");function gn({width:e,style:t,height:o,error:n,resetErrorBoundary:r}){return(0,Lt.jsxs)("div",{style:{width:e,height:o,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Lt.jsx)("h3",{children:"Error occurred"}),(0,Lt.jsx)("p",{children:n.message}),(0,Lt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var H=require("react/jsx-runtime");function hn(e){let t=L();return(0,H.jsx)(Rt,{name:e.name,existing:t,children:(0,H.jsx)(Ol,{...e})})}function Ol({name:e,children:t,errorFallback:o,outerContainerProps:n={},worldScale:r,updateViewportTimeout:a,...i}){let s=L(),l=(0,ti.useStore)(s,k=>k.mode),m=(0,ti.useStore)(s,k=>k.setAtlasRuntime),[c,u]=(0,re.useState)(),d=io(),g=ao(),v=o||gn,[p,b]=(0,re.useState)({}),y=Object.entries(p),[f,h]=(0,re.useState)({}),C=Object.entries(f),[R,A]=(0,re.useState)({}),{worldScale:T,runtimeOptions:I}=(0,re.useMemo)(()=>{if(Object.values(R).length===0)return{worldScale:1,runtimeOptions:i.runtimeOptions||{maxOverZoom:1}};let V=Math.max(...Object.values(R));return{worldScale:V,runtimeOptions:{maxOverZoom:V||1,...i.runtimeOptions||{}}}},[R,i.runtimeOptions]);Rs(c?.runtime,a);let q=(0,re.useCallback)((k,V)=>{A(B=>{if(V===-1){let{[k]:qt,...Ye}=B;return Ye}return{...B,[k]:V}})},[]),ue=(0,re.useCallback)((k,V,B)=>{b(({[k]:qt,...Ye})=>V?{...Ye,[k]:{element:V,props:B}}:Ye)},[]),E=(0,re.useCallback)((k,V,B)=>{h(({[k]:qt,...Ye})=>V?{...Ye,[k]:{element:V,props:B}}:Ye)},[]),_=(0,re.useCallback)(k=>{u(k),m(k.runtime),i.onCreated&&i.onCreated(k)},[i.onCreated,m]);return(0,H.jsxs)(As.ErrorBoundary,{resetKeys:[],fallbackRender:k=>(0,H.jsx)(v,{...i,...k}),children:[(0,H.jsx)(Ps.AtlasAuto,{...i,mode:l,containerProps:{style:{position:"relative"},...i.containerProps||{}},htmlChildren:(0,H.jsx)(H.Fragment,{children:y.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),onCreated:_,runtimeOptions:I,children:(0,H.jsx)(Rt,{name:e,existing:s,children:(0,H.jsx)(xe.Provider,{value:c,children:(0,H.jsx)(Xr.Provider,{value:q,children:(0,H.jsx)(ar.Provider,{value:ue,children:(0,H.jsx)(sr.Provider,{value:E,children:(0,H.jsx)(so,{bridge:g,custom:d,children:(0,H.jsx)(gr,{children:t})})})})})})})}),(0,H.jsx)("div",{children:C.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),(0,H.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var ee=require("react/jsx-runtime"),Hl=(0,pt.forwardRef)(function(t,o){let n=F(),r=Ge(),a=Ze(),{ViewerControls:i,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,pt.useImperativeHandle)(o,()=>a,[a]),!n)return(0,ee.jsx)("div",{});let m=0,c=n.viewingDirection==="top-to-bottom",u=n.viewingDirection==="bottom-to-top",d=n.viewingDirection==="left-to-right",g=n.viewingDirection==="right-to-left",p=n.behavior.includes("continuous")?0:t.spacing||0,b=u||g,y=(0,pt.useMemo)(()=>b?[...r].reverse():r,[r,b]);return(0,ee.jsxs)(ee.Fragment,{children:[t.header,(0,ee.jsx)(U.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,children:y.map((f,h)=>{let C=0,R=0;return!c&&!u?(C=m,m+=f.width+p):(R=m,m+=f.height+p),(0,ee.jsx)(me,{canvas:f.id,children:(0,ee.jsx)(U.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:h===0&&i?()=>(0,ee.jsx)(i,{}):void 0,renderMediaControls:h===0&&s?()=>(0,ee.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:h===0&&l?()=>(0,ee.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:C,y:R,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},f.id)},f.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),U=(0,pt.forwardRef)(function({children:t,height:o,annotations:n,canvasProps:r,spacing:a,header:i,components:s,mode:l,reuseAtlas:m,renderPreset:c,runtimeOptions:u,annotationPopup:d,name:g,svgTheme:v,updateViewportTimeout:p,renderContextMenu:b,keepCanvasScale:y,renderAnnotationContextMenu:f,...h},C){let R=Qe();return(0,ee.jsx)(Rt,{name:g,children:(0,ee.jsx)(Ke,{vault:R,children:(0,ee.jsx)(_n,{...h,children:(0,ee.jsx)(Hl,{ref:C,height:o,components:s,spacing:a,canvasProps:r,annotations:n,header:i,mode:l,reuseAtlas:m,renderPreset:c,runtimeOptions:u,annotationPopup:d,svgTheme:v,updateViewportTimeout:p,renderContextMenu:b,keepCanvasScale:y,renderAnnotationContextMenu:f,children:t})})})})});U.RenderImage=De;U.RenderCanvas=at;U.RenderAnnotationPage=Le;U.RenderAnnotation=nt;U.Viewer=hn;U.CanvasBackground=en;U.Audio=Ho;U.Video=on;U.Model=$o;U.AudioHTML=lr;U.VideoHTML=Nr;U.ModelHTML=cr;U.PlaceholderCanvas=Cs;U.getAtlasStoreByName=Qn;var Ts=require("react");var fe=require("react"),ft=require("zustand");function oi(e){let[t,o]=(0,fe.useState)(0),n=L(),r=(0,ft.useStore)(n,R=>R.tool.enabled),a=(0,ft.useStore)(n,R=>R.tool.requestId),i=(0,ft.useStore)(n,R=>R.getRequestId),s=(0,ft.useStore)(n,R=>R.requestAnnotation),l=(0,ft.useStore)(n,R=>R.completeRequest),m=(0,ft.useStore)(n,R=>R.cancelRequest),c=(0,fe.useRef)(e?.onSuccess);c.current=e?.onSuccess;let[u,d]=(0,fe.useState)(!1),[g,v]=(0,fe.useState)(null),[p,b]=(0,fe.useState)(null),y=r&&a!==p,f=r&&a===p,h=(0,fe.useCallback)(async(R,A)=>{if(p){let T=c.current;d(!0);let I=await s(R,{...A,requestId:p});if(I)return T?.(I),o(ue=>ue+1),d(!1),v(I),I;let q={id:p,cancelled:!0,...Ut(R)};return T?.(q),v(q),o(ue=>ue+1),d(!1),q}return null},[s,p]),C=(0,fe.useCallback)(()=>{v(null),d(!1)},[]);return(0,fe.useEffect)(()=>{let R=i();return b(R.requestId),()=>{R.clear()}},[t]),{id:t,busy:y,isPending:u,isActive:f,requestId:p,requestAnnotation:h,cancelRequest:()=>p?m(p):void 0,completeRequest:()=>p?l(p):void 0,reset:C,data:g}}var Dl=[{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 ni(e){let{id:t,data:o,requestAnnotation:n,cancelRequest:r,isPending:a}=oi({onSuccess:i=>{e.updateShape(i.polygon)}});return(0,Ts.useEffect)(()=>(n({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var G=require("react"),ri=Q(require("mitt"),1),Is=require("react/jsx-runtime"),yn=(0,G.createContext)((0,ri.default)());yn.displayName="SelectorHelper";function Fl({children:e}){return(0,Is.jsx)(yn.Provider,{value:(0,G.useMemo)(()=>(0,ri.default)(),[]),children:e})}function $l(){return(0,G.useContext)(yn)}function ii(e){let t=ai(),[o,n]=(0,G.useState)(!1);(0,G.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,G.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,G.useCallback)(i=>{t.emit("click",{selectorId:e,event:i})},[e,t]),a=(0,G.useCallback)(i=>{t.emit("hover",{selectorId:e,event:i})},[e,t]);return{controller:t,onClick:r,onHover:a,isHighlighted:o}}function ai(){let e=(0,G.useContext)(yn);return(0,G.useMemo)(()=>({withSelector(t){return{on(o,n){let r=a=>{a&&a.selectorId===t&&n(a)};return e.on(o,r),()=>{e.off(o,r)}},emit(o,n){e.emit(o,{...n,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Wl(){let e=ai();return(0,G.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(o,n){return e.withSelector(t).on(o,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(t){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(t,o){return e.on(t,o)}}),[e])}var si=require("react/jsx-runtime");function Ul(e){let t=P(),o=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:a,isHighlighted:i}=ii(e.id),s=_t(),l=i?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(n){let m="shape",c=e.polygon,u=c.open;return c?(0,si.jsx)(m,{id:`shape-${r}`,points:c.points,open:u,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,si.jsx)(ni,{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 vn=require("react"),bo=require("react/jsx-runtime"),_l=(0,vn.forwardRef)(function({canvasId:t},o){let n=(0,ws.useCanvas)(),r=fo(t||n?.id),a=w();return(0,vn.useImperativeHandle)(o,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,bo.jsx)(bo.Fragment,{children:r.enabledPageIds.map(i=>(0,bo.jsx)(U.RenderAnnotationPage,{page:a.get(i)},i))})});var Ms=require("react");var ks=require("react");var W=require("react/jsx-runtime");function Co({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:a,classes:i={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:m="",separator:c,tableFooter:u,tableHeader:d}){let g=(0,ks.useMemo)(()=>{let p=(t||[]).reduce((y,f)=>[...y,...f.keys],[]),b={};for(let y of e){let f=y&&y.label?Object.values(y.label):[];for(let h of f)if(h&&h.length&&(p.indexOf(`metadata.${h[0]}`)!==-1||p.length===0)&&y){let C=`metadata.${h[0]}`;b[C]=b[C]?b[C]:[],b[C].push(y);break}}return b},[t,e]);return Object.keys(g).length===0&&n?(0,W.jsx)(W.Fragment,{children:a})||(0,W.jsx)("div",{className:i.empty,children:s}):t&&t.length?(0,W.jsxs)("table",{className:i.container,children:[d,(0,W.jsx)("tbody",{children:t.map((p,b)=>{let y=[];for(let f of p.keys)for(let h of g[f]||[])y.push((0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:h.value},b+"__"+f));return y.length===0?null:(0,W.jsxs)("tr",{className:i.row,children:[(0,W.jsx)("td",{className:i.label,style:o?{minWidth:o}:{},children:(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,separator:c,defaultText:m,children:p.label})}),(0,W.jsx)("td",{className:i.value,children:y})]},b)})}),u]}):(0,W.jsxs)("table",{className:i.container,children:[d,(0,W.jsx)("tbody",{children:e&&e.length?e.map((p,b)=>p?(0,W.jsxs)("tr",{className:i.row,children:[(0,W.jsx)("td",{className:i.label,style:o?{minWidth:o}:{},children:(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:p.label})}),(0,W.jsx)("td",{className:i.value,children:(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:p.value})})]},b):null):null}),u]})}var Es=require("react/jsx-runtime");function Yl(e){let t=F(),o=P(),n=Dt(),r=(0,Ms.useMemo)(()=>{let a=t?.metadata||[],i=o?.metadata||[],s=n?.metadata||[];return[...a,...i,...s]},[t,o,n]);return(0,Es.jsx)(Co,{metadata:r,...e})}var bn=require("react");var Sn=require("@iiif/parser/image-3"),Ns=require("react");function xn(e,t={},o=[]){return(0,Ns.useMemo)(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let r=(0,Sn.createImageServiceRequest)(e);return(0,Sn.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 Ro=require("react/jsx-runtime");function Kl(e){let t=typeof e.src=="string"?e.src:e.src.id,o=Zt(),[n,r]=(0,bn.useState)(!1),a;if(t){let s=o.loadServiceSync({id:t});s&&(a=s)}!a&&!n&&o.loadService({id:t}).then(()=>{r(!0)});let i=xn(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,bn.useEffect)(()=>()=>{r(!1)},[t]),i?(0,Ro.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):(0,Ro.jsx)(Vs,{...e,fetchImageService:!1})}function Vs(e){if(e.fetchImageService)return(0,Ro.jsx)(Kl,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=xn(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,Ro.jsx)("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}var Cn=require("react"),Ls=require("react-error-boundary");var Ue=require("react/jsx-runtime");function jl({src:e,errorFallback:t,interactive:o,skipSizes:n,children:r,renderViewerControls:a,viewControlsDeps:i,fluid:s,x:l,y:m,...c}){let[u,d]=(0,Cn.useState)(),g=t||gn,[v,p]=go(),b=(0,Cn.useMemo)(()=>{let f=p[e]?.status,h=v({id:e},{});return h?.height&&h.width&&f!=="loading"?{id:e,width:h.width,height:h.height,service:h,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}}}:null},[v,e,p]);if(!b||!b.height||!b.width)return null;let y=s?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:b.width/b.height;return(0,Ue.jsx)(Ls.ErrorBoundary,{resetKeys:[],fallbackRender:f=>(0,Ue.jsx)(g,{...c,...f}),children:(0,Ue.jsx)(hn,{...c,aspectRatio:y,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:f=>{d(f),c.onCreated&&c.onCreated(f)},children:(0,Ue.jsxs)(xe.Provider,{value:u,children:[(0,Ue.jsx)(De,{image:b,id:b.id,isStatic:!o,x:l,y:m},b.id),(0,Ue.jsx)(Gl,{viewerPreset:u,renderViewerControls:a,image:b,src:e,viewControlsDeps:i}),r]})})})}function Gl({viewerPreset:e,renderViewerControls:t,image:o,src:n,viewControlsDeps:r}){return j(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,xe.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[n,e,...r||[]]),null}var zs=require("react/jsx-runtime");function Ql(e){let t=F();return(0,zs.jsx)(Co,{metadata:t?.metadata||[],...e})}var Rn=require("react");var li=Q(require("react-lazy-load-image-component"),1);var qs=require("@iiif/helpers/i18n"),se=require("react/jsx-runtime"),{LazyLoadComponent:Xl}=li||li.default;function ci(e){let{size:t,visible:o,classes:n,canvasId:r,figure:a}=e,i=t?.width||128,s=t?.height||t?.width||128,l=(0,se.jsx)(Zl,{...e}),m=(0,se.jsx)(Xl,{threshold:300,style:{height:s,width:i},visibleByDefault:o,children:r?(0,se.jsx)(me,{canvas:r,children:l}):l});return a?(0,se.jsx)("figure",{className:n?.figure,children:m}):m}function Zl({fallback:e,size:t,classes:o,showLabel:n,alt:r,dereference:a=!1}){let i=P(),s=t?.width||128,l=t?.height||t?.width||128,m=r||(0,qs.getValue)(i?.label)||"",c=Ie({width:s,height:l,allowUnsafe:!0},a);return!c||c.type!=="fixed"?(0,se.jsx)(se.Fragment,{children:e}):(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("div",{className:o?.imageWrapper,children:(0,se.jsx)("img",{className:o?.img,src:c.id,alt:m})}),n?(0,se.jsx)(le,{as:"figcaption",className:o?.label,children:i?.label}):null]})}var zt=require("react/jsx-runtime");function Jl({scrollBehaviour:e,dereference:t,flat:o,size:n,classes:r={},showLabel:a,figure:i,fallback:s}){let l=(0,Rn.useRef)(null),{items:m,sequence:c,currentSequenceIndex:u,setSequenceIndex:d}=Ze(),g={row:r.selected?.row||r.row,item:r.selected?.item||r.item,figure:r.selected?.figure||r.figure,img:r.selected?.img||r.img,label:r.selected?.label||r.label,imageWrapper:r.selected?.imageWrapper||r.imageWrapper};(0,Rn.useLayoutEffect)(()=>{if(!l.current)return;let p=l.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[u]);let v=[];for(let p of c){let b=[],y=c[u]===p;for(let f of p){let h=m[f];b.push((0,zt.jsx)("div",{className:y?g.item:r.item,children:(0,zt.jsx)(ci,{classes:y?g:r,canvasId:h.id,size:n,dereference:t,showLabel:a,figure:i,placeholder:(0,zt.jsx)("div",{style:{height:128,width:128}}),fallback:s})},f))}if(o){v.push(b);continue}v.push((0,zt.jsx)("div",{onClick:f=>{d(c.indexOf(p))},"data-selected":y,className:y?g.row:r.row,children:b},p.join("-")))}return(0,zt.jsx)("div",{ref:l,className:r.container,children:v})}var Po=require("zustand");function ui(){let e=L(),t=(0,Po.useStore)(e,a=>a.completeRequest),o=(0,Po.useStore)(e,a=>a.polygonState.currentTool),n=(0,Po.useStore)(e,a=>a.polygonState.selectedStamp),r=(0,Po.useStore)(e,a=>a.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:n,switchTool:r}}var K=require("react/jsx-runtime"),ec={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function tc({showShapes:e=!0,enabled:t=ec,classNames:o={},icons:n={}}){let{currentTool:r,switchTool:a,selectedStamp:i}=ui();return(0,K.jsxs)(K.Fragment,{children:[r,(0,K.jsx)("button",{className:o.button,onClick:a.pointer,"data-active":r==="pointer",children:n.PointerIcon||"Pointer"}),(0,K.jsx)("button",{className:o.button,onClick:a.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:a.box,"data-active":r==="box",children:n.BoxIcon||"Box"}),t.pen&&(0,K.jsx)("button",{className:o.button,onClick:a.pen,"data-active":r==="pen",children:n.PenIcon||"Pen"}),t.draw&&(0,K.jsx)("button",{className:o.button,onClick:a.draw,"data-active":r==="pencil",children:n.DrawIcon||"Draw"}),t.line&&(0,K.jsx)("button",{className:o.button,onClick:a.line,"data-active":r==="line",children:n.LineIcon||"Line"}),t.lineBox&&(0,K.jsx)("button",{className:o.button,onClick:a.lineBox,"data-active":r==="lineBox",children:n.LineBoxIcon||"LineBox"}),t.triangle&&(0,K.jsx)("button",{className:o.button,onClick:a.triangle,"data-active":r==="stamp"&&i?.id==="triangle",children:n.TriangleIcon||"Triangle"}),t.hexagon&&(0,K.jsx)("button",{className:o.button,onClick:a.hexagon,"data-active":r==="stamp"&&i?.id==="hexagon",children:n.HexagonIcon||"Hexagon"}),t.circle&&(0,K.jsx)("button",{className:o.button,"data-active":r==="stamp"&&i?.id==="circle",onClick:a.circle,children:n.CircleIcon||"Circle"})]}):null,t.delete&&(0,K.jsx)("button",{className:o.button,onClick:a.remove,children:n.DeleteForeverIcon||"Delete"})]})}var Bs=require("react/jsx-runtime");function oc({annotation:e,children:t}){return(0,Bs.jsx)(te,{value:{annotation:e},children:t})}var Os=require("react/jsx-runtime");function nc({annotationPage:e,children:t}){return(0,Os.jsx)(te,{value:{annotationPage:e},children:t})}var Hs=require("react/jsx-runtime");function rc({collection:e,children:t}){return(0,Hs.jsx)(te,{value:{collection:e},children:t})}function ic(e,t={}){return Me(t)}var Ds=require("@atlas-viewer/atlas"),_e=require("react");function ac({canvasId:e}={}){let t=(0,Ds.useCanvas)(),o=Ge(),n=(0,_e.useMemo)(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[r,a]=(0,_e.useState)({}),i=no();(0,_e.useEffect)(()=>{let m=c=>{let u=c.partOf.canvasId;u&&a(d=>({...d,[u]:c.choice}))};return i.on("choice-change",m),()=>{i.off("choice-change",m)}},[]);let s=(0,_e.useMemo)(()=>{let m=[];for(let c of n){let u=r[c];u&&m.push({canvasId:c,choice:u})}return m},[n,r]),l=(0,_e.useMemo)(()=>({makeChoice:(m,c)=>{i.emit("make-choice",{choiceId:m,...c})}}),[i]);return{choices:s,actions:l}}function sc(e,t=!1){}function lc(e){let o=X().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return N(r=>{let a=o?r.iiif.entities.Manifest[o]:void 0,i=a?.items||[];if(typeof e>"u")return i;let s=[];for(let l of a?.items||[])n.indexOf(l.id)!==-1&&s.push(l);return s},[n.join("/")])}var Fs=require("react");function cc(e,t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.collection,i=N(s=>a?s.iiif.entities.Collection[a]:void 0,[a]);return(0,Fs.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}var Pn=require("react"),mi=require("zustand");function uc(){let e=L(),t=(0,mi.useStore)(e,n=>n.completeRequest),o=(0,mi.useStore)(e,n=>n.cancelRequest);return(0,Pn.useMemo)(()=>({saveAnnotation:()=>{(0,Pn.startTransition)(()=>{t()})},cancelRequest:o}),[t,o])}var $s=require("react"),An=require("zustand");function mc({requestId:e}={}){let t=L(),o=(0,An.useStore)(t,s=>s.metadata),n=(0,An.useStore)(t,s=>s.tool.requestId),r=e||n,a=(0,An.useStore)(t,s=>s.setMetadata),i=(0,$s.useCallback)(s=>a(s,r||void 0),[a,r]);return[r?o[r]||{}:{},i]}var Ws=require("zustand");function dc(e){let t=L(),o=(0,Ws.useStore)(t,n=>n.tool.requestId);et("polygons.start-transition",n=>{e.requestId&&o!==e.requestId||e?.onStart?.(n.transitionIntent)},[o,e.requestId]),et("polygons.end-transition",n=>{e.requestId&&o!==e.requestId||e?.onEnd?.(n.transitionIntent,n.response)},[o,e.requestId]),et("polygons.transition",n=>{e.requestId&&o!==e.requestId||e?.onTransition?.(n.transitionIntent)},[o,e.requestId])}var Tn=require("react"),Us=require("@iiif/helpers/events");function pc(e,t,o,n,r=[]){let a=w(),i=(0,Tn.useMemo)(()=>(0,Us.createEventsHelper)(a),[a]);(0,Tn.useEffect)(()=>{let s=e;return s?(i.addEventListener(s,t,o,n),()=>{i.removeEventListener(s,t,o)}):()=>{}},[i,e,t,...r])}function fc(e,t){let{id:o,isLoaded:n,error:r,resource:a,requestId:i,cached:s}=Ht(e,t);return{id:o,isLoaded:n,error:r,manifest:a,requestId:i,cached:s}}var di=require("@iiif/parser/image-3");var Re=require("react");function pi({cacheKey:e}={}){let t=P(),o=Me(),n=w(),r=It(),a=Ma(),[i,s]=(0,Re.useState)(void 0),[l,m]=(0,Re.useState)(!1),[c,u]=(0,Re.useState)("idle"),[d,g]=(0,Re.useState)(void 0),v=t?t.id:"undefined",p=(0,Re.useMemo)(()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),C=(0,di.getImageServices)(f)[0];return C&&r(C,{width:C.width||t.width,height:C.height||t.height},!0)||void 0}}catch(y){console.error(y)}},[v,e,t]),b=c==="success"&&i?i:p;return(0,Re.useEffect)(()=>{(async()=>{try{if(t&&o.length){let y=o[0],f=n.get(y.body[0]),C=(0,di.getImageServices)(f)[0];if(!C)return;m(!0),u("loading");try{let R=await a(C,{width:C.width||t.width,height:C.height||t.height})||void 0;s(R),u("success"),m(!1)}catch(R){u("error"),g(R)}}}catch(y){u("error"),g(y)}})()},[v,e]),(0,Re.useMemo)(()=>({data:b,isFetching:l,status:c,error:d}),[b,l,c,d])}function gc(){let e=pi();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 In=require("react");var _s=require("@iiif/helpers");function hc({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=w(),o=P(),n=Me(),r=(0,In.useMemo)(()=>(0,_s.createPaintingAnnotationsHelper)(t),[t]),a=(0,In.useMemo)(()=>r.getPaintables(n),[r,n]);return(0,In.useMemo)(()=>So({canvas:o,loadImageService:i=>i,paintables:a,supports:e}),[o,a,e])}var Ys=require("@iiif/helpers/styles"),Ks=require("react");function yc(){let e=w();return(0,Ks.useMemo)(()=>(0,Ys.createStylesHelper)(e),[e])}function vc(e,t){let{x:o,y:n,width:r,height:a}=e,{x:i,y:s}=t,{width:l,height:m}=t;return o+r>i&&o<i+l&&n+a>s&&n<s+m}var js=Q(require("tiny-invariant"),1);function Sc(e,t){let o=e.boundingBox||Ve(e.polygon);if(e.polygon&&!bt(e.polygon.points)){let n=e.target||Ct(e.polygon,t);return(0,js.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,oo.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 ja({media:e,mediaControlsDeps:t,children:o}){let[{element:n,currentTime:r,progress:a},i,s]=rt({duration:e.duration});return j("overlay","video-element",wl,{element:n,media:e,playPause:s.playPause}),null}var rn=require("react/jsx-runtime");function Lr(){let{strategy:e}=O(),{renderMediaControls:t,mediaControlsDeps:o}=oe();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,rn.jsxs)(ja,{media:e.media,mediaControlsDeps:o,children:[(0,rn.jsx)(lt,{}),t?t(e):null]})}var un=require("react"),be=require("zustand");var sn=require("@atlas-viewer/atlas"),$e=require("react");var Ga=require("polygon-editor"),Z=require("react");var an=require("zustand");function zr(e){let t=L(),o=(0,an.useStore)(t,a=>a.polygons),n=(0,an.useStore)(t,a=>a.polygonState),r=(0,an.useStore)(t,a=>a.polygon);return et("atlas.polygon-render",({state:a,slowState:i,dt:s})=>{e(a,i,s)}),{currentShape:r,state:n,helper:o}}var M=require("react/jsx-runtime"),ke=(0,Ga.createSvgHelpers)(),Qa={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function qr(e){let{image:t}=e,o={...Qa,...e.theme||{}},n=(0,Z.useRef)(),r=(0,Z.useRef)(),a=(0,Z.useRef)(),i=(0,Z.useRef)(),s=(0,Z.useRef)(),l=(0,Z.useRef)(),m=(0,Z.useRef)(),c=(0,Z.useRef)(),u=(0,Z.useRef)(),d=(0,Z.useRef)(),[g,y]=(0,Z.useState)(null),[p,b]=(0,Z.useState)(!1),{helper:v,state:f,currentShape:h}=zr((E,_)=>{if(E.closestLineIndex,ke.updateTransitionBoundingBox(a.current,E,_),ke.updateBoundingBoxPolygon(n.current,E,_),ke.updateBoundingBoxPolygon(r.current,E,_),ke.updateTransitionShape(m.current,E,_),ke.updateClosestLinePointTransform(s.current,E,_),ke.updateSelectBox(i.current,E,_),ke.updatePointLine(c.current,E,_),ke.updateDrawPreview(l.current,E,_,3),ke.updateLineBox(u.current,E),y(E.transitionDirection),b(E.transitionRotate),E.closestLineIndex!==-1&&d.current){let k=E.polygon,V=k.points[E.closestLineIndex],B=k.points[(E.closestLineIndex+1)%k.points.length];V&&B&&d.current.setAttribute("points",`${V[0]},${V[1]} ${B[0]},${B[1]}`)}});(0,Z.useEffect)(()=>{let E=()=>{v.modifiers.reset()};return document.addEventListener("mouseleave",E),()=>{document.removeEventListener("mouseleave",E)}},[]);let R=(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke,className:"marker"}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.controlFill})]}),(0,M.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.activeLineStroke,className:"marker"})}),(0,M.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,M.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:o.lineStroke}),(0,M.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:o.activeLineStroke})]}),(0,M.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,M.jsx)("rect",{width:"10",height:"10",fill:o.lineStroke}),(0,M.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:o.controlFill})]})]}),C=h?h.open?"polyline":"polygon":null,P=!f.showBoundingBox&&f.closestPoint!==null&&f.actionIntentType==="select-point",T=f.actionIntentType==="add-open-point",I=f.transitionIntentType==="split-line",q=f.transitioning&&f.selectedStamp&&f.transitionIntentType==="stamp-shape",ue=h&&C?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(C,{fill:(!f.transitioning||f.transitionIntentType==="select-multiple-points")&&!h.open?o.shapeFill:"none",strokeWidth:q||f.showBoundingBox&&f.boxMode||f.transitioning&&f.transitionIntentType==="split-line"||f.transitioning&&f.transitionIntentType==="move-point"?0:2,stroke:o.shapeStroke,points:h.points.map(E=>E.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerMid:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",markerEnd:f.showBoundingBox?void 0:f.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}),f.currentTool==="lineBox"&&f.actionIntentType==="close-line-box"?(0,M.jsx)("polygon",{fill:o.shapeFill,ref:u,stroke:o.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,f.transitionIntentType==="draw-shape"&&f.transitioning?(0,M.jsx)("polyline",{ref:l,fill:"none",stroke:o.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(f.transitioning&&f.transitionIntentType==="move-point")&&!(f.transitioning&&f.transitionIntentType==="stamp-shape")&&!f.showBoundingBox&&f.selectedPoints&&f.selectedPoints.length?(0,M.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:h.points.filter((E,_)=>f.selectedPoints?.includes(_)).map(E=>E.join(",")).join(" "),opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,P&&!f.transitioning&&f.closestPoint!==null&&h.points[f.closestPoint]?(0,M.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:o.activeLineStroke,points:`${h.points[f.closestPoint][0]},${h.points[f.closestPoint][1]}`,opacity:f.transitioning&&f.transitionIntentType==="move-shape"?0:1}):null,!f.transitioning&&(f.actionIntentType==="add-open-point"||f.actionIntentType==="close-shape"||f.actionIntentType==="close-shape-line")?(0,M.jsx)("polyline",{stroke:o.activeLineStroke,ref:c,strokeWidth:f.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?(0,M.jsx)("g",{children:(0,M.jsx)("polyline",{ref:d,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:o.activeLineStroke,strokeWidth:3})}):null,f.hasClosestLine&&!f.showBoundingBox&&!f.transitioning&&f.currentTool!=="box"&&f.transitionIntentType==="split-line"?(0,M.jsx)("g",{ref:s,children:(0,M.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,f.transitioning?(0,M.jsx)(C,{ref:m,fill:h.open?"none":o.shapeFill,stroke:f.transitionIntentType==="stamp-shape"?o.activeLineStroke:o.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(h.open,2)}):null,f.transitioning&&f.transitionIntentType==="select-multiple-points"?(0,M.jsx)("rect",{ref:i,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,f.showBoundingBox&&!q?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)("polygon",{ref:n,strokeWidth:2,stroke:o.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),(0,M.jsx)("polygon",{ref:r,strokeWidth:2,stroke:o.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:v.state.slowState.currentTool,setCurrentTool:v.tools.setTool,helper:v,currentShape:h,state:f,isAddingPoint:T,isSplitting:I,isStamping:q,isHoveringPoint:P,transitionDirection:g,transitionRotate:p,defs:R,editor:ue}}var Fe=require("react/jsx-runtime");function Xa(e){let t=(0,sn.useAtlas)(),{image:o}=e,{helper:n,defs:r,editor:a,state:i,transitionDirection:s,isSplitting:l,transitionRotate:m,isHoveringPoint:c,isAddingPoint:u}=qr({image:e.image,theme:e.theme}),d=(0,$e.useCallback)(p=>{p.button!==2&&n.pointer([[~~p.atlas.x,~~p.atlas.y]])},[n]),g=(0,$e.useCallback)(p=>{p.button!==2&&n.pointerDown()},[n]),y=(0,$e.useCallback)(p=>{p.button!==2&&n.pointerUp()},[n]);return(0,$e.useEffect)(()=>{let p=b=>{n.key.up(b.key)};return document.addEventListener("keyup",p),()=>{document.removeEventListener("keyup",p)}},[n]),(0,$e.useEffect)(()=>{let p=b=>{b.target&&["INPUT","TEXTAREA"].includes(b.target.tagName)||b.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||n.key.down(b.key)};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[n]),(0,$e.useEffect)(()=>{let p=[];return s&&p.push(`atlas-cursor-${s}`),i.actionIntentType==="cut-line"&&i.modifiers?.Shift&&p.push("atlas-cursor-cut"),(c||i.transitionIntentType==="move-shape"||i.transitionIntentType==="move-point")&&p.push("atlas-cursor-move"),u&&p.push("atlas-cursor-crosshair"),l&&p.push("atlas-cursor-copy"),m&&p.push("atlas-cursor-rotate"),i.transitionIntentType==="draw-shape"&&p.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...p),()=>{t?.canvas&&t.canvas.classList.remove(...p)}},[t?.canvas,u,c,l,i.modifiers?.Shift,i.actionIntentType,i.transitionIntentType,s,m]),(0,Fe.jsx)("world-object",{height:o.height,width:o.width,onMouseMove:d,onMouseDown:g,onMouseUp:y,onMouseLeave:n.blur,children:(0,Fe.jsx)(sn.HTMLPortal,{relative:!0,interactive:!1,children:(0,Fe.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,Fe.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,Fe.jsx)("title",{children:"Annotation Editor"}),(0,Fe.jsx)("defs",{children:r}),a]})})})})}var is=require("react"),as=require("zustand");var ns=require("@atlas-viewer/atlas"),ae=require("@floating-ui/react"),rs=require("react-dom");var Y=Q(require("react"),1);var Za=Q(require("react"),1),ln=require("react"),Ja=Q(require("mitt"),1),ts=require("react/jsx-runtime"),es=(0,Ja.default)(),mt=(0,ln.createContext)({emitter:es});mt.displayName="Events";function no(){return Za.default.useContext(mt).emitter}function kl({emitter:e,children:t}){return(0,ts.jsx)(mt.Provider,{value:(0,ln.useMemo)(()=>({emitter:e}),[e]),children:t})}var ce=require("react/jsx-runtime"),ro=Y.default.createContext({});function io(){let e=(0,Y.useContext)(ro),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 os(e){let t=Object.keys(e),o=e.children;for(let n of t){if(n==="children")continue;let{value:r,Provider:a}=e[n];o=(0,ce.jsx)(a,{value:r,children:o})}return o}function Ml(e){let t=(0,Y.useContext)(ro),o=(0,Y.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,ce.jsx)(ro.Provider,{value:o,children:e.children})}function ao(){return{VaultContext:(0,Y.useContext)(Ee),ResourceContext:(0,Y.useContext)(Bt),SimpleViewerReactContext:(0,Y.useContext)(xt),VisibleCanvasReactContext:(0,Y.useContext)(je),AuthRContext:(0,Y.useContext)(Xe),SearchReactContext:(0,Y.useContext)(St),ReactEventContext:(0,Y.useContext)(mt),ContextBridgeReactContext:(0,Y.useContext)(ro),StrategyReactContext:(0,Y.useContext)(qe),AtlasStoreReactContext:(0,Y.useContext)(tt)}}function so(e){return(0,ce.jsx)(Ke,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(je.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(xt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(mt.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(tt.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,ce.jsx)(Xe.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(St.Provider,{value:e.bridge.SearchReactContext,children:(0,ce.jsx)(ro.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,ce.jsx)(qe.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,ce.jsx)(os,{...e.custom,children:e.children}):e.children})})})})})})})})})}var Et=require("react/jsx-runtime");function cn({annotation:e,target:t,children:o,dismissable:n,isOpen:r,onOpenChange:a,placement:i}){let s=ao(),l=io(),{refs:m,floatingStyles:c,context:u}=(0,ae.useFloating)({open:r,onOpenChange:a,nodeId:e.id,placement:i||"bottom",middleware:[(0,ae.offset)(10),(0,ae.shift)(),(0,ae.flip)({mainAxis:!0})],whileElementsMounted:ae.autoUpdate}),d=(0,ae.useDismiss)(u),{getReferenceProps:g,getFloatingProps:y}=(0,ae.useInteractions)([n?d:null].filter(p=>p!==null));return(0,Et.jsxs)(ns.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Et.jsx)("div",{ref:m.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,rs.createPortal)((0,Et.jsx)(so,{bridge:s,custom:l,children:(0,Et.jsx)("div",{ref:m.setFloating,style:c,...y(),children:o})}),document.getElementById("atlas-floating-ui"))]})}var lo=require("react/jsx-runtime"),ss=(0,as.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 co(e,t,o){let{isMenuOpen:n,setIsMenuOpen:r,close:a,open:i,menuPosition:s,setMenuPosition:l,toggle:m}=ss(),c=(0,is.useCallback)(g=>{o&&(g.preventDefault(),g.stopPropagation(),m(g.atlas))},[m,o]);return[(0,lo.jsx)(lo.Fragment,{children:o&&n&&(0,lo.jsx)(cn,{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:c},{open:i,close:a,toggle:m,isMenuOpen:n,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var ls=require("zustand");function Br(){let e=L();return(0,ls.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var J=require("react/jsx-runtime");function Or({theme:e,renderContextMenu:t,children:o}){let n=L(),r=A(),a=(0,be.useStore)(n,C=>C.polygon),i=(0,be.useStore)(n,C=>C.polygonState.currentTool),s=(0,be.useStore)(n,C=>C.mode),l=(0,be.useStore)(n,C=>C.changeMode),m=(0,be.useStore)(n,C=>C.polygonState.transitioning),{enabled:c,requestId:u}=(0,be.useStore)(n,C=>C.tool),d=(0,un.useMemo)(()=>Ve(a),[a]),g=Br(),[y,p]=co("editing-annotation",r?.id,t),b=g?.annotationPopup||o||(0,J.jsx)(cs,{}),v=g?.svgTheme||e,f=()=>{l("sketch")};if(!c||!r||!u||!a)return null;let h=d&&a.id&&!m&&(i==="pointer"||i==="hand"||!a.open)?(0,J.jsx)(cn,{annotation:a,target:d,children:b}):null,R="shape";return s==="explore"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(R,{id:`shape-${a.id}`,points:a.points,open:a.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{":hover":{backgroundColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderWidth:"4px",borderColor:"rgba(255, 255, 255, .4)"},...p}),(0,J.jsx)(R,{id:`shape-${a.id}`,points:a.points,open:a.open,onClick:f,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),h]}):(0,J.jsxs)(J.Fragment,{children:[t?(0,J.jsx)(R,{id:`shape-${a.id}`,points:a.points,open:a.open,target:{x:0,y:0,width:r.width,height:r.height},...p}):null,(0,J.jsx)(Xa,{image:r,theme:v}),h,y]})}function cs(){let e=L(),t=(0,be.useStore)(e,i=>i.changeMode),o=(0,be.useStore)(e,i=>i.mode),n=(0,be.useStore)(e,i=>i.completeRequest),r=(0,be.useStore)(e,i=>i.tool),a=()=>{(0,un.startTransition)(()=>{n()})};return r.enabled?(0,J.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[o!=="sketch"&&(0,J.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,J.jsx)("button",{className:"svg-tools-button",onClick:a,children:"Save"})]}):null}var We=require("react");var Nt=require("react");var us=require("@iiif/helpers");function El(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function uo(e,t){let{selector:o,source:n}=(0,us.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 Hr={makeChoice:()=>{}},mo={type:"unknown"},z=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Dr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var po=require("react");function Nl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function ms(e,t){return N(o=>{let n=[];if(!e)return n;let r=Object.keys(o.iiif.entities.AnnotationPage);for(let a of r)if(!t||t.indexOf(a)!==-1){let i=Nl(o,a);i&&i.views&&i.views[e]&&n.push(a)}return n},[e,t])}function Fr({canvas:e,manifest:t,all:o,canvases:n}){let r=[];if(t)for(let a of t.annotations)r.indexOf(a.id)===-1&&r.push(a.id);if(o){if(n&&n.length)for(let a of n)for(let i of a.annotations)r.indexOf(i.id)===-1&&r.push(i.id)}else if(e)for(let a of e.annotations)r.indexOf(a.id)===-1&&r.push(a.id);return r}function Vl(e,t){let o=e?.iiif?.meta[t];return o?o.annotationPageManager:null}function fo(e,t={}){let o=w(),n=F(),r=A(),a=Ge(),i=(0,po.useMemo)(()=>Fr({all:t.all,manifest:n,canvas:r,canvases:a}),[t.all,r,a,n]),s=ms(e,t.all?void 0:i),l=(0,po.useCallback)(c=>{e&&o.setMetaValue([c,"annotationPageManager","views"],u=>u&&!u[e]?u:{...u||{},[e]:!1})},[e,o]),m=(0,po.useCallback)((c,u={})=>{if(!e)return;let d=o.getState(),g=[];if(u?.deselectOthers){let y=Object.keys(d.iiif.entities.AnnotationPage);for(let p of y){let b=Vl(d,p);b&&b.views&&b.views[e]&&g.push(p)}}for(let y of g)l(y);o.setMetaValue([c,"annotationPageManager","views"],y=>y&&y[e]?y:{...y||{},[e]:!0})},[e,l,o]);return{availablePageIds:i,enabledPageIds:s,setPageEnabled:m,setPageDisabled:l}}function $r(e,t){return N((o,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var ds=Q(require("mitt"),1),ps=require("react"),fs=require("zustand");var Ll=(0,fs.createStore)((e,t)=>({loaded:{},setLoaded:(o,n="done")=>{e(r=>({loaded:{...r.loaded,[o]:n}}))}})),zl=(0,ds.default)();zl.on("loaded",e=>{Ll.getState().setLoaded(e.imageServiceId)});function go(){let e=It(),t=ka();return[(0,ps.useCallback)((n,{height:r,width:a})=>n&&e(n,{height:r,width:a},!0),[e]),t]}var dt=require("react");function Me(e={}){let t=Yt(),o=A(e.canvasId?{id:e.canvasId}:void 0);return N((n,r)=>{if(!o)return[];if(t&&e.enableSingleAnnotation)return[t];let a=r.get(o.items),i=[];for(let s of a)i.push(...r.get(s.items));return i},[o])}var gs=require("@iiif/helpers/painting-annotations");function Wr(e,t=[]){let o=w(),n=(0,dt.useMemo)(()=>(0,gs.createPaintingAnnotationsHelper)(o),[]),r=Me({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,i]=(0,dt.useState)(e?.defaultChoices||[]),s=(0,dt.useMemo)(()=>n.getPaintables(r,a),[o,r,a,...t]),m={makeChoice:(0,dt.useCallback)((c,{deselectOthers:u=!0,deselect:d=!1}={})=>{s.choice&&i(g=>{if(d){let p=g.filter(b=>b!==c);if(p.length===0){let b=s.items[0].resource.id;return b?[b]:[]}return p}if(u)return[c];let y=[...g];if(y.length===0&&s.items.length){let p=s.items[0].resource.id;p&&y.push(p)}return g.indexOf(c)!==-1?g:[...g,c]})},[s.choice])};return[s,m]}var ql=["model/gltf-binary"];function Ur(e,t){let o=t.items[0],n=o.resource;return n.format?ql.indexOf(n.format)===-1?z(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:o.annotationId,annotation:o.annotation}:z("Unknown format")}function mn(e,t){let o=t.items,n=o[0];if(o.length===0||!n)return z("No audio");if(!e.duration)return z("No duration on canvas");if(o.length>1)return z("Only one audio source supported");let r=n.resource;return r?("format"in r||(r.format="audio/mpeg"),{type:"media",media:{annotationId:n.annotationId,annotation:n.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}):z("Unknown audio")}var _r=require("@iiif/helpers/annotation-targets"),hs=require("@iiif/parser/image-3");function ho(e,t,o){let n=[],r=[];for(let a of t.items){let i=a.resource&&a.resource.type==="SpecificResource"?a.resource.source:a.resource;if(!i.id)return z("No resource Identifier");let s;if(i.service){let b=(0,hs.getImageServices)(i);b[0]&&(s=o(b[0],e))}let l={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[m,c]=uo(e,a.target),u=e.id?.split("?")[0]||"";if(!(c.id===e.id||decodeURIComponent(c.id||"")===(e.id||"")||c.id===u||decodeURIComponent(c.id||"")===u))continue;let d=a.resource.width&&a.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:a.resource.width,height:a.resource.height}}:void 0,g=a.resource.type==="SpecificResource"?(0,_r.expandTarget)(a.resource):null;if(a.selector){let b=(0,_r.expandTarget)({type:"SpecificResource",source:a.resource,selector:a.selector});b&&(g=b)}let y=g&&g.selector&&(g.selector.type==="BoxSelector"||g.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:g.selector.spatial.x,y:g.selector.spatial.y,width:g.selector.spatial.width,height:g.selector.spatial.height}}:void 0;s&&!s.id&&(s.id=s["@id"]);let p={id:i.id,type:"Image",annotationId:a.annotationId,annotation:a.annotation,width:Number(m||y?i.width:e.width),height:Number(m||y?i.height:e.height),service:s,sizes:s&&s.sizes?s.sizes:i.width&&i.height?[{width:i.width,height:i.height}]:[],target:m&&m.type!=="PointSelector"?m:l,selector:y||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:a.resource.annotations||[]};n.push(p)}return{type:"images",image:n[0],images:n,choice:t.choice}}function ys(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=>ys(r,t,n))}return t}function yo(e,t){let o=[];return t.items.forEach(n=>{if(n.resource){let[r]=uo(e,n.target);o.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:ys(n.resource),target:r})}}),{type:"textual-content",items:o}}var dn=require("@iiif/helpers"),Bl=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function vo(e,t,o){let n=t.items.filter(g=>g.type==="video"),r=n[0],a=!1;if(e.duration||(a=!0),n.length>1||!r)return z("Only one video source supported");let i=n[0]?.resource,s=!!(i.service||[]).find(g=>(g.profile||"").includes("youtube.com"));if(!s&&a)return z("Video does not have duration");if(!i)return z("Unknown video");if((!i.format||i.format==="text/html")&&!s)return z("Video does not have format");let l=[],m=o.get(e.annotations||[]);for(let g of m){let y=o.get(g.items||[]);for(let p of y)if((p.motivation?Array.isArray(p.motivation||"")?p.motivation:[p.motivation]:[]).includes("supplementing")){let v=o.get(p.body||[]);for(let f of v){let h=f;if(h.type==="Choice")for(let R of h.items){let C=o.get(R);C.format==="text/vtt"&&l.push({id:C.id,type:"Text",format:"text/vtt",label:C.label,language:C.language})}else h.format==="text/vtt"&&l.push({id:h.id,type:"Text",format:"text/vtt",label:h.label,language:h.language})}}}let c={annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:i.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},u=(0,dn.expandTarget)(r.target);u.selector&&u.selector.type==="TemporalBoxSelector"&&(c.target=u.selector);let{selector:d}=(0,dn.parseSelector)(r.selector);if(d===null){let g=c.target.temporal.startTime,p=(c.target.temporal.endTime||e.duration)-g;c.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:p}}}else d.type==="TemporalSelector"&&(c.selector=d);if(s){c.type="VideoYouTube";let g=i.id.match(Bl);if(!g[1])return z("Video is not known youtube video");c.youTubeId=g[1]}return{type:"media",media:c,annotations:{pages:[]},captions:l}}var vs=require("@iiif/helpers");function Yr(e,t,o,n){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},a={type:"complex-choice",items:[]},i=n.get(e.annotations);function s(c){c.choice&&(c.choice.type==="complex-choice"?a.items.push(...c.choice.items):a.items.push(c.choice))}for(let c of t.items){if(c.type==="image"){let u=ho(e,{choice:null,allChoices:null,types:["image"],items:[c]},o);if(u.type==="images"){s(u),r.items.push(u.image);let d={id:u.image.annotationId,type:"enter",resourceType:"image",time:u.image.target?.temporal?.startTime||0};r.keyframes.push(d);let g={id:u.image.annotationId,type:"exit",resourceType:"image",time:u.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}if(c.type==="textualbody"){let u=yo(e,{choice:null,allChoices:null,types:["textualbody"],items:[c]});if(u.type==="textual-content"){s(u);let d=u.items[0];r.items.push(d);let g=d.target,y={id:d.annotationId,type:"enter",resourceType:"text",time:g.temporal?.startTime||0};r.keyframes.push(y);let p={id:d.annotationId,type:"exit",resourceType:"text",time:g.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(c.type==="video"){let u=vo(e,{choice:null,allChoices:null,types:["video"],items:[c]},n);if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let y={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(y)}}if(c.type==="audio"||c.type==="sound"){let u=mn(e,{choice:null,allChoices:null,types:["audio"],items:[c]});if(u.type==="media"){s(u);let d=u.media;r.items.push(d);let g={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(g);let y={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(y)}}}for(let c of i)for(let u of c.items){let d=n.get(u),g=(0,vs.expandTarget)(d.target,{typeMap:n.getState?.().iiif.mapping});if(g.selector?.temporal){let y={id:d.id,type:"enter",resourceType:"highlight",time:g.selector.temporal.startTime||0};r.keyframes.push(y);let p={id:d.id,type:"exit",resourceType:"highlight",time:g.selector.temporal.endTime||e.duration||0};r.keyframes.push(p)}r.highlights.push({annotation:d,target:g})}r.keyframes.sort((c,u)=>c.time-u.time);let l=[],m=[];for(let c of r.keyframes){if(c.resourceType==="image"||c.resourceType==="text"||c.resourceType==="highlight"){m.push(c);continue}if(c.type==="enter"){l.length===0&&(c.isPrime=!0),l.push(c),m.push(c);continue}if(c.type==="exit"&&(m.push(c),l=l.filter(u=>u.id!==c.id),l.length!==0)){let u=l[0],d={id:u.id,type:"change",isPrime:!0,resourceType:u.resourceType,time:c.time};m.push(d)}}return r.keyframes=m,a.items.length&&(r.choice=a),r}var pn={},Kr={get(e){return e},setMetaValue([e,t,o],n){let r=Kr.getResourceMeta(e,t),a=r?r[o]:void 0,i=typeof n=="function"?n(a):n;pn[e]={...pn[e]||{},[t]:{...(pn[e]||{})[t]||{},[o]:i}}},getResourceMeta:(e,t)=>{let o=pn[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 So({canvas:e,paintables:t,supports:o,loadImageService:n,vault:r=Kr}){if(!e)return mo;if(t.types.length===0)return o.indexOf("empty")!==-1?Dr(e.width,e.height):mo;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return o.indexOf("complex-timeline")===-1?z("Complex timeline not supported"):Yr(e,t,n,r);let a=t.types[0];return a==="image"?o.indexOf("images")===-1?z("Image not supported"):ho(e,t,n):a==="Model"||a==="model"?o.indexOf("3d-model")===-1?z("3D not supported"):Ur(e,t):a==="textualbody"?o.indexOf("textual-content")===-1?z("Textual content not supported"):yo(e,t):a==="sound"||a==="audio"?o.indexOf("media")===-1?z("Media not supported"):mn(e,t):a==="video"?o.indexOf("media")===-1?z("Media not supported"):vo(e,t,r):mo}function jr(e){let t=F(),o=A(),n=w(),r=no(),a=e?.emitter||r,[i,s]=go(),{enabledPageIds:l}=fo(e?.annotationPageManagerId||t?.id||o?.id,{all:!1}),m=$r(l,"AnnotationPage"),c=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[u,d]=Wr(e,[s]);(0,Nt.useEffect)(()=>{let y=p=>{d.makeChoice(p.choiceId,{deselectOthers:p.deselectOthers,deselect:p.deselect})};return a.on("make-choice",y),()=>{a.off("make-choice",y)}},[]);let g=(0,Nt.useMemo)(()=>So({canvas:o,paintables:u,supports:c,loadImageService:i,vault:n}),[o,u,n,d.makeChoice]);return(0,Nt.useEffect)(()=>{let y=u.allChoices,p={canvasId:o?.id,manifestId:t?.id};y&&a.emit("choice-change",{choice:y,partOf:p})},[o?.id,u.allChoices]),(0,Nt.useMemo)(()=>g.type==="unknown"?[g,Hr]:[{...g,annotations:{pages:m}},d],[g,m])}var Ss=require("@iiif/helpers");var Gr=require("react/jsx-runtime");function Qr({strategies:e,registerActions:t,defaultChoices:o,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:a,renderViewerControls:i,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:m,throwOnUnknown:c,children:u}){let d=A(),g=w(),y=(0,We.useMemo)(()=>(0,Ss.createStylesHelper)(g),[g]),[p,b]=jr({strategies:e||["images"],defaultChoices:o?.map(({id:R})=>R)}),v="choice"in p?p.choice:void 0;if((0,We.useEffect)(()=>{t&&t(b)},[p.annotations]),(0,We.useEffect)(()=>{n&&n(v)},[v]),(0,We.useEffect)(()=>{if(o)for(let R of o)typeof R.opacity<"u"&&y.applyStyles({id:R.id},"atlas",{opacity:R.opacity})},[o]),p.type==="unknown"&&c)throw new Error(p.reason||"Unknown strategy");let f=(0,We.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:r||[],renderViewerControls:i,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:m||[]}),[r,a,i,s,l,m]),h=(0,We.useMemo)(()=>({strategy:p,actions:b,choices:"choice"in p?p.choice:[]}),[p,d]);return(0,Gr.jsx)(Xt.Provider,{value:f,children:(0,Gr.jsx)(qe.Provider,{value:h,children:u})})}var xo=require("react"),Zr=require("zustand");var Vt=require("react");var Xr=(0,Vt.createContext)(()=>{});function xs(e){let t=A(),o=(0,Vt.useContext)(Xr);(0,Vt.useEffect)(()=>t&&t.id?(o(t.id,e),()=>o(t.id,-1)):()=>{},[t,e])}var bs=require("react/jsx-runtime");function Jr({x:e=0,y:t=0,keepCanvasScale:o=!0,renderContextMenu:n,children:r}){let{strategy:a}=O(),i=A(),s=L(),l=Kt(i,["deep-zoom"]),m=(0,Zr.useStore)(s,p=>p.setCanvasRelativePosition),c=(0,Zr.useStore)(s,p=>p.clearCanvasRelativePosition),[u,d]=co(`context-menu/${i?.id}`,i?.id,n),g=(0,xo.useMemo)(()=>o?1:Math.max(1,...a.type==="images"?a.images.map(p=>(p.width||0)/p.target?.spatial.width):[]),[o,a]);(0,xo.useEffect)(()=>{if(i)return m(i.id,{x:e,y:t,width:i.width,height:i.height}),()=>{c(i.id)}},[e,t,i,c,m]),(0,xo.useEffect)(()=>{i&&s.getState().reset()},[s,i]),xs(g);let y=a.type==="images"?a.images.length:0;return i?(0,bs.jsxs)("world-object",{height:i.height,width:i.width,x:e,y:t,...d,...l,children:[u,r]},`${i.id}/${a.type}/${y}`):null}var ne=require("react/jsx-runtime");function at({x:e,y:t,onChoiceChange:o,registerActions:n,defaultChoices:r,isStatic:a,renderViewerControls:i,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:m,viewControlsDeps:c,mediaControlsDeps:u,strategies:d,throwOnUnknown:g,backgroundStyle:y,alwaysShowBackground:p,keepCanvasScale:b=!1,enableSizes:v=!1,enableYouTube:f=!0,onClickPaintingAnnotation:h,components:R={},children:C,annotationPopup:P,svgTheme:T,renderContextMenu:I,renderAnnotationContextMenu:q}){return(0,ne.jsxs)(Qr,{throwOnUnknown:g,onChoiceChange:o,registerActions:n,strategies:d,defaultChoices:r,mediaControlsDeps:u,renderMediaControls:s,renderViewerControls:i,renderComplexTimelineControls:l,complexTimelineControlsDeps:m,viewControlsDeps:c,children:[(0,ne.jsxs)(Jr,{keepCanvasScale:b,x:e,y:t,renderContextMenu:I,children:[(0,ne.jsx)(kr,{alwaysShowBackground:p,backgroundStyle:y}),(0,ne.jsx)(wr,{}),(0,ne.jsx)(Er,{}),(0,ne.jsx)(Mr,{isStatic:a,enableSizes:v,onClickPaintingAnnotation:h}),(0,ne.jsx)(hr,{}),(0,ne.jsx)(ur,{}),(0,ne.jsx)(Sr,{as:R.Audio}),(0,ne.jsx)(Vr,{as:R.Video}),f?(0,ne.jsx)(Lr,{}):null,(0,ne.jsx)(Or,{theme:T,renderContextMenu:q,children:P}),C]}),(0,ne.jsx)(mr,{})]})}var ei=require("react/jsx-runtime");function Cs(e){let t=A();return!t||!t.placeholderCanvas?null:(0,ei.jsx)(me,{canvas:t.placeholderCanvas.id,children:(0,ei.jsx)(at,{renderViewerControls:e.renderViewerControls})})}var Ps=require("@atlas-viewer/atlas"),re=Q(require("react"),1),As=require("react-error-boundary"),ti=require("zustand");var fn=require("react");function Rs(e,t=2e3){let{currentSequenceIndex:o,sequence:n,items:r}=Ze(),a=A(),i=(0,fn.useMemo)(()=>{let l=n[o]||[];return l.length===0&&a?[{id:a.id,type:"Canvas"}]:l.map(m=>r[m])},[n,o,a,r]),s=L();(0,fn.useEffect)(()=>{let m=setInterval(()=>{if(e&&t!==-1){let c={x:e.x,y:e.y,width:e.width,height:e.height},u=s.getState().canvasRelativePositions,d={};for(let g of i){let y=u[g.id];if(y){let p=y.x,b=y.y,v=y.width,f=y.height,h={x:Math.max(p,c.x),y:Math.max(b,c.y),width:Math.min(p+v,c.x+c.width)-Math.max(p,c.x),height:Math.min(b+f,c.y+c.height)-Math.max(b,c.y)};h.width<=0||h.height<=0||(d[g.id]={x:h.x-y.x,y:h.y-y.y,width:h.width,height:h.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(m)}},[i,e,s,t])}var Lt=require("react/jsx-runtime");function gn({width:e,style:t,height:o,error:n,resetErrorBoundary:r}){return(0,Lt.jsxs)("div",{style:{width:e,height:o,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Lt.jsx)("h3",{children:"Error occurred"}),(0,Lt.jsx)("p",{children:n.message}),(0,Lt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var H=require("react/jsx-runtime");function hn(e){let t=L();return(0,H.jsx)(Rt,{name:e.name,existing:t,children:(0,H.jsx)(Ol,{...e})})}function Ol({name:e,children:t,errorFallback:o,outerContainerProps:n={},worldScale:r,updateViewportTimeout:a,...i}){let s=L(),l=(0,ti.useStore)(s,k=>k.mode),m=(0,ti.useStore)(s,k=>k.setAtlasRuntime),[c,u]=(0,re.useState)(),d=io(),g=ao(),y=o||gn,[p,b]=(0,re.useState)({}),v=Object.entries(p),[f,h]=(0,re.useState)({}),R=Object.entries(f),[C,P]=(0,re.useState)({}),{worldScale:T,runtimeOptions:I}=(0,re.useMemo)(()=>{if(Object.values(C).length===0)return{worldScale:1,runtimeOptions:i.runtimeOptions||{maxOverZoom:1}};let V=Math.max(...Object.values(C));return{worldScale:V,runtimeOptions:{maxOverZoom:V||1,...i.runtimeOptions||{}}}},[C,i.runtimeOptions]);Rs(c?.runtime,a);let q=(0,re.useCallback)((k,V)=>{P(B=>{if(V===-1){let{[k]:qt,...Ye}=B;return Ye}return{...B,[k]:V}})},[]),ue=(0,re.useCallback)((k,V,B)=>{b(({[k]:qt,...Ye})=>V?{...Ye,[k]:{element:V,props:B}}:Ye)},[]),E=(0,re.useCallback)((k,V,B)=>{h(({[k]:qt,...Ye})=>V?{...Ye,[k]:{element:V,props:B}}:Ye)},[]),_=(0,re.useCallback)(k=>{u(k),m(k.runtime),i.onCreated&&i.onCreated(k)},[i.onCreated,m]);return(0,H.jsxs)(As.ErrorBoundary,{resetKeys:[],fallbackRender:k=>(0,H.jsx)(y,{...i,...k}),children:[(0,H.jsx)(Ps.AtlasAuto,{...i,mode:l,containerProps:{style:{position:"relative"},...i.containerProps||{}},htmlChildren:(0,H.jsx)(H.Fragment,{children:v.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),onCreated:_,runtimeOptions:I,children:(0,H.jsx)(Rt,{name:e,existing:s,children:(0,H.jsx)(xe.Provider,{value:c,children:(0,H.jsx)(Xr.Provider,{value:q,children:(0,H.jsx)(ar.Provider,{value:ue,children:(0,H.jsx)(sr.Provider,{value:E,children:(0,H.jsx)(so,{bridge:g,custom:d,children:(0,H.jsx)(gr,{children:t})})})})})})})}),(0,H.jsx)("div",{children:R.map(([k,{element:V,props:B}])=>(0,H.jsx)(re.default.Fragment,{children:(0,H.jsx)(V,{...B||{}})},k))}),(0,H.jsx)("div",{id:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var ee=require("react/jsx-runtime"),Hl=(0,pt.forwardRef)(function(t,o){let n=F(),r=Ge(),a=Ze(),{ViewerControls:i,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,pt.useImperativeHandle)(o,()=>a,[a]),!n)return(0,ee.jsx)("div",{});let m=0,c=n.viewingDirection==="top-to-bottom",u=n.viewingDirection==="bottom-to-top",d=n.viewingDirection==="left-to-right",g=n.viewingDirection==="right-to-left",p=n.behavior.includes("continuous")?0:t.spacing||0,b=u||g,v=(0,pt.useMemo)(()=>b?[...r].reverse():r,[r,b]);return(0,ee.jsxs)(ee.Fragment,{children:[t.header,(0,ee.jsx)(U.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,children:v.map((f,h)=>{let R=0,C=0;return!c&&!u?(R=m,m+=f.width+p):(C=m,m+=f.height+p),(0,ee.jsx)(me,{canvas:f.id,children:(0,ee.jsx)(U.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:h===0&&i?()=>(0,ee.jsx)(i,{}):void 0,renderMediaControls:h===0&&s?()=>(0,ee.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:h===0&&l?()=>(0,ee.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:R,y:C,svgTheme:t.svgTheme,...t.canvasProps||{},children:t.annotations},f.id)},f.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),U=(0,pt.forwardRef)(function({children:t,height:o,annotations:n,canvasProps:r,spacing:a,header:i,components:s,mode:l,reuseAtlas:m,renderPreset:c,runtimeOptions:u,annotationPopup:d,name:g,svgTheme:y,updateViewportTimeout:p,renderContextMenu:b,keepCanvasScale:v,renderAnnotationContextMenu:f,...h},R){let C=Qe();return(0,ee.jsx)(Rt,{name:g,children:(0,ee.jsx)(Ke,{vault:C,children:(0,ee.jsx)(_n,{...h,children:(0,ee.jsx)(Hl,{ref:R,height:o,components:s,spacing:a,canvasProps:r,annotations:n,header:i,mode:l,reuseAtlas:m,renderPreset:c,runtimeOptions:u,annotationPopup:d,svgTheme:y,updateViewportTimeout:p,renderContextMenu:b,keepCanvasScale:v,renderAnnotationContextMenu:f,children:t})})})})});U.RenderImage=De;U.RenderCanvas=at;U.RenderAnnotationPage=Le;U.RenderAnnotation=nt;U.Viewer=hn;U.CanvasBackground=en;U.Audio=Ho;U.Video=on;U.Model=$o;U.AudioHTML=lr;U.VideoHTML=Nr;U.ModelHTML=cr;U.PlaceholderCanvas=Cs;U.getAtlasStoreByName=Qn;var Ts=require("react");var fe=require("react"),ft=require("zustand");function oi(e){let[t,o]=(0,fe.useState)(0),n=L(),r=(0,ft.useStore)(n,C=>C.tool.enabled),a=(0,ft.useStore)(n,C=>C.tool.requestId),i=(0,ft.useStore)(n,C=>C.getRequestId),s=(0,ft.useStore)(n,C=>C.requestAnnotation),l=(0,ft.useStore)(n,C=>C.completeRequest),m=(0,ft.useStore)(n,C=>C.cancelRequest),c=(0,fe.useRef)(e?.onSuccess);c.current=e?.onSuccess;let[u,d]=(0,fe.useState)(!1),[g,y]=(0,fe.useState)(null),[p,b]=(0,fe.useState)(null),v=r&&a!==p,f=r&&a===p,h=(0,fe.useCallback)(async(C,P)=>{if(p){let T=c.current;d(!0);let I=await s(C,{...P,requestId:p});if(I)return T?.(I),o(ue=>ue+1),d(!1),y(I),I;let q={id:p,cancelled:!0,...Ut(C)};return T?.(q),y(q),o(ue=>ue+1),d(!1),q}return null},[s,p]),R=(0,fe.useCallback)(()=>{y(null),d(!1)},[]);return(0,fe.useEffect)(()=>{let C=i();return b(C.requestId),()=>{C.clear()}},[t]),{id:t,busy:v,isPending:u,isActive:f,requestId:p,requestAnnotation:h,cancelRequest:()=>p?m(p):void 0,completeRequest:()=>p?l(p):void 0,reset:R,data:g}}var Dl=[{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 ni(e){let{id:t,data:o,requestAnnotation:n,cancelRequest:r,isPending:a}=oi({onSuccess:i=>{e.updateShape(i.polygon)}});return(0,Ts.useEffect)(()=>(n({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var G=require("react"),ri=Q(require("mitt"),1),Is=require("react/jsx-runtime"),yn=(0,G.createContext)((0,ri.default)());yn.displayName="SelectorHelper";function Fl({children:e}){return(0,Is.jsx)(yn.Provider,{value:(0,G.useMemo)(()=>(0,ri.default)(),[]),children:e})}function $l(){return(0,G.useContext)(yn)}function ii(e){let t=ai(),[o,n]=(0,G.useState)(!1);(0,G.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,G.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,G.useCallback)(i=>{t.emit("click",{selectorId:e,event:i})},[e,t]),a=(0,G.useCallback)(i=>{t.emit("hover",{selectorId:e,event:i})},[e,t]);return{controller:t,onClick:r,onHover:a,isHighlighted:o}}function ai(){let e=(0,G.useContext)(yn);return(0,G.useMemo)(()=>({withSelector(t){return{on(o,n){let r=a=>{a&&a.selectorId===t&&n(a)};return e.on(o,r),()=>{e.off(o,r)}},emit(o,n){e.emit(o,{...n,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Wl(){let e=ai();return(0,G.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(o,n){return e.withSelector(t).on(o,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,n){return e.emit("event-listener",{selectorId:t,name:o,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:n})}},getImagePreview(t){return new Promise((o,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:n})})},on(t,o){return e.on(t,o)}}),[e])}var si=require("react/jsx-runtime");function Ul(e){let t=A(),o=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:a,isHighlighted:i}=ii(e.id),s=_t(),l=i?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(n){let m="shape",c=e.polygon,u=c.open;return c?(0,si.jsx)(m,{id:`shape-${r}`,points:c.points,open:u,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,si.jsx)(ni,{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 vn=require("react"),bo=require("react/jsx-runtime"),_l=(0,vn.forwardRef)(function({canvasId:t},o){let n=(0,ws.useCanvas)(),r=fo(t||n?.id),a=w();return(0,vn.useImperativeHandle)(o,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,bo.jsx)(bo.Fragment,{children:r.enabledPageIds.map(i=>(0,bo.jsx)(U.RenderAnnotationPage,{page:a.get(i)},i))})});var Ms=require("react");var ks=require("react");var W=require("react/jsx-runtime");function Co({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:a,classes:i={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:m="",separator:c,tableFooter:u,tableHeader:d,customLabelRender:g,customValueRender:y}){let p=(0,ks.useMemo)(()=>{let v=(t||[]).reduce((h,R)=>[...h,...R.keys],[]),f={};for(let h of e){let R=h?.label?Object.values(h.label):[];for(let C of R)if(C?.length&&(v.indexOf(`metadata.${C[0]}`)!==-1||v.length===0)&&h){let P=`metadata.${C[0]}`;f[P]=f[P]?f[P]:[],f[P].push(h);break}}return f},[t,e]);return Object.keys(p).length===0&&n?(0,W.jsx)(W.Fragment,{children:a})||(0,W.jsx)("div",{className:i.empty,children:s}):t?.length?(0,W.jsxs)("table",{className:i.container,children:[d,(0,W.jsx)("tbody",{children:t.map((v,f)=>{let h=[];for(let C of v.keys)for(let P of p[C]||[]){let T=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:P.value},f+"__"+C);y?h.push(y(P,T)):h.push(T)}if(h.length===0)return null;let R=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,separator:c,defaultText:m,children:v.label});return(0,W.jsxs)("tr",{className:i.row,children:[(0,W.jsx)("td",{className:i.label,style:o?{minWidth:o}:{},children:g?g(v.label,R):R}),(0,W.jsx)("td",{className:i.value,children:h})]},f)})}),u]}):(0,W.jsxs)("table",{className:i.container,children:[d,(0,W.jsx)("tbody",{children:e?.length?e.map((v,f)=>{if(!v)return null;let h=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:v.label}),R=(0,W.jsx)(le,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:v.value});return(0,W.jsxs)("tr",{className:i.row,children:[(0,W.jsx)("td",{className:i.label,style:o?{minWidth:o}:{},children:g?g(v.label,h):h}),(0,W.jsx)("td",{className:i.value,children:y?y(v,R):R})]},f)}):null}),u]})}var Es=require("react/jsx-runtime");function Yl(e){let t=F(),o=A(),n=Dt(),r=(0,Ms.useMemo)(()=>{let a=t?.metadata||[],i=o?.metadata||[],s=n?.metadata||[];return[...a,...i,...s]},[t,o,n]);return(0,Es.jsx)(Co,{metadata:r,...e})}var bn=require("react");var Sn=require("@iiif/parser/image-3"),Ns=require("react");function xn(e,t={},o=[]){return(0,Ns.useMemo)(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let r=(0,Sn.createImageServiceRequest)(e);return(0,Sn.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 Ro=require("react/jsx-runtime");function Kl(e){let t=typeof e.src=="string"?e.src:e.src.id,o=Zt(),[n,r]=(0,bn.useState)(!1),a;if(t){let s=o.loadServiceSync({id:t});s&&(a=s)}!a&&!n&&o.loadService({id:t}).then(()=>{r(!0)});let i=xn(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,bn.useEffect)(()=>()=>{r(!1)},[t]),i?(0,Ro.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):(0,Ro.jsx)(Vs,{...e,fetchImageService:!1})}function Vs(e){if(e.fetchImageService)return(0,Ro.jsx)(Kl,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=xn(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,Ro.jsx)("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}var Cn=require("react"),Ls=require("react-error-boundary");var Ue=require("react/jsx-runtime");function jl({src:e,errorFallback:t,interactive:o,skipSizes:n,children:r,renderViewerControls:a,viewControlsDeps:i,fluid:s,x:l,y:m,...c}){let[u,d]=(0,Cn.useState)(),g=t||gn,[y,p]=go(),b=(0,Cn.useMemo)(()=>{let f=p[e]?.status,h=y({id:e},{});return h?.height&&h.width&&f!=="loading"?{id:e,width:h.width,height:h.height,service:h,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}}}:null},[y,e,p]);if(!b||!b.height||!b.width)return null;let v=s?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:b.width/b.height;return(0,Ue.jsx)(Ls.ErrorBoundary,{resetKeys:[],fallbackRender:f=>(0,Ue.jsx)(g,{...c,...f}),children:(0,Ue.jsx)(hn,{...c,aspectRatio:v,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:f=>{d(f),c.onCreated&&c.onCreated(f)},children:(0,Ue.jsxs)(xe.Provider,{value:u,children:[(0,Ue.jsx)(De,{image:b,id:b.id,isStatic:!o,x:l,y:m},b.id),(0,Ue.jsx)(Gl,{viewerPreset:u,renderViewerControls:a,image:b,src:e,viewControlsDeps:i}),r]})})})}function Gl({viewerPreset:e,renderViewerControls:t,image:o,src:n,viewControlsDeps:r}){return j(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,xe.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[n,e,...r||[]]),null}var zs=require("react/jsx-runtime");function Ql(e){let t=F();return(0,zs.jsx)(Co,{metadata:t?.metadata||[],...e})}var Rn=require("react");var li=Q(require("react-lazy-load-image-component"),1);var qs=require("@iiif/helpers/i18n"),se=require("react/jsx-runtime"),{LazyLoadComponent:Xl}=li||li.default;function ci(e){let{size:t,visible:o,classes:n,canvasId:r,figure:a}=e,i=t?.width||128,s=t?.height||t?.width||128,l=(0,se.jsx)(Zl,{...e}),m=(0,se.jsx)(Xl,{threshold:300,style:{height:s,width:i},visibleByDefault:o,children:r?(0,se.jsx)(me,{canvas:r,children:l}):l});return a?(0,se.jsx)("figure",{className:n?.figure,children:m}):m}function Zl({fallback:e,size:t,classes:o,showLabel:n,alt:r,dereference:a=!1}){let i=A(),s=t?.width||128,l=t?.height||t?.width||128,m=r||(0,qs.getValue)(i?.label)||"",c=Ie({width:s,height:l,allowUnsafe:!0},a);return!c||c.type!=="fixed"?(0,se.jsx)(se.Fragment,{children:e}):(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("div",{className:o?.imageWrapper,children:(0,se.jsx)("img",{className:o?.img,src:c.id,alt:m})}),n?(0,se.jsx)(le,{as:"figcaption",className:o?.label,children:i?.label}):null]})}var zt=require("react/jsx-runtime");function Jl({scrollBehaviour:e,dereference:t,flat:o,size:n,classes:r={},showLabel:a,figure:i,fallback:s}){let l=(0,Rn.useRef)(null),{items:m,sequence:c,currentSequenceIndex:u,setSequenceIndex:d}=Ze(),g={row:r.selected?.row||r.row,item:r.selected?.item||r.item,figure:r.selected?.figure||r.figure,img:r.selected?.img||r.img,label:r.selected?.label||r.label,imageWrapper:r.selected?.imageWrapper||r.imageWrapper};(0,Rn.useLayoutEffect)(()=>{if(!l.current)return;let p=l.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[u]);let y=[];for(let p of c){let b=[],v=c[u]===p;for(let f of p){let h=m[f];b.push((0,zt.jsx)("div",{className:v?g.item:r.item,children:(0,zt.jsx)(ci,{classes:v?g:r,canvasId:h.id,size:n,dereference:t,showLabel:a,figure:i,placeholder:(0,zt.jsx)("div",{style:{height:128,width:128}}),fallback:s})},f))}if(o){y.push(b);continue}y.push((0,zt.jsx)("div",{onClick:f=>{d(c.indexOf(p))},"data-selected":v,className:v?g.row:r.row,children:b},p.join("-")))}return(0,zt.jsx)("div",{ref:l,className:r.container,children:y})}var Po=require("zustand");function ui(){let e=L(),t=(0,Po.useStore)(e,a=>a.completeRequest),o=(0,Po.useStore)(e,a=>a.polygonState.currentTool),n=(0,Po.useStore)(e,a=>a.polygonState.selectedStamp),r=(0,Po.useStore)(e,a=>a.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:n,switchTool:r}}var K=require("react/jsx-runtime"),ec={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function tc({showShapes:e=!0,enabled:t=ec,classNames:o={},icons:n={}}){let{currentTool:r,switchTool:a,selectedStamp:i}=ui();return(0,K.jsxs)(K.Fragment,{children:[r,(0,K.jsx)("button",{className:o.button,onClick:a.pointer,"data-active":r==="pointer",children:n.PointerIcon||"Pointer"}),(0,K.jsx)("button",{className:o.button,onClick:a.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:a.box,"data-active":r==="box",children:n.BoxIcon||"Box"}),t.pen&&(0,K.jsx)("button",{className:o.button,onClick:a.pen,"data-active":r==="pen",children:n.PenIcon||"Pen"}),t.draw&&(0,K.jsx)("button",{className:o.button,onClick:a.draw,"data-active":r==="pencil",children:n.DrawIcon||"Draw"}),t.line&&(0,K.jsx)("button",{className:o.button,onClick:a.line,"data-active":r==="line",children:n.LineIcon||"Line"}),t.lineBox&&(0,K.jsx)("button",{className:o.button,onClick:a.lineBox,"data-active":r==="lineBox",children:n.LineBoxIcon||"LineBox"}),t.triangle&&(0,K.jsx)("button",{className:o.button,onClick:a.triangle,"data-active":r==="stamp"&&i?.id==="triangle",children:n.TriangleIcon||"Triangle"}),t.hexagon&&(0,K.jsx)("button",{className:o.button,onClick:a.hexagon,"data-active":r==="stamp"&&i?.id==="hexagon",children:n.HexagonIcon||"Hexagon"}),t.circle&&(0,K.jsx)("button",{className:o.button,"data-active":r==="stamp"&&i?.id==="circle",onClick:a.circle,children:n.CircleIcon||"Circle"})]}):null,t.delete&&(0,K.jsx)("button",{className:o.button,onClick:a.remove,children:n.DeleteForeverIcon||"Delete"})]})}var Bs=require("react/jsx-runtime");function oc({annotation:e,children:t}){return(0,Bs.jsx)(te,{value:{annotation:e},children:t})}var Os=require("react/jsx-runtime");function nc({annotationPage:e,children:t}){return(0,Os.jsx)(te,{value:{annotationPage:e},children:t})}var Hs=require("react/jsx-runtime");function rc({collection:e,children:t}){return(0,Hs.jsx)(te,{value:{collection:e},children:t})}function ic(e,t={}){return Me(t)}var Ds=require("@atlas-viewer/atlas"),_e=require("react");function ac({canvasId:e}={}){let t=(0,Ds.useCanvas)(),o=Ge(),n=(0,_e.useMemo)(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[r,a]=(0,_e.useState)({}),i=no();(0,_e.useEffect)(()=>{let m=c=>{let u=c.partOf.canvasId;u&&a(d=>({...d,[u]:c.choice}))};return i.on("choice-change",m),()=>{i.off("choice-change",m)}},[]);let s=(0,_e.useMemo)(()=>{let m=[];for(let c of n){let u=r[c];u&&m.push({canvasId:c,choice:u})}return m},[n,r]),l=(0,_e.useMemo)(()=>({makeChoice:(m,c)=>{i.emit("make-choice",{choiceId:m,...c})}}),[i]);return{choices:s,actions:l}}function sc(e,t=!1){}function lc(e){let o=X().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return N(r=>{let a=o?r.iiif.entities.Manifest[o]:void 0,i=a?.items||[];if(typeof e>"u")return i;let s=[];for(let l of a?.items||[])n.indexOf(l.id)!==-1&&s.push(l);return s},[n.join("/")])}var Fs=require("react");function cc(e,t=[]){let{id:o,selector:n}=e,r=X(),a=o||r.collection,i=N(s=>a?s.iiif.entities.Collection[a]:void 0,[a]);return(0,Fs.useMemo)(()=>{if(i)return n?n(i):i},[i,n,...t])}var Pn=require("react"),mi=require("zustand");function uc(){let e=L(),t=(0,mi.useStore)(e,n=>n.completeRequest),o=(0,mi.useStore)(e,n=>n.cancelRequest);return(0,Pn.useMemo)(()=>({saveAnnotation:()=>{(0,Pn.startTransition)(()=>{t()})},cancelRequest:o}),[t,o])}var $s=require("react"),An=require("zustand");function mc({requestId:e}={}){let t=L(),o=(0,An.useStore)(t,s=>s.metadata),n=(0,An.useStore)(t,s=>s.tool.requestId),r=e||n,a=(0,An.useStore)(t,s=>s.setMetadata),i=(0,$s.useCallback)(s=>a(s,r||void 0),[a,r]);return[r?o[r]||{}:{},i]}var Ws=require("zustand");function dc(e){let t=L(),o=(0,Ws.useStore)(t,n=>n.tool.requestId);et("polygons.start-transition",n=>{e.requestId&&o!==e.requestId||e?.onStart?.(n.transitionIntent)},[o,e.requestId]),et("polygons.end-transition",n=>{e.requestId&&o!==e.requestId||e?.onEnd?.(n.transitionIntent,n.response)},[o,e.requestId]),et("polygons.transition",n=>{e.requestId&&o!==e.requestId||e?.onTransition?.(n.transitionIntent)},[o,e.requestId])}var Tn=require("react"),Us=require("@iiif/helpers/events");function pc(e,t,o,n,r=[]){let a=w(),i=(0,Tn.useMemo)(()=>(0,Us.createEventsHelper)(a),[a]);(0,Tn.useEffect)(()=>{let s=e;return s?(i.addEventListener(s,t,o,n),()=>{i.removeEventListener(s,t,o)}):()=>{}},[i,e,t,...r])}function fc(e,t){let{id:o,isLoaded:n,error:r,resource:a,requestId:i,cached:s}=Ht(e,t);return{id:o,isLoaded:n,error:r,manifest:a,requestId:i,cached:s}}var di=require("@iiif/parser/image-3");var Re=require("react");function pi({cacheKey:e}={}){let t=A(),o=Me(),n=w(),r=It(),a=Ma(),[i,s]=(0,Re.useState)(void 0),[l,m]=(0,Re.useState)(!1),[c,u]=(0,Re.useState)("idle"),[d,g]=(0,Re.useState)(void 0),y=t?t.id:"undefined",p=(0,Re.useMemo)(()=>{try{if(t&&o.length){let v=o[0],f=n.get(v.body[0]),R=(0,di.getImageServices)(f)[0];return R&&r(R,{width:R.width||t.width,height:R.height||t.height},!0)||void 0}}catch(v){console.error(v)}},[y,e,t]),b=c==="success"&&i?i:p;return(0,Re.useEffect)(()=>{(async()=>{try{if(t&&o.length){let v=o[0],f=n.get(v.body[0]),R=(0,di.getImageServices)(f)[0];if(!R)return;m(!0),u("loading");try{let C=await a(R,{width:R.width||t.width,height:R.height||t.height})||void 0;s(C),u("success"),m(!1)}catch(C){u("error"),g(C)}}}catch(v){u("error"),g(v)}})()},[y,e]),(0,Re.useMemo)(()=>({data:b,isFetching:l,status:c,error:d}),[b,l,c,d])}function gc(){let e=pi();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 In=require("react");var _s=require("@iiif/helpers");function hc({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=w(),o=A(),n=Me(),r=(0,In.useMemo)(()=>(0,_s.createPaintingAnnotationsHelper)(t),[t]),a=(0,In.useMemo)(()=>r.getPaintables(n),[r,n]);return(0,In.useMemo)(()=>So({canvas:o,loadImageService:i=>i,paintables:a,supports:e}),[o,a,e])}var Ys=require("@iiif/helpers/styles"),Ks=require("react");function yc(){let e=w();return(0,Ks.useMemo)(()=>(0,Ys.createStylesHelper)(e),[e])}function vc(e,t){let{x:o,y:n,width:r,height:a}=e,{x:i,y:s}=t,{width:l,height:m}=t;return o+r>i&&o<i+l&&n+a>s&&n<s+m}var js=Q(require("tiny-invariant"),1);function Sc(e,t){let o=e.boundingBox||Ve(e.polygon);if(e.polygon&&!bt(e.polygon.points)){let n=e.target||Ct(e.polygon,t);return(0,js.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}}
|