react-iiif-vault 1.5.4 → 1.5.5
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
CHANGED
|
@@ -90,7 +90,7 @@ No matching component was found for:
|
|
|
90
90
|
justify-content: center;
|
|
91
91
|
pointer-events: visible;
|
|
92
92
|
}
|
|
93
|
-
`}),(0,wr.jsx)("div",{className:"model-container",children:(0,wr.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function _c({model:e,name:t}){return Ft("overlay",`model-${t}`,wm,{model:e},[e]),null}var Vw=R(B(),1);function bm(){let{strategy:e}=pt();return e.type!=="3d-model"?null:(0,Vw.jsx)(_c,{model:e.model})}var co=R(B(),1);function Cm({children:e}){let{strategy:t}=pt(),[i]=Vf();return t.type!=="images"?null:(0,co.jsxs)(co.Fragment,{children:[i?(0,co.jsx)(Sa,{page:i}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,co.jsx)(Sa,{page:n},n.id)):null,e]})}var br=R(q(),1),Mc=R(B(),1),Uw=(0,br.createContext)(null),Ww=(0,br.createContext)(null),Hw=(0,br.createContext)(null);function QI(){let e=(0,br.useContext)(Uw);if(!e)throw new Error("Ctx not found");return e}function $I(){let e=(0,br.useContext)(Ww);if(!e)throw new Error("Ctx not found");return e}function GI(){let e=(0,br.useContext)(Hw);if(!e)throw new Error("Ctx not found");return e}function Oa({actions:e,state:t,children:i,currentTime:n,progress:r,element:a}){return
|
|
93
|
+
`}),(0,wr.jsx)("div",{className:"model-container",children:(0,wr.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function _c({model:e,name:t}){return Ft("overlay",`model-${t}`,wm,{model:e},[e]),null}var Vw=R(B(),1);function bm(){let{strategy:e}=pt();return e.type!=="3d-model"?null:(0,Vw.jsx)(_c,{model:e.model})}var co=R(B(),1);function Cm({children:e}){let{strategy:t}=pt(),[i]=Vf();return t.type!=="images"?null:(0,co.jsxs)(co.Fragment,{children:[i?(0,co.jsx)(Sa,{page:i}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(n=>(0,co.jsx)(Sa,{page:n},n.id)):null,e]})}var br=R(q(),1),Mc=R(B(),1),Uw=(0,br.createContext)(null),Ww=(0,br.createContext)(null),Hw=(0,br.createContext)(null);function QI(){let e=(0,br.useContext)(Uw);if(!e)throw new Error("Ctx not found");return e}function $I(){let e=(0,br.useContext)(Ww);if(!e)throw new Error("Ctx not found");return e}function GI(){let e=(0,br.useContext)(Hw);if(!e)throw new Error("Ctx not found");return e}function Oa({actions:e,state:t,children:i,currentTime:n,progress:r,element:a}){return(0,Mc.jsx)(Hw.Provider,{value:{currentTime:n,progress:r,element:a},children:(0,Mc.jsx)(Ww.Provider,{value:e,children:(0,Mc.jsx)(Uw.Provider,{value:t,children:i})})})}var qw=R(q(),1);function La(){let e=vt(),t=Ce();return(0,qw.useMemo)(()=>{if(!e||!t||!e.start)return null;let i=Nt(e.start);return!i||i.source.id!==t.id||!i||!i.selector||i.selector.type!=="TemporalSelector"?null:i.selector.temporal},[e,t])}var Oc=R(B(),1);function Pm({media:e,startTime:t,children:i}){let[{element:n,currentTime:r,progress:a},l,c]=ao({duration:e.duration}),p=t?`${e.url}#t=${t}`:e.url;return(0,Oc.jsxs)(Oa,{state:l,actions:c,currentTime:r,progress:a,element:n,children:[(0,Oc.jsx)("audio",{ref:n,src:p}),i]},e.url)}function kc({media:e,mediaControlsDeps:t,audioCopmonent:i=Pm,children:n}){let r=La();return Ft("portal","audio",i,{media:e,startTime:r?r.startTime:null,children:n},[e,r,...t||[]]),null}var Em=R(B(),1);function ho({x:e=0,y:t=0}){let i=Ce(),n=Qn({maxWidth:256,maxHeight:256});return!i||!n||n.type!=="fixed"?null:(0,Em.jsx)("world-object",{height:i.height,width:i.width,x:e,y:t,children:(0,Em.jsx)("world-image",{uri:n.id,target:{x:0,y:0,width:i.width,height:i.height},display:n.width&&n.height?{width:n.width,height:n.height}:void 0,crop:void 0})})}var po=R(B(),1);function Am({as:e}){let{strategy:t}=pt(),{renderMediaControls:i,mediaControlsDeps:n}=ni();return t.type!=="media"||t.media.type!=="Sound"?null:(0,po.jsx)(po.Fragment,{children:(0,po.jsxs)(kc,{media:t.media,mediaControlsDeps:n,audioCopmonent:e,children:[(0,po.jsx)(ho,{}),i?i(t):null]},t.media.url)})}var $n=R(B(),1);function Im(){let{strategy:e}=pt(),{renderViewerControls:t,viewControlsDeps:i}=ni(),n=Ce(),r=n?.accompanyingCanvas,a=n?.placeholderCanvas;return(0,$n.jsxs)($n.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&r?(0,$n.jsx)(Vi,{canvas:r.id,children:(0,$n.jsx)(fo,{renderViewerControls:t,viewControlsDeps:i})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!r?(0,$n.jsx)(Vi,{canvas:a.id,children:(0,$n.jsx)(fo,{renderViewerControls:t,viewControlsDeps:i})}):null]})}var za=R(B(),1);function Rm({element:e,media:t,startTime:i,playPause:n,poster:r}){let a="div",l=i?`${t.url}#t=${i}`:t.url;return(0,za.jsxs)(a,{className:"video-container",part:"video-container",onClick:n,children:[(0,za.jsx)("style",{children:`
|
|
94
94
|
.video-container {
|
|
95
95
|
position: absolute;
|
|
96
96
|
top: 0;
|
|
@@ -121,7 +121,7 @@ No matching component was found for:
|
|
|
121
121
|
width: 100%;
|
|
122
122
|
object-fit: contain;
|
|
123
123
|
}
|
|
124
|
-
`}),(0,Fa.jsx)("iframe",{className:"video-yt",ref:n,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function $w({media:e,mediaControlsDeps:t,children:i}){let[{element:n,currentTime:r,progress:a},l,c]=ao({duration:e.duration});return Ft("overlay","video-element",YI,{element:n,media:e,playPause:c.playPause}),null}var Fc=R(B(),1);function _m(){let{strategy:e}=pt(),{renderMediaControls:t,mediaControlsDeps:i}=ni();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,Fc.jsxs)($w,{media:e.media,mediaControlsDeps:i,children:[(0,Fc.jsx)(ho,{}),t?t(e):null]})}var gi=R(B(),1);function fo({x:e,y:t,onChoiceChange:i,registerActions:n,defaultChoices:r,isStatic:a,renderViewerControls:l,renderMediaControls:c,renderComplexTimelineControls:p,complexTimelineControlsDeps:m,viewControlsDeps:h,mediaControlsDeps:y,strategies:S,throwOnUnknown:w,backgroundStyle:v,alwaysShowBackground:x,keepCanvasScale:A=!1,enableSizes:C=!1,enableYouTube:I=!0,onClickPaintingAnnotation:E,components:L={},children:z}){return(0,gi.jsxs)(cm,{throwOnUnknown:w,onChoiceChange:i,registerActions:n,strategies:S,defaultChoices:r,mediaControlsDeps:y,renderMediaControls:c,renderViewerControls:l,renderComplexTimelineControls:p,complexTimelineControlsDeps:m,viewControlsDeps:h,children:[(0,gi.jsxs)(dm,{keepCanvasScale:A,x:e,y:t,children:[(0,gi.jsx)(hm,{alwaysShowBackground:x,backgroundStyle:v}),(0,gi.jsx)(ym,{}),(0,gi.jsx)(vm,{}),(0,gi.jsx)(Sm,{isStatic:a,enableSizes:C,onClickPaintingAnnotation:E}),(0,gi.jsx)(Cm,{}),(0,gi.jsx)(bm,{}),(0,gi.jsx)(Am,{as:L.Audio}),(0,gi.jsx)(Tm,{as:L.Video}),I?(0,gi.jsx)(_m,{}):null,z]}),(0,gi.jsx)(Im,{})]})}var Mm=R(B(),1);function Gw(e){let t=Ce();return!t||!t.placeholderCanvas?null:(0,Mm.jsx)(Vi,{canvas:t.placeholderCanvas.id,children:(0,Mm.jsx)(fo,{renderViewerControls:e.renderViewerControls})})}var ri=R(B(),1),XI=(0,Na.forwardRef)(function(t,i){let n=vt(),r=eo(),a=ha(),{ViewerControls:l,MediaControls:c,ComplexTimelineControls:p}=t.components||{};if((0,Na.useImperativeHandle)(i,()=>a,[a]),!n)return(0,ri.jsx)("div",{});let m=0;return(0,ri.jsxs)(ri.Fragment,{children:[t.header,(0,ri.jsx)(Bt.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:r.map((h,y)=>{let S=m;return m+=h.width+(t.spacing||0),(0,ri.jsx)(Vi,{canvas:h.id,children:(0,ri.jsx)(Bt.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&l?()=>(0,ri.jsx)(l,{}):void 0,renderMediaControls:y===0&&c?()=>(0,ri.jsx)(c,{}):void 0,renderComplexTimelineControls:y===0&&p?()=>(0,ri.jsx)(p,{}):void 0,x:S,...t.canvasProps||{},children:t.annotations},h.id)},h.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),Bt=(0,Na.forwardRef)(function({children:t,height:i,annotations:n,canvasProps:r,spacing:a,header:l,components:c,mode:p,reuseAtlas:m,renderPreset:h,runtimeOptions:y,...S},w){let v=Zr();return(0,ri.jsx)(Kr,{vault:v,children:(0,ri.jsx)(Lf,{...S,children:(0,ri.jsx)(XI,{ref:w,height:i,components:c,spacing:a,canvasProps:r,annotations:n,header:l,mode:p,reuseAtlas:m,renderPreset:h,runtimeOptions:y,children:t})})})});Bt.RenderImage=xr;Bt.RenderCanvas=fo;Bt.RenderAnnotationPage=Sa;Bt.RenderAnnotation=yc;Bt.Viewer=fc;Bt.CanvasBackground=Cc;Bt.Audio=kc;Bt.Video=Lc;Bt.Model=_c;Bt.AudioHTML=Pm;Bt.VideoHTML=Rm;Bt.ModelHTML=wm;Bt.PlaceholderCanvas=Gw;var Nc=R(q(),1),Ba=R(B(),1),KI=(0,Nc.forwardRef)(function({canvasId:t},i){let n=Ou(),r=Pa(t||n?.id),a=_e();return(0,Nc.useImperativeHandle)(i,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,Ba.jsx)(Ba.Fragment,{children:r.enabledPageIds.map(l=>(0,Ba.jsx)(Bt.RenderAnnotationPage,{page:a.get(l)},l))})});var Xw=R(q(),1);var Yw=R(q(),1);var Pt=R(B(),1);function Da({metadata:e=[],config:t,labelWidth:i=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:a,classes:l={},emptyMessage:c="No metadata available",emptyValueFallback:p="No value",emptyLabelFallback:m="",separator:h,tableFooter:y,tableHeader:S}){let w=(0,Yw.useMemo)(()=>{let x=(t||[]).reduce((C,I)=>[...C,...I.keys],[]),A={};for(let C of e){let I=C&&C.label?Object.values(C.label):[];for(let E of I)if(E&&E.length&&(x.indexOf(`metadata.${E[0]}`)!==-1||x.length===0)&&C){let L=`metadata.${E[0]}`;A[L]=A[L]?A[L]:[],A[L].push(C);break}}return A},[t,e]);return Object.keys(w).length===0&&n?(0,Pt.jsx)(Pt.Fragment,{children:a})||(0,Pt.jsx)("div",{className:l.empty,children:c}):t&&t.length?(0,Pt.jsxs)("table",{className:l.container,children:[S,(0,Pt.jsx)("tbody",{children:t.map((x,A)=>{let C=[];for(let I of x.keys)for(let E of w[I]||[])C.push((0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,defaultText:p,separator:h,children:E.value},A+"__"+I));return C.length===0?null:(0,Pt.jsxs)("tr",{className:l.row,children:[(0,Pt.jsx)("td",{className:l.label,style:i?{minWidth:i}:{},children:(0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,separator:h,defaultText:m,children:x.label})}),(0,Pt.jsx)("td",{className:l.value,children:C})]},A)})}),y]}):(0,Pt.jsxs)("table",{className:l.container,children:[S,(0,Pt.jsx)("tbody",{children:e&&e.length?e.map((x,A)=>x?(0,Pt.jsxs)("tr",{className:l.row,children:[(0,Pt.jsx)("td",{className:l.label,style:i?{minWidth:i}:{},children:(0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,defaultText:p,separator:h,children:x.label})}),(0,Pt.jsx)("td",{className:l.value,children:(0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,defaultText:p,separator:h,children:x.value})})]},A):null):null}),y]})}var Kw=R(B(),1);function ZI(e){let t=vt(),i=Ce(),n=la(),r=(0,Xw.useMemo)(()=>{let a=t?.metadata||[],l=i?.metadata||[],c=n?.metadata||[];return[...a,...l,...c]},[t,i,n]);return(0,Kw.jsx)(Da,{metadata:r,...e})}var Dc=R(q(),1);var Zw=R(q(),1);function Bc(e,t={},i=[]){return(0,Zw.useMemo)(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let r=nu(e);return iu({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:n||"default",prefix:r.prefix,originalPath:r.originalPath})},[...i])}var ja=R(B(),1);function JI(e){let t=typeof e.src=="string"?e.src:e.src.id,i=ka(),[n,r]=(0,Dc.useState)(!1),a;if(t){let c=i.loadServiceSync({id:t});c&&(a=c)}!a&&!n&&i.loadService({id:t}).then(()=>{r(!0)});let l=Bc(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,Dc.useEffect)(()=>()=>{r(!1)},[t]),l?(0,ja.jsx)("img",{src:l,alt:e.alt,className:e.className,style:e.style}):(0,ja.jsx)(Jw,{...e,fetchImageService:!1})}function Jw(e){if(e.fetchImageService)return(0,ja.jsx)(JI,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,i=Bc(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return i?(0,ja.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):null}var e1=R(B(),1);function eR(e){let t=vt();return(0,e1.jsx)(Da,{metadata:t?.metadata||[],...e})}var jc=R(q(),1);var km=R(i1(),1);var yi=R(B(),1),{LazyLoadComponent:tR}=km||km.default;function Om(e){let{size:t,visible:i,classes:n,canvasId:r,figure:a}=e,l=t?.width||128,c=t?.height||t?.width||128,p=(0,yi.jsx)(iR,{...e}),m=(0,yi.jsx)(tR,{threshold:300,style:{height:c,width:l},visibleByDefault:i,children:r?(0,yi.jsx)(Vi,{canvas:r,children:p}):p});return a?(0,yi.jsx)("figure",{className:n?.figure,children:m}):m}function iR({fallback:e,size:t,classes:i,showLabel:n,alt:r,dereference:a=!1}){let l=Ce(),c=t?.width||128,p=t?.height||t?.width||128,m=r||Zf(l?.label)||"",h=Qn({width:c,height:p,allowUnsafe:!0},a);return!h||h.type!=="fixed"?(0,yi.jsx)(yi.Fragment,{children:e}):(0,yi.jsxs)(yi.Fragment,{children:[(0,yi.jsx)("div",{className:i?.imageWrapper,children:(0,yi.jsx)("img",{className:i?.img,src:h.id,alt:m})}),n?(0,yi.jsx)(Ii,{as:"figcaption",className:i?.label,children:l?.label}):null]})}var cs=R(B(),1);function nR({scrollBehaviour:e,dereference:t,flat:i,size:n,classes:r={},showLabel:a,figure:l,fallback:c}){let p=(0,jc.useRef)(null),{items:m,sequence:h,currentSequenceIndex:y,setSequenceIndex:S}=ha(),w={row:r.selected?.row||r.row,item:r.selected?.item||r.item,figure:r.selected?.figure||r.figure,img:r.selected?.img||r.img,label:r.selected?.label||r.label,imageWrapper:r.selected?.imageWrapper||r.imageWrapper};(0,jc.useLayoutEffect)(()=>{if(!p.current)return;let x=p.current.querySelector("[data-selected=true]");x&&x.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[y]);let v=[];for(let x of h){let A=[],C=h[y]===x;for(let I of x){let E=m[I];A.push((0,cs.jsx)("div",{className:C?w.item:r.item,children:(0,cs.jsx)(Om,{classes:C?w:r,canvasId:E.id,size:n,dereference:t,showLabel:a,figure:l,placeholder:(0,cs.jsx)("div",{style:{height:128,width:128}}),fallback:c})},I))}if(i){v.push(A);continue}v.push((0,cs.jsx)("div",{onClick:I=>{S(h.indexOf(x))},"data-selected":C,className:C?w.row:r.row,children:A},x.join("-")))}return(0,cs.jsx)("div",{ref:p,className:r.container,children:v})}var oi=R(B(),1),rR={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function oR({helper:e,showShapes:t,state:i,enabled:n=rR,classNames:r={},icons:a={}}){return(0,oi.jsxs)(oi.Fragment,{children:[t?(0,oi.jsxs)(oi.Fragment,{children:[n.draw&&(0,oi.jsx)("button",{className:r.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!i.lineMode&&!i.selectedStamp&&t&&i.drawMode,children:a.DrawIcon||"Draw"}),n.polygon&&(0,oi.jsx)("button",{className:r.button,"data-active":!i.lineMode&&!i.selectedStamp&&t&&!i.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),n.line&&(0,oi.jsx)("button",{className:r.button,"data-active":i.lineMode&&!i.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),n.lineBox&&(0,oi.jsx)("button",{className:r.button,"data-active":i.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),n.square&&(0,oi.jsx)("button",{className:r.button,"data-active":i.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),n.triangle&&(0,oi.jsx)("button",{className:r.button,"data-active":i.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),n.hexagon&&(0,oi.jsx)("button",{className:r.button,"data-active":i.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,i.showBoundingBox&&n.delete&&(0,oi.jsx)("button",{className:r.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}var Ut=R(q(),1);var n1=R(B(),1),Vc=(0,Ut.createContext)(Vn());Vc.displayName="SelectorHelper";function sR({children:e}){return(0,n1.jsx)(Vc.Provider,{value:(0,Ut.useMemo)(()=>Vn(),[]),children:e})}function aR(){return(0,Ut.useContext)(Vc)}function Lm(e){let t=zm(),[i,n]=(0,Ut.useState)(!1);(0,Ut.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,Ut.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,Ut.useCallback)(l=>{t.emit("click",{selectorId:e,event:l})},[e,t]),a=(0,Ut.useCallback)(l=>{t.emit("hover",{selectorId:e,event:l})},[e,t]);return{controller:t,onClick:r,onHover:a,isHighlighted:i}}function zm(){let e=(0,Ut.useContext)(Vc);return(0,Ut.useMemo)(()=>({withSelector(t){return{on(i,n){let r=a=>{a&&a.selectorId===t&&n(a)};return e.on(i,r),()=>{e.off(i,r)}},emit(i,n){e.emit(i,{...n,selectorId:t})}}},on(t,i){return e.on(t,i),()=>{e.off(t,i)}},emit(t,i){e.emit(t,i)}}),[e])}function lR(){let e=zm();return(0,Ut.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(i,n){return e.emit("event-listener",{selectorId:t,name:i,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:i,callback:n})}},getImagePreview(){return new Promise((i,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:i,reject:n})})},on(i,n){return e.withSelector(t).on(i,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,i,n){return e.emit("event-listener",{selectorId:t,name:i,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:i,callback:n})}},getImagePreview(t){return new Promise((i,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:i,reject:n})})},on(t,i){return e.on(t,i)}}),[e])}var ds=R(q(),1),r1=R(B(),1);function Fm(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var Nm=(0,ds.createContext)(Fm());Nm.displayName="AnnotationStyle";function Bm(){return(0,ds.useContext)(Nm)}function uR({theme:e,children:t}){let i=(0,ds.useMemo)(()=>e||Fm(),[e]);return(0,r1.jsx)(Nm.Provider,{value:i,children:t})}var si=R(q(),1);var hs=R(q(),1);function l1(e){let t=e.points.length,i=!1,n=[];if(t>1){e.iedges=[];let r=e.points[t-1];for(let a=0;a<t;a++){let l=r;if(r=e.points[a],r.length===6){let m=r[2],h=r[3],y=r[4],S=r[5];n.push([a,[r[0]+m,r[1]+h],[r[0]+y,r[1]+S]]),i=!0}let c=[r[0]-l[0],r[1]-l[1]],p=c[0]*c[0]+c[1]*c[1];p>0?e.iedges.push([c[0]/p,c[1]/p]):e.iedges.push([0,0])}}else t===1?e.iedges=[[0,0]]:e.iedges=null;e.isBezier=i,e.bezierLines=n}function cR(e,t){let i=1/0,n=null,r=-1,a=e.points.length;if(a<=1)return[null,i,r];let l=e.points[a-1];for(let c=0;c<a;c++){let p=l;l=e.points[c];let m=p[0]-t[0],h=p[1]-t[1],y=m*m+h*h;y<i&&(n=p,i=y,r=c===0?a-1:c-1)}return[n,i,r]}function qc(e){if(e.points.length>2){let t=Math.min(...e.points.map(a=>a[0])),i=Math.min(...e.points.map(a=>a[1])),n=Math.max(0,...e.points.map(a=>a[0])),r=Math.max(0,...e.points.map(a=>a[1]));e.boundingBox={x:t,y:i,width:n-t,height:r-i};return}e.boundingBox=null}function dR(e){return e[0]*e[0]+e[1]*e[1]}function o1(e,t){let i=1/0,n=null,r=-1,a=[],l=e.points.length;if(l<=1)return[null,i,a,r];if(e.iedges===null&&(l1(e),!e.iedges))return[null,i,a,r];let c=e.points[l-1];for(let p=0;p<l;p++){let m=c;c=e.points[p];let h=(t[0]-m[0])*e.iedges[p][0]+(t[1]-m[1])*e.iedges[p][1],y;h<=0?y=m:h<1?y=[(1-h)*m[0]+h*c[0],(1-h)*m[1]+h*c[1]]:y=c;let S=dR([y[0]-t[0],y[1]-t[1]]);S<i&&(n=y,i=S,a=[m,c],r=p===0?l-1:p-1)}return[n,i,a,r]}var u1={type:"move-bounding-box",label:"Move bounding box",isValid(e,t,i){let n=t.polygon.points.length,r=n===t.selectedPoints.length,a=t.polygon.boundingBox;if(n<1||!r||!a)return!1;let l=e[0],c=l[0],p=l[1];return c>=a.x&&c<=a.x+a.width&&p>=a.y&&p<=a.y+a.height},transition(e,t,i){let n=t.transitionOrigin,r=t.polygon.boundingBox,a=e[0],l=a[0]-n[0],c=a[1]-n[1];t.transitionPoints=t.polygon.points.map(p=>p.length===6?[p[0]+l,p[1]+c,p[2],p[3],p[4],p[5]]:[p[0]+l,p[1]+c]),r&&(t.transitionBoundingBox={x:r.x+l,y:r.y+c,width:r.width,height:r.height})},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}},c1={type:"move-shape",label:"Move shape",isValid(e,t,i){return i.Shift?!1:t.slowState.pointerInsideShape&&(!t.isOpen||t.line===null)},transition(e,t,i){u1.transition(e,t,i)},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}};function s1(e,t){return Math.abs(e-t)}function qi(e,t){let i=s1(e[0],t[0]),n=s1(e[1],t[1]);return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}function Dm(e,t){return[e[0]-t[0],e[1]-t[1]]}function hR(e,t){return e[0]*t[0]+e[1]*t[1]}function d1(e){return e[0]*e[0]+e[1]*e[1]}function Uc(e,t){return d1(Dm(e,t))}function h1(e,t){let i,n,r,a;var l=function(v,x,A,C,I){if(C<=A+1)return;let E=A,L=0,z=v*v;i=[x[A],x[C]],n=Dm(i[1],i[0]);let M=d1(n),Q,V,J,U,W;for(let ee=A+1;ee<C;ee++)Q=Dm(x[ee],i[0]),U=hR(Q,n),U<=0?W=Uc(x[ee],i[0]):M<=U?W=Uc(x[ee],i[1]):(J=U/M,V=[i[0][0]+J*n[0],i[0][1]+J*n[1]],W=Uc(x[ee],V)),!(W<=L)&&(E=ee,L=W);L>z&&(I[E]=1,l(v,x,A,E,I),l(v,x,E,C,I))};let c=e.length,p=[],m,h,y,S,w=t*t;for(r=[],a=[],r[0]=e[0],m=h=1,S=0;m<c;m++)Uc(e[m],e[S])<w||(r[h++]=e[m],S=m);for(S<c-1&&(r[h++]=e[c-1]),a[0]=a[h-1]=1,l(t,r,0,h-1,a),m=y=0;m<h;m++)a[m]&&(p[y++]=r[m]);return p}var pR={type:"move-point",label:"Move point",modifiers:{Shift:"Constrain to axis"},isValid(e,t,i){if(i.Alt)return!1;let n=i.proximity,[r,a]=e[0],l=t.polygon.points,c=t.selectedPoints;for(let p=0;p<l.length;p++){let m=l[p],h=m[0]-r,y=m[1]-a;if(h*h+y*y<n*n)return!0}return!1},start(e,t,i){if(t.selectedPoints.length<2){let[n,r,a]=cR(t.polygon,e[0]);return{selectedPoints:[a]}}if(t.slowState.closestPoint&&!t.selectedPoints.includes(t.slowState.closestPoint))return{selectedPoints:[t.slowState.closestPoint]}},transition(e,t,i){let n=t.transitionOrigin,[r,a]=e[0],l=t.polygon.points,c=t.selectedPoints;if(t.slowState.closestPoint){let y=t.slowState.closestPoint;c.indexOf(y)===-1&&(c=[y])}let p=[],m=r-n[0],h=a-n[1];i.Shift&&(Math.abs(m)>Math.abs(h)?h=0:m=0);for(let y=0;y<l.length;y++){let S=c.indexOf(y)!==-1,w=l[y];S?w.length===6?p.push([w[0]+m,w[1]+h,w[2],w[3],w[4],w[5]]):p.push([w[0]+m,w[1]+h]):p.push(w)}t.transitionPoints=p},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}},a1=10,fR={type:"select-point",label:"Select point",trigger:{type:"click"},modifiers:{Shift:"Add to selection"},isValid(e,t,i){let n=-1;if(t.selectedPoints.length===1){let c=t.selectedPoints[0];c===0&&(n=t.polygon.points.length-1),c===t.polygon.points.length-1&&(n=0)}let[r,a]=e[0],l=t.polygon.points;for(let c=0;c<l.length;c++){let p=l[c],m=p[0]-r,h=p[1]-a;if(m*m+h*h<a1*a1)return n!==c}return!1},commit(e,t,i){let n=i.Shift?[...t.selectedPoints]:[],[r,a]=e[0],l=t.polygon.points.map((c,p)=>{let m=c[0]-r,h=c[1]-a;return[m*m+h*h,p]}).sort((c,p)=>c[0]-p[0])[0];if(t.line=null,!n.includes(l[1]))n.push(l[1]);else if(i.Shift)return{selectedPoints:n.filter(c=>c!==l[1])};return{selectedPoints:n}}},p1={type:"split-line",label:"Split line",isValid(e,t,i){return i.Meta||t.slowState.lineMode?!1:!!(t.closestLinePoint&&t.closestLineDistance<i.proximity)},transition(e,t,i){let n=t.transitionOrigin,[r,a]=e[0],l=t.polygon.points,c=[],p=r-n[0],m=a-n[1];for(let h=0;h<l.length;h++)if(c.push(l[h]),t.closestLineIndex===h){let y=t.closestLinePoint;c.push([y[0]+p,y[1]+m])}t.transitionPoints=c},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{selectedPoints:[t.closestLineIndex+1],points:n}}},mR={type:"add-open-point",label:"Add point",trigger:{type:"click"},isValid(e,t,i){if(!t.isOpen)return!1;if(t.polygon.points.length===0)return!0;if(t.selectedPoints.length!==1||t.polygon.points.length>=2&&t.slowState.lineMode)return!1;let n=t.selectedPoints[0];return n===0||n===t.polygon.points.length-1},commit(e,t,i){let n=t.line?t.line[1]:e[0],r=t.polygon.points;return r.length===0?{selectedPoints:[0],points:[e[0]]}:(i.Shift,t.selectedPoints[0]===0?{selectedPoints:t.slowState.lineMode?[]:[0],points:[n,...r]}:(t.line=null,{selectedPoints:t.slowState.lineMode?[]:[r.length],points:[...r,n]}))}},f1={type:"close-shape",label:"Close shape",trigger:{type:"click"},isValid(e,t,i){if(!t.isOpen||t.selectedPoints.length!==1||t.polygon.points.length<2||i.Meta)return!1;let n=t.selectedPoints[0];if(n===0){let r=t.polygon.points[t.polygon.points.length-1];return qi(e[0],r)<i.proximity}if(n===t.polygon.points.length-1){let r=t.polygon.points[0];return qi(e[0],r)<i.proximity}return!1},commit(e,t,i){let n=t.selectedPoints[0];if(t.line=null,n===0)return{selectedPoints:[],points:t.polygon.points.slice(0).reverse(),isOpen:!1};if(n===t.polygon.points.length-1)return{selectedPoints:[],isOpen:!1}}},gR={type:"deselect-draw",label:"Deselect draw",trigger:{type:"key",key:"Escape"},isValid(e,t,i){return!0},commit(e,t,i){return{selectedPoints:[]}}},yR={type:"select-shape",label:"Select shape",trigger:{type:"click"},isValid(e,t,i){return c1.isValid(e,t,i)},commit(e,t,i){return{selectedPoints:t.polygon.points.map((n,r)=>r)}}},vR={type:"deselect-bounding-box",label:"Deselect bounding box",trigger:{type:"click"},isValid(e,t,i){return!t.isOpen&&t.selectedPoints.length>2&&t.selectedPoints.length===t.polygon.points.length},commit(e,t,i){return{selectedPoints:[]}}},xR={type:"bounding-box-corners",label:"Drag to resize",modifiers:{Shift:"Maintain aspect ratio",Alt:"Scale from center",Meta:"Rotate"},isValid(e,t,i){if(t.transitionDirection=null,t.transitionRotate=!1,t.isOpen||t.selectedPoints.length!==t.polygon.points.length||!t.polygon.boundingBox)return!1;let n=i.proximity*.5,r=i.proximity*3,a=e[0],l=t.polygon.boundingBox,c=l.x+n,p=l.x+l.width-n*2,m=l.y+n,h=l.y+l.height-n*2;if(a[0]>c&&a[0]<p&&a[1]>m&&a[1]<h)return!1;let y=[l.x+l.width,l.y+l.height],S=[l.x,l.y],w=[l.x+l.width,l.y],v=[l.x,l.y+l.height],x=["ne","nw","se","sw"],A=[qi(e[0],w),qi(e[0],S),qi(e[0],y),qi(e[0],v)],C=Math.min(...A);if(A[0]<r||A[1]<r||A[2]<r||A[3]<r){(C>i.proximity||i.Meta)&&(t.transitionRotate=!0);let I=A.indexOf(Math.min(...A));return t.transitionDirection=I!==-1?x[I]:null,!0}return!1},start(e,t,i){let n=e[0],r=t.polygon.boundingBox,a=[r.x+r.width,r.y+r.height],l=[r.x,r.y],c=[r.x+r.width,r.y],p=[r.x,r.y+r.height],m=["ne","nw","se","sw"],h=[qi(e[0],c),qi(e[0],l),qi(e[0],a),qi(e[0],p)],y=Math.min(...h),S=h.indexOf(y);t.transitionDirection=S!==-1?m[S]:null,y>i.proximity&&(t.transitionRotate=!0)},transition(e,t,i){let n=t.polygon.boundingBox,r=[n.x,n.y],a=t.transitionOrigin||e[0],[l,c]=e[0];if(i.Meta||t.transitionRotate){r=[n.x+n.width/2,n.y+n.height/2];let v=Math.atan2(a[1]-r[1],a[0]-r[0]),x=Math.atan2(c-r[1],l-r[0]),A=i.Shift,C=Math.PI/(i.Alt?4:12),I=x-v;A&&(I=Math.round(I/C)*C);let E=Math.cos(I),L=Math.sin(I),z=[];for(let M of t.polygon.points){let Q=M[0]-r[0],V=M[1]-r[1],J=Q*E-V*L,U=Q*L+V*E,W=J+r[0],ee=U+r[1];if(M.length===6){z.push([W,ee,M[2],M[3],M[4],M[5]]);continue}z.push([W,ee])}t.transitionPoints=z,qc({points:z,iedges:null,boundingBox:null,isBezier:!1,bezierLines:[]}),t.transitionBoundingBox=t.polygon.boundingBox?{...t.polygon.boundingBox,rotation:I}:null;return}let p=0,m=0;switch(t.transitionDirection){case"se":{r=[n.x,n.y],p=l-a[0],m=c-a[1];break}case"sw":{r=[n.x+n.width,n.y],p=a[0]-l,m=c-a[1];break}case"ne":{r=[n.x,n.y+n.height],p=l-a[0],m=a[1]-c;break}case"nw":{r=[n.x+n.width,n.y+n.height],p=a[0]-l,m=a[1]-c;break}}if(i.Alt&&(r=[n.x+n.width/2,n.y+n.height/2],p*=2,m*=2),i.Shift){let v=n.width/n.height;Math.abs(n.width/p)>Math.abs(n.height/m)?m=p/v:p=m*v}let h=(n.width+p)/n.width,y=(n.height+m)/n.height,S=[];for(let v of t.polygon.points){let x=v[0]-r[0],A=v[1]-r[1],C=x*h,I=A*y,E=C+r[0],L=I+r[1];if(v.length===6){S.push([E,L,v[2],v[3],v[4],v[5]]);continue}S.push([E,L])}t.transitionPoints=S;let w={points:S,iedges:null,boundingBox:null,bezierLines:[],isBezier:!1};qc(w),t.transitionBoundingBox=w.boundingBox},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,t.transitionRotate=!1,{points:n}}},SR={type:"cut-line",label:"Add new point",trigger:{type:"click"},modifiers:{Shift:"Cut line"},isValid(e,t,i){return p1.isValid(e,t,i)},commit(e,t,i){if(i.Shift&&!t.isOpen){let a=t.polygon.points,l=[],c=[],p=!1;for(let m=0;m<a.length;m++)p?c.push(a[m]):l.push(a[m]),t.closestLineIndex===m&&(p=!0);return{isOpen:!0,points:[...c,...l]}}let n=t.polygon.points,r=[];for(let a=0;a<n.length;a++)if(r.push(n[a]),t.closestLineIndex===a){let l=t.closestLinePoint;r.push(l)}return{points:r}}},wR={type:"select-multiple-points",label:"Drag to select multiple points",isValid(e,t,i){return t.slowState.lineMode&&t.polygon.points.length>=2?!0:!t.line},transition(e,t,i){if(!t.transitionOrigin)return;let n=t.transitionOrigin[0],r=t.transitionOrigin[1],a=e[0][0],l=e[0][1],c=Math.min(n,a),p=Math.min(r,l),m=Math.abs(n-a),h=Math.abs(r-l);t.selectionBox={x:c,y:p,width:m,height:h}},commit(e,t,i){if(t.selectionBox){let n=[];i.Shift&&n.push(...t.selectedPoints);for(let r=0;r<t.polygon.points.length;r++){let a=t.polygon.points[r];a[0]>=t.selectionBox.x&&a[0]<=t.selectionBox.x+t.selectionBox.width&&a[1]>=t.selectionBox.y&&a[1]<=t.selectionBox.y+t.selectionBox.height&&n.push(r)}return{selectedPoints:n}}}},bR={type:"deselect-points",label:"Deselect points",trigger:{type:"click"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){return{selectedPoints:[]}}},Qc=4,CR={type:"nudge-right",label:"Nudge right",trigger:{type:"key",key:"ArrowRight"},modifiers:{Shift:"Nudge right more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>a.includes(c)?[l[0]+(i.Shift?Qc*n:1),l[1]]:l)}}},PR={type:"nudge-left",label:"Nudge left",trigger:{type:"key",key:"ArrowLeft"},modifiers:{Shift:"Nudge left more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>a.includes(c)?[Math.max(0,l[0]-(i.Shift?Qc*n:1)),l[1]]:l)}}},ER={type:"nudge-up",label:"Nudge up",trigger:{type:"key",key:"ArrowUp"},modifiers:{Shift:"Nudge up more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>{if(a.includes(c)){let p=l[0],m=Math.max(0,l[1]-(i.Shift?Qc*n:1));return l.length===6?[p,m,l[2],l[3],l[4],l[5]]:[p,m]}return l})}}},AR={type:"nudge-down",label:"Nudge down",trigger:{type:"key",key:"ArrowDown"},modifiers:{Shift:"Nudge down more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>{let p=l[0],m=Math.max(0,l[1]-(i.Shift?Qc*n:1));return a.includes(c)?l.length===6?[p,m,l[2],l[3],l[4],l[5]]:[p,m]:l})}}},IR={type:"delete-point",label:"Delete point",trigger:{type:"key",key:"Backspace"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=t.polygon.points.filter((r,a)=>!t.selectedPoints.includes(a));return{isOpen:n.length<3,selectedPoints:[],points:n}}},RR={type:"draw-shape",label:"Draw shape",isValid(e,t,i){let n=i.Alt||t.slowState.drawMode;return!!(t.isOpen&&(t.line||t.polygon.points.length===0)&&n)},start(e,t,i){t.transitionDraw=[]},transition(e,t,i){t.transitionDraw.push(e[0])},commit(e,t,i){let n=h1(t.transitionDraw,t.scale*3);return t.transitionDraw=[],t.selectedPoints[0]===0?{isOpen:!1,points:[...n,...t.polygon.points.slice(0).reverse()]}:{isOpen:!1,points:[...t.polygon.points,...n]}}},TR={type:"stamp-shape",label:"Stamp shape",modifiers:{Shift:"Maintain aspect ratio"},isValid(e,t,i){return t.slowState.selectedStamp!==null},start(e,t,i){let n=e[0];if(n&&t.slowState.selectedStamp){let r=t.slowState.selectedStamp,a=n[0],l=n[1],c=[],p=Math.min(...r.points.map(x=>x[0])),m=Math.min(...r.points.map(x=>x[1])),h=Math.max(...r.points.map(x=>x[0]))-p,y=Math.max(...r.points.map(x=>x[1]))-m,S=h/32;y/32>S&&(S=y/32);let w=[],v=0;for(let x of r.points)w.push(v),c.push([a+(x[0]-p)/S,l+(x[1]-m)/S]),v++;return t.transitionPoints=c,{isOpen:!1,selectedPoints:w,points:c}}},transition(e,t,i){if(!t.transitionOrigin)return;let n=t.polygon.boundingBox,r=[n.x,n.y],a=t.transitionOrigin||e[0],[l,c]=e[0],p=t.transitionOrigin[0],m=t.transitionOrigin[1],h=e[0][0],y=e[0][1],S=h-p-32,w=y-m-32;if(i.Shift){let I=n.width/n.height;Math.abs(n.width/S)>Math.abs(n.height/w)?w=S/I:S=w*I}let v=(n.width+S)/n.width,x=(n.height+w)/n.height,A=[];for(let I of t.polygon.points){let E=I[0]-r[0],L=I[1]-r[1],z=E*v,M=L*x,Q=z+r[0],V=M+r[1];if(I.length===6){A.push([Q,V,I[2],I[3],I[4],I[5]]);continue}A.push([Q,V])}t.transitionPoints=A;let C={points:A,iedges:null,boundingBox:null,bezierLines:[],isBezier:!1};qc(C),t.transitionBoundingBox=C.boundingBox},commit(e,t,i){return{isOpen:!1,points:t.transitionPoints}}},_R={type:"close-shape-line",label:"Close shape line",trigger:{type:"click"},isValid(e,t,i){return!t.isOpen||t.polygon.points.length<3||!t.closestLinePoint||t.closestLineDistance>=i.proximity?!1:(t.closestLineIndex===0||(t.closestLineIndex,t.polygon.points.length-2),!0)},commit(e,t,i){return f1.commit(e,t,i)}},MR={type:"stamp-fixed-size-shape",label:"Stamp fixed size shape",trigger:{type:"click"},isValid(e,t,i){return t.slowState.selectedStamp!==null},commit(e,t,i){let n=e[0],r=t.slowState.selectedStamp;if(!n||!r)return;let a=n[0],l=n[1],c=[],p=Math.min(...r.points.map(x=>x[0])),m=Math.min(...r.points.map(x=>x[1])),h=Math.max(...r.points.map(x=>x[0]))-p,y=Math.max(...r.points.map(x=>x[1]))-m,S=4*i.proximity,w=h/S;y/S>w&&(w=y/S),a-=h/w/2,l-=y/w/2;let v=0;for(let x of r.points)c.push([a+(x[0]-p)/w,l+(x[1]-m)/w]),v++;return{isOpen:!1,points:c}}},kR={type:"move-line",label:"Move line",isValid(e,t,i){return t.slowState.lineMode?!!(t.closestLinePoint&&t.closestLineDistance<i.proximity):!1},transition(e,t){let i=t.transitionOrigin,n=t.polygon.boundingBox,r=e[0],a=r[0]-i[0],l=r[1]-i[1];t.transitionPoints=t.polygon.points.map(c=>c.length===6?[c[0]+a,c[1]+l,c[2],c[3],c[4],c[5]]:[c[0]+a,c[1]+l])},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}},OR={type:"close-line-box",label:"Close Line Box",trigger:{type:"click"},isValid(e,t,i){return t.slowState.lineBoxMode===!0&&t.polygon.points.length===2&&t.lineBox!==null},commit(e,t,i){return t.lineBox?{isOpen:!1,points:t.lineBox}:{}}};function m1(e={}){let t=e.proximityThreshold||10,i=e.closestLinePointFill||{selected:"#fff",unselected:"rgba(255, 255, 255, .5)"},n=e.closestLinePointStroke||{selected:"#000",unselected:"rgba(0, 0, 0, .5)"};function r(v,x,A){v&&x.transitionBoundingBox&&A.transitioning&&(v.setAttribute("x",""+x.transitionBoundingBox.x),v.setAttribute("y",""+x.transitionBoundingBox.y),v.setAttribute("width",""+x.transitionBoundingBox.width),v.setAttribute("height",""+x.transitionBoundingBox.height))}function a(v,x,A){v&&x.polygon.boundingBox&&A.showBoundingBox&&(v.setAttribute("x",""+x.polygon.boundingBox.x),v.setAttribute("y",""+x.polygon.boundingBox.y),v.setAttribute("width",""+x.polygon.boundingBox.width),v.setAttribute("height",""+x.polygon.boundingBox.height))}function l(v,x,A){if(v&&x.polygon.boundingBox&&A.showBoundingBox){let C=x.transitionBoundingBox||x.polygon.boundingBox;C.rotation?(v.style.transformOrigin=`${C.x+C.width/2}px ${C.y+C.height/2}px`,v.style.transform=`rotate(${Math.round(100*C.rotation*(180/Math.PI))/100}deg)`):v.style.transform="",v.setAttribute("points",[[C.x,C.y],[C.x+C.width,C.y],[C.x+C.width,C.y+C.height],[C.x,C.y+C.height]].map(I=>I.join(",")).join(" "))}}function c(v,x,A){v&&x.transitionPoints&&A.transitioning&&v.setAttribute("points",x.transitionPoints.map(C=>C.join(",")).join(" "))}function p(v,x,A){v&&x.closestLinePoint&&A.hasClosestLine&&(v.setAttribute("cx",""+x.closestLinePoint[0]),v.setAttribute("cy",""+x.closestLinePoint[1]),v.setAttribute("fill",x.closestLineDistance<t?i.selected:i.unselected),v.setAttribute("stroke",x.closestLineDistance<t?n.selected:n.unselected))}function m(v,x,A){v&&x.closestLinePoint&&A.hasClosestLine&&v.setAttribute("transform",`translate(${x.closestLinePoint[0]}, ${x.closestLinePoint[1]})`)}function h(v,x,A){v&&x.selectionBox&&A.transitionIntentType==="select-multiple-points"&&(v.setAttribute("x",""+x.selectionBox.x),v.setAttribute("y",""+x.selectionBox.y),v.setAttribute("width",""+x.selectionBox.width),v.setAttribute("height",""+x.selectionBox.height))}function y(v,x,A){if(v&&x.pointer&&x.selectedPoints.length)if(A.actionIntentType==="close-shape"||A.actionIntentType==="close-shape-line"){let C=x.polygon.points[0],I=x.polygon.points[x.polygon.points.length-1];C&&I&&v.setAttribute("points",`${C.join(",")} ${I.join(",")}`)}else if(x.line)v.setAttribute("points",`${x.line[0].join(",")} ${x.line[1].join(",")}`);else{let C=x.polygon.points[x.selectedPoints[0]];C&&C.length&&v.setAttribute("points",`${x.pointer[0]},${x.pointer[1]} ${C.join(",")}`)}}function S(v,x,A,C=3){v&&x.transitionDraw.length&&v.setAttribute("points",h1(x.transitionDraw,C*3).map(I=>I.join(",")).join(" "))}function w(v,x){v&&x.lineBox&&v.setAttribute("points",x.lineBox.map(A=>A.join(",")).join(" "))}return{updateTransitionBoundingBox:r,updateClosestLinePointTransform:m,updateBoundingBoxPolygon:l,updateBoundingBox:a,updateTransitionShape:c,updateClosestLinePoint:p,updateSelectBox:h,updatePointLine:y,updateDrawPreview:S,updateLineBox:w}}var LR=typeof window<"u"?window.requestAnimationFrame:e=>setTimeout(e,16),zR=typeof window<"u"?window.cancelAnimationFrame:e=>clearTimeout(e),Vm=[TR,xR,pR,kR,p1,c1,u1,RR,wR],FR=Vm.length,jm=[OR,MR,f1,fR,_R,SR,mR,yR,vR,bR],Hc=[gR,CR,PR,ER,AR,IR],Va={};Vm.forEach(e=>{Va[e.type]=e});jm.forEach(e=>{Va[e.type]=e});Hc.forEach(e=>{Va[e.type]=e});var Wc=20;function g1(e,t){let i={shapeId:e?.id||null,noShape:e===null,transitioning:!1,actionIntentType:null,transitionIntentType:null,selectedPoints:[],hasClosestLine:!1,modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:Wc},showBoundingBox:!1,currentModifiers:{},validIntentKeys:{},pointerInsideShape:!1,closestPoint:null,transitionModifiers:null,selectedStamp:null,lineMode:!1,lineBoxMode:!1,drawMode:!1,bezierLines:[]},n={isOpen:e?e.open:!1,polygon:{points:e?.points||[],iedges:null,boundingBox:null,isBezier:null,bezierLines:[]},scale:1,selectedPoints:[],pointer:null,line:null,lineBox:null,transitionPoints:null,transitionOrigin:null,transitionBoundingBox:null,closestLinePoint:null,closestLineDistance:0,closestLineIndex:-1,transitionRotate:!1,transitionDirection:null,transitionBezierLine:null,selectionBox:null,slowState:i,transitionDraw:[]},r={startTime:0,time:0,shouldUpdate:!1,nextSlowState:null,renderFunc:()=>{},setStateFunc:()=>{},animationFrame:0,actionIntent:null,transitionIntent:null,undoStack:[],undoStackPointer:-1},a={isPressed:!1,isClicking:!1,lastPress:null,pressTimeout:0,noTransition:!1};function l(N){l1(N),N.isBezier&&c({bezierLines:N.bezierLines}),qc(N),r.shouldUpdate=!0}l(n.polygon);function c(N){let G=Object.keys(N);if(G.length===0)return;let de=r.nextSlowState||n.slowState,ye=!1;if(G.length===1&&G[0]==="validIntentKeys"&&de.validIntentKeys){let ge=Object.keys(de.validIntentKeys),Ve=Object.keys(N.validIntentKeys||{});if(ge.length===Ve.length){for(let ze of ge)de.validIntentKeys[ze]!==N.validIntentKeys[ze]&&(ye=!0);if(!ye)return}}if(!(G.length===1&&G.includes("hasClosestLine")&&N.hasClosestLine===de.hasClosestLine)){if(r.nextSlowState){r.nextSlowState={...r.nextSlowState,...N};return}r.nextSlowState={...n.slowState,...N}}}function p(N,G=!1){r.time+=N,m(),h(),C(),A(),x(),I(),L(),E(),r.renderFunc(n,n.slowState,N),!G&&(r.animationFrame=LR(p))}function m(){if(r.shouldUpdate&&(t({id:n.slowState.shapeId||void 0,open:n.isOpen,points:n.polygon.points}),r.shouldUpdate=!1),r.nextSlowState&&r.nextSlowState!==n.slowState){let N=Object.keys(n.slowState),G={},de=!1;for(let ye of N){let ge=n.slowState[ye],Ve=r.nextSlowState[ye];ge!==Ve?(de=!0,G[ye]=Ve):G[ye]=ge}de&&(n.slowState=G,r.nextSlowState=null,r.setStateFunc(n.slowState))}}function h(){n.slowState.showBoundingBox?(n.slowState.noShape||n.selectedPoints.length===0||n.selectedPoints.length!==n.polygon.points.length)&&c({showBoundingBox:!1}):!n.slowState.noShape&&n.polygon.points.length&&n.selectedPoints.length===n.polygon.points.length&&c({showBoundingBox:!0})}function y(N){n.selectedPoints=N.selectedPoints,c({selectedPoints:N.selectedPoints}),n.polygon.points=N.points,n.polygon.boundingBox=null,n.polygon.iedges=null,n.polygon.isBezier=null,l(n.polygon),c({closestPoint:null}),(N.isOpen===!0||N.isOpen===!1)&&(n.isOpen=N.isOpen,r.shouldUpdate=!0)}function S(){if(r.undoStackPointer===-1)return;r.undoStackPointer--;let N=r.undoStack[r.undoStackPointer];y(N)}function w(){if(r.undoStackPointer===r.undoStack.length-1)return;r.undoStackPointer++;let N=r.undoStack[r.undoStackPointer];y(N)}function v(N){r.undoStackPointer++,r.undoStack[r.undoStackPointer]=N,r.undoStack.length>15&&(r.undoStack.shift(),r.undoStackPointer--)}function x(){if(!n.pointer||n.slowState.noShape){c({pointerInsideShape:!1});return}let[N,G]=n.pointer,de=n.polygon.points,ye=n.polygon.boundingBox;if(!ye){c({pointerInsideShape:!1});return}if(N<ye.x||N>ye.x+ye.width||G<ye.y||G>ye.height+ye.y){c({pointerInsideShape:!1});return}let ge=!1;for(let Ve=0,ze=de.length-1;Ve<de.length;ze=Ve++)de[Ve][1]>G!=de[ze][1]>G&&N<(de[ze][0]-de[Ve][0])*(G-de[Ve][1])/(de[ze][1]-de[Ve][1])+de[Ve][0]&&(ge=!ge);c({pointerInsideShape:ge})}function A(){if(n.slowState.noShape||!n.pointer||n.slowState.transitioning||!n.polygon.points||n.polygon.points.length===0)return;let[N,G]=n.pointer,de=n.polygon.points.map((ye,ge)=>{let Ve=ye[0]-N,ze=ye[1]-G;return[Ve*Ve+ze*ze,ge]}).sort((ye,ge)=>ye[0]-ge[0]);de.length&&c({closestPoint:de[0][1]})}function C(){if(!n.pointer||n.slowState.transitioning)return;if(n.slowState.noShape){n.closestLineIndex=-1,n.closestLinePoint=null,n.closestLineDistance=0;return}let[N,G,de,ye]=o1(n.polygon,n.pointer),ge=pe()*pe();G<ge&&(!n.isOpen||n.slowState.lineMode||n.polygon.points.length-1!==ye)?(n.closestLinePoint=N,n.closestLineDistance=Math.sqrt(G),n.closestLineIndex=ye,c({hasClosestLine:!0})):(n.closestLinePoint=null,n.closestLineDistance=0,n.closestLineIndex=-1,c({hasClosestLine:!1}))}function I(){if(!n.pointer||n.slowState.transitioning||n.slowState.noShape)return;let N=!1;for(let ye=0;ye<FR;ye++){let ge=Vm[ye];if(ge.isValid(a.isPressed?[a.lastPress]:[n.pointer],n,z())){if(r.transitionIntent===ge){N=!0;break}c({transitionIntentType:ge.type}),r.transitionIntent=ge,N=!0;break}}N||r.transitionIntent&&(r.transitionIntent=null,c({transitionIntentType:null}));let G=!1;for(let ye=0;ye<jm.length;ye++){let ge=jm[ye];if(Q(ge)){if(r.actionIntent===ge){G=!0;break}c({actionIntentType:ge.type}),r.actionIntent=ge,G=!0;break}}G||r.actionIntent&&(r.actionIntent=null,c({actionIntentType:null}));let de={};for(let ye=0;ye<Hc.length;ye++){let ge=Hc[ye];ge.trigger.type==="key"&&Q(ge)&&(de[ge.trigger.key]=ge.label)}c({validIntentKeys:de})}function E(){let N=n.pointer;if(n.lineBox=null,!N||J()||n.polygon.points.length!==2)return;let[G,de]=N,[ye,ge]=n.polygon.points[0],[Ve,ze]=n.polygon.points[1],[Pe,ne,he,Oe]=o1(n.polygon,N);if(!Pe)return;let ot=G-Pe[0],Ri=de-Pe[1],Dt=[ye,ge],Wt=[Ve,ze],ps=[Wt[0]+ot,Wt[1]+Ri],Ti=[Dt[0]+ot,Dt[1]+Ri];n.lineBox=[Dt,Wt,ps,Ti]}function L(){let N=n.pointer;if(!N||!J()||n.slowState.noShape)return;let G=n.selectedPoints[0];if(n.line=[n.polygon.points[G],N],n.slowState.modifiers.Shift){let de=0;if(n.polygon.points.length>1){let ot=n.selectedPoints[0];ot===0?de=Math.atan2(n.polygon.points[1][1]-n.polygon.points[0][1],n.polygon.points[1][0]-n.polygon.points[0][0]):de=Math.atan2(n.polygon.points[ot-1][1]-n.polygon.points[ot][1],n.polygon.points[ot-1][0]-n.polygon.points[ot][0])}let ye=N[0]-n.polygon.points[G][0],ge=N[1]-n.polygon.points[G][1],Ve=Math.atan2(ge,ye),ze=Math.PI/4,Pe=Math.round((Ve-de)/ze)*ze+de,ne=qi(n.polygon.points[G],N),he=Math.cos(Pe)*ne+n.polygon.points[G][0],Oe=Math.sin(Pe)*ne+n.polygon.points[G][1];n.line[1]=[he,Oe]}}function z(){return n.slowState.modifiers}function M(N){let G=N.commit([a.lastPress],n,z());G&&(G.selectedPoints&&(n.selectedPoints=G.selectedPoints,c({selectedPoints:G.selectedPoints})),G.points&&(n.polygon.points=G.points,n.polygon.boundingBox=null,n.polygon.iedges=null,n.polygon.isBezier=null,n.transitionBoundingBox=null,l(n.polygon),c({closestPoint:null,selectedStamp:null})),(G.isOpen===!0||G.isOpen===!1)&&(n.isOpen=G.isOpen,r.shouldUpdate=!0),v({isOpen:n.isOpen,points:n.polygon.points,selectedPoints:n.selectedPoints})),c({transitionModifiers:null})}function Q(N){return N.isValid(n.pointer?[n.pointer]:[],n,z())}function V(N){N==="Delete"&&(N="Backspace");for(let G of Hc)if(!(G.trigger.type!=="key"||G.trigger.key!==N)&&Q(G))return M(G),!0}function J(){let N=n.polygon.points,G=n.pointer;if(!n.isOpen||!N.length||n.selectedPoints.length!==1||!G)return!1;let de=n.selectedPoints[0],ye=de===0,ge=de===N.length-1;return ye||ge}let U={reset(){c({modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:Wc}})},getForType(N){let G={};if(!N)return G;let de=Va[N];return!de||!de.modifiers?G:de.modifiers},set(N){N!=="Shift"&&N!=="Alt"&&N!=="Meta"||c({modifiers:{...r.nextSlowState?.modifiers||n.slowState.modifiers,[N]:!0}})},unset(N){N!=="Shift"&&N!=="Alt"&&N!=="Meta"||c({modifiers:{...r.nextSlowState?.modifiers||n.slowState.modifiers,[N]:!1}})}},W={set(N){c({selectedStamp:N})},clear(){c({selectedStamp:null})},square(){c({selectedStamp:{id:"square",open:!1,points:[[0,0],[0,100],[100,100],[100,0]]}})},triangle(){c({selectedStamp:{id:"triangle",open:!1,points:[[50,0],[0,100],[100,100]]}})},pentagon(){c({selectedStamp:{id:"pentagon",open:!1,points:[[0,0],[0,100],[100,100],[100,0],[50,-50]]}})},hexagon(){c({selectedStamp:{id:"hexagon",open:!1,points:[[0,0],[0,100],[50,150],[100,100],[100,0],[50,-50]]}})}},ee={down(N){return N=="Shift"||N=="Alt"||N=="Meta"?(U.set(N),!0):N==="Control"?(U.set("Meta"),!0):N==="z"&&n.slowState.modifiers.Meta?(n.slowState.modifiers.Shift?w():S(),!0):V(N)},up(N){if(N==="Control"){U.unset("Meta");return}N!=="Shift"&&N!=="Alt"&&N!=="Meta"||U.unset(N)}};function Me(N){n.scale=N,c({modifiers:{...r.nextSlowState?.modifiers||n.slowState.modifiers,proximity:N*Wc}})}function pe(){return Wc*n.scale}let Re={set:N=>{r.renderFunc=N},start:(N,G)=>{r.startTime=performance.now(),r.time=0,N&&(r.renderFunc=N),G&&(G(n.slowState),r.setStateFunc=G),p(0)},stop:()=>{r.animationFrame&&(zR(r.animationFrame),r.animationFrame=0)},step:(N=16)=>{p(N)}};function ke(N){let G=N[0];if(!(!G||!G[0]&&G[0]!==0||!G[1]&&G[1]!==0)&&!(Number.isNaN(G[0])||Number.isNaN(G[1]))){if(n.pointer=G||null,n.slowState.transitioning)r.transitionIntent&&r.transitionIntent.transition(N,n,z());else if(a.isPressed&&!a.noTransition&&(!a.isClicking||qi(a.lastPress,n.pointer)>10))if(clearTimeout(a.pressTimeout),a.isClicking=!1,r.transitionIntent){if(n.transitionOrigin=a.lastPress,c({transitioning:!0}),r.transitionIntent.start){let de=r.transitionIntent.start([a.lastPress],n,z());de&&(de.selectedPoints&&(n.selectedPoints=de.selectedPoints,c({selectedPoints:de.selectedPoints})),(de.isOpen===!0||de.isOpen===!1)&&(n.isOpen=de.isOpen,r.shouldUpdate=!0),de.points&&(n.polygon.points=de.points,n.polygon.boundingBox=null,n.polygon.iedges=null,l(n.polygon),c({closestPoint:null})))}c({transitionModifiers:r.transitionIntent.modifiers||null}),r.transitionIntent.transition([a.lastPress],n,z())}else a.noTransition=!0}}function He(){n.pointer=null,n.slowState.transitioning||(a.isPressed=!1,a.isClicking=!1,a.lastPress=null,c({transitionIntentType:null,actionIntentType:null}),r.transitionIntent=null,r.actionIntent=null)}function qe(){a.isClicking=!0,a.isPressed=!0,a.lastPress=n.pointer,a.pressTimeout=setTimeout(()=>{a.isPressed&&(a.isClicking=!1)},250)}function $(){n.slowState.transitioning?(c({transitioning:!1}),r.transitionIntent&&M(r.transitionIntent),r.transitionIntent=null,c({transitionIntentType:null})):a.isClicking&&(r.actionIntent&&M(r.actionIntent),r.actionIntent=null,c({actionIntentType:null})),a.isPressed=!1,a.isClicking=!1,a.lastPress=null,a.noTransition=!1,clearTimeout(a.pressTimeout)}function ve(N){n.polygon.points=N?.points||[],n.polygon.boundingBox=null,n.polygon.iedges=null,n.isOpen=N?.open||!1,l(n.polygon),r.nextSlowState=null,r.undoStack=[],r.undoStackPointer=-1,n.lineBox=null,n.line=null,a.pressTimeout&&clearTimeout(a.pressTimeout),c({noShape:N===null,shapeId:N?.id||null,transitioning:!1,actionIntentType:null,transitionIntentType:null,selectedPoints:[],hasClosestLine:!1,modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:n.slowState.modifiers.proximity},showBoundingBox:!1,currentModifiers:{},validIntentKeys:{},selectedStamp:null,drawMode:!1,closestPoint:null,pointerInsideShape:!1,lineBoxMode:!1,lineMode:!1}),m()}function it(N){if(!N)return"";let G=Va[N];return!G||!G.modifiers?G.label||"":n.slowState.modifiers.Shift&&G.modifiers.Shift?G.modifiers.Shift:n.slowState.modifiers.Alt&&G.modifiers.Alt?G.modifiers.Alt:n.slowState.modifiers.Meta&&G.modifiers.Meta?G.modifiers.Meta:G.label}function Qe(){n.slowState.lineMode?c({lineMode:!1,lineBoxMode:!1,drawMode:!1}):c({lineMode:!0,lineBoxMode:!1,drawMode:!1})}function $e(){n.slowState.lineBoxMode?c({lineMode:!1,lineBoxMode:!1,drawMode:!1}):c({lineBoxMode:!0,lineMode:!0,drawMode:!1})}return{draw:{enable(){c({drawMode:!0,lineMode:!1,lineBoxMode:!1})},disable(){c({drawMode:!1})},toggle(){c({drawMode:!n.slowState.drawMode,lineMode:!1,lineBoxMode:!1})}},state:n,modifiers:U,stamps:W,key:ee,setScale:Me,clock:Re,pointer:ke,blur:He,pointerDown:qe,pointerUp:$,setShape:ve,modes:{toggleLineBoxMode:$e,toggleLineMode:Qe,enableLineMode(){c({lineMode:!0,lineBoxMode:!1,drawMode:!1})},disableLineMode(){c({lineMode:!1,lineBoxMode:!1,drawMode:!1})},enableLineBoxMode(){c({lineMode:!0,lineBoxMode:!0,drawMode:!1})},disableLineBoxMode(){c({lineMode:!1,lineBoxMode:!1,drawMode:!1})}},label:it}}function Um(e,t,i){let[n,r]=(0,hs.useState)({}),a=(0,hs.useMemo)(()=>g1(e,i),[]);return(0,hs.useEffect)(()=>(a.clock.start(t,r),()=>{a.clock.stop()}),[]),{state:n,helper:a}}var tt=R(B(),1),Cr=m1();function Wm(e,t){let{image:i,currentShape:n,onChange:r,hideShapeLines:a}=e,l=(0,si.useRef)(),c=(0,si.useRef)(),p=(0,si.useRef)(),m=(0,si.useRef)(),h=(0,si.useRef)(),y=(0,si.useRef)(),S=(0,si.useRef)(),w=(0,si.useRef)(),[v,x]=(0,si.useState)(null),[A,C]=(0,si.useState)(!1),{helper:I,state:E}=Um(n,(W,ee)=>{Cr.updateTransitionBoundingBox(c.current,W,ee),Cr.updateBoundingBoxPolygon(l.current,W,ee),Cr.updateTransitionShape(y.current,W,ee),Cr.updateClosestLinePointTransform(m.current,W,ee),Cr.updateSelectBox(p.current,W,ee),Cr.updatePointLine(S.current,W,ee),Cr.updateDrawPreview(h.current,W,ee,3),Cr.updateLineBox(w.current,W),x(W.transitionDirection),C(W.transitionRotate)},r);(0,si.useEffect)(()=>{I.setShape(n||null)},t),(0,si.useEffect)(()=>{let W=()=>{I.modifiers.reset()};return document.addEventListener("mouseleave",W),()=>{document.removeEventListener("mouseleave",W)}},[]);let L=(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,tt.jsx)("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),(0,tt.jsx)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,tt.jsx)("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),(0,tt.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,tt.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),z=n?n.open?"polyline":"polygon":null,M=!E.showBoundingBox&&E.closestPoint!==null&&E.actionIntentType==="select-point",Q=E.actionIntentType==="add-open-point",V=E.transitionIntentType==="split-line",J=E.transitioning&&E.selectedStamp&&E.transitionIntentType==="stamp-shape",U=n&&z?(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)(z,{fill:!E.transitioning&&E.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:J?0:2,stroke:a?"transparent":"#000",points:n.points.map(W=>W.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:E.showBoundingBox?void 0:"url(#dot)",markerMid:E.showBoundingBox?void 0:"url(#dot)",markerEnd:E.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),E.lineBoxMode&&E.actionIntentType==="close-line-box"?(0,tt.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:w,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,E.transitionIntentType==="draw-shape"&&E.transitioning?(0,tt.jsx)("polyline",{ref:h,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!E.showBoundingBox&&E.selectedPoints&&E.selectedPoints.length?(0,tt.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:n.points.filter((W,ee)=>E.selectedPoints?.includes(ee)).map(W=>W.join(",")).join(" ")}):null,M&&E.closestPoint!==null&&n.points[E.closestPoint]?(0,tt.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${n.points[E.closestPoint][0]},${n.points[E.closestPoint][1]}`}):null,!E.transitioning&&(E.actionIntentType==="add-open-point"||E.actionIntentType==="close-shape"||E.actionIntentType==="close-shape-line")?(0,tt.jsx)("polyline",{stroke:"#000",ref:S,strokeWidth:E.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,E.hasClosestLine&&(!E.transitionIntentType||E.transitionIntentType==="split-line")?(0,tt.jsx)("g",{ref:m,children:(0,tt.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,E.transitioning?(0,tt.jsx)(z,{ref:y,fill:n.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:n.open?2:0}):null,E.transitioning&&E.transitionIntentType==="select-multiple-points"?(0,tt.jsx)("rect",{ref:p,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,E.showBoundingBox?null:(0,tt.jsx)("g",{name:"controls",children:!1}),E.showBoundingBox&&!J?(0,tt.jsx)("polygon",{ref:l,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:I,state:E,isAddingPoint:Q,isSplitting:V,isStamping:J,isHoveringPoint:M,transitionDirection:v,transitionRotate:A,defs:L,editor:U}}var $c=R(q(),1),y1=R(Ws(),1),vi=R(B(),1),v1=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function Hm(e){let t=e.theme||v1[0],i=Mu(),{image:n}=e,{helper:r,defs:a,editor:l,state:c,transitionDirection:p,isSplitting:m,transitionRotate:h,isHoveringPoint:y,isAddingPoint:S,isStamping:w}=Wm({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),v=E=>{r.pointer([[~~E.atlas.x,~~E.atlas.y]])};(0,$c.useEffect)(()=>{let E=L=>{r.key.up(L.key)};return document.addEventListener("keyup",E),()=>{document.removeEventListener("keyup",E)}},[]),(0,$c.useEffect)(()=>{let E=L=>{r.key.down(L.key)};return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[]),(0,$c.useEffect)(()=>{let E=[];return p&&E.push(`atlas-cursor-${p}`),c.actionIntentType==="cut-line"&&c.modifiers?.Shift&&E.push("atlas-cursor-cut"),(y||c.transitionIntentType==="move-shape"||c.transitionIntentType==="move-point")&&E.push("atlas-cursor-move"),S&&E.push("atlas-cursor-crosshair"),m&&E.push("atlas-cursor-copy"),h&&E.push("atlas-cursor-rotate"),c.transitionIntentType==="draw-shape"&&E.push("atlas-cursor-draw"),i?.canvas&&i.canvas.classList.add(...E),()=>{i?.canvas&&i.canvas.classList.remove(...E)}},[i?.canvas,S,y,m,c.modifiers?.Shift,c.actionIntentType,c.transitionIntentType,p,h]);let x=e.shape&&e.shape?.points.length===0,A=e.renderControls?e.renderControls(r,c,x):null,C=document.getElementById(e.controlsHtmlId||"atlas-controls"),I="shape";return(0,vi.jsx)(vi.Fragment,{children:(0,vi.jsxs)("world-object",{height:n.height,width:n.width,onMouseMove:v,onMouseDown:r.pointerDown,onMouseUp:r.pointerUp,onMouseLeave:r.blur,children:[e.shape?(0,vi.jsxs)(vi.Fragment,{children:[(0,vi.jsx)(I,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:w?{}:t.outer}),(0,vi.jsx)(I,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:w?{}:t.inner})]}):null,(0,vi.jsxs)(Cn,{relative:!0,interactive:!1,children:[(0,vi.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,vi.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[(0,vi.jsx)("defs",{children:a}),l]})}),C?(0,y1.createPortal)(A,C,"controls"):null]})]})})}var qm=R(B(),1);function NR(e){let t=Ce(),i=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:a,isHighlighted:l}=Lm(e.id),c=Bm(),p=l?c.highlighted:c[i||"hidden"]||c.hidden;if(!t)return null;if(n){let m="shape",h=e.polygon,y=h.open;return h?(0,qm.jsx)(m,{id:`shape-${r}`,points:h.points,open:y,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:p}):null}return(0,qm.jsx)(Hm,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Gc=R(q(),1);var Pr=R(B(),1);function BR({src:e,errorFallback:t,interactive:i,skipSizes:n,children:r,renderViewerControls:a,viewControlsDeps:l,fluid:c,x:p,y:m,...h}){let[y,S]=(0,Gc.useState)(),w=t||hc,[v,x]=Ea(),A=(0,Gc.useMemo)(()=>{let I=x[e]?.status,E=v({id:e},{});return E?.height&&E.width&&I!=="loading"?{id:e,width:E.width,height:E.height,service:E,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:E.width,height:E.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:E.width,height:E.height}}}:null},[v,e,x]);if(Ft(y&&a?"overlay":"none",`canvas-portal-controls-${e}`,Ui.Provider,a&&A?{value:y||null,children:a({image:A,images:[A],type:"images"})}:{},[e,A,y,...l||[]]),!A||!A.height||!A.width)return null;let C=c?void 0:h.homePosition?h.homePosition.width/h.homePosition.height:A.width/A.height;return console.log("here",C),(0,Pr.jsx)(No,{resetKeys:[],fallbackRender:I=>(0,Pr.jsx)(w,{...h,...I}),children:(0,Pr.jsx)(fc,{...h,aspectRatio:C,containerProps:{style:{position:"relative"},...h.containerProps||{}},onCreated:I=>{S(I),h.onCreated&&h.onCreated(I)},children:(0,Pr.jsxs)(Ui.Provider,{value:y,children:[(0,Pr.jsx)(xr,{image:A,id:A.id,isStatic:!i,x:p,y:m},A.id),(0,Pr.jsx)(DR,{viewerPreset:y,renderViewerControls:a,image:A,src:e,viewControlsDeps:l}),r]})})})}function DR({viewerPreset:e,renderViewerControls:t,image:i,src:n,viewControlsDeps:r}){return Ft(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,Ui.Provider,t&&i?{value:e||null,children:t({image:i,images:[i],type:"images"})}:{},[n,e,...r||[]]),null}var x1=R(B(),1);function jR({annotation:e,children:t}){return(0,x1.jsx)(ei,{value:{annotation:e},children:t})}var S1=R(B(),1);function VR({annotationPage:e,children:t}){return(0,S1.jsx)(ei,{value:{annotationPage:e},children:t})}var w1=R(B(),1);function UR({collection:e,children:t}){return(0,w1.jsx)(ei,{value:{collection:e},children:t})}function WR(e,t={}){return oo(t)}var Er=R(q(),1);function HR({canvasId:e}={}){let t=Ou(),i=eo(),n=(0,Er.useMemo)(()=>e?[e]:t?[t.id]:i.map(m=>m.id),[e,t,i]),[r,a]=(0,Er.useState)({}),l=pa();(0,Er.useEffect)(()=>{let m=h=>{let y=h.partOf.canvasId;y&&a(S=>({...S,[y]:h.choice}))};return l.on("choice-change",m),()=>{l.off("choice-change",m)}},[]);let c=(0,Er.useMemo)(()=>{let m=[];for(let h of n){let y=r[h];y&&m.push({canvasId:h,choice:y})}return m},[n,r]),p=(0,Er.useMemo)(()=>({makeChoice:(m,h)=>{l.emit("make-choice",{choiceId:m,...h})}}),[l]);return{choices:c,actions:p}}function qR(e,t=!1){}function QR(e){let i=Xt().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return De(r=>{let a=i?r.iiif.entities.Manifest[i]:void 0,l=a?.items||[];if(typeof e>"u")return l;let c=[];for(let p of a?.items||[])n.indexOf(p.id)!==-1&&c.push(p);return c},[n.join("/")])}var b1=R(q(),1);function $R(e,t=[]){let{id:i,selector:n}=e,r=Xt(),a=i||r.collection,l=De(c=>a?c.iiif.entities.Collection[a]:void 0,[a]);return(0,b1.useMemo)(()=>{if(l)return n?n(l):l},[l,n,...t])}var Yc=R(q(),1);function GR(e,t,i,n,r=[]){let a=_e(),l=(0,Yc.useMemo)(()=>ma(a),[a]);(0,Yc.useEffect)(()=>{let c=e;return c?(l.addEventListener(c,t,i,n),()=>{l.removeEventListener(c,t,i)}):()=>{}},[l,e,t,...r])}function YR(e,t){let{id:i,isLoaded:n,error:r,resource:a,requestId:l,cached:c}=aa(e,t);return{id:i,isLoaded:n,error:r,manifest:a,requestId:l,cached:c}}var En=R(q(),1);function Qm({cacheKey:e}={}){let t=Ce(),i=oo(),n=_e(),r=ss(),a=gw(),[l,c]=(0,En.useState)(void 0),[p,m]=(0,En.useState)(!1),[h,y]=(0,En.useState)("idle"),[S,w]=(0,En.useState)(void 0),v=t?t.id:"undefined",x=(0,En.useMemo)(()=>{try{if(t&&i.length){let C=i[0],I=n.get(C.body[0]),L=zn(I)[0];return L&&r(L,{width:L.width||t.width,height:L.height||t.height},!0)||void 0}}catch(C){console.error(C)}},[v,e,t]),A=h==="success"&&l?l:x;return(0,En.useEffect)(()=>{(async()=>{try{if(t&&i.length){let C=i[0],I=n.get(C.body[0]),L=zn(I)[0];if(!L)return;m(!0),y("loading");try{let z=await a(L,{width:L.width||t.width,height:L.height||t.height})||void 0;c(z),y("success"),m(!1)}catch(z){y("error"),w(z)}}}catch(C){y("error"),w(C)}})()},[v,e]),(0,En.useMemo)(()=>({data:A,isFetching:p,status:h,error:S}),[A,p,h,S])}function XR(){let e=Qm();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var C1=R(q(),1);function KR(){let e=_e();return(0,C1.useMemo)(()=>yr(e),[e])}return jb(ZR);})();
|
|
124
|
+
`}),(0,Fa.jsx)("iframe",{className:"video-yt",ref:n,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function $w({media:e,mediaControlsDeps:t,children:i}){let[{element:n,currentTime:r,progress:a},l,c]=ao({duration:e.duration});return Ft("overlay","video-element",YI,{element:n,media:e,playPause:c.playPause}),null}var Fc=R(B(),1);function _m(){let{strategy:e}=pt(),{renderMediaControls:t,mediaControlsDeps:i}=ni();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,Fc.jsxs)($w,{media:e.media,mediaControlsDeps:i,children:[(0,Fc.jsx)(ho,{}),t?t(e):null]})}var gi=R(B(),1);function fo({x:e,y:t,onChoiceChange:i,registerActions:n,defaultChoices:r,isStatic:a,renderViewerControls:l,renderMediaControls:c,renderComplexTimelineControls:p,complexTimelineControlsDeps:m,viewControlsDeps:h,mediaControlsDeps:y,strategies:S,throwOnUnknown:w,backgroundStyle:v,alwaysShowBackground:x,keepCanvasScale:A=!1,enableSizes:C=!1,enableYouTube:I=!0,onClickPaintingAnnotation:E,components:L={},children:z}){return(0,gi.jsxs)(cm,{throwOnUnknown:w,onChoiceChange:i,registerActions:n,strategies:S,defaultChoices:r,mediaControlsDeps:y,renderMediaControls:c,renderViewerControls:l,renderComplexTimelineControls:p,complexTimelineControlsDeps:m,viewControlsDeps:h,children:[(0,gi.jsxs)(dm,{keepCanvasScale:A,x:e,y:t,children:[(0,gi.jsx)(hm,{alwaysShowBackground:x,backgroundStyle:v}),(0,gi.jsx)(ym,{}),(0,gi.jsx)(vm,{}),(0,gi.jsx)(Sm,{isStatic:a,enableSizes:C,onClickPaintingAnnotation:E}),(0,gi.jsx)(Cm,{}),(0,gi.jsx)(bm,{}),(0,gi.jsx)(Am,{as:L.Audio}),(0,gi.jsx)(Tm,{as:L.Video}),I?(0,gi.jsx)(_m,{}):null,z]}),(0,gi.jsx)(Im,{})]})}var Mm=R(B(),1);function Gw(e){let t=Ce();return!t||!t.placeholderCanvas?null:(0,Mm.jsx)(Vi,{canvas:t.placeholderCanvas.id,children:(0,Mm.jsx)(fo,{renderViewerControls:e.renderViewerControls})})}var ri=R(B(),1),XI=(0,Na.forwardRef)(function(t,i){let n=vt(),r=eo(),a=ha(),{ViewerControls:l,MediaControls:c,ComplexTimelineControls:p}=t.components||{};if((0,Na.useImperativeHandle)(i,()=>a,[a]),!n)return(0,ri.jsx)("div",{});let m=0;return(0,ri.jsxs)(ri.Fragment,{children:[t.header,(0,ri.jsx)(Bt.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:r.map((h,y)=>{let S=m;return m+=h.width+(t.spacing||0),(0,ri.jsx)(Vi,{canvas:h.id,children:(0,ri.jsx)(Bt.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:y===0&&l?()=>(0,ri.jsx)(l,{}):void 0,renderMediaControls:y===0&&c?()=>(0,ri.jsx)(c,{}):void 0,renderComplexTimelineControls:y===0&&p?()=>(0,ri.jsx)(p,{}):void 0,x:S,...t.canvasProps||{},children:t.annotations},h.id)},h.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),Bt=(0,Na.forwardRef)(function({children:t,height:i,annotations:n,canvasProps:r,spacing:a,header:l,components:c,mode:p,reuseAtlas:m,renderPreset:h,runtimeOptions:y,...S},w){let v=Zr();return(0,ri.jsx)(Kr,{vault:v,children:(0,ri.jsx)(Lf,{...S,children:(0,ri.jsx)(XI,{ref:w,height:i,components:c,spacing:a,canvasProps:r,annotations:n,header:l,mode:p,reuseAtlas:m,renderPreset:h,runtimeOptions:y,children:t})})})});Bt.RenderImage=xr;Bt.RenderCanvas=fo;Bt.RenderAnnotationPage=Sa;Bt.RenderAnnotation=yc;Bt.Viewer=fc;Bt.CanvasBackground=Cc;Bt.Audio=kc;Bt.Video=Lc;Bt.Model=_c;Bt.AudioHTML=Pm;Bt.VideoHTML=Rm;Bt.ModelHTML=wm;Bt.PlaceholderCanvas=Gw;var Nc=R(q(),1),Ba=R(B(),1),KI=(0,Nc.forwardRef)(function({canvasId:t},i){let n=Ou(),r=Pa(t||n?.id),a=_e();return(0,Nc.useImperativeHandle)(i,()=>r,[t,n]),!n||r.enabledPageIds.length===0?null:(0,Ba.jsx)(Ba.Fragment,{children:r.enabledPageIds.map(l=>(0,Ba.jsx)(Bt.RenderAnnotationPage,{page:a.get(l)},l))})});var Xw=R(q(),1);var Yw=R(q(),1);var Pt=R(B(),1);function Da({metadata:e=[],config:t,labelWidth:i=16,showEmptyMessage:n=!0,allowHtml:r,emptyFallback:a,classes:l={},emptyMessage:c="No metadata available",emptyValueFallback:p="No value",emptyLabelFallback:m="",separator:h,tableFooter:y,tableHeader:S}){let w=(0,Yw.useMemo)(()=>{let x=(t||[]).reduce((C,I)=>[...C,...I.keys],[]),A={};for(let C of e){let I=C&&C.label?Object.values(C.label):[];for(let E of I)if(E&&E.length&&(x.indexOf(`metadata.${E[0]}`)!==-1||x.length===0)&&C){let L=`metadata.${E[0]}`;A[L]=A[L]?A[L]:[],A[L].push(C);break}}return A},[t,e]);return Object.keys(w).length===0&&n?(0,Pt.jsx)(Pt.Fragment,{children:a})||(0,Pt.jsx)("div",{className:l.empty,children:c}):t&&t.length?(0,Pt.jsxs)("table",{className:l.container,children:[S,(0,Pt.jsx)("tbody",{children:t.map((x,A)=>{let C=[];for(let I of x.keys)for(let E of w[I]||[])C.push((0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,defaultText:p,separator:h,children:E.value},A+"__"+I));return C.length===0?null:(0,Pt.jsxs)("tr",{className:l.row,children:[(0,Pt.jsx)("td",{className:l.label,style:i?{minWidth:i}:{},children:(0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,separator:h,defaultText:m,children:x.label})}),(0,Pt.jsx)("td",{className:l.value,children:C})]},A)})}),y]}):(0,Pt.jsxs)("table",{className:l.container,children:[S,(0,Pt.jsx)("tbody",{children:e&&e.length?e.map((x,A)=>x?(0,Pt.jsxs)("tr",{className:l.row,children:[(0,Pt.jsx)("td",{className:l.label,style:i?{minWidth:i}:{},children:(0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,defaultText:p,separator:h,children:x.label})}),(0,Pt.jsx)("td",{className:l.value,children:(0,Pt.jsx)(Ii,{enableDangerouslySetInnerHTML:r,defaultText:p,separator:h,children:x.value})})]},A):null):null}),y]})}var Kw=R(B(),1);function ZI(e){let t=vt(),i=Ce(),n=la(),r=(0,Xw.useMemo)(()=>{let a=t?.metadata||[],l=i?.metadata||[],c=n?.metadata||[];return[...a,...l,...c]},[t,i,n]);return(0,Kw.jsx)(Da,{metadata:r,...e})}var Dc=R(q(),1);var Zw=R(q(),1);function Bc(e,t={},i=[]){return(0,Zw.useMemo)(()=>{if(!e)return null;let n=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(n="default"));let r=nu(e);return iu({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:n||"default",prefix:r.prefix,originalPath:r.originalPath})},[...i])}var ja=R(B(),1);function JI(e){let t=typeof e.src=="string"?e.src:e.src.id,i=ka(),[n,r]=(0,Dc.useState)(!1),a;if(t){let c=i.loadServiceSync({id:t});c&&(a=c)}!a&&!n&&i.loadService({id:t}).then(()=>{r(!0)});let l=Bc(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[n,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,Dc.useEffect)(()=>()=>{r(!1)},[t]),l?(0,ja.jsx)("img",{src:l,alt:e.alt,className:e.className,style:e.style}):(0,ja.jsx)(Jw,{...e,fetchImageService:!1})}function Jw(e){if(e.fetchImageService)return(0,ja.jsx)(JI,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,i=Bc(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return i?(0,ja.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):null}var e1=R(B(),1);function eR(e){let t=vt();return(0,e1.jsx)(Da,{metadata:t?.metadata||[],...e})}var jc=R(q(),1);var km=R(i1(),1);var yi=R(B(),1),{LazyLoadComponent:tR}=km||km.default;function Om(e){let{size:t,visible:i,classes:n,canvasId:r,figure:a}=e,l=t?.width||128,c=t?.height||t?.width||128,p=(0,yi.jsx)(iR,{...e}),m=(0,yi.jsx)(tR,{threshold:300,style:{height:c,width:l},visibleByDefault:i,children:r?(0,yi.jsx)(Vi,{canvas:r,children:p}):p});return a?(0,yi.jsx)("figure",{className:n?.figure,children:m}):m}function iR({fallback:e,size:t,classes:i,showLabel:n,alt:r,dereference:a=!1}){let l=Ce(),c=t?.width||128,p=t?.height||t?.width||128,m=r||Zf(l?.label)||"",h=Qn({width:c,height:p,allowUnsafe:!0},a);return!h||h.type!=="fixed"?(0,yi.jsx)(yi.Fragment,{children:e}):(0,yi.jsxs)(yi.Fragment,{children:[(0,yi.jsx)("div",{className:i?.imageWrapper,children:(0,yi.jsx)("img",{className:i?.img,src:h.id,alt:m})}),n?(0,yi.jsx)(Ii,{as:"figcaption",className:i?.label,children:l?.label}):null]})}var cs=R(B(),1);function nR({scrollBehaviour:e,dereference:t,flat:i,size:n,classes:r={},showLabel:a,figure:l,fallback:c}){let p=(0,jc.useRef)(null),{items:m,sequence:h,currentSequenceIndex:y,setSequenceIndex:S}=ha(),w={row:r.selected?.row||r.row,item:r.selected?.item||r.item,figure:r.selected?.figure||r.figure,img:r.selected?.img||r.img,label:r.selected?.label||r.label,imageWrapper:r.selected?.imageWrapper||r.imageWrapper};(0,jc.useLayoutEffect)(()=>{if(!p.current)return;let x=p.current.querySelector("[data-selected=true]");x&&x.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[y]);let v=[];for(let x of h){let A=[],C=h[y]===x;for(let I of x){let E=m[I];A.push((0,cs.jsx)("div",{className:C?w.item:r.item,children:(0,cs.jsx)(Om,{classes:C?w:r,canvasId:E.id,size:n,dereference:t,showLabel:a,figure:l,placeholder:(0,cs.jsx)("div",{style:{height:128,width:128}}),fallback:c})},I))}if(i){v.push(A);continue}v.push((0,cs.jsx)("div",{onClick:I=>{S(h.indexOf(x))},"data-selected":C,className:C?w.row:r.row,children:A},x.join("-")))}return(0,cs.jsx)("div",{ref:p,className:r.container,children:v})}var oi=R(B(),1),rR={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function oR({helper:e,showShapes:t,state:i,enabled:n=rR,classNames:r={},icons:a={}}){return(0,oi.jsxs)(oi.Fragment,{children:[t?(0,oi.jsxs)(oi.Fragment,{children:[n.draw&&(0,oi.jsx)("button",{className:r.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!i.lineMode&&!i.selectedStamp&&t&&i.drawMode,children:a.DrawIcon||"Draw"}),n.polygon&&(0,oi.jsx)("button",{className:r.button,"data-active":!i.lineMode&&!i.selectedStamp&&t&&!i.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),n.line&&(0,oi.jsx)("button",{className:r.button,"data-active":i.lineMode&&!i.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),n.lineBox&&(0,oi.jsx)("button",{className:r.button,"data-active":i.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),n.square&&(0,oi.jsx)("button",{className:r.button,"data-active":i.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),n.triangle&&(0,oi.jsx)("button",{className:r.button,"data-active":i.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),n.hexagon&&(0,oi.jsx)("button",{className:r.button,"data-active":i.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,i.showBoundingBox&&n.delete&&(0,oi.jsx)("button",{className:r.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}var Ut=R(q(),1);var n1=R(B(),1),Vc=(0,Ut.createContext)(Vn());Vc.displayName="SelectorHelper";function sR({children:e}){return(0,n1.jsx)(Vc.Provider,{value:(0,Ut.useMemo)(()=>Vn(),[]),children:e})}function aR(){return(0,Ut.useContext)(Vc)}function Lm(e){let t=zm(),[i,n]=(0,Ut.useState)(!1);(0,Ut.useEffect)(()=>t.withSelector(e).on("highlight",()=>{n(!0)}),[t,e]),(0,Ut.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{n(!1)}),[t,e]);let r=(0,Ut.useCallback)(l=>{t.emit("click",{selectorId:e,event:l})},[e,t]),a=(0,Ut.useCallback)(l=>{t.emit("hover",{selectorId:e,event:l})},[e,t]);return{controller:t,onClick:r,onHover:a,isHighlighted:i}}function zm(){let e=(0,Ut.useContext)(Vc);return(0,Ut.useMemo)(()=>({withSelector(t){return{on(i,n){let r=a=>{a&&a.selectorId===t&&n(a)};return e.on(i,r),()=>{e.off(i,r)}},emit(i,n){e.emit(i,{...n,selectorId:t})}}},on(t,i){return e.on(t,i),()=>{e.off(t,i)}},emit(t,i){e.emit(t,i)}}),[e])}function lR(){let e=zm();return(0,Ut.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(i,n){return e.emit("event-listener",{selectorId:t,name:i,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:i,callback:n})}},getImagePreview(){return new Promise((i,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:i,reject:n})})},on(i,n){return e.withSelector(t).on(i,n)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,i,n){return e.emit("event-listener",{selectorId:t,name:i,callback:n}),()=>{e.emit("remove-event-listener",{selectorId:t,name:i,callback:n})}},getImagePreview(t){return new Promise((i,n)=>{e.emit("image-preview-request",{selectorId:t,resolve:i,reject:n})})},on(t,i){return e.on(t,i)}}),[e])}var ds=R(q(),1),r1=R(B(),1);function Fm(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var Nm=(0,ds.createContext)(Fm());Nm.displayName="AnnotationStyle";function Bm(){return(0,ds.useContext)(Nm)}function uR({theme:e,children:t}){let i=(0,ds.useMemo)(()=>e||Fm(),[e]);return(0,r1.jsx)(Nm.Provider,{value:i,children:t})}var si=R(q(),1);var hs=R(q(),1);function l1(e){let t=e.points.length,i=!1,n=[];if(t>1){e.iedges=[];let r=e.points[t-1];for(let a=0;a<t;a++){let l=r;if(r=e.points[a],r.length===6){let m=r[2],h=r[3],y=r[4],S=r[5];n.push([a,[r[0]+m,r[1]+h],[r[0]+y,r[1]+S]]),i=!0}let c=[r[0]-l[0],r[1]-l[1]],p=c[0]*c[0]+c[1]*c[1];p>0?e.iedges.push([c[0]/p,c[1]/p]):e.iedges.push([0,0])}}else t===1?e.iedges=[[0,0]]:e.iedges=null;e.isBezier=i,e.bezierLines=n}function cR(e,t){let i=1/0,n=null,r=-1,a=e.points.length;if(a<=1)return[null,i,r];let l=e.points[a-1];for(let c=0;c<a;c++){let p=l;l=e.points[c];let m=p[0]-t[0],h=p[1]-t[1],y=m*m+h*h;y<i&&(n=p,i=y,r=c===0?a-1:c-1)}return[n,i,r]}function qc(e){if(e.points.length>2){let t=Math.min(...e.points.map(a=>a[0])),i=Math.min(...e.points.map(a=>a[1])),n=Math.max(0,...e.points.map(a=>a[0])),r=Math.max(0,...e.points.map(a=>a[1]));e.boundingBox={x:t,y:i,width:n-t,height:r-i};return}e.boundingBox=null}function dR(e){return e[0]*e[0]+e[1]*e[1]}function o1(e,t){let i=1/0,n=null,r=-1,a=[],l=e.points.length;if(l<=1)return[null,i,a,r];if(e.iedges===null&&(l1(e),!e.iedges))return[null,i,a,r];let c=e.points[l-1];for(let p=0;p<l;p++){let m=c;c=e.points[p];let h=(t[0]-m[0])*e.iedges[p][0]+(t[1]-m[1])*e.iedges[p][1],y;h<=0?y=m:h<1?y=[(1-h)*m[0]+h*c[0],(1-h)*m[1]+h*c[1]]:y=c;let S=dR([y[0]-t[0],y[1]-t[1]]);S<i&&(n=y,i=S,a=[m,c],r=p===0?l-1:p-1)}return[n,i,a,r]}var u1={type:"move-bounding-box",label:"Move bounding box",isValid(e,t,i){let n=t.polygon.points.length,r=n===t.selectedPoints.length,a=t.polygon.boundingBox;if(n<1||!r||!a)return!1;let l=e[0],c=l[0],p=l[1];return c>=a.x&&c<=a.x+a.width&&p>=a.y&&p<=a.y+a.height},transition(e,t,i){let n=t.transitionOrigin,r=t.polygon.boundingBox,a=e[0],l=a[0]-n[0],c=a[1]-n[1];t.transitionPoints=t.polygon.points.map(p=>p.length===6?[p[0]+l,p[1]+c,p[2],p[3],p[4],p[5]]:[p[0]+l,p[1]+c]),r&&(t.transitionBoundingBox={x:r.x+l,y:r.y+c,width:r.width,height:r.height})},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}},c1={type:"move-shape",label:"Move shape",isValid(e,t,i){return i.Shift?!1:t.slowState.pointerInsideShape&&(!t.isOpen||t.line===null)},transition(e,t,i){u1.transition(e,t,i)},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}};function s1(e,t){return Math.abs(e-t)}function qi(e,t){let i=s1(e[0],t[0]),n=s1(e[1],t[1]);return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}function Dm(e,t){return[e[0]-t[0],e[1]-t[1]]}function hR(e,t){return e[0]*t[0]+e[1]*t[1]}function d1(e){return e[0]*e[0]+e[1]*e[1]}function Uc(e,t){return d1(Dm(e,t))}function h1(e,t){let i,n,r,a;var l=function(v,x,A,C,I){if(C<=A+1)return;let E=A,L=0,z=v*v;i=[x[A],x[C]],n=Dm(i[1],i[0]);let M=d1(n),Q,V,J,U,W;for(let ee=A+1;ee<C;ee++)Q=Dm(x[ee],i[0]),U=hR(Q,n),U<=0?W=Uc(x[ee],i[0]):M<=U?W=Uc(x[ee],i[1]):(J=U/M,V=[i[0][0]+J*n[0],i[0][1]+J*n[1]],W=Uc(x[ee],V)),!(W<=L)&&(E=ee,L=W);L>z&&(I[E]=1,l(v,x,A,E,I),l(v,x,E,C,I))};let c=e.length,p=[],m,h,y,S,w=t*t;for(r=[],a=[],r[0]=e[0],m=h=1,S=0;m<c;m++)Uc(e[m],e[S])<w||(r[h++]=e[m],S=m);for(S<c-1&&(r[h++]=e[c-1]),a[0]=a[h-1]=1,l(t,r,0,h-1,a),m=y=0;m<h;m++)a[m]&&(p[y++]=r[m]);return p}var pR={type:"move-point",label:"Move point",modifiers:{Shift:"Constrain to axis"},isValid(e,t,i){if(i.Alt)return!1;let n=i.proximity,[r,a]=e[0],l=t.polygon.points,c=t.selectedPoints;for(let p=0;p<l.length;p++){let m=l[p],h=m[0]-r,y=m[1]-a;if(h*h+y*y<n*n)return!0}return!1},start(e,t,i){if(t.selectedPoints.length<2){let[n,r,a]=cR(t.polygon,e[0]);return{selectedPoints:[a]}}if(t.slowState.closestPoint&&!t.selectedPoints.includes(t.slowState.closestPoint))return{selectedPoints:[t.slowState.closestPoint]}},transition(e,t,i){let n=t.transitionOrigin,[r,a]=e[0],l=t.polygon.points,c=t.selectedPoints;if(t.slowState.closestPoint){let y=t.slowState.closestPoint;c.indexOf(y)===-1&&(c=[y])}let p=[],m=r-n[0],h=a-n[1];i.Shift&&(Math.abs(m)>Math.abs(h)?h=0:m=0);for(let y=0;y<l.length;y++){let S=c.indexOf(y)!==-1,w=l[y];S?w.length===6?p.push([w[0]+m,w[1]+h,w[2],w[3],w[4],w[5]]):p.push([w[0]+m,w[1]+h]):p.push(w)}t.transitionPoints=p},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}},a1=10,fR={type:"select-point",label:"Select point",trigger:{type:"click"},modifiers:{Shift:"Add to selection"},isValid(e,t,i){let n=-1;if(t.selectedPoints.length===1){let c=t.selectedPoints[0];c===0&&(n=t.polygon.points.length-1),c===t.polygon.points.length-1&&(n=0)}let[r,a]=e[0],l=t.polygon.points;for(let c=0;c<l.length;c++){let p=l[c],m=p[0]-r,h=p[1]-a;if(m*m+h*h<a1*a1)return n!==c}return!1},commit(e,t,i){let n=i.Shift?[...t.selectedPoints]:[],[r,a]=e[0],l=t.polygon.points.map((c,p)=>{let m=c[0]-r,h=c[1]-a;return[m*m+h*h,p]}).sort((c,p)=>c[0]-p[0])[0];if(t.line=null,!n.includes(l[1]))n.push(l[1]);else if(i.Shift)return{selectedPoints:n.filter(c=>c!==l[1])};return{selectedPoints:n}}},p1={type:"split-line",label:"Split line",isValid(e,t,i){return i.Meta||t.slowState.lineMode?!1:!!(t.closestLinePoint&&t.closestLineDistance<i.proximity)},transition(e,t,i){let n=t.transitionOrigin,[r,a]=e[0],l=t.polygon.points,c=[],p=r-n[0],m=a-n[1];for(let h=0;h<l.length;h++)if(c.push(l[h]),t.closestLineIndex===h){let y=t.closestLinePoint;c.push([y[0]+p,y[1]+m])}t.transitionPoints=c},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{selectedPoints:[t.closestLineIndex+1],points:n}}},mR={type:"add-open-point",label:"Add point",trigger:{type:"click"},isValid(e,t,i){if(!t.isOpen)return!1;if(t.polygon.points.length===0)return!0;if(t.selectedPoints.length!==1||t.polygon.points.length>=2&&t.slowState.lineMode)return!1;let n=t.selectedPoints[0];return n===0||n===t.polygon.points.length-1},commit(e,t,i){let n=t.line?t.line[1]:e[0],r=t.polygon.points;return r.length===0?{selectedPoints:[0],points:[e[0]]}:(i.Shift,t.selectedPoints[0]===0?{selectedPoints:t.slowState.lineMode?[]:[0],points:[n,...r]}:(t.line=null,{selectedPoints:t.slowState.lineMode?[]:[r.length],points:[...r,n]}))}},f1={type:"close-shape",label:"Close shape",trigger:{type:"click"},isValid(e,t,i){if(!t.isOpen||t.selectedPoints.length!==1||t.polygon.points.length<2||i.Meta)return!1;let n=t.selectedPoints[0];if(n===0){let r=t.polygon.points[t.polygon.points.length-1];return qi(e[0],r)<i.proximity}if(n===t.polygon.points.length-1){let r=t.polygon.points[0];return qi(e[0],r)<i.proximity}return!1},commit(e,t,i){let n=t.selectedPoints[0];if(t.line=null,n===0)return{selectedPoints:[],points:t.polygon.points.slice(0).reverse(),isOpen:!1};if(n===t.polygon.points.length-1)return{selectedPoints:[],isOpen:!1}}},gR={type:"deselect-draw",label:"Deselect draw",trigger:{type:"key",key:"Escape"},isValid(e,t,i){return!0},commit(e,t,i){return{selectedPoints:[]}}},yR={type:"select-shape",label:"Select shape",trigger:{type:"click"},isValid(e,t,i){return c1.isValid(e,t,i)},commit(e,t,i){return{selectedPoints:t.polygon.points.map((n,r)=>r)}}},vR={type:"deselect-bounding-box",label:"Deselect bounding box",trigger:{type:"click"},isValid(e,t,i){return!t.isOpen&&t.selectedPoints.length>2&&t.selectedPoints.length===t.polygon.points.length},commit(e,t,i){return{selectedPoints:[]}}},xR={type:"bounding-box-corners",label:"Drag to resize",modifiers:{Shift:"Maintain aspect ratio",Alt:"Scale from center",Meta:"Rotate"},isValid(e,t,i){if(t.transitionDirection=null,t.transitionRotate=!1,t.isOpen||t.selectedPoints.length!==t.polygon.points.length||!t.polygon.boundingBox)return!1;let n=i.proximity*.5,r=i.proximity*3,a=e[0],l=t.polygon.boundingBox,c=l.x+n,p=l.x+l.width-n*2,m=l.y+n,h=l.y+l.height-n*2;if(a[0]>c&&a[0]<p&&a[1]>m&&a[1]<h)return!1;let y=[l.x+l.width,l.y+l.height],S=[l.x,l.y],w=[l.x+l.width,l.y],v=[l.x,l.y+l.height],x=["ne","nw","se","sw"],A=[qi(e[0],w),qi(e[0],S),qi(e[0],y),qi(e[0],v)],C=Math.min(...A);if(A[0]<r||A[1]<r||A[2]<r||A[3]<r){(C>i.proximity||i.Meta)&&(t.transitionRotate=!0);let I=A.indexOf(Math.min(...A));return t.transitionDirection=I!==-1?x[I]:null,!0}return!1},start(e,t,i){let n=e[0],r=t.polygon.boundingBox,a=[r.x+r.width,r.y+r.height],l=[r.x,r.y],c=[r.x+r.width,r.y],p=[r.x,r.y+r.height],m=["ne","nw","se","sw"],h=[qi(e[0],c),qi(e[0],l),qi(e[0],a),qi(e[0],p)],y=Math.min(...h),S=h.indexOf(y);t.transitionDirection=S!==-1?m[S]:null,y>i.proximity&&(t.transitionRotate=!0)},transition(e,t,i){let n=t.polygon.boundingBox,r=[n.x,n.y],a=t.transitionOrigin||e[0],[l,c]=e[0];if(i.Meta||t.transitionRotate){r=[n.x+n.width/2,n.y+n.height/2];let v=Math.atan2(a[1]-r[1],a[0]-r[0]),x=Math.atan2(c-r[1],l-r[0]),A=i.Shift,C=Math.PI/(i.Alt?4:12),I=x-v;A&&(I=Math.round(I/C)*C);let E=Math.cos(I),L=Math.sin(I),z=[];for(let M of t.polygon.points){let Q=M[0]-r[0],V=M[1]-r[1],J=Q*E-V*L,U=Q*L+V*E,W=J+r[0],ee=U+r[1];if(M.length===6){z.push([W,ee,M[2],M[3],M[4],M[5]]);continue}z.push([W,ee])}t.transitionPoints=z,qc({points:z,iedges:null,boundingBox:null,isBezier:!1,bezierLines:[]}),t.transitionBoundingBox=t.polygon.boundingBox?{...t.polygon.boundingBox,rotation:I}:null;return}let p=0,m=0;switch(t.transitionDirection){case"se":{r=[n.x,n.y],p=l-a[0],m=c-a[1];break}case"sw":{r=[n.x+n.width,n.y],p=a[0]-l,m=c-a[1];break}case"ne":{r=[n.x,n.y+n.height],p=l-a[0],m=a[1]-c;break}case"nw":{r=[n.x+n.width,n.y+n.height],p=a[0]-l,m=a[1]-c;break}}if(i.Alt&&(r=[n.x+n.width/2,n.y+n.height/2],p*=2,m*=2),i.Shift){let v=n.width/n.height;Math.abs(n.width/p)>Math.abs(n.height/m)?m=p/v:p=m*v}let h=(n.width+p)/n.width,y=(n.height+m)/n.height,S=[];for(let v of t.polygon.points){let x=v[0]-r[0],A=v[1]-r[1],C=x*h,I=A*y,E=C+r[0],L=I+r[1];if(v.length===6){S.push([E,L,v[2],v[3],v[4],v[5]]);continue}S.push([E,L])}t.transitionPoints=S;let w={points:S,iedges:null,boundingBox:null,bezierLines:[],isBezier:!1};qc(w),t.transitionBoundingBox=w.boundingBox},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,t.transitionRotate=!1,{points:n}}},SR={type:"cut-line",label:"Add new point",trigger:{type:"click"},modifiers:{Shift:"Cut line"},isValid(e,t,i){return p1.isValid(e,t,i)},commit(e,t,i){if(i.Shift&&!t.isOpen){let a=t.polygon.points,l=[],c=[],p=!1;for(let m=0;m<a.length;m++)p?c.push(a[m]):l.push(a[m]),t.closestLineIndex===m&&(p=!0);return{isOpen:!0,points:[...c,...l]}}let n=t.polygon.points,r=[];for(let a=0;a<n.length;a++)if(r.push(n[a]),t.closestLineIndex===a){let l=t.closestLinePoint;r.push(l)}return{points:r}}},wR={type:"select-multiple-points",label:"Drag to select multiple points",isValid(e,t,i){return t.slowState.lineMode&&t.polygon.points.length>=2?!0:!t.line},transition(e,t,i){if(!t.transitionOrigin)return;let n=t.transitionOrigin[0],r=t.transitionOrigin[1],a=e[0][0],l=e[0][1],c=Math.min(n,a),p=Math.min(r,l),m=Math.abs(n-a),h=Math.abs(r-l);t.selectionBox={x:c,y:p,width:m,height:h}},commit(e,t,i){if(t.selectionBox){let n=[];i.Shift&&n.push(...t.selectedPoints);for(let r=0;r<t.polygon.points.length;r++){let a=t.polygon.points[r];a[0]>=t.selectionBox.x&&a[0]<=t.selectionBox.x+t.selectionBox.width&&a[1]>=t.selectionBox.y&&a[1]<=t.selectionBox.y+t.selectionBox.height&&n.push(r)}return{selectedPoints:n}}}},bR={type:"deselect-points",label:"Deselect points",trigger:{type:"click"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){return{selectedPoints:[]}}},Qc=4,CR={type:"nudge-right",label:"Nudge right",trigger:{type:"key",key:"ArrowRight"},modifiers:{Shift:"Nudge right more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>a.includes(c)?[l[0]+(i.Shift?Qc*n:1),l[1]]:l)}}},PR={type:"nudge-left",label:"Nudge left",trigger:{type:"key",key:"ArrowLeft"},modifiers:{Shift:"Nudge left more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>a.includes(c)?[Math.max(0,l[0]-(i.Shift?Qc*n:1)),l[1]]:l)}}},ER={type:"nudge-up",label:"Nudge up",trigger:{type:"key",key:"ArrowUp"},modifiers:{Shift:"Nudge up more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>{if(a.includes(c)){let p=l[0],m=Math.max(0,l[1]-(i.Shift?Qc*n:1));return l.length===6?[p,m,l[2],l[3],l[4],l[5]]:[p,m]}return l})}}},AR={type:"nudge-down",label:"Nudge down",trigger:{type:"key",key:"ArrowDown"},modifiers:{Shift:"Nudge down more"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=i.proximity*.3,r=t.polygon.points,a=t.selectedPoints;return{points:r.map((l,c)=>{let p=l[0],m=Math.max(0,l[1]-(i.Shift?Qc*n:1));return a.includes(c)?l.length===6?[p,m,l[2],l[3],l[4],l[5]]:[p,m]:l})}}},IR={type:"delete-point",label:"Delete point",trigger:{type:"key",key:"Backspace"},isValid(e,t,i){return t.selectedPoints.length>0},commit(e,t,i){let n=t.polygon.points.filter((r,a)=>!t.selectedPoints.includes(a));return{isOpen:n.length<3,selectedPoints:[],points:n}}},RR={type:"draw-shape",label:"Draw shape",isValid(e,t,i){let n=i.Alt||t.slowState.drawMode;return!!(t.isOpen&&(t.line||t.polygon.points.length===0)&&n)},start(e,t,i){t.transitionDraw=[]},transition(e,t,i){t.transitionDraw.push(e[0])},commit(e,t,i){let n=h1(t.transitionDraw,t.scale*3);return t.transitionDraw=[],t.selectedPoints[0]===0?{isOpen:!1,points:[...n,...t.polygon.points.slice(0).reverse()]}:{isOpen:!1,points:[...t.polygon.points,...n]}}},TR={type:"stamp-shape",label:"Stamp shape",modifiers:{Shift:"Maintain aspect ratio"},isValid(e,t,i){return t.slowState.selectedStamp!==null},start(e,t,i){let n=e[0];if(n&&t.slowState.selectedStamp){let r=t.slowState.selectedStamp,a=n[0],l=n[1],c=[],p=Math.min(...r.points.map(x=>x[0])),m=Math.min(...r.points.map(x=>x[1])),h=Math.max(...r.points.map(x=>x[0]))-p,y=Math.max(...r.points.map(x=>x[1]))-m,S=h/32;y/32>S&&(S=y/32);let w=[],v=0;for(let x of r.points)w.push(v),c.push([a+(x[0]-p)/S,l+(x[1]-m)/S]),v++;return t.transitionPoints=c,{isOpen:!1,selectedPoints:w,points:c}}},transition(e,t,i){if(!t.transitionOrigin)return;let n=t.polygon.boundingBox,r=[n.x,n.y],a=t.transitionOrigin||e[0],[l,c]=e[0],p=t.transitionOrigin[0],m=t.transitionOrigin[1],h=e[0][0],y=e[0][1],S=h-p-32,w=y-m-32;if(i.Shift){let I=n.width/n.height;Math.abs(n.width/S)>Math.abs(n.height/w)?w=S/I:S=w*I}let v=(n.width+S)/n.width,x=(n.height+w)/n.height,A=[];for(let I of t.polygon.points){let E=I[0]-r[0],L=I[1]-r[1],z=E*v,M=L*x,Q=z+r[0],V=M+r[1];if(I.length===6){A.push([Q,V,I[2],I[3],I[4],I[5]]);continue}A.push([Q,V])}t.transitionPoints=A;let C={points:A,iedges:null,boundingBox:null,bezierLines:[],isBezier:!1};qc(C),t.transitionBoundingBox=C.boundingBox},commit(e,t,i){return{isOpen:!1,points:t.transitionPoints}}},_R={type:"close-shape-line",label:"Close shape line",trigger:{type:"click"},isValid(e,t,i){return!t.isOpen||t.polygon.points.length<3||!t.closestLinePoint||t.closestLineDistance>=i.proximity?!1:(t.closestLineIndex===0||(t.closestLineIndex,t.polygon.points.length-2),!0)},commit(e,t,i){return f1.commit(e,t,i)}},MR={type:"stamp-fixed-size-shape",label:"Stamp fixed size shape",trigger:{type:"click"},isValid(e,t,i){return t.slowState.selectedStamp!==null},commit(e,t,i){let n=e[0],r=t.slowState.selectedStamp;if(!n||!r)return;let a=n[0],l=n[1],c=[],p=Math.min(...r.points.map(x=>x[0])),m=Math.min(...r.points.map(x=>x[1])),h=Math.max(...r.points.map(x=>x[0]))-p,y=Math.max(...r.points.map(x=>x[1]))-m,S=4*i.proximity,w=h/S;y/S>w&&(w=y/S),a-=h/w/2,l-=y/w/2;let v=0;for(let x of r.points)c.push([a+(x[0]-p)/w,l+(x[1]-m)/w]),v++;return{isOpen:!1,points:c}}},kR={type:"move-line",label:"Move line",isValid(e,t,i){return t.slowState.lineMode?!!(t.closestLinePoint&&t.closestLineDistance<i.proximity):!1},transition(e,t){let i=t.transitionOrigin,n=t.polygon.boundingBox,r=e[0],a=r[0]-i[0],l=r[1]-i[1];t.transitionPoints=t.polygon.points.map(c=>c.length===6?[c[0]+a,c[1]+l,c[2],c[3],c[4],c[5]]:[c[0]+a,c[1]+l])},commit(e,t,i){let n=t.transitionPoints;return t.transitionPoints=null,t.transitionBoundingBox=null,{points:n}}},OR={type:"close-line-box",label:"Close Line Box",trigger:{type:"click"},isValid(e,t,i){return t.slowState.lineBoxMode===!0&&t.polygon.points.length===2&&t.lineBox!==null},commit(e,t,i){return t.lineBox?{isOpen:!1,points:t.lineBox}:{}}};function m1(e={}){let t=e.proximityThreshold||10,i=e.closestLinePointFill||{selected:"#fff",unselected:"rgba(255, 255, 255, .5)"},n=e.closestLinePointStroke||{selected:"#000",unselected:"rgba(0, 0, 0, .5)"};function r(v,x,A){v&&x.transitionBoundingBox&&A.transitioning&&(v.setAttribute("x",""+x.transitionBoundingBox.x),v.setAttribute("y",""+x.transitionBoundingBox.y),v.setAttribute("width",""+x.transitionBoundingBox.width),v.setAttribute("height",""+x.transitionBoundingBox.height))}function a(v,x,A){v&&x.polygon.boundingBox&&A.showBoundingBox&&(v.setAttribute("x",""+x.polygon.boundingBox.x),v.setAttribute("y",""+x.polygon.boundingBox.y),v.setAttribute("width",""+x.polygon.boundingBox.width),v.setAttribute("height",""+x.polygon.boundingBox.height))}function l(v,x,A){if(v&&x.polygon.boundingBox&&A.showBoundingBox){let C=x.transitionBoundingBox||x.polygon.boundingBox;C.rotation?(v.style.transformOrigin=`${C.x+C.width/2}px ${C.y+C.height/2}px`,v.style.transform=`rotate(${Math.round(100*C.rotation*(180/Math.PI))/100}deg)`):v.style.transform="",v.setAttribute("points",[[C.x,C.y],[C.x+C.width,C.y],[C.x+C.width,C.y+C.height],[C.x,C.y+C.height]].map(I=>I.join(",")).join(" "))}}function c(v,x,A){v&&x.transitionPoints&&A.transitioning&&v.setAttribute("points",x.transitionPoints.map(C=>C.join(",")).join(" "))}function p(v,x,A){v&&x.closestLinePoint&&A.hasClosestLine&&(v.setAttribute("cx",""+x.closestLinePoint[0]),v.setAttribute("cy",""+x.closestLinePoint[1]),v.setAttribute("fill",x.closestLineDistance<t?i.selected:i.unselected),v.setAttribute("stroke",x.closestLineDistance<t?n.selected:n.unselected))}function m(v,x,A){v&&x.closestLinePoint&&A.hasClosestLine&&v.setAttribute("transform",`translate(${x.closestLinePoint[0]}, ${x.closestLinePoint[1]})`)}function h(v,x,A){v&&x.selectionBox&&A.transitionIntentType==="select-multiple-points"&&(v.setAttribute("x",""+x.selectionBox.x),v.setAttribute("y",""+x.selectionBox.y),v.setAttribute("width",""+x.selectionBox.width),v.setAttribute("height",""+x.selectionBox.height))}function y(v,x,A){if(v&&x.pointer&&x.selectedPoints.length)if(A.actionIntentType==="close-shape"||A.actionIntentType==="close-shape-line"){let C=x.polygon.points[0],I=x.polygon.points[x.polygon.points.length-1];C&&I&&v.setAttribute("points",`${C.join(",")} ${I.join(",")}`)}else if(x.line)v.setAttribute("points",`${x.line[0].join(",")} ${x.line[1].join(",")}`);else{let C=x.polygon.points[x.selectedPoints[0]];C&&C.length&&v.setAttribute("points",`${x.pointer[0]},${x.pointer[1]} ${C.join(",")}`)}}function S(v,x,A,C=3){v&&x.transitionDraw.length&&v.setAttribute("points",h1(x.transitionDraw,C*3).map(I=>I.join(",")).join(" "))}function w(v,x){v&&x.lineBox&&v.setAttribute("points",x.lineBox.map(A=>A.join(",")).join(" "))}return{updateTransitionBoundingBox:r,updateClosestLinePointTransform:m,updateBoundingBoxPolygon:l,updateBoundingBox:a,updateTransitionShape:c,updateClosestLinePoint:p,updateSelectBox:h,updatePointLine:y,updateDrawPreview:S,updateLineBox:w}}var LR=typeof window<"u"?window.requestAnimationFrame:e=>setTimeout(e,16),zR=typeof window<"u"?window.cancelAnimationFrame:e=>clearTimeout(e),Vm=[TR,xR,pR,kR,p1,c1,u1,RR,wR],FR=Vm.length,jm=[OR,MR,f1,fR,_R,SR,mR,yR,vR,bR],Hc=[gR,CR,PR,ER,AR,IR],Va={};Vm.forEach(e=>{Va[e.type]=e});jm.forEach(e=>{Va[e.type]=e});Hc.forEach(e=>{Va[e.type]=e});var Wc=20;function g1(e,t){let i={shapeId:e?.id||null,noShape:e===null,transitioning:!1,actionIntentType:null,transitionIntentType:null,selectedPoints:[],hasClosestLine:!1,modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:Wc},showBoundingBox:!1,currentModifiers:{},validIntentKeys:{},pointerInsideShape:!1,closestPoint:null,transitionModifiers:null,selectedStamp:null,lineMode:!1,lineBoxMode:!1,drawMode:!1,bezierLines:[]},n={isOpen:e?e.open:!1,polygon:{points:e?.points||[],iedges:null,boundingBox:null,isBezier:null,bezierLines:[]},scale:1,selectedPoints:[],pointer:null,line:null,lineBox:null,transitionPoints:null,transitionOrigin:null,transitionBoundingBox:null,closestLinePoint:null,closestLineDistance:0,closestLineIndex:-1,transitionRotate:!1,transitionDirection:null,transitionBezierLine:null,selectionBox:null,slowState:i,transitionDraw:[]},r={startTime:0,time:0,shouldUpdate:!1,nextSlowState:null,renderFunc:()=>{},setStateFunc:()=>{},animationFrame:0,actionIntent:null,transitionIntent:null,undoStack:[],undoStackPointer:-1},a={isPressed:!1,isClicking:!1,lastPress:null,pressTimeout:0,noTransition:!1};function l(N){l1(N),N.isBezier&&c({bezierLines:N.bezierLines}),qc(N),r.shouldUpdate=!0}l(n.polygon);function c(N){let G=Object.keys(N);if(G.length===0)return;let de=r.nextSlowState||n.slowState,ye=!1;if(G.length===1&&G[0]==="validIntentKeys"&&de.validIntentKeys){let ge=Object.keys(de.validIntentKeys),Ve=Object.keys(N.validIntentKeys||{});if(ge.length===Ve.length){for(let ze of ge)de.validIntentKeys[ze]!==N.validIntentKeys[ze]&&(ye=!0);if(!ye)return}}if(!(G.length===1&&G.includes("hasClosestLine")&&N.hasClosestLine===de.hasClosestLine)){if(r.nextSlowState){r.nextSlowState={...r.nextSlowState,...N};return}r.nextSlowState={...n.slowState,...N}}}function p(N,G=!1){r.time+=N,m(),h(),C(),A(),x(),I(),L(),E(),r.renderFunc(n,n.slowState,N),!G&&(r.animationFrame=LR(p))}function m(){if(r.shouldUpdate&&(t({id:n.slowState.shapeId||void 0,open:n.isOpen,points:n.polygon.points}),r.shouldUpdate=!1),r.nextSlowState&&r.nextSlowState!==n.slowState){let N=Object.keys(n.slowState),G={},de=!1;for(let ye of N){let ge=n.slowState[ye],Ve=r.nextSlowState[ye];ge!==Ve?(de=!0,G[ye]=Ve):G[ye]=ge}de&&(n.slowState=G,r.nextSlowState=null,r.setStateFunc(n.slowState))}}function h(){n.slowState.showBoundingBox?(n.slowState.noShape||n.selectedPoints.length===0||n.selectedPoints.length!==n.polygon.points.length)&&c({showBoundingBox:!1}):!n.slowState.noShape&&n.polygon.points.length&&n.selectedPoints.length===n.polygon.points.length&&c({showBoundingBox:!0})}function y(N){n.selectedPoints=N.selectedPoints,c({selectedPoints:N.selectedPoints}),n.polygon.points=N.points,n.polygon.boundingBox=null,n.polygon.iedges=null,n.polygon.isBezier=null,l(n.polygon),c({closestPoint:null}),(N.isOpen===!0||N.isOpen===!1)&&(n.isOpen=N.isOpen,r.shouldUpdate=!0)}function S(){if(r.undoStackPointer===-1)return;r.undoStackPointer--;let N=r.undoStack[r.undoStackPointer];y(N)}function w(){if(r.undoStackPointer===r.undoStack.length-1)return;r.undoStackPointer++;let N=r.undoStack[r.undoStackPointer];y(N)}function v(N){r.undoStackPointer++,r.undoStack[r.undoStackPointer]=N,r.undoStack.length>15&&(r.undoStack.shift(),r.undoStackPointer--)}function x(){if(!n.pointer||n.slowState.noShape){c({pointerInsideShape:!1});return}let[N,G]=n.pointer,de=n.polygon.points,ye=n.polygon.boundingBox;if(!ye){c({pointerInsideShape:!1});return}if(N<ye.x||N>ye.x+ye.width||G<ye.y||G>ye.height+ye.y){c({pointerInsideShape:!1});return}let ge=!1;for(let Ve=0,ze=de.length-1;Ve<de.length;ze=Ve++)de[Ve][1]>G!=de[ze][1]>G&&N<(de[ze][0]-de[Ve][0])*(G-de[Ve][1])/(de[ze][1]-de[Ve][1])+de[Ve][0]&&(ge=!ge);c({pointerInsideShape:ge})}function A(){if(n.slowState.noShape||!n.pointer||n.slowState.transitioning||!n.polygon.points||n.polygon.points.length===0)return;let[N,G]=n.pointer,de=n.polygon.points.map((ye,ge)=>{let Ve=ye[0]-N,ze=ye[1]-G;return[Ve*Ve+ze*ze,ge]}).sort((ye,ge)=>ye[0]-ge[0]);de.length&&c({closestPoint:de[0][1]})}function C(){if(!n.pointer||n.slowState.transitioning)return;if(n.slowState.noShape){n.closestLineIndex=-1,n.closestLinePoint=null,n.closestLineDistance=0;return}let[N,G,de,ye]=o1(n.polygon,n.pointer),ge=pe()*pe();G<ge&&(!n.isOpen||n.slowState.lineMode||n.polygon.points.length-1!==ye)?(n.closestLinePoint=N,n.closestLineDistance=Math.sqrt(G),n.closestLineIndex=ye,c({hasClosestLine:!0})):(n.closestLinePoint=null,n.closestLineDistance=0,n.closestLineIndex=-1,c({hasClosestLine:!1}))}function I(){if(!n.pointer||n.slowState.transitioning||n.slowState.noShape)return;let N=!1;for(let ye=0;ye<FR;ye++){let ge=Vm[ye];if(ge.isValid(a.isPressed?[a.lastPress]:[n.pointer],n,z())){if(r.transitionIntent===ge){N=!0;break}c({transitionIntentType:ge.type}),r.transitionIntent=ge,N=!0;break}}N||r.transitionIntent&&(r.transitionIntent=null,c({transitionIntentType:null}));let G=!1;for(let ye=0;ye<jm.length;ye++){let ge=jm[ye];if(Q(ge)){if(r.actionIntent===ge){G=!0;break}c({actionIntentType:ge.type}),r.actionIntent=ge,G=!0;break}}G||r.actionIntent&&(r.actionIntent=null,c({actionIntentType:null}));let de={};for(let ye=0;ye<Hc.length;ye++){let ge=Hc[ye];ge.trigger.type==="key"&&Q(ge)&&(de[ge.trigger.key]=ge.label)}c({validIntentKeys:de})}function E(){let N=n.pointer;if(n.lineBox=null,!N||J()||n.polygon.points.length!==2)return;let[G,de]=N,[ye,ge]=n.polygon.points[0],[Ve,ze]=n.polygon.points[1],[Pe,ne,he,Oe]=o1(n.polygon,N);if(!Pe)return;let ot=G-Pe[0],Ri=de-Pe[1],Dt=[ye,ge],Wt=[Ve,ze],ps=[Wt[0]+ot,Wt[1]+Ri],Ti=[Dt[0]+ot,Dt[1]+Ri];n.lineBox=[Dt,Wt,ps,Ti]}function L(){let N=n.pointer;if(!N||!J()||n.slowState.noShape)return;let G=n.selectedPoints[0];if(n.line=[n.polygon.points[G],N],n.slowState.modifiers.Shift){let de=0;if(n.polygon.points.length>1){let ot=n.selectedPoints[0];ot===0?de=Math.atan2(n.polygon.points[1][1]-n.polygon.points[0][1],n.polygon.points[1][0]-n.polygon.points[0][0]):de=Math.atan2(n.polygon.points[ot-1][1]-n.polygon.points[ot][1],n.polygon.points[ot-1][0]-n.polygon.points[ot][0])}let ye=N[0]-n.polygon.points[G][0],ge=N[1]-n.polygon.points[G][1],Ve=Math.atan2(ge,ye),ze=Math.PI/4,Pe=Math.round((Ve-de)/ze)*ze+de,ne=qi(n.polygon.points[G],N),he=Math.cos(Pe)*ne+n.polygon.points[G][0],Oe=Math.sin(Pe)*ne+n.polygon.points[G][1];n.line[1]=[he,Oe]}}function z(){return n.slowState.modifiers}function M(N){let G=N.commit([a.lastPress],n,z());G&&(G.selectedPoints&&(n.selectedPoints=G.selectedPoints,c({selectedPoints:G.selectedPoints})),G.points&&(n.polygon.points=G.points,n.polygon.boundingBox=null,n.polygon.iedges=null,n.polygon.isBezier=null,n.transitionBoundingBox=null,l(n.polygon),c({closestPoint:null,selectedStamp:null})),(G.isOpen===!0||G.isOpen===!1)&&(n.isOpen=G.isOpen,r.shouldUpdate=!0),v({isOpen:n.isOpen,points:n.polygon.points,selectedPoints:n.selectedPoints})),c({transitionModifiers:null})}function Q(N){return N.isValid(n.pointer?[n.pointer]:[],n,z())}function V(N){N==="Delete"&&(N="Backspace");for(let G of Hc)if(!(G.trigger.type!=="key"||G.trigger.key!==N)&&Q(G))return M(G),!0}function J(){let N=n.polygon.points,G=n.pointer;if(!n.isOpen||!N.length||n.selectedPoints.length!==1||!G)return!1;let de=n.selectedPoints[0],ye=de===0,ge=de===N.length-1;return ye||ge}let U={reset(){c({modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:Wc}})},getForType(N){let G={};if(!N)return G;let de=Va[N];return!de||!de.modifiers?G:de.modifiers},set(N){N!=="Shift"&&N!=="Alt"&&N!=="Meta"||c({modifiers:{...r.nextSlowState?.modifiers||n.slowState.modifiers,[N]:!0}})},unset(N){N!=="Shift"&&N!=="Alt"&&N!=="Meta"||c({modifiers:{...r.nextSlowState?.modifiers||n.slowState.modifiers,[N]:!1}})}},W={set(N){c({selectedStamp:N})},clear(){c({selectedStamp:null})},square(){c({selectedStamp:{id:"square",open:!1,points:[[0,0],[0,100],[100,100],[100,0]]}})},triangle(){c({selectedStamp:{id:"triangle",open:!1,points:[[50,0],[0,100],[100,100]]}})},pentagon(){c({selectedStamp:{id:"pentagon",open:!1,points:[[0,0],[0,100],[100,100],[100,0],[50,-50]]}})},hexagon(){c({selectedStamp:{id:"hexagon",open:!1,points:[[0,0],[0,100],[50,150],[100,100],[100,0],[50,-50]]}})}},ee={down(N){return N=="Shift"||N=="Alt"||N=="Meta"?(U.set(N),!0):N==="Control"?(U.set("Meta"),!0):N==="z"&&n.slowState.modifiers.Meta?(n.slowState.modifiers.Shift?w():S(),!0):V(N)},up(N){if(N==="Control"){U.unset("Meta");return}N!=="Shift"&&N!=="Alt"&&N!=="Meta"||U.unset(N)}};function Me(N){n.scale=N,c({modifiers:{...r.nextSlowState?.modifiers||n.slowState.modifiers,proximity:N*Wc}})}function pe(){return Wc*n.scale}let Re={set:N=>{r.renderFunc=N},start:(N,G)=>{r.startTime=performance.now(),r.time=0,N&&(r.renderFunc=N),G&&(G(n.slowState),r.setStateFunc=G),p(0)},stop:()=>{r.animationFrame&&(zR(r.animationFrame),r.animationFrame=0)},step:(N=16)=>{p(N)}};function ke(N){let G=N[0];if(!(!G||!G[0]&&G[0]!==0||!G[1]&&G[1]!==0)&&!(Number.isNaN(G[0])||Number.isNaN(G[1]))){if(n.pointer=G||null,n.slowState.transitioning)r.transitionIntent&&r.transitionIntent.transition(N,n,z());else if(a.isPressed&&!a.noTransition&&(!a.isClicking||qi(a.lastPress,n.pointer)>10))if(clearTimeout(a.pressTimeout),a.isClicking=!1,r.transitionIntent){if(n.transitionOrigin=a.lastPress,c({transitioning:!0}),r.transitionIntent.start){let de=r.transitionIntent.start([a.lastPress],n,z());de&&(de.selectedPoints&&(n.selectedPoints=de.selectedPoints,c({selectedPoints:de.selectedPoints})),(de.isOpen===!0||de.isOpen===!1)&&(n.isOpen=de.isOpen,r.shouldUpdate=!0),de.points&&(n.polygon.points=de.points,n.polygon.boundingBox=null,n.polygon.iedges=null,l(n.polygon),c({closestPoint:null})))}c({transitionModifiers:r.transitionIntent.modifiers||null}),r.transitionIntent.transition([a.lastPress],n,z())}else a.noTransition=!0}}function He(){n.pointer=null,n.slowState.transitioning||(a.isPressed=!1,a.isClicking=!1,a.lastPress=null,c({transitionIntentType:null,actionIntentType:null}),r.transitionIntent=null,r.actionIntent=null)}function qe(){a.isClicking=!0,a.isPressed=!0,a.lastPress=n.pointer,a.pressTimeout=setTimeout(()=>{a.isPressed&&(a.isClicking=!1)},250)}function $(){n.slowState.transitioning?(c({transitioning:!1}),r.transitionIntent&&M(r.transitionIntent),r.transitionIntent=null,c({transitionIntentType:null})):a.isClicking&&(r.actionIntent&&M(r.actionIntent),r.actionIntent=null,c({actionIntentType:null})),a.isPressed=!1,a.isClicking=!1,a.lastPress=null,a.noTransition=!1,clearTimeout(a.pressTimeout)}function ve(N){n.polygon.points=N?.points||[],n.polygon.boundingBox=null,n.polygon.iedges=null,n.isOpen=N?.open||!1,l(n.polygon),r.nextSlowState=null,r.undoStack=[],r.undoStackPointer=-1,n.lineBox=null,n.line=null,a.pressTimeout&&clearTimeout(a.pressTimeout),c({noShape:N===null,shapeId:N?.id||null,transitioning:!1,actionIntentType:null,transitionIntentType:null,selectedPoints:[],hasClosestLine:!1,modifiers:{Alt:!1,Shift:!1,Meta:!1,proximity:n.slowState.modifiers.proximity},showBoundingBox:!1,currentModifiers:{},validIntentKeys:{},selectedStamp:null,drawMode:!1,closestPoint:null,pointerInsideShape:!1,lineBoxMode:!1,lineMode:!1}),m()}function it(N){if(!N)return"";let G=Va[N];return!G||!G.modifiers?G.label||"":n.slowState.modifiers.Shift&&G.modifiers.Shift?G.modifiers.Shift:n.slowState.modifiers.Alt&&G.modifiers.Alt?G.modifiers.Alt:n.slowState.modifiers.Meta&&G.modifiers.Meta?G.modifiers.Meta:G.label}function Qe(){n.slowState.lineMode?c({lineMode:!1,lineBoxMode:!1,drawMode:!1}):c({lineMode:!0,lineBoxMode:!1,drawMode:!1})}function $e(){n.slowState.lineBoxMode?c({lineMode:!1,lineBoxMode:!1,drawMode:!1}):c({lineBoxMode:!0,lineMode:!0,drawMode:!1})}return{draw:{enable(){c({drawMode:!0,lineMode:!1,lineBoxMode:!1})},disable(){c({drawMode:!1})},toggle(){c({drawMode:!n.slowState.drawMode,lineMode:!1,lineBoxMode:!1})}},state:n,modifiers:U,stamps:W,key:ee,setScale:Me,clock:Re,pointer:ke,blur:He,pointerDown:qe,pointerUp:$,setShape:ve,modes:{toggleLineBoxMode:$e,toggleLineMode:Qe,enableLineMode(){c({lineMode:!0,lineBoxMode:!1,drawMode:!1})},disableLineMode(){c({lineMode:!1,lineBoxMode:!1,drawMode:!1})},enableLineBoxMode(){c({lineMode:!0,lineBoxMode:!0,drawMode:!1})},disableLineBoxMode(){c({lineMode:!1,lineBoxMode:!1,drawMode:!1})}},label:it}}function Um(e,t,i){let[n,r]=(0,hs.useState)({}),a=(0,hs.useMemo)(()=>g1(e,i),[]);return(0,hs.useEffect)(()=>(a.clock.start(t,r),()=>{a.clock.stop()}),[]),{state:n,helper:a}}var tt=R(B(),1),Cr=m1();function Wm(e,t){let{image:i,currentShape:n,onChange:r,hideShapeLines:a}=e,l=(0,si.useRef)(),c=(0,si.useRef)(),p=(0,si.useRef)(),m=(0,si.useRef)(),h=(0,si.useRef)(),y=(0,si.useRef)(),S=(0,si.useRef)(),w=(0,si.useRef)(),[v,x]=(0,si.useState)(null),[A,C]=(0,si.useState)(!1),{helper:I,state:E}=Um(n,(W,ee)=>{Cr.updateTransitionBoundingBox(c.current,W,ee),Cr.updateBoundingBoxPolygon(l.current,W,ee),Cr.updateTransitionShape(y.current,W,ee),Cr.updateClosestLinePointTransform(m.current,W,ee),Cr.updateSelectBox(p.current,W,ee),Cr.updatePointLine(S.current,W,ee),Cr.updateDrawPreview(h.current,W,ee,3),Cr.updateLineBox(w.current,W),x(W.transitionDirection),C(W.transitionRotate)},r);(0,si.useEffect)(()=>{I.setShape(n||null)},t),(0,si.useEffect)(()=>{let W=()=>{I.modifiers.reset()};return document.addEventListener("mouseleave",W),()=>{document.removeEventListener("mouseleave",W)}},[]);let L=(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,tt.jsx)("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),(0,tt.jsx)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,tt.jsx)("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),(0,tt.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,tt.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),z=n?n.open?"polyline":"polygon":null,M=!E.showBoundingBox&&E.closestPoint!==null&&E.actionIntentType==="select-point",Q=E.actionIntentType==="add-open-point",V=E.transitionIntentType==="split-line",J=E.transitioning&&E.selectedStamp&&E.transitionIntentType==="stamp-shape",U=n&&z?(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)(z,{fill:!E.transitioning&&E.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:J?0:2,stroke:a?"transparent":"#000",points:n.points.map(W=>W.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:E.showBoundingBox?void 0:"url(#dot)",markerMid:E.showBoundingBox?void 0:"url(#dot)",markerEnd:E.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),E.lineBoxMode&&E.actionIntentType==="close-line-box"?(0,tt.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:w,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,E.transitionIntentType==="draw-shape"&&E.transitioning?(0,tt.jsx)("polyline",{ref:h,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!E.showBoundingBox&&E.selectedPoints&&E.selectedPoints.length?(0,tt.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:n.points.filter((W,ee)=>E.selectedPoints?.includes(ee)).map(W=>W.join(",")).join(" ")}):null,M&&E.closestPoint!==null&&n.points[E.closestPoint]?(0,tt.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${n.points[E.closestPoint][0]},${n.points[E.closestPoint][1]}`}):null,!E.transitioning&&(E.actionIntentType==="add-open-point"||E.actionIntentType==="close-shape"||E.actionIntentType==="close-shape-line")?(0,tt.jsx)("polyline",{stroke:"#000",ref:S,strokeWidth:E.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,E.hasClosestLine&&(!E.transitionIntentType||E.transitionIntentType==="split-line")?(0,tt.jsx)("g",{ref:m,children:(0,tt.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,E.transitioning?(0,tt.jsx)(z,{ref:y,fill:n.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:n.open?2:0}):null,E.transitioning&&E.transitionIntentType==="select-multiple-points"?(0,tt.jsx)("rect",{ref:p,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,E.showBoundingBox?null:(0,tt.jsx)("g",{name:"controls",children:!1}),E.showBoundingBox&&!J?(0,tt.jsx)("polygon",{ref:l,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:I,state:E,isAddingPoint:Q,isSplitting:V,isStamping:J,isHoveringPoint:M,transitionDirection:v,transitionRotate:A,defs:L,editor:U}}var $c=R(q(),1),y1=R(Ws(),1),vi=R(B(),1),v1=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function Hm(e){let t=e.theme||v1[0],i=Mu(),{image:n}=e,{helper:r,defs:a,editor:l,state:c,transitionDirection:p,isSplitting:m,transitionRotate:h,isHoveringPoint:y,isAddingPoint:S,isStamping:w}=Wm({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),v=E=>{r.pointer([[~~E.atlas.x,~~E.atlas.y]])};(0,$c.useEffect)(()=>{let E=L=>{r.key.up(L.key)};return document.addEventListener("keyup",E),()=>{document.removeEventListener("keyup",E)}},[]),(0,$c.useEffect)(()=>{let E=L=>{r.key.down(L.key)};return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[]),(0,$c.useEffect)(()=>{let E=[];return p&&E.push(`atlas-cursor-${p}`),c.actionIntentType==="cut-line"&&c.modifiers?.Shift&&E.push("atlas-cursor-cut"),(y||c.transitionIntentType==="move-shape"||c.transitionIntentType==="move-point")&&E.push("atlas-cursor-move"),S&&E.push("atlas-cursor-crosshair"),m&&E.push("atlas-cursor-copy"),h&&E.push("atlas-cursor-rotate"),c.transitionIntentType==="draw-shape"&&E.push("atlas-cursor-draw"),i?.canvas&&i.canvas.classList.add(...E),()=>{i?.canvas&&i.canvas.classList.remove(...E)}},[i?.canvas,S,y,m,c.modifiers?.Shift,c.actionIntentType,c.transitionIntentType,p,h]);let x=e.shape&&e.shape?.points.length===0,A=e.renderControls?e.renderControls(r,c,x):null,C=document.getElementById(e.controlsHtmlId||"atlas-controls"),I="shape";return(0,vi.jsx)(vi.Fragment,{children:(0,vi.jsxs)("world-object",{height:n.height,width:n.width,onMouseMove:v,onMouseDown:r.pointerDown,onMouseUp:r.pointerUp,onMouseLeave:r.blur,children:[e.shape?(0,vi.jsxs)(vi.Fragment,{children:[(0,vi.jsx)(I,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:w?{}:t.outer}),(0,vi.jsx)(I,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:w?{}:t.inner})]}):null,(0,vi.jsxs)(Cn,{relative:!0,interactive:!1,children:[(0,vi.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,vi.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${n.width} ${n.height}`,tabIndex:-1,children:[(0,vi.jsx)("defs",{children:a}),l]})}),C?(0,y1.createPortal)(A,C,"controls"):null]})]})})}var qm=R(B(),1);function NR(e){let t=Ce(),i=e.annotationBucket,n=e.readOnly,r=e.id,{onClick:a,isHighlighted:l}=Lm(e.id),c=Bm(),p=l?c.highlighted:c[i||"hidden"]||c.hidden;if(!t)return null;if(n){let m="shape",h=e.polygon,y=h.open;return h?(0,qm.jsx)(m,{id:`shape-${r}`,points:h.points,open:y,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:p}):null}return(0,qm.jsx)(Hm,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Gc=R(q(),1);var Pr=R(B(),1);function BR({src:e,errorFallback:t,interactive:i,skipSizes:n,children:r,renderViewerControls:a,viewControlsDeps:l,fluid:c,x:p,y:m,...h}){let[y,S]=(0,Gc.useState)(),w=t||hc,[v,x]=Ea(),A=(0,Gc.useMemo)(()=>{let I=x[e]?.status,E=v({id:e},{});return E?.height&&E.width&&I!=="loading"?{id:e,width:E.width,height:E.height,service:E,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:E.width,height:E.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:E.width,height:E.height}}}:null},[v,e,x]);if(Ft(y&&a?"overlay":"none",`canvas-portal-controls-${e}`,Ui.Provider,a&&A?{value:y||null,children:a({image:A,images:[A],type:"images"})}:{},[e,A,y,...l||[]]),!A||!A.height||!A.width)return null;let C=c?void 0:h.homePosition?h.homePosition.width/h.homePosition.height:A.width/A.height;return(0,Pr.jsx)(No,{resetKeys:[],fallbackRender:I=>(0,Pr.jsx)(w,{...h,...I}),children:(0,Pr.jsx)(fc,{...h,aspectRatio:C,containerProps:{style:{position:"relative"},...h.containerProps||{}},onCreated:I=>{S(I),h.onCreated&&h.onCreated(I)},children:(0,Pr.jsxs)(Ui.Provider,{value:y,children:[(0,Pr.jsx)(xr,{image:A,id:A.id,isStatic:!i,x:p,y:m},A.id),(0,Pr.jsx)(DR,{viewerPreset:y,renderViewerControls:a,image:A,src:e,viewControlsDeps:l}),r]})})})}function DR({viewerPreset:e,renderViewerControls:t,image:i,src:n,viewControlsDeps:r}){return Ft(e&&t?"overlay":"none",`canvas-portal-controls-${n}`,Ui.Provider,t&&i?{value:e||null,children:t({image:i,images:[i],type:"images"})}:{},[n,e,...r||[]]),null}var x1=R(B(),1);function jR({annotation:e,children:t}){return(0,x1.jsx)(ei,{value:{annotation:e},children:t})}var S1=R(B(),1);function VR({annotationPage:e,children:t}){return(0,S1.jsx)(ei,{value:{annotationPage:e},children:t})}var w1=R(B(),1);function UR({collection:e,children:t}){return(0,w1.jsx)(ei,{value:{collection:e},children:t})}function WR(e,t={}){return oo(t)}var Er=R(q(),1);function HR({canvasId:e}={}){let t=Ou(),i=eo(),n=(0,Er.useMemo)(()=>e?[e]:t?[t.id]:i.map(m=>m.id),[e,t,i]),[r,a]=(0,Er.useState)({}),l=pa();(0,Er.useEffect)(()=>{let m=h=>{let y=h.partOf.canvasId;y&&a(S=>({...S,[y]:h.choice}))};return l.on("choice-change",m),()=>{l.off("choice-change",m)}},[]);let c=(0,Er.useMemo)(()=>{let m=[];for(let h of n){let y=r[h];y&&m.push({canvasId:h,choice:y})}return m},[n,r]),p=(0,Er.useMemo)(()=>({makeChoice:(m,h)=>{l.emit("make-choice",{choiceId:m,...h})}}),[l]);return{choices:c,actions:p}}function qR(e,t=!1){}function QR(e){let i=Xt().manifest,n=e?e.map(r=>typeof r=="string"?r:r?.id):[];return De(r=>{let a=i?r.iiif.entities.Manifest[i]:void 0,l=a?.items||[];if(typeof e>"u")return l;let c=[];for(let p of a?.items||[])n.indexOf(p.id)!==-1&&c.push(p);return c},[n.join("/")])}var b1=R(q(),1);function $R(e,t=[]){let{id:i,selector:n}=e,r=Xt(),a=i||r.collection,l=De(c=>a?c.iiif.entities.Collection[a]:void 0,[a]);return(0,b1.useMemo)(()=>{if(l)return n?n(l):l},[l,n,...t])}var Yc=R(q(),1);function GR(e,t,i,n,r=[]){let a=_e(),l=(0,Yc.useMemo)(()=>ma(a),[a]);(0,Yc.useEffect)(()=>{let c=e;return c?(l.addEventListener(c,t,i,n),()=>{l.removeEventListener(c,t,i)}):()=>{}},[l,e,t,...r])}function YR(e,t){let{id:i,isLoaded:n,error:r,resource:a,requestId:l,cached:c}=aa(e,t);return{id:i,isLoaded:n,error:r,manifest:a,requestId:l,cached:c}}var En=R(q(),1);function Qm({cacheKey:e}={}){let t=Ce(),i=oo(),n=_e(),r=ss(),a=gw(),[l,c]=(0,En.useState)(void 0),[p,m]=(0,En.useState)(!1),[h,y]=(0,En.useState)("idle"),[S,w]=(0,En.useState)(void 0),v=t?t.id:"undefined",x=(0,En.useMemo)(()=>{try{if(t&&i.length){let C=i[0],I=n.get(C.body[0]),L=zn(I)[0];return L&&r(L,{width:L.width||t.width,height:L.height||t.height},!0)||void 0}}catch(C){console.error(C)}},[v,e,t]),A=h==="success"&&l?l:x;return(0,En.useEffect)(()=>{(async()=>{try{if(t&&i.length){let C=i[0],I=n.get(C.body[0]),L=zn(I)[0];if(!L)return;m(!0),y("loading");try{let z=await a(L,{width:L.width||t.width,height:L.height||t.height})||void 0;c(z),y("success"),m(!1)}catch(z){y("error"),w(z)}}}catch(C){y("error"),w(C)}})()},[v,e]),(0,En.useMemo)(()=>({data:A,isFetching:p,status:h,error:S}),[A,p,h,S])}function XR(){let e=Qm();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var C1=R(q(),1);function KR(){let e=_e();return(0,C1.useMemo)(()=>yr(e),[e])}return jb(ZR);})();
|
|
125
125
|
/*! Bundled license information:
|
|
126
126
|
|
|
127
127
|
normalize-wheel/src/isEventSupported.js:
|
package/dist/canvas-panel.cjs
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
justify-content: center;
|
|
13
13
|
pointer-events: visible;
|
|
14
14
|
}
|
|
15
|
-
`}),(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 kt({model:e,name:n}){return L("overlay",`model-${n}`,un,{model:e},[e]),null}var ko=require("react/jsx-runtime");function Eo(){let{strategy:e}=M();return e.type!=="3d-model"?null:(0,ko.jsx)(kt,{model:e.model})}var fe=require("react/jsx-runtime");function No({children:e}){let{strategy:n}=M(),[t]=cr();return n.type!=="images"?null:(0,fe.jsxs)(fe.Fragment,{children:[t?(0,fe.jsx)(Be,{page:t}):null,n.annotations&&n.annotations.pages?n.annotations.pages.map(r=>(0,fe.jsx)(Be,{page:r},r.id)):null,e]})}var _e=require("react"),Nt=require("react/jsx-runtime"),ki=(0,_e.createContext)(null),Ni=(0,_e.createContext)(null),Li=(0,_e.createContext)(null);function Lt({actions:e,state:n,children:t,currentTime:r,progress:o,element:a}){return
|
|
15
|
+
`}),(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 kt({model:e,name:n}){return L("overlay",`model-${n}`,un,{model:e},[e]),null}var ko=require("react/jsx-runtime");function Eo(){let{strategy:e}=M();return e.type!=="3d-model"?null:(0,ko.jsx)(kt,{model:e.model})}var fe=require("react/jsx-runtime");function No({children:e}){let{strategy:n}=M(),[t]=cr();return n.type!=="images"?null:(0,fe.jsxs)(fe.Fragment,{children:[t?(0,fe.jsx)(Be,{page:t}):null,n.annotations&&n.annotations.pages?n.annotations.pages.map(r=>(0,fe.jsx)(Be,{page:r},r.id)):null,e]})}var _e=require("react"),Nt=require("react/jsx-runtime"),ki=(0,_e.createContext)(null),Ni=(0,_e.createContext)(null),Li=(0,_e.createContext)(null);function Lt({actions:e,state:n,children:t,currentTime:r,progress:o,element:a}){return(0,Nt.jsx)(Li.Provider,{value:{currentTime:r,progress:o,element:a},children:(0,Nt.jsx)(Ni.Provider,{value:e,children:(0,Nt.jsx)(ki.Provider,{value:n,children:t})})})}var Lo=require("react");var zo=require("@iiif/helpers");function zt(){let e=k(),n=b();return(0,Lo.useMemo)(()=>{if(!e||!n||!e.start)return null;let t=(0,zo.expandTarget)(e.start);return!t||t.source.id!==n.id||!t||!t.selector||t.selector.type!=="TemporalSelector"?null:t.selector.temporal},[e,n])}var Dt=require("react/jsx-runtime");function cn({media:e,startTime:n,children:t}){let[{element:r,currentTime:o,progress:a},i,s]=we({duration:e.duration}),u=n?`${e.url}#t=${n}`:e.url;return(0,Dt.jsxs)(Lt,{state:i,actions:s,currentTime:o,progress:a,element:r,children:[(0,Dt.jsx)("audio",{ref:r,src:u}),t]},e.url)}function Ot({media:e,mediaControlsDeps:n,audioCopmonent:t=cn,children:r}){let o=zt();return L("portal","audio",t,{media:e,startTime:o?o.startTime:null,children:r},[e,o,...n||[]]),null}var ln=require("react/jsx-runtime");function Ne({x:e=0,y:n=0}){let t=b(),r=Ee({maxWidth:256,maxHeight:256});return!t||!r||r.type!=="fixed"?null:(0,ln.jsx)("world-object",{height:t.height,width:t.width,x:e,y:n,children:(0,ln.jsx)("world-image",{uri:r.id,target:{x:0,y:0,width:t.width,height:t.height},display:r.width&&r.height?{width:r.width,height:r.height}:void 0,crop:void 0})})}var pe=require("react/jsx-runtime");function Oo({as:e}){let{strategy:n}=M(),{renderMediaControls:t,mediaControlsDeps:r}=F();return n.type!=="media"||n.media.type!=="Sound"?null:(0,pe.jsx)(pe.Fragment,{children:(0,pe.jsxs)(Ot,{media:n.media,mediaControlsDeps:r,audioCopmonent:e,children:[(0,pe.jsx)(Ne,{}),t?t(n):null]},n.media.url)})}var te=require("react/jsx-runtime");function Do(){let{strategy:e}=M(),{renderViewerControls:n,viewControlsDeps:t}=F(),r=b(),o=r?.accompanyingCanvas,a=r?.placeholderCanvas;return(0,te.jsxs)(te.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&o?(0,te.jsx)(G,{canvas:o.id,children:(0,te.jsx)(ge,{renderViewerControls:n,viewControlsDeps:t})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!o?(0,te.jsx)(G,{canvas:a.id,children:(0,te.jsx)(ge,{renderViewerControls:n,viewControlsDeps:t})}):null]})}var Ye=require("react/jsx-runtime");function mn({element:e,media:n,startTime:t,playPause:r,poster:o}){let a="div",i=t?`${n.url}#t=${t}`:n.url;return(0,Ye.jsxs)(a,{className:"video-container",part:"video-container",onClick:r,children:[(0,Ye.jsx)("style",{children:`
|
|
16
16
|
.video-container {
|
|
17
17
|
position: absolute;
|
|
18
18
|
top: 0;
|
package/dist/canvas-panel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{nb as a}from"./chunk-
|
|
1
|
+
import{nb as a}from"./chunk-XMMNKWGN.js";import"./chunk-XNDN34SQ.js";export{a as CanvasPanel};
|
|
@@ -14,7 +14,7 @@ import{c as Ct,l as xt}from"./chunk-XNDN34SQ.js";import{forwardRef as Ar,useImpe
|
|
|
14
14
|
justify-content: center;
|
|
15
15
|
pointer-events: visible;
|
|
16
16
|
}
|
|
17
|
-
`}),mt("div",{className:"model-container",children:mt("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Fe({model:e,name:n}){return E("overlay",`model-${n}`,ft,{model:e},[e]),null}import{jsx as ga}from"react/jsx-runtime";function ir(){let{strategy:e}=M();return e.type!=="3d-model"?null:ga(Fe,{model:e.model})}import{Fragment as va,jsx as ar,jsxs as ha}from"react/jsx-runtime";function sr({children:e}){let{strategy:n}=M(),[t]=an();return n.type!=="images"?null:ha(va,{children:[t?ar(pe,{page:t}):null,n.annotations&&n.annotations.pages?n.annotations.pages.map(r=>ar(pe,{page:r},r.id)):null,e]})}import{createContext as gt,useContext as vt}from"react";import{jsx as pt}from"react/jsx-runtime";var ur=gt(null),cr=gt(null),lr=gt(null);function vp(){let e=vt(ur);if(!e)throw new Error("Ctx not found");return e}function hp(){let e=vt(cr);if(!e)throw new Error("Ctx not found");return e}function yp(){let e=vt(lr);if(!e)throw new Error("Ctx not found");return e}function De({actions:e,state:n,children:t,currentTime:r,progress:o,element:s}){return
|
|
17
|
+
`}),mt("div",{className:"model-container",children:mt("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function Fe({model:e,name:n}){return E("overlay",`model-${n}`,ft,{model:e},[e]),null}import{jsx as ga}from"react/jsx-runtime";function ir(){let{strategy:e}=M();return e.type!=="3d-model"?null:ga(Fe,{model:e.model})}import{Fragment as va,jsx as ar,jsxs as ha}from"react/jsx-runtime";function sr({children:e}){let{strategy:n}=M(),[t]=an();return n.type!=="images"?null:ha(va,{children:[t?ar(pe,{page:t}):null,n.annotations&&n.annotations.pages?n.annotations.pages.map(r=>ar(pe,{page:r},r.id)):null,e]})}import{createContext as gt,useContext as vt}from"react";import{jsx as pt}from"react/jsx-runtime";var ur=gt(null),cr=gt(null),lr=gt(null);function vp(){let e=vt(ur);if(!e)throw new Error("Ctx not found");return e}function hp(){let e=vt(cr);if(!e)throw new Error("Ctx not found");return e}function yp(){let e=vt(lr);if(!e)throw new Error("Ctx not found");return e}function De({actions:e,state:n,children:t,currentTime:r,progress:o,element:s}){return pt(lr.Provider,{value:{currentTime:r,progress:o,element:s},children:pt(cr.Provider,{value:e,children:pt(ur.Provider,{value:n,children:t})})})}import{useMemo as ya}from"react";import{expandTarget as Sa}from"@iiif/helpers";function $e(){let e=w(),n=A();return ya(()=>{if(!e||!n||!e.start)return null;let t=Sa(e.start);return!t||t.source.id!==n.id||!t||!t.selector||t.selector.type!=="TemporalSelector"?null:t.selector.temporal},[e,n])}import{jsx as Ca,jsxs as xa}from"react/jsx-runtime";function ht({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 xa(De,{state:i,actions:a,currentTime:o,progress:s,element:r,children:[Ca("audio",{ref:r,src:u}),t]},e.url)}function Ue({media:e,mediaControlsDeps:n,audioCopmonent:t=ht,children:r}){let o=$e();return E("portal","audio",t,{media:e,startTime:o?o.startTime:null,children:r},[e,o,...n||[]]),null}import{jsx as dr}from"react/jsx-runtime";function ce({x:e=0,y:n=0}){let t=A(),r=ue({maxWidth:256,maxHeight:256});return!t||!r||r.type!=="fixed"?null:dr("world-object",{height:t.height,width:t.width,x:e,y:n,children:dr("world-image",{uri:r.id,target:{x:0,y:0,width:t.width,height:t.height},display:r.width&&r.height?{width:r.width,height:r.height}:void 0,crop:void 0})})}import{Fragment as Aa,jsx as mr,jsxs as Ra}from"react/jsx-runtime";function fr({as:e}){let{strategy:n}=M(),{renderMediaControls:t,mediaControlsDeps:r}=L();return n.type!=="media"||n.media.type!=="Sound"?null:mr(Aa,{children:Ra(Ue,{media:n.media,mediaControlsDeps:r,audioCopmonent:e,children:[mr(ce,{}),t?t(n):null]},n.media.url)})}import{Fragment as Pa,jsx as Be,jsxs as ba}from"react/jsx-runtime";function pr(){let{strategy:e}=M(),{renderViewerControls:n,viewControlsDeps:t}=L(),r=A(),o=r?.accompanyingCanvas,s=r?.placeholderCanvas;return ba(Pa,{children:[e.type==="media"&&e.media.type==="Sound"&&o?Be(_,{canvas:o.id,children:Be(Z,{renderViewerControls:n,viewControlsDeps:t})}):null,e.type==="media"&&e.media.type==="Sound"&&s&&!o?Be(_,{canvas:s.id,children:Be(Z,{renderViewerControls:n,viewControlsDeps:t})}):null]})}import{jsx as gr,jsxs as Ta}from"react/jsx-runtime";function yt({element:e,media:n,startTime:t,playPause:r,poster:o}){let s="div",i=t?`${n.url}#t=${t}`:n.url;return Ta(s,{className:"video-container",part:"video-container",onClick:r,children:[gr("style",{children:`
|
|
18
18
|
.video-container {
|
|
19
19
|
position: absolute;
|
|
20
20
|
top: 0;
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var ka=Object.create;var Yt=Object.defineProperty;var Ma=Object.getOwnPropertyDescriptor;var Ea=Object.getOwnPropertyNames;var Na=Object.getPrototypeOf,Va=Object.prototype.hasOwnProperty;var La=(e,t)=>{for(var n in t)Yt(e,n,{get:t[n],enumerable:!0})},_t=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ea(t))!Va.call(e,r)&&r!==n&&Yt(e,r,{get:()=>t[r],enumerable:!(o=Ma(t,r))||o.enumerable});return e},p=(e,t,n)=>(_t(e,t,"default"),n&&_t(n,t,"default")),j=(e,t,n)=>(n=e!=null?ka(Na(e)):{},_t(t||!e||!e.__esModule?Yt(n,"default",{value:e,enumerable:!0}):n,e)),za=e=>_t(Yt({},"__esModule",{value:!0}),e);var f={};La(f,{AnnotationContext:()=>Ms,AnnotationPageContext:()=>Es,AnnotationStyleProvider:()=>Ts,Auth:()=>eo,AuthProvider:()=>Zn,AuthRContext:()=>Ne,AuthReactContext:()=>Mr,AuthReactContextActions:()=>Er,CanvasAnnotations:()=>ps,CanvasContext:()=>oe,CanvasPanel:()=>F,CanvasStrategyProvider:()=>Mo,CanvasWorldObject:()=>Eo,CollectionContext:()=>Ns,CombinedMetadata:()=>gs,ComplexTimelineProvider:()=>Oo,ContextBridge:()=>ao,ControlsReactContext:()=>Nt,CreateCustomShape:()=>lr,CustomContextBridge:()=>Ur,CustomContextBridgeProvider:()=>Qa,EventsProvider:()=>Ka,Image:()=>ma,ImageService:()=>ws,ImageServiceLoaderContext:()=>ji,InnerViewerProvider:()=>Br,LanguageProvider:()=>rs,LanguageString:()=>zi,LocaleString:()=>te,ManifestContext:()=>qn,ManifestMetadata:()=>ys,MediaPlayerProvider:()=>Ot,Metadata:()=>Wt,PolygonSelector:()=>Is,RangeContext:()=>Wn,ReactEventContext:()=>Ve,ReactVaultContext:()=>ve,Render3DModelStrategy:()=>$o,RenderAccompanyingCanvas:()=>Qo,RenderAnnotationStrategy:()=>Uo,RenderAudioStrategy:()=>Ko,RenderComplexTimelineStrategy:()=>Bo,RenderEmptyStrategy:()=>No,RenderImageStrategy:()=>qo,RenderSvgEditorControls:()=>bs,RenderTextualContentStrategy:()=>Do,RenderVideoStrategy:()=>Go,RenderYouTubeStrategy:()=>Xo,ResourceProvider:()=>$,ResourceReactContext:()=>lt,SelectorControllerProvider:()=>Rs,SequenceThumbnails:()=>xs,SimpleViewerProvider:()=>no,SimpleViewerReactContext:()=>Xe,SingleCanvasThumbnail:()=>er,StrategyReactContext:()=>Et,ThumbnailFallbackImage:()=>We,TranslationProvider:()=>os,TransliterationProvider:()=>is,VaultProvider:()=>we,ViewerPresetContext:()=>re,VirtualAnnotationProvider:()=>uo,VisibleCanvasReactContext:()=>Me,authDetailsForResource:()=>jn,createAuthStateStore:()=>Kn,createProbe:()=>Qn,defaultEmitter:()=>qr,emptyActions:()=>vo,emptyStrategy:()=>So,findAllCanvasesInRange:()=>jt,findFirstCanvasFromRange:()=>Ar,findManifestSelectedRange:()=>Ha,findSelectedRange:()=>$n,flattenAnnotationPageIds:()=>xo,formatTime:()=>hn,get3dStrategy:()=>Ro,getComplexTimelineStrategy:()=>Ao,getDefaultAnnotationStyles:()=>rr,getImageStrategy:()=>wt,getManifestSequence:()=>Gt,getParsedTargetSelector:()=>bt,getRenderingStrategy:()=>Io,getTextualContentStrategy:()=>kt,getVideoStrategy:()=>Mt,getVisibleCanvasesFromCanvasId:()=>Ba,hasAuth:()=>Da,makeAccessServiceRequest:()=>_n,makeAccessTokenRequest:()=>Xt,parseSpecificResource:()=>ja,svgThemes:()=>Sa,unknownResponse:()=>Rt,unsupportedStrategy:()=>E,useAnnotation:()=>xt,useAnnotationPage:()=>ho,useAnnotationPageManager:()=>At,useAnnotationStyles:()=>ar,useAnnotationsAtTime:()=>Vs,useAuthActions:()=>Nr,useAuthService:()=>Vr,useAuthStore:()=>je,useAuthToken:()=>qa,useAuthTokens:()=>Gn,useCanvas:()=>P,useCanvasChoices:()=>Ls,useCanvasClock:()=>zs,useCanvasSequence:()=>Un,useCanvasStartTime:()=>Ht,useCanvasSubset:()=>Os,useClosestLanguage:()=>Hi,useCollection:()=>Hs,useComplexTimeline:()=>cs,useContextBridge:()=>io,useCreateLocaleString:()=>as,useCurrentAuth:()=>Fa,useCustomContextBridge:()=>ro,useDispatch:()=>so,useEventEmitter:()=>yt,useEventListener:()=>Bs,useExistingVault:()=>ke,useExternalCollection:()=>Ds,useExternalManifest:()=>Fn,useExternalResource:()=>mt,useIIIFLanguage:()=>yn,useImage:()=>En,useImageService:()=>dr,useImageServiceLoader:()=>zt,useImageTile:()=>Fs,useIsAuthEnabled:()=>Jn,useLoadImageService:()=>It,useLocaleString:()=>Bi,useManifest:()=>z,useMediaActions:()=>us,useMediaElements:()=>ms,useMediaState:()=>ls,usePaintables:()=>bo,usePaintingAnnotations:()=>Oe,usePolygonHelper:()=>sr,useRange:()=>dt,useRenderControls:()=>_,useRenderingStrategy:()=>wo,useResourceContext:()=>W,useResourceEvents:()=>St,useResources:()=>Co,useSearchService:()=>to,useSelectorController:()=>or,useSelectorEmitter:()=>Ps,useSelectorEvents:()=>nr,useSelectorHelper:()=>As,useSimpleMediaPlayer:()=>Be,useSimpleViewer:()=>ht,useStrategy:()=>V,useStyleHelper:()=>qs,useStyles:()=>ze,useSvgEditor:()=>cr,useThumbnail:()=>he,useTranslations:()=>Lo,useTransliteration:()=>Vo,useVault:()=>T,useVaultEffect:()=>Fo,useVaultSelector:()=>w,useViewerPreset:()=>vt,useVirtualAnnotationPage:()=>co,useVirtualAnnotationPageContext:()=>lo,useVisibleCanvases:()=>Ee});module.exports=za(f);var Ft=require("react");var U=j(require("react"),1),rn=require("@atlas-viewer/atlas"),Xr=require("react-error-boundary");var ee=require("react");var Ye=j(require("react"),1),gr=require("react/jsx-runtime"),Oa={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},lt=Ye.default.createContext(Oa),W=()=>(0,Ye.useContext)(lt);function $({value:e,children:t}){let n=W(),o=(0,Ye.useMemo)(()=>({...n,...e}),[e,n]);return(0,gr.jsx)(lt.Provider,{value:o,children:t})}var Kt=j(require("react"),1),ut=require("@iiif/helpers/vault");var Dn=require("react/jsx-runtime"),ve=Kt.default.createContext({vault:null,setVaultInstance:e=>{}});function we({vault:e,vaultOptions:t,useGlobal:n,resources:o,children:r}){let[a,i]=(0,Kt.useState)(()=>e||(n?(0,ut.globalVault)(t):t?new ut.Vault(t):new ut.Vault));return(0,Dn.jsx)(ve.Provider,{value:{vault:a,setVaultInstance:i},children:(0,Dn.jsx)($,{value:o||{},children:r})})}var Hr=require("react"),Jt=require("react");var hr=require("@iiif/helpers/vault"),yr=require("react");function ke(e){let t=(0,yr.useContext)(ve);return e||(t&&t.vault?t.vault:(0,hr.globalVault)())}var Se=require("react");function mt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,o=ke(),[r,a]=(0,Se.useState)(n),[i,s]=(0,Se.useState)(void 0),l=(0,Se.useMemo)(()=>o.get(n,{skipSelfReturn:!0})||void 0,[n,o]),[u,c]=(0,Se.useState)(l);return(0,Se.useEffect)(()=>{(async()=>{try{let d=l&&!t?l:await o.load(n),v=d?d.id||d["@id"]:null;d&&r!==v&&a(v),c(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!u,id:r,requestId:n,error:i,resource:u,cached:!!(u&&u===l)}}function Fn(e,t){let{id:n,isLoaded:o,error:r,resource:a,requestId:i,cached:s}=mt(e,t);return{id:n,isLoaded:o,error:r,manifest:a,requestId:i,cached:s}}var vr=require("react/jsx-runtime");function qn({manifest:e,children:t}){return(0,vr.jsx)($,{value:{manifest:e},children:t})}var Sr=require("react/jsx-runtime");function oe({canvas:e,children:t}){return(0,Sr.jsx)($,{value:{canvas:e},children:t})}var Cr=require("react"),br=j(require("react"),1);var xr=require("react"),T=()=>{let{vault:e}=(0,xr.useContext)(ve);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Qt=require("react");function w(e,t=[]){let n=T(),[o,r]=(0,Qt.useState)(()=>e(n.getState(),n));return(0,Qt.useEffect)(()=>n.subscribe(a=>e(a,n),a=>{r(a)},!1),t),o}var Me=br.default.createContext([]);function Ee(){let e=(0,Cr.useContext)(Me);return w(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var Rr=require("react");function z(e={},t=[]){let{id:n,selector:o}=e,r=W(),a=T(),i=n||r.manifest,s=w(l=>i?l.iiif.entities.Manifest[i]:void 0,[i]);return(0,Rr.useMemo)(()=>{if(s)return o?o(s):s},[s,o,...t])}var Pr=require("react/jsx-runtime");function Wn({range:e,children:t}){return(0,Pr.jsx)($,{value:{range:e},children:t})}function Ar(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let o=Ar(e,e.get(n));if(o)return o}}return null}function jt(e,t){let n=[];for(let o of t.items)if(o.type==="SpecificResource"&&o.source?.type==="Canvas"&&(o.source.id.indexOf("#")!==-1?n.push({id:o.source.id.split("#")[0],type:"Canvas"}):n.push(o.source)),o.type==="Range"&&n.push(...jt(e,e.get(o))),o.type==="SpecificResource"){let r=typeof o.source=="string"?o.source:o.source.id;n.push({id:r,type:"Canvas"})}return n}function Ha(e,t,n){for(let o of t.structures){let r=$n(e,e.get(o),n);if(r)return r}return null}function $n(e,t,n){for(let o of t.items){let r=o?.source?.id?.split("#")[0];if(o.type==="SpecificResource"&&o.source===n||o.type==="SpecificResource"&&o.source?.type==="Canvas"&&n===r)return t;if(o.type==="Range"){let a=$n(e,e.get(o),n);if(a)return a}}return null}function Ba(e,t,n,o=!1){let r=t.behavior,a=n?e.get(n):null;if(!a)return[];let i=a.behavior,s=o?!1:r.includes("paged"),l=s?!1:r.includes("continuous"),u=s||l?!1:r.includes("individuals"),c=i.includes("facing-pages"),d=i.includes("non-paged");if(c||d||u||o)return[{id:a.id,type:"Canvas"}];let[v,y]=Gt(e,t);if(l)return v;let x=v.findIndex(g=>g.id===n);if(x===-1)return[];for(let g of y)if(g.includes(x))return g.map(S=>v[S]);return[{id:a.id,type:"Canvas"}]}function Gt(e,t,{disablePaging:n,skipNonPaged:o}={}){let r=t.behavior,a=r.includes("paged"),i=a?!1:r.includes("continuous"),s=a||i?!1:r.includes("individuals"),l=t.type==="Manifest"?t.items:jt(e,t);if(i)return[l,[l.map((x,g)=>g)]];if(s||!a||n)return[l,l.map((x,g)=>[g])];let u=[],c=[],d=()=>{c.length&&(u.push([...c]),c=[])},v=0,y=!1;for(let x=0;x<l.length;x++){let g=e.get(l[x]);if(g.behavior.includes("non-paged")){x===v&&v++,o||(d(),u.push([x]),d());continue}if(x===v||g.behavior.includes("facing-pages")){c.length&&(y=!0),d(),u.push([x]),d();continue}if(c.push(x),y){d(),y=!1;continue}c.length>1&&d()}return c.length&&d(),[l,u]}var ae=require("react");var Tr=require("react");function dt(e={},t=[]){let{id:n,selector:o}=e,r=W(),a=n||r.range,i=w(s=>a?s.iiif.entities.Range[a]:void 0,[a]);return(0,Tr.useMemo)(()=>{if(i)return o?o(i):i},[i,o,...t])}function Un({startCanvas:e,disablePaging:t}){let n=T(),o=z(),r=dt(),[a,i]=(0,ae.useState)(void 0),s=r||o;if(!s)throw new Error("Nothing selected");let[l,u]=(0,ae.useMemo)(()=>Gt(n,s,{disablePaging:t}),[n,s,t]),c=(0,ae.useRef)(u);if(c.current!==u){let S=c.current[a][0],h=u.findIndex(C=>C.includes(S));c.current=u,i(h)}let d=(0,ae.useCallback)(g=>{let S=u.findIndex(h=>h.includes(g));i(S===-1?0:S)},[l,u]),v=(0,ae.useCallback)(g=>{let S=l.findIndex(h=>h.id===g);S!==-1?d(S):i(0)},[l,u]),y=(0,ae.useCallback)(()=>{i(g=>g>=u.length-1?g:g+1)},[u]),x=(0,ae.useCallback)(()=>{i(g=>g<=0?0:g-1)},[u]);return typeof a>"u"&&(e?v(e):i(0)),{visibleItems:u[a]?.map(g=>l[g].id)||[],cursor:a,items:l,sequence:u,hasPrevious:a>0,hasNext:a<u.length-1,setSequenceIndex:i,setCanvasIndex:d,setCanvasId:v,next:y,previous:x}}var ce=require("react"),Qe=require("zustand");var Yn=require("zustand/vanilla");function Da(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function se(e,t,n){let o=t.findIndex(i=>i.service.id===e);if(o===-1)return t;let r=[...t],a=n(r[o]);return a===r[o]?t:(r[o]=a,r)}var Kn=()=>(0,Yn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let o=n.service.service.find(r=>r.type==="AuthAccessTokenService2");if(!o)throw new Error("Token service not found");e(()=>({authItems:se(n.id,t().authItems,r=>({...r,isPending:!0}))})),_n(n.service).then(()=>{Xt(o).then(r=>{let a=r.expiresIn,i=Date.now()+a*1e3;e(()=>({authItems:se(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:r.accessToken,expires:i}}))}))}).catch(r=>{e(()=>({authItems:se(n.id,t().authItems,a=>({...a,isLoggedIn:!1,isPending:!1,error:r.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let o=n.service.service.find(i=>i.type==="AuthLogoutService2");if(!o)return;let r=`${o.id}?origin=${Ir()}`,a=window.open(r);e(()=>({authItems:se(n.id,t().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,o=t().currentAuth+1;o>=n||e(()=>({currentAuth:o}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,o)=>{if(!n.service)return;let r=n.service.find(s=>s.type==="AuthAccessTokenService2"),a=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:se(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:a.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:o,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!r)throw new Error("Token service not found");Xt(r).then(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!r)throw new Error("Token service not found");e(()=>({authItems:se(n.id,t().authItems,s=>({...s,isPending:!0}))})),_n(a).then(()=>{Xt(r).then(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,o)=>{let r=t().currentAuth===t().authItems.findIndex(i=>i.service.id===n.id),a=t().currentAuth;if(r){let i=t().authItems.find(l=>l.service.id===n.id);i&&i.instances>1||(a=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:se(n.id,t().authItems,i=>({...i,instances:i.instances-1})),currentAuth:a}))}})),Qn=(e,t)=>(0,Yn.createStore)((n,o)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!o().service)return;let r=o().service?.id;if(!r){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let a=o().token;try{let i=await fetch(r,{headers:a?{Authorization:`Bearer ${o().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(i.status===200)n({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");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)n({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){n({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(r){n({token:r})}}));function jn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let o of t)if(o.type==="AuthProbeService2"){n.services.probe=o,n.hasAuth=!0;let r=o.service.filter(a=>a.type==="AuthAccessService2");r[0]&&(n.services.access=r[0])}return n}async function Xt(e,{strict:t=!0}={}){return new Promise((n,o)=>{let r=Math.random().toString(36).substring(7),a=`${e.id}?messageId=${r}&origin=${window.location.origin}`,i=u=>{let c=u.data;if(c.messageId===r){if(t&&c.type!=="AuthAccessToken2"){s(),o("Invalid response, expected type=AuthAccessToken2");return}if(!c.accessToken){s(),o("Invalid response, expected accessToken");return}s(),n(c)}},s=()=>window.removeEventListener("message",i),l=document.createElement("iframe");l.src=a,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",i)})}function Ir(e){let t=window.location;if(e){let n=document.createElement("a");return n.href=e,n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function _n(e){let t=`${e.id}?origin=${Ir()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((o,r)=>{let a=setInterval(()=>{n.closed&&(clearInterval(a),o())},500)})}var Ke=require("react");var wr=require("zustand");function kr(e){let t=(0,Ke.useMemo)(()=>jn(e),[e]),n=Gn(t.services.access?.id),o=(0,Ke.useMemo)(()=>Qn(t.services.probe,n),[t.services.probe]),r=(0,wr.useStore)(o);return(0,Ke.useEffect)(()=>{r.status==="unknown"&&!n&&r.probe()},[t.services.probe,r.status]),(0,Ke.useEffect)(()=>{n&&(r.setToken(n),r.probe())},[n]),[e,r,t.hasAuth]}var ft=require("react/jsx-runtime"),Ne=(0,ce.createContext)(null),Mr=(0,ce.createContext)(null);Mr.displayName="CurrentAuth";var Er=(0,ce.createContext)(null);Er.displayName="AuthActions";function Zn({children:e}){let t=(0,ce.useMemo)(()=>Kn(),[]);return(0,ft.jsx)(Ne.Provider,{value:t,children:e})}function Jn(){return!!(0,ce.useContext)(Ne)}function je(){let e=(0,ce.useContext)(Ne);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function Nr(){let e=je();return(0,Qe.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function Fa(){let e=je();return(0,Qe.useStore)(e,t=>t)}function Vr(e){let t=je();return(0,Qe.useStore)(t,o=>o.authItems.find(r=>r.service.id===e))}function Gn(e){let t=je();return(0,Qe.useStore)(t,o=>o.authItems.find(r=>r.id===e)?.session?.token)}function qa(e){let t=je();return(0,Qe.useStore)(t,o=>{let r=o.authItems.find(a=>a.service.id===e);return!r||!r.isLoggedIn||!r.session?null:r.session?.token||null})}function Wa(e){let t=Nr(),n=Vr(e.service.id);return(0,ce.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Xn(){return null}function eo(e){let[t,n,o]=kr(e.resource),r=e.fallbackComponent||Xn,a=e.loadingComponent||Xn,i=e.errorComponent||Xn,s=n.service,l=null;if(!o||!s)return e.children(t);let u=s.service.filter(c=>c.type==="AuthAccessService2");n.status==="error"&&(l=(0,ft.jsx)(i,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=(0,ft.jsx)(a,{})),n.status==="success"&&(l=e.children(t));for(let c of u)l=(0,ft.jsx)(Wa,{service:c,probeId:s.id,children:l},c.id);return l}var pt=require("react");var Lr=require("zustand/vanilla"),$a=e=>e.id||e["@id"];function Ua(e){return(Array.isArray(e.service)?e.service:[e.service]).find(n=>n.profile==="http://iiif.io/api/search/0/autocomplete"||n.profile==="http://iiif.io/api/search/1/autocomplete"||n.profile==="AutoCompleteService1")}var zr=e=>{let t;typeof e=="string"?t={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:t=e;let n=t?$a(t):void 0,o=null;return(0,Lr.createStore)((r,a)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ua(t):!1,errorMessage:"",search(i,s={}){if(!n)throw new Error("No search service found.");o&&!o.signal.aborted&&o.abort(),o=new AbortController;let l=new URLSearchParams;i.q&&l.set("q",i.q),i.motivation&&l.set("motivation",i.motivation),i.date&&l.set("date",i.date),i.user&&l.set("user",i.user),r({loading:!0}),fetch(`${n}?${l.toString()}`,{signal:o.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async u=>{if(!o?.signal.aborted)if(u.ok){let c=await u.json();r({resources:c.resources,error:!1,errorMessage:""})}else r({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){r({resources:[],error:!1,errorMessage:""})},highlightResult(i){let s=a().resources.find(l=>l["@id"]===i);r({highlight:s})},nextResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[0]||null});return}let l=i.findIndex(u=>u["@id"]===s["@id"]);if(l===-1){r({highlight:i[0]||null});return}r({highlight:i[l+1]||i[0]||null})},previousResult(){let i=a().resources,s=a().highlight;if(!s){r({highlight:i[i.length-1]||null});return}let l=i.findIndex(u=>u["@id"]===s["@id"]);if(l===-1){r({highlight:i[i.length-1]||null});return}if(l===0){r({highlight:i[i.length-1]||null});return}r({highlight:i[l-1]||i[i.length-1]||null})}}))};var _a=require("zustand");function to(){let e=z();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Zt=require("react/jsx-runtime"),Ge=(0,pt.createContext)(null);Ge.displayName="Search";function Or(e){let t=to();return e.store?(0,Zt.jsx)(Ge.Provider,{value:e.store,children:e.children}):(0,Zt.jsx)(Ya,{service:t,children:e.children})}function Ya({service:e,children:t}){let n=(0,pt.useMemo)(()=>zr(e),[e]);return(0,Zt.jsx)(Ge.Provider,{value:n,children:t})}var G=require("react/jsx-runtime"),gt=()=>{},Xe=(0,Jt.createContext)({setCurrentCanvasId:gt,setCurrentCanvasIndex:gt,nextCanvas:gt,previousCanvas:gt,items:[],sequence:[],setSequenceIndex:gt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Br(e){let t=z(),{cursor:n,visibleItems:o,next:r,sequence:a,items:i,setCanvasIndex:s,setCanvasId:l,previous:u,setSequenceIndex:c,hasNext:d,hasPrevious:v}=Un({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),y=(0,Jt.useMemo)(()=>({sequence:a,items:i,setCurrentCanvasId:l,nextCanvas:r,previousCanvas:u,totalCanvases:i.length,setCurrentCanvasIndex:s,setSequenceIndex:c,currentSequenceIndex:n,hasNext:d,hasPrevious:v}),[a,i,l,r,u,i,s,c,n]);return t?o.length===0?null:(0,G.jsx)(Xe.Provider,{value:y,children:(0,G.jsx)(Me.Provider,{value:o,children:(0,G.jsx)(oe,{canvas:o[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,G.jsx)("div",{children:"Sorry, something went wrong."}))}function no(e){let t=ke(e.vault),n=Fn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,G.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,G.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,G.jsx)("div",{children:"Loading..."});let o=(0,G.jsx)(Br,{...e,children:e.children});return(0,G.jsx)(we,{vault:t,children:(0,G.jsx)(qn,{manifest:n.id,children:(0,G.jsx)(Zn,{children:(0,G.jsx)(Or,{children:e.rangeId?(0,G.jsx)(Wn,{range:e.rangeId,children:o}):o})})})})}function ht(){return(0,Hr.useContext)(Xe)}var Dr=j(require("react"),1),en=require("react"),Fr=j(require("mitt"),1),Wr=require("react/jsx-runtime"),qr=(0,Fr.default)(),Ve=(0,en.createContext)({emitter:qr});Ve.displayName="Events";function yt(){return Dr.default.useContext(Ve).emitter}function Ka({emitter:e,children:t}){return(0,Wr.jsx)(Ve.Provider,{value:(0,en.useMemo)(()=>({emitter:e}),[e]),children:t})}var $r=j(require("react"),1),me=require("react/jsx-runtime"),oo=$r.default.createContext({});function ro(){let e=(0,ee.useContext)(oo),t=Object.keys(e),n={};for(let o of t)e[o].Provider&&(n[o]={value:(0,ee.useContext)(e[o]),Provider:e[o].Provider});return n}function Ur(e){let t=Object.keys(e),n=e.children;for(let o of t){if(o==="children")continue;let{value:r,Provider:a}=e[o];n=(0,me.jsx)(a,{value:r,children:n})}return n}function Qa(e){let t=(0,ee.useContext)(oo),n=(0,ee.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,me.jsx)(oo.Provider,{value:n,children:e.children})}function io(){return{VaultContext:(0,ee.useContext)(ve),ResourceContext:(0,ee.useContext)(lt),SimpleViewerReactContext:(0,ee.useContext)(Xe),VisibleCanvasReactContext:(0,ee.useContext)(Me),AuthRContext:(0,ee.useContext)(Ne),SearchReactContext:(0,ee.useContext)(Ge),ReactEventContext:(0,ee.useContext)(Ve)}}function ao(e){return(0,me.jsx)(we,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,me.jsx)(Me.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,me.jsx)(Xe.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,me.jsx)(Ve.Provider,{value:e.bridge.ReactEventContext,children:(0,me.jsx)(Ne.Provider,{value:e.bridge.AuthRContext,children:(0,me.jsx)(Ge.Provider,{value:e.bridge.SearchReactContext,children:e.custom?(0,me.jsx)(Ur,{...e.custom,children:e.children}):e.children})})})})})})}var Ze=require("react");var fe=require("react");var tn=require("@iiif/helpers/vault/actions");var _r=require("react");function so(){let t=T().getStore();return(0,_r.useMemo)(()=>n=>t.dispatch(n),[t])}function Yr(e){return typeof e!="string"&&e&&e.bindToVault}function co(){let e=T(),t=(0,fe.useRef)([]),n=so(),o=(0,fe.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,fe.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(tn.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[o]);let r=w(s=>o&&s.iiif.entities.AnnotationPage[o]||null,[o]),a=(0,fe.useCallback)((s,l)=>{if(o){if(Yr(s)){let d=s;d.__vault||d.bindToVault(e),s=typeof d.source=="string"?d.source:d.source.id,t.current[s]=d}else typeof s!="string"&&(s=s.id);let u=e.get({id:o,type:"AnnotationPage"}),c=e.get({id:s,type:"Annotation"});u&&c&&(u.items.find(d=>d.id===c.id)||n(tn.entityActions.addReference({id:o,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[o]),i=(0,fe.useCallback)(s=>{o&&(Yr(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(tn.entityActions.removeReference({id:o,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[o]);return[r,{addAnnotation:a,removeAnnotation:i}]}var Qr=require("react/jsx-runtime"),Kr=(0,Ze.createContext)(null);function lo(){let e=(0,Ze.useContext)(Kr);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function uo({children:e}){let[t,{addAnnotation:n,removeAnnotation:o}]=co();return(0,Qr.jsx)(Kr.Provider,{value:(0,Ze.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:o}),[t]),children:e})}var Je=require("react/jsx-runtime");function nn({width:e,style:t,height:n,error:o,resetErrorBoundary:r}){return(0,Je.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Je.jsx)("h3",{children:"Error occurred"}),(0,Je.jsx)("p",{children:o.message}),(0,Je.jsx)("button",{type:"button",onClick:r,children:"Reset"})]})}var on=require("react"),re=(0,on.createContext)(null);function vt(){return(0,on.useContext)(re)}var Le=require("react"),mo=(0,Le.createContext)(()=>{}),fo=(0,Le.createContext)(()=>{});function D(e,t,n,o,r=[]){let a=(0,Le.useContext)(e==="portal"?fo:mo);(0,Le.useEffect)(()=>(e!=="none"&&a(t,n,o),()=>{a(t,null)}),[t,e,a,...r])}var et=require("react");var jr=require("react");function P(e={},t=[]){let{id:n,selector:o}=e,r=W(),a=n||r.canvas,i=w(s=>a?s.iiif.entities.Canvas[a]:void 0,[a]);return(0,jr.useMemo)(()=>{if(i)return o?o(i):i},[i,o,...t])}var po=(0,et.createContext)(()=>{});function Gr(e){let t=P(),n=(0,et.useContext)(po);(0,et.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var O=require("react/jsx-runtime");function an({children:e,errorFallback:t,outerContainerProps:n={},worldScale:o,...r}){let[a,i]=(0,U.useState)(),s=ro(),l=io(),u=t||nn,[c,d]=(0,U.useState)({}),v=Object.entries(c),[y,x]=(0,U.useState)({}),g=Object.entries(y),[S,h]=(0,U.useState)({}),C=(0,U.useMemo)(()=>o||Math.max(...Object.values(S)),[S]),m=(0,U.useMemo)(()=>({maxOverZoom:C||1,...r.runtimeOptions||{}}),[C,r.runtimeOptions]),b=(0,U.useCallback)((I,R)=>{h(B=>{if(R===-1){let{[I]:_e,...k}=B;return k}return{...B,[I]:R}})},[]),A=(0,U.useCallback)((I,R,B)=>{d(({[I]:_e,...k})=>R?{...k,[I]:{element:R,props:B}}:k)},[]),M=(0,U.useCallback)((I,R,B)=>{x(({[I]:_e,...k})=>R?{...k,[I]:{element:R,props:B}}:k)},[]);return(0,O.jsxs)(Xr.ErrorBoundary,{resetKeys:[],fallbackRender:I=>(0,O.jsx)(u,{...r,...I}),children:[(0,O.jsx)(rn.AtlasAuto,{...r,containerProps:{style:{position:"relative"},...r.containerProps||{}},htmlChildren:(0,O.jsx)(O.Fragment,{children:v.map(([I,{element:R,props:B}])=>(0,O.jsx)(U.default.Fragment,{children:(0,O.jsx)(R,{...B||{}})},I))}),onCreated:I=>{i(I),r.onCreated&&r.onCreated(I)},runtimeOptions:m,children:(0,O.jsx)(re.Provider,{value:a,children:(0,O.jsx)(po.Provider,{value:b,children:(0,O.jsx)(mo.Provider,{value:A,children:(0,O.jsx)(fo.Provider,{value:M,children:(0,O.jsx)(ao,{bridge:l,custom:s,children:(0,O.jsx)(rn.ModeContext.Provider,{value:r.mode||"explore",children:(0,O.jsx)(uo,{children:e})})})})})})})}),(0,O.jsx)("div",{children:g.map(([I,{element:R,props:B}])=>(0,O.jsx)(U.default.Fragment,{children:(0,O.jsx)(R,{...B||{}})},I))})]})}var sn=require("@atlas-viewer/atlas");var go=require("react"),Zr=require("@iiif/helpers/events");function St(e,t){let n=T(),o=(0,go.useMemo)(()=>(0,Zr.createEventsHelper)(n),[n]),r=w(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,go.useMemo)(()=>e?o.getListenersAsProps(e,t):{},[r,e,n,t])}var Jr=require("react"),ei=require("@iiif/helpers/styles");function ze(e,t){let n=T(),o=(0,Jr.useMemo)(()=>(0,ei.createStylesHelper)(n),[n]);return w(()=>{if(!e)return null;let r=o.getAppliedStyles(e.id);return r?t?r[t]:r:void 0},[e,t])}var oi=require("react");var ti=require("react");var ni=require("@iiif/helpers/annotation-targets");function xt(e={},t=[]){let{id:n,selector:o}=e,r=W(),a=T(),i=n||r.annotation,s=w(u=>i?u.iiif.entities.Annotation[i]:void 0,[i]),l=w(u=>s&&s.body?s.body.map(c=>c?c.type==="SpecificResource"?{...c,source:a.get(c)}:c?u.iiif.entities[c.type][c.id]:null:null).filter(Boolean):[],[s]);return(0,ti.useMemo)(()=>{if(!s)return;let u={...s,body:l,target:(0,ni.expandTarget)(s.target,{typeMap:a.getState().iiif.mapping})};return o?o(u):u},[s,o,l,...t])}var ri=require("react/jsx-runtime"),cn=({id:e,style:t,className:n,interactive:o})=>{let r=xt({id:e}),a=ze(r,"atlas"),i=ze(r,"html"),s=St(r,["atlas"]),l=P(),u=(0,oi.useMemo)(()=>(0,sn.mergeStyles)(t,a),[t,a]);return l&&r&&r.target&&r.target.selector&&r.target.selector.type==="BoxSelector"&&r.target.source&&(r.target.source.id===l.id||r.target.source===l.id)?(0,ri.jsx)(sn.RegionHighlight,{id:r.id,isEditing:!0,region:r.target.selector.spatial,style:u,className:i?.className||n,interactive:!!(i?.href||o),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...s}):null};var ai=require("react");var ii=require("react");function ho(e={},t=[]){let{id:n,selector:o}=e,r=W(),a=n||r.annotationPage,i=w(s=>a?s.iiif.entities.AnnotationPage[a]:void 0,[a]);return(0,ii.useMemo)(()=>{if(i)return o?o(i):i},[i,...t])}var yo=require("react/jsx-runtime"),Ct=({className:e,page:t})=>{let n=ho({id:t.id})||t,o=ze(n,"atlas"),r=ze(n,"html");return w(a=>n.id?a.iiif.entities.AnnotationPage[n.id]:null,[]),(0,yo.jsx)(ai.Fragment,{children:n.items?.map(a=>(0,yo.jsx)(cn,{id:a.id,style:o,className:r?.className||e},a.id))})};var xe=require("react");var nt=require("react");var si=require("@iiif/helpers");function ja(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function bt(e,t){let{selector:n,source:o}=(0,si.expandTarget)(t);if(o.id!==e.id)return[null,o];let r={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:r.spatial}:n:null,o]}var vo={makeChoice:()=>{}},Rt={type:"unknown"},E=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),So=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Pt=require("react");function Ga(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function ci(e,t){return w(n=>{let o=[];if(!e)return o;let r=Object.keys(n.iiif.entities.AnnotationPage);for(let a of r)if(!t||t.indexOf(a)!==-1){let i=Ga(n,a);i&&i.views&&i.views[e]&&o.push(a)}return o},[e,t])}function xo({canvas:e,manifest:t,all:n,canvases:o}){let r=[];if(t)for(let a of t.annotations)r.indexOf(a.id)===-1&&r.push(a.id);if(n){if(o&&o.length)for(let a of o)for(let i of a.annotations)r.indexOf(i.id)===-1&&r.push(i.id)}else if(e)for(let a of e.annotations)r.indexOf(a.id)===-1&&r.push(a.id);return r}function Xa(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function At(e,t={}){let n=T(),o=z(),r=P(),a=Ee(),i=(0,Pt.useMemo)(()=>xo({all:t.all,manifest:o,canvas:r,canvases:a}),[t.all,r,a,o]),s=ci(e,t.all?void 0:i),l=(0,Pt.useCallback)(c=>{e&&n.setMetaValue([c,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),u=(0,Pt.useCallback)((c,d={})=>{if(!e)return;let v=n.getState(),y=[];if(d?.deselectOthers){let x=Object.keys(v.iiif.entities.AnnotationPage);for(let g of x){let S=Xa(v,g);S&&S.views&&S.views[e]&&y.push(g)}}for(let x of y)l(x);n.setMetaValue([c,"annotationPageManager","views"],x=>x&&x[e]?x:{...x||{},[e]:!0})},[e,l,n]);return{availablePageIds:i,enabledPageIds:s,setPageEnabled:u,setPageDisabled:l}}function Co(e,t){return w((n,o)=>o.get(e.map(r=>({id:r,type:t}))),[e,t])}var pi=j(require("mitt"),1),gi=require("react"),hi=require("zustand");var ln=j(require("react"),1),li=require("@iiif/helpers/image-service"),Tt=require("zustand"),ui=ln.default.createContext(li.imageServices.store);ui.displayName="ImageServicesHelper";function un(){return(0,ln.useContext)(ui)}function mi(e){let t=un();return(0,Tt.useStore)(t,({loaded:n})=>n[e])}function tt(){let e=un();return(0,Tt.useStore)(e,({loadServiceSync:t})=>t)}function di(){let e=un();return(0,Tt.useStore)(e,({loaded:t})=>t)}function fi(){let e=un();return(0,Tt.useStore)(e,({loadService:t})=>t)}var Za=(0,hi.createStore)((e,t)=>({loaded:{},setLoaded:(n,o="done")=>{e(r=>({loaded:{...r.loaded,[n]:o}}))}})),Ja=(0,pi.default)();Ja.on("loaded",e=>{Za.getState().setLoaded(e.imageServiceId)});function It(){let e=tt(),t=di();return[(0,gi.useCallback)((o,{height:r,width:a})=>o&&e(o,{height:r,width:a},!0),[e]),t]}var He=require("react");function Oe(e={}){let t=xt(),n=P(e.canvasId?{id:e.canvasId}:void 0);return w((o,r)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let a=r.get(n.items),i=[];for(let s of a)i.push(...r.get(s.items));return i},[n])}var yi=require("@iiif/helpers/painting-annotations");function bo(e,t=[]){let n=T(),o=(0,He.useMemo)(()=>(0,yi.createPaintingAnnotationsHelper)(n),[]),r=Oe({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,i]=(0,He.useState)(e?.defaultChoices||[]),s=(0,He.useMemo)(()=>o.getPaintables(r,a),[n,r,a,...t]),u={makeChoice:(0,He.useCallback)((c,{deselectOthers:d=!0,deselect:v=!1}={})=>{s.choice&&i(y=>{if(v){let g=y.filter(S=>S!==c);if(g.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return g}if(d)return[c];let x=[...y];if(x.length===0&&s.items.length){let g=s.items[0].resource.id;g&&x.push(g)}return y.indexOf(c)!==-1?y:[...y,c]})},[s.choice])};return[s,u]}var es=["model/gltf-binary"];function Ro(e,t){let n=t.items[0],o=n.resource;return o.format?es.indexOf(o.format)===-1?E(`3D format: ${o.format} is unsupported`):{type:"3d-model",model:o,annotationId:n.annotationId,annotation:n.annotation}:E("Unknown format")}function vi(e,t){let n=t.items,o=n[0];if(n.length===0||!o)return E("No audio");if(!e.duration)return E("No duration on canvas");if(n.length>1)return E("Only one audio source supported");let r=o.resource;return r?"format"in r?{type:"media",media:{annotationId:o.annotationId,annotation:o.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:E("Audio does not have format"):E("Unknown audio")}var Si=require("@iiif/parser/image-3");var Po=require("@iiif/helpers/annotation-targets");function wt(e,t,n){let o=[];for(let r of t.items){let a=r.resource&&r.resource.type==="SpecificResource"?r.resource.source:r.resource;if(!a.id)return E("No resource Identifier");let i;if(a.service){let g=(0,Si.getImageServices)(a);g[0]&&(i=n(g[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[l,u]=bt(e,r.target),c=e.id?.split("?")[0]||"";if(!(u.id===e.id||decodeURIComponent(u.id||"")===(e.id||"")||u.id===c||decodeURIComponent(u.id||"")===c))continue;let d=r.resource.width&&r.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:r.resource.width,height:r.resource.height}}:void 0,v=r.resource.type==="SpecificResource"?(0,Po.expandTarget)(r.resource):null;if(r.selector){let g=(0,Po.expandTarget)({type:"SpecificResource",source:r.resource,selector:r.selector});g&&(v=g)}let y=v&&v.selector&&(v.selector.type==="BoxSelector"||v.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:v.selector.spatial.x,y:v.selector.spatial.y,width:v.selector.spatial.width,height:v.selector.spatial.height}}:void 0;i&&!i.id&&(i.id=i["@id"]);let x={id:a.id,type:"Image",annotationId:r.annotationId,annotation:r.annotation,width:Number(l||y?a.width:e.width),height:Number(l||y?a.height:e.height),service:i,sizes:i&&i.sizes?i.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:l&&l.type!=="PointSelector"?l:s,selector:y||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};o.push(x)}return{type:"images",image:o[0],images:o,choice:t.choice}}function xi(e,t={},n){let o=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[o]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(r=>xi(r,t,o))}return t}function kt(e,t){let n=[];return t.items.forEach(o=>{if(o.resource){let[r]=bt(e,o.target);n.push({type:"Text",annotationId:o.annotationId,annotation:o.annotation,text:xi(o.resource),target:r})}}),{type:"textual-content",items:n}}var mn=require("@iiif/helpers"),ts=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Mt(e,t,n){let o=t.items.filter(y=>y.type==="video"),r=o[0],a=!1;if(e.duration||(a=!0),o.length>1||!r)return E("Only one video source supported");let i=o[0]?.resource,s=!!(i.service||[]).find(y=>(y.profile||"").includes("youtube.com"));if(!s&&a)return E("Video does not have duration");if(!i)return E("Unknown video");if((!i.format||i.format==="text/html")&&!s)return E("Video does not have format");let l=[],u=n.get(e.annotations||[]);for(let y of u){let x=n.get(y.items||[]);for(let g of x)if((g.motivation?Array.isArray(g.motivation||"")?g.motivation:[g.motivation]:[]).includes("supplementing")){let h=n.get(g.body||[]);for(let C of h){let m=C;if(m.type==="Choice")for(let b of m.items){let A=n.get(b);A.format==="text/vtt"&&l.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else m.format==="text/vtt"&&l.push({id:m.id,type:"Text",format:"text/vtt",label:m.label,language:m.language})}}}let c={annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:i.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},d=(0,mn.expandTarget)(r.target);d.selector&&d.selector.type==="TemporalBoxSelector"&&(c.target=d.selector);let{selector:v}=(0,mn.parseSelector)(r.selector);if(v===null){let y=c.target.temporal.startTime,g=(c.target.temporal.endTime||e.duration)-y;c.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:g}}}else v.type==="TemporalSelector"&&(c.selector=v);if(s){c.type="VideoYouTube";let y=i.id.match(ts);if(!y[1])return E("Video is not known youtube video");c.youTubeId=y[1]}return{type:"media",media:c,annotations:{pages:[]},captions:l}}function Ao(e,t,n,o){let r={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},a={type:"complex-choice",items:[]};function i(u){u.choice&&(u.choice.type==="complex-choice"?a.items.push(...u.choice.items):a.items.push(u.choice))}for(let u of t.items){if(u.type==="image"){let c=wt(e,{choice:null,allChoices:null,types:["image"],items:[u]},n);if(c.type==="images"){i(c),r.items.push(c.image);let d={id:c.image.annotationId,type:"enter",resourceType:"image",time:c.image.target?.temporal?.startTime||0};r.keyframes.push(d);let v={id:c.image.annotationId,type:"exit",resourceType:"image",time:c.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}if(u.type==="textualbody"){let c=kt(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(c.type==="textual-content"){i(c);let d=c.items[0];r.items.push(d);let v=d.target,y={id:d.annotationId,type:"enter",resourceType:"text",time:v.temporal?.startTime||0};r.keyframes.push(y);let x={id:d.annotationId,type:"exit",resourceType:"text",time:v.temporal?.endTime||e.duration||0};r.keyframes.push(x)}}if(u.type==="video"){let c=Mt(e,{choice:null,allChoices:null,types:["video"],items:[u]},o);if(c.type==="media"){i(c);let d=c.media;r.items.push(d);let v={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};r.keyframes.push(v);let y={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};r.keyframes.push(y)}}}r.keyframes.sort((u,c)=>u.time-c.time);let s=[],l=[];for(let u of r.keyframes){if(u.resourceType==="image"||u.resourceType==="text"){l.push(u);continue}if(u.type==="enter"){s.length===0&&(u.isPrime=!0),s.push(u),l.push(u);continue}if(u.type==="exit"&&(l.push(u),s=s.filter(c=>c.id!==u.id),s.length!==0)){let c=s[0],d={id:c.id,type:"change",isPrime:!0,resourceType:c.resourceType,time:u.time};l.push(d)}}return r.keyframes=l,a.items.length&&(r.choice=a),r}var dn={},To={get(e){return e},setMetaValue([e,t,n],o){let r=To.getResourceMeta(e,t),a=r?r[n]:void 0,i=typeof o=="function"?o(a):o;dn[e]={...dn[e]||{},[t]:{...(dn[e]||{})[t]||{},[n]:i}}},getResourceMeta:(e,t)=>{let n=dn[e];if(n)return t?n[t]:n},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(n=>n.json())},requestStatus(e){}};function Io({canvas:e,paintables:t,supports:n,loadImageService:o,vault:r=To}){if(!e)return Rt;if(t.types.length===0)return n.indexOf("empty")!==-1?So(e.width,e.height):Rt;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?E("Complex timeline not supported"):Ao(e,t,o,r);let a=t.types[0];return a==="image"?n.indexOf("images")===-1?E("Image not supported"):wt(e,t,o):a==="Model"||a==="model"?n.indexOf("3d-model")===-1?E("3D not supported"):Ro(e,t):a==="textualbody"?n.indexOf("textual-content")===-1?E("Textual content not supported"):kt(e,t):a==="sound"||a==="audio"?n.indexOf("media")===-1?E("Media not supported"):vi(e,t):a==="video"?n.indexOf("media")===-1?E("Media not supported"):Mt(e,t,r):Rt}function wo(e){let t=z(),n=P(),o=T(),r=yt(),a=e?.emitter||r,[i,s]=It(),{enabledPageIds:l}=At(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=Co(l,"AnnotationPage"),c=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,v]=bo(e,[s]);(0,nt.useEffect)(()=>{let x=g=>{v.makeChoice(g.choiceId,{deselectOthers:g.deselectOthers,deselect:g.deselect})};return a.on("make-choice",x),()=>{a.off("make-choice",x)}},[]);let y=(0,nt.useMemo)(()=>Io({canvas:n,paintables:d,supports:c,loadImageService:i,vault:o}),[n,d,o,v.makeChoice]);return(0,nt.useEffect)(()=>{let x=d.allChoices,g={canvasId:n?.id,manifestId:t?.id};x&&a.emit("choice-change",{choice:x,partOf:g})},[n?.id,d.allChoices]),(0,nt.useMemo)(()=>y.type==="unknown"?[y,vo]:[{...y,annotations:{pages:u}},v],[y,u])}var fn=require("react"),Et=(0,fn.createContext)(null);Et.displayName="Strategy";function V(){let e=(0,fn.useContext)(Et);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ci=require("@iiif/helpers");var pn=require("react"),Nt=(0,pn.createContext)(null);Nt.displayName="Controls";function _(){let e=(0,pn.useContext)(Nt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var ko=require("react/jsx-runtime");function Mo({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:o,mediaControlsDeps:r,renderMediaControls:a,renderViewerControls:i,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,throwOnUnknown:c,children:d}){let v=P(),y=T(),x=(0,xe.useMemo)(()=>(0,Ci.createStylesHelper)(y),[y]),[g,S]=wo({strategies:e||["images"],defaultChoices:n?.map(({id:b})=>b)}),h="choice"in g?g.choice:void 0;if((0,xe.useEffect)(()=>{t&&t(S)},[g.annotations]),(0,xe.useEffect)(()=>{o&&o(h)},[h]),(0,xe.useEffect)(()=>{if(n)for(let b of n)typeof b.opacity<"u"&&x.applyStyles({id:b.id},"atlas",{opacity:b.opacity})},[n]),g.type==="unknown"&&c)throw new Error(g.reason||"Unknown strategy");let C=(0,xe.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:r||[],renderViewerControls:i,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:u||[]}),[r,a,i,s,l,u]),m=(0,xe.useMemo)(()=>({strategy:g,actions:S,choices:"choice"in g?g.choice:[]}),[g,v]);return(0,ko.jsx)(Nt.Provider,{value:C,children:(0,ko.jsx)(Et.Provider,{value:m,children:d})})}var bi=require("react");var Ri=require("react/jsx-runtime");function Eo({x:e=0,y:t=0,keepCanvasScale:n,children:o}){let{strategy:r}=V(),a=P(),i=St(a,["deep-zoom"]),s=(0,bi.useMemo)(()=>n?1:Math.max(1,...r.type==="images"?r.images.map(u=>(u.width||0)/u.target?.spatial.width):[]),[n,r]);Gr(s);let l=r.type==="images"?r.images.length:0;return a?(0,Ri.jsx)("world-object",{height:a.height,width:a.width,x:e,y:t,...i,children:o},`${a.id}/${r.type}/${l}`):null}var Pi=require("react/jsx-runtime");function gn({style:e}){let t=P();return!t||!t.height||!t.width?null:(0,Pi.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ai=require("react/jsx-runtime");function No({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=V();return n.type!=="empty"&&!t?null:(0,Ai.jsx)(gn,{style:e})}var xn=require("react");var wi=j(require("mitt"),1);var L=require("react");function Ti(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function ns(e,t){switch(t.type){case"RESET":return t.state;case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function hn(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Be(e){let[t,n]=(0,L.useReducer)(ns,Ti(e.duration));(0,L.useEffect)(()=>{n({type:"RESET",state:Ti(e.duration)})},[e.duration]);let o=(0,L.useRef)(null),r=(0,L.useRef)(null),a=(0,L.useRef)(null),i=(0,L.useRef)(!1),s=(0,L.useCallback)(()=>{r.current&&o.current&&(r.current.innerHTML=hn(o.current.currentTime),a.current&&(a.current.style.width=`${o.current.currentTime/e.duration*100}%`),i.current!==o.current.muted&&(i.current=o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,L.useCallback)(()=>{o.current&&(n({type:"PLAY_REQUESTED"}),o.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),u=(0,L.useCallback)(()=>{o.current&&(o.current.duration>0&&o.current.paused?l():c())},[s]),c=(0,L.useCallback)(()=>{o.current&&(o.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,L.useCallback)(()=>{o.current&&(o.current.muted=!o.current.muted,n(o.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),v=(0,L.useCallback)(()=>{o.current&&(o.current.muted=!0,n({type:"MUTE"}))},[]),y=(0,L.useCallback)(()=>{o.current&&(o.current.muted=!1,n({type:"UNMUTE"}))},[]),x=(0,L.useCallback)(h=>{o.current&&(o.current.muted=!1,o.current.volume=h/100,n({type:"SET_VOLUME",volume:h}))},[]),g=(0,L.useCallback)(h=>{o.current&&(o.current.currentTime=Math.max(0,Math.min(h*e.duration,e.duration)),s())},[]),S=(0,L.useCallback)(h=>{if(o.current){let C=typeof h=="function"?h(o.current.currentTime):h;o.current.currentTime=Math.max(0,Math.min(C,e.duration)),s()}},[]);return(0,L.useEffect)(()=>{let h=setInterval(()=>{s()},350);return()=>clearInterval(h)},[s,e.duration]),(0,L.useEffect)(()=>{let h=()=>{n({type:"FINISHED"})},C=o.current;return C?.addEventListener("ended",h),()=>C?.removeEventListener("ended",h)},[]),[{element:o,currentTime:r,progress:a},t,{play:l,pause:c,playPause:u,mute:v,unmute:y,toggleMute:d,setVolume:x,setDurationPercent:g,setTime:S}]}var ki=require("zustand/vanilla");function Ii({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:o}){if(o<=n){let r=t.findIndex(s=>s.time>n);if(r===-1)return[e,[]];let a={},i=t.slice(e,r);for(let s of i)s.type==="enter"&&(a[s.id]=s),s.type==="exit"&&(a[s.id]?delete a[s.id]:a[s.id]=s);return[r,Object.values(a)]}return[e,[]]}function Mi({complexTimeline:e,startTime:t=0}){let n=(0,wi.default)(),o={},r={progress:null,currentTime:null},a=0,i=null,s=0,l=null;function u(){let C=S.getState().visibleElements,m=o,b=[],A=Object.keys(m);for(let M of A){let I=m[M],R=C[M];I&&R&&b.push(I)}return b}function c(){return Object.keys(o).map(C=>o[C])}function d(h){r.currentTime&&(r.currentTime.innerHTML=hn(h),r.progress&&(r.progress.style.width=`${h/e.duration*100}%`))}let v=()=>{let h=S.getState(),C=h.currentPrime;if(!C)return;let m=o,b=h.visibleElements,A=Object.keys(m);for(let M of A){let I=m[M],R=b[M];if(I&&M!==C.id&&R){let B=s-R.time*1e3;Math.abs(s-R.time*1e3-I.currentTime*1e3)>300&&(I.currentTime=B/1e3)}}},y=(h=0)=>{let C=h-a,m=S.getState();if(m.isPlaying){let b=m.currentPrime;if(b){let R=o[b.id];R&&(R.paused?s+=C:s=(b.time+R.currentTime)*1e3)}else s+=C;let A=s/1e3;if(A>m.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),x(),d(0);return}d(A);let[M,I]=Ii({currentTime:A,currentKeyFrameIndex:m.nextKeyframeIndex,keyframes:m.complexTimeline.keyframes,targetTime:A});I.length&&m.applyKeyframes(M,I)}a=h,i=requestAnimationFrame(y)},x=()=>{i&&cancelAnimationFrame(i)},g=(h,C)=>{},S=(0,ki.createStore)((h,C)=>({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:()=>{C().clockRunning||(y(),l=setInterval(v,500)),h({clockRunning:!0,clockStartRequests:C().clockStartRequests+1})},applyKeyframes(m,b){let A=C(),M={...A.visibleElements},I=A.currentPrime;for(let R of b)R.type==="enter"&&(M[R.id]=R,n.emit("complex-timeline.enter",{id:R.id})),R.type==="exit"&&(M[R.id]=null,n.emit("complex-timeline.exit",{id:R.id})),R.isPrime&&(I=R);h({nextKeyframeIndex:m,visibleElements:M,currentPrime:I})},stopClock:()=>{let m=C().clockStartRequests;if(m!==0){if(m===1){x(),l&&clearInterval(l),h({clockRunning:!1,clockStartRequests:0});return}h({clockStartRequests:m-1})}},setElement:(m,b)=>{o[m]=b;let A=Object.keys(o),M=C().complexTimeline;g(b,m),M.items.filter(R=>R.type!=="Image"&&R.type!=="Text").every(R=>A.includes(R.annotationId))&&!C().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:M}),h({isReady:!0}))},removeElement:m=>{delete o[m]},mute(){for(let m of c())m.muted=!0;h({isMuted:!0})},unmute(){for(let m of c())m.muted=!1;h({isMuted:!1})},play(){if(!C().isPlaying){for(let b of u())b.play();h({isPlaying:!0})}},pause(){if(C().isPlaying){for(let b of u())b.pause();h({isPlaying:!1})}},playPause(){let m=C();m.isPlaying?m.pause():m.play()},setDurationPercent(m){let A=C().duration*m;C().setTime(A)},setTime(m){let b=C(),A=s/1e3,M=typeof m=="function"?m(A):m,I=b.nextKeyframeIndex;if(A>M){h({visibleElements:{},currentPrime:null});let ct=Object.keys(b.visibleElements);for(let Ut of ct)n.emit("complex-timeline.exit",{id:Ut});A=0,I=0}let[R,B]=Ii({currentTime:A,currentKeyFrameIndex:I,keyframes:b.complexTimeline.keyframes,targetTime:M});b.applyKeyframes(R,B),s=M*1e3;let k=S.getState().visibleElements,ne=o,fr=Object.keys(k);for(let ct of fr){let Ut=k[ct];if(Ut){let pr=ne[ct];pr&&(pr.currentTime=(s-Ut.time*1e3)/1e3)}}d(M)},setVolume(m){for(let b of c())b.volume=Math.min(1,Math.max(0,m/100));h({volume:m})},toggleMute(){let m=C();m.isMuted?(m.unmute(),h({isMuted:!1})):(m.mute(),h({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(m){r.progress=m},setCurrentTimeElement(m){r.currentTime=m},clearCurrentTimeElement(){r.currentTime=null}}));return n.on("complex-timeline.enter",h=>{let C=S.getState(),m=h.id,b=o[m];b&&C.isPlaying&&b.play()}),n.on("complex-timeline.exit",h=>{let C=S.getState(),m=h.id,b=o[m];b&&(b.currentTime=0,b.pause())}),S.getState().setTime(t),{store:S,emitter:n}}var Ui=require("@atlas-viewer/atlas");var Lt=require("react");var Vt=require("@atlas-viewer/atlas");var ue=j(require("react"),1),le=require("react/jsx-runtime"),Ni=ue.default.createContext("en"),Vi=ue.default.createContext({}),Li=ue.default.createContext(null);function os(e){return(0,le.jsx)(Vi.Provider,{value:e.translations,children:e.children})}function rs(e){return(0,le.jsx)(Ni.Provider,{value:e.language,children:e.children})}function is(e){return(0,le.jsx)(Li.Provider,{value:e.convert,children:e.children})}function Vo(){return ue.default.useContext(Li)}function yn(){return ue.default.useContext(Ni)}function Lo(){return ue.default.useContext(Vi)}function Ei(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function zi({as:e,language:t,children:n,viewingDirection:o,...r}){let a=yn();return(0,ue.useMemo)(()=>Ei(a)===Ei(t),[a,t])?e?(0,le.jsx)(e,{...r,children:n}):(0,le.jsx)("span",{...r,children:n}):e?(0,le.jsx)(e,{...r,lang:t,dir:o,children:n}):(0,le.jsx)("span",{...r,lang:t,dir:o,children:n})}function Oi(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 r of n)if(t.indexOf(r)!==-1)return r;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var Hi=(e,t=[])=>{let n=yn();return(0,ue.useMemo)(()=>{let o=e();return Oi(n,o,[])},[n,...t])};function De(e,t,n,o){return t?n?n(e[t]||t,o||"none"):e[t]||t:""}function Bi(e,t,n=`
|
|
2
|
-
`,
|
|
3
|
-
`,s=t){let l=Object.keys(
|
|
4
|
-
`):""}}function te({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:
|
|
1
|
+
"use strict";var ka=Object.create;var Yt=Object.defineProperty;var Ma=Object.getOwnPropertyDescriptor;var Ea=Object.getOwnPropertyNames;var Na=Object.getPrototypeOf,Va=Object.prototype.hasOwnProperty;var La=(e,t)=>{for(var n in t)Yt(e,n,{get:t[n],enumerable:!0})},_t=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ea(t))!Va.call(e,o)&&o!==n&&Yt(e,o,{get:()=>t[o],enumerable:!(r=Ma(t,o))||r.enumerable});return e},p=(e,t,n)=>(_t(e,t,"default"),n&&_t(n,t,"default")),j=(e,t,n)=>(n=e!=null?ka(Na(e)):{},_t(t||!e||!e.__esModule?Yt(n,"default",{value:e,enumerable:!0}):n,e)),za=e=>_t(Yt({},"__esModule",{value:!0}),e);var f={};La(f,{AnnotationContext:()=>Ms,AnnotationPageContext:()=>Es,AnnotationStyleProvider:()=>Ts,Auth:()=>er,AuthProvider:()=>Zn,AuthRContext:()=>Ne,AuthReactContext:()=>Mo,AuthReactContextActions:()=>Eo,CanvasAnnotations:()=>ps,CanvasContext:()=>re,CanvasPanel:()=>F,CanvasStrategyProvider:()=>kr,CanvasWorldObject:()=>Mr,CollectionContext:()=>Ns,CombinedMetadata:()=>gs,ComplexTimelineProvider:()=>zr,ContextBridge:()=>ar,ControlsReactContext:()=>Nt,CreateCustomShape:()=>co,CustomContextBridge:()=>Uo,CustomContextBridgeProvider:()=>Qa,EventsProvider:()=>Ka,Image:()=>ma,ImageService:()=>ws,ImageServiceLoaderContext:()=>ji,InnerViewerProvider:()=>Bo,LanguageProvider:()=>os,LanguageString:()=>zi,LocaleString:()=>te,ManifestContext:()=>qn,ManifestMetadata:()=>ys,MediaPlayerProvider:()=>Ot,Metadata:()=>Wt,PolygonSelector:()=>Is,RangeContext:()=>Wn,ReactEventContext:()=>Ve,ReactVaultContext:()=>ve,Render3DModelStrategy:()=>Wr,RenderAccompanyingCanvas:()=>Kr,RenderAnnotationStrategy:()=>$r,RenderAudioStrategy:()=>Yr,RenderComplexTimelineStrategy:()=>Hr,RenderEmptyStrategy:()=>Er,RenderImageStrategy:()=>Fr,RenderSvgEditorControls:()=>bs,RenderTextualContentStrategy:()=>Br,RenderVideoStrategy:()=>jr,RenderYouTubeStrategy:()=>Gr,ResourceProvider:()=>$,ResourceReactContext:()=>lt,SelectorControllerProvider:()=>Rs,SequenceThumbnails:()=>xs,SimpleViewerProvider:()=>nr,SimpleViewerReactContext:()=>Xe,SingleCanvasThumbnail:()=>Jr,StrategyReactContext:()=>Et,ThumbnailFallbackImage:()=>We,TranslationProvider:()=>rs,TransliterationProvider:()=>is,VaultProvider:()=>we,ViewerPresetContext:()=>oe,VirtualAnnotationProvider:()=>ur,VisibleCanvasReactContext:()=>Me,authDetailsForResource:()=>jn,createAuthStateStore:()=>Kn,createProbe:()=>Qn,defaultEmitter:()=>qo,emptyActions:()=>yr,emptyStrategy:()=>vr,findAllCanvasesInRange:()=>jt,findFirstCanvasFromRange:()=>Ao,findManifestSelectedRange:()=>Ha,findSelectedRange:()=>$n,flattenAnnotationPageIds:()=>Sr,formatTime:()=>hn,get3dStrategy:()=>br,getComplexTimelineStrategy:()=>Pr,getDefaultAnnotationStyles:()=>ro,getImageStrategy:()=>wt,getManifestSequence:()=>Gt,getParsedTargetSelector:()=>bt,getRenderingStrategy:()=>Tr,getTextualContentStrategy:()=>kt,getVideoStrategy:()=>Mt,getVisibleCanvasesFromCanvasId:()=>Ba,hasAuth:()=>Da,makeAccessServiceRequest:()=>_n,makeAccessTokenRequest:()=>Xt,parseSpecificResource:()=>ja,svgThemes:()=>Sa,unknownResponse:()=>Rt,unsupportedStrategy:()=>E,useAnnotation:()=>xt,useAnnotationPage:()=>gr,useAnnotationPageManager:()=>At,useAnnotationStyles:()=>io,useAnnotationsAtTime:()=>Vs,useAuthActions:()=>No,useAuthService:()=>Vo,useAuthStore:()=>je,useAuthToken:()=>qa,useAuthTokens:()=>Gn,useCanvas:()=>P,useCanvasChoices:()=>Ls,useCanvasClock:()=>zs,useCanvasSequence:()=>Un,useCanvasStartTime:()=>Ht,useCanvasSubset:()=>Os,useClosestLanguage:()=>Hi,useCollection:()=>Hs,useComplexTimeline:()=>cs,useContextBridge:()=>ir,useCreateLocaleString:()=>as,useCurrentAuth:()=>Fa,useCustomContextBridge:()=>or,useDispatch:()=>sr,useEventEmitter:()=>yt,useEventListener:()=>Bs,useExistingVault:()=>ke,useExternalCollection:()=>Ds,useExternalManifest:()=>Fn,useExternalResource:()=>mt,useIIIFLanguage:()=>yn,useImage:()=>En,useImageService:()=>mo,useImageServiceLoader:()=>zt,useImageTile:()=>Fs,useIsAuthEnabled:()=>Jn,useLoadImageService:()=>It,useLocaleString:()=>Bi,useManifest:()=>z,useMediaActions:()=>us,useMediaElements:()=>ms,useMediaState:()=>ls,usePaintables:()=>Cr,usePaintingAnnotations:()=>Oe,usePolygonHelper:()=>ao,useRange:()=>dt,useRenderControls:()=>_,useRenderingStrategy:()=>Ir,useResourceContext:()=>W,useResourceEvents:()=>St,useResources:()=>xr,useSearchService:()=>tr,useSelectorController:()=>no,useSelectorEmitter:()=>Ps,useSelectorEvents:()=>to,useSelectorHelper:()=>As,useSimpleMediaPlayer:()=>Be,useSimpleViewer:()=>ht,useStrategy:()=>V,useStyleHelper:()=>qs,useStyles:()=>ze,useSvgEditor:()=>so,useThumbnail:()=>he,useTranslations:()=>Vr,useTransliteration:()=>Nr,useVault:()=>T,useVaultEffect:()=>Dr,useVaultSelector:()=>w,useViewerPreset:()=>vt,useVirtualAnnotationPage:()=>cr,useVirtualAnnotationPageContext:()=>lr,useVisibleCanvases:()=>Ee});module.exports=za(f);var Ft=require("react");var U=j(require("react"),1),on=require("@atlas-viewer/atlas"),Xo=require("react-error-boundary");var ee=require("react");var Ye=j(require("react"),1),go=require("react/jsx-runtime"),Oa={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},lt=Ye.default.createContext(Oa),W=()=>(0,Ye.useContext)(lt);function $({value:e,children:t}){let n=W(),r=(0,Ye.useMemo)(()=>({...n,...e}),[e,n]);return(0,go.jsx)(lt.Provider,{value:r,children:t})}var Kt=j(require("react"),1),ut=require("@iiif/helpers/vault");var Dn=require("react/jsx-runtime"),ve=Kt.default.createContext({vault:null,setVaultInstance:e=>{}});function we({vault:e,vaultOptions:t,useGlobal:n,resources:r,children:o}){let[a,i]=(0,Kt.useState)(()=>e||(n?(0,ut.globalVault)(t):t?new ut.Vault(t):new ut.Vault));return(0,Dn.jsx)(ve.Provider,{value:{vault:a,setVaultInstance:i},children:(0,Dn.jsx)($,{value:r||{},children:o})})}var Ho=require("react"),Jt=require("react");var ho=require("@iiif/helpers/vault"),yo=require("react");function ke(e){let t=(0,yo.useContext)(ve);return e||(t&&t.vault?t.vault:(0,ho.globalVault)())}var Se=require("react");function mt(e,{noCache:t=!1}={}){let n=typeof e=="string"?e:e.id,r=ke(),[o,a]=(0,Se.useState)(n),[i,s]=(0,Se.useState)(void 0),l=(0,Se.useMemo)(()=>r.get(n,{skipSelfReturn:!0})||void 0,[n,r]),[u,c]=(0,Se.useState)(l);return(0,Se.useEffect)(()=>{(async()=>{try{let d=l&&!t?l:await r.load(n),v=d?d.id||d["@id"]:null;d&&o!==v&&a(v),c(d)}catch(d){s(d)}})()},[n,t]),{isLoaded:!!u,id:o,requestId:n,error:i,resource:u,cached:!!(u&&u===l)}}function Fn(e,t){let{id:n,isLoaded:r,error:o,resource:a,requestId:i,cached:s}=mt(e,t);return{id:n,isLoaded:r,error:o,manifest:a,requestId:i,cached:s}}var vo=require("react/jsx-runtime");function qn({manifest:e,children:t}){return(0,vo.jsx)($,{value:{manifest:e},children:t})}var So=require("react/jsx-runtime");function re({canvas:e,children:t}){return(0,So.jsx)($,{value:{canvas:e},children:t})}var Co=require("react"),bo=j(require("react"),1);var xo=require("react"),T=()=>{let{vault:e}=(0,xo.useContext)(ve);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};var Qt=require("react");function w(e,t=[]){let n=T(),[r,o]=(0,Qt.useState)(()=>e(n.getState(),n));return(0,Qt.useEffect)(()=>n.subscribe(a=>e(a,n),a=>{o(a)},!1),t),r}var Me=bo.default.createContext([]);function Ee(){let e=(0,Co.useContext)(Me);return w(t=>e.map(n=>t.iiif.entities.Canvas[n]).filter(Boolean),[e])}var Ro=require("react");function z(e={},t=[]){let{id:n,selector:r}=e,o=W(),a=T(),i=n||o.manifest,s=w(l=>i?l.iiif.entities.Manifest[i]:void 0,[i]);return(0,Ro.useMemo)(()=>{if(s)return r?r(s):s},[s,r,...t])}var Po=require("react/jsx-runtime");function Wn({range:e,children:t}){return(0,Po.jsx)($,{value:{range:e},children:t})}function Ao(e,t){for(let n of t.items){if(n.type==="Canvas")return n;if(n.type==="SpecificResource")return n.source;if(n.type==="Range"){let r=Ao(e,e.get(n));if(r)return r}}return null}function jt(e,t){let n=[];for(let r of t.items)if(r.type==="SpecificResource"&&r.source?.type==="Canvas"&&(r.source.id.indexOf("#")!==-1?n.push({id:r.source.id.split("#")[0],type:"Canvas"}):n.push(r.source)),r.type==="Range"&&n.push(...jt(e,e.get(r))),r.type==="SpecificResource"){let o=typeof r.source=="string"?r.source:r.source.id;n.push({id:o,type:"Canvas"})}return n}function Ha(e,t,n){for(let r of t.structures){let o=$n(e,e.get(r),n);if(o)return o}return null}function $n(e,t,n){for(let r of t.items){let o=r?.source?.id?.split("#")[0];if(r.type==="SpecificResource"&&r.source===n||r.type==="SpecificResource"&&r.source?.type==="Canvas"&&n===o)return t;if(r.type==="Range"){let a=$n(e,e.get(r),n);if(a)return a}}return null}function Ba(e,t,n,r=!1){let o=t.behavior,a=n?e.get(n):null;if(!a)return[];let i=a.behavior,s=r?!1:o.includes("paged"),l=s?!1:o.includes("continuous"),u=s||l?!1:o.includes("individuals"),c=i.includes("facing-pages"),d=i.includes("non-paged");if(c||d||u||r)return[{id:a.id,type:"Canvas"}];let[v,h]=Gt(e,t);if(l)return v;let x=v.findIndex(g=>g.id===n);if(x===-1)return[];for(let g of h)if(g.includes(x))return g.map(S=>v[S]);return[{id:a.id,type:"Canvas"}]}function Gt(e,t,{disablePaging:n,skipNonPaged:r}={}){let o=t.behavior,a=o.includes("paged"),i=a?!1:o.includes("continuous"),s=a||i?!1:o.includes("individuals"),l=t.type==="Manifest"?t.items:jt(e,t);if(i)return[l,[l.map((x,g)=>g)]];if(s||!a||n)return[l,l.map((x,g)=>[g])];let u=[],c=[],d=()=>{c.length&&(u.push([...c]),c=[])},v=0,h=!1;for(let x=0;x<l.length;x++){let g=e.get(l[x]);if(g.behavior.includes("non-paged")){x===v&&v++,r||(d(),u.push([x]),d());continue}if(x===v||g.behavior.includes("facing-pages")){c.length&&(h=!0),d(),u.push([x]),d();continue}if(c.push(x),h){d(),h=!1;continue}c.length>1&&d()}return c.length&&d(),[l,u]}var ae=require("react");var To=require("react");function dt(e={},t=[]){let{id:n,selector:r}=e,o=W(),a=n||o.range,i=w(s=>a?s.iiif.entities.Range[a]:void 0,[a]);return(0,To.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...t])}function Un({startCanvas:e,disablePaging:t}){let n=T(),r=z(),o=dt(),[a,i]=(0,ae.useState)(void 0),s=o||r;if(!s)throw new Error("Nothing selected");let[l,u]=(0,ae.useMemo)(()=>Gt(n,s,{disablePaging:t}),[n,s,t]),c=(0,ae.useRef)(u);if(c.current!==u){let S=c.current[a][0],y=u.findIndex(C=>C.includes(S));c.current=u,i(y)}let d=(0,ae.useCallback)(g=>{let S=u.findIndex(y=>y.includes(g));i(S===-1?0:S)},[l,u]),v=(0,ae.useCallback)(g=>{let S=l.findIndex(y=>y.id===g);S!==-1?d(S):i(0)},[l,u]),h=(0,ae.useCallback)(()=>{i(g=>g>=u.length-1?g:g+1)},[u]),x=(0,ae.useCallback)(()=>{i(g=>g<=0?0:g-1)},[u]);return typeof a>"u"&&(e?v(e):i(0)),{visibleItems:u[a]?.map(g=>l[g].id)||[],cursor:a,items:l,sequence:u,hasPrevious:a>0,hasNext:a<u.length-1,setSequenceIndex:i,setCanvasIndex:d,setCanvasId:v,next:h,previous:x}}var ce=require("react"),Qe=require("zustand");var Yn=require("zustand/vanilla");function Da(e){let t=e.service||e.services||[];for(let n of t)if(n.type==="AuthProbeService2")return!0;return!1}function se(e,t,n){let r=t.findIndex(i=>i.service.id===e);if(r===-1)return t;let o=[...t],a=n(o[r]);return a===o[r]?t:(o[r]=a,o)}var Kn=()=>(0,Yn.createStore)((e,t)=>({currentAuth:-1,authItems:[],login:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot login to non-active service");let r=n.service.service.find(o=>o.type==="AuthAccessTokenService2");if(!r)throw new Error("Token service not found");e(()=>({authItems:se(n.id,t().authItems,o=>({...o,isPending:!0}))})),_n(n.service).then(()=>{Xt(r).then(o=>{let a=o.expiresIn,i=Date.now()+a*1e3;e(()=>({authItems:se(n.id,t().authItems,s=>({...s,isLoggedIn:!0,isPending:!1,session:{token:o.accessToken,expires:i}}))}))}).catch(o=>{e(()=>({authItems:se(n.id,t().authItems,a=>({...a,isLoggedIn:!1,isPending:!1,error:o.message}))}))})})},logout:()=>{let n=t().authItems[t().currentAuth];if(!n||n.isPending||!n.isLoggedIn)return;if(n.type!=="active")throw new Error("Cannot logout of non-active service");let r=n.service.service.find(i=>i.type==="AuthLogoutService2");if(!r)return;let o=`${r.id}?origin=${Io()}`,a=window.open(o);e(()=>({authItems:se(n.id,t().authItems,i=>({...i,isLoggedIn:!1,session:null,isPending:!1}))}))},nextAuth:()=>{let n=t().authItems.length,r=t().currentAuth+1;r>=n||e(()=>({currentAuth:r}))},previousAuth:()=>{let n=t().currentAuth-1;n<0||e(()=>({currentAuth:n}))},setAuth:n=>{n!==-1&&(n<0||n>=t().authItems.length)||e(()=>({currentAuth:n}))},addService:(n,r)=>{if(!n.service)return;let o=n.service.find(s=>s.type==="AuthAccessTokenService2"),a=n;if(t().authItems.find(s=>s.service.id===n.id)){e(()=>({authItems:se(n.id,t().authItems,s=>({...s,instances:s.instances+1}))}));return}if(e(()=>({currentAuth:a.profile==="active"?0:t().currentAuth,authItems:[{id:n.id,type:n.profile,service:n,probeId:r,canAuthenticate:!0,instances:1,isPending:!1,isLoggedIn:!1,session:null},...t().authItems]})),n.profile==="external"){if(!o)throw new Error("Token service not found");Xt(o).then(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,canAuthenticate:!1,error:s.message}))}))})}if(n.profile==="kiosk"){if(!o)throw new Error("Token service not found");e(()=>({authItems:se(n.id,t().authItems,s=>({...s,isPending:!0}))})),_n(a).then(()=>{Xt(o).then(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!0,isPending:!1,session:{token:s.accessToken,expires:s.expiresIn}}))}))}).catch(s=>{e(()=>({authItems:se(n.id,t().authItems,l=>({...l,isLoggedIn:!1,isPending:!1,error:s.message}))}))})})}n.profile},removeService:(n,r)=>{let o=t().currentAuth===t().authItems.findIndex(i=>i.service.id===n.id),a=t().currentAuth;if(o){let i=t().authItems.find(l=>l.service.id===n.id);i&&i.instances>1||(a=t().authItems.findIndex(u=>u.service.id!==n.id&&u.instances>0))}e(()=>({authItems:se(n.id,t().authItems,i=>({...i,instances:i.instances-1})),currentAuth:a}))}})),Qn=(e,t)=>(0,Yn.createStore)((n,r)=>({service:e,status:e?"unknown":"success",shouldRedirect:!1,redirectResource:null,shouldSubstitute:!1,substituteResource:null,error:null,errorHeading:null,errorNote:null,shouldDisplayResource:!1,token:t||null,async probe(){if(!r().service)return;let o=r().service?.id;if(!o){n({status:"error",error:"Service ID not found",errorHeading:{en:["Service ID not found"]}});return}n({status:"probing"});let a=r().token;try{let i=await fetch(o,{headers:a?{Authorization:`Bearer ${r().token}`,Accept:"application/json"}:{Accept:"application/json"}}).then(s=>s.json());if(i.status===200)n({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");n({status:"error",shouldDisplayResource:!1,shouldRedirect:!0,redirectResource:i.location||null})}else if(i.status===401)n({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){n({status:"error",error:i.message,errorHeading:{en:["Unknown error"]}})}},setToken(o){n({token:o})}}));function jn(e){let t=e.service||e.services||[],n={hasAuth:!1,services:{}};for(let r of t)if(r.type==="AuthProbeService2"){n.services.probe=r,n.hasAuth=!0;let o=r.service.filter(a=>a.type==="AuthAccessService2");o[0]&&(n.services.access=o[0])}return n}async function Xt(e,{strict:t=!0}={}){return new Promise((n,r)=>{let o=Math.random().toString(36).substring(7),a=`${e.id}?messageId=${o}&origin=${window.location.origin}`,i=u=>{let c=u.data;if(c.messageId===o){if(t&&c.type!=="AuthAccessToken2"){s(),r("Invalid response, expected type=AuthAccessToken2");return}if(!c.accessToken){s(),r("Invalid response, expected accessToken");return}s(),n(c)}},s=()=>window.removeEventListener("message",i),l=document.createElement("iframe");l.src=a,l.style.display="none",document.body.appendChild(l),window.addEventListener("message",i)})}function Io(e){let t=window.location;if(e){let n=document.createElement("a");return n.href=e,n.protocol+"//"+n.hostname+(n.port?":"+n.port:"")}return t.protocol+"//"+t.hostname+(t.port?":"+t.port:"")}async function _n(e){let t=`${e.id}?origin=${Io()}`,n=window.open(t);if(!n)throw new Error("Failed to open window");return new Promise((r,o)=>{let a=setInterval(()=>{n.closed&&(clearInterval(a),r())},500)})}var Ke=require("react");var wo=require("zustand");function ko(e){let t=(0,Ke.useMemo)(()=>jn(e),[e]),n=Gn(t.services.access?.id),r=(0,Ke.useMemo)(()=>Qn(t.services.probe,n),[t.services.probe]),o=(0,wo.useStore)(r);return(0,Ke.useEffect)(()=>{o.status==="unknown"&&!n&&o.probe()},[t.services.probe,o.status]),(0,Ke.useEffect)(()=>{n&&(o.setToken(n),o.probe())},[n]),[e,o,t.hasAuth]}var ft=require("react/jsx-runtime"),Ne=(0,ce.createContext)(null),Mo=(0,ce.createContext)(null);Mo.displayName="CurrentAuth";var Eo=(0,ce.createContext)(null);Eo.displayName="AuthActions";function Zn({children:e}){let t=(0,ce.useMemo)(()=>Kn(),[]);return(0,ft.jsx)(Ne.Provider,{value:t,children:e})}function Jn(){return!!(0,ce.useContext)(Ne)}function je(){let e=(0,ce.useContext)(Ne);if(!e)throw new Error("useAuthActions must be used within a AuthProvider");return e}function No(){let e=je();return(0,Qe.useStore)(e,n=>({login:n.login,logout:n.logout,nextAuth:n.nextAuth,previousAuth:n.previousAuth,setAuth:n.setAuth,addService:n.addService,removeService:n.removeService}))}function Fa(){let e=je();return(0,Qe.useStore)(e,t=>t)}function Vo(e){let t=je();return(0,Qe.useStore)(t,r=>r.authItems.find(o=>o.service.id===e))}function Gn(e){let t=je();return(0,Qe.useStore)(t,r=>r.authItems.find(o=>o.id===e)?.session?.token)}function qa(e){let t=je();return(0,Qe.useStore)(t,r=>{let o=r.authItems.find(a=>a.service.id===e);return!o||!o.isLoggedIn||!o.session?null:o.session?.token||null})}function Wa(e){let t=No(),n=Vo(e.service.id);return(0,ce.useEffect)(()=>(t?.addService(e.service,e.probeId),()=>{t?.removeService(e.service,e.probeId)}),[e.service]),n?(n.error||!n.isLoggedIn,e.children):null}function Xn(){return null}function er(e){let[t,n,r]=ko(e.resource),o=e.fallbackComponent||Xn,a=e.loadingComponent||Xn,i=e.errorComponent||Xn,s=n.service,l=null;if(!r||!s)return e.children(t);let u=s.service.filter(c=>c.type==="AuthAccessService2");n.status==="error"&&(l=(0,ft.jsx)(i,{resource:e.resource,error:n.error||"",heading:n.errorHeading,note:n.errorNote,extra:e.extra})),(n.status==="unknown"||n.status==="probing")&&(l=(0,ft.jsx)(a,{})),n.status==="success"&&(l=e.children(t));for(let c of u)l=(0,ft.jsx)(Wa,{service:c,probeId:s.id,children:l},c.id);return l}var pt=require("react");var Lo=require("zustand/vanilla"),$a=e=>e.id||e["@id"];function Ua(e){return(Array.isArray(e.service)?e.service:[e.service]).find(n=>n.profile==="http://iiif.io/api/search/0/autocomplete"||n.profile==="http://iiif.io/api/search/1/autocomplete"||n.profile==="AutoCompleteService1")}var zo=e=>{let t;typeof e=="string"?t={"@context":"http://iiif.io/api/search/1/context.json",profile:"http://iiif.io/api/search/1/search","@id":e,id:e,service:[]}:t=e;let n=t?$a(t):void 0,r=null;return(0,Lo.createStore)((o,a)=>({service:t,resources:[],lastQuery:{},loading:!1,error:!1,highlight:null,hasSearch:!!t,hasAutocomplete:t?!!Ua(t):!1,errorMessage:"",search(i,s={}){if(!n)throw new Error("No search service found.");r&&!r.signal.aborted&&r.abort(),r=new AbortController;let l=new URLSearchParams;i.q&&l.set("q",i.q),i.motivation&&l.set("motivation",i.motivation),i.date&&l.set("date",i.date),i.user&&l.set("user",i.user),o({loading:!0}),fetch(`${n}?${l.toString()}`,{signal:r.signal,headers:{"Content-Type":"application/json",Accept:"application/json",...s.headers||{}}}).then(async u=>{if(!r?.signal.aborted)if(u.ok){let c=await u.json();o({resources:c.resources,error:!1,errorMessage:""})}else o({resources:[],error:!0,errorMessage:u.statusText})})},clearSearch(){o({resources:[],error:!1,errorMessage:""})},highlightResult(i){let s=a().resources.find(l=>l["@id"]===i);o({highlight:s})},nextResult(){let i=a().resources,s=a().highlight;if(!s){o({highlight:i[0]||null});return}let l=i.findIndex(u=>u["@id"]===s["@id"]);if(l===-1){o({highlight:i[0]||null});return}o({highlight:i[l+1]||i[0]||null})},previousResult(){let i=a().resources,s=a().highlight;if(!s){o({highlight:i[i.length-1]||null});return}let l=i.findIndex(u=>u["@id"]===s["@id"]);if(l===-1){o({highlight:i[i.length-1]||null});return}if(l===0){o({highlight:i[i.length-1]||null});return}o({highlight:i[l-1]||i[i.length-1]||null})}}))};var _a=require("zustand");function tr(){let e=z();return e?e.service.find(t=>t.profile==="SearchService1"||t.profile==="http://iiif.io/api/search/1/search"):void 0}var Zt=require("react/jsx-runtime"),Ge=(0,pt.createContext)(null);Ge.displayName="Search";function Oo(e){let t=tr();return e.store?(0,Zt.jsx)(Ge.Provider,{value:e.store,children:e.children}):(0,Zt.jsx)(Ya,{service:t,children:e.children})}function Ya({service:e,children:t}){let n=(0,pt.useMemo)(()=>zo(e),[e]);return(0,Zt.jsx)(Ge.Provider,{value:n,children:t})}var G=require("react/jsx-runtime"),gt=()=>{},Xe=(0,Jt.createContext)({setCurrentCanvasId:gt,setCurrentCanvasIndex:gt,nextCanvas:gt,previousCanvas:gt,items:[],sequence:[],setSequenceIndex:gt,currentSequenceIndex:0,hasNext:!1,hasPrevious:!1});function Bo(e){let t=z(),{cursor:n,visibleItems:r,next:o,sequence:a,items:i,setCanvasIndex:s,setCanvasId:l,previous:u,setSequenceIndex:c,hasNext:d,hasPrevious:v}=Un({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),h=(0,Jt.useMemo)(()=>({sequence:a,items:i,setCurrentCanvasId:l,nextCanvas:o,previousCanvas:u,totalCanvases:i.length,setCurrentCanvasIndex:s,setSequenceIndex:c,currentSequenceIndex:n,hasNext:d,hasPrevious:v}),[a,i,l,o,u,i,s,c,n]);return t?r.length===0?null:(0,G.jsx)(Xe.Provider,{value:h,children:(0,G.jsx)(Me.Provider,{value:r,children:(0,G.jsx)(re,{canvas:r[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,G.jsx)("div",{children:"Sorry, something went wrong."}))}function nr(e){let t=ke(e.vault),n=Fn(e.manifest);if(!n)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),(0,G.jsx)("div",{children:"Sorry, something went wrong."});if(n.error)return(0,G.jsx)("div",{children:n.error.toString()});if(!n.isLoaded)return(0,G.jsx)("div",{children:"Loading..."});let r=(0,G.jsx)(Bo,{...e,children:e.children});return(0,G.jsx)(we,{vault:t,children:(0,G.jsx)(qn,{manifest:n.id,children:(0,G.jsx)(Zn,{children:(0,G.jsx)(Oo,{children:e.rangeId?(0,G.jsx)(Wn,{range:e.rangeId,children:r}):r})})})})}function ht(){return(0,Ho.useContext)(Xe)}var Do=j(require("react"),1),en=require("react"),Fo=j(require("mitt"),1),Wo=require("react/jsx-runtime"),qo=(0,Fo.default)(),Ve=(0,en.createContext)({emitter:qo});Ve.displayName="Events";function yt(){return Do.default.useContext(Ve).emitter}function Ka({emitter:e,children:t}){return(0,Wo.jsx)(Ve.Provider,{value:(0,en.useMemo)(()=>({emitter:e}),[e]),children:t})}var $o=j(require("react"),1),me=require("react/jsx-runtime"),rr=$o.default.createContext({});function or(){let e=(0,ee.useContext)(rr),t=Object.keys(e),n={};for(let r of t)e[r].Provider&&(n[r]={value:(0,ee.useContext)(e[r]),Provider:e[r].Provider});return n}function Uo(e){let t=Object.keys(e),n=e.children;for(let r of t){if(r==="children")continue;let{value:o,Provider:a}=e[r];n=(0,me.jsx)(a,{value:o,children:n})}return n}function Qa(e){let t=(0,ee.useContext)(rr),n=(0,ee.useMemo)(()=>({...t,...e.providers}),[e.providers]);return(0,me.jsx)(rr.Provider,{value:n,children:e.children})}function ir(){return{VaultContext:(0,ee.useContext)(ve),ResourceContext:(0,ee.useContext)(lt),SimpleViewerReactContext:(0,ee.useContext)(Xe),VisibleCanvasReactContext:(0,ee.useContext)(Me),AuthRContext:(0,ee.useContext)(Ne),SearchReactContext:(0,ee.useContext)(Ge),ReactEventContext:(0,ee.useContext)(Ve)}}function ar(e){return(0,me.jsx)(we,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:(0,me.jsx)(Me.Provider,{value:e.bridge.VisibleCanvasReactContext,children:(0,me.jsx)(Xe.Provider,{value:e.bridge.SimpleViewerReactContext,children:(0,me.jsx)(Ve.Provider,{value:e.bridge.ReactEventContext,children:(0,me.jsx)(Ne.Provider,{value:e.bridge.AuthRContext,children:(0,me.jsx)(Ge.Provider,{value:e.bridge.SearchReactContext,children:e.custom?(0,me.jsx)(Uo,{...e.custom,children:e.children}):e.children})})})})})})}var Ze=require("react");var fe=require("react");var tn=require("@iiif/helpers/vault/actions");var _o=require("react");function sr(){let t=T().getStore();return(0,_o.useMemo)(()=>n=>t.dispatch(n),[t])}function Yo(e){return typeof e!="string"&&e&&e.bindToVault}function cr(){let e=T(),t=(0,fe.useRef)([]),n=sr(),r=(0,fe.useMemo)(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);(0,fe.useLayoutEffect)(()=>{let s={id:r,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};n(tn.entityActions.importEntities({entities:{AnnotationPage:{[s.id]:s}}}))},[r]);let o=w(s=>r&&s.iiif.entities.AnnotationPage[r]||null,[r]),a=(0,fe.useCallback)((s,l)=>{if(r){if(Yo(s)){let d=s;d.__vault||d.bindToVault(e),s=typeof d.source=="string"?d.source:d.source.id,t.current[s]=d}else typeof s!="string"&&(s=s.id);let u=e.get({id:r,type:"AnnotationPage"}),c=e.get({id:s,type:"Annotation"});u&&c&&(u.items.find(d=>d.id===c.id)||n(tn.entityActions.addReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"},index:l})))}},[r]),i=(0,fe.useCallback)(s=>{r&&(Yo(s)?s=typeof s.source=="string"?s.source:s.source.id:typeof s!="string"&&(s=s.id),t.current[s]&&t.current[s].beforeRemove(),e.get({id:r,type:"AnnotationPage"})&&n(tn.entityActions.removeReference({id:r,type:"AnnotationPage",key:"items",reference:{id:s,type:"Annotation"}})))},[r]);return[o,{addAnnotation:a,removeAnnotation:i}]}var Qo=require("react/jsx-runtime"),Ko=(0,Ze.createContext)(null);function lr(){let e=(0,Ze.useContext)(Ko);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function ur({children:e}){let[t,{addAnnotation:n,removeAnnotation:r}]=cr();return(0,Qo.jsx)(Ko.Provider,{value:(0,Ze.useMemo)(()=>({fullPage:t,addAnnotation:n,removeAnnotation:r}),[t]),children:e})}var Je=require("react/jsx-runtime");function nn({width:e,style:t,height:n,error:r,resetErrorBoundary:o}){return(0,Je.jsxs)("div",{style:{width:e,height:n,minHeight:500,...t||{},background:"#f9f9f9"},children:[(0,Je.jsx)("h3",{children:"Error occurred"}),(0,Je.jsx)("p",{children:r.message}),(0,Je.jsx)("button",{type:"button",onClick:o,children:"Reset"})]})}var rn=require("react"),oe=(0,rn.createContext)(null);function vt(){return(0,rn.useContext)(oe)}var Le=require("react"),mr=(0,Le.createContext)(()=>{}),dr=(0,Le.createContext)(()=>{});function D(e,t,n,r,o=[]){let a=(0,Le.useContext)(e==="portal"?dr:mr);(0,Le.useEffect)(()=>(e!=="none"&&a(t,n,r),()=>{a(t,null)}),[t,e,a,...o])}var et=require("react");var jo=require("react");function P(e={},t=[]){let{id:n,selector:r}=e,o=W(),a=n||o.canvas,i=w(s=>a?s.iiif.entities.Canvas[a]:void 0,[a]);return(0,jo.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...t])}var fr=(0,et.createContext)(()=>{});function Go(e){let t=P(),n=(0,et.useContext)(fr);(0,et.useEffect)(()=>t&&t.id?(n(t.id,e),()=>n(t.id,-1)):()=>{},[t,e])}var O=require("react/jsx-runtime");function an({children:e,errorFallback:t,outerContainerProps:n={},worldScale:r,...o}){let[a,i]=(0,U.useState)(),s=or(),l=ir(),u=t||nn,[c,d]=(0,U.useState)({}),v=Object.entries(c),[h,x]=(0,U.useState)({}),g=Object.entries(h),[S,y]=(0,U.useState)({}),C=(0,U.useMemo)(()=>r||Math.max(...Object.values(S)),[S]),m=(0,U.useMemo)(()=>({maxOverZoom:C||1,...o.runtimeOptions||{}}),[C,o.runtimeOptions]),b=(0,U.useCallback)((I,R)=>{y(B=>{if(R===-1){let{[I]:_e,...k}=B;return k}return{...B,[I]:R}})},[]),A=(0,U.useCallback)((I,R,B)=>{d(({[I]:_e,...k})=>R?{...k,[I]:{element:R,props:B}}:k)},[]),M=(0,U.useCallback)((I,R,B)=>{x(({[I]:_e,...k})=>R?{...k,[I]:{element:R,props:B}}:k)},[]);return(0,O.jsxs)(Xo.ErrorBoundary,{resetKeys:[],fallbackRender:I=>(0,O.jsx)(u,{...o,...I}),children:[(0,O.jsx)(on.AtlasAuto,{...o,containerProps:{style:{position:"relative"},...o.containerProps||{}},htmlChildren:(0,O.jsx)(O.Fragment,{children:v.map(([I,{element:R,props:B}])=>(0,O.jsx)(U.default.Fragment,{children:(0,O.jsx)(R,{...B||{}})},I))}),onCreated:I=>{i(I),o.onCreated&&o.onCreated(I)},runtimeOptions:m,children:(0,O.jsx)(oe.Provider,{value:a,children:(0,O.jsx)(fr.Provider,{value:b,children:(0,O.jsx)(mr.Provider,{value:A,children:(0,O.jsx)(dr.Provider,{value:M,children:(0,O.jsx)(ar,{bridge:l,custom:s,children:(0,O.jsx)(on.ModeContext.Provider,{value:o.mode||"explore",children:(0,O.jsx)(ur,{children:e})})})})})})})}),(0,O.jsx)("div",{children:g.map(([I,{element:R,props:B}])=>(0,O.jsx)(U.default.Fragment,{children:(0,O.jsx)(R,{...B||{}})},I))})]})}var sn=require("@atlas-viewer/atlas");var pr=require("react"),Zo=require("@iiif/helpers/events");function St(e,t){let n=T(),r=(0,pr.useMemo)(()=>(0,Zo.createEventsHelper)(n),[n]),o=w(()=>e&&e.id?n.getResourceMeta(e.id,"eventManager"):null,[e]);return(0,pr.useMemo)(()=>e?r.getListenersAsProps(e,t):{},[o,e,n,t])}var Jo=require("react"),ei=require("@iiif/helpers/styles");function ze(e,t){let n=T(),r=(0,Jo.useMemo)(()=>(0,ei.createStylesHelper)(n),[n]);return w(()=>{if(!e)return null;let o=r.getAppliedStyles(e.id);return o?t?o[t]:o:void 0},[e,t])}var ri=require("react");var ti=require("react");var ni=require("@iiif/helpers/annotation-targets");function xt(e={},t=[]){let{id:n,selector:r}=e,o=W(),a=T(),i=n||o.annotation,s=w(u=>i?u.iiif.entities.Annotation[i]:void 0,[i]),l=w(u=>s&&s.body?s.body.map(c=>c?c.type==="SpecificResource"?{...c,source:a.get(c)}:c?u.iiif.entities[c.type][c.id]:null:null).filter(Boolean):[],[s]);return(0,ti.useMemo)(()=>{if(!s)return;let u={...s,body:l,target:(0,ni.expandTarget)(s.target,{typeMap:a.getState().iiif.mapping})};return r?r(u):u},[s,r,l,...t])}var oi=require("react/jsx-runtime"),cn=({id:e,style:t,className:n,interactive:r})=>{let o=xt({id:e}),a=ze(o,"atlas"),i=ze(o,"html"),s=St(o,["atlas"]),l=P(),u=(0,ri.useMemo)(()=>(0,sn.mergeStyles)(t,a),[t,a]);return l&&o&&o.target&&o.target.selector&&o.target.selector.type==="BoxSelector"&&o.target.source&&(o.target.source.id===l.id||o.target.source===l.id)?(0,oi.jsx)(sn.RegionHighlight,{id:o.id,isEditing:!0,region:o.target.selector.spatial,style:u,className:i?.className||n,interactive:!!(i?.href||r),href:i?.href||null,title:i?.title||null,hrefTarget:i?.target||null,onClick:()=>{},...s}):null};var ai=require("react");var ii=require("react");function gr(e={},t=[]){let{id:n,selector:r}=e,o=W(),a=n||o.annotationPage,i=w(s=>a?s.iiif.entities.AnnotationPage[a]:void 0,[a]);return(0,ii.useMemo)(()=>{if(i)return r?r(i):i},[i,...t])}var hr=require("react/jsx-runtime"),Ct=({className:e,page:t})=>{let n=gr({id:t.id})||t,r=ze(n,"atlas"),o=ze(n,"html");return w(a=>n.id?a.iiif.entities.AnnotationPage[n.id]:null,[]),(0,hr.jsx)(ai.Fragment,{children:n.items?.map(a=>(0,hr.jsx)(cn,{id:a.id,style:r,className:o?.className||e},a.id))})};var xe=require("react");var nt=require("react");var si=require("@iiif/helpers");function ja(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function bt(e,t){let{selector:n,source:r}=(0,si.expandTarget)(t);if(r.id!==e.id)return[null,r];let o={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[n?n.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:n.temporal,spatial:o.spatial}:n:null,r]}var yr={makeChoice:()=>{}},Rt={type:"unknown"},E=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),vr=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Pt=require("react");function Ga(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function ci(e,t){return w(n=>{let r=[];if(!e)return r;let o=Object.keys(n.iiif.entities.AnnotationPage);for(let a of o)if(!t||t.indexOf(a)!==-1){let i=Ga(n,a);i&&i.views&&i.views[e]&&r.push(a)}return r},[e,t])}function Sr({canvas:e,manifest:t,all:n,canvases:r}){let o=[];if(t)for(let a of t.annotations)o.indexOf(a.id)===-1&&o.push(a.id);if(n){if(r&&r.length)for(let a of r)for(let i of a.annotations)o.indexOf(i.id)===-1&&o.push(i.id)}else if(e)for(let a of e.annotations)o.indexOf(a.id)===-1&&o.push(a.id);return o}function Xa(e,t){let n=e?.iiif?.meta[t];return n?n.annotationPageManager:null}function At(e,t={}){let n=T(),r=z(),o=P(),a=Ee(),i=(0,Pt.useMemo)(()=>Sr({all:t.all,manifest:r,canvas:o,canvases:a}),[t.all,o,a,r]),s=ci(e,t.all?void 0:i),l=(0,Pt.useCallback)(c=>{e&&n.setMetaValue([c,"annotationPageManager","views"],d=>d&&!d[e]?d:{...d||{},[e]:!1})},[e,n]),u=(0,Pt.useCallback)((c,d={})=>{if(!e)return;let v=n.getState(),h=[];if(d?.deselectOthers){let x=Object.keys(v.iiif.entities.AnnotationPage);for(let g of x){let S=Xa(v,g);S&&S.views&&S.views[e]&&h.push(g)}}for(let x of h)l(x);n.setMetaValue([c,"annotationPageManager","views"],x=>x&&x[e]?x:{...x||{},[e]:!0})},[e,l,n]);return{availablePageIds:i,enabledPageIds:s,setPageEnabled:u,setPageDisabled:l}}function xr(e,t){return w((n,r)=>r.get(e.map(o=>({id:o,type:t}))),[e,t])}var pi=j(require("mitt"),1),gi=require("react"),hi=require("zustand");var ln=j(require("react"),1),li=require("@iiif/helpers/image-service"),Tt=require("zustand"),ui=ln.default.createContext(li.imageServices.store);ui.displayName="ImageServicesHelper";function un(){return(0,ln.useContext)(ui)}function mi(e){let t=un();return(0,Tt.useStore)(t,({loaded:n})=>n[e])}function tt(){let e=un();return(0,Tt.useStore)(e,({loadServiceSync:t})=>t)}function di(){let e=un();return(0,Tt.useStore)(e,({loaded:t})=>t)}function fi(){let e=un();return(0,Tt.useStore)(e,({loadService:t})=>t)}var Za=(0,hi.createStore)((e,t)=>({loaded:{},setLoaded:(n,r="done")=>{e(o=>({loaded:{...o.loaded,[n]:r}}))}})),Ja=(0,pi.default)();Ja.on("loaded",e=>{Za.getState().setLoaded(e.imageServiceId)});function It(){let e=tt(),t=di();return[(0,gi.useCallback)((r,{height:o,width:a})=>r&&e(r,{height:o,width:a},!0),[e]),t]}var He=require("react");function Oe(e={}){let t=xt(),n=P(e.canvasId?{id:e.canvasId}:void 0);return w((r,o)=>{if(!n)return[];if(t&&e.enableSingleAnnotation)return[t];let a=o.get(n.items),i=[];for(let s of a)i.push(...o.get(s.items));return i},[n])}var yi=require("@iiif/helpers/painting-annotations");function Cr(e,t=[]){let n=T(),r=(0,He.useMemo)(()=>(0,yi.createPaintingAnnotationsHelper)(n),[]),o=Oe({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,i]=(0,He.useState)(e?.defaultChoices||[]),s=(0,He.useMemo)(()=>r.getPaintables(o,a),[n,o,a,...t]),u={makeChoice:(0,He.useCallback)((c,{deselectOthers:d=!0,deselect:v=!1}={})=>{s.choice&&i(h=>{if(v){let g=h.filter(S=>S!==c);if(g.length===0){let S=s.items[0].resource.id;return S?[S]:[]}return g}if(d)return[c];let x=[...h];if(x.length===0&&s.items.length){let g=s.items[0].resource.id;g&&x.push(g)}return h.indexOf(c)!==-1?h:[...h,c]})},[s.choice])};return[s,u]}var es=["model/gltf-binary"];function br(e,t){let n=t.items[0],r=n.resource;return r.format?es.indexOf(r.format)===-1?E(`3D format: ${r.format} is unsupported`):{type:"3d-model",model:r,annotationId:n.annotationId,annotation:n.annotation}:E("Unknown format")}function vi(e,t){let n=t.items,r=n[0];if(n.length===0||!r)return E("No audio");if(!e.duration)return E("No duration on canvas");if(n.length>1)return E("Only one audio source supported");let o=r.resource;return o?"format"in o?{type:"media",media:{annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:o.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:o.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:E("Audio does not have format"):E("Unknown audio")}var Si=require("@iiif/parser/image-3");var Rr=require("@iiif/helpers/annotation-targets");function wt(e,t,n){let r=[];for(let o of t.items){let a=o.resource&&o.resource.type==="SpecificResource"?o.resource.source:o.resource;if(!a.id)return E("No resource Identifier");let i;if(a.service){let g=(0,Si.getImageServices)(a);g[0]&&(i=n(g[0],e))}let s={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[l,u]=bt(e,o.target),c=e.id?.split("?")[0]||"";if(!(u.id===e.id||decodeURIComponent(u.id||"")===(e.id||"")||u.id===c||decodeURIComponent(u.id||"")===c))continue;let d=o.resource.width&&o.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:o.resource.width,height:o.resource.height}}:void 0,v=o.resource.type==="SpecificResource"?(0,Rr.expandTarget)(o.resource):null;if(o.selector){let g=(0,Rr.expandTarget)({type:"SpecificResource",source:o.resource,selector:o.selector});g&&(v=g)}let h=v&&v.selector&&(v.selector.type==="BoxSelector"||v.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:v.selector.spatial.x,y:v.selector.spatial.y,width:v.selector.spatial.width,height:v.selector.spatial.height}}:void 0;i&&!i.id&&(i.id=i["@id"]);let x={id:a.id,type:"Image",annotationId:o.annotationId,annotation:o.annotation,width:Number(l||h?a.width:e.width),height:Number(l||h?a.height:e.height),service:i,sizes:i&&i.sizes?i.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:l&&l.type!=="PointSelector"?l:s,selector:h||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};r.push(x)}return{type:"images",image:r[0],images:r,choice:t.choice}}function xi(e,t={},n){let r=e.language||n||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[r]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(o=>xi(o,t,r))}return t}function kt(e,t){let n=[];return t.items.forEach(r=>{if(r.resource){let[o]=bt(e,r.target);n.push({type:"Text",annotationId:r.annotationId,annotation:r.annotation,text:xi(r.resource),target:o})}}),{type:"textual-content",items:n}}var mn=require("@iiif/helpers"),ts=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function Mt(e,t,n){let r=t.items.filter(h=>h.type==="video"),o=r[0],a=!1;if(e.duration||(a=!0),r.length>1||!o)return E("Only one video source supported");let i=r[0]?.resource,s=!!(i.service||[]).find(h=>(h.profile||"").includes("youtube.com"));if(!s&&a)return E("Video does not have duration");if(!i)return E("Unknown video");if((!i.format||i.format==="text/html")&&!s)return E("Video does not have format");let l=[],u=n.get(e.annotations||[]);for(let h of u){let x=n.get(h.items||[]);for(let g of x)if((g.motivation?Array.isArray(g.motivation||"")?g.motivation:[g.motivation]:[]).includes("supplementing")){let y=n.get(g.body||[]);for(let C of y){let m=C;if(m.type==="Choice")for(let b of m.items){let A=n.get(b);A.format==="text/vtt"&&l.push({id:A.id,type:"Text",format:"text/vtt",label:A.label,language:A.language})}else m.format==="text/vtt"&&l.push({id:m.id,type:"Text",format:"text/vtt",label:m.label,language:m.language})}}}let c={annotationId:o.annotationId,annotation:o.annotation,duration:e.duration,url:i.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:i.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},d=(0,mn.expandTarget)(o.target);d.selector&&d.selector.type==="TemporalBoxSelector"&&(c.target=d.selector);let{selector:v}=(0,mn.parseSelector)(o.selector);if(v===null){let h=c.target.temporal.startTime,g=(c.target.temporal.endTime||e.duration)-h;c.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:g}}}else v.type==="TemporalSelector"&&(c.selector=v);if(s){c.type="VideoYouTube";let h=i.id.match(ts);if(!h[1])return E("Video is not known youtube video");c.youTubeId=h[1]}return{type:"media",media:c,annotations:{pages:[]},captions:l}}function Pr(e,t,n,r){let o={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},a={type:"complex-choice",items:[]};function i(u){u.choice&&(u.choice.type==="complex-choice"?a.items.push(...u.choice.items):a.items.push(u.choice))}for(let u of t.items){if(u.type==="image"){let c=wt(e,{choice:null,allChoices:null,types:["image"],items:[u]},n);if(c.type==="images"){i(c),o.items.push(c.image);let d={id:c.image.annotationId,type:"enter",resourceType:"image",time:c.image.target?.temporal?.startTime||0};o.keyframes.push(d);let v={id:c.image.annotationId,type:"exit",resourceType:"image",time:c.image.target?.temporal?.endTime||e.duration||0};o.keyframes.push(v)}}if(u.type==="textualbody"){let c=kt(e,{choice:null,allChoices:null,types:["textualbody"],items:[u]});if(c.type==="textual-content"){i(c);let d=c.items[0];o.items.push(d);let v=d.target,h={id:d.annotationId,type:"enter",resourceType:"text",time:v.temporal?.startTime||0};o.keyframes.push(h);let x={id:d.annotationId,type:"exit",resourceType:"text",time:v.temporal?.endTime||e.duration||0};o.keyframes.push(x)}}if(u.type==="video"){let c=Mt(e,{choice:null,allChoices:null,types:["video"],items:[u]},r);if(c.type==="media"){i(c);let d=c.media;o.items.push(d);let v={id:d.annotationId,type:"enter",resourceType:"video",time:d.target?.temporal?.startTime||0};o.keyframes.push(v);let h={id:d.annotationId,type:"exit",resourceType:"video",time:d.target?.temporal?.endTime||e.duration||0};o.keyframes.push(h)}}}o.keyframes.sort((u,c)=>u.time-c.time);let s=[],l=[];for(let u of o.keyframes){if(u.resourceType==="image"||u.resourceType==="text"){l.push(u);continue}if(u.type==="enter"){s.length===0&&(u.isPrime=!0),s.push(u),l.push(u);continue}if(u.type==="exit"&&(l.push(u),s=s.filter(c=>c.id!==u.id),s.length!==0)){let c=s[0],d={id:c.id,type:"change",isPrime:!0,resourceType:c.resourceType,time:u.time};l.push(d)}}return o.keyframes=l,a.items.length&&(o.choice=a),o}var dn={},Ar={get(e){return e},setMetaValue([e,t,n],r){let o=Ar.getResourceMeta(e,t),a=o?o[n]:void 0,i=typeof r=="function"?r(a):r;dn[e]={...dn[e]||{},[t]:{...(dn[e]||{})[t]||{},[n]:i}}},getResourceMeta:(e,t)=>{let n=dn[e];if(n)return t?n[t]:n},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(n=>n.json())},requestStatus(e){}};function Tr({canvas:e,paintables:t,supports:n,loadImageService:r,vault:o=Ar}){if(!e)return Rt;if(t.types.length===0)return n.indexOf("empty")!==-1?vr(e.width,e.height):Rt;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(i=>i!=="text");else return n.indexOf("complex-timeline")===-1?E("Complex timeline not supported"):Pr(e,t,r,o);let a=t.types[0];return a==="image"?n.indexOf("images")===-1?E("Image not supported"):wt(e,t,r):a==="Model"||a==="model"?n.indexOf("3d-model")===-1?E("3D not supported"):br(e,t):a==="textualbody"?n.indexOf("textual-content")===-1?E("Textual content not supported"):kt(e,t):a==="sound"||a==="audio"?n.indexOf("media")===-1?E("Media not supported"):vi(e,t):a==="video"?n.indexOf("media")===-1?E("Media not supported"):Mt(e,t,o):Rt}function Ir(e){let t=z(),n=P(),r=T(),o=yt(),a=e?.emitter||o,[i,s]=It(),{enabledPageIds:l}=At(e?.annotationPageManagerId||t?.id||n?.id,{all:!1}),u=xr(l,"AnnotationPage"),c=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[d,v]=Cr(e,[s]);(0,nt.useEffect)(()=>{let x=g=>{v.makeChoice(g.choiceId,{deselectOthers:g.deselectOthers,deselect:g.deselect})};return a.on("make-choice",x),()=>{a.off("make-choice",x)}},[]);let h=(0,nt.useMemo)(()=>Tr({canvas:n,paintables:d,supports:c,loadImageService:i,vault:r}),[n,d,r,v.makeChoice]);return(0,nt.useEffect)(()=>{let x=d.allChoices,g={canvasId:n?.id,manifestId:t?.id};x&&a.emit("choice-change",{choice:x,partOf:g})},[n?.id,d.allChoices]),(0,nt.useMemo)(()=>h.type==="unknown"?[h,yr]:[{...h,annotations:{pages:u}},v],[h,u])}var fn=require("react"),Et=(0,fn.createContext)(null);Et.displayName="Strategy";function V(){let e=(0,fn.useContext)(Et);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Ci=require("@iiif/helpers");var pn=require("react"),Nt=(0,pn.createContext)(null);Nt.displayName="Controls";function _(){let e=(0,pn.useContext)(Nt);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var wr=require("react/jsx-runtime");function kr({strategies:e,registerActions:t,defaultChoices:n,onChoiceChange:r,mediaControlsDeps:o,renderMediaControls:a,renderViewerControls:i,viewControlsDeps:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,throwOnUnknown:c,children:d}){let v=P(),h=T(),x=(0,xe.useMemo)(()=>(0,Ci.createStylesHelper)(h),[h]),[g,S]=Ir({strategies:e||["images"],defaultChoices:n?.map(({id:b})=>b)}),y="choice"in g?g.choice:void 0;if((0,xe.useEffect)(()=>{t&&t(S)},[g.annotations]),(0,xe.useEffect)(()=>{r&&r(y)},[y]),(0,xe.useEffect)(()=>{if(n)for(let b of n)typeof b.opacity<"u"&&x.applyStyles({id:b.id},"atlas",{opacity:b.opacity})},[n]),g.type==="unknown"&&c)throw new Error(g.reason||"Unknown strategy");let C=(0,xe.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:o||[],renderViewerControls:i,viewControlsDeps:s||[],renderComplexTimelineControls:l,complexTimelineControlsDeps:u||[]}),[o,a,i,s,l,u]),m=(0,xe.useMemo)(()=>({strategy:g,actions:S,choices:"choice"in g?g.choice:[]}),[g,v]);return(0,wr.jsx)(Nt.Provider,{value:C,children:(0,wr.jsx)(Et.Provider,{value:m,children:d})})}var bi=require("react");var Ri=require("react/jsx-runtime");function Mr({x:e=0,y:t=0,keepCanvasScale:n,children:r}){let{strategy:o}=V(),a=P(),i=St(a,["deep-zoom"]),s=(0,bi.useMemo)(()=>n?1:Math.max(1,...o.type==="images"?o.images.map(u=>(u.width||0)/u.target?.spatial.width):[]),[n,o]);Go(s);let l=o.type==="images"?o.images.length:0;return a?(0,Ri.jsx)("world-object",{height:a.height,width:a.width,x:e,y:t,...i,children:r},`${a.id}/${o.type}/${l}`):null}var Pi=require("react/jsx-runtime");function gn({style:e}){let t=P();return!t||!t.height||!t.width?null:(0,Pi.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Ai=require("react/jsx-runtime");function Er({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:n}=V();return n.type!=="empty"&&!t?null:(0,Ai.jsx)(gn,{style:e})}var xn=require("react");var wi=j(require("mitt"),1);var L=require("react");function Ti(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function ns(e,t){switch(t.type){case"RESET":return t.state;case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function hn(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function Be(e){let[t,n]=(0,L.useReducer)(ns,Ti(e.duration));(0,L.useEffect)(()=>{n({type:"RESET",state:Ti(e.duration)})},[e.duration]);let r=(0,L.useRef)(null),o=(0,L.useRef)(null),a=(0,L.useRef)(null),i=(0,L.useRef)(!1),s=(0,L.useCallback)(()=>{o.current&&r.current&&(o.current.innerHTML=hn(r.current.currentTime),a.current&&(a.current.style.width=`${r.current.currentTime/e.duration*100}%`),i.current!==r.current.muted&&(i.current=r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),l=(0,L.useCallback)(()=>{r.current&&(n({type:"PLAY_REQUESTED"}),r.current.play().then(()=>{n({type:"PLAY"})}),s())},[s]),u=(0,L.useCallback)(()=>{r.current&&(r.current.duration>0&&r.current.paused?l():c())},[s]),c=(0,L.useCallback)(()=>{r.current&&(r.current.pause(),n({type:"PAUSE"}),s())},[s]),d=(0,L.useCallback)(()=>{r.current&&(r.current.muted=!r.current.muted,n(r.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),v=(0,L.useCallback)(()=>{r.current&&(r.current.muted=!0,n({type:"MUTE"}))},[]),h=(0,L.useCallback)(()=>{r.current&&(r.current.muted=!1,n({type:"UNMUTE"}))},[]),x=(0,L.useCallback)(y=>{r.current&&(r.current.muted=!1,r.current.volume=y/100,n({type:"SET_VOLUME",volume:y}))},[]),g=(0,L.useCallback)(y=>{r.current&&(r.current.currentTime=Math.max(0,Math.min(y*e.duration,e.duration)),s())},[]),S=(0,L.useCallback)(y=>{if(r.current){let C=typeof y=="function"?y(r.current.currentTime):y;r.current.currentTime=Math.max(0,Math.min(C,e.duration)),s()}},[]);return(0,L.useEffect)(()=>{let y=setInterval(()=>{s()},350);return()=>clearInterval(y)},[s,e.duration]),(0,L.useEffect)(()=>{let y=()=>{n({type:"FINISHED"})},C=r.current;return C?.addEventListener("ended",y),()=>C?.removeEventListener("ended",y)},[]),[{element:r,currentTime:o,progress:a},t,{play:l,pause:c,playPause:u,mute:v,unmute:h,toggleMute:d,setVolume:x,setDurationPercent:g,setTime:S}]}var ki=require("zustand/vanilla");function Ii({currentKeyFrameIndex:e,keyframes:t,targetTime:n,currentTime:r}){if(r<=n){let o=t.findIndex(s=>s.time>n);if(o===-1)return[e,[]];let a={},i=t.slice(e,o);for(let s of i)s.type==="enter"&&(a[s.id]=s),s.type==="exit"&&(a[s.id]?delete a[s.id]:a[s.id]=s);return[o,Object.values(a)]}return[e,[]]}function Mi({complexTimeline:e,startTime:t=0}){let n=(0,wi.default)(),r={},o={progress:null,currentTime:null},a=0,i=null,s=0,l=null;function u(){let C=S.getState().visibleElements,m=r,b=[],A=Object.keys(m);for(let M of A){let I=m[M],R=C[M];I&&R&&b.push(I)}return b}function c(){return Object.keys(r).map(C=>r[C])}function d(y){o.currentTime&&(o.currentTime.innerHTML=hn(y),o.progress&&(o.progress.style.width=`${y/e.duration*100}%`))}let v=()=>{let y=S.getState(),C=y.currentPrime;if(!C)return;let m=r,b=y.visibleElements,A=Object.keys(m);for(let M of A){let I=m[M],R=b[M];if(I&&M!==C.id&&R){let B=s-R.time*1e3;Math.abs(s-R.time*1e3-I.currentTime*1e3)>300&&(I.currentTime=B/1e3)}}},h=(y=0)=>{let C=y-a,m=S.getState();if(m.isPlaying){let b=m.currentPrime;if(b){let R=r[b.id];R&&(R.paused?s+=C:s=(b.time+R.currentTime)*1e3)}else s+=C;let A=s/1e3;if(A>m.duration){S.getState().setTime(0),S.setState({isPlaying:!1}),x(),d(0);return}d(A);let[M,I]=Ii({currentTime:A,currentKeyFrameIndex:m.nextKeyframeIndex,keyframes:m.complexTimeline.keyframes,targetTime:A});I.length&&m.applyKeyframes(M,I)}a=y,i=requestAnimationFrame(h)},x=()=>{i&&cancelAnimationFrame(i)},g=(y,C)=>{},S=(0,ki.createStore)((y,C)=>({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:()=>{C().clockRunning||(h(),l=setInterval(v,500)),y({clockRunning:!0,clockStartRequests:C().clockStartRequests+1})},applyKeyframes(m,b){let A=C(),M={...A.visibleElements},I=A.currentPrime;for(let R of b)R.type==="enter"&&(M[R.id]=R,n.emit("complex-timeline.enter",{id:R.id})),R.type==="exit"&&(M[R.id]=null,n.emit("complex-timeline.exit",{id:R.id})),R.isPrime&&(I=R);y({nextKeyframeIndex:m,visibleElements:M,currentPrime:I})},stopClock:()=>{let m=C().clockStartRequests;if(m!==0){if(m===1){x(),l&&clearInterval(l),y({clockRunning:!1,clockStartRequests:0});return}y({clockStartRequests:m-1})}},setElement:(m,b)=>{r[m]=b;let A=Object.keys(r),M=C().complexTimeline;g(b,m),M.items.filter(R=>R.type!=="Image"&&R.type!=="Text").every(R=>A.includes(R.annotationId))&&!C().isReady&&(n.emit("complex-timeline.ready",{complexTimeline:M}),y({isReady:!0}))},removeElement:m=>{delete r[m]},mute(){for(let m of c())m.muted=!0;y({isMuted:!0})},unmute(){for(let m of c())m.muted=!1;y({isMuted:!1})},play(){if(!C().isPlaying){for(let b of u())b.play();y({isPlaying:!0})}},pause(){if(C().isPlaying){for(let b of u())b.pause();y({isPlaying:!1})}},playPause(){let m=C();m.isPlaying?m.pause():m.play()},setDurationPercent(m){let A=C().duration*m;C().setTime(A)},setTime(m){let b=C(),A=s/1e3,M=typeof m=="function"?m(A):m,I=b.nextKeyframeIndex;if(A>M){y({visibleElements:{},currentPrime:null});let ct=Object.keys(b.visibleElements);for(let Ut of ct)n.emit("complex-timeline.exit",{id:Ut});A=0,I=0}let[R,B]=Ii({currentTime:A,currentKeyFrameIndex:I,keyframes:b.complexTimeline.keyframes,targetTime:M});b.applyKeyframes(R,B),s=M*1e3;let k=S.getState().visibleElements,ne=r,fo=Object.keys(k);for(let ct of fo){let Ut=k[ct];if(Ut){let po=ne[ct];po&&(po.currentTime=(s-Ut.time*1e3)/1e3)}}d(M)},setVolume(m){for(let b of c())b.volume=Math.min(1,Math.max(0,m/100));y({volume:m})},toggleMute(){let m=C();m.isMuted?(m.unmute(),y({isMuted:!1})):(m.mute(),y({isMuted:!0}))},clearProgressElement(){o.progress=null},setProgressElement(m){o.progress=m},setCurrentTimeElement(m){o.currentTime=m},clearCurrentTimeElement(){o.currentTime=null}}));return n.on("complex-timeline.enter",y=>{let C=S.getState(),m=y.id,b=r[m];b&&C.isPlaying&&b.play()}),n.on("complex-timeline.exit",y=>{let C=S.getState(),m=y.id,b=r[m];b&&(b.currentTime=0,b.pause())}),S.getState().setTime(t),{store:S,emitter:n}}var Ui=require("@atlas-viewer/atlas");var Lt=require("react");var Vt=require("@atlas-viewer/atlas");var ue=j(require("react"),1),le=require("react/jsx-runtime"),Ni=ue.default.createContext("en"),Vi=ue.default.createContext({}),Li=ue.default.createContext(null);function rs(e){return(0,le.jsx)(Vi.Provider,{value:e.translations,children:e.children})}function os(e){return(0,le.jsx)(Ni.Provider,{value:e.language,children:e.children})}function is(e){return(0,le.jsx)(Li.Provider,{value:e.convert,children:e.children})}function Nr(){return ue.default.useContext(Li)}function yn(){return ue.default.useContext(Ni)}function Vr(){return ue.default.useContext(Vi)}function Ei(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function zi({as:e,language:t,children:n,viewingDirection:r,...o}){let a=yn();return(0,ue.useMemo)(()=>Ei(a)===Ei(t),[a,t])?e?(0,le.jsx)(e,{...o,children:n}):(0,le.jsx)("span",{...o,children:n}):e?(0,le.jsx)(e,{...o,lang:t,dir:r,children:n}):(0,le.jsx)("span",{...o,lang:t,dir:r,children:n})}function Oi(e,t,n){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let r=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(r&&t.indexOf(r)!==-1)return r;for(let o of n)if(t.indexOf(o)!==-1)return o;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var Hi=(e,t=[])=>{let n=yn();return(0,ue.useMemo)(()=>{let r=e();return Oi(n,r,[])},[n,...t])};function De(e,t,n,r){return t?n?n(e[t]||t,r||"none"):e[t]||t:""}function Bi(e,t,n=`
|
|
2
|
+
`,r={}){let o=Nr(),a=Hi(()=>Object.keys(e||{}),[e]);return[(0,ue.useMemo)(()=>{if(!e)return De(r,t,o)||"";if(typeof e=="string")return De(r,e,o);let i=a?e[a]:void 0;return i?typeof i=="string"?i:i.map(s=>De(r,s,o,a)).join(n):""},[a,t,e]),a]}function as(){let e=yn(),t=Vr(),n=Nr();return function(o,a="",i=`
|
|
3
|
+
`,s=t){let l=Object.keys(o||{}),u=Oi(e,l,[]);if(!o)return De(s,a,n)||"";if(typeof o=="string")return De(s,o,n);let c=u?o[u]:void 0;return c?typeof c=="string"?De(s,c,n,u):c.map(d=>De(s,d,n,u)).join(typeof i<"u"?i:`
|
|
4
|
+
`):""}}function te({as:e,defaultText:t,enableDangerouslySetInnerHTML:n,children:r,separator:o,...a}){let i=Vr(),[s,l]=Bi(r,t,o,i);return l?(0,le.jsx)(zi,{...a,as:e,language:l,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s}):e?(0,le.jsx)(e,{...a,children:s}):(0,le.jsx)("span",{...a,title:n?void 0:s,dangerouslySetInnerHTML:n?{__html:s}:void 0,children:n?void 0:s})}var Di=require("@iiif/parser/image-3");var ie=require("react/jsx-runtime");function ss({resource:e,heading:t,note:n,extra:r}){return r?(0,ie.jsx)(Vt.HTMLPortal,{target:{x:0,y:0,width:r.target?.spatial.width,height:r.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,ie.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,ie.jsxs)("div",{children:[(0,ie.jsx)(te,{children:t||"Not authorised"}),n&&(0,ie.jsx)("p",{children:(0,ie.jsx)(te,{children:n})}),(0,ie.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Fi({image:e,thumbnail:t,crop:n,enableSizes:r,enableThumbnail:o,renderOptions:a}){let i=Jn(),s=(0,Di.getId)(e.service),l=mi(s),u=tt(),c=l?.service;u(e.service,e);let d=c&&l?.status==="done",v=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(d===!1)return null;if(!i){let h=e.service,x=h.width||e.width||0,g=h.height||e.height||0;return(0,ie.jsx)(Vt.TileSet,{enableThumbnail:o,renderOptions:a,tiles:{id:h.id||h["@id"]||"unknown",height:g,width:x,imageService:h,thumbnail:v},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}return(0,ie.jsx)(er,{resource:e.service,errorComponent:ss,extra:e,children:h=>{let x=h.width||e.width||0,g=h.height||e.height||0;return(0,ie.jsx)(Vt.TileSet,{enableThumbnail:o,renderOptions:a,tiles:{id:h.id||h["@id"]||"unknown",height:g,width:x,imageService:h,thumbnail:v},enableSizes:r,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:n})}},e.id)}var Fe=require("react/jsx-runtime");function Ce({id:e,image:t,thumbnail:n,isStatic:r,x:o=0,y:a=0,children:i,selector:s,onClick:l,enableSizes:u}){let c=(0,Lt.useMemo)(()=>{if(!(!s||s.spatial.x===0&&s.spatial.y===0))return s.spatial},[s]);return(0,Fe.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:l,children:t.service?(0,Fe.jsxs)(Lt.Fragment,{children:[(0,Fe.jsx)(Fi,{image:t,thumbnail:n,crop:c,enableSizes:u}),i]},"service"):(0,Fe.jsxs)(Lt.Fragment,{children:[(0,Fe.jsx)("world-image",{onClick:l,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:c}),i]},"no-service")},e+(t.service?"server":"no-service"))}var Or=require("zustand");var vn=require("react"),qi=require("zustand"),Wi=require("react/jsx-runtime"),Lr=(0,vn.createContext)(null);Lr.displayName="ComplexTimeline";function zr({children:e,store:t}){return(0,Wi.jsx)(Lr.Provider,{value:t,children:e})}function cs(e){let t=(0,vn.useContext)(Lr);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return(0,qi.useStore)(t,e)}var $i=require("@atlas-viewer/atlas");var pe=require("react/jsx-runtime");function Sn({strategy:e,onClickPaintingAnnotation:t}){return(0,pe.jsx)(pe.Fragment,{children:e.items.map((n,r)=>(0,pe.jsx)(pe.Fragment,{children:(0,pe.jsx)($i.HTMLPortal,{onClick:t?o=>{o.stopPropagation(),t(n.annotationId,n,o)}:void 0,target:n.target?.spatial||void 0,children:(0,pe.jsx)("div",{"data-textual-content":!0,children:(0,pe.jsx)(te,{enableDangerouslySetInnerHTML:!0,children:n.text})})},r)}))})}var ge=require("react/jsx-runtime");function _i({strategy:e,children:t}){let{store:n}=(0,xn.useMemo)(()=>Mi({complexTimeline:e}),[e]),r=(0,Or.useStore)(n,i=>i.isReady),o=(0,Or.useStore)(n,i=>i.visibleElements);function a(i){return s=>{s&&n.getState().setElement(i,s)}}return(0,xn.useLayoutEffect)(()=>{if(r){let{startClock:i,stopClock:s}=n.getState();return i(),()=>{s()}}},[e,r]),D("portal","custom-controls",zr,{store:n,children:t},[r]),(0,ge.jsxs)(ge.Fragment,{children:[e.items.map(i=>i.type!=="Image"||!o[i.annotationId]?null:(0,ge.jsx)(Ce,{image:i,id:i.annotationId},i.id)),e.items.map((i,s)=>i.type!=="Text"||!o[i.annotationId]?null:(0,ge.jsx)(Sn,{strategy:{type:"textual-content",items:[i]}},s)),e.items.map((i,s)=>i.type!=="Video"||!i.target.spatial?null:(0,ge.jsx)(Ui.HTMLPortal,{target:i.target.spatial,children:(0,ge.jsx)("video",{ref:a(i.annotationId),src:i.url,style:{height:"100%",width:"100%",opacity:o[i.annotationId]?1:0}})},s))]})}var Yi=require("react/jsx-runtime");function Hr(){let{strategy:e}=V(),{renderComplexTimelineControls:t}=_();return e.type!=="complex-timeline"?null:(0,Yi.jsx)(_i,{strategy:e,children:t?t(e):null})}var rt=require("react/jsx-runtime");function Br({onClickPaintingAnnotation:e,children:t}){let{strategy:n}=V(),{renderViewerControls:r,viewControlsDeps:o}=_(),a=vt(),i=P();return D(a&&n.type==="textual-content"&&r?"overlay":"none",`canvas-portal-controls-${i?.id}`,oe.Provider,r?{value:a||null,children:r(n)}:{},[i,a,n,...o||[]]),n.type!=="textual-content"?null:(0,rt.jsxs)(rt.Fragment,{children:[(0,rt.jsx)(Sn,{strategy:n,onClickPaintingAnnotation:e}),t]})}var be=require("react");var Ki=require("react"),Dr=(e,t=[])=>{let n=T();(0,Ki.useEffect)(()=>{e(n)},[n,...t])};var Cn=j(require("react"),1),Qi=require("@iiif/helpers/image-service"),ji=Cn.default.createContext(new Qi.ImageServiceLoader);function zt(){return(0,Cn.useContext)(ji)}var Gi=require("@iiif/helpers/thumbnail");function he(e,t,{canvasId:n,manifestId:r}={}){let o=T(),a=zt(),i=(0,be.useMemo)(()=>(0,Gi.createThumbnailHelper)(o,{imageServiceLoader:a}),[o,a]),[s,l]=(0,be.useState)(),u=z(r?{id:r}:void 0),c=P(n?{id:n}:void 0),d=c||u,v=(0,be.useRef)(!1);if((0,be.useEffect)(()=>(v.current=!1,()=>{v.current=!0}),[]),!d)throw new Error("Must be called under a manifest or canvas context.");return Dr(h=>{i.getBestThumbnailAtSize(d,e,t).then(x=>{x.best&&!v.current&&l(x.best)})},[d]),s}var ot=require("react/jsx-runtime");function Fr({isStatic:e=!1,enableSizes:t=!1,onClickPaintingAnnotation:n,children:r}){let{strategy:o}=V(),{renderViewerControls:a,viewControlsDeps:i}=_(),s=P(),l=vt(),u=he({maxWidth:256,maxHeight:256});return D(l&&o.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${s?.id}`,oe.Provider,a?{value:l||null,children:a(o)}:{},[s,l,o,...i||[]]),o.type!=="images"?null:(0,ot.jsxs)(ot.Fragment,{children:[o.images.map((c,d)=>(0,ot.jsx)(Ce,{isStatic:e,image:c,id:c.id,thumbnail:d===0?u:void 0,selector:c.selector,enableSizes:t,onClick:n?v=>{n(c.annotationId,c,v)}:void 0},c.id+d)),r]})}var Re=require("react/jsx-runtime");function qr({model:e}){return(0,Re.jsxs)(Re.Fragment,{children:[(0,Re.jsx)("style",{children:`
|
|
5
5
|
.model-container {
|
|
6
6
|
position: absolute;
|
|
7
7
|
top: 0;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
justify-content: center;
|
|
15
15
|
pointer-events: visible;
|
|
16
16
|
}
|
|
17
|
-
`}),(0,Re.jsx)("div",{className:"model-container",children:(0,Re.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function bn({model:e,name:t}){return D("overlay",`model-${t}`,
|
|
17
|
+
`}),(0,Re.jsx)("div",{className:"model-container",children:(0,Re.jsx)("model-viewer",{"interaction-prompt":"none",style:{width:"100%",height:"100%"},"camera-controls":"","ar-status":"not-presenting",src:e.id})})]})}function bn({model:e,name:t}){return D("overlay",`model-${t}`,qr,{model:e},[e]),null}var Xi=require("react/jsx-runtime");function Wr(){let{strategy:e}=V();return e.type!=="3d-model"?null:(0,Xi.jsx)(bn,{model:e.model})}var qe=require("react/jsx-runtime");function $r({children:e}){let{strategy:t}=V(),[n]=lr();return t.type!=="images"?null:(0,qe.jsxs)(qe.Fragment,{children:[n?(0,qe.jsx)(Ct,{page:n}):null,t.annotations&&t.annotations.pages?t.annotations.pages.map(r=>(0,qe.jsx)(Ct,{page:r},r.id)):null,e]})}var Pe=require("react"),Rn=require("react/jsx-runtime"),Zi=(0,Pe.createContext)(null),Ji=(0,Pe.createContext)(null),ea=(0,Pe.createContext)(null);function ls(){let e=(0,Pe.useContext)(Zi);if(!e)throw new Error("Ctx not found");return e}function us(){let e=(0,Pe.useContext)(Ji);if(!e)throw new Error("Ctx not found");return e}function ms(){let e=(0,Pe.useContext)(ea);if(!e)throw new Error("Ctx not found");return e}function Ot({actions:e,state:t,children:n,currentTime:r,progress:o,element:a}){return(0,Rn.jsx)(ea.Provider,{value:{currentTime:r,progress:o,element:a},children:(0,Rn.jsx)(Ji.Provider,{value:e,children:(0,Rn.jsx)(Zi.Provider,{value:t,children:n})})})}var ta=require("react");var na=require("@iiif/helpers");function Ht(){let e=z(),t=P();return(0,ta.useMemo)(()=>{if(!e||!t||!e.start)return null;let n=(0,na.expandTarget)(e.start);return!n||n.source.id!==t.id||!n||!n.selector||n.selector.type!=="TemporalSelector"?null:n.selector.temporal},[e,t])}var An=require("react/jsx-runtime");function Ur({media:e,startTime:t,children:n}){let[{element:r,currentTime:o,progress:a},i,s]=Be({duration:e.duration}),l=t?`${e.url}#t=${t}`:e.url;return(0,An.jsxs)(Ot,{state:i,actions:s,currentTime:o,progress:a,element:r,children:[(0,An.jsx)("audio",{ref:r,src:l}),n]},e.url)}function Pn({media:e,mediaControlsDeps:t,audioCopmonent:n=Ur,children:r}){let o=Ht();return D("portal","audio",n,{media:e,startTime:o?o.startTime:null,children:r},[e,o,...t||[]]),null}var _r=require("react/jsx-runtime");function We({x:e=0,y:t=0}){let n=P(),r=he({maxWidth:256,maxHeight:256});return!n||!r||r.type!=="fixed"?null:(0,_r.jsx)("world-object",{height:n.height,width:n.width,x:e,y:t,children:(0,_r.jsx)("world-image",{uri:r.id,target:{x:0,y:0,width:n.width,height:n.height},display:r.width&&r.height?{width:r.width,height:r.height}:void 0,crop:void 0})})}var $e=require("react/jsx-runtime");function Yr({as:e}){let{strategy:t}=V(),{renderMediaControls:n,mediaControlsDeps:r}=_();return t.type!=="media"||t.media.type!=="Sound"?null:(0,$e.jsx)($e.Fragment,{children:(0,$e.jsxs)(Pn,{media:t.media,mediaControlsDeps:r,audioCopmonent:e,children:[(0,$e.jsx)(We,{}),n?n(t):null]},t.media.url)})}var ye=require("react/jsx-runtime");function Kr(){let{strategy:e}=V(),{renderViewerControls:t,viewControlsDeps:n}=_(),r=P(),o=r?.accompanyingCanvas,a=r?.placeholderCanvas;return(0,ye.jsxs)(ye.Fragment,{children:[e.type==="media"&&e.media.type==="Sound"&&o?(0,ye.jsx)(re,{canvas:o.id,children:(0,ye.jsx)(Ue,{renderViewerControls:t,viewControlsDeps:n})}):null,e.type==="media"&&e.media.type==="Sound"&&a&&!o?(0,ye.jsx)(re,{canvas:a.id,children:(0,ye.jsx)(Ue,{renderViewerControls:t,viewControlsDeps:n})}):null]})}var Bt=require("react/jsx-runtime");function Qr({element:e,media:t,startTime:n,playPause:r,poster:o}){let a="div",i=n?`${t.url}#t=${n}`:t.url;return(0,Bt.jsxs)(a,{className:"video-container",part:"video-container",onClick:r,children:[(0,Bt.jsx)("style",{children:`
|
|
18
18
|
.video-container {
|
|
19
19
|
position: absolute;
|
|
20
20
|
top: 0;
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
justify-content: center;
|
|
28
28
|
pointer-events: visible;
|
|
29
29
|
}
|
|
30
|
-
`}),(0,Bt.jsx)("video",{poster:
|
|
30
|
+
`}),(0,Bt.jsx)("video",{poster:o,ref:e,src:i,style:{width:"100%",objectFit:"contain"}})]})}function Tn({media:e,mediaControlsDeps:t,children:n,videoComponent:r=Qr,captions:o}){let a=P(),i=Ht(),s=a&&a.placeholderCanvas&&a.placeholderCanvas.id||void 0,l=he({},!1,{canvasId:s}),[{element:u,currentTime:c,progress:d},v,h]=Be({duration:e.duration});return D("overlay","video-element",r,{element:u,media:e,playPause:h.playPause,poster:l?.id,canvas:a,startTime:i?i.startTime:null,captions:o},[l]),D("portal","custom-controls",Ot,{state:v,actions:h,currentTime:c,progress:d,element:u,children:n},[c,v,e,...t||[]]),null}var In=require("react/jsx-runtime");function jr({as:e}){let{strategy:t}=V(),{renderMediaControls:n,mediaControlsDeps:r}=_();return t.type!=="media"||t.media.type!=="Video"?null:(0,In.jsxs)(Tn,{captions:t.captions,media:t.media,mediaControlsDeps:r,videoComponent:e,children:[(0,In.jsx)(We,{}),n?n(t):null]},t.media.url)}var ra=require("react"),Dt=require("react/jsx-runtime");function ds({element:e,media:t,playPause:n}){let r=(0,ra.useRef)(null);return t.youTubeId?(0,Dt.jsxs)("div",{className:"video-container",part:"video-container",onClick:n,children:[(0,Dt.jsx)("style",{children:`
|
|
31
31
|
.video-container {
|
|
32
32
|
position: absolute;
|
|
33
33
|
top: 0;
|
|
@@ -45,4 +45,4 @@
|
|
|
45
45
|
width: 100%;
|
|
46
46
|
object-fit: contain;
|
|
47
47
|
}
|
|
48
|
-
`}),(0,Dt.jsx)("iframe",{className:"video-yt",ref:o,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function ra({media:e,mediaControlsDeps:t,children:n}){let[{element:o,currentTime:r,progress:a},i,s]=Be({duration:e.duration});return D("overlay","video-element",ds,{element:o,media:e,playPause:s.playPause}),null}var wn=require("react/jsx-runtime");function Xo(){let{strategy:e}=V(),{renderMediaControls:t,mediaControlsDeps:n}=_();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,wn.jsxs)(ra,{media:e.media,mediaControlsDeps:n,children:[(0,wn.jsx)(We,{}),t?t(e):null]})}var X=require("react/jsx-runtime");function Ue({x:e,y:t,onChoiceChange:n,registerActions:o,defaultChoices:r,isStatic:a,renderViewerControls:i,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:c,mediaControlsDeps:d,strategies:v,throwOnUnknown:y,backgroundStyle:x,alwaysShowBackground:g,keepCanvasScale:S=!1,enableSizes:h=!1,enableYouTube:C=!0,onClickPaintingAnnotation:m,components:b={},children:A}){return(0,X.jsxs)(Mo,{throwOnUnknown:y,onChoiceChange:n,registerActions:o,strategies:v,defaultChoices:r,mediaControlsDeps:d,renderMediaControls:s,renderViewerControls:i,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:c,children:[(0,X.jsxs)(Eo,{keepCanvasScale:S,x:e,y:t,children:[(0,X.jsx)(No,{alwaysShowBackground:g,backgroundStyle:x}),(0,X.jsx)(Bo,{}),(0,X.jsx)(Do,{}),(0,X.jsx)(qo,{isStatic:a,enableSizes:h,onClickPaintingAnnotation:m}),(0,X.jsx)(Uo,{}),(0,X.jsx)($o,{}),(0,X.jsx)(Ko,{as:b.Audio}),(0,X.jsx)(Go,{as:b.Video}),C?(0,X.jsx)(Xo,{}):null,A]}),(0,X.jsx)(Qo,{})]})}var Zo=require("react/jsx-runtime");function ia(e){let t=P();return!t||!t.placeholderCanvas?null:(0,Zo.jsx)(oe,{canvas:t.placeholderCanvas.id,children:(0,Zo.jsx)(Ue,{renderViewerControls:e.renderViewerControls})})}var Y=require("react/jsx-runtime"),fs=(0,Ft.forwardRef)(function(t,n){let o=z(),r=Ee(),a=ht(),{ViewerControls:i,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,Ft.useImperativeHandle)(n,()=>a,[a]),!o)return(0,Y.jsx)("div",{});let u=0;return(0,Y.jsxs)(Y.Fragment,{children:[t.header,(0,Y.jsx)(F.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:r.map((c,d)=>{let v=u;return u+=c.width+(t.spacing||0),(0,Y.jsx)(oe,{canvas:c.id,children:(0,Y.jsx)(F.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:d===0&&i?()=>(0,Y.jsx)(i,{}):void 0,renderMediaControls:d===0&&s?()=>(0,Y.jsx)(s,{}):void 0,renderComplexTimelineControls:d===0&&l?()=>(0,Y.jsx)(l,{}):void 0,x:v,...t.canvasProps||{},children:t.annotations},c.id)},c.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),F=(0,Ft.forwardRef)(function({children:t,height:n,annotations:o,canvasProps:r,spacing:a,header:i,components:s,mode:l,reuseAtlas:u,renderPreset:c,runtimeOptions:d,...v},y){let x=ke();return(0,Y.jsx)(we,{vault:x,children:(0,Y.jsx)(no,{...v,children:(0,Y.jsx)(fs,{ref:y,height:n,components:s,spacing:a,canvasProps:r,annotations:o,header:i,mode:l,reuseAtlas:u,renderPreset:c,runtimeOptions:d,children:t})})})});F.RenderImage=Ce;F.RenderCanvas=Ue;F.RenderAnnotationPage=Ct;F.RenderAnnotation=cn;F.Viewer=an;F.CanvasBackground=gn;F.Audio=Pn;F.Video=Tn;F.Model=bn;F.AudioHTML=_o;F.VideoHTML=jo;F.ModelHTML=Wo;F.PlaceholderCanvas=ia;var aa=require("@atlas-viewer/atlas");var kn=require("react"),qt=require("react/jsx-runtime"),ps=(0,kn.forwardRef)(function({canvasId:t},n){let o=(0,aa.useCanvas)(),r=At(t||o?.id),a=T();return(0,kn.useImperativeHandle)(n,()=>r,[t,o]),!o||r.enabledPageIds.length===0?null:(0,qt.jsx)(qt.Fragment,{children:r.enabledPageIds.map(i=>(0,qt.jsx)(F.RenderAnnotationPage,{page:a.get(i)},i))})});var ca=require("react");var sa=require("react");var H=require("react/jsx-runtime");function Wt({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:o=!0,allowHtml:r,emptyFallback:a,classes:i={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:u="",separator:c,tableFooter:d,tableHeader:v}){let y=(0,sa.useMemo)(()=>{let g=(t||[]).reduce((h,C)=>[...h,...C.keys],[]),S={};for(let h of e){let C=h&&h.label?Object.values(h.label):[];for(let m of C)if(m&&m.length&&(g.indexOf(`metadata.${m[0]}`)!==-1||g.length===0)&&h){let b=`metadata.${m[0]}`;S[b]=S[b]?S[b]:[],S[b].push(h);break}}return S},[t,e]);return Object.keys(y).length===0&&o?(0,H.jsx)(H.Fragment,{children:a})||(0,H.jsx)("div",{className:i.empty,children:s}):t&&t.length?(0,H.jsxs)("table",{className:i.container,children:[v,(0,H.jsx)("tbody",{children:t.map((g,S)=>{let h=[];for(let C of g.keys)for(let m of y[C]||[])h.push((0,H.jsx)(te,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:m.value},S+"__"+C));return h.length===0?null:(0,H.jsxs)("tr",{className:i.row,children:[(0,H.jsx)("td",{className:i.label,style:n?{minWidth:n}:{},children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:r,separator:c,defaultText:u,children:g.label})}),(0,H.jsx)("td",{className:i.value,children:h})]},S)})}),d]}):(0,H.jsxs)("table",{className:i.container,children:[v,(0,H.jsx)("tbody",{children:e&&e.length?e.map((g,S)=>g?(0,H.jsxs)("tr",{className:i.row,children:[(0,H.jsx)("td",{className:i.label,style:n?{minWidth:n}:{},children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:g.label})}),(0,H.jsx)("td",{className:i.value,children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:r,defaultText:l,separator:c,children:g.value})})]},S):null):null}),d]})}var la=require("react/jsx-runtime");function gs(e){let t=z(),n=P(),o=dt(),r=(0,ca.useMemo)(()=>{let a=t?.metadata||[],i=n?.metadata||[],s=o?.metadata||[];return[...a,...i,...s]},[t,n,o]);return(0,la.jsx)(Wt,{metadata:r,...e})}var Nn=require("react");var Mn=require("@iiif/parser/image-3"),ua=require("react");function En(e,t={},n=[]){return(0,ua.useMemo)(()=>{if(!e)return null;let o=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(o="default"));let r=(0,Mn.createImageServiceRequest)(e);return(0,Mn.imageServiceRequestToString)({identifier:r.identifier,server:r.server,scheme:r.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:o||"default",prefix:r.prefix,originalPath:r.originalPath})},[...n])}var $t=require("react/jsx-runtime");function hs(e){let t=typeof e.src=="string"?e.src:e.src.id,n=zt(),[o,r]=(0,Nn.useState)(!1),a;if(t){let s=n.loadServiceSync({id:t});s&&(a=s)}!a&&!o&&n.loadService({id:t}).then(()=>{r(!0)});let i=En(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[o,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,Nn.useEffect)(()=>()=>{r(!1)},[t]),i?(0,$t.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):(0,$t.jsx)(ma,{...e,fetchImageService:!1})}function ma(e){if(e.fetchImageService)return(0,$t.jsx)(hs,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=En(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,$t.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var da=require("react/jsx-runtime");function ys(e){let t=z();return(0,da.jsx)(Wt,{metadata:t?.metadata||[],...e})}var Vn=require("react");var Jo=j(require("react-lazy-load-image-component"),1);var fa=require("@iiif/helpers/i18n"),Z=require("react/jsx-runtime"),{LazyLoadComponent:vs}=Jo||Jo.default;function er(e){let{size:t,visible:n,classes:o,canvasId:r,figure:a}=e,i=t?.width||128,s=t?.height||t?.width||128,l=(0,Z.jsx)(Ss,{...e}),u=(0,Z.jsx)(vs,{threshold:300,style:{height:s,width:i},visibleByDefault:n,children:r?(0,Z.jsx)(oe,{canvas:r,children:l}):l});return a?(0,Z.jsx)("figure",{className:o?.figure,children:u}):u}function Ss({fallback:e,size:t,classes:n,showLabel:o,alt:r,dereference:a=!1}){let i=P(),s=t?.width||128,l=t?.height||t?.width||128,u=r||(0,fa.getValue)(i?.label)||"",c=he({width:s,height:l,allowUnsafe:!0},a);return!c||c.type!=="fixed"?(0,Z.jsx)(Z.Fragment,{children:e}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)("div",{className:n?.imageWrapper,children:(0,Z.jsx)("img",{className:n?.img,src:c.id,alt:u})}),o?(0,Z.jsx)(te,{as:"figcaption",className:n?.label,children:i?.label}):null]})}var it=require("react/jsx-runtime");function xs({scrollBehaviour:e,dereference:t,flat:n,size:o,classes:r={},showLabel:a,figure:i,fallback:s}){let l=(0,Vn.useRef)(null),{items:u,sequence:c,currentSequenceIndex:d,setSequenceIndex:v}=ht(),y={row:r.selected?.row||r.row,item:r.selected?.item||r.item,figure:r.selected?.figure||r.figure,img:r.selected?.img||r.img,label:r.selected?.label||r.label,imageWrapper:r.selected?.imageWrapper||r.imageWrapper};(0,Vn.useLayoutEffect)(()=>{if(!l.current)return;let g=l.current.querySelector("[data-selected=true]");g&&g.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[d]);let x=[];for(let g of c){let S=[],h=c[d]===g;for(let C of g){let m=u[C];S.push((0,it.jsx)("div",{className:h?y.item:r.item,children:(0,it.jsx)(er,{classes:h?y:r,canvasId:m.id,size:o,dereference:t,showLabel:a,figure:i,placeholder:(0,it.jsx)("div",{style:{height:128,width:128}}),fallback:s})},C))}if(n){x.push(S);continue}x.push((0,it.jsx)("div",{onClick:C=>{v(c.indexOf(g))},"data-selected":h,className:h?y.row:r.row,children:S},g.join("-")))}return(0,it.jsx)("div",{ref:l,className:r.container,children:x})}var K=require("react/jsx-runtime"),Cs={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function bs({helper:e,showShapes:t,state:n,enabled:o=Cs,classNames:r={},icons:a={}}){return(0,K.jsxs)(K.Fragment,{children:[t?(0,K.jsxs)(K.Fragment,{children:[o.draw&&(0,K.jsx)("button",{className:r.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!n.lineMode&&!n.selectedStamp&&t&&n.drawMode,children:a.DrawIcon||"Draw"}),o.polygon&&(0,K.jsx)("button",{className:r.button,"data-active":!n.lineMode&&!n.selectedStamp&&t&&!n.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),o.line&&(0,K.jsx)("button",{className:r.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),o.lineBox&&(0,K.jsx)("button",{className:r.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),o.square&&(0,K.jsx)("button",{className:r.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),o.triangle&&(0,K.jsx)("button",{className:r.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),o.hexagon&&(0,K.jsx)("button",{className:r.button,"data-active":n.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,n.showBoundingBox&&o.delete&&(0,K.jsx)("button",{className:r.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}var q=require("react"),tr=j(require("mitt"),1),pa=require("react/jsx-runtime"),Ln=(0,q.createContext)((0,tr.default)());Ln.displayName="SelectorHelper";function Rs({children:e}){return(0,pa.jsx)(Ln.Provider,{value:(0,q.useMemo)(()=>(0,tr.default)(),[]),children:e})}function Ps(){return(0,q.useContext)(Ln)}function nr(e){let t=or(),[n,o]=(0,q.useState)(!1);(0,q.useEffect)(()=>t.withSelector(e).on("highlight",()=>{o(!0)}),[t,e]),(0,q.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{o(!1)}),[t,e]);let r=(0,q.useCallback)(i=>{t.emit("click",{selectorId:e,event:i})},[e,t]),a=(0,q.useCallback)(i=>{t.emit("hover",{selectorId:e,event:i})},[e,t]);return{controller:t,onClick:r,onHover:a,isHighlighted:n}}function or(){let e=(0,q.useContext)(Ln);return(0,q.useMemo)(()=>({withSelector(t){return{on(n,o){let r=a=>{a&&a.selectorId===t&&o(a)};return e.on(n,r),()=>{e.off(n,r)}},emit(n,o){e.emit(n,{...o,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function As(){let e=or();return(0,q.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(n,o){return e.withSelector(t).on(n,o)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,o){return e.emit("event-listener",{selectorId:t,name:n,callback:o}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:o})}},getImagePreview(t){return new Promise((n,o)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:o})})},on(t,n){return e.on(t,n)}}),[e])}var at=require("react"),ga=require("react/jsx-runtime");function rr(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var ir=(0,at.createContext)(rr());ir.displayName="AnnotationStyle";function ar(){return(0,at.useContext)(ir)}function Ts({theme:e,children:t}){let n=(0,at.useMemo)(()=>e||rr(),[e]);return(0,ga.jsx)(ir.Provider,{value:n,children:t})}var On=require("@atlas-viewer/atlas");var Q=require("react");var st=require("react"),ha=require("polygon-editor");function sr(e,t,n){let[o,r]=(0,st.useState)({}),a=(0,st.useMemo)(()=>(0,ha.createHelper)(e,n),[]);return(0,st.useEffect)(()=>(a.clock.start(t,r),()=>{a.clock.stop()}),[]),{state:o,helper:a}}var ya=require("polygon-editor"),N=require("react/jsx-runtime"),Ae=(0,ya.createSvgHelpers)();function cr(e,t){let{image:n,currentShape:o,onChange:r,hideShapeLines:a}=e,i=(0,Q.useRef)(),s=(0,Q.useRef)(),l=(0,Q.useRef)(),u=(0,Q.useRef)(),c=(0,Q.useRef)(),d=(0,Q.useRef)(),v=(0,Q.useRef)(),y=(0,Q.useRef)(),[x,g]=(0,Q.useState)(null),[S,h]=(0,Q.useState)(!1),{helper:C,state:m}=sr(o,(k,ne)=>{Ae.updateTransitionBoundingBox(s.current,k,ne),Ae.updateBoundingBoxPolygon(i.current,k,ne),Ae.updateTransitionShape(d.current,k,ne),Ae.updateClosestLinePointTransform(u.current,k,ne),Ae.updateSelectBox(l.current,k,ne),Ae.updatePointLine(v.current,k,ne),Ae.updateDrawPreview(c.current,k,ne,3),Ae.updateLineBox(y.current,k),g(k.transitionDirection),h(k.transitionRotate)},r);(0,Q.useEffect)(()=>{C.setShape(o||null)},t),(0,Q.useEffect)(()=>{let k=()=>{C.modifiers.reset()};return document.addEventListener("mouseleave",k),()=>{document.removeEventListener("mouseleave",k)}},[]);let b=(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),(0,N.jsx)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),(0,N.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),A=o?o.open?"polyline":"polygon":null,M=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",I=m.actionIntentType==="add-open-point",R=m.transitionIntentType==="split-line",B=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",_e=o&&A?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(A,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:B?0:2,stroke:a?"transparent":"#000",points:o.points.map(k=>k.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:m.showBoundingBox?void 0:"url(#dot)",markerMid:m.showBoundingBox?void 0:"url(#dot)",markerEnd:m.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),m.lineBoxMode&&m.actionIntentType==="close-line-box"?(0,N.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:y,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,N.jsx)("polyline",{ref:c,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.selectedPoints.length?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:o.points.filter((k,ne)=>m.selectedPoints?.includes(ne)).map(k=>k.join(",")).join(" ")}):null,M&&m.closestPoint!==null&&o.points[m.closestPoint]?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${o.points[m.closestPoint][0]},${o.points[m.closestPoint][1]}`}):null,!m.transitioning&&(m.actionIntentType==="add-open-point"||m.actionIntentType==="close-shape"||m.actionIntentType==="close-shape-line")?(0,N.jsx)("polyline",{stroke:"#000",ref:v,strokeWidth:m.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,m.hasClosestLine&&(!m.transitionIntentType||m.transitionIntentType==="split-line")?(0,N.jsx)("g",{ref:u,children:(0,N.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,m.transitioning?(0,N.jsx)(A,{ref:d,fill:o.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:o.open?2:0}):null,m.transitioning&&m.transitionIntentType==="select-multiple-points"?(0,N.jsx)("rect",{ref:l,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,m.showBoundingBox?null:(0,N.jsx)("g",{name:"controls",children:!1}),m.showBoundingBox&&!B?(0,N.jsx)("polygon",{ref:i,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:C,state:m,isAddingPoint:I,isSplitting:R,isStamping:B,isHoveringPoint:M,transitionDirection:x,transitionRotate:S,defs:b,editor:_e}}var zn=require("react"),va=require("react-dom"),J=require("react/jsx-runtime"),Sa=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function lr(e){let t=e.theme||Sa[0],n=(0,On.useAtlas)(),{image:o}=e,{helper:r,defs:a,editor:i,state:s,transitionDirection:l,isSplitting:u,transitionRotate:c,isHoveringPoint:d,isAddingPoint:v,isStamping:y}=cr({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),x=m=>{r.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,zn.useEffect)(()=>{let m=b=>{r.key.up(b.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,zn.useEffect)(()=>{let m=b=>{r.key.down(b.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,zn.useEffect)(()=>{let m=[];return l&&m.push(`atlas-cursor-${l}`),s.actionIntentType==="cut-line"&&s.modifiers?.Shift&&m.push("atlas-cursor-cut"),(d||s.transitionIntentType==="move-shape"||s.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),v&&m.push("atlas-cursor-crosshair"),u&&m.push("atlas-cursor-copy"),c&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,v,d,u,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,l,c]);let g=e.shape&&e.shape?.points.length===0,S=e.renderControls?e.renderControls(r,s,g):null,h=document.getElementById(e.controlsHtmlId||"atlas-controls"),C="shape";return(0,J.jsx)(J.Fragment,{children:(0,J.jsxs)("world-object",{height:o.height,width:o.width,onMouseMove:x,onMouseDown:r.pointerDown,onMouseUp:r.pointerUp,onMouseLeave:r.blur,children:[e.shape?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(C,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.outer}),(0,J.jsx)(C,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:y?{}:t.inner})]}):null,(0,J.jsxs)(On.HTMLPortal,{relative:!0,interactive:!1,children:[(0,J.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,J.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${o.width} ${o.height}`,tabIndex:-1,children:[(0,J.jsx)("defs",{children:a}),i]})}),h?(0,va.createPortal)(S,h,"controls"):null]})]})})}var ur=require("react/jsx-runtime");function Is(e){let t=P(),n=e.annotationBucket,o=e.readOnly,r=e.id,{onClick:a,isHighlighted:i}=nr(e.id),s=ar(),l=i?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(o){let u="shape",c=e.polygon,d=c.open;return c?(0,ur.jsx)(u,{id:`shape-${r}`,points:c.points,open:d,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,ur.jsx)(lr,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Hn=require("react"),xa=require("react-error-boundary");var Te=require("react/jsx-runtime");function ws({src:e,errorFallback:t,interactive:n,skipSizes:o,children:r,renderViewerControls:a,viewControlsDeps:i,fluid:s,x:l,y:u,...c}){let[d,v]=(0,Hn.useState)(),y=t||nn,[x,g]=It(),S=(0,Hn.useMemo)(()=>{let C=g[e]?.status,m=x({id:e},{});return m?.height&&m.width&&C!=="loading"?{id:e,width:m.width,height:m.height,service:m,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:m.width,height:m.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:m.width,height:m.height}}}:null},[x,e,g]);if(D(d&&a?"overlay":"none",`canvas-portal-controls-${e}`,re.Provider,a&&S?{value:d||null,children:a({image:S,images:[S],type:"images"})}:{},[e,S,d,...i||[]]),!S||!S.height||!S.width)return null;let h=s?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:S.width/S.height;return console.log("here",h),(0,Te.jsx)(xa.ErrorBoundary,{resetKeys:[],fallbackRender:C=>(0,Te.jsx)(y,{...c,...C}),children:(0,Te.jsx)(an,{...c,aspectRatio:h,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:C=>{v(C),c.onCreated&&c.onCreated(C)},children:(0,Te.jsxs)(re.Provider,{value:d,children:[(0,Te.jsx)(Ce,{image:S,id:S.id,isStatic:!n,x:l,y:u},S.id),(0,Te.jsx)(ks,{viewerPreset:d,renderViewerControls:a,image:S,src:e,viewControlsDeps:i}),r]})})})}function ks({viewerPreset:e,renderViewerControls:t,image:n,src:o,viewControlsDeps:r}){return D(e&&t?"overlay":"none",`canvas-portal-controls-${o}`,re.Provider,t&&n?{value:e||null,children:t({image:n,images:[n],type:"images"})}:{},[o,e,...r||[]]),null}var Ca=require("react/jsx-runtime");function Ms({annotation:e,children:t}){return(0,Ca.jsx)($,{value:{annotation:e},children:t})}var ba=require("react/jsx-runtime");function Es({annotationPage:e,children:t}){return(0,ba.jsx)($,{value:{annotationPage:e},children:t})}var Ra=require("react/jsx-runtime");function Ns({collection:e,children:t}){return(0,Ra.jsx)($,{value:{collection:e},children:t})}function Vs(e,t={}){return Oe(t)}var Pa=require("@atlas-viewer/atlas"),Ie=require("react");function Ls({canvasId:e}={}){let t=(0,Pa.useCanvas)(),n=Ee(),o=(0,Ie.useMemo)(()=>e?[e]:t?[t.id]:n.map(u=>u.id),[e,t,n]),[r,a]=(0,Ie.useState)({}),i=yt();(0,Ie.useEffect)(()=>{let u=c=>{let d=c.partOf.canvasId;d&&a(v=>({...v,[d]:c.choice}))};return i.on("choice-change",u),()=>{i.off("choice-change",u)}},[]);let s=(0,Ie.useMemo)(()=>{let u=[];for(let c of o){let d=r[c];d&&u.push({canvasId:c,choice:d})}return u},[o,r]),l=(0,Ie.useMemo)(()=>({makeChoice:(u,c)=>{i.emit("make-choice",{choiceId:u,...c})}}),[i]);return{choices:s,actions:l}}function zs(e,t=!1){}function Os(e){let n=W().manifest,o=e?e.map(r=>typeof r=="string"?r:r?.id):[];return w(r=>{let a=n?r.iiif.entities.Manifest[n]:void 0,i=a?.items||[];if(typeof e>"u")return i;let s=[];for(let l of a?.items||[])o.indexOf(l.id)!==-1&&s.push(l);return s},[o.join("/")])}var Aa=require("react");function Hs(e,t=[]){let{id:n,selector:o}=e,r=W(),a=n||r.collection,i=w(s=>a?s.iiif.entities.Collection[a]:void 0,[a]);return(0,Aa.useMemo)(()=>{if(i)return o?o(i):i},[i,o,...t])}var Bn=require("react"),Ta=require("@iiif/helpers/events");function Bs(e,t,n,o,r=[]){let a=T(),i=(0,Bn.useMemo)(()=>(0,Ta.createEventsHelper)(a),[a]);(0,Bn.useEffect)(()=>{let s=e;return s?(i.addEventListener(s,t,n,o),()=>{i.removeEventListener(s,t,n)}):()=>{}},[i,e,t,...r])}function Ds(e,t){let{id:n,isLoaded:o,error:r,resource:a,requestId:i,cached:s}=mt(e,t);return{id:n,isLoaded:o,error:r,manifest:a,requestId:i,cached:s}}var mr=require("@iiif/parser/image-3");var de=require("react");function dr({cacheKey:e}={}){let t=P(),n=Oe(),o=T(),r=tt(),a=fi(),[i,s]=(0,de.useState)(void 0),[l,u]=(0,de.useState)(!1),[c,d]=(0,de.useState)("idle"),[v,y]=(0,de.useState)(void 0),x=t?t.id:"undefined",g=(0,de.useMemo)(()=>{try{if(t&&n.length){let h=n[0],C=o.get(h.body[0]),b=(0,mr.getImageServices)(C)[0];return b&&r(b,{width:b.width||t.width,height:b.height||t.height},!0)||void 0}}catch(h){console.error(h)}},[x,e,t]),S=c==="success"&&i?i:g;return(0,de.useEffect)(()=>{(async()=>{try{if(t&&n.length){let h=n[0],C=o.get(h.body[0]),b=(0,mr.getImageServices)(C)[0];if(!b)return;u(!0),d("loading");try{let A=await a(b,{width:b.width||t.width,height:b.height||t.height})||void 0;s(A),d("success"),u(!1)}catch(A){d("error"),y(A)}}}catch(h){d("error"),y(h)}})()},[x,e]),(0,de.useMemo)(()=>({data:S,isFetching:l,status:c,error:v}),[S,l,c,v])}function Fs(){let e=dr();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var Ia=require("@iiif/helpers/styles"),wa=require("react");function qs(){let e=T();return(0,wa.useMemo)(()=>(0,Ia.createStylesHelper)(e),[e])}p(f,require("@iiif/helpers/annotation-targets"),module.exports);
|
|
48
|
+
`}),(0,Dt.jsx)("iframe",{className:"video-yt",ref:r,src:`https://www.youtube.com/embed/${t.youTubeId}?enablejsapi=1&origin=${window.location.host}`,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-same-origin allow-presentation"})]}):null}function oa({media:e,mediaControlsDeps:t,children:n}){let[{element:r,currentTime:o,progress:a},i,s]=Be({duration:e.duration});return D("overlay","video-element",ds,{element:r,media:e,playPause:s.playPause}),null}var wn=require("react/jsx-runtime");function Gr(){let{strategy:e}=V(),{renderMediaControls:t,mediaControlsDeps:n}=_();return e.type!=="media"||e.media.type!=="VideoYouTube"?null:(0,wn.jsxs)(oa,{media:e.media,mediaControlsDeps:n,children:[(0,wn.jsx)(We,{}),t?t(e):null]})}var X=require("react/jsx-runtime");function Ue({x:e,y:t,onChoiceChange:n,registerActions:r,defaultChoices:o,isStatic:a,renderViewerControls:i,renderMediaControls:s,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:c,mediaControlsDeps:d,strategies:v,throwOnUnknown:h,backgroundStyle:x,alwaysShowBackground:g,keepCanvasScale:S=!1,enableSizes:y=!1,enableYouTube:C=!0,onClickPaintingAnnotation:m,components:b={},children:A}){return(0,X.jsxs)(kr,{throwOnUnknown:h,onChoiceChange:n,registerActions:r,strategies:v,defaultChoices:o,mediaControlsDeps:d,renderMediaControls:s,renderViewerControls:i,renderComplexTimelineControls:l,complexTimelineControlsDeps:u,viewControlsDeps:c,children:[(0,X.jsxs)(Mr,{keepCanvasScale:S,x:e,y:t,children:[(0,X.jsx)(Er,{alwaysShowBackground:g,backgroundStyle:x}),(0,X.jsx)(Hr,{}),(0,X.jsx)(Br,{}),(0,X.jsx)(Fr,{isStatic:a,enableSizes:y,onClickPaintingAnnotation:m}),(0,X.jsx)($r,{}),(0,X.jsx)(Wr,{}),(0,X.jsx)(Yr,{as:b.Audio}),(0,X.jsx)(jr,{as:b.Video}),C?(0,X.jsx)(Gr,{}):null,A]}),(0,X.jsx)(Kr,{})]})}var Xr=require("react/jsx-runtime");function ia(e){let t=P();return!t||!t.placeholderCanvas?null:(0,Xr.jsx)(re,{canvas:t.placeholderCanvas.id,children:(0,Xr.jsx)(Ue,{renderViewerControls:e.renderViewerControls})})}var Y=require("react/jsx-runtime"),fs=(0,Ft.forwardRef)(function(t,n){let r=z(),o=Ee(),a=ht(),{ViewerControls:i,MediaControls:s,ComplexTimelineControls:l}=t.components||{};if((0,Ft.useImperativeHandle)(n,()=>a,[a]),!r)return(0,Y.jsx)("div",{});let u=0;return(0,Y.jsxs)(Y.Fragment,{children:[t.header,(0,Y.jsx)(F.Viewer,{height:t.height,mode:t.mode,renderPreset:t.renderPreset,runtimeOptions:t.runtimeOptions,children:o.map((c,d)=>{let v=u;return u+=c.width+(t.spacing||0),(0,Y.jsx)(re,{canvas:c.id,children:(0,Y.jsx)(F.RenderCanvas,{strategies:["3d-model","media","images","empty","textual-content","complex-timeline"],renderViewerControls:d===0&&i?()=>(0,Y.jsx)(i,{}):void 0,renderMediaControls:d===0&&s?()=>(0,Y.jsx)(s,{}):void 0,renderComplexTimelineControls:d===0&&l?()=>(0,Y.jsx)(l,{}):void 0,x:v,...t.canvasProps||{},children:t.annotations},c.id)},c.id)})},t.reuseAtlas?"":a.currentSequenceIndex),t.children]})}),F=(0,Ft.forwardRef)(function({children:t,height:n,annotations:r,canvasProps:o,spacing:a,header:i,components:s,mode:l,reuseAtlas:u,renderPreset:c,runtimeOptions:d,...v},h){let x=ke();return(0,Y.jsx)(we,{vault:x,children:(0,Y.jsx)(nr,{...v,children:(0,Y.jsx)(fs,{ref:h,height:n,components:s,spacing:a,canvasProps:o,annotations:r,header:i,mode:l,reuseAtlas:u,renderPreset:c,runtimeOptions:d,children:t})})})});F.RenderImage=Ce;F.RenderCanvas=Ue;F.RenderAnnotationPage=Ct;F.RenderAnnotation=cn;F.Viewer=an;F.CanvasBackground=gn;F.Audio=Pn;F.Video=Tn;F.Model=bn;F.AudioHTML=Ur;F.VideoHTML=Qr;F.ModelHTML=qr;F.PlaceholderCanvas=ia;var aa=require("@atlas-viewer/atlas");var kn=require("react"),qt=require("react/jsx-runtime"),ps=(0,kn.forwardRef)(function({canvasId:t},n){let r=(0,aa.useCanvas)(),o=At(t||r?.id),a=T();return(0,kn.useImperativeHandle)(n,()=>o,[t,r]),!r||o.enabledPageIds.length===0?null:(0,qt.jsx)(qt.Fragment,{children:o.enabledPageIds.map(i=>(0,qt.jsx)(F.RenderAnnotationPage,{page:a.get(i)},i))})});var ca=require("react");var sa=require("react");var H=require("react/jsx-runtime");function Wt({metadata:e=[],config:t,labelWidth:n=16,showEmptyMessage:r=!0,allowHtml:o,emptyFallback:a,classes:i={},emptyMessage:s="No metadata available",emptyValueFallback:l="No value",emptyLabelFallback:u="",separator:c,tableFooter:d,tableHeader:v}){let h=(0,sa.useMemo)(()=>{let g=(t||[]).reduce((y,C)=>[...y,...C.keys],[]),S={};for(let y of e){let C=y&&y.label?Object.values(y.label):[];for(let m of C)if(m&&m.length&&(g.indexOf(`metadata.${m[0]}`)!==-1||g.length===0)&&y){let b=`metadata.${m[0]}`;S[b]=S[b]?S[b]:[],S[b].push(y);break}}return S},[t,e]);return Object.keys(h).length===0&&r?(0,H.jsx)(H.Fragment,{children:a})||(0,H.jsx)("div",{className:i.empty,children:s}):t&&t.length?(0,H.jsxs)("table",{className:i.container,children:[v,(0,H.jsx)("tbody",{children:t.map((g,S)=>{let y=[];for(let C of g.keys)for(let m of h[C]||[])y.push((0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,defaultText:l,separator:c,children:m.value},S+"__"+C));return y.length===0?null:(0,H.jsxs)("tr",{className:i.row,children:[(0,H.jsx)("td",{className:i.label,style:n?{minWidth:n}:{},children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,separator:c,defaultText:u,children:g.label})}),(0,H.jsx)("td",{className:i.value,children:y})]},S)})}),d]}):(0,H.jsxs)("table",{className:i.container,children:[v,(0,H.jsx)("tbody",{children:e&&e.length?e.map((g,S)=>g?(0,H.jsxs)("tr",{className:i.row,children:[(0,H.jsx)("td",{className:i.label,style:n?{minWidth:n}:{},children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,defaultText:l,separator:c,children:g.label})}),(0,H.jsx)("td",{className:i.value,children:(0,H.jsx)(te,{enableDangerouslySetInnerHTML:o,defaultText:l,separator:c,children:g.value})})]},S):null):null}),d]})}var la=require("react/jsx-runtime");function gs(e){let t=z(),n=P(),r=dt(),o=(0,ca.useMemo)(()=>{let a=t?.metadata||[],i=n?.metadata||[],s=r?.metadata||[];return[...a,...i,...s]},[t,n,r]);return(0,la.jsx)(Wt,{metadata:o,...e})}var Nn=require("react");var Mn=require("@iiif/parser/image-3"),ua=require("react");function En(e,t={},n=[]){return(0,ua.useMemo)(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let o=(0,Mn.createImageServiceRequest)(e);return(0,Mn.imageServiceRequestToString)({identifier:o.identifier,server:o.server,scheme:o.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:o.prefix,originalPath:o.originalPath})},[...n])}var $t=require("react/jsx-runtime");function hs(e){let t=typeof e.src=="string"?e.src:e.src.id,n=zt(),[r,o]=(0,Nn.useState)(!1),a;if(t){let s=n.loadServiceSync({id:t});s&&(a=s)}!a&&!r&&n.loadService({id:t}).then(()=>{o(!0)});let i=En(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return(0,Nn.useEffect)(()=>()=>{o(!1)},[t]),i?(0,$t.jsx)("img",{src:i,alt:e.alt,className:e.className,style:e.style}):(0,$t.jsx)(ma,{...e,fetchImageService:!1})}function ma(e){if(e.fetchImageService)return(0,$t.jsx)(hs,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,n=En(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return n?(0,$t.jsx)("img",{src:n,alt:e.alt,className:e.className,style:e.style}):null}var da=require("react/jsx-runtime");function ys(e){let t=z();return(0,da.jsx)(Wt,{metadata:t?.metadata||[],...e})}var Vn=require("react");var Zr=j(require("react-lazy-load-image-component"),1);var fa=require("@iiif/helpers/i18n"),Z=require("react/jsx-runtime"),{LazyLoadComponent:vs}=Zr||Zr.default;function Jr(e){let{size:t,visible:n,classes:r,canvasId:o,figure:a}=e,i=t?.width||128,s=t?.height||t?.width||128,l=(0,Z.jsx)(Ss,{...e}),u=(0,Z.jsx)(vs,{threshold:300,style:{height:s,width:i},visibleByDefault:n,children:o?(0,Z.jsx)(re,{canvas:o,children:l}):l});return a?(0,Z.jsx)("figure",{className:r?.figure,children:u}):u}function Ss({fallback:e,size:t,classes:n,showLabel:r,alt:o,dereference:a=!1}){let i=P(),s=t?.width||128,l=t?.height||t?.width||128,u=o||(0,fa.getValue)(i?.label)||"",c=he({width:s,height:l,allowUnsafe:!0},a);return!c||c.type!=="fixed"?(0,Z.jsx)(Z.Fragment,{children:e}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)("div",{className:n?.imageWrapper,children:(0,Z.jsx)("img",{className:n?.img,src:c.id,alt:u})}),r?(0,Z.jsx)(te,{as:"figcaption",className:n?.label,children:i?.label}):null]})}var it=require("react/jsx-runtime");function xs({scrollBehaviour:e,dereference:t,flat:n,size:r,classes:o={},showLabel:a,figure:i,fallback:s}){let l=(0,Vn.useRef)(null),{items:u,sequence:c,currentSequenceIndex:d,setSequenceIndex:v}=ht(),h={row:o.selected?.row||o.row,item:o.selected?.item||o.item,figure:o.selected?.figure||o.figure,img:o.selected?.img||o.img,label:o.selected?.label||o.label,imageWrapper:o.selected?.imageWrapper||o.imageWrapper};(0,Vn.useLayoutEffect)(()=>{if(!l.current)return;let g=l.current.querySelector("[data-selected=true]");g&&g.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[d]);let x=[];for(let g of c){let S=[],y=c[d]===g;for(let C of g){let m=u[C];S.push((0,it.jsx)("div",{className:y?h.item:o.item,children:(0,it.jsx)(Jr,{classes:y?h:o,canvasId:m.id,size:r,dereference:t,showLabel:a,figure:i,placeholder:(0,it.jsx)("div",{style:{height:128,width:128}}),fallback:s})},C))}if(n){x.push(S);continue}x.push((0,it.jsx)("div",{onClick:C=>{v(c.indexOf(g))},"data-selected":y,className:y?h.row:o.row,children:S},g.join("-")))}return(0,it.jsx)("div",{ref:l,className:o.container,children:x})}var K=require("react/jsx-runtime"),Cs={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function bs({helper:e,showShapes:t,state:n,enabled:r=Cs,classNames:o={},icons:a={}}){return(0,K.jsxs)(K.Fragment,{children:[t?(0,K.jsxs)(K.Fragment,{children:[r.draw&&(0,K.jsx)("button",{className:o.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!n.lineMode&&!n.selectedStamp&&t&&n.drawMode,children:a.DrawIcon||"Draw"}),r.polygon&&(0,K.jsx)("button",{className:o.button,"data-active":!n.lineMode&&!n.selectedStamp&&t&&!n.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),r.line&&(0,K.jsx)("button",{className:o.button,"data-active":n.lineMode&&!n.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),r.lineBox&&(0,K.jsx)("button",{className:o.button,"data-active":n.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),r.square&&(0,K.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),r.triangle&&(0,K.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),r.hexagon&&(0,K.jsx)("button",{className:o.button,"data-active":n.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,n.showBoundingBox&&r.delete&&(0,K.jsx)("button",{className:o.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}var q=require("react"),eo=j(require("mitt"),1),pa=require("react/jsx-runtime"),Ln=(0,q.createContext)((0,eo.default)());Ln.displayName="SelectorHelper";function Rs({children:e}){return(0,pa.jsx)(Ln.Provider,{value:(0,q.useMemo)(()=>(0,eo.default)(),[]),children:e})}function Ps(){return(0,q.useContext)(Ln)}function to(e){let t=no(),[n,r]=(0,q.useState)(!1);(0,q.useEffect)(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),(0,q.useEffect)(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let o=(0,q.useCallback)(i=>{t.emit("click",{selectorId:e,event:i})},[e,t]),a=(0,q.useCallback)(i=>{t.emit("hover",{selectorId:e,event:i})},[e,t]);return{controller:t,onClick:o,onHover:a,isHighlighted:n}}function no(){let e=(0,q.useContext)(Ln);return(0,q.useMemo)(()=>({withSelector(t){return{on(n,r){let o=a=>{a&&a.selectorId===t&&r(a)};return e.on(n,o),()=>{e.off(n,o)}},emit(n,r){e.emit(n,{...r,selectorId:t})}}},on(t,n){return e.on(t,n),()=>{e.off(t,n)}},emit(t,n){e.emit(t,n)}}),[e])}function As(){let e=no();return(0,q.useMemo)(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(n,r){return e.withSelector(t).on(n,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,n,r){return e.emit("event-listener",{selectorId:t,name:n,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:n,callback:r})}},getImagePreview(t){return new Promise((n,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:n,reject:r})})},on(t,n){return e.on(t,n)}}),[e])}var at=require("react"),ga=require("react/jsx-runtime");function ro(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var oo=(0,at.createContext)(ro());oo.displayName="AnnotationStyle";function io(){return(0,at.useContext)(oo)}function Ts({theme:e,children:t}){let n=(0,at.useMemo)(()=>e||ro(),[e]);return(0,ga.jsx)(oo.Provider,{value:n,children:t})}var On=require("@atlas-viewer/atlas");var Q=require("react");var st=require("react"),ha=require("polygon-editor");function ao(e,t,n){let[r,o]=(0,st.useState)({}),a=(0,st.useMemo)(()=>(0,ha.createHelper)(e,n),[]);return(0,st.useEffect)(()=>(a.clock.start(t,o),()=>{a.clock.stop()}),[]),{state:r,helper:a}}var ya=require("polygon-editor"),N=require("react/jsx-runtime"),Ae=(0,ya.createSvgHelpers)();function so(e,t){let{image:n,currentShape:r,onChange:o,hideShapeLines:a}=e,i=(0,Q.useRef)(),s=(0,Q.useRef)(),l=(0,Q.useRef)(),u=(0,Q.useRef)(),c=(0,Q.useRef)(),d=(0,Q.useRef)(),v=(0,Q.useRef)(),h=(0,Q.useRef)(),[x,g]=(0,Q.useState)(null),[S,y]=(0,Q.useState)(!1),{helper:C,state:m}=ao(r,(k,ne)=>{Ae.updateTransitionBoundingBox(s.current,k,ne),Ae.updateBoundingBoxPolygon(i.current,k,ne),Ae.updateTransitionShape(d.current,k,ne),Ae.updateClosestLinePointTransform(u.current,k,ne),Ae.updateSelectBox(l.current,k,ne),Ae.updatePointLine(v.current,k,ne),Ae.updateDrawPreview(c.current,k,ne,3),Ae.updateLineBox(h.current,k),g(k.transitionDirection),y(k.transitionRotate)},o);(0,Q.useEffect)(()=>{C.setShape(r||null)},t),(0,Q.useEffect)(()=>{let k=()=>{C.modifiers.reset()};return document.addEventListener("mouseleave",k),()=>{document.removeEventListener("mouseleave",k)}},[]);let b=(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),(0,N.jsx)("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),(0,N.jsx)("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:(0,N.jsx)("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),A=r?r.open?"polyline":"polygon":null,M=!m.showBoundingBox&&m.closestPoint!==null&&m.actionIntentType==="select-point",I=m.actionIntentType==="add-open-point",R=m.transitionIntentType==="split-line",B=m.transitioning&&m.selectedStamp&&m.transitionIntentType==="stamp-shape",_e=r&&A?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(A,{fill:!m.transitioning&&m.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:B?0:2,stroke:a?"transparent":"#000",points:r.points.map(k=>k.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:m.showBoundingBox?void 0:"url(#dot)",markerMid:m.showBoundingBox?void 0:"url(#dot)",markerEnd:m.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),m.lineBoxMode&&m.actionIntentType==="close-line-box"?(0,N.jsx)("polygon",{fill:"rgba(255, 0, 0, .4)",ref:h,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,m.transitionIntentType==="draw-shape"&&m.transitioning?(0,N.jsx)("polyline",{ref:c,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!m.showBoundingBox&&m.selectedPoints&&m.selectedPoints.length?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:r.points.filter((k,ne)=>m.selectedPoints?.includes(ne)).map(k=>k.join(",")).join(" ")}):null,M&&m.closestPoint!==null&&r.points[m.closestPoint]?(0,N.jsx)("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[m.closestPoint][0]},${r.points[m.closestPoint][1]}`}):null,!m.transitioning&&(m.actionIntentType==="add-open-point"||m.actionIntentType==="close-shape"||m.actionIntentType==="close-shape-line")?(0,N.jsx)("polyline",{stroke:"#000",ref:v,strokeWidth:m.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,m.hasClosestLine&&(!m.transitionIntentType||m.transitionIntentType==="split-line")?(0,N.jsx)("g",{ref:u,children:(0,N.jsx)("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,m.transitioning?(0,N.jsx)(A,{ref:d,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,m.transitioning&&m.transitionIntentType==="select-multiple-points"?(0,N.jsx)("rect",{ref:l,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,m.showBoundingBox?null:(0,N.jsx)("g",{name:"controls",children:!1}),m.showBoundingBox&&!B?(0,N.jsx)("polygon",{ref:i,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:C,state:m,isAddingPoint:I,isSplitting:R,isStamping:B,isHoveringPoint:M,transitionDirection:x,transitionRotate:S,defs:b,editor:_e}}var zn=require("react"),va=require("react-dom"),J=require("react/jsx-runtime"),Sa=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function co(e){let t=e.theme||Sa[0],n=(0,On.useAtlas)(),{image:r}=e,{helper:o,defs:a,editor:i,state:s,transitionDirection:l,isSplitting:u,transitionRotate:c,isHoveringPoint:d,isAddingPoint:v,isStamping:h}=so({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),x=m=>{o.pointer([[~~m.atlas.x,~~m.atlas.y]])};(0,zn.useEffect)(()=>{let m=b=>{o.key.up(b.key)};return document.addEventListener("keyup",m),()=>{document.removeEventListener("keyup",m)}},[]),(0,zn.useEffect)(()=>{let m=b=>{o.key.down(b.key)};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[]),(0,zn.useEffect)(()=>{let m=[];return l&&m.push(`atlas-cursor-${l}`),s.actionIntentType==="cut-line"&&s.modifiers?.Shift&&m.push("atlas-cursor-cut"),(d||s.transitionIntentType==="move-shape"||s.transitionIntentType==="move-point")&&m.push("atlas-cursor-move"),v&&m.push("atlas-cursor-crosshair"),u&&m.push("atlas-cursor-copy"),c&&m.push("atlas-cursor-rotate"),s.transitionIntentType==="draw-shape"&&m.push("atlas-cursor-draw"),n?.canvas&&n.canvas.classList.add(...m),()=>{n?.canvas&&n.canvas.classList.remove(...m)}},[n?.canvas,v,d,u,s.modifiers?.Shift,s.actionIntentType,s.transitionIntentType,l,c]);let g=e.shape&&e.shape?.points.length===0,S=e.renderControls?e.renderControls(o,s,g):null,y=document.getElementById(e.controlsHtmlId||"atlas-controls"),C="shape";return(0,J.jsx)(J.Fragment,{children:(0,J.jsxs)("world-object",{height:r.height,width:r.width,onMouseMove:x,onMouseDown:o.pointerDown,onMouseUp:o.pointerUp,onMouseLeave:o.blur,children:[e.shape?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(C,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:h?{}:t.outer}),(0,J.jsx)(C,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:h?{}:t.inner})]}):null,(0,J.jsxs)(On.HTMLPortal,{relative:!0,interactive:!1,children:[(0,J.jsx)("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:(0,J.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[(0,J.jsx)("defs",{children:a}),i]})}),y?(0,va.createPortal)(S,y,"controls"):null]})]})})}var lo=require("react/jsx-runtime");function Is(e){let t=P(),n=e.annotationBucket,r=e.readOnly,o=e.id,{onClick:a,isHighlighted:i}=to(e.id),s=io(),l=i?s.highlighted:s[n||"hidden"]||s.hidden;if(!t)return null;if(r){let u="shape",c=e.polygon,d=c.open;return c?(0,lo.jsx)(u,{id:`shape-${o}`,points:c.points,open:d,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:l}):null}return(0,lo.jsx)(co,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}var Hn=require("react"),xa=require("react-error-boundary");var Te=require("react/jsx-runtime");function ws({src:e,errorFallback:t,interactive:n,skipSizes:r,children:o,renderViewerControls:a,viewControlsDeps:i,fluid:s,x:l,y:u,...c}){let[d,v]=(0,Hn.useState)(),h=t||nn,[x,g]=It(),S=(0,Hn.useMemo)(()=>{let C=g[e]?.status,m=x({id:e},{});return m?.height&&m.width&&C!=="loading"?{id:e,width:m.width,height:m.height,service:m,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:m.width,height:m.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:m.width,height:m.height}}}:null},[x,e,g]);if(D(d&&a?"overlay":"none",`canvas-portal-controls-${e}`,oe.Provider,a&&S?{value:d||null,children:a({image:S,images:[S],type:"images"})}:{},[e,S,d,...i||[]]),!S||!S.height||!S.width)return null;let y=s?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:S.width/S.height;return(0,Te.jsx)(xa.ErrorBoundary,{resetKeys:[],fallbackRender:C=>(0,Te.jsx)(h,{...c,...C}),children:(0,Te.jsx)(an,{...c,aspectRatio:y,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:C=>{v(C),c.onCreated&&c.onCreated(C)},children:(0,Te.jsxs)(oe.Provider,{value:d,children:[(0,Te.jsx)(Ce,{image:S,id:S.id,isStatic:!n,x:l,y:u},S.id),(0,Te.jsx)(ks,{viewerPreset:d,renderViewerControls:a,image:S,src:e,viewControlsDeps:i}),o]})})})}function ks({viewerPreset:e,renderViewerControls:t,image:n,src:r,viewControlsDeps:o}){return D(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,oe.Provider,t&&n?{value:e||null,children:t({image:n,images:[n],type:"images"})}:{},[r,e,...o||[]]),null}var Ca=require("react/jsx-runtime");function Ms({annotation:e,children:t}){return(0,Ca.jsx)($,{value:{annotation:e},children:t})}var ba=require("react/jsx-runtime");function Es({annotationPage:e,children:t}){return(0,ba.jsx)($,{value:{annotationPage:e},children:t})}var Ra=require("react/jsx-runtime");function Ns({collection:e,children:t}){return(0,Ra.jsx)($,{value:{collection:e},children:t})}function Vs(e,t={}){return Oe(t)}var Pa=require("@atlas-viewer/atlas"),Ie=require("react");function Ls({canvasId:e}={}){let t=(0,Pa.useCanvas)(),n=Ee(),r=(0,Ie.useMemo)(()=>e?[e]:t?[t.id]:n.map(u=>u.id),[e,t,n]),[o,a]=(0,Ie.useState)({}),i=yt();(0,Ie.useEffect)(()=>{let u=c=>{let d=c.partOf.canvasId;d&&a(v=>({...v,[d]:c.choice}))};return i.on("choice-change",u),()=>{i.off("choice-change",u)}},[]);let s=(0,Ie.useMemo)(()=>{let u=[];for(let c of r){let d=o[c];d&&u.push({canvasId:c,choice:d})}return u},[r,o]),l=(0,Ie.useMemo)(()=>({makeChoice:(u,c)=>{i.emit("make-choice",{choiceId:u,...c})}}),[i]);return{choices:s,actions:l}}function zs(e,t=!1){}function Os(e){let n=W().manifest,r=e?e.map(o=>typeof o=="string"?o:o?.id):[];return w(o=>{let a=n?o.iiif.entities.Manifest[n]:void 0,i=a?.items||[];if(typeof e>"u")return i;let s=[];for(let l of a?.items||[])r.indexOf(l.id)!==-1&&s.push(l);return s},[r.join("/")])}var Aa=require("react");function Hs(e,t=[]){let{id:n,selector:r}=e,o=W(),a=n||o.collection,i=w(s=>a?s.iiif.entities.Collection[a]:void 0,[a]);return(0,Aa.useMemo)(()=>{if(i)return r?r(i):i},[i,r,...t])}var Bn=require("react"),Ta=require("@iiif/helpers/events");function Bs(e,t,n,r,o=[]){let a=T(),i=(0,Bn.useMemo)(()=>(0,Ta.createEventsHelper)(a),[a]);(0,Bn.useEffect)(()=>{let s=e;return s?(i.addEventListener(s,t,n,r),()=>{i.removeEventListener(s,t,n)}):()=>{}},[i,e,t,...o])}function Ds(e,t){let{id:n,isLoaded:r,error:o,resource:a,requestId:i,cached:s}=mt(e,t);return{id:n,isLoaded:r,error:o,manifest:a,requestId:i,cached:s}}var uo=require("@iiif/parser/image-3");var de=require("react");function mo({cacheKey:e}={}){let t=P(),n=Oe(),r=T(),o=tt(),a=fi(),[i,s]=(0,de.useState)(void 0),[l,u]=(0,de.useState)(!1),[c,d]=(0,de.useState)("idle"),[v,h]=(0,de.useState)(void 0),x=t?t.id:"undefined",g=(0,de.useMemo)(()=>{try{if(t&&n.length){let y=n[0],C=r.get(y.body[0]),b=(0,uo.getImageServices)(C)[0];return b&&o(b,{width:b.width||t.width,height:b.height||t.height},!0)||void 0}}catch(y){console.error(y)}},[x,e,t]),S=c==="success"&&i?i:g;return(0,de.useEffect)(()=>{(async()=>{try{if(t&&n.length){let y=n[0],C=r.get(y.body[0]),b=(0,uo.getImageServices)(C)[0];if(!b)return;u(!0),d("loading");try{let A=await a(b,{width:b.width||t.width,height:b.height||t.height})||void 0;s(A),d("success"),u(!1)}catch(A){d("error"),h(A)}}}catch(y){d("error"),h(y)}})()},[x,e]),(0,de.useMemo)(()=>({data:S,isFetching:l,status:c,error:v}),[S,l,c,v])}function Fs(){let e=mo();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}var Ia=require("@iiif/helpers/styles"),wa=require("react");function qs(){let e=T();return(0,wa.useMemo)(()=>(0,Ia.createStylesHelper)(e),[e])}p(f,require("@iiif/helpers/annotation-targets"),module.exports);
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as Oo,$a as ye,A as ho,Aa as hr,B as yo,Ba as yr,C as vo,Ca as vr,D as xo,Da as xr,E as So,Ea as Sr,F as bo,Fa as br,G as Co,Ga as Cr,H as Io,Ha as Ir,I as ko,Ia as kr,J as Po,Ja as Pr,K as wo,Ka as wr,L as Ro,La as Rr,M as To,Ma as Tr,N as Eo,Na as Er,O as No,Oa as Nr,P as Bo,Pa as Br,Q as Mo,Qa as Mr,R as Lo,Ra as Lr,S as Ho,Sa as M,T as Ao,Ta as ge,U as se,Ua as Hr,V as zo,Va as Ar,W as qo,Wa as zr,X as le,Xa as qr,Y as Wo,Ya as Wr,Z as Do,Za as Dr,_ as Fo,_a as he,a as Zt,aa as $o,ab as Fr,b as q,ba as Vo,bb as Or,c as L,ca as Ko,cb as $r,d as jt,da as Uo,db as Vr,e as eo,ea as Xo,eb as Kr,f as to,fa as Yo,fb as Ur,g as re,ga as ce,gb as Xr,h as oo,ha as F,hb as Yr,i as ro,ia as _o,ib as _r,j as ne,ja as Q,jb as Qr,k as P,ka as w,kb as Gr,l as W,la as me,lb as Jr,m as no,ma as Qo,mb as Zr,n as ie,na as Go,nb as ve,o as D,oa as Jo,p as io,pa as Zo,q as ao,qa as ir,r as so,ra as ue,s as lo,sa as ar,t as co,ta as de,u as mo,ua as fe,v as uo,va as pe,w as ae,wa as O,x as fo,xa as sr,y as po,ya as pr,z as go,za as gr}from"./chunk-YF4SEMKW.js";import{a as jo,b as er,c as tr,d as or,e as rr,f as nr,g as lr,h as cr,i as mr,j as ur,k as dr,l as fr}from"./chunk-XNDN34SQ.js";import{useCanvas as Ye}from"@atlas-viewer/atlas";import{forwardRef as _e,useImperativeHandle as Qe}from"react";import{Fragment as Ge,jsx as xe}from"react/jsx-runtime";var nn=_e(function({canvasId:t},o){let r=Ye(),n=ue(t||r?.id),a=P();return Qe(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:xe(Ge,{children:n.enabledPageIds.map(s=>xe(ve.RenderAnnotationPage,{page:a.get(s)},s))})});import{useMemo as je}from"react";import{useMemo as Je}from"react";import{Fragment as Ze,jsx as I,jsxs as $}from"react/jsx-runtime";function V({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:a,classes:s={},emptyMessage:l="No metadata available",emptyValueFallback:d="No value",emptyLabelFallback:f="",separator:c,tableFooter:p,tableHeader:S}){let b=Je(()=>{let h=(t||[]).reduce((u,g)=>[...u,...g.keys],[]),m={};for(let u of e){let g=u&&u.label?Object.values(u.label):[];for(let i of g)if(i&&i.length&&(h.indexOf(`metadata.${i[0]}`)!==-1||h.length===0)&&u){let y=`metadata.${i[0]}`;m[y]=m[y]?m[y]:[],m[y].push(u);break}}return m},[t,e]);return Object.keys(b).length===0&&r?I(Ze,{children:a})||I("div",{className:s.empty,children:l}):t&&t.length?$("table",{className:s.container,children:[S,I("tbody",{children:t.map((h,m)=>{let u=[];for(let g of h.keys)for(let i of b[g]||[])u.push(I(M,{enableDangerouslySetInnerHTML:n,defaultText:d,separator:c,children:i.value},m+"__"+g));return u.length===0?null:$("tr",{className:s.row,children:[I("td",{className:s.label,style:o?{minWidth:o}:{},children:I(M,{enableDangerouslySetInnerHTML:n,separator:c,defaultText:f,children:h.label})}),I("td",{className:s.value,children:u})]},m)})}),p]}):$("table",{className:s.container,children:[S,I("tbody",{children:e&&e.length?e.map((h,m)=>h?$("tr",{className:s.row,children:[I("td",{className:s.label,style:o?{minWidth:o}:{},children:I(M,{enableDangerouslySetInnerHTML:n,defaultText:d,separator:c,children:h.label})}),I("td",{className:s.value,children:I(M,{enableDangerouslySetInnerHTML:n,defaultText:d,separator:c,children:h.value})})]},m):null):null}),p]})}import{jsx as et}from"react/jsx-runtime";function vn(e){let t=D(),o=w(),r=ae(),n=je(()=>{let a=t?.metadata||[],s=o?.metadata||[],l=r?.metadata||[];return[...a,...s,...l]},[t,o,r]);return et(V,{metadata:n,...e})}import{useEffect as nt,useState as it}from"react";import{createImageServiceRequest as tt,imageServiceRequestToString as ot}from"@iiif/parser/image-3";import{useMemo as rt}from"react";function G(e,t={},o=[]){return rt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=tt(e);return ot({identifier:n.identifier,server:n.server,scheme:n.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:n.prefix,originalPath:n.originalPath})},[...o])}import{jsx as K}from"react/jsx-runtime";function at(e){let t=typeof e.src=="string"?e.src:e.src.id,o=he(),[r,n]=it(!1),a;if(t){let l=o.loadServiceSync({id:t});l&&(a=l)}!a&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let s=G(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return nt(()=>()=>{n(!1)},[t]),s?K("img",{src:s,alt:e.alt,className:e.className,style:e.style}):K(st,{...e,fetchImageService:!1})}function st(e){if(e.fetchImageService)return K(at,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=G(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?K("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{jsx as lt}from"react/jsx-runtime";function Hn(e){let t=D();return lt(V,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as ft,useRef as pt}from"react";import*as J from"react-lazy-load-image-component";import{getValue as ct}from"@iiif/helpers/i18n";import{Fragment as Se,jsx as R,jsxs as dt}from"react/jsx-runtime";var{LazyLoadComponent:mt}=J||J.default;function be(e){let{size:t,visible:o,classes:r,canvasId:n,figure:a}=e,s=t?.width||128,l=t?.height||t?.width||128,d=R(ut,{...e}),f=R(mt,{threshold:300,style:{height:l,width:s},visibleByDefault:o,children:n?R(ne,{canvas:n,children:d}):d});return a?R("figure",{className:r?.figure,children:f}):f}function ut({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:a=!1}){let s=w(),l=t?.width||128,d=t?.height||t?.width||128,f=n||ct(s?.label)||"",c=ye({width:l,height:d,allowUnsafe:!0},a);return!c||c.type!=="fixed"?R(Se,{children:e}):dt(Se,{children:[R("div",{className:o?.imageWrapper,children:R("img",{className:o?.img,src:c.id,alt:f})}),r?R(M,{as:"figcaption",className:o?.label,children:s?.label}):null]})}import{jsx as H}from"react/jsx-runtime";function Yn({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:a,figure:s,fallback:l}){let d=pt(null),{items:f,sequence:c,currentSequenceIndex:p,setSequenceIndex:S}=se(),b={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};ft(()=>{if(!d.current)return;let h=d.current.querySelector("[data-selected=true]");h&&h.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[p]);let C=[];for(let h of c){let m=[],u=c[p]===h;for(let g of h){let i=f[g];m.push(H("div",{className:u?b.item:n.item,children:H(be,{classes:u?b:n,canvasId:i.id,size:r,dereference:t,showLabel:a,figure:s,placeholder:H("div",{style:{height:128,width:128}}),fallback:l})},g))}if(o){C.push(m);continue}C.push(H("div",{onClick:g=>{S(c.indexOf(h))},"data-selected":u,className:u?b.row:n.row,children:m},h.join("-")))}return H("div",{ref:d,className:n.container,children:C})}import{Fragment as Ce,jsx as T,jsxs as Ie}from"react/jsx-runtime";var gt={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function Gn({helper:e,showShapes:t,state:o,enabled:r=gt,classNames:n={},icons:a={}}){return Ie(Ce,{children:[t?Ie(Ce,{children:[r.draw&&T("button",{className:n.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!o.lineMode&&!o.selectedStamp&&t&&o.drawMode,children:a.DrawIcon||"Draw"}),r.polygon&&T("button",{className:n.button,"data-active":!o.lineMode&&!o.selectedStamp&&t&&!o.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),r.line&&T("button",{className:n.button,"data-active":o.lineMode&&!o.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),r.lineBox&&T("button",{className:n.button,"data-active":o.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),r.square&&T("button",{className:n.button,"data-active":o.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),r.triangle&&T("button",{className:n.button,"data-active":o.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),r.hexagon&&T("button",{className:n.button,"data-active":o.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,o.showBoundingBox&&r.delete&&T("button",{className:n.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}import{createContext as ht,useCallback as ke,useContext as we,useEffect as Pe,useMemo as Z,useState as yt}from"react";import Re from"mitt";import{jsx as vt}from"react/jsx-runtime";var U=ht(Re());U.displayName="SelectorHelper";function ni({children:e}){return vt(U.Provider,{value:Z(()=>Re(),[]),children:e})}function ii(){return we(U)}function Te(e){let t=Ee(),[o,r]=yt(!1);Pe(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Pe(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=ke(s=>{t.emit("click",{selectorId:e,event:s})},[e,t]),a=ke(s=>{t.emit("hover",{selectorId:e,event:s})},[e,t]);return{controller:t,onClick:n,onHover:a,isHighlighted:o}}function Ee(){let e=we(U);return Z(()=>({withSelector(t){return{on(o,r){let n=a=>{a&&a.selectorId===t&&r(a)};return e.on(o,n),()=>{e.off(o,n)}},emit(o,r){e.emit(o,{...r,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function ai(){let e=Ee();return Z(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(o,r){return e.withSelector(t).on(o,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(t){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(t,o){return e.on(t,o)}}),[e])}import{createContext as xt,useContext as St,useMemo as bt}from"react";import{jsx as Ct}from"react/jsx-runtime";function Ne(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var j=xt(Ne());j.displayName="AnnotationStyle";function Be(){return St(j)}function mi({theme:e,children:t}){let o=bt(()=>e||Ne(),[e]);return Ct(j.Provider,{value:o,children:t})}import{HTMLPortal as Tt,useAtlas as Et}from"@atlas-viewer/atlas";import{useEffect as Le,useRef as E,useState as He}from"react";import{useEffect as It,useMemo as kt,useState as Pt}from"react";import{createHelper as wt}from"polygon-editor";function Me(e,t,o){let[r,n]=Pt({}),a=kt(()=>wt(e,o),[]);return It(()=>(a.clock.start(t,n),()=>{a.clock.stop()}),[]),{state:r,helper:a}}import{createSvgHelpers as Rt}from"polygon-editor";import{Fragment as Ae,jsx as x,jsxs as ze}from"react/jsx-runtime";var N=Rt();function qe(e,t){let{image:o,currentShape:r,onChange:n,hideShapeLines:a}=e,s=E(),l=E(),d=E(),f=E(),c=E(),p=E(),S=E(),b=E(),[C,h]=He(null),[m,u]=He(!1),{helper:g,state:i}=Me(r,(v,k)=>{N.updateTransitionBoundingBox(l.current,v,k),N.updateBoundingBoxPolygon(s.current,v,k),N.updateTransitionShape(p.current,v,k),N.updateClosestLinePointTransform(f.current,v,k),N.updateSelectBox(d.current,v,k),N.updatePointLine(S.current,v,k),N.updateDrawPreview(c.current,v,k,3),N.updateLineBox(b.current,v),h(v.transitionDirection),u(v.transitionRotate)},n);Le(()=>{g.setShape(r||null)},t),Le(()=>{let v=()=>{g.modifiers.reset()};return document.addEventListener("mouseleave",v),()=>{document.removeEventListener("mouseleave",v)}},[]);let y=ze(Ae,{children:[x("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:x("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),x("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:x("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),x("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:x("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),B=r?r.open?"polyline":"polygon":null,oe=!i.showBoundingBox&&i.closestPoint!==null&&i.actionIntentType==="select-point",Ke=i.actionIntentType==="add-open-point",Ue=i.transitionIntentType==="split-line",_=i.transitioning&&i.selectedStamp&&i.transitionIntentType==="stamp-shape",Xe=r&&B?ze(Ae,{children:[x(B,{fill:!i.transitioning&&i.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:_?0:2,stroke:a?"transparent":"#000",points:r.points.map(v=>v.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:i.showBoundingBox?void 0:"url(#dot)",markerMid:i.showBoundingBox?void 0:"url(#dot)",markerEnd:i.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),i.lineBoxMode&&i.actionIntentType==="close-line-box"?x("polygon",{fill:"rgba(255, 0, 0, .4)",ref:b,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,i.transitionIntentType==="draw-shape"&&i.transitioning?x("polyline",{ref:c,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!i.showBoundingBox&&i.selectedPoints&&i.selectedPoints.length?x("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:r.points.filter((v,k)=>i.selectedPoints?.includes(k)).map(v=>v.join(",")).join(" ")}):null,oe&&i.closestPoint!==null&&r.points[i.closestPoint]?x("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[i.closestPoint][0]},${r.points[i.closestPoint][1]}`}):null,!i.transitioning&&(i.actionIntentType==="add-open-point"||i.actionIntentType==="close-shape"||i.actionIntentType==="close-shape-line")?x("polyline",{stroke:"#000",ref:S,strokeWidth:i.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,i.hasClosestLine&&(!i.transitionIntentType||i.transitionIntentType==="split-line")?x("g",{ref:f,children:x("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,i.transitioning?x(B,{ref:p,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,i.transitioning&&i.transitionIntentType==="select-multiple-points"?x("rect",{ref:d,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,i.showBoundingBox?null:x("g",{name:"controls",children:!1}),i.showBoundingBox&&!_?x("polygon",{ref:s,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:g,state:i,isAddingPoint:Ke,isSplitting:Ue,isStamping:_,isHoveringPoint:oe,transitionDirection:C,transitionRotate:m,defs:y,editor:Xe}}import{useEffect as ee}from"react";import{createPortal as Nt}from"react-dom";import{Fragment as We,jsx as A,jsxs as X}from"react/jsx-runtime";var Bt=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function De(e){let t=e.theme||Bt[0],o=Et(),{image:r}=e,{helper:n,defs:a,editor:s,state:l,transitionDirection:d,isSplitting:f,transitionRotate:c,isHoveringPoint:p,isAddingPoint:S,isStamping:b}=qe({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),C=i=>{n.pointer([[~~i.atlas.x,~~i.atlas.y]])};ee(()=>{let i=y=>{n.key.up(y.key)};return document.addEventListener("keyup",i),()=>{document.removeEventListener("keyup",i)}},[]),ee(()=>{let i=y=>{n.key.down(y.key)};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)}},[]),ee(()=>{let i=[];return d&&i.push(`atlas-cursor-${d}`),l.actionIntentType==="cut-line"&&l.modifiers?.Shift&&i.push("atlas-cursor-cut"),(p||l.transitionIntentType==="move-shape"||l.transitionIntentType==="move-point")&&i.push("atlas-cursor-move"),S&&i.push("atlas-cursor-crosshair"),f&&i.push("atlas-cursor-copy"),c&&i.push("atlas-cursor-rotate"),l.transitionIntentType==="draw-shape"&&i.push("atlas-cursor-draw"),o?.canvas&&o.canvas.classList.add(...i),()=>{o?.canvas&&o.canvas.classList.remove(...i)}},[o?.canvas,S,p,f,l.modifiers?.Shift,l.actionIntentType,l.transitionIntentType,d,c]);let h=e.shape&&e.shape?.points.length===0,m=e.renderControls?e.renderControls(n,l,h):null,u=document.getElementById(e.controlsHtmlId||"atlas-controls"),g="shape";return A(We,{children:X("world-object",{height:r.height,width:r.width,onMouseMove:C,onMouseDown:n.pointerDown,onMouseUp:n.pointerUp,onMouseLeave:n.blur,children:[e.shape?X(We,{children:[A(g,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:b?{}:t.outer}),A(g,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:b?{}:t.inner})]}):null,X(Tt,{relative:!0,interactive:!1,children:[A("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:X("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[A("defs",{children:a}),s]})}),u?Nt(m,u,"controls"):null]})]})})}import{jsx as Fe}from"react/jsx-runtime";function Di(e){let t=w(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:a,isHighlighted:s}=Te(e.id),l=Be(),d=s?l.highlighted:l[o||"hidden"]||l.hidden;if(!t)return null;if(r){let f="shape",c=e.polygon,p=c.open;return c?Fe(f,{id:`shape-${n}`,points:c.points,open:p,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:d}):null}return Fe(De,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useMemo as Mt,useState as Lt}from"react";import{ErrorBoundary as Ht}from"react-error-boundary";import{jsx as z,jsxs as zt}from"react/jsx-runtime";function Gi({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:a,viewControlsDeps:s,fluid:l,x:d,y:f,...c}){let[p,S]=Lt(),b=t||ce,[C,h]=pe(),m=Mt(()=>{let g=h[e]?.status,i=C({id:e},{});return i?.height&&i.width&&g!=="loading"?{id:e,width:i.width,height:i.height,service:i,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:i.width,height:i.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:i.width,height:i.height}}}:null},[C,e,h]);if(Q(p&&a?"overlay":"none",`canvas-portal-controls-${e}`,F.Provider,a&&m?{value:p||null,children:a({image:m,images:[m],type:"images"})}:{},[e,m,p,...s||[]]),!m||!m.height||!m.width)return null;let u=l?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:m.width/m.height;return console.log("here",u),z(Ht,{resetKeys:[],fallbackRender:g=>z(b,{...c,...g}),children:z(me,{...c,aspectRatio:u,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:g=>{S(g),c.onCreated&&c.onCreated(g)},children:zt(F.Provider,{value:p,children:[z(ge,{image:m,id:m.id,isStatic:!o,x:d,y:f},m.id),z(At,{viewerPreset:p,renderViewerControls:a,image:m,src:e,viewControlsDeps:s}),n]})})})}function At({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return Q(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,F.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as qt}from"react/jsx-runtime";function ea({annotation:e,children:t}){return qt(L,{value:{annotation:e},children:t})}import{jsx as Wt}from"react/jsx-runtime";function na({annotationPage:e,children:t}){return Wt(L,{value:{annotationPage:e},children:t})}import{jsx as Dt}from"react/jsx-runtime";function la({collection:e,children:t}){return Dt(L,{value:{collection:e},children:t})}function da(e,t={}){return O(t)}import{useCanvas as Ft}from"@atlas-viewer/atlas";import{useEffect as Ot,useMemo as te,useState as $t}from"react";function va({canvasId:e}={}){let t=Ft(),o=ie(),r=te(()=>e?[e]:t?[t.id]:o.map(f=>f.id),[e,t,o]),[n,a]=$t({}),s=le();Ot(()=>{let f=c=>{let p=c.partOf.canvasId;p&&a(S=>({...S,[p]:c.choice}))};return s.on("choice-change",f),()=>{s.off("choice-change",f)}},[]);let l=te(()=>{let f=[];for(let c of r){let p=n[c];p&&f.push({canvasId:c,choice:p})}return f},[r,n]),d=te(()=>({makeChoice:(f,c)=>{s.emit("make-choice",{choiceId:f,...c})}}),[s]);return{choices:l,actions:d}}function Sa(e,t=!1){}function ka(e){let o=q().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return W(n=>{let a=o?n.iiif.entities.Manifest[o]:void 0,s=a?.items||[];if(typeof e>"u")return s;let l=[];for(let d of a?.items||[])r.indexOf(d.id)!==-1&&l.push(d);return l},[r.join("/")])}import{useMemo as Vt}from"react";function Ea(e,t=[]){let{id:o,selector:r}=e,n=q(),a=o||n.collection,s=W(l=>a?l.iiif.entities.Collection[a]:void 0,[a]);return Vt(()=>{if(s)return r?r(s):s},[s,r,...t])}import{useEffect as Kt,useMemo as Ut}from"react";import{createEventsHelper as Xt}from"@iiif/helpers/events";function Ha(e,t,o,r,n=[]){let a=P(),s=Ut(()=>Xt(a),[a]);Kt(()=>{let l=e;return l?(s.addEventListener(l,t,o,r),()=>{s.removeEventListener(l,t,o)}):()=>{}},[s,e,t,...n])}function Wa(e,t){let{id:o,isLoaded:r,error:n,resource:a,requestId:s,cached:l}=re(e,t);return{id:o,isLoaded:r,error:n,manifest:a,requestId:s,cached:l}}import{getImageServices as Oe}from"@iiif/parser/image-3";import{useEffect as Yt,useMemo as $e,useState as Y}from"react";function Ve({cacheKey:e}={}){let t=w(),o=O(),r=P(),n=de(),a=fe(),[s,l]=Y(void 0),[d,f]=Y(!1),[c,p]=Y("idle"),[S,b]=Y(void 0),C=t?t.id:"undefined",h=$e(()=>{try{if(t&&o.length){let u=o[0],g=r.get(u.body[0]),y=Oe(g)[0];return y&&n(y,{width:y.width||t.width,height:y.height||t.height},!0)||void 0}}catch(u){console.error(u)}},[C,e,t]),m=c==="success"&&s?s:h;return Yt(()=>{(async()=>{try{if(t&&o.length){let u=o[0],g=r.get(u.body[0]),y=Oe(g)[0];if(!y)return;f(!0),p("loading");try{let B=await a(y,{width:y.width||t.width,height:y.height||t.height})||void 0;l(B),p("success"),f(!1)}catch(B){p("error"),b(B)}}}catch(u){p("error"),b(u)}})()},[C,e]),$e(()=>({data:m,isFetching:d,status:c,error:S}),[m,d,c,S])}function _a(){let e=Ve();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}import{createStylesHelper as _t}from"@iiif/helpers/styles";import{useMemo as Qt}from"react";function ja(){let e=P();return Qt(()=>_t(e),[e])}export*from"@iiif/helpers/annotation-targets";export{ea as AnnotationContext,na as AnnotationPageContext,mi as AnnotationStyleProvider,Bo as Auth,Io as AuthProvider,So as AuthRContext,bo as AuthReactContext,Co as AuthReactContextActions,nn as CanvasAnnotations,ne as CanvasContext,ve as CanvasPanel,xr as CanvasStrategyProvider,Sr as CanvasWorldObject,la as CollectionContext,vn as CombinedMetadata,Hr as ComplexTimelineProvider,Vo as ContextBridge,yr as ControlsReactContext,De as CreateCustomShape,Fo as CustomContextBridge,Oo as CustomContextBridgeProvider,Wo as EventsProvider,st as Image,Gi as ImageService,Dr as ImageServiceLoaderContext,Ho as InnerViewerProvider,Pr as LanguageProvider,Nr as LanguageString,M as LocaleString,ro as ManifestContext,Hn as ManifestMetadata,Xr as MediaPlayerProvider,V as Metadata,Di as PolygonSelector,io as RangeContext,qo as ReactEventContext,jt as ReactVaultContext,Or as Render3DModelStrategy,Gr as RenderAccompanyingCanvas,$r as RenderAnnotationStrategy,Qr as RenderAudioStrategy,zr as RenderComplexTimelineStrategy,br as RenderEmptyStrategy,Fr as RenderImageStrategy,Gn as RenderSvgEditorControls,qr as RenderTextualContentStrategy,Jr as RenderVideoStrategy,Zr as RenderYouTubeStrategy,L as ResourceProvider,Zt as ResourceReactContext,ni as SelectorControllerProvider,Yn as SequenceThumbnails,Ao as SimpleViewerProvider,Lo as SimpleViewerReactContext,be as SingleCanvasThumbnail,gr as StrategyReactContext,_r as ThumbnailFallbackImage,kr as TranslationProvider,wr as TransliterationProvider,eo as VaultProvider,F as ViewerPresetContext,Yo as VirtualAnnotationProvider,no as VisibleCanvasReactContext,yo as authDetailsForResource,go as createAuthStateStore,ho as createProbe,zo as defaultEmitter,tr as emptyActions,nr as emptyStrategy,so as findAllCanvasesInRange,ao as findFirstCanvasFromRange,lo as findManifestSelectedRange,co as findSelectedRange,ir as flattenAnnotationPageIds,Cr as formatTime,lr as get3dStrategy,dr as getComplexTimelineStrategy,Ne as getDefaultAnnotationStyles,cr as getImageStrategy,uo as getManifestSequence,er as getParsedTargetSelector,fr as getRenderingStrategy,mr as getTextualContentStrategy,ur as getVideoStrategy,mo as getVisibleCanvasesFromCanvasId,po as hasAuth,xo as makeAccessServiceRequest,vo as makeAccessTokenRequest,jo as parseSpecificResource,Bt as svgThemes,or as unknownResponse,rr as unsupportedStrategy,Jo as useAnnotation,Zo as useAnnotationPage,ue as useAnnotationPageManager,Be as useAnnotationStyles,da as useAnnotationsAtTime,wo as useAuthActions,To as useAuthService,Po as useAuthStore,No as useAuthToken,Eo as useAuthTokens,w as useCanvas,va as useCanvasChoices,Sa as useCanvasClock,fo as useCanvasSequence,Yr as useCanvasStartTime,ka as useCanvasSubset,Br as useClosestLanguage,Ea as useCollection,Ar as useComplexTimeline,$o as useContextBridge,Lr as useCreateLocaleString,Ro as useCurrentAuth,Do as useCustomContextBridge,Ko as useDispatch,le as useEventEmitter,Ha as useEventListener,to as useExistingVault,Wa as useExternalCollection,oo as useExternalManifest,re as useExternalResource,Tr as useIIIFLanguage,G as useImage,Ve as useImageService,he as useImageServiceLoader,_a as useImageTile,ko as useIsAuthEnabled,pe as useLoadImageService,Mr as useLocaleString,D as useManifest,Kr as useMediaActions,Ur as useMediaElements,Vr as useMediaState,sr as usePaintables,O as usePaintingAnnotations,Me as usePolygonHelper,ae as useRange,vr as useRenderControls,pr as useRenderingStrategy,q as useResourceContext,Qo as useResourceEvents,ar as useResources,Mo as useSearchService,Ee as useSelectorController,ii as useSelectorEmitter,Te as useSelectorEvents,ai as useSelectorHelper,Ir as useSimpleMediaPlayer,se as useSimpleViewer,hr as useStrategy,ja as useStyleHelper,Go as useStyles,qe as useSvgEditor,ye as useThumbnail,Er as useTranslations,Rr as useTransliteration,P as useVault,Wr as useVaultEffect,W as useVaultSelector,_o as useViewerPreset,Uo as useVirtualAnnotationPage,Xo as useVirtualAnnotationPageContext,ie as useVisibleCanvases};
|
|
1
|
+
import{$ as Oo,$a as ye,A as ho,Aa as hr,B as yo,Ba as yr,C as vo,Ca as vr,D as xo,Da as xr,E as So,Ea as Sr,F as bo,Fa as br,G as Co,Ga as Cr,H as Io,Ha as Ir,I as ko,Ia as kr,J as Po,Ja as Pr,K as wo,Ka as wr,L as Ro,La as Rr,M as To,Ma as Tr,N as Eo,Na as Er,O as No,Oa as Nr,P as Bo,Pa as Br,Q as Mo,Qa as Mr,R as Lo,Ra as Lr,S as Ho,Sa as M,T as Ao,Ta as ge,U as se,Ua as Hr,V as zo,Va as Ar,W as qo,Wa as zr,X as le,Xa as qr,Y as Wo,Ya as Wr,Z as Do,Za as Dr,_ as Fo,_a as he,a as Zt,aa as $o,ab as Fr,b as q,ba as Vo,bb as Or,c as L,ca as Ko,cb as $r,d as jt,da as Uo,db as Vr,e as eo,ea as Xo,eb as Kr,f as to,fa as Yo,fb as Ur,g as re,ga as ce,gb as Xr,h as oo,ha as F,hb as Yr,i as ro,ia as _o,ib as _r,j as ne,ja as Q,jb as Qr,k as P,ka as w,kb as Gr,l as W,la as me,lb as Jr,m as no,ma as Qo,mb as Zr,n as ie,na as Go,nb as ve,o as D,oa as Jo,p as io,pa as Zo,q as ao,qa as ir,r as so,ra as ue,s as lo,sa as ar,t as co,ta as de,u as mo,ua as fe,v as uo,va as pe,w as ae,wa as O,x as fo,xa as sr,y as po,ya as pr,z as go,za as gr}from"./chunk-XMMNKWGN.js";import{a as jo,b as er,c as tr,d as or,e as rr,f as nr,g as lr,h as cr,i as mr,j as ur,k as dr,l as fr}from"./chunk-XNDN34SQ.js";import{useCanvas as Ye}from"@atlas-viewer/atlas";import{forwardRef as _e,useImperativeHandle as Qe}from"react";import{Fragment as Ge,jsx as xe}from"react/jsx-runtime";var nn=_e(function({canvasId:t},o){let r=Ye(),n=ue(t||r?.id),a=P();return Qe(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:xe(Ge,{children:n.enabledPageIds.map(s=>xe(ve.RenderAnnotationPage,{page:a.get(s)},s))})});import{useMemo as je}from"react";import{useMemo as Je}from"react";import{Fragment as Ze,jsx as I,jsxs as $}from"react/jsx-runtime";function V({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:a,classes:s={},emptyMessage:l="No metadata available",emptyValueFallback:u="No value",emptyLabelFallback:d="",separator:c,tableFooter:p,tableHeader:S}){let b=Je(()=>{let h=(t||[]).reduce((f,g)=>[...f,...g.keys],[]),m={};for(let f of e){let g=f&&f.label?Object.values(f.label):[];for(let i of g)if(i&&i.length&&(h.indexOf(`metadata.${i[0]}`)!==-1||h.length===0)&&f){let y=`metadata.${i[0]}`;m[y]=m[y]?m[y]:[],m[y].push(f);break}}return m},[t,e]);return Object.keys(b).length===0&&r?I(Ze,{children:a})||I("div",{className:s.empty,children:l}):t&&t.length?$("table",{className:s.container,children:[S,I("tbody",{children:t.map((h,m)=>{let f=[];for(let g of h.keys)for(let i of b[g]||[])f.push(I(M,{enableDangerouslySetInnerHTML:n,defaultText:u,separator:c,children:i.value},m+"__"+g));return f.length===0?null:$("tr",{className:s.row,children:[I("td",{className:s.label,style:o?{minWidth:o}:{},children:I(M,{enableDangerouslySetInnerHTML:n,separator:c,defaultText:d,children:h.label})}),I("td",{className:s.value,children:f})]},m)})}),p]}):$("table",{className:s.container,children:[S,I("tbody",{children:e&&e.length?e.map((h,m)=>h?$("tr",{className:s.row,children:[I("td",{className:s.label,style:o?{minWidth:o}:{},children:I(M,{enableDangerouslySetInnerHTML:n,defaultText:u,separator:c,children:h.label})}),I("td",{className:s.value,children:I(M,{enableDangerouslySetInnerHTML:n,defaultText:u,separator:c,children:h.value})})]},m):null):null}),p]})}import{jsx as et}from"react/jsx-runtime";function vn(e){let t=D(),o=w(),r=ae(),n=je(()=>{let a=t?.metadata||[],s=o?.metadata||[],l=r?.metadata||[];return[...a,...s,...l]},[t,o,r]);return et(V,{metadata:n,...e})}import{useEffect as nt,useState as it}from"react";import{createImageServiceRequest as tt,imageServiceRequestToString as ot}from"@iiif/parser/image-3";import{useMemo as rt}from"react";function G(e,t={},o=[]){return rt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=tt(e);return ot({identifier:n.identifier,server:n.server,scheme:n.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:n.prefix,originalPath:n.originalPath})},[...o])}import{jsx as K}from"react/jsx-runtime";function at(e){let t=typeof e.src=="string"?e.src:e.src.id,o=he(),[r,n]=it(!1),a;if(t){let l=o.loadServiceSync({id:t});l&&(a=l)}!a&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let s=G(a,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return nt(()=>()=>{n(!1)},[t]),s?K("img",{src:s,alt:e.alt,className:e.className,style:e.style}):K(st,{...e,fetchImageService:!1})}function st(e){if(e.fetchImageService)return K(at,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=G(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?K("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{jsx as lt}from"react/jsx-runtime";function Hn(e){let t=D();return lt(V,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as ft,useRef as pt}from"react";import*as J from"react-lazy-load-image-component";import{getValue as ct}from"@iiif/helpers/i18n";import{Fragment as Se,jsx as R,jsxs as dt}from"react/jsx-runtime";var{LazyLoadComponent:mt}=J||J.default;function be(e){let{size:t,visible:o,classes:r,canvasId:n,figure:a}=e,s=t?.width||128,l=t?.height||t?.width||128,u=R(ut,{...e}),d=R(mt,{threshold:300,style:{height:l,width:s},visibleByDefault:o,children:n?R(ne,{canvas:n,children:u}):u});return a?R("figure",{className:r?.figure,children:d}):d}function ut({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:a=!1}){let s=w(),l=t?.width||128,u=t?.height||t?.width||128,d=n||ct(s?.label)||"",c=ye({width:l,height:u,allowUnsafe:!0},a);return!c||c.type!=="fixed"?R(Se,{children:e}):dt(Se,{children:[R("div",{className:o?.imageWrapper,children:R("img",{className:o?.img,src:c.id,alt:d})}),r?R(M,{as:"figcaption",className:o?.label,children:s?.label}):null]})}import{jsx as H}from"react/jsx-runtime";function Yn({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:a,figure:s,fallback:l}){let u=pt(null),{items:d,sequence:c,currentSequenceIndex:p,setSequenceIndex:S}=se(),b={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};ft(()=>{if(!u.current)return;let h=u.current.querySelector("[data-selected=true]");h&&h.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[p]);let C=[];for(let h of c){let m=[],f=c[p]===h;for(let g of h){let i=d[g];m.push(H("div",{className:f?b.item:n.item,children:H(be,{classes:f?b:n,canvasId:i.id,size:r,dereference:t,showLabel:a,figure:s,placeholder:H("div",{style:{height:128,width:128}}),fallback:l})},g))}if(o){C.push(m);continue}C.push(H("div",{onClick:g=>{S(c.indexOf(h))},"data-selected":f,className:f?b.row:n.row,children:m},h.join("-")))}return H("div",{ref:u,className:n.container,children:C})}import{Fragment as Ce,jsx as T,jsxs as Ie}from"react/jsx-runtime";var gt={draw:!0,polygon:!0,line:!0,lineBox:!0,square:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0};function Gn({helper:e,showShapes:t,state:o,enabled:r=gt,classNames:n={},icons:a={}}){return Ie(Ce,{children:[t?Ie(Ce,{children:[r.draw&&T("button",{className:n.button,onClick:()=>{e.stamps.clear(),e.draw.enable()},"data-active":!o.lineMode&&!o.selectedStamp&&t&&o.drawMode,children:a.DrawIcon||"Draw"}),r.polygon&&T("button",{className:n.button,"data-active":!o.lineMode&&!o.selectedStamp&&t&&!o.drawMode,onClick:()=>{e.stamps.clear(),e.draw.disable(),e.modes.disableLineBoxMode(),e.modes.disableLineMode()},children:a.PolygonIcon||"Polygon"}),r.line&&T("button",{className:n.button,"data-active":o.lineMode&&!o.lineBoxMode,onClick:()=>{e.modes.enableLineMode()},children:a.LineIcon||"Line"}),r.lineBox&&T("button",{className:n.button,"data-active":o.lineBoxMode,onClick:()=>{e.modes.enableLineBoxMode()},children:a.LineBoxIcon||"LineBox"}),r.square&&T("button",{className:n.button,"data-active":o.selectedStamp?.id==="square",onClick:()=>{e.stamps.square()},children:a.SquareIcon||"Square"}),r.triangle&&T("button",{className:n.button,"data-active":o.selectedStamp?.id==="triangle",onClick:()=>{e.stamps.triangle()},children:a.TriangleIcon||"Triangle"}),r.hexagon&&T("button",{className:n.button,"data-active":o.selectedStamp?.id==="hexagon",onClick:()=>{e.stamps.hexagon()},children:a.HexagonIcon||"Hexagon"})]}):null,o.showBoundingBox&&r.delete&&T("button",{className:n.button,onClick:()=>e.key.down("Backspace"),children:a.DeleteForeverIcon||"Delete"})]})}import{createContext as ht,useCallback as ke,useContext as we,useEffect as Pe,useMemo as Z,useState as yt}from"react";import Re from"mitt";import{jsx as vt}from"react/jsx-runtime";var U=ht(Re());U.displayName="SelectorHelper";function ni({children:e}){return vt(U.Provider,{value:Z(()=>Re(),[]),children:e})}function ii(){return we(U)}function Te(e){let t=Ee(),[o,r]=yt(!1);Pe(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Pe(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=ke(s=>{t.emit("click",{selectorId:e,event:s})},[e,t]),a=ke(s=>{t.emit("hover",{selectorId:e,event:s})},[e,t]);return{controller:t,onClick:n,onHover:a,isHighlighted:o}}function Ee(){let e=we(U);return Z(()=>({withSelector(t){return{on(o,r){let n=a=>{a&&a.selectorId===t&&r(a)};return e.on(o,n),()=>{e.off(o,n)}},emit(o,r){e.emit(o,{...r,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function ai(){let e=Ee();return Z(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(o,r){return e.withSelector(t).on(o,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(t){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(t,o){return e.on(t,o)}}),[e])}import{createContext as xt,useContext as St,useMemo as bt}from"react";import{jsx as Ct}from"react/jsx-runtime";function Ne(){return{default:{backgroundColor:"rgba(0,0,0,0)",borderWidth:"2px",borderColor:"rgba(252,0,98, .5)"},highlighted:{backgroundColor:"rgba(75, 103, 225, 0.4)",borderWidth:"1px",borderColor:"rgba(75,103,225,0.99)"},hidden:{borderWidth:"0px",borderColor:"rgba(0,0,0,0)",backgroundColor:"rgba(0,0,0,0)",hidden:!0}}}var j=xt(Ne());j.displayName="AnnotationStyle";function Be(){return St(j)}function mi({theme:e,children:t}){let o=bt(()=>e||Ne(),[e]);return Ct(j.Provider,{value:o,children:t})}import{HTMLPortal as Tt,useAtlas as Et}from"@atlas-viewer/atlas";import{useEffect as Le,useRef as E,useState as He}from"react";import{useEffect as It,useMemo as kt,useState as Pt}from"react";import{createHelper as wt}from"polygon-editor";function Me(e,t,o){let[r,n]=Pt({}),a=kt(()=>wt(e,o),[]);return It(()=>(a.clock.start(t,n),()=>{a.clock.stop()}),[]),{state:r,helper:a}}import{createSvgHelpers as Rt}from"polygon-editor";import{Fragment as Ae,jsx as x,jsxs as ze}from"react/jsx-runtime";var N=Rt();function qe(e,t){let{image:o,currentShape:r,onChange:n,hideShapeLines:a}=e,s=E(),l=E(),u=E(),d=E(),c=E(),p=E(),S=E(),b=E(),[C,h]=He(null),[m,f]=He(!1),{helper:g,state:i}=Me(r,(v,k)=>{N.updateTransitionBoundingBox(l.current,v,k),N.updateBoundingBoxPolygon(s.current,v,k),N.updateTransitionShape(p.current,v,k),N.updateClosestLinePointTransform(d.current,v,k),N.updateSelectBox(u.current,v,k),N.updatePointLine(S.current,v,k),N.updateDrawPreview(c.current,v,k,3),N.updateLineBox(b.current,v),h(v.transitionDirection),f(v.transitionRotate)},n);Le(()=>{g.setShape(r||null)},t),Le(()=>{let v=()=>{g.modifiers.reset()};return document.addEventListener("mouseleave",v),()=>{document.removeEventListener("mouseleave",v)}},[]);let y=ze(Ae,{children:[x("marker",{id:"dot",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:x("circle",{cx:"5",cy:"5",r:"4",className:"marker"})}),x("marker",{id:"selected",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:x("circle",{cx:"5",cy:"5",r:"4",fill:"#FAFF00"})}),x("marker",{id:"resizer",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"5",markerHeight:"5",children:x("rect",{width:"10",height:"10",stroke:"#FF0DCB",fill:"#fff",strokeWidth:2})})]}),B=r?r.open?"polyline":"polygon":null,oe=!i.showBoundingBox&&i.closestPoint!==null&&i.actionIntentType==="select-point",Ke=i.actionIntentType==="add-open-point",Ue=i.transitionIntentType==="split-line",_=i.transitioning&&i.selectedStamp&&i.transitionIntentType==="stamp-shape",Xe=r&&B?ze(Ae,{children:[x(B,{fill:!i.transitioning&&i.showBoundingBox?"rgba(255, 0, 0, .5)":"none",strokeWidth:_?0:2,stroke:a?"transparent":"#000",points:r.points.map(v=>v.join(",")).join(" "),vectorEffect:"non-scaling-stroke",markerStart:i.showBoundingBox?void 0:"url(#dot)",markerMid:i.showBoundingBox?void 0:"url(#dot)",markerEnd:i.showBoundingBox?void 0:"url(#dot)",style:{pointerEvents:"none"}}),i.lineBoxMode&&i.actionIntentType==="close-line-box"?x("polygon",{fill:"rgba(255, 0, 0, .4)",ref:b,stroke:"#000",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,i.transitionIntentType==="draw-shape"&&i.transitioning?x("polyline",{ref:c,fill:"none",stroke:"rgba(255, 0, 0, .5)",strokeWidth:2,vectorEffect:"non-scaling-stroke"}):null,!i.showBoundingBox&&i.selectedPoints&&i.selectedPoints.length?x("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:r.points.filter((v,k)=>i.selectedPoints?.includes(k)).map(v=>v.join(",")).join(" ")}):null,oe&&i.closestPoint!==null&&r.points[i.closestPoint]?x("polyline",{strokeWidth:2,vectorEffect:"non-scaling-stroke",stroke:"transparent",markerStart:"url(#selected)",markerMid:"url(#selected)",markerEnd:"url(#selected)",fill:"transparent",points:`${r.points[i.closestPoint][0]},${r.points[i.closestPoint][1]}`}):null,!i.transitioning&&(i.actionIntentType==="add-open-point"||i.actionIntentType==="close-shape"||i.actionIntentType==="close-shape-line")?x("polyline",{stroke:"#000",ref:S,strokeWidth:i.actionIntentType==="close-shape"?2:1,vectorEffect:"non-scaling-stroke"}):null,i.hasClosestLine&&(!i.transitionIntentType||i.transitionIntentType==="split-line")?x("g",{ref:d,children:x("polyline",{style:{opacity:.5},markerStart:"url(#dot)",points:"0,0 10,10",vectorEffect:"non-scaling-stroke",fill:"transparent",strokeWidth:2})}):null,i.transitioning?x(B,{ref:p,fill:r.open?"none":"rgba(255, 0, 0, .5)",stroke:"rgba(255, 0, 0, .5)",strokeWidth:r.open?2:0}):null,i.transitioning&&i.transitionIntentType==="select-multiple-points"?x("rect",{ref:u,fill:"rgba(255, 255, 255, .3)",strokeWidth:1,stroke:"rgba(0,0,0,.2)",vectorEffect:"non-scaling-stroke"}):null,i.showBoundingBox?null:x("g",{name:"controls",children:!1}),i.showBoundingBox&&!_?x("polygon",{ref:s,strokeWidth:2,stroke:"#FF0DCB",fill:"none",markerStart:"url(#resizer)",markerMid:"url(#resizer)",markerEnd:"url(#resizer)",vectorEffect:"non-scaling-stroke"}):null]}):null;return{helper:g,state:i,isAddingPoint:Ke,isSplitting:Ue,isStamping:_,isHoveringPoint:oe,transitionDirection:C,transitionRotate:m,defs:y,editor:Xe}}import{useEffect as ee}from"react";import{createPortal as Nt}from"react-dom";import{Fragment as We,jsx as A,jsxs as X}from"react/jsx-runtime";var Bt=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function De(e){let t=e.theme||Bt[0],o=Et(),{image:r}=e,{helper:n,defs:a,editor:s,state:l,transitionDirection:u,isSplitting:d,transitionRotate:c,isHoveringPoint:p,isAddingPoint:S,isStamping:b}=qe({currentShape:e.shape||null,onChange:e.updateShape,image:e.image,hideShapeLines:!0},[]),C=i=>{n.pointer([[~~i.atlas.x,~~i.atlas.y]])};ee(()=>{let i=y=>{n.key.up(y.key)};return document.addEventListener("keyup",i),()=>{document.removeEventListener("keyup",i)}},[]),ee(()=>{let i=y=>{n.key.down(y.key)};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)}},[]),ee(()=>{let i=[];return u&&i.push(`atlas-cursor-${u}`),l.actionIntentType==="cut-line"&&l.modifiers?.Shift&&i.push("atlas-cursor-cut"),(p||l.transitionIntentType==="move-shape"||l.transitionIntentType==="move-point")&&i.push("atlas-cursor-move"),S&&i.push("atlas-cursor-crosshair"),d&&i.push("atlas-cursor-copy"),c&&i.push("atlas-cursor-rotate"),l.transitionIntentType==="draw-shape"&&i.push("atlas-cursor-draw"),o?.canvas&&o.canvas.classList.add(...i),()=>{o?.canvas&&o.canvas.classList.remove(...i)}},[o?.canvas,S,p,d,l.modifiers?.Shift,l.actionIntentType,l.transitionIntentType,u,c]);let h=e.shape&&e.shape?.points.length===0,m=e.renderControls?e.renderControls(n,l,h):null,f=document.getElementById(e.controlsHtmlId||"atlas-controls"),g="shape";return A(We,{children:X("world-object",{height:r.height,width:r.width,onMouseMove:C,onMouseDown:n.pointerDown,onMouseUp:n.pointerUp,onMouseLeave:n.blur,children:[e.shape?X(We,{children:[A(g,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:b?{}:t.outer}),A(g,{open:e.shape.open,points:e.shape.points,relativeStyle:!0,style:b?{}:t.inner})]}):null,X(Tt,{relative:!0,interactive:!1,children:[A("div",{style:{position:"absolute",top:0,right:0,left:0,bottom:0},children:X("svg",{width:"100%",height:"100%",viewBox:`0 0 ${r.width} ${r.height}`,tabIndex:-1,children:[A("defs",{children:a}),s]})}),f?Nt(m,f,"controls"):null]})]})})}import{jsx as Fe}from"react/jsx-runtime";function Di(e){let t=w(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:a,isHighlighted:s}=Te(e.id),l=Be(),u=s?l.highlighted:l[o||"hidden"]||l.hidden;if(!t)return null;if(r){let d="shape",c=e.polygon,p=c.open;return c?Fe(d,{id:`shape-${n}`,points:c.points,open:p,onClick:a,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:u}):null}return Fe(De,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useMemo as Mt,useState as Lt}from"react";import{ErrorBoundary as Ht}from"react-error-boundary";import{jsx as z,jsxs as zt}from"react/jsx-runtime";function Gi({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:a,viewControlsDeps:s,fluid:l,x:u,y:d,...c}){let[p,S]=Lt(),b=t||ce,[C,h]=pe(),m=Mt(()=>{let g=h[e]?.status,i=C({id:e},{});return i?.height&&i.width&&g!=="loading"?{id:e,width:i.width,height:i.height,service:i,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:i.width,height:i.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:i.width,height:i.height}}}:null},[C,e,h]);if(Q(p&&a?"overlay":"none",`canvas-portal-controls-${e}`,F.Provider,a&&m?{value:p||null,children:a({image:m,images:[m],type:"images"})}:{},[e,m,p,...s||[]]),!m||!m.height||!m.width)return null;let f=l?void 0:c.homePosition?c.homePosition.width/c.homePosition.height:m.width/m.height;return z(Ht,{resetKeys:[],fallbackRender:g=>z(b,{...c,...g}),children:z(me,{...c,aspectRatio:f,containerProps:{style:{position:"relative"},...c.containerProps||{}},onCreated:g=>{S(g),c.onCreated&&c.onCreated(g)},children:zt(F.Provider,{value:p,children:[z(ge,{image:m,id:m.id,isStatic:!o,x:u,y:d},m.id),z(At,{viewerPreset:p,renderViewerControls:a,image:m,src:e,viewControlsDeps:s}),n]})})})}function At({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return Q(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,F.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as qt}from"react/jsx-runtime";function ea({annotation:e,children:t}){return qt(L,{value:{annotation:e},children:t})}import{jsx as Wt}from"react/jsx-runtime";function na({annotationPage:e,children:t}){return Wt(L,{value:{annotationPage:e},children:t})}import{jsx as Dt}from"react/jsx-runtime";function la({collection:e,children:t}){return Dt(L,{value:{collection:e},children:t})}function da(e,t={}){return O(t)}import{useCanvas as Ft}from"@atlas-viewer/atlas";import{useEffect as Ot,useMemo as te,useState as $t}from"react";function va({canvasId:e}={}){let t=Ft(),o=ie(),r=te(()=>e?[e]:t?[t.id]:o.map(d=>d.id),[e,t,o]),[n,a]=$t({}),s=le();Ot(()=>{let d=c=>{let p=c.partOf.canvasId;p&&a(S=>({...S,[p]:c.choice}))};return s.on("choice-change",d),()=>{s.off("choice-change",d)}},[]);let l=te(()=>{let d=[];for(let c of r){let p=n[c];p&&d.push({canvasId:c,choice:p})}return d},[r,n]),u=te(()=>({makeChoice:(d,c)=>{s.emit("make-choice",{choiceId:d,...c})}}),[s]);return{choices:l,actions:u}}function Sa(e,t=!1){}function ka(e){let o=q().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return W(n=>{let a=o?n.iiif.entities.Manifest[o]:void 0,s=a?.items||[];if(typeof e>"u")return s;let l=[];for(let u of a?.items||[])r.indexOf(u.id)!==-1&&l.push(u);return l},[r.join("/")])}import{useMemo as Vt}from"react";function Ea(e,t=[]){let{id:o,selector:r}=e,n=q(),a=o||n.collection,s=W(l=>a?l.iiif.entities.Collection[a]:void 0,[a]);return Vt(()=>{if(s)return r?r(s):s},[s,r,...t])}import{useEffect as Kt,useMemo as Ut}from"react";import{createEventsHelper as Xt}from"@iiif/helpers/events";function Ha(e,t,o,r,n=[]){let a=P(),s=Ut(()=>Xt(a),[a]);Kt(()=>{let l=e;return l?(s.addEventListener(l,t,o,r),()=>{s.removeEventListener(l,t,o)}):()=>{}},[s,e,t,...n])}function Wa(e,t){let{id:o,isLoaded:r,error:n,resource:a,requestId:s,cached:l}=re(e,t);return{id:o,isLoaded:r,error:n,manifest:a,requestId:s,cached:l}}import{getImageServices as Oe}from"@iiif/parser/image-3";import{useEffect as Yt,useMemo as $e,useState as Y}from"react";function Ve({cacheKey:e}={}){let t=w(),o=O(),r=P(),n=de(),a=fe(),[s,l]=Y(void 0),[u,d]=Y(!1),[c,p]=Y("idle"),[S,b]=Y(void 0),C=t?t.id:"undefined",h=$e(()=>{try{if(t&&o.length){let f=o[0],g=r.get(f.body[0]),y=Oe(g)[0];return y&&n(y,{width:y.width||t.width,height:y.height||t.height},!0)||void 0}}catch(f){console.error(f)}},[C,e,t]),m=c==="success"&&s?s:h;return Yt(()=>{(async()=>{try{if(t&&o.length){let f=o[0],g=r.get(f.body[0]),y=Oe(g)[0];if(!y)return;d(!0),p("loading");try{let B=await a(y,{width:y.width||t.width,height:y.height||t.height})||void 0;l(B),p("success"),d(!1)}catch(B){p("error"),b(B)}}}catch(f){p("error"),b(f)}})()},[C,e]),$e(()=>({data:m,isFetching:u,status:c,error:S}),[m,u,c,S])}function _a(){let e=Ve();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}import{createStylesHelper as _t}from"@iiif/helpers/styles";import{useMemo as Qt}from"react";function ja(){let e=P();return Qt(()=>_t(e),[e])}export*from"@iiif/helpers/annotation-targets";export{ea as AnnotationContext,na as AnnotationPageContext,mi as AnnotationStyleProvider,Bo as Auth,Io as AuthProvider,So as AuthRContext,bo as AuthReactContext,Co as AuthReactContextActions,nn as CanvasAnnotations,ne as CanvasContext,ve as CanvasPanel,xr as CanvasStrategyProvider,Sr as CanvasWorldObject,la as CollectionContext,vn as CombinedMetadata,Hr as ComplexTimelineProvider,Vo as ContextBridge,yr as ControlsReactContext,De as CreateCustomShape,Fo as CustomContextBridge,Oo as CustomContextBridgeProvider,Wo as EventsProvider,st as Image,Gi as ImageService,Dr as ImageServiceLoaderContext,Ho as InnerViewerProvider,Pr as LanguageProvider,Nr as LanguageString,M as LocaleString,ro as ManifestContext,Hn as ManifestMetadata,Xr as MediaPlayerProvider,V as Metadata,Di as PolygonSelector,io as RangeContext,qo as ReactEventContext,jt as ReactVaultContext,Or as Render3DModelStrategy,Gr as RenderAccompanyingCanvas,$r as RenderAnnotationStrategy,Qr as RenderAudioStrategy,zr as RenderComplexTimelineStrategy,br as RenderEmptyStrategy,Fr as RenderImageStrategy,Gn as RenderSvgEditorControls,qr as RenderTextualContentStrategy,Jr as RenderVideoStrategy,Zr as RenderYouTubeStrategy,L as ResourceProvider,Zt as ResourceReactContext,ni as SelectorControllerProvider,Yn as SequenceThumbnails,Ao as SimpleViewerProvider,Lo as SimpleViewerReactContext,be as SingleCanvasThumbnail,gr as StrategyReactContext,_r as ThumbnailFallbackImage,kr as TranslationProvider,wr as TransliterationProvider,eo as VaultProvider,F as ViewerPresetContext,Yo as VirtualAnnotationProvider,no as VisibleCanvasReactContext,yo as authDetailsForResource,go as createAuthStateStore,ho as createProbe,zo as defaultEmitter,tr as emptyActions,nr as emptyStrategy,so as findAllCanvasesInRange,ao as findFirstCanvasFromRange,lo as findManifestSelectedRange,co as findSelectedRange,ir as flattenAnnotationPageIds,Cr as formatTime,lr as get3dStrategy,dr as getComplexTimelineStrategy,Ne as getDefaultAnnotationStyles,cr as getImageStrategy,uo as getManifestSequence,er as getParsedTargetSelector,fr as getRenderingStrategy,mr as getTextualContentStrategy,ur as getVideoStrategy,mo as getVisibleCanvasesFromCanvasId,po as hasAuth,xo as makeAccessServiceRequest,vo as makeAccessTokenRequest,jo as parseSpecificResource,Bt as svgThemes,or as unknownResponse,rr as unsupportedStrategy,Jo as useAnnotation,Zo as useAnnotationPage,ue as useAnnotationPageManager,Be as useAnnotationStyles,da as useAnnotationsAtTime,wo as useAuthActions,To as useAuthService,Po as useAuthStore,No as useAuthToken,Eo as useAuthTokens,w as useCanvas,va as useCanvasChoices,Sa as useCanvasClock,fo as useCanvasSequence,Yr as useCanvasStartTime,ka as useCanvasSubset,Br as useClosestLanguage,Ea as useCollection,Ar as useComplexTimeline,$o as useContextBridge,Lr as useCreateLocaleString,Ro as useCurrentAuth,Do as useCustomContextBridge,Ko as useDispatch,le as useEventEmitter,Ha as useEventListener,to as useExistingVault,Wa as useExternalCollection,oo as useExternalManifest,re as useExternalResource,Tr as useIIIFLanguage,G as useImage,Ve as useImageService,he as useImageServiceLoader,_a as useImageTile,ko as useIsAuthEnabled,pe as useLoadImageService,Mr as useLocaleString,D as useManifest,Kr as useMediaActions,Ur as useMediaElements,Vr as useMediaState,sr as usePaintables,O as usePaintingAnnotations,Me as usePolygonHelper,ae as useRange,vr as useRenderControls,pr as useRenderingStrategy,q as useResourceContext,Qo as useResourceEvents,ar as useResources,Mo as useSearchService,Ee as useSelectorController,ii as useSelectorEmitter,Te as useSelectorEvents,ai as useSelectorHelper,Ir as useSimpleMediaPlayer,se as useSimpleViewer,hr as useStrategy,ja as useStyleHelper,Go as useStyles,qe as useSvgEditor,ye as useThumbnail,Er as useTranslations,Rr as useTransliteration,P as useVault,Wr as useVaultEffect,W as useVaultSelector,_o as useViewerPreset,Uo as useVirtualAnnotationPage,Xo as useVirtualAnnotationPageContext,ie as useVisibleCanvases};
|