react-iiif-vault 2.0.18 → 4.0.0

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.
Files changed (67) hide show
  1. package/README.md +77 -1
  2. package/dist/Image-CXsx26cA.d.ts +45 -0
  3. package/dist/Image-g-DyBvi0.d.cts +45 -0
  4. package/dist/ImageStrategy-BHLIi5gd.d.ts +55 -0
  5. package/dist/ImageStrategy-Be9YES5a.d.cts +55 -0
  6. package/dist/SimpleViewerContext.hooks-CTgfe0Gg.d.cts +617 -0
  7. package/dist/SimpleViewerContext.hooks-DYJSrd-U.d.ts +617 -0
  8. package/dist/SimpleViewerContext.types-CWf5OFM7.d.ts +51 -0
  9. package/dist/SimpleViewerContext.types-Df-cpBss.d.cts +51 -0
  10. package/dist/ViewerPresetContext-D7N6KH9p.d.ts +144 -0
  11. package/dist/ViewerPresetContext-DwFTIkDx.d.cts +144 -0
  12. package/dist/bundle.d.ts +290 -196
  13. package/dist/bundle.global.js +45 -74
  14. package/dist/canvas-panel/scene.cjs +1 -0
  15. package/dist/canvas-panel/scene.d.cts +133 -0
  16. package/dist/canvas-panel/scene.d.ts +133 -0
  17. package/dist/canvas-panel/scene.js +1 -0
  18. package/dist/canvas-panel.cjs +1 -47
  19. package/dist/canvas-panel.d.cts +10 -5
  20. package/dist/canvas-panel.d.ts +10 -5
  21. package/dist/canvas-panel.js +1 -1
  22. package/dist/chunk-3XPYQXUE.js +48 -0
  23. package/dist/chunk-6WG6RPHU.js +1 -0
  24. package/dist/chunk-DXC5VCRN.js +1 -0
  25. package/dist/chunk-DZ7DMQ3V.cjs +1 -0
  26. package/dist/chunk-HFC72RK6.js +1 -0
  27. package/dist/chunk-L2GTJVPY.js +1 -0
  28. package/dist/chunk-L576POBV.cjs +2 -0
  29. package/dist/chunk-LKWFF45D.cjs +1 -0
  30. package/dist/chunk-MEQI335A.js +2 -0
  31. package/dist/chunk-MIANDAMK.cjs +1 -0
  32. package/dist/chunk-ND2R7OTX.js +1 -0
  33. package/dist/chunk-R7HZTE2T.cjs +48 -0
  34. package/dist/chunk-WBVFSMED.cjs +1 -0
  35. package/dist/chunk-XULFR6E3.cjs +1 -0
  36. package/dist/chunk-YEU5T67O.js +1 -0
  37. package/dist/chunk-ZBGD3VEW.cjs +1 -0
  38. package/dist/chunk-ZEGT4BAR.cjs +1 -0
  39. package/dist/core.cjs +1 -0
  40. package/dist/core.d.cts +133 -0
  41. package/dist/core.d.ts +133 -0
  42. package/dist/core.js +1 -0
  43. package/dist/{index-DijgVxjb.d.ts → index-ClFUurPI.d.ts} +15 -69
  44. package/dist/{index-DHghDluJ.d.cts → index-QFlDahI_.d.cts} +15 -69
  45. package/dist/index.cjs +1 -49
  46. package/dist/index.d.cts +33 -1496
  47. package/dist/index.d.ts +33 -1496
  48. package/dist/index.js +1 -1
  49. package/dist/presentation-4.cjs +1 -0
  50. package/dist/presentation-4.d.cts +304 -0
  51. package/dist/presentation-4.d.ts +304 -0
  52. package/dist/presentation-4.js +1 -0
  53. package/dist/ranges-Cc2ppjFD.d.ts +689 -0
  54. package/dist/ranges-D-UBNcsJ.d.cts +689 -0
  55. package/dist/{useRenderingStrategy-CoKE915F.d.cts → useRenderingStrategy-Vubk-vUU.d.cts} +47 -24
  56. package/dist/{useRenderingStrategy-CoKE915F.d.ts → useRenderingStrategy-Vubk-vUU.d.ts} +47 -24
  57. package/dist/utils-DHWZGbVU.d.ts +54 -0
  58. package/dist/utils-De5WTLDh.d.cts +54 -0
  59. package/dist/utils.cjs +1 -1
  60. package/dist/utils.d.cts +7 -5
  61. package/dist/utils.d.ts +7 -5
  62. package/dist/utils.js +1 -1
  63. package/package.json +54 -15
  64. package/dist/chunk-KUNXFW7A.js +0 -49
  65. package/dist/chunk-P7XHGETS.js +0 -1
  66. package/dist/utils-BKdiug6F.d.cts +0 -41
  67. package/dist/utils-CmwQWQLa.d.ts +0 -41
@@ -1,49 +0,0 @@
1
- import{c as fn,l as gn}from"./chunk-P7XHGETS.js";import{forwardRef as _r,useImperativeHandle as du,useMemo as mu}from"react";import jr,{useContext as Gr,useMemo as Kr}from"react";import{jsx as Qr}from"react/jsx-runtime";var Yr={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Ge=jr.createContext(Yr),_=()=>Gr(Ge);function ae({value:e,children:t}){let n=_(),o=Kr(()=>({...n,...e}),[e,n]);return Qr(Ge.Provider,{value:o,children:t})}import{jsx as Xr}from"react/jsx-runtime";function ne({canvas:e,children:t}){return Xr(ae,{value:{canvas:e},children:t})}import Zr,{useState as Jr}from"react";import{Vault as hn,globalVault as ei}from"@iiif/helpers/vault";import{jsx as yn}from"react/jsx-runtime";var ue=Zr.createContext({vault:null,setVaultInstance:e=>{}});function ye({vault:e,vaultOptions:t,useGlobal:n,resources:o,children:i}){let[s,r]=Jr(()=>e||(n?ei(t):t?new hn(t):new hn));return yn(ue.Provider,{value:{vault:s,setVaultInstance:r},children:yn(ae,{value:o||{},children:i})})}import{useContext as ri}from"react";import ii from"react";import{useContext as ti}from"react";var M=()=>{let{vault:e}=ti(ue);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};import{useEffect as ni,useState as oi}from"react";function k(e,t=[]){let n=M(),[o,i]=oi(()=>e(n.getState(),n));return ni(()=>n.subscribe(s=>e(s,n),s=>{i(s)},!1),t),o}var ve=ii.createContext([]);function Ke(){let e=ri(ve);return k(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}import{globalVault as ai}from"@iiif/helpers/vault";import{useContext as si}from"react";function Se(e){let t=si(ue);return e||(t&&t.vault?t.vault:ai())}import{useMemo as li}from"react";function O(e={},t=[]){let{id:n,selector:o}=e,i=_(),s=M(),r=n||i.manifest,a=k(l=>r?l.iiif.entities.Manifest[r]:void 0,[r]);return li(()=>{if(a)return o?o(a):a},[a,o,...t])}import{useContext as Vi}from"react";import{createContext as Ni,useMemo as Li}from"react";import{useEffect as ui,useMemo as ci,useState as At}from"react";function vn(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,o=Se(),[i,s]=At(n),[r,a]=At(void 0),l=ci(()=>o.get(n,{skipSelfReturn:!0})||void 0,[n,o]),[u,d]=At(l);return ui(()=>{(async()=>{try{let c=l&&!t?l:await o.load(n),m=c?c.id||c["@id"]:null;c&&i!==m&&s(m),d(c)}catch(c){a(c)}})()},[n,t]),{isLoaded:!!u,id:i,requestId:n,error:r,resource:u,cached:!!(u&&u===l)}}function Sn(e,t){let{id:n,isLoaded:o,error:i,resource:s,requestId:r,cached:a}=vn(e,t);return{id:n,isLoaded:o,error:i,manifest:s,requestId:r,cached:a}}import{jsx as di}from"react/jsx-runtime";function xn({manifest:e,children:t}){return di(ae,{value:{manifest:e},children:t})}import{jsx as mi}from"react/jsx-runtime";function bn({range:e,children:t}){return mi(ae,{value:{range:e},children:t})}function pi(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=pi(e,e.get(n));if(o)return o}}return null}function Pt(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(...Pt(e,e.get(o))),o.type==="SpecificResource"){let i=typeof o.source=="string"?o.source:o.source.id;n.push({id:i,type:"Canvas"})}return n}function dc(e,t,n){for(let o of t.structures){let i=Cn(e,e.get(o),n);if(i)return i}return null}function Cn(e,t,n){for(let o of t.items){let i=o?.source?.id?.split("#")[0];if(o.type==="SpecificResource"&&o.source===n||o.type==="SpecificResource"&&o.source?.type==="Canvas"&&n===i)return t;if(o.type==="Range"){let s=Cn(e,e.get(o),n);if(s)return s}}return null}function fc(e,t,n,o=!1){let i=t.behavior,s=n?e.get(n):null;if(!s)return[];let r=s.behavior,a=o?!1:i.includes("paged"),l=a?!1:i.includes("continuous"),u=a||l?!1:i.includes("individuals"),d=r.includes("facing-pages"),c=r.includes("non-paged");if(d||c||u||o)return[{id:s.id,type:"Canvas"}];let[m,p]=wt(e,t);if(l)return m;let f=m.findIndex(v=>v.id===n);if(f===-1)return[];for(let v of p)if(v.includes(f))return v.map(h=>m[h]);return[{id:s.id,type:"Canvas"}]}function wt(e,t,{disablePaging:n,skipNonPaged:o}={}){let i=t.behavior,s=i.includes("paged"),r=s?!1:i.includes("continuous"),a=s||r?!1:i.includes("individuals"),l=t.type==="Manifest"?t.items:Pt(e,t);if(r)return[l,[l.map((f,v)=>v)]];if(a||!s||n)return[l,l.map((f,v)=>[v])];let u=[],d=[],c=()=>{d.length&&(u.push([...d]),d=[])},m=0,p=!1;for(let f=0;f<l.length;f++){let v=e.get(l[f]);if(v.behavior.includes("non-paged")){f===m&&m++,o||(c(),u.push([f]),c());continue}if(f===m||v.behavior.includes("facing-pages")){d.length&&(p=!0),c(),u.push([f]),c();continue}if(d.push(f),p){c(),p=!1;continue}d.length>1&&c()}return d.length&&c(),[l,u]}import{useCallback as Ye,useMemo as gi,useRef as hi,useState as yi}from"react";import{useMemo as fi}from"react";function Rn(e={},t=[]){let{id:n,selector:o}=e,i=_(),s=n||i.range,r=k(a=>s?a.iiif.entities.Range[s]:void 0,[s]);return fi(()=>{if(r)return o?o(r):r},[r,o,...t])}function An({startCanvas:e,disablePaging:t}){let n=M(),o=O(),i=Rn(),[s,r]=yi(void 0),a=i||o;if(!a)throw new Error("Nothing selected");let[l,u]=gi(()=>wt(n,a,{disablePaging:t}),[n,a,t]),d=hi(u);if(d.current!==u){let h=d.current[s][0],S=u.findIndex(b=>b.includes(h));d.current=u,r(S)}let c=Ye(v=>{let h=u.findIndex(S=>S.includes(v));r(h===-1?0:h)},[l,u]),m=Ye(v=>{let h=l.findIndex(S=>S.id===v);h!==-1?c(h):r(0)},[l,u]),p=Ye(()=>{r(v=>v>=u.length-1?v:v+1)},[u]),f=Ye(()=>{r(v=>v<=0?0:v-1)},[u]);return typeof s>"u"&&(e?m(e):r(0)),{visibleItems:u[s]?.map(v=>l[v].id)||[],cursor:s,items:l,sequence:u,hasPrevious:s>0,hasNext:s<u.length-1,setSequenceIndex:r,setCanvasIndex:c,setCanvasId:m,next:p,previous:f}}import{createContext as Mt,useContext as zn,useEffect as Si,useMemo as xi}from"react";import{useStore as Le}from"zustand";import{createStore as wn}from"zustand/vanilla";function Tc(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function j(e,t,n){let o=t.findIndex(r=>r.service.id===e);if(o===-1)return t;let i=[...t],s=n(i[o]);return s===i[o]?t:(i[o]=s,i)}var Tn=()=>wn((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(i=>i.type==="AuthAccessTokenService2");if(!o)throw new Error("Token service not found");e(()=>({authItems:j(n.id,t().authItems,i=>({...i,isPending:!0}))})),Pn(n.service).then(()=>{Tt(o).then(i=>{let s=i.expiresIn,r=Date.now()+s*1e3;e(()=>({authItems:j(n.id,t().authItems,a=>({...a,isLoggedIn:!0,isPending:!1,session:{token:i.accessToken,expires:r}}))}))}).catch(i=>{e(()=>({authItems:j(n.id,t().authItems,s=>({...s,isLoggedIn:!1,isPending:!1,error:i.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(r=>r.type==="AuthLogoutService2");if(!o)return;let i=`${o.id}?origin=${kn()}`,s=window.open(i);e(()=>({authItems:j(n.id,t().authItems,r=>({...r,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 i=n.service.find(a=>a.type==="AuthAccessTokenService2"),s=n;if(t().authItems.find(a=>a.service.id===n.id)){e(()=>({authItems:j(n.id,t().authItems,a=>({...a,instances:a.instances+1}))}));return}if(e(()=>({currentAuth:s.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(!i)throw new Error("Token service not found");Tt(i).then(a=>{e(()=>({authItems:j(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:j(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:a.message}))}))})}if(n.profile==="kiosk"){if(!i)throw new Error("Token service not found");e(()=>({authItems:j(n.id,t().authItems,a=>({...a,isPending:!0}))})),Pn(s).then(()=>{Tt(i).then(a=>{e(()=>({authItems:j(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:j(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:a.message}))}))})})}n.profile},removeService:(n,o)=>{let i=t().currentAuth===t().authItems.findIndex(r=>r.service.id===n.id),s=t().currentAuth;if(i){let r=t().authItems.find(l=>l.service.id===n.id);r&&r.instances>1||(s=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:j(n.id,t().authItems,r=>({...r,instances:r.instances-1})),currentAuth:s}))}})),In=(e,t)=>wn((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 i=o().service?.id;if(!i){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let s=o().token;try{let r=await fetch(i,{headers:s?{Authorization:`Bearer ${o().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(a=>a.json());if(r.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(r.status<400&&r.status>=300){if(!r.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:r.location||null})}else if(r.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!r.substitute,substituteResource:r.substitute||null,error:"Unauthorized",errorHeading:r.heading||{en:["Unauthorized"]},errorNote:r.note||null});else throw new Error("Unknown error")}catch(r){n({status:"error",error:r.message,errorHeading:{en:["Unknown error"]}})}},setToken(i){n({token:i})}}));function Mn(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 i=o.service.filter(s=>s.type==="AuthAccessService2");i[0]&&(n.services.access=i[0])}return n}async function Tt(e,{strict:t=!0}={}){return new Promise((n,o)=>{let i=Math.random().toString(36).substring(7),s=`${e.id}?messageId=${i}&origin=${window.location.origin}`,r=u=>{let d=u.data;if(d.messageId===i){if(t&&d.type!=="AuthAccessToken2"){a(),o("Invalid response, expected type=AuthAccessToken2");return}if(!d.accessToken){a(),o("Invalid response, expected accessToken");return}a(),n(d)}},a=()=>window.removeEventListener("message",r),l=document.createElement("iframe");l.src=s,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",r)})}function kn(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 Pn(e){let t=`${e.id}?origin=${kn()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((o,i)=>{let s=setInterval(()=>{n.closed&&(clearInterval(s),o())},500)})}import{useEffect as En,useMemo as Vn}from"react";import{useStore as vi}from"zustand";function Nn(e){let t=Vn(()=>Mn(e),[e]),n=Ln(t.services.access?.id),o=Vn(()=>In(t.services.probe,n),[t.services.probe]),i=vi(o);return En(()=>{i.status==="unknown"&&!n&&i.probe()},[t.services.probe,i.status]),En(()=>{n&&(i.setToken(n),i.probe())},[n]),[e,i,t.hasAuth]}import{jsx as Qe}from"react/jsx-runtime";var xe=Mt(null),bi=Mt(null);bi.displayName="CurrentAuth";var Ci=Mt(null);Ci.displayName="AuthActions";function On({children:e}){let t=xi(()=>Tn(),[]);return Qe(xe.Provider,{value:t,children:e})}function Bn(){return!!zn(xe)}function ze(){let e=zn(xe);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Ri(){let e=ze();return Le(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function _c(){let e=ze();return Le(e,t=>t)}function Ai(e){let t=ze();return Le(t,o=>o.authItems.find(i=>i.service.id===e))}function Ln(e){let t=ze();return Le(t,o=>o.authItems.find(i=>i.id===e)?.session?.token)}function jc(e){let t=ze();return Le(t,o=>{let i=o.authItems.find(s=>s.service.id===e);return!i||!i.isLoggedIn||!i.session?null:i.session?.token||null})}function Pi(e){let t=Ri(),n=Ai(e.service.id);return Si(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function It(){return null}function Hn(e){let[t,n,o]=Nn(e.resource),i=e.fallbackComponent||It,s=e.loadingComponent||It,r=e.errorComponent||It,a=n.service,l=null;if(!o||!a)return e.children(t);let u=a.service.filter(d=>d.type==="AuthAccessService2");n.status==="error"&&(l=Qe(r,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=Qe(s,{})),n.status==="success"&&(l=e.children(t));for(let d of u)l=Qe(Pi,{service:d,probeId:a.id,children:l},d.id);return l}import{createContext as Mi,useContext as td,useMemo as ki}from"react";import{createStore as wi}from"zustand/vanilla";var Ti=e=>e.id||e["@id"];function Ii(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 $n=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?Ti(t):void 0,o=null;return wi((i,s)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ii(t):!1,errorMessage:"",search(r,a={}){if(!n)throw new Error("No search service found.");o&&!o.signal.aborted&&o.abort(),o=new AbortController;let l=new URLSearchParams;r.q&&l.set("q",r.q),r.motivation&&l.set("motivation",r.motivation),r.date&&l.set("date",r.date),r.user&&l.set("user",r.user),i({loading:!0}),fetch(`${n}?${l.toString()}`,{signal:o.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...a.headers||{}}}).then(async u=>{if(!o?.signal.aborted)if(u.ok){let d=await u.json();i({resources:d.resources,error:!1,errorMessage:""})}else i({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){i({resources:[],error:!1,errorMessage:""})},highlightResult(r){let a=s().resources.find(l=>l["@id"]===r);i({highlight:a})},nextResult(){let r=s().resources,a=s().highlight;if(!a){i({highlight:r[0]||null});return}let l=r.findIndex(u=>u["@id"]===a["@id"]);if(l===-1){i({highlight:r[0]||null});return}i({highlight:r[l+1]||r[0]||null})},previousResult(){let r=s().resources,a=s().highlight;if(!a){i({highlight:r[r.length-1]||null});return}let l=r.findIndex(u=>u["@id"]===a["@id"]);if(l===-1){i({highlight:r[r.length-1]||null});return}if(l===0){i({highlight:r[r.length-1]||null});return}i({highlight:r[l-1]||r[r.length-1]||null})}}))};import{useStore as ad}from"zustand";function Dn(){let e=O();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}import{jsx as kt}from"react/jsx-runtime";var be=Mi(null);be.displayName="Search";function Fn(e){let t=Dn();return e.store?kt(be.Provider,{value:e.store,children:e.children}):kt(Ei,{service:t,children:e.children})}function Ei({service:e,children:t}){let n=ki(()=>$n(e),[e]);return kt(be.Provider,{value:n,children:t})}import{jsx as W}from"react/jsx-runtime";var Oe=()=>{},Be=Ni({setCurrentCanvasId:Oe,setCurrentCanvasIndex:Oe,nextCanvas:Oe,previousCanvas:Oe,items:[],sequence:[],setSequenceIndex:Oe,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function zi(e){let t=O(),{cursor:n,visibleItems:o,next:i,sequence:s,items:r,setCanvasIndex:a,setCanvasId:l,previous:u,setSequenceIndex:d,hasNext:c,hasPrevious:m}=An({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),p=Li(()=>({sequence:s,items:r,setCurrentCanvasId:l,nextCanvas:i,previousCanvas:u,totalCanvases:r.length,setCurrentCanvasIndex:a,setSequenceIndex:d,currentSequenceIndex:n,hasNext:c,hasPrevious:m}),[s,r,l,i,u,r,a,d,n]);return t?o.length===0?null:W(Be.Provider,{value:p,children:W(ve.Provider,{value:o,children:W(ne,{canvas:o[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),W("div",{children:"Sorry, something went wrong."}))}function qn(e){let t=Se(e.vault),n=Sn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),W("div",{children:"Sorry, something went wrong."});if(n.error)return W("div",{children:n.error.toString()});if(!n.isLoaded)return W("div",{children:"Loading..."});let o=W(zi,{...e,children:e.children});return W(ye,{vault:t,children:W(xn,{manifest:n.id,children:W(On,{children:W(Fn,{children:e.rangeId?W(bn,{range:e.rangeId,children:o}):o})})})})}function Xe(){return Vi(Be)}import{ModeContext as _i}from"@atlas-viewer/atlas";import{createContext as ji,useContext as Yn,useEffect as Gi,useMemo as Ki}from"react";import{useStore as Yi}from"zustand";import Oi from"mitt";import{createContext as Bi,useContext as Wn,useEffect as Hi}from"react";import{jsx as Di}from"react/jsx-runtime";var $i=Oi(),Ce=Bi($i);function Ld({children:e,emitter:t}){return Di(Ce.Provider,{value:t,children:e})}function Un(){return Wn(Ce)}function _n(e,t,n=[]){let o=Wn(Ce);Hi(()=>{let i=s=>{t(s)};return o.on(e,i),()=>{o.off(e,i)}},[o,e,...n])}import{createHelper as qi}from"polygon-editor";import{createStore as Wi}from"zustand/vanilla";function Et(e){let t=Math.max(...e.map(s=>s[0])),n=Math.min(...e.map(s=>s[0])),o=Math.max(...e.map(s=>s[1])),i=Math.min(...e.map(s=>s[1]));for(let s of e)if(s[0]!==n&&s[0]!==t&&s[1]!==i&&s[1]!==o||s[0]<n||s[0]>t||s[1]<i||s[1]>o)return!1;return!0}function Re(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(s=>s[0])),n=Math.min(...e.points.map(s=>s[1])),o=Math.max(0,...e.points.map(s=>s[0])),i=Math.max(0,...e.points.map(s=>s[1]));return{x:t,y:n,width:o-t,height:i-n}}return null}function Fi(e){return e.type==="SvgSelector"}function $d(e){return e.type==="BoxSelector"}function Vt(e,t){if(Fi(e)){let r=e.svgShape==="polyline";if(!e.points||e.points.length===0)return null;if(t){let{width:a,height:l}=t;return{type:"SvgSelector",value:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${a} ${l}" width="${a}" height="${l}"><${r?"polygon":"polyline"} points="${e.points.map(d=>d.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(a=>a.join(",")).join(" ")}${r?" Z":""}' /></g></svg>`}}if(!e.spatial)return null;let{x:n,y:o,width:i,height:s}=e.spatial||{};return!i||!s?null:{type:"FragmentSelector",value:`xywh=${~~n},${~~o},${~~i},${~~s}`}}function Nt(e,t){if(!e||!e.points.length)return null;if(Et(e.points)){let n=e.points.map(l=>l[0]),o=e.points.map(l=>l[1]),i=Math.min(...n),s=Math.min(...o),r=Math.max(...n)-i,a=Math.max(...o)-s;return Vt({type:"BoxSelector",spatial:{x:i,y:s,width:r,height:a}},t)}return Vt({type:"SvgSelector",points:e.points,svgShape:e.open?"polygon":"polyline"},t)}function jn(e){if(e.type==="polygon"&&!e.noBox&&e.points&&Et(e.points)){let n=Re({open:!1,points:e.points||[]});return jn({...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:Re({points:e.points||[],open:!1}),metadata:{},arguments:e.arguments||{},target:Nt({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:Nt({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 Ui={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 Gn({events:e,enabledTools:t,keyboardShortcutMapping:n,keyboardShortcutsEnabled:o=!1,debug:i}){let s=Wi((a,l)=>{let u=null,c=qi({emitter:e,keyboardShortcutsEnabled:o,keyboardShortcutMapping:n,enabledTools:t,customSetState:m=>{i&&console.log("partial state",m),a(p=>({polygonState:{...p.polygonState,...m}}))}},m=>{a(p=>p.tool.requestId?{polygon:{...m,id:p.tool.requestId}}:{polygon:{id:void 0,points:[],open:!0}}),e.emit("atlas.polygon-update",m)});return{mode:"explore",tool:{enabled:!1,requestId:null,canvasId:null},runtime:null,requestType:null,requests:{},history:c.history,polygon:null,validRequestIds:[],metadata:{},stableViewport:null,canvasRelativePositions:{},canvasViewports:{},polygons:c,polygonState:Ui,setMetadata:(m,p)=>{let f=p||l().tool.requestId;f&&a(v=>({metadata:{...v.metadata,[f]:{...v.metadata[f]||{},...m}}}))},setToolCanvasId:m=>{a(p=>({tool:{...p.tool,canvasId:m}}))},switchTool:{pointer(){a({mode:"sketch"}),r.tools.setTool("pointer")},hand(){a({mode:"explore"}),r.tools.setTool("hand")},draw(){a({mode:"sketch"}),r.tools.setTool("pencil")},pen(){a({mode:"sketch"}),r.tools.setTool("pen")},line(){a({mode:"sketch"}),r.tools.setTool("line")},lineBox(){a({mode:"sketch"}),r.tools.setTool("lineBox")},box(){a({mode:"sketch"}),r.tools.setTool("box")},triangle(){a({mode:"sketch"}),r.tools.setTool("stamp"),r.stamps.triangle()},hexagon(){a({mode:"sketch"}),r.tools.setTool("stamp"),r.stamps.hexagon()},circle(){a({mode:"sketch"}),r.tools.setTool("stamp"),r.stamps.circle()},remove(){let m=l();m.tool.requestId&&(c.setShape({points:[],open:!0}),m.cancelRequest(m.tool.requestId))}},reset:()=>{let m=l();m.tool.requestId&&m.cancelRequest(m.tool.requestId)},setPolygonState:m=>a({polygonState:typeof m=="function"?m(l().polygonState):m}),getRequestId:()=>{let m=Math.random().toString(36).slice(2);return a(p=>({validRequestIds:[...p.validRequestIds,m]})),{requestId:m,clear:()=>{l().tool.requestId,a(p=>({tool:p.tool.requestId===m?{enabled:!1,requestId:null,canvasId:null}:p.tool,validRequestIds:p.validRequestIds.filter(f=>f!==m)}))}}},cancelRequest:m=>{let p=m||l().tool.requestId;p&&(a(f=>({mode:"explore",tool:f.tool.requestId===p?{enabled:!1,requestId:null,canvasId:null}:f.tool,validRequestIds:f.validRequestIds.filter(v=>v!==p)})),e.emit("atlas.request-cancelled",{id:p}))},requestAnnotation:async(m,p)=>{let v={...l().requests,[p.requestId]:m},h=jn(m);i&&console.log("requestAnnotation",{response:h,request:m});try{let{points:S=[],open:b=!0}=h.polygon||{},{requestId:y,canvasId:g=null,toolId:x}=p,C=x,R=l(),P=R.validRequestIds.includes(y),L=h.requestType;return i&&console.log("setting points",{requestType:L,points:S,open:b}),!P||R.tool.enabled?null:(c.setShape({id:y,points:S,open:b}),L==="polygon"&&(C=C||"pen",c.tools.setTool("pen")),L==="draw"&&(C=C||"draw",c.tools.setTool("pencil")),L==="box"&&(C=C||"box",c.tools.setTool("box")),L==="target"?(C=C||"box",c.tools.setTool("box"),c.lockAspectRatio(),c.tools.lockToolSwitching(),c.tools.setCanDeselect(!1),c.tools.setCanDelete(!1)):(c.tools.unlockToolSwitching(),c.tools.setCanDeselect(!0),c.tools.setCanDelete(!0)),m.bounds&&c.setBounds(m.bounds),e.emit("atlas.annotation-request",{id:y}),a({polygon:{id:y,points:S,open:b},mode:"sketch",requestType:L,tool:{enabled:!0,requestId:y,canvasId:g},requests:v}),C?R.switchTool[C]?.():S.length===0&&R.switchTool.box(),(typeof m.selectByDefault>"u"&&S.length&&L==="box"||m.selectByDefault)&&R.switchTool.pointer(),new Promise(Q=>{let U=T=>{T.id===y&&(a(A=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(A.requests).filter(([I])=>I!==y))})),e.off("atlas.request-cancelled",U),e.off("atlas.annotation-completed",te),Q(null))},te=T=>{T.id===y&&(a(A=>({mode:"explore",tool:{requestId:null,enabled:!1,canvasId:null},requests:Object.fromEntries(Object.entries(A.requests).filter(([I])=>I!==y))})),e.off("atlas.annotation-completed",te),e.off("atlas.request-cancelled",U),Q(T))};e.on("atlas.request-cancelled",U),e.on("atlas.annotation-completed",te)}))}catch(S){return console.error(S),null}},completeRequest:m=>{let p=l().tool.requestId;if(typeof m=="string"&&m&&m!==p)return;let f=p?l().requests[p]?.arguments||{}:{},v=p?l().metadata[p]||{}:{},h=l().polygonState.bounds,S=l().polygon;S&&(e.emit("atlas.annotation-completed",{id:S.id,polygon:S,requestType:l().requestType,target:Nt(S,h),canvasId:l().tool.canvasId,boundingBox:Re(S),metadata:v,arguments:{...f}}),c.setShape(null))},setAtlasRuntime:m=>{u=m,e.emit("atlas.ready",{runtime:m}),r.setScale(1/u._lastGoodScale),u.world.addLayoutSubscriber((p,f)=>{(p==="event-activation"||p==="zoom-to"||p==="go-home")&&u?._lastGoodScale&&!Number.isNaN(u._lastGoodScale)&&r.setScale(1/u._lastGoodScale)}),a({runtime:u})},clearAtlasRuntime:()=>{u=null,a({stableViewport:null,runtime:null})},setCanvasRelativePosition:(m,p)=>{a(f=>({canvasRelativePositions:{...f.canvasRelativePositions,[m]:p}}))},clearCanvasRelativePosition:m=>{a(p=>{let f={...p.canvasRelativePositions};return delete f[m],{canvasRelativePositions:f}})},changeMode:m=>{a({mode:m})},nudgeLeft:m=>{if(!u)return;let p=u.getViewport(),f=m??p.width*.1;u.world.gotoRegion({x:p.x-f,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeRight:m=>{if(!u)return;let p=u.getViewport(),f=m??p.width*.1;u.world.gotoRegion({x:p.x+f,y:p.y,width:p.width,height:p.height,nudge:!0})},nudgeUp:m=>{if(!u)return;let p=u.getViewport(),f=m??p.height*.1;u.world.gotoRegion({x:p.x,y:p.y-f,width:p.width,height:p.height,nudge:!0})},nudgeDown:m=>{if(!u)return;let p=u.getViewport(),f=m??p.height*.1;u.world.gotoRegion({x:p.x,y:p.y+f,width:p.width,height:p.height,nudge:!0})},zoomIn:()=>{u?.world?.zoomIn()},zoomOut:()=>{u?.world?.zoomOut()},goHome:()=>{u?.world?.goHome()},goToRegion:m=>{u?.world?.gotoRegion(m)},getRuntime:()=>u}}),r=s.getState().polygons;return e.on("atlas.annotation-request",()=>{r.clock.start((a,l,u)=>{e.emit("atlas.polygon-render",{state:a,slowState:l,dt:u})},a=>{typeof a=="object"?s.setState({polygonState:a}):s.setState(l=>({polygonState:a(l.polygonState)}))})}),e.on("atlas.annotation-completed",()=>{r.clock.stop()}),e.on("atlas.request-cancelled",()=>{r.clock.stop()}),s}import{jsx as Kn}from"react/jsx-runtime";var Ae=ji(null);function D(){return Yn(Ae)}var Lt={};function Qn(e="atlas"){return Lt[e]?.getState()}function He({children:e,name:t="atlas",existing:n,atlasStoreConfig:o}){let i=Un(),s=Yn(Ae),r=Ki(()=>n||s||Gn({events:i,...o||{}}),[i,n,s]),a=Yi(r,l=>l.mode);return Gi(()=>{let l=t;return l&&(Lt[l]=r),()=>{l&&delete Lt[l]}},[r,t]),Kn(Ae.Provider,{value:r,children:Kn(_i.Provider,{value:a||"explore",children:e})})}import{mergeStyles as et}from"@atlas-viewer/atlas";import{useMemo as fa}from"react";import{createContext as Qi,useContext as Xi,useMemo as Zi}from"react";import{jsx as Ji}from"react/jsx-runtime";function Xn(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var zt=Qi(Xn());zt.displayName="AnnotationStyle";function Zn(){return Xi(zt)}function nm({theme:e,children:t}){let n=Zi(()=>e||Xn(),[e]);return Ji(zt.Provider,{value:n,children:t})}import{expandTarget as ia}from"@iiif/helpers/annotation-targets";import{useMemo as aa}from"react";import{useEffect as ea,useMemo as ta,useState as na}from"react";import{create as oa}from"zustand";var ra=oa()((e,t)=>{let n=new Map,o=()=>Math.random().toString(36).substring(2,15),i=s=>{let r=n.get(s);if(r)return r;let a=o();return n.set(s,a),a};return{stylesheets:{},loading:[],errors:[],async parseStylesheet(s){let{loadStylesheet:r,setStylesheet:a}=t();if(!s)return null;if(typeof s=="string")return s.startsWith("http")?{id:s,type:"CssStylesheet",value:await r(s)}:{id:a(s),type:"CssStylesheet",value:s};if(s.type==="CssStylesheet"){let l=s.id;if("value"in s){let u=Array.isArray(s.value)?s.value.join(`
2
- `):s.value;if(u)return{id:a(u,l),type:"CssStylesheet",value:u}}if("id"in s&&s.id){let u=await r(s.id);return{id:s.id,type:"CssStylesheet",value:u}}}return null},async loadStylesheet(s){if(t().loading.includes(s))return"";try{let a=await fetch(s);if(!a.ok)throw new Error(`Failed to load stylesheet from ${s}`);let l=await a.text();return e(u=>({stylesheets:{...u.stylesheets,[s]:l}})),l}catch(a){return e(l=>({errors:[...l.errors,{url:s,error:a}]})),""}},setStylesheet(s,r){let a=r||i(s);return e(l=>({stylesheets:{...l.stylesheets,[a]:s}})),a}}});function Jn(e){let[t,n]=na(""),{loading:o,errors:i,stylesheets:s,parseStylesheet:r}=ra();return ea(()=>{e&&r(e).then(l=>{l?.id&&n(l.id)})},[e,r]),[ta(()=>{let l={};return t&&s[t]&&(l[t]=s[t]),l},[t,s]),{id:t,stylesheets:s,loading:o,errors:i}]}function Ze(e={},t=[]){let{id:n,selector:o}=e,i=_(),s=M(),r=n||i.annotation,a=k(d=>r?d.iiif.entities.Annotation[r]:void 0,[r]),[l]=Jn(a?.stylesheet),u=k(d=>a&&a.body?a.body.map(c=>c?c.type==="SpecificResource"?{...c,source:s.get(c)}:c?d.iiif.entities[c.type][c.id]:null:null).filter(Boolean):[],[a]);return aa(()=>{if(!a)return;let d={...a,body:u,target:ia(a.target,{typeMap:s.getState().iiif.mapping,loadedStylesheets:l})};return o?o(d):d},[a,o,u,l,...t])}import{useMemo as sa}from"react";function w(e={},t=[]){let{id:n,selector:o}=e,i=_(),s=n||i.canvas,r=k(a=>s?a.iiif.entities.Canvas[s]:void 0,[s]);return sa(()=>{if(r)return o?o(r):r},[r,o,...t])}import{useMemo as eo}from"react";import{createEventsHelper as la}from"@iiif/helpers/events";function Je(e,t){let n=M(),o=eo(()=>la(n),[n]),i=k(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return eo(()=>e?o.getListenersAsProps(e,t):{},[i,e,n,t])}import{useMemo as ua}from"react";import{createStylesHelper as ca}from"@iiif/helpers/styles";function Pe(e,t){let n=M(),o=ua(()=>ca(n),[n]);return k(()=>{if(!e)return null;let i=o.getAppliedStyles(e.id);return i?t?i[t]:i:void 0},[e,t])}import{useCallback as pa}from"react";import{HTMLPortal as da,useResizeWorldItem as ma}from"@atlas-viewer/atlas";import{useMemo as oe}from"react";import{Fragment as Ot,jsx as G,jsxs as Bt}from"react/jsx-runtime";function to({handleSize:e,resizable:t,onSave:n,children:o,maintainAspectRatio:i,disableCardinalControls:s,aspectRatio:r,...a}){let l=typeof e>"u"?i?12:8:e,{portalRef:u,mode:d,mouseEvent:c,isEditing:m}=ma({x:a.x||0,y:a.y||0,width:a.width,height:a.height,aspectRatio:r,maintainAspectRatio:i},n),p=oe(()=>c("translate"),[c]),f=oe(()=>c("east"),[c]),v=oe(()=>c("west"),[c]),h=oe(()=>c("south"),[c]),S=oe(()=>c("north"),[c]),b=oe(()=>c("south-east"),[c]),y=oe(()=>c("south-west"),[c]),g=oe(()=>c("north-east"),[c]),x=oe(()=>c("north-west"),[c]),C=d==="sketch",R={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",outline:"2px solid rgba(155,155,155,.7)",borderRadius:i||s?"50%":2,position:"absolute",background:"#fff",pointerEvents:m?"none":C?"initial":"none"};return G(Ot,{children:Bt("world-object",{...a,children:[o,C&&t?G(da,{ref:u,target:{x:0,y:0,height:a.height,width:a.width},relative:!0,interactive:!1,children:C&&t?Bt(Ot,{children:[G("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:m?"none":C?"initial":"none"}}),i?null:Bt(Ot,{children:[G("div",{title:"east",onTouchStart:f,onMouseDown:f,style:{...R,cursor:"e-resize",height:l*2,width:l,right:0,top:"50%",opacity:s?0:1,transform:`translate(${l/2}px, -${l}px)`}}),G("div",{title:"west",onMouseDown:v,style:{...R,cursor:"w-resize",position:"absolute",height:l*2,width:l,left:0,top:"50%",opacity:s?0:1,transform:`translate(-${l/2}px, -${l}px)`}}),G("div",{title:"north",onMouseDown:S,style:{...R,cursor:"n-resize",position:"absolute",height:l,width:l*2,left:"50%",top:0,opacity:s?0:1,transform:`translate(-${l}px, -${l/2}px)`}}),G("div",{title:"south",onMouseDown:h,style:{...R,cursor:"s-resize",position:"absolute",height:l,width:l*2,left:"50%",bottom:0,opacity:s?0:1,transform:`translate(-${l}px, ${l/2}px)`}})]}),G("div",{title:"north-east",onMouseDown:g,style:{...R,cursor:"ne-resize",position:"absolute",height:l,width:l,right:0,top:0,transform:`translate(${l/2}px, -${l/2}px)`}}),G("div",{title:"south-east",onMouseDown:b,style:{...R,cursor:"se-resize",position:"absolute",height:l,width:l,bottom:0,right:0,transform:`translate(${l/2}px, ${l/2}px)`}}),G("div",{title:"south-west",onMouseDown:y,style:{...R,cursor:"sw-resize",position:"absolute",height:l,width:l,bottom:0,left:0,transform:`translate(-${l/2}px, ${l/2}px)`}}),G("div",{title:"north-west",onMouseDown:x,style:{...R,cursor:"nw-resize",position:"absolute",height:l,width:l,top:0,left:0,transform:`translate(-${l/2}px, -${l/2}px)`}})]}):null}):null]})})}import{jsx as no}from"react/jsx-runtime";function oo({id:e,interactive:t,region:n,onClick:o,onHover:i,onSave:s,aspectRatio:r,maintainAspectRatio:a,disableCardinalControls:l,isEditing:u,style:d={backgroundColor:"rgba(0,0,0,.5)"}}){let c=pa(m=>{u&&s?.({id:n.id,x:n.x,y:n.y,height:n.height,width:n.width,...m})},[s,u,n.id,n.x,n.y,n.height,n.width]);return no(to,{id:e,x:n.x,y:n.y,width:n.width,aspectRatio:r,height:n.height,resizable:u,onSave:c,maintainAspectRatio:a,disableCardinalControls:l,children:no("box",{interactive:t,onClick:m=>{m.preventDefault(),m.stopPropagation(),o?.(n)},relativeStyle:!0,onMouseEnter:()=>{i?.(n)},target:{x:0,y:0,width:n.width,height:n.height},style:d})})}import{jsx as ga}from"react/jsx-runtime";var we=({id:e,style:t,className:n,interactive:o,targetId:i,ignoreTargetId:s})=>{let r=Ze({id:e}),a=Pe(r,"atlas"),l=Pe(r,"html"),u=Je(r,["atlas"]),d=w(),c=Zn(),m=fa(()=>et(et(et(et(t,a),r?.motivation?.includes("highlighting")?c.highlighted:c.default),r?.target?.selector?.boxStyle||{})),[t,a,c,r?.motivation,r?.target]),p=i||d?.id;return d&&r&&r.target&&r.target.selector&&(r.target.selector.type==="BoxSelector"||r.target.selector.type==="SvgSelector")&&r.target.source&&(s?!0:r.target.source.id===p||r.target.source===p)?ga(oo,{id:r.id,isEditing:!0,region:r.target.selector.spatial,style:m,className:l?.className||n,interactive:!!(l?.href||o),href:l?.href||null,title:l?.title||null,hrefTarget:l?.target||null,onClick:()=>{},...u}):null};import{Fragment as ya}from"react";import{useMemo as ha}from"react";function ro(e={},t=[]){let{id:n,selector:o}=e,i=_(),s=n||i.annotationPage,r=k(a=>s?a.iiif.entities.AnnotationPage[s]:void 0,[s]);return ha(()=>{if(r)return o?o(r):r},[r,...t])}import{jsx as io}from"react/jsx-runtime";var ce=({className:e,page:t,targetId:n,ignoreTargetId:o})=>{let i=ro({id:t.id})||t,s=Pe(i,"atlas"),r=Pe(i,"html");return k(a=>i.id?a.iiif.entities.AnnotationPage[i.id]:null,[]),io(ya,{children:i.items?.map(a=>io(we,{id:a.id,style:s,className:r?.className||e,targetId:n,ignoreTargetId:o},a.id))})};import{createContext as $t,useContext as Dt}from"react";import{jsx as Ht}from"react/jsx-runtime";var ao=$t(null),so=$t(null),lo=$t(null);function ap(){let e=Dt(ao);if(!e)throw new Error("Ctx not found");return e}function sp(){let e=Dt(so);if(!e)throw new Error("Ctx not found");return e}function lp(){let e=Dt(lo);if(!e)throw new Error("Ctx not found");return e}function tt({actions:e,state:t,children:n,currentTime:o,progress:i,element:s}){return Ht(lo.Provider,{value:{currentTime:o,progress:i,element:s},children:Ht(so.Provider,{value:e,children:Ht(ao.Provider,{value:t,children:n})})})}import{useMemo as va}from"react";import{expandTarget as Sa}from"@iiif/helpers";function nt(){let e=O(),t=w();return va(()=>{if(!e||!t||!e.start)return null;let n=Sa(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}import{useCallback as X,useEffect as Ft,useReducer as xa,useRef as ot}from"react";function uo(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function ba(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 qt(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Te(e){let[t,n]=xa(ba,uo(e.duration));Ft(()=>{n({type:"RESET",state:uo(e.duration)})},[e.duration]);let o=ot(null),i=ot(null),s=ot(null),r=ot(!1),a=X(()=>{i.current&&o.current&&(i.current.innerHTML=qt(o.current.currentTime),s.current&&(s.current.style.width=`${o.current.currentTime/e.duration*100}%`),r.current!==o.current.muted&&(r.current=o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=X(()=>{o.current&&(n({type:"PLAY_REQUESTED"}),o.current.play().then(()=>{n({type:"PLAY"})}),a())},[a]),u=X(()=>{o.current&&(o.current.duration>0&&o.current.paused?l():d())},[a]),d=X(()=>{o.current&&(o.current.pause(),n({type:"PAUSE"}),a())},[a]),c=X(()=>{o.current&&(o.current.muted=!o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),m=X(()=>{o.current&&(o.current.muted=!0,n({type:"MUTE"}))},[]),p=X(()=>{o.current&&(o.current.muted=!1,n({type:"UNMUTE"}))},[]),f=X(S=>{o.current&&(o.current.muted=!1,o.current.volume=S/100,n({type:"SET_VOLUME",volume:S}))},[]),v=X(S=>{o.current&&(o.current.currentTime=Math.max(0,Math.min(S*e.duration,e.duration)),a())},[]),h=X(S=>{if(o.current){let b=typeof S=="function"?S(o.current.currentTime):S;o.current.currentTime=Math.max(0,Math.min(b,e.duration)),a()}},[]);return Ft(()=>{let S=setInterval(()=>{a()},350);return()=>clearInterval(S)},[a,e.duration]),Ft(()=>{let S=()=>{n({type:"FINISHED"})},b=o.current;return b?.addEventListener("ended",S),()=>b?.removeEventListener("ended",S)},[]),[{element:o,currentTime:i,progress:s},t,{play:l,pause:d,playPause:u,mute:m,unmute:p,toggleMute:c,setVolume:f,setDurationPercent:v,setTime:h}]}import{createContext as co,useContext as Ca,useEffect as Ra}from"react";var Wt=co(()=>{}),Ut=co(()=>{});function H(e,t,n,o,i=[]){let s=Ca(e==="portal"?Ut:Wt);Ra(()=>(e!=="none"&&s(t,n,o),()=>{s(t,null)}),[t,e,s,...i])}import{jsx as Aa,jsxs as Pa}from"react/jsx-runtime";function _t({media:e,startTime:t,children:n}){let[{element:o,currentTime:i,progress:s},r,a]=Te({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return Pa(tt,{state:r,actions:a,currentTime:i,progress:s,element:o,children:[Aa("audio",{ref:o,src:l}),n]},e.url)}function rt({media:e,mediaControlsDeps:t,audioCopmonent:n=_t,children:o}){let i=nt();return H("portal","audio",n,{media:e,startTime:i?i.startTime:null,children:o},[e,i,...t||[]]),null}import{createContext as wa,useContext as Ta}from"react";var de=wa(null);de.displayName="Strategy";function E(){let e=Ta(de);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{Fragment as Ia,jsx as jt,jsxs as Ma}from"react/jsx-runtime";function Gt({model:e}){return Ma(Ia,{children:[jt("style",{children:`
3
- .model-container {
4
- position: absolute;
5
- top: 0;
6
- bottom: 0;
7
- left: 0;
8
- right: 0;
9
- background: #000;
10
- z-index: 13;
11
- display: flex;
12
- justify-content: center;
13
- pointer-events: visible;
14
- }
15
- `}),jt("div",{className:"model-container",children:jt("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function it({model:e,name:t}){return H("overlay",`model-${t}`,Gt,{model:e},[e]),null}import{jsx as ka}from"react/jsx-runtime";function mo(){let{strategy:e}=E();return e.type!=="3d-model"?null:ka(it,{model:e.model})}import{createContext as Ea,useContext as Va}from"react";var at=Ea(null);at.displayName="Controls";function F(){let e=Va(at);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{Fragment as Na,jsx as st,jsxs as La}from"react/jsx-runtime";function po(){let{strategy:e}=E(),{renderViewerControls:t,viewControlsDeps:n}=F(),o=w(),i=o?.accompanyingCanvas,s=o?.placeholderCanvas;return La(Na,{children:[e.type==="media"&&e.media.type==="Sound"&&i?st(ne,{canvas:i.id,children:st(me,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&s&&!i?st(ne,{canvas:s.id,children:st(me,{renderViewerControls:t,viewControlsDeps:n})}):null]})}import{createContext as $a,useContext as Da,useMemo as Fa}from"react";import{useCallback as go,useLayoutEffect as Oa,useMemo as Ba,useRef as Ha}from"react";import{entityActions as Kt}from"@iiif/helpers/vault/actions";import{useMemo as za}from"react";function fo(){let t=M().getStore();return za(()=>n=>t.dispatch(n),[t])}function ho(e){return typeof e!="string"&&e&&e.bindToVault}function yo(){let e=M(),t=Ha([]),n=fo(),o=Ba(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);Oa(()=>{let a={id:o,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Kt.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[o]);let i=k(a=>o&&a.iiif.entities.AnnotationPage[o]||null,[o]),s=go((a,l)=>{if(o){if(ho(a)){let c=a;c.__vault||c.bindToVault(e),a=typeof c.source=="string"?c.source:c.source.id,t.current[a]=c}else typeof a!="string"&&(a=a.id);let u=e.get({id:o,type:"AnnotationPage"}),d=e.get({id:a,type:"Annotation"});u&&d&&(u.items.find(c=>c.id===d.id)||n(Kt.addReference({id:o,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:l})))}},[o]),r=go(a=>{o&&(ho(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),t.current[a]&&t.current[a].beforeRemove(),e.get({id:o,type:"AnnotationPage"})&&n(Kt.removeReference({id:o,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[o]);return[i,{addAnnotation:s,removeAnnotation:r}]}import{jsx as qa}from"react/jsx-runtime";var vo=$a(null);function So(){let e=Da(vo);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function xo({children:e}){let[t,{addAnnotation:n,removeAnnotation:o}]=yo();return qa(vo.Provider,{value:Fa(()=>({fullPage:t,addAnnotation:n,removeAnnotation:o}),[t]),children:e})}import{Fragment as Wa,jsx as bo,jsxs as Ua}from"react/jsx-runtime";function Co({children:e}){let{strategy:t}=E(),[n]=So();return t.type!=="images"?null:Ua(Wa,{children:[n?bo(ce,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(o=>bo(ce,{page:o},o.id)):null,e]})}import{useEffect as Qa,useMemo as Xa,useRef as Za,useState as Ja}from"react";import{useEffect as _a}from"react";var Ro=(e,t=[])=>{let n=M();_a(()=>{e(n)},[n,...t])};import ja,{useContext as Ga}from"react";import{ImageServiceLoader as Ka}from"@iiif/helpers/image-service";var Ya=ja.createContext(new Ka);function Ao(){return Ga(Ya)}import{createThumbnailHelper as es}from"@iiif/helpers/thumbnail";import{getId as ts,imageServiceRequestToString as ns,parseImageServiceRequest as os}from"@iiif/parser/image-3";function rs(e,t){try{let n=ts(e);if(!n)return;let o=os(n),i=o.type==="image"?o.region.w:void 0,s=o.type==="image"?o.region.h:void 0,r=i||e.width,a=s||e.height,l=t.width||t.maxWidth,u=t.height||t.maxHeight;if(o.type!=="image"||o.region.full||o.region.square)return;(l||u)&&(o.size={max:!1,upscaled:!1,confined:!!(l&&u),width:l,height:u,version:3});let d=r&&a&&(l||u)?Math.min(l?l/r:1/0,u?u/a:1/0):void 0;return{id:ns(o),type:"fixed",width:r&&d?Math.round(r*d):l||r||e.width||0,height:a&&d?Math.round(a*d):u||a||e.height||0}}catch{return}}function Ie(e,t,{canvasId:n,manifestId:o}={}){let i=M(),s=Ao(),r=Xa(()=>es(i,{imageServiceLoader:s}),[i,s]),[a,l]=Ja(),u=O(o?{id:o}:void 0),d=w(n?{id:n}:void 0),c=d||u,m=Za(!1);if(Qa(()=>(m.current=!1,()=>{m.current=!0}),[]),!c)throw new Error("Must be called under a manifest or canvas context.");return Ro(p=>{if(c.type==="Canvas"&&c.thumbnail?.length){let f=rs(p.get(c.thumbnail[0]),e);if(f&&!m.current){l(f);return}}r.getBestThumbnailAtSize(c,e,t).then(f=>{f.best&&!m.current&&l(f.best)})},[c,e.width,e.height,e.maxWidth,e.maxHeight,e.minWidth,e.minHeight,e.allowUnsafe,e.unsafeImageService,e.preferFixedSize,t]),a}import{jsx as Po}from"react/jsx-runtime";function Me({x:e=0,y:t=0}){let n=w(),o=Ie({maxWidth:256,maxHeight:256});return!n||!o||o.type!=="fixed"?null:Po("world-object",{height:n.height,width:n.width,x:e,y:t,children:Po("world-image",{uri:o.id,target:{x:0,y:0,width:n.width,height:n.height},display:o.width&&o.height?{width:o.width,height:o.height}:void 0,crop:void 0})})}import{jsx as is,jsxs as as}from"react/jsx-runtime";function wo({as:e}){let{strategy:t}=E(),{renderMediaControls:n,mediaControlsDeps:o}=F();return t.type!=="media"||t.media.type!=="Sound"?null:as(rt,{media:t.media,mediaControlsDeps:o,audioCopmonent:e,children:[is(Me,{}),n?n(t):null]},t.media.url)}import{HTMLPortal as Go}from"@atlas-viewer/atlas";import{useLayoutEffect as Ts,useMemo as Is}from"react";import{useStore as Ko}from"zustand";import{createContext as ss,useContext as ls}from"react";import{useStore as us}from"zustand";import{jsx as cs}from"react/jsx-runtime";var Yt=ss(null);Yt.displayName="ComplexTimeline";function To({children:e,store:t}){return cs(Yt.Provider,{value:t,children:e})}function Df(e){let t=ls(Yt);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return us(t,e)}import ds from"mitt";import{createStore as ms}from"zustand/vanilla";function Io({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:o}){if(o<=n){let i=t.findIndex(a=>a.time>n);if(i===-1)return[e,[]];let s={},r=t.slice(e,i);for(let a of r)a.type==="enter"&&(s[a.id]=a),a.type==="exit"&&(s[a.id]?delete s[a.id]:s[a.id]=a);return[i,Object.values(s)]}return[e,[]]}function Mo({complexTimeline:e,startTime:t=0}){let n=ds(),o={},i={progress:null,currentTime:null},s=0,r=null,a=0,l=null;function u(){let b=h.getState().visibleElements,y=o,g=[],x=Object.keys(y);for(let C of x){let R=y[C],P=b[C];R&&P&&g.push(R)}return g}function d(){return Object.keys(o).map(b=>o[b])}function c(S){i.currentTime&&(i.currentTime.innerHTML=qt(S),i.progress&&(i.progress.style.width=`${S/e.duration*100}%`))}let m=()=>{let S=h.getState(),b=S.currentPrime;if(!b)return;let y=o,g=S.visibleElements,x=Object.keys(y);for(let C of x){let R=y[C],P=g[C];if(R&&C!==b.id&&P){let L=a-P.time*1e3;Math.abs(a-P.time*1e3-R.currentTime*1e3)>300&&(R.currentTime=L/1e3)}}},p=(S=0)=>{let b=S-s,y=h.getState();if(y.isPlaying){let g=y.currentPrime;if(g){let P=o[g.id];P&&(P.paused?a+=b:a=(g.time+P.currentTime)*1e3)}else a+=b;let x=a/1e3;if(x>y.duration){h.getState().setTime(0),h.setState({isPlaying:!1}),f(),c(0);return}c(x);let[C,R]=Io({currentTime:x,currentKeyFrameIndex:y.nextKeyframeIndex,keyframes:y.complexTimeline.keyframes,targetTime:x});R.length&&y.applyKeyframes(C,R)}s=S,r=requestAnimationFrame(p)},f=()=>{r&&cancelAnimationFrame(r)},v=(S,b)=>{},h=ms((S,b)=>({complexTimeline:e,elements:{},visibleElements:{},isBuffering:!1,bufferMap:{},isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,isReady:!1,volume:100,duration:e.duration,clockStartRequests:0,clockStartTime:0,primeTime:0,currentPrime:null,clockRunning:!1,nextKeyframeIndex:0,startClock:()=>{b().clockRunning||(p(),l=setInterval(m,500)),S({clockRunning:!0,clockStartRequests:b().clockStartRequests+1})},applyKeyframes(y,g){let x=b(),C={...x.visibleElements},R=x.currentPrime;for(let P of g)P.type==="enter"&&(C[P.id]=P,n.emit("complex-timeline.enter",{id:P.id})),P.type==="exit"&&(C[P.id]=null,n.emit("complex-timeline.exit",{id:P.id})),P.isPrime&&(R=P);S({nextKeyframeIndex:y,visibleElements:C,currentPrime:R})},stopClock:()=>{let y=b().clockStartRequests;if(y!==0){if(y===1){f(),l&&clearInterval(l),S({clockRunning:!1,clockStartRequests:0});return}S({clockStartRequests:y-1})}},setElement:(y,g)=>{o[y]=g;let x=Object.keys(o),C=b().complexTimeline;v(g,y),C.items.filter(P=>P.type!=="Image"&&P.type!=="Text").every(P=>x.includes(P.annotationId))&&!b().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:C}),S({isReady:!0}))},removeElement:y=>{delete o[y]},mute(){for(let y of d())y.muted=!0;S({isMuted:!0})},unmute(){for(let y of d())y.muted=!1;S({isMuted:!1})},play(){if(!b().isPlaying){for(let g of u())g.play();S({isPlaying:!0})}},pause(){if(b().isPlaying){for(let g of u())g.pause();S({isPlaying:!1})}},playPause(){let y=b();y.isPlaying?y.pause():y.play()},setDurationPercent(y){let x=b().duration*y;b().setTime(x)},setTime(y){let g=b(),x=a/1e3,C=typeof y=="function"?y(x):y,R=g.nextKeyframeIndex;if(x>C){S({visibleElements:{},currentPrime:null});let A=Object.keys(g.visibleElements);for(let I of A)n.emit("complex-timeline.exit",{id:I});x=0,R=0}let[P,L]=Io({currentTime:x,currentKeyFrameIndex:R,keyframes:g.complexTimeline.keyframes,targetTime:C});g.applyKeyframes(P,L),a=C*1e3;let U=h.getState().visibleElements,te=o,T=Object.keys(U);for(let A of T){let I=U[A];if(I){let z=te[A];z&&(z.currentTime=(a-I.time*1e3)/1e3)}}c(C)},setVolume(y){for(let g of d())g.volume=Math.min(1,Math.max(0,y/100));S({volume:y})},toggleMute(){let y=b();y.isMuted?(y.unmute(),S({isMuted:!1})):(y.mute(),S({isMuted:!0}))},clearProgressElement(){i.progress=null},setProgressElement(y){i.progress=y},setCurrentTimeElement(y){i.currentTime=y},clearCurrentTimeElement(){i.currentTime=null}}));return n.on("complex-timeline.enter",S=>{let b=h.getState(),y=S.id,g=o[y];g&&b.isPlaying&&g.play()}),n.on("complex-timeline.exit",S=>{let b=h.getState(),y=S.id,g=o[y];g&&(g.currentTime=0,g.pause())}),h.getState().setTime(t),{store:h,emitter:n}}import{Fragment as Uo,useMemo as _o}from"react";import{useEffect as ko,useRef as Fe,useState as fs}from"react";var ps=[.6,.02,0,.75],Gf=16,$e={linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1],"ease-in-cubic":ps,"ease-out-cubic":[.215,.61,.355,1]};function Kf(e,t,n){let o=Math.max(0,Math.min(1,n));return{x:e.x+(t.x-e.x)*o,y:e.y+(t.y-e.y)*o,width:e.width+(t.width-e.width)*o,height:e.height+(t.height-e.height)*o}}function Yf(e,t){let n=[],o=e;for(let i of t)n.push({from:o,to:i}),o=i;return n}function De([e,t,n,o]){let i=3*e,s=3*(n-e)-i,r=1-i-s,a=3*t,l=3*(o-t)-a,u=1-a-l;function d(f){return((r*f+s)*f+i)*f}function c(f){return((u*f+l)*f+a)*f}function m(f){return(3*r*f+2*s)*f+i}function p(f,v=1e-6){let h=f;for(let y=0;y<8;y++){let g=d(h)-f;if(Math.abs(g)<v)return h;let x=m(h);if(Math.abs(x)<1e-6)break;h=h-g/x}let S=0,b=1;for(h=f;S<b;){let y=d(h);if(Math.abs(y-f)<v)return h;f>y?S=h:b=h,h=(b-S)*.5+S}return h}return f=>{if(f<=0)return 0;if(f>=1)return 1;let v=p(f);return c(v)}}function Qf(e,t){if(!t||t.length===0)return{index:-1,t:0};if(Number.isNaN(e)||!isFinite(e))return{index:-1,t:0};if(e<0)return{index:-1,t:0};if(e>=t.length)return{index:t.length,t:0};let n=Math.floor(e),o=e-n;return{index:n,t:o}}function Eo(e,{duration:t=300,easing:n}={}){let o=Fe(De($e["ease-in-out"]));ko(()=>{if(!n)o.current=De($e["ease-in-out"]);else if(typeof n=="function")o.current=n;else if(Array.isArray(n))o.current=De(n);else{let d=$e[n];o.current=De(d??$e["ease-in-out"])}},[n]);let[i,s]=fs(e),r=Fe(e??0),a=Fe(null),l=Fe(null),u=Fe(e);return ko(()=>{if(e===void 0){s(void 0);return}let d=u.current;if(u.current=e,d===void 0){r.current=e,s(e);return}if(d===e&&i===e)return;l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),a.current=null;let c=r.current,m=(((e||0)-c)%360+540)%360-180,p=c+m;function f(v){a.current===null&&(a.current=v);let h=v-a.current,S=Math.min(h/t,1),b=o.current(S),y=c+(p-c)*b;r.current=y,s(y),S<1?l.current=requestAnimationFrame(f):(r.current=((e||0)%360+360)%360,s(r.current),l.current=null)}return l.current=requestAnimationFrame(f),()=>{l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)}},[e,t]),i}import{HTMLPortal as Cs}from"@atlas-viewer/atlas";import{getId as Rs}from"@iiif/parser/image-3";import gs,{useContext as hs}from"react";import{imageServices as ys}from"@iiif/helpers/image-service";import{useStore as lt}from"zustand";var Vo=gs.createContext(ys.store);Vo.displayName="ImageServicesHelper";function ut(){return hs(Vo)}function No(e){let t=ut();return lt(t,({loaded:n})=>n[e])}function ct(){let e=ut();return lt(e,({loadServiceSync:t})=>t)}function Lo(){let e=ut();return lt(e,({loaded:t})=>t)}function ig(){let e=ut();return lt(e,({loadService:t})=>t)}import ke,{useMemo as Qt}from"react";import{jsx as Z}from"react/jsx-runtime";var Oo=ke.createContext("en"),Bo=ke.createContext({}),Ho=ke.createContext(null);function ug(e){return Z(Bo.Provider,{value:e.translations,children:e.children})}function cg(e){return Z(Oo.Provider,{value:e.language,children:e.children})}function dg(e){return Z(Ho.Provider,{value:e.convert,children:e.children})}function $o(){return ke.useContext(Ho)}function Xt(){return ke.useContext(Oo)}function Do(){return ke.useContext(Bo)}function zo(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function vs({as:e,language:t,children:n,viewingDirection:o,...i}){let s=Xt();return Qt(()=>zo(s)===zo(t),[s,t])?e?Z(e,{...i,children:n}):Z("span",{...i,children:n}):e?Z(e,{...i,lang:t,dir:o,children:n}):Z("span",{...i,lang:t,dir:o,children:n})}function Fo(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let o=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(o&&t.indexOf(o)!==-1)return o;for(let i of n)if(t.indexOf(i)!==-1)return i;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var Ss=(e,t=[])=>{let n=Xt();return Qt(()=>{let o=e();return Fo(n,o,[])},[n,...t])};function pe(e,t,n,o){return t?n?n(e[t]||t,o||"none"):e[t]||t:""}function xs(e,t,n=`
16
- `,o={}){let i=$o(),s=Ss(()=>Object.keys(e||{}),[e]);return[Qt(()=>{if(!e)return pe(o,t,i)||"";if(typeof e=="string")return pe(o,e,i);let r=s?e[s]:void 0;return r?typeof r=="string"?r:r.map(a=>pe(o,a,i,s)).join(n):""},[s,t,e]),s]}function mg(){let e=Xt(),t=Do(),n=$o();return function(i,s="",r=`
17
- `,a=t){let l=Object.keys(i||{}),u=Fo(e,l,[]);if(!i)return pe(a,s,n)||"";if(typeof i=="string")return pe(a,i,n);let d=u?i[u]:void 0;return d?typeof d=="string"?pe(a,d,n,u):d.map(c=>pe(a,c,n,u)).join(typeof r<"u"?r:`
18
- `):""}}function qe({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:i,...s}){let r=Do(),[a,l]=xs(o,t,i,r);return l?Z(vs,{...s,as:e,language:l,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a}):e?Z(e,{...s,children:a}):Z("span",{...s,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a})}import{isImageServiceLevel as qo}from"@iiif/parser/image-3";import{useMemo as Zt}from"react";import{jsx as dt,jsxs as bs}from"react/jsx-runtime";var Jt=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],i=e.enableThumbnail,s=e.enableSizes,r=Zt(()=>{let u=e.tiles.imageService.id||e.tiles.imageService["@id"];return u?.endsWith("/info.json")?u.slice(0,-1*10):u},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),a=Zt(()=>{let u=e.tiles.imageService.tiles||[];if(!u.length){let d=e.width,c=[1],m=1;for(;2**m<d;)m=m*2,c.push(m);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&qo(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:qo(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:[]}return u},[e.tiles.imageService,e.width]),l=Zt(()=>{let u=e.tiles.imageService;return(u?u["@context"]?Array.isArray(u["@context"])?u["@context"]:[u["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return dt("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:bs("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[i&&e.tiles.thumbnail?dt("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,s&&o.map((u,d)=>dt("world-image",{uri:`${r}/full/${u.width},${l?u.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:u.width,height:u.height},crop:e.crop},d)),a.map(u=>(u.scaleFactors||[]).map(d=>dt("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:u,scaleFactor:d,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${d}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};import{jsx as re,jsxs as Ps}from"react/jsx-runtime";function As({resource:e,heading:t,note:n,extra:o}){return o?re(Cs,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:re("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:Ps("div",{children:[re(qe,{children:t||"Not authorised"}),n&&re("p",{children:re(qe,{children:n})}),re("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Wo({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:i,renderOptions:s,rotation:r,manualRotation:a}){let l=Bn(),u=Rs(e.service),d=No(u),c=ct(),m=d?.service;c(e.service,e);let p=m&&d?.status==="done",f=(m?.preferredFormats||[])[0],v=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(p===!1)return null;if(!l){let h=e.service,S=h.width||e.width||0,b=h.height||e.height||0,y=0,g=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||b,R=x,P=C;return(r===90||r===270)&&!a&&([x,C]=[C,x],y=(R-x)/2,g=(P-C)/2),a&&([x,C]=[C,x]),re(Jt,{enableThumbnail:i,renderOptions:s,rotation:r,tiles:{id:h.id||h["@id"]||"unknown",height:b,width:S,imageService:h,thumbnail:v},enableSizes:o,x:y,y:g,format:f,width:x,height:C,crop:n})}return re(Hn,{resource:e.service,errorComponent:As,extra:e,children:h=>{let S=h.width||e.width||0,b=h.height||e.height||0,y=0,g=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||b,R=x,P=C;return(r===90||r===270)&&!a&&([x,C]=[C,x],y=(R-x)/2,g=(P-C)/2),re(Jt,{enableThumbnail:i,renderOptions:s,tiles:{id:h.id||h["@id"]||"unknown",height:b,width:S,imageService:h,thumbnail:v},rotation:r,format:f,enableSizes:o,x:y,y:g,width:x,height:C,crop:n})}},e.id)}import{jsx as en,jsxs as tn}from"react/jsx-runtime";function Ee({id:e,image:t,thumbnail:n,isStatic:o,x:i=0,y:s=0,children:r,selector:a,onClick:l,rotation:u,enableSizes:d,enableAnnotations:c}){let m=_o(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]),p=_o(()=>{if(typeof t.rotation<"u")return t.rotation;if(!t.annotation)return 0;let C=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(C&&C.selector?.type==="ImageApiSelector")return Number(C.selector.rotation)},[t]),f=Eo(u),v=!!t.service,h=i+t.target.spatial.x,S=s+t.target.spatial.y,b=t.target.spatial.width,y=t.target.spatial.height,g=t.target.spatial.width,x=t.target.spatial.height;return(p===90||p===270)&&([g,x]=[x,g],v||([b,y]=[y,b],h+=(t.target.spatial.width-b)/2,S+=(t.target.spatial.height-y)/2)),tn("world-object",{x:h,y:S,width:b,height:y,onClick:l,rotation:t.service?void 0:typeof f<"u"?f:p,children:[t.service?tn(Uo,{children:[en(Wo,{image:t,thumbnail:n,crop:m,enableSizes:d,rotation:typeof f<"u"?f:p,manualRotation:typeof u<"u"}),r]},"service"):tn(Uo,{children:[en("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:g,height:x},display:g&&x?{width:g,height:x}:void 0,crop:m}),r]},"no-service"),c&&t.annotationPages?t.annotationPages.map(C=>en(ce,{page:C,className:"image-service-annotation",ignoreTargetId:!0},C.id)):null]},e+(v?"server":"no-service"))}import{HTMLPortal as ws}from"@atlas-viewer/atlas";import{Fragment as jo,jsx as We}from"react/jsx-runtime";function mt({strategy:e,onClickPaintingAnnotation:t}){return We(jo,{children:e.items.map((n,o)=>We(jo,{children:We(ws,{onClick:t?i=>{i.stopPropagation(),t(n.annotationId,n,i)}:void 0,target:n.target?.spatial||void 0,children:We("div",{"data-textual-content":!0,children:We(qe,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}import{Fragment as Ms,jsx as fe,jsxs as ks}from"react/jsx-runtime";function Yo({strategy:e,children:t}){let{store:n}=Is(()=>Mo({complexTimeline:e}),[e]),o=Ko(n,r=>r.isReady),i=Ko(n,r=>r.visibleElements);function s(r){return a=>{a&&n.getState().setElement(r,a)}}return Ts(()=>{if(o){let{startClock:r,stopClock:a}=n.getState();return r(),()=>{a()}}},[e,o]),H("portal","custom-controls",To,{store:n,children:t},[o]),ks(Ms,{children:[e.items.map(r=>r.type!=="Image"||!i[r.annotationId]?null:fe(Ee,{image:r,id:r.annotationId},r.id)),e.items.map((r,a)=>r.type!=="Text"||!i[r.annotationId]?null:fe(mt,{strategy:{type:"textual-content",items:[r]}},a)),e.items.map((r,a)=>r.type!=="Video"||!r.target.spatial?null:fe(Go,{target:r.target.spatial,children:fe("video",{ref:s(r.annotationId),src:r.url,style:{height:"100%",width:"100%",opacity:i[r.annotationId]?1:0}})},a)),e.items.map((r,a)=>r.type!=="Sound"?null:fe(Go,{children:fe("audio",{ref:s(r.annotationId),src:r.url})},a)),e.highlights.map(({annotation:r})=>i[r.id]?fe(we,{id:r.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},r.id):null)]})}import{jsx as Es}from"react/jsx-runtime";function Qo(){let{strategy:e}=E(),{renderComplexTimelineControls:t}=F();return e.type!=="complex-timeline"?null:Es(Yo,{strategy:e,children:t?t(e):null})}import{jsx as Vs}from"react/jsx-runtime";function pt({style:e}){let t=w();return!t||!t.height||!t.width?null:Vs("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}import{jsx as Ns}from"react/jsx-runtime";function Xo({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=E();return n.type!=="empty"&&!t?null:Ns(pt,{style:e})}import{createContext as Ls,useContext as zs}from"react";var ge=Ls(null);function ft(){return zs(ge)}import{Fragment as Bs,jsx as Os,jsxs as Hs}from"react/jsx-runtime";function Zo({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,rotation:i,children:s}){let{strategy:r}=E(),{renderViewerControls:a,viewControlsDeps:l}=F(),u=w(),d=ft(),c=Ie({maxWidth:256,maxHeight:256});if(H(d&&r.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${u?.id}`,ge.Provider,a?{value:d||null,children:a(r)}:{},[u,d,r,...l||[]]),r.type!=="images")return null;let m=r.images.length===1?i:0;return Hs(Bs,{children:[r.images.map((p,f)=>Os(Ee,{isStatic:e,image:p,id:p.id,thumbnail:f===0?c:void 0,selector:p.selector,enableSizes:t,enableAnnotations:n,rotation:m,onClick:o?v=>{o(p.annotationId,p,v)}:void 0},p.id+f)),s]})}import{Fragment as Ds,jsx as $s,jsxs as Fs}from"react/jsx-runtime";function Jo({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=E(),{renderViewerControls:o,viewControlsDeps:i}=F(),s=ft(),r=w();return H(s&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${r?.id}`,ge.Provider,o?{value:s||null,children:o(n)}:{},[r,s,n,...i||[]]),n.type!=="textual-content"?null:Fs(Ds,{children:[$s(mt,{strategy:n,onClickPaintingAnnotation:e}),t]})}import{jsx as er,jsxs as qs}from"react/jsx-runtime";function nn({element:e,media:t,startTime:n,playPause:o,poster:i}){let s="div",r=n?`${t.url}#t=${n}`:t.url;return qs(s,{className:"video-container",part:"video-container",onClick:o,children:[er("style",{children:`
19
- .video-container {
20
- position: absolute;
21
- top: 0;
22
- bottom: 0;
23
- left: 0;
24
- right: 0;
25
- background: #000;
26
- z-index: 13;
27
- display: flex;
28
- justify-content: center;
29
- pointer-events: visible;
30
- }
31
- `}),er("video",{poster:i,ref:e,src:r,style:{width:"100%",objectFit:"contain"}})]})}function gt({media:e,mediaControlsDeps:t,children:n,videoComponent:o=nn,captions:i}){let s=w(),r=nt(),a=s&&s.placeholderCanvas&&s.placeholderCanvas.id||void 0,l=Ie({},!1,{canvasId:a}),[{element:u,currentTime:d,progress:c},m,p]=Te({duration:e.duration});return H("overlay","video-element",o,{element:u,media:e,playPause:p.playPause,poster:l?.id,canvas:s,startTime:r?r.startTime:null,captions:i},[l]),H("portal","custom-controls",tt,{state:m,actions:p,currentTime:d,progress:c,element:u,children:n},[d,m,e,...t||[]]),null}import{jsx as Ws,jsxs as Us}from"react/jsx-runtime";function tr({as:e}){let{strategy:t}=E(),{renderMediaControls:n,mediaControlsDeps:o}=F();return t.type!=="media"||t.media.type!=="Video"?null:Us(gt,{captions:t.captions,media:t.media,mediaControlsDeps:o,videoComponent:e,children:[Ws(Me,{}),n?n(t):null]},t.media.url)}import{useRef as _s}from"react";import{jsx as nr,jsxs as Ks}from"react/jsx-runtime";function js({element:e,media:t,playPause:n}){let o=_s(null);return t.youTubeId?Ks("div",{className:"video-container",part:"video-container",onClick:n,children:[nr("style",{children:`
32
- .video-container {
33
- position: absolute;
34
- top: 0;
35
- bottom: 0;
36
- left: 0;
37
- right: 0;
38
- background: #000;
39
- z-index: 13;
40
- display: flex;
41
- justify-content: center;
42
- pointer-events: visible;
43
- }
44
- .video-yt {
45
- border: none;
46
- width: 100%;
47
- object-fit: contain;
48
- }
49
- `}),nr("iframe",{title:`YouTube video: ${t.youTubeId}`,className:"video-yt",ref:o,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${Gs()}&modestbranding=1&rel=0`,referrerPolicy:"no-referrer compute-pressure",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Gs(){return typeof window<"u"?window.location.host:""}function or({media:e,mediaControlsDeps:t,children:n}){let[{element:o,currentTime:i,progress:s},r,a]=Te({duration:e.duration});return H("overlay","video-element",js,{element:o,media:e,playPause:a.playPause}),null}import{jsx as Ys,jsxs as Qs}from"react/jsx-runtime";function rr(){let{strategy:e}=E(),{renderMediaControls:t,mediaControlsDeps:n}=F();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:Qs(or,{media:e.media,mediaControlsDeps:n,children:[Ys(Me,{}),t?t(e):null]})}import{startTransition as Bl,useMemo as Hl}from"react";import{useStore as ee}from"zustand";import{HTMLPortal as tl,useAtlas as nl}from"@atlas-viewer/atlas";import{useCallback as an,useEffect as sn,useRef as ol}from"react";import{createSvgHelpers as Xs}from"polygon-editor";import{useEffect as Zs,useId as Js,useRef as J,useState as ar}from"react";import{useStore as on}from"zustand";function ir(e){let t=D(),n=on(t,s=>s.polygons),o=on(t,s=>s.polygonState),i=on(t,s=>s.polygon);return _n("atlas.polygon-render",({state:s,slowState:r,dt:a})=>{e(s,r,a)}),{currentShape:i,state:o,helper:n}}import{Fragment as rn,jsx as V,jsxs as Ve}from"react/jsx-runtime";var ie=Xs(),el={shapeFill:"#ffffff33",shapeStroke:"#000",lineStroke:"#000",ghostLineStroke:"#0F0",activeLineStroke:"#4D7EEA",boundingBoxDottedStroke:"#0007",boundingBoxStroke:"#fffA",controlFill:"#fff"};function sr(e){let{image:t}=e,n={...el,...e.theme||{}},o=`svg-editor-${Js().replace(/:/g,"")}`,i={dot:`${o}-dot`,newdot:`${o}-newdot`,selected:`${o}-selected`,resizer:`${o}-resizer`},s=J(),r=J(),a=J(),l=J(),u=J(),d=J(),c=J(),m=J(),p=J(),f=J(),[v,h]=ar(null),[S,b]=ar(!1),{helper:y,state:g,currentShape:x}=ir((T,A)=>{if(T.closestLineIndex,ie.updateTransitionBoundingBox(a.current,T,A),ie.updateBoundingBoxPolygon(s.current,T,A),ie.updateBoundingBoxPolygon(r.current,T,A),ie.updateTransitionShape(c.current,T,A),ie.updateClosestLinePointTransform(u.current,T,A),ie.updateSelectBox(l.current,T,A),ie.updatePointLine(m.current,T,A),ie.updateDrawPreview(d.current,T,A,3),ie.updateLineBox(p.current,T),h(T.transitionDirection),b(T.transitionRotate),T.closestLineIndex!==-1&&f.current){let I=T.polygon,z=I.points[T.closestLineIndex],he=I.points[(T.closestLineIndex+1)%I.points.length];z&&he&&f.current.setAttribute("points",`${z[0]},${z[1]} ${he[0]},${he[1]}`)}});Zs(()=>{let T=()=>{y.modifiers.reset()};return document.addEventListener("mouseleave",T),()=>{document.removeEventListener("mouseleave",T)}},[]);let C=Ve(rn,{children:[Ve("marker",{id:i.dot,viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[V("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke,className:"marker"}),V("circle",{cx:"5",cy:"5",r:"3",fill:n.controlFill})]}),V("marker",{id:i.newdot,viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:V("circle",{cx:"5",cy:"5",r:"5",fill:n.activeLineStroke,className:"marker"})}),Ve("marker",{id:i.selected,viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:[V("circle",{cx:"5",cy:"5",r:"5",fill:n.lineStroke}),V("circle",{cx:"5",cy:"5",r:"3",fill:n.activeLineStroke})]}),Ve("marker",{id:i.resizer,viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"6",markerHeight:"6",children:[V("rect",{width:"10",height:"10",fill:n.lineStroke}),V("rect",{x:"1",y:"1",width:"8",height:"8",fill:n.controlFill})]})]}),R=x?x.open?"polyline":"polygon":null,P=!g.showBoundingBox&&g.closestPoint!==null&&g.actionIntentType==="select-point",L=g.actionIntentType==="add-open-point",Q=g.transitionIntentType==="split-line",U=g.transitioning&&g.selectedStamp&&g.transitionIntentType==="stamp-shape",te=x&&R?Ve(rn,{children:[V(R,{fill:(!g.transitioning||g.transitionIntentType==="select-multiple-points")&&!x.open?n.shapeFill:"none",strokeWidth:U||g.showBoundingBox&&g.boxMode||g.transitioning&&g.transitionIntentType==="split-line"||g.transitioning&&g.transitionIntentType==="move-point"?0:2,stroke:n.shapeStroke,points:x.points.map(T=>T.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:g.showBoundingBox?void 0:`url(#${g.boxMode?i.resizer:i.dot})`,markerMid:g.showBoundingBox?void 0:`url(#${g.boxMode?i.resizer:i.dot})`,markerEnd:g.showBoundingBox?void 0:`url(#${g.boxMode?i.resizer:i.dot})`,style:{pointerEvents:"none"},opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}),g.currentTool==="lineBox"&&g.actionIntentType==="close-line-box"?V("polygon",{fill:n.shapeFill,ref:p,stroke:n.lineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,g.transitionIntentType==="draw-shape"&&g.transitioning?V("polyline",{ref:d,fill:"none",stroke:n.activeLineStroke,strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!(g.transitioning&&g.transitionIntentType==="move-point")&&!(g.transitioning&&g.transitionIntentType==="stamp-shape")&&!g.showBoundingBox&&g.selectedPoints&&g.selectedPoints.length?V("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:`url(#${i.selected})`,markerMid:`url(#${i.selected})`,markerEnd:`url(#${i.selected})`,fill:"transparent",points:x.points.filter((T,A)=>g.selectedPoints?.includes(A)).map(T=>T.join(",")).join(" "),opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}):null,P&&!g.transitioning&&g.closestPoint!==null&&x.points[g.closestPoint]?V("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:`url(#${i.selected})`,markerMid:`url(#${i.selected})`,markerEnd:`url(#${i.selected})`,fill:n.activeLineStroke,points:`${x.points[g.closestPoint][0]},${x.points[g.closestPoint][1]}`,opacity:g.transitioning&&g.transitionIntentType==="move-shape"?0:1}):null,!g.transitioning&&(g.actionIntentType==="add-open-point"||g.actionIntentType==="close-shape"||g.actionIntentType==="close-shape-line")?V("polyline",{stroke:n.activeLineStroke,ref:m,strokeWidth:g.actionIntentType==="add-open-point"?1:2,vectorEffect:"non-scaling-stroke"}):null,g.hasClosestLine&&!g.showBoundingBox&&!g.transitioning&&g.currentTool!=="box"&&g.transitionIntentType==="split-line"?V("g",{children:V("polyline",{ref:f,vectorEffect:"non-scaling-stroke",fill:"transparent",stroke:n.activeLineStroke,strokeWidth:3})}):null,g.hasClosestLine&&!g.showBoundingBox&&!g.transitioning&&g.currentTool!=="box"&&g.transitionIntentType==="split-line"?V("g",{ref:u,children:V("polyline",{markerStart:`url(#${i.newdot})`,points:"0,0 1,1",vectorEffect:"non-scaling-stroke",stroke:"transparent",fill:"transparent",strokeWidth:2})}):null,g.transitioning?V(R,{ref:c,fill:x.open?"none":n.shapeFill,stroke:g.transitionIntentType==="stamp-shape"?n.activeLineStroke:n.shapeStroke,vectorEffect:"non-scaling-stroke",strokeWidth:(x.open,2)}):null,g.transitioning&&g.transitionIntentType==="select-multiple-points"?V("rect",{ref:l,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,g.showBoundingBox&&!U?Ve(rn,{children:[V("polygon",{ref:s,strokeWidth:2,stroke:n.boundingBoxStroke,fill:"none",markerStart:`url(#${i.resizer})`,markerMid:`url(#${i.resizer})`,markerEnd:`url(#${i.resizer})`,vectorEffect:"non-scaling-stroke"}),V("polygon",{ref:r,strokeWidth:2,stroke:n.boundingBoxDottedStroke,fill:"none",strokeDasharray:"4 4",markerStart:`url(#${i.resizer})`,markerMid:`url(#${i.resizer})`,markerEnd:`url(#${i.resizer})`,vectorEffect:"non-scaling-stroke"})]}):null]}):null;return{currentTool:y.state.slowState.currentTool,setCurrentTool:y.tools.setTool,helper:y,currentShape:x,state:g,isAddingPoint:L,isSplitting:Q,isStamping:U,isHoveringPoint:P,transitionDirection:v,transitionRotate:S,defs:C,editor:te}}import{jsx as Ue,jsxs as rl}from"react/jsx-runtime";function lr(e){let t=nl(),n=ol(null),{image:o}=e,{helper:i,defs:s,editor:r,state:a,transitionDirection:l,isSplitting:u,transitionRotate:d,isHoveringPoint:c,isAddingPoint:m}=sr({image:e.image,theme:e.theme}),p=an(h=>{h.button!==2&&i.pointer([[~~h.atlas.x,~~h.atlas.y]])},[i]),f=an(h=>{h.button!==2&&(n.current?.focus(),i.pointerDown())},[i]),v=an(h=>{h.button!==2&&i.pointerUp()},[i]);return sn(()=>{let h=S=>{n.current?.contains(document.activeElement)&&i.key.up(S.key)};return document.addEventListener("keyup",h),()=>{document.removeEventListener("keyup",h)}},[i]),sn(()=>{let h=S=>{n.current?.contains(document.activeElement)&&(S.target&&["INPUT","TEXTAREA"].includes(S.target.tagName)||S.target?.isContentEditable||document.activeElement&&(document.activeElement instanceof HTMLInputElement||document.activeElement instanceof HTMLTextAreaElement||document.activeElement.isContentEditable)||i.key.down(S.key))};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[i]),sn(()=>{let h=[];return l&&h.push(`atlas-cursor-${l}`),a.actionIntentType==="cut-line"&&a.modifiers?.Shift&&h.push("atlas-cursor-cut"),(c||a.transitionIntentType==="move-shape"||a.transitionIntentType==="move-point")&&h.push("atlas-cursor-move"),m&&h.push("atlas-cursor-crosshair"),u&&h.push("atlas-cursor-copy"),d&&h.push("atlas-cursor-rotate"),a.transitionIntentType==="draw-shape"&&h.push("atlas-cursor-draw"),t?.canvas&&t.canvas.classList.add(...h),()=>{t?.canvas&&t.canvas.classList.remove(...h)}},[t?.canvas,m,c,u,a.modifiers?.Shift,a.actionIntentType,a.transitionIntentType,l,d]),Ue("world-object",{height:o.height,width:o.width,onMouseMove:p,onMouseDown:f,onMouseUp:v,onMouseLeave:i.blur,children:Ue(tl,{relative:!0,interactive:!1,children:Ue("div",{className:"absolute top-0 right-0 left-0 bottom-0",children:rl("svg",{ref:n,width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[Ue("title",{children:"Annotation Editor"}),Ue("defs",{children:s}),r]})})})})}import{useCallback as Vl}from"react";import{create as Nl}from"zustand";import{HTMLPortal as vl}from"@atlas-viewer/atlas";import{autoUpdate as Sl,detectOverflow as xl,flip as bl,offset as Cl,shift as Rl,useDismiss as Al,useFloating as Pl,useInteractions as wl}from"@floating-ui/react";import{createPortal as Tl}from"react-dom";import gl,{useContext as $,useMemo as hl}from"react";import il from"react";import{createContext as al,useMemo as sl}from"react";import ll from"mitt";import{jsx as cl}from"react/jsx-runtime";var ul=ll(),Ne=al({emitter:ul});Ne.displayName="Events";function ur(){return il.useContext(Ne).emitter}function yy({emitter:e,children:t}){return cl(Ne.Provider,{value:sl(()=>({emitter:e}),[e]),children:t})}import{createContext as dl,useContext as ml,useMemo as pl}from"react";import{jsx as fl}from"react/jsx-runtime";var _e=dl("");function cr({children:e,identifier:t}){let n=pl(()=>t??Math.random().toString(36).substring(2,9),[t]);return fl(_e.Provider,{value:n,children:e})}function ht(){return ml(_e)}import{jsx as q}from"react/jsx-runtime";var je=gl.createContext({});function yt(){let e=$(je),t=Object.keys(e),n={};for(let o of t)e[o].Provider&&(n[o]={value:$(e[o]),Provider:e[o].Provider});return n}function yl(e){let t=Object.keys(e),n=e.children;for(let o of t){if(o==="children")continue;let{value:i,Provider:s}=e[o];n=q(s,{value:i,children:n})}return n}function zy(e){let t=$(je),n=hl(()=>({...t,...e.providers}),[e.providers]);return q(je.Provider,{value:n,children:e.children})}function vt(){return{VaultContext:$(ue),ResourceContext:$(Ge),SimpleViewerReactContext:$(Be),VisibleCanvasReactContext:$(ve),AuthRContext:$(xe),SearchReactContext:$(be),ReactEventContext:$(Ne),ReactEmitterContext:$(Ce),ContextBridgeReactContext:$(je),StrategyReactContext:$(de),AtlasStoreReactContext:$(Ae),ViewerIdentifierContext:$(_e)}}function St(e){return q(ye,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:q(ve.Provider,{value:e.bridge.VisibleCanvasReactContext,children:q(Be.Provider,{value:e.bridge.SimpleViewerReactContext,children:q(Ne.Provider,{value:e.bridge.ReactEventContext,children:q(Ce.Provider,{value:e.bridge.ReactEmitterContext,children:q(Ae.Provider,{value:e.bridge.AtlasStoreReactContext,children:q(xe.Provider,{value:e.bridge.AuthRContext,children:q(be.Provider,{value:e.bridge.SearchReactContext,children:q(_e.Provider,{value:e.bridge.ViewerIdentifierContext,children:q(je.Provider,{value:e.bridge.ContextBridgeReactContext,children:q(de.Provider,{value:e.bridge.StrategyReactContext,children:e.custom?q(yl,{...e.custom,children:e.children}):e.children})})})})})})})})})})})}import{jsx as ln,jsxs as El}from"react/jsx-runtime";var pr=10,dr=1;function Il(e){let[t,n]=e.split("-");return[t,n]}function mr(e,t,n){return t>n?e:Math.min(Math.max(e,t),n)}function Ml(e){return e.top>0||e.right>0||e.bottom>0||e.left>0}function kl(e){return{name:"insideHighlightFallback",options:e,async fn(t){if(e.width<=dr||e.height<=dr)return{};let n=await xl(t,{altBoundary:!0});if(!Ml(n))return{};let{reference:o,floating:i}=t.rects,[s,r]=Il(t.initialPlacement),a=Math.min(pr,o.width/2,o.height/2),l=o.x+(o.width-i.width)/2,u=o.y+(o.height-i.height)/2,d=t.x,c=t.y;return s==="top"||s==="bottom"?(c=s==="top"?o.y+a:o.y+o.height-i.height-a,r==="start"?d=o.x+a:r==="end"?d=o.x+o.width-i.width-a:d=l,d=mr(d,o.x+a,o.x+o.width-i.width-a)):(d=s==="left"?o.x+a:o.x+o.width-i.width-a,r==="start"?c=o.y+a:r==="end"?c=o.y+o.height-i.height-a:c=u,c=mr(c,o.y+a,o.y+o.height-i.height-a)),{x:d,y:c}}}}function xt({annotation:e,target:t,children:n,dismissable:o,isOpen:i,onOpenChange:s,placement:r}){let a=ht(),l=vt(),u=yt(),{refs:d,floatingStyles:c,context:m}=Pl({open:i,onOpenChange:s,nodeId:e.id,placement:r||"bottom",middleware:[Cl(pr),bl({mainAxis:!0,fallbackStrategy:"bestFit",altBoundary:!0}),Rl({altBoundary:!0}),kl(t)],whileElementsMounted:Sl}),p=Al(m),{getReferenceProps:f,getFloatingProps:v}=wl([o?p:null].filter(h=>h!==null));return El(vl,{relative:!0,target:t,interactive:!1,children:[ln("div",{ref:d.setReference,...f(),style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none"}}),Tl(ln(St,{bridge:l,custom:u,children:ln("div",{ref:d.setFloating,style:c,...v(),children:n})}),document.getElementById(`atlas-floating-ui-${a}`))]})}import{Fragment as zl,jsx as fr}from"react/jsx-runtime";var Ll=Nl()(e=>({isMenuOpen:!1,menuPosition:{x:0,y:0},setMenuPosition(t){e({menuPosition:t})},toggle(t){e(n=>({isMenuOpen:!n.isMenuOpen,menuPosition:t}))},open(t){e({isMenuOpen:!0,menuPosition:t})},setIsMenuOpen(t){e(typeof t=="function"?n=>({isMenuOpen:t(n.isMenuOpen)}):{isMenuOpen:t})},close(){e({isMenuOpen:!1})}}));function bt(e,t,n){let{isMenuOpen:o,setIsMenuOpen:i,close:s,open:r,menuPosition:a,setMenuPosition:l,toggle:u}=Ll(),d=Vl(p=>{n&&(p.preventDefault(),p.stopPropagation(),u(p.atlas))},[u,n]);return[fr(zl,{children:n&&o&&fr(xt,{dismissable:!0,placement:"bottom-start",isOpen:o,onOpenChange:i,annotation:{id:e},target:{x:a.x,y:a.y,height:1,width:1},children:o&&n({canvasId:t,position:a,close:()=>i(!1)})})}),{onContextMenu:d},{open:r,close:s,toggle:u,isMenuOpen:o,setIsMenuOpen:i,menuPosition:a,setMenuPosition:l}]}import{useStore as Ol}from"zustand";function gr(){let e=D();return Ol(e,t=>t.tool.requestId&&t.requests[t.tool.requestId]||null)}import{Fragment as hr,jsx as se,jsxs as un}from"react/jsx-runtime";function yr({theme:e,renderContextMenu:t,children:n}){let o=D(),i=w(),s=ee(o,x=>x.polygon),r=ee(o,x=>x.polygonState.currentTool),a=ee(o,x=>x.mode),l=ee(o,x=>x.changeMode),u=ee(o,x=>x.polygonState.transitioning),{enabled:d,requestId:c}=ee(o,x=>x.tool),m=Hl(()=>Re(s),[s]),p=gr(),[f,v]=bt("editing-annotation",i?.id,t),h=p?.annotationPopup||n||se($l,{}),S=p?.svgTheme||e,b=()=>{l("sketch")};if(!d||!i||!c||!s)return null;let y=m&&s.id&&!u&&(r==="pointer"||r==="hand"||!s.open)?se(xt,{annotation:s,target:m,children:h}):null,g="shape";return a==="explore"?un(hr,{children:[se(g,{id:`shape-${s.id}`,points:s.points,open:s.open,onClick:b,relativeStyle:!0,target:{x:0,y:0,width:i.width,height:i.height},style:{":hover":{backgroundColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderWidth:"4px",borderColor:"rgba(255, 255, 255, .4)"},...v}),se(g,{id:`shape-${s.id}`,points:s.points,open:s.open,onClick:b,relativeStyle:!0,target:{x:0,y:0,width:i.width,height:i.height},style:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(0, 0, 0, .4)"}}),y]}):un(hr,{children:[t?se(g,{id:`shape-${s.id}`,points:s.points,open:s.open,target:{x:0,y:0,width:i.width,height:i.height},...v}):null,se(lr,{image:i,theme:S}),y,f]})}function $l(){let e=D(),t=ee(e,r=>r.changeMode),n=ee(e,r=>r.mode),o=ee(e,r=>r.completeRequest),i=ee(e,r=>r.tool),s=()=>{Bl(()=>{o()})};return i.enabled?un("div",{className:"svg-tools-container animate-fadeIn",children:[n!=="sketch"&&se("button",{className:"svg-tools-button",onClick:()=>{t("sketch")},children:"Edit"}),se("button",{className:"svg-tools-button",onClick:s,children:"Save"})]}):null}import{useEffect as cn,useMemo as dn}from"react";import{useEffect as Tr,useMemo as Ir}from"react";import{useCallback as xr,useMemo as Fl}from"react";function Dl(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function vr(e,t){return k(n=>{let o=[];if(!e)return o;let i=Object.keys(n.iiif.entities.AnnotationPage);for(let s of i)if(!t||t.indexOf(s)!==-1){let r=Dl(n,s);r&&r.views&&r.views[e]&&o.push(s)}return o},[e,t])}function Sr({canvas:e,manifest:t,all:n,canvases:o}){let i=[];if(t)for(let s of t.annotations)i.indexOf(s.id)===-1&&i.push(s.id);if(n){if(o&&o.length)for(let s of o)for(let r of s.annotations)i.indexOf(r.id)===-1&&i.push(r.id)}else if(e)for(let s of e.annotations)i.indexOf(s.id)===-1&&i.push(s.id);return i}function ql(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function br(e,t={}){let n=M(),o=O(),i=w(),s=Ke(),r=Fl(()=>Sr({all:t.all,manifest:o,canvas:i,canvases:s}),[t.all,i,s,o]),a=vr(e,t.all?void 0:r),l=xr(d=>{e&&n.setMetaValue([d,"annotationPageManager","views"],c=>c&&!c[e]?c:{...c||{},[e]:!1})},[e,n]),u=xr((d,c={})=>{if(!e)return;let m=n.getState(),p=[];if(c?.deselectOthers){let f=Object.keys(m.iiif.entities.AnnotationPage);for(let v of f){let h=ql(m,v);h&&h.views&&h.views[e]&&p.push(v)}}for(let f of p)l(f);n.setMetaValue([d,"annotationPageManager","views"],f=>f&&f[e]?f:{...f||{},[e]:!0})},[e,l,n]);return{availablePageIds:r,enabledPageIds:a,setPageEnabled:u,setPageDisabled:l}}function Cr(e,t){return k((n,o)=>o.get(e.map(i=>({id:i,type:t}))),[e,t])}import Wl from"mitt";import{useCallback as Ul}from"react";import{createStore as _l}from"zustand";var jl=_l((e,t)=>({loaded:{},setLoaded:(n,o="done")=>{e(i=>({loaded:{...i.loaded,[n]:o}}))}})),Gl=Wl();Gl.on("loaded",e=>{jl.getState().setLoaded(e.imageServiceId)});function Rr(){let e=ct(),t=Lo();return[Ul((o,{height:i,width:s})=>o&&e(o,{height:i,width:s},!0),[e]),t]}import{useCallback as Kl,useMemo as Pr,useState as Yl}from"react";function Ar(e={}){let t=Ze(),n=w(e.canvasId?{id:e.canvasId}:void 0);return k((o,i)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let s=i.get(n.items),r=[];for(let a of s)r.push(...i.get(a.items));return r},[n])}import{createPaintingAnnotationsHelper as Ql}from"@iiif/helpers/painting-annotations";function wr(e,t=[]){let n=M(),o=Pr(()=>Ql(n),[]),i=Ar({enableSingleAnnotation:e?.enableSingleAnnotation}),[s,r]=Yl(e?.defaultChoices||[]),a=Pr(()=>o.getPaintables(i,s),[n,i,s,...t]),u={makeChoice:Kl((d,{deselectOthers:c=!0,deselect:m=!1}={})=>{a.choice&&r(p=>{if(m){let v=p.filter(h=>h!==d);if(v.length===0){let h=a.items[0].resource.id;return h?[h]:[]}return v}if(c)return[d];let f=[...p];if(f.length===0&&a.items.length){let v=a.items[0].resource.id;v&&f.push(v)}return p.indexOf(d)!==-1?p:[...p,d]})},[a.choice])};return[a,u]}function Mr(e){let t=O(),n=w(),o=M(),i=ur(),s=e?.emitter||i,[r,a]=Rr(),{enabledPageIds:l}=br(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=Cr(l,"AnnotationPage"),d=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[c,m]=wr(e,[a]);Tr(()=>{let f=v=>{m.makeChoice(v.choiceId,{deselectOthers:v.deselectOthers,deselect:v.deselect})};return s.on("make-choice",f),()=>{s.off("make-choice",f)}},[]);let p=Ir(()=>gn({canvas:n,paintables:c,supports:d,loadImageService:r,vault:o}),[n,c,o,m.makeChoice]);return Tr(()=>{let f=c.allChoices,v={canvasId:n?.id,manifestId:t?.id};f&&s.emit("choice-change",{choice:f,partOf:v})},[n?.id,c.allChoices]),Ir(()=>p.type==="unknown"?[p,fn]:[{...p,annotations:{pages:u}},m],[p,u])}import{createStylesHelper as Xl}from"@iiif/helpers";import{jsx as kr}from"react/jsx-runtime";function Er({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:o,mediaControlsDeps:i,renderMediaControls:s,renderViewerControls:r,viewControlsDeps:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,throwOnUnknown:d,children:c}){let m=w(),p=M(),f=dn(()=>Xl(p),[p]),[v,h]=Mr({strategies:e||["images"],defaultChoices:n?.map(({id:g})=>g)}),S="choice"in v?v.choice:void 0;if(cn(()=>{t&&t(h)},[v.annotations]),cn(()=>{o&&o(S)},[S]),cn(()=>{if(n)for(let g of n)typeof g.opacity<"u"&&f.applyStyles({id:g.id},"atlas",{opacity:g.opacity})},[n]),v.type==="unknown"&&d)throw new Error(v.reason||"Unknown strategy");let b=dn(()=>({renderMediaControls:s,mediaControlsDeps:i||[],renderViewerControls:r,viewControlsDeps:a||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:u||[]}),[i,s,r,a,l,u]),y=dn(()=>({strategy:v,actions:h,choices:"choice"in v?v.choice:[]}),[v,m]);return kr(at.Provider,{value:b,children:kr(de.Provider,{value:y,children:c})})}import{useEffect as Nr,useMemo as tu}from"react";import{useStore as Lr}from"zustand";import{createContext as Zl,useContext as Jl,useEffect as eu}from"react";var mn=Zl(()=>{});function Vr(e){let t=w(),n=Jl(mn);eu(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}import{jsxs as nu}from"react/jsx-runtime";function zr({x:e=0,y:t=0,keepCanvasScale:n=!0,renderContextMenu:o,children:i}){let{strategy:s}=E(),r=w(),a=D(),l=Je(r,["deep-zoom"]),u=Lr(a,v=>v.setCanvasRelativePosition),d=Lr(a,v=>v.clearCanvasRelativePosition),[c,m]=bt(`context-menu/${r?.id}`,r?.id,o),p=tu(()=>n?1:Math.max(1,...s.type==="images"?s.images.map(v=>(v.width||0)/v.target?.spatial.width):[]),[n,s]);Nr(()=>{if(r)return u(r.id,{x:e,y:t,width:r.width,height:r.height}),()=>{d(r.id)}},[e,t,r,d,u]),Nr(()=>{r&&a.getState().reset()},[a,r]),Vr(p);let f=s.type==="images"?s.images.length:0;return r?nu("world-object",{height:r.height,width:r.width,x:e,y:t,...m,...l,children:[c,i]},`${r.id}/${s.type}/${f}`):null}import{jsx as K,jsxs as Or}from"react/jsx-runtime";function me({x:e,y:t,onChoiceChange:n,registerActions:o,defaultChoices:i,isStatic:s,renderViewerControls:r,renderMediaControls:a,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:d,mediaControlsDeps:c,strategies:m,throwOnUnknown:p,rotation:f,backgroundStyle:v,alwaysShowBackground:h,keepCanvasScale:S=!1,enableSizes:b=!1,enableYouTube:y=!0,onClickPaintingAnnotation:g,components:x={},children:C,annotationPopup:R,svgTheme:P,renderContextMenu:L,renderAnnotationContextMenu:Q}){return Or(Er,{throwOnUnknown:p,onChoiceChange:n,registerActions:o,strategies:m,defaultChoices:i,mediaControlsDeps:c,renderMediaControls:a,renderViewerControls:r,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:d,children:[Or(zr,{keepCanvasScale:S,x:e,y:t,renderContextMenu:L,children:[K(Xo,{alwaysShowBackground:h,backgroundStyle:v}),K(Qo,{}),K(Jo,{}),K(Zo,{isStatic:s,enableSizes:b,onClickPaintingAnnotation:g,rotation:f}),K(Co,{}),K(mo,{}),K(wo,{as:x.Audio}),K(tr,{as:x.Video}),y?K(rr,{}):null,K(yr,{theme:P,renderContextMenu:Q,children:R}),C]}),K(po,{})]})}import{jsx as Br}from"react/jsx-runtime";function Hr(e){let t=w();return!t||!t.placeholderCanvas?null:Br(ne,{canvas:t.placeholderCanvas.id,children:Br(me,{renderViewerControls:e.renderViewerControls})})}import{AtlasAuto as au}from"@atlas-viewer/atlas";import Fr,{useCallback as Ct,useMemo as Wr,useState as Rt}from"react";import{ErrorBoundary as su}from"react-error-boundary";import{useStore as qr}from"zustand";import{useEffect as ou,useMemo as ru}from"react";function $r(e,t=2e3){let{currentSequenceIndex:n,sequence:o,items:i}=Xe(),s=w(),r=ru(()=>{let l=o[n]||[];return l.length===0&&s?[{id:s.id,type:"Canvas"}]:l.map(u=>i[u])},[o,n,s,i]),a=D();ou(()=>{let u=setInterval(()=>{if(e&&t!==-1){let d={x:e.x,y:e.y,width:e.width,height:e.height},c=a.getState().canvasRelativePositions,m={};for(let p of r){let f=c[p.id];if(f){let v=f.x,h=f.y,S=f.width,b=f.height,y={x:Math.max(v,d.x),y:Math.max(h,d.y),width:Math.min(v+S,d.x+d.width)-Math.max(v,d.x),height:Math.min(h+b,d.y+d.height)-Math.max(h,d.y)};y.width<=0||y.height<=0||(m[p.id]={x:y.x-f.x,y:y.y-f.y,width:y.width,height:y.height}),a.setState({canvasViewports:m})}}}},t);return()=>{clearTimeout(u)}},[r,e,a,t])}import{jsx as pn,jsxs as iu}from"react/jsx-runtime";function Dr({width:e,style:t,height:n,error:o,resetErrorBoundary:i}){return iu("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[pn("h3",{children:"Error occurred"}),pn("p",{children:o.message}),pn("button",{type:"button",onClick:i,children:"Reset"})]})}import{Fragment as uu,jsx as N,jsxs as cu}from"react/jsx-runtime";function Ur(e){let t=D(),n=Wr(()=>e.name||Math.random().toString(36).substring(2,9),[e.name]);return N(cr,{identifier:n,children:N(He,{name:e.name,existing:t,children:N(lu,{...e})})})}function lu({name:e,children:t,errorFallback:n,outerContainerProps:o={},worldScale:i,updateViewportTimeout:s,...r}){let a=D(),l=ht(),u=qr(a,A=>A.mode),d=qr(a,A=>A.setAtlasRuntime),[c,m]=Rt(),p=yt(),f=vt(),v=n||Dr,[h,S]=Rt({}),b=Object.entries(h),[y,g]=Rt({}),x=Object.entries(y),[C,R]=Rt({}),{worldScale:P,runtimeOptions:L}=Wr(()=>{if(Object.values(C).length===0)return{worldScale:1,runtimeOptions:r.runtimeOptions||{maxOverZoom:1}};let I=Math.max(...Object.values(C));return{worldScale:I,runtimeOptions:{maxOverZoom:I||1,...r.runtimeOptions||{}}}},[C,r.runtimeOptions]);$r(c?.runtime,s);let Q=Ct((A,I)=>{R(z=>{if(I===-1){let{[A]:he,...le}=z;return le}return{...z,[A]:I}})},[]),U=Ct((A,I,z)=>{S(({[A]:he,...le})=>I?{...le,[A]:{element:I,props:z}}:le)},[]),te=Ct((A,I,z)=>{g(({[A]:he,...le})=>I?{...le,[A]:{element:I,props:z}}:le)},[]),T=Ct(A=>{m(A),d(A.runtime),r.onCreated&&r.onCreated(A)},[r.onCreated,d]);return cu(su,{resetKeys:[],fallbackRender:A=>N(v,{...r,...A}),children:[N(au,{...r,mode:u,containerProps:{style:{position:"relative"},...r.containerProps||{}},htmlChildren:N(uu,{children:b.map(([A,{element:I,props:z}])=>N(Fr.Fragment,{children:N(I,{...z||{}})},A))}),onCreated:T,runtimeOptions:L,children:N(He,{name:e,existing:a,children:N(ge.Provider,{value:c,children:N(mn.Provider,{value:Q,children:N(Wt.Provider,{value:U,children:N(Ut.Provider,{value:te,children:N(St,{bridge:f,custom:p,children:N(xo,{children:t})})})})})})})}),N("div",{children:x.map(([A,{element:I,props:z}])=>N(Fr.Fragment,{children:N(I,{...z||{}})},A))}),N("div",{id:`atlas-floating-ui-${l}`,className:"atlas-floating-ui",style:{position:"relative",zIndex:999999}})]})}import{Fragment as fu,jsx as Y,jsxs as gu}from"react/jsx-runtime";var pu=_r(function(t,n){let o=O(),i=Ke(),s=Xe(),{ViewerControls:r,MediaControls:a,ComplexTimelineControls:l}=t.components||{};if(du(n,()=>s,[s]),!o)return Y("div",{});let u=0,d=o.viewingDirection==="top-to-bottom",c=o.viewingDirection==="bottom-to-top",m=o.viewingDirection==="left-to-right",p=o.viewingDirection==="right-to-left",v=o.behavior.includes("continuous")?0:t.spacing||0,h=c||p,S=mu(()=>h?[...i].reverse():i,[i,h]);return gu(fu,{children:[t.header,Y(B.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,updateViewportTimeout:t.updateViewportTimeout,homePaddingPx:t.padding,children:S.map((b,y)=>{let g=0,x=0;return!d&&!c?(g=u,u+=b.width+v):(x=u,u+=b.height+v),Y(ne,{canvas:b.id,children:Y(B.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&r?()=>Y(r,{}):void 0,renderMediaControls:y===0&&a?()=>Y(a,{}):void 0,annotationPopup:t.annotationPopup,renderContextMenu:t.renderContextMenu,keepCanvasScale:t.keepCanvasScale,renderComplexTimelineControls:y===0&&l?()=>Y(l,{}):void 0,renderAnnotationContextMenu:t.renderAnnotationContextMenu,x:g,y:x,svgTheme:t.svgTheme,rotation:t.rotation,...t.canvasProps||{},children:t.annotations},b.id)},b.id)})},t.reuseAtlas?"":s.currentSequenceIndex),t.children]})}),B=_r(function({children:t,height:n,annotations:o,canvasProps:i,spacing:s,header:r,components:a,mode:l,reuseAtlas:u,renderPreset:d,runtimeOptions:c,annotationPopup:m,name:p,svgTheme:f,updateViewportTimeout:v,renderContextMenu:h,keepCanvasScale:S,renderAnnotationContextMenu:b,padding:y,rotation:g,...x},C){let R=Se();return Y(He,{name:p,children:Y(ye,{vault:R,children:Y(qn,{...x,children:Y(pu,{ref:C,height:n,components:a,spacing:s,canvasProps:i,annotations:o,header:r,mode:l,reuseAtlas:u,renderPreset:d,runtimeOptions:c,annotationPopup:m,svgTheme:f,updateViewportTimeout:v,renderContextMenu:h,keepCanvasScale:S,renderAnnotationContextMenu:b,padding:y,rotation:g,children:t})})})})});B.RenderImage=Ee;B.RenderCanvas=me;B.RenderAnnotationPage=ce;B.RenderAnnotation=we;B.Viewer=Ur;B.CanvasBackground=pt;B.Audio=rt;B.Video=gt;B.Model=it;B.AudioHTML=_t;B.VideoHTML=nn;B.ModelHTML=Gt;B.PlaceholderCanvas=Hr;B.getAtlasStoreByName=Qn;export{Ge as a,_ as b,ae as c,ne as d,ue as e,ye as f,M as g,k as h,ve as i,Ke as j,Se as k,O as l,vn as m,Sn as n,xn as o,bn as p,pi as q,Pt as r,dc as s,Cn as t,fc as u,wt as v,Rn as w,An as x,Tc as y,Tn as z,In as A,Mn as B,Tt as C,Pn as D,xe as E,bi as F,Ci as G,On as H,Bn as I,ze as J,Ri as K,_c as L,Ai as M,Ln as N,jc as O,Hn as P,Dn as Q,Be as R,zi as S,qn as T,Xe as U,Ce as V,Ld as W,Un as X,_n as Y,Et as Z,Re as _,Fi as $,$d as aa,Vt as ba,Nt as ca,jn as da,Gn as ea,Ae as fa,D as ga,Qn as ha,He as ia,Xn as ja,Zn as ka,nm as la,ra as ma,Jn as na,Ze as oa,w as pa,Je as qa,Pe as ra,to as sa,oo as ta,we as ua,ro as va,ce as wa,ap as xa,sp as ya,lp as za,tt as Aa,nt as Ba,qt as Ca,Te as Da,H as Ea,de as Fa,E as Ga,mo as Ha,at as Ia,F as Ja,po as Ka,fo as La,yo as Ma,So as Na,xo as Oa,Co as Pa,Ro as Qa,Ya as Ra,Ao as Sa,rs as Ta,Ie as Ua,Me as Va,wo as Wa,To as Xa,Df as Ya,ps as Za,Gf as _a,$e as $a,Kf as ab,Yf as bb,De as cb,Qf as db,ct as eb,ig as fb,ug as gb,cg as hb,dg as ib,$o as jb,Xt as kb,Do as lb,vs as mb,Ss as nb,xs as ob,mg as pb,qe as qb,Ee as rb,Qo as sb,Xo as tb,ge as ub,ft as vb,Zo as wb,Jo as xb,tr as yb,rr as zb,ir as Ab,el as Bb,sr as Cb,ul as Db,Ne as Eb,ur as Fb,yy as Gb,yt as Hb,yl as Ib,zy as Jb,vt as Kb,St as Lb,Ll as Mb,bt as Nb,gr as Ob,yr as Pb,$l as Qb,Sr as Rb,br as Sb,Cr as Tb,Rr as Ub,Ar as Vb,wr as Wb,Mr as Xb,Er as Yb,zr as Zb,Dr as _b,Ur as $b,B as ac};
@@ -1 +0,0 @@
1
- import{expandTarget as Y}from"@iiif/helpers";function Z(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function I(e,t){let{selector:r,source:s}=Y(t);if(s.id!==e.id)return[null,s];let n={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[r?r.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:r.temporal,spatial:n.spatial}:r:null,s]}var ee={makeChoice:()=>{}},w={type:"unknown"},m=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),v=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var F=["model/gltf-binary"];function B(e,t){let r=t.items[0],s=r.resource;return s.format?F.indexOf(s.format)===-1?m(`3D format: ${s.format} is unsupported`):{type:"3d-model",model:s,annotationId:r.annotationId,annotation:r.annotation}:m("Unknown format")}import{expandTarget as M}from"@iiif/helpers/annotation-targets";import{getImageServices as q}from"@iiif/parser/image-3";function S(e){return e.replace(/^http:/,"https:")}function D(e){if(!(e?.type!=="ImageApiSelector"||typeof e.rotation>"u"))return A(e.rotation)}function A(e){if(e===null||typeof e>"u"||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}function G(e){let t=e.selector||{};return{...e.rotationOrigin||t.rotationOrigin?{rotationOrigin:e.rotationOrigin||t.rotationOrigin}:{},...e.translate||t.translate?{translate:e.translate||t.translate}:{},...e.transform||t.transform?{transform:e.transform||t.transform}:{},...e.style||t.boxStyle?{style:e.style||t.boxStyle}:{},...e.styleClass?{styleClass:e.styleClass}:{}}}function R(e,t,r){let s=[],n=[];for(let i of t.items){let u=i.resource&&i.resource.type==="SpecificResource"?i.resource.source:i.resource;if(!u.id)return m("No resource Identifier");let d=(i.resource.type==="SpecificResource"?D(i.resource.selector):void 0)??D(i.selector)??A(i.rotation)??A(i.selector?.rotation),f=typeof d<"u",o;if(u.service){let T=q(u);T[0]&&(o=r(T[0],f?{width:Number(u.width||e.width),height:Number(u.height||e.height)}:e))}let p={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[a,c]=I(e,i.target),g=e.id?.split("?")[0]||"";if(!(S(c.id||"")===S(e.id)||S(decodeURIComponent(c.id||""))===S(e.id||"")||S(c.id||"")===S(g)||S(decodeURIComponent(c.id||""))===S(g)))continue;let y=i.resource.width&&i.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:i.resource.width,height:i.resource.height}}:void 0,l=i.resource.type==="SpecificResource"?M(i.resource):null;if(i.selector){let T=M({type:"SpecificResource",source:i.resource,selector:i.selector});T&&(l=T)}let h=l&&l.selector&&(l.selector.type==="BoxSelector"||l.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:l.selector.spatial.x,y:l.selector.spatial.y,width:l.selector.spatial.width,height:l.selector.spatial.height},...typeof l.selector.rotation<"u"?{rotation:l.selector.rotation}:{},...l.selector.rotationOrigin?{rotationOrigin:l.selector.rotationOrigin}:{},...l.selector.translate?{translate:l.selector.translate}:{},...l.selector.transform?{transform:l.selector.transform}:{},...l.selector.boxStyle?{boxStyle:l.selector.boxStyle}:{}}:void 0;o&&!o.id&&(o.id=o["@id"]);let O={id:u.id,type:"Image",annotationId:i.annotationId,annotation:i.annotation,width:Number(f||a||h?u.width:e.width),height:Number(f||a||h?u.height:e.height),...typeof d<"u"?{rotation:d}:{},...G(i),service:o,sizes:o&&o.sizes?o.sizes:u.width&&u.height?[{width:u.width,height:u.height}]:[],target:a&&a.type!=="PointSelector"?a:p,selector:h||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},annotationPages:i.resource.annotations||[]};s.push(O)}return{type:"images",image:s[0],images:s,choice:t.choice}}function U(e,t={},r){let s=e.language||r||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[s]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(n=>U(n,t,s))}return t}function N(e,t){let r=[];return t.items.forEach(s=>{if(s.resource){let[n]=I(e,s.target);r.push({type:"Text",annotationId:s.annotationId,annotation:s.annotation,text:U(s.resource),target:n})}}),{type:"textual-content",items:r}}import{expandTarget as H,parseSelector as _}from"@iiif/helpers";var j=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function V(e,t,r,s=!1){let n=t.items.filter(y=>y.type==="video"),i=n[0],u=!1,x=!1;if(e.duration||(x=!0),n.length>1||!i)return m("Only one video source supported");let d=n[0]?.resource,f=!!(d.service||[]).find(y=>(y.profile||"").includes("youtube.com"));if(!f&&x)return m("Video does not have duration");if(!d)return m("Unknown video");if((!d.format||d.format==="text/html")&&!f)return m("Video does not have format");let o=[],p=r.get(e.annotations||[]);for(let y of p){let l=r.get(y.items||[]);for(let h of l)if((h.motivation?Array.isArray(h.motivation||"")?h.motivation:[h.motivation]:[]).includes("supplementing")){let T=r.get(h.body||[]);for(let W of T){let C=W;if(C.type==="Choice")for(let E of C.items){let b=r.get(E);b.format==="text/vtt"&&o.push({id:b.id,type:"Text",format:"text/vtt",label:b.label,language:b.language})}else C.format==="text/vtt"&&o.push({id:C.id,type:"Text",format:"text/vtt",label:C.label,language:C.language})}}}let a={annotationId:i.annotationId,annotation:i.annotation,duration:e.duration,url:d.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:d.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},c=H(i.target);c.selector&&c.selector.type==="TemporalBoxSelector"&&(a.target=c.selector);let{selector:g}=_(i.selector);if(g===null){let y=a.target.temporal.startTime,h=(a.target.temporal.endTime||e.duration)-y;a.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:h}}}else g.type==="TemporalSelector"&&(a.selector=g);if(s&&!a.target.spatial&&(u=!0,a.target={type:"TemporalBoxSelector",temporal:a.target.temporal,spatial:{x:e.width/2,y:e.height/2,width:e.width/2,height:e.height/2}}),f){a.type="VideoYouTube";let y=d.id.match(j);if(!y[1])return m("Video is not known youtube video");a.youTubeId=y[1]}return{type:"media",media:a,annotations:{pages:[]},noSpatial:u,captions:o}}import{expandTarget as Q}from"@iiif/helpers";function k(e,t){let r=t.items,s=r[0];if(r.length===0||!s)return m("No audio");if(!e.duration)return m("No duration on canvas");if(r.length>1)return m("Only one audio source supported");let n=s.resource;return n?("format"in n||(n.format="audio/mpeg"),{type:"media",media:{annotationId:s.annotationId,annotation:s.annotation,duration:e.duration,url:n.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:n.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}):m("Unknown audio")}function L(e,t,r,s){let n={type:"complex-timeline",items:[],keyframes:[],highlights:[],duration:e.duration||0},i={type:"complex-choice",items:[]},u=s.get(e.annotations);function x(o){o.choice&&(o.choice.type==="complex-choice"?i.items.push(...o.choice.items):i.items.push(o.choice))}for(let o of t.items){if(o.type==="image"){let p=R(e,{choice:null,allChoices:null,types:["image"],items:[o]},r);if(p.type==="images"){if(!p.image)continue;x(p),n.items.push(p.image);let a={id:p.image.annotationId,type:"enter",resourceType:"image",time:p.image.target?.temporal?.startTime||0};n.keyframes.push(a);let c={id:p.image.annotationId,type:"exit",resourceType:"image",time:p.image.target?.temporal?.endTime||e.duration||0};n.keyframes.push(c)}}if(o.type==="textualbody"){let p=N(e,{choice:null,allChoices:null,types:["textualbody"],items:[o]});if(p.type==="textual-content"){x(p);let a=p.items[0];n.items.push(a);let c=a.target,g={id:a.annotationId,type:"enter",resourceType:"text",time:c.temporal?.startTime||0};n.keyframes.push(g);let y={id:a.annotationId,type:"exit",resourceType:"text",time:c.temporal?.endTime||e.duration||0};n.keyframes.push(y)}}if(o.type==="video"){let p=V(e,{choice:null,allChoices:null,types:["video"],items:[o]},s,!0);if(p.type==="media"){x(p);let a=p.media;n.items.push(a);let c={id:a.annotationId,type:"enter",resourceType:"video",time:a.target?.temporal?.startTime||0};n.keyframes.push(c);let g={id:a.annotationId,type:"exit",resourceType:"video",time:a.target?.temporal?.endTime||e.duration||0};n.keyframes.push(g)}}if(o.type==="audio"||o.type==="sound"){let p=k(e,{choice:null,allChoices:null,types:["audio"],items:[o]});if(p.type==="media"){x(p);let a=p.media;n.items.push(a);let c={id:a.annotationId,type:"enter",resourceType:"audio",time:a.target?.temporal?.startTime||0};n.keyframes.push(c);let g={id:a.annotationId,type:"exit",resourceType:"audio",time:a.target?.temporal?.endTime||e.duration||0};n.keyframes.push(g)}}}for(let o of u)for(let p of o.items){let a=s.get(p),c=Q(a.target,{typeMap:s.getState?.().iiif.mapping});if(c.selector?.temporal){let g={id:a.id,type:"enter",resourceType:"highlight",time:c.selector.temporal.startTime||0};n.keyframes.push(g);let y={id:a.id,type:"exit",resourceType:"highlight",time:c.selector.temporal.endTime||e.duration||0};n.keyframes.push(y)}n.highlights.push({annotation:a,target:c})}n.keyframes.sort((o,p)=>o.time-p.time);let d=[],f=[];for(let o of n.keyframes){if(o.resourceType==="image"||o.resourceType==="text"||o.resourceType==="highlight"){f.push(o);continue}if(o.type==="enter"){d.length===0&&(o.isPrime=!0),d.push(o),f.push(o);continue}if(o.type==="exit"&&(f.push(o),d=d.filter(p=>p.id!==o.id),d.length!==0)){let p=d[0],a={id:p.id,type:"change",isPrime:!0,resourceType:p.resourceType,time:o.time};f.push(a)}}return n.keyframes=f,i.items.length&&(n.choice=i),n}var P={},z={get(e){return e},setMetaValue([e,t,r],s){let n=z.getResourceMeta(e,t),i=n?n[r]:void 0,u=typeof s=="function"?s(i):s;P[e]={...P[e]||{},[t]:{...(P[e]||{})[t]||{},[r]:u}}},getResourceMeta:(e,t)=>{let r=P[e];if(r)return t?r[t]:r},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(r=>r.json())},requestStatus(e){}};function Be({canvas:e,paintables:t,supports:r,loadImageService:s,vault:n=z}){if(!e)return w;if(t.types.length===0)return r.indexOf("empty")!==-1?v(e.width,e.height):w;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(u=>u!=="text");else return r.indexOf("complex-timeline")===-1?m("Complex timeline not supported"):L(e,t,s,n);let i=t.types[0];return i==="image"?r.indexOf("images")===-1?m("Image not supported"):R(e,t,s):i==="Model"||i==="model"?r.indexOf("3d-model")===-1?m("3D not supported"):B(e,t):i==="textualbody"?r.indexOf("textual-content")===-1?m("Textual content not supported"):N(e,t):i==="sound"||i==="audio"?r.indexOf("media")===-1?m("Media not supported"):k(e,t):i==="video"?r.indexOf("media")===-1?m("Media not supported"):V(e,t,n):w}export{Z as a,I as b,ee as c,w as d,m as e,v as f,B as g,R as h,N as i,V as j,L as k,Be as l};
@@ -1,41 +0,0 @@
1
- import { R as RenderingStrategy, d as ImageServiceLoaderType, m as UseRenderingStrategy, U as UnknownStrategy } from './useRenderingStrategy-CoKE915F.cjs';
2
- import { CanvasNormalized } from '@iiif/presentation-3-normalized';
3
- import { Paintables } from '@iiif/helpers/painting-annotations';
4
- import * as _iiif_helpers_vault from '@iiif/helpers/vault';
5
- import { ContentResource, W3CAnnotationTarget, PointSelector } from '@iiif/presentation-3';
6
- import { TemporalBoxSelector, BoxSelector, SupportedTarget } from '@iiif/helpers';
7
-
8
- type CompatVault = {
9
- get: _iiif_helpers_vault.Vault['get'];
10
- setMetaValue: _iiif_helpers_vault.Vault['setMetaValue'];
11
- getResourceMeta: _iiif_helpers_vault.Vault['getResourceMeta'];
12
- load: _iiif_helpers_vault.Vault['load'];
13
- requestStatus: _iiif_helpers_vault.Vault['requestStatus'];
14
- };
15
-
16
- interface GetRenderStrategyOptions {
17
- canvas: CanvasNormalized | null | undefined;
18
- paintables: Paintables;
19
- supports: string[];
20
- loadImageService: ImageServiceLoaderType;
21
- vault?: CompatVault;
22
- }
23
- declare function getRenderingStrategy({ canvas, paintables, supports, loadImageService, vault, }: GetRenderStrategyOptions): RenderingStrategy;
24
-
25
- /**
26
- * Parse specific resource.
27
- *
28
- * This could be expanded to support pulling out more from the specific resource.
29
- *
30
- * @param resource
31
- */
32
- declare function parseSpecificResource(resource: ContentResource): any[];
33
- declare function getParsedTargetSelector(canvas: CanvasNormalized, target: W3CAnnotationTarget | W3CAnnotationTarget[]): [TemporalBoxSelector | BoxSelector | PointSelector | null, SupportedTarget['source']];
34
- declare const emptyActions: {
35
- makeChoice: () => void;
36
- };
37
- declare const unknownResponse: UseRenderingStrategy[0];
38
- declare const unsupportedStrategy: (reason: string) => UnknownStrategy;
39
- declare const emptyStrategy: (width: number, height: number) => UseRenderingStrategy[0];
40
-
41
- export { type CompatVault as C, getParsedTargetSelector as a, unsupportedStrategy as b, emptyStrategy as c, emptyActions as e, getRenderingStrategy as g, parseSpecificResource as p, unknownResponse as u };
@@ -1,41 +0,0 @@
1
- import { R as RenderingStrategy, d as ImageServiceLoaderType, m as UseRenderingStrategy, U as UnknownStrategy } from './useRenderingStrategy-CoKE915F.js';
2
- import { CanvasNormalized } from '@iiif/presentation-3-normalized';
3
- import { Paintables } from '@iiif/helpers/painting-annotations';
4
- import * as _iiif_helpers_vault from '@iiif/helpers/vault';
5
- import { ContentResource, W3CAnnotationTarget, PointSelector } from '@iiif/presentation-3';
6
- import { TemporalBoxSelector, BoxSelector, SupportedTarget } from '@iiif/helpers';
7
-
8
- type CompatVault = {
9
- get: _iiif_helpers_vault.Vault['get'];
10
- setMetaValue: _iiif_helpers_vault.Vault['setMetaValue'];
11
- getResourceMeta: _iiif_helpers_vault.Vault['getResourceMeta'];
12
- load: _iiif_helpers_vault.Vault['load'];
13
- requestStatus: _iiif_helpers_vault.Vault['requestStatus'];
14
- };
15
-
16
- interface GetRenderStrategyOptions {
17
- canvas: CanvasNormalized | null | undefined;
18
- paintables: Paintables;
19
- supports: string[];
20
- loadImageService: ImageServiceLoaderType;
21
- vault?: CompatVault;
22
- }
23
- declare function getRenderingStrategy({ canvas, paintables, supports, loadImageService, vault, }: GetRenderStrategyOptions): RenderingStrategy;
24
-
25
- /**
26
- * Parse specific resource.
27
- *
28
- * This could be expanded to support pulling out more from the specific resource.
29
- *
30
- * @param resource
31
- */
32
- declare function parseSpecificResource(resource: ContentResource): any[];
33
- declare function getParsedTargetSelector(canvas: CanvasNormalized, target: W3CAnnotationTarget | W3CAnnotationTarget[]): [TemporalBoxSelector | BoxSelector | PointSelector | null, SupportedTarget['source']];
34
- declare const emptyActions: {
35
- makeChoice: () => void;
36
- };
37
- declare const unknownResponse: UseRenderingStrategy[0];
38
- declare const unsupportedStrategy: (reason: string) => UnknownStrategy;
39
- declare const emptyStrategy: (width: number, height: number) => UseRenderingStrategy[0];
40
-
41
- export { type CompatVault as C, getParsedTargetSelector as a, unsupportedStrategy as b, emptyStrategy as c, emptyActions as e, getRenderingStrategy as g, parseSpecificResource as p, unknownResponse as u };