react-iiif-vault 2.0.6 → 2.0.7
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/canvas-panel.cjs
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
pointer-events: visible;
|
|
14
14
|
}
|
|
15
15
|
`}),(0,xe.jsx)("div",{className:"model-container",children:(0,xe.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Ut({model:e,name:t}){return j("overlay",`model-${t}`,Un,{model:e},[e]),null}var Pr=require("react/jsx-runtime");function Ar(){let{strategy:e}=O();return e.type!=="3d-model"?null:(0,Pr.jsx)(Ut,{model:e.model})}var _t=require("react"),jt=(0,_t.createContext)(null);jt.displayName="Controls";function X(){let e=(0,_t.useContext)(jt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var me=require("react/jsx-runtime");function Tr(){let{strategy:e}=O(),{renderViewerControls:t,viewControlsDeps:n}=X(),o=A(),a=o?.accompanyingCanvas,i=o?.placeholderCanvas;return(0,me.jsxs)(me.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&a?(0,me.jsx)(ce,{canvas:a.id,children:(0,me.jsx)(Ne,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!a?(0,me.jsx)(ce,{canvas:i.id,children:(0,me.jsx)(Ne,{renderViewerControls:t,viewControlsDeps:n})}):null]})}var Ze=require("react");var pe=require("react");var Yt=require("@iiif/helpers/vault/actions");var wr=require("react");function Ir(){let t=M().getStore();return(0,wr.useMemo)(()=>n=>t.dispatch(n),[t])}function kr(e){return typeof e!="string"&&e&&e.bindToVault}function Mr(){let e=M(),t=(0,pe.useRef)([]),n=Ir(),o=(0,pe.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,pe.useLayoutEffect)(()=>{let s={id:o,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Yt.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[o]);let a=E(s=>o&&s.iiif.entities.AnnotationPage[o]||null,[o]),i=(0,pe.useCallback)((s,l)=>{if(o){if(kr(s)){let u=s;u.__vault||u.bindToVault(e),s=typeof u.source=="string"?u.source:u.source.id,t.current[s]=u}else typeof s!="string"&&(s=s.id);let c=e.get({id:o,type:"AnnotationPage"}),m=e.get({id:s,type:"Annotation"});c&&m&&(c.items.find(u=>u.id===m.id)||n(Yt.entityActions.addReference({id:o,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[o]),r=(0,pe.useCallback)(s=>{o&&(kr(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:o,type:"AnnotationPage"})&&n(Yt.entityActions.removeReference({id:o,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[o]);return[a,{addAnnotation:i,removeAnnotation:r}]}var Lr=require("react/jsx-runtime"),Er=(0,Ze.createContext)(null);function Vr(){let e=(0,Ze.useContext)(Er);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Nr({children:e}){let[t,{addAnnotation:n,removeAnnotation:o}]=Mr();return(0,Lr.jsx)(Er.Provider,{value:(0,Ze.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:o}),[t]),children:e})}var Le=require("react/jsx-runtime");function zr({children:e}){let{strategy:t}=O(),[n]=Vr();return t.type!=="images"?null:(0,Le.jsxs)(Le.Fragment,{children:[n?(0,Le.jsx)(Me,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(o=>(0,Le.jsx)(Me,{page:o},o.id)):null,e]})}var Ce=require("react");var Or=require("react"),Br=(e,t=[])=>{let n=M();(0,Or.useEffect)(()=>{e(n)},[n,...t])};var Kt=J(require("react"),1),Dr=require("@iiif/helpers/image-service"),Da=Kt.default.createContext(new Dr.ImageServiceLoader);function Hr(){return(0,Kt.useContext)(Da)}var qr=require("@iiif/helpers/thumbnail");function Je(e,t,{canvasId:n,manifestId:o}={}){let a=M(),i=Hr(),r=(0,Ce.useMemo)(()=>(0,qr.createThumbnailHelper)(a,{imageServiceLoader:i}),[a,i]),[s,l]=(0,Ce.useState)(),c=$(o?{id:o}:void 0),m=A(n?{id:n}:void 0),u=m||c,d=(0,Ce.useRef)(!1);if((0,Ce.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),!u)throw new Error("Must be called under a manifest or canvas context.");return Br(g=>{r.getBestThumbnailAtSize(u,e,t).then(y=>{y.best&&!d.current&&l(y.best)})},[u]),s}var _n=require("react/jsx-runtime");function et({x:e=0,y:t=0}){let n=A(),o=Je({maxWidth:256,maxHeight:256});return!n||!o||o.type!=="fixed"?null:(0,_n.jsx)("world-object",{height:n.height,width:n.width,x:e,y:t,children:(0,_n.jsx)("world-image",{uri:o.id,target:{x:0,y:0,width:n.width,height:n.height},display:o.width&&o.height?{width:o.width,height:o.height}:void 0,crop:void 0})})}var Gt=require("react/jsx-runtime");function $r({as:e}){let{strategy:t}=O(),{renderMediaControls:n,mediaControlsDeps:o}=X();return t.type!=="media"||t.media.type!=="Sound"?null:(0,Gt.jsxs)($t,{media:t.media,mediaControlsDeps:o,audioCopmonent:e,children:[(0,Gt.jsx)(et,{}),n?n(t):null]},t.media.url)}var Xn=require("@atlas-viewer/atlas"),tn=require("react"),Zn=require("zustand");var jn=require("react"),Ha=require("zustand"),Ur=require("react/jsx-runtime"),Fr=(0,jn.createContext)(null);Fr.displayName="ComplexTimeline";function Wr({children:e,store:t}){return(0,Ur.jsx)(Fr.Provider,{value:t,children:e})}var jr=J(require("mitt"),1),Yr=require("zustand/vanilla");function _r({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:o}){if(o<=n){let a=t.findIndex(s=>s.time>n);if(a===-1)return[e,[]];let i={},r=t.slice(e,a);for(let s of r)s.type==="enter"&&(i[s.id]=s),s.type==="exit"&&(i[s.id]?delete i[s.id]:i[s.id]=s);return[a,Object.values(i)]}return[e,[]]}function Kr({complexTimeline:e,startTime:t=0}){let n=(0,jr.default)(),o={},a={progress:null,currentTime:null},i=0,r=null,s=0,l=null;function c(){let f=S.getState().visibleElements,h=o,x=[],C=Object.keys(h);for(let b of C){let R=h[b],P=f[b];R&&P&&x.push(R)}return x}function m(){return Object.keys(o).map(f=>o[f])}function u(v){a.currentTime&&(a.currentTime.innerHTML=qn(v),a.progress&&(a.progress.style.width=`${v/e.duration*100}%`))}let d=()=>{let v=S.getState(),f=v.currentPrime;if(!f)return;let h=o,x=v.visibleElements,C=Object.keys(h);for(let b of C){let R=h[b],P=x[b];if(R&&b!==f.id&&P){let D=s-P.time*1e3;Math.abs(s-P.time*1e3-R.currentTime*1e3)>300&&(R.currentTime=D/1e3)}}},g=(v=0)=>{let f=v-i,h=S.getState();if(h.isPlaying){let x=h.currentPrime;if(x){let P=o[x.id];P&&(P.paused?s+=f:s=(x.time+P.currentTime)*1e3)}else s+=f;let C=s/1e3;if(C>h.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),y(),u(0);return}u(C);let[b,R]=_r({currentTime:C,currentKeyFrameIndex:h.nextKeyframeIndex,keyframes:h.complexTimeline.keyframes,targetTime:C});R.length&&h.applyKeyframes(b,R)}i=v,r=requestAnimationFrame(g)},y=()=>{r&&cancelAnimationFrame(r)},p=(v,f)=>{},S=(0,Yr.createStore)((v,f)=>({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:()=>{f().clockRunning||(g(),l=setInterval(d,500)),v({clockRunning:!0,clockStartRequests:f().clockStartRequests+1})},applyKeyframes(h,x){let C=f(),b={...C.visibleElements},R=C.currentPrime;for(let P of x)P.type==="enter"&&(b[P.id]=P,n.emit("complex-timeline.enter",{id:P.id})),P.type==="exit"&&(b[P.id]=null,n.emit("complex-timeline.exit",{id:P.id})),P.isPrime&&(R=P);v({nextKeyframeIndex:h,visibleElements:b,currentPrime:R})},stopClock:()=>{let h=f().clockStartRequests;if(h!==0){if(h===1){y(),l&&clearInterval(l),v({clockRunning:!1,clockStartRequests:0});return}v({clockStartRequests:h-1})}},setElement:(h,x)=>{o[h]=x;let C=Object.keys(o),b=f().complexTimeline;p(x,h),b.items.filter(P=>P.type!=="Image"&&P.type!=="Text").every(P=>C.includes(P.annotationId))&&!f().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:b}),v({isReady:!0}))},removeElement:h=>{delete o[h]},mute(){for(let h of m())h.muted=!0;v({isMuted:!0})},unmute(){for(let h of m())h.muted=!1;v({isMuted:!1})},play(){if(!f().isPlaying){for(let x of c())x.play();v({isPlaying:!0})}},pause(){if(f().isPlaying){for(let x of c())x.pause();v({isPlaying:!1})}},playPause(){let h=f();h.isPlaying?h.pause():h.play()},setDurationPercent(h){let C=f().duration*h;f().setTime(C)},setTime(h){let x=f(),C=s/1e3,b=typeof h=="function"?h(C):h,R=x.nextKeyframeIndex;if(C>b){v({visibleElements:{},currentPrime:null});let k=Object.keys(x.visibleElements);for(let V of k)n.emit("complex-timeline.exit",{id:V});C=0,R=0}let[P,D]=_r({currentTime:C,currentKeyFrameIndex:R,keyframes:x.complexTimeline.keyframes,targetTime:b});x.applyKeyframes(P,D),s=b*1e3;let I=S.getState().visibleElements,H=o,T=Object.keys(I);for(let k of T){let V=I[k];if(V){let ut=H[k];ut&&(ut.currentTime=(s-V.time*1e3)/1e3)}}u(b)},setVolume(h){for(let x of m())x.volume=Math.min(1,Math.max(0,h/100));v({volume:h})},toggleMute(){let h=f();h.isMuted?(h.unmute(),v({isMuted:!1})):(h.mute(),v({isMuted:!0}))},clearProgressElement(){a.progress=null},setProgressElement(h){a.progress=h},setCurrentTimeElement(h){a.currentTime=h},clearCurrentTimeElement(){a.currentTime=null}}));return n.on("complex-timeline.enter",v=>{let f=S.getState(),h=v.id,x=o[h];x&&f.isPlaying&&x.play()}),n.on("complex-timeline.exit",v=>{let f=S.getState(),h=v.id,x=o[h];x&&(x.currentTime=0,x.pause())}),S.getState().setTime(t),{store:S,emitter:n}}var tt=require("react");var ti=require("@atlas-viewer/atlas"),ni=require("@iiif/parser/image-3");var Qt=J(require("react"),1),Gr=require("@iiif/helpers/image-service"),Xt=require("zustand"),Qr=Qt.default.createContext(Gr.imageServices.store);Qr.displayName="ImageServicesHelper";function Yn(){return(0,Qt.useContext)(Qr)}function Xr(e){let t=Yn();return(0,Xt.useStore)(t,({loaded:n})=>n[e])}function Zt(){let e=Yn();return(0,Xt.useStore)(e,({loadServiceSync:t})=>t)}function Zr(){let e=Yn();return(0,Xt.useStore)(e,({loaded:t})=>t)}var se=J(require("react"),1),be=require("react/jsx-runtime"),qa=se.default.createContext("en"),$a=se.default.createContext({}),Fa=se.default.createContext(null);function Wa(){return se.default.useContext(Fa)}function ei(){return se.default.useContext(qa)}function Ua(){return se.default.useContext($a)}function Jr(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function _a({as:e,language:t,children:n,viewingDirection:o,...a}){let i=ei();return(0,se.useMemo)(()=>Jr(i)===Jr(t),[i,t])?e?(0,be.jsx)(e,{...a,children:n}):(0,be.jsx)("span",{...a,children:n}):e?(0,be.jsx)(e,{...a,lang:t,dir:o,children:n}):(0,be.jsx)("span",{...a,lang:t,dir:o,children:n})}function ja(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let o=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(o&&t.indexOf(o)!==-1)return o;for(let a of n)if(t.indexOf(a)!==-1)return a;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var Ya=(e,t=[])=>{let n=ei();return(0,se.useMemo)(()=>{let o=e();return ja(n,o,[])},[n,...t])};function Kn(e,t,n,o){return t?n?n(e[t]||t,o||"none"):e[t]||t:""}function Ka(e,t,n=`
|
|
16
|
-
`,o={}){let a=Wa(),i=Ya(()=>Object.keys(e||{}),[e]);return[(0,se.useMemo)(()=>{if(!e)return Kn(o,t,a)||"";if(typeof e=="string")return Kn(o,e,a);let r=i?e[i]:void 0;return r?typeof r=="string"?r:r.map(s=>Kn(o,s,a,i)).join(n):""},[i,t,e]),i]}function St({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:a,...i}){let r=Ua(),[s,l]=Ka(o,t,a,r);return l?(0,be.jsx)(_a,{...i,as:e,language:l,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,be.jsx)(e,{...i,children:s}):(0,be.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var Gn=require("@iiif/parser/image-3"),Jt=require("react"),ze=require("react/jsx-runtime"),Qn=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],a=e.enableThumbnail,i=e.enableSizes,r=(0,Jt.useMemo)(()=>{let c=e.tiles.imageService.id||e.tiles.imageService["@id"];return c?.endsWith("/info.json")?c.slice(0,-1*10):c},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,Jt.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let m=e.width,u=[1],d=1;for(;2**d<m;)d=d*2,u.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,Gn.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:(0,Gn.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:[]}return c},[e.tiles.imageService,e.width]),l=(0,Jt.useMemo)(()=>{let c=e.tiles.imageService;return(c?c["@context"]?Array.isArray(c["@context"])?c["@context"]:[c["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,ze.jsx)("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,ze.jsxs)("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[a&&e.tiles.thumbnail?(0,ze.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,i&&o.map((c,m)=>(0,ze.jsx)("world-image",{uri:`${r}/full/${c.width},${l?c.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:c.width,height:c.height},crop:e.crop},m)),s.map(c=>(c.scaleFactors||[]).map(m=>(0,ze.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:c,scaleFactor:m,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${m}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var ee=require("react/jsx-runtime");function Ga({resource:e,heading:t,note:n,extra:o}){return o?(0,ee.jsx)(ti.HTMLPortal,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,ee.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,ee.jsxs)("div",{children:[(0,ee.jsx)(St,{children:t||"Not authorised"}),n&&(0,ee.jsx)("p",{children:(0,ee.jsx)(St,{children:n})}),(0,ee.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function oi({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:a,renderOptions:i,rotation:r}){let s=Do(),l=(0,ni.getId)(e.service),c=Xr(l),m=Zt(),u=c?.service;m(e.service,e);let d=u&&c?.status==="done",g=(u?.preferredFormats||[])[0],y=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!s){let p=e.service,S=p.width||e.width||0,v=p.height||e.height||0,f=0,h=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||v;return(r===90||r===270)&&([x,C]=[C,x],C>x?h=-(C-x)/2:f=-(x-C)/2),(0,ee.jsx)(Qn,{enableThumbnail:a,renderOptions:i,rotation:r,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:S,imageService:p,thumbnail:y},enableSizes:o,x:f,y:h,format:g,width:x,height:C,crop:n})}return(0,ee.jsx)(Ho,{resource:e.service,errorComponent:Ga,extra:e,children:p=>{let S=p.width||e.width||0,v=p.height||e.height||0,f=0,h=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||v;return(r===90||r===270)&&([x,C]=[C,x],C<x?(h=-(C-x)/2,f=(x-C)/2):(h=(C-x)/2,f=-(x-C)/2)),(0,ee.jsx)(Qn,{enableThumbnail:a,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:S,imageService:p,thumbnail:y},rotation:r,format:g,enableSizes:o,x:f,y:h,width:x,height:C,crop:n})}},e.id)}var Re=require("react/jsx-runtime");function nt({id:e,image:t,thumbnail:n,isStatic:o,x:a=0,y:i=0,children:r,selector:s,onClick:l,enableSizes:c,enableAnnotations:m}){let u=(0,tt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,tt.useMemo)(()=>{let h=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(h&&h.selector?.type==="ImageApiSelector")return Number(h.selector.rotation)},[t]),g=a+t.target.spatial.x,y=i+t.target.spatial.y,p=t.target.spatial.width,S=t.target.spatial.height,v=t.target.spatial.width,f=t.target.spatial.height;return(d===90||d===270)&&([p,S]=[S,p],[v,f]=[f,v]),(0,Re.jsxs)("world-object",{x:g,y,width:p,height:S,onClick:l,rotation:d,children:[t.service?(0,Re.jsxs)(tt.Fragment,{children:[(0,Re.jsx)(oi,{image:t,thumbnail:n,crop:u,enableSizes:c,rotation:d}),r]},"service"):(0,Re.jsxs)(tt.Fragment,{children:[(0,Re.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:v,height:f},display:v&&f?{width:v,height:f}:void 0,crop:u}),r]},"no-service"),m&&t.annotationPages?t.annotationPages.map(h=>(0,Re.jsx)(Me,{page:h,className:"image-service-annotation",ignoreTargetId:!0},h.id)):null]},e+(t.service?"server":"no-service"))}var ri=require("@atlas-viewer/atlas");var fe=require("react/jsx-runtime");function en({strategy:e,onClickPaintingAnnotation:t}){return(0,fe.jsx)(fe.Fragment,{children:e.items.map((n,o)=>(0,fe.jsx)(fe.Fragment,{children:(0,fe.jsx)(ri.HTMLPortal,{onClick:t?a=>{a.stopPropagation(),t(n.annotationId,n,a)}:void 0,target:n.target?.spatial||void 0,children:(0,fe.jsx)("div",{"data-textual-content":!0,children:(0,fe.jsx)(St,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}var te=require("react/jsx-runtime");function ii({strategy:e,children:t}){let{store:n}=(0,tn.useMemo)(()=>Kr({complexTimeline:e}),[e]),o=(0,Zn.useStore)(n,r=>r.isReady),a=(0,Zn.useStore)(n,r=>r.visibleElements);function i(r){return s=>{s&&n.getState().setElement(r,s)}}return(0,tn.useLayoutEffect)(()=>{if(o){let{startClock:r,stopClock:s}=n.getState();return r(),()=>{s()}}},[e,o]),j("portal","custom-controls",Wr,{store:n,children:t},[o]),(0,te.jsxs)(te.Fragment,{children:[e.items.map(r=>r.type!=="Image"||!a[r.annotationId]?null:(0,te.jsx)(nt,{image:r,id:r.annotationId},r.id)),e.items.map((r,s)=>r.type!=="Text"||!a[r.annotationId]?null:(0,te.jsx)(en,{strategy:{type:"textual-content",items:[r]}},s)),e.items.map((r,s)=>r.type!=="Video"||!r.target.spatial?null:(0,te.jsx)(Xn.HTMLPortal,{target:r.target.spatial,children:(0,te.jsx)("video",{ref:i(r.annotationId),src:r.url,style:{height:"100%",width:"100%",opacity:a[r.annotationId]?1:0}})},s)),e.items.map((r,s)=>r.type!=="Sound"?null:(0,te.jsx)(Xn.HTMLPortal,{children:(0,te.jsx)("audio",{ref:i(r.annotationId),src:r.url})},s)),e.highlights.map(({annotation:r})=>a[r.id]?(0,te.jsx)(Qe,{id:r.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},r.id):null)]})}var si=require("react/jsx-runtime");function ai(){let{strategy:e}=O(),{renderComplexTimelineControls:t}=X();return e.type!=="complex-timeline"?null:(0,si.jsx)(ii,{strategy:e,children:t?t(e):null})}var li=require("react/jsx-runtime");function nn({style:e}){let t=A();return!t||!t.height||!t.width?null:(0,li.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var ci=require("react/jsx-runtime");function ui({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=O();return n.type!=="empty"&&!t?null:(0,ci.jsx)(nn,{style:e})}var on=require("react"),Oe=(0,on.createContext)(null);function rn(){return(0,on.useContext)(Oe)}var ot=require("react/jsx-runtime");function di({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,children:a}){let{strategy:i}=O(),{renderViewerControls:r,viewControlsDeps:s}=X(),l=A(),c=rn(),m=Je({maxWidth:256,maxHeight:256});return j(c&&i.type==="images"&&r?"overlay":"none",`canvas-portal-controls-${l?.id}`,Oe.Provider,r?{value:c||null,children:r(i)}:{},[l,c,i,...s||[]]),i.type!=="images"?null:(0,ot.jsxs)(ot.Fragment,{children:[i.images.map((u,d)=>(0,ot.jsx)(nt,{isStatic:e,image:u,id:u.id,thumbnail:d===0?m:void 0,selector:u.selector,enableSizes:t,enableAnnotations:n,onClick:o?g=>{o(u.annotationId,u,g)}:void 0},u.id+d)),a]})}var rt=require("react/jsx-runtime");function mi({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=O(),{renderViewerControls:o,viewControlsDeps:a}=X(),i=rn(),r=A();return j(i&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${r?.id}`,Oe.Provider,o?{value:i||null,children:o(n)}:{},[r,i,n,...a||[]]),n.type!=="textual-content"?null:(0,rt.jsxs)(rt.Fragment,{children:[(0,rt.jsx)(en,{strategy:n,onClickPaintingAnnotation:e}),t]})}var xt=require("react/jsx-runtime");function Jn({element:e,media:t,startTime:n,playPause:o,poster:a}){let i="div",r=n?`${t.url}#t=${n}`:t.url;return(0,xt.jsxs)(i,{className:"video-container",part:"video-container",onClick:o,children:[(0,xt.jsx)("style",{children:`
|
|
16
|
+
`,o={}){let a=Wa(),i=Ya(()=>Object.keys(e||{}),[e]);return[(0,se.useMemo)(()=>{if(!e)return Kn(o,t,a)||"";if(typeof e=="string")return Kn(o,e,a);let r=i?e[i]:void 0;return r?typeof r=="string"?r:r.map(s=>Kn(o,s,a,i)).join(n):""},[i,t,e]),i]}function St({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:a,...i}){let r=Ua(),[s,l]=Ka(o,t,a,r);return l?(0,be.jsx)(_a,{...i,as:e,language:l,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,be.jsx)(e,{...i,children:s}):(0,be.jsx)("span",{...i,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var Gn=require("@iiif/parser/image-3"),Jt=require("react"),ze=require("react/jsx-runtime"),Qn=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],a=e.enableThumbnail,i=e.enableSizes,r=(0,Jt.useMemo)(()=>{let c=e.tiles.imageService.id||e.tiles.imageService["@id"];return c?.endsWith("/info.json")?c.slice(0,-1*10):c},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),s=(0,Jt.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let m=e.width,u=[1],d=1;for(;2**d<m;)d=d*2,u.push(d);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&(0,Gn.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:(0,Gn.isImageServiceLevel)(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:u}]:[]}return c},[e.tiles.imageService,e.width]),l=(0,Jt.useMemo)(()=>{let c=e.tiles.imageService;return(c?c["@context"]?Array.isArray(c["@context"])?c["@context"]:[c["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,ze.jsx)("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,ze.jsxs)("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[a&&e.tiles.thumbnail?(0,ze.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,i&&o.map((c,m)=>(0,ze.jsx)("world-image",{uri:`${r}/full/${c.width},${l?c.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:c.width,height:c.height},crop:e.crop},m)),s.map(c=>(c.scaleFactors||[]).map(m=>(0,ze.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:c,scaleFactor:m,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${m}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var ee=require("react/jsx-runtime");function Ga({resource:e,heading:t,note:n,extra:o}){return o?(0,ee.jsx)(ti.HTMLPortal,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,ee.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,ee.jsxs)("div",{children:[(0,ee.jsx)(St,{children:t||"Not authorised"}),n&&(0,ee.jsx)("p",{children:(0,ee.jsx)(St,{children:n})}),(0,ee.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function oi({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:a,renderOptions:i,rotation:r}){let s=Do(),l=(0,ni.getId)(e.service),c=Xr(l),m=Zt(),u=c?.service;m(e.service,e);let d=u&&c?.status==="done",g=(u?.preferredFormats||[])[0],y=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!s){let p=e.service,S=p.width||e.width||0,v=p.height||e.height||0,f=0,h=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||v;return(r===90||r===270)&&([x,C]=[C,x],C>x?h=-(C-x)/2:f=-(x-C)/2),(0,ee.jsx)(Qn,{enableThumbnail:a,renderOptions:i,rotation:r,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:S,imageService:p,thumbnail:y},enableSizes:o,x:f,y:h,format:g,width:x,height:C,crop:n})}return(0,ee.jsx)(Ho,{resource:e.service,errorComponent:Ga,extra:e,children:p=>{let S=p.width||e.width||0,v=p.height||e.height||0,f=0,h=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||v;return(r===90||r===270)&&([x,C]=[C,x],C<x?(h=-(C-x)/2,f=(x-C)/2):(h=(C-x)/2,f=-(x-C)/2)),(0,ee.jsx)(Qn,{enableThumbnail:a,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:v,width:S,imageService:p,thumbnail:y},rotation:r,format:g,enableSizes:o,x:f,y:h,width:x,height:C,crop:n})}},e.id)}var Re=require("react/jsx-runtime");function nt({id:e,image:t,thumbnail:n,isStatic:o,x:a=0,y:i=0,children:r,selector:s,onClick:l,enableSizes:c,enableAnnotations:m}){let u=(0,tt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]),d=(0,tt.useMemo)(()=>{if(!t.annotation)return 0;let h=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(h&&h.selector?.type==="ImageApiSelector")return Number(h.selector.rotation)},[t]),g=a+t.target.spatial.x,y=i+t.target.spatial.y,p=t.target.spatial.width,S=t.target.spatial.height,v=t.target.spatial.width,f=t.target.spatial.height;return(d===90||d===270)&&([p,S]=[S,p],[v,f]=[f,v]),(0,Re.jsxs)("world-object",{x:g,y,width:p,height:S,onClick:l,rotation:d,children:[t.service?(0,Re.jsxs)(tt.Fragment,{children:[(0,Re.jsx)(oi,{image:t,thumbnail:n,crop:u,enableSizes:c,rotation:d}),r]},"service"):(0,Re.jsxs)(tt.Fragment,{children:[(0,Re.jsx)("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:v,height:f},display:v&&f?{width:v,height:f}:void 0,crop:u}),r]},"no-service"),m&&t.annotationPages?t.annotationPages.map(h=>(0,Re.jsx)(Me,{page:h,className:"image-service-annotation",ignoreTargetId:!0},h.id)):null]},e+(t.service?"server":"no-service"))}var ri=require("@atlas-viewer/atlas");var fe=require("react/jsx-runtime");function en({strategy:e,onClickPaintingAnnotation:t}){return(0,fe.jsx)(fe.Fragment,{children:e.items.map((n,o)=>(0,fe.jsx)(fe.Fragment,{children:(0,fe.jsx)(ri.HTMLPortal,{onClick:t?a=>{a.stopPropagation(),t(n.annotationId,n,a)}:void 0,target:n.target?.spatial||void 0,children:(0,fe.jsx)("div",{"data-textual-content":!0,children:(0,fe.jsx)(St,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}var te=require("react/jsx-runtime");function ii({strategy:e,children:t}){let{store:n}=(0,tn.useMemo)(()=>Kr({complexTimeline:e}),[e]),o=(0,Zn.useStore)(n,r=>r.isReady),a=(0,Zn.useStore)(n,r=>r.visibleElements);function i(r){return s=>{s&&n.getState().setElement(r,s)}}return(0,tn.useLayoutEffect)(()=>{if(o){let{startClock:r,stopClock:s}=n.getState();return r(),()=>{s()}}},[e,o]),j("portal","custom-controls",Wr,{store:n,children:t},[o]),(0,te.jsxs)(te.Fragment,{children:[e.items.map(r=>r.type!=="Image"||!a[r.annotationId]?null:(0,te.jsx)(nt,{image:r,id:r.annotationId},r.id)),e.items.map((r,s)=>r.type!=="Text"||!a[r.annotationId]?null:(0,te.jsx)(en,{strategy:{type:"textual-content",items:[r]}},s)),e.items.map((r,s)=>r.type!=="Video"||!r.target.spatial?null:(0,te.jsx)(Xn.HTMLPortal,{target:r.target.spatial,children:(0,te.jsx)("video",{ref:i(r.annotationId),src:r.url,style:{height:"100%",width:"100%",opacity:a[r.annotationId]?1:0}})},s)),e.items.map((r,s)=>r.type!=="Sound"?null:(0,te.jsx)(Xn.HTMLPortal,{children:(0,te.jsx)("audio",{ref:i(r.annotationId),src:r.url})},s)),e.highlights.map(({annotation:r})=>a[r.id]?(0,te.jsx)(Qe,{id:r.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},r.id):null)]})}var si=require("react/jsx-runtime");function ai(){let{strategy:e}=O(),{renderComplexTimelineControls:t}=X();return e.type!=="complex-timeline"?null:(0,si.jsx)(ii,{strategy:e,children:t?t(e):null})}var li=require("react/jsx-runtime");function nn({style:e}){let t=A();return!t||!t.height||!t.width?null:(0,li.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var ci=require("react/jsx-runtime");function ui({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=O();return n.type!=="empty"&&!t?null:(0,ci.jsx)(nn,{style:e})}var on=require("react"),Oe=(0,on.createContext)(null);function rn(){return(0,on.useContext)(Oe)}var ot=require("react/jsx-runtime");function di({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,children:a}){let{strategy:i}=O(),{renderViewerControls:r,viewControlsDeps:s}=X(),l=A(),c=rn(),m=Je({maxWidth:256,maxHeight:256});return j(c&&i.type==="images"&&r?"overlay":"none",`canvas-portal-controls-${l?.id}`,Oe.Provider,r?{value:c||null,children:r(i)}:{},[l,c,i,...s||[]]),i.type!=="images"?null:(0,ot.jsxs)(ot.Fragment,{children:[i.images.map((u,d)=>(0,ot.jsx)(nt,{isStatic:e,image:u,id:u.id,thumbnail:d===0?m:void 0,selector:u.selector,enableSizes:t,enableAnnotations:n,onClick:o?g=>{o(u.annotationId,u,g)}:void 0},u.id+d)),a]})}var rt=require("react/jsx-runtime");function mi({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=O(),{renderViewerControls:o,viewControlsDeps:a}=X(),i=rn(),r=A();return j(i&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${r?.id}`,Oe.Provider,o?{value:i||null,children:o(n)}:{},[r,i,n,...a||[]]),n.type!=="textual-content"?null:(0,rt.jsxs)(rt.Fragment,{children:[(0,rt.jsx)(en,{strategy:n,onClickPaintingAnnotation:e}),t]})}var xt=require("react/jsx-runtime");function Jn({element:e,media:t,startTime:n,playPause:o,poster:a}){let i="div",r=n?`${t.url}#t=${n}`:t.url;return(0,xt.jsxs)(i,{className:"video-container",part:"video-container",onClick:o,children:[(0,xt.jsx)("style",{children:`
|
|
17
17
|
.video-container {
|
|
18
18
|
position: absolute;
|
|
19
19
|
top: 0;
|
package/dist/canvas-panel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ub as a}from"./chunk-
|
|
1
|
+
import{Ub as a}from"./chunk-I5SAOKMU.js";import"./chunk-FBET7GLW.js";export{a as CanvasPanel};
|
|
@@ -15,7 +15,7 @@ import{c as ln,l as un}from"./chunk-FBET7GLW.js";import{forwardRef as Vr,useImpe
|
|
|
15
15
|
`}),qt("div",{className:"model-container",children:qt("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Je({model:e,name:t}){return D("overlay",`model-${t}`,$t,{model:e},[e]),null}import{jsx as ya}from"react/jsx-runtime";function io(){let{strategy:e}=V();return e.type!=="3d-model"?null:ya(Je,{model:e.model})}import{createContext as va,useContext as Sa}from"react";var et=va(null);et.displayName="Controls";function $(){let e=Sa(et);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}import{Fragment as xa,jsx as tt,jsxs as Ca}from"react/jsx-runtime";function ao(){let{strategy:e}=V(),{renderViewerControls:t,viewControlsDeps:n}=$(),o=A(),s=o?.accompanyingCanvas,i=o?.placeholderCanvas;return Ca(xa,{children:[e.type==="media"&&e.media.type==="Sound"&&s?tt(ee,{canvas:s.id,children:tt(de,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&i&&!s?tt(ee,{canvas:i.id,children:tt(de,{renderViewerControls:t,viewControlsDeps:n})}):null]})}import{createContext as Ta,useContext as wa,useMemo as Ia}from"react";import{useCallback as lo,useLayoutEffect as Ra,useMemo as Aa,useRef as Pa}from"react";import{entityActions as Ft}from"@iiif/helpers/vault/actions";import{useMemo as ba}from"react";function so(){let t=M().getStore();return ba(()=>n=>t.dispatch(n),[t])}function uo(e){return typeof e!="string"&&e&&e.bindToVault}function co(){let e=M(),t=Pa([]),n=so(),o=Aa(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);Ra(()=>{let a={id:o,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(Ft.importEntities({entities:{AnnotationPage:{[a.id]:a}}}))},[o]);let s=k(a=>o&&a.iiif.entities.AnnotationPage[o]||null,[o]),i=lo((a,l)=>{if(o){if(uo(a)){let c=a;c.__vault||c.bindToVault(e),a=typeof c.source=="string"?c.source:c.source.id,t.current[a]=c}else typeof a!="string"&&(a=a.id);let u=e.get({id:o,type:"AnnotationPage"}),f=e.get({id:a,type:"Annotation"});u&&f&&(u.items.find(c=>c.id===f.id)||n(Ft.addReference({id:o,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"},index:l})))}},[o]),r=lo(a=>{o&&(uo(a)?a=typeof a.source=="string"?a.source:a.source.id:typeof a!="string"&&(a=a.id),t.current[a]&&t.current[a].beforeRemove(),e.get({id:o,type:"AnnotationPage"})&&n(Ft.removeReference({id:o,type:"AnnotationPage",key:"items",reference:{id:a,type:"Annotation"}})))},[o]);return[s,{addAnnotation:i,removeAnnotation:r}]}import{jsx as Ma}from"react/jsx-runtime";var mo=Ta(null);function po(){let e=wa(mo);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function fo({children:e}){let[t,{addAnnotation:n,removeAnnotation:o}]=co();return Ma(mo.Provider,{value:Ia(()=>({fullPage:t,addAnnotation:n,removeAnnotation:o}),[t]),children:e})}import{Fragment as ka,jsx as go,jsxs as Ea}from"react/jsx-runtime";function ho({children:e}){let{strategy:t}=V(),[n]=po();return t.type!=="images"?null:Ea(ka,{children:[n?go(ue,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(o=>go(ue,{page:o},o.id)):null,e]})}import{useEffect as Ba,useMemo as Ha,useRef as Da,useState as qa}from"react";import{useEffect as Va}from"react";var yo=(e,t=[])=>{let n=M();Va(()=>{e(n)},[n,...t])};import Na,{useContext as La}from"react";import{ImageServiceLoader as za}from"@iiif/helpers/image-service";var Oa=Na.createContext(new za);function vo(){return La(Oa)}import{createThumbnailHelper as $a}from"@iiif/helpers/thumbnail";function Pe(e,t,{canvasId:n,manifestId:o}={}){let s=M(),i=vo(),r=Ha(()=>$a(s,{imageServiceLoader:i}),[s,i]),[a,l]=qa(),u=B(o?{id:o}:void 0),f=A(n?{id:n}:void 0),c=f||u,m=Da(!1);if(Ba(()=>(m.current=!1,()=>{m.current=!0}),[]),!c)throw new Error("Must be called under a manifest or canvas context.");return yo(h=>{r.getBestThumbnailAtSize(c,e,t).then(v=>{v.best&&!m.current&&l(v.best)})},[c]),a}import{jsx as So}from"react/jsx-runtime";function Te({x:e=0,y:t=0}){let n=A(),o=Pe({maxWidth:256,maxHeight:256});return!n||!o||o.type!=="fixed"?null:So("world-object",{height:n.height,width:n.width,x:e,y:t,children:So("world-image",{uri:o.id,target:{x:0,y:0,width:n.width,height:n.height},display:o.width&&o.height?{width:o.width,height:o.height}:void 0,crop:void 0})})}import{jsx as Fa,jsxs as Wa}from"react/jsx-runtime";function xo({as:e}){let{strategy:t}=V(),{renderMediaControls:n,mediaControlsDeps:o}=$();return t.type!=="media"||t.media.type!=="Sound"?null:Wa(Ze,{media:t.media,mediaControlsDeps:o,audioCopmonent:e,children:[Fa(Te,{}),n?n(t):null]},t.media.url)}import{HTMLPortal as Do}from"@atlas-viewer/atlas";import{useLayoutEffect as ls,useMemo as us}from"react";import{useStore as qo}from"zustand";import{createContext as Ua,useContext as _a}from"react";import{useStore as ja}from"zustand";import{jsx as Ka}from"react/jsx-runtime";var Wt=Ua(null);Wt.displayName="ComplexTimeline";function Co({children:e,store:t}){return Ka(Wt.Provider,{value:t,children:e})}function cf(e){let t=_a(Wt);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return ja(t,e)}import Ya from"mitt";import{createStore as Ga}from"zustand/vanilla";function bo({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:o}){if(o<=n){let s=t.findIndex(a=>a.time>n);if(s===-1)return[e,[]];let i={},r=t.slice(e,s);for(let a of r)a.type==="enter"&&(i[a.id]=a),a.type==="exit"&&(i[a.id]?delete i[a.id]:i[a.id]=a);return[s,Object.values(i)]}return[e,[]]}function Ro({complexTimeline:e,startTime:t=0}){let n=Ya(),o={},s={progress:null,currentTime:null},i=0,r=null,a=0,l=null;function u(){let d=S.getState().visibleElements,g=o,x=[],C=Object.keys(g);for(let b of C){let R=g[b],P=d[b];R&&P&&x.push(R)}return x}function f(){return Object.keys(o).map(d=>o[d])}function c(y){s.currentTime&&(s.currentTime.innerHTML=Ot(y),s.progress&&(s.progress.style.width=`${y/e.duration*100}%`))}let m=()=>{let y=S.getState(),d=y.currentPrime;if(!d)return;let g=o,x=y.visibleElements,C=Object.keys(g);for(let b of C){let R=g[b],P=x[b];if(R&&b!==d.id&&P){let L=a-P.time*1e3;Math.abs(a-P.time*1e3-R.currentTime*1e3)>300&&(R.currentTime=L/1e3)}}},h=(y=0)=>{let d=y-i,g=S.getState();if(g.isPlaying){let x=g.currentPrime;if(x){let P=o[x.id];P&&(P.paused?a+=d:a=(x.time+P.currentTime)*1e3)}else a+=d;let C=a/1e3;if(C>g.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),v(),c(0);return}c(C);let[b,R]=bo({currentTime:C,currentKeyFrameIndex:g.nextKeyframeIndex,keyframes:g.complexTimeline.keyframes,targetTime:C});R.length&&g.applyKeyframes(b,R)}i=y,r=requestAnimationFrame(h)},v=()=>{r&&cancelAnimationFrame(r)},p=(y,d)=>{},S=Ga((y,d)=>({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:()=>{d().clockRunning||(h(),l=setInterval(m,500)),y({clockRunning:!0,clockStartRequests:d().clockStartRequests+1})},applyKeyframes(g,x){let C=d(),b={...C.visibleElements},R=C.currentPrime;for(let P of x)P.type==="enter"&&(b[P.id]=P,n.emit("complex-timeline.enter",{id:P.id})),P.type==="exit"&&(b[P.id]=null,n.emit("complex-timeline.exit",{id:P.id})),P.isPrime&&(R=P);y({nextKeyframeIndex:g,visibleElements:b,currentPrime:R})},stopClock:()=>{let g=d().clockStartRequests;if(g!==0){if(g===1){v(),l&&clearInterval(l),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:g-1})}},setElement:(g,x)=>{o[g]=x;let C=Object.keys(o),b=d().complexTimeline;p(x,g),b.items.filter(P=>P.type!=="Image"&&P.type!=="Text").every(P=>C.includes(P.annotationId))&&!d().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:b}),y({isReady:!0}))},removeElement:g=>{delete o[g]},mute(){for(let g of f())g.muted=!0;y({isMuted:!0})},unmute(){for(let g of f())g.muted=!1;y({isMuted:!1})},play(){if(!d().isPlaying){for(let x of u())x.play();y({isPlaying:!0})}},pause(){if(d().isPlaying){for(let x of u())x.pause();y({isPlaying:!1})}},playPause(){let g=d();g.isPlaying?g.pause():g.play()},setDurationPercent(g){let C=d().duration*g;d().setTime(C)},setTime(g){let x=d(),C=a/1e3,b=typeof g=="function"?g(C):g,R=x.nextKeyframeIndex;if(C>b){y({visibleElements:{},currentPrime:null});let I=Object.keys(x.visibleElements);for(let E of I)n.emit("complex-timeline.exit",{id:E});C=0,R=0}let[P,L]=bo({currentTime:C,currentKeyFrameIndex:R,keyframes:x.complexTimeline.keyframes,targetTime:b});x.applyKeyframes(P,L),a=b*1e3;let w=S.getState().visibleElements,z=o,T=Object.keys(w);for(let I of T){let E=w[I];if(E){let Ee=z[I];Ee&&(Ee.currentTime=(a-E.time*1e3)/1e3)}}c(b)},setVolume(g){for(let x of f())x.volume=Math.min(1,Math.max(0,g/100));y({volume:g})},toggleMute(){let g=d();g.isMuted?(g.unmute(),y({isMuted:!1})):(g.mute(),y({isMuted:!0}))},clearProgressElement(){s.progress=null},setProgressElement(g){s.progress=g},setCurrentTimeElement(g){s.currentTime=g},clearCurrentTimeElement(){s.currentTime=null}}));return n.on("complex-timeline.enter",y=>{let d=S.getState(),g=y.id,x=o[g];x&&d.isPlaying&&x.play()}),n.on("complex-timeline.exit",y=>{let d=S.getState(),g=y.id,x=o[g];x&&(x.currentTime=0,x.pause())}),S.getState().setTime(t),{store:S,emitter:n}}import{Fragment as Oo,useMemo as Bo}from"react";import{HTMLPortal as os}from"@atlas-viewer/atlas";import{getId as rs}from"@iiif/parser/image-3";import Qa,{useContext as Xa}from"react";import{imageServices as Za}from"@iiif/helpers/image-service";import{useStore as nt}from"zustand";var Ao=Qa.createContext(Za.store);Ao.displayName="ImageServicesHelper";function ot(){return Xa(Ao)}function Po(e){let t=ot();return nt(t,({loaded:n})=>n[e])}function rt(){let e=ot();return nt(e,({loadServiceSync:t})=>t)}function To(){let e=ot();return nt(e,({loaded:t})=>t)}function Cf(){let e=ot();return nt(e,({loadService:t})=>t)}import we,{useMemo as Ut}from"react";import{jsx as X}from"react/jsx-runtime";var Io=we.createContext("en"),Mo=we.createContext({}),ko=we.createContext(null);function Pf(e){return X(Mo.Provider,{value:e.translations,children:e.children})}function Tf(e){return X(Io.Provider,{value:e.language,children:e.children})}function wf(e){return X(ko.Provider,{value:e.convert,children:e.children})}function Eo(){return we.useContext(ko)}function _t(){return we.useContext(Io)}function Vo(){return we.useContext(Mo)}function wo(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Ja({as:e,language:t,children:n,viewingDirection:o,...s}){let i=_t();return Ut(()=>wo(i)===wo(t),[i,t])?e?X(e,{...s,children:n}):X("span",{...s,children:n}):e?X(e,{...s,lang:t,dir:o,children:n}):X("span",{...s,lang:t,dir:o,children:n})}function No(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let o=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(o&&t.indexOf(o)!==-1)return o;for(let s of n)if(t.indexOf(s)!==-1)return s;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var es=(e,t=[])=>{let n=_t();return Ut(()=>{let o=e();return No(n,o,[])},[n,...t])};function me(e,t,n,o){return t?n?n(e[t]||t,o||"none"):e[t]||t:""}function ts(e,t,n=`
|
|
16
16
|
`,o={}){let s=Eo(),i=es(()=>Object.keys(e||{}),[e]);return[Ut(()=>{if(!e)return me(o,t,s)||"";if(typeof e=="string")return me(o,e,s);let r=i?e[i]:void 0;return r?typeof r=="string"?r:r.map(a=>me(o,a,s,i)).join(n):""},[i,t,e]),i]}function If(){let e=_t(),t=Vo(),n=Eo();return function(s,i="",r=`
|
|
17
17
|
`,a=t){let l=Object.keys(s||{}),u=No(e,l,[]);if(!s)return me(a,i,n)||"";if(typeof s=="string")return me(a,s,n);let f=u?s[u]:void 0;return f?typeof f=="string"?me(a,f,n,u):f.map(c=>me(a,c,n,u)).join(typeof r<"u"?r:`
|
|
18
|
-
`):""}}function Be({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:s,...i}){let r=Vo(),[a,l]=ts(o,t,s,r);return l?X(Ja,{...i,as:e,language:l,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a}):e?X(e,{...i,children:a}):X("span",{...i,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a})}import{isImageServiceLevel as Lo}from"@iiif/parser/image-3";import{useMemo as jt}from"react";import{jsx as it,jsxs as ns}from"react/jsx-runtime";var Kt=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],s=e.enableThumbnail,i=e.enableSizes,r=jt(()=>{let u=e.tiles.imageService.id||e.tiles.imageService["@id"];return u?.endsWith("/info.json")?u.slice(0,-1*10):u},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),a=jt(()=>{let u=e.tiles.imageService.tiles||[];if(!u.length){let f=e.width,c=[1],m=1;for(;2**m<f;)m=m*2,c.push(m);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&Lo(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:Lo(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:[]}return u},[e.tiles.imageService,e.width]),l=jt(()=>{let u=e.tiles.imageService;return(u?u["@context"]?Array.isArray(u["@context"])?u["@context"]:[u["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return it("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:ns("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[s&&e.tiles.thumbnail?it("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,i&&o.map((u,f)=>it("world-image",{uri:`${r}/full/${u.width},${l?u.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:u.width,height:u.height},crop:e.crop},f)),a.map(u=>(u.scaleFactors||[]).map(f=>it("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:u,scaleFactor:f,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${f}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};import{jsx as ne,jsxs as as}from"react/jsx-runtime";function is({resource:e,heading:t,note:n,extra:o}){return o?ne(os,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:ne("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:as("div",{children:[ne(Be,{children:t||"Not authorised"}),n&&ne("p",{children:ne(Be,{children:n})}),ne("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function zo({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:s,renderOptions:i,rotation:r}){let a=En(),l=rs(e.service),u=Po(l),f=rt(),c=u?.service;f(e.service,e);let m=c&&u?.status==="done",h=(c?.preferredFormats||[])[0],v=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(m===!1)return null;if(!a){let p=e.service,S=p.width||e.width||0,y=p.height||e.height||0,d=0,g=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||y;return(r===90||r===270)&&([x,C]=[C,x],C>x?g=-(C-x)/2:d=-(x-C)/2),ne(Kt,{enableThumbnail:s,renderOptions:i,rotation:r,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:S,imageService:p,thumbnail:v},enableSizes:o,x:d,y:g,format:h,width:x,height:C,crop:n})}return ne(Vn,{resource:e.service,errorComponent:is,extra:e,children:p=>{let S=p.width||e.width||0,y=p.height||e.height||0,d=0,g=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||y;return(r===90||r===270)&&([x,C]=[C,x],C<x?(g=-(C-x)/2,d=(x-C)/2):(g=(C-x)/2,d=-(x-C)/2)),ne(Kt,{enableThumbnail:s,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:S,imageService:p,thumbnail:v},rotation:r,format:h,enableSizes:o,x:d,y:g,width:x,height:C,crop:n})}},e.id)}import{jsx as Yt,jsxs as Gt}from"react/jsx-runtime";function Ie({id:e,image:t,thumbnail:n,isStatic:o,x:s=0,y:i=0,children:r,selector:a,onClick:l,enableSizes:u,enableAnnotations:f}){let c=Bo(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]),m=Bo(()=>{let g=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(g&&g.selector?.type==="ImageApiSelector")return Number(g.selector.rotation)},[t]),h=s+t.target.spatial.x,v=i+t.target.spatial.y,p=t.target.spatial.width,S=t.target.spatial.height,y=t.target.spatial.width,d=t.target.spatial.height;return(m===90||m===270)&&([p,S]=[S,p],[y,d]=[d,y]),Gt("world-object",{x:h,y:v,width:p,height:S,onClick:l,rotation:m,children:[t.service?Gt(Oo,{children:[Yt(zo,{image:t,thumbnail:n,crop:c,enableSizes:u,rotation:m}),r]},"service"):Gt(Oo,{children:[Yt("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:y,height:d},display:y&&d?{width:y,height:d}:void 0,crop:c}),r]},"no-service"),f&&t.annotationPages?t.annotationPages.map(g=>Yt(ue,{page:g,className:"image-service-annotation",ignoreTargetId:!0},g.id)):null]},e+(t.service?"server":"no-service"))}import{HTMLPortal as ss}from"@atlas-viewer/atlas";import{Fragment as Ho,jsx as He}from"react/jsx-runtime";function at({strategy:e,onClickPaintingAnnotation:t}){return He(Ho,{children:e.items.map((n,o)=>He(Ho,{children:He(ss,{onClick:t?s=>{s.stopPropagation(),t(n.annotationId,n,s)}:void 0,target:n.target?.spatial||void 0,children:He("div",{"data-textual-content":!0,children:He(Be,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}import{Fragment as cs,jsx as pe,jsxs as ds}from"react/jsx-runtime";function $o({strategy:e,children:t}){let{store:n}=us(()=>Ro({complexTimeline:e}),[e]),o=qo(n,r=>r.isReady),s=qo(n,r=>r.visibleElements);function i(r){return a=>{a&&n.getState().setElement(r,a)}}return ls(()=>{if(o){let{startClock:r,stopClock:a}=n.getState();return r(),()=>{a()}}},[e,o]),D("portal","custom-controls",Co,{store:n,children:t},[o]),ds(cs,{children:[e.items.map(r=>r.type!=="Image"||!s[r.annotationId]?null:pe(Ie,{image:r,id:r.annotationId},r.id)),e.items.map((r,a)=>r.type!=="Text"||!s[r.annotationId]?null:pe(at,{strategy:{type:"textual-content",items:[r]}},a)),e.items.map((r,a)=>r.type!=="Video"||!r.target.spatial?null:pe(Do,{target:r.target.spatial,children:pe("video",{ref:i(r.annotationId),src:r.url,style:{height:"100%",width:"100%",opacity:s[r.annotationId]?1:0}})},a)),e.items.map((r,a)=>r.type!=="Sound"?null:pe(Do,{children:pe("audio",{ref:i(r.annotationId),src:r.url})},a)),e.highlights.map(({annotation:r})=>s[r.id]?pe(Re,{id:r.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},r.id):null)]})}import{jsx as ms}from"react/jsx-runtime";function Fo(){let{strategy:e}=V(),{renderComplexTimelineControls:t}=$();return e.type!=="complex-timeline"?null:ms($o,{strategy:e,children:t?t(e):null})}import{jsx as ps}from"react/jsx-runtime";function st({style:e}){let t=A();return!t||!t.height||!t.width?null:ps("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}import{jsx as fs}from"react/jsx-runtime";function Wo({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=V();return n.type!=="empty"&&!t?null:fs(st,{style:e})}import{createContext as gs,useContext as hs}from"react";var fe=gs(null);function lt(){return hs(fe)}import{Fragment as vs,jsx as ys,jsxs as Ss}from"react/jsx-runtime";function Uo({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,children:s}){let{strategy:i}=V(),{renderViewerControls:r,viewControlsDeps:a}=$(),l=A(),u=lt(),f=Pe({maxWidth:256,maxHeight:256});return D(u&&i.type==="images"&&r?"overlay":"none",`canvas-portal-controls-${l?.id}`,fe.Provider,r?{value:u||null,children:r(i)}:{},[l,u,i,...a||[]]),i.type!=="images"?null:Ss(vs,{children:[i.images.map((c,m)=>ys(Ie,{isStatic:e,image:c,id:c.id,thumbnail:m===0?f:void 0,selector:c.selector,enableSizes:t,enableAnnotations:n,onClick:o?h=>{o(c.annotationId,c,h)}:void 0},c.id+m)),s]})}import{Fragment as Cs,jsx as xs,jsxs as bs}from"react/jsx-runtime";function _o({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=V(),{renderViewerControls:o,viewControlsDeps:s}=$(),i=lt(),r=A();return D(i&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${r?.id}`,fe.Provider,o?{value:i||null,children:o(n)}:{},[r,i,n,...s||[]]),n.type!=="textual-content"?null:bs(Cs,{children:[xs(at,{strategy:n,onClickPaintingAnnotation:e}),t]})}import{jsx as jo,jsxs as Rs}from"react/jsx-runtime";function Qt({element:e,media:t,startTime:n,playPause:o,poster:s}){let i="div",r=n?`${t.url}#t=${n}`:t.url;return Rs(i,{className:"video-container",part:"video-container",onClick:o,children:[jo("style",{children:`
|
|
18
|
+
`):""}}function Be({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:o,separator:s,...i}){let r=Vo(),[a,l]=ts(o,t,s,r);return l?X(Ja,{...i,as:e,language:l,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a}):e?X(e,{...i,children:a}):X("span",{...i,title:n?void 0:a,dangerouslySetInnerHTML:n?{__html:a}:void 0,children:n?void 0:a})}import{isImageServiceLevel as Lo}from"@iiif/parser/image-3";import{useMemo as jt}from"react";import{jsx as it,jsxs as ns}from"react/jsx-runtime";var Kt=e=>{let t=e.format||"jpg",n=e.width/(e.crop?.width||e.tiles.width),o=e.tiles.imageService.sizes||[],s=e.enableThumbnail,i=e.enableSizes,r=jt(()=>{let u=e.tiles.imageService.id||e.tiles.imageService["@id"];return u?.endsWith("/info.json")?u.slice(0,-1*10):u},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),a=jt(()=>{let u=e.tiles.imageService.tiles||[];if(!u.length){let f=e.width,c=[1],m=1;for(;2**m<f;)m=m*2,c.push(m);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&Lo(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:Lo(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:c}]:[]}return u},[e.tiles.imageService,e.width]),l=jt(()=>{let u=e.tiles.imageService;return(u?u["@context"]?Array.isArray(u["@context"])?u["@context"]:[u["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return it("world-object",{rotation:e.rotation,scale:n,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:ns("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[s&&e.tiles.thumbnail?it("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,i&&o.map((u,f)=>it("world-image",{uri:`${r}/full/${u.width},${l?u.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:u.width,height:u.height},crop:e.crop},f)),a.map(u=>(u.scaleFactors||[]).map(f=>it("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:u,scaleFactor:f,crop:e.crop,version3:l},`${e.tiles.imageService.id}-tile-${f}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};import{jsx as ne,jsxs as as}from"react/jsx-runtime";function is({resource:e,heading:t,note:n,extra:o}){return o?ne(os,{target:{x:0,y:0,width:o.target?.spatial.width,height:o.target?.spatial.height},backgroundColor:"#333",relative:!0,children:ne("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:as("div",{children:[ne(Be,{children:t||"Not authorised"}),n&&ne("p",{children:ne(Be,{children:n})}),ne("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function zo({image:e,thumbnail:t,crop:n,enableSizes:o,enableThumbnail:s,renderOptions:i,rotation:r}){let a=En(),l=rs(e.service),u=Po(l),f=rt(),c=u?.service;f(e.service,e);let m=c&&u?.status==="done",h=(c?.preferredFormats||[])[0],v=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(m===!1)return null;if(!a){let p=e.service,S=p.width||e.width||0,y=p.height||e.height||0,d=0,g=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||y;return(r===90||r===270)&&([x,C]=[C,x],C>x?g=-(C-x)/2:d=-(x-C)/2),ne(Kt,{enableThumbnail:s,renderOptions:i,rotation:r,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:S,imageService:p,thumbnail:v},enableSizes:o,x:d,y:g,format:h,width:x,height:C,crop:n})}return ne(Vn,{resource:e.service,errorComponent:is,extra:e,children:p=>{let S=p.width||e.width||0,y=p.height||e.height||0,d=0,g=0,x=e.target?.spatial.width||S,C=e.target?.spatial.height||y;return(r===90||r===270)&&([x,C]=[C,x],C<x?(g=-(C-x)/2,d=(x-C)/2):(g=(C-x)/2,d=-(x-C)/2)),ne(Kt,{enableThumbnail:s,renderOptions:i,tiles:{id:p.id||p["@id"]||"unknown",height:y,width:S,imageService:p,thumbnail:v},rotation:r,format:h,enableSizes:o,x:d,y:g,width:x,height:C,crop:n})}},e.id)}import{jsx as Yt,jsxs as Gt}from"react/jsx-runtime";function Ie({id:e,image:t,thumbnail:n,isStatic:o,x:s=0,y:i=0,children:r,selector:a,onClick:l,enableSizes:u,enableAnnotations:f}){let c=Bo(()=>{if(!(!a||a.spatial.x===0&&a.spatial.y===0))return a.spatial},[a]),m=Bo(()=>{if(!t.annotation)return 0;let g=Array.isArray(t.annotation.body)?t.annotation.body?.[0]:t.annotation.body;if(g&&g.selector?.type==="ImageApiSelector")return Number(g.selector.rotation)},[t]),h=s+t.target.spatial.x,v=i+t.target.spatial.y,p=t.target.spatial.width,S=t.target.spatial.height,y=t.target.spatial.width,d=t.target.spatial.height;return(m===90||m===270)&&([p,S]=[S,p],[y,d]=[d,y]),Gt("world-object",{x:h,y:v,width:p,height:S,onClick:l,rotation:m,children:[t.service?Gt(Oo,{children:[Yt(zo,{image:t,thumbnail:n,crop:c,enableSizes:u,rotation:m}),r]},"service"):Gt(Oo,{children:[Yt("world-image",{onClick:l,uri:t.id,target:{x:0,y:0,width:y,height:d},display:y&&d?{width:y,height:d}:void 0,crop:c}),r]},"no-service"),f&&t.annotationPages?t.annotationPages.map(g=>Yt(ue,{page:g,className:"image-service-annotation",ignoreTargetId:!0},g.id)):null]},e+(t.service?"server":"no-service"))}import{HTMLPortal as ss}from"@atlas-viewer/atlas";import{Fragment as Ho,jsx as He}from"react/jsx-runtime";function at({strategy:e,onClickPaintingAnnotation:t}){return He(Ho,{children:e.items.map((n,o)=>He(Ho,{children:He(ss,{onClick:t?s=>{s.stopPropagation(),t(n.annotationId,n,s)}:void 0,target:n.target?.spatial||void 0,children:He("div",{"data-textual-content":!0,children:He(Be,{enableDangerouslySetInnerHTML:!0,children:n.text})})},o)}))})}import{Fragment as cs,jsx as pe,jsxs as ds}from"react/jsx-runtime";function $o({strategy:e,children:t}){let{store:n}=us(()=>Ro({complexTimeline:e}),[e]),o=qo(n,r=>r.isReady),s=qo(n,r=>r.visibleElements);function i(r){return a=>{a&&n.getState().setElement(r,a)}}return ls(()=>{if(o){let{startClock:r,stopClock:a}=n.getState();return r(),()=>{a()}}},[e,o]),D("portal","custom-controls",Co,{store:n,children:t},[o]),ds(cs,{children:[e.items.map(r=>r.type!=="Image"||!s[r.annotationId]?null:pe(Ie,{image:r,id:r.annotationId},r.id)),e.items.map((r,a)=>r.type!=="Text"||!s[r.annotationId]?null:pe(at,{strategy:{type:"textual-content",items:[r]}},a)),e.items.map((r,a)=>r.type!=="Video"||!r.target.spatial?null:pe(Do,{target:r.target.spatial,children:pe("video",{ref:i(r.annotationId),src:r.url,style:{height:"100%",width:"100%",opacity:s[r.annotationId]?1:0}})},a)),e.items.map((r,a)=>r.type!=="Sound"?null:pe(Do,{children:pe("audio",{ref:i(r.annotationId),src:r.url})},a)),e.highlights.map(({annotation:r})=>s[r.id]?pe(Re,{id:r.id,ignoreTargetId:!0,style:{outline:"3px solid red"},className:"image-service-annotation"},r.id):null)]})}import{jsx as ms}from"react/jsx-runtime";function Fo(){let{strategy:e}=V(),{renderComplexTimelineControls:t}=$();return e.type!=="complex-timeline"?null:ms($o,{strategy:e,children:t?t(e):null})}import{jsx as ps}from"react/jsx-runtime";function st({style:e}){let t=A();return!t||!t.height||!t.width?null:ps("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}import{jsx as fs}from"react/jsx-runtime";function Wo({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=V();return n.type!=="empty"&&!t?null:fs(st,{style:e})}import{createContext as gs,useContext as hs}from"react";var fe=gs(null);function lt(){return hs(fe)}import{Fragment as vs,jsx as ys,jsxs as Ss}from"react/jsx-runtime";function Uo({isStatic:e=!1,enableSizes:t=!1,enableAnnotations:n=!0,onClickPaintingAnnotation:o,children:s}){let{strategy:i}=V(),{renderViewerControls:r,viewControlsDeps:a}=$(),l=A(),u=lt(),f=Pe({maxWidth:256,maxHeight:256});return D(u&&i.type==="images"&&r?"overlay":"none",`canvas-portal-controls-${l?.id}`,fe.Provider,r?{value:u||null,children:r(i)}:{},[l,u,i,...a||[]]),i.type!=="images"?null:Ss(vs,{children:[i.images.map((c,m)=>ys(Ie,{isStatic:e,image:c,id:c.id,thumbnail:m===0?f:void 0,selector:c.selector,enableSizes:t,enableAnnotations:n,onClick:o?h=>{o(c.annotationId,c,h)}:void 0},c.id+m)),s]})}import{Fragment as Cs,jsx as xs,jsxs as bs}from"react/jsx-runtime";function _o({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=V(),{renderViewerControls:o,viewControlsDeps:s}=$(),i=lt(),r=A();return D(i&&n.type==="textual-content"&&o?"overlay":"none",`canvas-portal-controls-${r?.id}`,fe.Provider,o?{value:i||null,children:o(n)}:{},[r,i,n,...s||[]]),n.type!=="textual-content"?null:bs(Cs,{children:[xs(at,{strategy:n,onClickPaintingAnnotation:e}),t]})}import{jsx as jo,jsxs as Rs}from"react/jsx-runtime";function Qt({element:e,media:t,startTime:n,playPause:o,poster:s}){let i="div",r=n?`${t.url}#t=${n}`:t.url;return Rs(i,{className:"video-container",part:"video-container",onClick:o,children:[jo("style",{children:`
|
|
19
19
|
.video-container {
|
|
20
20
|
position: absolute;
|
|
21
21
|
top: 0;
|