react-iiif-vault 2.0.14 → 2.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var vl=Object.create;var On=Object.defineProperty;var Sl=Object.getOwnPropertyDescriptor;var xl=Object.getOwnPropertyNames;var bl=Object.getPrototypeOf,Cl=Object.prototype.hasOwnProperty;var Rl=(e,t)=>{for(var n in t)On(e,n,{get:t[n],enumerable:!0})},zn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of xl(t))!Cl.call(e,r)&&r!==n&&On(e,r,{get:()=>t[r],enumerable:!(o=Sl(t,r))||o.enumerable});return e},b=(e,t,n)=>(zn(e,t,"default"),n&&zn(n,t,"default")),J=(e,t,n)=>(n=e!=null?vl(bl(e)):{},zn(t||!e||!e.__esModule?On(n,"default",{value:e,enumerable:!0}):n,e)),Pl=e=>zn(On({},"__esModule",{value:!0}),e);var x={};Rl(x,{AnnotationContext:()=>ku,AnnotationPageContext:()=>Mu,AnnotationStyleProvider:()=>Dl,AtlasStoreProvider:()=>Et,AtlasStoreReactContext:()=>st,Auth:()=>er,AuthProvider:()=>Zo,AuthRContext:()=>ot,AuthReactContext:()=>_i,AuthReactContextActions:()=>Yi,CanvasAnnotations:()=>vu,CanvasContext:()=>pe,CanvasPanel:()=>Y,CanvasStrategyProvider:()=>di,CanvasWorldObject:()=>gi,CollectionContext:()=>Eu,CombinedMetadata:()=>Su,ComplexTimelineProvider:()=>Nr,ContextBridge:()=>vn,ControlsReactContext:()=>an,CreateCustomShape:()=>Si,CustomContextBridge:()=>bs,CustomContextBridgeProvider:()=>Jl,DEFAULT_BEZIER:()=>ln,DEFAULT_POLL_INTERVAL:()=>Vr,DefaultEditingTools:()=>Es,EASING_PRESETS:()=>Ke,EventEmitterProvider:()=>Bl,EventsProvider:()=>Zl,Image:()=>nl,ImageService:()=>bu,ImageServiceLoaderContext:()=>La,InnerViewerProvider:()=>Ji,LanguageProvider:()=>Kl,LanguageString:()=>Za,LocaleString:()=>de,ManifestContext:()=>Fo,ManifestMetadata:()=>Ru,MediaPlayerProvider:()=>on,Metadata:()=>Nn,PolygonSelector:()=>yu,RangeContext:()=>$o,ReactEmitterContext:()=>Un,ReactEventContext:()=>yt,ReactVaultContext:()=>He,RegionHighlight:()=>fr,Render3DModelStrategy:()=>br,RenderAccompanyingCanvas:()=>Cr,RenderAnnotation:()=>ut,RenderAnnotationEditing:()=>Jr,RenderAnnotationPage:()=>$e,RenderAnnotationStrategy:()=>Ir,RenderAudioStrategy:()=>Mr,RenderComplexTimelineStrategy:()=>Wr,RenderEmptyStrategy:()=>Ur,RenderImageStrategy:()=>_r,RenderSvgEditorControls:()=>wu,RenderTextualContentStrategy:()=>Yr,RenderVideoStrategy:()=>Gr,RenderYouTubeStrategy:()=>jr,ResizeWorldItem:()=>dr,ResourceProvider:()=>ae,ResourceReactContext:()=>_t,SelectorControllerProvider:()=>fu,SequenceThumbnails:()=>Tu,SimpleViewerProvider:()=>nr,SimpleViewerReactContext:()=>wt,SingleCanvasThumbnail:()=>Ai,StrategyReactContext:()=>Ue,ThumbnailFallbackImage:()=>ft,TranslationProvider:()=>Yl,TransliterationProvider:()=>Gl,VaultProvider:()=>we,ViewerPresetContext:()=>Pe,VirtualAnnotationProvider:()=>Tr,VisibleCanvasReactContext:()=>tt,annotationResponseToSelector:()=>Gu,authDetailsForResource:()=>jo,buildTransitions:()=>zr,createAtlasStore:()=>rr,createAuthStateStore:()=>Ko,createProbe:()=>Go,cubicBezierEasing:()=>xe,defaultEmitter:()=>ys,defaultSvgTheme:()=>ps,emptyActions:()=>ei,emptyStrategy:()=>ti,findAllCanvasesInRange:()=>Hn,findFirstCanvasFromRange:()=>Di,findManifestSelectedRange:()=>Tl,findSelectedRange:()=>Wo,flattenAnnotationPageIds:()=>ni,formatTime:()=>Gn,get3dStrategy:()=>ii,getAtlasStoreByName:()=>sr,getComplexTimelineStrategy:()=>li,getDefaultAnnotationStyles:()=>lr,getImageStrategy:()=>Tn,getManifestSequence:()=>Dn,getParsedTargetSelector:()=>bn,getRenderingStrategy:()=>kn,getStepFromProgress:()=>Or,getTextualContentStrategy:()=>In,getVideoStrategy:()=>wn,getVisibleCanvasesFromCanvasId:()=>Il,hasAuth:()=>wl,interpolateRect:()=>Lr,isBoxSelector:()=>ql,isRectangle:()=>kt,isSvgSelector:()=>na,makeAccessServiceRequest:()=>_o,makeAccessTokenRequest:()=>Fn,parseSpecificResource:()=>ou,polygonToTarget:()=>Mt,requestToAnnotationResponse:()=>Zt,seraliseSupportedSelector:()=>_n,svgThemes:()=>pu,targetIntersects:()=>Ku,unknownResponse:()=>Cn,unsupportedStrategy:()=>B,useAnnotation:()=>en,useAnnotationPage:()=>gr,useAnnotationPageManager:()=>Pn,useAnnotationStyles:()=>Jt,useAnnotationsAtTime:()=>Nu,useAtlasContextMenu:()=>xn,useAtlasStore:()=>O,useAuthActions:()=>Ki,useAuthService:()=>Gi,useAuthStore:()=>Tt,useAuthToken:()=>Ml,useAuthTokens:()=>Qo,useCanvas:()=>I,useCanvasChoices:()=>Vu,useCanvasClock:()=>Lu,useCanvasSequence:()=>Uo,useCanvasStartTime:()=>rn,useCanvasSubset:()=>zu,useClosestLanguage:()=>es,useCollection:()=>Ou,useComplexTimeline:()=>_l,useContextBridge:()=>yn,useContextMenuStore:()=>ks,useCreateLocaleString:()=>jl,useCurrentAnnotationActions:()=>Bu,useCurrentAnnotationMetadata:()=>qu,useCurrentAnnotationRequest:()=>Zr,useCurrentAnnotationTransition:()=>Hu,useCurrentAuth:()=>kl,useCustomContextBridge:()=>hn,useDispatch:()=>Rr,useEmitter:()=>or,useEvent:()=>at,useEventEmitter:()=>pn,useEventListener:()=>Du,useExistingVault:()=>ke,useExternalCollection:()=>Fu,useExternalManifest:()=>Do,useExternalResource:()=>Kt,useIIIFLanguage:()=>ao,useImage:()=>Eo,useImageService:()=>ki,useImageServiceLoader:()=>sn,useImageTile:()=>$u,useIsAuthEnabled:()=>Jo,useLoadImageService:()=>An,useLocaleString:()=>ts,useManifest:()=>F,useMediaActions:()=>$l,useMediaElements:()=>Wl,useMediaState:()=>Fl,usePaintables:()=>ri,usePaintingAnnotations:()=>Oe,usePolygonHelper:()=>Qr,useRange:()=>Gt,useRemoteStylesheet:()=>cr,useRenderControls:()=>se,useRenderingStrategy:()=>ci,useRequestAnnotation:()=>vi,useResourceContext:()=>ee,useResourceEvents:()=>tn,useResources:()=>oi,useSearchService:()=>tr,useSelectorController:()=>Ci,useSelectorEmitter:()=>gu,useSelectorEvents:()=>bi,useSelectorHelper:()=>hu,useSimpleMediaPlayer:()=>ct,useSimpleViewer:()=>rt,useStaticRenderingStrategy:()=>Wu,useStrategy:()=>H,useStyleHelper:()=>Uu,useStyles:()=>lt,useStylesheetStore:()=>ua,useSvgEditor:()=>Xr,useSvgEditorControls:()=>Ti,useThumbnail:()=>Ve,useTranslations:()=>qr,useTransliteration:()=>Br,useVault:()=>k,useVaultEffect:()=>wr,useVaultSelector:()=>L,useViewerPreset:()=>cn,useViewportScroll:()=>Yu,useViewportTour:()=>_u,useVirtualAnnotationPage:()=>Pr,useVirtualAnnotationPageContext:()=>Ar,useVisibleCanvases:()=>nt});module.exports=Pl(x);b(x,require("@iiif/helpers/annotation-targets"),module.exports);var St=require("react");var Rt=J(require("react"),1),Mi=require("react/jsx-runtime"),Al={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},_t=Rt.default.createContext(Al),ee=()=>(0,Rt.useContext)(_t);function ae({value:e,children:t}){let n=ee(),o=(0,Rt.useMemo)(()=>({...n,...e}),[e,n]);return(0,Mi.jsx)(_t.Provider,{value:o,children:t})}var Ei=require("react/jsx-runtime");function pe({canvas:e,children:t}){return(0,Ei.jsx)(ae,{value:{canvas:e},children:t})}var Bn=J(require("react"),1),Yt=require("@iiif/helpers/vault");var Ho=require("react/jsx-runtime"),He=Bn.default.createContext({vault:null,setVaultInstance:e=>{}});function we({vault:e,vaultOptions:t,useGlobal:n,resources:o,children:r}){let[i,a]=(0,Bn.useState)(()=>e||(n?(0,Yt.globalVault)(t):t?new Yt.Vault(t):new Yt.Vault));return(0,Ho.jsx)(He.Provider,{value:{vault:i,setVaultInstance:a},children:(0,Ho.jsx)(ae,{value:o||{},children:r})})}var Vi=require("react"),Li=J(require("react"),1);var Ni=require("react"),k=()=>{let{vault:e}=(0,Ni.useContext)(He);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var qn=require("react");function L(e,t=[]){let n=k(),[o,r]=(0,qn.useState)(()=>e(n.getState(),n));return(0,qn.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{r(i)},!1),t),o}var tt=Li.default.createContext([]);function nt(){let e=(0,Vi.useContext)(tt);return L(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var zi=require("@iiif/helpers/vault"),Oi=require("react");function ke(e){let t=(0,Oi.useContext)(He);return e||(t&&t.vault?t.vault:(0,zi.globalVault)())}var Bi=require("react");function F(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=k(),a=n||r.manifest,s=L(l=>a?l.iiif.entities.Manifest[a]:void 0,[a]);return(0,Bi.useMemo)(()=>{if(s)return o?o(s):s},[s,o,...t])}var Zi=require("react"),Wn=require("react");var De=require("react");function Kt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,o=ke(),[r,i]=(0,De.useState)(n),[a,s]=(0,De.useState)(void 0),l=(0,De.useMemo)(()=>o.get(n,{skipSelfReturn:!0})||void 0,[n,o]),[c,u]=(0,De.useState)(l);return(0,De.useEffect)(()=>{(async()=>{try{let m=l&&!t?l:await o.load(n),d=m?m.id||m["@id"]:null;m&&r!==d&&i(d),u(m)}catch(m){s(m)}})()},[n,t]),{isLoaded:!!c,id:r,requestId:n,error:a,resource:c,cached:!!(c&&c===l)}}function Do(e,t){let{id:n,isLoaded:o,error:r,resource:i,requestId:a,cached:s}=Kt(e,t);return{id:n,isLoaded:o,error:r,manifest:i,requestId:a,cached:s}}var qi=require("react/jsx-runtime");function Fo({manifest:e,children:t}){return(0,qi.jsx)(ae,{value:{manifest:e},children:t})}var Hi=require("react/jsx-runtime");function $o({range:e,children:t}){return(0,Hi.jsx)(ae,{value:{range:e},children:t})}function Di(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let o=Di(e,e.get(n));if(o)return o}}return null}function Hn(e,t){let n=[];for(let o of t.items)if(o.type==="SpecificResource"&&o.source?.type==="Canvas"&&(o.source.id.indexOf("#")!==-1?n.push({id:o.source.id.split("#")[0],type:"Canvas"}):n.push(o.source)),o.type==="Range"&&n.push(...Hn(e,e.get(o))),o.type==="SpecificResource"){let r=typeof o.source=="string"?o.source:o.source.id;n.push({id:r,type:"Canvas"})}return n}function Tl(e,t,n){for(let o of t.structures){let r=Wo(e,e.get(o),n);if(r)return r}return null}function Wo(e,t,n){for(let o of t.items){let r=o?.source?.id?.split("#")[0];if(o.type==="SpecificResource"&&o.source===n||o.type==="SpecificResource"&&o.source?.type==="Canvas"&&n===r)return t;if(o.type==="Range"){let i=Wo(e,e.get(o),n);if(i)return i}}return null}function Il(e,t,n,o=!1){let r=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=o?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),c=s||l?!1:r.includes("individuals"),u=a.includes("facing-pages"),m=a.includes("non-paged");if(u||m||c||o)return[{id:i.id,type:"Canvas"}];let[d,p]=Dn(e,t);if(l)return d;let g=d.findIndex(f=>f.id===n);if(g===-1)return[];for(let f of p)if(f.includes(g))return f.map(S=>d[S]);return[{id:i.id,type:"Canvas"}]}function Dn(e,t,{disablePaging:n,skipNonPaged:o}={}){let r=t.behavior,i=r.includes("paged"),a=i?!1:r.includes("continuous"),s=i||a?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:Hn(e,t);if(a)return[l,[l.map((g,f)=>f)]];if(s||!i||n)return[l,l.map((g,f)=>[f])];let c=[],u=[],m=()=>{u.length&&(c.push([...u]),u=[])},d=0,p=!1;for(let g=0;g<l.length;g++){let f=e.get(l[g]);if(f.behavior.includes("non-paged")){g===d&&d++,o||(m(),c.push([g]),m());continue}if(g===d||f.behavior.includes("facing-pages")){u.length&&(p=!0),m(),c.push([g]),m();continue}if(u.push(g),p){m(),p=!1;continue}u.length>1&&m()}return u.length&&m(),[l,c]}var ye=require("react");var Fi=require("react");function Gt(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=n||r.range,a=L(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Fi.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}function Uo({startCanvas:e,disablePaging:t}){let n=k(),o=F(),r=Gt(),[i,a]=(0,ye.useState)(void 0),s=r||o;if(!s)throw new Error("Nothing selected");let[l,c]=(0,ye.useMemo)(()=>Dn(n,s,{disablePaging:t}),[n,s,t]),u=(0,ye.useRef)(c);if(u.current!==c){let S=u.current[i][0],v=c.findIndex(h=>h.includes(S));u.current=c,a(v)}let m=(0,ye.useCallback)(f=>{let S=c.findIndex(v=>v.includes(f));a(S===-1?0:S)},[l,c]),d=(0,ye.useCallback)(f=>{let S=l.findIndex(v=>v.id===f);S!==-1?m(S):a(0)},[l,c]),p=(0,ye.useCallback)(()=>{a(f=>f>=c.length-1?f:f+1)},[c]),g=(0,ye.useCallback)(()=>{a(f=>f<=0?0:f-1)},[c]);return typeof i>"u"&&(e?d(e):a(0)),{visibleItems:c[i]?.map(f=>l[f].id)||[],cursor:i,items:l,sequence:c,hasPrevious:i>0,hasNext:i<c.length-1,setSequenceIndex:a,setCanvasIndex:m,setCanvasId:d,next:p,previous:g}}var Se=require("react"),At=require("zustand");var Yo=require("zustand/vanilla");function wl(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function ve(e,t,n){let o=t.findIndex(a=>a.service.id===e);if(o===-1)return t;let r=[...t],i=n(r[o]);return i===r[o]?t:(r[o]=i,r)}var Ko=()=>(0,Yo.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let o=n.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!o)throw new Error("Token service not found");e(()=>({authItems:ve(n.id,t().authItems,r=>({...r,isPending:!0}))})),_o(n.service).then(()=>{Fn(o).then(r=>{let i=r.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:a}}))}))}).catch(r=>{e(()=>({authItems:ve(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let o=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!o)return;let r=`${o.id}?origin=${$i()}`,i=window.open(r);e(()=>({authItems:ve(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,o=t().currentAuth+1;o>=n||e(()=>({currentAuth:o}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,o)=>{if(!n.service)return;let r=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:o,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!r)throw new Error("Token service not found");Fn(r).then(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,isPending:!0}))})),_o(i).then(()=>{Fn(r).then(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,o)=>{let r=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(r){let a=t().authItems.find(l=>l.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(c=>c.service.id!==n.id&&c.instances>0))}e(()=>({authItems:ve(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),Go=(e,t)=>(0,Yo.createStore)((n,o)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!o().service)return;let r=o().service?.id;if(!r){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=o().token;try{let a=await fetch(r,{headers:i?{Authorization:`Bearer ${o().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){n({token:r})}}));function jo(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let o of t)if(o.type==="AuthProbeService2"){n.services.probe=o,n.hasAuth=!0;let r=o.service.filter(i=>i.type==="AuthAccessService2");r[0]&&(n.services.access=r[0])}return n}async function Fn(e,{strict:t=!0}={}){return new Promise((n,o)=>{let r=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${r}&origin=${window.location.origin}`,a=c=>{let u=c.data;if(u.messageId===r){if(t&&u.type!=="AuthAccessToken2"){s(),o("Invalid response, expected type=AuthAccessToken2");return}if(!u.accessToken){s(),o("Invalid response, expected accessToken");return}s(),n(u)}},s=()=>window.removeEventListener("message",a),l=document.createElement("iframe");l.src=i,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",a)})}function $i(e){let t=window.location;if(e){let n=document.createElement("a");return n.href=e,n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function _o(e){let t=`${e.id}?origin=${$i()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((o,r)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),o())},500)})}var Pt=require("react");var Wi=require("zustand");function Ui(e){let t=(0,Pt.useMemo)(()=>jo(e),[e]),n=Qo(t.services.access?.id),o=(0,Pt.useMemo)(()=>Go(t.services.probe,n),[t.services.probe]),r=(0,Wi.useStore)(o);return(0,Pt.useEffect)(()=>{r.status==="unknown"&&!n&&r.probe()},[t.services.probe,r.status]),(0,Pt.useEffect)(()=>{n&&(r.setToken(n),r.probe())},[n]),[e,r,t.hasAuth]}var jt=require("react/jsx-runtime"),ot=(0,Se.createContext)(null),_i=(0,Se.createContext)(null);_i.displayName="CurrentAuth";var Yi=(0,Se.createContext)(null);Yi.displayName="AuthActions";function Zo({children:e}){let t=(0,Se.useMemo)(()=>Ko(),[]);return(0,jt.jsx)(ot.Provider,{value:t,children:e})}function Jo(){return!!(0,Se.useContext)(ot)}function Tt(){let e=(0,Se.useContext)(ot);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ki(){let e=Tt();return(0,At.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function kl(){let e=Tt();return(0,At.useStore)(e,t=>t)}function Gi(e){let t=Tt();return(0,At.useStore)(t,o=>o.authItems.find(r=>r.service.id===e))}function Qo(e){let t=Tt();return(0,At.useStore)(t,o=>o.authItems.find(r=>r.id===e)?.session?.token)}function Ml(e){let t=Tt();return(0,At.useStore)(t,o=>{let r=o.authItems.find(i=>i.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function El(e){let t=Ki(),n=Gi(e.service.id);return(0,Se.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Xo(){return null}function er(e){let[t,n,o]=Ui(e.resource),r=e.fallbackComponent||Xo,i=e.loadingComponent||Xo,a=e.errorComponent||Xo,s=n.service,l=null;if(!o||!s)return e.children(t);let c=s.service.filter(u=>u.type==="AuthAccessService2");n.status==="error"&&(l=(0,jt.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=(0,jt.jsx)(i,{})),n.status==="success"&&(l=e.children(t));for(let u of c)l=(0,jt.jsx)(El,{service:u,probeId:s.id,children:l},u.id);return l}var Qt=require("react");var ji=require("zustand/vanilla"),Nl=e=>e.id||e["@id"];function Vl(e){return(Array.isArray(e.service)?e.service:[e.service]).find(n=>n.profile==="http://iiif.io/api/search/0/autocomplete"||n.profile==="http://iiif.io/api/search/1/autocomplete"||n.profile==="AutoCompleteService1")}var Qi=e=>{let t;typeof e=="string"?t={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:t=e;let n=t?Nl(t):void 0,o=null;return(0,ji.createStore)((r,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Vl(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");o&&!o.signal.aborted&&o.abort(),o=new AbortController;let l=new URLSearchParams;a.q&&l.set("q",a.q),a.motivation&&l.set("motivation",a.motivation),a.date&&l.set("date",a.date),a.user&&l.set("user",a.user),r({loading:!0}),fetch(`${n}?${l.toString()}`,{signal:o.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async c=>{if(!o?.signal.aborted)if(c.ok){let u=await c.json();r({resources:u.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(l=>l["@id"]===a);r({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[0]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[0]||null});return}r({highlight:a[l+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[a.length-1]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[a.length-1]||null});return}if(l===0){r({highlight:a[a.length-1]||null});return}r({highlight:a[l-1]||a[a.length-1]||null})}}))};var Ll=require("zustand");function tr(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var $n=require("react/jsx-runtime"),It=(0,Qt.createContext)(null);It.displayName="Search";function Xi(e){let t=tr();return e.store?(0,$n.jsx)(It.Provider,{value:e.store,children:e.children}):(0,$n.jsx)(zl,{service:t,children:e.children})}function zl({service:e,children:t}){let n=(0,Qt.useMemo)(()=>Qi(e),[e]);return(0,$n.jsx)(It.Provider,{value:n,children:t})}var ue=require("react/jsx-runtime"),Xt=()=>{},wt=(0,Wn.createContext)({setCurrentCanvasId:Xt,setCurrentCanvasIndex:Xt,nextCanvas:Xt,previousCanvas:Xt,items:[],sequence:[],setSequenceIndex:Xt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Ji(e){let t=F(),{cursor:n,visibleItems:o,next:r,sequence:i,items:a,setCanvasIndex:s,setCanvasId:l,previous:c,setSequenceIndex:u,hasNext:m,hasPrevious:d}=Uo({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),p=(0,Wn.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:c,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:u,currentSequenceIndex:n,hasNext:m,hasPrevious:d}),[i,a,l,r,c,a,s,u,n]);return t?o.length===0?null:(0,ue.jsx)(wt.Provider,{value:p,children:(0,ue.jsx)(tt.Provider,{value:o,children:(0,ue.jsx)(pe,{canvas:o[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ue.jsx)("div",{children:"Sorry, something went wrong."}))}function nr(e){let t=ke(e.vault),n=Do(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ue.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,ue.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,ue.jsx)("div",{children:"Loading..."});let o=(0,ue.jsx)(Ji,{...e,children:e.children});return(0,ue.jsx)(we,{vault:t,children:(0,ue.jsx)(Fo,{manifest:n.id,children:(0,ue.jsx)(Zo,{children:(0,ue.jsx)(Xi,{children:e.rangeId?(0,ue.jsx)($o,{range:e.rangeId,children:o}):o})})})})}function rt(){return(0,Zi.useContext)(wt)}var ia=require("@atlas-viewer/atlas"),Me=require("react"),aa=require("zustand");var ea=J(require("mitt"),1),it=require("react"),ta=require("react/jsx-runtime"),Ol=(0,ea.default)(),Un=(0,it.createContext)(Ol);function Bl({children:e,emitter:t}){return(0,ta.jsx)(Un.Provider,{value:t,children:e})}function or(){return(0,it.useContext)(Un)}function at(e,t,n=[]){let o=(0,it.useContext)(Un);(0,it.useEffect)(()=>{let r=i=>{t(i)};return o.on(e,r),()=>{o.off(e,r)}},[o,e,...n])}var oa=require("polygon-editor"),ra=require("zustand/vanilla");function kt(e){let t=Math.max(...e.map(i=>i[0])),n=Math.min(...e.map(i=>i[0])),o=Math.max(...e.map(i=>i[1])),r=Math.min(...e.map(i=>i[1]));for(let i of e)if(i[0]!==n&&i[0]!==t&&i[1]!==r&&i[1]!==o||i[0]<n||i[0]>t||i[1]<r||i[1]>o)return!1;return!0}function Fe(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(i=>i[0])),n=Math.min(...e.points.map(i=>i[1])),o=Math.max(0,...e.points.map(i=>i[0])),r=Math.max(0,...e.points.map(i=>i[1]));return{x:t,y:n,width:o-t,height:r-n}}return null}function na(e){return e.type==="SvgSelector"}function ql(e){return e.type==="BoxSelector"}function _n(e,t){if(na(e)){let a=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:s,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${l}" width="${s}" height="${l}"><${a?"polygon":"polyline"} points="${e.points.map(u=>u.join(",")).join(" ")}" /></svg>`}}return{type:"SvgSelector",value:`<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g><path d='M${e.points.map(s=>s.join(",")).join(" ")}${a?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:n,y:o,width:r,height:i}=e.spatial||{};return!r||!i?null:{type:"FragmentSelector",value:`xywh=${~~n},${~~o},${~~r},${~~i}`}}function Mt(e,t){if(!e||!e.points.length)return null;if(kt(e.points)){let n=e.points.map(l=>l[0]),o=e.points.map(l=>l[1]),r=Math.min(...n),i=Math.min(...o),a=Math.max(...n)-r,s=Math.max(...o)-i;return _n({type:"BoxSelector",spatial:{x:r,y:i,width:a,height:s}},t)}return _n({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function Zt(e){if(e.type==="polygon"&&!e.noBox&&e.points&&kt(e.points)){let n=Fe({open:!1,points:e.points||[]});return Zt({...e,type:"box",selector:n})}if(e.type==="polygon"||e.type==="draw")return{polygon:{points:e.points||[],open:e.open||!1},requestType:e.type,boundingBox:Fe({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Mt({points:e.points||[],open:!1},e.bounds)};let t=e.selector;if(t){let n=[[t.x,t.y],[t.x+t.width,t.y],[t.x+t.width,t.y+t.height],[t.x,t.y+t.height]];return{polygon:{points:n,open:!1},requestType:e.type,boundingBox:t,metadata:{},target:Mt({points:n,open:!1},e.bounds),arguments:e.arguments||{}}}return{polygon:{points:[],open:!1},requestType:e.type,boundingBox:null,target:null,metadata:{},arguments:e.arguments||{}}}var 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 rr({events:e,enabledTools:t,keyboardShortcutMapping:n,keyboardShortcutsEnabled:o=!1,debug:r}){let i=(0,ra.createStore)((s,l)=>{let c=null,m=(0,oa.createHelper)({emitter:e,keyboardShortcutsEnabled:o,keyboardShortcutMapping:n,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(p=>({polygonState:{...p.polygonState,...d}}))}},d=>{s(p=>p.tool.requestId?{polygon:{...d,id:p.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",d)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},runtime:null,requestType:null,requests:{},history:m.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:m,polygonState:Hl,setMetadata:(d,p)=>{let g=p||l().tool.requestId;g&&s(f=>({metadata:{...f.metadata,[g]:{...f.metadata[g]||{},...d}}}))},setToolCanvasId:d=>{s(p=>({tool:{...p.tool,canvasId:d}}))},switchTool:{pointer(){s({mode:"sketch"}),a.tools.setTool("pointer")},hand(){s({mode:"explore"}),a.tools.setTool("hand")},draw(){s({mode:"sketch"}),a.tools.setTool("pencil")},pen(){s({mode:"sketch"}),a.tools.setTool("pen")},line(){s({mode:"sketch"}),a.tools.setTool("line")},lineBox(){s({mode:"sketch"}),a.tools.setTool("lineBox")},box(){s({mode:"sketch"}),a.tools.setTool("box")},triangle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.triangle()},hexagon(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.hexagon()},circle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.circle()},remove(){let d=l();d.tool.requestId&&(m.setShape({points:[],open:!0}),d.cancelRequest(d.tool.requestId))}},reset:()=>{let d=l();d.tool.requestId&&d.cancelRequest(d.tool.requestId)},setPolygonState:d=>s({polygonState:typeof d=="function"?d(l().polygonState):d}),getRequestId:()=>{let d=Math.random().toString(36).slice(2);return s(p=>({validRequestIds:[...p.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(p=>({tool:p.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:p.tool,validRequestIds:p.validRequestIds.filter(g=>g!==d)}))}}},cancelRequest:d=>{let p=d||l().tool.requestId;p&&(s(g=>({mode:"explore",tool:g.tool.requestId===p?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(f=>f!==p)})),e.emit("atlas.request-cancelled",{id:p}))},requestAnnotation:async(d,p)=>{let f={...l().requests,[p.requestId]:d},S=Zt(d);r&&console.log("requestAnnotation",{response:S,request:d});try{let{points:v=[],open:h=!0}=S.polygon||{},{requestId:y,canvasId:R=null,toolId:C}=p,P=C,A=l(),T=A.validRequestIds.includes(y),z=S.requestType;return r&&console.log("setting points",{requestType:z,points:v,open:h}),!T||A.tool.enabled?null:(m.setShape({id:y,points:v,open:h}),z==="polygon"&&(P=P||"pen",m.tools.setTool("pen")),z==="draw"&&(P=P||"draw",m.tools.setTool("pencil")),z==="box"&&(P=P||"box",m.tools.setTool("box")),z==="target"?(P=P||"box",m.tools.setTool("box"),m.lockAspectRatio(),m.tools.lockToolSwitching(),m.tools.setCanDeselect(!1),m.tools.setCanDelete(!1)):(m.tools.unlockToolSwitching(),m.tools.setCanDeselect(!0),m.tools.setCanDelete(!0)),d.bounds&&m.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:y}),s({polygon:{id:y,points:v,open:h},mode:"sketch",requestType:z,tool:{enabled:!0,requestId:y,canvasId:R},requests:f}),P?A.switchTool[P]?.():v.length===0&&A.switchTool.box(),(typeof d.selectByDefault>"u"&&v.length&&z==="box"||d.selectByDefault)&&A.switchTool.pointer(),new Promise(U=>{let E=K=>{K.id===y&&(s(w=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(w.requests).filter(([M])=>M!==y))})),e.off("atlas.request-cancelled",E),e.off("atlas.annotation-completed",V),U(null))},V=K=>{K.id===y&&(s(w=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(w.requests).filter(([M])=>M!==y))})),e.off("atlas.annotation-completed",V),e.off("atlas.request-cancelled",E),U(K))};e.on("atlas.request-cancelled",E),e.on("atlas.annotation-completed",V)}))}catch(v){return console.error(v),null}},completeRequest:d=>{let p=l().tool.requestId;if(typeof d=="string"&&d&&d!==p)return;let g=p?l().requests[p]?.arguments||{}:{},f=p?l().metadata[p]||{}:{},S=l().polygonState.bounds,v=l().polygon;v&&(e.emit("atlas.annotation-completed",{id:v.id,polygon:v,requestType:l().requestType,target:Mt(v,S),canvasId:l().tool.canvasId,boundingBox:Fe(v),metadata:f,arguments:{...g}}),m.setShape(null))},setAtlasRuntime:d=>{c=d,e.emit("atlas.ready",{runtime:d}),a.setScale(1/c._lastGoodScale),c.world.addLayoutSubscriber((p,g)=>{(p==="event-activation"||p==="zoom-to"||p==="go-home")&&c?._lastGoodScale&&!Number.isNaN(c._lastGoodScale)&&a.setScale(1/c._lastGoodScale)}),s({runtime:c})},clearAtlasRuntime:()=>{c=null,s({stableViewport:null,runtime:null})},setCanvasRelativePosition:(d,p)=>{s(g=>({canvasRelativePositions:{...g.canvasRelativePositions,[d]:p}}))},clearCanvasRelativePosition:d=>{s(p=>{let g={...p.canvasRelativePositions};return delete g[d],{canvasRelativePositions:g}})},changeMode:d=>{s({mode:d})},nudgeLeft:d=>{if(!c)return;let p=c.getViewport(),g=d??p.width*.1;c.world.gotoRegion({x:p.x-g,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeRight:d=>{if(!c)return;let p=c.getViewport(),g=d??p.width*.1;c.world.gotoRegion({x:p.x+g,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeUp:d=>{if(!c)return;let p=c.getViewport(),g=d??p.height*.1;c.world.gotoRegion({x:p.x,y:p.y-g,width:p.width,height:p.height,nudge:!0})},nudgeDown:d=>{if(!c)return;let p=c.getViewport(),g=d??p.height*.1;c.world.gotoRegion({x:p.x,y:p.y+g,width:p.width,height:p.height,nudge:!0})},zoomIn:()=>{c?.world?.zoomIn()},zoomOut:()=>{c?.world?.zoomOut()},goHome:()=>{c?.world?.goHome()},goToRegion:d=>{c?.world?.gotoRegion(d)},getRuntime:()=>c}}),a=i.getState().polygons;return e.on("atlas.annotation-request",()=>{a.clock.start((s,l,c)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:c})},s=>{typeof s=="object"?i.setState({polygonState:s}):i.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{a.clock.stop()}),e.on("atlas.request-cancelled",()=>{a.clock.stop()}),i}var ar=require("react/jsx-runtime"),st=(0,Me.createContext)(null);function O(){return(0,Me.useContext)(st)}var ir={};function sr(e="atlas"){return ir[e]?.getState()}function Et({children:e,name:t="atlas",existing:n,atlasStoreConfig:o}){let r=or(),i=(0,Me.useContext)(st),a=(0,Me.useMemo)(()=>n||i||rr({events:r,...o||{}}),[r,n,i]),s=(0,aa.useStore)(a,l=>l.mode);return(0,Me.useEffect)(()=>{let l=t;return l&&(ir[l]=a),()=>{l&&delete ir[l]}},[a,t]),(0,ar.jsx)(st.Provider,{value:a,children:(0,ar.jsx)(ia.ModeContext.Provider,{value:s||"explore",children:e})})}var nn=require("@atlas-viewer/atlas"),ya=require("react");var Nt=require("react"),sa=require("react/jsx-runtime");function lr(){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 ur=(0,Nt.createContext)(lr());ur.displayName="AnnotationStyle";function Jt(){return(0,Nt.useContext)(ur)}function Dl({theme:e,children:t}){let n=(0,Nt.useMemo)(()=>e||lr(),[e]);return(0,sa.jsx)(ur.Provider,{value:n,children:t})}var ca=require("@iiif/helpers/annotation-targets"),ma=require("react");var Vt=require("react"),la=require("zustand"),ua=(0,la.create)()((e,t)=>{let n=new Map,o=()=>Math.random().toString(36).substring(2,15),r=i=>{let a=n.get(i);if(a)return a;let s=o();return n.set(i,s),s};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(i){let{loadStylesheet:a,setStylesheet:s}=t();if(!i)return null;if(typeof i=="string")return i.startsWith("http")?{id:i,type:"CssStylesheet",value:await a(i)}:{id:s(i),type:"CssStylesheet",value:i};if(i.type==="CssStylesheet"){let l=i.id;if("value"in i){let c=Array.isArray(i.value)?i.value.join(`
|
|
1
|
+
"use strict";var vl=Object.create;var On=Object.defineProperty;var Sl=Object.getOwnPropertyDescriptor;var xl=Object.getOwnPropertyNames;var bl=Object.getPrototypeOf,Cl=Object.prototype.hasOwnProperty;var Rl=(e,t)=>{for(var n in t)On(e,n,{get:t[n],enumerable:!0})},zn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of xl(t))!Cl.call(e,r)&&r!==n&&On(e,r,{get:()=>t[r],enumerable:!(o=Sl(t,r))||o.enumerable});return e},b=(e,t,n)=>(zn(e,t,"default"),n&&zn(n,t,"default")),J=(e,t,n)=>(n=e!=null?vl(bl(e)):{},zn(t||!e||!e.__esModule?On(n,"default",{value:e,enumerable:!0}):n,e)),Pl=e=>zn(On({},"__esModule",{value:!0}),e);var x={};Rl(x,{AnnotationContext:()=>Mu,AnnotationPageContext:()=>Eu,AnnotationStyleProvider:()=>Dl,AtlasStoreProvider:()=>Et,AtlasStoreReactContext:()=>st,Auth:()=>er,AuthProvider:()=>Zo,AuthRContext:()=>ot,AuthReactContext:()=>_i,AuthReactContextActions:()=>Yi,CanvasAnnotations:()=>Su,CanvasContext:()=>pe,CanvasPanel:()=>Y,CanvasStrategyProvider:()=>di,CanvasWorldObject:()=>gi,CollectionContext:()=>Nu,CombinedMetadata:()=>xu,ComplexTimelineProvider:()=>Nr,ContextBridge:()=>vn,ControlsReactContext:()=>an,CreateCustomShape:()=>Si,CustomContextBridge:()=>bs,CustomContextBridgeProvider:()=>eu,DEFAULT_BEZIER:()=>ln,DEFAULT_POLL_INTERVAL:()=>Vr,DefaultEditingTools:()=>Es,EASING_PRESETS:()=>Ke,EventEmitterProvider:()=>Bl,EventsProvider:()=>Jl,Image:()=>nl,ImageService:()=>Cu,ImageServiceLoaderContext:()=>La,InnerViewerProvider:()=>Ji,LanguageProvider:()=>Kl,LanguageString:()=>Za,LocaleString:()=>de,ManifestContext:()=>Fo,ManifestMetadata:()=>Pu,MediaPlayerProvider:()=>on,Metadata:()=>Nn,PolygonSelector:()=>vu,RangeContext:()=>$o,ReactEmitterContext:()=>Un,ReactEventContext:()=>yt,ReactVaultContext:()=>He,RegionHighlight:()=>fr,Render3DModelStrategy:()=>br,RenderAccompanyingCanvas:()=>Cr,RenderAnnotation:()=>ut,RenderAnnotationEditing:()=>Jr,RenderAnnotationPage:()=>$e,RenderAnnotationStrategy:()=>Ir,RenderAudioStrategy:()=>Mr,RenderComplexTimelineStrategy:()=>Wr,RenderEmptyStrategy:()=>Ur,RenderImageStrategy:()=>_r,RenderSvgEditorControls:()=>ku,RenderTextualContentStrategy:()=>Yr,RenderVideoStrategy:()=>Gr,RenderYouTubeStrategy:()=>jr,ResizeWorldItem:()=>dr,ResourceProvider:()=>ae,ResourceReactContext:()=>_t,SelectorControllerProvider:()=>gu,SequenceThumbnails:()=>Iu,SimpleViewerProvider:()=>nr,SimpleViewerReactContext:()=>wt,SingleCanvasThumbnail:()=>Ai,StrategyReactContext:()=>Ue,ThumbnailFallbackImage:()=>ft,TranslationProvider:()=>Yl,TransliterationProvider:()=>Gl,VaultProvider:()=>we,ViewerPresetContext:()=>Pe,VirtualAnnotationProvider:()=>Tr,VisibleCanvasReactContext:()=>tt,annotationResponseToSelector:()=>ju,authDetailsForResource:()=>jo,buildTransitions:()=>zr,createAtlasStore:()=>rr,createAuthStateStore:()=>Ko,createProbe:()=>Go,cubicBezierEasing:()=>xe,defaultEmitter:()=>ys,defaultSvgTheme:()=>ps,emptyActions:()=>ei,emptyStrategy:()=>ti,findAllCanvasesInRange:()=>Hn,findFirstCanvasFromRange:()=>Di,findManifestSelectedRange:()=>Tl,findSelectedRange:()=>Wo,flattenAnnotationPageIds:()=>ni,formatTime:()=>Gn,get3dStrategy:()=>ii,getAtlasStoreByName:()=>sr,getComplexTimelineStrategy:()=>li,getDefaultAnnotationStyles:()=>lr,getImageStrategy:()=>Tn,getManifestSequence:()=>Dn,getParsedTargetSelector:()=>bn,getRenderingStrategy:()=>kn,getStepFromProgress:()=>Or,getTextualContentStrategy:()=>In,getVideoStrategy:()=>wn,getVisibleCanvasesFromCanvasId:()=>Il,hasAuth:()=>wl,interpolateRect:()=>Lr,isBoxSelector:()=>ql,isRectangle:()=>kt,isSvgSelector:()=>na,makeAccessServiceRequest:()=>_o,makeAccessTokenRequest:()=>Fn,parseSpecificResource:()=>ru,polygonToTarget:()=>Mt,requestToAnnotationResponse:()=>Zt,seraliseSupportedSelector:()=>_n,svgThemes:()=>fu,targetIntersects:()=>Gu,unknownResponse:()=>Cn,unsupportedStrategy:()=>B,useAnnotation:()=>en,useAnnotationPage:()=>gr,useAnnotationPageManager:()=>Pn,useAnnotationStyles:()=>Jt,useAnnotationsAtTime:()=>Vu,useAtlasContextMenu:()=>xn,useAtlasStore:()=>O,useAuthActions:()=>Ki,useAuthService:()=>Gi,useAuthStore:()=>Tt,useAuthToken:()=>Ml,useAuthTokens:()=>Qo,useCanvas:()=>I,useCanvasChoices:()=>Lu,useCanvasClock:()=>zu,useCanvasSequence:()=>Uo,useCanvasStartTime:()=>rn,useCanvasSubset:()=>Ou,useClosestLanguage:()=>es,useCollection:()=>Bu,useComplexTimeline:()=>_l,useContextBridge:()=>yn,useContextMenuStore:()=>ks,useCreateLocaleString:()=>jl,useCurrentAnnotationActions:()=>qu,useCurrentAnnotationMetadata:()=>Hu,useCurrentAnnotationRequest:()=>Zr,useCurrentAnnotationTransition:()=>Du,useCurrentAuth:()=>kl,useCustomContextBridge:()=>hn,useDispatch:()=>Rr,useEmitter:()=>or,useEvent:()=>at,useEventEmitter:()=>pn,useEventListener:()=>Fu,useExistingVault:()=>ke,useExternalCollection:()=>$u,useExternalManifest:()=>Do,useExternalResource:()=>Kt,useIIIFLanguage:()=>ao,useImage:()=>Eo,useImageService:()=>ki,useImageServiceLoader:()=>sn,useImageTile:()=>Wu,useIsAuthEnabled:()=>Jo,useLoadImageService:()=>An,useLocaleString:()=>ts,useManifest:()=>F,useMediaActions:()=>$l,useMediaElements:()=>Wl,useMediaState:()=>Fl,usePaintables:()=>ri,usePaintingAnnotations:()=>Oe,usePolygonHelper:()=>Qr,useRange:()=>Gt,useRemoteStylesheet:()=>cr,useRenderControls:()=>se,useRenderingStrategy:()=>ci,useRequestAnnotation:()=>vi,useResourceContext:()=>ee,useResourceEvents:()=>tn,useResources:()=>oi,useSearchService:()=>tr,useSelectorController:()=>Ci,useSelectorEmitter:()=>hu,useSelectorEvents:()=>bi,useSelectorHelper:()=>yu,useSimpleMediaPlayer:()=>ct,useSimpleViewer:()=>rt,useStaticRenderingStrategy:()=>Uu,useStrategy:()=>H,useStyleHelper:()=>_u,useStyles:()=>lt,useStylesheetStore:()=>ua,useSvgEditor:()=>Xr,useSvgEditorControls:()=>Ti,useThumbnail:()=>Ve,useTranslations:()=>qr,useTransliteration:()=>Br,useVault:()=>k,useVaultEffect:()=>wr,useVaultSelector:()=>L,useViewerPreset:()=>cn,useViewportScroll:()=>Ku,useViewportTour:()=>Yu,useVirtualAnnotationPage:()=>Pr,useVirtualAnnotationPageContext:()=>Ar,useVisibleCanvases:()=>nt});module.exports=Pl(x);b(x,require("@iiif/helpers/annotation-targets"),module.exports);var St=require("react");var Rt=J(require("react"),1),Mi=require("react/jsx-runtime"),Al={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},_t=Rt.default.createContext(Al),ee=()=>(0,Rt.useContext)(_t);function ae({value:e,children:t}){let n=ee(),o=(0,Rt.useMemo)(()=>({...n,...e}),[e,n]);return(0,Mi.jsx)(_t.Provider,{value:o,children:t})}var Ei=require("react/jsx-runtime");function pe({canvas:e,children:t}){return(0,Ei.jsx)(ae,{value:{canvas:e},children:t})}var Bn=J(require("react"),1),Yt=require("@iiif/helpers/vault");var Ho=require("react/jsx-runtime"),He=Bn.default.createContext({vault:null,setVaultInstance:e=>{}});function we({vault:e,vaultOptions:t,useGlobal:n,resources:o,children:r}){let[i,a]=(0,Bn.useState)(()=>e||(n?(0,Yt.globalVault)(t):t?new Yt.Vault(t):new Yt.Vault));return(0,Ho.jsx)(He.Provider,{value:{vault:i,setVaultInstance:a},children:(0,Ho.jsx)(ae,{value:o||{},children:r})})}var Vi=require("react"),Li=J(require("react"),1);var Ni=require("react"),k=()=>{let{vault:e}=(0,Ni.useContext)(He);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var qn=require("react");function L(e,t=[]){let n=k(),[o,r]=(0,qn.useState)(()=>e(n.getState(),n));return(0,qn.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{r(i)},!1),t),o}var tt=Li.default.createContext([]);function nt(){let e=(0,Vi.useContext)(tt);return L(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var zi=require("@iiif/helpers/vault"),Oi=require("react");function ke(e){let t=(0,Oi.useContext)(He);return e||(t&&t.vault?t.vault:(0,zi.globalVault)())}var Bi=require("react");function F(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=k(),a=n||r.manifest,s=L(l=>a?l.iiif.entities.Manifest[a]:void 0,[a]);return(0,Bi.useMemo)(()=>{if(s)return o?o(s):s},[s,o,...t])}var Zi=require("react"),Wn=require("react");var De=require("react");function Kt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,o=ke(),[r,i]=(0,De.useState)(n),[a,s]=(0,De.useState)(void 0),l=(0,De.useMemo)(()=>o.get(n,{skipSelfReturn:!0})||void 0,[n,o]),[c,u]=(0,De.useState)(l);return(0,De.useEffect)(()=>{(async()=>{try{let m=l&&!t?l:await o.load(n),d=m?m.id||m["@id"]:null;m&&r!==d&&i(d),u(m)}catch(m){s(m)}})()},[n,t]),{isLoaded:!!c,id:r,requestId:n,error:a,resource:c,cached:!!(c&&c===l)}}function Do(e,t){let{id:n,isLoaded:o,error:r,resource:i,requestId:a,cached:s}=Kt(e,t);return{id:n,isLoaded:o,error:r,manifest:i,requestId:a,cached:s}}var qi=require("react/jsx-runtime");function Fo({manifest:e,children:t}){return(0,qi.jsx)(ae,{value:{manifest:e},children:t})}var Hi=require("react/jsx-runtime");function $o({range:e,children:t}){return(0,Hi.jsx)(ae,{value:{range:e},children:t})}function Di(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let o=Di(e,e.get(n));if(o)return o}}return null}function Hn(e,t){let n=[];for(let o of t.items)if(o.type==="SpecificResource"&&o.source?.type==="Canvas"&&(o.source.id.indexOf("#")!==-1?n.push({id:o.source.id.split("#")[0],type:"Canvas"}):n.push(o.source)),o.type==="Range"&&n.push(...Hn(e,e.get(o))),o.type==="SpecificResource"){let r=typeof o.source=="string"?o.source:o.source.id;n.push({id:r,type:"Canvas"})}return n}function Tl(e,t,n){for(let o of t.structures){let r=Wo(e,e.get(o),n);if(r)return r}return null}function Wo(e,t,n){for(let o of t.items){let r=o?.source?.id?.split("#")[0];if(o.type==="SpecificResource"&&o.source===n||o.type==="SpecificResource"&&o.source?.type==="Canvas"&&n===r)return t;if(o.type==="Range"){let i=Wo(e,e.get(o),n);if(i)return i}}return null}function Il(e,t,n,o=!1){let r=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=o?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),c=s||l?!1:r.includes("individuals"),u=a.includes("facing-pages"),m=a.includes("non-paged");if(u||m||c||o)return[{id:i.id,type:"Canvas"}];let[d,p]=Dn(e,t);if(l)return d;let g=d.findIndex(f=>f.id===n);if(g===-1)return[];for(let f of p)if(f.includes(g))return f.map(S=>d[S]);return[{id:i.id,type:"Canvas"}]}function Dn(e,t,{disablePaging:n,skipNonPaged:o}={}){let r=t.behavior,i=r.includes("paged"),a=i?!1:r.includes("continuous"),s=i||a?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:Hn(e,t);if(a)return[l,[l.map((g,f)=>f)]];if(s||!i||n)return[l,l.map((g,f)=>[f])];let c=[],u=[],m=()=>{u.length&&(c.push([...u]),u=[])},d=0,p=!1;for(let g=0;g<l.length;g++){let f=e.get(l[g]);if(f.behavior.includes("non-paged")){g===d&&d++,o||(m(),c.push([g]),m());continue}if(g===d||f.behavior.includes("facing-pages")){u.length&&(p=!0),m(),c.push([g]),m();continue}if(u.push(g),p){m(),p=!1;continue}u.length>1&&m()}return u.length&&m(),[l,c]}var ye=require("react");var Fi=require("react");function Gt(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=n||r.range,a=L(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Fi.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}function Uo({startCanvas:e,disablePaging:t}){let n=k(),o=F(),r=Gt(),[i,a]=(0,ye.useState)(void 0),s=r||o;if(!s)throw new Error("Nothing selected");let[l,c]=(0,ye.useMemo)(()=>Dn(n,s,{disablePaging:t}),[n,s,t]),u=(0,ye.useRef)(c);if(u.current!==c){let S=u.current[i][0],v=c.findIndex(h=>h.includes(S));u.current=c,a(v)}let m=(0,ye.useCallback)(f=>{let S=c.findIndex(v=>v.includes(f));a(S===-1?0:S)},[l,c]),d=(0,ye.useCallback)(f=>{let S=l.findIndex(v=>v.id===f);S!==-1?m(S):a(0)},[l,c]),p=(0,ye.useCallback)(()=>{a(f=>f>=c.length-1?f:f+1)},[c]),g=(0,ye.useCallback)(()=>{a(f=>f<=0?0:f-1)},[c]);return typeof i>"u"&&(e?d(e):a(0)),{visibleItems:c[i]?.map(f=>l[f].id)||[],cursor:i,items:l,sequence:c,hasPrevious:i>0,hasNext:i<c.length-1,setSequenceIndex:a,setCanvasIndex:m,setCanvasId:d,next:p,previous:g}}var Se=require("react"),At=require("zustand");var Yo=require("zustand/vanilla");function wl(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function ve(e,t,n){let o=t.findIndex(a=>a.service.id===e);if(o===-1)return t;let r=[...t],i=n(r[o]);return i===r[o]?t:(r[o]=i,r)}var Ko=()=>(0,Yo.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let o=n.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!o)throw new Error("Token service not found");e(()=>({authItems:ve(n.id,t().authItems,r=>({...r,isPending:!0}))})),_o(n.service).then(()=>{Fn(o).then(r=>{let i=r.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:a}}))}))}).catch(r=>{e(()=>({authItems:ve(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let o=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!o)return;let r=`${o.id}?origin=${$i()}`,i=window.open(r);e(()=>({authItems:ve(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,o=t().currentAuth+1;o>=n||e(()=>({currentAuth:o}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,o)=>{if(!n.service)return;let r=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:o,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!r)throw new Error("Token service not found");Fn(r).then(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:ve(n.id,t().authItems,s=>({...s,isPending:!0}))})),_o(i).then(()=>{Fn(r).then(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ve(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,o)=>{let r=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(r){let a=t().authItems.find(l=>l.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(c=>c.service.id!==n.id&&c.instances>0))}e(()=>({authItems:ve(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),Go=(e,t)=>(0,Yo.createStore)((n,o)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!o().service)return;let r=o().service?.id;if(!r){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=o().token;try{let a=await fetch(r,{headers:i?{Authorization:`Bearer ${o().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){n({token:r})}}));function jo(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let o of t)if(o.type==="AuthProbeService2"){n.services.probe=o,n.hasAuth=!0;let r=o.service.filter(i=>i.type==="AuthAccessService2");r[0]&&(n.services.access=r[0])}return n}async function Fn(e,{strict:t=!0}={}){return new Promise((n,o)=>{let r=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${r}&origin=${window.location.origin}`,a=c=>{let u=c.data;if(u.messageId===r){if(t&&u.type!=="AuthAccessToken2"){s(),o("Invalid response, expected type=AuthAccessToken2");return}if(!u.accessToken){s(),o("Invalid response, expected accessToken");return}s(),n(u)}},s=()=>window.removeEventListener("message",a),l=document.createElement("iframe");l.src=i,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",a)})}function $i(e){let t=window.location;if(e){let n=document.createElement("a");return n.href=e,n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function _o(e){let t=`${e.id}?origin=${$i()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((o,r)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),o())},500)})}var Pt=require("react");var Wi=require("zustand");function Ui(e){let t=(0,Pt.useMemo)(()=>jo(e),[e]),n=Qo(t.services.access?.id),o=(0,Pt.useMemo)(()=>Go(t.services.probe,n),[t.services.probe]),r=(0,Wi.useStore)(o);return(0,Pt.useEffect)(()=>{r.status==="unknown"&&!n&&r.probe()},[t.services.probe,r.status]),(0,Pt.useEffect)(()=>{n&&(r.setToken(n),r.probe())},[n]),[e,r,t.hasAuth]}var jt=require("react/jsx-runtime"),ot=(0,Se.createContext)(null),_i=(0,Se.createContext)(null);_i.displayName="CurrentAuth";var Yi=(0,Se.createContext)(null);Yi.displayName="AuthActions";function Zo({children:e}){let t=(0,Se.useMemo)(()=>Ko(),[]);return(0,jt.jsx)(ot.Provider,{value:t,children:e})}function Jo(){return!!(0,Se.useContext)(ot)}function Tt(){let e=(0,Se.useContext)(ot);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ki(){let e=Tt();return(0,At.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function kl(){let e=Tt();return(0,At.useStore)(e,t=>t)}function Gi(e){let t=Tt();return(0,At.useStore)(t,o=>o.authItems.find(r=>r.service.id===e))}function Qo(e){let t=Tt();return(0,At.useStore)(t,o=>o.authItems.find(r=>r.id===e)?.session?.token)}function Ml(e){let t=Tt();return(0,At.useStore)(t,o=>{let r=o.authItems.find(i=>i.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function El(e){let t=Ki(),n=Gi(e.service.id);return(0,Se.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Xo(){return null}function er(e){let[t,n,o]=Ui(e.resource),r=e.fallbackComponent||Xo,i=e.loadingComponent||Xo,a=e.errorComponent||Xo,s=n.service,l=null;if(!o||!s)return e.children(t);let c=s.service.filter(u=>u.type==="AuthAccessService2");n.status==="error"&&(l=(0,jt.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=(0,jt.jsx)(i,{})),n.status==="success"&&(l=e.children(t));for(let u of c)l=(0,jt.jsx)(El,{service:u,probeId:s.id,children:l},u.id);return l}var Qt=require("react");var ji=require("zustand/vanilla"),Nl=e=>e.id||e["@id"];function Vl(e){return(Array.isArray(e.service)?e.service:[e.service]).find(n=>n?.profile==="http://iiif.io/api/search/0/autocomplete"||n?.profile==="http://iiif.io/api/search/1/autocomplete"||n?.profile==="AutoCompleteService1")}var Qi=e=>{let t;typeof e=="string"?t={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:t=e;let n=t?Nl(t):void 0,o=null;return(0,ji.createStore)((r,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Vl(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");o&&!o.signal.aborted&&o.abort(),o=new AbortController;let l=new URLSearchParams;a.q&&l.set("q",a.q),a.motivation&&l.set("motivation",a.motivation),a.date&&l.set("date",a.date),a.user&&l.set("user",a.user),r({loading:!0}),fetch(`${n}?${l.toString()}`,{signal:o.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async c=>{if(!o?.signal.aborted)if(c.ok){let u=await c.json();r({resources:u.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(l=>l["@id"]===a);r({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[0]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[0]||null});return}r({highlight:a[l+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){r({highlight:a[a.length-1]||null});return}let l=a.findIndex(c=>c["@id"]===s["@id"]);if(l===-1){r({highlight:a[a.length-1]||null});return}if(l===0){r({highlight:a[a.length-1]||null});return}r({highlight:a[l-1]||a[a.length-1]||null})}}))};var Ll=require("zustand");function tr(){let e=F();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var $n=require("react/jsx-runtime"),It=(0,Qt.createContext)(null);It.displayName="Search";function Xi(e){let t=tr();return e.store?(0,$n.jsx)(It.Provider,{value:e.store,children:e.children}):(0,$n.jsx)(zl,{service:t,children:e.children})}function zl({service:e,children:t}){let n=(0,Qt.useMemo)(()=>Qi(e),[e]);return(0,$n.jsx)(It.Provider,{value:n,children:t})}var ue=require("react/jsx-runtime"),Xt=()=>{},wt=(0,Wn.createContext)({setCurrentCanvasId:Xt,setCurrentCanvasIndex:Xt,nextCanvas:Xt,previousCanvas:Xt,items:[],sequence:[],setSequenceIndex:Xt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Ji(e){let t=F(),{cursor:n,visibleItems:o,next:r,sequence:i,items:a,setCanvasIndex:s,setCanvasId:l,previous:c,setSequenceIndex:u,hasNext:m,hasPrevious:d}=Uo({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),p=(0,Wn.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:c,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:u,currentSequenceIndex:n,hasNext:m,hasPrevious:d}),[i,a,l,r,c,a,s,u,n]);return t?o.length===0?null:(0,ue.jsx)(wt.Provider,{value:p,children:(0,ue.jsx)(tt.Provider,{value:o,children:(0,ue.jsx)(pe,{canvas:o[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ue.jsx)("div",{children:"Sorry, something went wrong."}))}function nr(e){let t=ke(e.vault),n=Do(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,ue.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,ue.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,ue.jsx)("div",{children:"Loading..."});let o=(0,ue.jsx)(Ji,{...e,children:e.children});return(0,ue.jsx)(we,{vault:t,children:(0,ue.jsx)(Fo,{manifest:n.id,children:(0,ue.jsx)(Zo,{children:(0,ue.jsx)(Xi,{children:e.rangeId?(0,ue.jsx)($o,{range:e.rangeId,children:o}):o})})})})}function rt(){return(0,Zi.useContext)(wt)}var ia=require("@atlas-viewer/atlas"),Me=require("react"),aa=require("zustand");var ea=J(require("mitt"),1),it=require("react"),ta=require("react/jsx-runtime"),Ol=(0,ea.default)(),Un=(0,it.createContext)(Ol);function Bl({children:e,emitter:t}){return(0,ta.jsx)(Un.Provider,{value:t,children:e})}function or(){return(0,it.useContext)(Un)}function at(e,t,n=[]){let o=(0,it.useContext)(Un);(0,it.useEffect)(()=>{let r=i=>{t(i)};return o.on(e,r),()=>{o.off(e,r)}},[o,e,...n])}var oa=require("polygon-editor"),ra=require("zustand/vanilla");function kt(e){let t=Math.max(...e.map(i=>i[0])),n=Math.min(...e.map(i=>i[0])),o=Math.max(...e.map(i=>i[1])),r=Math.min(...e.map(i=>i[1]));for(let i of e)if(i[0]!==n&&i[0]!==t&&i[1]!==r&&i[1]!==o||i[0]<n||i[0]>t||i[1]<r||i[1]>o)return!1;return!0}function Fe(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(i=>i[0])),n=Math.min(...e.points.map(i=>i[1])),o=Math.max(0,...e.points.map(i=>i[0])),r=Math.max(0,...e.points.map(i=>i[1]));return{x:t,y:n,width:o-t,height:r-n}}return null}function na(e){return e.type==="SvgSelector"}function ql(e){return e.type==="BoxSelector"}function _n(e,t){if(na(e)){let a=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:s,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${l}" width="${s}" height="${l}"><${a?"polygon":"polyline"} points="${e.points.map(u=>u.join(",")).join(" ")}" /></svg>`}}return{type:"SvgSelector",value:`<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g><path d='M${e.points.map(s=>s.join(",")).join(" ")}${a?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:n,y:o,width:r,height:i}=e.spatial||{};return!r||!i?null:{type:"FragmentSelector",value:`xywh=${~~n},${~~o},${~~r},${~~i}`}}function Mt(e,t){if(!e||!e.points.length)return null;if(kt(e.points)){let n=e.points.map(l=>l[0]),o=e.points.map(l=>l[1]),r=Math.min(...n),i=Math.min(...o),a=Math.max(...n)-r,s=Math.max(...o)-i;return _n({type:"BoxSelector",spatial:{x:r,y:i,width:a,height:s}},t)}return _n({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function Zt(e){if(e.type==="polygon"&&!e.noBox&&e.points&&kt(e.points)){let n=Fe({open:!1,points:e.points||[]});return Zt({...e,type:"box",selector:n})}if(e.type==="polygon"||e.type==="draw")return{polygon:{points:e.points||[],open:e.open||!1},requestType:e.type,boundingBox:Fe({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Mt({points:e.points||[],open:!1},e.bounds)};let t=e.selector;if(t){let n=[[t.x,t.y],[t.x+t.width,t.y],[t.x+t.width,t.y+t.height],[t.x,t.y+t.height]];return{polygon:{points:n,open:!1},requestType:e.type,boundingBox:t,metadata:{},target:Mt({points:n,open:!1},e.bounds),arguments:e.arguments||{}}}return{polygon:{points:[],open:!1},requestType:e.type,boundingBox:null,target:null,metadata:{},arguments:e.arguments||{}}}var 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 rr({events:e,enabledTools:t,keyboardShortcutMapping:n,keyboardShortcutsEnabled:o=!1,debug:r}){let i=(0,ra.createStore)((s,l)=>{let c=null,m=(0,oa.createHelper)({emitter:e,keyboardShortcutsEnabled:o,keyboardShortcutMapping:n,enabledTools:t,customSetState:d=>{r&&console.log("partial state",d),s(p=>({polygonState:{...p.polygonState,...d}}))}},d=>{s(p=>p.tool.requestId?{polygon:{...d,id:p.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",d)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},runtime:null,requestType:null,requests:{},history:m.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:m,polygonState:Hl,setMetadata:(d,p)=>{let g=p||l().tool.requestId;g&&s(f=>({metadata:{...f.metadata,[g]:{...f.metadata[g]||{},...d}}}))},setToolCanvasId:d=>{s(p=>({tool:{...p.tool,canvasId:d}}))},switchTool:{pointer(){s({mode:"sketch"}),a.tools.setTool("pointer")},hand(){s({mode:"explore"}),a.tools.setTool("hand")},draw(){s({mode:"sketch"}),a.tools.setTool("pencil")},pen(){s({mode:"sketch"}),a.tools.setTool("pen")},line(){s({mode:"sketch"}),a.tools.setTool("line")},lineBox(){s({mode:"sketch"}),a.tools.setTool("lineBox")},box(){s({mode:"sketch"}),a.tools.setTool("box")},triangle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.triangle()},hexagon(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.hexagon()},circle(){s({mode:"sketch"}),a.tools.setTool("stamp"),a.stamps.circle()},remove(){let d=l();d.tool.requestId&&(m.setShape({points:[],open:!0}),d.cancelRequest(d.tool.requestId))}},reset:()=>{let d=l();d.tool.requestId&&d.cancelRequest(d.tool.requestId)},setPolygonState:d=>s({polygonState:typeof d=="function"?d(l().polygonState):d}),getRequestId:()=>{let d=Math.random().toString(36).slice(2);return s(p=>({validRequestIds:[...p.validRequestIds,d]})),{requestId:d,clear:()=>{l().tool.requestId,s(p=>({tool:p.tool.requestId===d?{enabled:!1,requestId:null,canvasId:null}:p.tool,validRequestIds:p.validRequestIds.filter(g=>g!==d)}))}}},cancelRequest:d=>{let p=d||l().tool.requestId;p&&(s(g=>({mode:"explore",tool:g.tool.requestId===p?{enabled:!1,requestId:null,canvasId:null}:g.tool,validRequestIds:g.validRequestIds.filter(f=>f!==p)})),e.emit("atlas.request-cancelled",{id:p}))},requestAnnotation:async(d,p)=>{let f={...l().requests,[p.requestId]:d},S=Zt(d);r&&console.log("requestAnnotation",{response:S,request:d});try{let{points:v=[],open:h=!0}=S.polygon||{},{requestId:y,canvasId:R=null,toolId:C}=p,P=C,A=l(),T=A.validRequestIds.includes(y),z=S.requestType;return r&&console.log("setting points",{requestType:z,points:v,open:h}),!T||A.tool.enabled?null:(m.setShape({id:y,points:v,open:h}),z==="polygon"&&(P=P||"pen",m.tools.setTool("pen")),z==="draw"&&(P=P||"draw",m.tools.setTool("pencil")),z==="box"&&(P=P||"box",m.tools.setTool("box")),z==="target"?(P=P||"box",m.tools.setTool("box"),m.lockAspectRatio(),m.tools.lockToolSwitching(),m.tools.setCanDeselect(!1),m.tools.setCanDelete(!1)):(m.tools.unlockToolSwitching(),m.tools.setCanDeselect(!0),m.tools.setCanDelete(!0)),d.bounds&&m.setBounds(d.bounds),e.emit("atlas.annotation-request",{id:y}),s({polygon:{id:y,points:v,open:h},mode:"sketch",requestType:z,tool:{enabled:!0,requestId:y,canvasId:R},requests:f}),P?A.switchTool[P]?.():v.length===0&&A.switchTool.box(),(typeof d.selectByDefault>"u"&&v.length&&z==="box"||d.selectByDefault)&&A.switchTool.pointer(),new Promise(U=>{let E=K=>{K.id===y&&(s(w=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(w.requests).filter(([M])=>M!==y))})),e.off("atlas.request-cancelled",E),e.off("atlas.annotation-completed",V),U(null))},V=K=>{K.id===y&&(s(w=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(w.requests).filter(([M])=>M!==y))})),e.off("atlas.annotation-completed",V),e.off("atlas.request-cancelled",E),U(K))};e.on("atlas.request-cancelled",E),e.on("atlas.annotation-completed",V)}))}catch(v){return console.error(v),null}},completeRequest:d=>{let p=l().tool.requestId;if(typeof d=="string"&&d&&d!==p)return;let g=p?l().requests[p]?.arguments||{}:{},f=p?l().metadata[p]||{}:{},S=l().polygonState.bounds,v=l().polygon;v&&(e.emit("atlas.annotation-completed",{id:v.id,polygon:v,requestType:l().requestType,target:Mt(v,S),canvasId:l().tool.canvasId,boundingBox:Fe(v),metadata:f,arguments:{...g}}),m.setShape(null))},setAtlasRuntime:d=>{c=d,e.emit("atlas.ready",{runtime:d}),a.setScale(1/c._lastGoodScale),c.world.addLayoutSubscriber((p,g)=>{(p==="event-activation"||p==="zoom-to"||p==="go-home")&&c?._lastGoodScale&&!Number.isNaN(c._lastGoodScale)&&a.setScale(1/c._lastGoodScale)}),s({runtime:c})},clearAtlasRuntime:()=>{c=null,s({stableViewport:null,runtime:null})},setCanvasRelativePosition:(d,p)=>{s(g=>({canvasRelativePositions:{...g.canvasRelativePositions,[d]:p}}))},clearCanvasRelativePosition:d=>{s(p=>{let g={...p.canvasRelativePositions};return delete g[d],{canvasRelativePositions:g}})},changeMode:d=>{s({mode:d})},nudgeLeft:d=>{if(!c)return;let p=c.getViewport(),g=d??p.width*.1;c.world.gotoRegion({x:p.x-g,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeRight:d=>{if(!c)return;let p=c.getViewport(),g=d??p.width*.1;c.world.gotoRegion({x:p.x+g,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeUp:d=>{if(!c)return;let p=c.getViewport(),g=d??p.height*.1;c.world.gotoRegion({x:p.x,y:p.y-g,width:p.width,height:p.height,nudge:!0})},nudgeDown:d=>{if(!c)return;let p=c.getViewport(),g=d??p.height*.1;c.world.gotoRegion({x:p.x,y:p.y+g,width:p.width,height:p.height,nudge:!0})},zoomIn:()=>{c?.world?.zoomIn()},zoomOut:()=>{c?.world?.zoomOut()},goHome:()=>{c?.world?.goHome()},goToRegion:d=>{c?.world?.gotoRegion(d)},getRuntime:()=>c}}),a=i.getState().polygons;return e.on("atlas.annotation-request",()=>{a.clock.start((s,l,c)=>{e.emit("atlas.polygon-render",{state:s,slowState:l,dt:c})},s=>{typeof s=="object"?i.setState({polygonState:s}):i.setState(l=>({polygonState:s(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{a.clock.stop()}),e.on("atlas.request-cancelled",()=>{a.clock.stop()}),i}var ar=require("react/jsx-runtime"),st=(0,Me.createContext)(null);function O(){return(0,Me.useContext)(st)}var ir={};function sr(e="atlas"){return ir[e]?.getState()}function Et({children:e,name:t="atlas",existing:n,atlasStoreConfig:o}){let r=or(),i=(0,Me.useContext)(st),a=(0,Me.useMemo)(()=>n||i||rr({events:r,...o||{}}),[r,n,i]),s=(0,aa.useStore)(a,l=>l.mode);return(0,Me.useEffect)(()=>{let l=t;return l&&(ir[l]=a),()=>{l&&delete ir[l]}},[a,t]),(0,ar.jsx)(st.Provider,{value:a,children:(0,ar.jsx)(ia.ModeContext.Provider,{value:s||"explore",children:e})})}var nn=require("@atlas-viewer/atlas"),ya=require("react");var Nt=require("react"),sa=require("react/jsx-runtime");function lr(){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 ur=(0,Nt.createContext)(lr());ur.displayName="AnnotationStyle";function Jt(){return(0,Nt.useContext)(ur)}function Dl({theme:e,children:t}){let n=(0,Nt.useMemo)(()=>e||lr(),[e]);return(0,sa.jsx)(ur.Provider,{value:n,children:t})}var ca=require("@iiif/helpers/annotation-targets"),ma=require("react");var Vt=require("react"),la=require("zustand"),ua=(0,la.create)()((e,t)=>{let n=new Map,o=()=>Math.random().toString(36).substring(2,15),r=i=>{let a=n.get(i);if(a)return a;let s=o();return n.set(i,s),s};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(i){let{loadStylesheet:a,setStylesheet:s}=t();if(!i)return null;if(typeof i=="string")return i.startsWith("http")?{id:i,type:"CssStylesheet",value:await a(i)}:{id:s(i),type:"CssStylesheet",value:i};if(i.type==="CssStylesheet"){let l=i.id;if("value"in i){let c=Array.isArray(i.value)?i.value.join(`
|
|
2
2
|
`):i.value;if(c)return{id:s(c,l),type:"CssStylesheet",value:c}}if("id"in i&&i.id){let c=await a(i.id);return{id:i.id,type:"CssStylesheet",value:c}}}return null},async loadStylesheet(i){if(t().loading.includes(i))return"";try{let s=await fetch(i);if(!s.ok)throw new Error(`Failed to load stylesheet from ${i}`);let l=await s.text();return e(c=>({stylesheets:{...c.stylesheets,[i]:l}})),l}catch(s){return e(l=>({errors:[...l.errors,{url:i,error:s}]})),""}},setStylesheet(i,a){let s=a||r(i);return e(l=>({stylesheets:{...l.stylesheets,[s]:i}})),s}}});function cr(e){let[t,n]=(0,Vt.useState)(""),{loading:o,errors:r,stylesheets:i,parseStylesheet:a}=ua();return(0,Vt.useEffect)(()=>{e&&a(e).then(l=>{l?.id&&n(l.id)})},[e,a]),[(0,Vt.useMemo)(()=>{let l={};return t&&i[t]&&(l[t]=i[t]),l},[t,i]),{id:t,stylesheets:i,loading:o,errors:r}]}function en(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=k(),a=n||r.annotation,s=L(u=>a?u.iiif.entities.Annotation[a]:void 0,[a]),[l]=cr(s?.stylesheet),c=L(u=>s&&s.body?s.body.map(m=>m?m.type==="SpecificResource"?{...m,source:i.get(m)}:m?u.iiif.entities[m.type][m.id]:null:null).filter(Boolean):[],[s]);return(0,ma.useMemo)(()=>{if(!s)return;let u={...s,body:c,target:(0,ca.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping,loadedStylesheets:l})};return o?o(u):u},[s,o,c,l,...t])}var da=require("react");function I(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=n||r.canvas,a=L(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,da.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}var mr=require("react"),pa=require("@iiif/helpers/events");function tn(e,t){let n=k(),o=(0,mr.useMemo)(()=>(0,pa.createEventsHelper)(n),[n]),r=L(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,mr.useMemo)(()=>e?o.getListenersAsProps(e,t):{},[r,e,n,t])}var fa=require("react"),ga=require("@iiif/helpers/styles");function lt(e,t){let n=k(),o=(0,fa.useMemo)(()=>(0,ga.createStylesHelper)(n),[n]);return L(()=>{if(!e)return null;let r=o.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var ha=require("react");var Yn=require("@atlas-viewer/atlas"),Te=require("react"),$=require("react/jsx-runtime");function dr({handleSize:e,resizable:t,onSave:n,children:o,maintainAspectRatio:r,disableCardinalControls:i,aspectRatio:a,...s}){let l=typeof e>"u"?r?12:8:e,{portalRef:c,mode:u,mouseEvent:m,isEditing:d}=(0,Yn.useResizeWorldItem)({x:s.x||0,y:s.y||0,width:s.width,height:s.height,aspectRatio:a,maintainAspectRatio:r},n),p=(0,Te.useMemo)(()=>m("translate"),[m]),g=(0,Te.useMemo)(()=>m("east"),[m]),f=(0,Te.useMemo)(()=>m("west"),[m]),S=(0,Te.useMemo)(()=>m("south"),[m]),v=(0,Te.useMemo)(()=>m("north"),[m]),h=(0,Te.useMemo)(()=>m("south-east"),[m]),y=(0,Te.useMemo)(()=>m("south-west"),[m]),R=(0,Te.useMemo)(()=>m("north-east"),[m]),C=(0,Te.useMemo)(()=>m("north-west"),[m]),P=u==="sketch",A={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:r||i?"50%":2,position:"absolute",background:"#fff",pointerEvents:d?"none":P?"initial":"none"};return(0,$.jsx)($.Fragment,{children:(0,$.jsxs)("world-object",{...s,children:[o,P&&t?(0,$.jsx)(Yn.HTMLPortal,{ref:c,target:{x:0,y:0,height:s.height,width:s.width},relative:!0,interactive:!1,children:P&&t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)("div",{onMouseDown:p,onTouchStart:p,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:g,onMouseDown:g,style:{...A,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:i?0:1,transform:`translate(${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"west",onMouseDown:f,style:{...A,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:i?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),(0,$.jsx)("div",{title:"north",onMouseDown:v,style:{...A,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:i?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south",onMouseDown:S,style:{...A,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:i?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),(0,$.jsx)("div",{title:"north-east",onMouseDown:R,style:{...A,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),(0,$.jsx)("div",{title:"south-east",onMouseDown:h,style:{...A,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"south-west",onMouseDown:y,style:{...A,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),(0,$.jsx)("div",{title:"north-west",onMouseDown:C,style:{...A,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}var pr=require("react/jsx-runtime");function fr({id:e,interactive:t,region:n,onClick:o,onHover:r,onSave:i,aspectRatio:a,maintainAspectRatio:s,disableCardinalControls:l,isEditing:c,style:u={backgroundColor:"rgba(0,0,0,.5)"}}){let m=(0,ha.useCallback)(d=>{c&&i?.({id:n.id,x:n.x,y:n.y,height:n.height,width:n.width,...d})},[i,c,n.id,n.x,n.y,n.height,n.width]);return(0,pr.jsx)(dr,{id:e,x:n.x,y:n.y,width:n.width,aspectRatio:a,height:n.height,resizable:c,onSave:m,maintainAspectRatio:s,disableCardinalControls:l,children:(0,pr.jsx)("box",{interactive:t,onClick:d=>{d.preventDefault(),d.stopPropagation(),o?.(n)},relativeStyle:!0,onMouseEnter:()=>{r?.(n)},target:{x:0,y:0,width:n.width,height:n.height},style:u})})}var va=require("react/jsx-runtime"),ut=({id:e,style:t,className:n,interactive:o,targetId:r,ignoreTargetId:i})=>{let a=en({id:e}),s=lt(a,"atlas"),l=lt(a,"html"),c=tn(a,["atlas"]),u=I(),m=Jt(),d=(0,ya.useMemo)(()=>(0,nn.mergeStyles)((0,nn.mergeStyles)((0,nn.mergeStyles)((0,nn.mergeStyles)(t,s),a?.motivation?.includes("highlighting")?m.highlighted:m.default),a?.target?.selector?.boxStyle||{})),[t,s,m,a?.motivation,a?.target]),p=r||u?.id;return u&&a&&a.target&&a.target.selector&&(a.target.selector.type==="BoxSelector"||a.target.selector.type==="SvgSelector")&&a.target.source&&(i?!0:a.target.source.id===p||a.target.source===p)?(0,va.jsx)(fr,{id:a.id,isEditing:!0,region:a.target.selector.spatial,style:d,className:l?.className||n,interactive:!!(l?.href||o),href:l?.href||null,title:l?.title||null,hrefTarget:l?.target||null,onClick:()=>{},...c}):null};var xa=require("react");var Sa=require("react");function gr(e={},t=[]){let{id:n,selector:o}=e,r=ee(),i=n||r.annotationPage,a=L(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,Sa.useMemo)(()=>{if(a)return o?o(a):a},[a,...t])}var hr=require("react/jsx-runtime"),$e=({className:e,page:t,targetId:n,ignoreTargetId:o})=>{let r=gr({id:t.id})||t,i=lt(r,"atlas"),a=lt(r,"html");return L(s=>r.id?s.iiif.entities.AnnotationPage[r.id]:null,[]),(0,hr.jsx)(xa.Fragment,{children:r.items?.map(s=>(0,hr.jsx)(ut,{id:s.id,style:i,className:a?.className||e,targetId:n,ignoreTargetId:o},s.id))})};var We=require("react"),Kn=require("react/jsx-runtime"),ba=(0,We.createContext)(null),Ca=(0,We.createContext)(null),Ra=(0,We.createContext)(null);function Fl(){let e=(0,We.useContext)(ba);if(!e)throw new Error("Ctx not found");return e}function $l(){let e=(0,We.useContext)(Ca);if(!e)throw new Error("Ctx not found");return e}function Wl(){let e=(0,We.useContext)(Ra);if(!e)throw new Error("Ctx not found");return e}function on({actions:e,state:t,children:n,currentTime:o,progress:r,element:i}){return(0,Kn.jsx)(Ra.Provider,{value:{currentTime:o,progress:r,element:i},children:(0,Kn.jsx)(Ca.Provider,{value:e,children:(0,Kn.jsx)(ba.Provider,{value:t,children:n})})})}var Pa=require("react");var Aa=require("@iiif/helpers");function rn(){let e=F(),t=I();return(0,Pa.useMemo)(()=>{if(!e||!t||!e.start)return null;let n=(0,Aa.expandTarget)(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}var D=require("react");function Ta(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Ul(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 Gn(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function ct(e){let[t,n]=(0,D.useReducer)(Ul,Ta(e.duration));(0,D.useEffect)(()=>{n({type:"RESET",state:Ta(e.duration)})},[e.duration]);let o=(0,D.useRef)(null),r=(0,D.useRef)(null),i=(0,D.useRef)(null),a=(0,D.useRef)(!1),s=(0,D.useCallback)(()=>{r.current&&o.current&&(r.current.innerHTML=Gn(o.current.currentTime),i.current&&(i.current.style.width=`${o.current.currentTime/e.duration*100}%`),a.current!==o.current.muted&&(a.current=o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,D.useCallback)(()=>{o.current&&(n({type:"PLAY_REQUESTED"}),o.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),c=(0,D.useCallback)(()=>{o.current&&(o.current.duration>0&&o.current.paused?l():u())},[s]),u=(0,D.useCallback)(()=>{o.current&&(o.current.pause(),n({type:"PAUSE"}),s())},[s]),m=(0,D.useCallback)(()=>{o.current&&(o.current.muted=!o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),d=(0,D.useCallback)(()=>{o.current&&(o.current.muted=!0,n({type:"MUTE"}))},[]),p=(0,D.useCallback)(()=>{o.current&&(o.current.muted=!1,n({type:"UNMUTE"}))},[]),g=(0,D.useCallback)(v=>{o.current&&(o.current.muted=!1,o.current.volume=v/100,n({type:"SET_VOLUME",volume:v}))},[]),f=(0,D.useCallback)(v=>{o.current&&(o.current.currentTime=Math.max(0,Math.min(v*e.duration,e.duration)),s())},[]),S=(0,D.useCallback)(v=>{if(o.current){let h=typeof v=="function"?v(o.current.currentTime):v;o.current.currentTime=Math.max(0,Math.min(h,e.duration)),s()}},[]);return(0,D.useEffect)(()=>{let v=setInterval(()=>{s()},350);return()=>clearInterval(v)},[s,e.duration]),(0,D.useEffect)(()=>{let v=()=>{n({type:"FINISHED"})},h=o.current;return h?.addEventListener("ended",v),()=>h?.removeEventListener("ended",v)},[]),[{element:o,currentTime:r,progress:i},t,{play:l,pause:u,playPause:c,mute:d,unmute:p,toggleMute:m,setVolume:g,setDurationPercent:f,setTime:S}]}var mt=require("react"),yr=(0,mt.createContext)(()=>{}),vr=(0,mt.createContext)(()=>{});function X(e,t,n,o,r=[]){let i=(0,mt.useContext)(e==="portal"?vr:yr);(0,mt.useEffect)(()=>(e!=="none"&&i(t,n,o),()=>{i(t,null)}),[t,e,i,...r])}var Qn=require("react/jsx-runtime");function Sr({media:e,startTime:t,children:n}){let[{element:o,currentTime:r,progress:i},a,s]=ct({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,Qn.jsxs)(on,{state:a,actions:s,currentTime:r,progress:i,element:o,children:[(0,Qn.jsx)("audio",{ref:o,src:l}),n]},e.url)}function jn({media:e,mediaControlsDeps:t,audioCopmonent:n=Sr,children:o}){let r=rn();return X("portal","audio",n,{media:e,startTime:r?r.startTime:null,children:o},[e,r,...t||[]]),null}var Xn=require("react"),Ue=(0,Xn.createContext)(null);Ue.displayName="Strategy";function H(){let e=(0,Xn.useContext)(Ue);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var _e=require("react/jsx-runtime");function xr({model:e}){return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("style",{children:`
|
|
3
3
|
.model-container {
|
|
4
4
|
position: absolute;
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
justify-content: center;
|
|
29
29
|
pointer-events: visible;
|
|
30
30
|
}
|
|
31
|
-
`}),(0,mn.jsx)("video",{poster:r,ref:e,src:a,style:{width:"100%",objectFit:"contain"}})]})}function po({media:e,mediaControlsDeps:t,children:n,videoComponent:o=Kr,captions:r}){let i=I(),a=rn(),s=i&&i.placeholderCanvas&&i.placeholderCanvas.id||void 0,l=Ve({},!1,{canvasId:s}),[{element:c,currentTime:u,progress:m},d,p]=ct({duration:e.duration});return X("overlay","video-element",o,{element:c,media:e,playPause:p.playPause,poster:l?.id,canvas:i,startTime:a?a.startTime:null,captions:r},[l]),X("portal","custom-controls",on,{state:d,actions:p,currentTime:u,progress:m,element:c,children:n},[u,d,e,...t||[]]),null}var fo=require("react/jsx-runtime");function Gr({as:e}){let{strategy:t}=H(),{renderMediaControls:n,mediaControlsDeps:o}=se();return t.type!=="media"||t.media.type!=="Video"?null:(0,fo.jsxs)(po,{captions:t.captions,media:t.media,mediaControlsDeps:o,videoComponent:e,children:[(0,fo.jsx)(ft,{}),n?n(t):null]},t.media.url)}var cs=require("react")
|
|
31
|
+
`}),(0,mn.jsx)("video",{poster:r,ref:e,src:a,style:{width:"100%",objectFit:"contain"}})]})}function po({media:e,mediaControlsDeps:t,children:n,videoComponent:o=Kr,captions:r}){let i=I(),a=rn(),s=i&&i.placeholderCanvas&&i.placeholderCanvas.id||void 0,l=Ve({},!1,{canvasId:s}),[{element:c,currentTime:u,progress:m},d,p]=ct({duration:e.duration});return X("overlay","video-element",o,{element:c,media:e,playPause:p.playPause,poster:l?.id,canvas:i,startTime:a?a.startTime:null,captions:r},[l]),X("portal","custom-controls",on,{state:d,actions:p,currentTime:u,progress:m,element:c,children:n},[u,d,e,...t||[]]),null}var fo=require("react/jsx-runtime");function Gr({as:e}){let{strategy:t}=H(),{renderMediaControls:n,mediaControlsDeps:o}=se();return t.type!=="media"||t.media.type!=="Video"?null:(0,fo.jsxs)(po,{captions:t.captions,media:t.media,mediaControlsDeps:o,videoComponent:e,children:[(0,fo.jsx)(ft,{}),n?n(t):null]},t.media.url)}var cs=require("react");var dn=require("react/jsx-runtime");function Xl({element:e,media:t,playPause:n}){let o=(0,cs.useRef)(null);return t.youTubeId?(0,dn.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,dn.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,dn.jsx)("iframe",{className:"video-yt",ref:o,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function ms({media:e,mediaControlsDeps:t,children:n}){let[{element:o,currentTime:r,progress:i},a,s]=ct({duration:e.duration});return X("overlay","video-element",Xl,{element:o,media:e,playPause:s.playPause}),null}var go=require("react/jsx-runtime");function jr(){let{strategy:e}=H(),{renderMediaControls:t,mediaControlsDeps:n}=se();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,go.jsxs)(ms,{media:e.media,mediaControlsDeps:n,children:[(0,go.jsx)(ft,{}),t?t(e):null]})}var bo=require("react"),Ae=require("zustand");var yo=require("@atlas-viewer/atlas"),Xe=require("react");var ds=require("polygon-editor"),te=require("react");var ho=require("zustand");function Qr(e){let t=O(),n=(0,ho.useStore)(t,i=>i.polygons),o=(0,ho.useStore)(t,i=>i.polygonState),r=(0,ho.useStore)(t,i=>i.polygon);return at("atlas.polygon-render",({state:i,slowState:a,dt:s})=>{e(i,a,s)}),{currentShape:r,state:o,helper:n}}var N=require("react/jsx-runtime"),ze=(0,ds.createSvgHelpers)(),ps={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function Xr(e){let{image:t}=e,n={...ps,...e.theme||{}},o=(0,te.useRef)(),r=(0,te.useRef)(),i=(0,te.useRef)(),a=(0,te.useRef)(),s=(0,te.useRef)(),l=(0,te.useRef)(),c=(0,te.useRef)(),u=(0,te.useRef)(),m=(0,te.useRef)(),d=(0,te.useRef)(),[p,g]=(0,te.useState)(null),[f,S]=(0,te.useState)(!1),{helper:v,state:h,currentShape:y}=Qr((E,V)=>{if(E.closestLineIndex,ze.updateTransitionBoundingBox(i.current,E,V),ze.updateBoundingBoxPolygon(o.current,E,V),ze.updateBoundingBoxPolygon(r.current,E,V),ze.updateTransitionShape(c.current,E,V),ze.updateClosestLinePointTransform(s.current,E,V),ze.updateSelectBox(a.current,E,V),ze.updatePointLine(u.current,E,V),ze.updateDrawPreview(l.current,E,V,3),ze.updateLineBox(m.current,E),g(E.transitionDirection),S(E.transitionRotate),E.closestLineIndex!==-1&&d.current){let K=E.polygon,w=K.points[E.closestLineIndex],M=K.points[(E.closestLineIndex+1)%K.points.length];w&&M&&d.current.setAttribute("points",`${w[0]},${w[1]} ${M[0]},${M[1]}`)}});(0,te.useEffect)(()=>{let E=()=>{v.modifiers.reset()};return document.addEventListener("mouseleave",E),()=>{document.removeEventListener("mouseleave",E)}},[]);let R=(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,N.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke,className:"marker"}),(0,N.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:n.controlFill})]}),(0,N.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.activeLineStroke,className:"marker"})}),(0,N.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,N.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke}),(0,N.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:n.activeLineStroke})]}),(0,N.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,N.jsx)("rect",{width:"10",height:"10",fill:n.lineStroke}),(0,N.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:n.controlFill})]})]}),C=y?y.open?"polyline":"polygon":null,P=!h.showBoundingBox&&h.closestPoint!==null&&h.actionIntentType==="select-point",A=h.actionIntentType==="add-open-point",T=h.transitionIntentType==="split-line",z=h.transitioning&&h.selectedStamp&&h.transitionIntentType==="stamp-shape",U=y&&C?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(C,{fill:(!h.transitioning||h.transitionIntentType==="select-multiple-points")&&!y.open?n.shapeFill:"none",strokeWidth:z||h.showBoundingBox&&h.boxMode||h.transitioning&&h.transitionIntentType==="split-line"||h.transitioning&&h.transitionIntentType==="move-point"?0:2,stroke:n.shapeStroke,points:y.points.map(E=>E.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:h.showBoundingBox?void 0:h.boxMode?"url(#resizer)":"url(#dot)",markerMid:h.showBoundingBox?void 0:h.boxMode?"url(#resizer)":"url(#dot)",markerEnd:h.showBoundingBox?void 0:h.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:h.transitioning&&h.transitionIntentType==="move-shape"?0:1}),h.currentTool==="lineBox"&&h.actionIntentType==="close-line-box"?(0,N.jsx)("polygon",{fill:n.shapeFill,ref:m,stroke:n.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,h.transitionIntentType==="draw-shape"&&h.transitioning?(0,N.jsx)("polyline",{ref:l,fill:"none",stroke:n.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(h.transitioning&&h.transitionIntentType==="move-point")&&!(h.transitioning&&h.transitionIntentType==="stamp-shape")&&!h.showBoundingBox&&h.selectedPoints&&h.selectedPoints.length?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:y.points.filter((E,V)=>h.selectedPoints?.includes(V)).map(E=>E.join(",")).join(" "),opacity:h.transitioning&&h.transitionIntentType==="move-shape"?0:1}):null,P&&!h.transitioning&&h.closestPoint!==null&&y.points[h.closestPoint]?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:n.activeLineStroke,points:`${y.points[h.closestPoint][0]},${y.points[h.closestPoint][1]}`,opacity:h.transitioning&&h.transitionIntentType==="move-shape"?0:1}):null,!h.transitioning&&(h.actionIntentType==="add-open-point"||h.actionIntentType==="close-shape"||h.actionIntentType==="close-shape-line")?(0,N.jsx)("polyline",{stroke:n.activeLineStroke,ref:u,strokeWidth:h.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,h.hasClosestLine&&!h.showBoundingBox&&!h.transitioning&&h.currentTool!=="box"&&h.transitionIntentType==="split-line"?(0,N.jsx)("g",{children:(0,N.jsx)("polyline",{ref:d,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:n.activeLineStroke,strokeWidth:3})}):null,h.hasClosestLine&&!h.showBoundingBox&&!h.transitioning&&h.currentTool!=="box"&&h.transitionIntentType==="split-line"?(0,N.jsx)("g",{ref:s,children:(0,N.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,h.transitioning?(0,N.jsx)(C,{ref:c,fill:y.open?"none":n.shapeFill,stroke:h.transitionIntentType==="stamp-shape"?n.activeLineStroke:n.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(y.open,2)}):null,h.transitioning&&h.transitionIntentType==="select-multiple-points"?(0,N.jsx)("rect",{ref:a,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,h.showBoundingBox&&!z?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("polygon",{ref:o,strokeWidth:2,stroke:n.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),(0,N.jsx)("polygon",{ref:r,strokeWidth:2,stroke:n.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:v.state.slowState.currentTool,setCurrentTool:v.tools.setTool,helper:v,currentShape:y,state:h,isAddingPoint:A,isSplitting:T,isStamping:z,isHoveringPoint:P,transitionDirection:p,transitionRotate:f,defs:R,editor:U}}var Qe=require("react/jsx-runtime");function fs(e){let t=(0,yo.useAtlas)(),{image:n}=e,{helper:o,defs:r,editor:i,state:a,transitionDirection:s,isSplitting:l,transitionRotate:c,isHoveringPoint:u,isAddingPoint:m}=Xr({image:e.image,theme:e.theme}),d=(0,Xe.useCallback)(f=>{f.button!==2&&o.pointer([[~~f.atlas.x,~~f.atlas.y]])},[o]),p=(0,Xe.useCallback)(f=>{f.button!==2&&o.pointerDown()},[o]),g=(0,Xe.useCallback)(f=>{f.button!==2&&o.pointerUp()},[o]);return(0,Xe.useEffect)(()=>{let f=S=>{o.key.up(S.key)};return document.addEventListener("keyup",f),()=>{document.removeEventListener("keyup",f)}},[o]),(0,Xe.useEffect)(()=>{let f=S=>{S.target&&["INPUT","TEXTAREA"].includes(S.target.tagName)||S.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||o.key.down(S.key)};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[o]),(0,Xe.useEffect)(()=>{let f=[];return s&&f.push(`atlas-cursor-${s}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&f.push("atlas-cursor-cut"),(u||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&f.push("atlas-cursor-move"),m&&f.push("atlas-cursor-crosshair"),l&&f.push("atlas-cursor-copy"),c&&f.push("atlas-cursor-rotate"),a.transitionIntentType==="draw-shape"&&f.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...f),()=>{t?.canvas&&t.canvas.classList.remove(...f)}},[t?.canvas,m,u,l,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,s,c]),(0,Qe.jsx)("world-object",{height:n.height,width:n.width,onMouseMove:d,onMouseDown:p,onMouseUp:g,onMouseLeave:o.blur,children:(0,Qe.jsx)(yo.HTMLPortal,{relative:!0,interactive:!1,children:(0,Qe.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,Qe.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[(0,Qe.jsx)("title",{children:"Annotation Editor"}),(0,Qe.jsx)("defs",{children:r}),i]})})})})}var Is=require("react"),ws=require("zustand");var Ps=require("@atlas-viewer/atlas"),ne=require("@floating-ui/react"),As=require("react-dom");var _=J(require("react"),1);var gs=J(require("react"),1),vo=require("react"),hs=J(require("mitt"),1),vs=require("react/jsx-runtime"),ys=(0,hs.default)(),yt=(0,vo.createContext)({emitter:ys});yt.displayName="Events";function pn(){return gs.default.useContext(yt).emitter}function Zl({emitter:e,children:t}){return(0,vs.jsx)(yt.Provider,{value:(0,vo.useMemo)(()=>({emitter:e}),[e]),children:t})}var Ht=require("react"),xs=require("react/jsx-runtime"),fn=(0,Ht.createContext)("");function Ss({children:e,identifier:t}){let n=(0,Ht.useMemo)(()=>t??Math.random().toString(36).substring(2,9),[t]);return(0,xs.jsx)(fn.Provider,{value:n,children:e})}function So(){return(0,Ht.useContext)(fn)}var ce=require("react/jsx-runtime"),gn=_.default.createContext({});function hn(){let e=(0,_.useContext)(gn),t=Object.keys(e),n={};for(let o of t)e[o].Provider&&(n[o]={value:(0,_.useContext)(e[o]),Provider:e[o].Provider});return n}function bs(e){let t=Object.keys(e),n=e.children;for(let o of t){if(o==="children")continue;let{value:r,Provider:i}=e[o];n=(0,ce.jsx)(i,{value:r,children:n})}return n}function Jl(e){let t=(0,_.useContext)(gn),n=(0,_.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,ce.jsx)(gn.Provider,{value:n,children:e.children})}function yn(){return{VaultContext:(0,_.useContext)(He),ResourceContext:(0,_.useContext)(_t),SimpleViewerReactContext:(0,_.useContext)(wt),VisibleCanvasReactContext:(0,_.useContext)(tt),AuthRContext:(0,_.useContext)(ot),SearchReactContext:(0,_.useContext)(It),ReactEventContext:(0,_.useContext)(yt),ContextBridgeReactContext:(0,_.useContext)(gn),StrategyReactContext:(0,_.useContext)(Ue),AtlasStoreReactContext:(0,_.useContext)(st),ViewerIdentifierContext:(0,_.useContext)(fn)}}function vn(e){return(0,ce.jsx)(we,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(tt.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(wt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(yt.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(st.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,ce.jsx)(ot.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(It.Provider,{value:e.bridge.SearchReactContext,children:(0,ce.jsx)(fn.Provider,{value:e.bridge.ViewerIdentifierContext,children:(0,ce.jsx)(gn.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,ce.jsx)(Ue.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,ce.jsx)(bs,{...e.custom,children:e.children}):e.children})})})})})})})})})})}var Dt=require("react/jsx-runtime"),Ts=10,Cs=1;function eu(e){let[t,n]=e.split("-");return[t,n]}function Rs(e,t,n){return t>n?e:Math.min(Math.max(e,t),n)}function tu(e){return e.top>0||e.right>0||e.bottom>0||e.left>0}function nu(e){return{name:"insideHighlightFallback",options:e,async fn(t){if(e.width<=Cs||e.height<=Cs)return{};let n=await(0,ne.detectOverflow)(t,{altBoundary:!0});if(!tu(n))return{};let{reference:o,floating:r}=t.rects,[i,a]=eu(t.initialPlacement),s=Math.min(Ts,o.width/2,o.height/2),l=o.x+(o.width-r.width)/2,c=o.y+(o.height-r.height)/2,u=t.x,m=t.y;return i==="top"||i==="bottom"?(m=i==="top"?o.y+s:o.y+o.height-r.height-s,a==="start"?u=o.x+s:a==="end"?u=o.x+o.width-r.width-s:u=l,u=Rs(u,o.x+s,o.x+o.width-r.width-s)):(u=i==="left"?o.x+s:o.x+o.width-r.width-s,a==="start"?m=o.y+s:a==="end"?m=o.y+o.height-r.height-s:m=c,m=Rs(m,o.y+s,o.y+o.height-r.height-s)),{x:u,y:m}}}}function xo({annotation:e,target:t,children:n,dismissable:o,isOpen:r,onOpenChange:i,placement:a}){let s=So(),l=yn(),c=hn(),{refs:u,floatingStyles:m,context:d}=(0,ne.useFloating)({open:r,onOpenChange:i,nodeId:e.id,placement:a||"bottom",middleware:[(0,ne.offset)(Ts),(0,ne.flip)({mainAxis:!0,fallbackStrategy:"bestFit",altBoundary:!0}),(0,ne.shift)({altBoundary:!0}),nu(t)],whileElementsMounted:ne.autoUpdate}),p=(0,ne.useDismiss)(d),{getReferenceProps:g,getFloatingProps:f}=(0,ne.useInteractions)([o?p:null].filter(S=>S!==null));return(0,Dt.jsxs)(Ps.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Dt.jsx)("div",{ref:u.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,As.createPortal)((0,Dt.jsx)(vn,{bridge:l,custom:c,children:(0,Dt.jsx)("div",{ref:u.setFloating,style:m,...f(),children:n})}),document.getElementById(`atlas-floating-ui-${s}`))]})}var Sn=require("react/jsx-runtime"),ks=(0,ws.create)()(e=>({isMenuOpen:!1,menuPosition:{x:0,y:0},setMenuPosition(t){e({menuPosition:t})},toggle(t){e(n=>({isMenuOpen:!n.isMenuOpen,menuPosition:t}))},open(t){e({isMenuOpen:!0,menuPosition:t})},setIsMenuOpen(t){e(typeof t=="function"?n=>({isMenuOpen:t(n.isMenuOpen)}):{isMenuOpen:t})},close(){e({isMenuOpen:!1})}}));function xn(e,t,n){let{isMenuOpen:o,setIsMenuOpen:r,close:i,open:a,menuPosition:s,setMenuPosition:l,toggle:c}=ks(),u=(0,Is.useCallback)(p=>{n&&(p.preventDefault(),p.stopPropagation(),c(p.atlas))},[c,n]);return[(0,Sn.jsx)(Sn.Fragment,{children:n&&o&&(0,Sn.jsx)(xo,{dismissable:!0,placement:"bottom-start",isOpen:o,onOpenChange:r,annotation:{id:e},target:{x:s.x,y:s.y,height:1,width:1},children:o&&n({canvasId:t,position:s,close:()=>r(!1)})})}),{onContextMenu:u},{open:a,close:i,toggle:c,isMenuOpen:o,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var Ms=require("zustand");function Zr(){let e=O();return(0,Ms.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var oe=require("react/jsx-runtime");function Jr({theme:e,renderContextMenu:t,children:n}){let o=O(),r=I(),i=(0,Ae.useStore)(o,C=>C.polygon),a=(0,Ae.useStore)(o,C=>C.polygonState.currentTool),s=(0,Ae.useStore)(o,C=>C.mode),l=(0,Ae.useStore)(o,C=>C.changeMode),c=(0,Ae.useStore)(o,C=>C.polygonState.transitioning),{enabled:u,requestId:m}=(0,Ae.useStore)(o,C=>C.tool),d=(0,bo.useMemo)(()=>Fe(i),[i]),p=Zr(),[g,f]=xn("editing-annotation",r?.id,t),S=p?.annotationPopup||n||(0,oe.jsx)(Es,{}),v=p?.svgTheme||e,h=()=>{l("sketch")};if(!u||!r||!m||!i)return null;let y=d&&i.id&&!c&&(a==="pointer"||a==="hand"||!i.open)?(0,oe.jsx)(xo,{annotation:i,target:d,children:S}):null,R="shape";return s==="explore"?(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:h,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)"},...f}),(0,oe.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:h,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),y]}):(0,oe.jsxs)(oe.Fragment,{children:[t?(0,oe.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:r.width,height:r.height},...f}):null,(0,oe.jsx)(fs,{image:r,theme:v}),y,g]})}function Es(){let e=O(),t=(0,Ae.useStore)(e,a=>a.changeMode),n=(0,Ae.useStore)(e,a=>a.mode),o=(0,Ae.useStore)(e,a=>a.completeRequest),r=(0,Ae.useStore)(e,a=>a.tool),i=()=>{(0,bo.startTransition)(()=>{o()})};return r.enabled?(0,oe.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[n!=="sketch"&&(0,oe.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,oe.jsx)("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}var Ze=require("react");var Ft=require("react");var Ns=require("@iiif/helpers");function ou(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function bn(e,t){let{selector:n,source:o}=(0,Ns.expandTarget)(t);if(o.id!==e.id)return[null,o];let r={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:r.spatial}:n:null,o]}var ei={makeChoice:()=>{}},Cn={type:"unknown"},B=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),ti=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Rn=require("react");function ru(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Vs(e,t){return L(n=>{let o=[];if(!e)return o;let r=Object.keys(n.iiif.entities.AnnotationPage);for(let i of r)if(!t||t.indexOf(i)!==-1){let a=ru(n,i);a&&a.views&&a.views[e]&&o.push(i)}return o},[e,t])}function ni({canvas:e,manifest:t,all:n,canvases:o}){let r=[];if(t)for(let i of t.annotations)r.indexOf(i.id)===-1&&r.push(i.id);if(n){if(o&&o.length)for(let i of o)for(let a of i.annotations)r.indexOf(a.id)===-1&&r.push(a.id)}else if(e)for(let i of e.annotations)r.indexOf(i.id)===-1&&r.push(i.id);return r}function iu(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Pn(e,t={}){let n=k(),o=F(),r=I(),i=nt(),a=(0,Rn.useMemo)(()=>ni({all:t.all,manifest:o,canvas:r,canvases:i}),[t.all,r,i,o]),s=Vs(e,t.all?void 0:a),l=(0,Rn.useCallback)(u=>{e&&n.setMetaValue([u,"annotationPageManager","views"],m=>m&&!m[e]?m:{...m||{},[e]:!1})},[e,n]),c=(0,Rn.useCallback)((u,m={})=>{if(!e)return;let d=n.getState(),p=[];if(m?.deselectOthers){let g=Object.keys(d.iiif.entities.AnnotationPage);for(let f of g){let S=iu(d,f);S&&S.views&&S.views[e]&&p.push(f)}}for(let g of p)l(g);n.setMetaValue([u,"annotationPageManager","views"],g=>g&&g[e]?g:{...g||{},[e]:!0})},[e,l,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:c,setPageDisabled:l}}function oi(e,t){return L((n,o)=>o.get(e.map(r=>({id:r,type:t}))),[e,t])}var Ls=J(require("mitt"),1),zs=require("react"),Os=require("zustand");var au=(0,Os.createStore)((e,t)=>({loaded:{},setLoaded:(n,o="done")=>{e(r=>({loaded:{...r.loaded,[n]:o}}))}})),su=(0,Ls.default)();su.on("loaded",e=>{au.getState().setLoaded(e.imageServiceId)});function An(){let e=zt(),t=Ya();return[(0,zs.useCallback)((o,{height:r,width:i})=>o&&e(o,{height:r,width:i},!0),[e]),t]}var vt=require("react");function Oe(e={}){let t=en(),n=I(e.canvasId?{id:e.canvasId}:void 0);return L((o,r)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=r.get(n.items),a=[];for(let s of i)a.push(...r.get(s.items));return a},[n])}var Bs=require("@iiif/helpers/painting-annotations");function ri(e,t=[]){let n=k(),o=(0,vt.useMemo)(()=>(0,Bs.createPaintingAnnotationsHelper)(n),[]),r=Oe({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,vt.useState)(e?.defaultChoices||[]),s=(0,vt.useMemo)(()=>o.getPaintables(r,i),[n,r,i,...t]),c={makeChoice:(0,vt.useCallback)((u,{deselectOthers:m=!0,deselect:d=!1}={})=>{s.choice&&a(p=>{if(d){let f=p.filter(S=>S!==u);if(f.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return f}if(m)return[u];let g=[...p];if(g.length===0&&s.items.length){let f=s.items[0].resource.id;f&&g.push(f)}return p.indexOf(u)!==-1?p:[...p,u]})},[s.choice])};return[s,c]}var lu=["model/gltf-binary"];function ii(e,t){let n=t.items[0],o=n.resource;return o.format?lu.indexOf(o.format)===-1?B(`3D format: ${o.format} is unsupported`):{type:"3d-model",model:o,annotationId:n.annotationId,annotation:n.annotation}:B("Unknown format")}function Co(e,t){let n=t.items,o=n[0];if(n.length===0||!o)return B("No audio");if(!e.duration)return B("No duration on canvas");if(n.length>1)return B("Only one audio source supported");let r=o.resource;return r?("format"in r||(r.format="audio/mpeg"),{type:"media",media:{annotationId:o.annotationId,annotation:o.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}):B("Unknown audio")}var ai=require("@iiif/helpers/annotation-targets"),Hs=require("@iiif/parser/image-3");function Be(e){return e.replace(/^http:/,"https:")}function qs(e){if(!(e?.type!=="ImageApiSelector"||typeof e.rotation>"u"))return si(e.rotation)}function si(e){if(e===null||typeof e>"u"||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}function uu(e){let t=e.selector||{};return{...e.rotationOrigin||t.rotationOrigin?{rotationOrigin:e.rotationOrigin||t.rotationOrigin}:{},...e.translate||t.translate?{translate:e.translate||t.translate}:{},...e.transform||t.transform?{transform:e.transform||t.transform}:{},...e.style||t.boxStyle?{style:e.style||t.boxStyle}:{},...e.styleClass?{styleClass:e.styleClass}:{}}}function Tn(e,t,n){let o=[],r=[];for(let i of t.items){let a=i.resource&&i.resource.type==="SpecificResource"?i.resource.source:i.resource;if(!a.id)return B("No resource Identifier");let l=(i.resource.type==="SpecificResource"?qs(i.resource.selector):void 0)??qs(i.selector)??si(i.rotation)??si(i.selector?.rotation),c=typeof l<"u",u;if(a.service){let y=(0,Hs.getImageServices)(a);y[0]&&(u=n(y[0],c?{width:Number(a.width||e.width),height:Number(a.height||e.height)}:e))}let m={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[d,p]=bn(e,i.target),g=e.id?.split("?")[0]||"";if(!(Be(p.id||"")===Be(e.id)||Be(decodeURIComponent(p.id||""))===Be(e.id||"")||Be(p.id||"")===Be(g)||Be(decodeURIComponent(p.id||""))===Be(g)))continue;let f=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,S=i.resource.type==="SpecificResource"?(0,ai.expandTarget)(i.resource):null;if(i.selector){let y=(0,ai.expandTarget)({type:"SpecificResource",source:i.resource,selector:i.selector});y&&(S=y)}let v=S&&S.selector&&(S.selector.type==="BoxSelector"||S.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:S.selector.spatial.x,y:S.selector.spatial.y,width:S.selector.spatial.width,height:S.selector.spatial.height},...typeof S.selector.rotation<"u"?{rotation:S.selector.rotation}:{},...S.selector.rotationOrigin?{rotationOrigin:S.selector.rotationOrigin}:{},...S.selector.translate?{translate:S.selector.translate}:{},...S.selector.transform?{transform:S.selector.transform}:{},...S.selector.boxStyle?{boxStyle:S.selector.boxStyle}:{}}:void 0;u&&!u.id&&(u.id=u["@id"]);let h={id:a.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(c||d||v?a.width:e.width),height:Number(c||d||v?a.height:e.height),...typeof l<"u"?{rotation:l}:{},...uu(i),service:u,sizes:u&&u.sizes?u.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:d&&d.type!=="PointSelector"?d:m,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};o.push(h)}return{type:"images",image:o[0],images:o,choice:t.choice}}function Ds(e,t={},n){let o=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[o]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(r=>Ds(r,t,o))}return t}function In(e,t){let n=[];return t.items.forEach(o=>{if(o.resource){let[r]=bn(e,o.target);n.push({type:"Text",annotationId:o.annotationId,annotation:o.annotation,text:Ds(o.resource),target:r})}}),{type:"textual-content",items:n}}var Ro=require("@iiif/helpers");var cu=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function wn(e,t,n,o=!1){let r=t.items.filter(f=>f.type==="video"),i=r[0],a=!1,s=!1;if(e.duration||(s=!0),r.length>1||!i)return B("Only one video source supported");let l=r[0]?.resource,c=!!(l.service||[]).find(f=>(f.profile||"").includes("youtube.com"));if(!c&&s)return B("Video does not have duration");if(!l)return B("Unknown video");if((!l.format||l.format==="text/html")&&!c)return B("Video does not have format");let u=[],m=n.get(e.annotations||[]);for(let f of m){let S=n.get(f.items||[]);for(let v of S)if((v.motivation?Array.isArray(v.motivation||"")?v.motivation:[v.motivation]:[]).includes("supplementing")){let y=n.get(v.body||[]);for(let R of y){let C=R;if(C.type==="Choice")for(let P of C.items){let A=n.get(P);A.format==="text/vtt"&&u.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else C.format==="text/vtt"&&u.push({id:C.id,type:"Text",format:"text/vtt",label:C.label,language:C.language})}}}let d={annotationId:i.annotationId,annotation:i.annotation,duration:e.duration,url:l.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:l.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},p=(0,Ro.expandTarget)(i.target);p.selector&&p.selector.type==="TemporalBoxSelector"&&(d.target=p.selector);let{selector:g}=(0,Ro.parseSelector)(i.selector);if(g===null){let f=d.target.temporal.startTime,v=(d.target.temporal.endTime||e.duration)-f;d.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:v}}}else g.type==="TemporalSelector"&&(d.selector=g);if(o&&!d.target.spatial&&(a=!0,d.target={type:"TemporalBoxSelector",temporal:d.target.temporal,spatial:{x:e.width/2,y:e.height/2,width:e.width/2,height:e.height/2}}),c){d.type="VideoYouTube";let f=l.id.match(cu);if(!f[1])return B("Video is not known youtube video");d.youTubeId=f[1]}return{type:"media",media:d,annotations:{pages:[]},noSpatial:a,captions:u}}var Fs=require("@iiif/helpers");function li(e,t,n,o){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},i={type:"complex-choice",items:[]},a=o.get(e.annotations);function s(u){u.choice&&(u.choice.type==="complex-choice"?i.items.push(...u.choice.items):i.items.push(u.choice))}for(let u of t.items){if(u.type==="image"){let m=Tn(e,{choice:null,allChoices:null,types:["image"],items:[u]},n);if(m.type==="images"){if(!m.image)continue;s(m),r.items.push(m.image);let d={id:m.image.annotationId,type:"enter",resourceType:"image",time:m.image.target?.temporal?.startTime||0};r.keyframes.push(d);let p={id:m.image.annotationId,type:"exit",resourceType:"image",time:m.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(u.type==="textualbody"){let m=In(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(m.type==="textual-content"){s(m);let d=m.items[0];r.items.push(d);let p=d.target,g={id:d.annotationId,type:"enter",resourceType:"text",time:p.temporal?.startTime||0};r.keyframes.push(g);let f={id:d.annotationId,type:"exit",resourceType:"text",time:p.temporal?.endTime||e.duration||0};r.keyframes.push(f)}}if(u.type==="video"){let m=wn(e,{choice:null,allChoices:null,types:["video"],items:[u]},o,!0);if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let p={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(p);let g={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}if(u.type==="audio"||u.type==="sound"){let m=Co(e,{choice:null,allChoices:null,types:["audio"],items:[u]});if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let p={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(p);let g={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}}for(let u of a)for(let m of u.items){let d=o.get(m),p=(0,Fs.expandTarget)(d.target,{typeMap:o.getState?.().iiif.mapping});if(p.selector?.temporal){let g={id:d.id,type:"enter",resourceType:"highlight",time:p.selector.temporal.startTime||0};r.keyframes.push(g);let f={id:d.id,type:"exit",resourceType:"highlight",time:p.selector.temporal.endTime||e.duration||0};r.keyframes.push(f)}r.highlights.push({annotation:d,target:p})}r.keyframes.sort((u,m)=>u.time-m.time);let l=[],c=[];for(let u of r.keyframes){if(u.resourceType==="image"||u.resourceType==="text"||u.resourceType==="highlight"){c.push(u);continue}if(u.type==="enter"){l.length===0&&(u.isPrime=!0),l.push(u),c.push(u);continue}if(u.type==="exit"&&(c.push(u),l=l.filter(m=>m.id!==u.id),l.length!==0)){let m=l[0],d={id:m.id,type:"change",isPrime:!0,resourceType:m.resourceType,time:u.time};c.push(d)}}return r.keyframes=c,i.items.length&&(r.choice=i),r}var Po={},ui={get(e){return e},setMetaValue([e,t,n],o){let r=ui.getResourceMeta(e,t),i=r?r[n]:void 0,a=typeof o=="function"?o(i):o;Po[e]={...Po[e]||{},[t]:{...(Po[e]||{})[t]||{},[n]:a}}},getResourceMeta:(e,t)=>{let n=Po[e];if(n)return t?n[t]:n},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(n=>n.json())},requestStatus(e){}};function kn({canvas:e,paintables:t,supports:n,loadImageService:o,vault:r=ui}){if(!e)return Cn;if(t.types.length===0)return n.indexOf("empty")!==-1?ti(e.width,e.height):Cn;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return n.indexOf("complex-timeline")===-1?B("Complex timeline not supported"):li(e,t,o,r);let i=t.types[0];return i==="image"?n.indexOf("images")===-1?B("Image not supported"):Tn(e,t,o):i==="Model"||i==="model"?n.indexOf("3d-model")===-1?B("3D not supported"):ii(e,t):i==="textualbody"?n.indexOf("textual-content")===-1?B("Textual content not supported"):In(e,t):i==="sound"||i==="audio"?n.indexOf("media")===-1?B("Media not supported"):Co(e,t):i==="video"?n.indexOf("media")===-1?B("Media not supported"):wn(e,t,r):Cn}function ci(e){let t=F(),n=I(),o=k(),r=pn(),i=e?.emitter||r,[a,s]=An(),{enabledPageIds:l}=Pn(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),c=oi(l,"AnnotationPage"),u=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[m,d]=ri(e,[s]);(0,Ft.useEffect)(()=>{let g=f=>{d.makeChoice(f.choiceId,{deselectOthers:f.deselectOthers,deselect:f.deselect})};return i.on("make-choice",g),()=>{i.off("make-choice",g)}},[]);let p=(0,Ft.useMemo)(()=>kn({canvas:n,paintables:m,supports:u,loadImageService:a,vault:o}),[n,m,o,d.makeChoice]);return(0,Ft.useEffect)(()=>{let g=m.allChoices,f={canvasId:n?.id,manifestId:t?.id};g&&i.emit("choice-change",{choice:g,partOf:f})},[n?.id,m.allChoices]),(0,Ft.useMemo)(()=>p.type==="unknown"?[p,ei]:[{...p,annotations:{pages:c}},d],[p,c])}var $s=require("@iiif/helpers");var mi=require("react/jsx-runtime");function di({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:o,mediaControlsDeps:r,renderMediaControls:i,renderViewerControls:a,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,throwOnUnknown:u,children:m}){let d=I(),p=k(),g=(0,Ze.useMemo)(()=>(0,$s.createStylesHelper)(p),[p]),[f,S]=ci({strategies:e||["images"],defaultChoices:n?.map(({id:R})=>R)}),v="choice"in f?f.choice:void 0;if((0,Ze.useEffect)(()=>{t&&t(S)},[f.annotations]),(0,Ze.useEffect)(()=>{o&&o(v)},[v]),(0,Ze.useEffect)(()=>{if(n)for(let R of n)typeof R.opacity<"u"&&g.applyStyles({id:R.id},"atlas",{opacity:R.opacity})},[n]),f.type==="unknown"&&u)throw new Error(f.reason||"Unknown strategy");let h=(0,Ze.useMemo)(()=>({renderMediaControls:i,mediaControlsDeps:r||[],renderViewerControls:a,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:c||[]}),[r,i,a,s,l,c]),y=(0,Ze.useMemo)(()=>({strategy:f,actions:S,choices:"choice"in f?f.choice:[]}),[f,d]);return(0,mi.jsx)(an.Provider,{value:h,children:(0,mi.jsx)(Ue.Provider,{value:y,children:m})})}var Mn=require("react"),fi=require("zustand");var $t=require("react");var pi=(0,$t.createContext)(()=>{});function Ws(e){let t=I(),n=(0,$t.useContext)(pi);(0,$t.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var Us=require("react/jsx-runtime");function gi({x:e=0,y:t=0,keepCanvasScale:n=!0,renderContextMenu:o,children:r}){let{strategy:i}=H(),a=I(),s=O(),l=tn(a,["deep-zoom"]),c=(0,fi.useStore)(s,f=>f.setCanvasRelativePosition),u=(0,fi.useStore)(s,f=>f.clearCanvasRelativePosition),[m,d]=xn(`context-menu/${a?.id}`,a?.id,o),p=(0,Mn.useMemo)(()=>n?1:Math.max(1,...i.type==="images"?i.images.map(f=>(f.width||0)/f.target?.spatial.width):[]),[n,i]);(0,Mn.useEffect)(()=>{if(a)return c(a.id,{x:e,y:t,width:a.width,height:a.height}),()=>{u(a.id)}},[e,t,a,u,c]),(0,Mn.useEffect)(()=>{a&&s.getState().reset()},[s,a]),Ws(p);let g=i.type==="images"?i.images.length:0;return a?(0,Us.jsxs)("world-object",{height:a.height,width:a.width,x:e,y:t,...d,...l,children:[m,r]},`${a.id}/${i.type}/${g}`):null}var le=require("react/jsx-runtime");function dt({x:e,y:t,onChoiceChange:n,registerActions:o,defaultChoices:r,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,mediaControlsDeps:m,strategies:d,throwOnUnknown:p,rotation:g,backgroundStyle:f,alwaysShowBackground:S,keepCanvasScale:v=!1,enableSizes:h=!1,enableYouTube:y=!0,onClickPaintingAnnotation:R,components:C={},children:P,annotationPopup:A,svgTheme:T,renderContextMenu:z,renderAnnotationContextMenu:U}){return(0,le.jsxs)(di,{throwOnUnknown:p,onChoiceChange:n,registerActions:o,strategies:d,defaultChoices:r,mediaControlsDeps:m,renderMediaControls:s,renderViewerControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,children:[(0,le.jsxs)(gi,{keepCanvasScale:v,x:e,y:t,renderContextMenu:z,children:[(0,le.jsx)(Ur,{alwaysShowBackground:S,backgroundStyle:f}),(0,le.jsx)(Wr,{}),(0,le.jsx)(Yr,{}),(0,le.jsx)(_r,{isStatic:i,enableSizes:h,onClickPaintingAnnotation:R,rotation:g}),(0,le.jsx)(Ir,{}),(0,le.jsx)(br,{}),(0,le.jsx)(Mr,{as:C.Audio}),(0,le.jsx)(Gr,{as:C.Video}),y?(0,le.jsx)(jr,{}):null,(0,le.jsx)(Jr,{theme:T,renderContextMenu:U,children:A}),P]}),(0,le.jsx)(Cr,{})]})}var hi=require("react/jsx-runtime");function _s(e){let t=I();return!t||!t.placeholderCanvas?null:(0,hi.jsx)(pe,{canvas:t.placeholderCanvas.id,children:(0,hi.jsx)(dt,{renderViewerControls:e.renderViewerControls})})}var Ks=require("@atlas-viewer/atlas"),re=J(require("react"),1),Gs=require("react-error-boundary"),yi=require("zustand");var Ao=require("react");function Ys(e,t=2e3){let{currentSequenceIndex:n,sequence:o,items:r}=rt(),i=I(),a=(0,Ao.useMemo)(()=>{let l=o[n]||[];return l.length===0&&i?[{id:i.id,type:"Canvas"}]:l.map(c=>r[c])},[o,n,i,r]),s=O();(0,Ao.useEffect)(()=>{let c=setInterval(()=>{if(e&&t!==-1){let u={x:e.x,y:e.y,width:e.width,height:e.height},m=s.getState().canvasRelativePositions,d={};for(let p of a){let g=m[p.id];if(g){let f=g.x,S=g.y,v=g.width,h=g.height,y={x:Math.max(f,u.x),y:Math.max(S,u.y),width:Math.min(f+v,u.x+u.width)-Math.max(f,u.x),height:Math.min(S+h,u.y+u.height)-Math.max(S,u.y)};y.width<=0||y.height<=0||(d[p.id]={x:y.x-g.x,y:y.y-g.y,width:y.width,height:y.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(c)}},[a,e,s,t])}var Wt=require("react/jsx-runtime");function To({width:e,style:t,height:n,error:o,resetErrorBoundary:r}){return(0,Wt.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Wt.jsx)("h3",{children:"Error occurred"}),(0,Wt.jsx)("p",{children:o.message}),(0,Wt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var q=require("react/jsx-runtime");function Io(e){let t=O(),n=(0,re.useMemo)(()=>e.name||Math.random().toString(36).substring(2,9),[e.name]);return(0,q.jsx)(Ss,{identifier:n,children:(0,q.jsx)(Et,{name:e.name,existing:t,children:(0,q.jsx)(mu,{...e})})})}function mu({name:e,children:t,errorFallback:n,outerContainerProps:o={},worldScale:r,updateViewportTimeout:i,...a}){let s=O(),l=So(),c=(0,yi.useStore)(s,w=>w.mode),u=(0,yi.useStore)(s,w=>w.setAtlasRuntime),[m,d]=(0,re.useState)(),p=hn(),g=yn(),f=n||To,[S,v]=(0,re.useState)({}),h=Object.entries(S),[y,R]=(0,re.useState)({}),C=Object.entries(y),[P,A]=(0,re.useState)({}),{worldScale:T,runtimeOptions:z}=(0,re.useMemo)(()=>{if(Object.values(P).length===0)return{worldScale:1,runtimeOptions:a.runtimeOptions||{maxOverZoom:1}};let M=Math.max(...Object.values(P));return{worldScale:M,runtimeOptions:{maxOverZoom:M||1,...a.runtimeOptions||{}}}},[P,a.runtimeOptions]);Ys(m?.runtime,i);let U=(0,re.useCallback)((w,M)=>{A(G=>{if(M===-1){let{[w]:Ct,...et}=G;return et}return{...G,[w]:M}})},[]),E=(0,re.useCallback)((w,M,G)=>{v(({[w]:Ct,...et})=>M?{...et,[w]:{element:M,props:G}}:et)},[]),V=(0,re.useCallback)((w,M,G)=>{R(({[w]:Ct,...et})=>M?{...et,[w]:{element:M,props:G}}:et)},[]),K=(0,re.useCallback)(w=>{d(w),u(w.runtime),a.onCreated&&a.onCreated(w)},[a.onCreated,u]);return(0,q.jsxs)(Gs.ErrorBoundary,{resetKeys:[],fallbackRender:w=>(0,q.jsx)(f,{...a,...w}),children:[(0,q.jsx)(Ks.AtlasAuto,{...a,mode:c,containerProps:{style:{position:"relative"},...a.containerProps||{}},htmlChildren:(0,q.jsx)(q.Fragment,{children:h.map(([w,{element:M,props:G}])=>(0,q.jsx)(re.default.Fragment,{children:(0,q.jsx)(M,{...G||{}})},w))}),onCreated:K,runtimeOptions:z,children:(0,q.jsx)(Et,{name:e,existing:s,children:(0,q.jsx)(Pe.Provider,{value:m,children:(0,q.jsx)(pi.Provider,{value:U,children:(0,q.jsx)(yr.Provider,{value:E,children:(0,q.jsx)(vr.Provider,{value:V,children:(0,q.jsx)(vn,{bridge:g,custom:p,children:(0,q.jsx)(Tr,{children:t})})})})})})})}),(0,q.jsx)("div",{children:C.map(([w,{element:M,props:G}])=>(0,q.jsx)(re.default.Fragment,{children:(0,q.jsx)(M,{...G||{}})},w))}),(0,q.jsx)("div",{id:`atlas-floating-ui-${l}`,className:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var ie=require("react/jsx-runtime"),du=(0,St.forwardRef)(function(t,n){let o=F(),r=nt(),i=rt(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,St.useImperativeHandle)(n,()=>i,[i]),!o)return(0,ie.jsx)("div",{});let c=0,u=o.viewingDirection==="top-to-bottom",m=o.viewingDirection==="bottom-to-top",d=o.viewingDirection==="left-to-right",p=o.viewingDirection==="right-to-left",f=o.behavior.includes("continuous")?0:t.spacing||0,S=m||p,v=(0,St.useMemo)(()=>S?[...r].reverse():r,[r,S]);return(0,ie.jsxs)(ie.Fragment,{children:[t.header,(0,ie.jsx)(Y.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,homePaddingPx:t.padding,children:v.map((h,y)=>{let R=0,C=0;return!u&&!m?(R=c,c+=h.width+f):(C=c,c+=h.height+f),(0,ie.jsx)(pe,{canvas:h.id,children:(0,ie.jsx)(Y.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&a?()=>(0,ie.jsx)(a,{}):void 0,renderMediaControls:y===0&&s?()=>(0,ie.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:y===0&&l?()=>(0,ie.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:R,y:C,svgTheme:t.svgTheme,rotation:t.rotation,...t.canvasProps||{},children:t.annotations},h.id)},h.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),Y=(0,St.forwardRef)(function({children:t,height:n,annotations:o,canvasProps:r,spacing:i,header:a,components:s,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:m,annotationPopup:d,name:p,svgTheme:g,updateViewportTimeout:f,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:h,padding:y,rotation:R,...C},P){let A=ke();return(0,ie.jsx)(Et,{name:p,children:(0,ie.jsx)(we,{vault:A,children:(0,ie.jsx)(nr,{...C,children:(0,ie.jsx)(du,{ref:P,height:n,components:s,spacing:i,canvasProps:r,annotations:o,header:a,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:m,annotationPopup:d,svgTheme:g,updateViewportTimeout:f,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:h,padding:y,rotation:R,children:t})})})})});Y.RenderImage=je;Y.RenderCanvas=dt;Y.RenderAnnotationPage=$e;Y.RenderAnnotation=ut;Y.Viewer=Io;Y.CanvasBackground=co;Y.Audio=jn;Y.Video=po;Y.Model=Zn;Y.AudioHTML=Sr;Y.VideoHTML=Kr;Y.ModelHTML=xr;Y.PlaceholderCanvas=_s;Y.getAtlasStoreByName=sr;var js=require("react");var he=require("react"),xt=require("zustand");function vi(e){let[t,n]=(0,he.useState)(0),o=O(),r=(0,xt.useStore)(o,C=>C.tool.enabled),i=(0,xt.useStore)(o,C=>C.tool.requestId),a=(0,xt.useStore)(o,C=>C.getRequestId),s=(0,xt.useStore)(o,C=>C.requestAnnotation),l=(0,xt.useStore)(o,C=>C.completeRequest),c=(0,xt.useStore)(o,C=>C.cancelRequest),u=(0,he.useRef)(e?.onSuccess);u.current=e?.onSuccess;let[m,d]=(0,he.useState)(!1),[p,g]=(0,he.useState)(null),[f,S]=(0,he.useState)(null),v=r&&i!==f,h=r&&i===f,y=(0,he.useCallback)(async(C,P)=>{if(f){let A=u.current;d(!0);let T=await s(C,{...P,requestId:f});if(T)return A?.(T),n(U=>U+1),d(!1),g(T),T;let z={id:f,cancelled:!0,...Zt(C)};return A?.(z),g(z),n(U=>U+1),d(!1),z}return null},[s,f]),R=(0,he.useCallback)(()=>{g(null),d(!1)},[]);return(0,he.useEffect)(()=>{let C=a();return S(C.requestId),()=>{C.clear()}},[t]),{id:t,busy:v,isPending:m,isActive:h,requestId:f,requestAnnotation:y,cancelRequest:()=>f?c(f):void 0,completeRequest:()=>f?l(f):void 0,reset:R,data:p}}var pu=[{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 Si(e){let{id:t,data:n,requestAnnotation:o,cancelRequest:r,isPending:i}=vi({onSuccess:a=>{e.updateShape(a.polygon)}});return(0,js.useEffect)(()=>(o({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var Z=require("react"),xi=J(require("mitt"),1),Qs=require("react/jsx-runtime"),wo=(0,Z.createContext)((0,xi.default)());wo.displayName="SelectorHelper";function fu({children:e}){return(0,Qs.jsx)(wo.Provider,{value:(0,Z.useMemo)(()=>(0,xi.default)(),[]),children:e})}function gu(){return(0,Z.useContext)(wo)}function bi(e){let t=Ci(),[n,o]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>t.withSelector(e).on("highlight",()=>{o(!0)}),[t,e]),(0,Z.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{o(!1)}),[t,e]);let r=(0,Z.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,Z.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:r,onHover:i,isHighlighted:n}}function Ci(){let e=(0,Z.useContext)(wo);return(0,Z.useMemo)(()=>({withSelector(t){return{on(n,o){let r=i=>{i&&i.selectorId===t&&o(i)};return e.on(n,r),()=>{e.off(n,r)}},emit(n,o){e.emit(n,{...o,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function hu(){let e=Ci();return(0,Z.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(n,o){return e.withSelector(t).on(n,o)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(t){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(t,n){return e.on(t,n)}}),[e])}var Ri=require("react/jsx-runtime");function yu(e){let t=I(),n=e.annotationBucket,o=e.readOnly,r=e.id,{onClick:i,isHighlighted:a}=bi(e.id),s=Jt(),l=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(o){let c="shape",u=e.polygon,m=u.open;return u?(0,Ri.jsx)(c,{id:`shape-${r}`,points:u.points,open:m,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,Ri.jsx)(Si,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Xs=require("@atlas-viewer/atlas");var ko=require("react"),En=require("react/jsx-runtime"),vu=(0,ko.forwardRef)(function({canvasId:t},n){let o=(0,Xs.useCanvas)(),r=Pn(t||o?.id),i=k();return(0,ko.useImperativeHandle)(n,()=>r,[t,o]),!o||r.enabledPageIds.length===0?null:(0,En.jsx)(En.Fragment,{children:r.enabledPageIds.map(a=>(0,En.jsx)(Y.RenderAnnotationPage,{page:i.get(a)},a))})});var Js=require("react");var Zs=require("react");var W=require("react/jsx-runtime");function Nn({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:o=!0,allowHtml:r,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:c="",separator:u,tableFooter:m,tableHeader:d,customLabelRender:p,customValueRender:g}){let f=(0,Zs.useMemo)(()=>{let v=(t||[]).reduce((y,R)=>[...y,...R.keys],[]),h={};for(let y of e){let R=y?.label?Object.values(y.label):[];for(let C of R)if(C?.length&&(v.indexOf(`metadata.${C[0]}`)!==-1||v.length===0)&&y){let P=`metadata.${C[0]}`;h[P]=h[P]?h[P]:[],h[P].push(y);break}}return h},[t,e]);return Object.keys(f).length===0&&o?(0,W.jsx)(W.Fragment,{children:i})||(0,W.jsx)("div",{className:a.empty,children:s}):t?.length?(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:t.map((v,h)=>{let y=[];for(let C of v.keys)for(let P of f[C]||[]){let A=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:P.value},h+"__"+C);g?y.push(g(P,A)):y.push(A)}if(y.length===0)return null;let R=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,separator:u,defaultText:c,children:v.label});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:p?p(v.label,R):R}),(0,W.jsx)("td",{className:a.value,children:y})]},h)})}),m]}):(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:e?.length?e.map((v,h)=>{if(!v)return null;let y=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:v.label}),R=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:v.value});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:p?p(v.label,y):y}),(0,W.jsx)("td",{className:a.value,children:g?g(v,R):R})]},h)}):null}),m]})}var el=require("react/jsx-runtime");function Su(e){let t=F(),n=I(),o=Gt(),r=(0,Js.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=o?.metadata||[];return[...i,...a,...s]},[t,n,o]);return(0,el.jsx)(Nn,{metadata:r,...e})}var No=require("react");var Mo=require("@iiif/parser/image-3"),tl=require("react");function Eo(e,t={},n=[]){return(0,tl.useMemo)(()=>{if(!e)return null;let o=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(o="default"));let r=(0,Mo.createImageServiceRequest)(e);return(0,Mo.imageServiceRequestToString)({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:o||"default",prefix:r.prefix,originalPath:r.originalPath})},[...n])}var Vn=require("react/jsx-runtime");function xu(e){let t=typeof e.src=="string"?e.src:e.src.id,n=sn(),[o,r]=(0,No.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!o&&n.loadService({id:t}).then(()=>{r(!0)});let a=Eo(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[o,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,No.useEffect)(()=>()=>{r(!1)},[t]),a?(0,Vn.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Vn.jsx)(nl,{...e,fetchImageService:!1})}function nl(e){if(e.fetchImageService)return(0,Vn.jsx)(xu,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=Eo(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,Vn.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var Vo=require("react"),ol=require("react-error-boundary");var qe=require("react/jsx-runtime");function bu({src:e,errorFallback:t,interactive:n,skipSizes:o,children:r,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:l,y:c,...u}){let m=ke(),[d,p]=(0,Vo.useState)(),g=t||To,[f,S]=An(),v=(0,Vo.useMemo)(()=>{let y=S[e]?.status,R=f({id:e},{});return R?.height&&R.width&&y!=="loading"?{id:e,width:R.width,height:R.height,service:R,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:R.width,height:R.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:R.width,height:R.height}}}:null},[f,e,S]);if(!v||!v.height||!v.width)return null;let h=s?void 0:u.homePosition?u.homePosition.width/u.homePosition.height:v.width/v.height;return(0,qe.jsx)(ol.ErrorBoundary,{resetKeys:[],fallbackRender:y=>(0,qe.jsx)(g,{...u,...y}),children:(0,qe.jsx)(we,{vault:m,children:(0,qe.jsx)(Io,{...u,aspectRatio:h,containerProps:{style:{position:"relative"},...u.containerProps||{}},onCreated:y=>{p(y),u.onCreated&&u.onCreated(y)},children:(0,qe.jsxs)(Pe.Provider,{value:d,children:[(0,qe.jsx)(je,{image:v,id:v.id,isStatic:!n,x:l,y:c},v.id),(0,qe.jsx)(Cu,{viewerPreset:d,renderViewerControls:i,image:v,src:e,viewControlsDeps:a}),r]})})})})}function Cu({viewerPreset:e,renderViewerControls:t,image:n,src:o,viewControlsDeps:r}){return X(e&&t?"overlay":"none",`canvas-portal-controls-${o}`,Pe.Provider,t&&n?{value:e||null,children:t({image:n,images:[n],type:"images"})}:{},[o,e,...r||[]]),null}var rl=require("react/jsx-runtime");function Ru(e){let t=F();return(0,rl.jsx)(Nn,{metadata:t?.metadata||[],...e})}var Lo=require("react");var Pi=J(require("react-lazy-load-image-component"),1);var il=require("@iiif/helpers/i18n"),me=require("react/jsx-runtime"),{LazyLoadComponent:Pu}=Pi||Pi.default;function Ai(e){let{size:t,visible:n,classes:o,canvasId:r,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,l=(0,me.jsx)(Au,{...e}),c=(0,me.jsx)(Pu,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:r?(0,me.jsx)(pe,{canvas:r,children:l}):l});return i?(0,me.jsx)("figure",{className:o?.figure,children:c}):c}function Au({fallback:e,size:t,classes:n,showLabel:o,alt:r,dereference:i=!1}){let a=I(),s=t?.width||128,l=t?.height||t?.width||128,c=r||(0,il.getValue)(a?.label)||"",u=Ve({width:s,height:l,allowUnsafe:!0},i);return!u||u.type!=="fixed"?(0,me.jsx)(me.Fragment,{children:e}):(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)("div",{className:n?.imageWrapper,children:(0,me.jsx)("img",{className:n?.img,src:u.id,alt:c})}),o?(0,me.jsx)(de,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var Ut=require("react/jsx-runtime");function Tu({scrollBehaviour:e,dereference:t,flat:n,size:o,classes:r={},showLabel:i,figure:a,fallback:s}){let l=(0,Lo.useRef)(null),{items:c,sequence:u,currentSequenceIndex:m,setSequenceIndex:d}=rt(),p={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,Lo.useLayoutEffect)(()=>{if(!l.current)return;let f=l.current.querySelector("[data-selected=true]");f&&f.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[m]);let g=[];for(let f of u){let S=[],v=u[m]===f;for(let h of f){let y=c[h];S.push((0,Ut.jsx)("div",{className:v?p.item:r.item,children:(0,Ut.jsx)(Ai,{classes:v?p:r,canvasId:y.id,size:o,dereference:t,showLabel:i,figure:a,placeholder:(0,Ut.jsx)("div",{style:{height:128,width:128}}),fallback:s})},h))}if(n){g.push(S);continue}g.push((0,Ut.jsx)("div",{onClick:h=>{d(u.indexOf(f))},"data-selected":v,className:v?p.row:r.row,children:S},f.join("-")))}return(0,Ut.jsx)("div",{ref:l,className:r.container,children:g})}var Ln=require("zustand");function Ti(){let e=O(),t=(0,Ln.useStore)(e,i=>i.completeRequest),n=(0,Ln.useStore)(e,i=>i.polygonState.currentTool),o=(0,Ln.useStore)(e,i=>i.polygonState.selectedStamp),r=(0,Ln.useStore)(e,i=>i.switchTool);return{completeRequest:t,currentTool:n,selectedStamp:o,switchTool:r}}var j=require("react/jsx-runtime"),Iu={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function wu({showShapes:e=!0,enabled:t=Iu,classNames:n={},icons:o={}}){let{currentTool:r,switchTool:i,selectedStamp:a}=Ti();return(0,j.jsxs)(j.Fragment,{children:[r,(0,j.jsx)("button",{className:n.button,onClick:i.pointer,"data-active":r==="pointer",children:o.PointerIcon||"Pointer"}),(0,j.jsx)("button",{className:n.button,onClick:i.hand,"data-active":r==="hand",children:o.HandIcon||"Hand"}),e?(0,j.jsxs)(j.Fragment,{children:[t.box&&(0,j.jsx)("button",{className:n.button,onClick:i.box,"data-active":r==="box",children:o.BoxIcon||"Box"}),t.pen&&(0,j.jsx)("button",{className:n.button,onClick:i.pen,"data-active":r==="pen",children:o.PenIcon||"Pen"}),t.draw&&(0,j.jsx)("button",{className:n.button,onClick:i.draw,"data-active":r==="pencil",children:o.DrawIcon||"Draw"}),t.line&&(0,j.jsx)("button",{className:n.button,onClick:i.line,"data-active":r==="line",children:o.LineIcon||"Line"}),t.lineBox&&(0,j.jsx)("button",{className:n.button,onClick:i.lineBox,"data-active":r==="lineBox",children:o.LineBoxIcon||"LineBox"}),t.triangle&&(0,j.jsx)("button",{className:n.button,onClick:i.triangle,"data-active":r==="stamp"&&a?.id==="triangle",children:o.TriangleIcon||"Triangle"}),t.hexagon&&(0,j.jsx)("button",{className:n.button,onClick:i.hexagon,"data-active":r==="stamp"&&a?.id==="hexagon",children:o.HexagonIcon||"Hexagon"}),t.circle&&(0,j.jsx)("button",{className:n.button,"data-active":r==="stamp"&&a?.id==="circle",onClick:i.circle,children:o.CircleIcon||"Circle"})]}):null,t.delete&&(0,j.jsx)("button",{className:n.button,onClick:i.remove,children:o.DeleteForeverIcon||"Delete"})]})}var al=require("react/jsx-runtime");function ku({annotation:e,children:t}){return(0,al.jsx)(ae,{value:{annotation:e},children:t})}var sl=require("react/jsx-runtime");function Mu({annotationPage:e,children:t}){return(0,sl.jsx)(ae,{value:{annotationPage:e},children:t})}var ll=require("react/jsx-runtime");function Eu({collection:e,children:t}){return(0,ll.jsx)(ae,{value:{collection:e},children:t})}function Nu(e,t={}){return Oe(t)}var ul=require("@atlas-viewer/atlas"),Je=require("react");function Vu({canvasId:e}={}){let t=(0,ul.useCanvas)(),n=nt(),o=(0,Je.useMemo)(()=>e?[e]:t?[t.id]:n.map(c=>c.id),[e,t,n]),[r,i]=(0,Je.useState)({}),a=pn();(0,Je.useEffect)(()=>{let c=u=>{let m=u.partOf.canvasId;m&&i(d=>({...d,[m]:u.choice}))};return a.on("choice-change",c),()=>{a.off("choice-change",c)}},[]);let s=(0,Je.useMemo)(()=>{let c=[];for(let u of o){let m=r[u];m&&c.push({canvasId:u,choice:m})}return c},[o,r]),l=(0,Je.useMemo)(()=>({makeChoice:(c,u)=>{a.emit("make-choice",{choiceId:c,...u})}}),[a]);return{choices:s,actions:l}}function Lu(e,t=!1){}function zu(e){let n=ee().manifest,o=e?e.map(r=>typeof r=="string"?r:r?.id):[];return L(r=>{let i=n?r.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let l of i?.items||[])o.indexOf(l.id)!==-1&&s.push(l);return s},[o.join("/")])}var cl=require("react");function Ou(e,t=[]){let{id:n,selector:o}=e,r=ee(),i=n||r.collection,a=L(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,cl.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}var zo=require("react"),Ii=require("zustand");function Bu(){let e=O(),t=(0,Ii.useStore)(e,o=>o.completeRequest),n=(0,Ii.useStore)(e,o=>o.cancelRequest);return(0,zo.useMemo)(()=>({saveAnnotation:()=>{(0,zo.startTransition)(()=>{t()})},cancelRequest:n}),[t,n])}var ml=require("react"),Oo=require("zustand");function qu({requestId:e}={}){let t=O(),n=(0,Oo.useStore)(t,s=>s.metadata),o=(0,Oo.useStore)(t,s=>s.tool.requestId),r=e||o,i=(0,Oo.useStore)(t,s=>s.setMetadata),a=(0,ml.useCallback)(s=>i(s,r||void 0),[i,r]);return[r?n[r]||{}:{},a]}var dl=require("zustand");function Hu(e){let t=O(),n=(0,dl.useStore)(t,o=>o.tool.requestId);at("polygons.start-transition",o=>{e.requestId&&n!==e.requestId||e?.onStart?.(o.transitionIntent)},[n,e.requestId]),at("polygons.end-transition",o=>{e.requestId&&n!==e.requestId||e?.onEnd?.(o.transitionIntent,o.response)},[n,e.requestId]),at("polygons.transition",o=>{e.requestId&&n!==e.requestId||e?.onTransition?.(o.transitionIntent)},[n,e.requestId])}var Bo=require("react"),pl=require("@iiif/helpers/events");function Du(e,t,n,o,r=[]){let i=k(),a=(0,Bo.useMemo)(()=>(0,pl.createEventsHelper)(i),[i]);(0,Bo.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,o),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...r])}function Fu(e,t){let{id:n,isLoaded:o,error:r,resource:i,requestId:a,cached:s}=Kt(e,t);return{id:n,isLoaded:o,error:r,manifest:i,requestId:a,cached:s}}var wi=require("@iiif/parser/image-3");var Ie=require("react");function ki({cacheKey:e}={}){let t=I(),n=Oe(),o=k(),r=zt(),i=Ka(),[a,s]=(0,Ie.useState)(void 0),[l,c]=(0,Ie.useState)(!1),[u,m]=(0,Ie.useState)("idle"),[d,p]=(0,Ie.useState)(void 0),g=t?t.id:"undefined",f=(0,Ie.useMemo)(()=>{try{if(t&&n.length){let v=n[0],h=o.get(v.body[0]),R=(0,wi.getImageServices)(h)[0];return R&&r(R,{width:R.width||t.width,height:R.height||t.height},!0)||void 0}}catch(v){console.error(v)}},[g,e,t]),S=u==="success"&&a?a:f;return(0,Ie.useEffect)(()=>{(async()=>{try{if(t&&n.length){let v=n[0],h=o.get(v.body[0]),R=(0,wi.getImageServices)(h)[0];if(!R)return;c(!0),m("loading");try{let C=await i(R,{width:R.width||t.width,height:R.height||t.height})||void 0;s(C),m("success"),c(!1)}catch(C){m("error"),p(C)}}}catch(v){m("error"),p(v)}})()},[g,e]),(0,Ie.useMemo)(()=>({data:S,isFetching:l,status:u,error:d}),[S,l,u,d])}function $u(){let e=ki();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 qo=require("react");var fl=require("@iiif/helpers");function Wu({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=k(),n=I(),o=Oe(),r=(0,qo.useMemo)(()=>(0,fl.createPaintingAnnotationsHelper)(t),[t]),i=(0,qo.useMemo)(()=>r.getPaintables(o),[r,o]);return(0,qo.useMemo)(()=>kn({canvas:n,loadImageService:a=>a,paintables:i,supports:e}),[n,i,e])}var gl=require("@iiif/helpers/styles"),hl=require("react");function Uu(){let e=k();return(0,hl.useMemo)(()=>(0,gl.createStylesHelper)(e),[e])}var Q=require("react");function _u(e){let{initial:t,regions:n,progress:o,getProgress:r,enabled:i=!0,easing:a,reportEveryFrame:s=!1,pollInterval:l=Vr,loop:c=!1,onEnter:u,onExit:m,onProgress:d,jumpTo:p}=e,g=(0,Q.useMemo)(()=>zr(t,n),[t,n]),[f,S]=(0,Q.useState)(()=>-1),[v,h]=(0,Q.useState)(0),y=(0,Q.useRef)(-1),R=(0,Q.useRef)(0),C=(0,Q.useRef)(!0),P=(0,Q.useRef)(()=>{});(0,Q.useEffect)(()=>(C.current=!0,()=>{C.current=!1}),[]);let A=(0,Q.useMemo)(()=>{if(!a)return xe(ln);if(typeof a=="function")return a;if(Array.isArray(a)&&a.length===4)return xe(a);let V=Ke[a];return V?xe(V):xe(ln)},[a]),T=(0,Q.useCallback)(V=>{if(!(V<0||V>=g.length)&&(S(V),y.current=V,R.current=0,h(0),u))try{u(V)}catch{}},[g,u]);(0,Q.useEffect)(()=>{P.current=T,p&&p(T)},[T,p]);function z(V){let{index:K,t:w}=Or(V,g),M=K;if(c&&g.length>0){let Ct=g.length;M=(K%Ct+Ct)%Ct}let G=A(w);if(M!==y.current){if(y.current>=0&&m)try{m(y.current)}catch{}if(M>=0&&u)try{u(M)}catch{}y.current=M,C.current&&S(M)}if(R.current=G,C.current&&(s||M!==f)&&h(G),d&&M>=0)try{d(M,G)}catch{}}(0,Q.useEffect)(()=>{i&&typeof o=="number"&&z(o)},[o,i]),(0,Q.useEffect)(()=>{if(!i||typeof r!="function")return;let V=null,K=()=>{try{let w=r();z(w)}catch{}};return K(),V=setInterval(K,l),()=>clearInterval(V)},[r,i,l]);let U=f>=0&&f<g.length?g[f]:void 0,E=U?Lr(U.from,U.to,R.current):void 0;return{transitions:g,currentIndex:f,currentTransition:U,t:R.current,rect:E,jumpTo:T}}var bt=require("react");function Yu(e,t={}){let{axis:n="y",offset:o=0,steps:r=1,enabled:i=!0}=t,[a,s]=(0,bt.useState)(0),l=(0,bt.useRef)(-1),c=(0,bt.useRef)(null);return(0,bt.useEffect)(()=>{if(!i||!e||!e.current)return;let u=e.current,m=()=>{let p=n==="y"?u.scrollTop:u.scrollLeft,g=n==="y"?u.clientHeight:u.clientWidth,S=(n==="y"?u.scrollHeight:u.scrollWidth)-g,h=(S<=0?0:Math.max(0,Math.min(1,(p+o)/S)))*r;h!==l.current&&(l.current=h,s(h)),c.current=null},d=()=>{c.current===null&&(c.current=requestAnimationFrame(m))};return u.addEventListener("scroll",d,{passive:!0}),m(),()=>{u.removeEventListener("scroll",d),c.current!==null&&cancelAnimationFrame(c.current)}},[e,n,o,r,i]),a}function Ku(e,t){let{x:n,y:o,width:r,height:i}=e,{x:a,y:s}=t,{width:l,height:c}=t;return n+r>a&&n<a+l&&o+i>s&&o<s+c}var yl=J(require("tiny-invariant"),1);function Gu(e,t){let n=e.boundingBox||Fe(e.polygon);if(e.polygon&&!kt(e.polygon.points)){let o=e.target||Mt(e.polygon,t);return(0,yl.default)(o?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...n||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:o.value}}return{type:"BoxSelector",spatial:n}}
|
|
49
|
+
`}),(0,dn.jsx)("iframe",{title:`YouTube video: ${t.youTubeId}`,className:"video-yt",ref:o,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${Zl()}&modestbranding=1&rel=0`,referrerPolicy:"no-referrer compute-pressure",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Zl(){return typeof window<"u"?window.location.host:""}function ms({media:e,mediaControlsDeps:t,children:n}){let[{element:o,currentTime:r,progress:i},a,s]=ct({duration:e.duration});return X("overlay","video-element",Xl,{element:o,media:e,playPause:s.playPause}),null}var go=require("react/jsx-runtime");function jr(){let{strategy:e}=H(),{renderMediaControls:t,mediaControlsDeps:n}=se();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,go.jsxs)(ms,{media:e.media,mediaControlsDeps:n,children:[(0,go.jsx)(ft,{}),t?t(e):null]})}var bo=require("react"),Ae=require("zustand");var yo=require("@atlas-viewer/atlas"),Xe=require("react");var ds=require("polygon-editor"),te=require("react");var ho=require("zustand");function Qr(e){let t=O(),n=(0,ho.useStore)(t,i=>i.polygons),o=(0,ho.useStore)(t,i=>i.polygonState),r=(0,ho.useStore)(t,i=>i.polygon);return at("atlas.polygon-render",({state:i,slowState:a,dt:s})=>{e(i,a,s)}),{currentShape:r,state:o,helper:n}}var N=require("react/jsx-runtime"),ze=(0,ds.createSvgHelpers)(),ps={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function Xr(e){let{image:t}=e,n={...ps,...e.theme||{}},o=(0,te.useRef)(),r=(0,te.useRef)(),i=(0,te.useRef)(),a=(0,te.useRef)(),s=(0,te.useRef)(),l=(0,te.useRef)(),c=(0,te.useRef)(),u=(0,te.useRef)(),m=(0,te.useRef)(),d=(0,te.useRef)(),[p,g]=(0,te.useState)(null),[f,S]=(0,te.useState)(!1),{helper:v,state:h,currentShape:y}=Qr((E,V)=>{if(E.closestLineIndex,ze.updateTransitionBoundingBox(i.current,E,V),ze.updateBoundingBoxPolygon(o.current,E,V),ze.updateBoundingBoxPolygon(r.current,E,V),ze.updateTransitionShape(c.current,E,V),ze.updateClosestLinePointTransform(s.current,E,V),ze.updateSelectBox(a.current,E,V),ze.updatePointLine(u.current,E,V),ze.updateDrawPreview(l.current,E,V,3),ze.updateLineBox(m.current,E),g(E.transitionDirection),S(E.transitionRotate),E.closestLineIndex!==-1&&d.current){let K=E.polygon,w=K.points[E.closestLineIndex],M=K.points[(E.closestLineIndex+1)%K.points.length];w&&M&&d.current.setAttribute("points",`${w[0]},${w[1]} ${M[0]},${M[1]}`)}});(0,te.useEffect)(()=>{let E=()=>{v.modifiers.reset()};return document.addEventListener("mouseleave",E),()=>{document.removeEventListener("mouseleave",E)}},[]);let R=(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,N.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke,className:"marker"}),(0,N.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:n.controlFill})]}),(0,N.jsx)("marker",{id:"newdot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.activeLineStroke,className:"marker"})}),(0,N.jsxs)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[(0,N.jsx)("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke}),(0,N.jsx)("circle",{cx:"5",cy:"5",r:"3",fill:n.activeLineStroke})]}),(0,N.jsxs)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[(0,N.jsx)("rect",{width:"10",height:"10",fill:n.lineStroke}),(0,N.jsx)("rect",{x:"1",y:"1",width:"8",height:"8",fill:n.controlFill})]})]}),C=y?y.open?"polyline":"polygon":null,P=!h.showBoundingBox&&h.closestPoint!==null&&h.actionIntentType==="select-point",A=h.actionIntentType==="add-open-point",T=h.transitionIntentType==="split-line",z=h.transitioning&&h.selectedStamp&&h.transitionIntentType==="stamp-shape",U=y&&C?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(C,{fill:(!h.transitioning||h.transitionIntentType==="select-multiple-points")&&!y.open?n.shapeFill:"none",strokeWidth:z||h.showBoundingBox&&h.boxMode||h.transitioning&&h.transitionIntentType==="split-line"||h.transitioning&&h.transitionIntentType==="move-point"?0:2,stroke:n.shapeStroke,points:y.points.map(E=>E.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:h.showBoundingBox?void 0:h.boxMode?"url(#resizer)":"url(#dot)",markerMid:h.showBoundingBox?void 0:h.boxMode?"url(#resizer)":"url(#dot)",markerEnd:h.showBoundingBox?void 0:h.boxMode?"url(#resizer)":"url(#dot)",style:{pointerEvents:"none"},opacity:h.transitioning&&h.transitionIntentType==="move-shape"?0:1}),h.currentTool==="lineBox"&&h.actionIntentType==="close-line-box"?(0,N.jsx)("polygon",{fill:n.shapeFill,ref:m,stroke:n.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,h.transitionIntentType==="draw-shape"&&h.transitioning?(0,N.jsx)("polyline",{ref:l,fill:"none",stroke:n.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(h.transitioning&&h.transitionIntentType==="move-point")&&!(h.transitioning&&h.transitionIntentType==="stamp-shape")&&!h.showBoundingBox&&h.selectedPoints&&h.selectedPoints.length?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:y.points.filter((E,V)=>h.selectedPoints?.includes(V)).map(E=>E.join(",")).join(" "),opacity:h.transitioning&&h.transitionIntentType==="move-shape"?0:1}):null,P&&!h.transitioning&&h.closestPoint!==null&&y.points[h.closestPoint]?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:n.activeLineStroke,points:`${y.points[h.closestPoint][0]},${y.points[h.closestPoint][1]}`,opacity:h.transitioning&&h.transitionIntentType==="move-shape"?0:1}):null,!h.transitioning&&(h.actionIntentType==="add-open-point"||h.actionIntentType==="close-shape"||h.actionIntentType==="close-shape-line")?(0,N.jsx)("polyline",{stroke:n.activeLineStroke,ref:u,strokeWidth:h.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,h.hasClosestLine&&!h.showBoundingBox&&!h.transitioning&&h.currentTool!=="box"&&h.transitionIntentType==="split-line"?(0,N.jsx)("g",{children:(0,N.jsx)("polyline",{ref:d,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:n.activeLineStroke,strokeWidth:3})}):null,h.hasClosestLine&&!h.showBoundingBox&&!h.transitioning&&h.currentTool!=="box"&&h.transitionIntentType==="split-line"?(0,N.jsx)("g",{ref:s,children:(0,N.jsx)("polyline",{markerStart:"url(#newdot)",points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,h.transitioning?(0,N.jsx)(C,{ref:c,fill:y.open?"none":n.shapeFill,stroke:h.transitionIntentType==="stamp-shape"?n.activeLineStroke:n.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(y.open,2)}):null,h.transitioning&&h.transitionIntentType==="select-multiple-points"?(0,N.jsx)("rect",{ref:a,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,h.showBoundingBox&&!z?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("polygon",{ref:o,strokeWidth:2,stroke:n.boundingBoxStroke,fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}),(0,N.jsx)("polygon",{ref:r,strokeWidth:2,stroke:n.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:v.state.slowState.currentTool,setCurrentTool:v.tools.setTool,helper:v,currentShape:y,state:h,isAddingPoint:A,isSplitting:T,isStamping:z,isHoveringPoint:P,transitionDirection:p,transitionRotate:f,defs:R,editor:U}}var Qe=require("react/jsx-runtime");function fs(e){let t=(0,yo.useAtlas)(),{image:n}=e,{helper:o,defs:r,editor:i,state:a,transitionDirection:s,isSplitting:l,transitionRotate:c,isHoveringPoint:u,isAddingPoint:m}=Xr({image:e.image,theme:e.theme}),d=(0,Xe.useCallback)(f=>{f.button!==2&&o.pointer([[~~f.atlas.x,~~f.atlas.y]])},[o]),p=(0,Xe.useCallback)(f=>{f.button!==2&&o.pointerDown()},[o]),g=(0,Xe.useCallback)(f=>{f.button!==2&&o.pointerUp()},[o]);return(0,Xe.useEffect)(()=>{let f=S=>{o.key.up(S.key)};return document.addEventListener("keyup",f),()=>{document.removeEventListener("keyup",f)}},[o]),(0,Xe.useEffect)(()=>{let f=S=>{S.target&&["INPUT","TEXTAREA"].includes(S.target.tagName)||S.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||o.key.down(S.key)};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[o]),(0,Xe.useEffect)(()=>{let f=[];return s&&f.push(`atlas-cursor-${s}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&f.push("atlas-cursor-cut"),(u||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&f.push("atlas-cursor-move"),m&&f.push("atlas-cursor-crosshair"),l&&f.push("atlas-cursor-copy"),c&&f.push("atlas-cursor-rotate"),a.transitionIntentType==="draw-shape"&&f.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...f),()=>{t?.canvas&&t.canvas.classList.remove(...f)}},[t?.canvas,m,u,l,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,s,c]),(0,Qe.jsx)("world-object",{height:n.height,width:n.width,onMouseMove:d,onMouseDown:p,onMouseUp:g,onMouseLeave:o.blur,children:(0,Qe.jsx)(yo.HTMLPortal,{relative:!0,interactive:!1,children:(0,Qe.jsx)("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:(0,Qe.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[(0,Qe.jsx)("title",{children:"Annotation Editor"}),(0,Qe.jsx)("defs",{children:r}),i]})})})})}var Is=require("react"),ws=require("zustand");var Ps=require("@atlas-viewer/atlas"),ne=require("@floating-ui/react"),As=require("react-dom");var _=J(require("react"),1);var gs=J(require("react"),1),vo=require("react"),hs=J(require("mitt"),1),vs=require("react/jsx-runtime"),ys=(0,hs.default)(),yt=(0,vo.createContext)({emitter:ys});yt.displayName="Events";function pn(){return gs.default.useContext(yt).emitter}function Jl({emitter:e,children:t}){return(0,vs.jsx)(yt.Provider,{value:(0,vo.useMemo)(()=>({emitter:e}),[e]),children:t})}var Ht=require("react"),xs=require("react/jsx-runtime"),fn=(0,Ht.createContext)("");function Ss({children:e,identifier:t}){let n=(0,Ht.useMemo)(()=>t??Math.random().toString(36).substring(2,9),[t]);return(0,xs.jsx)(fn.Provider,{value:n,children:e})}function So(){return(0,Ht.useContext)(fn)}var ce=require("react/jsx-runtime"),gn=_.default.createContext({});function hn(){let e=(0,_.useContext)(gn),t=Object.keys(e),n={};for(let o of t)e[o].Provider&&(n[o]={value:(0,_.useContext)(e[o]),Provider:e[o].Provider});return n}function bs(e){let t=Object.keys(e),n=e.children;for(let o of t){if(o==="children")continue;let{value:r,Provider:i}=e[o];n=(0,ce.jsx)(i,{value:r,children:n})}return n}function eu(e){let t=(0,_.useContext)(gn),n=(0,_.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,ce.jsx)(gn.Provider,{value:n,children:e.children})}function yn(){return{VaultContext:(0,_.useContext)(He),ResourceContext:(0,_.useContext)(_t),SimpleViewerReactContext:(0,_.useContext)(wt),VisibleCanvasReactContext:(0,_.useContext)(tt),AuthRContext:(0,_.useContext)(ot),SearchReactContext:(0,_.useContext)(It),ReactEventContext:(0,_.useContext)(yt),ContextBridgeReactContext:(0,_.useContext)(gn),StrategyReactContext:(0,_.useContext)(Ue),AtlasStoreReactContext:(0,_.useContext)(st),ViewerIdentifierContext:(0,_.useContext)(fn)}}function vn(e){return(0,ce.jsx)(we,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(tt.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(wt.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(yt.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(st.Provider,{value:e.bridge.AtlasStoreReactContext,children:(0,ce.jsx)(ot.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(It.Provider,{value:e.bridge.SearchReactContext,children:(0,ce.jsx)(fn.Provider,{value:e.bridge.ViewerIdentifierContext,children:(0,ce.jsx)(gn.Provider,{value:e.bridge.ContextBridgeReactContext,children:(0,ce.jsx)(Ue.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?(0,ce.jsx)(bs,{...e.custom,children:e.children}):e.children})})})})})})})})})})}var Dt=require("react/jsx-runtime"),Ts=10,Cs=1;function tu(e){let[t,n]=e.split("-");return[t,n]}function Rs(e,t,n){return t>n?e:Math.min(Math.max(e,t),n)}function nu(e){return e.top>0||e.right>0||e.bottom>0||e.left>0}function ou(e){return{name:"insideHighlightFallback",options:e,async fn(t){if(e.width<=Cs||e.height<=Cs)return{};let n=await(0,ne.detectOverflow)(t,{altBoundary:!0});if(!nu(n))return{};let{reference:o,floating:r}=t.rects,[i,a]=tu(t.initialPlacement),s=Math.min(Ts,o.width/2,o.height/2),l=o.x+(o.width-r.width)/2,c=o.y+(o.height-r.height)/2,u=t.x,m=t.y;return i==="top"||i==="bottom"?(m=i==="top"?o.y+s:o.y+o.height-r.height-s,a==="start"?u=o.x+s:a==="end"?u=o.x+o.width-r.width-s:u=l,u=Rs(u,o.x+s,o.x+o.width-r.width-s)):(u=i==="left"?o.x+s:o.x+o.width-r.width-s,a==="start"?m=o.y+s:a==="end"?m=o.y+o.height-r.height-s:m=c,m=Rs(m,o.y+s,o.y+o.height-r.height-s)),{x:u,y:m}}}}function xo({annotation:e,target:t,children:n,dismissable:o,isOpen:r,onOpenChange:i,placement:a}){let s=So(),l=yn(),c=hn(),{refs:u,floatingStyles:m,context:d}=(0,ne.useFloating)({open:r,onOpenChange:i,nodeId:e.id,placement:a||"bottom",middleware:[(0,ne.offset)(Ts),(0,ne.flip)({mainAxis:!0,fallbackStrategy:"bestFit",altBoundary:!0}),(0,ne.shift)({altBoundary:!0}),ou(t)],whileElementsMounted:ne.autoUpdate}),p=(0,ne.useDismiss)(d),{getReferenceProps:g,getFloatingProps:f}=(0,ne.useInteractions)([o?p:null].filter(S=>S!==null));return(0,Dt.jsxs)(Ps.HTMLPortal,{relative:!0,target:t,interactive:!1,children:[(0,Dt.jsx)("div",{ref:u.setReference,...g(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),(0,As.createPortal)((0,Dt.jsx)(vn,{bridge:l,custom:c,children:(0,Dt.jsx)("div",{ref:u.setFloating,style:m,...f(),children:n})}),document.getElementById(`atlas-floating-ui-${s}`))]})}var Sn=require("react/jsx-runtime"),ks=(0,ws.create)()(e=>({isMenuOpen:!1,menuPosition:{x:0,y:0},setMenuPosition(t){e({menuPosition:t})},toggle(t){e(n=>({isMenuOpen:!n.isMenuOpen,menuPosition:t}))},open(t){e({isMenuOpen:!0,menuPosition:t})},setIsMenuOpen(t){e(typeof t=="function"?n=>({isMenuOpen:t(n.isMenuOpen)}):{isMenuOpen:t})},close(){e({isMenuOpen:!1})}}));function xn(e,t,n){let{isMenuOpen:o,setIsMenuOpen:r,close:i,open:a,menuPosition:s,setMenuPosition:l,toggle:c}=ks(),u=(0,Is.useCallback)(p=>{n&&(p.preventDefault(),p.stopPropagation(),c(p.atlas))},[c,n]);return[(0,Sn.jsx)(Sn.Fragment,{children:n&&o&&(0,Sn.jsx)(xo,{dismissable:!0,placement:"bottom-start",isOpen:o,onOpenChange:r,annotation:{id:e},target:{x:s.x,y:s.y,height:1,width:1},children:o&&n({canvasId:t,position:s,close:()=>r(!1)})})}),{onContextMenu:u},{open:a,close:i,toggle:c,isMenuOpen:o,setIsMenuOpen:r,menuPosition:s,setMenuPosition:l}]}var Ms=require("zustand");function Zr(){let e=O();return(0,Ms.useStore)(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}var oe=require("react/jsx-runtime");function Jr({theme:e,renderContextMenu:t,children:n}){let o=O(),r=I(),i=(0,Ae.useStore)(o,C=>C.polygon),a=(0,Ae.useStore)(o,C=>C.polygonState.currentTool),s=(0,Ae.useStore)(o,C=>C.mode),l=(0,Ae.useStore)(o,C=>C.changeMode),c=(0,Ae.useStore)(o,C=>C.polygonState.transitioning),{enabled:u,requestId:m}=(0,Ae.useStore)(o,C=>C.tool),d=(0,bo.useMemo)(()=>Fe(i),[i]),p=Zr(),[g,f]=xn("editing-annotation",r?.id,t),S=p?.annotationPopup||n||(0,oe.jsx)(Es,{}),v=p?.svgTheme||e,h=()=>{l("sketch")};if(!u||!r||!m||!i)return null;let y=d&&i.id&&!c&&(a==="pointer"||a==="hand"||!i.open)?(0,oe.jsx)(xo,{annotation:i,target:d,children:S}):null,R="shape";return s==="explore"?(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:h,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)"},...f}),(0,oe.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,onClick:h,relativeStyle:!0,target:{x:0,y:0,width:r.width,height:r.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),y]}):(0,oe.jsxs)(oe.Fragment,{children:[t?(0,oe.jsx)(R,{id:`shape-${i.id}`,points:i.points,open:i.open,target:{x:0,y:0,width:r.width,height:r.height},...f}):null,(0,oe.jsx)(fs,{image:r,theme:v}),y,g]})}function Es(){let e=O(),t=(0,Ae.useStore)(e,a=>a.changeMode),n=(0,Ae.useStore)(e,a=>a.mode),o=(0,Ae.useStore)(e,a=>a.completeRequest),r=(0,Ae.useStore)(e,a=>a.tool),i=()=>{(0,bo.startTransition)(()=>{o()})};return r.enabled?(0,oe.jsxs)("div",{className:"svg-tools-container animate-fadeIn",children:[n!=="sketch"&&(0,oe.jsx)("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),(0,oe.jsx)("button",{className:"svg-tools-button",onClick:i,children:"Save"})]}):null}var Ze=require("react");var Ft=require("react");var Ns=require("@iiif/helpers");function ru(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function bn(e,t){let{selector:n,source:o}=(0,Ns.expandTarget)(t);if(o.id!==e.id)return[null,o];let r={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:r.spatial}:n:null,o]}var ei={makeChoice:()=>{}},Cn={type:"unknown"},B=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),ti=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Rn=require("react");function iu(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Vs(e,t){return L(n=>{let o=[];if(!e)return o;let r=Object.keys(n.iiif.entities.AnnotationPage);for(let i of r)if(!t||t.indexOf(i)!==-1){let a=iu(n,i);a&&a.views&&a.views[e]&&o.push(i)}return o},[e,t])}function ni({canvas:e,manifest:t,all:n,canvases:o}){let r=[];if(t)for(let i of t.annotations)r.indexOf(i.id)===-1&&r.push(i.id);if(n){if(o&&o.length)for(let i of o)for(let a of i.annotations)r.indexOf(a.id)===-1&&r.push(a.id)}else if(e)for(let i of e.annotations)r.indexOf(i.id)===-1&&r.push(i.id);return r}function au(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Pn(e,t={}){let n=k(),o=F(),r=I(),i=nt(),a=(0,Rn.useMemo)(()=>ni({all:t.all,manifest:o,canvas:r,canvases:i}),[t.all,r,i,o]),s=Vs(e,t.all?void 0:a),l=(0,Rn.useCallback)(u=>{e&&n.setMetaValue([u,"annotationPageManager","views"],m=>m&&!m[e]?m:{...m||{},[e]:!1})},[e,n]),c=(0,Rn.useCallback)((u,m={})=>{if(!e)return;let d=n.getState(),p=[];if(m?.deselectOthers){let g=Object.keys(d.iiif.entities.AnnotationPage);for(let f of g){let S=au(d,f);S&&S.views&&S.views[e]&&p.push(f)}}for(let g of p)l(g);n.setMetaValue([u,"annotationPageManager","views"],g=>g&&g[e]?g:{...g||{},[e]:!0})},[e,l,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:c,setPageDisabled:l}}function oi(e,t){return L((n,o)=>o.get(e.map(r=>({id:r,type:t}))),[e,t])}var Ls=J(require("mitt"),1),zs=require("react"),Os=require("zustand");var su=(0,Os.createStore)((e,t)=>({loaded:{},setLoaded:(n,o="done")=>{e(r=>({loaded:{...r.loaded,[n]:o}}))}})),lu=(0,Ls.default)();lu.on("loaded",e=>{su.getState().setLoaded(e.imageServiceId)});function An(){let e=zt(),t=Ya();return[(0,zs.useCallback)((o,{height:r,width:i})=>o&&e(o,{height:r,width:i},!0),[e]),t]}var vt=require("react");function Oe(e={}){let t=en(),n=I(e.canvasId?{id:e.canvasId}:void 0);return L((o,r)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=r.get(n.items),a=[];for(let s of i)a.push(...r.get(s.items));return a},[n])}var Bs=require("@iiif/helpers/painting-annotations");function ri(e,t=[]){let n=k(),o=(0,vt.useMemo)(()=>(0,Bs.createPaintingAnnotationsHelper)(n),[]),r=Oe({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,vt.useState)(e?.defaultChoices||[]),s=(0,vt.useMemo)(()=>o.getPaintables(r,i),[n,r,i,...t]),c={makeChoice:(0,vt.useCallback)((u,{deselectOthers:m=!0,deselect:d=!1}={})=>{s.choice&&a(p=>{if(d){let f=p.filter(S=>S!==u);if(f.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return f}if(m)return[u];let g=[...p];if(g.length===0&&s.items.length){let f=s.items[0].resource.id;f&&g.push(f)}return p.indexOf(u)!==-1?p:[...p,u]})},[s.choice])};return[s,c]}var uu=["model/gltf-binary"];function ii(e,t){let n=t.items[0],o=n.resource;return o.format?uu.indexOf(o.format)===-1?B(`3D format: ${o.format} is unsupported`):{type:"3d-model",model:o,annotationId:n.annotationId,annotation:n.annotation}:B("Unknown format")}function Co(e,t){let n=t.items,o=n[0];if(n.length===0||!o)return B("No audio");if(!e.duration)return B("No duration on canvas");if(n.length>1)return B("Only one audio source supported");let r=o.resource;return r?("format"in r||(r.format="audio/mpeg"),{type:"media",media:{annotationId:o.annotationId,annotation:o.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}):B("Unknown audio")}var ai=require("@iiif/helpers/annotation-targets"),Hs=require("@iiif/parser/image-3");function Be(e){return e.replace(/^http:/,"https:")}function qs(e){if(!(e?.type!=="ImageApiSelector"||typeof e.rotation>"u"))return si(e.rotation)}function si(e){if(e===null||typeof e>"u"||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}function cu(e){let t=e.selector||{};return{...e.rotationOrigin||t.rotationOrigin?{rotationOrigin:e.rotationOrigin||t.rotationOrigin}:{},...e.translate||t.translate?{translate:e.translate||t.translate}:{},...e.transform||t.transform?{transform:e.transform||t.transform}:{},...e.style||t.boxStyle?{style:e.style||t.boxStyle}:{},...e.styleClass?{styleClass:e.styleClass}:{}}}function Tn(e,t,n){let o=[],r=[];for(let i of t.items){let a=i.resource&&i.resource.type==="SpecificResource"?i.resource.source:i.resource;if(!a.id)return B("No resource Identifier");let l=(i.resource.type==="SpecificResource"?qs(i.resource.selector):void 0)??qs(i.selector)??si(i.rotation)??si(i.selector?.rotation),c=typeof l<"u",u;if(a.service){let y=(0,Hs.getImageServices)(a);y[0]&&(u=n(y[0],c?{width:Number(a.width||e.width),height:Number(a.height||e.height)}:e))}let m={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[d,p]=bn(e,i.target),g=e.id?.split("?")[0]||"";if(!(Be(p.id||"")===Be(e.id)||Be(decodeURIComponent(p.id||""))===Be(e.id||"")||Be(p.id||"")===Be(g)||Be(decodeURIComponent(p.id||""))===Be(g)))continue;let f=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,S=i.resource.type==="SpecificResource"?(0,ai.expandTarget)(i.resource):null;if(i.selector){let y=(0,ai.expandTarget)({type:"SpecificResource",source:i.resource,selector:i.selector});y&&(S=y)}let v=S&&S.selector&&(S.selector.type==="BoxSelector"||S.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:S.selector.spatial.x,y:S.selector.spatial.y,width:S.selector.spatial.width,height:S.selector.spatial.height},...typeof S.selector.rotation<"u"?{rotation:S.selector.rotation}:{},...S.selector.rotationOrigin?{rotationOrigin:S.selector.rotationOrigin}:{},...S.selector.translate?{translate:S.selector.translate}:{},...S.selector.transform?{transform:S.selector.transform}:{},...S.selector.boxStyle?{boxStyle:S.selector.boxStyle}:{}}:void 0;u&&!u.id&&(u.id=u["@id"]);let h={id:a.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(c||d||v?a.width:e.width),height:Number(c||d||v?a.height:e.height),...typeof l<"u"?{rotation:l}:{},...cu(i),service:u,sizes:u&&u.sizes?u.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:d&&d.type!=="PointSelector"?d:m,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};o.push(h)}return{type:"images",image:o[0],images:o,choice:t.choice}}function Ds(e,t={},n){let o=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[o]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(r=>Ds(r,t,o))}return t}function In(e,t){let n=[];return t.items.forEach(o=>{if(o.resource){let[r]=bn(e,o.target);n.push({type:"Text",annotationId:o.annotationId,annotation:o.annotation,text:Ds(o.resource),target:r})}}),{type:"textual-content",items:n}}var Ro=require("@iiif/helpers");var mu=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function wn(e,t,n,o=!1){let r=t.items.filter(f=>f.type==="video"),i=r[0],a=!1,s=!1;if(e.duration||(s=!0),r.length>1||!i)return B("Only one video source supported");let l=r[0]?.resource,c=!!(l.service||[]).find(f=>(f.profile||"").includes("youtube.com"));if(!c&&s)return B("Video does not have duration");if(!l)return B("Unknown video");if((!l.format||l.format==="text/html")&&!c)return B("Video does not have format");let u=[],m=n.get(e.annotations||[]);for(let f of m){let S=n.get(f.items||[]);for(let v of S)if((v.motivation?Array.isArray(v.motivation||"")?v.motivation:[v.motivation]:[]).includes("supplementing")){let y=n.get(v.body||[]);for(let R of y){let C=R;if(C.type==="Choice")for(let P of C.items){let A=n.get(P);A.format==="text/vtt"&&u.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else C.format==="text/vtt"&&u.push({id:C.id,type:"Text",format:"text/vtt",label:C.label,language:C.language})}}}let d={annotationId:i.annotationId,annotation:i.annotation,duration:e.duration,url:l.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:l.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},p=(0,Ro.expandTarget)(i.target);p.selector&&p.selector.type==="TemporalBoxSelector"&&(d.target=p.selector);let{selector:g}=(0,Ro.parseSelector)(i.selector);if(g===null){let f=d.target.temporal.startTime,v=(d.target.temporal.endTime||e.duration)-f;d.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:v}}}else g.type==="TemporalSelector"&&(d.selector=g);if(o&&!d.target.spatial&&(a=!0,d.target={type:"TemporalBoxSelector",temporal:d.target.temporal,spatial:{x:e.width/2,y:e.height/2,width:e.width/2,height:e.height/2}}),c){d.type="VideoYouTube";let f=l.id.match(mu);if(!f[1])return B("Video is not known youtube video");d.youTubeId=f[1]}return{type:"media",media:d,annotations:{pages:[]},noSpatial:a,captions:u}}var Fs=require("@iiif/helpers");function li(e,t,n,o){let r={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},i={type:"complex-choice",items:[]},a=o.get(e.annotations);function s(u){u.choice&&(u.choice.type==="complex-choice"?i.items.push(...u.choice.items):i.items.push(u.choice))}for(let u of t.items){if(u.type==="image"){let m=Tn(e,{choice:null,allChoices:null,types:["image"],items:[u]},n);if(m.type==="images"){if(!m.image)continue;s(m),r.items.push(m.image);let d={id:m.image.annotationId,type:"enter",resourceType:"image",time:m.image.target?.temporal?.startTime||0};r.keyframes.push(d);let p={id:m.image.annotationId,type:"exit",resourceType:"image",time:m.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(p)}}if(u.type==="textualbody"){let m=In(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(m.type==="textual-content"){s(m);let d=m.items[0];r.items.push(d);let p=d.target,g={id:d.annotationId,type:"enter",resourceType:"text",time:p.temporal?.startTime||0};r.keyframes.push(g);let f={id:d.annotationId,type:"exit",resourceType:"text",time:p.temporal?.endTime||e.duration||0};r.keyframes.push(f)}}if(u.type==="video"){let m=wn(e,{choice:null,allChoices:null,types:["video"],items:[u]},o,!0);if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let p={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(p);let g={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}if(u.type==="audio"||u.type==="sound"){let m=Co(e,{choice:null,allChoices:null,types:["audio"],items:[u]});if(m.type==="media"){s(m);let d=m.media;r.items.push(d);let p={id:d.annotationId,type:"enter",resourceType:"audio",time:d.target?.temporal?.startTime||0};r.keyframes.push(p);let g={id:d.annotationId,type:"exit",resourceType:"audio",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(g)}}}for(let u of a)for(let m of u.items){let d=o.get(m),p=(0,Fs.expandTarget)(d.target,{typeMap:o.getState?.().iiif.mapping});if(p.selector?.temporal){let g={id:d.id,type:"enter",resourceType:"highlight",time:p.selector.temporal.startTime||0};r.keyframes.push(g);let f={id:d.id,type:"exit",resourceType:"highlight",time:p.selector.temporal.endTime||e.duration||0};r.keyframes.push(f)}r.highlights.push({annotation:d,target:p})}r.keyframes.sort((u,m)=>u.time-m.time);let l=[],c=[];for(let u of r.keyframes){if(u.resourceType==="image"||u.resourceType==="text"||u.resourceType==="highlight"){c.push(u);continue}if(u.type==="enter"){l.length===0&&(u.isPrime=!0),l.push(u),c.push(u);continue}if(u.type==="exit"&&(c.push(u),l=l.filter(m=>m.id!==u.id),l.length!==0)){let m=l[0],d={id:m.id,type:"change",isPrime:!0,resourceType:m.resourceType,time:u.time};c.push(d)}}return r.keyframes=c,i.items.length&&(r.choice=i),r}var Po={},ui={get(e){return e},setMetaValue([e,t,n],o){let r=ui.getResourceMeta(e,t),i=r?r[n]:void 0,a=typeof o=="function"?o(i):o;Po[e]={...Po[e]||{},[t]:{...(Po[e]||{})[t]||{},[n]:a}}},getResourceMeta:(e,t)=>{let n=Po[e];if(n)return t?n[t]:n},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(n=>n.json())},requestStatus(e){}};function kn({canvas:e,paintables:t,supports:n,loadImageService:o,vault:r=ui}){if(!e)return Cn;if(t.types.length===0)return n.indexOf("empty")!==-1?ti(e.width,e.height):Cn;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return n.indexOf("complex-timeline")===-1?B("Complex timeline not supported"):li(e,t,o,r);let i=t.types[0];return i==="image"?n.indexOf("images")===-1?B("Image not supported"):Tn(e,t,o):i==="Model"||i==="model"?n.indexOf("3d-model")===-1?B("3D not supported"):ii(e,t):i==="textualbody"?n.indexOf("textual-content")===-1?B("Textual content not supported"):In(e,t):i==="sound"||i==="audio"?n.indexOf("media")===-1?B("Media not supported"):Co(e,t):i==="video"?n.indexOf("media")===-1?B("Media not supported"):wn(e,t,r):Cn}function ci(e){let t=F(),n=I(),o=k(),r=pn(),i=e?.emitter||r,[a,s]=An(),{enabledPageIds:l}=Pn(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),c=oi(l,"AnnotationPage"),u=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[m,d]=ri(e,[s]);(0,Ft.useEffect)(()=>{let g=f=>{d.makeChoice(f.choiceId,{deselectOthers:f.deselectOthers,deselect:f.deselect})};return i.on("make-choice",g),()=>{i.off("make-choice",g)}},[]);let p=(0,Ft.useMemo)(()=>kn({canvas:n,paintables:m,supports:u,loadImageService:a,vault:o}),[n,m,o,d.makeChoice]);return(0,Ft.useEffect)(()=>{let g=m.allChoices,f={canvasId:n?.id,manifestId:t?.id};g&&i.emit("choice-change",{choice:g,partOf:f})},[n?.id,m.allChoices]),(0,Ft.useMemo)(()=>p.type==="unknown"?[p,ei]:[{...p,annotations:{pages:c}},d],[p,c])}var $s=require("@iiif/helpers");var mi=require("react/jsx-runtime");function di({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:o,mediaControlsDeps:r,renderMediaControls:i,renderViewerControls:a,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,throwOnUnknown:u,children:m}){let d=I(),p=k(),g=(0,Ze.useMemo)(()=>(0,$s.createStylesHelper)(p),[p]),[f,S]=ci({strategies:e||["images"],defaultChoices:n?.map(({id:R})=>R)}),v="choice"in f?f.choice:void 0;if((0,Ze.useEffect)(()=>{t&&t(S)},[f.annotations]),(0,Ze.useEffect)(()=>{o&&o(v)},[v]),(0,Ze.useEffect)(()=>{if(n)for(let R of n)typeof R.opacity<"u"&&g.applyStyles({id:R.id},"atlas",{opacity:R.opacity})},[n]),f.type==="unknown"&&u)throw new Error(f.reason||"Unknown strategy");let h=(0,Ze.useMemo)(()=>({renderMediaControls:i,mediaControlsDeps:r||[],renderViewerControls:a,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:c||[]}),[r,i,a,s,l,c]),y=(0,Ze.useMemo)(()=>({strategy:f,actions:S,choices:"choice"in f?f.choice:[]}),[f,d]);return(0,mi.jsx)(an.Provider,{value:h,children:(0,mi.jsx)(Ue.Provider,{value:y,children:m})})}var Mn=require("react"),fi=require("zustand");var $t=require("react");var pi=(0,$t.createContext)(()=>{});function Ws(e){let t=I(),n=(0,$t.useContext)(pi);(0,$t.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var Us=require("react/jsx-runtime");function gi({x:e=0,y:t=0,keepCanvasScale:n=!0,renderContextMenu:o,children:r}){let{strategy:i}=H(),a=I(),s=O(),l=tn(a,["deep-zoom"]),c=(0,fi.useStore)(s,f=>f.setCanvasRelativePosition),u=(0,fi.useStore)(s,f=>f.clearCanvasRelativePosition),[m,d]=xn(`context-menu/${a?.id}`,a?.id,o),p=(0,Mn.useMemo)(()=>n?1:Math.max(1,...i.type==="images"?i.images.map(f=>(f.width||0)/f.target?.spatial.width):[]),[n,i]);(0,Mn.useEffect)(()=>{if(a)return c(a.id,{x:e,y:t,width:a.width,height:a.height}),()=>{u(a.id)}},[e,t,a,u,c]),(0,Mn.useEffect)(()=>{a&&s.getState().reset()},[s,a]),Ws(p);let g=i.type==="images"?i.images.length:0;return a?(0,Us.jsxs)("world-object",{height:a.height,width:a.width,x:e,y:t,...d,...l,children:[m,r]},`${a.id}/${i.type}/${g}`):null}var le=require("react/jsx-runtime");function dt({x:e,y:t,onChoiceChange:n,registerActions:o,defaultChoices:r,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,mediaControlsDeps:m,strategies:d,throwOnUnknown:p,rotation:g,backgroundStyle:f,alwaysShowBackground:S,keepCanvasScale:v=!1,enableSizes:h=!1,enableYouTube:y=!0,onClickPaintingAnnotation:R,components:C={},children:P,annotationPopup:A,svgTheme:T,renderContextMenu:z,renderAnnotationContextMenu:U}){return(0,le.jsxs)(di,{throwOnUnknown:p,onChoiceChange:n,registerActions:o,strategies:d,defaultChoices:r,mediaControlsDeps:m,renderMediaControls:s,renderViewerControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:c,viewControlsDeps:u,children:[(0,le.jsxs)(gi,{keepCanvasScale:v,x:e,y:t,renderContextMenu:z,children:[(0,le.jsx)(Ur,{alwaysShowBackground:S,backgroundStyle:f}),(0,le.jsx)(Wr,{}),(0,le.jsx)(Yr,{}),(0,le.jsx)(_r,{isStatic:i,enableSizes:h,onClickPaintingAnnotation:R,rotation:g}),(0,le.jsx)(Ir,{}),(0,le.jsx)(br,{}),(0,le.jsx)(Mr,{as:C.Audio}),(0,le.jsx)(Gr,{as:C.Video}),y?(0,le.jsx)(jr,{}):null,(0,le.jsx)(Jr,{theme:T,renderContextMenu:U,children:A}),P]}),(0,le.jsx)(Cr,{})]})}var hi=require("react/jsx-runtime");function _s(e){let t=I();return!t||!t.placeholderCanvas?null:(0,hi.jsx)(pe,{canvas:t.placeholderCanvas.id,children:(0,hi.jsx)(dt,{renderViewerControls:e.renderViewerControls})})}var Ks=require("@atlas-viewer/atlas"),re=J(require("react"),1),Gs=require("react-error-boundary"),yi=require("zustand");var Ao=require("react");function Ys(e,t=2e3){let{currentSequenceIndex:n,sequence:o,items:r}=rt(),i=I(),a=(0,Ao.useMemo)(()=>{let l=o[n]||[];return l.length===0&&i?[{id:i.id,type:"Canvas"}]:l.map(c=>r[c])},[o,n,i,r]),s=O();(0,Ao.useEffect)(()=>{let c=setInterval(()=>{if(e&&t!==-1){let u={x:e.x,y:e.y,width:e.width,height:e.height},m=s.getState().canvasRelativePositions,d={};for(let p of a){let g=m[p.id];if(g){let f=g.x,S=g.y,v=g.width,h=g.height,y={x:Math.max(f,u.x),y:Math.max(S,u.y),width:Math.min(f+v,u.x+u.width)-Math.max(f,u.x),height:Math.min(S+h,u.y+u.height)-Math.max(S,u.y)};y.width<=0||y.height<=0||(d[p.id]={x:y.x-g.x,y:y.y-g.y,width:y.width,height:y.height}),s.setState({canvasViewports:d})}}}},t);return()=>{clearTimeout(c)}},[a,e,s,t])}var Wt=require("react/jsx-runtime");function To({width:e,style:t,height:n,error:o,resetErrorBoundary:r}){return(0,Wt.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Wt.jsx)("h3",{children:"Error occurred"}),(0,Wt.jsx)("p",{children:o.message}),(0,Wt.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var q=require("react/jsx-runtime");function Io(e){let t=O(),n=(0,re.useMemo)(()=>e.name||Math.random().toString(36).substring(2,9),[e.name]);return(0,q.jsx)(Ss,{identifier:n,children:(0,q.jsx)(Et,{name:e.name,existing:t,children:(0,q.jsx)(du,{...e})})})}function du({name:e,children:t,errorFallback:n,outerContainerProps:o={},worldScale:r,updateViewportTimeout:i,...a}){let s=O(),l=So(),c=(0,yi.useStore)(s,w=>w.mode),u=(0,yi.useStore)(s,w=>w.setAtlasRuntime),[m,d]=(0,re.useState)(),p=hn(),g=yn(),f=n||To,[S,v]=(0,re.useState)({}),h=Object.entries(S),[y,R]=(0,re.useState)({}),C=Object.entries(y),[P,A]=(0,re.useState)({}),{worldScale:T,runtimeOptions:z}=(0,re.useMemo)(()=>{if(Object.values(P).length===0)return{worldScale:1,runtimeOptions:a.runtimeOptions||{maxOverZoom:1}};let M=Math.max(...Object.values(P));return{worldScale:M,runtimeOptions:{maxOverZoom:M||1,...a.runtimeOptions||{}}}},[P,a.runtimeOptions]);Ys(m?.runtime,i);let U=(0,re.useCallback)((w,M)=>{A(G=>{if(M===-1){let{[w]:Ct,...et}=G;return et}return{...G,[w]:M}})},[]),E=(0,re.useCallback)((w,M,G)=>{v(({[w]:Ct,...et})=>M?{...et,[w]:{element:M,props:G}}:et)},[]),V=(0,re.useCallback)((w,M,G)=>{R(({[w]:Ct,...et})=>M?{...et,[w]:{element:M,props:G}}:et)},[]),K=(0,re.useCallback)(w=>{d(w),u(w.runtime),a.onCreated&&a.onCreated(w)},[a.onCreated,u]);return(0,q.jsxs)(Gs.ErrorBoundary,{resetKeys:[],fallbackRender:w=>(0,q.jsx)(f,{...a,...w}),children:[(0,q.jsx)(Ks.AtlasAuto,{...a,mode:c,containerProps:{style:{position:"relative"},...a.containerProps||{}},htmlChildren:(0,q.jsx)(q.Fragment,{children:h.map(([w,{element:M,props:G}])=>(0,q.jsx)(re.default.Fragment,{children:(0,q.jsx)(M,{...G||{}})},w))}),onCreated:K,runtimeOptions:z,children:(0,q.jsx)(Et,{name:e,existing:s,children:(0,q.jsx)(Pe.Provider,{value:m,children:(0,q.jsx)(pi.Provider,{value:U,children:(0,q.jsx)(yr.Provider,{value:E,children:(0,q.jsx)(vr.Provider,{value:V,children:(0,q.jsx)(vn,{bridge:g,custom:p,children:(0,q.jsx)(Tr,{children:t})})})})})})})}),(0,q.jsx)("div",{children:C.map(([w,{element:M,props:G}])=>(0,q.jsx)(re.default.Fragment,{children:(0,q.jsx)(M,{...G||{}})},w))}),(0,q.jsx)("div",{id:`atlas-floating-ui-${l}`,className:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}var ie=require("react/jsx-runtime"),pu=(0,St.forwardRef)(function(t,n){let o=F(),r=nt(),i=rt(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,St.useImperativeHandle)(n,()=>i,[i]),!o)return(0,ie.jsx)("div",{});let c=0,u=o.viewingDirection==="top-to-bottom",m=o.viewingDirection==="bottom-to-top",d=o.viewingDirection==="left-to-right",p=o.viewingDirection==="right-to-left",f=o.behavior.includes("continuous")?0:t.spacing||0,S=m||p,v=(0,St.useMemo)(()=>S?[...r].reverse():r,[r,S]);return(0,ie.jsxs)(ie.Fragment,{children:[t.header,(0,ie.jsx)(Y.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,homePaddingPx:t.padding,children:v.map((h,y)=>{let R=0,C=0;return!u&&!m?(R=c,c+=h.width+f):(C=c,c+=h.height+f),(0,ie.jsx)(pe,{canvas:h.id,children:(0,ie.jsx)(Y.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&a?()=>(0,ie.jsx)(a,{}):void 0,renderMediaControls:y===0&&s?()=>(0,ie.jsx)(s,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:y===0&&l?()=>(0,ie.jsx)(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:R,y:C,svgTheme:t.svgTheme,rotation:t.rotation,...t.canvasProps||{},children:t.annotations},h.id)},h.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),Y=(0,St.forwardRef)(function({children:t,height:n,annotations:o,canvasProps:r,spacing:i,header:a,components:s,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:m,annotationPopup:d,name:p,svgTheme:g,updateViewportTimeout:f,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:h,padding:y,rotation:R,...C},P){let A=ke();return(0,ie.jsx)(Et,{name:p,children:(0,ie.jsx)(we,{vault:A,children:(0,ie.jsx)(nr,{...C,children:(0,ie.jsx)(pu,{ref:P,height:n,components:s,spacing:i,canvasProps:r,annotations:o,header:a,mode:l,reuseAtlas:c,renderPreset:u,runtimeOptions:m,annotationPopup:d,svgTheme:g,updateViewportTimeout:f,renderContextMenu:S,keepCanvasScale:v,renderAnnotationContextMenu:h,padding:y,rotation:R,children:t})})})})});Y.RenderImage=je;Y.RenderCanvas=dt;Y.RenderAnnotationPage=$e;Y.RenderAnnotation=ut;Y.Viewer=Io;Y.CanvasBackground=co;Y.Audio=jn;Y.Video=po;Y.Model=Zn;Y.AudioHTML=Sr;Y.VideoHTML=Kr;Y.ModelHTML=xr;Y.PlaceholderCanvas=_s;Y.getAtlasStoreByName=sr;var js=require("react");var he=require("react"),xt=require("zustand");function vi(e){let[t,n]=(0,he.useState)(0),o=O(),r=(0,xt.useStore)(o,C=>C.tool.enabled),i=(0,xt.useStore)(o,C=>C.tool.requestId),a=(0,xt.useStore)(o,C=>C.getRequestId),s=(0,xt.useStore)(o,C=>C.requestAnnotation),l=(0,xt.useStore)(o,C=>C.completeRequest),c=(0,xt.useStore)(o,C=>C.cancelRequest),u=(0,he.useRef)(e?.onSuccess);u.current=e?.onSuccess;let[m,d]=(0,he.useState)(!1),[p,g]=(0,he.useState)(null),[f,S]=(0,he.useState)(null),v=r&&i!==f,h=r&&i===f,y=(0,he.useCallback)(async(C,P)=>{if(f){let A=u.current;d(!0);let T=await s(C,{...P,requestId:f});if(T)return A?.(T),n(U=>U+1),d(!1),g(T),T;let z={id:f,cancelled:!0,...Zt(C)};return A?.(z),g(z),n(U=>U+1),d(!1),z}return null},[s,f]),R=(0,he.useCallback)(()=>{g(null),d(!1)},[]);return(0,he.useEffect)(()=>{let C=a();return S(C.requestId),()=>{C.clear()}},[t]),{id:t,busy:v,isPending:m,isActive:h,requestId:f,requestAnnotation:y,cancelRequest:()=>f?c(f):void 0,completeRequest:()=>f?l(f):void 0,reset:R,data:p}}var fu=[{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 Si(e){let{id:t,data:n,requestAnnotation:o,cancelRequest:r,isPending:i}=vi({onSuccess:a=>{e.updateShape(a.polygon)}});return(0,js.useEffect)(()=>(o({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{r()}),[]),null}var Z=require("react"),xi=J(require("mitt"),1),Qs=require("react/jsx-runtime"),wo=(0,Z.createContext)((0,xi.default)());wo.displayName="SelectorHelper";function gu({children:e}){return(0,Qs.jsx)(wo.Provider,{value:(0,Z.useMemo)(()=>(0,xi.default)(),[]),children:e})}function hu(){return(0,Z.useContext)(wo)}function bi(e){let t=Ci(),[n,o]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>t.withSelector(e).on("highlight",()=>{o(!0)}),[t,e]),(0,Z.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{o(!1)}),[t,e]);let r=(0,Z.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,Z.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:r,onHover:i,isHighlighted:n}}function Ci(){let e=(0,Z.useContext)(wo);return(0,Z.useMemo)(()=>({withSelector(t){return{on(n,o){let r=i=>{i&&i.selectorId===t&&o(i)};return e.on(n,r),()=>{e.off(n,r)}},emit(n,o){e.emit(n,{...o,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function yu(){let e=Ci();return(0,Z.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(n,o){return e.withSelector(t).on(n,o)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(t){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(t,n){return e.on(t,n)}}),[e])}var Ri=require("react/jsx-runtime");function vu(e){let t=I(),n=e.annotationBucket,o=e.readOnly,r=e.id,{onClick:i,isHighlighted:a}=bi(e.id),s=Jt(),l=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(o){let c="shape",u=e.polygon,m=u.open;return u?(0,Ri.jsx)(c,{id:`shape-${r}`,points:u.points,open:m,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,Ri.jsx)(Si,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Xs=require("@atlas-viewer/atlas");var ko=require("react"),En=require("react/jsx-runtime"),Su=(0,ko.forwardRef)(function({canvasId:t},n){let o=(0,Xs.useCanvas)(),r=Pn(t||o?.id),i=k();return(0,ko.useImperativeHandle)(n,()=>r,[t,o]),!o||r.enabledPageIds.length===0?null:(0,En.jsx)(En.Fragment,{children:r.enabledPageIds.map(a=>(0,En.jsx)(Y.RenderAnnotationPage,{page:i.get(a)},a))})});var Js=require("react");var Zs=require("react");var W=require("react/jsx-runtime");function Nn({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:o=!0,allowHtml:r,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:c="",separator:u,tableFooter:m,tableHeader:d,customLabelRender:p,customValueRender:g}){let f=(0,Zs.useMemo)(()=>{let v=(t||[]).reduce((y,R)=>[...y,...R.keys],[]),h={};for(let y of e){let R=y?.label?Object.values(y.label):[];for(let C of R)if(C?.length&&(v.indexOf(`metadata.${C[0]}`)!==-1||v.length===0)&&y){let P=`metadata.${C[0]}`;h[P]=h[P]?h[P]:[],h[P].push(y);break}}return h},[t,e]);return Object.keys(f).length===0&&o?(0,W.jsx)(W.Fragment,{children:i})||(0,W.jsx)("div",{className:a.empty,children:s}):t?.length?(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:t.map((v,h)=>{let y=[];for(let C of v.keys)for(let P of f[C]||[]){let A=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:P.value},h+"__"+C);g?y.push(g(P,A)):y.push(A)}if(y.length===0)return null;let R=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,separator:u,defaultText:c,children:v.label});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:p?p(v.label,R):R}),(0,W.jsx)("td",{className:a.value,children:y})]},h)})}),m]}):(0,W.jsxs)("table",{className:a.container,children:[d,(0,W.jsx)("tbody",{children:e?.length?e.map((v,h)=>{if(!v)return null;let y=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:v.label}),R=(0,W.jsx)(de,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:u,children:v.value});return(0,W.jsxs)("tr",{className:a.row,children:[(0,W.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:p?p(v.label,y):y}),(0,W.jsx)("td",{className:a.value,children:g?g(v,R):R})]},h)}):null}),m]})}var el=require("react/jsx-runtime");function xu(e){let t=F(),n=I(),o=Gt(),r=(0,Js.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=o?.metadata||[];return[...i,...a,...s]},[t,n,o]);return(0,el.jsx)(Nn,{metadata:r,...e})}var No=require("react");var Mo=require("@iiif/parser/image-3"),tl=require("react");function Eo(e,t={},n=[]){return(0,tl.useMemo)(()=>{if(!e)return null;let o=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(o="default"));let r=(0,Mo.createImageServiceRequest)(e);return(0,Mo.imageServiceRequestToString)({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:o||"default",prefix:r.prefix,originalPath:r.originalPath})},[...n])}var Vn=require("react/jsx-runtime");function bu(e){let t=typeof e.src=="string"?e.src:e.src.id,n=sn(),[o,r]=(0,No.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!o&&n.loadService({id:t}).then(()=>{r(!0)});let a=Eo(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[o,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,No.useEffect)(()=>()=>{r(!1)},[t]),a?(0,Vn.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Vn.jsx)(nl,{...e,fetchImageService:!1})}function nl(e){if(e.fetchImageService)return(0,Vn.jsx)(bu,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=Eo(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,Vn.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var Vo=require("react"),ol=require("react-error-boundary");var qe=require("react/jsx-runtime");function Cu({src:e,errorFallback:t,interactive:n,skipSizes:o,children:r,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:l,y:c,...u}){let m=ke(),[d,p]=(0,Vo.useState)(),g=t||To,[f,S]=An(),v=(0,Vo.useMemo)(()=>{let y=S[e]?.status,R=f({id:e},{});return R?.height&&R.width&&y!=="loading"?{id:e,width:R.width,height:R.height,service:R,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:R.width,height:R.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:R.width,height:R.height}}}:null},[f,e,S]);if(!v||!v.height||!v.width)return null;let h=s?void 0:u.homePosition?u.homePosition.width/u.homePosition.height:v.width/v.height;return(0,qe.jsx)(ol.ErrorBoundary,{resetKeys:[],fallbackRender:y=>(0,qe.jsx)(g,{...u,...y}),children:(0,qe.jsx)(we,{vault:m,children:(0,qe.jsx)(Io,{...u,aspectRatio:h,containerProps:{style:{position:"relative"},...u.containerProps||{}},onCreated:y=>{p(y),u.onCreated&&u.onCreated(y)},children:(0,qe.jsxs)(Pe.Provider,{value:d,children:[(0,qe.jsx)(je,{image:v,id:v.id,isStatic:!n,x:l,y:c},v.id),(0,qe.jsx)(Ru,{viewerPreset:d,renderViewerControls:i,image:v,src:e,viewControlsDeps:a}),r]})})})})}function Ru({viewerPreset:e,renderViewerControls:t,image:n,src:o,viewControlsDeps:r}){return X(e&&t?"overlay":"none",`canvas-portal-controls-${o}`,Pe.Provider,t&&n?{value:e||null,children:t({image:n,images:[n],type:"images"})}:{},[o,e,...r||[]]),null}var rl=require("react/jsx-runtime");function Pu(e){let t=F();return(0,rl.jsx)(Nn,{metadata:t?.metadata||[],...e})}var Lo=require("react");var Pi=J(require("react-lazy-load-image-component"),1);var il=require("@iiif/helpers/i18n"),me=require("react/jsx-runtime"),{LazyLoadComponent:Au}=Pi||Pi.default;function Ai(e){let{size:t,visible:n,classes:o,canvasId:r,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,l=(0,me.jsx)(Tu,{...e}),c=(0,me.jsx)(Au,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:r?(0,me.jsx)(pe,{canvas:r,children:l}):l});return i?(0,me.jsx)("figure",{className:o?.figure,children:c}):c}function Tu({fallback:e,size:t,classes:n,showLabel:o,alt:r,dereference:i=!1}){let a=I(),s=t?.width||128,l=t?.height||t?.width||128,c=r||(0,il.getValue)(a?.label)||"",u=Ve({width:s,height:l,allowUnsafe:!0},i);return!u||u.type!=="fixed"?(0,me.jsx)(me.Fragment,{children:e}):(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)("div",{className:n?.imageWrapper,children:(0,me.jsx)("img",{className:n?.img,src:u.id,alt:c})}),o?(0,me.jsx)(de,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var Ut=require("react/jsx-runtime");function Iu({scrollBehaviour:e,dereference:t,flat:n,size:o,classes:r={},showLabel:i,figure:a,fallback:s}){let l=(0,Lo.useRef)(null),{items:c,sequence:u,currentSequenceIndex:m,setSequenceIndex:d}=rt(),p={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,Lo.useLayoutEffect)(()=>{if(!l.current)return;let f=l.current.querySelector("[data-selected=true]");f&&f.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[m]);let g=[];for(let f of u){let S=[],v=u[m]===f;for(let h of f){let y=c[h];S.push((0,Ut.jsx)("div",{className:v?p.item:r.item,children:(0,Ut.jsx)(Ai,{classes:v?p:r,canvasId:y.id,size:o,dereference:t,showLabel:i,figure:a,placeholder:(0,Ut.jsx)("div",{style:{height:128,width:128}}),fallback:s})},h))}if(n){g.push(S);continue}g.push((0,Ut.jsx)("div",{onClick:h=>{d(u.indexOf(f))},"data-selected":v,className:v?p.row:r.row,children:S},f.join("-")))}return(0,Ut.jsx)("div",{ref:l,className:r.container,children:g})}var Ln=require("zustand");function Ti(){let e=O(),t=(0,Ln.useStore)(e,i=>i.completeRequest),n=(0,Ln.useStore)(e,i=>i.polygonState.currentTool),o=(0,Ln.useStore)(e,i=>i.polygonState.selectedStamp),r=(0,Ln.useStore)(e,i=>i.switchTool);return{completeRequest:t,currentTool:n,selectedStamp:o,switchTool:r}}var j=require("react/jsx-runtime"),wu={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function ku({showShapes:e=!0,enabled:t=wu,classNames:n={},icons:o={}}){let{currentTool:r,switchTool:i,selectedStamp:a}=Ti();return(0,j.jsxs)(j.Fragment,{children:[r,(0,j.jsx)("button",{className:n.button,onClick:i.pointer,"data-active":r==="pointer",children:o.PointerIcon||"Pointer"}),(0,j.jsx)("button",{className:n.button,onClick:i.hand,"data-active":r==="hand",children:o.HandIcon||"Hand"}),e?(0,j.jsxs)(j.Fragment,{children:[t.box&&(0,j.jsx)("button",{className:n.button,onClick:i.box,"data-active":r==="box",children:o.BoxIcon||"Box"}),t.pen&&(0,j.jsx)("button",{className:n.button,onClick:i.pen,"data-active":r==="pen",children:o.PenIcon||"Pen"}),t.draw&&(0,j.jsx)("button",{className:n.button,onClick:i.draw,"data-active":r==="pencil",children:o.DrawIcon||"Draw"}),t.line&&(0,j.jsx)("button",{className:n.button,onClick:i.line,"data-active":r==="line",children:o.LineIcon||"Line"}),t.lineBox&&(0,j.jsx)("button",{className:n.button,onClick:i.lineBox,"data-active":r==="lineBox",children:o.LineBoxIcon||"LineBox"}),t.triangle&&(0,j.jsx)("button",{className:n.button,onClick:i.triangle,"data-active":r==="stamp"&&a?.id==="triangle",children:o.TriangleIcon||"Triangle"}),t.hexagon&&(0,j.jsx)("button",{className:n.button,onClick:i.hexagon,"data-active":r==="stamp"&&a?.id==="hexagon",children:o.HexagonIcon||"Hexagon"}),t.circle&&(0,j.jsx)("button",{className:n.button,"data-active":r==="stamp"&&a?.id==="circle",onClick:i.circle,children:o.CircleIcon||"Circle"})]}):null,t.delete&&(0,j.jsx)("button",{className:n.button,onClick:i.remove,children:o.DeleteForeverIcon||"Delete"})]})}var al=require("react/jsx-runtime");function Mu({annotation:e,children:t}){return(0,al.jsx)(ae,{value:{annotation:e},children:t})}var sl=require("react/jsx-runtime");function Eu({annotationPage:e,children:t}){return(0,sl.jsx)(ae,{value:{annotationPage:e},children:t})}var ll=require("react/jsx-runtime");function Nu({collection:e,children:t}){return(0,ll.jsx)(ae,{value:{collection:e},children:t})}function Vu(e,t={}){return Oe(t)}var ul=require("@atlas-viewer/atlas"),Je=require("react");function Lu({canvasId:e}={}){let t=(0,ul.useCanvas)(),n=nt(),o=(0,Je.useMemo)(()=>e?[e]:t?[t.id]:n.map(c=>c.id),[e,t,n]),[r,i]=(0,Je.useState)({}),a=pn();(0,Je.useEffect)(()=>{let c=u=>{let m=u.partOf.canvasId;m&&i(d=>({...d,[m]:u.choice}))};return a.on("choice-change",c),()=>{a.off("choice-change",c)}},[]);let s=(0,Je.useMemo)(()=>{let c=[];for(let u of o){let m=r[u];m&&c.push({canvasId:u,choice:m})}return c},[o,r]),l=(0,Je.useMemo)(()=>({makeChoice:(c,u)=>{a.emit("make-choice",{choiceId:c,...u})}}),[a]);return{choices:s,actions:l}}function zu(e,t=!1){}function Ou(e){let n=ee().manifest,o=e?e.map(r=>typeof r=="string"?r:r?.id):[];return L(r=>{let i=n?r.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let l of i?.items||[])o.indexOf(l.id)!==-1&&s.push(l);return s},[o.join("/")])}var cl=require("react");function Bu(e,t=[]){let{id:n,selector:o}=e,r=ee(),i=n||r.collection,a=L(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,cl.useMemo)(()=>{if(a)return o?o(a):a},[a,o,...t])}var zo=require("react"),Ii=require("zustand");function qu(){let e=O(),t=(0,Ii.useStore)(e,o=>o.completeRequest),n=(0,Ii.useStore)(e,o=>o.cancelRequest);return(0,zo.useMemo)(()=>({saveAnnotation:()=>{(0,zo.startTransition)(()=>{t()})},cancelRequest:n}),[t,n])}var ml=require("react"),Oo=require("zustand");function Hu({requestId:e}={}){let t=O(),n=(0,Oo.useStore)(t,s=>s.metadata),o=(0,Oo.useStore)(t,s=>s.tool.requestId),r=e||o,i=(0,Oo.useStore)(t,s=>s.setMetadata),a=(0,ml.useCallback)(s=>i(s,r||void 0),[i,r]);return[r?n[r]||{}:{},a]}var dl=require("zustand");function Du(e){let t=O(),n=(0,dl.useStore)(t,o=>o.tool.requestId);at("polygons.start-transition",o=>{e.requestId&&n!==e.requestId||e?.onStart?.(o.transitionIntent)},[n,e.requestId]),at("polygons.end-transition",o=>{e.requestId&&n!==e.requestId||e?.onEnd?.(o.transitionIntent,o.response)},[n,e.requestId]),at("polygons.transition",o=>{e.requestId&&n!==e.requestId||e?.onTransition?.(o.transitionIntent)},[n,e.requestId])}var Bo=require("react"),pl=require("@iiif/helpers/events");function Fu(e,t,n,o,r=[]){let i=k(),a=(0,Bo.useMemo)(()=>(0,pl.createEventsHelper)(i),[i]);(0,Bo.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,o),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...r])}function $u(e,t){let{id:n,isLoaded:o,error:r,resource:i,requestId:a,cached:s}=Kt(e,t);return{id:n,isLoaded:o,error:r,manifest:i,requestId:a,cached:s}}var wi=require("@iiif/parser/image-3");var Ie=require("react");function ki({cacheKey:e}={}){let t=I(),n=Oe(),o=k(),r=zt(),i=Ka(),[a,s]=(0,Ie.useState)(void 0),[l,c]=(0,Ie.useState)(!1),[u,m]=(0,Ie.useState)("idle"),[d,p]=(0,Ie.useState)(void 0),g=t?t.id:"undefined",f=(0,Ie.useMemo)(()=>{try{if(t&&n.length){let v=n[0],h=o.get(v.body[0]),R=(0,wi.getImageServices)(h)[0];return R&&r(R,{width:R.width||t.width,height:R.height||t.height},!0)||void 0}}catch(v){console.error(v)}},[g,e,t]),S=u==="success"&&a?a:f;return(0,Ie.useEffect)(()=>{(async()=>{try{if(t&&n.length){let v=n[0],h=o.get(v.body[0]),R=(0,wi.getImageServices)(h)[0];if(!R)return;c(!0),m("loading");try{let C=await i(R,{width:R.width||t.width,height:R.height||t.height})||void 0;s(C),m("success"),c(!1)}catch(C){m("error"),p(C)}}}catch(v){m("error"),p(v)}})()},[g,e]),(0,Ie.useMemo)(()=>({data:S,isFetching:l,status:u,error:d}),[S,l,u,d])}function Wu(){let e=ki();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 qo=require("react");var fl=require("@iiif/helpers");function Uu({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=k(),n=I(),o=Oe(),r=(0,qo.useMemo)(()=>(0,fl.createPaintingAnnotationsHelper)(t),[t]),i=(0,qo.useMemo)(()=>r.getPaintables(o),[r,o]);return(0,qo.useMemo)(()=>kn({canvas:n,loadImageService:a=>a,paintables:i,supports:e}),[n,i,e])}var gl=require("@iiif/helpers/styles"),hl=require("react");function _u(){let e=k();return(0,hl.useMemo)(()=>(0,gl.createStylesHelper)(e),[e])}var Q=require("react");function Yu(e){let{initial:t,regions:n,progress:o,getProgress:r,enabled:i=!0,easing:a,reportEveryFrame:s=!1,pollInterval:l=Vr,loop:c=!1,onEnter:u,onExit:m,onProgress:d,jumpTo:p}=e,g=(0,Q.useMemo)(()=>zr(t,n),[t,n]),[f,S]=(0,Q.useState)(()=>-1),[v,h]=(0,Q.useState)(0),y=(0,Q.useRef)(-1),R=(0,Q.useRef)(0),C=(0,Q.useRef)(!0),P=(0,Q.useRef)(()=>{});(0,Q.useEffect)(()=>(C.current=!0,()=>{C.current=!1}),[]);let A=(0,Q.useMemo)(()=>{if(!a)return xe(ln);if(typeof a=="function")return a;if(Array.isArray(a)&&a.length===4)return xe(a);let V=Ke[a];return V?xe(V):xe(ln)},[a]),T=(0,Q.useCallback)(V=>{if(!(V<0||V>=g.length)&&(S(V),y.current=V,R.current=0,h(0),u))try{u(V)}catch{}},[g,u]);(0,Q.useEffect)(()=>{P.current=T,p&&p(T)},[T,p]);function z(V){let{index:K,t:w}=Or(V,g),M=K;if(c&&g.length>0){let Ct=g.length;M=(K%Ct+Ct)%Ct}let G=A(w);if(M!==y.current){if(y.current>=0&&m)try{m(y.current)}catch{}if(M>=0&&u)try{u(M)}catch{}y.current=M,C.current&&S(M)}if(R.current=G,C.current&&(s||M!==f)&&h(G),d&&M>=0)try{d(M,G)}catch{}}(0,Q.useEffect)(()=>{i&&typeof o=="number"&&z(o)},[o,i]),(0,Q.useEffect)(()=>{if(!i||typeof r!="function")return;let V=null,K=()=>{try{let w=r();z(w)}catch{}};return K(),V=setInterval(K,l),()=>clearInterval(V)},[r,i,l]);let U=f>=0&&f<g.length?g[f]:void 0,E=U?Lr(U.from,U.to,R.current):void 0;return{transitions:g,currentIndex:f,currentTransition:U,t:R.current,rect:E,jumpTo:T}}var bt=require("react");function Ku(e,t={}){let{axis:n="y",offset:o=0,steps:r=1,enabled:i=!0}=t,[a,s]=(0,bt.useState)(0),l=(0,bt.useRef)(-1),c=(0,bt.useRef)(null);return(0,bt.useEffect)(()=>{if(!i||!e||!e.current)return;let u=e.current,m=()=>{let p=n==="y"?u.scrollTop:u.scrollLeft,g=n==="y"?u.clientHeight:u.clientWidth,S=(n==="y"?u.scrollHeight:u.scrollWidth)-g,h=(S<=0?0:Math.max(0,Math.min(1,(p+o)/S)))*r;h!==l.current&&(l.current=h,s(h)),c.current=null},d=()=>{c.current===null&&(c.current=requestAnimationFrame(m))};return u.addEventListener("scroll",d,{passive:!0}),m(),()=>{u.removeEventListener("scroll",d),c.current!==null&&cancelAnimationFrame(c.current)}},[e,n,o,r,i]),a}function Gu(e,t){let{x:n,y:o,width:r,height:i}=e,{x:a,y:s}=t,{width:l,height:c}=t;return n+r>a&&n<a+l&&o+i>s&&o<s+c}var yl=J(require("tiny-invariant"),1);function ju(e,t){let n=e.boundingBox||Fe(e.polygon);if(e.polygon&&!kt(e.polygon.points)){let o=e.target||Mt(e.polygon,t);return(0,yl.default)(o?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...n||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:o.value}}return{type:"BoxSelector",spatial:n}}
|