react-iiif-vault 1.2.7 → 1.3.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.
- package/dist/bundle.d.ts +73 -23
- package/dist/bundle.global.js +24 -24
- package/dist/canvas-panel.cjs +5 -5
- package/dist/canvas-panel.d.cts +2 -2
- package/dist/canvas-panel.d.ts +2 -2
- package/dist/canvas-panel.js +1 -1
- package/dist/chunk-5PAZ34A4.js +48 -0
- package/dist/chunk-FZEYDVWC.js +1 -0
- package/dist/{index-BmF5JPHb.d.cts → index-Bm0eAQri.d.ts} +4 -2
- package/dist/{index-jRxSNVAX.d.ts → index-CK5q0i1-.d.cts} +4 -2
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +62 -24
- package/dist/index.d.ts +62 -24
- package/dist/index.js +1 -1
- package/dist/{useRenderingStrategy-D2R_H2aP.d.cts → useRenderingStrategy-DUTiqfD8.d.cts} +13 -3
- package/dist/{useRenderingStrategy-D2R_H2aP.d.ts → useRenderingStrategy-DUTiqfD8.d.ts} +13 -3
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-DXFXJCXN.js +0 -1
- package/dist/chunk-QKLET6KX.js +0 -48
|
@@ -3,7 +3,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
3
3
|
import { AtlasProps, Preset, BoxStyle, ViewerMode } from '@atlas-viewer/atlas';
|
|
4
4
|
import { AnnotationPage, Reference } from '@iiif/presentation-3';
|
|
5
5
|
import { AnnotationPageNormalized } from '@iiif/presentation-3-normalized';
|
|
6
|
-
import { S as StrategyActions, a as SingleImageStrategy, E as EmptyStrategy, M as MediaStrategy, R as RenderingStrategy, I as ImageWithOptionalService, b as SingleAudio, c as SingleVideo } from './useRenderingStrategy-
|
|
6
|
+
import { S as StrategyActions, a as SingleImageStrategy, E as EmptyStrategy, M as MediaStrategy, C as ComplexTimelineStrategy, R as RenderingStrategy, I as ImageWithOptionalService, b as SingleAudio, c as SingleVideo } from './useRenderingStrategy-DUTiqfD8.cjs';
|
|
7
7
|
import { ChoiceDescription, BoxSelector } from '@iiif/helpers';
|
|
8
8
|
import { ImageCandidate } from '@atlas-viewer/iiif-image-api';
|
|
9
9
|
import { Vault } from '@iiif/helpers/vault';
|
|
@@ -50,6 +50,7 @@ type CanvasProps = {
|
|
|
50
50
|
renderViewerControls?: (strategy: SingleImageStrategy | EmptyStrategy) => ReactNode;
|
|
51
51
|
viewControlsDeps?: any[];
|
|
52
52
|
renderMediaControls?: (strategy: MediaStrategy) => ReactNode;
|
|
53
|
+
renderComplexTimelineControls?: (strategy: ComplexTimelineStrategy) => ReactNode;
|
|
53
54
|
mediaControlsDeps?: any[];
|
|
54
55
|
strategies?: Array<RenderingStrategy['type']>;
|
|
55
56
|
backgroundStyle?: BoxStyle;
|
|
@@ -60,7 +61,7 @@ type CanvasProps = {
|
|
|
60
61
|
throwOnUnknown?: boolean;
|
|
61
62
|
onClickPaintingAnnotation?: (id: string, image: ImageWithOptionalService, e: any) => void;
|
|
62
63
|
};
|
|
63
|
-
declare function RenderCanvas({ x, y, onChoiceChange, registerActions, defaultChoices, isStatic, renderViewerControls, renderMediaControls, viewControlsDeps, mediaControlsDeps, strategies, throwOnUnknown, backgroundStyle, alwaysShowBackground, keepCanvasScale, enableSizes, enableYouTube, onClickPaintingAnnotation, children, }: CanvasProps): react_jsx_runtime.JSX.Element | null;
|
|
64
|
+
declare function RenderCanvas({ x, y, onChoiceChange, registerActions, defaultChoices, isStatic, renderViewerControls, renderMediaControls, renderComplexTimelineControls, viewControlsDeps, mediaControlsDeps, strategies, throwOnUnknown, backgroundStyle, alwaysShowBackground, keepCanvasScale, enableSizes, enableYouTube, onClickPaintingAnnotation, children, }: CanvasProps): react_jsx_runtime.JSX.Element | null;
|
|
64
65
|
|
|
65
66
|
declare function RenderImage({ id, image, thumbnail, isStatic, x, y, children, selector, onClick, enableSizes, }: {
|
|
66
67
|
id: string;
|
|
@@ -179,6 +180,7 @@ interface CanvasPanelProps {
|
|
|
179
180
|
components?: {
|
|
180
181
|
ViewerControls?: FC;
|
|
181
182
|
MediaControls?: FC;
|
|
183
|
+
ComplexTimelineControls?: FC;
|
|
182
184
|
};
|
|
183
185
|
canvasProps?: Omit<Partial<CanvasProps>, 'x'>;
|
|
184
186
|
annotations?: ReactNode;
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var gi=Object.create;var Nt=Object.defineProperty;var hi=Object.getOwnPropertyDescriptor;var vi=Object.getOwnPropertyNames;var yi=Object.getPrototypeOf,Si=Object.prototype.hasOwnProperty;var xi=(e,t)=>{for(var n in t)Nt(e,n,{get:t[n],enumerable:!0})},Mt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of vi(t))!Si.call(e,o)&&o!==n&&Nt(e,o,{get:()=>t[o],enumerable:!(r=hi(t,o))||r.enumerable});return e},p=(e,t,n)=>(Mt(e,t,"default"),n&&Mt(n,t,"default")),se=(e,t,n)=>(n=e!=null?gi(yi(e)):{},Mt(t||!e||!e.__esModule?Nt(n,"default",{value:e,enumerable:!0}):n,e)),Ci=e=>Mt(Nt({},"__esModule",{value:!0}),e);var f={};xi(f,{AnnotationContext:()=>da,AnnotationPageContext:()=>ma,AnnotationStyleProvider:()=>ua,Auth:()=>In,AuthProvider:()=>An,AuthRContext:()=>Te,AuthReactContext:()=>Br,AuthReactContextActions:()=>Fr,CanvasAnnotations:()=>Xi,CanvasContext:()=>Z,CanvasPanel:()=>O,CollectionContext:()=>fa,CombinedMetadata:()=>Zi,ContextBridge:()=>Nn,CreateCustomShape:()=>yr,EventsProvider:()=>Vi,Image:()=>Xo,ImageServiceLoaderContext:()=>wo,InnerViewerProvider:()=>Yr,LanguageProvider:()=>zi,LanguageString:()=>xo,LocaleString:()=>K,ManifestContext:()=>fn,ManifestMetadata:()=>ea,MediaPlayerProvider:()=>St,Metadata:()=>Rt,PolygonSelector:()=>la,RangeContext:()=>pn,ReactEventContext:()=>we,ReactVaultContext:()=>pe,RenderSvgEditorControls:()=>ia,ResourceProvider:()=>q,ResourceReactContext:()=>tt,SelectorControllerProvider:()=>aa,SequenceThumbnails:()=>ra,SimpleViewerProvider:()=>wn,SimpleViewerReactContext:()=>Ue,SingleCanvasThumbnail:()=>ur,TranslationProvider:()=>Li,TransliterationProvider:()=>Hi,VaultProvider:()=>Pe,ViewerPresetContext:()=>Ye,VirtualAnnotationProvider:()=>Ln,VisibleCanvasReactContext:()=>Re,authDetailsForResource:()=>Cn,createAuthStateStore:()=>Sn,createProbe:()=>xn,defaultEmitter:()=>Gr,emptyActions:()=>$n,emptyStrategy:()=>_n,findAllCanvasesInRange:()=>Vt,findFirstCanvasFromRange:()=>Vr,findManifestSelectedRange:()=>Pi,findSelectedRange:()=>gn,flattenAnnotationPageIds:()=>Yn,formatTime:()=>zo,get3dStrategy:()=>Kn,getDefaultAnnotationStyles:()=>fr,getImageStrategy:()=>Zn,getManifestSequence:()=>Lt,getParsedTargetSelector:()=>gt,getRenderingStrategy:()=>tr,getTextualContentStrategy:()=>Jn,getVideoStrategy:()=>er,getVisibleCanvasesFromCanvasId:()=>Ai,hasAuth:()=>Ri,makeAccessServiceRequest:()=>vn,makeAccessTokenRequest:()=>zt,parseSpecificResource:()=>Fi,svgThemes:()=>ii,unknownResponse:()=>ht,unsupportedStrategy:()=>I,useAnnotation:()=>dt,useAnnotationPage:()=>Dn,useAnnotationPageManager:()=>yt,useAnnotationStyles:()=>gr,useAnnotationsAtTime:()=>pa,useAuthActions:()=>Dr,useAuthService:()=>qr,useAuthStore:()=>qe,useAuthToken:()=>Ti,useAuthTokens:()=>bn,useCanvas:()=>A,useCanvasChoices:()=>ga,useCanvasClock:()=>ha,useCanvasSequence:()=>hn,useCanvasStartTime:()=>xt,useCanvasSubset:()=>va,useClosestLanguage:()=>bo,useCollection:()=>ya,useContextBridge:()=>Mn,useCreateLocaleString:()=>Oi,useCurrentAuth:()=>Ii,useDispatch:()=>kn,useEventEmitter:()=>ut,useEventListener:()=>Sa,useExistingVault:()=>Ae,useExternalCollection:()=>xa,useExternalManifest:()=>mn,useExternalResource:()=>rt,useIIIFLanguage:()=>$t,useImage:()=>nn,useImageService:()=>Cr,useImageServiceLoader:()=>me,useImageTile:()=>Ca,useIsAuthEnabled:()=>Rn,useLoadImageService:()=>jn,useLocaleString:()=>Po,useManifest:()=>E,useMediaActions:()=>Qi,useMediaElements:()=>ji,useMediaState:()=>Yi,usePaintables:()=>Gn,usePaintingAnnotations:()=>Le,usePolygonHelper:()=>hr,useRange:()=>ot,useRenderingStrategy:()=>nr,useResourceContext:()=>D,useResourceEvents:()=>lt,useResources:()=>Qn,useSearchService:()=>Tn,useSelectorController:()=>mr,useSelectorEmitter:()=>sa,useSelectorEvents:()=>dr,useSelectorHelper:()=>ca,useSimpleMediaPlayer:()=>Oe,useSimpleViewer:()=>ct,useStyleHelper:()=>ba,useStyles:()=>ke,useSvgEditor:()=>vr,useThumbnail:()=>He,useTranslations:()=>Un,useTransliteration:()=>Wn,useVault:()=>b,useVaultEffect:()=>rr,useVaultSelector:()=>P,useViewerPreset:()=>zn,useVirtualAnnotationPage:()=>En,useVirtualAnnotationPageContext:()=>Vn,useVisibleCanvases:()=>Ie});module.exports=Ci(f);var Pt=require("react");var W=se(require("react"),1),qt=require("@atlas-viewer/atlas"),oo=require("react-error-boundary");var he=require("react");var Be=se(require("react"),1),Pr=require("react/jsx-runtime"),bi={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},tt=Be.default.createContext(bi),D=()=>(0,Be.useContext)(tt);function q({value:e,children:t}){let n=D(),r=(0,Be.useMemo)(()=>({...n,...e}),[e,n]);return(0,Pr.jsx)(tt.Provider,{value:r,children:t})}var kt=se(require("react"),1),nt=require("@iiif/helpers/vault");var dn=require("react/jsx-runtime"),pe=kt.default.createContext({vault:null,setVaultInstance:e=>{}});function Pe({vault:e,vaultOptions:t,useGlobal:n,resources:r,children:o}){let[i,a]=(0,kt.useState)(()=>e||(n?(0,nt.globalVault)(t):t?new nt.Vault(t):new nt.Vault));return(0,dn.jsx)(pe.Provider,{value:{vault:i,setVaultInstance:a},children:(0,dn.jsx)(q,{value:r||{},children:o})})}var _r=require("react"),Ot=require("react");var Ar=require("@iiif/helpers/vault"),Rr=require("react");function Ae(e){let t=(0,Rr.useContext)(pe);return e||(t&&t.vault?t.vault:(0,Ar.globalVault)())}var ge=require("react");function rt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,r=Ae(),[o,i]=(0,ge.useState)(n),[a,s]=(0,ge.useState)(void 0),c=(0,ge.useMemo)(()=>r.get(n,{skipSelfReturn:!0})||void 0,[n,r]),[u,l]=(0,ge.useState)(c);return(0,ge.useEffect)(()=>{(async()=>{try{let d=c&&!t?c:await r.load(n),v=d?d.id||d["@id"]:null;d&&o!==v&&i(v),l(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!u,id:o,requestId:n,error:a,resource:u,cached:!!(u&&u===c)}}function mn(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=rt(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var Ir=require("react/jsx-runtime");function fn({manifest:e,children:t}){return(0,Ir.jsx)(q,{value:{manifest:e},children:t})}var Tr=require("react/jsx-runtime");function Z({canvas:e,children:t}){return(0,Tr.jsx)(q,{value:{canvas:e},children:t})}var Mr=require("react"),Nr=se(require("react"),1);var wr=require("react"),b=()=>{let{vault:e}=(0,wr.useContext)(pe);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Et=require("react");function P(e,t=[]){let n=b(),[r,o]=(0,Et.useState)(()=>e(n.getState(),n));return(0,Et.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{o(i)},!1),t),r}var Re=Nr.default.createContext([]);function Ie(){let e=(0,Mr.useContext)(Re);return P(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var kr=require("react");function E(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=b(),a=n||o.manifest,s=P(c=>a?c.iiif.entities.Manifest[a]:void 0,[a]);return(0,kr.useMemo)(()=>{if(s)return r?r(s):s},[s,r,...t])}var Er=require("react/jsx-runtime");function pn({range:e,children:t}){return(0,Er.jsx)(q,{value:{range:e},children:t})}function Vr(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 r=Vr(e,e.get(n));if(r)return r}}return null}function Vt(e,t){let n=[];for(let r of t.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?n.push({id:r.source.id.split("#")[0],type:"Canvas"}):n.push(r.source)),r.type==="Range"&&n.push(...Vt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;n.push({id:o,type:"Canvas"})}return n}function Pi(e,t,n){for(let r of t.structures){let o=gn(e,e.get(r),n);if(o)return o}return null}function gn(e,t,n){for(let r of t.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===n||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&n===o)return t;if(r.type==="Range"){let i=gn(e,e.get(r),n);if(i)return i}}return null}function Ai(e,t,n,r=!1){let o=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=r?!1:o.includes("paged"),c=s?!1:o.includes("continuous"),u=s||c?!1:o.includes("individuals"),l=a.includes("facing-pages"),d=a.includes("non-paged");if(l||d||u||r)return[{id:i.id,type:"Canvas"}];let[v,y]=Lt(e,t);if(c)return v;let h=v.findIndex(g=>g.id===n);if(h===-1)return[];for(let g of y)if(g.includes(h))return g.map(S=>v[S]);return[{id:i.id,type:"Canvas"}]}function Lt(e,t,{disablePaging:n,skipNonPaged:r}={}){let o=t.behavior,i=o.includes("paged"),a=i?!1:o.includes("continuous"),s=i||a?!1:o.includes("individuals"),c=t.type==="Manifest"?t.items:Vt(e,t);if(a)return[c,[c.map((h,g)=>g)]];if(s||!i||n)return[c,c.map((h,g)=>[g])];let u=[],l=[],d=()=>{l.length&&(u.push([...l]),l=[])},v=0,y=!1;for(let h=0;h<c.length;h++){let g=e.get(c[h]);if(g.behavior.includes("non-paged")){h===v&&v++,r||(d(),u.push([h]),d());continue}if(h===v||g.behavior.includes("facing-pages")){l.length&&(y=!0),d(),u.push([h]),d();continue}if(l.push(h),y){d(),y=!1;continue}l.length>1&&d()}return l.length&&d(),[c,u]}var te=require("react");var Lr=require("react");function ot(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.range,a=P(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Lr.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}function hn({startCanvas:e,disablePaging:t}){let n=b(),r=E(),o=ot(),[i,a]=(0,te.useState)(void 0),s=o||r;if(!s)throw new Error("Nothing selected");let[c,u]=(0,te.useMemo)(()=>Lt(n,s,{disablePaging:t}),[n,s,t]),l=(0,te.useRef)(u);if(l.current!==u){let S=l.current[i][0],C=u.findIndex(w=>w.includes(S));l.current=u,a(C)}let d=(0,te.useCallback)(g=>{let S=u.findIndex(C=>C.includes(g));a(S===-1?0:S)},[c,u]),v=(0,te.useCallback)(g=>{let S=c.findIndex(C=>C.id===g);S!==-1?d(S):a(0)},[c,u]),y=(0,te.useCallback)(()=>{a(g=>g>=u.length-1?g:g+1)},[u]),h=(0,te.useCallback)(()=>{a(g=>g<=0?0:g-1)},[u]);return typeof i>"u"&&(e?v(e):a(0)),{visibleItems:u[i]?.map(g=>c[g].id)||[],cursor:i,items:c,sequence:u,hasPrevious:i>0,hasNext:i<u.length-1,setSequenceIndex:a,setCanvasIndex:d,setCanvasId:v,next:y,previous:h}}var re=require("react"),De=require("zustand");var yn=require("zustand/vanilla");function Ri(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function ne(e,t,n){let r=t.findIndex(a=>a.service.id===e);if(r===-1)return t;let o=[...t],i=n(o[r]);return i===o[r]?t:(o[r]=i,o)}var Sn=()=>(0,yn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let r=n.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:ne(n.id,t().authItems,o=>({...o,isPending:!0}))})),vn(n.service).then(()=>{zt(r).then(o=>{let i=o.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ne(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:a}}))}))}).catch(o=>{e(()=>({authItems:ne(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:o.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 r=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${zr()}`,i=window.open(o);e(()=>({authItems:ne(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,r=t().currentAuth+1;r>=n||e(()=>({currentAuth:r}))},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,r)=>{if(!n.service)return;let o=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:ne(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!o)throw new Error("Token service not found");zt(o).then(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:ne(n.id,t().authItems,s=>({...s,isPending:!0}))})),vn(i).then(()=>{zt(o).then(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ne(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,r)=>{let o=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(o){let a=t().authItems.find(c=>c.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:ne(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),xn=(e,t)=>(0,yn.createStore)((n,r)=>({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(!r().service)return;let o=r().service?.id;if(!o){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=r().token;try{let a=await fetch(o,{headers:i?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){n({token:o})}}));function Cn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let r of t)if(r.type==="AuthProbeService2"){n.services.probe=r,n.hasAuth=!0;let o=r.service.filter(i=>i.type==="AuthAccessService2");o[0]&&(n.services.access=o[0])}return n}async function zt(e,{strict:t=!0}={}){return new Promise((n,r)=>{let o=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${o}&origin=${window.location.origin}`,a=u=>{let l=u.data;if(l.messageId===o){if(t&&l.type!=="AuthAccessToken2"){s(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){s(),r("Invalid response, expected accessToken");return}s(),n(l)}},s=()=>window.removeEventListener("message",a),c=document.createElement("iframe");c.src=i,c.style.display="none",document.body.appendChild(c),window.addEventListener("message",a)})}function zr(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 vn(e){let t=`${e.id}?origin=${zr()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((r,o)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),r())},500)})}var Fe=require("react");var Hr=require("zustand");function Or(e){let t=(0,Fe.useMemo)(()=>Cn(e),[e]),n=bn(t.services.access?.id),r=(0,Fe.useMemo)(()=>xn(t.services.probe,n),[t.services.probe]),o=(0,Hr.useStore)(r);return(0,Fe.useEffect)(()=>{o.status==="unknown"&&!n&&o.probe()},[t.services.probe,o.status]),(0,Fe.useEffect)(()=>{n&&(o.setToken(n),o.probe())},[n]),[e,o,t.hasAuth]}var it=require("react/jsx-runtime"),Te=(0,re.createContext)(null),Br=(0,re.createContext)(null);Br.displayName="CurrentAuth";var Fr=(0,re.createContext)(null);Fr.displayName="AuthActions";function An({children:e}){let t=(0,re.useMemo)(()=>Sn(),[]);return(0,it.jsx)(Te.Provider,{value:t,children:e})}function Rn(){return!!(0,re.useContext)(Te)}function qe(){let e=(0,re.useContext)(Te);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Dr(){let e=qe();return(0,De.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function Ii(){let e=qe();return(0,De.useStore)(e,t=>t)}function qr(e){let t=qe();return(0,De.useStore)(t,r=>r.authItems.find(o=>o.service.id===e))}function bn(e){let t=qe();return(0,De.useStore)(t,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function Ti(e){let t=qe();return(0,De.useStore)(t,r=>{let o=r.authItems.find(i=>i.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function wi(e){let t=Dr(),n=qr(e.service.id);return(0,re.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Pn(){return null}function In(e){let[t,n,r]=Or(e.resource),o=e.fallbackComponent||Pn,i=e.loadingComponent||Pn,a=e.errorComponent||Pn,s=n.service,c=null;if(!r||!s)return e.children(t);let u=s.service.filter(l=>l.type==="AuthAccessService2");n.status==="error"&&(c=(0,it.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(c=(0,it.jsx)(i,{})),n.status==="success"&&(c=e.children(t));for(let l of u)c=(0,it.jsx)(wi,{service:l,probeId:s.id,children:c},l.id);return c}var at=require("react");var Wr=require("zustand/vanilla"),Mi=e=>e.id||e["@id"];function Ni(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 Ur=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?Mi(t):void 0,r=null;return(0,Wr.createStore)((o,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ni(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let c=new URLSearchParams;a.q&&c.set("q",a.q),a.motivation&&c.set("motivation",a.motivation),a.date&&c.set("date",a.date),a.user&&c.set("user",a.user),o({loading:!0}),fetch(`${n}?${c.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async u=>{if(!r?.signal.aborted)if(u.ok){let l=await u.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(c=>c["@id"]===a);o({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[0]||null});return}let c=a.findIndex(u=>u["@id"]===s["@id"]);if(c===-1){o({highlight:a[0]||null});return}o({highlight:a[c+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[a.length-1]||null});return}let c=a.findIndex(u=>u["@id"]===s["@id"]);if(c===-1){o({highlight:a[a.length-1]||null});return}if(c===0){o({highlight:a[a.length-1]||null});return}o({highlight:a[c-1]||a[a.length-1]||null})}}))};var ki=require("zustand");function Tn(){let e=E();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Ht=require("react/jsx-runtime"),We=(0,at.createContext)(null);We.displayName="Search";function $r(e){let t=Tn();return e.store?(0,Ht.jsx)(We.Provider,{value:e.store,children:e.children}):(0,Ht.jsx)(Ei,{service:t,children:e.children})}function Ei({service:e,children:t}){let n=(0,at.useMemo)(()=>Ur(e),[e]);return(0,Ht.jsx)(We.Provider,{value:n,children:t})}var Y=require("react/jsx-runtime"),st=()=>{},Ue=(0,Ot.createContext)({setCurrentCanvasId:st,setCurrentCanvasIndex:st,nextCanvas:st,previousCanvas:st,items:[],sequence:[],setSequenceIndex:st,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Yr(e){let t=E(),{cursor:n,visibleItems:r,next:o,sequence:i,items:a,setCanvasIndex:s,setCanvasId:c,previous:u,setSequenceIndex:l,hasNext:d,hasPrevious:v}=hn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),y=(0,Ot.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:c,nextCanvas:o,previousCanvas:u,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:l,currentSequenceIndex:n,hasNext:d,hasPrevious:v}),[i,a,c,o,u,a,s,l,n]);return t?r.length===0?null:(0,Y.jsx)(Ue.Provider,{value:y,children:(0,Y.jsx)(Re.Provider,{value:r,children:(0,Y.jsx)(Z,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,Y.jsx)("div",{children:"Sorry, something went wrong."}))}function wn(e){let t=Ae(e.vault),n=mn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,Y.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,Y.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,Y.jsx)("div",{children:"Loading..."});let r=(0,Y.jsx)(Yr,{...e,children:e.children});return(0,Y.jsx)(Pe,{vault:t,children:(0,Y.jsx)(fn,{manifest:n.id,children:(0,Y.jsx)(An,{children:(0,Y.jsx)($r,{children:e.rangeId?(0,Y.jsx)(pn,{range:e.rangeId,children:r}):r})})})})}function ct(){return(0,_r.useContext)(Ue)}var Qr=se(require("react"),1),Bt=require("react"),jr=se(require("mitt"),1),Kr=require("react/jsx-runtime"),Gr=(0,jr.default)(),we=(0,Bt.createContext)({emitter:Gr});we.displayName="Events";function ut(){return Qr.default.useContext(we).emitter}function Vi({emitter:e,children:t}){return(0,Kr.jsx)(we.Provider,{value:(0,Bt.useMemo)(()=>({emitter:e}),[e]),children:t})}var Me=require("react/jsx-runtime");function Mn(){return{VaultContext:(0,he.useContext)(pe),ResourceContext:(0,he.useContext)(tt),SimpleViewerReactContext:(0,he.useContext)(Ue),VisibleCanvasReactContext:(0,he.useContext)(Re),AuthRContext:(0,he.useContext)(Te),SearchReactContext:(0,he.useContext)(We),ReactEventContext:(0,he.useContext)(we)}}function Nn(e){return(0,Me.jsx)(Pe,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,Me.jsx)(Re.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,Me.jsx)(Ue.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,Me.jsx)(we.Provider,{value:e.bridge.ReactEventContext,children:(0,Me.jsx)(Te.Provider,{value:e.bridge.AuthRContext,children:(0,Me.jsx)(We.Provider,{value:e.bridge.SearchReactContext,children:e.children})})})})})})}var $e=require("react");var de=require("react");var Ft=require("@iiif/helpers/vault/actions");var Xr=require("react");function kn(){let t=b().getStore();return(0,Xr.useMemo)(()=>n=>t.dispatch(n),[t])}function Zr(e){return typeof e!="string"&&e&&e.bindToVault}function En(){let e=b(),t=(0,de.useRef)([]),n=kn(),r=(0,de.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,de.useLayoutEffect)(()=>{let s={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Ft.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[r]);let o=P(s=>r&&s.iiif.entities.AnnotationPage[r]||null,[r]),i=(0,de.useCallback)((s,c)=>{if(r){if(Zr(s)){let d=s;d.__vault||d.bindToVault(e),s=typeof d.source=="string"?d.source:d.source.id,t.current[s]=d}else typeof s!="string"&&(s=s.id);let u=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:s,type:"Annotation"});u&&l&&(u.items.find(d=>d.id===l.id)||n(Ft.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:c})))}},[r]),a=(0,de.useCallback)(s=>{r&&(Zr(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&n(Ft.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[r]);return[o,{addAnnotation:i,removeAnnotation:a}]}var eo=require("react/jsx-runtime"),Jr=(0,$e.createContext)(null);function Vn(){let e=(0,$e.useContext)(Jr);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Ln({children:e}){let[t,{addAnnotation:n,removeAnnotation:r}]=En();return(0,eo.jsx)(Jr.Provider,{value:(0,$e.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:r}),[t]),children:e})}var _e=require("react/jsx-runtime");function to({width:e,style:t,height:n,error:r,resetErrorBoundary:o}){return(0,_e.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,_e.jsx)("h3",{children:"Error occurred"}),(0,_e.jsx)("p",{children:r.message}),(0,_e.jsx)("button",{onClick:o,children:"Reset"})]})}var Dt=require("react"),Ye=(0,Dt.createContext)(null);function zn(){return(0,Dt.useContext)(Ye)}var Ne=require("react"),Hn=(0,Ne.createContext)(()=>{}),On=(0,Ne.createContext)(()=>{});function oe(e,t,n,r,o=[]){let i=(0,Ne.useContext)(e==="portal"?On:Hn);(0,Ne.useEffect)(()=>(e!=="none"&&i(t,n,r),()=>{i(t,null)}),[t,e,i,...o])}var Qe=require("react");var no=require("react");function A(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.canvas,a=P(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,no.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var Bn=(0,Qe.createContext)(()=>{});function ro(e){let t=A(),n=(0,Qe.useContext)(Bn);(0,Qe.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var L=require("react/jsx-runtime");function io({children:e,errorFallback:t,outerContainerProps:n={},worldScale:r,...o}){let[i,a]=(0,W.useState)(),s=Mn(),c=t||to,[u,l]=(0,W.useState)({}),d=Object.entries(u),[v,y]=(0,W.useState)({}),h=Object.entries(v),[g,S]=(0,W.useState)({}),C=(0,W.useMemo)(()=>r||Math.max(...Object.values(g)),[g]),w=(0,W.useMemo)(()=>({maxOverZoom:C||1,...o.runtimeOptions||{}}),[C,o.runtimeOptions]),m=(0,W.useCallback)((M,B)=>{S(_=>{if(B===-1){let{[M]:x,...ee}=_;return ee}return{..._,[M]:B}})},[]),H=(0,W.useCallback)((M,B,_)=>{l(({[M]:x,...ee})=>B?{...ee,[M]:{element:B,props:_}}:ee)},[]),fe=(0,W.useCallback)((M,B,_)=>{y(({[M]:x,...ee})=>B?{...ee,[M]:{element:B,props:_}}:ee)},[]);return(0,L.jsxs)(oo.ErrorBoundary,{resetKeys:[],fallbackRender:M=>(0,L.jsx)(c,{...o,...M}),children:[(0,L.jsx)(qt.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,L.jsx)(L.Fragment,{children:d.map(([M,{element:B,props:_}])=>(0,L.jsx)(W.default.Fragment,{children:(0,L.jsx)(B,{..._||{}})},M))}),onCreated:M=>{a(M),o.onCreated&&o.onCreated(M)},runtimeOptions:w,children:(0,L.jsx)(Ye.Provider,{value:i,children:(0,L.jsx)(Bn.Provider,{value:m,children:(0,L.jsx)(Hn.Provider,{value:H,children:(0,L.jsx)(On.Provider,{value:fe,children:(0,L.jsx)(Nn,{bridge:s,children:(0,L.jsx)(qt.ModeContext.Provider,{value:o.mode||"explore",children:(0,L.jsx)(Ln,{children:e})})})})})})})}),(0,L.jsx)("div",{children:h.map(([M,{element:B,props:_}])=>(0,L.jsx)(W.default.Fragment,{children:(0,L.jsx)(B,{..._||{}})},M))})]})}var Wt=require("@atlas-viewer/atlas");var Fn=require("react"),ao=require("@iiif/helpers/events");function lt(e,t){let n=b(),r=(0,Fn.useMemo)(()=>(0,ao.createEventsHelper)(n),[n]),o=P(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,Fn.useMemo)(()=>e?r.getListenersAsProps(e,t):{},[o,e,n,t])}var so=require("react"),co=require("@iiif/helpers/styles");function ke(e,t){let n=b(),r=(0,so.useMemo)(()=>(0,co.createStylesHelper)(n),[n]);return P(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?t?o[t]:o:void 0},[e,t])}var mo=require("react");var uo=require("react");var lo=require("@iiif/helpers/annotation-targets");function dt(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=b(),a=n||o.annotation,s=P(u=>a?u.iiif.entities.Annotation[a]:void 0,[a]),c=P(u=>s&&s.body?s.body.map(l=>l?l.type==="SpecificResource"?{...l,source:i.get(l)}:l?u.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[s]);return(0,uo.useMemo)(()=>{if(!s)return;let u={...s,body:c,target:(0,lo.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping})};return r?r(u):u},[s,r,c,...t])}var fo=require("react/jsx-runtime"),Ut=({id:e,style:t,className:n,interactive:r})=>{let o=dt({id:e}),i=ke(o,"atlas"),a=ke(o,"html"),s=lt(o,["atlas"]),c=A(),u=(0,mo.useMemo)(()=>(0,Wt.mergeStyles)(t,i),[t,i]);return c&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===c.id||o.target.source===c.id)?(0,fo.jsx)(Wt.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:u,className:a?.className||n,interactive:!!(a?.href||r),href:a?.href||null,title:a?.title||null,hrefTarget:a?.target||null,onClick:()=>{},...s}):null};var go=require("react");var po=require("react");function Dn(e={},t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.annotationPage,a=P(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,po.useMemo)(()=>{if(a)return r?r(a):a},[a,...t])}var qn=require("react/jsx-runtime"),mt=({className:e,page:t})=>{let n=Dn({id:t.id})||t,r=ke(n,"atlas"),o=ke(n,"html");return P(i=>n.id?i.iiif.entities.AnnotationPage[n.id]:null,[]),(0,qn.jsx)(go.Fragment,{children:n.items?.map(i=>(0,qn.jsx)(Ut,{id:i.id,style:r,className:o?.className||e},i.id))})};var $o=require("@iiif/helpers/styles");var pt=require("react");var ft=require("@atlas-viewer/atlas");var ae=se(require("react"),1),ie=require("react/jsx-runtime"),vo=ae.default.createContext("en"),yo=ae.default.createContext({}),So=ae.default.createContext(null);function Li(e){return(0,ie.jsx)(yo.Provider,{value:e.translations,children:e.children})}function zi(e){return(0,ie.jsx)(vo.Provider,{value:e.language,children:e.children})}function Hi(e){return(0,ie.jsx)(So.Provider,{value:e.convert,children:e.children})}function Wn(){return ae.default.useContext(So)}function $t(){return ae.default.useContext(vo)}function Un(){return ae.default.useContext(yo)}function ho(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function xo({as:e,language:t,children:n,viewingDirection:r,...o}){let i=$t();return(0,ae.useMemo)(()=>ho(i)===ho(t),[i,t])?e?(0,ie.jsx)(e,{...o,children:n}):(0,ie.jsx)("span",{...o,children:n}):e?(0,ie.jsx)(e,{...o,lang:t,dir:r,children:n}):(0,ie.jsx)("span",{...o,lang:t,dir:r,children:n})}function Co(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&t.indexOf(r)!==-1)return r;for(let o of n)if(t.indexOf(o)!==-1)return o;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var bo=(e,t=[])=>{let n=$t();return(0,ae.useMemo)(()=>{let r=e();return Co(n,r,[])},[n,...t])};function Ee(e,t,n,r){return t?n?n(e[t]||t,r||"none"):e[t]||t:""}function Po(e,t,n=`
|
|
2
|
-
`,r={}){let o=
|
|
3
|
-
`,s=t){let c=Object.keys(o||{}),
|
|
4
|
-
`):""}}function K({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:r,separator:o,...i}){let a=Un(),[s,c]=Po(r,t,o,a);return c?(0,ie.jsx)(xo,{...i,as:e,language:c,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,ie.jsx)(e,{...i,children:s}):(0,ie.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var J=require("react/jsx-runtime");function Bi({resource:e,heading:t,note:n,extra:r}){return r?(0,J.jsx)(ft.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,J.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,J.jsxs)("div",{children:[(0,J.jsx)(K,{children:t||"Not authorised"}),n&&(0,J.jsx)("p",{children:(0,J.jsx)(K,{children:n})}),(0,J.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Ao({image:e,thumbnail:t,crop:n,enableSizes:r}){if(!Rn()){let i=e.service,a=i.width||e.width||0,s=i.height||e.height||0;return(0,J.jsx)(ft.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}return(0,J.jsx)(In,{resource:e.service,errorComponent:Bi,extra:e,children:i=>{let a=i.width||e.width||0,s=i.height||e.height||0;return(0,J.jsx)(ft.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}},e.id)}var Ve=require("react/jsx-runtime");function _t({id:e,image:t,thumbnail:n,isStatic:r,x:o=0,y:i=0,children:a,selector:s,onClick:c,enableSizes:u}){let l=(0,pt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]);return(0,Ve.jsx)("world-object",{x:o+t.target.spatial.x,y:i+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:c,children:t.service?(0,Ve.jsxs)(pt.Fragment,{children:[(0,Ve.jsx)(Ao,{image:t,thumbnail:n,crop:l,enableSizes:u}),a]},"service"):(0,Ve.jsxs)(pt.Fragment,{children:[(0,Ve.jsx)("world-image",{onClick:c,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:l}),a]},"no-service")},e+(t.service?"server":"no-service"))}var ce=require("react"),_o=require("@atlas-viewer/atlas");var je=require("react");var Ro=require("@iiif/helpers");function Fi(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function gt(e,t){let{selector:n,source:r}=(0,Ro.expandTarget)(t);if(r.id!==e.id)return[null,r];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:o.spatial}:n:null,r]}var $n={makeChoice:()=>{}},ht={type:"unknown"},I=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),_n=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var vt=require("react");function Di(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Io(e,t){return P(n=>{let r=[];if(!e)return r;let o=Object.keys(n.iiif.entities.AnnotationPage);for(let i of o)if(!t||t.indexOf(i)!==-1){let a=Di(n,i);a&&a.views&&a.views[e]&&r.push(i)}return r},[e,t])}function Yn({canvas:e,manifest:t,all:n,canvases:r}){let o=[];if(t)for(let i of t.annotations)o.indexOf(i.id)===-1&&o.push(i.id);if(n){if(r&&r.length)for(let i of r)for(let a of i.annotations)o.indexOf(a.id)===-1&&o.push(a.id)}else if(e)for(let i of e.annotations)o.indexOf(i.id)===-1&&o.push(i.id);return o}function qi(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function yt(e,t={}){let n=b(),r=E(),o=A(),i=Ie(),a=(0,vt.useMemo)(()=>Yn({all:t.all,manifest:r,canvas:o,canvases:i}),[t.all,o,i,r]),s=Io(e,t.all?void 0:a),c=(0,vt.useCallback)(l=>{e&&n.setMetaValue([l,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),u=(0,vt.useCallback)((l,d={})=>{if(!e)return;let v=n.getState(),y=[];if(d?.deselectOthers){let h=Object.keys(v.iiif.entities.AnnotationPage);for(let g of h){let S=qi(v,g);S&&S.views&&S.views[e]&&y.push(g)}}for(let h of y)c(h);n.setMetaValue([l,"annotationPageManager","views"],h=>h&&h[e]?h:{...h||{},[e]:!0})},[e,c,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:u,setPageDisabled:c}}function Qn(e,t){return P((n,r)=>r.get(e.map(o=>({id:o,type:t}))),[e,t])}var ve=require("react");var Yt=se(require("react"),1),To=require("@atlas-viewer/iiif-image-api"),wo=Yt.default.createContext(new To.ImageServiceLoader);function me(){return(0,Yt.useContext)(wo)}function jn(){let e=me(),[t,n]=(0,ve.useState)({}),r=(0,ve.useRef)(!1);return(0,ve.useEffect)(()=>()=>{r.current=!0},[]),[(0,ve.useCallback)((i,{height:a,width:s})=>{if(i){let c=i.id||i["@id"],u=e.loadServiceSync({id:c,width:i.width||s,height:i.height||a,source:i});u?i=u:t[c]||(r.current||n(l=>({...l,[c]:"loading"})),e.loadService({id:c,width:i.width||s,height:i.height||a}).then(()=>{r.current||n(l=>({...l,[c]:"done"}))}))}return i},[e,t]),t]}var ze=require("react");function Le(e={}){let t=dt(),n=A(e.canvasId?{id:e.canvasId}:void 0);return P((r,o)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=o.get(n.items),a=[];for(let s of i)a.push(...o.get(s.items));return a},[n])}var Mo=require("@iiif/helpers/painting-annotations");function Gn(e,t=[]){let n=b(),r=(0,ze.useMemo)(()=>(0,Mo.createPaintingAnnotationsHelper)(n),[]),o=Le({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,ze.useState)(e?.defaultChoices||[]),s=(0,ze.useMemo)(()=>r.getPaintables(o,i),[n,o,i,...t]),u={makeChoice:(0,ze.useCallback)((l,{deselectOthers:d=!0,deselect:v=!1}={})=>{s.choice&&a(y=>{if(v){let g=y.filter(S=>S!==l);if(g.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return g}if(d)return[l];let h=[...y];if(h.length===0&&s.items.length){let g=s.items[0].resource.id;g&&h.push(g)}return y.indexOf(l)!==-1?y:[...y,l]})},[s.choice])};return[s,u]}var Wi=["model/gltf-binary"];function Kn(e,t){let r=t.items[0].resource;return r.format?Wi.indexOf(r.format)===-1?I(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r}:I("Unknown format")}function No(e,t){if(!e.duration)return I("No duration on canvas");if(t.items.length>1)return I("Only one audio source supported");let n=t.items[0]?.resource;return n?n.format?{type:"media",media:{annotationId:t.items[0].annotationId,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:[]}}:I("Audio does not have format"):I("Unknown audio")}var ko=require("@atlas-viewer/iiif-image-api");var Xn=require("@iiif/helpers/annotation-targets");function Zn(e,t,n){let r=[];for(let o of t.items){let i=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!i.id)return I("No resource Identifier");let a;if(i.service){let h=(0,ko.getImageServices)(i);h[0]&&(a=n(h[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[c,u]=gt(e,o.target);if(!(u.id===e.id||decodeURIComponent(u.id||"")===(e.id||"")))continue;let l=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,d=o.resource.type==="SpecificResource"?(0,Xn.expandTarget)(o.resource):null;if(o.selector){let h=(0,Xn.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});h&&(d=h)}let v=d&&d.selector&&(d.selector.type==="BoxSelector"||d.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:d.selector.spatial.x,y:d.selector.spatial.y,width:d.selector.spatial.width,height:d.selector.spatial.height}}:void 0;a&&!a.id&&(a.id=a["@id"]);let y={id:i.id,type:"Image",annotationId:o.annotationId,width:Number(c||v?i.width:e.width),height:Number(c||v?i.height:e.height),service:a,sizes:a&&a.sizes?a.sizes:i.width&&i.height?[{width:i.width,height:i.height}]:[],target:c&&c.type!=="PointSelector"?c:s,selector:v};r.push(y)}return{type:"images",image:r[0],images:r,choice:t.choice}}function Eo(e,t={},n){let r=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[r]=e.value);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>Eo(o,t,r))}return t}function Jn(e,t){let n=[];return t.items.forEach(r=>{if(r.resource){let[o]=gt(e,r.target);n.push({annotationId:r.annotationId,text:Eo(r.resource),target:o})}}),{type:"textual-content",items:n}}var Ui=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function er(e,t){let n=t.items.filter(s=>s.type==="video"),r=!1;if(e.duration||(r=!0),n.length>1)return I("Only one video source supported");let o=n[0]?.resource,i=!!(o.service||[]).find(s=>(s.profile||"").includes("youtube.com"));if(!i&&r)return I("Video does not have duration");if(!o)return I("Unknown video");if((!o.format||o.format==="text/html")&&!i)return I("Video does not have format");let a={annotationId:t.items[0].annotationId,duration:e.duration,url:o.id,type:"Video",items:[],target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:o.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}};if(i){a.type="VideoYouTube";let s=o.id.match(Ui);if(!s[1])return I("Video is not known youtube video");a.youTubeId=s[1]}return{type:"media",media:a,annotations:{pages:[]}}}function tr({canvas:e,paintables:t,supports:n,loadImageService:r}){if(!e)return ht;if(t.types.length===0)return n.indexOf("empty")!==-1?_n(e.width,e.height):ht;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?I("Complex timeline not supported"):I("ComplexTimelineStrategy not yet supported");let o=t.types[0];return o==="image"?n.indexOf("images")===-1?I("Image not supported"):Zn(e,t,r):o==="Model"||o==="model"?n.indexOf("3d-model")===-1?I("3D not supported"):Kn(e,t):o==="textualbody"?n.indexOf("textual-content")===-1?I("Textual content not supported"):Jn(e,t):o==="sound"||o==="audio"?n.indexOf("media")===-1?I("Media not supported"):No(e,t):o==="video"?n.indexOf("media")===-1?I("Media not supported"):er(e,t):ht}function nr(e){let t=E(),n=A(),r=b(),o=ut(),i=e?.emitter||o,[a,s]=jn(),{enabledPageIds:c}=yt(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=Qn(c,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,v]=Gn(e,[s]);(0,je.useEffect)(()=>{let h=g=>{v.makeChoice(g.choiceId,{deselectOthers:g.deselectOthers,deselect:g.deselect})};return i.on("make-choice",h),()=>{i.off("make-choice",h)}},[]);let y=(0,je.useMemo)(()=>tr({canvas:n,paintables:d,supports:l,loadImageService:a}),[n,d,r,v.makeChoice]);return(0,je.useEffect)(()=>{let h=d.allChoices,g={canvasId:n?.id,manifestId:t?.id};h&&i.emit("choice-change",{choice:h,partOf:g})},[n?.id,d.allChoices]),(0,je.useMemo)(()=>y.type==="unknown"?[y,$n]:[{...y,annotations:{pages:u}},v],[y,u])}var ye=require("react");var Vo=require("react"),rr=(e,t=[])=>{let n=b();(0,Vo.useEffect)(()=>{e(n)},[n,...t])};var Lo=require("@iiif/helpers/thumbnail");function He(e,t,{canvasId:n,manifestId:r}={}){let o=b(),i=me(),a=(0,ye.useMemo)(()=>(0,Lo.createThumbnailHelper)(o,{imageServiceLoader:i}),[o,i]),[s,c]=(0,ye.useState)(),u=E(r?{id:r}:void 0),l=A(n?{id:n}:void 0),d=l||u,v=(0,ye.useRef)(!1);if((0,ye.useEffect)(()=>(v.current=!1,()=>{v.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return rr(y=>{a.getBestThumbnailAtSize(d,e,t).then(h=>{h.best&&!v.current&&c(h.best)})},[d]),s}var V=require("react");function $i(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function _i(e,t){switch(t.type){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 zo(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Oe(e){let[t,n]=(0,V.useReducer)(_i,$i(e.duration)),r=(0,V.useRef)(null),o=(0,V.useRef)(null),i=(0,V.useRef)(null),a=(0,V.useRef)(!1),s=(0,V.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=zo(r.current.currentTime),i.current&&(i.current.style.width=`${r.current.currentTime/e.duration*100}%`),a.current!==r.current.muted&&(a.current=r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),c=(0,V.useCallback)(()=>{r.current&&(n({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),u=(0,V.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?c():l())},[s]),l=(0,V.useCallback)(()=>{r.current&&(r.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),v=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!0,n({type:"MUTE"}))},[]),y=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!1,n({type:"UNMUTE"}))},[]),h=(0,V.useCallback)(C=>{r.current&&(r.current.muted=!1,r.current.volume=C/100,n({type:"SET_VOLUME",volume:C}))},[]),g=(0,V.useCallback)(C=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(C*e.duration,e.duration)),s())},[]),S=(0,V.useCallback)(C=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(C,e.duration)),s())},[]);return(0,V.useEffect)(()=>{let C=setInterval(()=>{s()},350);return()=>clearInterval(C)},[s,e.duration]),(0,V.useEffect)(()=>{let C=()=>{n({type:"FINISHED"})},w=r.current;return w?.addEventListener("ended",C),()=>w?.removeEventListener("ended",C)},[]),[{element:r,currentTime:o,progress:i},t,{play:c,pause:l,playPause:u,mute:v,unmute:y,toggleMute:d,setVolume:h,setDurationPercent:g,setTime:S}]}var Se=require("react"),Qt=require("react/jsx-runtime"),Ho=(0,Se.createContext)(null),Oo=(0,Se.createContext)(null),Bo=(0,Se.createContext)(null);function Yi(){let e=(0,Se.useContext)(Ho);if(!e)throw new Error("Ctx not found");return e}function Qi(){let e=(0,Se.useContext)(Oo);if(!e)throw new Error("Ctx not found");return e}function ji(){let e=(0,Se.useContext)(Bo);if(!e)throw new Error("Ctx not found");return e}function St({actions:e,state:t,children:n,currentTime:r,progress:o,element:i}){return(0,Qt.jsx)(Bo.Provider,{value:{currentTime:r,progress:o,element:i},children:(0,Qt.jsx)(Oo.Provider,{value:e,children:(0,Qt.jsx)(Ho.Provider,{value:t,children:n})})})}var Fo=require("react");var Do=require("@iiif/helpers");function xt(){let e=E(),t=A();return(0,Fo.useMemo)(()=>{if(!e||!t||!e.start)return null;let n=(0,Do.expandTarget)(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}var Gt=require("react/jsx-runtime");function or({media:e,startTime:t,children:n}){let[{element:r,currentTime:o,progress:i},a,s]=Oe({duration:e.duration}),c=t?`${e.url}#t=${t}`:e.url;return(0,Gt.jsxs)(St,{state:a,actions:s,currentTime:o,progress:i,element:r,children:[(0,Gt.jsx)("audio",{ref:r,src:c}),n]})}function jt({media:e,mediaControlsDeps:t,children:n}){let r=xt();return oe("portal","audio",or,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var Ct=require("react/jsx-runtime");function ir({element:e,media:t,startTime:n,playPause:r,poster:o}){let i="div",a=n?`${t.url}#t=${n}`:t.url;return(0,Ct.jsxs)(i,{className:"video-container",part:"video-container",onClick:r,children:[(0,Ct.jsx)("style",{children:`
|
|
1
|
+
"use strict";var Ni=Object.create;var zt=Object.defineProperty;var Vi=Object.getOwnPropertyDescriptor;var Li=Object.getOwnPropertyNames;var zi=Object.getPrototypeOf,Hi=Object.prototype.hasOwnProperty;var Oi=(e,t)=>{for(var n in t)zt(e,n,{get:t[n],enumerable:!0})},Lt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Li(t))!Hi.call(e,o)&&o!==n&&zt(e,o,{get:()=>t[o],enumerable:!(r=Vi(t,o))||r.enumerable});return e},p=(e,t,n)=>(Lt(e,t,"default"),n&&Lt(n,t,"default")),oe=(e,t,n)=>(n=e!=null?Ni(zi(e)):{},Lt(t||!e||!e.__esModule?zt(n,"default",{value:e,enumerable:!0}):n,e)),Bi=e=>Lt(zt({},"__esModule",{value:!0}),e);var f={};Oi(f,{AnnotationContext:()=>Ma,AnnotationPageContext:()=>ka,AnnotationStyleProvider:()=>Ia,Auth:()=>zn,AuthProvider:()=>Vn,AuthRContext:()=>Me,AuthReactContext:()=>jr,AuthReactContextActions:()=>Qr,CanvasAnnotations:()=>ga,CanvasContext:()=>te,CanvasPanel:()=>D,CollectionContext:()=>Ea,CombinedMetadata:()=>ha,ComplexTimelineProvider:()=>vr,ContextBridge:()=>Fn,CreateCustomShape:()=>wr,EventsProvider:()=>Gi,Image:()=>pi,ImageServiceLoaderContext:()=>Bo,InnerViewerProvider:()=>no,LanguageProvider:()=>Zi,LanguageString:()=>ko,LocaleString:()=>ee,ManifestContext:()=>bn,ManifestMetadata:()=>ya,MediaPlayerProvider:()=>At,Metadata:()=>Et,PolygonSelector:()=>wa,RangeContext:()=>Pn,ReactEventContext:()=>ke,ReactVaultContext:()=>pe,RenderSvgEditorControls:()=>Pa,ResourceProvider:()=>U,ResourceReactContext:()=>it,SelectorControllerProvider:()=>Ra,SequenceThumbnails:()=>Ca,SimpleViewerProvider:()=>On,SimpleViewerReactContext:()=>Ke,SingleCanvasThumbnail:()=>Sr,TranslationProvider:()=>Xi,TransliterationProvider:()=>Ji,VaultProvider:()=>Ae,ViewerPresetContext:()=>Qe,VirtualAnnotationProvider:()=>Wn,VisibleCanvasReactContext:()=>Ie,authDetailsForResource:()=>kn,createAuthStateStore:()=>wn,createProbe:()=>Mn,defaultEmitter:()=>io,emptyActions:()=>Jn,emptyStrategy:()=>er,findAllCanvasesInRange:()=>Bt,findFirstCanvasFromRange:()=>Wr,findManifestSelectedRange:()=>Di,findSelectedRange:()=>Rn,flattenAnnotationPageIds:()=>tr,formatTime:()=>Zt,get3dStrategy:()=>ir,getComplexTimelineStrategy:()=>cr,getDefaultAnnotationStyles:()=>Pr,getImageStrategy:()=>Pt,getManifestSequence:()=>Ft,getParsedTargetSelector:()=>St,getRenderingStrategy:()=>lr,getTextualContentStrategy:()=>sr,getVideoStrategy:()=>Rt,getVisibleCanvasesFromCanvasId:()=>qi,hasAuth:()=>$i,makeAccessServiceRequest:()=>Tn,makeAccessTokenRequest:()=>Dt,parseSpecificResource:()=>na,svgThemes:()=>bi,unknownResponse:()=>xt,unsupportedStrategy:()=>V,useAnnotation:()=>gt,useAnnotationPage:()=>Qn,useAnnotationPageManager:()=>bt,useAnnotationStyles:()=>Ar,useAnnotationsAtTime:()=>Na,useAuthActions:()=>Gr,useAuthService:()=>Xr,useAuthStore:()=>Ue,useAuthToken:()=>Ui,useAuthTokens:()=>En,useCanvas:()=>k,useCanvasChoices:()=>Va,useCanvasClock:()=>La,useCanvasSequence:()=>An,useCanvasStartTime:()=>Tt,useCanvasSubset:()=>za,useClosestLanguage:()=>No,useCollection:()=>Ha,useComplexTimeline:()=>fa,useContextBridge:()=>Bn,useCreateLocaleString:()=>ea,useCurrentAuth:()=>Wi,useDispatch:()=>Dn,useEventEmitter:()=>ft,useEventListener:()=>Oa,useExistingVault:()=>Te,useExternalCollection:()=>Ba,useExternalManifest:()=>Cn,useExternalResource:()=>st,useIIIFLanguage:()=>Qt,useImage:()=>dn,useImageService:()=>Er,useImageServiceLoader:()=>fe,useImageTile:()=>Fa,useIsAuthEnabled:()=>Ln,useLoadImageService:()=>rr,useLocaleString:()=>Vo,useManifest:()=>H,useMediaActions:()=>ua,useMediaElements:()=>ma,useMediaState:()=>la,usePaintables:()=>or,usePaintingAnnotations:()=>He,usePolygonHelper:()=>Tr,useRange:()=>ct,useRenderingStrategy:()=>ur,useResourceContext:()=>$,useResourceEvents:()=>pt,useResources:()=>nr,useSearchService:()=>Hn,useSelectorController:()=>br,useSelectorEmitter:()=>Aa,useSelectorEvents:()=>Cr,useSelectorHelper:()=>Ta,useSimpleMediaPlayer:()=>Fe,useSimpleViewer:()=>dt,useStyleHelper:()=>Da,useStyles:()=>Ve,useSvgEditor:()=>Ir,useThumbnail:()=>Be,useTranslations:()=>Zn,useTransliteration:()=>Xn,useVault:()=>T,useVaultEffect:()=>mr,useVaultSelector:()=>w,useViewerPreset:()=>Un,useVirtualAnnotationPage:()=>qn,useVirtualAnnotationPageContext:()=>$n,useVisibleCanvases:()=>we});module.exports=Bi(f);var Mt=require("react");var _=oe(require("react"),1),Kt=require("@atlas-viewer/atlas"),go=require("react-error-boundary");var he=require("react");var qe=oe(require("react"),1),Vr=require("react/jsx-runtime"),Fi={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},it=qe.default.createContext(Fi),$=()=>(0,qe.useContext)(it);function U({value:e,children:t}){let n=$(),r=(0,qe.useMemo)(()=>({...n,...e}),[e,n]);return(0,Vr.jsx)(it.Provider,{value:r,children:t})}var Ht=oe(require("react"),1),at=require("@iiif/helpers/vault");var xn=require("react/jsx-runtime"),pe=Ht.default.createContext({vault:null,setVaultInstance:e=>{}});function Ae({vault:e,vaultOptions:t,useGlobal:n,resources:r,children:o}){let[i,a]=(0,Ht.useState)(()=>e||(n?(0,at.globalVault)(t):t?new at.Vault(t):new at.Vault));return(0,xn.jsx)(pe.Provider,{value:{vault:i,setVaultInstance:a},children:(0,xn.jsx)(U,{value:r||{},children:o})})}var to=require("react"),$t=require("react");var Lr=require("@iiif/helpers/vault"),zr=require("react");function Te(e){let t=(0,zr.useContext)(pe);return e||(t&&t.vault?t.vault:(0,Lr.globalVault)())}var ge=require("react");function st(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,r=Te(),[o,i]=(0,ge.useState)(n),[a,s]=(0,ge.useState)(void 0),c=(0,ge.useMemo)(()=>r.get(n,{skipSelfReturn:!0})||void 0,[n,r]),[l,u]=(0,ge.useState)(c);return(0,ge.useEffect)(()=>{(async()=>{try{let d=c&&!t?c:await r.load(n),v=d?d.id||d["@id"]:null;d&&o!==v&&i(v),u(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!l,id:o,requestId:n,error:a,resource:l,cached:!!(l&&l===c)}}function Cn(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=st(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var Hr=require("react/jsx-runtime");function bn({manifest:e,children:t}){return(0,Hr.jsx)(U,{value:{manifest:e},children:t})}var Or=require("react/jsx-runtime");function te({canvas:e,children:t}){return(0,Or.jsx)(U,{value:{canvas:e},children:t})}var Fr=require("react"),Dr=oe(require("react"),1);var Br=require("react"),T=()=>{let{vault:e}=(0,Br.useContext)(pe);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Ot=require("react");function w(e,t=[]){let n=T(),[r,o]=(0,Ot.useState)(()=>e(n.getState(),n));return(0,Ot.useEffect)(()=>n.subscribe(i=>e(i,n),i=>{o(i)},!1),t),r}var Ie=Dr.default.createContext([]);function we(){let e=(0,Fr.useContext)(Ie);return w(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var qr=require("react");function H(e={},t=[]){let{id:n,selector:r}=e,o=$(),i=T(),a=n||o.manifest,s=w(c=>a?c.iiif.entities.Manifest[a]:void 0,[a]);return(0,qr.useMemo)(()=>{if(s)return r?r(s):s},[s,r,...t])}var $r=require("react/jsx-runtime");function Pn({range:e,children:t}){return(0,$r.jsx)(U,{value:{range:e},children:t})}function Wr(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 r=Wr(e,e.get(n));if(r)return r}}return null}function Bt(e,t){let n=[];for(let r of t.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?n.push({id:r.source.id.split("#")[0],type:"Canvas"}):n.push(r.source)),r.type==="Range"&&n.push(...Bt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;n.push({id:o,type:"Canvas"})}return n}function Di(e,t,n){for(let r of t.structures){let o=Rn(e,e.get(r),n);if(o)return o}return null}function Rn(e,t,n){for(let r of t.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===n||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&n===o)return t;if(r.type==="Range"){let i=Rn(e,e.get(r),n);if(i)return i}}return null}function qi(e,t,n,r=!1){let o=t.behavior,i=n?e.get(n):null;if(!i)return[];let a=i.behavior,s=r?!1:o.includes("paged"),c=s?!1:o.includes("continuous"),l=s||c?!1:o.includes("individuals"),u=a.includes("facing-pages"),d=a.includes("non-paged");if(u||d||l||r)return[{id:i.id,type:"Canvas"}];let[v,b]=Ft(e,t);if(c)return v;let y=v.findIndex(h=>h.id===n);if(y===-1)return[];for(let h of b)if(h.includes(y))return h.map(x=>v[x]);return[{id:i.id,type:"Canvas"}]}function Ft(e,t,{disablePaging:n,skipNonPaged:r}={}){let o=t.behavior,i=o.includes("paged"),a=i?!1:o.includes("continuous"),s=i||a?!1:o.includes("individuals"),c=t.type==="Manifest"?t.items:Bt(e,t);if(a)return[c,[c.map((y,h)=>h)]];if(s||!i||n)return[c,c.map((y,h)=>[h])];let l=[],u=[],d=()=>{u.length&&(l.push([...u]),u=[])},v=0,b=!1;for(let y=0;y<c.length;y++){let h=e.get(c[y]);if(h.behavior.includes("non-paged")){y===v&&v++,r||(d(),l.push([y]),d());continue}if(y===v||h.behavior.includes("facing-pages")){u.length&&(b=!0),d(),l.push([y]),d();continue}if(u.push(y),b){d(),b=!1;continue}u.length>1&&d()}return u.length&&d(),[c,l]}var ie=require("react");var Ur=require("react");function ct(e={},t=[]){let{id:n,selector:r}=e,o=$(),i=n||o.range,a=w(s=>i?s.iiif.entities.Range[i]:void 0,[i]);return(0,Ur.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}function An({startCanvas:e,disablePaging:t}){let n=T(),r=H(),o=ct(),[i,a]=(0,ie.useState)(void 0),s=o||r;if(!s)throw new Error("Nothing selected");let[c,l]=(0,ie.useMemo)(()=>Ft(n,s,{disablePaging:t}),[n,s,t]),u=(0,ie.useRef)(l);if(u.current!==l){let x=u.current[i][0],g=l.findIndex(P=>P.includes(x));u.current=l,a(g)}let d=(0,ie.useCallback)(h=>{let x=l.findIndex(g=>g.includes(h));a(x===-1?0:x)},[c,l]),v=(0,ie.useCallback)(h=>{let x=c.findIndex(g=>g.id===h);x!==-1?d(x):a(0)},[c,l]),b=(0,ie.useCallback)(()=>{a(h=>h>=l.length-1?h:h+1)},[l]),y=(0,ie.useCallback)(()=>{a(h=>h<=0?0:h-1)},[l]);return typeof i>"u"&&(e?v(e):a(0)),{visibleItems:l[i]?.map(h=>c[h].id)||[],cursor:i,items:c,sequence:l,hasPrevious:i>0,hasNext:i<l.length-1,setSequenceIndex:a,setCanvasIndex:d,setCanvasId:v,next:b,previous:y}}var se=require("react"),We=require("zustand");var In=require("zustand/vanilla");function $i(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function ae(e,t,n){let r=t.findIndex(a=>a.service.id===e);if(r===-1)return t;let o=[...t],i=n(o[r]);return i===o[r]?t:(o[r]=i,o)}var wn=()=>(0,In.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let r=n.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:ae(n.id,t().authItems,o=>({...o,isPending:!0}))})),Tn(n.service).then(()=>{Dt(r).then(o=>{let i=o.expiresIn,a=Date.now()+i*1e3;e(()=>({authItems:ae(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:a}}))}))}).catch(o=>{e(()=>({authItems:ae(n.id,t().authItems,i=>({...i,isLoggedIn:!1,isPending:!1,error:o.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 r=n.service.service.find(a=>a.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${_r()}`,i=window.open(o);e(()=>({authItems:ae(n.id,t().authItems,a=>({...a,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,r=t().currentAuth+1;r>=n||e(()=>({currentAuth:r}))},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,r)=>{if(!n.service)return;let o=n.service.find(s=>s.type==="AuthAccessTokenService2"),i=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:ae(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:i.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!o)throw new Error("Token service not found");Dt(o).then(s=>{e(()=>({authItems:ae(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ae(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:ae(n.id,t().authItems,s=>({...s,isPending:!0}))})),Tn(i).then(()=>{Dt(o).then(s=>{e(()=>({authItems:ae(n.id,t().authItems,c=>({...c,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:ae(n.id,t().authItems,c=>({...c,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,r)=>{let o=t().currentAuth===t().authItems.findIndex(a=>a.service.id===n.id),i=t().currentAuth;if(o){let a=t().authItems.find(c=>c.service.id===n.id);a&&a.instances>1||(i=t().authItems.findIndex(l=>l.service.id!==n.id&&l.instances>0))}e(()=>({authItems:ae(n.id,t().authItems,a=>({...a,instances:a.instances-1})),currentAuth:i}))}})),Mn=(e,t)=>(0,In.createStore)((n,r)=>({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(!r().service)return;let o=r().service?.id;if(!o){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let i=r().token;try{let a=await fetch(o,{headers:i?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(a.status===200)n({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(a.status<400&&a.status>=300){if(!a.location)throw new Error("Redirect location not found");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:a.location||null})}else if(a.status===401)n({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!a.substitute,substituteResource:a.substitute||null,error:"Unauthorized",errorHeading:a.heading||{en:["Unauthorized"]},errorNote:a.note||null});else throw new Error("Unknown error")}catch(a){n({status:"error",error:a.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){n({token:o})}}));function kn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let r of t)if(r.type==="AuthProbeService2"){n.services.probe=r,n.hasAuth=!0;let o=r.service.filter(i=>i.type==="AuthAccessService2");o[0]&&(n.services.access=o[0])}return n}async function Dt(e,{strict:t=!0}={}){return new Promise((n,r)=>{let o=Math.random().toString(36).substring(7),i=`${e.id}?messageId=${o}&origin=${window.location.origin}`,a=l=>{let u=l.data;if(u.messageId===o){if(t&&u.type!=="AuthAccessToken2"){s(),r("Invalid response, expected type=AuthAccessToken2");return}if(!u.accessToken){s(),r("Invalid response, expected accessToken");return}s(),n(u)}},s=()=>window.removeEventListener("message",a),c=document.createElement("iframe");c.src=i,c.style.display="none",document.body.appendChild(c),window.addEventListener("message",a)})}function _r(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 Tn(e){let t=`${e.id}?origin=${_r()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((r,o)=>{let i=setInterval(()=>{n.closed&&(clearInterval(i),r())},500)})}var $e=require("react");var Kr=require("zustand");function Yr(e){let t=(0,$e.useMemo)(()=>kn(e),[e]),n=En(t.services.access?.id),r=(0,$e.useMemo)(()=>Mn(t.services.probe,n),[t.services.probe]),o=(0,Kr.useStore)(r);return(0,$e.useEffect)(()=>{o.status==="unknown"&&!n&&o.probe()},[t.services.probe,o.status]),(0,$e.useEffect)(()=>{n&&(o.setToken(n),o.probe())},[n]),[e,o,t.hasAuth]}var lt=require("react/jsx-runtime"),Me=(0,se.createContext)(null),jr=(0,se.createContext)(null);jr.displayName="CurrentAuth";var Qr=(0,se.createContext)(null);Qr.displayName="AuthActions";function Vn({children:e}){let t=(0,se.useMemo)(()=>wn(),[]);return(0,lt.jsx)(Me.Provider,{value:t,children:e})}function Ln(){return!!(0,se.useContext)(Me)}function Ue(){let e=(0,se.useContext)(Me);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Gr(){let e=Ue();return(0,We.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function Wi(){let e=Ue();return(0,We.useStore)(e,t=>t)}function Xr(e){let t=Ue();return(0,We.useStore)(t,r=>r.authItems.find(o=>o.service.id===e))}function En(e){let t=Ue();return(0,We.useStore)(t,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function Ui(e){let t=Ue();return(0,We.useStore)(t,r=>{let o=r.authItems.find(i=>i.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function _i(e){let t=Gr(),n=Xr(e.service.id);return(0,se.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Nn(){return null}function zn(e){let[t,n,r]=Yr(e.resource),o=e.fallbackComponent||Nn,i=e.loadingComponent||Nn,a=e.errorComponent||Nn,s=n.service,c=null;if(!r||!s)return e.children(t);let l=s.service.filter(u=>u.type==="AuthAccessService2");n.status==="error"&&(c=(0,lt.jsx)(a,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(c=(0,lt.jsx)(i,{})),n.status==="success"&&(c=e.children(t));for(let u of l)c=(0,lt.jsx)(_i,{service:u,probeId:s.id,children:c},u.id);return c}var ut=require("react");var Zr=require("zustand/vanilla"),Ki=e=>e.id||e["@id"];function Yi(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 Jr=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?Ki(t):void 0,r=null;return(0,Zr.createStore)((o,i)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Yi(t):!1,errorMessage:"",search(a,s={}){if(!n)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let c=new URLSearchParams;a.q&&c.set("q",a.q),a.motivation&&c.set("motivation",a.motivation),a.date&&c.set("date",a.date),a.user&&c.set("user",a.user),o({loading:!0}),fetch(`${n}?${c.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async l=>{if(!r?.signal.aborted)if(l.ok){let u=await l.json();o({resources:u.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:l.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(a){let s=i().resources.find(c=>c["@id"]===a);o({highlight:s})},nextResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[0]||null});return}let c=a.findIndex(l=>l["@id"]===s["@id"]);if(c===-1){o({highlight:a[0]||null});return}o({highlight:a[c+1]||a[0]||null})},previousResult(){let a=i().resources,s=i().highlight;if(!s){o({highlight:a[a.length-1]||null});return}let c=a.findIndex(l=>l["@id"]===s["@id"]);if(c===-1){o({highlight:a[a.length-1]||null});return}if(c===0){o({highlight:a[a.length-1]||null});return}o({highlight:a[c-1]||a[a.length-1]||null})}}))};var ji=require("zustand");function Hn(){let e=H();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var qt=require("react/jsx-runtime"),_e=(0,ut.createContext)(null);_e.displayName="Search";function eo(e){let t=Hn();return e.store?(0,qt.jsx)(_e.Provider,{value:e.store,children:e.children}):(0,qt.jsx)(Qi,{service:t,children:e.children})}function Qi({service:e,children:t}){let n=(0,ut.useMemo)(()=>Jr(e),[e]);return(0,qt.jsx)(_e.Provider,{value:n,children:t})}var G=require("react/jsx-runtime"),mt=()=>{},Ke=(0,$t.createContext)({setCurrentCanvasId:mt,setCurrentCanvasIndex:mt,nextCanvas:mt,previousCanvas:mt,items:[],sequence:[],setSequenceIndex:mt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function no(e){let t=H(),{cursor:n,visibleItems:r,next:o,sequence:i,items:a,setCanvasIndex:s,setCanvasId:c,previous:l,setSequenceIndex:u,hasNext:d,hasPrevious:v}=An({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),b=(0,$t.useMemo)(()=>({sequence:i,items:a,setCurrentCanvasId:c,nextCanvas:o,previousCanvas:l,totalCanvases:a.length,setCurrentCanvasIndex:s,setSequenceIndex:u,currentSequenceIndex:n,hasNext:d,hasPrevious:v}),[i,a,c,o,l,a,s,u,n]);return t?r.length===0?null:(0,G.jsx)(Ke.Provider,{value:b,children:(0,G.jsx)(Ie.Provider,{value:r,children:(0,G.jsx)(te,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,G.jsx)("div",{children:"Sorry, something went wrong."}))}function On(e){let t=Te(e.vault),n=Cn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,G.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,G.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,G.jsx)("div",{children:"Loading..."});let r=(0,G.jsx)(no,{...e,children:e.children});return(0,G.jsx)(Ae,{vault:t,children:(0,G.jsx)(bn,{manifest:n.id,children:(0,G.jsx)(Vn,{children:(0,G.jsx)(eo,{children:e.rangeId?(0,G.jsx)(Pn,{range:e.rangeId,children:r}):r})})})})}function dt(){return(0,to.useContext)(Ke)}var ro=oe(require("react"),1),Wt=require("react"),oo=oe(require("mitt"),1),ao=require("react/jsx-runtime"),io=(0,oo.default)(),ke=(0,Wt.createContext)({emitter:io});ke.displayName="Events";function ft(){return ro.default.useContext(ke).emitter}function Gi({emitter:e,children:t}){return(0,ao.jsx)(ke.Provider,{value:(0,Wt.useMemo)(()=>({emitter:e}),[e]),children:t})}var Ee=require("react/jsx-runtime");function Bn(){return{VaultContext:(0,he.useContext)(pe),ResourceContext:(0,he.useContext)(it),SimpleViewerReactContext:(0,he.useContext)(Ke),VisibleCanvasReactContext:(0,he.useContext)(Ie),AuthRContext:(0,he.useContext)(Me),SearchReactContext:(0,he.useContext)(_e),ReactEventContext:(0,he.useContext)(ke)}}function Fn(e){return(0,Ee.jsx)(Ae,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,Ee.jsx)(Ie.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,Ee.jsx)(Ke.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,Ee.jsx)(ke.Provider,{value:e.bridge.ReactEventContext,children:(0,Ee.jsx)(Me.Provider,{value:e.bridge.AuthRContext,children:(0,Ee.jsx)(_e.Provider,{value:e.bridge.SearchReactContext,children:e.children})})})})})})}var Ye=require("react");var de=require("react");var Ut=require("@iiif/helpers/vault/actions");var so=require("react");function Dn(){let t=T().getStore();return(0,so.useMemo)(()=>n=>t.dispatch(n),[t])}function co(e){return typeof e!="string"&&e&&e.bindToVault}function qn(){let e=T(),t=(0,de.useRef)([]),n=Dn(),r=(0,de.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,de.useLayoutEffect)(()=>{let s={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Ut.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[r]);let o=w(s=>r&&s.iiif.entities.AnnotationPage[r]||null,[r]),i=(0,de.useCallback)((s,c)=>{if(r){if(co(s)){let d=s;d.__vault||d.bindToVault(e),s=typeof d.source=="string"?d.source:d.source.id,t.current[s]=d}else typeof s!="string"&&(s=s.id);let l=e.get({id:r,type:"AnnotationPage"}),u=e.get({id:s,type:"Annotation"});l&&u&&(l.items.find(d=>d.id===u.id)||n(Ut.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:c})))}},[r]),a=(0,de.useCallback)(s=>{r&&(co(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&n(Ut.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[r]);return[o,{addAnnotation:i,removeAnnotation:a}]}var uo=require("react/jsx-runtime"),lo=(0,Ye.createContext)(null);function $n(){let e=(0,Ye.useContext)(lo);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Wn({children:e}){let[t,{addAnnotation:n,removeAnnotation:r}]=qn();return(0,uo.jsx)(lo.Provider,{value:(0,Ye.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:r}),[t]),children:e})}var je=require("react/jsx-runtime");function mo({width:e,style:t,height:n,error:r,resetErrorBoundary:o}){return(0,je.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,je.jsx)("h3",{children:"Error occurred"}),(0,je.jsx)("p",{children:r.message}),(0,je.jsx)("button",{onClick:o,children:"Reset"})]})}var _t=require("react"),Qe=(0,_t.createContext)(null);function Un(){return(0,_t.useContext)(Qe)}var Ne=require("react"),_n=(0,Ne.createContext)(()=>{}),Kn=(0,Ne.createContext)(()=>{});function J(e,t,n,r,o=[]){let i=(0,Ne.useContext)(e==="portal"?Kn:_n);(0,Ne.useEffect)(()=>(e!=="none"&&i(t,n,r),()=>{i(t,null)}),[t,e,i,...o])}var Ge=require("react");var fo=require("react");function k(e={},t=[]){let{id:n,selector:r}=e,o=$(),i=n||o.canvas,a=w(s=>i?s.iiif.entities.Canvas[i]:void 0,[i]);return(0,fo.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var Yn=(0,Ge.createContext)(()=>{});function po(e){let t=k(),n=(0,Ge.useContext)(Yn);(0,Ge.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var B=require("react/jsx-runtime");function ho({children:e,errorFallback:t,outerContainerProps:n={},worldScale:r,...o}){let[i,a]=(0,_.useState)(),s=Bn(),c=t||mo,[l,u]=(0,_.useState)({}),d=Object.entries(l),[v,b]=(0,_.useState)({}),y=Object.entries(v),[h,x]=(0,_.useState)({}),g=(0,_.useMemo)(()=>r||Math.max(...Object.values(h)),[h]),P=(0,_.useMemo)(()=>({maxOverZoom:g||1,...o.runtimeOptions||{}}),[g,o.runtimeOptions]),m=(0,_.useCallback)((R,I)=>{x(A=>{if(I===-1){let{[R]:re,...C}=A;return C}return{...A,[R]:I}})},[]),S=(0,_.useCallback)((R,I,A)=>{u(({[R]:re,...C})=>I?{...C,[R]:{element:I,props:A}}:C)},[]),E=(0,_.useCallback)((R,I,A)=>{b(({[R]:re,...C})=>I?{...C,[R]:{element:I,props:A}}:C)},[]);return(0,B.jsxs)(go.ErrorBoundary,{resetKeys:[],fallbackRender:R=>(0,B.jsx)(c,{...o,...R}),children:[(0,B.jsx)(Kt.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,B.jsx)(B.Fragment,{children:d.map(([R,{element:I,props:A}])=>(0,B.jsx)(_.default.Fragment,{children:(0,B.jsx)(I,{...A||{}})},R))}),onCreated:R=>{a(R),o.onCreated&&o.onCreated(R)},runtimeOptions:P,children:(0,B.jsx)(Qe.Provider,{value:i,children:(0,B.jsx)(Yn.Provider,{value:m,children:(0,B.jsx)(_n.Provider,{value:S,children:(0,B.jsx)(Kn.Provider,{value:E,children:(0,B.jsx)(Fn,{bridge:s,children:(0,B.jsx)(Kt.ModeContext.Provider,{value:o.mode||"explore",children:(0,B.jsx)(Wn,{children:e})})})})})})})}),(0,B.jsx)("div",{children:y.map(([R,{element:I,props:A}])=>(0,B.jsx)(_.default.Fragment,{children:(0,B.jsx)(I,{...A||{}})},R))})]})}var Yt=require("@atlas-viewer/atlas");var jn=require("react"),vo=require("@iiif/helpers/events");function pt(e,t){let n=T(),r=(0,jn.useMemo)(()=>(0,vo.createEventsHelper)(n),[n]),o=w(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,jn.useMemo)(()=>e?r.getListenersAsProps(e,t):{},[o,e,n,t])}var yo=require("react"),So=require("@iiif/helpers/styles");function Ve(e,t){let n=T(),r=(0,yo.useMemo)(()=>(0,So.createStylesHelper)(n),[n]);return w(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?t?o[t]:o:void 0},[e,t])}var bo=require("react");var xo=require("react");var Co=require("@iiif/helpers/annotation-targets");function gt(e={},t=[]){let{id:n,selector:r}=e,o=$(),i=T(),a=n||o.annotation,s=w(l=>a?l.iiif.entities.Annotation[a]:void 0,[a]),c=w(l=>s&&s.body?s.body.map(u=>u?u.type==="SpecificResource"?{...u,source:i.get(u)}:u?l.iiif.entities[u.type][u.id]:null:null).filter(Boolean):[],[s]);return(0,xo.useMemo)(()=>{if(!s)return;let l={...s,body:c,target:(0,Co.expandTarget)(s.target,{typeMap:i.getState().iiif.mapping})};return r?r(l):l},[s,r,c,...t])}var Po=require("react/jsx-runtime"),jt=({id:e,style:t,className:n,interactive:r})=>{let o=gt({id:e}),i=Ve(o,"atlas"),a=Ve(o,"html"),s=pt(o,["atlas"]),c=k(),l=(0,bo.useMemo)(()=>(0,Yt.mergeStyles)(t,i),[t,i]);return c&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===c.id||o.target.source===c.id)?(0,Po.jsx)(Yt.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:l,className:a?.className||n,interactive:!!(a?.href||r),href:a?.href||null,title:a?.title||null,hrefTarget:a?.target||null,onClick:()=>{},...s}):null};var Ao=require("react");var Ro=require("react");function Qn(e={},t=[]){let{id:n,selector:r}=e,o=$(),i=n||o.annotationPage,a=w(s=>i?s.iiif.entities.AnnotationPage[i]:void 0,[i]);return(0,Ro.useMemo)(()=>{if(a)return r?r(a):a},[a,...t])}var Gn=require("react/jsx-runtime"),ht=({className:e,page:t})=>{let n=Qn({id:t.id})||t,r=Ve(n,"atlas"),o=Ve(n,"html");return w(i=>n.id?i.iiif.entities.AnnotationPage[n.id]:null,[]),(0,Gn.jsx)(Ao.Fragment,{children:n.items?.map(i=>(0,Gn.jsx)(jt,{id:i.id,style:r,className:o?.className||e},i.id))})};var si=require("@iiif/helpers/styles");var yt=require("react");var vt=require("@atlas-viewer/atlas");var le=oe(require("react"),1),ce=require("react/jsx-runtime"),Io=le.default.createContext("en"),wo=le.default.createContext({}),Mo=le.default.createContext(null);function Xi(e){return(0,ce.jsx)(wo.Provider,{value:e.translations,children:e.children})}function Zi(e){return(0,ce.jsx)(Io.Provider,{value:e.language,children:e.children})}function Ji(e){return(0,ce.jsx)(Mo.Provider,{value:e.convert,children:e.children})}function Xn(){return le.default.useContext(Mo)}function Qt(){return le.default.useContext(Io)}function Zn(){return le.default.useContext(wo)}function To(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function ko({as:e,language:t,children:n,viewingDirection:r,...o}){let i=Qt();return(0,le.useMemo)(()=>To(i)===To(t),[i,t])?e?(0,ce.jsx)(e,{...o,children:n}):(0,ce.jsx)("span",{...o,children:n}):e?(0,ce.jsx)(e,{...o,lang:t,dir:r,children:n}):(0,ce.jsx)("span",{...o,lang:t,dir:r,children:n})}function Eo(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&t.indexOf(r)!==-1)return r;for(let o of n)if(t.indexOf(o)!==-1)return o;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var No=(e,t=[])=>{let n=Qt();return(0,le.useMemo)(()=>{let r=e();return Eo(n,r,[])},[n,...t])};function Le(e,t,n,r){return t?n?n(e[t]||t,r||"none"):e[t]||t:""}function Vo(e,t,n=`
|
|
2
|
+
`,r={}){let o=Xn(),i=No(()=>Object.keys(e||{}),[e]);return[(0,le.useMemo)(()=>{if(!e)return Le(r,t,o)||"";if(typeof e=="string")return Le(r,e,o);let a=i?e[i]:void 0;return a?typeof a=="string"?a:a.map(s=>Le(r,s,o,i)).join(n):""},[i,t,e]),i]}function ea(){let e=Qt(),t=Zn(),n=Xn();return function(o,i="",a=`
|
|
3
|
+
`,s=t){let c=Object.keys(o||{}),l=Eo(e,c,[]);if(!o)return Le(s,i,n)||"";if(typeof o=="string")return Le(s,o,n);let u=l?o[l]:void 0;return u?typeof u=="string"?Le(s,u,n,l):u.map(d=>Le(s,d,n,l)).join(typeof a<"u"?a:`
|
|
4
|
+
`):""}}function ee({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:r,separator:o,...i}){let a=Zn(),[s,c]=Vo(r,t,o,a);return c?(0,ce.jsx)(ko,{...i,as:e,language:c,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,ce.jsx)(e,{...i,children:s}):(0,ce.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var ne=require("react/jsx-runtime");function ta({resource:e,heading:t,note:n,extra:r}){return r?(0,ne.jsx)(vt.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,ne.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,ne.jsxs)("div",{children:[(0,ne.jsx)(ee,{children:t||"Not authorised"}),n&&(0,ne.jsx)("p",{children:(0,ne.jsx)(ee,{children:n})}),(0,ne.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Lo({image:e,thumbnail:t,crop:n,enableSizes:r}){if(!Ln()){let i=e.service,a=i.width||e.width||0,s=i.height||e.height||0;return(0,ne.jsx)(vt.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}return(0,ne.jsx)(zn,{resource:e.service,errorComponent:ta,extra:e,children:i=>{let a=i.width||e.width||0,s=i.height||e.height||0;return(0,ne.jsx)(vt.TileSet,{tiles:{id:i.id||i["@id"]||"unknown",height:s,width:a,imageService:i},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}},e.id)}var ze=require("react/jsx-runtime");function Xe({id:e,image:t,thumbnail:n,isStatic:r,x:o=0,y:i=0,children:a,selector:s,onClick:c,enableSizes:l}){let u=(0,yt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]);return(0,ze.jsx)("world-object",{x:o+t.target.spatial.x,y:i+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:c,children:t.service?(0,ze.jsxs)(yt.Fragment,{children:[(0,ze.jsx)(Lo,{image:t,thumbnail:n,crop:u,enableSizes:l}),a]},"service"):(0,ze.jsxs)(yt.Fragment,{children:[(0,ze.jsx)("world-image",{onClick:c,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:u}),a]},"no-service")},e+(t.service?"server":"no-service"))}var ue=require("react"),ci=require("@atlas-viewer/atlas");var Ze=require("react");var zo=require("@iiif/helpers");function na(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function St(e,t){let{selector:n,source:r}=(0,zo.expandTarget)(t);if(r.id!==e.id)return[null,r];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:o.spatial}:n:null,r]}var Jn={makeChoice:()=>{}},xt={type:"unknown"},V=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),er=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Ct=require("react");function ra(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function Ho(e,t){return w(n=>{let r=[];if(!e)return r;let o=Object.keys(n.iiif.entities.AnnotationPage);for(let i of o)if(!t||t.indexOf(i)!==-1){let a=ra(n,i);a&&a.views&&a.views[e]&&r.push(i)}return r},[e,t])}function tr({canvas:e,manifest:t,all:n,canvases:r}){let o=[];if(t)for(let i of t.annotations)o.indexOf(i.id)===-1&&o.push(i.id);if(n){if(r&&r.length)for(let i of r)for(let a of i.annotations)o.indexOf(a.id)===-1&&o.push(a.id)}else if(e)for(let i of e.annotations)o.indexOf(i.id)===-1&&o.push(i.id);return o}function oa(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function bt(e,t={}){let n=T(),r=H(),o=k(),i=we(),a=(0,Ct.useMemo)(()=>tr({all:t.all,manifest:r,canvas:o,canvases:i}),[t.all,o,i,r]),s=Ho(e,t.all?void 0:a),c=(0,Ct.useCallback)(u=>{e&&n.setMetaValue([u,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),l=(0,Ct.useCallback)((u,d={})=>{if(!e)return;let v=n.getState(),b=[];if(d?.deselectOthers){let y=Object.keys(v.iiif.entities.AnnotationPage);for(let h of y){let x=oa(v,h);x&&x.views&&x.views[e]&&b.push(h)}}for(let y of b)c(y);n.setMetaValue([u,"annotationPageManager","views"],y=>y&&y[e]?y:{...y||{},[e]:!0})},[e,c,n]);return{availablePageIds:a,enabledPageIds:s,setPageEnabled:l,setPageDisabled:c}}function nr(e,t){return w((n,r)=>r.get(e.map(o=>({id:o,type:t}))),[e,t])}var ve=require("react");var Gt=oe(require("react"),1),Oo=require("@atlas-viewer/iiif-image-api"),Bo=Gt.default.createContext(new Oo.ImageServiceLoader);function fe(){return(0,Gt.useContext)(Bo)}function rr(){let e=fe(),[t,n]=(0,ve.useState)({}),r=(0,ve.useRef)(!1);return(0,ve.useEffect)(()=>()=>{r.current=!0},[]),[(0,ve.useCallback)((i,{height:a,width:s})=>{if(i){let c=i.id||i["@id"],l=e.loadServiceSync({id:c,width:i.width||s,height:i.height||a,source:i});l?i=l:t[c]||(r.current||n(u=>({...u,[c]:"loading"})),e.loadService({id:c,width:i.width||s,height:i.height||a}).then(()=>{r.current||n(u=>({...u,[c]:"done"}))}))}return i},[e,t]),t]}var Oe=require("react");function He(e={}){let t=gt(),n=k(e.canvasId?{id:e.canvasId}:void 0);return w((r,o)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let i=o.get(n.items),a=[];for(let s of i)a.push(...o.get(s.items));return a},[n])}var Fo=require("@iiif/helpers/painting-annotations");function or(e,t=[]){let n=T(),r=(0,Oe.useMemo)(()=>(0,Fo.createPaintingAnnotationsHelper)(n),[]),o=He({enableSingleAnnotation:e?.enableSingleAnnotation}),[i,a]=(0,Oe.useState)(e?.defaultChoices||[]),s=(0,Oe.useMemo)(()=>r.getPaintables(o,i),[n,o,i,...t]),l={makeChoice:(0,Oe.useCallback)((u,{deselectOthers:d=!0,deselect:v=!1}={})=>{s.choice&&a(b=>{if(v){let h=b.filter(x=>x!==u);if(h.length===0){let x=s.items[0].resource.id;return x?[x]:[]}return h}if(d)return[u];let y=[...b];if(y.length===0&&s.items.length){let h=s.items[0].resource.id;h&&y.push(h)}return b.indexOf(u)!==-1?b:[...b,u]})},[s.choice])};return[s,l]}var ia=["model/gltf-binary"];function ir(e,t){let r=t.items[0].resource;return r.format?ia.indexOf(r.format)===-1?V(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r}:V("Unknown format")}function Do(e,t){if(!e.duration)return V("No duration on canvas");if(t.items.length>1)return V("Only one audio source supported");let n=t.items[0]?.resource;return n?n.format?{type:"media",media:{annotationId:t.items[0].annotationId,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:[]}}:V("Audio does not have format"):V("Unknown audio")}var qo=require("@atlas-viewer/iiif-image-api");var ar=require("@iiif/helpers/annotation-targets");function Pt(e,t,n){let r=[];for(let o of t.items){let i=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!i.id)return V("No resource Identifier");let a;if(i.service){let y=(0,qo.getImageServices)(i);y[0]&&(a=n(y[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[c,l]=St(e,o.target);if(!(l.id===e.id||decodeURIComponent(l.id||"")===(e.id||"")))continue;let u=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,d=o.resource.type==="SpecificResource"?(0,ar.expandTarget)(o.resource):null;if(o.selector){let y=(0,ar.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});y&&(d=y)}let v=d&&d.selector&&(d.selector.type==="BoxSelector"||d.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:d.selector.spatial.x,y:d.selector.spatial.y,width:d.selector.spatial.width,height:d.selector.spatial.height}}:void 0;a&&!a.id&&(a.id=a["@id"]);let b={id:i.id,type:"Image",annotationId:o.annotationId,width:Number(c||v?i.width:e.width),height:Number(c||v?i.height:e.height),service:a,sizes:a&&a.sizes?a.sizes:i.width&&i.height?[{width:i.width,height:i.height}]:[],target:c&&c.type!=="PointSelector"?c:s,selector:v||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};r.push(b)}return{type:"images",image:r[0],images:r,choice:t.choice}}function $o(e,t={},n){let r=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[r]=e.value);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>$o(o,t,r))}return t}function sr(e,t){let n=[];return t.items.forEach(r=>{if(r.resource){let[o]=St(e,r.target);n.push({annotationId:r.annotationId,text:$o(r.resource),target:o})}}),{type:"textual-content",items:n}}var Xt=require("@iiif/helpers"),aa=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Rt(e,t){let n=t.items.filter(u=>u.type==="video"),r=!1;if(e.duration||(r=!0),n.length>1)return V("Only one video source supported");let o=n[0]?.resource,i=!!(o.service||[]).find(u=>(u.profile||"").includes("youtube.com"));if(!i&&r)return V("Video does not have duration");if(!o)return V("Unknown video");if((!o.format||o.format==="text/html")&&!i)return V("Video does not have format");let a=t.items[0],s={annotationId:t.items[0].annotationId,duration:e.duration,url:o.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:o.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},c=(0,Xt.expandTarget)(a.target);c.selector&&c.selector.type==="TemporalBoxSelector"&&(s.target=c.selector);let{selector:l}=(0,Xt.parseSelector)(a.selector);if(l===null){let u=s.target.temporal.startTime,v=(s.target.temporal.endTime||e.duration)-u;s.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:v}}}else l.type==="TemporalSelector"&&(s.selector=l);if(i){s.type="VideoYouTube";let u=o.id.match(aa);if(!u[1])return V("Video is not known youtube video");s.youTubeId=u[1]}return{type:"media",media:s,annotations:{pages:[]}}}function cr(e,t,n){let r={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},o={type:"complex-choice",items:[]};function i(c){c.choice&&(c.choice.type==="complex-choice"?o.items.push(...c.choice.items):o.items.push(c.choice))}for(let c of t.items){if(c.type==="image"){let l=Pt(e,{choice:null,allChoices:null,types:["image"],items:[c]},n);if(l.type==="images"){i(l),r.items.push(l.image);let u={id:l.image.annotationId,type:"enter",resourceType:"image",time:l.image.target?.temporal?.startTime||0};r.keyframes.push(u);let d={id:l.image.annotationId,type:"exit",resourceType:"image",time:l.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(d)}}if(c.type==="video"){let l=Rt(e,{choice:null,allChoices:null,types:["video"],items:[c]});if(l.type==="media"){i(l);let u=l.media;r.items.push(u);let d={id:u.annotationId,type:"enter",resourceType:"video",time:u.target?.temporal?.startTime||0};r.keyframes.push(d);let v={id:u.annotationId,type:"exit",resourceType:"video",time:u.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}}r.keyframes.sort((c,l)=>c.time-l.time);let a=[],s=[];for(let c of r.keyframes){if(c.resourceType==="image"){s.push(c);continue}if(c.type==="enter"){a.length===0&&(c.isPrime=!0),a.push(c),s.push(c);continue}if(c.type==="exit"&&(s.push(c),a=a.filter(l=>l.id!==c.id),a.length!==0)){let l=a[0],u={id:l.id,type:"change",isPrime:!0,resourceType:l.resourceType,time:c.time};s.push(u)}}return r.keyframes=s,o.items.length&&(r.choice=o),r}function lr({canvas:e,paintables:t,supports:n,loadImageService:r}){if(!e)return xt;if(t.types.length===0)return n.indexOf("empty")!==-1?er(e.width,e.height):xt;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?V("Complex timeline not supported"):cr(e,t,r);let o=t.types[0];return o==="image"?n.indexOf("images")===-1?V("Image not supported"):Pt(e,t,r):o==="Model"||o==="model"?n.indexOf("3d-model")===-1?V("3D not supported"):ir(e,t):o==="textualbody"?n.indexOf("textual-content")===-1?V("Textual content not supported"):sr(e,t):o==="sound"||o==="audio"?n.indexOf("media")===-1?V("Media not supported"):Do(e,t):o==="video"?n.indexOf("media")===-1?V("Media not supported"):Rt(e,t):xt}function ur(e){let t=H(),n=k(),r=T(),o=ft(),i=e?.emitter||o,[a,s]=rr(),{enabledPageIds:c}=bt(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),l=nr(c,"AnnotationPage"),u=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,v]=or(e,[s]);(0,Ze.useEffect)(()=>{let y=h=>{v.makeChoice(h.choiceId,{deselectOthers:h.deselectOthers,deselect:h.deselect})};return i.on("make-choice",y),()=>{i.off("make-choice",y)}},[]);let b=(0,Ze.useMemo)(()=>lr({canvas:n,paintables:d,supports:u,loadImageService:a}),[n,d,r,v.makeChoice]);return(0,Ze.useEffect)(()=>{let y=d.allChoices,h={canvasId:n?.id,manifestId:t?.id};y&&i.emit("choice-change",{choice:y,partOf:h})},[n?.id,d.allChoices]),(0,Ze.useMemo)(()=>b.type==="unknown"?[b,Jn]:[{...b,annotations:{pages:l}},v],[b,l])}var ye=require("react");var Wo=require("react"),mr=(e,t=[])=>{let n=T();(0,Wo.useEffect)(()=>{e(n)},[n,...t])};var Uo=require("@iiif/helpers/thumbnail");function Be(e,t,{canvasId:n,manifestId:r}={}){let o=T(),i=fe(),a=(0,ye.useMemo)(()=>(0,Uo.createThumbnailHelper)(o,{imageServiceLoader:i}),[o,i]),[s,c]=(0,ye.useState)(),l=H(r?{id:r}:void 0),u=k(n?{id:n}:void 0),d=u||l,v=(0,ye.useRef)(!1);if((0,ye.useEffect)(()=>(v.current=!1,()=>{v.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return mr(b=>{a.getBestThumbnailAtSize(d,e,t).then(y=>{y.best&&!v.current&&c(y.best)})},[d]),s}var O=require("react");function sa(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function ca(e,t){switch(t.type){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 Zt(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Fe(e){let[t,n]=(0,O.useReducer)(ca,sa(e.duration)),r=(0,O.useRef)(null),o=(0,O.useRef)(null),i=(0,O.useRef)(null),a=(0,O.useRef)(!1),s=(0,O.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=Zt(r.current.currentTime),i.current&&(i.current.style.width=`${r.current.currentTime/e.duration*100}%`),a.current!==r.current.muted&&(a.current=r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),c=(0,O.useCallback)(()=>{r.current&&(n({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),l=(0,O.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?c():u())},[s]),u=(0,O.useCallback)(()=>{r.current&&(r.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,O.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),v=(0,O.useCallback)(()=>{r.current&&(r.current.muted=!0,n({type:"MUTE"}))},[]),b=(0,O.useCallback)(()=>{r.current&&(r.current.muted=!1,n({type:"UNMUTE"}))},[]),y=(0,O.useCallback)(g=>{r.current&&(r.current.muted=!1,r.current.volume=g/100,n({type:"SET_VOLUME",volume:g}))},[]),h=(0,O.useCallback)(g=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(g*e.duration,e.duration)),s())},[]),x=(0,O.useCallback)(g=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(g,e.duration)),s())},[]);return(0,O.useEffect)(()=>{let g=setInterval(()=>{s()},350);return()=>clearInterval(g)},[s,e.duration]),(0,O.useEffect)(()=>{let g=()=>{n({type:"FINISHED"})},P=r.current;return P?.addEventListener("ended",g),()=>P?.removeEventListener("ended",g)},[]),[{element:r,currentTime:o,progress:i},t,{play:c,pause:u,playPause:l,mute:v,unmute:b,toggleMute:d,setVolume:y,setDurationPercent:h,setTime:x}]}var Se=require("react"),Jt=require("react/jsx-runtime"),_o=(0,Se.createContext)(null),Ko=(0,Se.createContext)(null),Yo=(0,Se.createContext)(null);function la(){let e=(0,Se.useContext)(_o);if(!e)throw new Error("Ctx not found");return e}function ua(){let e=(0,Se.useContext)(Ko);if(!e)throw new Error("Ctx not found");return e}function ma(){let e=(0,Se.useContext)(Yo);if(!e)throw new Error("Ctx not found");return e}function At({actions:e,state:t,children:n,currentTime:r,progress:o,element:i}){return(0,Jt.jsx)(Yo.Provider,{value:{currentTime:r,progress:o,element:i},children:(0,Jt.jsx)(Ko.Provider,{value:e,children:(0,Jt.jsx)(_o.Provider,{value:t,children:n})})})}var jo=require("react");var Qo=require("@iiif/helpers");function Tt(){let e=H(),t=k();return(0,jo.useMemo)(()=>{if(!e||!t||!e.start)return null;let n=(0,Qo.expandTarget)(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}var tn=require("react/jsx-runtime");function dr({media:e,startTime:t,children:n}){let[{element:r,currentTime:o,progress:i},a,s]=Fe({duration:e.duration}),c=t?`${e.url}#t=${t}`:e.url;return(0,tn.jsxs)(At,{state:a,actions:s,currentTime:o,progress:i,element:r,children:[(0,tn.jsx)("audio",{ref:r,src:c}),n]})}function en({media:e,mediaControlsDeps:t,children:n}){let r=Tt();return J("portal","audio",dr,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var It=require("react/jsx-runtime");function fr({element:e,media:t,startTime:n,playPause:r,poster:o}){let i="div",a=n?`${t.url}#t=${n}`:t.url;return(0,It.jsxs)(i,{className:"video-container",part:"video-container",onClick:r,children:[(0,It.jsx)("style",{children:`
|
|
5
5
|
.video-container {
|
|
6
6
|
position: absolute;
|
|
7
7
|
top: 0;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
justify-content: center;
|
|
15
15
|
pointer-events: visible;
|
|
16
16
|
}
|
|
17
|
-
`}),(0,
|
|
17
|
+
`}),(0,It.jsx)("video",{poster:o,ref:e,src:a,style:{width:"100%",objectFit:"contain"}})]})}function nn({media:e,mediaControlsDeps:t,children:n,videoComponent:r=fr}){let o=k(),i=Tt(),a=o&&o.placeholderCanvas&&o.placeholderCanvas.id||void 0,s=Be({},!1,{canvasId:a}),[{element:c,currentTime:l,progress:u},d,v]=Fe({duration:e.duration});return J("overlay","video-element",r,{element:c,media:e,playPause:v.playPause,poster:s?.id,startTime:i?i.startTime:null},[s]),J("portal","custom-controls",At,{state:d,actions:v,currentTime:l,progress:u,element:c,children:n},[l,d,e,...t||[]]),null}var xe=require("react/jsx-runtime");function pr({model:e}){return(0,xe.jsxs)(xe.Fragment,{children:[(0,xe.jsx)("style",{children:`
|
|
18
18
|
.model-container {
|
|
19
19
|
position: absolute;
|
|
20
20
|
top: 0;
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
justify-content: center;
|
|
28
28
|
pointer-events: visible;
|
|
29
29
|
}
|
|
30
|
-
`}),(0,xe.jsx)("div",{className:"model-container",children:(0,xe.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function
|
|
30
|
+
`}),(0,xe.jsx)("div",{className:"model-container",children:(0,xe.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function rn({model:e,name:t}){return J("overlay",`model-${t}`,pr,{model:e},[e]),null}var Go=require("react/jsx-runtime");function on({style:e}){let t=k();return!t||!t.height||!t.width?null:(0,Go.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var gr=require("react/jsx-runtime");function an(e){let t=k();return!t||!t.placeholderCanvas?null:(0,gr.jsx)(te,{canvas:t.placeholderCanvas.id,children:(0,gr.jsx)(Je,{renderViewerControls:e.renderViewerControls})})}var Xo=require("react"),wt=require("react/jsx-runtime");function da({element:e,media:t,playPause:n}){let r=(0,Xo.useRef)(null);return t.youTubeId?(0,wt.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,wt.jsx)("style",{children:`
|
|
31
31
|
.video-container {
|
|
32
32
|
position: absolute;
|
|
33
33
|
top: 0;
|
|
@@ -45,4 +45,4 @@
|
|
|
45
45
|
width: 100%;
|
|
46
46
|
object-fit: contain;
|
|
47
47
|
}
|
|
48
|
-
`}),(0,bt.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Uo({media:e,mediaControlsDeps:t,children:n}){let[{element:r,currentTime:o,progress:i},a,s]=Oe({duration:e.duration});return oe("overlay","video-element",Gi,{element:r,media:e,playPause:s.playPause}),null}var R=require("react/jsx-runtime");function Ge({x:e,y:t,onChoiceChange:n,registerActions:r,defaultChoices:o,isStatic:i,renderViewerControls:a,renderMediaControls:s,viewControlsDeps:c,mediaControlsDeps:u,strategies:l,throwOnUnknown:d,backgroundStyle:v,alwaysShowBackground:y,keepCanvasScale:h=!1,enableSizes:g=!1,enableYouTube:S=!0,onClickPaintingAnnotation:C,children:w}){let m=A(),H=lt(m,["deep-zoom"]),[fe]=Vn(),M=zn(),B=b(),_=(0,ce.useMemo)(()=>(0,$o.createStylesHelper)(B),[B]),[x,ee]=nr({strategies:l||["images"],defaultChoices:o?.map(({id:N})=>N)}),k=x.type==="images"?x.choice:void 0,X=(0,ce.useMemo)(()=>h?1:Math.max(1,...x.type==="images"?x.images.map(N=>(N.width||0)/N.target?.spatial.width):[]),[h,x]);ro(X),(0,ce.useEffect)(()=>{r&&r(ee)},[x.annotations]),(0,ce.useEffect)(()=>{if(o)for(let N of o)typeof N.opacity<"u"&&_.applyStyles({id:N.id},"atlas",{opacity:N.opacity})},[o]),(0,ce.useLayoutEffect)(()=>{n&&n(k)},[k]),oe(M&&(x.type==="images"||x.type==="empty"||x.type==="textual-content"&&a)?"overlay":"none",`canvas-portal-controls-${m?.id}`,Ye.Provider,a?{value:M||null,children:a(x)}:{},[m,M,x,...c||[]]);let le=He({maxWidth:256,maxHeight:256});if(!m)return null;let Tt=m.accompanyingCanvas,ln=m.placeholderCanvas,Je=le&&le.type==="fixed"?(0,R.jsx)("world-object",{height:m.height,width:m.width,x:e,y:t,children:(0,R.jsx)("world-image",{uri:le.id,target:{x:0,y:0,width:m.width,height:m.height},display:le.width&&le.height?{width:le.width,height:le.height}:void 0,crop:void 0})}):null;if(x.type==="unknown"){if(Je)return Je;if(d)throw new Error(x.reason||"Unknown image strategy");return null}let br=(0,R.jsxs)(ce.Fragment,{children:[fe?(0,R.jsx)(mt,{page:fe}):null,x.annotations&&x.annotations.pages?x.annotations.pages.map(N=>(0,R.jsx)(mt,{page:N},N.id)):null,w]}),pi=x.type==="images"?x.images.length:0,Pa=x.type==="media"&&x.media.type==="Video"&&ln?(0,R.jsx)(Jt,{renderViewerControls:a}):null;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)("world-object",{height:m.height,width:m.width,x:e,y:t,...H,children:[x.type==="empty"||y?(0,R.jsx)(Zt,{style:v}):null,x.type==="textual-content"?x.items.map((N,wt)=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(_o.HTMLPortal,{onClick:C?et=>{et.stopPropagation(),C(N.annotationId,N,et)}:void 0,target:N.target?.spatial||void 0,children:(0,R.jsx)("div",{"data-textual-content":!0,children:(0,R.jsx)(K,{enableDangerouslySetInnerHTML:!0,children:N.text})})},wt),br]})):null,x.type==="images"?(0,R.jsxs)(R.Fragment,{children:[x.images.map((N,wt)=>(0,R.jsx)(_t,{isStatic:i,image:N,id:N.id,thumbnail:wt===0?le:void 0,selector:N.selector,enableSizes:g,onClick:C?et=>{et.stopPropagation(),C(N.annotationId,N,et)}:void 0},N.id+wt)),br]}):null,x.type==="3d-model"?(0,R.jsx)(Xt,{model:x.model}):null,x.type==="media"?(0,R.jsx)(R.Fragment,{children:x.media.type==="Sound"?(0,R.jsxs)(jt,{media:x.media,mediaControlsDeps:u,children:[Je,s?s(x):null]}):x.media.type==="Video"?(0,R.jsxs)(Kt,{media:x.media,mediaControlsDeps:u,children:[Je,s?s(x):null]}):x.media.type==="VideoYouTube"&&S?(0,R.jsxs)(Uo,{media:x.media,mediaControlsDeps:u,children:[Je,s?s(x):null]}):null}):null]},`${m.id}/${x.type}/${pi}`),x.type==="media"&&x.media.type==="Sound"&&Tt?(0,R.jsx)(Z,{canvas:Tt.id,children:(0,R.jsx)(Ge,{renderViewerControls:a})}):null,x.type==="media"&&x.media.type==="Sound"&&ln&&!Tt?(0,R.jsx)(Z,{canvas:ln.id,children:(0,R.jsx)(Ge,{renderViewerControls:a})}):null]})}var Q=require("react/jsx-runtime"),Ki=(0,Pt.forwardRef)(function(t,n){let r=E(),o=Ie(),i=ct(),{ViewerControls:a,MediaControls:s}=t.components||{};if((0,Pt.useImperativeHandle)(n,()=>i,[i]),!r)return(0,Q.jsx)("div",{});let c=0;return(0,Q.jsxs)(Q.Fragment,{children:[t.header,(0,Q.jsx)(O.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:o.map((u,l)=>{let d=c;return c+=u.width+(t.spacing||0),(0,Q.jsx)(Z,{canvas:u.id,children:(0,Q.jsx)(O.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content"],renderViewerControls:l===0&&a?()=>(0,Q.jsx)(a,{}):void 0,renderMediaControls:l===0&&s?()=>(0,Q.jsx)(s,{}):void 0,x:d,...t.canvasProps||{},children:t.annotations},u.id)},u.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),O=(0,Pt.forwardRef)(function({children:t,height:n,annotations:r,canvasProps:o,spacing:i,header:a,components:s,mode:c,reuseAtlas:u,renderPreset:l,runtimeOptions:d,...v},y){let h=Ae();return(0,Q.jsx)(Pe,{vault:h,children:(0,Q.jsx)(wn,{...v,children:(0,Q.jsx)(Ki,{ref:y,height:n,components:s,spacing:i,canvasProps:o,annotations:r,header:a,mode:c,reuseAtlas:u,renderPreset:l,runtimeOptions:d,children:t})})})});O.RenderImage=_t;O.RenderCanvas=Ge;O.RenderAnnotationPage=mt;O.RenderAnnotation=Ut;O.Viewer=io;O.CanvasBackground=Zt;O.Audio=jt;O.Video=Kt;O.Model=Xt;O.AudioHTML=or;O.VideoHTML=ir;O.ModelHTML=ar;O.PlaceholderCanvas=Jt;var Yo=require("@atlas-viewer/atlas");var en=require("react"),At=require("react/jsx-runtime"),Xi=(0,en.forwardRef)(function({canvasId:t},n){let r=(0,Yo.useCanvas)(),o=yt(t||r?.id),i=b();return(0,en.useImperativeHandle)(n,()=>o,[t,r]),!r||o.enabledPageIds.length===0?null:(0,At.jsx)(At.Fragment,{children:o.enabledPageIds.map(a=>(0,At.jsx)(O.RenderAnnotationPage,{page:i.get(a)},a))})});var jo=require("react");var Qo=require("react");var z=require("react/jsx-runtime");function Rt({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:r=!0,allowHtml:o,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:c="No value",emptyLabelFallback:u="",separator:l,tableFooter:d,tableHeader:v}){let y=(0,Qo.useMemo)(()=>{let g=(t||[]).reduce((C,w)=>[...C,...w.keys],[]),S={};for(let C of e){let w=C&&C.label?Object.values(C.label):[];for(let m of w)if(m&&m.length&&(g.indexOf(`metadata.${m[0]}`)!==-1||g.length===0)&&C){let H=`metadata.${m[0]}`;S[H]=S[H]?S[H]:[],S[H].push(C);break}}return S},[t,e]);return Object.keys(y).length===0&&r?(0,z.jsx)(z.Fragment,{children:i})||(0,z.jsx)("div",{className:a.empty,children:s}):t&&t.length?(0,z.jsxs)("table",{className:a.container,children:[v,(0,z.jsx)("tbody",{children:t.map((g,S)=>{let C=[];for(let w of g.keys)for(let m of y[w]||[])C.push((0,z.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:m.value},S+"__"+w));return C.length===0?null:(0,z.jsxs)("tr",{className:a.row,children:[(0,z.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,z.jsx)(K,{enableDangerouslySetInnerHTML:o,separator:l,defaultText:u,children:g.label})}),(0,z.jsx)("td",{className:a.value,children:C})]},S)})}),d]}):(0,z.jsxs)("table",{className:a.container,children:[v,(0,z.jsx)("tbody",{children:e&&e.length?e.map((g,S)=>g?(0,z.jsxs)("tr",{className:a.row,children:[(0,z.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,z.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:g.label})}),(0,z.jsx)("td",{className:a.value,children:(0,z.jsx)(K,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:l,children:g.value})})]},S):null):null}),d]})}var Go=require("react/jsx-runtime");function Zi(e){let t=E(),n=A(),r=ot(),o=(0,jo.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,n,r]);return(0,Go.jsx)(Rt,{metadata:o,...e})}var rn=require("react");var tn=require("@atlas-viewer/iiif-image-api"),Ko=require("react");function nn(e,t={},n=[]){return(0,Ko.useMemo)(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let o=(0,tn.createImageServiceRequest)(e);return(0,tn.imageServiceRequestToString)({identifier:o.identifier,server:o.server,scheme:o.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:o.prefix,originalPath:o.originalPath})},[...n])}var It=require("react/jsx-runtime");function Ji(e){let t=typeof e.src=="string"?e.src:e.src.id,n=me(),[r,o]=(0,rn.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&n.loadService({id:t}).then(()=>{o(!0)});let a=nn(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,rn.useEffect)(()=>()=>{o(!1)},[t]),a?(0,It.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,It.jsx)(Xo,{...e,fetchImageService:!1})}function Xo(e){if(e.fetchImageService)return(0,It.jsx)(Ji,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=nn(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,It.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var Zo=require("react/jsx-runtime");function ea(e){let t=E();return(0,Zo.jsx)(Rt,{metadata:t?.metadata||[],...e})}var on=require("react");var cr=se(require("react-lazy-load-image-component"),1);var Jo=require("@iiif/helpers/i18n"),j=require("react/jsx-runtime"),{LazyLoadComponent:ta}=cr||cr.default;function ur(e){let{size:t,visible:n,classes:r,canvasId:o,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,c=(0,j.jsx)(na,{...e}),u=(0,j.jsx)(ta,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:o?(0,j.jsx)(Z,{canvas:o,children:c}):c});return i?(0,j.jsx)("figure",{className:r?.figure,children:u}):u}function na({fallback:e,size:t,classes:n,showLabel:r,alt:o,dereference:i=!1}){let a=A(),s=t?.width||128,c=t?.height||t?.width||128,u=o||(0,Jo.getValue)(a?.label)||"",l=He({width:s,height:c},i);return!l||l.type!=="fixed"?(0,j.jsx)(j.Fragment,{children:e}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:n?.imageWrapper,children:(0,j.jsx)("img",{className:n?.img,src:l.id,alt:u})}),r?(0,j.jsx)(K,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var Ke=require("react/jsx-runtime");function ra({flat:e,size:t,classes:n={},showLabel:r,figure:o,fallback:i}){let a=(0,on.useRef)(null),{items:s,sequence:c,currentSequenceIndex:u,setSequenceIndex:l}=ct(),d={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};(0,on.useLayoutEffect)(()=>{if(!a.current)return;let y=a.current.querySelector("[data-selected=true]");y&&y.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[u]);let v=[];for(let y of c){let h=[],g=c[u]===y;for(let S of y){let C=s[S];h.push((0,Ke.jsx)("div",{className:g?d.item:n.item,children:(0,Ke.jsx)(ur,{classes:g?d:n,canvasId:C.id,size:t,showLabel:r,figure:o,placeholder:(0,Ke.jsx)("div",{style:{height:128,width:128}}),fallback:i})},S))}if(e){v.push(h);continue}v.push((0,Ke.jsx)("div",{onClick:S=>{l(c.indexOf(y))},"data-selected":g,className:g?d.row:n.row,children:h}))}return(0,Ke.jsx)("div",{ref:a,className:n.container,children:v})}var U=require("react/jsx-runtime"),oa={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function ia({helper:e,showShapes:t,state:n,enabled:r=oa,classNames:o={},icons:i={}}){return(0,U.jsxs)(U.Fragment,{children:[t?(0,U.jsxs)(U.Fragment,{children:[r.draw&&(0,U.jsx)("button",{className:o.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!n.lineMode&&!n.selectedStamp&&t&&n.drawMode,children:i.DrawIcon||"Draw"}),r.polygon&&(0,U.jsx)("button",{className:o.button,"data-active":!n.lineMode&&!n.selectedStamp&&t&&!n.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:i.PolygonIcon||"Polygon"}),r.line&&(0,U.jsx)("button",{className:o.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:i.LineIcon||"Line"}),r.lineBox&&(0,U.jsx)("button",{className:o.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:i.LineBoxIcon||"LineBox"}),r.square&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:i.SquareIcon||"Square"}),r.triangle&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:i.TriangleIcon||"Triangle"}),r.hexagon&&(0,U.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:i.HexagonIcon||"Hexagon"})]}):null,n.showBoundingBox&&r.delete&&(0,U.jsx)("button",{className:o.button,onClick:()=>e.key.down("Backspace"),children:i.DeleteForeverIcon||"Delete"})]})}var F=require("react"),lr=se(require("mitt"),1),ei=require("react/jsx-runtime"),an=(0,F.createContext)((0,lr.default)());an.displayName="SelectorHelper";function aa({children:e}){return(0,ei.jsx)(an.Provider,{value:(0,F.useMemo)(()=>(0,lr.default)(),[]),children:e})}function sa(){return(0,F.useContext)(an)}function dr(e){let t=mr(),[n,r]=(0,F.useState)(!1);(0,F.useEffect)(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),(0,F.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let o=(0,F.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,F.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:o,onHover:i,isHighlighted:n}}function mr(){let e=(0,F.useContext)(an);return(0,F.useMemo)(()=>({withSelector(t){return{on(n,r){let o=i=>{i&&i.selectorId===t&&r(i)};return e.on(n,o),()=>{e.off(n,o)}},emit(n,r){e.emit(n,{...r,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function ca(){let e=mr();return(0,F.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(n,r){return e.withSelector(t).on(n,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(t){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(t,n){return e.on(t,n)}}),[e])}var Xe=require("react"),ti=require("react/jsx-runtime");function fr(){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 pr=(0,Xe.createContext)(fr());pr.displayName="AnnotationStyle";function gr(){return(0,Xe.useContext)(pr)}function ua({theme:e,children:t}){let n=(0,Xe.useMemo)(()=>e||fr(),[e]);return(0,ti.jsx)(pr.Provider,{value:n,children:t})}var cn=require("@atlas-viewer/atlas");var $=require("react");var Ze=require("react"),ni=require("polygon-editor");function hr(e,t,n){let[r,o]=(0,Ze.useState)({}),i=(0,Ze.useMemo)(()=>(0,ni.createHelper)(e,n),[]);return(0,Ze.useEffect)(()=>(i.clock.start(t,o),()=>{i.clock.stop()}),[]),{state:r,helper:i}}var ri=require("polygon-editor"),T=require("react/jsx-runtime"),Ce=(0,ri.createSvgHelpers)();function vr(e,t){let{image:n,currentShape:r,onChange:o,hideShapeLines:i}=e,a=(0,$.useRef)(),s=(0,$.useRef)(),c=(0,$.useRef)(),u=(0,$.useRef)(),l=(0,$.useRef)(),d=(0,$.useRef)(),v=(0,$.useRef)(),y=(0,$.useRef)(),[h,g]=(0,$.useState)(null),[S,C]=(0,$.useState)(!1),{helper:w,state:m}=hr(r,(k,X)=>{Ce.updateTransitionBoundingBox(s.current,k,X),Ce.updateBoundingBoxPolygon(a.current,k,X),Ce.updateTransitionShape(d.current,k,X),Ce.updateClosestLinePointTransform(u.current,k,X),Ce.updateSelectBox(c.current,k,X),Ce.updatePointLine(v.current,k,X),Ce.updateDrawPreview(l.current,k,X,3),Ce.updateLineBox(y.current,k),g(k.transitionDirection),C(k.transitionRotate)},o);(0,$.useEffect)(()=>{w.setShape(r||null)},t),(0,$.useEffect)(()=>{let k=()=>{w.modifiers.reset()};return document.addEventListener("mouseleave",k),()=>{document.removeEventListener("mouseleave",k)}},[]);let H=(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,T.jsx)("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),(0,T.jsx)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,T.jsx)("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),(0,T.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,T.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),fe=r?r.open?"polyline":"polygon":null,M=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",B=m.actionIntentType==="add-open-point",_=m.transitionIntentType==="split-line",x=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",ee=r&&fe?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(fe,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:x?0:2,stroke:i?"transparent":"#000",points:r.points.map(k=>k.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:m.showBoundingBox?void 0:"url(#dot)",markerMid:m.showBoundingBox?void 0:"url(#dot)",markerEnd:m.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),m.lineBoxMode&&m.actionIntentType==="close-line-box"?(0,T.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:y,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,T.jsx)("polyline",{ref:l,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.selectedPoints.length?(0,T.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:r.points.filter((k,X)=>m.selectedPoints?.includes(X)).map(k=>k.join(",")).join(" ")}):null,M&&m.closestPoint!==null&&r.points[m.closestPoint]?(0,T.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[m.closestPoint][0]},${r.points[m.closestPoint][1]}`}):null,!m.transitioning&&(m.actionIntentType==="add-open-point"||m.actionIntentType==="close-shape"||m.actionIntentType==="close-shape-line")?(0,T.jsx)("polyline",{stroke:"#000",ref:v,strokeWidth:m.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,m.hasClosestLine&&(!m.transitionIntentType||m.transitionIntentType==="split-line")?(0,T.jsx)("g",{ref:u,children:(0,T.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,m.transitioning?(0,T.jsx)(fe,{ref:d,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,m.transitioning&&m.transitionIntentType==="select-multiple-points"?(0,T.jsx)("rect",{ref:c,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,m.showBoundingBox?null:(0,T.jsx)("g",{name:"controls",children:!1}),m.showBoundingBox&&!x?(0,T.jsx)("polygon",{ref:a,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:w,state:m,isAddingPoint:B,isSplitting:_,isStamping:x,isHoveringPoint:M,transitionDirection:h,transitionRotate:S,defs:H,editor:ee}}var sn=require("react"),oi=require("react-dom"),G=require("react/jsx-runtime"),ii=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function yr(e){let t=e.theme||ii[0],n=(0,cn.useAtlas)(),{image:r}=e,{helper:o,defs:i,editor:a,state:s,transitionDirection:c,isSplitting:u,transitionRotate:l,isHoveringPoint:d,isAddingPoint:v,isStamping:y}=vr({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),h=m=>{o.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,sn.useEffect)(()=>{let m=H=>{o.key.up(H.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,sn.useEffect)(()=>{let m=H=>{o.key.down(H.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,sn.useEffect)(()=>{let m=[];return c&&m.push(`atlas-cursor-${c}`),s.actionIntentType==="cut-line"&&s.modifiers?.Shift&&m.push("atlas-cursor-cut"),(d||s.transitionIntentType==="move-shape"||s.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),v&&m.push("atlas-cursor-crosshair"),u&&m.push("atlas-cursor-copy"),l&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,v,d,u,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,c,l]);let g=e.shape&&e.shape?.points.length===0,S=e.renderControls?e.renderControls(o,s,g):null,C=document.getElementById(e.controlsHtmlId||"atlas-controls"),w="shape";return(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)("world-object",{height:r.height,width:r.width,onMouseMove:h,onMouseDown:o.pointerDown,onMouseUp:o.pointerUp,onMouseLeave:o.blur,children:[e.shape?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(w,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.outer}),(0,G.jsx)(w,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.inner})]}):null,(0,G.jsxs)(cn.HTMLPortal,{relative:!0,interactive:!1,children:[(0,G.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,G.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[(0,G.jsx)("defs",{children:i}),a]})}),C?(0,oi.createPortal)(S,C,"controls"):null]})]})})}var Sr=require("react/jsx-runtime");function la(e){let t=A(),n=e.annotationBucket,r=e.readOnly,o=e.id,{onClick:i,isHighlighted:a}=dr(e.id),s=gr(),c=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(r){let u="shape",l=e.polygon,d=l.open;return l?(0,Sr.jsx)(u,{id:`shape-${o}`,points:l.points,open:d,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:c}):null}return(0,Sr.jsx)(yr,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var ai=require("react/jsx-runtime");function da({annotation:e,children:t}){return(0,ai.jsx)(q,{value:{annotation:e},children:t})}var si=require("react/jsx-runtime");function ma({annotationPage:e,children:t}){return(0,si.jsx)(q,{value:{annotationPage:e},children:t})}var ci=require("react/jsx-runtime");function fa({collection:e,children:t}){return(0,ci.jsx)(q,{value:{collection:e},children:t})}function pa(e,t={}){return Le(t)}var ui=require("@atlas-viewer/atlas"),be=require("react");function ga({canvasId:e}={}){let t=(0,ui.useCanvas)(),n=Ie(),r=(0,be.useMemo)(()=>e?[e]:t?[t.id]:n.map(u=>u.id),[e,t,n]),[o,i]=(0,be.useState)({}),a=ut();(0,be.useEffect)(()=>{let u=l=>{let d=l.partOf.canvasId;d&&i(v=>({...v,[d]:l.choice}))};return a.on("choice-change",u),()=>{a.off("choice-change",u)}},[]);let s=(0,be.useMemo)(()=>{let u=[];for(let l of r){let d=o[l];d&&u.push({canvasId:l,choice:d})}return u},[r,o]),c=(0,be.useMemo)(()=>({makeChoice:(u,l)=>{a.emit("make-choice",{choiceId:u,...l})}}),[a]);return{choices:s,actions:c}}function ha(e,t=!1){}function va(e){let n=D().manifest,r=e?e.map(o=>typeof o=="string"?o:o?.id):[];return P(o=>{let i=n?o.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let c of i?.items||[])r.indexOf(c.id)!==-1&&s.push(c);return s},[r.join("/")])}var li=require("react");function ya(e,t=[]){let{id:n,selector:r}=e,o=D(),i=n||o.collection,a=P(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,li.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var un=require("react"),di=require("@iiif/helpers/events");function Sa(e,t,n,r,o=[]){let i=b(),a=(0,un.useMemo)(()=>(0,di.createEventsHelper)(i),[i]);(0,un.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,r),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...o])}function xa(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=rt(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var xr=require("@atlas-viewer/iiif-image-api");var ue=require("react");function Cr({cacheKey:e}={}){let t=A(),n=Le(),r=b(),o=me(),[i,a]=(0,ue.useState)(void 0),[s,c]=(0,ue.useState)(!1),[u,l]=(0,ue.useState)("idle"),[d,v]=(0,ue.useState)(void 0),y=t?t.id:"undefined",h=(0,ue.useMemo)(()=>{try{if(t&&n.length){let S=n[0],C=r.get(S.body[0]),m=(0,xr.getImageServices)(C)[0];return m&&o.loadServiceSync({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0}}catch(S){console.error(S)}},[y,e,t]),g=u==="success"&&i?i:h;return(0,ue.useEffect)(()=>{(async()=>{try{if(t&&n.length){let S=n[0],C=r.get(S.body[0]),m=(0,xr.getImageServices)(C)[0];if(!m)return;c(!0),l("loading");try{let H=await o.loadService({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0;a(H),l("success"),c(!1)}catch(H){l("error"),v(H)}}}catch(S){l("error"),v(S)}})()},[y,e]),(0,ue.useMemo)(()=>({data:g,isFetching:s,status:u,error:d}),[g,s,u,d])}function Ca(){let e=Cr();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var mi=require("@iiif/helpers/styles"),fi=require("react");function ba(){let e=b();return(0,fi.useMemo)(()=>(0,mi.createStylesHelper)(e),[e])}p(f,require("@iiif/helpers/annotation-targets"),module.exports);
|
|
48
|
+
`}),(0,wt.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Zo({media:e,mediaControlsDeps:t,children:n}){let[{element:r,currentTime:o,progress:i},a,s]=Fe({duration:e.duration});return J("overlay","video-element",da,{element:r,media:e,playPause:s.playPause}),null}var ln=require("react");var ei=oe(require("mitt"),1);var ti=require("zustand/vanilla");function Jo({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:r}){if(r<=n){let o=t.findIndex(s=>s.time>n);if(o===-1)return[e,[]];let i={},a=t.slice(e,o);for(let s of a)s.type==="enter"&&(i[s.id]=s),s.type==="exit"&&(i[s.id]?delete i[s.id]:i[s.id]=s);return[o,Object.values(i)]}return[e,[]]}function ni({complexTimeline:e,startTime:t=0}){let n=(0,ei.default)(),r={},o={progress:null,currentTime:null},i=0,a=null,s=0,c=null;function l(){let P=x.getState().visibleElements,m=r,S=[],E=Object.keys(m);for(let R of E){let I=m[R],A=P[R];I&&A&&S.push(I)}return S}function u(){return Object.keys(r).map(P=>r[P])}function d(g){o.currentTime&&(o.currentTime.innerHTML=Zt(g),o.progress&&(o.progress.style.width=`${g/e.duration*100}%`))}let v=()=>{let g=x.getState(),P=g.currentPrime;if(!P)return;let m=r,S=g.visibleElements,E=Object.keys(m);for(let R of E){let I=m[R],A=S[R];if(I&&R!==P.id&&A){let re=s-A.time*1e3;Math.abs(s-A.time*1e3-I.currentTime*1e3)>300&&(I.currentTime=re/1e3)}}},b=(g=0)=>{let P=g-i,m=x.getState();if(m.isPlaying){let S=m.currentPrime;if(S){let A=r[S.id];A.paused?s+=P:s=(S.time+A.currentTime)*1e3}else s+=P;let E=s/1e3;if(E>m.duration){x.getState().setTime(0),x.setState({isPlaying:!1}),y(),d(0);return}d(E);let[R,I]=Jo({currentTime:E,currentKeyFrameIndex:m.nextKeyframeIndex,keyframes:m.complexTimeline.keyframes,targetTime:E});I.length&&m.applyKeyframes(R,I)}i=g,a=requestAnimationFrame(b)},y=()=>{a&&cancelAnimationFrame(a)},h=(g,P)=>{},x=(0,ti.createStore)((g,P)=>({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:()=>{P().clockRunning||(b(),c=setInterval(v,500)),g({clockRunning:!0,clockStartRequests:P().clockStartRequests+1})},applyKeyframes(m,S){let E=P(),R={...E.visibleElements},I=E.currentPrime;for(let A of S)A.type==="enter"&&(R[A.id]=A,n.emit("complex-timeline.enter",{id:A.id})),A.type==="exit"&&(R[A.id]=null,n.emit("complex-timeline.exit",{id:A.id})),A.isPrime&&(I=A);g({nextKeyframeIndex:m,visibleElements:R,currentPrime:I})},stopClock:()=>{let m=P().clockStartRequests;if(m!==0){if(m===1){y(),c&&clearInterval(c),g({clockRunning:!1,clockStartRequests:0});return}g({clockStartRequests:m-1})}},setElement:(m,S)=>{r[m]=S;let E=Object.keys(r),R=P().complexTimeline;h(S,m),R.items.filter(A=>A.type!=="Image").every(A=>E.includes(A.annotationId))&&!P().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:R}),g({isReady:!0}))},removeElement:m=>{delete r[m]},mute(){for(let m of u())m.muted=!0;g({isMuted:!0})},unmute(){for(let m of u())m.muted=!1;g({isMuted:!1})},play(){if(!P().isPlaying){for(let S of l())S.play();g({isPlaying:!0})}},pause(){if(P().isPlaying){for(let S of l())S.pause();g({isPlaying:!1})}},playPause(){let m=P();m.isPlaying?m.pause():m.play()},setDurationPercent(m){let E=P().duration*m;P().setTime(E)},setTime(m){let S=P(),E=s/1e3,R=S.nextKeyframeIndex;if(E>m){g({visibleElements:{},currentPrime:null});let Re=Object.keys(S.visibleElements);for(let Q of Re)n.emit("complex-timeline.exit",{id:Q});E=0,R=0}let[I,A]=Jo({currentTime:E,currentKeyFrameIndex:R,keyframes:S.complexTimeline.keyframes,targetTime:m});S.applyKeyframes(I,A),s=m*1e3;let C=x.getState().visibleElements,L=r,W=Object.keys(C);for(let Re of W){let Q=C[Re];if(Q){let De=L[Re];De&&(De.currentTime=(s-Q.time*1e3)/1e3)}}},setVolume(m){for(let S of u())S.volume=Math.min(1,Math.max(0,m/100));g({volume:m})},toggleMute(){let m=P();m.isMuted?(m.unmute(),g({isMuted:!1})):(m.mute(),g({isMuted:!0}))},clearProgressElement(){o.progress=null},setProgressElement(m){o.progress=m},setCurrentTimeElement(m){o.currentTime=m},clearCurrentTimeElement(){o.currentTime=null}}));return n.on("complex-timeline.enter",g=>{let P=x.getState(),m=g.id,S=r[m];S&&P.isPlaying&&S.play()}),n.on("complex-timeline.exit",g=>{let P=x.getState(),m=g.id,S=r[m];S&&(S.currentTime=0,S.pause())}),x.getState().setTime(t),{store:x,emitter:n}}var ii=require("@atlas-viewer/atlas");var cn=require("zustand");var sn=require("react"),ri=require("zustand"),oi=require("react/jsx-runtime"),hr=(0,sn.createContext)(null);hr.displayName="ComplexTimeline";function vr({children:e,store:t}){return(0,oi.jsx)(hr.Provider,{value:t,children:e})}function fa(e){let t=(0,sn.useContext)(hr);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,ri.useStore)(t,e)}var Ce=require("react/jsx-runtime");function ai({strategy:e,children:t}){let{store:n}=(0,ln.useMemo)(()=>ni({complexTimeline:e}),[e]),r=(0,cn.useStore)(n,l=>l.isReady),o=(0,cn.useStore)(n,l=>l.visibleElements),i=(0,cn.useStore)(n,l=>l),{playPause:a,isPlaying:s}=i;function c(l){return u=>{u&&n.getState().setElement(l,u)}}return(0,ln.useLayoutEffect)(()=>{if(r){let{startClock:l,stopClock:u}=n.getState();return l(),()=>{u()}}},[r]),J("portal","custom-controls",vr,{store:n,children:t},[r]),(0,Ce.jsxs)(Ce.Fragment,{children:[e.items.map(l=>l.type!=="Image"||!o[l.annotationId]?null:(0,Ce.jsx)(Xe,{image:l,id:l.annotationId},l.id)),e.items.map((l,u)=>l.type!=="Video"||!l.target.spatial?null:(0,Ce.jsx)(ii.HTMLPortal,{target:l.target.spatial,children:(0,Ce.jsx)("video",{ref:c(l.annotationId),src:l.url,style:{height:"100%",width:"100%",opacity:o[l.annotationId]?1:0}})},u))]})}var M=require("react/jsx-runtime");function Je({x:e,y:t,onChoiceChange:n,registerActions:r,defaultChoices:o,isStatic:i,renderViewerControls:a,renderMediaControls:s,renderComplexTimelineControls:c,viewControlsDeps:l,mediaControlsDeps:u,strategies:d,throwOnUnknown:v,backgroundStyle:b,alwaysShowBackground:y,keepCanvasScale:h=!1,enableSizes:x=!1,enableYouTube:g=!0,onClickPaintingAnnotation:P,children:m}){let S=k(),E=pt(S,["deep-zoom"]),[R]=$n(),I=Un(),A=T(),re=(0,ue.useMemo)(()=>(0,si.createStylesHelper)(A),[A]),[C,L]=ur({strategies:d||["images"],defaultChoices:o?.map(({id:z})=>z)}),W=C.type==="images"?C.choice:void 0,Re=(0,ue.useMemo)(()=>h?1:Math.max(1,...C.type==="images"?C.images.map(z=>(z.width||0)/z.target?.spatial.width):[]),[h,C]);po(Re),(0,ue.useEffect)(()=>{r&&r(L)},[C.annotations]),(0,ue.useEffect)(()=>{if(o)for(let z of o)typeof z.opacity<"u"&&re.applyStyles({id:z.id},"atlas",{opacity:z.opacity})},[o]),(0,ue.useLayoutEffect)(()=>{n&&n(W)},[W]),J(I&&(C.type==="images"||C.type==="empty"||C.type==="textual-content"&&a)?"overlay":"none",`canvas-portal-controls-${S?.id}`,Qe.Provider,a?{value:I||null,children:a(C)}:{},[S,I,C,...l||[]]);let Q=Be({maxWidth:256,maxHeight:256});if(!S)return null;let De=S.accompanyingCanvas,Sn=S.placeholderCanvas,rt=Q&&Q.type==="fixed"?(0,M.jsx)("world-object",{height:S.height,width:S.width,x:e,y:t,children:(0,M.jsx)("world-image",{uri:Q.id,target:{x:0,y:0,width:S.width,height:S.height},display:Q.width&&Q.height?{width:Q.width,height:Q.height}:void 0,crop:void 0})}):null;if(C.type==="unknown"){if(rt)return rt;if(v)throw new Error(C.reason||"Unknown image strategy");return null}let Nr=(0,M.jsxs)(ue.Fragment,{children:[R?(0,M.jsx)(ht,{page:R}):null,C.annotations&&C.annotations.pages?C.annotations.pages.map(z=>(0,M.jsx)(ht,{page:z},z.id)):null,m]}),Ei=C.type==="images"?C.images.length:0,qa=C.type==="media"&&C.media.type==="Video"&&Sn?(0,M.jsx)(an,{renderViewerControls:a}):null;return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)("world-object",{height:S.height,width:S.width,x:e,y:t,...E,children:[C.type==="empty"||y?(0,M.jsx)(on,{style:b}):null,C.type==="complex-timeline"?(0,M.jsx)(ai,{strategy:C,children:c?c(C):null}):null,C.type==="textual-content"?C.items.map((z,Vt)=>(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(ci.HTMLPortal,{onClick:P?ot=>{ot.stopPropagation(),P(z.annotationId,z,ot)}:void 0,target:z.target?.spatial||void 0,children:(0,M.jsx)("div",{"data-textual-content":!0,children:(0,M.jsx)(ee,{enableDangerouslySetInnerHTML:!0,children:z.text})})},Vt),Nr]})):null,C.type==="images"?(0,M.jsxs)(M.Fragment,{children:[C.images.map((z,Vt)=>(0,M.jsx)(Xe,{isStatic:i,image:z,id:z.id,thumbnail:Vt===0?Q:void 0,selector:z.selector,enableSizes:x,onClick:P?ot=>{ot.stopPropagation(),P(z.annotationId,z,ot)}:void 0},z.id+Vt)),Nr]}):null,C.type==="3d-model"?(0,M.jsx)(rn,{model:C.model}):null,C.type==="media"?(0,M.jsx)(M.Fragment,{children:C.media.type==="Sound"?(0,M.jsxs)(en,{media:C.media,mediaControlsDeps:u,children:[rt,s?s(C):null]}):C.media.type==="Video"?(0,M.jsxs)(nn,{media:C.media,mediaControlsDeps:u,children:[rt,s?s(C):null]}):C.media.type==="VideoYouTube"&&g?(0,M.jsxs)(Zo,{media:C.media,mediaControlsDeps:u,children:[rt,s?s(C):null]}):null}):null]},`${S.id}/${C.type}/${Ei}`),C.type==="media"&&C.media.type==="Sound"&&De?(0,M.jsx)(te,{canvas:De.id,children:(0,M.jsx)(Je,{renderViewerControls:a})}):null,C.type==="media"&&C.media.type==="Sound"&&Sn&&!De?(0,M.jsx)(te,{canvas:Sn.id,children:(0,M.jsx)(Je,{renderViewerControls:a})}):null]})}var K=require("react/jsx-runtime"),pa=(0,Mt.forwardRef)(function(t,n){let r=H(),o=we(),i=dt(),{ViewerControls:a,MediaControls:s,ComplexTimelineControls:c}=t.components||{};if((0,Mt.useImperativeHandle)(n,()=>i,[i]),!r)return(0,K.jsx)("div",{});let l=0;return(0,K.jsxs)(K.Fragment,{children:[t.header,(0,K.jsx)(D.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:o.map((u,d)=>{let v=l;return l+=u.width+(t.spacing||0),(0,K.jsx)(te,{canvas:u.id,children:(0,K.jsx)(D.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:d===0&&a?()=>(0,K.jsx)(a,{}):void 0,renderMediaControls:d===0&&s?()=>(0,K.jsx)(s,{}):void 0,renderComplexTimelineControls:d===0&&c?()=>(0,K.jsx)(c,{}):void 0,x:v,...t.canvasProps||{},children:t.annotations},u.id)},u.id)})},t.reuseAtlas?"":i.currentSequenceIndex),t.children]})}),D=(0,Mt.forwardRef)(function({children:t,height:n,annotations:r,canvasProps:o,spacing:i,header:a,components:s,mode:c,reuseAtlas:l,renderPreset:u,runtimeOptions:d,...v},b){let y=Te();return(0,K.jsx)(Ae,{vault:y,children:(0,K.jsx)(On,{...v,children:(0,K.jsx)(pa,{ref:b,height:n,components:s,spacing:i,canvasProps:o,annotations:r,header:a,mode:c,reuseAtlas:l,renderPreset:u,runtimeOptions:d,children:t})})})});D.RenderImage=Xe;D.RenderCanvas=Je;D.RenderAnnotationPage=ht;D.RenderAnnotation=jt;D.Viewer=ho;D.CanvasBackground=on;D.Audio=en;D.Video=nn;D.Model=rn;D.AudioHTML=dr;D.VideoHTML=fr;D.ModelHTML=pr;D.PlaceholderCanvas=an;var li=require("@atlas-viewer/atlas");var un=require("react"),kt=require("react/jsx-runtime"),ga=(0,un.forwardRef)(function({canvasId:t},n){let r=(0,li.useCanvas)(),o=bt(t||r?.id),i=T();return(0,un.useImperativeHandle)(n,()=>o,[t,r]),!r||o.enabledPageIds.length===0?null:(0,kt.jsx)(kt.Fragment,{children:o.enabledPageIds.map(a=>(0,kt.jsx)(D.RenderAnnotationPage,{page:i.get(a)},a))})});var mi=require("react");var ui=require("react");var F=require("react/jsx-runtime");function Et({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:r=!0,allowHtml:o,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:c="No value",emptyLabelFallback:l="",separator:u,tableFooter:d,tableHeader:v}){let b=(0,ui.useMemo)(()=>{let h=(t||[]).reduce((g,P)=>[...g,...P.keys],[]),x={};for(let g of e){let P=g&&g.label?Object.values(g.label):[];for(let m of P)if(m&&m.length&&(h.indexOf(`metadata.${m[0]}`)!==-1||h.length===0)&&g){let S=`metadata.${m[0]}`;x[S]=x[S]?x[S]:[],x[S].push(g);break}}return x},[t,e]);return Object.keys(b).length===0&&r?(0,F.jsx)(F.Fragment,{children:i})||(0,F.jsx)("div",{className:a.empty,children:s}):t&&t.length?(0,F.jsxs)("table",{className:a.container,children:[v,(0,F.jsx)("tbody",{children:t.map((h,x)=>{let g=[];for(let P of h.keys)for(let m of b[P]||[])g.push((0,F.jsx)(ee,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:u,children:m.value},x+"__"+P));return g.length===0?null:(0,F.jsxs)("tr",{className:a.row,children:[(0,F.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,F.jsx)(ee,{enableDangerouslySetInnerHTML:o,separator:u,defaultText:l,children:h.label})}),(0,F.jsx)("td",{className:a.value,children:g})]},x)})}),d]}):(0,F.jsxs)("table",{className:a.container,children:[v,(0,F.jsx)("tbody",{children:e&&e.length?e.map((h,x)=>h?(0,F.jsxs)("tr",{className:a.row,children:[(0,F.jsx)("td",{className:a.label,style:n?{minWidth:n}:{},children:(0,F.jsx)(ee,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:u,children:h.label})}),(0,F.jsx)("td",{className:a.value,children:(0,F.jsx)(ee,{enableDangerouslySetInnerHTML:o,defaultText:c,separator:u,children:h.value})})]},x):null):null}),d]})}var di=require("react/jsx-runtime");function ha(e){let t=H(),n=k(),r=ct(),o=(0,mi.useMemo)(()=>{let i=t?.metadata||[],a=n?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,n,r]);return(0,di.jsx)(Et,{metadata:o,...e})}var fn=require("react");var mn=require("@atlas-viewer/iiif-image-api"),fi=require("react");function dn(e,t={},n=[]){return(0,fi.useMemo)(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let o=(0,mn.createImageServiceRequest)(e);return(0,mn.imageServiceRequestToString)({identifier:o.identifier,server:o.server,scheme:o.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:o.prefix,originalPath:o.originalPath})},[...n])}var Nt=require("react/jsx-runtime");function va(e){let t=typeof e.src=="string"?e.src:e.src.id,n=fe(),[r,o]=(0,fn.useState)(!1),i;if(t){let s=n.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&n.loadService({id:t}).then(()=>{o(!0)});let a=dn(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,fn.useEffect)(()=>()=>{o(!1)},[t]),a?(0,Nt.jsx)("img",{src:a,alt:e.alt,className:e.className,style:e.style}):(0,Nt.jsx)(pi,{...e,fetchImageService:!1})}function pi(e){if(e.fetchImageService)return(0,Nt.jsx)(va,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=dn(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,Nt.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var gi=require("react/jsx-runtime");function ya(e){let t=H();return(0,gi.jsx)(Et,{metadata:t?.metadata||[],...e})}var pn=require("react");var yr=oe(require("react-lazy-load-image-component"),1);var hi=require("@iiif/helpers/i18n"),X=require("react/jsx-runtime"),{LazyLoadComponent:Sa}=yr||yr.default;function Sr(e){let{size:t,visible:n,classes:r,canvasId:o,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,c=(0,X.jsx)(xa,{...e}),l=(0,X.jsx)(Sa,{threshold:300,style:{height:s,width:a},visibleByDefault:n,children:o?(0,X.jsx)(te,{canvas:o,children:c}):c});return i?(0,X.jsx)("figure",{className:r?.figure,children:l}):l}function xa({fallback:e,size:t,classes:n,showLabel:r,alt:o,dereference:i=!1}){let a=k(),s=t?.width||128,c=t?.height||t?.width||128,l=o||(0,hi.getValue)(a?.label)||"",u=Be({width:s,height:c},i);return!u||u.type!=="fixed"?(0,X.jsx)(X.Fragment,{children:e}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)("div",{className:n?.imageWrapper,children:(0,X.jsx)("img",{className:n?.img,src:u.id,alt:l})}),r?(0,X.jsx)(ee,{as:"figcaption",className:n?.label,children:a?.label}):null]})}var et=require("react/jsx-runtime");function Ca({flat:e,size:t,classes:n={},showLabel:r,figure:o,fallback:i}){let a=(0,pn.useRef)(null),{items:s,sequence:c,currentSequenceIndex:l,setSequenceIndex:u}=dt(),d={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};(0,pn.useLayoutEffect)(()=>{if(!a.current)return;let b=a.current.querySelector("[data-selected=true]");b&&b.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[l]);let v=[];for(let b of c){let y=[],h=c[l]===b;for(let x of b){let g=s[x];y.push((0,et.jsx)("div",{className:h?d.item:n.item,children:(0,et.jsx)(Sr,{classes:h?d:n,canvasId:g.id,size:t,showLabel:r,figure:o,placeholder:(0,et.jsx)("div",{style:{height:128,width:128}}),fallback:i})},x))}if(e){v.push(y);continue}v.push((0,et.jsx)("div",{onClick:x=>{u(c.indexOf(b))},"data-selected":h,className:h?d.row:n.row,children:y},b.join("-")))}return(0,et.jsx)("div",{ref:a,className:n.container,children:v})}var Y=require("react/jsx-runtime"),ba={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function Pa({helper:e,showShapes:t,state:n,enabled:r=ba,classNames:o={},icons:i={}}){return(0,Y.jsxs)(Y.Fragment,{children:[t?(0,Y.jsxs)(Y.Fragment,{children:[r.draw&&(0,Y.jsx)("button",{className:o.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!n.lineMode&&!n.selectedStamp&&t&&n.drawMode,children:i.DrawIcon||"Draw"}),r.polygon&&(0,Y.jsx)("button",{className:o.button,"data-active":!n.lineMode&&!n.selectedStamp&&t&&!n.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:i.PolygonIcon||"Polygon"}),r.line&&(0,Y.jsx)("button",{className:o.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:i.LineIcon||"Line"}),r.lineBox&&(0,Y.jsx)("button",{className:o.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:i.LineBoxIcon||"LineBox"}),r.square&&(0,Y.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:i.SquareIcon||"Square"}),r.triangle&&(0,Y.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:i.TriangleIcon||"Triangle"}),r.hexagon&&(0,Y.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:i.HexagonIcon||"Hexagon"})]}):null,n.showBoundingBox&&r.delete&&(0,Y.jsx)("button",{className:o.button,onClick:()=>e.key.down("Backspace"),children:i.DeleteForeverIcon||"Delete"})]})}var q=require("react"),xr=oe(require("mitt"),1),vi=require("react/jsx-runtime"),gn=(0,q.createContext)((0,xr.default)());gn.displayName="SelectorHelper";function Ra({children:e}){return(0,vi.jsx)(gn.Provider,{value:(0,q.useMemo)(()=>(0,xr.default)(),[]),children:e})}function Aa(){return(0,q.useContext)(gn)}function Cr(e){let t=br(),[n,r]=(0,q.useState)(!1);(0,q.useEffect)(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),(0,q.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let o=(0,q.useCallback)(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=(0,q.useCallback)(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:o,onHover:i,isHighlighted:n}}function br(){let e=(0,q.useContext)(gn);return(0,q.useMemo)(()=>({withSelector(t){return{on(n,r){let o=i=>{i&&i.selectorId===t&&r(i)};return e.on(n,o),()=>{e.off(n,o)}},emit(n,r){e.emit(n,{...r,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function Ta(){let e=br();return(0,q.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(n,r){return e.withSelector(t).on(n,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(t){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(t,n){return e.on(t,n)}}),[e])}var tt=require("react"),yi=require("react/jsx-runtime");function Pr(){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 Rr=(0,tt.createContext)(Pr());Rr.displayName="AnnotationStyle";function Ar(){return(0,tt.useContext)(Rr)}function Ia({theme:e,children:t}){let n=(0,tt.useMemo)(()=>e||Pr(),[e]);return(0,yi.jsx)(Rr.Provider,{value:n,children:t})}var vn=require("@atlas-viewer/atlas");var j=require("react");var nt=require("react"),Si=require("polygon-editor");function Tr(e,t,n){let[r,o]=(0,nt.useState)({}),i=(0,nt.useMemo)(()=>(0,Si.createHelper)(e,n),[]);return(0,nt.useEffect)(()=>(i.clock.start(t,o),()=>{i.clock.stop()}),[]),{state:r,helper:i}}var xi=require("polygon-editor"),N=require("react/jsx-runtime"),be=(0,xi.createSvgHelpers)();function Ir(e,t){let{image:n,currentShape:r,onChange:o,hideShapeLines:i}=e,a=(0,j.useRef)(),s=(0,j.useRef)(),c=(0,j.useRef)(),l=(0,j.useRef)(),u=(0,j.useRef)(),d=(0,j.useRef)(),v=(0,j.useRef)(),b=(0,j.useRef)(),[y,h]=(0,j.useState)(null),[x,g]=(0,j.useState)(!1),{helper:P,state:m}=Tr(r,(L,W)=>{be.updateTransitionBoundingBox(s.current,L,W),be.updateBoundingBoxPolygon(a.current,L,W),be.updateTransitionShape(d.current,L,W),be.updateClosestLinePointTransform(l.current,L,W),be.updateSelectBox(c.current,L,W),be.updatePointLine(v.current,L,W),be.updateDrawPreview(u.current,L,W,3),be.updateLineBox(b.current,L),h(L.transitionDirection),g(L.transitionRotate)},o);(0,j.useEffect)(()=>{P.setShape(r||null)},t),(0,j.useEffect)(()=>{let L=()=>{P.modifiers.reset()};return document.addEventListener("mouseleave",L),()=>{document.removeEventListener("mouseleave",L)}},[]);let S=(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),(0,N.jsx)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),(0,N.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),E=r?r.open?"polyline":"polygon":null,R=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",I=m.actionIntentType==="add-open-point",A=m.transitionIntentType==="split-line",re=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",C=r&&E?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(E,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:re?0:2,stroke:i?"transparent":"#000",points:r.points.map(L=>L.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:m.showBoundingBox?void 0:"url(#dot)",markerMid:m.showBoundingBox?void 0:"url(#dot)",markerEnd:m.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),m.lineBoxMode&&m.actionIntentType==="close-line-box"?(0,N.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:b,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,N.jsx)("polyline",{ref:u,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.selectedPoints.length?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:r.points.filter((L,W)=>m.selectedPoints?.includes(W)).map(L=>L.join(",")).join(" ")}):null,R&&m.closestPoint!==null&&r.points[m.closestPoint]?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[m.closestPoint][0]},${r.points[m.closestPoint][1]}`}):null,!m.transitioning&&(m.actionIntentType==="add-open-point"||m.actionIntentType==="close-shape"||m.actionIntentType==="close-shape-line")?(0,N.jsx)("polyline",{stroke:"#000",ref:v,strokeWidth:m.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,m.hasClosestLine&&(!m.transitionIntentType||m.transitionIntentType==="split-line")?(0,N.jsx)("g",{ref:l,children:(0,N.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,m.transitioning?(0,N.jsx)(E,{ref:d,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,m.transitioning&&m.transitionIntentType==="select-multiple-points"?(0,N.jsx)("rect",{ref:c,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,m.showBoundingBox?null:(0,N.jsx)("g",{name:"controls",children:!1}),m.showBoundingBox&&!re?(0,N.jsx)("polygon",{ref:a,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:P,state:m,isAddingPoint:I,isSplitting:A,isStamping:re,isHoveringPoint:R,transitionDirection:y,transitionRotate:x,defs:S,editor:C}}var hn=require("react"),Ci=require("react-dom"),Z=require("react/jsx-runtime"),bi=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function wr(e){let t=e.theme||bi[0],n=(0,vn.useAtlas)(),{image:r}=e,{helper:o,defs:i,editor:a,state:s,transitionDirection:c,isSplitting:l,transitionRotate:u,isHoveringPoint:d,isAddingPoint:v,isStamping:b}=Ir({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),y=m=>{o.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,hn.useEffect)(()=>{let m=S=>{o.key.up(S.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,hn.useEffect)(()=>{let m=S=>{o.key.down(S.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,hn.useEffect)(()=>{let m=[];return c&&m.push(`atlas-cursor-${c}`),s.actionIntentType==="cut-line"&&s.modifiers?.Shift&&m.push("atlas-cursor-cut"),(d||s.transitionIntentType==="move-shape"||s.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),v&&m.push("atlas-cursor-crosshair"),l&&m.push("atlas-cursor-copy"),u&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,v,d,l,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,c,u]);let h=e.shape&&e.shape?.points.length===0,x=e.renderControls?e.renderControls(o,s,h):null,g=document.getElementById(e.controlsHtmlId||"atlas-controls"),P="shape";return(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsxs)("world-object",{height:r.height,width:r.width,onMouseMove:y,onMouseDown:o.pointerDown,onMouseUp:o.pointerUp,onMouseLeave:o.blur,children:[e.shape?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(P,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:b?{}:t.outer}),(0,Z.jsx)(P,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:b?{}:t.inner})]}):null,(0,Z.jsxs)(vn.HTMLPortal,{relative:!0,interactive:!1,children:[(0,Z.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,Z.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[(0,Z.jsx)("defs",{children:i}),a]})}),g?(0,Ci.createPortal)(x,g,"controls"):null]})]})})}var Mr=require("react/jsx-runtime");function wa(e){let t=k(),n=e.annotationBucket,r=e.readOnly,o=e.id,{onClick:i,isHighlighted:a}=Cr(e.id),s=Ar(),c=a?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(r){let l="shape",u=e.polygon,d=u.open;return u?(0,Mr.jsx)(l,{id:`shape-${o}`,points:u.points,open:d,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:c}):null}return(0,Mr.jsx)(wr,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Pi=require("react/jsx-runtime");function Ma({annotation:e,children:t}){return(0,Pi.jsx)(U,{value:{annotation:e},children:t})}var Ri=require("react/jsx-runtime");function ka({annotationPage:e,children:t}){return(0,Ri.jsx)(U,{value:{annotationPage:e},children:t})}var Ai=require("react/jsx-runtime");function Ea({collection:e,children:t}){return(0,Ai.jsx)(U,{value:{collection:e},children:t})}function Na(e,t={}){return He(t)}var Ti=require("@atlas-viewer/atlas"),Pe=require("react");function Va({canvasId:e}={}){let t=(0,Ti.useCanvas)(),n=we(),r=(0,Pe.useMemo)(()=>e?[e]:t?[t.id]:n.map(l=>l.id),[e,t,n]),[o,i]=(0,Pe.useState)({}),a=ft();(0,Pe.useEffect)(()=>{let l=u=>{let d=u.partOf.canvasId;d&&i(v=>({...v,[d]:u.choice}))};return a.on("choice-change",l),()=>{a.off("choice-change",l)}},[]);let s=(0,Pe.useMemo)(()=>{let l=[];for(let u of r){let d=o[u];d&&l.push({canvasId:u,choice:d})}return l},[r,o]),c=(0,Pe.useMemo)(()=>({makeChoice:(l,u)=>{a.emit("make-choice",{choiceId:l,...u})}}),[a]);return{choices:s,actions:c}}function La(e,t=!1){}function za(e){let n=$().manifest,r=e?e.map(o=>typeof o=="string"?o:o?.id):[];return w(o=>{let i=n?o.iiif.entities.Manifest[n]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let c of i?.items||[])r.indexOf(c.id)!==-1&&s.push(c);return s},[r.join("/")])}var Ii=require("react");function Ha(e,t=[]){let{id:n,selector:r}=e,o=$(),i=n||o.collection,a=w(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return(0,Ii.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...t])}var yn=require("react"),wi=require("@iiif/helpers/events");function Oa(e,t,n,r,o=[]){let i=T(),a=(0,yn.useMemo)(()=>(0,wi.createEventsHelper)(i),[i]);(0,yn.useEffect)(()=>{let s=e;return s?(a.addEventListener(s,t,n,r),()=>{a.removeEventListener(s,t,n)}):()=>{}},[a,e,t,...o])}function Ba(e,t){let{id:n,isLoaded:r,error:o,resource:i,requestId:a,cached:s}=st(e,t);return{id:n,isLoaded:r,error:o,manifest:i,requestId:a,cached:s}}var kr=require("@atlas-viewer/iiif-image-api");var me=require("react");function Er({cacheKey:e}={}){let t=k(),n=He(),r=T(),o=fe(),[i,a]=(0,me.useState)(void 0),[s,c]=(0,me.useState)(!1),[l,u]=(0,me.useState)("idle"),[d,v]=(0,me.useState)(void 0),b=t?t.id:"undefined",y=(0,me.useMemo)(()=>{try{if(t&&n.length){let x=n[0],g=r.get(x.body[0]),m=(0,kr.getImageServices)(g)[0];return m&&o.loadServiceSync({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0}}catch(x){console.error(x)}},[b,e,t]),h=l==="success"&&i?i:y;return(0,me.useEffect)(()=>{(async()=>{try{if(t&&n.length){let x=n[0],g=r.get(x.body[0]),m=(0,kr.getImageServices)(g)[0];if(!m)return;c(!0),u("loading");try{let S=await o.loadService({id:m.id||m["@id"],width:m.width||t.width,height:m.height||t.height})||void 0;a(S),u("success"),c(!1)}catch(S){u("error"),v(S)}}}catch(x){u("error"),v(x)}})()},[b,e]),(0,me.useMemo)(()=>({data:h,isFetching:s,status:l,error:d}),[h,s,l,d])}function Fa(){let e=Er();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var Mi=require("@iiif/helpers/styles"),ki=require("react");function Da(){let e=T();return(0,ki.useMemo)(()=>(0,Mi.createStylesHelper)(e),[e])}p(f,require("@iiif/helpers/annotation-targets"),module.exports);
|