react-iiif-vault 2.0.14 → 2.0.15

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:()=>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(`
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;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as er,$a as Ne,$b as De,A as Ao,Aa as Ir,Ab as ln,B as ko,Ba as Cr,Bb as cn,C as Mo,Ca as Rr,Cb as mn,D as Ho,Da as Pr,Db as un,E as Lo,Ea as Pe,Eb as ze,F as zo,Fa as wr,Fb as fn,G as Bo,Ga as Tr,Gb as pn,H as Fo,Ha as Er,Hb as dn,I as Oo,Ia as qr,Ib as gn,J as Vo,Ja as Nr,Jb as hn,K as Wo,Ka as Ar,Kb as yn,L as Do,La as kr,Lb as vn,M as Uo,Ma as Mr,Mb as xn,N as _o,Na as Hr,Nb as bn,O as $o,Oa as Lr,Ob as Sn,P as Ko,Pa as zr,Pb as In,Q as Qo,Qa as Br,Qb as qn,R as Go,Ra as Fr,Rb as Be,S as Xo,Sa as we,Sb as Nn,T as Yo,Ta as Te,Tb as Fe,U as xe,Ua as Or,Ub as B,V as Zo,Va as Vr,Vb as An,W as jo,Wa as Wr,Wb as Bn,X as Jo,Xa as Dr,Xb as Fn,Y as G,Ya as ie,Yb as On,Z as be,Za as Ee,Zb as Ve,_ as Se,_a as qe,_b as We,a as ho,aa as tr,ab as Ae,b as $,ba as or,bb as W,c as z,ca as Ie,cb as ke,d as pe,da as Ce,db as Me,e as yo,ea as rr,eb as He,f as de,fa as nr,fb as Ur,g as w,ga as T,gb as _r,h as K,ha as ir,hb as $r,i as vo,ia as ar,ib as Kr,j as ge,ja as sr,jb as Qr,k as he,ka as Re,kb as Gr,l as Q,la as lr,lb as Xr,m as ye,ma as cr,mb as Yr,n as xo,na as mr,nb as Zr,o as bo,oa as ur,ob as jr,p as So,pa as E,pb as H,q as Io,qa as fr,qb as Le,r as Co,ra as pr,rb as Jr,s as Ro,sa as dr,sb as en,t as Po,ta as gr,tb as ae,u as wo,ua as hr,ub as tn,v as To,va as yr,vb as on,w as ve,wa as vr,wb as rn,x as Eo,xa as xr,xb as nn,y as qo,ya as br,yb as an,z as No,za as Sr,zb as sn}from"./chunk-RZMYSBUB.js";import"./chunk-UNH7HXGJ.js";import{a as Cn,b as Rn,c as Pn,d as wn,e as Tn,f as En,g as kn,h as Mn,i as Hn,j as Ln,k as zn,l as Oe}from"./chunk-P7XHGETS.js";export*from"@iiif/helpers/annotation-targets";import{useEffect as gt}from"react";import{useCallback as Ue,useEffect as pt,useRef as dt,useState as X}from"react";import{useStore as F}from"zustand";function _e(e){let[t,o]=X(0),r=T(),n=F(r,g=>g.tool.enabled),i=F(r,g=>g.tool.requestId),a=F(r,g=>g.getRequestId),l=F(r,g=>g.requestAnnotation),f=F(r,g=>g.completeRequest),m=F(r,g=>g.cancelRequest),s=dt(e?.onSuccess);s.current=e?.onSuccess;let[y,x]=X(!1),[b,v]=X(null),[p,S]=X(null),c=n&&i!==p,h=n&&i===p,d=Ue(async(g,R)=>{if(p){let M=s.current;x(!0);let q=await l(g,{...R,requestId:p});if(q)return M?.(q),o(A=>A+1),x(!1),v(q),q;let L={id:p,cancelled:!0,...Ce(g)};return M?.(L),v(L),o(A=>A+1),x(!1),L}return null},[l,p]),u=Ue(()=>{v(null),x(!1)},[]);return pt(()=>{let g=a();return S(g.requestId),()=>{g.clear()}},[t]),{id:t,busy:c,isPending:y,isActive:h,requestId:p,requestAnnotation:d,cancelRequest:()=>p?m(p):void 0,completeRequest:()=>p?f(p):void 0,reset:u,data:b}}var Qn=[{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 $e(e){let{id:t,data:o,requestAnnotation:r,cancelRequest:n,isPending:i}=_e({onSuccess:a=>{e.updateShape(a.polygon)}});return gt(()=>(r({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{n()}),[]),null}import{createContext as ht,useCallback as Ke,useContext as Ge,useEffect as Qe,useMemo as se,useState as yt}from"react";import Xe from"mitt";import{jsx as vt}from"react/jsx-runtime";var Y=ht(Xe());Y.displayName="SelectorHelper";function ei({children:e}){return vt(Y.Provider,{value:se(()=>Xe(),[]),children:e})}function ti(){return Ge(Y)}function Ye(e){let t=Ze(),[o,r]=yt(!1);Qe(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Qe(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=Ke(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=Ke(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:n,onHover:i,isHighlighted:o}}function Ze(){let e=Ge(Y);return se(()=>({withSelector(t){return{on(o,r){let n=i=>{i&&i.selectorId===t&&r(i)};return e.on(o,n),()=>{e.off(o,n)}},emit(o,r){e.emit(o,{...r,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function oi(){let e=Ze();return se(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(o,r){return e.withSelector(t).on(o,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(t){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(t,o){return e.on(t,o)}}),[e])}import{jsx as je}from"react/jsx-runtime";function ui(e){let t=E(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:i,isHighlighted:a}=Ye(e.id),l=Re(),f=a?l.highlighted:l[o||"hidden"]||l.hidden;if(!t)return null;if(r){let m="shape",s=e.polygon,y=s.open;return s?je(m,{id:`shape-${n}`,points:s.points,open:y,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:f}):null}return je($e,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useCanvas as xt}from"@atlas-viewer/atlas";import{forwardRef as bt,useImperativeHandle as St}from"react";import{Fragment as It,jsx as Je}from"react/jsx-runtime";var xi=bt(function({canvasId:t},o){let r=xt(),n=Be(t||r?.id),i=w();return St(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:Je(It,{children:n.enabledPageIds.map(a=>Je(De.RenderAnnotationPage,{page:i.get(a)},a))})});import{useMemo as Pt}from"react";import{useMemo as Ct}from"react";import{Fragment as Rt,jsx as C,jsxs as Z}from"react/jsx-runtime";function j({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:i,classes:a={},emptyMessage:l="No metadata available",emptyValueFallback:f="No value",emptyLabelFallback:m="",separator:s,tableFooter:y,tableHeader:x,customLabelRender:b,customValueRender:v}){let p=Ct(()=>{let c=(t||[]).reduce((d,u)=>[...d,...u.keys],[]),h={};for(let d of e){let u=d?.label?Object.values(d.label):[];for(let g of u)if(g?.length&&(c.indexOf(`metadata.${g[0]}`)!==-1||c.length===0)&&d){let R=`metadata.${g[0]}`;h[R]=h[R]?h[R]:[],h[R].push(d);break}}return h},[t,e]);return Object.keys(p).length===0&&r?C(Rt,{children:i})||C("div",{className:a.empty,children:l}):t?.length?Z("table",{className:a.container,children:[x,C("tbody",{children:t.map((c,h)=>{let d=[];for(let g of c.keys)for(let R of p[g]||[]){let M=C(H,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:s,children:R.value},h+"__"+g);v?d.push(v(R,M)):d.push(M)}if(d.length===0)return null;let u=C(H,{enableDangerouslySetInnerHTML:n,separator:s,defaultText:m,children:c.label});return Z("tr",{className:a.row,children:[C("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(c.label,u):u}),C("td",{className:a.value,children:d})]},h)})}),y]}):Z("table",{className:a.container,children:[x,C("tbody",{children:e?.length?e.map((c,h)=>{if(!c)return null;let d=C(H,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:s,children:c.label}),u=C(H,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:s,children:c.value});return Z("tr",{className:a.row,children:[C("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(c.label,d):d}),C("td",{className:a.value,children:v?v(c,u):u})]},h)}):null}),y]})}import{jsx as wt}from"react/jsx-runtime";function ki(e){let t=Q(),o=E(),r=ve(),n=Pt(()=>{let i=t?.metadata||[],a=o?.metadata||[],l=r?.metadata||[];return[...i,...a,...l]},[t,o,r]);return wt(j,{metadata:n,...e})}import{useEffect as Nt,useState as At}from"react";import{createImageServiceRequest as Tt,imageServiceRequestToString as Et}from"@iiif/parser/image-3";import{useMemo as qt}from"react";function le(e,t={},o=[]){return qt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=Tt(e);return Et({identifier:n.identifier,server:n.server,scheme:n.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:n.prefix,originalPath:n.originalPath})},[...o])}import{jsx as J}from"react/jsx-runtime";function kt(e){let t=typeof e.src=="string"?e.src:e.src.id,o=we(),[r,n]=At(!1),i;if(t){let l=o.loadServiceSync({id:t});l&&(i=l)}!i&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let a=le(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return Nt(()=>()=>{n(!1)},[t]),a?J("img",{src:a,alt:e.alt,className:e.className,style:e.style}):J(Mt,{...e,fetchImageService:!1})}function Mt(e){if(e.fetchImageService)return J(kt,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=le(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?J("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{useMemo as Ht,useState as Lt}from"react";import{ErrorBoundary as zt}from"react-error-boundary";import{jsx as O,jsxs as Ft}from"react/jsx-runtime";function ta({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:i,viewControlsDeps:a,fluid:l,x:f,y:m,...s}){let y=he(),[x,b]=Lt(),v=t||Ve,[p,S]=Fe(),c=Ht(()=>{let d=S[e]?.status,u=p({id:e},{});return u?.height&&u.width&&d!=="loading"?{id:e,width:u.width,height:u.height,service:u,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:u.width,height:u.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:u.width,height:u.height}}}:null},[p,e,S]);if(!c||!c.height||!c.width)return null;let h=l?void 0:s.homePosition?s.homePosition.width/s.homePosition.height:c.width/c.height;return O(zt,{resetKeys:[],fallbackRender:d=>O(v,{...s,...d}),children:O(de,{vault:y,children:O(We,{...s,aspectRatio:h,containerProps:{style:{position:"relative"},...s.containerProps||{}},onCreated:d=>{b(d),s.onCreated&&s.onCreated(d)},children:Ft(ae.Provider,{value:x,children:[O(Le,{image:c,id:c.id,isStatic:!o,x:f,y:m},c.id),O(Bt,{viewerPreset:x,renderViewerControls:i,image:c,src:e,viewControlsDeps:a}),n]})})})})}function Bt({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return Pe(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,ae.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as Ot}from"react/jsx-runtime";function sa(e){let t=Q();return Ot(j,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as _t,useRef as $t}from"react";import*as ce from"react-lazy-load-image-component";import{getValue as Vt}from"@iiif/helpers/i18n";import{Fragment as et,jsx as k,jsxs as Ut}from"react/jsx-runtime";var{LazyLoadComponent:Wt}=ce||ce.default;function tt(e){let{size:t,visible:o,classes:r,canvasId:n,figure:i}=e,a=t?.width||128,l=t?.height||t?.width||128,f=k(Dt,{...e}),m=k(Wt,{threshold:300,style:{height:l,width:a},visibleByDefault:o,children:n?k(pe,{canvas:n,children:f}):f});return i?k("figure",{className:r?.figure,children:m}):m}function Dt({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:i=!1}){let a=E(),l=t?.width||128,f=t?.height||t?.width||128,m=n||Vt(a?.label)||"",s=Te({width:l,height:f,allowUnsafe:!0},i);return!s||s.type!=="fixed"?k(et,{children:e}):Ut(et,{children:[k("div",{className:o?.imageWrapper,children:k("img",{className:o?.img,src:s.id,alt:m})}),r?k(H,{as:"figcaption",className:o?.label,children:a?.label}):null]})}import{jsx as D}from"react/jsx-runtime";function ba({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:i,figure:a,fallback:l}){let f=$t(null),{items:m,sequence:s,currentSequenceIndex:y,setSequenceIndex:x}=xe(),b={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};_t(()=>{if(!f.current)return;let p=f.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[y]);let v=[];for(let p of s){let S=[],c=s[y]===p;for(let h of p){let d=m[h];S.push(D("div",{className:c?b.item:n.item,children:D(tt,{classes:c?b:n,canvasId:d.id,size:r,dereference:t,showLabel:i,figure:a,placeholder:D("div",{style:{height:128,width:128}}),fallback:l})},h))}if(o){v.push(S);continue}v.push(D("div",{onClick:h=>{x(s.indexOf(p))},"data-selected":c,className:c?b.row:n.row,children:S},p.join("-")))}return D("div",{ref:f,className:n.container,children:v})}import{useStore as ee}from"zustand";function ot(){let e=T(),t=ee(e,i=>i.completeRequest),o=ee(e,i=>i.polygonState.currentTool),r=ee(e,i=>i.polygonState.selectedStamp),n=ee(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:r,switchTool:n}}import{Fragment as rt,jsx as P,jsxs as nt}from"react/jsx-runtime";var Kt={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function Ta({showShapes:e=!0,enabled:t=Kt,classNames:o={},icons:r={}}){let{currentTool:n,switchTool:i,selectedStamp:a}=ot();return nt(rt,{children:[n,P("button",{className:o.button,onClick:i.pointer,"data-active":n==="pointer",children:r.PointerIcon||"Pointer"}),P("button",{className:o.button,onClick:i.hand,"data-active":n==="hand",children:r.HandIcon||"Hand"}),e?nt(rt,{children:[t.box&&P("button",{className:o.button,onClick:i.box,"data-active":n==="box",children:r.BoxIcon||"Box"}),t.pen&&P("button",{className:o.button,onClick:i.pen,"data-active":n==="pen",children:r.PenIcon||"Pen"}),t.draw&&P("button",{className:o.button,onClick:i.draw,"data-active":n==="pencil",children:r.DrawIcon||"Draw"}),t.line&&P("button",{className:o.button,onClick:i.line,"data-active":n==="line",children:r.LineIcon||"Line"}),t.lineBox&&P("button",{className:o.button,onClick:i.lineBox,"data-active":n==="lineBox",children:r.LineBoxIcon||"LineBox"}),t.triangle&&P("button",{className:o.button,onClick:i.triangle,"data-active":n==="stamp"&&a?.id==="triangle",children:r.TriangleIcon||"Triangle"}),t.hexagon&&P("button",{className:o.button,onClick:i.hexagon,"data-active":n==="stamp"&&a?.id==="hexagon",children:r.HexagonIcon||"Hexagon"}),t.circle&&P("button",{className:o.button,"data-active":n==="stamp"&&a?.id==="circle",onClick:i.circle,children:r.CircleIcon||"Circle"})]}):null,t.delete&&P("button",{className:o.button,onClick:i.remove,children:r.DeleteForeverIcon||"Delete"})]})}import{jsx as Qt}from"react/jsx-runtime";function Aa({annotation:e,children:t}){return Qt(z,{value:{annotation:e},children:t})}import{jsx as Gt}from"react/jsx-runtime";function La({annotationPage:e,children:t}){return Gt(z,{value:{annotationPage:e},children:t})}import{jsx as Xt}from"react/jsx-runtime";function Oa({collection:e,children:t}){return Xt(z,{value:{collection:e},children:t})}function Ua(e,t={}){return B(t)}import{useCanvas as Yt}from"@atlas-viewer/atlas";import{useEffect as Zt,useMemo as me,useState as jt}from"react";function Xa({canvasId:e}={}){let t=Yt(),o=ge(),r=me(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[n,i]=jt({}),a=ze();Zt(()=>{let m=s=>{let y=s.partOf.canvasId;y&&i(x=>({...x,[y]:s.choice}))};return a.on("choice-change",m),()=>{a.off("choice-change",m)}},[]);let l=me(()=>{let m=[];for(let s of r){let y=n[s];y&&m.push({canvasId:s,choice:y})}return m},[r,n]),f=me(()=>({makeChoice:(m,s)=>{a.emit("make-choice",{choiceId:m,...s})}}),[a]);return{choices:l,actions:f}}function Za(e,t=!1){}function ts(e){let o=$().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return K(n=>{let i=o?n.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let l=[];for(let f of i?.items||[])r.indexOf(f.id)!==-1&&l.push(f);return l},[r.join("/")])}import{useMemo as Jt}from"react";function as(e,t=[]){let{id:o,selector:r}=e,n=$(),i=o||n.collection,a=K(l=>i?l.iiif.entities.Collection[i]:void 0,[i]);return Jt(()=>{if(a)return r?r(a):a},[a,r,...t])}import{startTransition as eo,useMemo as to}from"react";import{useStore as it}from"zustand";function us(){let e=T(),t=it(e,r=>r.completeRequest),o=it(e,r=>r.cancelRequest);return to(()=>({saveAnnotation:()=>{eo(()=>{t()})},cancelRequest:o}),[t,o])}import{useCallback as oo}from"react";import{useStore as ue}from"zustand";function hs({requestId:e}={}){let t=T(),o=ue(t,l=>l.metadata),r=ue(t,l=>l.tool.requestId),n=e||r,i=ue(t,l=>l.setMetadata),a=oo(l=>i(l,n||void 0),[i,n]);return[n?o[n]||{}:{},a]}import{useStore as ro}from"zustand";function Ss(e){let t=T(),o=ro(t,r=>r.tool.requestId);G("polygons.start-transition",r=>{e.requestId&&o!==e.requestId||e?.onStart?.(r.transitionIntent)},[o,e.requestId]),G("polygons.end-transition",r=>{e.requestId&&o!==e.requestId||e?.onEnd?.(r.transitionIntent,r.response)},[o,e.requestId]),G("polygons.transition",r=>{e.requestId&&o!==e.requestId||e?.onTransition?.(r.transitionIntent)},[o,e.requestId])}import{useEffect as no,useMemo as io}from"react";import{createEventsHelper as ao}from"@iiif/helpers/events";function ws(e,t,o,r,n=[]){let i=w(),a=io(()=>ao(i),[i]);no(()=>{let l=e;return l?(a.addEventListener(l,t,o,r),()=>{a.removeEventListener(l,t,o)}):()=>{}},[a,e,t,...n])}function Ns(e,t){let{id:o,isLoaded:r,error:n,resource:i,requestId:a,cached:l}=ye(e,t);return{id:o,isLoaded:r,error:n,manifest:i,requestId:a,cached:l}}import{getImageServices as at}from"@iiif/parser/image-3";import{useEffect as so,useMemo as st,useState as te}from"react";function lt({cacheKey:e}={}){let t=E(),o=B(),r=w(),n=Me(),i=He(),[a,l]=te(void 0),[f,m]=te(!1),[s,y]=te("idle"),[x,b]=te(void 0),v=t?t.id:"undefined",p=st(()=>{try{if(t&&o.length){let c=o[0],h=r.get(c.body[0]),u=at(h)[0];return u&&n(u,{width:u.width||t.width,height:u.height||t.height},!0)||void 0}}catch(c){console.error(c)}},[v,e,t]),S=s==="success"&&a?a:p;return so(()=>{(async()=>{try{if(t&&o.length){let c=o[0],h=r.get(c.body[0]),u=at(h)[0];if(!u)return;m(!0),y("loading");try{let g=await i(u,{width:u.width||t.width,height:u.height||t.height})||void 0;l(g),y("success"),m(!1)}catch(g){y("error"),b(g)}}}catch(c){y("error"),b(c)}})()},[v,e]),st(()=>({data:S,isFetching:f,status:s,error:x}),[S,f,s,x])}function Vs(){let e=lt();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}}import{useMemo as fe}from"react";import{createPaintingAnnotationsHelper as lo}from"@iiif/helpers";function Gs({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=w(),o=E(),r=B(),n=fe(()=>lo(t),[t]),i=fe(()=>n.getPaintables(r),[n,r]);return fe(()=>Oe({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}import{createStylesHelper as co}from"@iiif/helpers/styles";import{useMemo as mo}from"react";function Js(){let e=w();return mo(()=>co(e),[e])}import{useCallback as uo,useEffect as oe,useMemo as ct,useRef as re,useState as mt}from"react";function rl(e){let{initial:t,regions:o,progress:r,getProgress:n,enabled:i=!0,easing:a,reportEveryFrame:l=!1,pollInterval:f=Ee,loop:m=!1,onEnter:s,onExit:y,onProgress:x,jumpTo:b}=e,v=ct(()=>Ae(t,o),[t,o]),[p,S]=mt(()=>-1),[c,h]=mt(0),d=re(-1),u=re(0),g=re(!0),R=re(()=>{});oe(()=>(g.current=!0,()=>{g.current=!1}),[]);let M=ct(()=>{if(!a)return W(ie);if(typeof a=="function")return a;if(Array.isArray(a)&&a.length===4)return W(a);let I=qe[a];return I?W(I):W(ie)},[a]),q=uo(I=>{if(!(I<0||I>=v.length)&&(S(I),d.current=I,u.current=0,h(0),s))try{s(I)}catch{}},[v,s]);oe(()=>{R.current=q,b&&b(q)},[q,b]);function L(I){let{index:V,t:U}=ke(I,v),N=V;if(m&&v.length>0){let ne=v.length;N=(V%ne+ne)%ne}let _=M(U);if(N!==d.current){if(d.current>=0&&y)try{y(d.current)}catch{}if(N>=0&&s)try{s(N)}catch{}d.current=N,g.current&&S(N)}if(u.current=_,g.current&&(l||N!==p)&&h(_),x&&N>=0)try{x(N,_)}catch{}}oe(()=>{i&&typeof r=="number"&&L(r)},[r,i]),oe(()=>{if(!i||typeof n!="function")return;let I=null,V=()=>{try{let U=n();L(U)}catch{}};return V(),I=setInterval(V,f),()=>clearInterval(I)},[n,i,f]);let A=p>=0&&p<v.length?v[p]:void 0,ft=A?Ne(A.from,A.to,u.current):void 0;return{transitions:v,currentIndex:p,currentTransition:A,t:u.current,rect:ft,jumpTo:q}}import{useEffect as fo,useRef as ut,useState as po}from"react";function al(e,t={}){let{axis:o="y",offset:r=0,steps:n=1,enabled:i=!0}=t,[a,l]=po(0),f=ut(-1),m=ut(null);return fo(()=>{if(!i||!e||!e.current)return;let s=e.current,y=()=>{let b=o==="y"?s.scrollTop:s.scrollLeft,v=o==="y"?s.clientHeight:s.clientWidth,S=(o==="y"?s.scrollHeight:s.scrollWidth)-v,h=(S<=0?0:Math.max(0,Math.min(1,(b+r)/S)))*n;h!==f.current&&(f.current=h,l(h)),m.current=null},x=()=>{m.current===null&&(m.current=requestAnimationFrame(y))};return s.addEventListener("scroll",x,{passive:!0}),y(),()=>{s.removeEventListener("scroll",x),m.current!==null&&cancelAnimationFrame(m.current)}},[e,o,r,n,i]),a}function ll(e,t){let{x:o,y:r,width:n,height:i}=e,{x:a,y:l}=t,{width:f,height:m}=t;return o+n>a&&o<a+f&&r+i>l&&r<l+m}import go from"tiny-invariant";function dl(e,t){let o=e.boundingBox||Se(e.polygon);if(e.polygon&&!be(e.polygon.points)){let r=e.target||Ie(e.polygon,t);return go(r?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:r.value}}return{type:"BoxSelector",spatial:o}}export{Aa as AnnotationContext,La as AnnotationPageContext,lr as AnnotationStyleProvider,ar as AtlasStoreProvider,nr as AtlasStoreReactContext,Ko as Auth,Fo as AuthProvider,Lo as AuthRContext,zo as AuthReactContext,Bo as AuthReactContextActions,xi as CanvasAnnotations,pe as CanvasContext,De as CanvasPanel,Fn as CanvasStrategyProvider,On as CanvasWorldObject,Oa as CollectionContext,ki as CombinedMetadata,Wr as ComplexTimelineProvider,yn as ContextBridge,qr as ControlsReactContext,$e as CreateCustomShape,dn as CustomContextBridge,gn as CustomContextBridgeProvider,ie as DEFAULT_BEZIER,Ee as DEFAULT_POLL_INTERVAL,In as DefaultEditingTools,qe as EASING_PRESETS,jo as EventEmitterProvider,fn as EventsProvider,Mt as Image,ta as ImageService,Fr as ImageServiceLoaderContext,Xo as InnerViewerProvider,_r as LanguageProvider,Xr as LanguageString,H as LocaleString,bo as ManifestContext,sa as ManifestMetadata,Ir as MediaPlayerProvider,j as Metadata,ui as PolygonSelector,So as RangeContext,Zo as ReactEmitterContext,un as ReactEventContext,yo as ReactVaultContext,gr as RegionHighlight,Er as Render3DModelStrategy,Ar as RenderAccompanyingCanvas,hr as RenderAnnotation,Sn as RenderAnnotationEditing,vr as RenderAnnotationPage,zr as RenderAnnotationStrategy,Vr as RenderAudioStrategy,Jr as RenderComplexTimelineStrategy,en as RenderEmptyStrategy,on as RenderImageStrategy,Ta as RenderSvgEditorControls,rn as RenderTextualContentStrategy,nn as RenderVideoStrategy,an as RenderYouTubeStrategy,dr as ResizeWorldItem,z as ResourceProvider,ho as ResourceReactContext,ei as SelectorControllerProvider,ba as SequenceThumbnails,Yo as SimpleViewerProvider,Go as SimpleViewerReactContext,tt as SingleCanvasThumbnail,wr as StrategyReactContext,Or as ThumbnailFallbackImage,Ur as TranslationProvider,$r as TransliterationProvider,de as VaultProvider,ae as ViewerPresetContext,Lr as VirtualAnnotationProvider,vo as VisibleCanvasReactContext,dl as annotationResponseToSelector,ko as authDetailsForResource,Ae as buildTransitions,rr as createAtlasStore,No as createAuthStateStore,Ao as createProbe,W as cubicBezierEasing,mn as defaultEmitter,ln as defaultSvgTheme,Pn as emptyActions,En as emptyStrategy,Co as findAllCanvasesInRange,Io as findFirstCanvasFromRange,Ro as findManifestSelectedRange,Po as findSelectedRange,qn as flattenAnnotationPageIds,Rr as formatTime,kn as get3dStrategy,ir as getAtlasStoreByName,zn as getComplexTimelineStrategy,sr as getDefaultAnnotationStyles,Mn as getImageStrategy,To as getManifestSequence,Rn as getParsedTargetSelector,Oe as getRenderingStrategy,ke as getStepFromProgress,Hn as getTextualContentStrategy,Ln as getVideoStrategy,wo as getVisibleCanvasesFromCanvasId,qo as hasAuth,Ne as interpolateRect,tr as isBoxSelector,be as isRectangle,er as isSvgSelector,Ho as makeAccessServiceRequest,Mo as makeAccessTokenRequest,Cn as parseSpecificResource,Ie as polygonToTarget,Ce as requestToAnnotationResponse,or as seraliseSupportedSelector,Qn as svgThemes,ll as targetIntersects,wn as unknownResponse,Tn as unsupportedStrategy,ur as useAnnotation,yr as useAnnotationPage,Be as useAnnotationPageManager,Re as useAnnotationStyles,Ua as useAnnotationsAtTime,xn as useAtlasContextMenu,T as useAtlasStore,Wo as useAuthActions,Uo as useAuthService,Vo as useAuthStore,$o as useAuthToken,_o as useAuthTokens,E as useCanvas,Xa as useCanvasChoices,Za as useCanvasClock,Eo as useCanvasSequence,Cr as useCanvasStartTime,ts as useCanvasSubset,Yr as useClosestLanguage,as as useCollection,Dr as useComplexTimeline,hn as useContextBridge,vn as useContextMenuStore,jr as useCreateLocaleString,us as useCurrentAnnotationActions,hs as useCurrentAnnotationMetadata,bn as useCurrentAnnotationRequest,Ss as useCurrentAnnotationTransition,Do as useCurrentAuth,pn as useCustomContextBridge,kr as useDispatch,Jo as useEmitter,G as useEvent,ze as useEventEmitter,ws as useEventListener,he as useExistingVault,Ns as useExternalCollection,xo as useExternalManifest,ye as useExternalResource,Qr as useIIIFLanguage,le as useImage,lt as useImageService,we as useImageServiceLoader,Vs as useImageTile,Oo as useIsAuthEnabled,Fe as useLoadImageService,Zr as useLocaleString,Q as useManifest,br as useMediaActions,Sr as useMediaElements,xr as useMediaState,An as usePaintables,B as usePaintingAnnotations,sn as usePolygonHelper,ve as useRange,mr as useRemoteStylesheet,Nr as useRenderControls,Bn as useRenderingStrategy,_e as useRequestAnnotation,$ as useResourceContext,fr as useResourceEvents,Nn as useResources,Qo as useSearchService,Ze as useSelectorController,ti as useSelectorEmitter,Ye as useSelectorEvents,oi as useSelectorHelper,Pr as useSimpleMediaPlayer,xe as useSimpleViewer,Gs as useStaticRenderingStrategy,Tr as useStrategy,Js as useStyleHelper,pr as useStyles,cr as useStylesheetStore,cn as useSvgEditor,ot as useSvgEditorControls,Te as useThumbnail,Gr as useTranslations,Kr as useTransliteration,w as useVault,Br as useVaultEffect,K as useVaultSelector,tn as useViewerPreset,al as useViewportScroll,rl as useViewportTour,Mr as useVirtualAnnotationPage,Hr as useVirtualAnnotationPageContext,ge as useVisibleCanvases};
1
+ import{$ as er,$a as Ne,$b as De,A as Ao,Aa as Ir,Ab as ln,B as ko,Ba as Cr,Bb as cn,C as Mo,Ca as Rr,Cb as mn,D as Ho,Da as Pr,Db as un,E as Lo,Ea as Pe,Eb as ze,F as zo,Fa as wr,Fb as fn,G as Bo,Ga as Tr,Gb as pn,H as Fo,Ha as Er,Hb as dn,I as Oo,Ia as qr,Ib as gn,J as Vo,Ja as Nr,Jb as hn,K as Wo,Ka as Ar,Kb as yn,L as Do,La as kr,Lb as vn,M as Uo,Ma as Mr,Mb as xn,N as _o,Na as Hr,Nb as bn,O as $o,Oa as Lr,Ob as Sn,P as Ko,Pa as zr,Pb as In,Q as Qo,Qa as Br,Qb as qn,R as Go,Ra as Fr,Rb as Be,S as Xo,Sa as we,Sb as Nn,T as Yo,Ta as Te,Tb as Fe,U as xe,Ua as Or,Ub as B,V as Zo,Va as Vr,Vb as An,W as jo,Wa as Wr,Wb as Bn,X as Jo,Xa as Dr,Xb as Fn,Y as G,Ya as ie,Yb as On,Z as be,Za as Ee,Zb as Ve,_ as Se,_a as qe,_b as We,a as ho,aa as tr,ab as Ae,b as $,ba as or,bb as W,c as z,ca as Ie,cb as ke,d as pe,da as Ce,db as Me,e as yo,ea as rr,eb as He,f as de,fa as nr,fb as Ur,g as w,ga as T,gb as _r,h as K,ha as ir,hb as $r,i as vo,ia as ar,ib as Kr,j as ge,ja as sr,jb as Qr,k as he,ka as Re,kb as Gr,l as Q,la as lr,lb as Xr,m as ye,ma as cr,mb as Yr,n as xo,na as mr,nb as Zr,o as bo,oa as ur,ob as jr,p as So,pa as E,pb as H,q as Io,qa as fr,qb as Le,r as Co,ra as pr,rb as Jr,s as Ro,sa as dr,sb as en,t as Po,ta as gr,tb as ae,u as wo,ua as hr,ub as tn,v as To,va as yr,vb as on,w as ve,wa as vr,wb as rn,x as Eo,xa as xr,xb as nn,y as qo,ya as br,yb as an,z as No,za as Sr,zb as sn}from"./chunk-W674L2PN.js";import"./chunk-UNH7HXGJ.js";import{a as Cn,b as Rn,c as Pn,d as wn,e as Tn,f as En,g as kn,h as Mn,i as Hn,j as Ln,k as zn,l as Oe}from"./chunk-P7XHGETS.js";export*from"@iiif/helpers/annotation-targets";import{useEffect as gt}from"react";import{useCallback as Ue,useEffect as pt,useRef as dt,useState as X}from"react";import{useStore as F}from"zustand";function _e(e){let[t,o]=X(0),r=T(),n=F(r,g=>g.tool.enabled),i=F(r,g=>g.tool.requestId),a=F(r,g=>g.getRequestId),l=F(r,g=>g.requestAnnotation),f=F(r,g=>g.completeRequest),m=F(r,g=>g.cancelRequest),s=dt(e?.onSuccess);s.current=e?.onSuccess;let[y,x]=X(!1),[b,v]=X(null),[p,S]=X(null),c=n&&i!==p,h=n&&i===p,d=Ue(async(g,R)=>{if(p){let M=s.current;x(!0);let q=await l(g,{...R,requestId:p});if(q)return M?.(q),o(A=>A+1),x(!1),v(q),q;let L={id:p,cancelled:!0,...Ce(g)};return M?.(L),v(L),o(A=>A+1),x(!1),L}return null},[l,p]),u=Ue(()=>{v(null),x(!1)},[]);return pt(()=>{let g=a();return S(g.requestId),()=>{g.clear()}},[t]),{id:t,busy:c,isPending:y,isActive:h,requestId:p,requestAnnotation:d,cancelRequest:()=>p?m(p):void 0,completeRequest:()=>p?f(p):void 0,reset:u,data:b}}var Qn=[{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 $e(e){let{id:t,data:o,requestAnnotation:r,cancelRequest:n,isPending:i}=_e({onSuccess:a=>{e.updateShape(a.polygon)}});return gt(()=>(r({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{n()}),[]),null}import{createContext as ht,useCallback as Ke,useContext as Ge,useEffect as Qe,useMemo as se,useState as yt}from"react";import Xe from"mitt";import{jsx as vt}from"react/jsx-runtime";var Y=ht(Xe());Y.displayName="SelectorHelper";function ei({children:e}){return vt(Y.Provider,{value:se(()=>Xe(),[]),children:e})}function ti(){return Ge(Y)}function Ye(e){let t=Ze(),[o,r]=yt(!1);Qe(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Qe(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=Ke(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=Ke(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:n,onHover:i,isHighlighted:o}}function Ze(){let e=Ge(Y);return se(()=>({withSelector(t){return{on(o,r){let n=i=>{i&&i.selectorId===t&&r(i)};return e.on(o,n),()=>{e.off(o,n)}},emit(o,r){e.emit(o,{...r,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function oi(){let e=Ze();return se(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(o,r){return e.withSelector(t).on(o,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(t){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(t,o){return e.on(t,o)}}),[e])}import{jsx as je}from"react/jsx-runtime";function ui(e){let t=E(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:i,isHighlighted:a}=Ye(e.id),l=Re(),f=a?l.highlighted:l[o||"hidden"]||l.hidden;if(!t)return null;if(r){let m="shape",s=e.polygon,y=s.open;return s?je(m,{id:`shape-${n}`,points:s.points,open:y,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:f}):null}return je($e,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useCanvas as xt}from"@atlas-viewer/atlas";import{forwardRef as bt,useImperativeHandle as St}from"react";import{Fragment as It,jsx as Je}from"react/jsx-runtime";var xi=bt(function({canvasId:t},o){let r=xt(),n=Be(t||r?.id),i=w();return St(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:Je(It,{children:n.enabledPageIds.map(a=>Je(De.RenderAnnotationPage,{page:i.get(a)},a))})});import{useMemo as Pt}from"react";import{useMemo as Ct}from"react";import{Fragment as Rt,jsx as C,jsxs as Z}from"react/jsx-runtime";function j({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:i,classes:a={},emptyMessage:l="No metadata available",emptyValueFallback:f="No value",emptyLabelFallback:m="",separator:s,tableFooter:y,tableHeader:x,customLabelRender:b,customValueRender:v}){let p=Ct(()=>{let c=(t||[]).reduce((d,u)=>[...d,...u.keys],[]),h={};for(let d of e){let u=d?.label?Object.values(d.label):[];for(let g of u)if(g?.length&&(c.indexOf(`metadata.${g[0]}`)!==-1||c.length===0)&&d){let R=`metadata.${g[0]}`;h[R]=h[R]?h[R]:[],h[R].push(d);break}}return h},[t,e]);return Object.keys(p).length===0&&r?C(Rt,{children:i})||C("div",{className:a.empty,children:l}):t?.length?Z("table",{className:a.container,children:[x,C("tbody",{children:t.map((c,h)=>{let d=[];for(let g of c.keys)for(let R of p[g]||[]){let M=C(H,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:s,children:R.value},h+"__"+g);v?d.push(v(R,M)):d.push(M)}if(d.length===0)return null;let u=C(H,{enableDangerouslySetInnerHTML:n,separator:s,defaultText:m,children:c.label});return Z("tr",{className:a.row,children:[C("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(c.label,u):u}),C("td",{className:a.value,children:d})]},h)})}),y]}):Z("table",{className:a.container,children:[x,C("tbody",{children:e?.length?e.map((c,h)=>{if(!c)return null;let d=C(H,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:s,children:c.label}),u=C(H,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:s,children:c.value});return Z("tr",{className:a.row,children:[C("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(c.label,d):d}),C("td",{className:a.value,children:v?v(c,u):u})]},h)}):null}),y]})}import{jsx as wt}from"react/jsx-runtime";function ki(e){let t=Q(),o=E(),r=ve(),n=Pt(()=>{let i=t?.metadata||[],a=o?.metadata||[],l=r?.metadata||[];return[...i,...a,...l]},[t,o,r]);return wt(j,{metadata:n,...e})}import{useEffect as Nt,useState as At}from"react";import{createImageServiceRequest as Tt,imageServiceRequestToString as Et}from"@iiif/parser/image-3";import{useMemo as qt}from"react";function le(e,t={},o=[]){return qt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=Tt(e);return Et({identifier:n.identifier,server:n.server,scheme:n.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:n.prefix,originalPath:n.originalPath})},[...o])}import{jsx as J}from"react/jsx-runtime";function kt(e){let t=typeof e.src=="string"?e.src:e.src.id,o=we(),[r,n]=At(!1),i;if(t){let l=o.loadServiceSync({id:t});l&&(i=l)}!i&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let a=le(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return Nt(()=>()=>{n(!1)},[t]),a?J("img",{src:a,alt:e.alt,className:e.className,style:e.style}):J(Mt,{...e,fetchImageService:!1})}function Mt(e){if(e.fetchImageService)return J(kt,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=le(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?J("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{useMemo as Ht,useState as Lt}from"react";import{ErrorBoundary as zt}from"react-error-boundary";import{jsx as O,jsxs as Ft}from"react/jsx-runtime";function ta({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:i,viewControlsDeps:a,fluid:l,x:f,y:m,...s}){let y=he(),[x,b]=Lt(),v=t||Ve,[p,S]=Fe(),c=Ht(()=>{let d=S[e]?.status,u=p({id:e},{});return u?.height&&u.width&&d!=="loading"?{id:e,width:u.width,height:u.height,service:u,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:u.width,height:u.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:u.width,height:u.height}}}:null},[p,e,S]);if(!c||!c.height||!c.width)return null;let h=l?void 0:s.homePosition?s.homePosition.width/s.homePosition.height:c.width/c.height;return O(zt,{resetKeys:[],fallbackRender:d=>O(v,{...s,...d}),children:O(de,{vault:y,children:O(We,{...s,aspectRatio:h,containerProps:{style:{position:"relative"},...s.containerProps||{}},onCreated:d=>{b(d),s.onCreated&&s.onCreated(d)},children:Ft(ae.Provider,{value:x,children:[O(Le,{image:c,id:c.id,isStatic:!o,x:f,y:m},c.id),O(Bt,{viewerPreset:x,renderViewerControls:i,image:c,src:e,viewControlsDeps:a}),n]})})})})}function Bt({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return Pe(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,ae.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as Ot}from"react/jsx-runtime";function sa(e){let t=Q();return Ot(j,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as _t,useRef as $t}from"react";import*as ce from"react-lazy-load-image-component";import{getValue as Vt}from"@iiif/helpers/i18n";import{Fragment as et,jsx as k,jsxs as Ut}from"react/jsx-runtime";var{LazyLoadComponent:Wt}=ce||ce.default;function tt(e){let{size:t,visible:o,classes:r,canvasId:n,figure:i}=e,a=t?.width||128,l=t?.height||t?.width||128,f=k(Dt,{...e}),m=k(Wt,{threshold:300,style:{height:l,width:a},visibleByDefault:o,children:n?k(pe,{canvas:n,children:f}):f});return i?k("figure",{className:r?.figure,children:m}):m}function Dt({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:i=!1}){let a=E(),l=t?.width||128,f=t?.height||t?.width||128,m=n||Vt(a?.label)||"",s=Te({width:l,height:f,allowUnsafe:!0},i);return!s||s.type!=="fixed"?k(et,{children:e}):Ut(et,{children:[k("div",{className:o?.imageWrapper,children:k("img",{className:o?.img,src:s.id,alt:m})}),r?k(H,{as:"figcaption",className:o?.label,children:a?.label}):null]})}import{jsx as D}from"react/jsx-runtime";function ba({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:i,figure:a,fallback:l}){let f=$t(null),{items:m,sequence:s,currentSequenceIndex:y,setSequenceIndex:x}=xe(),b={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};_t(()=>{if(!f.current)return;let p=f.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[y]);let v=[];for(let p of s){let S=[],c=s[y]===p;for(let h of p){let d=m[h];S.push(D("div",{className:c?b.item:n.item,children:D(tt,{classes:c?b:n,canvasId:d.id,size:r,dereference:t,showLabel:i,figure:a,placeholder:D("div",{style:{height:128,width:128}}),fallback:l})},h))}if(o){v.push(S);continue}v.push(D("div",{onClick:h=>{x(s.indexOf(p))},"data-selected":c,className:c?b.row:n.row,children:S},p.join("-")))}return D("div",{ref:f,className:n.container,children:v})}import{useStore as ee}from"zustand";function ot(){let e=T(),t=ee(e,i=>i.completeRequest),o=ee(e,i=>i.polygonState.currentTool),r=ee(e,i=>i.polygonState.selectedStamp),n=ee(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:r,switchTool:n}}import{Fragment as rt,jsx as P,jsxs as nt}from"react/jsx-runtime";var Kt={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function Ta({showShapes:e=!0,enabled:t=Kt,classNames:o={},icons:r={}}){let{currentTool:n,switchTool:i,selectedStamp:a}=ot();return nt(rt,{children:[n,P("button",{className:o.button,onClick:i.pointer,"data-active":n==="pointer",children:r.PointerIcon||"Pointer"}),P("button",{className:o.button,onClick:i.hand,"data-active":n==="hand",children:r.HandIcon||"Hand"}),e?nt(rt,{children:[t.box&&P("button",{className:o.button,onClick:i.box,"data-active":n==="box",children:r.BoxIcon||"Box"}),t.pen&&P("button",{className:o.button,onClick:i.pen,"data-active":n==="pen",children:r.PenIcon||"Pen"}),t.draw&&P("button",{className:o.button,onClick:i.draw,"data-active":n==="pencil",children:r.DrawIcon||"Draw"}),t.line&&P("button",{className:o.button,onClick:i.line,"data-active":n==="line",children:r.LineIcon||"Line"}),t.lineBox&&P("button",{className:o.button,onClick:i.lineBox,"data-active":n==="lineBox",children:r.LineBoxIcon||"LineBox"}),t.triangle&&P("button",{className:o.button,onClick:i.triangle,"data-active":n==="stamp"&&a?.id==="triangle",children:r.TriangleIcon||"Triangle"}),t.hexagon&&P("button",{className:o.button,onClick:i.hexagon,"data-active":n==="stamp"&&a?.id==="hexagon",children:r.HexagonIcon||"Hexagon"}),t.circle&&P("button",{className:o.button,"data-active":n==="stamp"&&a?.id==="circle",onClick:i.circle,children:r.CircleIcon||"Circle"})]}):null,t.delete&&P("button",{className:o.button,onClick:i.remove,children:r.DeleteForeverIcon||"Delete"})]})}import{jsx as Qt}from"react/jsx-runtime";function Aa({annotation:e,children:t}){return Qt(z,{value:{annotation:e},children:t})}import{jsx as Gt}from"react/jsx-runtime";function La({annotationPage:e,children:t}){return Gt(z,{value:{annotationPage:e},children:t})}import{jsx as Xt}from"react/jsx-runtime";function Oa({collection:e,children:t}){return Xt(z,{value:{collection:e},children:t})}function Ua(e,t={}){return B(t)}import{useCanvas as Yt}from"@atlas-viewer/atlas";import{useEffect as Zt,useMemo as me,useState as jt}from"react";function Xa({canvasId:e}={}){let t=Yt(),o=ge(),r=me(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[n,i]=jt({}),a=ze();Zt(()=>{let m=s=>{let y=s.partOf.canvasId;y&&i(x=>({...x,[y]:s.choice}))};return a.on("choice-change",m),()=>{a.off("choice-change",m)}},[]);let l=me(()=>{let m=[];for(let s of r){let y=n[s];y&&m.push({canvasId:s,choice:y})}return m},[r,n]),f=me(()=>({makeChoice:(m,s)=>{a.emit("make-choice",{choiceId:m,...s})}}),[a]);return{choices:l,actions:f}}function Za(e,t=!1){}function ts(e){let o=$().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return K(n=>{let i=o?n.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let l=[];for(let f of i?.items||[])r.indexOf(f.id)!==-1&&l.push(f);return l},[r.join("/")])}import{useMemo as Jt}from"react";function as(e,t=[]){let{id:o,selector:r}=e,n=$(),i=o||n.collection,a=K(l=>i?l.iiif.entities.Collection[i]:void 0,[i]);return Jt(()=>{if(a)return r?r(a):a},[a,r,...t])}import{startTransition as eo,useMemo as to}from"react";import{useStore as it}from"zustand";function us(){let e=T(),t=it(e,r=>r.completeRequest),o=it(e,r=>r.cancelRequest);return to(()=>({saveAnnotation:()=>{eo(()=>{t()})},cancelRequest:o}),[t,o])}import{useCallback as oo}from"react";import{useStore as ue}from"zustand";function hs({requestId:e}={}){let t=T(),o=ue(t,l=>l.metadata),r=ue(t,l=>l.tool.requestId),n=e||r,i=ue(t,l=>l.setMetadata),a=oo(l=>i(l,n||void 0),[i,n]);return[n?o[n]||{}:{},a]}import{useStore as ro}from"zustand";function Ss(e){let t=T(),o=ro(t,r=>r.tool.requestId);G("polygons.start-transition",r=>{e.requestId&&o!==e.requestId||e?.onStart?.(r.transitionIntent)},[o,e.requestId]),G("polygons.end-transition",r=>{e.requestId&&o!==e.requestId||e?.onEnd?.(r.transitionIntent,r.response)},[o,e.requestId]),G("polygons.transition",r=>{e.requestId&&o!==e.requestId||e?.onTransition?.(r.transitionIntent)},[o,e.requestId])}import{useEffect as no,useMemo as io}from"react";import{createEventsHelper as ao}from"@iiif/helpers/events";function ws(e,t,o,r,n=[]){let i=w(),a=io(()=>ao(i),[i]);no(()=>{let l=e;return l?(a.addEventListener(l,t,o,r),()=>{a.removeEventListener(l,t,o)}):()=>{}},[a,e,t,...n])}function Ns(e,t){let{id:o,isLoaded:r,error:n,resource:i,requestId:a,cached:l}=ye(e,t);return{id:o,isLoaded:r,error:n,manifest:i,requestId:a,cached:l}}import{getImageServices as at}from"@iiif/parser/image-3";import{useEffect as so,useMemo as st,useState as te}from"react";function lt({cacheKey:e}={}){let t=E(),o=B(),r=w(),n=Me(),i=He(),[a,l]=te(void 0),[f,m]=te(!1),[s,y]=te("idle"),[x,b]=te(void 0),v=t?t.id:"undefined",p=st(()=>{try{if(t&&o.length){let c=o[0],h=r.get(c.body[0]),u=at(h)[0];return u&&n(u,{width:u.width||t.width,height:u.height||t.height},!0)||void 0}}catch(c){console.error(c)}},[v,e,t]),S=s==="success"&&a?a:p;return so(()=>{(async()=>{try{if(t&&o.length){let c=o[0],h=r.get(c.body[0]),u=at(h)[0];if(!u)return;m(!0),y("loading");try{let g=await i(u,{width:u.width||t.width,height:u.height||t.height})||void 0;l(g),y("success"),m(!1)}catch(g){y("error"),b(g)}}}catch(c){y("error"),b(c)}})()},[v,e]),st(()=>({data:S,isFetching:f,status:s,error:x}),[S,f,s,x])}function Vs(){let e=lt();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}}import{useMemo as fe}from"react";import{createPaintingAnnotationsHelper as lo}from"@iiif/helpers";function Gs({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=w(),o=E(),r=B(),n=fe(()=>lo(t),[t]),i=fe(()=>n.getPaintables(r),[n,r]);return fe(()=>Oe({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}import{createStylesHelper as co}from"@iiif/helpers/styles";import{useMemo as mo}from"react";function Js(){let e=w();return mo(()=>co(e),[e])}import{useCallback as uo,useEffect as oe,useMemo as ct,useRef as re,useState as mt}from"react";function rl(e){let{initial:t,regions:o,progress:r,getProgress:n,enabled:i=!0,easing:a,reportEveryFrame:l=!1,pollInterval:f=Ee,loop:m=!1,onEnter:s,onExit:y,onProgress:x,jumpTo:b}=e,v=ct(()=>Ae(t,o),[t,o]),[p,S]=mt(()=>-1),[c,h]=mt(0),d=re(-1),u=re(0),g=re(!0),R=re(()=>{});oe(()=>(g.current=!0,()=>{g.current=!1}),[]);let M=ct(()=>{if(!a)return W(ie);if(typeof a=="function")return a;if(Array.isArray(a)&&a.length===4)return W(a);let I=qe[a];return I?W(I):W(ie)},[a]),q=uo(I=>{if(!(I<0||I>=v.length)&&(S(I),d.current=I,u.current=0,h(0),s))try{s(I)}catch{}},[v,s]);oe(()=>{R.current=q,b&&b(q)},[q,b]);function L(I){let{index:V,t:U}=ke(I,v),N=V;if(m&&v.length>0){let ne=v.length;N=(V%ne+ne)%ne}let _=M(U);if(N!==d.current){if(d.current>=0&&y)try{y(d.current)}catch{}if(N>=0&&s)try{s(N)}catch{}d.current=N,g.current&&S(N)}if(u.current=_,g.current&&(l||N!==p)&&h(_),x&&N>=0)try{x(N,_)}catch{}}oe(()=>{i&&typeof r=="number"&&L(r)},[r,i]),oe(()=>{if(!i||typeof n!="function")return;let I=null,V=()=>{try{let U=n();L(U)}catch{}};return V(),I=setInterval(V,f),()=>clearInterval(I)},[n,i,f]);let A=p>=0&&p<v.length?v[p]:void 0,ft=A?Ne(A.from,A.to,u.current):void 0;return{transitions:v,currentIndex:p,currentTransition:A,t:u.current,rect:ft,jumpTo:q}}import{useEffect as fo,useRef as ut,useState as po}from"react";function al(e,t={}){let{axis:o="y",offset:r=0,steps:n=1,enabled:i=!0}=t,[a,l]=po(0),f=ut(-1),m=ut(null);return fo(()=>{if(!i||!e||!e.current)return;let s=e.current,y=()=>{let b=o==="y"?s.scrollTop:s.scrollLeft,v=o==="y"?s.clientHeight:s.clientWidth,S=(o==="y"?s.scrollHeight:s.scrollWidth)-v,h=(S<=0?0:Math.max(0,Math.min(1,(b+r)/S)))*n;h!==f.current&&(f.current=h,l(h)),m.current=null},x=()=>{m.current===null&&(m.current=requestAnimationFrame(y))};return s.addEventListener("scroll",x,{passive:!0}),y(),()=>{s.removeEventListener("scroll",x),m.current!==null&&cancelAnimationFrame(m.current)}},[e,o,r,n,i]),a}function ll(e,t){let{x:o,y:r,width:n,height:i}=e,{x:a,y:l}=t,{width:f,height:m}=t;return o+n>a&&o<a+f&&r+i>l&&r<l+m}import go from"tiny-invariant";function dl(e,t){let o=e.boundingBox||Se(e.polygon);if(e.polygon&&!be(e.polygon.points)){let r=e.target||Ie(e.polygon,t);return go(r?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:r.value}}return{type:"BoxSelector",spatial:o}}export{Aa as AnnotationContext,La as AnnotationPageContext,lr as AnnotationStyleProvider,ar as AtlasStoreProvider,nr as AtlasStoreReactContext,Ko as Auth,Fo as AuthProvider,Lo as AuthRContext,zo as AuthReactContext,Bo as AuthReactContextActions,xi as CanvasAnnotations,pe as CanvasContext,De as CanvasPanel,Fn as CanvasStrategyProvider,On as CanvasWorldObject,Oa as CollectionContext,ki as CombinedMetadata,Wr as ComplexTimelineProvider,yn as ContextBridge,qr as ControlsReactContext,$e as CreateCustomShape,dn as CustomContextBridge,gn as CustomContextBridgeProvider,ie as DEFAULT_BEZIER,Ee as DEFAULT_POLL_INTERVAL,In as DefaultEditingTools,qe as EASING_PRESETS,jo as EventEmitterProvider,fn as EventsProvider,Mt as Image,ta as ImageService,Fr as ImageServiceLoaderContext,Xo as InnerViewerProvider,_r as LanguageProvider,Xr as LanguageString,H as LocaleString,bo as ManifestContext,sa as ManifestMetadata,Ir as MediaPlayerProvider,j as Metadata,ui as PolygonSelector,So as RangeContext,Zo as ReactEmitterContext,un as ReactEventContext,yo as ReactVaultContext,gr as RegionHighlight,Er as Render3DModelStrategy,Ar as RenderAccompanyingCanvas,hr as RenderAnnotation,Sn as RenderAnnotationEditing,vr as RenderAnnotationPage,zr as RenderAnnotationStrategy,Vr as RenderAudioStrategy,Jr as RenderComplexTimelineStrategy,en as RenderEmptyStrategy,on as RenderImageStrategy,Ta as RenderSvgEditorControls,rn as RenderTextualContentStrategy,nn as RenderVideoStrategy,an as RenderYouTubeStrategy,dr as ResizeWorldItem,z as ResourceProvider,ho as ResourceReactContext,ei as SelectorControllerProvider,ba as SequenceThumbnails,Yo as SimpleViewerProvider,Go as SimpleViewerReactContext,tt as SingleCanvasThumbnail,wr as StrategyReactContext,Or as ThumbnailFallbackImage,Ur as TranslationProvider,$r as TransliterationProvider,de as VaultProvider,ae as ViewerPresetContext,Lr as VirtualAnnotationProvider,vo as VisibleCanvasReactContext,dl as annotationResponseToSelector,ko as authDetailsForResource,Ae as buildTransitions,rr as createAtlasStore,No as createAuthStateStore,Ao as createProbe,W as cubicBezierEasing,mn as defaultEmitter,ln as defaultSvgTheme,Pn as emptyActions,En as emptyStrategy,Co as findAllCanvasesInRange,Io as findFirstCanvasFromRange,Ro as findManifestSelectedRange,Po as findSelectedRange,qn as flattenAnnotationPageIds,Rr as formatTime,kn as get3dStrategy,ir as getAtlasStoreByName,zn as getComplexTimelineStrategy,sr as getDefaultAnnotationStyles,Mn as getImageStrategy,To as getManifestSequence,Rn as getParsedTargetSelector,Oe as getRenderingStrategy,ke as getStepFromProgress,Hn as getTextualContentStrategy,Ln as getVideoStrategy,wo as getVisibleCanvasesFromCanvasId,qo as hasAuth,Ne as interpolateRect,tr as isBoxSelector,be as isRectangle,er as isSvgSelector,Ho as makeAccessServiceRequest,Mo as makeAccessTokenRequest,Cn as parseSpecificResource,Ie as polygonToTarget,Ce as requestToAnnotationResponse,or as seraliseSupportedSelector,Qn as svgThemes,ll as targetIntersects,wn as unknownResponse,Tn as unsupportedStrategy,ur as useAnnotation,yr as useAnnotationPage,Be as useAnnotationPageManager,Re as useAnnotationStyles,Ua as useAnnotationsAtTime,xn as useAtlasContextMenu,T as useAtlasStore,Wo as useAuthActions,Uo as useAuthService,Vo as useAuthStore,$o as useAuthToken,_o as useAuthTokens,E as useCanvas,Xa as useCanvasChoices,Za as useCanvasClock,Eo as useCanvasSequence,Cr as useCanvasStartTime,ts as useCanvasSubset,Yr as useClosestLanguage,as as useCollection,Dr as useComplexTimeline,hn as useContextBridge,vn as useContextMenuStore,jr as useCreateLocaleString,us as useCurrentAnnotationActions,hs as useCurrentAnnotationMetadata,bn as useCurrentAnnotationRequest,Ss as useCurrentAnnotationTransition,Do as useCurrentAuth,pn as useCustomContextBridge,kr as useDispatch,Jo as useEmitter,G as useEvent,ze as useEventEmitter,ws as useEventListener,he as useExistingVault,Ns as useExternalCollection,xo as useExternalManifest,ye as useExternalResource,Qr as useIIIFLanguage,le as useImage,lt as useImageService,we as useImageServiceLoader,Vs as useImageTile,Oo as useIsAuthEnabled,Fe as useLoadImageService,Zr as useLocaleString,Q as useManifest,br as useMediaActions,Sr as useMediaElements,xr as useMediaState,An as usePaintables,B as usePaintingAnnotations,sn as usePolygonHelper,ve as useRange,mr as useRemoteStylesheet,Nr as useRenderControls,Bn as useRenderingStrategy,_e as useRequestAnnotation,$ as useResourceContext,fr as useResourceEvents,Nn as useResources,Qo as useSearchService,Ze as useSelectorController,ti as useSelectorEmitter,Ye as useSelectorEvents,oi as useSelectorHelper,Pr as useSimpleMediaPlayer,xe as useSimpleViewer,Gs as useStaticRenderingStrategy,Tr as useStrategy,Js as useStyleHelper,pr as useStyles,cr as useStylesheetStore,cn as useSvgEditor,ot as useSvgEditorControls,Te as useThumbnail,Gr as useTranslations,Kr as useTransliteration,w as useVault,Br as useVaultEffect,K as useVaultSelector,tn as useViewerPreset,al as useViewportScroll,rl as useViewportTour,Mr as useVirtualAnnotationPage,Hr as useVirtualAnnotationPageContext,ge as useVisibleCanvases};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-iiif-vault",
3
- "version": "2.0.14",
3
+ "version": "2.0.15",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",