react-iiif-vault 2.0.4 → 2.0.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.d.ts +4 -2
- package/dist/bundle.global.js +20 -20
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -11,7 +11,7 @@ import * as _iiif_helpers from '@iiif/helpers';
|
|
|
11
11
|
import { ChoiceDescription, Paintables, ComplexChoice, SupportedSelector, SvgSelector, BoxSelector } from '@iiif/helpers';
|
|
12
12
|
import * as polygon_editor from 'polygon-editor';
|
|
13
13
|
import { InputShape, PolygonEvents } from 'polygon-editor';
|
|
14
|
-
import { InternationalString, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
14
|
+
import { InternationalString, MetadataItem, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
15
15
|
import { RegionParameter, RotationParameter, SizeParameter } from '@iiif/parser/image-3';
|
|
16
16
|
import * as zustand_vanilla from 'zustand/vanilla';
|
|
17
17
|
import { StoreApi } from 'zustand/vanilla';
|
|
@@ -250,6 +250,8 @@ interface MetadataProps {
|
|
|
250
250
|
allowHtml?: boolean;
|
|
251
251
|
showEmptyMessage?: boolean;
|
|
252
252
|
separator?: string;
|
|
253
|
+
customLabelRender?: (item: MetadataItem['label'], fallback: React.ReactNode) => React.ReactNode;
|
|
254
|
+
customValueRender?: (item: MetadataItem, fallback: React.ReactNode) => React.ReactNode;
|
|
253
255
|
classes?: {
|
|
254
256
|
container?: string;
|
|
255
257
|
row?: string;
|
|
@@ -264,7 +266,7 @@ interface MetadataProps {
|
|
|
264
266
|
tableFooter?: React.ReactNode;
|
|
265
267
|
emptyFallback?: React.ReactNode;
|
|
266
268
|
}
|
|
267
|
-
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
269
|
+
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, customLabelRender, customValueRender, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
268
270
|
|
|
269
271
|
type CombinedMetadataProps = Omit<MetadataProps, 'metadata'>;
|
|
270
272
|
declare function CombinedMetadata(props: CombinedMetadataProps): react_jsx_runtime.JSX.Element;
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import * as _iiif_helpers from '@iiif/helpers';
|
|
|
11
11
|
import { ChoiceDescription, Paintables, ComplexChoice, SupportedSelector, SvgSelector, BoxSelector } from '@iiif/helpers';
|
|
12
12
|
import * as polygon_editor from 'polygon-editor';
|
|
13
13
|
import { InputShape, PolygonEvents } from 'polygon-editor';
|
|
14
|
-
import { InternationalString, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
14
|
+
import { InternationalString, MetadataItem, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
15
15
|
import { RegionParameter, RotationParameter, SizeParameter } from '@iiif/parser/image-3';
|
|
16
16
|
import * as zustand_vanilla from 'zustand/vanilla';
|
|
17
17
|
import { StoreApi } from 'zustand/vanilla';
|
|
@@ -250,6 +250,8 @@ interface MetadataProps {
|
|
|
250
250
|
allowHtml?: boolean;
|
|
251
251
|
showEmptyMessage?: boolean;
|
|
252
252
|
separator?: string;
|
|
253
|
+
customLabelRender?: (item: MetadataItem['label'], fallback: React.ReactNode) => React.ReactNode;
|
|
254
|
+
customValueRender?: (item: MetadataItem, fallback: React.ReactNode) => React.ReactNode;
|
|
253
255
|
classes?: {
|
|
254
256
|
container?: string;
|
|
255
257
|
row?: string;
|
|
@@ -264,7 +266,7 @@ interface MetadataProps {
|
|
|
264
266
|
tableFooter?: React.ReactNode;
|
|
265
267
|
emptyFallback?: React.ReactNode;
|
|
266
268
|
}
|
|
267
|
-
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
269
|
+
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, customLabelRender, customValueRender, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
268
270
|
|
|
269
271
|
type CombinedMetadataProps = Omit<MetadataProps, 'metadata'>;
|
|
270
272
|
declare function CombinedMetadata(props: CombinedMetadataProps): react_jsx_runtime.JSX.Element;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as ko,$a as Ir,A as lo,Aa as er,Ab as _r,B as co,Ba as tr,Bb as Qr,C as mo,Ca as or,Cb as Ur,D as uo,Da as rr,Db as Xr,E as fo,Ea as fe,Eb as Yr,F as po,Fa as nr,Fb as Gr,G as go,Ga as ir,Gb as Jr,H as ho,Ha as ar,Hb as Zr,I as yo,Ia as sr,Ib as jr,J as vo,Ja as lr,Jb as sn,K as xo,Ka as cr,Kb as xe,L as So,La as mr,Lb as ln,M as bo,Ma as ur,Mb as Se,N as Io,Na as fr,Nb as E,O as Co,Oa as dr,Ob as cn,P as Ro,Pa as pr,Pb as gn,Q as Po,Qa as gr,Qb as hn,R as wo,Ra as hr,Rb as yn,S as qo,Sa as de,Sb as Ie,T as To,Ta as pe,Tb as Ce,U as ae,Ua as yr,Ub as Re,V as No,Va as vr,W as Eo,Wa as xr,X as Ao,Xa as Sr,Y as O,Ya as ge,Z as se,Za as he,_ as le,_a as br,a as _t,aa as Mo,ab as Cr,b as z,ba as Ho,bb as Rr,c as N,ca as ce,cb as Pr,d as oe,da as me,db as wr,e as Qt,ea as zo,eb as qr,f as Ut,fa as Lo,fb as Tr,g as R,ga as P,gb as Nr,h as L,ha as Bo,hb as Er,i as Xt,ia as Oo,ib as T,j as re,ja as Fo,jb as ye,k as Yt,ka as ue,kb as Ar,l as B,la as Wo,lb as kr,m as ne,ma as Do,mb as X,n as Gt,na as Vo,nb as Mr,o as Jt,oa as $o,ob as Hr,p as Zt,pa as w,pb as zr,q as jt,qa as Ko,qb as Lr,r as eo,ra as _o,rb as Br,s as to,sa as Qo,sb as Or,t as oo,ta as Uo,tb as Fr,u as ro,ua as Xo,ub as Wr,v as no,va as Yo,vb as Dr,w as ie,wa as Go,wb as Vr,x as io,xa as Jo,xb as ve,y as ao,ya as Zo,yb as $r,z as so,za as jo,zb as Kr}from"./chunk-SNWQWQTN.js";import"./chunk-UNH7HXGJ.js";import{a as en,b as tn,c as on,d as rn,e as nn,f as an,g as mn,h as un,i as fn,j as dn,k as pn,l as be}from"./chunk-223VJXTE.js";export*from"@iiif/helpers/annotation-targets";import{useEffect as Xe}from"react";import{useCallback as Pe,useEffect as Qe,useRef as Ue,useState as F}from"react";import{useStore as A}from"zustand";function we(e){let[t,o]=F(0),r=P(),n=A(r,y=>y.tool.enabled),i=A(r,y=>y.tool.requestId),a=A(r,y=>y.getRequestId),s=A(r,y=>y.requestAnnotation),f=A(r,y=>y.completeRequest),m=A(r,y=>y.cancelRequest),l=Ue(e?.onSuccess);l.current=e?.onSuccess;let[p,v]=F(!1),[b,S]=F(null),[c,u]=F(null),d=n&&i!==c,g=n&&i===c,h=Pe(async(y,_e)=>{if(c){let te=l.current;v(!0);let H=await s(y,{..._e,requestId:c});if(H)return te?.(H),o(U=>U+1),v(!1),S(H),H;let Q={id:c,cancelled:!0,...me(y)};return te?.(Q),S(Q),o(U=>U+1),v(!1),Q}return null},[s,c]),x=Pe(()=>{S(null),v(!1)},[]);return Qe(()=>{let y=a();return u(y.requestId),()=>{y.clear()}},[t]),{id:t,busy:d,isPending:p,isActive:g,requestId:c,requestAnnotation:h,cancelRequest:()=>c?m(c):void 0,completeRequest:()=>c?f(c):void 0,reset:x,data:b}}var Pn=[{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 qe(e){let{id:t,data:o,requestAnnotation:r,cancelRequest:n,isPending:i}=we({onSuccess:a=>{e.updateShape(a.polygon)}});return Xe(()=>(r({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{n()}),[]),null}import{createContext as Ye,useCallback as Te,useContext as Ee,useEffect as Ne,useMemo as Y,useState as Ge}from"react";import Ae from"mitt";import{jsx as Je}from"react/jsx-runtime";var W=Ye(Ae());W.displayName="SelectorHelper";function kn({children:e}){return Je(W.Provider,{value:Y(()=>Ae(),[]),children:e})}function Mn(){return Ee(W)}function ke(e){let t=Me(),[o,r]=Ge(!1);Ne(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Ne(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=Te(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=Te(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:n,onHover:i,isHighlighted:o}}function Me(){let e=Ee(W);return Y(()=>({withSelector(t){return{on(o,r){let n=i=>{i&&i.selectorId===t&&r(i)};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 Hn(){let e=Me();return Y(()=>({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{jsx as He}from"react/jsx-runtime";function $n(e){let t=w(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:i,isHighlighted:a}=ke(e.id),s=ue(),f=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(r){let m="shape",l=e.polygon,p=l.open;return l?He(m,{id:`shape-${n}`,points:l.points,open:p,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:f}):null}return He(qe,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useCanvas as Ze}from"@atlas-viewer/atlas";import{forwardRef as je,useImperativeHandle as et}from"react";import{Fragment as tt,jsx as ze}from"react/jsx-runtime";var Jn=je(function({canvasId:t},o){let r=Ze(),n=xe(t||r?.id),i=R();return et(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:ze(tt,{children:n.enabledPageIds.map(a=>ze(Re.RenderAnnotationPage,{page:i.get(a)},a))})});import{useMemo as nt}from"react";import{useMemo as ot}from"react";import{Fragment as rt,jsx as I,jsxs as D}from"react/jsx-runtime";function V({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:f="No value",emptyLabelFallback:m="",separator:l,tableFooter:p,tableHeader:v}){let b=ot(()=>{let c=(t||[]).reduce((d,g)=>[...d,...g.keys],[]),u={};for(let d of e){let g=d&&d.label?Object.values(d.label):[];for(let h of g)if(h&&h.length&&(c.indexOf(`metadata.${h[0]}`)!==-1||c.length===0)&&d){let x=`metadata.${h[0]}`;u[x]=u[x]?u[x]:[],u[x].push(d);break}}return u},[t,e]);return Object.keys(b).length===0&&r?I(rt,{children:i})||I("div",{className:a.empty,children:s}):t&&t.length?D("table",{className:a.container,children:[v,I("tbody",{children:t.map((c,u)=>{let d=[];for(let g of c.keys)for(let h of b[g]||[])d.push(I(T,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:h.value},u+"__"+g));return d.length===0?null:D("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:I(T,{enableDangerouslySetInnerHTML:n,separator:l,defaultText:m,children:c.label})}),I("td",{className:a.value,children:d})]},u)})}),p]}):D("table",{className:a.container,children:[v,I("tbody",{children:e&&e.length?e.map((c,u)=>c?D("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:I(T,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:c.label})}),I("td",{className:a.value,children:I(T,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:c.value})})]},u):null):null}),p]})}import{jsx as it}from"react/jsx-runtime";function mi(e){let t=B(),o=w(),r=ie(),n=nt(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,o,r]);return it(V,{metadata:n,...e})}import{useEffect as ct,useState as mt}from"react";import{createImageServiceRequest as at,imageServiceRequestToString as st}from"@iiif/parser/image-3";import{useMemo as lt}from"react";function G(e,t={},o=[]){return lt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=at(e);return st({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 $}from"react/jsx-runtime";function ut(e){let t=typeof e.src=="string"?e.src:e.src.id,o=de(),[r,n]=mt(!1),i;if(t){let s=o.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let a=G(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return ct(()=>()=>{n(!1)},[t]),a?$("img",{src:a,alt:e.alt,className:e.className,style:e.style}):$(ft,{...e,fetchImageService:!1})}function ft(e){if(e.fetchImageService)return $(ut,{...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?$("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{useMemo as dt,useState as pt}from"react";import{ErrorBoundary as gt}from"react-error-boundary";import{jsx as k,jsxs as yt}from"react/jsx-runtime";function Ai({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:f,y:m,...l}){let[p,v]=pt(),b=t||Ie,[S,c]=Se(),u=dt(()=>{let g=c[e]?.status,h=S({id:e},{});return h?.height&&h.width&&g!=="loading"?{id:e,width:h.width,height:h.height,service:h,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}}}:null},[S,e,c]);if(!u||!u.height||!u.width)return null;let d=s?void 0:l.homePosition?l.homePosition.width/l.homePosition.height:u.width/u.height;return k(gt,{resetKeys:[],fallbackRender:g=>k(b,{...l,...g}),children:k(Ce,{...l,aspectRatio:d,containerProps:{style:{position:"relative"},...l.containerProps||{}},onCreated:g=>{v(g),l.onCreated&&l.onCreated(g)},children:yt(X.Provider,{value:p,children:[k(ye,{image:u,id:u.id,isStatic:!o,x:f,y:m},u.id),k(ht,{viewerPreset:p,renderViewerControls:i,image:u,src:e,viewControlsDeps:a}),n]})})})}function ht({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return fe(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,X.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as vt}from"react/jsx-runtime";function Bi(e){let t=B();return vt(V,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as Ct,useRef as Rt}from"react";import*as J from"react-lazy-load-image-component";import{getValue as xt}from"@iiif/helpers/i18n";import{Fragment as Le,jsx as q,jsxs as It}from"react/jsx-runtime";var{LazyLoadComponent:St}=J||J.default;function Be(e){let{size:t,visible:o,classes:r,canvasId:n,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,f=q(bt,{...e}),m=q(St,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:n?q(oe,{canvas:n,children:f}):f});return i?q("figure",{className:r?.figure,children:m}):m}function bt({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:i=!1}){let a=w(),s=t?.width||128,f=t?.height||t?.width||128,m=n||xt(a?.label)||"",l=pe({width:s,height:f,allowUnsafe:!0},i);return!l||l.type!=="fixed"?q(Le,{children:e}):It(Le,{children:[q("div",{className:o?.imageWrapper,children:q("img",{className:o?.img,src:l.id,alt:m})}),r?q(T,{as:"figcaption",className:o?.label,children:a?.label}):null]})}import{jsx as M}from"react/jsx-runtime";function Gi({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:i,figure:a,fallback:s}){let f=Rt(null),{items:m,sequence:l,currentSequenceIndex:p,setSequenceIndex:v}=ae(),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};Ct(()=>{if(!f.current)return;let c=f.current.querySelector("[data-selected=true]");c&&c.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[p]);let S=[];for(let c of l){let u=[],d=l[p]===c;for(let g of c){let h=m[g];u.push(M("div",{className:d?b.item:n.item,children:M(Be,{classes:d?b:n,canvasId:h.id,size:r,dereference:t,showLabel:i,figure:a,placeholder:M("div",{style:{height:128,width:128}}),fallback:s})},g))}if(o){S.push(u);continue}S.push(M("div",{onClick:g=>{v(l.indexOf(c))},"data-selected":d,className:d?b.row:n.row,children:u},c.join("-")))}return M("div",{ref:f,className:n.container,children:S})}import{useStore as K}from"zustand";function Oe(){let e=P(),t=K(e,i=>i.completeRequest),o=K(e,i=>i.polygonState.currentTool),r=K(e,i=>i.polygonState.selectedStamp),n=K(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:r,switchTool:n}}import{Fragment as Fe,jsx as C,jsxs as We}from"react/jsx-runtime";var Pt={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function ra({showShapes:e=!0,enabled:t=Pt,classNames:o={},icons:r={}}){let{currentTool:n,switchTool:i,selectedStamp:a}=Oe();return We(Fe,{children:[n,C("button",{className:o.button,onClick:i.pointer,"data-active":n==="pointer",children:r.PointerIcon||"Pointer"}),C("button",{className:o.button,onClick:i.hand,"data-active":n==="hand",children:r.HandIcon||"Hand"}),e?We(Fe,{children:[t.box&&C("button",{className:o.button,onClick:i.box,"data-active":n==="box",children:r.BoxIcon||"Box"}),t.pen&&C("button",{className:o.button,onClick:i.pen,"data-active":n==="pen",children:r.PenIcon||"Pen"}),t.draw&&C("button",{className:o.button,onClick:i.draw,"data-active":n==="pencil",children:r.DrawIcon||"Draw"}),t.line&&C("button",{className:o.button,onClick:i.line,"data-active":n==="line",children:r.LineIcon||"Line"}),t.lineBox&&C("button",{className:o.button,onClick:i.lineBox,"data-active":n==="lineBox",children:r.LineBoxIcon||"LineBox"}),t.triangle&&C("button",{className:o.button,onClick:i.triangle,"data-active":n==="stamp"&&a?.id==="triangle",children:r.TriangleIcon||"Triangle"}),t.hexagon&&C("button",{className:o.button,onClick:i.hexagon,"data-active":n==="stamp"&&a?.id==="hexagon",children:r.HexagonIcon||"Hexagon"}),t.circle&&C("button",{className:o.button,"data-active":n==="stamp"&&a?.id==="circle",onClick:i.circle,children:r.CircleIcon||"Circle"})]}):null,t.delete&&C("button",{className:o.button,onClick:i.remove,children:r.DeleteForeverIcon||"Delete"})]})}import{jsx as wt}from"react/jsx-runtime";function sa({annotation:e,children:t}){return wt(N,{value:{annotation:e},children:t})}import{jsx as qt}from"react/jsx-runtime";function ua({annotationPage:e,children:t}){return qt(N,{value:{annotationPage:e},children:t})}import{jsx as Tt}from"react/jsx-runtime";function ga({collection:e,children:t}){return Tt(N,{value:{collection:e},children:t})}function xa(e,t={}){return E(t)}import{useCanvas as Nt}from"@atlas-viewer/atlas";import{useEffect as Et,useMemo as Z,useState as At}from"react";function Pa({canvasId:e}={}){let t=Nt(),o=re(),r=Z(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[n,i]=At({}),a=ve();Et(()=>{let m=l=>{let p=l.partOf.canvasId;p&&i(v=>({...v,[p]:l.choice}))};return a.on("choice-change",m),()=>{a.off("choice-change",m)}},[]);let s=Z(()=>{let m=[];for(let l of r){let p=n[l];p&&m.push({canvasId:l,choice:p})}return m},[r,n]),f=Z(()=>({makeChoice:(m,l)=>{a.emit("make-choice",{choiceId:m,...l})}}),[a]);return{choices:s,actions:f}}function qa(e,t=!1){}function Aa(e){let o=z().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return L(n=>{let i=o?n.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let f of i?.items||[])r.indexOf(f.id)!==-1&&s.push(f);return s},[r.join("/")])}import{useMemo as kt}from"react";function La(e,t=[]){let{id:o,selector:r}=e,n=z(),i=o||n.collection,a=L(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return kt(()=>{if(a)return r?r(a):a},[a,r,...t])}import{startTransition as Mt,useMemo as Ht}from"react";import{useStore as De}from"zustand";function Da(){let e=P(),t=De(e,r=>r.completeRequest),o=De(e,r=>r.cancelRequest);return Ht(()=>({saveAnnotation:()=>{Mt(()=>{t()})},cancelRequest:o}),[t,o])}import{useCallback as zt}from"react";import{useStore as j}from"zustand";function Qa({requestId:e}={}){let t=P(),o=j(t,s=>s.metadata),r=j(t,s=>s.tool.requestId),n=e||r,i=j(t,s=>s.setMetadata),a=zt(s=>i(s,n||void 0),[i,n]);return[n?o[n]||{}:{},a]}import{useStore as Lt}from"zustand";function Ja(e){let t=P(),o=Lt(t,r=>r.tool.requestId);O("polygons.start-transition",r=>{e.requestId&&o!==e.requestId||e?.onStart?.(r.transitionIntent)},[o,e.requestId]),O("polygons.end-transition",r=>{e.requestId&&o!==e.requestId||e?.onEnd?.(r.transitionIntent,r.response)},[o,e.requestId]),O("polygons.transition",r=>{e.requestId&&o!==e.requestId||e?.onTransition?.(r.transitionIntent)},[o,e.requestId])}import{useEffect as Bt,useMemo as Ot}from"react";import{createEventsHelper as Ft}from"@iiif/helpers/events";function os(e,t,o,r,n=[]){let i=R(),a=Ot(()=>Ft(i),[i]);Bt(()=>{let s=e;return s?(a.addEventListener(s,t,o,r),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...n])}function as(e,t){let{id:o,isLoaded:r,error:n,resource:i,requestId:a,cached:s}=ne(e,t);return{id:o,isLoaded:r,error:n,manifest:i,requestId:a,cached:s}}import{getImageServices as Ve}from"@iiif/parser/image-3";import{useEffect as Wt,useMemo as $e,useState as _}from"react";function Ke({cacheKey:e}={}){let t=w(),o=E(),r=R(),n=ge(),i=he(),[a,s]=_(void 0),[f,m]=_(!1),[l,p]=_("idle"),[v,b]=_(void 0),S=t?t.id:"undefined",c=$e(()=>{try{if(t&&o.length){let d=o[0],g=r.get(d.body[0]),x=Ve(g)[0];return x&&n(x,{width:x.width||t.width,height:x.height||t.height},!0)||void 0}}catch(d){console.error(d)}},[S,e,t]),u=l==="success"&&a?a:c;return Wt(()=>{(async()=>{try{if(t&&o.length){let d=o[0],g=r.get(d.body[0]),x=Ve(g)[0];if(!x)return;m(!0),p("loading");try{let y=await i(x,{width:x.width||t.width,height:x.height||t.height})||void 0;s(y),p("success"),m(!1)}catch(y){p("error"),b(y)}}}catch(d){p("error"),b(d)}})()},[S,e]),$e(()=>({data:u,isFetching:f,status:l,error:v}),[u,f,l,v])}function hs(){let e=Ke();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{useMemo as ee}from"react";import{createPaintingAnnotationsHelper as Dt}from"@iiif/helpers";function Rs({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=R(),o=w(),r=E(),n=ee(()=>Dt(t),[t]),i=ee(()=>n.getPaintables(r),[n,r]);return ee(()=>be({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}import{createStylesHelper as Vt}from"@iiif/helpers/styles";import{useMemo as $t}from"react";function Ns(){let e=R();return $t(()=>Vt(e),[e])}function As(e,t){let{x:o,y:r,width:n,height:i}=e,{x:a,y:s}=t,{width:f,height:m}=t;return o+n>a&&o<a+f&&r+i>s&&r<s+m}import Kt from"tiny-invariant";function Bs(e,t){let o=e.boundingBox||le(e.polygon);if(e.polygon&&!se(e.polygon.points)){let r=e.target||ce(e.polygon,t);return Kt(r?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:r.value}}return{type:"BoxSelector",spatial:o}}export{sa as AnnotationContext,ua as AnnotationPageContext,Wo as AnnotationStyleProvider,Oo as AtlasStoreProvider,Lo as AtlasStoreReactContext,Ro as Auth,ho as AuthProvider,fo as AuthRContext,po as AuthReactContext,go as AuthReactContextActions,Jn as CanvasAnnotations,oe as CanvasContext,Re as CanvasPanel,hn as CanvasStrategyProvider,yn as CanvasWorldObject,ga as CollectionContext,mi as CombinedMetadata,xr as ComplexTimelineProvider,Xr as ContextBridge,sr as ControlsReactContext,qe as CreateCustomShape,_r as CustomContextBridge,Qr as CustomContextBridgeProvider,jr as DefaultEditingTools,Eo as EventEmitterProvider,$r as EventsProvider,ft as Image,Ai as ImageService,hr as ImageServiceLoaderContext,qo as InnerViewerProvider,Ir as LanguageProvider,qr as LanguageString,T as LocaleString,Jt as ManifestContext,Bi as ManifestMetadata,er as MediaPlayerProvider,V as Metadata,$n as PolygonSelector,Zt as RangeContext,No as ReactEmitterContext,Vr as ReactEventContext,Qt as ReactVaultContext,Uo as RegionHighlight,ar as Render3DModelStrategy,cr as RenderAccompanyingCanvas,Xo as RenderAnnotation,Zr as RenderAnnotationEditing,Go as RenderAnnotationPage,pr as RenderAnnotationStrategy,vr as RenderAudioStrategy,Ar as RenderComplexTimelineStrategy,kr as RenderEmptyStrategy,Hr as RenderImageStrategy,ra as RenderSvgEditorControls,zr as RenderTextualContentStrategy,Lr as RenderVideoStrategy,Br as RenderYouTubeStrategy,Qo as ResizeWorldItem,N as ResourceProvider,_t as ResourceReactContext,kn as SelectorControllerProvider,Gi as SequenceThumbnails,To as SimpleViewerProvider,wo as SimpleViewerReactContext,Be as SingleCanvasThumbnail,nr as StrategyReactContext,yr as ThumbnailFallbackImage,br as TranslationProvider,Cr as TransliterationProvider,Ut as VaultProvider,X as ViewerPresetContext,dr as VirtualAnnotationProvider,Xt as VisibleCanvasReactContext,Bs as annotationResponseToSelector,co as authDetailsForResource,zo as createAtlasStore,so as createAuthStateStore,lo as createProbe,Dr as defaultEmitter,Fr as defaultSvgTheme,on as emptyActions,an as emptyStrategy,eo as findAllCanvasesInRange,jt as findFirstCanvasFromRange,to as findManifestSelectedRange,oo as findSelectedRange,sn as flattenAnnotationPageIds,or as formatTime,mn as get3dStrategy,Bo as getAtlasStoreByName,pn as getComplexTimelineStrategy,Fo as getDefaultAnnotationStyles,un as getImageStrategy,no as getManifestSequence,tn as getParsedTargetSelector,be as getRenderingStrategy,fn as getTextualContentStrategy,dn as getVideoStrategy,ro as getVisibleCanvasesFromCanvasId,ao as hasAuth,Mo as isBoxSelector,se as isRectangle,ko as isSvgSelector,uo as makeAccessServiceRequest,mo as makeAccessTokenRequest,en as parseSpecificResource,ce as polygonToTarget,me as requestToAnnotationResponse,Ho as seraliseSupportedSelector,Pn as svgThemes,As as targetIntersects,rn as unknownResponse,nn as unsupportedStrategy,$o as useAnnotation,Yo as useAnnotationPage,xe as useAnnotationPageManager,ue as useAnnotationStyles,xa as useAnnotationsAtTime,Gr as useAtlasContextMenu,P as useAtlasStore,xo as useAuthActions,bo as useAuthService,vo as useAuthStore,Co as useAuthToken,Io as useAuthTokens,w as useCanvas,Pa as useCanvasChoices,qa as useCanvasClock,io as useCanvasSequence,tr as useCanvasStartTime,Aa as useCanvasSubset,Tr as useClosestLanguage,La as useCollection,Sr as useComplexTimeline,Ur as useContextBridge,Yr as useContextMenuStore,Er as useCreateLocaleString,Da as useCurrentAnnotationActions,Qa as useCurrentAnnotationMetadata,Jr as useCurrentAnnotationRequest,Ja as useCurrentAnnotationTransition,So as useCurrentAuth,Kr as useCustomContextBridge,mr as useDispatch,Ao as useEmitter,O as useEvent,ve as useEventEmitter,os as useEventListener,Yt as useExistingVault,as as useExternalCollection,Gt as useExternalManifest,ne as useExternalResource,Pr as useIIIFLanguage,G as useImage,Ke as useImageService,de as useImageServiceLoader,hs as useImageTile,yo as useIsAuthEnabled,Se as useLoadImageService,Nr as useLocaleString,B as useManifest,Zo as useMediaActions,jo as useMediaElements,Jo as useMediaState,cn as usePaintables,E as usePaintingAnnotations,Or as usePolygonHelper,ie as useRange,Vo as useRemoteStylesheet,lr as useRenderControls,gn as useRenderingStrategy,we as useRequestAnnotation,z as useResourceContext,Ko as useResourceEvents,ln as useResources,Po as useSearchService,Me as useSelectorController,Mn as useSelectorEmitter,ke as useSelectorEvents,Hn as useSelectorHelper,rr as useSimpleMediaPlayer,ae as useSimpleViewer,Rs as useStaticRenderingStrategy,ir as useStrategy,Ns as useStyleHelper,_o as useStyles,Do as useStylesheetStore,Wr as useSvgEditor,Oe as useSvgEditorControls,pe as useThumbnail,wr as useTranslations,Rr as useTransliteration,R as useVault,gr as useVaultEffect,L as useVaultSelector,Mr as useViewerPreset,ur as useVirtualAnnotationPage,fr as useVirtualAnnotationPageContext,re as useVisibleCanvases};
|
|
1
|
+
import{$ as ko,$a as Ir,A as lo,Aa as er,Ab as _r,B as co,Ba as tr,Bb as Qr,C as mo,Ca as or,Cb as Ur,D as uo,Da as rr,Db as Xr,E as fo,Ea as de,Eb as Yr,F as po,Fa as nr,Fb as Gr,G as go,Ga as ir,Gb as Jr,H as ho,Ha as ar,Hb as Zr,I as yo,Ia as sr,Ib as jr,J as vo,Ja as lr,Jb as sn,K as xo,Ka as cr,Kb as Se,L as So,La as mr,Lb as ln,M as bo,Ma as ur,Mb as be,N as Io,Na as fr,Nb as A,O as Co,Oa as dr,Ob as cn,P as Ro,Pa as pr,Pb as gn,Q as Po,Qa as gr,Qb as hn,R as wo,Ra as hr,Rb as yn,S as qo,Sa as pe,Sb as Ce,T as To,Ta as ge,Tb as Re,U as se,Ua as yr,Ub as Pe,V as No,Va as vr,W as Eo,Wa as xr,X as Ao,Xa as Sr,Y as W,Ya as he,Z as le,Za as ye,_ as ce,_a as br,a as _t,aa as Mo,ab as Cr,b as B,ba as Ho,bb as Rr,c as E,ca as me,cb as Pr,d as re,da as ue,db as wr,e as Qt,ea as zo,eb as qr,f as Ut,fa as Lo,fb as Tr,g as R,ga as P,gb as Nr,h as O,ha as Bo,hb as Er,i as Xt,ia as Oo,ib as N,j as ne,ja as Fo,jb as ve,k as Yt,ka as fe,kb as Ar,l as F,la as Wo,lb as kr,m as ie,ma as Do,mb as G,n as Gt,na as Vo,nb as Mr,o as Jt,oa as $o,ob as Hr,p as Zt,pa as w,pb as zr,q as jt,qa as Ko,qb as Lr,r as eo,ra as _o,rb as Br,s as to,sa as Qo,sb as Or,t as oo,ta as Uo,tb as Fr,u as ro,ua as Xo,ub as Wr,v as no,va as Yo,vb as Dr,w as ae,wa as Go,wb as Vr,x as io,xa as Jo,xb as xe,y as ao,ya as Zo,yb as $r,z as so,za as jo,zb as Kr}from"./chunk-SNWQWQTN.js";import"./chunk-UNH7HXGJ.js";import{a as en,b as tn,c as on,d as rn,e as nn,f as an,g as mn,h as un,i as fn,j as dn,k as pn,l as Ie}from"./chunk-223VJXTE.js";export*from"@iiif/helpers/annotation-targets";import{useEffect as Xe}from"react";import{useCallback as we,useEffect as Qe,useRef as Ue,useState as D}from"react";import{useStore as k}from"zustand";function qe(e){let[t,o]=D(0),r=P(),n=k(r,d=>d.tool.enabled),i=k(r,d=>d.tool.requestId),a=k(r,d=>d.getRequestId),s=k(r,d=>d.requestAnnotation),f=k(r,d=>d.completeRequest),m=k(r,d=>d.cancelRequest),l=Ue(e?.onSuccess);l.current=e?.onSuccess;let[h,S]=D(!1),[b,x]=D(null),[p,v]=D(null),u=n&&i!==p,g=n&&i===p,c=we(async(d,q)=>{if(p){let M=l.current;S(!0);let L=await s(d,{...q,requestId:p});if(L)return M?.(L),o(Y=>Y+1),S(!1),x(L),L;let X={id:p,cancelled:!0,...ue(d)};return M?.(X),x(X),o(Y=>Y+1),S(!1),X}return null},[s,p]),y=we(()=>{x(null),S(!1)},[]);return Qe(()=>{let d=a();return v(d.requestId),()=>{d.clear()}},[t]),{id:t,busy:u,isPending:h,isActive:g,requestId:p,requestAnnotation:c,cancelRequest:()=>p?m(p):void 0,completeRequest:()=>p?f(p):void 0,reset:y,data:b}}var Pn=[{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 Te(e){let{id:t,data:o,requestAnnotation:r,cancelRequest:n,isPending:i}=qe({onSuccess:a=>{e.updateShape(a.polygon)}});return Xe(()=>(r({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{n()}),[]),null}import{createContext as Ye,useCallback as Ne,useContext as Ae,useEffect as Ee,useMemo as J,useState as Ge}from"react";import ke from"mitt";import{jsx as Je}from"react/jsx-runtime";var V=Ye(ke());V.displayName="SelectorHelper";function kn({children:e}){return Je(V.Provider,{value:J(()=>ke(),[]),children:e})}function Mn(){return Ae(V)}function Me(e){let t=He(),[o,r]=Ge(!1);Ee(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Ee(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=Ne(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=Ne(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:n,onHover:i,isHighlighted:o}}function He(){let e=Ae(V);return J(()=>({withSelector(t){return{on(o,r){let n=i=>{i&&i.selectorId===t&&r(i)};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 Hn(){let e=He();return J(()=>({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{jsx as ze}from"react/jsx-runtime";function $n(e){let t=w(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:i,isHighlighted:a}=Me(e.id),s=fe(),f=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(r){let m="shape",l=e.polygon,h=l.open;return l?ze(m,{id:`shape-${n}`,points:l.points,open:h,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:f}):null}return ze(Te,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useCanvas as Ze}from"@atlas-viewer/atlas";import{forwardRef as je,useImperativeHandle as et}from"react";import{Fragment as tt,jsx as Le}from"react/jsx-runtime";var Jn=je(function({canvasId:t},o){let r=Ze(),n=Se(t||r?.id),i=R();return et(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:Le(tt,{children:n.enabledPageIds.map(a=>Le(Pe.RenderAnnotationPage,{page:i.get(a)},a))})});import{useMemo as nt}from"react";import{useMemo as ot}from"react";import{Fragment as rt,jsx as I,jsxs as $}from"react/jsx-runtime";function K({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:f="No value",emptyLabelFallback:m="",separator:l,tableFooter:h,tableHeader:S,customLabelRender:b,customValueRender:x}){let p=ot(()=>{let u=(t||[]).reduce((c,y)=>[...c,...y.keys],[]),g={};for(let c of e){let y=c?.label?Object.values(c.label):[];for(let d of y)if(d?.length&&(u.indexOf(`metadata.${d[0]}`)!==-1||u.length===0)&&c){let q=`metadata.${d[0]}`;g[q]=g[q]?g[q]:[],g[q].push(c);break}}return g},[t,e]);return Object.keys(p).length===0&&r?I(rt,{children:i})||I("div",{className:a.empty,children:s}):t?.length?$("table",{className:a.container,children:[S,I("tbody",{children:t.map((u,g)=>{let c=[];for(let d of u.keys)for(let q of p[d]||[]){let M=I(N,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:q.value},g+"__"+d);x?c.push(x(q,M)):c.push(M)}if(c.length===0)return null;let y=I(N,{enableDangerouslySetInnerHTML:n,separator:l,defaultText:m,children:u.label});return $("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(u.label,y):y}),I("td",{className:a.value,children:c})]},g)})}),h]}):$("table",{className:a.container,children:[S,I("tbody",{children:e?.length?e.map((u,g)=>{if(!u)return null;let c=I(N,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:u.label}),y=I(N,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:u.value});return $("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(u.label,c):c}),I("td",{className:a.value,children:x?x(u,y):y})]},g)}):null}),h]})}import{jsx as it}from"react/jsx-runtime";function mi(e){let t=F(),o=w(),r=ae(),n=nt(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,o,r]);return it(K,{metadata:n,...e})}import{useEffect as ct,useState as mt}from"react";import{createImageServiceRequest as at,imageServiceRequestToString as st}from"@iiif/parser/image-3";import{useMemo as lt}from"react";function Z(e,t={},o=[]){return lt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=at(e);return st({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 _}from"react/jsx-runtime";function ut(e){let t=typeof e.src=="string"?e.src:e.src.id,o=pe(),[r,n]=mt(!1),i;if(t){let s=o.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let a=Z(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return ct(()=>()=>{n(!1)},[t]),a?_("img",{src:a,alt:e.alt,className:e.className,style:e.style}):_(ft,{...e,fetchImageService:!1})}function ft(e){if(e.fetchImageService)return _(ut,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=Z(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?_("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{useMemo as dt,useState as pt}from"react";import{ErrorBoundary as gt}from"react-error-boundary";import{jsx as H,jsxs as yt}from"react/jsx-runtime";function Ai({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:f,y:m,...l}){let[h,S]=pt(),b=t||Ce,[x,p]=be(),v=dt(()=>{let g=p[e]?.status,c=x({id:e},{});return c?.height&&c.width&&g!=="loading"?{id:e,width:c.width,height:c.height,service:c,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:c.width,height:c.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:c.width,height:c.height}}}:null},[x,e,p]);if(!v||!v.height||!v.width)return null;let u=s?void 0:l.homePosition?l.homePosition.width/l.homePosition.height:v.width/v.height;return H(gt,{resetKeys:[],fallbackRender:g=>H(b,{...l,...g}),children:H(Re,{...l,aspectRatio:u,containerProps:{style:{position:"relative"},...l.containerProps||{}},onCreated:g=>{S(g),l.onCreated&&l.onCreated(g)},children:yt(G.Provider,{value:h,children:[H(ve,{image:v,id:v.id,isStatic:!o,x:f,y:m},v.id),H(ht,{viewerPreset:h,renderViewerControls:i,image:v,src:e,viewControlsDeps:a}),n]})})})}function ht({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return de(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,G.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as vt}from"react/jsx-runtime";function Bi(e){let t=F();return vt(K,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as Ct,useRef as Rt}from"react";import*as j from"react-lazy-load-image-component";import{getValue as xt}from"@iiif/helpers/i18n";import{Fragment as Be,jsx as T,jsxs as It}from"react/jsx-runtime";var{LazyLoadComponent:St}=j||j.default;function Oe(e){let{size:t,visible:o,classes:r,canvasId:n,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,f=T(bt,{...e}),m=T(St,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:n?T(re,{canvas:n,children:f}):f});return i?T("figure",{className:r?.figure,children:m}):m}function bt({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:i=!1}){let a=w(),s=t?.width||128,f=t?.height||t?.width||128,m=n||xt(a?.label)||"",l=ge({width:s,height:f,allowUnsafe:!0},i);return!l||l.type!=="fixed"?T(Be,{children:e}):It(Be,{children:[T("div",{className:o?.imageWrapper,children:T("img",{className:o?.img,src:l.id,alt:m})}),r?T(N,{as:"figcaption",className:o?.label,children:a?.label}):null]})}import{jsx as z}from"react/jsx-runtime";function Gi({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:i,figure:a,fallback:s}){let f=Rt(null),{items:m,sequence:l,currentSequenceIndex:h,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};Ct(()=>{if(!f.current)return;let p=f.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[h]);let x=[];for(let p of l){let v=[],u=l[h]===p;for(let g of p){let c=m[g];v.push(z("div",{className:u?b.item:n.item,children:z(Oe,{classes:u?b:n,canvasId:c.id,size:r,dereference:t,showLabel:i,figure:a,placeholder:z("div",{style:{height:128,width:128}}),fallback:s})},g))}if(o){x.push(v);continue}x.push(z("div",{onClick:g=>{S(l.indexOf(p))},"data-selected":u,className:u?b.row:n.row,children:v},p.join("-")))}return z("div",{ref:f,className:n.container,children:x})}import{useStore as Q}from"zustand";function Fe(){let e=P(),t=Q(e,i=>i.completeRequest),o=Q(e,i=>i.polygonState.currentTool),r=Q(e,i=>i.polygonState.selectedStamp),n=Q(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:r,switchTool:n}}import{Fragment as We,jsx as C,jsxs as De}from"react/jsx-runtime";var Pt={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function ra({showShapes:e=!0,enabled:t=Pt,classNames:o={},icons:r={}}){let{currentTool:n,switchTool:i,selectedStamp:a}=Fe();return De(We,{children:[n,C("button",{className:o.button,onClick:i.pointer,"data-active":n==="pointer",children:r.PointerIcon||"Pointer"}),C("button",{className:o.button,onClick:i.hand,"data-active":n==="hand",children:r.HandIcon||"Hand"}),e?De(We,{children:[t.box&&C("button",{className:o.button,onClick:i.box,"data-active":n==="box",children:r.BoxIcon||"Box"}),t.pen&&C("button",{className:o.button,onClick:i.pen,"data-active":n==="pen",children:r.PenIcon||"Pen"}),t.draw&&C("button",{className:o.button,onClick:i.draw,"data-active":n==="pencil",children:r.DrawIcon||"Draw"}),t.line&&C("button",{className:o.button,onClick:i.line,"data-active":n==="line",children:r.LineIcon||"Line"}),t.lineBox&&C("button",{className:o.button,onClick:i.lineBox,"data-active":n==="lineBox",children:r.LineBoxIcon||"LineBox"}),t.triangle&&C("button",{className:o.button,onClick:i.triangle,"data-active":n==="stamp"&&a?.id==="triangle",children:r.TriangleIcon||"Triangle"}),t.hexagon&&C("button",{className:o.button,onClick:i.hexagon,"data-active":n==="stamp"&&a?.id==="hexagon",children:r.HexagonIcon||"Hexagon"}),t.circle&&C("button",{className:o.button,"data-active":n==="stamp"&&a?.id==="circle",onClick:i.circle,children:r.CircleIcon||"Circle"})]}):null,t.delete&&C("button",{className:o.button,onClick:i.remove,children:r.DeleteForeverIcon||"Delete"})]})}import{jsx as wt}from"react/jsx-runtime";function sa({annotation:e,children:t}){return wt(E,{value:{annotation:e},children:t})}import{jsx as qt}from"react/jsx-runtime";function ua({annotationPage:e,children:t}){return qt(E,{value:{annotationPage:e},children:t})}import{jsx as Tt}from"react/jsx-runtime";function ga({collection:e,children:t}){return Tt(E,{value:{collection:e},children:t})}function xa(e,t={}){return A(t)}import{useCanvas as Nt}from"@atlas-viewer/atlas";import{useEffect as Et,useMemo as ee,useState as At}from"react";function Pa({canvasId:e}={}){let t=Nt(),o=ne(),r=ee(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[n,i]=At({}),a=xe();Et(()=>{let m=l=>{let h=l.partOf.canvasId;h&&i(S=>({...S,[h]:l.choice}))};return a.on("choice-change",m),()=>{a.off("choice-change",m)}},[]);let s=ee(()=>{let m=[];for(let l of r){let h=n[l];h&&m.push({canvasId:l,choice:h})}return m},[r,n]),f=ee(()=>({makeChoice:(m,l)=>{a.emit("make-choice",{choiceId:m,...l})}}),[a]);return{choices:s,actions:f}}function qa(e,t=!1){}function Aa(e){let o=B().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return O(n=>{let i=o?n.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let f of i?.items||[])r.indexOf(f.id)!==-1&&s.push(f);return s},[r.join("/")])}import{useMemo as kt}from"react";function La(e,t=[]){let{id:o,selector:r}=e,n=B(),i=o||n.collection,a=O(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return kt(()=>{if(a)return r?r(a):a},[a,r,...t])}import{startTransition as Mt,useMemo as Ht}from"react";import{useStore as Ve}from"zustand";function Da(){let e=P(),t=Ve(e,r=>r.completeRequest),o=Ve(e,r=>r.cancelRequest);return Ht(()=>({saveAnnotation:()=>{Mt(()=>{t()})},cancelRequest:o}),[t,o])}import{useCallback as zt}from"react";import{useStore as te}from"zustand";function Qa({requestId:e}={}){let t=P(),o=te(t,s=>s.metadata),r=te(t,s=>s.tool.requestId),n=e||r,i=te(t,s=>s.setMetadata),a=zt(s=>i(s,n||void 0),[i,n]);return[n?o[n]||{}:{},a]}import{useStore as Lt}from"zustand";function Ja(e){let t=P(),o=Lt(t,r=>r.tool.requestId);W("polygons.start-transition",r=>{e.requestId&&o!==e.requestId||e?.onStart?.(r.transitionIntent)},[o,e.requestId]),W("polygons.end-transition",r=>{e.requestId&&o!==e.requestId||e?.onEnd?.(r.transitionIntent,r.response)},[o,e.requestId]),W("polygons.transition",r=>{e.requestId&&o!==e.requestId||e?.onTransition?.(r.transitionIntent)},[o,e.requestId])}import{useEffect as Bt,useMemo as Ot}from"react";import{createEventsHelper as Ft}from"@iiif/helpers/events";function os(e,t,o,r,n=[]){let i=R(),a=Ot(()=>Ft(i),[i]);Bt(()=>{let s=e;return s?(a.addEventListener(s,t,o,r),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...n])}function as(e,t){let{id:o,isLoaded:r,error:n,resource:i,requestId:a,cached:s}=ie(e,t);return{id:o,isLoaded:r,error:n,manifest:i,requestId:a,cached:s}}import{getImageServices as $e}from"@iiif/parser/image-3";import{useEffect as Wt,useMemo as Ke,useState as U}from"react";function _e({cacheKey:e}={}){let t=w(),o=A(),r=R(),n=he(),i=ye(),[a,s]=U(void 0),[f,m]=U(!1),[l,h]=U("idle"),[S,b]=U(void 0),x=t?t.id:"undefined",p=Ke(()=>{try{if(t&&o.length){let u=o[0],g=r.get(u.body[0]),y=$e(g)[0];return y&&n(y,{width:y.width||t.width,height:y.height||t.height},!0)||void 0}}catch(u){console.error(u)}},[x,e,t]),v=l==="success"&&a?a:p;return Wt(()=>{(async()=>{try{if(t&&o.length){let u=o[0],g=r.get(u.body[0]),y=$e(g)[0];if(!y)return;m(!0),h("loading");try{let d=await i(y,{width:y.width||t.width,height:y.height||t.height})||void 0;s(d),h("success"),m(!1)}catch(d){h("error"),b(d)}}}catch(u){h("error"),b(u)}})()},[x,e]),Ke(()=>({data:v,isFetching:f,status:l,error:S}),[v,f,l,S])}function hs(){let e=_e();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{useMemo as oe}from"react";import{createPaintingAnnotationsHelper as Dt}from"@iiif/helpers";function Rs({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=R(),o=w(),r=A(),n=oe(()=>Dt(t),[t]),i=oe(()=>n.getPaintables(r),[n,r]);return oe(()=>Ie({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}import{createStylesHelper as Vt}from"@iiif/helpers/styles";import{useMemo as $t}from"react";function Ns(){let e=R();return $t(()=>Vt(e),[e])}function As(e,t){let{x:o,y:r,width:n,height:i}=e,{x:a,y:s}=t,{width:f,height:m}=t;return o+n>a&&o<a+f&&r+i>s&&r<s+m}import Kt from"tiny-invariant";function Bs(e,t){let o=e.boundingBox||ce(e.polygon);if(e.polygon&&!le(e.polygon.points)){let r=e.target||me(e.polygon,t);return Kt(r?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:r.value}}return{type:"BoxSelector",spatial:o}}export{sa as AnnotationContext,ua as AnnotationPageContext,Wo as AnnotationStyleProvider,Oo as AtlasStoreProvider,Lo as AtlasStoreReactContext,Ro as Auth,ho as AuthProvider,fo as AuthRContext,po as AuthReactContext,go as AuthReactContextActions,Jn as CanvasAnnotations,re as CanvasContext,Pe as CanvasPanel,hn as CanvasStrategyProvider,yn as CanvasWorldObject,ga as CollectionContext,mi as CombinedMetadata,xr as ComplexTimelineProvider,Xr as ContextBridge,sr as ControlsReactContext,Te as CreateCustomShape,_r as CustomContextBridge,Qr as CustomContextBridgeProvider,jr as DefaultEditingTools,Eo as EventEmitterProvider,$r as EventsProvider,ft as Image,Ai as ImageService,hr as ImageServiceLoaderContext,qo as InnerViewerProvider,Ir as LanguageProvider,qr as LanguageString,N as LocaleString,Jt as ManifestContext,Bi as ManifestMetadata,er as MediaPlayerProvider,K as Metadata,$n as PolygonSelector,Zt as RangeContext,No as ReactEmitterContext,Vr as ReactEventContext,Qt as ReactVaultContext,Uo as RegionHighlight,ar as Render3DModelStrategy,cr as RenderAccompanyingCanvas,Xo as RenderAnnotation,Zr as RenderAnnotationEditing,Go as RenderAnnotationPage,pr as RenderAnnotationStrategy,vr as RenderAudioStrategy,Ar as RenderComplexTimelineStrategy,kr as RenderEmptyStrategy,Hr as RenderImageStrategy,ra as RenderSvgEditorControls,zr as RenderTextualContentStrategy,Lr as RenderVideoStrategy,Br as RenderYouTubeStrategy,Qo as ResizeWorldItem,E as ResourceProvider,_t as ResourceReactContext,kn as SelectorControllerProvider,Gi as SequenceThumbnails,To as SimpleViewerProvider,wo as SimpleViewerReactContext,Oe as SingleCanvasThumbnail,nr as StrategyReactContext,yr as ThumbnailFallbackImage,br as TranslationProvider,Cr as TransliterationProvider,Ut as VaultProvider,G as ViewerPresetContext,dr as VirtualAnnotationProvider,Xt as VisibleCanvasReactContext,Bs as annotationResponseToSelector,co as authDetailsForResource,zo as createAtlasStore,so as createAuthStateStore,lo as createProbe,Dr as defaultEmitter,Fr as defaultSvgTheme,on as emptyActions,an as emptyStrategy,eo as findAllCanvasesInRange,jt as findFirstCanvasFromRange,to as findManifestSelectedRange,oo as findSelectedRange,sn as flattenAnnotationPageIds,or as formatTime,mn as get3dStrategy,Bo as getAtlasStoreByName,pn as getComplexTimelineStrategy,Fo as getDefaultAnnotationStyles,un as getImageStrategy,no as getManifestSequence,tn as getParsedTargetSelector,Ie as getRenderingStrategy,fn as getTextualContentStrategy,dn as getVideoStrategy,ro as getVisibleCanvasesFromCanvasId,ao as hasAuth,Mo as isBoxSelector,le as isRectangle,ko as isSvgSelector,uo as makeAccessServiceRequest,mo as makeAccessTokenRequest,en as parseSpecificResource,me as polygonToTarget,ue as requestToAnnotationResponse,Ho as seraliseSupportedSelector,Pn as svgThemes,As as targetIntersects,rn as unknownResponse,nn as unsupportedStrategy,$o as useAnnotation,Yo as useAnnotationPage,Se as useAnnotationPageManager,fe as useAnnotationStyles,xa as useAnnotationsAtTime,Gr as useAtlasContextMenu,P as useAtlasStore,xo as useAuthActions,bo as useAuthService,vo as useAuthStore,Co as useAuthToken,Io as useAuthTokens,w as useCanvas,Pa as useCanvasChoices,qa as useCanvasClock,io as useCanvasSequence,tr as useCanvasStartTime,Aa as useCanvasSubset,Tr as useClosestLanguage,La as useCollection,Sr as useComplexTimeline,Ur as useContextBridge,Yr as useContextMenuStore,Er as useCreateLocaleString,Da as useCurrentAnnotationActions,Qa as useCurrentAnnotationMetadata,Jr as useCurrentAnnotationRequest,Ja as useCurrentAnnotationTransition,So as useCurrentAuth,Kr as useCustomContextBridge,mr as useDispatch,Ao as useEmitter,W as useEvent,xe as useEventEmitter,os as useEventListener,Yt as useExistingVault,as as useExternalCollection,Gt as useExternalManifest,ie as useExternalResource,Pr as useIIIFLanguage,Z as useImage,_e as useImageService,pe as useImageServiceLoader,hs as useImageTile,yo as useIsAuthEnabled,be as useLoadImageService,Nr as useLocaleString,F as useManifest,Zo as useMediaActions,jo as useMediaElements,Jo as useMediaState,cn as usePaintables,A as usePaintingAnnotations,Or as usePolygonHelper,ae as useRange,Vo as useRemoteStylesheet,lr as useRenderControls,gn as useRenderingStrategy,qe as useRequestAnnotation,B as useResourceContext,Ko as useResourceEvents,ln as useResources,Po as useSearchService,He as useSelectorController,Mn as useSelectorEmitter,Me as useSelectorEvents,Hn as useSelectorHelper,rr as useSimpleMediaPlayer,se as useSimpleViewer,Rs as useStaticRenderingStrategy,ir as useStrategy,Ns as useStyleHelper,_o as useStyles,Do as useStylesheetStore,Wr as useSvgEditor,Fe as useSvgEditorControls,ge as useThumbnail,wr as useTranslations,Rr as useTransliteration,R as useVault,gr as useVaultEffect,O as useVaultSelector,Mr as useViewerPreset,ur as useVirtualAnnotationPage,fr as useVirtualAnnotationPageContext,ne as useVisibleCanvases};
|