react-iiif-vault 1.3.3 → 1.3.4
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.global.js +1 -1
- package/dist/canvas-panel.cjs +5 -5
- package/dist/canvas-panel.js +1 -1
- package/dist/{chunk-IQAOSJY3.js → chunk-L6FWDFSU.js} +1 -1
- package/dist/chunk-UFC4ZSNV.js +1 -0
- package/dist/index.cjs +4 -4
- package/dist/index.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-QCPOOHCR.js +0 -1
package/dist/bundle.global.js
CHANGED
|
@@ -75,7 +75,7 @@ No matching component was found for:
|
|
|
75
75
|
`,n={}){let o=Mp(),a=Ux(()=>Object.keys(e||{}),[e]);return[(0,nn.useMemo)(()=>{if(!e)return Zr(n,t,o)||"";if(typeof e=="string")return Zr(n,e,o);let l=a?e[a]:void 0;return l?typeof l=="string"?l:l.map(c=>Zr(n,c,o,a)).join(i):""},[a,t,e]),a]}function QE(){let e=qu(),t=kp(),i=Mp();return function(o,a="",l=`
|
|
76
76
|
`,c=t){let p=Object.keys(o||{}),m=Vx(e,p,[]);if(!o)return Zr(c,a,i)||"";if(typeof o=="string")return Zr(c,o,i);let f=m?o[m]:void 0;return f?typeof f=="string"?Zr(c,f,i,m):f.map(y=>Zr(c,y,i,m)).join(typeof l<"u"?l:`
|
|
77
77
|
`):""}}function Ci({as:e,defaultText:t,enableDangerouslySetInnerHTML:i,children:n,separator:o,...a}){let l=kp(),[c,p]=Hx(n,t,o,l);return p?(0,tn.jsx)(jx,{...a,as:e,language:p,title:i?void 0:c,dangerouslySetInnerHTML:i?{__html:c}:void 0,children:i?void 0:c}):e?(0,tn.jsx)(e,{...a,children:c}):(0,tn.jsx)("span",{...a,title:i?void 0:c,dangerouslySetInnerHTML:i?{__html:c}:void 0,children:i?void 0:c})}var ji=R(q(),1);function $E({resource:e,heading:t,note:i,extra:n}){return n?(0,ji.jsx)(vn,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,ji.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,ji.jsxs)("div",{children:[(0,ji.jsx)(Ci,{children:t||"Not authorised"}),i&&(0,ji.jsx)("p",{children:(0,ji.jsx)(Ci,{children:i})}),(0,ji.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Wx({image:e,thumbnail:t,crop:i,enableSizes:n}){if(!pp()){let a=e.service,l=a.width||e.width||0,c=a.height||e.height||0;return(0,ji.jsx)(xh,{tiles:{id:a.id||a["@id"]||"unknown",height:c,width:l,imageService:a},enableSizes:n,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:i})}return(0,ji.jsx)(fp,{resource:e.service,errorComponent:$E,extra:e,children:a=>{let l=a.width||e.width||0,c=a.height||e.height||0;return(0,ji.jsx)(xh,{tiles:{id:a.id||a["@id"]||"unknown",height:c,width:l,imageService:a},enableSizes:n,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:i})}},e.id)}var Jr=R(q(),1);function Xo({id:e,image:t,thumbnail:i,isStatic:n,x:o=0,y:a=0,children:l,selector:c,onClick:p,enableSizes:m}){let f=(0,ra.useMemo)(()=>{if(!(!c||c.spatial.x===0&&c.spatial.y===0))return c.spatial},[c]);return(0,Jr.jsx)("world-object",{x:o+t.target.spatial.x,y:a+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:p,children:t.service?(0,Jr.jsxs)(ra.Fragment,{children:[(0,Jr.jsx)(Wx,{image:t,thumbnail:i,crop:f,enableSizes:m}),l]},"service"):(0,Jr.jsxs)(ra.Fragment,{children:[(0,Jr.jsx)("world-image",{onClick:p,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:f}),l]},"no-service")},e+(t.service?"server":"no-service"))}var Sn=R($(),1);var Ko=R($(),1);function qx(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function Op(e=_n){function t(o){let a=o?typeof o=="string"?e.get(o):o:null;if(!a)return[];let l=e.get(a.items,{parent:a}),c=[];for(let p of l)c.push(...e.get(p.items,{parent:p}));return c}function i(o,a=[]){let l=Array.isArray(o)?o:t(o),c=[],p={items:[],type:"complex-choice"},m=[];for(let f of l){if(f.type!=="Annotation")throw new Error("getPaintables() accept either a canvas or list of annotations");let y=Array.from(Array.isArray(f.body)?f.body:[f.body]);for(let S of y){let[P,{selector:v}]=qx(S),x=e.get(P),E=(x.type||"unknown").toLowerCase();if(E==="choice"){let C=e.get(x.items,{parent:x.id}),T=a.length?a.map(A=>C.find(N=>N.id===A)).filter(Boolean):[C[0]];T.length===0&&T.push(C[0]),p.items.push({type:"single-choice",items:C.map(A=>({id:A.id,label:A.label,selected:T.indexOf(A)!==-1})),label:P.label}),y.push(...T);continue}c.indexOf(E)===-1&&c.push(E),m.push({type:E,annotationId:f.id,resource:x,target:f.target,selector:v})}}return{types:c,items:m,choice:p.items.length<2?p.items[0]||null:p,allChoices:p.items.length?p:null}}function n(o){let{choice:a}=i(o);return a}return{getAllPaintingAnnotations:t,getPaintables:i,extractChoices:n}}function Qx(e,t,i=[],n=!1,o=[]){if(o.length&&(t=t.filter(l=>o.indexOf(l)===-1)),!t||t.length===0)return;if(t.length===1)return t[0];if(!e)return t.indexOf("none")!==-1?"none":t[0];if(t.indexOf(e)!==-1)return e;let a=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(a&&t.indexOf(a)!==-1)return a;for(let l of i)if(t.indexOf(l)!==-1)return l;if(!n&&e){let c=t.map(p=>p.indexOf("-")!==-1?p.slice(0,p.indexOf("-")):null).indexOf(e);if(c!==-1)return t[c];for(let p of i){let m=p.indexOf("-")!==-1?p.slice(0,p.indexOf("-")):null,f=m?t.indexOf(m):-1;if(f!==-1)return t[f]}}return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}function Lp(e,t,i={}){let{strictFallback:n=!1,defaultText:o="",separator:a=`
|
|
78
|
-
`,fallbackLanguages:l=[],closest:c,skipLanguages:p}=i,m=Object.keys(e||{}),f=c?t:Qx(t,m,l,n,p);if(!e)return o;if(typeof e=="string")return e;let y=f?e[f]:void 0;if(y&&f){if(typeof y=="string")return y;if(y.length===1&&y[0]===""){let S=i.skipLanguages||[];return Lp(e,t,{...i,skipLanguages:[...S,f]})}return y.join(a)}return""}function zp(e,t={}){return Lp(e,t.language||(typeof navigator<"u"?navigator.language:"en"),t)}function YE(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function oa(e,t){let{selector:i,source:n}=Ot(t);if(n.id!==e.id)return[null,n];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[i?i.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:i.temporal,spatial:o.spatial}:i:null,n]}var Np={makeChoice:()=>{}},sa={type:"unknown"},ot=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Fp=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var aa=R($(),1);function GE(e,t){let i=e?.iiif?.meta[t];return i?i.annotationPageManager:null}function $x(e,t){return Ne(i=>{let n=[];if(!e)return n;let o=Object.keys(i.iiif.entities.AnnotationPage);for(let a of o)if(!t||t.indexOf(a)!==-1){let l=GE(i,a);l&&l.views&&l.views[e]&&n.push(a)}return n},[e,t])}function Bp({canvas:e,manifest:t,all:i,canvases:n}){let o=[];if(t)for(let a of t.annotations)o.indexOf(a.id)===-1&&o.push(a.id);if(i){if(n&&n.length)for(let a of n)for(let l of a.annotations)o.indexOf(l.id)===-1&&o.push(l.id)}else if(e)for(let a of e.annotations)o.indexOf(a.id)===-1&&o.push(a.id);return o}function XE(e,t){let i=e?.iiif?.meta[t];return i?i.annotationPageManager:null}function la(e,t={}){let i=Me(),n=gt(),o=De(),a=Hr(),l=(0,aa.useMemo)(()=>Bp({all:t.all,manifest:n,canvas:o,canvases:a}),[t.all,o,a,n]),c=$x(e,t.all?void 0:l),p=(0,aa.useCallback)(f=>{e&&i.setMetaValue([f,"annotationPageManager","views"],y=>y&&!y[e]?y:{...y||{},[e]:!1})},[e,i]),m=(0,aa.useCallback)((f,y={})=>{if(!e)return;let S=i.getState(),P=[];if(y?.deselectOthers){let v=Object.keys(S.iiif.entities.AnnotationPage);for(let x of v){let E=XE(S,x);E&&E.views&&E.views[e]&&P.push(x)}}for(let v of P)p(v);i.setMetaValue([f,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,p,i]);return{availablePageIds:l,enabledPageIds:c,setPageEnabled:m,setPageDisabled:p}}function Dp(e,t){return Ne((i,n)=>n.get(e.map(o=>({id:o,type:t}))),[e,t])}var ur=R($(),1);var Qu=R($(),1);var Yx=Qu.default.createContext(new bo);function zn(){return(0,Qu.useContext)(Yx)}function jp(){let e=zn(),[t,i]=(0,ur.useState)({}),n=(0,ur.useRef)(!1);return(0,ur.useEffect)(()=>()=>{n.current=!0},[]),[(0,ur.useCallback)((a,{height:l,width:c})=>{if(a){let p=a.id||a["@id"],m=e.loadServiceSync({id:p,width:a.width||c,height:a.height||l,source:a});m?a=m:t[p]||(n.current||i(f=>({...f,[p]:"loading"})),e.loadService({id:p,width:a.width||c,height:a.height||l}).then(()=>{n.current||i(f=>({...f,[p]:"done"}))}))}return a},[e,t]),t]}var to=R($(),1);function eo(e={}){let t=ia(),i=De(e.canvasId?{id:e.canvasId}:void 0);return Ne((n,o)=>{if(!i)return[];if(t&&e.enableSingleAnnotation)return[t];let a=o.get(i.items),l=[];for(let c of a)l.push(...o.get(c.items));return l},[i])}function Vp(e,t=[]){let i=Me(),n=(0,to.useMemo)(()=>Op(i),[]),o=eo({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,l]=(0,to.useState)(e?.defaultChoices||[]),c=(0,to.useMemo)(()=>n.getPaintables(o,a),[i,o,a,...t]),m={makeChoice:(0,to.useCallback)((f,{deselectOthers:y=!0,deselect:S=!1}={})=>{c.choice&&l(P=>{if(S){let x=P.filter(E=>E!==f);if(x.length===0){let E=c.items[0].resource.id;return E?[E]:[]}return x}if(y)return[f];let v=[...P];if(v.length===0&&c.items.length){let x=c.items[0].resource.id;x&&v.push(x)}return P.indexOf(f)!==-1?P:[...P,f]})},[c.choice])};return[c,m]}var KE=["model/gltf-binary"];function Up(e,t){let n=t.items[0].resource;return n.format?KE.indexOf(n.format)===-1?ot(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n}:ot("Unknown format")}function Gx(e,t){if(!e.duration)return ot("No duration on canvas");if(t.items.length>1)return ot("Only one audio source supported");let i=t.items[0]?.resource;return i?i.format?{type:"media",media:{annotationId:t.items[0].annotationId,duration:e.duration,url:i.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:ot("Audio does not have format"):ot("Unknown audio")}function ua(e,t,i){let n=[];for(let o of t.items){let a=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!a.id)return ot("No resource Identifier");let l;if(a.service){let v=Ir(a);v[0]&&(l=i(v[0],e))}let c={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[p,m]=oa(e,o.target);if(!(m.id===e.id||decodeURIComponent(m.id||"")===(e.id||"")))continue;let f=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,y=o.resource.type==="SpecificResource"?Ot(o.resource):null;if(o.selector){let v=Ot({type:"SpecificResource",source:o.resource,selector:o.selector});v&&(y=v)}let S=y&&y.selector&&(y.selector.type==="BoxSelector"||y.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:y.selector.spatial.x,y:y.selector.spatial.y,width:y.selector.spatial.width,height:y.selector.spatial.height}}:void 0;l&&!l.id&&(l.id=l["@id"]);let P={id:a.id,type:"Image",annotationId:o.annotationId,width:Number(p||S?a.width:e.width),height:Number(p||S?a.height:e.height),service:l,sizes:l&&l.sizes?l.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:p&&p.type!=="PointSelector"?p:c,selector:S||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};n.push(P)}return{type:"images",image:n[0],images:n,choice:t.choice}}function Xx(e,t={},i){let n=e.language||i||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[n]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>Xx(o,t,n))}return t}function ca(e,t){let i=[];return t.items.forEach(n=>{if(n.resource){let[o]=oa(e,n.target);i.push({type:"Text",annotationId:n.annotationId,text:Xx(n.resource),target:o})}}),{type:"textual-content",items:i}}var ZE=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function da(e,t){let i=t.items.filter(f=>f.type==="video"),n=!1;if(e.duration||(n=!0),i.length>1)return ot("Only one video source supported");let o=i[0]?.resource,a=!!(o.service||[]).find(f=>(f.profile||"").includes("youtube.com"));if(!a&&n)return ot("Video does not have duration");if(!o)return ot("Unknown video");if((!o.format||o.format==="text/html")&&!a)return ot("Video does not have format");let l=t.items[0],c={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}}},p=Ot(l.target);p.selector&&p.selector.type==="TemporalBoxSelector"&&(c.target=p.selector);let{selector:m}=Ln(l.selector);if(m===null){let f=c.target.temporal.startTime,S=(c.target.temporal.endTime||e.duration)-f;c.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:S}}}else m.type==="TemporalSelector"&&(c.selector=m);if(a){c.type="VideoYouTube";let f=o.id.match(ZE);if(!f[1])return ot("Video is not known youtube video");c.youTubeId=f[1]}return{type:"media",media:c,annotations:{pages:[]}}}function Hp(e,t,i){let n={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},o={type:"complex-choice",items:[]};function a(p){p.choice&&(p.choice.type==="complex-choice"?o.items.push(...p.choice.items):o.items.push(p.choice))}for(let p of t.items){if(p.type==="image"){let m=ua(e,{choice:null,allChoices:null,types:["image"],items:[p]},i);if(m.type==="images"){a(m),n.items.push(m.image);let f={id:m.image.annotationId,type:"enter",resourceType:"image",time:m.image.target?.temporal?.startTime||0};n.keyframes.push(f);let y={id:m.image.annotationId,type:"exit",resourceType:"image",time:m.image.target?.temporal?.endTime||e.duration||0};n.keyframes.push(y)}}if(p.type==="textualbody"){let m=ca(e,{choice:null,allChoices:null,types:["textualbody"],items:[p]});if(m.type==="textual-content"){a(m);let f=m.items[0];n.items.push(f);let y=f.target,S={id:f.annotationId,type:"enter",resourceType:"text",time:y.temporal?.startTime||0};n.keyframes.push(S);let P={id:f.annotationId,type:"exit",resourceType:"text",time:y.temporal?.endTime||e.duration||0};n.keyframes.push(P)}}if(p.type==="video"){let m=da(e,{choice:null,allChoices:null,types:["video"],items:[p]});if(m.type==="media"){a(m);let f=m.media;n.items.push(f);let y={id:f.annotationId,type:"enter",resourceType:"video",time:f.target?.temporal?.startTime||0};n.keyframes.push(y);let S={id:f.annotationId,type:"exit",resourceType:"video",time:f.target?.temporal?.endTime||e.duration||0};n.keyframes.push(S)}}}n.keyframes.sort((p,m)=>p.time-m.time);let l=[],c=[];for(let p of n.keyframes){if(p.resourceType==="image"||p.resourceType==="text"){c.push(p);continue}if(p.type==="enter"){l.length===0&&(p.isPrime=!0),l.push(p),c.push(p);continue}if(p.type==="exit"&&(c.push(p),l=l.filter(m=>m.id!==p.id),l.length!==0)){let m=l[0],f={id:m.id,type:"change",isPrime:!0,resourceType:m.resourceType,time:p.time};c.push(f)}}return n.keyframes=c,o.items.length&&(n.choice=o),n}function Wp({canvas:e,paintables:t,supports:i,loadImageService:n}){if(!e)return sa;if(t.types.length===0)return i.indexOf("empty")!==-1?Fp(e.width,e.height):sa;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return i.indexOf("complex-timeline")===-1?ot("Complex timeline not supported"):Hp(e,t,n);let o=t.types[0];return o==="image"?i.indexOf("images")===-1?ot("Image not supported"):ua(e,t,n):o==="Model"||o==="model"?i.indexOf("3d-model")===-1?ot("3D not supported"):Up(e,t):o==="textualbody"?i.indexOf("textual-content")===-1?ot("Textual content not supported"):ca(e,t):o==="sound"||o==="audio"?i.indexOf("media")===-1?ot("Media not supported"):Gx(e,t):o==="video"?i.indexOf("media")===-1?ot("Media not supported"):da(e,t):sa}function qp(e){let t=gt(),i=De(),n=Me(),o=Ks(),a=e?.emitter||o,[l,c]=jp(),{enabledPageIds:p}=la(e?.annotationPageManagerId||t?.id||i?.id,{all:!1}),m=Dp(p,"AnnotationPage"),f=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[y,S]=Vp(e,[c]);(0,Ko.useEffect)(()=>{let v=x=>{S.makeChoice(x.choiceId,{deselectOthers:x.deselectOthers,deselect:x.deselect})};return a.on("make-choice",v),()=>{a.off("make-choice",v)}},[]);let P=(0,Ko.useMemo)(()=>Wp({canvas:i,paintables:y,supports:f,loadImageService:l}),[i,y,n,S.makeChoice]);return(0,Ko.useEffect)(()=>{let v=y.allChoices,x={canvasId:i?.id,manifestId:t?.id};v&&a.emit("choice-change",{choice:v,partOf:x})},[i?.id,y.allChoices]),(0,Ko.useMemo)(()=>P.type==="unknown"?[P,Np]:[{...P,annotations:{pages:m}},S],[P,m])}var cr=R($(),1);var Kx=R($(),1),Qp=(e,t=[])=>{let i=Me();(0,Kx.useEffect)(()=>{e(i)},[i,...t])};function io(e,t,{canvasId:i,manifestId:n}={}){let o=Me(),a=zn(),l=(0,cr.useMemo)(()=>oh(o,{imageServiceLoader:a}),[o,a]),[c,p]=(0,cr.useState)(),m=gt(n?{id:n}:void 0),f=De(i?{id:i}:void 0),y=f||m,S=(0,cr.useRef)(!1);if((0,cr.useEffect)(()=>(S.current=!1,()=>{S.current=!0}),[]),!y)throw new Error("Must be called under a manifest or canvas context.");return Qp(P=>{l.getBestThumbnailAtSize(y,e,t).then(v=>{v.best&&!S.current&&p(v.best)})},[y]),c}var yt=R($(),1);function JE(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function eA(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 $u(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function no(e){let[t,i]=(0,yt.useReducer)(eA,JE(e.duration)),n=(0,yt.useRef)(null),o=(0,yt.useRef)(null),a=(0,yt.useRef)(null),l=(0,yt.useRef)(!1),c=(0,yt.useCallback)(()=>{o.current&&n.current&&(o.current.innerHTML=$u(n.current.currentTime),a.current&&(a.current.style.width=`${n.current.currentTime/e.duration*100}%`),l.current!==n.current.muted&&(l.current=n.current.muted,i(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),p=(0,yt.useCallback)(()=>{n.current&&(i({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{i({type:"PLAY"})}),c())},[c]),m=(0,yt.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?p():f())},[c]),f=(0,yt.useCallback)(()=>{n.current&&(n.current.pause(),i({type:"PAUSE"}),c())},[c]),y=(0,yt.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,i(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),S=(0,yt.useCallback)(()=>{n.current&&(n.current.muted=!0,i({type:"MUTE"}))},[]),P=(0,yt.useCallback)(()=>{n.current&&(n.current.muted=!1,i({type:"UNMUTE"}))},[]),v=(0,yt.useCallback)(C=>{n.current&&(n.current.muted=!1,n.current.volume=C/100,i({type:"SET_VOLUME",volume:C}))},[]),x=(0,yt.useCallback)(C=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(C*e.duration,e.duration)),c())},[]),E=(0,yt.useCallback)(C=>{if(n.current){let T=typeof C=="function"?C(n.current.currentTime):C;n.current.currentTime=Math.max(0,Math.min(T,e.duration)),c()}},[]);return(0,yt.useEffect)(()=>{let C=setInterval(()=>{c()},350);return()=>clearInterval(C)},[c,e.duration]),(0,yt.useEffect)(()=>{let C=()=>{i({type:"FINISHED"})},T=n.current;return T?.addEventListener("ended",C),()=>T?.removeEventListener("ended",C)},[]),[{element:n,currentTime:o,progress:a},t,{play:p,pause:f,playPause:m,mute:S,unmute:P,toggleMute:y,setVolume:v,setDurationPercent:x,setTime:E}]}var dr=R($(),1),Yu=R(q(),1),Zx=(0,dr.createContext)(null),Jx=(0,dr.createContext)(null),eS=(0,dr.createContext)(null);function tA(){let e=(0,dr.useContext)(Zx);if(!e)throw new Error("Ctx not found");return e}function iA(){let e=(0,dr.useContext)(Jx);if(!e)throw new Error("Ctx not found");return e}function nA(){let e=(0,dr.useContext)(eS);if(!e)throw new Error("Ctx not found");return e}function ha({actions:e,state:t,children:i,currentTime:n,progress:o,element:a}){return(0,Yu.jsx)(eS.Provider,{value:{currentTime:n,progress:o,element:a},children:(0,Yu.jsx)(Jx.Provider,{value:e,children:(0,Yu.jsx)(Zx.Provider,{value:t,children:i})})})}var tS=R($(),1);function pa(){let e=gt(),t=De();return(0,tS.useMemo)(()=>{if(!e||!t||!e.start)return null;let i=Ot(e.start);return!i||i.source.id!==t.id||!i||!i.selector||i.selector.type!=="TemporalSelector"?null:i.selector.temporal},[e,t])}var Xu=R(q(),1);function $p({media:e,startTime:t,children:i}){let[{element:n,currentTime:o,progress:a},l,c]=no({duration:e.duration}),p=t?`${e.url}#t=${t}`:e.url;return(0,Xu.jsxs)(ha,{state:l,actions:c,currentTime:o,progress:a,element:n,children:[(0,Xu.jsx)("audio",{ref:n,src:p}),i]})}function Gu({media:e,mediaControlsDeps:t,children:i}){let n=pa();return Pi("portal","audio",$p,{media:e,startTime:n?n.startTime:null,children:i},[e,n,...t||[]]),null}var fa=R(q(),1);function Yp({element:e,media:t,startTime:i,playPause:n,poster:o}){let a="div",l=i?`${t.url}#t=${i}`:t.url;return(0,fa.jsxs)(a,{className:"video-container",part:"video-container",onClick:n,children:[(0,fa.jsx)("style",{children:`
|
|
78
|
+
`,fallbackLanguages:l=[],closest:c,skipLanguages:p}=i,m=Object.keys(e||{}),f=c?t:Qx(t,m,l,n,p);if(!e)return o;if(typeof e=="string")return e;let y=f?e[f]:void 0;if(y&&f){if(typeof y=="string")return y;if(y.length===1&&y[0]===""){let S=i.skipLanguages||[];return Lp(e,t,{...i,skipLanguages:[...S,f]})}return y.join(a)}return""}function zp(e,t={}){return Lp(e,t.language||(typeof navigator<"u"?navigator.language:"en"),t)}function YE(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function oa(e,t){let{selector:i,source:n}=Ot(t);if(n.id!==e.id)return[null,n];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[i?i.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:i.temporal,spatial:o.spatial}:i:null,n]}var Np={makeChoice:()=>{}},sa={type:"unknown"},ot=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Fp=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var aa=R($(),1);function GE(e,t){let i=e?.iiif?.meta[t];return i?i.annotationPageManager:null}function $x(e,t){return Ne(i=>{let n=[];if(!e)return n;let o=Object.keys(i.iiif.entities.AnnotationPage);for(let a of o)if(!t||t.indexOf(a)!==-1){let l=GE(i,a);l&&l.views&&l.views[e]&&n.push(a)}return n},[e,t])}function Bp({canvas:e,manifest:t,all:i,canvases:n}){let o=[];if(t)for(let a of t.annotations)o.indexOf(a.id)===-1&&o.push(a.id);if(i){if(n&&n.length)for(let a of n)for(let l of a.annotations)o.indexOf(l.id)===-1&&o.push(l.id)}else if(e)for(let a of e.annotations)o.indexOf(a.id)===-1&&o.push(a.id);return o}function XE(e,t){let i=e?.iiif?.meta[t];return i?i.annotationPageManager:null}function la(e,t={}){let i=Me(),n=gt(),o=De(),a=Hr(),l=(0,aa.useMemo)(()=>Bp({all:t.all,manifest:n,canvas:o,canvases:a}),[t.all,o,a,n]),c=$x(e,t.all?void 0:l),p=(0,aa.useCallback)(f=>{e&&i.setMetaValue([f,"annotationPageManager","views"],y=>y&&!y[e]?y:{...y||{},[e]:!1})},[e,i]),m=(0,aa.useCallback)((f,y={})=>{if(!e)return;let S=i.getState(),P=[];if(y?.deselectOthers){let v=Object.keys(S.iiif.entities.AnnotationPage);for(let x of v){let E=XE(S,x);E&&E.views&&E.views[e]&&P.push(x)}}for(let v of P)p(v);i.setMetaValue([f,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,p,i]);return{availablePageIds:l,enabledPageIds:c,setPageEnabled:m,setPageDisabled:p}}function Dp(e,t){return Ne((i,n)=>n.get(e.map(o=>({id:o,type:t}))),[e,t])}var ur=R($(),1);var Qu=R($(),1);var Yx=Qu.default.createContext(new bo);function zn(){return(0,Qu.useContext)(Yx)}function jp(){let e=zn(),[t,i]=(0,ur.useState)({}),n=(0,ur.useRef)(!1);return(0,ur.useEffect)(()=>()=>{n.current=!0},[]),[(0,ur.useCallback)((a,{height:l,width:c})=>{if(a){let p=a.id||a["@id"],m=e.loadServiceSync({id:p,width:a.width||c,height:a.height||l,source:a});m?a=m:t[p]||(n.current||i(f=>({...f,[p]:"loading"})),e.loadService({id:p,width:a.width||c,height:a.height||l}).then(()=>{n.current||i(f=>({...f,[p]:"done"}))}))}return a},[e,t]),t]}var to=R($(),1);function eo(e={}){let t=ia(),i=De(e.canvasId?{id:e.canvasId}:void 0);return Ne((n,o)=>{if(!i)return[];if(t&&e.enableSingleAnnotation)return[t];let a=o.get(i.items),l=[];for(let c of a)l.push(...o.get(c.items));return l},[i])}function Vp(e,t=[]){let i=Me(),n=(0,to.useMemo)(()=>Op(i),[]),o=eo({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,l]=(0,to.useState)(e?.defaultChoices||[]),c=(0,to.useMemo)(()=>n.getPaintables(o,a),[i,o,a,...t]),m={makeChoice:(0,to.useCallback)((f,{deselectOthers:y=!0,deselect:S=!1}={})=>{c.choice&&l(P=>{if(S){let x=P.filter(E=>E!==f);if(x.length===0){let E=c.items[0].resource.id;return E?[E]:[]}return x}if(y)return[f];let v=[...P];if(v.length===0&&c.items.length){let x=c.items[0].resource.id;x&&v.push(x)}return P.indexOf(f)!==-1?P:[...P,f]})},[c.choice])};return[c,m]}var KE=["model/gltf-binary"];function Up(e,t){let n=t.items[0].resource;return n.format?KE.indexOf(n.format)===-1?ot(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n}:ot("Unknown format")}function Gx(e,t){if(!e.duration)return ot("No duration on canvas");if(t.items.length>1)return ot("Only one audio source supported");let i=t.items[0]?.resource;return i?i.format?{type:"media",media:{annotationId:t.items[0].annotationId,duration:e.duration,url:i.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:ot("Audio does not have format"):ot("Unknown audio")}function ua(e,t,i){let n=[];for(let o of t.items){let a=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!a.id)return ot("No resource Identifier");let l;if(a.service){let x=Ir(a);x[0]&&(l=i(x[0],e))}let c={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[p,m]=oa(e,o.target),f=e.id?.split("?")[0]||"";if(!(m.id===e.id||decodeURIComponent(m.id||"")===(e.id||"")||m.id===f||decodeURIComponent(m.id||"")===f))continue;let y=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,S=o.resource.type==="SpecificResource"?Ot(o.resource):null;if(o.selector){let x=Ot({type:"SpecificResource",source:o.resource,selector:o.selector});x&&(S=x)}let P=S&&S.selector&&(S.selector.type==="BoxSelector"||S.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:S.selector.spatial.x,y:S.selector.spatial.y,width:S.selector.spatial.width,height:S.selector.spatial.height}}:void 0;l&&!l.id&&(l.id=l["@id"]);let v={id:a.id,type:"Image",annotationId:o.annotationId,width:Number(p||P?a.width:e.width),height:Number(p||P?a.height:e.height),service:l,sizes:l&&l.sizes?l.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:p&&p.type!=="PointSelector"?p:c,selector:P||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};n.push(v)}return{type:"images",image:n[0],images:n,choice:t.choice}}function Xx(e,t={},i){let n=e.language||i||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[n]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>Xx(o,t,n))}return t}function ca(e,t){let i=[];return t.items.forEach(n=>{if(n.resource){let[o]=oa(e,n.target);i.push({type:"Text",annotationId:n.annotationId,text:Xx(n.resource),target:o})}}),{type:"textual-content",items:i}}var ZE=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function da(e,t){let i=t.items.filter(f=>f.type==="video"),n=!1;if(e.duration||(n=!0),i.length>1)return ot("Only one video source supported");let o=i[0]?.resource,a=!!(o.service||[]).find(f=>(f.profile||"").includes("youtube.com"));if(!a&&n)return ot("Video does not have duration");if(!o)return ot("Unknown video");if((!o.format||o.format==="text/html")&&!a)return ot("Video does not have format");let l=t.items[0],c={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}}},p=Ot(l.target);p.selector&&p.selector.type==="TemporalBoxSelector"&&(c.target=p.selector);let{selector:m}=Ln(l.selector);if(m===null){let f=c.target.temporal.startTime,S=(c.target.temporal.endTime||e.duration)-f;c.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:S}}}else m.type==="TemporalSelector"&&(c.selector=m);if(a){c.type="VideoYouTube";let f=o.id.match(ZE);if(!f[1])return ot("Video is not known youtube video");c.youTubeId=f[1]}return{type:"media",media:c,annotations:{pages:[]}}}function Hp(e,t,i){let n={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},o={type:"complex-choice",items:[]};function a(p){p.choice&&(p.choice.type==="complex-choice"?o.items.push(...p.choice.items):o.items.push(p.choice))}for(let p of t.items){if(p.type==="image"){let m=ua(e,{choice:null,allChoices:null,types:["image"],items:[p]},i);if(m.type==="images"){a(m),n.items.push(m.image);let f={id:m.image.annotationId,type:"enter",resourceType:"image",time:m.image.target?.temporal?.startTime||0};n.keyframes.push(f);let y={id:m.image.annotationId,type:"exit",resourceType:"image",time:m.image.target?.temporal?.endTime||e.duration||0};n.keyframes.push(y)}}if(p.type==="textualbody"){let m=ca(e,{choice:null,allChoices:null,types:["textualbody"],items:[p]});if(m.type==="textual-content"){a(m);let f=m.items[0];n.items.push(f);let y=f.target,S={id:f.annotationId,type:"enter",resourceType:"text",time:y.temporal?.startTime||0};n.keyframes.push(S);let P={id:f.annotationId,type:"exit",resourceType:"text",time:y.temporal?.endTime||e.duration||0};n.keyframes.push(P)}}if(p.type==="video"){let m=da(e,{choice:null,allChoices:null,types:["video"],items:[p]});if(m.type==="media"){a(m);let f=m.media;n.items.push(f);let y={id:f.annotationId,type:"enter",resourceType:"video",time:f.target?.temporal?.startTime||0};n.keyframes.push(y);let S={id:f.annotationId,type:"exit",resourceType:"video",time:f.target?.temporal?.endTime||e.duration||0};n.keyframes.push(S)}}}n.keyframes.sort((p,m)=>p.time-m.time);let l=[],c=[];for(let p of n.keyframes){if(p.resourceType==="image"||p.resourceType==="text"){c.push(p);continue}if(p.type==="enter"){l.length===0&&(p.isPrime=!0),l.push(p),c.push(p);continue}if(p.type==="exit"&&(c.push(p),l=l.filter(m=>m.id!==p.id),l.length!==0)){let m=l[0],f={id:m.id,type:"change",isPrime:!0,resourceType:m.resourceType,time:p.time};c.push(f)}}return n.keyframes=c,o.items.length&&(n.choice=o),n}function Wp({canvas:e,paintables:t,supports:i,loadImageService:n}){if(!e)return sa;if(t.types.length===0)return i.indexOf("empty")!==-1?Fp(e.width,e.height):sa;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(a=>a!=="text");else return i.indexOf("complex-timeline")===-1?ot("Complex timeline not supported"):Hp(e,t,n);let o=t.types[0];return o==="image"?i.indexOf("images")===-1?ot("Image not supported"):ua(e,t,n):o==="Model"||o==="model"?i.indexOf("3d-model")===-1?ot("3D not supported"):Up(e,t):o==="textualbody"?i.indexOf("textual-content")===-1?ot("Textual content not supported"):ca(e,t):o==="sound"||o==="audio"?i.indexOf("media")===-1?ot("Media not supported"):Gx(e,t):o==="video"?i.indexOf("media")===-1?ot("Media not supported"):da(e,t):sa}function qp(e){let t=gt(),i=De(),n=Me(),o=Ks(),a=e?.emitter||o,[l,c]=jp(),{enabledPageIds:p}=la(e?.annotationPageManagerId||t?.id||i?.id,{all:!1}),m=Dp(p,"AnnotationPage"),f=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[y,S]=Vp(e,[c]);(0,Ko.useEffect)(()=>{let v=x=>{S.makeChoice(x.choiceId,{deselectOthers:x.deselectOthers,deselect:x.deselect})};return a.on("make-choice",v),()=>{a.off("make-choice",v)}},[]);let P=(0,Ko.useMemo)(()=>Wp({canvas:i,paintables:y,supports:f,loadImageService:l}),[i,y,n,S.makeChoice]);return(0,Ko.useEffect)(()=>{let v=y.allChoices,x={canvasId:i?.id,manifestId:t?.id};v&&a.emit("choice-change",{choice:v,partOf:x})},[i?.id,y.allChoices]),(0,Ko.useMemo)(()=>P.type==="unknown"?[P,Np]:[{...P,annotations:{pages:m}},S],[P,m])}var cr=R($(),1);var Kx=R($(),1),Qp=(e,t=[])=>{let i=Me();(0,Kx.useEffect)(()=>{e(i)},[i,...t])};function io(e,t,{canvasId:i,manifestId:n}={}){let o=Me(),a=zn(),l=(0,cr.useMemo)(()=>oh(o,{imageServiceLoader:a}),[o,a]),[c,p]=(0,cr.useState)(),m=gt(n?{id:n}:void 0),f=De(i?{id:i}:void 0),y=f||m,S=(0,cr.useRef)(!1);if((0,cr.useEffect)(()=>(S.current=!1,()=>{S.current=!0}),[]),!y)throw new Error("Must be called under a manifest or canvas context.");return Qp(P=>{l.getBestThumbnailAtSize(y,e,t).then(v=>{v.best&&!S.current&&p(v.best)})},[y]),c}var yt=R($(),1);function JE(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function eA(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 $u(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function no(e){let[t,i]=(0,yt.useReducer)(eA,JE(e.duration)),n=(0,yt.useRef)(null),o=(0,yt.useRef)(null),a=(0,yt.useRef)(null),l=(0,yt.useRef)(!1),c=(0,yt.useCallback)(()=>{o.current&&n.current&&(o.current.innerHTML=$u(n.current.currentTime),a.current&&(a.current.style.width=`${n.current.currentTime/e.duration*100}%`),l.current!==n.current.muted&&(l.current=n.current.muted,i(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),p=(0,yt.useCallback)(()=>{n.current&&(i({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{i({type:"PLAY"})}),c())},[c]),m=(0,yt.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?p():f())},[c]),f=(0,yt.useCallback)(()=>{n.current&&(n.current.pause(),i({type:"PAUSE"}),c())},[c]),y=(0,yt.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,i(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),S=(0,yt.useCallback)(()=>{n.current&&(n.current.muted=!0,i({type:"MUTE"}))},[]),P=(0,yt.useCallback)(()=>{n.current&&(n.current.muted=!1,i({type:"UNMUTE"}))},[]),v=(0,yt.useCallback)(C=>{n.current&&(n.current.muted=!1,n.current.volume=C/100,i({type:"SET_VOLUME",volume:C}))},[]),x=(0,yt.useCallback)(C=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(C*e.duration,e.duration)),c())},[]),E=(0,yt.useCallback)(C=>{if(n.current){let T=typeof C=="function"?C(n.current.currentTime):C;n.current.currentTime=Math.max(0,Math.min(T,e.duration)),c()}},[]);return(0,yt.useEffect)(()=>{let C=setInterval(()=>{c()},350);return()=>clearInterval(C)},[c,e.duration]),(0,yt.useEffect)(()=>{let C=()=>{i({type:"FINISHED"})},T=n.current;return T?.addEventListener("ended",C),()=>T?.removeEventListener("ended",C)},[]),[{element:n,currentTime:o,progress:a},t,{play:p,pause:f,playPause:m,mute:S,unmute:P,toggleMute:y,setVolume:v,setDurationPercent:x,setTime:E}]}var dr=R($(),1),Yu=R(q(),1),Zx=(0,dr.createContext)(null),Jx=(0,dr.createContext)(null),eS=(0,dr.createContext)(null);function tA(){let e=(0,dr.useContext)(Zx);if(!e)throw new Error("Ctx not found");return e}function iA(){let e=(0,dr.useContext)(Jx);if(!e)throw new Error("Ctx not found");return e}function nA(){let e=(0,dr.useContext)(eS);if(!e)throw new Error("Ctx not found");return e}function ha({actions:e,state:t,children:i,currentTime:n,progress:o,element:a}){return(0,Yu.jsx)(eS.Provider,{value:{currentTime:n,progress:o,element:a},children:(0,Yu.jsx)(Jx.Provider,{value:e,children:(0,Yu.jsx)(Zx.Provider,{value:t,children:i})})})}var tS=R($(),1);function pa(){let e=gt(),t=De();return(0,tS.useMemo)(()=>{if(!e||!t||!e.start)return null;let i=Ot(e.start);return!i||i.source.id!==t.id||!i||!i.selector||i.selector.type!=="TemporalSelector"?null:i.selector.temporal},[e,t])}var Xu=R(q(),1);function $p({media:e,startTime:t,children:i}){let[{element:n,currentTime:o,progress:a},l,c]=no({duration:e.duration}),p=t?`${e.url}#t=${t}`:e.url;return(0,Xu.jsxs)(ha,{state:l,actions:c,currentTime:o,progress:a,element:n,children:[(0,Xu.jsx)("audio",{ref:n,src:p}),i]})}function Gu({media:e,mediaControlsDeps:t,children:i}){let n=pa();return Pi("portal","audio",$p,{media:e,startTime:n?n.startTime:null,children:i},[e,n,...t||[]]),null}var fa=R(q(),1);function Yp({element:e,media:t,startTime:i,playPause:n,poster:o}){let a="div",l=i?`${t.url}#t=${i}`:t.url;return(0,fa.jsxs)(a,{className:"video-container",part:"video-container",onClick:n,children:[(0,fa.jsx)("style",{children:`
|
|
79
79
|
.video-container {
|
|
80
80
|
position: absolute;
|
|
81
81
|
top: 0;
|
package/dist/canvas-panel.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var to=Object.create;var Ye=Object.defineProperty;var no=Object.getOwnPropertyDescriptor;var ro=Object.getOwnPropertyNames;var oo=Object.getPrototypeOf,io=Object.prototype.hasOwnProperty;var ao=(e,n)=>{for(var t in n)Ye(e,t,{get:n[t],enumerable:!0})},en=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of ro(n))!io.call(e,o)&&o!==t&&Ye(e,o,{get:()=>n[o],enumerable:!(r=no(n,o))||r.enumerable});return e};var Y=(e,n,t)=>(t=e!=null?to(oo(e)):{},en(n||!e||!e.__esModule?Ye(t,"default",{value:e,enumerable:!0}):t,e)),so=e=>en(Ye({},"__esModule",{value:!0}),e);var Ko={};ao(Ko,{CanvasPanel:()=>z});module.exports=so(Ko);var Ke=require("react");var O=Y(require("react"),1),ot=require("@atlas-viewer/atlas"),tr=require("react-error-boundary");var re=require("react");var pe=Y(require("react"),1),tn=require("react/jsx-runtime"),uo={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Qe=pe.default.createContext(uo),B=()=>(0,pe.useContext)(Qe);function te({value:e,children:n}){let t=B(),r=(0,pe.useMemo)(()=>({...t,...e}),[e,t]);return(0,tn.jsx)(Qe.Provider,{value:r,children:n})}var Ge=Y(require("react"),1),Ee=require("@iiif/helpers/vault");var Et=require("react/jsx-runtime"),ue=Ge.default.createContext({vault:null,setVaultInstance:e=>{}});function ge({vault:e,vaultOptions:n,useGlobal:t,resources:r,children:o}){let[s,i]=(0,Ge.useState)(()=>e||(t?(0,Ee.globalVault)(n):n?new Ee.Vault(n):new Ee.Vault));return(0,Et.jsx)(ue.Provider,{value:{vault:s,setVaultInstance:i},children:(0,Et.jsx)(te,{value:r||{},children:o})})}var zn=require("react"),tt=require("react");var nn=require("@iiif/helpers/vault"),rn=require("react");function he(e){let n=(0,rn.useContext)(ue);return e||(n&&n.vault?n.vault:(0,nn.globalVault)())}var ne=require("react");function on(e,{noCache:n=!1}={}){let t=typeof e=="string"?e:e.id,r=he(),[o,s]=(0,ne.useState)(t),[i,a]=(0,ne.useState)(void 0),u=(0,ne.useMemo)(()=>r.get(t,{skipSelfReturn:!0})||void 0,[t,r]),[c,l]=(0,ne.useState)(u);return(0,ne.useEffect)(()=>{(async()=>{try{let m=u&&!n?u:await r.load(t),h=m?m.id||m["@id"]:null;m&&o!==h&&s(h),l(m)}catch(m){a(m)}})()},[t,n]),{isLoaded:!!c,id:o,requestId:t,error:i,resource:c,cached:!!(c&&c===u)}}function an(e,n){let{id:t,isLoaded:r,error:o,resource:s,requestId:i,cached:a}=on(e,n);return{id:t,isLoaded:r,error:o,manifest:s,requestId:i,cached:a}}var un=require("react/jsx-runtime");function sn({manifest:e,children:n}){return(0,un.jsx)(te,{value:{manifest:e},children:n})}var cn=require("react/jsx-runtime");function Q({canvas:e,children:n}){return(0,cn.jsx)(te,{value:{canvas:e},children:n})}var mn=require("react"),dn=Y(require("react"),1);var ln=require("react"),T=()=>{let{vault:e}=(0,ln.useContext)(ue);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Ze=require("react");function I(e,n=[]){let t=T(),[r,o]=(0,Ze.useState)(()=>e(t.getState(),t));return(0,Ze.useEffect)(()=>t.subscribe(s=>e(s,t),s=>{o(s)},!1),n),r}var ve=dn.default.createContext([]);function Je(){let e=(0,mn.useContext)(ve);return I(n=>e.map(t=>n.iiif.entities.Canvas[t]).filter(Boolean),[e])}var fn=require("react");function L(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=T(),i=t||o.manifest,a=I(u=>i?u.iiif.entities.Manifest[i]:void 0,[i]);return(0,fn.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...n])}var gn=require("react/jsx-runtime");function pn({range:e,children:n}){return(0,gn.jsx)(te,{value:{range:e},children:n})}function Vt(e,n){let t=[];for(let r of n.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?t.push({id:r.source.id.split("#")[0],type:"Canvas"}):t.push(r.source)),r.type==="Range"&&t.push(...Vt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;t.push({id:o,type:"Canvas"})}return t}function hn(e,n,{disablePaging:t,skipNonPaged:r}={}){let o=n.behavior,s=o.includes("paged"),i=s?!1:o.includes("continuous"),a=s||i?!1:o.includes("individuals"),u=n.type==="Manifest"?n.items:Vt(e,n);if(i)return[u,[u.map((g,y)=>y)]];if(a||!s||t)return[u,u.map((g,y)=>[y])];let c=[],l=[],m=()=>{l.length&&(c.push([...l]),l=[])},h=0,A=!1;for(let g=0;g<u.length;g++){let y=e.get(u[g]);if(y.behavior.includes("non-paged")){g===h&&h++,r||(m(),c.push([g]),m());continue}if(g===h||y.behavior.includes("facing-pages")){l.length&&(A=!0),m(),c.push([g]),m();continue}if(l.push(g),A){m(),A=!1;continue}l.length>1&&m()}return l.length&&m(),[u,c]}var q=require("react");var vn=require("react");function yn(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=t||o.range,i=I(a=>s?a.iiif.entities.Range[s]:void 0,[s]);return(0,vn.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...n])}function Sn({startCanvas:e,disablePaging:n}){let t=T(),r=L(),o=yn(),[s,i]=(0,q.useState)(void 0),a=o||r;if(!a)throw new Error("Nothing selected");let[u,c]=(0,q.useMemo)(()=>hn(t,a,{disablePaging:n}),[t,a,n]),l=(0,q.useRef)(c);if(l.current!==c){let b=l.current[s][0],p=c.findIndex(x=>x.includes(b));l.current=c,i(p)}let m=(0,q.useCallback)(y=>{let b=c.findIndex(p=>p.includes(y));i(b===-1?0:b)},[u,c]),h=(0,q.useCallback)(y=>{let b=u.findIndex(p=>p.id===y);b!==-1?m(b):i(0)},[u,c]),A=(0,q.useCallback)(()=>{i(y=>y>=c.length-1?y:y+1)},[c]),g=(0,q.useCallback)(()=>{i(y=>y<=0?0:y-1)},[c]);return typeof s>"u"&&(e?h(e):i(0)),{visibleItems:c[s]?.map(y=>u[y].id)||[],cursor:s,items:u,sequence:c,hasPrevious:s>0,hasNext:s<c.length-1,setSequenceIndex:i,setCanvasIndex:m,setCanvasId:h,next:A,previous:g}}var K=require("react"),Xe=require("zustand");var Nt=require("zustand/vanilla");function _(e,n,t){let r=n.findIndex(i=>i.service.id===e);if(r===-1)return n;let o=[...n],s=t(o[r]);return s===o[r]?n:(o[r]=s,o)}var Cn=()=>(0,Nt.createStore)((e,n)=>({currentAuth:-1,authItems:[],login:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot login to non-active service");let r=t.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:_(t.id,n().authItems,o=>({...o,isPending:!0}))})),xn(t.service).then(()=>{kt(r).then(o=>{let s=o.expiresIn,i=Date.now()+s*1e3;e(()=>({authItems:_(t.id,n().authItems,a=>({...a,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:i}}))}))}).catch(o=>{e(()=>({authItems:_(t.id,n().authItems,s=>({...s,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||!t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot logout of non-active service");let r=t.service.service.find(i=>i.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${Pn()}`,s=window.open(o);e(()=>({authItems:_(t.id,n().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let t=n().authItems.length,r=n().currentAuth+1;r>=t||e(()=>({currentAuth:r}))},previousAuth:()=>{let t=n().currentAuth-1;t<0||e(()=>({currentAuth:t}))},setAuth:t=>{t!==-1&&(t<0||t>=n().authItems.length)||e(()=>({currentAuth:t}))},addService:(t,r)=>{if(!t.service)return;let o=t.service.find(a=>a.type==="AuthAccessTokenService2"),s=t;if(n().authItems.find(a=>a.service.id===t.id)){e(()=>({authItems:_(t.id,n().authItems,a=>({...a,instances:a.instances+1}))}));return}if(e(()=>({currentAuth:s.profile==="active"?0:n().currentAuth,authItems:[{id:t.id,type:t.profile,service:t,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...n().authItems]})),t.profile==="external"){if(!o)throw new Error("Token service not found");kt(o).then(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:a.message}))}))})}if(t.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:_(t.id,n().authItems,a=>({...a,isPending:!0}))})),xn(s).then(()=>{kt(o).then(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,error:a.message}))}))})})}t.profile},removeService:(t,r)=>{let o=n().currentAuth===n().authItems.findIndex(i=>i.service.id===t.id),s=n().currentAuth;if(o){let i=n().authItems.find(u=>u.service.id===t.id);i&&i.instances>1||(s=n().authItems.findIndex(c=>c.service.id!==t.id&&c.instances>0))}e(()=>({authItems:_(t.id,n().authItems,i=>({...i,instances:i.instances-1})),currentAuth:s}))}})),An=(e,n)=>(0,Nt.createStore)((t,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:n||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){t({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}t({status:"probing"});let s=r().token;try{let i=await fetch(o,{headers:s?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(a=>a.json());if(i.status===200)t({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(i.status<400&&i.status>=300){if(!i.location)throw new Error("Redirect location not found");t({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)t({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!i.substitute,substituteResource:i.substitute||null,error:"Unauthorized",errorHeading:i.heading||{en:["Unauthorized"]},errorNote:i.note||null});else throw new Error("Unknown error")}catch(i){t({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){t({token:o})}}));function bn(e){let n=e.service||e.services||[],t={hasAuth:!1,services:{}};for(let r of n)if(r.type==="AuthProbeService2"){t.services.probe=r,t.hasAuth=!0;let o=r.service.filter(s=>s.type==="AuthAccessService2");o[0]&&(t.services.access=o[0])}return t}async function kt(e,{strict:n=!0}={}){return new Promise((t,r)=>{let o=Math.random().toString(36).substring(7),s=`${e.id}?messageId=${o}&origin=${window.location.origin}`,i=c=>{let l=c.data;if(l.messageId===o){if(n&&l.type!=="AuthAccessToken2"){a(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){a(),r("Invalid response, expected accessToken");return}a(),t(l)}},a=()=>window.removeEventListener("message",i),u=document.createElement("iframe");u.src=s,u.style.display="none",document.body.appendChild(u),window.addEventListener("message",i)})}function Pn(e){let n=window.location;if(e){let t=document.createElement("a");return t.href=e,t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}return n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}async function xn(e){let n=`${e.id}?origin=${Pn()}`,t=window.open(n);if(!t)throw new Error("Failed to open window");return new Promise((r,o)=>{let s=setInterval(()=>{t.closed&&(clearInterval(s),r())},500)})}var ye=require("react");var Rn=require("zustand");function Tn(e){let n=(0,ye.useMemo)(()=>bn(e),[e]),t=In(n.services.access?.id),r=(0,ye.useMemo)(()=>An(n.services.probe,t),[n.services.probe]),o=(0,Rn.useStore)(r);return(0,ye.useEffect)(()=>{o.status==="unknown"&&!t&&o.probe()},[n.services.probe,o.status]),(0,ye.useEffect)(()=>{t&&(o.setToken(t),o.probe())},[t]),[e,o,n.hasAuth]}var Ve=require("react/jsx-runtime"),Se=(0,K.createContext)(null),co=(0,K.createContext)(null);co.displayName="CurrentAuth";var lo=(0,K.createContext)(null);lo.displayName="AuthActions";function wn({children:e}){let n=(0,K.useMemo)(()=>Cn(),[]);return(0,Ve.jsx)(Se.Provider,{value:n,children:e})}function Mn(){return!!(0,K.useContext)(Se)}function zt(){let e=(0,K.useContext)(Se);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function mo(){let e=zt();return(0,Xe.useStore)(e,t=>({login:t.login,logout:t.logout,nextAuth:t.nextAuth,previousAuth:t.previousAuth,setAuth:t.setAuth,addService:t.addService,removeService:t.removeService}))}function fo(e){let n=zt();return(0,Xe.useStore)(n,r=>r.authItems.find(o=>o.service.id===e))}function In(e){let n=zt();return(0,Xe.useStore)(n,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function po(e){let n=mo(),t=fo(e.service.id);return(0,K.useEffect)(()=>(n?.addService(e.service,e.probeId),()=>{n?.removeService(e.service,e.probeId)}),[e.service]),t?(t.error||!t.isLoggedIn,e.children):null}function Lt(){return null}function En(e){let[n,t,r]=Tn(e.resource),o=e.fallbackComponent||Lt,s=e.loadingComponent||Lt,i=e.errorComponent||Lt,a=t.service,u=null;if(!r||!a)return e.children(n);let c=a.service.filter(l=>l.type==="AuthAccessService2");t.status==="error"&&(u=(0,Ve.jsx)(i,{resource:e.resource,error:t.error||"",heading:t.errorHeading,note:t.errorNote,extra:e.extra})),(t.status==="unknown"||t.status==="probing")&&(u=(0,Ve.jsx)(s,{})),t.status==="success"&&(u=e.children(n));for(let l of c)u=(0,Ve.jsx)(po,{service:l,probeId:a.id,children:u},l.id);return u}var ke=require("react");var Vn=require("zustand/vanilla"),go=e=>e.id||e["@id"];function ho(e){return(Array.isArray(e.service)?e.service:[e.service]).find(t=>t.profile==="http://iiif.io/api/search/0/autocomplete"||t.profile==="http://iiif.io/api/search/1/autocomplete"||t.profile==="AutoCompleteService1")}var kn=e=>{let n;typeof e=="string"?n={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:n=e;let t=n?go(n):void 0,r=null;return(0,Vn.createStore)((o,s)=>({service:n,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!n,hasAutocomplete:n?!!ho(n):!1,errorMessage:"",search(i,a={}){if(!t)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let u=new URLSearchParams;i.q&&u.set("q",i.q),i.motivation&&u.set("motivation",i.motivation),i.date&&u.set("date",i.date),i.user&&u.set("user",i.user),o({loading:!0}),fetch(`${t}?${u.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...a.headers||{}}}).then(async c=>{if(!r?.signal.aborted)if(c.ok){let l=await c.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(i){let a=s().resources.find(u=>u["@id"]===i);o({highlight:a})},nextResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[0]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[0]||null});return}o({highlight:i[u+1]||i[0]||null})},previousResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[i.length-1]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[i.length-1]||null});return}if(u===0){o({highlight:i[i.length-1]||null});return}o({highlight:i[u-1]||i[i.length-1]||null})}}))};var vo=require("zustand");function Nn(){let e=L();return e?e.service.find(n=>n.profile==="SearchService1"||n.profile==="http://iiif.io/api/search/1/search"):void 0}var et=require("react/jsx-runtime"),xe=(0,ke.createContext)(null);xe.displayName="Search";function Ln(e){let n=Nn();return e.store?(0,et.jsx)(xe.Provider,{value:e.store,children:e.children}):(0,et.jsx)(yo,{service:n,children:e.children})}function yo({service:e,children:n}){let t=(0,ke.useMemo)(()=>kn(e),[e]);return(0,et.jsx)(xe.Provider,{value:t,children:n})}var F=require("react/jsx-runtime"),Ne=()=>{},Le=(0,tt.createContext)({setCurrentCanvasId:Ne,setCurrentCanvasIndex:Ne,nextCanvas:Ne,previousCanvas:Ne,items:[],sequence:[],setSequenceIndex:Ne,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function So(e){let n=L(),{cursor:t,visibleItems:r,next:o,sequence:s,items:i,setCanvasIndex:a,setCanvasId:u,previous:c,setSequenceIndex:l,hasNext:m,hasPrevious:h}=Sn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),A=(0,tt.useMemo)(()=>({sequence:s,items:i,setCurrentCanvasId:u,nextCanvas:o,previousCanvas:c,totalCanvases:i.length,setCurrentCanvasIndex:a,setSequenceIndex:l,currentSequenceIndex:t,hasNext:m,hasPrevious:h}),[s,i,u,o,c,i,a,l,t]);return n?r.length===0?null:(0,F.jsx)(Le.Provider,{value:A,children:(0,F.jsx)(ve.Provider,{value:r,children:(0,F.jsx)(Q,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,F.jsx)("div",{children:"Sorry, something went wrong."}))}function On(e){let n=he(e.vault),t=an(e.manifest);if(!t)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,F.jsx)("div",{children:"Sorry, something went wrong."});if(t.error)return(0,F.jsx)("div",{children:t.error.toString()});if(!t.isLoaded)return(0,F.jsx)("div",{children:"Loading..."});let r=(0,F.jsx)(So,{...e,children:e.children});return(0,F.jsx)(ge,{vault:n,children:(0,F.jsx)(sn,{manifest:t.id,children:(0,F.jsx)(wn,{children:(0,F.jsx)(Ln,{children:e.rangeId?(0,F.jsx)(pn,{range:e.rangeId,children:r}):r})})})})}function Hn(){return(0,zn.useContext)(Le)}var Fn=Y(require("react"),1),Ot=require("react"),Dn=Y(require("mitt"),1),Co=require("react/jsx-runtime"),xo=(0,Dn.default)(),ze=(0,Ot.createContext)({emitter:xo});ze.displayName="Events";function $n(){return Fn.default.useContext(ze).emitter}var ce=require("react/jsx-runtime");function Un(){return{VaultContext:(0,re.useContext)(ue),ResourceContext:(0,re.useContext)(Qe),SimpleViewerReactContext:(0,re.useContext)(Le),VisibleCanvasReactContext:(0,re.useContext)(ve),AuthRContext:(0,re.useContext)(Se),SearchReactContext:(0,re.useContext)(xe),ReactEventContext:(0,re.useContext)(ze)}}function Bn(e){return(0,ce.jsx)(ge,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(ve.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(Le.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(ze.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(Se.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(xe.Provider,{value:e.bridge.SearchReactContext,children:e.children})})})})})})}var Ce=require("react");var G=require("react");var nt=require("@iiif/helpers/vault/actions");var qn=require("react");function _n(){let n=T().getStore();return(0,qn.useMemo)(()=>t=>n.dispatch(t),[n])}function Kn(e){return typeof e!="string"&&e&&e.bindToVault}function Wn(){let e=T(),n=(0,G.useRef)([]),t=_n(),r=(0,G.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,G.useLayoutEffect)(()=>{let a={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};t(nt.entityActions.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[r]);let o=I(a=>r&&a.iiif.entities.AnnotationPage[r]||null,[r]),s=(0,G.useCallback)((a,u)=>{if(r){if(Kn(a)){let m=a;m.__vault||m.bindToVault(e),a=typeof m.source=="string"?m.source:m.source.id,n.current[a]=m}else typeof a!="string"&&(a=a.id);let c=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:a,type:"Annotation"});c&&l&&(c.items.find(m=>m.id===l.id)||t(nt.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:u})))}},[r]),i=(0,G.useCallback)(a=>{r&&(Kn(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),n.current[a]&&n.current[a].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&t(nt.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[r]);return[o,{addAnnotation:s,removeAnnotation:i}]}var Gn=require("react/jsx-runtime"),jn=(0,Ce.createContext)(null);function Yn(){let e=(0,Ce.useContext)(jn);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Qn({children:e}){let[n,{addAnnotation:t,removeAnnotation:r}]=Wn();return(0,Gn.jsx)(jn.Provider,{value:(0,Ce.useMemo)(()=>({fullPage:n,addAnnotation:t,removeAnnotation:r}),[n]),children:e})}var Ae=require("react/jsx-runtime");function Zn({width:e,style:n,height:t,error:r,resetErrorBoundary:o}){return(0,Ae.jsxs)("div",{style:{width:e,height:t,minHeight:500,...n||{},background:"#f9f9f9"},children:[(0,Ae.jsx)("h3",{children:"Error occurred"}),(0,Ae.jsx)("p",{children:r.message}),(0,Ae.jsx)("button",{onClick:o,children:"Reset"})]})}var rt=require("react"),Oe=(0,rt.createContext)(null);function Jn(){return(0,rt.useContext)(Oe)}var le=require("react"),Ht=(0,le.createContext)(()=>{}),Ft=(0,le.createContext)(()=>{});function $(e,n,t,r,o=[]){let s=(0,le.useContext)(e==="portal"?Ft:Ht);(0,le.useEffect)(()=>(e!=="none"&&s(n,t,r),()=>{s(n,null)}),[n,e,s,...o])}var be=require("react");var Xn=require("react");function E(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=t||o.canvas,i=I(a=>s?a.iiif.entities.Canvas[s]:void 0,[s]);return(0,Xn.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...n])}var Dt=(0,be.createContext)(()=>{});function er(e){let n=E(),t=(0,be.useContext)(Dt);(0,be.useEffect)(()=>n&&n.id?(t(n.id,e),()=>t(n.id,-1)):()=>{},[n,e])}var k=require("react/jsx-runtime");function nr({children:e,errorFallback:n,outerContainerProps:t={},worldScale:r,...o}){let[s,i]=(0,O.useState)(),a=Un(),u=n||Zn,[c,l]=(0,O.useState)({}),m=Object.entries(c),[h,A]=(0,O.useState)({}),g=Object.entries(h),[y,b]=(0,O.useState)({}),p=(0,O.useMemo)(()=>r||Math.max(...Object.values(y)),[y]),x=(0,O.useMemo)(()=>({maxOverZoom:p||1,...o.runtimeOptions||{}}),[p,o.runtimeOptions]),d=(0,O.useCallback)((S,P)=>{b(C=>{if(P===-1){let{[S]:X,...f}=C;return f}return{...C,[S]:P}})},[]),v=(0,O.useCallback)((S,P,C)=>{l(({[S]:X,...f})=>P?{...f,[S]:{element:P,props:C}}:f)},[]),w=(0,O.useCallback)((S,P,C)=>{A(({[S]:X,...f})=>P?{...f,[S]:{element:P,props:C}}:f)},[]);return(0,k.jsxs)(tr.ErrorBoundary,{resetKeys:[],fallbackRender:S=>(0,k.jsx)(u,{...o,...S}),children:[(0,k.jsx)(ot.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,k.jsx)(k.Fragment,{children:m.map(([S,{element:P,props:C}])=>(0,k.jsx)(O.default.Fragment,{children:(0,k.jsx)(P,{...C||{}})},S))}),onCreated:S=>{i(S),o.onCreated&&o.onCreated(S)},runtimeOptions:x,children:(0,k.jsx)(Oe.Provider,{value:s,children:(0,k.jsx)(Dt.Provider,{value:d,children:(0,k.jsx)(Ht.Provider,{value:v,children:(0,k.jsx)(Ft.Provider,{value:w,children:(0,k.jsx)(Bn,{bridge:a,children:(0,k.jsx)(ot.ModeContext.Provider,{value:o.mode||"explore",children:(0,k.jsx)(Qn,{children:e})})})})})})})}),(0,k.jsx)("div",{children:g.map(([S,{element:P,props:C}])=>(0,k.jsx)(O.default.Fragment,{children:(0,k.jsx)(P,{...C||{}})},S))})]})}var st=require("@atlas-viewer/atlas");var $t=require("react"),rr=require("@iiif/helpers/events");function it(e,n){let t=T(),r=(0,$t.useMemo)(()=>(0,rr.createEventsHelper)(t),[t]),o=I(()=>e&&e.id?t.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,$t.useMemo)(()=>e?r.getListenersAsProps(e,n):{},[o,e,t,n])}var or=require("react"),ir=require("@iiif/helpers/styles");function Pe(e,n){let t=T(),r=(0,or.useMemo)(()=>(0,ir.createStylesHelper)(t),[t]);return I(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?n?o[n]:o:void 0},[e,n])}var ur=require("react");var ar=require("react");var sr=require("@iiif/helpers/annotation-targets");function at(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=T(),i=t||o.annotation,a=I(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),u=I(c=>a&&a.body?a.body.map(l=>l?l.type==="SpecificResource"?{...l,source:s.get(l)}:l?c.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[a]);return(0,ar.useMemo)(()=>{if(!a)return;let c={...a,body:u,target:(0,sr.expandTarget)(a.target,{typeMap:s.getState().iiif.mapping})};return r?r(c):c},[a,r,u,...n])}var cr=require("react/jsx-runtime"),ut=({id:e,style:n,className:t,interactive:r})=>{let o=at({id:e}),s=Pe(o,"atlas"),i=Pe(o,"html"),a=it(o,["atlas"]),u=E(),c=(0,ur.useMemo)(()=>(0,st.mergeStyles)(n,s),[n,s]);return u&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===u.id||o.target.source===u.id)?(0,cr.jsx)(st.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:c,className:i?.className||t,interactive:!!(i?.href||r),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...a}):null};var dr=require("react");var lr=require("react");function mr(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=t||o.annotationPage,i=I(a=>s?a.iiif.entities.AnnotationPage[s]:void 0,[s]);return(0,lr.useMemo)(()=>{if(i)return r?r(i):i},[i,...n])}var Ut=require("react/jsx-runtime"),He=({className:e,page:n})=>{let t=mr({id:n.id})||n,r=Pe(t,"atlas"),o=Pe(t,"html");return I(s=>t.id?s.iiif.entities.AnnotationPage[t.id]:null,[]),(0,Ut.jsx)(dr.Fragment,{children:t.items?.map(s=>(0,Ut.jsx)(ut,{id:s.id,style:r,className:o?.className||e},s.id))})};var Xr=require("@iiif/helpers/styles");var $e=require("react");var De=require("@atlas-viewer/atlas");var W=Y(require("react"),1),oe=require("react/jsx-runtime"),Ao=W.default.createContext("en"),bo=W.default.createContext({}),Po=W.default.createContext(null);function Ro(){return W.default.useContext(Po)}function pr(){return W.default.useContext(Ao)}function To(){return W.default.useContext(bo)}function fr(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Io({as:e,language:n,children:t,viewingDirection:r,...o}){let s=pr();return(0,W.useMemo)(()=>fr(s)===fr(n),[s,n])?e?(0,oe.jsx)(e,{...o,children:t}):(0,oe.jsx)("span",{...o,children:t}):e?(0,oe.jsx)(e,{...o,lang:n,dir:r,children:t}):(0,oe.jsx)("span",{...o,lang:n,dir:r,children:t})}function wo(e,n,t){if(n.length===0)return;if(n.length===1)return n[0];if(n.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&n.indexOf(r)!==-1)return r;for(let o of t)if(n.indexOf(o)!==-1)return o;return n.indexOf("none")!==-1?"none":n.indexOf("@none")!==-1?"@none":n[0]}var Mo=(e,n=[])=>{let t=pr();return(0,W.useMemo)(()=>{let r=e();return wo(t,r,[])},[t,...n])};function Bt(e,n,t,r){return n?t?t(e[n]||n,r||"none"):e[n]||n:""}function Eo(e,n,t=`
|
|
2
|
-
`,r={}){let o=Ro(),s=Mo(()=>Object.keys(e||{}),[e]);return[(0,W.useMemo)(()=>{if(!e)return Bt(r,n,o)||"";if(typeof e=="string")return Bt(r,e,o);let i=s?e[s]:void 0;return i?typeof i=="string"?i:i.map(a=>Bt(r,a,o,s)).join(t):""},[s,n,e]),s]}function Fe({as:e,defaultText:n,enableDangerouslySetInnerHTML:t,children:r,separator:o,...s}){let i=To(),[a,u]=Eo(r,n,o,i);return u?(0,oe.jsx)(Io,{...s,as:e,language:u,title:t?void 0:a,dangerouslySetInnerHTML:t?{__html:a}:void 0,children:t?void 0:a}):e?(0,oe.jsx)(e,{...s,children:a}):(0,oe.jsx)("span",{...s,title:t?void 0:a,dangerouslySetInnerHTML:t?{__html:a}:void 0,children:t?void 0:a})}var U=require("react/jsx-runtime");function Vo({resource:e,heading:n,note:t,extra:r}){return r?(0,U.jsx)(De.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,U.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,U.jsxs)("div",{children:[(0,U.jsx)(Fe,{children:n||"Not authorised"}),t&&(0,U.jsx)("p",{children:(0,U.jsx)(Fe,{children:t})}),(0,U.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function gr({image:e,thumbnail:n,crop:t,enableSizes:r}){if(!Mn()){let s=e.service,i=s.width||e.width||0,a=s.height||e.height||0;return(0,U.jsx)(De.TileSet,{tiles:{id:s.id||s["@id"]||"unknown",height:a,width:i,imageService:s},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:t})}return(0,U.jsx)(En,{resource:e.service,errorComponent:Vo,extra:e,children:s=>{let i=s.width||e.width||0,a=s.height||e.height||0;return(0,U.jsx)(De.TileSet,{tiles:{id:s.id||s["@id"]||"unknown",height:a,width:i,imageService:s},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:t})}},e.id)}var me=require("react/jsx-runtime");function Re({id:e,image:n,thumbnail:t,isStatic:r,x:o=0,y:s=0,children:i,selector:a,onClick:u,enableSizes:c}){let l=(0,$e.useMemo)(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]);return(0,me.jsx)("world-object",{x:o+n.target.spatial.x,y:s+n.target.spatial.y,width:n.target.spatial.width,height:n.target.spatial.height,onClick:u,children:n.service?(0,me.jsxs)($e.Fragment,{children:[(0,me.jsx)(gr,{image:n,thumbnail:t,crop:l,enableSizes:c}),i]},"service"):(0,me.jsxs)($e.Fragment,{children:[(0,me.jsx)("world-image",{onClick:u,uri:n.id,target:{x:0,y:0,width:n.target.spatial.width,height:n.target.spatial.height},display:n.width&&n.height?{width:n.width,height:n.height}:void 0,crop:l}),i]},"no-service")},e+(n.service?"server":"no-service"))}var j=require("react");var Te=require("react");var hr=require("@iiif/helpers");function ct(e,n){let{selector:t,source:r}=(0,hr.expandTarget)(n);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[t?t.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:t.temporal,spatial:o.spatial}:t:null,r]}var vr={makeChoice:()=>{}},lt={type:"unknown"},M=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),yr=(e,n)=>({type:"empty",width:e,height:n,annotations:{pages:[]},image:null,images:[]});var Ue=require("react");function ko(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function Sr(e,n){return I(t=>{let r=[];if(!e)return r;let o=Object.keys(t.iiif.entities.AnnotationPage);for(let s of o)if(!n||n.indexOf(s)!==-1){let i=ko(t,s);i&&i.views&&i.views[e]&&r.push(s)}return r},[e,n])}function xr({canvas:e,manifest:n,all:t,canvases:r}){let o=[];if(n)for(let s of n.annotations)o.indexOf(s.id)===-1&&o.push(s.id);if(t){if(r&&r.length)for(let s of r)for(let i of s.annotations)o.indexOf(i.id)===-1&&o.push(i.id)}else if(e)for(let s of e.annotations)o.indexOf(s.id)===-1&&o.push(s.id);return o}function No(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function Cr(e,n={}){let t=T(),r=L(),o=E(),s=Je(),i=(0,Ue.useMemo)(()=>xr({all:n.all,manifest:r,canvas:o,canvases:s}),[n.all,o,s,r]),a=Sr(e,n.all?void 0:i),u=(0,Ue.useCallback)(l=>{e&&t.setMetaValue([l,"annotationPageManager","views"],m=>m&&!m[e]?m:{...m||{},[e]:!1})},[e,t]),c=(0,Ue.useCallback)((l,m={})=>{if(!e)return;let h=t.getState(),A=[];if(m?.deselectOthers){let g=Object.keys(h.iiif.entities.AnnotationPage);for(let y of g){let b=No(h,y);b&&b.views&&b.views[e]&&A.push(y)}}for(let g of A)u(g);t.setMetaValue([l,"annotationPageManager","views"],g=>g&&g[e]?g:{...g||{},[e]:!0})},[e,u,t]);return{availablePageIds:i,enabledPageIds:a,setPageEnabled:c,setPageDisabled:u}}function Ar(e,n){return I((t,r)=>r.get(e.map(o=>({id:o,type:n}))),[e,n])}var ie=require("react");var mt=Y(require("react"),1),br=require("@atlas-viewer/iiif-image-api"),Lo=mt.default.createContext(new br.ImageServiceLoader);function dt(){return(0,mt.useContext)(Lo)}function Pr(){let e=dt(),[n,t]=(0,ie.useState)({}),r=(0,ie.useRef)(!1);return(0,ie.useEffect)(()=>()=>{r.current=!0},[]),[(0,ie.useCallback)((s,{height:i,width:a})=>{if(s){let u=s.id||s["@id"],c=e.loadServiceSync({id:u,width:s.width||a,height:s.height||i,source:s});c?s=c:n[u]||(r.current||t(l=>({...l,[u]:"loading"})),e.loadService({id:u,width:s.width||a,height:s.height||i}).then(()=>{r.current||t(l=>({...l,[u]:"done"}))}))}return s},[e,n]),n]}var de=require("react");function Rr(e={}){let n=at(),t=E(e.canvasId?{id:e.canvasId}:void 0);return I((r,o)=>{if(!t)return[];if(n&&e.enableSingleAnnotation)return[n];let s=o.get(t.items),i=[];for(let a of s)i.push(...o.get(a.items));return i},[t])}var Tr=require("@iiif/helpers/painting-annotations");function Ir(e,n=[]){let t=T(),r=(0,de.useMemo)(()=>(0,Tr.createPaintingAnnotationsHelper)(t),[]),o=Rr({enableSingleAnnotation:e?.enableSingleAnnotation}),[s,i]=(0,de.useState)(e?.defaultChoices||[]),a=(0,de.useMemo)(()=>r.getPaintables(o,s),[t,o,s,...n]),c={makeChoice:(0,de.useCallback)((l,{deselectOthers:m=!0,deselect:h=!1}={})=>{a.choice&&i(A=>{if(h){let y=A.filter(b=>b!==l);if(y.length===0){let b=a.items[0].resource.id;return b?[b]:[]}return y}if(m)return[l];let g=[...A];if(g.length===0&&a.items.length){let y=a.items[0].resource.id;y&&g.push(y)}return A.indexOf(l)!==-1?A:[...A,l]})},[a.choice])};return[a,c]}var zo=["model/gltf-binary"];function wr(e,n){let r=n.items[0].resource;return r.format?zo.indexOf(r.format)===-1?M(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r}:M("Unknown format")}function Mr(e,n){if(!e.duration)return M("No duration on canvas");if(n.items.length>1)return M("Only one audio source supported");let t=n.items[0]?.resource;return t?t.format?{type:"media",media:{annotationId:n.items[0].annotationId,duration:e.duration,url:t.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:t.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:M("Audio does not have format"):M("Unknown audio")}var Er=require("@atlas-viewer/iiif-image-api");var qt=require("@iiif/helpers/annotation-targets");function ft(e,n,t){let r=[];for(let o of n.items){let s=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!s.id)return M("No resource Identifier");let i;if(s.service){let g=(0,Er.getImageServices)(s);g[0]&&(i=t(g[0],e))}let a={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[u,c]=ct(e,o.target);if(!(c.id===e.id||decodeURIComponent(c.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,m=o.resource.type==="SpecificResource"?(0,qt.expandTarget)(o.resource):null;if(o.selector){let g=(0,qt.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});g&&(m=g)}let h=m&&m.selector&&(m.selector.type==="BoxSelector"||m.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:m.selector.spatial.x,y:m.selector.spatial.y,width:m.selector.spatial.width,height:m.selector.spatial.height}}:void 0;i&&!i.id&&(i.id=i["@id"]);let A={id:s.id,type:"Image",annotationId:o.annotationId,width:Number(u||h?s.width:e.width),height:Number(u||h?s.height:e.height),service:i,sizes:i&&i.sizes?i.sizes:s.width&&s.height?[{width:s.width,height:s.height}]:[],target:u&&u.type!=="PointSelector"?u:a,selector:h||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};r.push(A)}return{type:"images",image:r[0],images:r,choice:n.choice}}function Vr(e,n={},t){let r=e.language||t||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(n[r]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>Vr(o,n,r))}return n}function pt(e,n){let t=[];return n.items.forEach(r=>{if(r.resource){let[o]=ct(e,r.target);t.push({type:"Text",annotationId:r.annotationId,text:Vr(r.resource),target:o})}}),{type:"textual-content",items:t}}var gt=require("@iiif/helpers"),Oo=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function ht(e,n){let t=n.items.filter(l=>l.type==="video"),r=!1;if(e.duration||(r=!0),t.length>1)return M("Only one video source supported");let o=t[0]?.resource,s=!!(o.service||[]).find(l=>(l.profile||"").includes("youtube.com"));if(!s&&r)return M("Video does not have duration");if(!o)return M("Unknown video");if((!o.format||o.format==="text/html")&&!s)return M("Video does not have format");let i=n.items[0],a={annotationId:n.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}}},u=(0,gt.expandTarget)(i.target);u.selector&&u.selector.type==="TemporalBoxSelector"&&(a.target=u.selector);let{selector:c}=(0,gt.parseSelector)(i.selector);if(c===null){let l=a.target.temporal.startTime,h=(a.target.temporal.endTime||e.duration)-l;a.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:h}}}else c.type==="TemporalSelector"&&(a.selector=c);if(s){a.type="VideoYouTube";let l=o.id.match(Oo);if(!l[1])return M("Video is not known youtube video");a.youTubeId=l[1]}return{type:"media",media:a,annotations:{pages:[]}}}function kr(e,n,t){let r={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},o={type:"complex-choice",items:[]};function s(u){u.choice&&(u.choice.type==="complex-choice"?o.items.push(...u.choice.items):o.items.push(u.choice))}for(let u of n.items){if(u.type==="image"){let c=ft(e,{choice:null,allChoices:null,types:["image"],items:[u]},t);if(c.type==="images"){s(c),r.items.push(c.image);let l={id:c.image.annotationId,type:"enter",resourceType:"image",time:c.image.target?.temporal?.startTime||0};r.keyframes.push(l);let m={id:c.image.annotationId,type:"exit",resourceType:"image",time:c.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(m)}}if(u.type==="textualbody"){let c=pt(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(c.type==="textual-content"){s(c);let l=c.items[0];r.items.push(l);let m=l.target,h={id:l.annotationId,type:"enter",resourceType:"text",time:m.temporal?.startTime||0};r.keyframes.push(h);let A={id:l.annotationId,type:"exit",resourceType:"text",time:m.temporal?.endTime||e.duration||0};r.keyframes.push(A)}}if(u.type==="video"){let c=ht(e,{choice:null,allChoices:null,types:["video"],items:[u]});if(c.type==="media"){s(c);let l=c.media;r.items.push(l);let m={id:l.annotationId,type:"enter",resourceType:"video",time:l.target?.temporal?.startTime||0};r.keyframes.push(m);let h={id:l.annotationId,type:"exit",resourceType:"video",time:l.target?.temporal?.endTime||e.duration||0};r.keyframes.push(h)}}}r.keyframes.sort((u,c)=>u.time-c.time);let i=[],a=[];for(let u of r.keyframes){if(u.resourceType==="image"||u.resourceType==="text"){a.push(u);continue}if(u.type==="enter"){i.length===0&&(u.isPrime=!0),i.push(u),a.push(u);continue}if(u.type==="exit"&&(a.push(u),i=i.filter(c=>c.id!==u.id),i.length!==0)){let c=i[0],l={id:c.id,type:"change",isPrime:!0,resourceType:c.resourceType,time:u.time};a.push(l)}}return r.keyframes=a,o.items.length&&(r.choice=o),r}function Nr({canvas:e,paintables:n,supports:t,loadImageService:r}){if(!e)return lt;if(n.types.length===0)return t.indexOf("empty")!==-1?yr(e.width,e.height):lt;if(n.types.length!==1)if(n.types.length===2&&n.types.indexOf("text")!==-1)n.types=n.types.filter(s=>s!=="text");else return t.indexOf("complex-timeline")===-1?M("Complex timeline not supported"):kr(e,n,r);let o=n.types[0];return o==="image"?t.indexOf("images")===-1?M("Image not supported"):ft(e,n,r):o==="Model"||o==="model"?t.indexOf("3d-model")===-1?M("3D not supported"):wr(e,n):o==="textualbody"?t.indexOf("textual-content")===-1?M("Textual content not supported"):pt(e,n):o==="sound"||o==="audio"?t.indexOf("media")===-1?M("Media not supported"):Mr(e,n):o==="video"?t.indexOf("media")===-1?M("Media not supported"):ht(e,n):lt}function Lr(e){let n=L(),t=E(),r=T(),o=$n(),s=e?.emitter||o,[i,a]=Pr(),{enabledPageIds:u}=Cr(e?.annotationPageManagerId||n?.id||t?.id,{all:!1}),c=Ar(u,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[m,h]=Ir(e,[a]);(0,Te.useEffect)(()=>{let g=y=>{h.makeChoice(y.choiceId,{deselectOthers:y.deselectOthers,deselect:y.deselect})};return s.on("make-choice",g),()=>{s.off("make-choice",g)}},[]);let A=(0,Te.useMemo)(()=>Nr({canvas:t,paintables:m,supports:l,loadImageService:i}),[t,m,r,h.makeChoice]);return(0,Te.useEffect)(()=>{let g=m.allChoices,y={canvasId:t?.id,manifestId:n?.id};g&&s.emit("choice-change",{choice:g,partOf:y})},[t?.id,m.allChoices]),(0,Te.useMemo)(()=>A.type==="unknown"?[A,vr]:[{...A,annotations:{pages:c}},h],[A,c])}var ae=require("react");var zr=require("react"),Or=(e,n=[])=>{let t=T();(0,zr.useEffect)(()=>{e(t)},[t,...n])};var Hr=require("@iiif/helpers/thumbnail");function vt(e,n,{canvasId:t,manifestId:r}={}){let o=T(),s=dt(),i=(0,ae.useMemo)(()=>(0,Hr.createThumbnailHelper)(o,{imageServiceLoader:s}),[o,s]),[a,u]=(0,ae.useState)(),c=L(r?{id:r}:void 0),l=E(t?{id:t}:void 0),m=l||c,h=(0,ae.useRef)(!1);if((0,ae.useEffect)(()=>(h.current=!1,()=>{h.current=!0}),[]),!m)throw new Error("Must be called under a manifest or canvas context.");return Or(A=>{i.getBestThumbnailAtSize(m,e,n).then(g=>{g.best&&!h.current&&u(g.best)})},[m]),a}var V=require("react");function Ho(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Fo(e,n){switch(n.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:n.volume,isMuted:n.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function _t(e){let n=Math.round(e);return`${Math.floor(n/60)}:${`${n%60}`.padStart(2,"0")}`}function Ie(e){let[n,t]=(0,V.useReducer)(Fo,Ho(e.duration)),r=(0,V.useRef)(null),o=(0,V.useRef)(null),s=(0,V.useRef)(null),i=(0,V.useRef)(!1),a=(0,V.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=_t(r.current.currentTime),s.current&&(s.current.style.width=`${r.current.currentTime/e.duration*100}%`),i.current!==r.current.muted&&(i.current=r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),u=(0,V.useCallback)(()=>{r.current&&(t({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{t({type:"PLAY"})}),a())},[a]),c=(0,V.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?u():l())},[a]),l=(0,V.useCallback)(()=>{r.current&&(r.current.pause(),t({type:"PAUSE"}),a())},[a]),m=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),h=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!0,t({type:"MUTE"}))},[]),A=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!1,t({type:"UNMUTE"}))},[]),g=(0,V.useCallback)(p=>{r.current&&(r.current.muted=!1,r.current.volume=p/100,t({type:"SET_VOLUME",volume:p}))},[]),y=(0,V.useCallback)(p=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(p*e.duration,e.duration)),a())},[]),b=(0,V.useCallback)(p=>{if(r.current){let x=typeof p=="function"?p(r.current.currentTime):p;r.current.currentTime=Math.max(0,Math.min(x,e.duration)),a()}},[]);return(0,V.useEffect)(()=>{let p=setInterval(()=>{a()},350);return()=>clearInterval(p)},[a,e.duration]),(0,V.useEffect)(()=>{let p=()=>{t({type:"FINISHED"})},x=r.current;return x?.addEventListener("ended",p),()=>x?.removeEventListener("ended",p)},[]),[{element:r,currentTime:o,progress:s},n,{play:u,pause:l,playPause:c,mute:h,unmute:A,toggleMute:m,setVolume:g,setDurationPercent:y,setTime:b}]}var Be=require("react"),yt=require("react/jsx-runtime"),Do=(0,Be.createContext)(null),$o=(0,Be.createContext)(null),Uo=(0,Be.createContext)(null);function St({actions:e,state:n,children:t,currentTime:r,progress:o,element:s}){return(0,yt.jsx)(Uo.Provider,{value:{currentTime:r,progress:o,element:s},children:(0,yt.jsx)($o.Provider,{value:e,children:(0,yt.jsx)(Do.Provider,{value:n,children:t})})})}var Fr=require("react");var Dr=require("@iiif/helpers");function xt(){let e=L(),n=E();return(0,Fr.useMemo)(()=>{if(!e||!n||!e.start)return null;let t=(0,Dr.expandTarget)(e.start);return!t||t.source.id!==n.id||!t||!t.selector||t.selector.type!=="TemporalSelector"?null:t.selector.temporal},[e,n])}var At=require("react/jsx-runtime");function Kt({media:e,startTime:n,children:t}){let[{element:r,currentTime:o,progress:s},i,a]=Ie({duration:e.duration}),u=n?`${e.url}#t=${n}`:e.url;return(0,At.jsxs)(St,{state:i,actions:a,currentTime:o,progress:s,element:r,children:[(0,At.jsx)("audio",{ref:r,src:u}),t]})}function Ct({media:e,mediaControlsDeps:n,children:t}){let r=xt();return $("portal","audio",Kt,{media:e,startTime:r?r.startTime:null,children:t},[e,r,...n||[]]),null}var qe=require("react/jsx-runtime");function Wt({element:e,media:n,startTime:t,playPause:r,poster:o}){let s="div",i=t?`${n.url}#t=${t}`:n.url;return(0,qe.jsxs)(s,{className:"video-container",part:"video-container",onClick:r,children:[(0,qe.jsx)("style",{children:`
|
|
1
|
+
"use strict";var to=Object.create;var Ye=Object.defineProperty;var no=Object.getOwnPropertyDescriptor;var ro=Object.getOwnPropertyNames;var oo=Object.getPrototypeOf,io=Object.prototype.hasOwnProperty;var ao=(e,n)=>{for(var t in n)Ye(e,t,{get:n[t],enumerable:!0})},en=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of ro(n))!io.call(e,o)&&o!==t&&Ye(e,o,{get:()=>n[o],enumerable:!(r=no(n,o))||r.enumerable});return e};var Y=(e,n,t)=>(t=e!=null?to(oo(e)):{},en(n||!e||!e.__esModule?Ye(t,"default",{value:e,enumerable:!0}):t,e)),so=e=>en(Ye({},"__esModule",{value:!0}),e);var Ko={};ao(Ko,{CanvasPanel:()=>z});module.exports=so(Ko);var Ke=require("react");var O=Y(require("react"),1),ot=require("@atlas-viewer/atlas"),tr=require("react-error-boundary");var re=require("react");var pe=Y(require("react"),1),tn=require("react/jsx-runtime"),uo={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},Qe=pe.default.createContext(uo),B=()=>(0,pe.useContext)(Qe);function te({value:e,children:n}){let t=B(),r=(0,pe.useMemo)(()=>({...t,...e}),[e,t]);return(0,tn.jsx)(Qe.Provider,{value:r,children:n})}var Ge=Y(require("react"),1),Ee=require("@iiif/helpers/vault");var Et=require("react/jsx-runtime"),ue=Ge.default.createContext({vault:null,setVaultInstance:e=>{}});function ge({vault:e,vaultOptions:n,useGlobal:t,resources:r,children:o}){let[s,i]=(0,Ge.useState)(()=>e||(t?(0,Ee.globalVault)(n):n?new Ee.Vault(n):new Ee.Vault));return(0,Et.jsx)(ue.Provider,{value:{vault:s,setVaultInstance:i},children:(0,Et.jsx)(te,{value:r||{},children:o})})}var zn=require("react"),tt=require("react");var nn=require("@iiif/helpers/vault"),rn=require("react");function he(e){let n=(0,rn.useContext)(ue);return e||(n&&n.vault?n.vault:(0,nn.globalVault)())}var ne=require("react");function on(e,{noCache:n=!1}={}){let t=typeof e=="string"?e:e.id,r=he(),[o,s]=(0,ne.useState)(t),[i,a]=(0,ne.useState)(void 0),u=(0,ne.useMemo)(()=>r.get(t,{skipSelfReturn:!0})||void 0,[t,r]),[c,l]=(0,ne.useState)(u);return(0,ne.useEffect)(()=>{(async()=>{try{let m=u&&!n?u:await r.load(t),f=m?m.id||m["@id"]:null;m&&o!==f&&s(f),l(m)}catch(m){a(m)}})()},[t,n]),{isLoaded:!!c,id:o,requestId:t,error:i,resource:c,cached:!!(c&&c===u)}}function an(e,n){let{id:t,isLoaded:r,error:o,resource:s,requestId:i,cached:a}=on(e,n);return{id:t,isLoaded:r,error:o,manifest:s,requestId:i,cached:a}}var un=require("react/jsx-runtime");function sn({manifest:e,children:n}){return(0,un.jsx)(te,{value:{manifest:e},children:n})}var cn=require("react/jsx-runtime");function Q({canvas:e,children:n}){return(0,cn.jsx)(te,{value:{canvas:e},children:n})}var mn=require("react"),dn=Y(require("react"),1);var ln=require("react"),T=()=>{let{vault:e}=(0,ln.useContext)(ue);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Ze=require("react");function I(e,n=[]){let t=T(),[r,o]=(0,Ze.useState)(()=>e(t.getState(),t));return(0,Ze.useEffect)(()=>t.subscribe(s=>e(s,t),s=>{o(s)},!1),n),r}var ye=dn.default.createContext([]);function Je(){let e=(0,mn.useContext)(ye);return I(n=>e.map(t=>n.iiif.entities.Canvas[t]).filter(Boolean),[e])}var fn=require("react");function L(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=T(),i=t||o.manifest,a=I(u=>i?u.iiif.entities.Manifest[i]:void 0,[i]);return(0,fn.useMemo)(()=>{if(a)return r?r(a):a},[a,r,...n])}var gn=require("react/jsx-runtime");function pn({range:e,children:n}){return(0,gn.jsx)(te,{value:{range:e},children:n})}function Vt(e,n){let t=[];for(let r of n.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?t.push({id:r.source.id.split("#")[0],type:"Canvas"}):t.push(r.source)),r.type==="Range"&&t.push(...Vt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;t.push({id:o,type:"Canvas"})}return t}function hn(e,n,{disablePaging:t,skipNonPaged:r}={}){let o=n.behavior,s=o.includes("paged"),i=s?!1:o.includes("continuous"),a=s||i?!1:o.includes("individuals"),u=n.type==="Manifest"?n.items:Vt(e,n);if(i)return[u,[u.map((v,h)=>h)]];if(a||!s||t)return[u,u.map((v,h)=>[h])];let c=[],l=[],m=()=>{l.length&&(c.push([...l]),l=[])},f=0,A=!1;for(let v=0;v<u.length;v++){let h=e.get(u[v]);if(h.behavior.includes("non-paged")){v===f&&f++,r||(m(),c.push([v]),m());continue}if(v===f||h.behavior.includes("facing-pages")){l.length&&(A=!0),m(),c.push([v]),m();continue}if(l.push(v),A){m(),A=!1;continue}l.length>1&&m()}return l.length&&m(),[u,c]}var q=require("react");var yn=require("react");function vn(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=t||o.range,i=I(a=>s?a.iiif.entities.Range[s]:void 0,[s]);return(0,yn.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...n])}function Sn({startCanvas:e,disablePaging:n}){let t=T(),r=L(),o=vn(),[s,i]=(0,q.useState)(void 0),a=o||r;if(!a)throw new Error("Nothing selected");let[u,c]=(0,q.useMemo)(()=>hn(t,a,{disablePaging:n}),[t,a,n]),l=(0,q.useRef)(c);if(l.current!==c){let b=l.current[s][0],g=c.findIndex(x=>x.includes(b));l.current=c,i(g)}let m=(0,q.useCallback)(h=>{let b=c.findIndex(g=>g.includes(h));i(b===-1?0:b)},[u,c]),f=(0,q.useCallback)(h=>{let b=u.findIndex(g=>g.id===h);b!==-1?m(b):i(0)},[u,c]),A=(0,q.useCallback)(()=>{i(h=>h>=c.length-1?h:h+1)},[c]),v=(0,q.useCallback)(()=>{i(h=>h<=0?0:h-1)},[c]);return typeof s>"u"&&(e?f(e):i(0)),{visibleItems:c[s]?.map(h=>u[h].id)||[],cursor:s,items:u,sequence:c,hasPrevious:s>0,hasNext:s<c.length-1,setSequenceIndex:i,setCanvasIndex:m,setCanvasId:f,next:A,previous:v}}var K=require("react"),Xe=require("zustand");var Nt=require("zustand/vanilla");function _(e,n,t){let r=n.findIndex(i=>i.service.id===e);if(r===-1)return n;let o=[...n],s=t(o[r]);return s===o[r]?n:(o[r]=s,o)}var Cn=()=>(0,Nt.createStore)((e,n)=>({currentAuth:-1,authItems:[],login:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot login to non-active service");let r=t.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:_(t.id,n().authItems,o=>({...o,isPending:!0}))})),xn(t.service).then(()=>{kt(r).then(o=>{let s=o.expiresIn,i=Date.now()+s*1e3;e(()=>({authItems:_(t.id,n().authItems,a=>({...a,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:i}}))}))}).catch(o=>{e(()=>({authItems:_(t.id,n().authItems,s=>({...s,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let t=n().authItems[n().currentAuth];if(!t||t.isPending||!t.isLoggedIn)return;if(t.type!=="active")throw new Error("Cannot logout of non-active service");let r=t.service.service.find(i=>i.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${Pn()}`,s=window.open(o);e(()=>({authItems:_(t.id,n().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let t=n().authItems.length,r=n().currentAuth+1;r>=t||e(()=>({currentAuth:r}))},previousAuth:()=>{let t=n().currentAuth-1;t<0||e(()=>({currentAuth:t}))},setAuth:t=>{t!==-1&&(t<0||t>=n().authItems.length)||e(()=>({currentAuth:t}))},addService:(t,r)=>{if(!t.service)return;let o=t.service.find(a=>a.type==="AuthAccessTokenService2"),s=t;if(n().authItems.find(a=>a.service.id===t.id)){e(()=>({authItems:_(t.id,n().authItems,a=>({...a,instances:a.instances+1}))}));return}if(e(()=>({currentAuth:s.profile==="active"?0:n().currentAuth,authItems:[{id:t.id,type:t.profile,service:t,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...n().authItems]})),t.profile==="external"){if(!o)throw new Error("Token service not found");kt(o).then(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:a.message}))}))})}if(t.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:_(t.id,n().authItems,a=>({...a,isPending:!0}))})),xn(s).then(()=>{kt(o).then(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!0,isPending:!1,session:{token:a.accessToken,expires:a.expiresIn}}))}))}).catch(a=>{e(()=>({authItems:_(t.id,n().authItems,u=>({...u,isLoggedIn:!1,isPending:!1,error:a.message}))}))})})}t.profile},removeService:(t,r)=>{let o=n().currentAuth===n().authItems.findIndex(i=>i.service.id===t.id),s=n().currentAuth;if(o){let i=n().authItems.find(u=>u.service.id===t.id);i&&i.instances>1||(s=n().authItems.findIndex(c=>c.service.id!==t.id&&c.instances>0))}e(()=>({authItems:_(t.id,n().authItems,i=>({...i,instances:i.instances-1})),currentAuth:s}))}})),An=(e,n)=>(0,Nt.createStore)((t,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:n||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){t({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}t({status:"probing"});let s=r().token;try{let i=await fetch(o,{headers:s?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(a=>a.json());if(i.status===200)t({status:"success",shouldDisplayResource:!0,error:null,errorHeading:null,errorNote:null,shouldSubstitute:!1,shouldRedirect:!1});else if(i.status<400&&i.status>=300){if(!i.location)throw new Error("Redirect location not found");t({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)t({status:"error",shouldDisplayResource:!1,shouldRedirect:!1,shouldSubstitute:!!i.substitute,substituteResource:i.substitute||null,error:"Unauthorized",errorHeading:i.heading||{en:["Unauthorized"]},errorNote:i.note||null});else throw new Error("Unknown error")}catch(i){t({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){t({token:o})}}));function bn(e){let n=e.service||e.services||[],t={hasAuth:!1,services:{}};for(let r of n)if(r.type==="AuthProbeService2"){t.services.probe=r,t.hasAuth=!0;let o=r.service.filter(s=>s.type==="AuthAccessService2");o[0]&&(t.services.access=o[0])}return t}async function kt(e,{strict:n=!0}={}){return new Promise((t,r)=>{let o=Math.random().toString(36).substring(7),s=`${e.id}?messageId=${o}&origin=${window.location.origin}`,i=c=>{let l=c.data;if(l.messageId===o){if(n&&l.type!=="AuthAccessToken2"){a(),r("Invalid response, expected type=AuthAccessToken2");return}if(!l.accessToken){a(),r("Invalid response, expected accessToken");return}a(),t(l)}},a=()=>window.removeEventListener("message",i),u=document.createElement("iframe");u.src=s,u.style.display="none",document.body.appendChild(u),window.addEventListener("message",i)})}function Pn(e){let n=window.location;if(e){let t=document.createElement("a");return t.href=e,t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}return n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}async function xn(e){let n=`${e.id}?origin=${Pn()}`,t=window.open(n);if(!t)throw new Error("Failed to open window");return new Promise((r,o)=>{let s=setInterval(()=>{t.closed&&(clearInterval(s),r())},500)})}var ve=require("react");var Rn=require("zustand");function Tn(e){let n=(0,ve.useMemo)(()=>bn(e),[e]),t=In(n.services.access?.id),r=(0,ve.useMemo)(()=>An(n.services.probe,t),[n.services.probe]),o=(0,Rn.useStore)(r);return(0,ve.useEffect)(()=>{o.status==="unknown"&&!t&&o.probe()},[n.services.probe,o.status]),(0,ve.useEffect)(()=>{t&&(o.setToken(t),o.probe())},[t]),[e,o,n.hasAuth]}var Ve=require("react/jsx-runtime"),Se=(0,K.createContext)(null),co=(0,K.createContext)(null);co.displayName="CurrentAuth";var lo=(0,K.createContext)(null);lo.displayName="AuthActions";function wn({children:e}){let n=(0,K.useMemo)(()=>Cn(),[]);return(0,Ve.jsx)(Se.Provider,{value:n,children:e})}function Mn(){return!!(0,K.useContext)(Se)}function zt(){let e=(0,K.useContext)(Se);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function mo(){let e=zt();return(0,Xe.useStore)(e,t=>({login:t.login,logout:t.logout,nextAuth:t.nextAuth,previousAuth:t.previousAuth,setAuth:t.setAuth,addService:t.addService,removeService:t.removeService}))}function fo(e){let n=zt();return(0,Xe.useStore)(n,r=>r.authItems.find(o=>o.service.id===e))}function In(e){let n=zt();return(0,Xe.useStore)(n,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function po(e){let n=mo(),t=fo(e.service.id);return(0,K.useEffect)(()=>(n?.addService(e.service,e.probeId),()=>{n?.removeService(e.service,e.probeId)}),[e.service]),t?(t.error||!t.isLoggedIn,e.children):null}function Lt(){return null}function En(e){let[n,t,r]=Tn(e.resource),o=e.fallbackComponent||Lt,s=e.loadingComponent||Lt,i=e.errorComponent||Lt,a=t.service,u=null;if(!r||!a)return e.children(n);let c=a.service.filter(l=>l.type==="AuthAccessService2");t.status==="error"&&(u=(0,Ve.jsx)(i,{resource:e.resource,error:t.error||"",heading:t.errorHeading,note:t.errorNote,extra:e.extra})),(t.status==="unknown"||t.status==="probing")&&(u=(0,Ve.jsx)(s,{})),t.status==="success"&&(u=e.children(n));for(let l of c)u=(0,Ve.jsx)(po,{service:l,probeId:a.id,children:u},l.id);return u}var ke=require("react");var Vn=require("zustand/vanilla"),go=e=>e.id||e["@id"];function ho(e){return(Array.isArray(e.service)?e.service:[e.service]).find(t=>t.profile==="http://iiif.io/api/search/0/autocomplete"||t.profile==="http://iiif.io/api/search/1/autocomplete"||t.profile==="AutoCompleteService1")}var kn=e=>{let n;typeof e=="string"?n={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:n=e;let t=n?go(n):void 0,r=null;return(0,Vn.createStore)((o,s)=>({service:n,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!n,hasAutocomplete:n?!!ho(n):!1,errorMessage:"",search(i,a={}){if(!t)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let u=new URLSearchParams;i.q&&u.set("q",i.q),i.motivation&&u.set("motivation",i.motivation),i.date&&u.set("date",i.date),i.user&&u.set("user",i.user),o({loading:!0}),fetch(`${t}?${u.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...a.headers||{}}}).then(async c=>{if(!r?.signal.aborted)if(c.ok){let l=await c.json();o({resources:l.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:c.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(i){let a=s().resources.find(u=>u["@id"]===i);o({highlight:a})},nextResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[0]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[0]||null});return}o({highlight:i[u+1]||i[0]||null})},previousResult(){let i=s().resources,a=s().highlight;if(!a){o({highlight:i[i.length-1]||null});return}let u=i.findIndex(c=>c["@id"]===a["@id"]);if(u===-1){o({highlight:i[i.length-1]||null});return}if(u===0){o({highlight:i[i.length-1]||null});return}o({highlight:i[u-1]||i[i.length-1]||null})}}))};var yo=require("zustand");function Nn(){let e=L();return e?e.service.find(n=>n.profile==="SearchService1"||n.profile==="http://iiif.io/api/search/1/search"):void 0}var et=require("react/jsx-runtime"),xe=(0,ke.createContext)(null);xe.displayName="Search";function Ln(e){let n=Nn();return e.store?(0,et.jsx)(xe.Provider,{value:e.store,children:e.children}):(0,et.jsx)(vo,{service:n,children:e.children})}function vo({service:e,children:n}){let t=(0,ke.useMemo)(()=>kn(e),[e]);return(0,et.jsx)(xe.Provider,{value:t,children:n})}var F=require("react/jsx-runtime"),Ne=()=>{},Le=(0,tt.createContext)({setCurrentCanvasId:Ne,setCurrentCanvasIndex:Ne,nextCanvas:Ne,previousCanvas:Ne,items:[],sequence:[],setSequenceIndex:Ne,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function So(e){let n=L(),{cursor:t,visibleItems:r,next:o,sequence:s,items:i,setCanvasIndex:a,setCanvasId:u,previous:c,setSequenceIndex:l,hasNext:m,hasPrevious:f}=Sn({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),A=(0,tt.useMemo)(()=>({sequence:s,items:i,setCurrentCanvasId:u,nextCanvas:o,previousCanvas:c,totalCanvases:i.length,setCurrentCanvasIndex:a,setSequenceIndex:l,currentSequenceIndex:t,hasNext:m,hasPrevious:f}),[s,i,u,o,c,i,a,l,t]);return n?r.length===0?null:(0,F.jsx)(Le.Provider,{value:A,children:(0,F.jsx)(ye.Provider,{value:r,children:(0,F.jsx)(Q,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,F.jsx)("div",{children:"Sorry, something went wrong."}))}function On(e){let n=he(e.vault),t=an(e.manifest);if(!t)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,F.jsx)("div",{children:"Sorry, something went wrong."});if(t.error)return(0,F.jsx)("div",{children:t.error.toString()});if(!t.isLoaded)return(0,F.jsx)("div",{children:"Loading..."});let r=(0,F.jsx)(So,{...e,children:e.children});return(0,F.jsx)(ge,{vault:n,children:(0,F.jsx)(sn,{manifest:t.id,children:(0,F.jsx)(wn,{children:(0,F.jsx)(Ln,{children:e.rangeId?(0,F.jsx)(pn,{range:e.rangeId,children:r}):r})})})})}function Hn(){return(0,zn.useContext)(Le)}var Fn=Y(require("react"),1),Ot=require("react"),Dn=Y(require("mitt"),1),Co=require("react/jsx-runtime"),xo=(0,Dn.default)(),ze=(0,Ot.createContext)({emitter:xo});ze.displayName="Events";function Un(){return Fn.default.useContext(ze).emitter}var ce=require("react/jsx-runtime");function $n(){return{VaultContext:(0,re.useContext)(ue),ResourceContext:(0,re.useContext)(Qe),SimpleViewerReactContext:(0,re.useContext)(Le),VisibleCanvasReactContext:(0,re.useContext)(ye),AuthRContext:(0,re.useContext)(Se),SearchReactContext:(0,re.useContext)(xe),ReactEventContext:(0,re.useContext)(ze)}}function Bn(e){return(0,ce.jsx)(ge,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,ce.jsx)(ye.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,ce.jsx)(Le.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,ce.jsx)(ze.Provider,{value:e.bridge.ReactEventContext,children:(0,ce.jsx)(Se.Provider,{value:e.bridge.AuthRContext,children:(0,ce.jsx)(xe.Provider,{value:e.bridge.SearchReactContext,children:e.children})})})})})})}var Ce=require("react");var G=require("react");var nt=require("@iiif/helpers/vault/actions");var qn=require("react");function _n(){let n=T().getStore();return(0,qn.useMemo)(()=>t=>n.dispatch(t),[n])}function Kn(e){return typeof e!="string"&&e&&e.bindToVault}function Wn(){let e=T(),n=(0,G.useRef)([]),t=_n(),r=(0,G.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,G.useLayoutEffect)(()=>{let a={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};t(nt.entityActions.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[r]);let o=I(a=>r&&a.iiif.entities.AnnotationPage[r]||null,[r]),s=(0,G.useCallback)((a,u)=>{if(r){if(Kn(a)){let m=a;m.__vault||m.bindToVault(e),a=typeof m.source=="string"?m.source:m.source.id,n.current[a]=m}else typeof a!="string"&&(a=a.id);let c=e.get({id:r,type:"AnnotationPage"}),l=e.get({id:a,type:"Annotation"});c&&l&&(c.items.find(m=>m.id===l.id)||t(nt.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:u})))}},[r]),i=(0,G.useCallback)(a=>{r&&(Kn(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),n.current[a]&&n.current[a].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&t(nt.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[r]);return[o,{addAnnotation:s,removeAnnotation:i}]}var Gn=require("react/jsx-runtime"),jn=(0,Ce.createContext)(null);function Yn(){let e=(0,Ce.useContext)(jn);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Qn({children:e}){let[n,{addAnnotation:t,removeAnnotation:r}]=Wn();return(0,Gn.jsx)(jn.Provider,{value:(0,Ce.useMemo)(()=>({fullPage:n,addAnnotation:t,removeAnnotation:r}),[n]),children:e})}var Ae=require("react/jsx-runtime");function Zn({width:e,style:n,height:t,error:r,resetErrorBoundary:o}){return(0,Ae.jsxs)("div",{style:{width:e,height:t,minHeight:500,...n||{},background:"#f9f9f9"},children:[(0,Ae.jsx)("h3",{children:"Error occurred"}),(0,Ae.jsx)("p",{children:r.message}),(0,Ae.jsx)("button",{onClick:o,children:"Reset"})]})}var rt=require("react"),Oe=(0,rt.createContext)(null);function Jn(){return(0,rt.useContext)(Oe)}var le=require("react"),Ht=(0,le.createContext)(()=>{}),Ft=(0,le.createContext)(()=>{});function U(e,n,t,r,o=[]){let s=(0,le.useContext)(e==="portal"?Ft:Ht);(0,le.useEffect)(()=>(e!=="none"&&s(n,t,r),()=>{s(n,null)}),[n,e,s,...o])}var be=require("react");var Xn=require("react");function E(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=t||o.canvas,i=I(a=>s?a.iiif.entities.Canvas[s]:void 0,[s]);return(0,Xn.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...n])}var Dt=(0,be.createContext)(()=>{});function er(e){let n=E(),t=(0,be.useContext)(Dt);(0,be.useEffect)(()=>n&&n.id?(t(n.id,e),()=>t(n.id,-1)):()=>{},[n,e])}var k=require("react/jsx-runtime");function nr({children:e,errorFallback:n,outerContainerProps:t={},worldScale:r,...o}){let[s,i]=(0,O.useState)(),a=$n(),u=n||Zn,[c,l]=(0,O.useState)({}),m=Object.entries(c),[f,A]=(0,O.useState)({}),v=Object.entries(f),[h,b]=(0,O.useState)({}),g=(0,O.useMemo)(()=>r||Math.max(...Object.values(h)),[h]),x=(0,O.useMemo)(()=>({maxOverZoom:g||1,...o.runtimeOptions||{}}),[g,o.runtimeOptions]),d=(0,O.useCallback)((S,P)=>{b(C=>{if(P===-1){let{[S]:X,...p}=C;return p}return{...C,[S]:P}})},[]),y=(0,O.useCallback)((S,P,C)=>{l(({[S]:X,...p})=>P?{...p,[S]:{element:P,props:C}}:p)},[]),w=(0,O.useCallback)((S,P,C)=>{A(({[S]:X,...p})=>P?{...p,[S]:{element:P,props:C}}:p)},[]);return(0,k.jsxs)(tr.ErrorBoundary,{resetKeys:[],fallbackRender:S=>(0,k.jsx)(u,{...o,...S}),children:[(0,k.jsx)(ot.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,k.jsx)(k.Fragment,{children:m.map(([S,{element:P,props:C}])=>(0,k.jsx)(O.default.Fragment,{children:(0,k.jsx)(P,{...C||{}})},S))}),onCreated:S=>{i(S),o.onCreated&&o.onCreated(S)},runtimeOptions:x,children:(0,k.jsx)(Oe.Provider,{value:s,children:(0,k.jsx)(Dt.Provider,{value:d,children:(0,k.jsx)(Ht.Provider,{value:y,children:(0,k.jsx)(Ft.Provider,{value:w,children:(0,k.jsx)(Bn,{bridge:a,children:(0,k.jsx)(ot.ModeContext.Provider,{value:o.mode||"explore",children:(0,k.jsx)(Qn,{children:e})})})})})})})}),(0,k.jsx)("div",{children:v.map(([S,{element:P,props:C}])=>(0,k.jsx)(O.default.Fragment,{children:(0,k.jsx)(P,{...C||{}})},S))})]})}var st=require("@atlas-viewer/atlas");var Ut=require("react"),rr=require("@iiif/helpers/events");function it(e,n){let t=T(),r=(0,Ut.useMemo)(()=>(0,rr.createEventsHelper)(t),[t]),o=I(()=>e&&e.id?t.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,Ut.useMemo)(()=>e?r.getListenersAsProps(e,n):{},[o,e,t,n])}var or=require("react"),ir=require("@iiif/helpers/styles");function Pe(e,n){let t=T(),r=(0,or.useMemo)(()=>(0,ir.createStylesHelper)(t),[t]);return I(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?n?o[n]:o:void 0},[e,n])}var ur=require("react");var ar=require("react");var sr=require("@iiif/helpers/annotation-targets");function at(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=T(),i=t||o.annotation,a=I(c=>i?c.iiif.entities.Annotation[i]:void 0,[i]),u=I(c=>a&&a.body?a.body.map(l=>l?l.type==="SpecificResource"?{...l,source:s.get(l)}:l?c.iiif.entities[l.type][l.id]:null:null).filter(Boolean):[],[a]);return(0,ar.useMemo)(()=>{if(!a)return;let c={...a,body:u,target:(0,sr.expandTarget)(a.target,{typeMap:s.getState().iiif.mapping})};return r?r(c):c},[a,r,u,...n])}var cr=require("react/jsx-runtime"),ut=({id:e,style:n,className:t,interactive:r})=>{let o=at({id:e}),s=Pe(o,"atlas"),i=Pe(o,"html"),a=it(o,["atlas"]),u=E(),c=(0,ur.useMemo)(()=>(0,st.mergeStyles)(n,s),[n,s]);return u&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===u.id||o.target.source===u.id)?(0,cr.jsx)(st.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:c,className:i?.className||t,interactive:!!(i?.href||r),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...a}):null};var dr=require("react");var lr=require("react");function mr(e={},n=[]){let{id:t,selector:r}=e,o=B(),s=t||o.annotationPage,i=I(a=>s?a.iiif.entities.AnnotationPage[s]:void 0,[s]);return(0,lr.useMemo)(()=>{if(i)return r?r(i):i},[i,...n])}var $t=require("react/jsx-runtime"),He=({className:e,page:n})=>{let t=mr({id:n.id})||n,r=Pe(t,"atlas"),o=Pe(t,"html");return I(s=>t.id?s.iiif.entities.AnnotationPage[t.id]:null,[]),(0,$t.jsx)(dr.Fragment,{children:t.items?.map(s=>(0,$t.jsx)(ut,{id:s.id,style:r,className:o?.className||e},s.id))})};var Xr=require("@iiif/helpers/styles");var Ue=require("react");var De=require("@atlas-viewer/atlas");var W=Y(require("react"),1),oe=require("react/jsx-runtime"),Ao=W.default.createContext("en"),bo=W.default.createContext({}),Po=W.default.createContext(null);function Ro(){return W.default.useContext(Po)}function pr(){return W.default.useContext(Ao)}function To(){return W.default.useContext(bo)}function fr(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Io({as:e,language:n,children:t,viewingDirection:r,...o}){let s=pr();return(0,W.useMemo)(()=>fr(s)===fr(n),[s,n])?e?(0,oe.jsx)(e,{...o,children:t}):(0,oe.jsx)("span",{...o,children:t}):e?(0,oe.jsx)(e,{...o,lang:n,dir:r,children:t}):(0,oe.jsx)("span",{...o,lang:n,dir:r,children:t})}function wo(e,n,t){if(n.length===0)return;if(n.length===1)return n[0];if(n.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&n.indexOf(r)!==-1)return r;for(let o of t)if(n.indexOf(o)!==-1)return o;return n.indexOf("none")!==-1?"none":n.indexOf("@none")!==-1?"@none":n[0]}var Mo=(e,n=[])=>{let t=pr();return(0,W.useMemo)(()=>{let r=e();return wo(t,r,[])},[t,...n])};function Bt(e,n,t,r){return n?t?t(e[n]||n,r||"none"):e[n]||n:""}function Eo(e,n,t=`
|
|
2
|
+
`,r={}){let o=Ro(),s=Mo(()=>Object.keys(e||{}),[e]);return[(0,W.useMemo)(()=>{if(!e)return Bt(r,n,o)||"";if(typeof e=="string")return Bt(r,e,o);let i=s?e[s]:void 0;return i?typeof i=="string"?i:i.map(a=>Bt(r,a,o,s)).join(t):""},[s,n,e]),s]}function Fe({as:e,defaultText:n,enableDangerouslySetInnerHTML:t,children:r,separator:o,...s}){let i=To(),[a,u]=Eo(r,n,o,i);return u?(0,oe.jsx)(Io,{...s,as:e,language:u,title:t?void 0:a,dangerouslySetInnerHTML:t?{__html:a}:void 0,children:t?void 0:a}):e?(0,oe.jsx)(e,{...s,children:a}):(0,oe.jsx)("span",{...s,title:t?void 0:a,dangerouslySetInnerHTML:t?{__html:a}:void 0,children:t?void 0:a})}var $=require("react/jsx-runtime");function Vo({resource:e,heading:n,note:t,extra:r}){return r?(0,$.jsx)(De.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,$.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,$.jsxs)("div",{children:[(0,$.jsx)(Fe,{children:n||"Not authorised"}),t&&(0,$.jsx)("p",{children:(0,$.jsx)(Fe,{children:t})}),(0,$.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function gr({image:e,thumbnail:n,crop:t,enableSizes:r}){if(!Mn()){let s=e.service,i=s.width||e.width||0,a=s.height||e.height||0;return(0,$.jsx)(De.TileSet,{tiles:{id:s.id||s["@id"]||"unknown",height:a,width:i,imageService:s},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:t})}return(0,$.jsx)(En,{resource:e.service,errorComponent:Vo,extra:e,children:s=>{let i=s.width||e.width||0,a=s.height||e.height||0;return(0,$.jsx)(De.TileSet,{tiles:{id:s.id||s["@id"]||"unknown",height:a,width:i,imageService:s},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:t})}},e.id)}var me=require("react/jsx-runtime");function Re({id:e,image:n,thumbnail:t,isStatic:r,x:o=0,y:s=0,children:i,selector:a,onClick:u,enableSizes:c}){let l=(0,Ue.useMemo)(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]);return(0,me.jsx)("world-object",{x:o+n.target.spatial.x,y:s+n.target.spatial.y,width:n.target.spatial.width,height:n.target.spatial.height,onClick:u,children:n.service?(0,me.jsxs)(Ue.Fragment,{children:[(0,me.jsx)(gr,{image:n,thumbnail:t,crop:l,enableSizes:c}),i]},"service"):(0,me.jsxs)(Ue.Fragment,{children:[(0,me.jsx)("world-image",{onClick:u,uri:n.id,target:{x:0,y:0,width:n.target.spatial.width,height:n.target.spatial.height},display:n.width&&n.height?{width:n.width,height:n.height}:void 0,crop:l}),i]},"no-service")},e+(n.service?"server":"no-service"))}var j=require("react");var Te=require("react");var hr=require("@iiif/helpers");function ct(e,n){let{selector:t,source:r}=(0,hr.expandTarget)(n);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[t?t.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:t.temporal,spatial:o.spatial}:t:null,r]}var yr={makeChoice:()=>{}},lt={type:"unknown"},M=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),vr=(e,n)=>({type:"empty",width:e,height:n,annotations:{pages:[]},image:null,images:[]});var $e=require("react");function ko(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function Sr(e,n){return I(t=>{let r=[];if(!e)return r;let o=Object.keys(t.iiif.entities.AnnotationPage);for(let s of o)if(!n||n.indexOf(s)!==-1){let i=ko(t,s);i&&i.views&&i.views[e]&&r.push(s)}return r},[e,n])}function xr({canvas:e,manifest:n,all:t,canvases:r}){let o=[];if(n)for(let s of n.annotations)o.indexOf(s.id)===-1&&o.push(s.id);if(t){if(r&&r.length)for(let s of r)for(let i of s.annotations)o.indexOf(i.id)===-1&&o.push(i.id)}else if(e)for(let s of e.annotations)o.indexOf(s.id)===-1&&o.push(s.id);return o}function No(e,n){let t=e?.iiif?.meta[n];return t?t.annotationPageManager:null}function Cr(e,n={}){let t=T(),r=L(),o=E(),s=Je(),i=(0,$e.useMemo)(()=>xr({all:n.all,manifest:r,canvas:o,canvases:s}),[n.all,o,s,r]),a=Sr(e,n.all?void 0:i),u=(0,$e.useCallback)(l=>{e&&t.setMetaValue([l,"annotationPageManager","views"],m=>m&&!m[e]?m:{...m||{},[e]:!1})},[e,t]),c=(0,$e.useCallback)((l,m={})=>{if(!e)return;let f=t.getState(),A=[];if(m?.deselectOthers){let v=Object.keys(f.iiif.entities.AnnotationPage);for(let h of v){let b=No(f,h);b&&b.views&&b.views[e]&&A.push(h)}}for(let v of A)u(v);t.setMetaValue([l,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,u,t]);return{availablePageIds:i,enabledPageIds:a,setPageEnabled:c,setPageDisabled:u}}function Ar(e,n){return I((t,r)=>r.get(e.map(o=>({id:o,type:n}))),[e,n])}var ie=require("react");var mt=Y(require("react"),1),br=require("@atlas-viewer/iiif-image-api"),Lo=mt.default.createContext(new br.ImageServiceLoader);function dt(){return(0,mt.useContext)(Lo)}function Pr(){let e=dt(),[n,t]=(0,ie.useState)({}),r=(0,ie.useRef)(!1);return(0,ie.useEffect)(()=>()=>{r.current=!0},[]),[(0,ie.useCallback)((s,{height:i,width:a})=>{if(s){let u=s.id||s["@id"],c=e.loadServiceSync({id:u,width:s.width||a,height:s.height||i,source:s});c?s=c:n[u]||(r.current||t(l=>({...l,[u]:"loading"})),e.loadService({id:u,width:s.width||a,height:s.height||i}).then(()=>{r.current||t(l=>({...l,[u]:"done"}))}))}return s},[e,n]),n]}var de=require("react");function Rr(e={}){let n=at(),t=E(e.canvasId?{id:e.canvasId}:void 0);return I((r,o)=>{if(!t)return[];if(n&&e.enableSingleAnnotation)return[n];let s=o.get(t.items),i=[];for(let a of s)i.push(...o.get(a.items));return i},[t])}var Tr=require("@iiif/helpers/painting-annotations");function Ir(e,n=[]){let t=T(),r=(0,de.useMemo)(()=>(0,Tr.createPaintingAnnotationsHelper)(t),[]),o=Rr({enableSingleAnnotation:e?.enableSingleAnnotation}),[s,i]=(0,de.useState)(e?.defaultChoices||[]),a=(0,de.useMemo)(()=>r.getPaintables(o,s),[t,o,s,...n]),c={makeChoice:(0,de.useCallback)((l,{deselectOthers:m=!0,deselect:f=!1}={})=>{a.choice&&i(A=>{if(f){let h=A.filter(b=>b!==l);if(h.length===0){let b=a.items[0].resource.id;return b?[b]:[]}return h}if(m)return[l];let v=[...A];if(v.length===0&&a.items.length){let h=a.items[0].resource.id;h&&v.push(h)}return A.indexOf(l)!==-1?A:[...A,l]})},[a.choice])};return[a,c]}var zo=["model/gltf-binary"];function wr(e,n){let r=n.items[0].resource;return r.format?zo.indexOf(r.format)===-1?M(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r}:M("Unknown format")}function Mr(e,n){if(!e.duration)return M("No duration on canvas");if(n.items.length>1)return M("Only one audio source supported");let t=n.items[0]?.resource;return t?t.format?{type:"media",media:{annotationId:n.items[0].annotationId,duration:e.duration,url:t.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:t.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:M("Audio does not have format"):M("Unknown audio")}var Er=require("@atlas-viewer/iiif-image-api");var qt=require("@iiif/helpers/annotation-targets");function ft(e,n,t){let r=[];for(let o of n.items){let s=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!s.id)return M("No resource Identifier");let i;if(s.service){let h=(0,Er.getImageServices)(s);h[0]&&(i=t(h[0],e))}let a={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[u,c]=ct(e,o.target),l=e.id?.split("?")[0]||"";if(!(c.id===e.id||decodeURIComponent(c.id||"")===(e.id||"")||c.id===l||decodeURIComponent(c.id||"")===l))continue;let m=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,f=o.resource.type==="SpecificResource"?(0,qt.expandTarget)(o.resource):null;if(o.selector){let h=(0,qt.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});h&&(f=h)}let A=f&&f.selector&&(f.selector.type==="BoxSelector"||f.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:f.selector.spatial.x,y:f.selector.spatial.y,width:f.selector.spatial.width,height:f.selector.spatial.height}}:void 0;i&&!i.id&&(i.id=i["@id"]);let v={id:s.id,type:"Image",annotationId:o.annotationId,width:Number(u||A?s.width:e.width),height:Number(u||A?s.height:e.height),service:i,sizes:i&&i.sizes?i.sizes:s.width&&s.height?[{width:s.width,height:s.height}]:[],target:u&&u.type!=="PointSelector"?u:a,selector:A||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};r.push(v)}return{type:"images",image:r[0],images:r,choice:n.choice}}function Vr(e,n={},t){let r=e.language||t||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(n[r]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>Vr(o,n,r))}return n}function pt(e,n){let t=[];return n.items.forEach(r=>{if(r.resource){let[o]=ct(e,r.target);t.push({type:"Text",annotationId:r.annotationId,text:Vr(r.resource),target:o})}}),{type:"textual-content",items:t}}var gt=require("@iiif/helpers"),Oo=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function ht(e,n){let t=n.items.filter(l=>l.type==="video"),r=!1;if(e.duration||(r=!0),t.length>1)return M("Only one video source supported");let o=t[0]?.resource,s=!!(o.service||[]).find(l=>(l.profile||"").includes("youtube.com"));if(!s&&r)return M("Video does not have duration");if(!o)return M("Unknown video");if((!o.format||o.format==="text/html")&&!s)return M("Video does not have format");let i=n.items[0],a={annotationId:n.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}}},u=(0,gt.expandTarget)(i.target);u.selector&&u.selector.type==="TemporalBoxSelector"&&(a.target=u.selector);let{selector:c}=(0,gt.parseSelector)(i.selector);if(c===null){let l=a.target.temporal.startTime,f=(a.target.temporal.endTime||e.duration)-l;a.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:f}}}else c.type==="TemporalSelector"&&(a.selector=c);if(s){a.type="VideoYouTube";let l=o.id.match(Oo);if(!l[1])return M("Video is not known youtube video");a.youTubeId=l[1]}return{type:"media",media:a,annotations:{pages:[]}}}function kr(e,n,t){let r={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},o={type:"complex-choice",items:[]};function s(u){u.choice&&(u.choice.type==="complex-choice"?o.items.push(...u.choice.items):o.items.push(u.choice))}for(let u of n.items){if(u.type==="image"){let c=ft(e,{choice:null,allChoices:null,types:["image"],items:[u]},t);if(c.type==="images"){s(c),r.items.push(c.image);let l={id:c.image.annotationId,type:"enter",resourceType:"image",time:c.image.target?.temporal?.startTime||0};r.keyframes.push(l);let m={id:c.image.annotationId,type:"exit",resourceType:"image",time:c.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(m)}}if(u.type==="textualbody"){let c=pt(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(c.type==="textual-content"){s(c);let l=c.items[0];r.items.push(l);let m=l.target,f={id:l.annotationId,type:"enter",resourceType:"text",time:m.temporal?.startTime||0};r.keyframes.push(f);let A={id:l.annotationId,type:"exit",resourceType:"text",time:m.temporal?.endTime||e.duration||0};r.keyframes.push(A)}}if(u.type==="video"){let c=ht(e,{choice:null,allChoices:null,types:["video"],items:[u]});if(c.type==="media"){s(c);let l=c.media;r.items.push(l);let m={id:l.annotationId,type:"enter",resourceType:"video",time:l.target?.temporal?.startTime||0};r.keyframes.push(m);let f={id:l.annotationId,type:"exit",resourceType:"video",time:l.target?.temporal?.endTime||e.duration||0};r.keyframes.push(f)}}}r.keyframes.sort((u,c)=>u.time-c.time);let i=[],a=[];for(let u of r.keyframes){if(u.resourceType==="image"||u.resourceType==="text"){a.push(u);continue}if(u.type==="enter"){i.length===0&&(u.isPrime=!0),i.push(u),a.push(u);continue}if(u.type==="exit"&&(a.push(u),i=i.filter(c=>c.id!==u.id),i.length!==0)){let c=i[0],l={id:c.id,type:"change",isPrime:!0,resourceType:c.resourceType,time:u.time};a.push(l)}}return r.keyframes=a,o.items.length&&(r.choice=o),r}function Nr({canvas:e,paintables:n,supports:t,loadImageService:r}){if(!e)return lt;if(n.types.length===0)return t.indexOf("empty")!==-1?vr(e.width,e.height):lt;if(n.types.length!==1)if(n.types.length===2&&n.types.indexOf("text")!==-1)n.types=n.types.filter(s=>s!=="text");else return t.indexOf("complex-timeline")===-1?M("Complex timeline not supported"):kr(e,n,r);let o=n.types[0];return o==="image"?t.indexOf("images")===-1?M("Image not supported"):ft(e,n,r):o==="Model"||o==="model"?t.indexOf("3d-model")===-1?M("3D not supported"):wr(e,n):o==="textualbody"?t.indexOf("textual-content")===-1?M("Textual content not supported"):pt(e,n):o==="sound"||o==="audio"?t.indexOf("media")===-1?M("Media not supported"):Mr(e,n):o==="video"?t.indexOf("media")===-1?M("Media not supported"):ht(e,n):lt}function Lr(e){let n=L(),t=E(),r=T(),o=Un(),s=e?.emitter||o,[i,a]=Pr(),{enabledPageIds:u}=Cr(e?.annotationPageManagerId||n?.id||t?.id,{all:!1}),c=Ar(u,"AnnotationPage"),l=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[m,f]=Ir(e,[a]);(0,Te.useEffect)(()=>{let v=h=>{f.makeChoice(h.choiceId,{deselectOthers:h.deselectOthers,deselect:h.deselect})};return s.on("make-choice",v),()=>{s.off("make-choice",v)}},[]);let A=(0,Te.useMemo)(()=>Nr({canvas:t,paintables:m,supports:l,loadImageService:i}),[t,m,r,f.makeChoice]);return(0,Te.useEffect)(()=>{let v=m.allChoices,h={canvasId:t?.id,manifestId:n?.id};v&&s.emit("choice-change",{choice:v,partOf:h})},[t?.id,m.allChoices]),(0,Te.useMemo)(()=>A.type==="unknown"?[A,yr]:[{...A,annotations:{pages:c}},f],[A,c])}var ae=require("react");var zr=require("react"),Or=(e,n=[])=>{let t=T();(0,zr.useEffect)(()=>{e(t)},[t,...n])};var Hr=require("@iiif/helpers/thumbnail");function yt(e,n,{canvasId:t,manifestId:r}={}){let o=T(),s=dt(),i=(0,ae.useMemo)(()=>(0,Hr.createThumbnailHelper)(o,{imageServiceLoader:s}),[o,s]),[a,u]=(0,ae.useState)(),c=L(r?{id:r}:void 0),l=E(t?{id:t}:void 0),m=l||c,f=(0,ae.useRef)(!1);if((0,ae.useEffect)(()=>(f.current=!1,()=>{f.current=!0}),[]),!m)throw new Error("Must be called under a manifest or canvas context.");return Or(A=>{i.getBestThumbnailAtSize(m,e,n).then(v=>{v.best&&!f.current&&u(v.best)})},[m]),a}var V=require("react");function Ho(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function Fo(e,n){switch(n.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:n.volume,isMuted:n.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function _t(e){let n=Math.round(e);return`${Math.floor(n/60)}:${`${n%60}`.padStart(2,"0")}`}function Ie(e){let[n,t]=(0,V.useReducer)(Fo,Ho(e.duration)),r=(0,V.useRef)(null),o=(0,V.useRef)(null),s=(0,V.useRef)(null),i=(0,V.useRef)(!1),a=(0,V.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=_t(r.current.currentTime),s.current&&(s.current.style.width=`${r.current.currentTime/e.duration*100}%`),i.current!==r.current.muted&&(i.current=r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),u=(0,V.useCallback)(()=>{r.current&&(t({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{t({type:"PLAY"})}),a())},[a]),c=(0,V.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?u():l())},[a]),l=(0,V.useCallback)(()=>{r.current&&(r.current.pause(),t({type:"PAUSE"}),a())},[a]),m=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,t(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),f=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!0,t({type:"MUTE"}))},[]),A=(0,V.useCallback)(()=>{r.current&&(r.current.muted=!1,t({type:"UNMUTE"}))},[]),v=(0,V.useCallback)(g=>{r.current&&(r.current.muted=!1,r.current.volume=g/100,t({type:"SET_VOLUME",volume:g}))},[]),h=(0,V.useCallback)(g=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(g*e.duration,e.duration)),a())},[]),b=(0,V.useCallback)(g=>{if(r.current){let x=typeof g=="function"?g(r.current.currentTime):g;r.current.currentTime=Math.max(0,Math.min(x,e.duration)),a()}},[]);return(0,V.useEffect)(()=>{let g=setInterval(()=>{a()},350);return()=>clearInterval(g)},[a,e.duration]),(0,V.useEffect)(()=>{let g=()=>{t({type:"FINISHED"})},x=r.current;return x?.addEventListener("ended",g),()=>x?.removeEventListener("ended",g)},[]),[{element:r,currentTime:o,progress:s},n,{play:u,pause:l,playPause:c,mute:f,unmute:A,toggleMute:m,setVolume:v,setDurationPercent:h,setTime:b}]}var Be=require("react"),vt=require("react/jsx-runtime"),Do=(0,Be.createContext)(null),Uo=(0,Be.createContext)(null),$o=(0,Be.createContext)(null);function St({actions:e,state:n,children:t,currentTime:r,progress:o,element:s}){return(0,vt.jsx)($o.Provider,{value:{currentTime:r,progress:o,element:s},children:(0,vt.jsx)(Uo.Provider,{value:e,children:(0,vt.jsx)(Do.Provider,{value:n,children:t})})})}var Fr=require("react");var Dr=require("@iiif/helpers");function xt(){let e=L(),n=E();return(0,Fr.useMemo)(()=>{if(!e||!n||!e.start)return null;let t=(0,Dr.expandTarget)(e.start);return!t||t.source.id!==n.id||!t||!t.selector||t.selector.type!=="TemporalSelector"?null:t.selector.temporal},[e,n])}var At=require("react/jsx-runtime");function Kt({media:e,startTime:n,children:t}){let[{element:r,currentTime:o,progress:s},i,a]=Ie({duration:e.duration}),u=n?`${e.url}#t=${n}`:e.url;return(0,At.jsxs)(St,{state:i,actions:a,currentTime:o,progress:s,element:r,children:[(0,At.jsx)("audio",{ref:r,src:u}),t]})}function Ct({media:e,mediaControlsDeps:n,children:t}){let r=xt();return U("portal","audio",Kt,{media:e,startTime:r?r.startTime:null,children:t},[e,r,...n||[]]),null}var qe=require("react/jsx-runtime");function Wt({element:e,media:n,startTime:t,playPause:r,poster:o}){let s="div",i=t?`${n.url}#t=${t}`:n.url;return(0,qe.jsxs)(s,{className:"video-container",part:"video-container",onClick:r,children:[(0,qe.jsx)("style",{children:`
|
|
3
3
|
.video-container {
|
|
4
4
|
position: absolute;
|
|
5
5
|
top: 0;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
justify-content: center;
|
|
13
13
|
pointer-events: visible;
|
|
14
14
|
}
|
|
15
|
-
`}),(0,qe.jsx)("video",{poster:o,ref:e,src:i,style:{width:"100%",objectFit:"contain"}})]})}function bt({media:e,mediaControlsDeps:n,children:t,videoComponent:r=Wt}){let o=E(),s=xt(),i=o&&o.placeholderCanvas&&o.placeholderCanvas.id||void 0,a=
|
|
15
|
+
`}),(0,qe.jsx)("video",{poster:o,ref:e,src:i,style:{width:"100%",objectFit:"contain"}})]})}function bt({media:e,mediaControlsDeps:n,children:t,videoComponent:r=Wt}){let o=E(),s=xt(),i=o&&o.placeholderCanvas&&o.placeholderCanvas.id||void 0,a=yt({},!1,{canvasId:i}),[{element:u,currentTime:c,progress:l},m,f]=Ie({duration:e.duration});return U("overlay","video-element",r,{element:u,media:e,playPause:f.playPause,poster:a?.id,startTime:s?s.startTime:null},[a]),U("portal","custom-controls",St,{state:m,actions:f,currentTime:c,progress:l,element:u,children:t},[c,m,e,...n||[]]),null}var se=require("react/jsx-runtime");function jt({model:e}){return(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("style",{children:`
|
|
16
16
|
.model-container {
|
|
17
17
|
position: absolute;
|
|
18
18
|
top: 0;
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
justify-content: center;
|
|
26
26
|
pointer-events: visible;
|
|
27
27
|
}
|
|
28
|
-
`}),(0,se.jsx)("div",{className:"model-container",children:(0,se.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Pt({model:e,name:n}){return
|
|
28
|
+
`}),(0,se.jsx)("div",{className:"model-container",children:(0,se.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Pt({model:e,name:n}){return U("overlay",`model-${n}`,jt,{model:e},[e]),null}var Ur=require("react/jsx-runtime");function Rt({style:e}){let n=E();return!n||!n.height||!n.width?null:(0,Ur.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(n.width),height:Number(n.height)},style:e})}var Yt=require("react/jsx-runtime");function Tt(e){let n=E();return!n||!n.placeholderCanvas?null:(0,Yt.jsx)(Q,{canvas:n.placeholderCanvas.id,children:(0,Yt.jsx)(we,{renderViewerControls:e.renderViewerControls})})}var $r=require("react"),_e=require("react/jsx-runtime");function Bo({element:e,media:n,playPause:t}){let r=(0,$r.useRef)(null);return n.youTubeId?(0,_e.jsxs)("div",{className:"video-container",part:"video-container",onClick:t,children:[(0,_e.jsx)("style",{children:`
|
|
29
29
|
.video-container {
|
|
30
30
|
position: absolute;
|
|
31
31
|
top: 0;
|
|
@@ -43,4 +43,4 @@
|
|
|
43
43
|
width: 100%;
|
|
44
44
|
object-fit: contain;
|
|
45
45
|
}
|
|
46
|
-
`}),(0,_e.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${n.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Br({media:e,mediaControlsDeps:n,children:t}){let[{element:r,currentTime:o,progress:s},i,a]=Ie({duration:e.duration});return $("overlay","video-element",Bo,{element:r,media:e,playPause:a.playPause}),null}var wt=require("react");var _r=Y(require("mitt"),1);var Kr=require("zustand/vanilla");function qr({currentKeyFrameIndex:e,keyframes:n,targetTime:t,currentTime:r}){if(r<=t){let o=n.findIndex(a=>a.time>t);if(o===-1)return[e,[]];let s={},i=n.slice(e,o);for(let a of i)a.type==="enter"&&(s[a.id]=a),a.type==="exit"&&(s[a.id]?delete s[a.id]:s[a.id]=a);return[o,Object.values(s)]}return[e,[]]}function Wr({complexTimeline:e,startTime:n=0}){let t=(0,_r.default)(),r={},o={progress:null,currentTime:null},s=0,i=null,a=0,u=null;function c(){let x=b.getState().visibleElements,d=r,v=[],w=Object.keys(d);for(let S of w){let P=d[S],C=x[S];P&&C&&v.push(P)}return v}function l(){return Object.keys(r).map(x=>r[x])}function m(p){o.currentTime&&(o.currentTime.innerHTML=_t(p),o.progress&&(o.progress.style.width=`${p/e.duration*100}%`))}let h=()=>{let p=b.getState(),x=p.currentPrime;if(!x)return;let d=r,v=p.visibleElements,w=Object.keys(d);for(let S of w){let P=d[S],C=v[S];if(P&&S!==x.id&&C){let X=a-C.time*1e3;Math.abs(a-C.time*1e3-P.currentTime*1e3)>300&&(P.currentTime=X/1e3)}}},A=(p=0)=>{let x=p-s,d=b.getState();if(d.isPlaying){let v=d.currentPrime;if(v){let C=r[v.id];C&&(C.paused?a+=x:a=(v.time+C.currentTime)*1e3)}else a+=x;let w=a/1e3;if(w>d.duration){b.getState().setTime(0),b.setState({isPlaying:!1}),g(),m(0);return}m(w);let[S,P]=qr({currentTime:w,currentKeyFrameIndex:d.nextKeyframeIndex,keyframes:d.complexTimeline.keyframes,targetTime:w});P.length&&d.applyKeyframes(S,P)}s=p,i=requestAnimationFrame(A)},g=()=>{i&&cancelAnimationFrame(i)},y=(p,x)=>{},b=(0,Kr.createStore)((p,x)=>({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:()=>{x().clockRunning||(A(),u=setInterval(h,500)),p({clockRunning:!0,clockStartRequests:x().clockStartRequests+1})},applyKeyframes(d,v){let w=x(),S={...w.visibleElements},P=w.currentPrime;for(let C of v)C.type==="enter"&&(S[C.id]=C,t.emit("complex-timeline.enter",{id:C.id})),C.type==="exit"&&(S[C.id]=null,t.emit("complex-timeline.exit",{id:C.id})),C.isPrime&&(P=C);p({nextKeyframeIndex:d,visibleElements:S,currentPrime:P})},stopClock:()=>{let d=x().clockStartRequests;if(d!==0){if(d===1){g(),u&&clearInterval(u),p({clockRunning:!1,clockStartRequests:0});return}p({clockStartRequests:d-1})}},setElement:(d,v)=>{r[d]=v;let w=Object.keys(r),S=x().complexTimeline;y(v,d),S.items.filter(C=>C.type!=="Image"&&C.type!=="Text").every(C=>w.includes(C.annotationId))&&!x().isReady&&(t.emit("complex-timeline.ready",{complexTimeline:S}),p({isReady:!0}))},removeElement:d=>{delete r[d]},mute(){for(let d of l())d.muted=!0;p({isMuted:!0})},unmute(){for(let d of l())d.muted=!1;p({isMuted:!1})},play(){if(!x().isPlaying){for(let v of c())v.play();p({isPlaying:!0})}},pause(){if(x().isPlaying){for(let v of c())v.pause();p({isPlaying:!1})}},playPause(){let d=x();d.isPlaying?d.pause():d.play()},setDurationPercent(d){let w=x().duration*d;x().setTime(w)},setTime(d){let v=x(),w=a/1e3,S=typeof d=="function"?d(w):d,P=v.nextKeyframeIndex;if(w>S){p({visibleElements:{},currentPrime:null});let D=Object.keys(v.visibleElements);for(let ee of D)t.emit("complex-timeline.exit",{id:ee});w=0,P=0}let[C,X]=qr({currentTime:w,currentKeyFrameIndex:P,keyframes:v.complexTimeline.keyframes,targetTime:S});v.applyKeyframes(C,X),a=S*1e3;let We=b.getState().visibleElements,je=r,Mt=Object.keys(We);for(let D of Mt){let ee=We[D];if(ee){let fe=je[D];fe&&(fe.currentTime=(a-ee.time*1e3)/1e3)}}m(S)},setVolume(d){for(let v of l())v.volume=Math.min(1,Math.max(0,d/100));p({volume:d})},toggleMute(){let d=x();d.isMuted?(d.unmute(),p({isMuted:!1})):(d.mute(),p({isMuted:!0}))},clearProgressElement(){o.progress=null},setProgressElement(d){o.progress=d},setCurrentTimeElement(d){o.currentTime=d},clearCurrentTimeElement(){o.currentTime=null}}));return t.on("complex-timeline.enter",p=>{let x=b.getState(),d=p.id,v=r[d];v&&x.isPlaying&&v.play()}),t.on("complex-timeline.exit",p=>{let x=b.getState(),d=p.id,v=r[d];v&&(v.currentTime=0,v.pause())}),b.getState().setTime(n),{store:b,emitter:t}}var Zr=require("@atlas-viewer/atlas");var Gt=require("zustand");var Qt=require("react"),qo=require("zustand"),Qr=require("react/jsx-runtime"),jr=(0,Qt.createContext)(null);jr.displayName="ComplexTimeline";function Yr({children:e,store:n}){return(0,Qr.jsx)(jr.Provider,{value:n,children:e})}var Gr=require("@atlas-viewer/atlas");var Z=require("react/jsx-runtime");function It({strategy:e,onClickPaintingAnnotation:n}){return(0,Z.jsx)(Z.Fragment,{children:e.items.map((t,r)=>(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsx)(Gr.HTMLPortal,{onClick:n?o=>{o.stopPropagation(),n(t.annotationId,t,o)}:void 0,target:t.target?.spatial||void 0,children:(0,Z.jsx)("div",{"data-textual-content":!0,children:(0,Z.jsx)(Fe,{enableDangerouslySetInnerHTML:!0,children:t.text})})},r)}))})}var J=require("react/jsx-runtime");function Jr({strategy:e,children:n}){let{store:t}=(0,wt.useMemo)(()=>Wr({complexTimeline:e}),[e]),r=(0,Gt.useStore)(t,i=>i.isReady),o=(0,Gt.useStore)(t,i=>i.visibleElements);function s(i){return a=>{a&&t.getState().setElement(i,a)}}return(0,wt.useLayoutEffect)(()=>{if(r){let{startClock:i,stopClock:a}=t.getState();return i(),()=>{a()}}},[e,r]),$("portal","custom-controls",Yr,{store:t,children:n},[r]),(0,J.jsxs)(J.Fragment,{children:[e.items.map(i=>i.type!=="Image"||!o[i.annotationId]?null:(0,J.jsx)(Re,{image:i,id:i.annotationId},i.id)),e.items.map((i,a)=>i.type!=="Text"||!o[i.annotationId]?null:(0,J.jsx)(It,{strategy:{type:"textual-content",items:[i]}},a)),e.items.map((i,a)=>i.type!=="Video"||!i.target.spatial?null:(0,J.jsx)(Zr.HTMLPortal,{target:i.target.spatial,children:(0,J.jsx)("video",{ref:s(i.annotationId),src:i.url,style:{height:"100%",width:"100%",opacity:o[i.annotationId]?1:0}})},a))]})}var R=require("react/jsx-runtime");function we({x:e,y:n,onChoiceChange:t,registerActions:r,defaultChoices:o,isStatic:s,renderViewerControls:i,renderMediaControls:a,renderComplexTimelineControls:u,viewControlsDeps:c,mediaControlsDeps:l,strategies:m,throwOnUnknown:h,backgroundStyle:A,alwaysShowBackground:g,keepCanvasScale:y=!1,enableSizes:b=!1,enableYouTube:p=!0,onClickPaintingAnnotation:x,children:d}){let v=E(),w=it(v,["deep-zoom"]),[S]=Yn(),P=Jn(),C=T(),X=(0,j.useMemo)(()=>(0,Xr.createStylesHelper)(C),[C]),[f,We]=Lr({strategies:m||["images"],defaultChoices:o?.map(({id:N})=>N)}),je=f.type==="images"?f.choice:void 0,Mt=(0,j.useMemo)(()=>y?1:Math.max(1,...f.type==="images"?f.images.map(N=>(N.width||0)/N.target?.spatial.width):[]),[y,f]);er(Mt),(0,j.useEffect)(()=>{r&&r(We)},[f.annotations]),(0,j.useEffect)(()=>{if(o)for(let N of o)typeof N.opacity<"u"&&X.applyStyles({id:N.id},"atlas",{opacity:N.opacity})},[o]),(0,j.useLayoutEffect)(()=>{t&&t(je)},[je]),$(P&&(f.type==="images"||f.type==="empty"||f.type==="textual-content"&&i)?"overlay":"none",`canvas-portal-controls-${v?.id}`,Oe.Provider,i?{value:P||null,children:i(f)}:{},[v,P,f,...c||[]]);let D=vt({maxWidth:256,maxHeight:256});if(!v)return null;let ee=v.accompanyingCanvas,fe=v.placeholderCanvas,Me=D&&D.type==="fixed"?(0,R.jsx)("world-object",{height:v.height,width:v.width,x:e,y:n,children:(0,R.jsx)("world-image",{uri:D.id,target:{x:0,y:0,width:v.width,height:v.height},display:D.width&&D.height?{width:D.width,height:D.height}:void 0,crop:void 0})}):null;if(f.type==="unknown"){if(Me)return Me;if(h)throw new Error(f.reason||"Unknown image strategy");return null}let Zt=(0,R.jsxs)(j.Fragment,{children:[S?(0,R.jsx)(He,{page:S}):null,f.annotations&&f.annotations.pages?f.annotations.pages.map(N=>(0,R.jsx)(He,{page:N},N.id)):null,d]}),eo=f.type==="images"?f.images.length:0,Wo=f.type==="media"&&f.media.type==="Video"&&fe?(0,R.jsx)(Tt,{renderViewerControls:i}):null;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)("world-object",{height:v.height,width:v.width,x:e,y:n,...w,children:[f.type==="empty"||g?(0,R.jsx)(Rt,{style:A}):null,f.type==="complex-timeline"?(0,R.jsx)(Jr,{strategy:f,children:u?u(f):null}):null,f.type==="textual-content"?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(It,{strategy:f,onClickPaintingAnnotation:x}),Zt]}):null,f.type==="images"?(0,R.jsxs)(R.Fragment,{children:[f.images.map((N,Jt)=>(0,R.jsx)(Re,{isStatic:s,image:N,id:N.id,thumbnail:Jt===0?D:void 0,selector:N.selector,enableSizes:b,onClick:x?Xt=>{Xt.stopPropagation(),x(N.annotationId,N,Xt)}:void 0},N.id+Jt)),Zt]}):null,f.type==="3d-model"?(0,R.jsx)(Pt,{model:f.model}):null,f.type==="media"?(0,R.jsx)(R.Fragment,{children:f.media.type==="Sound"?(0,R.jsxs)(Ct,{media:f.media,mediaControlsDeps:l,children:[Me,a?a(f):null]}):f.media.type==="Video"?(0,R.jsxs)(bt,{media:f.media,mediaControlsDeps:l,children:[Me,a?a(f):null]}):f.media.type==="VideoYouTube"&&p?(0,R.jsxs)(Br,{media:f.media,mediaControlsDeps:l,children:[Me,a?a(f):null]}):null}):null]},`${v.id}/${f.type}/${eo}`),f.type==="media"&&f.media.type==="Sound"&&ee?(0,R.jsx)(Q,{canvas:ee.id,children:(0,R.jsx)(we,{renderViewerControls:i})}):null,f.type==="media"&&f.media.type==="Sound"&&fe&&!ee?(0,R.jsx)(Q,{canvas:fe.id,children:(0,R.jsx)(we,{renderViewerControls:i})}):null]})}var H=require("react/jsx-runtime"),_o=(0,Ke.forwardRef)(function(n,t){let r=L(),o=Je(),s=Hn(),{ViewerControls:i,MediaControls:a,ComplexTimelineControls:u}=n.components||{};if((0,Ke.useImperativeHandle)(t,()=>s,[s]),!r)return(0,H.jsx)("div",{});let c=0;return(0,H.jsxs)(H.Fragment,{children:[n.header,(0,H.jsx)(z.Viewer,{height:n.height,mode:n.mode,renderPreset:n.renderPreset,runtimeOptions:n.runtimeOptions,children:o.map((l,m)=>{let h=c;return c+=l.width+(n.spacing||0),(0,H.jsx)(Q,{canvas:l.id,children:(0,H.jsx)(z.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:m===0&&i?()=>(0,H.jsx)(i,{}):void 0,renderMediaControls:m===0&&a?()=>(0,H.jsx)(a,{}):void 0,renderComplexTimelineControls:m===0&&u?()=>(0,H.jsx)(u,{}):void 0,x:h,...n.canvasProps||{},children:n.annotations},l.id)},l.id)})},n.reuseAtlas?"":s.currentSequenceIndex),n.children]})}),z=(0,Ke.forwardRef)(function({children:n,height:t,annotations:r,canvasProps:o,spacing:s,header:i,components:a,mode:u,reuseAtlas:c,renderPreset:l,runtimeOptions:m,...h},A){let g=he();return(0,H.jsx)(ge,{vault:g,children:(0,H.jsx)(On,{...h,children:(0,H.jsx)(_o,{ref:A,height:t,components:a,spacing:s,canvasProps:o,annotations:r,header:i,mode:u,reuseAtlas:c,renderPreset:l,runtimeOptions:m,children:n})})})});z.RenderImage=Re;z.RenderCanvas=we;z.RenderAnnotationPage=He;z.RenderAnnotation=ut;z.Viewer=nr;z.CanvasBackground=Rt;z.Audio=Ct;z.Video=bt;z.Model=Pt;z.AudioHTML=Kt;z.VideoHTML=Wt;z.ModelHTML=jt;z.PlaceholderCanvas=Tt;
|
|
46
|
+
`}),(0,_e.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${n.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function Br({media:e,mediaControlsDeps:n,children:t}){let[{element:r,currentTime:o,progress:s},i,a]=Ie({duration:e.duration});return U("overlay","video-element",Bo,{element:r,media:e,playPause:a.playPause}),null}var wt=require("react");var _r=Y(require("mitt"),1);var Kr=require("zustand/vanilla");function qr({currentKeyFrameIndex:e,keyframes:n,targetTime:t,currentTime:r}){if(r<=t){let o=n.findIndex(a=>a.time>t);if(o===-1)return[e,[]];let s={},i=n.slice(e,o);for(let a of i)a.type==="enter"&&(s[a.id]=a),a.type==="exit"&&(s[a.id]?delete s[a.id]:s[a.id]=a);return[o,Object.values(s)]}return[e,[]]}function Wr({complexTimeline:e,startTime:n=0}){let t=(0,_r.default)(),r={},o={progress:null,currentTime:null},s=0,i=null,a=0,u=null;function c(){let x=b.getState().visibleElements,d=r,y=[],w=Object.keys(d);for(let S of w){let P=d[S],C=x[S];P&&C&&y.push(P)}return y}function l(){return Object.keys(r).map(x=>r[x])}function m(g){o.currentTime&&(o.currentTime.innerHTML=_t(g),o.progress&&(o.progress.style.width=`${g/e.duration*100}%`))}let f=()=>{let g=b.getState(),x=g.currentPrime;if(!x)return;let d=r,y=g.visibleElements,w=Object.keys(d);for(let S of w){let P=d[S],C=y[S];if(P&&S!==x.id&&C){let X=a-C.time*1e3;Math.abs(a-C.time*1e3-P.currentTime*1e3)>300&&(P.currentTime=X/1e3)}}},A=(g=0)=>{let x=g-s,d=b.getState();if(d.isPlaying){let y=d.currentPrime;if(y){let C=r[y.id];C&&(C.paused?a+=x:a=(y.time+C.currentTime)*1e3)}else a+=x;let w=a/1e3;if(w>d.duration){b.getState().setTime(0),b.setState({isPlaying:!1}),v(),m(0);return}m(w);let[S,P]=qr({currentTime:w,currentKeyFrameIndex:d.nextKeyframeIndex,keyframes:d.complexTimeline.keyframes,targetTime:w});P.length&&d.applyKeyframes(S,P)}s=g,i=requestAnimationFrame(A)},v=()=>{i&&cancelAnimationFrame(i)},h=(g,x)=>{},b=(0,Kr.createStore)((g,x)=>({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:()=>{x().clockRunning||(A(),u=setInterval(f,500)),g({clockRunning:!0,clockStartRequests:x().clockStartRequests+1})},applyKeyframes(d,y){let w=x(),S={...w.visibleElements},P=w.currentPrime;for(let C of y)C.type==="enter"&&(S[C.id]=C,t.emit("complex-timeline.enter",{id:C.id})),C.type==="exit"&&(S[C.id]=null,t.emit("complex-timeline.exit",{id:C.id})),C.isPrime&&(P=C);g({nextKeyframeIndex:d,visibleElements:S,currentPrime:P})},stopClock:()=>{let d=x().clockStartRequests;if(d!==0){if(d===1){v(),u&&clearInterval(u),g({clockRunning:!1,clockStartRequests:0});return}g({clockStartRequests:d-1})}},setElement:(d,y)=>{r[d]=y;let w=Object.keys(r),S=x().complexTimeline;h(y,d),S.items.filter(C=>C.type!=="Image"&&C.type!=="Text").every(C=>w.includes(C.annotationId))&&!x().isReady&&(t.emit("complex-timeline.ready",{complexTimeline:S}),g({isReady:!0}))},removeElement:d=>{delete r[d]},mute(){for(let d of l())d.muted=!0;g({isMuted:!0})},unmute(){for(let d of l())d.muted=!1;g({isMuted:!1})},play(){if(!x().isPlaying){for(let y of c())y.play();g({isPlaying:!0})}},pause(){if(x().isPlaying){for(let y of c())y.pause();g({isPlaying:!1})}},playPause(){let d=x();d.isPlaying?d.pause():d.play()},setDurationPercent(d){let w=x().duration*d;x().setTime(w)},setTime(d){let y=x(),w=a/1e3,S=typeof d=="function"?d(w):d,P=y.nextKeyframeIndex;if(w>S){g({visibleElements:{},currentPrime:null});let D=Object.keys(y.visibleElements);for(let ee of D)t.emit("complex-timeline.exit",{id:ee});w=0,P=0}let[C,X]=qr({currentTime:w,currentKeyFrameIndex:P,keyframes:y.complexTimeline.keyframes,targetTime:S});y.applyKeyframes(C,X),a=S*1e3;let We=b.getState().visibleElements,je=r,Mt=Object.keys(We);for(let D of Mt){let ee=We[D];if(ee){let fe=je[D];fe&&(fe.currentTime=(a-ee.time*1e3)/1e3)}}m(S)},setVolume(d){for(let y of l())y.volume=Math.min(1,Math.max(0,d/100));g({volume:d})},toggleMute(){let d=x();d.isMuted?(d.unmute(),g({isMuted:!1})):(d.mute(),g({isMuted:!0}))},clearProgressElement(){o.progress=null},setProgressElement(d){o.progress=d},setCurrentTimeElement(d){o.currentTime=d},clearCurrentTimeElement(){o.currentTime=null}}));return t.on("complex-timeline.enter",g=>{let x=b.getState(),d=g.id,y=r[d];y&&x.isPlaying&&y.play()}),t.on("complex-timeline.exit",g=>{let x=b.getState(),d=g.id,y=r[d];y&&(y.currentTime=0,y.pause())}),b.getState().setTime(n),{store:b,emitter:t}}var Zr=require("@atlas-viewer/atlas");var Gt=require("zustand");var Qt=require("react"),qo=require("zustand"),Qr=require("react/jsx-runtime"),jr=(0,Qt.createContext)(null);jr.displayName="ComplexTimeline";function Yr({children:e,store:n}){return(0,Qr.jsx)(jr.Provider,{value:n,children:e})}var Gr=require("@atlas-viewer/atlas");var Z=require("react/jsx-runtime");function It({strategy:e,onClickPaintingAnnotation:n}){return(0,Z.jsx)(Z.Fragment,{children:e.items.map((t,r)=>(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsx)(Gr.HTMLPortal,{onClick:n?o=>{o.stopPropagation(),n(t.annotationId,t,o)}:void 0,target:t.target?.spatial||void 0,children:(0,Z.jsx)("div",{"data-textual-content":!0,children:(0,Z.jsx)(Fe,{enableDangerouslySetInnerHTML:!0,children:t.text})})},r)}))})}var J=require("react/jsx-runtime");function Jr({strategy:e,children:n}){let{store:t}=(0,wt.useMemo)(()=>Wr({complexTimeline:e}),[e]),r=(0,Gt.useStore)(t,i=>i.isReady),o=(0,Gt.useStore)(t,i=>i.visibleElements);function s(i){return a=>{a&&t.getState().setElement(i,a)}}return(0,wt.useLayoutEffect)(()=>{if(r){let{startClock:i,stopClock:a}=t.getState();return i(),()=>{a()}}},[e,r]),U("portal","custom-controls",Yr,{store:t,children:n},[r]),(0,J.jsxs)(J.Fragment,{children:[e.items.map(i=>i.type!=="Image"||!o[i.annotationId]?null:(0,J.jsx)(Re,{image:i,id:i.annotationId},i.id)),e.items.map((i,a)=>i.type!=="Text"||!o[i.annotationId]?null:(0,J.jsx)(It,{strategy:{type:"textual-content",items:[i]}},a)),e.items.map((i,a)=>i.type!=="Video"||!i.target.spatial?null:(0,J.jsx)(Zr.HTMLPortal,{target:i.target.spatial,children:(0,J.jsx)("video",{ref:s(i.annotationId),src:i.url,style:{height:"100%",width:"100%",opacity:o[i.annotationId]?1:0}})},a))]})}var R=require("react/jsx-runtime");function we({x:e,y:n,onChoiceChange:t,registerActions:r,defaultChoices:o,isStatic:s,renderViewerControls:i,renderMediaControls:a,renderComplexTimelineControls:u,viewControlsDeps:c,mediaControlsDeps:l,strategies:m,throwOnUnknown:f,backgroundStyle:A,alwaysShowBackground:v,keepCanvasScale:h=!1,enableSizes:b=!1,enableYouTube:g=!0,onClickPaintingAnnotation:x,children:d}){let y=E(),w=it(y,["deep-zoom"]),[S]=Yn(),P=Jn(),C=T(),X=(0,j.useMemo)(()=>(0,Xr.createStylesHelper)(C),[C]),[p,We]=Lr({strategies:m||["images"],defaultChoices:o?.map(({id:N})=>N)}),je=p.type==="images"?p.choice:void 0,Mt=(0,j.useMemo)(()=>h?1:Math.max(1,...p.type==="images"?p.images.map(N=>(N.width||0)/N.target?.spatial.width):[]),[h,p]);er(Mt),(0,j.useEffect)(()=>{r&&r(We)},[p.annotations]),(0,j.useEffect)(()=>{if(o)for(let N of o)typeof N.opacity<"u"&&X.applyStyles({id:N.id},"atlas",{opacity:N.opacity})},[o]),(0,j.useLayoutEffect)(()=>{t&&t(je)},[je]),U(P&&(p.type==="images"||p.type==="empty"||p.type==="textual-content"&&i)?"overlay":"none",`canvas-portal-controls-${y?.id}`,Oe.Provider,i?{value:P||null,children:i(p)}:{},[y,P,p,...c||[]]);let D=yt({maxWidth:256,maxHeight:256});if(!y)return null;let ee=y.accompanyingCanvas,fe=y.placeholderCanvas,Me=D&&D.type==="fixed"?(0,R.jsx)("world-object",{height:y.height,width:y.width,x:e,y:n,children:(0,R.jsx)("world-image",{uri:D.id,target:{x:0,y:0,width:y.width,height:y.height},display:D.width&&D.height?{width:D.width,height:D.height}:void 0,crop:void 0})}):null;if(p.type==="unknown"){if(Me)return Me;if(f)throw new Error(p.reason||"Unknown image strategy");return null}let Zt=(0,R.jsxs)(j.Fragment,{children:[S?(0,R.jsx)(He,{page:S}):null,p.annotations&&p.annotations.pages?p.annotations.pages.map(N=>(0,R.jsx)(He,{page:N},N.id)):null,d]}),eo=p.type==="images"?p.images.length:0,Wo=p.type==="media"&&p.media.type==="Video"&&fe?(0,R.jsx)(Tt,{renderViewerControls:i}):null;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)("world-object",{height:y.height,width:y.width,x:e,y:n,...w,children:[p.type==="empty"||v?(0,R.jsx)(Rt,{style:A}):null,p.type==="complex-timeline"?(0,R.jsx)(Jr,{strategy:p,children:u?u(p):null}):null,p.type==="textual-content"?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(It,{strategy:p,onClickPaintingAnnotation:x}),Zt]}):null,p.type==="images"?(0,R.jsxs)(R.Fragment,{children:[p.images.map((N,Jt)=>(0,R.jsx)(Re,{isStatic:s,image:N,id:N.id,thumbnail:Jt===0?D:void 0,selector:N.selector,enableSizes:b,onClick:x?Xt=>{Xt.stopPropagation(),x(N.annotationId,N,Xt)}:void 0},N.id+Jt)),Zt]}):null,p.type==="3d-model"?(0,R.jsx)(Pt,{model:p.model}):null,p.type==="media"?(0,R.jsx)(R.Fragment,{children:p.media.type==="Sound"?(0,R.jsxs)(Ct,{media:p.media,mediaControlsDeps:l,children:[Me,a?a(p):null]}):p.media.type==="Video"?(0,R.jsxs)(bt,{media:p.media,mediaControlsDeps:l,children:[Me,a?a(p):null]}):p.media.type==="VideoYouTube"&&g?(0,R.jsxs)(Br,{media:p.media,mediaControlsDeps:l,children:[Me,a?a(p):null]}):null}):null]},`${y.id}/${p.type}/${eo}`),p.type==="media"&&p.media.type==="Sound"&&ee?(0,R.jsx)(Q,{canvas:ee.id,children:(0,R.jsx)(we,{renderViewerControls:i})}):null,p.type==="media"&&p.media.type==="Sound"&&fe&&!ee?(0,R.jsx)(Q,{canvas:fe.id,children:(0,R.jsx)(we,{renderViewerControls:i})}):null]})}var H=require("react/jsx-runtime"),_o=(0,Ke.forwardRef)(function(n,t){let r=L(),o=Je(),s=Hn(),{ViewerControls:i,MediaControls:a,ComplexTimelineControls:u}=n.components||{};if((0,Ke.useImperativeHandle)(t,()=>s,[s]),!r)return(0,H.jsx)("div",{});let c=0;return(0,H.jsxs)(H.Fragment,{children:[n.header,(0,H.jsx)(z.Viewer,{height:n.height,mode:n.mode,renderPreset:n.renderPreset,runtimeOptions:n.runtimeOptions,children:o.map((l,m)=>{let f=c;return c+=l.width+(n.spacing||0),(0,H.jsx)(Q,{canvas:l.id,children:(0,H.jsx)(z.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:m===0&&i?()=>(0,H.jsx)(i,{}):void 0,renderMediaControls:m===0&&a?()=>(0,H.jsx)(a,{}):void 0,renderComplexTimelineControls:m===0&&u?()=>(0,H.jsx)(u,{}):void 0,x:f,...n.canvasProps||{},children:n.annotations},l.id)},l.id)})},n.reuseAtlas?"":s.currentSequenceIndex),n.children]})}),z=(0,Ke.forwardRef)(function({children:n,height:t,annotations:r,canvasProps:o,spacing:s,header:i,components:a,mode:u,reuseAtlas:c,renderPreset:l,runtimeOptions:m,...f},A){let v=he();return(0,H.jsx)(ge,{vault:v,children:(0,H.jsx)(On,{...f,children:(0,H.jsx)(_o,{ref:A,height:t,components:a,spacing:s,canvasProps:o,annotations:r,header:i,mode:u,reuseAtlas:c,renderPreset:l,runtimeOptions:m,children:n})})})});z.RenderImage=Re;z.RenderCanvas=we;z.RenderAnnotationPage=He;z.RenderAnnotation=ut;z.Viewer=nr;z.CanvasBackground=Rt;z.Audio=Ct;z.Video=bt;z.Model=Pt;z.AudioHTML=Kt;z.VideoHTML=Wt;z.ModelHTML=jt;z.PlaceholderCanvas=Tt;
|
package/dist/canvas-panel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Pa as a}from"./chunk-
|
|
1
|
+
import{Pa as a}from"./chunk-L6FWDFSU.js";import"./chunk-UFC4ZSNV.js";export{a as CanvasPanel};
|