react-iiif-vault 1.0.1 → 1.0.2
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/cjs/index.js +1 -1
- package/dist/bundle/cjs/index.js.map +1 -1
- package/dist/bundle/esm/index.mjs +1 -1
- package/dist/bundle/esm/index.mjs.map +1 -1
- package/dist/canvas-panel/cjs/canvas-panel.js +1 -1
- package/dist/canvas-panel/cjs/canvas-panel.js.map +1 -1
- package/dist/canvas-panel/esm/canvas-panel.mjs +1 -1
- package/dist/canvas-panel/esm/canvas-panel.mjs.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/react17/cjs/index.js +1 -1
- package/dist/react17/cjs/index.js.map +1 -1
- package/dist/react17/esm/index.mjs +1 -1
- package/dist/react17/esm/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
[zustand devtools middleware] Unsupported __setState action format.
|
|
3
3
|
When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
|
|
4
4
|
and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
|
|
5
|
-
`);const S=A.state[o];if(S==null)return;JSON.stringify(n.getState())!==JSON.stringify(S)&&b(S);return}n.dispatchFromDevtools&&typeof n.dispatch=="function"&&n.dispatch(A)});case"DISPATCH":switch(x.payload.type){case"RESET":return b(d),o===void 0?l==null?void 0:l.init(n.getState()):l==null?void 0:l.init(Fe(u.name));case"COMMIT":if(o===void 0){l==null||l.init(n.getState());return}return l==null?void 0:l.init(Fe(u.name));case"ROLLBACK":return et(x.state,A=>{if(o===void 0){b(A),l==null||l.init(n.getState());return}b(A[o]),l==null||l.init(Fe(u.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return et(x.state,A=>{if(o===void 0){b(A);return}JSON.stringify(n.getState())!==JSON.stringify(A[o])&&b(A[o])});case"IMPORT_STATE":{const{nextLiftedState:A}=x.payload,S=(w=A.computedStates.slice(-1)[0])==null?void 0:w.state;if(!S)return;b(o===void 0?S:S[o]),l==null||l.send(null,A);return}case"PAUSE_RECORDING":return g=!g}return}}),d},vn=yn,et=(t,e)=>{let r;try{r=JSON.parse(t)}catch(i){console.error("[zustand devtools middleware] Could not parse the received json",i)}r!==void 0&&e(r)},gn=t=>(e,r,i)=>{const n=i.subscribe;return i.subscribe=(s,a,o)=>{let u=s;if(a){const h=(o==null?void 0:o.equalityFn)||Object.is;let l=s(i.getState());u=p=>{const g=s(p);if(!h(l,g)){const b=l;a(l=g,b)}},o!=null&&o.fireImmediately&&a(l,l)}return n(u)},t(e,r,i)},mn=gn,xn=(t={},e)=>{switch(e.type){case cr:return{...t,[e.payload.id]:e.payload.type};case ur:return{...t,...e.payload.mapping};default:return t}};function tt(t,e,r,i){return!(!t[r]||!t[r][e]||!t[r][e][i]||!Array.isArray(t[r][e][i]))}function bn(t,e){const r={},i=[];for(const[n,s]of Object.entries(t||{})){i.push(n);const a=(e||{})[n];if(!a||a.length===0){r[n]=s;continue}r[n]=a}for(const[n,s]of Object.entries(e||{}))i.indexOf(n)===-1&&(r[n]=s);return r}function R(t){return t.payload}function rt(t,e){return typeof t>"u"?e:t}const An=(t=xr(),e)=>{var r;const i=(n,s)=>({...t,[R(e).type]:{...t[R(e).type],[R(e).id]:{...n,...s}}});switch(e.type){case er:{if(!t[R(e).type]||!t[R(e).type][R(e).id])return t;const n=t[R(e).type][R(e).id];return typeof n=="string"?t:i(n,{[R(e).key]:R(e).value})}case tr:{if(!tt(t,R(e).id,R(e).type,R(e).key))return t;const n=t[R(e).type][R(e).id];if(typeof n=="string")return t;const s=Array.from(n[R(e).key]),[a]=s.splice(R(e).startIndex,1);return s.splice(R(e).endIndex,0,a),i(n,{[R(e).key]:s})}case Xt:{const n=Object.keys(R(e).entities),s={...t};for(const a of n){const o=R(e).entities[a],u={...t[a]||{}};let h=!1;const l=Object.keys(o||{})||[];if(o&&l){for(const p of l)h=!0,u[p]=t[a][p]?bn(t[a][p],o[p]):o[p];h&&(s[a]=u)}}return s}case rr:{if(!tt(t,R(e).id,R(e).type,R(e).key))return t;const n=t[R(e).type][R(e).id],s=Array.from(n[R(e).key]);return s.splice(rt(R(e).index,s.length+1),0,R(e).reference),i(n,{[R(e).key]:s})}case lt:case ir:{if(!tt(t,R(e).id,R(e).type,R(e).key))return t;const n=t[R(e).type][R(e).id],s=Array.from(n[R(e).key]),a=rt(R(e).index,s.findIndex(o=>o&&o.id===R(e).reference.id));return a===-1||((r=s[a])==null?void 0:r.id)!==R(e).reference.id?t:(e.type===lt?s.splice(a,1,R(e).reference):s.splice(a,1),i(n,{[R(e).key]:s}))}case nr:{const n=t[R(e).type][R(e).id];if(!n)return t;const s=Array.from(n.metadata||[]),a=R(e);return s.splice(rt(e.payload.beforeIndex,s.length+1),0,{label:a.label,value:a.label}),i(n,{metadata:s})}case ar:{const n=t[R(e).type][R(e).id];if(typeof n=="string"||!n)return t;const s=Array.from(n.metadata||[]),[a]=s.splice(R(e).startIndex,1);return s.splice(R(e).endIndex,0,a),i(n,{metadata:s})}case ft:case sr:{const n=t[R(e).type][R(e).id],s=Array.from(n.metadata||[]),a=R(e).atIndex;return typeof a>"u"||a===-1||!s[a]?t:(e.type===ft?s.splice(a,1,{label:R(e).label,value:R(e).value}):s.splice(a,1),i(n,{metadata:s}))}default:return t}},wn=(t={},e)=>{switch(e.type){case dr:case nn:return{...t,[e.payload.id]:{requestUri:e.payload.id,loadingState:hr,uriMismatch:!1,resourceUri:e.payload.id}};case vr:return{...t,[e.payload.requestId]:{...t[e.payload.requestId]||{},uriMismatch:!0,resourceUri:e.payload.actualId},[e.payload.actualId]:{requestUri:e.payload.requestId,loadingState:t[e.payload.requestId].loadingState,uriMismatch:!0,resourceUri:e.payload.actualId}};case yr:return{...t,[e.payload.id]:{...t[e.payload.id]||{},loadingState:pt,error:e.payload.message}};case gr:return{...t,[e.payload.id]:{...t[e.payload.id]||{},loadingState:ht,error:void 0}}}return t},Sn=(t={},e)=>{const{id:r,updateValue:i,value:n,meta:s,key:a}=e&&e.payload||{};switch(e.type){case lr:return{...t,[r]:{...t[r]||{},[s]:{...t[r]?t[r][s]||{}:{},[a]:n}}};case fr:return{...t,[r]:{...t[r]||{},[s]:{...t[r]?t[r][s]||{}:{},[a]:t[r]&&t[r][s]?i(t[r][s][a]):i(void 0)}}};case pr:return t[r]&&t[r][s]&&t[r][s][a]?{...t,[r]:{...t[r]||{},[s]:{...t[r]?t[r][s]||{}:{},[a]:void 0}}}:t;default:return t}};function br(t={}){const e=Object.keys(t);return function(r={},i){let n=!1;const s={};for(let a=0;a<e.length;a++){const o=e[a];s[o]=t[o](r[o],i),n=n||s[o]!==r[o]}return n?s:r}}function Mn(t){return(e,r)=>r&&r.type===wt?r.payload.actions.reduce(t,e):r&&r.type===cn?{...e,iiif:{...e.iiif,...r.payload.state}}:t(e,r)}const Cn=br({mapping:xn,entities:An,requests:wn,meta:Sn});function Rn(){return{iiif:{entities:xr(),meta:{},mapping:{},requests:{}}}}function kn(t={}){const{enableDevtools:e=!1,iiifStoreName:r="iiif",defaultState:i=Rn(),customReducers:n={}}=t,s=Mn(br({[r]:Cn,...n}));return fn(mn(vn(hn(s,i),{enabled:e})))}function Tn(t){return{all:t=t||new Map,on:function(e,r){var i=t.get(e);i?i.push(r):t.set(e,[r])},off:function(e,r){var i=t.get(e);i&&(r?i.splice(i.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var i=t.get(e);i&&i.slice().map(function(n){n(r)}),(i=t.get("*"))&&i.slice().map(function(n){n(e,r)})}}}function N(t,e,r,i=!0){e[xe]=e[xe]||[],e[xe].push(t);const n=new Map;Object.defineProperty(e,t,{enumerable:i,get(){if(typeof e[ye][t]>"u")return;const s=e[ye][t];if(!s)return s;const a=r.get(e[ye][t],{parent:this.id?{id:this.id,type:this.type}:void 0});return n.has(a)||(n.clear(),n.set(a,ve(a,r))),n.get(a)},set(s){e[ye][t]!==s&&(this[de]?r.modifyEntityField({id:this.id,type:this.type},t,Ar(s)):this[ye][t]=s)}})}const ye=Symbol.for("_refs_"),de=Symbol.for("_reactive_"),xe=Symbol.for("_defined_"),Ut=Symbol.for("_parent_");function In(t,e=!1,r){const i={id:"",type:"unknown",[xe]:[],[ye]:{},[Ut]:r||null,[de]:null,is(n){return typeof n=="string"?this.id===n:n.id?n.id===this.id:!1},reactive(){if(!this[de])return this[de]=this.subscribe(()=>this.refresh(),!0),()=>{this.unreactive()}},refresh(){if(this.id){const n=this.unwrap();for(const s of Object.keys(n||{}))this[xe].includes(s)?this[ye][s]=n[s]:this[s]=n[s]}},unreactive(){this[de]&&(this[de](),this[de]=null)},unwrap(){if(!this.id)throw new Error("Invalid object");const n=this[Ut];return t.get(this.id,{parent:n?{id:n,type:"unknown"}:void 0})},toPresentation3(){return t.toPresentation3(this.unwrap())},toPresentation2(){return t.toPresentation2(this.unwrap())},valueOf(){return this.unwrap()},toJSON(){const n=this;return{...n,items:n.items,annotations:n.annotations,structures:n.structures,seeAlso:n.seeAlso,service:n.service,services:n.services,rendering:n.rendering,partOf:n.partOf,start:n.start,supplementary:n.supplementary,homepage:n.homepage,thumbnail:n.thumbnail,placeholderCanvas:n.placeholderCanvas,accompanyingCanvas:n.accompanyingCanvas,provider:n.provider}},subscribe(n,s=!0){return t.subscribe(()=>this.id?t.get(this.id):null,n,s)}};return N("items",i,t),N("annotations",i,t),N("structures",i,t),N("seeAlso",i,t),N("rendering",i,t),N("partOf",i,t),N("start",i,t,!1),N("supplementary",i,t),N("homepage",i,t),N("thumbnail",i,t),N("placeholderCanvas",i,t,!1),N("accompanyingCanvas",i,t,!1),N("provider",i,t),N("body",i,t),N("logo",i,t),i}function jn(t){return!!t[xe]}function Ar(t){return Array.isArray(t)?t.map(e=>Ar(e)):!t||!t.type?t:{id:t.id,type:t.type}}function ve(t,e,r=!1,i){if(Array.isArray(t))return t.map(o=>ve(o,e,r));if(!t||!t.type||!t.id)return t;const n=In(e,r),s=Object.create(n),a=Object.assign(s,t);return r&&a.reactive(),a}function Vt(t){switch(t){case"Image":case"Video":case"Sound":case"Dataset":case"Text":case"Composite":case"List":case"Independents":case"Audience":return"ContentResource";case"ImageService1":case"ImageService2":case"ImageService3":return"Service"}return t}let vt=class{constructor(e,r){le(this,"options"),le(this,"store"),le(this,"emitter"),le(this,"isBatching",!1),le(this,"batchQueue",[]),le(this,"remoteFetcher"),le(this,"staticFetcher"),le(this,"defaultFetcher",i=>fetch(i).then(n=>n.json())),this.options=Object.assign({reducers:{},customFetcher:this.defaultFetcher,enableDevtools:!0},e||{}),this.store=r||kn({customReducers:this.options.reducers,defaultState:this.options.defaultState,enableDevtools:this.options.enableDevtools}),this.emitter=Tn(),this.remoteFetcher=qt(this,this.options.customFetcher),this.staticFetcher=qt(this,(i,n)=>n)}batch(e){this.isBatching=!0;try{e(this),this.isBatching=!1,this.dispatch(dt({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}async asyncBatch(e){this.isBatching=!0;try{await e(this),this.isBatching=!1,this.dispatch(dt({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}modifyEntityField(e,r,i){this.dispatch(Ki.modifyEntityField({id:e.id,type:e.type,key:r,value:i}))}dispatch(e){if(this.isBatching)this.batchQueue.push(e);else{if(e.type===wt){for(const n of e.payload.actions)this.emitter.emit(n.type,{action:n,state:this.store.getState()});this.store.dispatch(e);const i=this.getState();for(const n of e.payload.actions)this.emitter.emit(`after:${n.type}`,{action:n,state:i});return}this.emitter.emit(e.type,{action:e,state:this.store.getState()}),this.store.dispatch(e);const r=this.store.getState();this.emitter.emit(`after:${e.type}`,{action:e,state:r});return}}on(e,r){return this.emitter.on(e,r),()=>{this.emitter.off(e,r)}}serialize(e,r){return B.serialize(this.getState().iiif,e,r)}toPresentation2(e){return this.serialize(e,B.serializeConfigPresentation2)}toPresentation3(e){return this.serialize(e,B.serializeConfigPresentation3)}hydrate(e,r,i={}){return this.get(e,r,{...i,skipSelfReturn:!1})}get(e,r,i={}){typeof r!="string"&&(i=r||{},r=void 0);const{skipSelfReturn:n=!0}=i||{};let s=i.parent?typeof i.parent=="string"?i.parent:i.parent.id:void 0;if(Array.isArray(e))return e.map(p=>this.get(p,i));const a=this.getState();if(B.isSpecificResource(e)&&!i.preserveSpecificResources&&(e=e.source),typeof e=="string"){const p=Vt(r||a.iiif.mapping[e]);if(!p)return n?null:{id:e,type:"unknown"};e={id:e,type:p}}if(e&&e.partOf&&!s&&!i.skipPartOfCheck){const p=Array.isArray(e.partOf)?e.partOf[0]:e.partOf;p&&(typeof p=="string"&&(s=p),typeof p.id=="string"&&(s=p.id))}const o=Vt(r||(e==null?void 0:e.type)),u=e==null?void 0:e.id,h=a.iiif.entities[o];if(!h){const p=a.iiif.requests[u];return p&&p.resourceUri!==u?this.get(p.resourceUri,i):n?null:e}const l=h[e.id];if(l&&l[B.HAS_PART]){const p=l[B.HAS_PART].find(g=>s?g[B.PART_OF]===s:g[B.PART_OF]===l.id);return B.frameResource(l,p)}return h[e.id]||(n?null:e)}select(e){return e(this.getState())}getStore(){return this.store}getState(){return this.store.getState()}deep(e,r){if(typeof e>"u")return this.get(r,{skipSelfReturn:!1});if(typeof e=="function")try{const n=e(this.get(r,{skipSelfReturn:!1})),s=a=>this.deep(a,n);return s.size=Array.isArray(n)?n.length:1,s}catch{const n=s=>this.deep(s,void 0);return n.size=0,n}const i=n=>this.deep(n,e);return i.size=Array.isArray(e)?e.length:1,i}loadManifest(e,r){const i=typeof e=="string"?e:e.id;return this.load(i,r)}loadCollection(e,r){const i=typeof e=="string"?e:e.id;return this.load(i,r)}load(e,r){const i=typeof e=="string"?e:e.id;return r?this.staticFetcher(i,r):this.remoteFetcher(i)}areInputsEqual(e,r){return Dt(e,r)}subscribe(e,r,i){return typeof i>"u"&&(typeof r>"u"||r===!1||r===!0)&&(i=r,r=e,e=n=>n),this.store.subscribe(e,n=>r(n,this),{equalityFn:Dt,fireImmediately:!i})}async ensureLoaded(e){const r=typeof e=="string"?e:e.id;this.requestStatus(r)||await this.load(r)}requestStatus(e){return this.select(r=>r.iiif.requests[e])}getResourceMeta(e,r){const i=this.getState().iiif.meta[e];if(i)return r?i[r]:i}getObject(e,r,i={}){const{reactive:n,...s}=i;return ve(this.get(e,r,s),this,n)}async loadObject(e,r){return ve(await this.load(e,r),this)}async loadManifestObject(e,r){return ve(await this.loadManifest(e,r),this)}async loadCollectionObject(e,r){return ve(await this.loadCollection(e,r),this)}wrapObject(e){return ve(this.get(e,{skipSelfReturn:!1}),this)}isWrapped(e){return jn(e)}setMetaValue([e,r,i],n){this.dispatch(typeof n=="function"?Ft.setMetaValueDynamic({id:e,meta:r,key:i,updateValue:n}):Ft.setMetaValue({id:e,meta:r,key:i,value:n}))}};function On(){return typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}function wr(t){const e=On();try{const i=e.IIIF_VAULT;if(i)return i}catch{}const r=new vt(t);try{e.IIIF_VAULT=r}catch{}return r}const We=v.createContext({vault:null,setVaultInstance:t=>{}});function Sr({vault:t,vaultOptions:e,useGlobal:r,resources:i,children:n}){const[s,a]=v.useState(()=>t||(r?wr(e):e?new vt(e):new vt));return m.jsx(We.Provider,{value:{vault:s,setVaultInstance:a},children:m.jsx(ze,{value:i||{},children:n})})}const W=()=>{const{vault:t}=v.useContext(We);if(t===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return t};function En(t,{noCache:e=!1}={}){const r=typeof t=="string"?t:t.id,i=W(),[n,s]=v.useState(r),[a,o]=v.useState(void 0),u=v.useMemo(()=>i.get(r,{skipSelfReturn:!0})||void 0,[r,i]),[h,l]=v.useState(u);return v.useEffect(()=>{(async()=>{try{const p=u&&!e?u:await i.load(r),g=p?p.id||p["@id"]:null;p&&n!==g&&s(g),l(p)}catch(p){o(p)}})()},[r,e]),{isLoaded:!!h,id:n,requestId:r,error:a,resource:h,cached:!!(h&&h===u)}}function Pn(t,e){const{id:r,isLoaded:i,error:n,resource:s,requestId:a,cached:o}=En(t,e);return{id:r,isLoaded:i,error:n,manifest:s,requestId:a,cached:o}}function Ln({manifest:t,children:e}){return m.jsx(ze,{value:{manifest:t},children:e})}function St({canvas:t,children:e}){return m.jsx(ze,{value:{canvas:t},children:e})}function Q(t,e=[]){const r=W(),[i,n]=v.useState(()=>t(r.getState(),r));return v.useEffect(()=>r.subscribe(s=>t(s,r),s=>{n(s)},!1),e),i}const Qe=v.createContext([]);function Mr(){const t=v.useContext(Qe);return Q(e=>t.map(r=>e.iiif.entities.Canvas[r]).filter(Boolean),[t])}function Ce(t={},e=[]){const{id:r,selector:i}=t,n=Me();W();const s=r||n.manifest,a=Q(o=>s?o.iiif.entities.Manifest[s]:void 0,[s]);return v.useMemo(()=>{if(a)return i?i(a):a},[a,i,...e])}function Fn({range:t,children:e}){return m.jsx(ze,{value:{range:t},children:e})}function Cr(t,e){var i;const r=[];for(const n of e.items)if(n.type==="SpecificResource"&&((i=n.source)==null?void 0:i.type)==="Canvas"&&(n.source.id.indexOf("#")!==-1?r.push({id:n.source.id.split("#")[0],type:"Canvas"}):r.push(n.source)),n.type==="Range"&&r.push(...Cr(t,t.get(n))),n.type==="SpecificResource"){const s=typeof n.source=="string"?n.source:n.source.id;r.push({id:s,type:"Canvas"})}return r}function $n(t,e,{disablePaging:r,skipNonPaged:i}={}){const n=e.behavior,s=n.includes("paged"),a=s?!1:n.includes("continuous"),o=s||a?!1:n.includes("individuals"),u=e.type==="Manifest"?e.items:Cr(t,e);if(a)return[u,[u.map((d,x)=>x)]];if(o||!s||r)return[u,u.map((d,x)=>[x])];const h=[];let l=[];const p=()=>{l.length&&(h.push([...l]),l=[])};let g=0,b=!1;for(let d=0;d<u.length;d++){const x=t.get(u[d]);if(x.behavior.includes("non-paged")){d===g&&g++,i||(p(),h.push([d]),p());continue}if(d===g||x.behavior.includes("facing-pages")){l.length&&(b=!0),p(),h.push([d]),p();continue}if(l.push(d),b){p(),b=!1;continue}l.length>1&&p()}return l.length&&p(),[u,h]}function Dn(t={},e=[]){const{id:r,selector:i}=t,n=Me(),s=r||n.range,a=Q(o=>s?o.iiif.entities.Range[s]:void 0,[s]);return v.useMemo(()=>{if(a)return i?i(a):a},[a,i,...e])}function qn({startCanvas:t,disablePaging:e}){var d;const r=W(),i=Ce(),n=Dn(),[s,a]=v.useState(void 0),o=n||i;if(!o)throw new Error("Nothing selected");const[u,h]=v.useMemo(()=>$n(r,o,{disablePaging:e}),[r,o]),l=v.useCallback(x=>{const w=h.findIndex(A=>A.includes(x));a(w===-1?0:w)},[u,h]),p=v.useCallback(x=>{const w=u.findIndex(A=>A.id===x);w!==-1?l(w):a(0)},[u,h]),g=v.useCallback(()=>{a(x=>x>=h.length?x:x+1)},[h]),b=v.useCallback(()=>{a(x=>x<=0?0:x-1)},[h]);return typeof s>"u"&&(t?p(t):a(0)),{visibleItems:((d=h[s])==null?void 0:d.map(x=>u[x].id))||[],cursor:s,items:u,sequence:h,setSequenceIndex:a,setCanvasIndex:l,setCanvasId:p,next:g,previous:b}}const Re=()=>{},Ye=v.createContext({setCurrentCanvasId:Re,setCurrentCanvasIndex:Re,nextCanvas:Re,previousCanvas:Re,items:[],sequence:[],setSequenceIndex:Re,currentSequenceIndex:0});function _n(t){const e=Ce(),{cursor:r,visibleItems:i,next:n,sequence:s,items:a,setCanvasIndex:o,setCanvasId:u,previous:h,setSequenceIndex:l}=qn({startCanvas:t.startCanvas,disablePaging:t.pagingEnabled===!1}),p=v.useMemo(()=>({sequence:s,items:a,setCurrentCanvasId:u,nextCanvas:n,previousCanvas:h,totalCanvases:a.length,setCurrentCanvasIndex:o,setSequenceIndex:l,currentSequenceIndex:r}),[s,a,u,n,h,a,o,l,r]);return e?m.jsx(Ye.Provider,{value:p,children:m.jsx(Qe.Provider,{value:i,children:m.jsx(St,{canvas:i[0],children:t.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."}))}function Un(t){const e=Pn(t.manifest);if(!e)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."});if(e.error)return m.jsx("div",{children:e.error.toString()});if(!e.isLoaded)return m.jsx("div",{children:"Loading..."});const r=m.jsx(_n,{...t,children:t.children});return m.jsx(Ln,{manifest:e.id,children:t.rangeId?m.jsx(Fn,{range:t.rangeId,children:r}):r})}function Vn(){return v.useContext(Ye)}function Hn(){return{VaultContext:v.useContext(We),ResourceContext:v.useContext(At),SimpleViewerReactContext:v.useContext(Ye),VisibleCanvasReactContext:v.useContext(Qe)}}function Nn(t){return m.jsx(Sr,{vault:t.bridge.VaultContext.vault||void 0,resources:t.bridge.ResourceContext,children:m.jsx(Qe.Provider,{value:t.bridge.VisibleCanvasReactContext,children:m.jsx(Ye.Provider,{value:t.bridge.SimpleViewerReactContext,children:t.children})})})}const te=function(t){return function(){const e={type:t,getType:()=>t,toString:()=>t};return(r,i)=>({...e,...r!==void 0&&{payload:r},...i!==void 0&&{meta:i}})}},Bn="@iiif/IMPORT_ENTITIES",zn="@iiif/MODIFY_ENTITY_FIELD",Wn="@iiif/REORDER_ENTITY_FIELD",Qn="@iiif/ADD_REFERENCE",Yn="@iiif/UPDATE_REFERENCE",Gn="@iiif/REMOVE_REFERENCE",Jn="@iiif/ADD_METADATA",Kn="@iiif/REMOVE_METADATA",Zn="@iiif/UPDATE_METADATA",Xn="@iiif/REORDER_METADATA",es=te(Bn)(),ts=te(zn)(),rs=te(Wn)(),is=te(Qn)(),ns=te(Gn)(),ss=te(Yn)(),as=te(Jn)(),os=te(Zn)(),cs=te(Kn)(),us=te(Xn)(),it={importEntities:es,modifyEntityField:ts,reorderEntityField:rs,addReference:is,removeReference:ns,updateReference:ss,addMetadata:as,removeMetadata:cs,updateMetadata:os,reorderMetadata:us};function ls(){const e=W().getStore();return v.useMemo(()=>r=>e.dispatch(r),[e])}function Ht(t){return typeof t!="string"&&t&&t.bindToVault}function fs(){const t=W(),e=v.useRef([]),r=ls(),i=v.useMemo(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);v.useLayoutEffect(()=>{const o={id:i,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};r(it.importEntities({entities:{AnnotationPage:{[o.id]:o}}}))},[i]);const n=Q(o=>i?o.iiif.entities.AnnotationPage[i]:null,[i]),s=v.useCallback((o,u)=>{if(i){if(Ht(o)){const p=o;p.__vault||p.bindToVault(t),o=typeof p.source=="string"?p.source:p.source.id,e.current[o]=p}else typeof o!="string"&&(o=o.id);const h=t.get({id:i,type:"AnnotationPage"}),l=t.get({id:o,type:"Annotation"});h&&l&&(h.items.find(p=>p.id===l.id)||r(it.addReference({id:i,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"},index:u})))}},[i]),a=v.useCallback(o=>{i&&(Ht(o)?o=typeof o.source=="string"?o.source:o.source.id:typeof o!="string"&&(o=o.id),e.current[o]&&e.current[o].beforeRemove(),t.get({id:i,type:"AnnotationPage"})&&r(it.removeReference({id:i,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"}})))},[i]);return[n,{addAnnotation:s,removeAnnotation:a}]}const Rr=v.createContext(null);function ps(){const t=v.useContext(Rr);return[t.fullPage,{addAnnotation:t.addAnnotation,removeAnnotation:t.removeAnnotation}]}function hs({children:t}){const[e,{addAnnotation:r,removeAnnotation:i}]=fs();return m.jsx(Rr.Provider,{value:v.useMemo(()=>({fullPage:e,addAnnotation:r,removeAnnotation:i}),[e]),children:t})}function ds({width:t,style:e,height:r,error:i,resetErrorBoundary:n}){return m.jsxs("div",{style:{width:t,height:r,minHeight:500,...e||{},background:"#f9f9f9"},children:[m.jsx("h3",{children:"Error occurred"}),m.jsx("p",{children:i.message}),m.jsx("button",{onClick:n,children:"Reset"})]})}const Mt=v.createContext(null);function ys(){return v.useContext(Mt)}const kr=v.createContext(()=>{}),Tr=v.createContext(()=>{});function Se(t,e,r,i,n=[]){const s=v.useContext(t==="portal"?Tr:kr);v.useEffect(()=>(t!=="none"&&s(e,r,i),()=>{s(e,null)}),[e,t,s,...n])}function fe(t={},e=[]){const{id:r,selector:i}=t,n=Me(),s=r||n.canvas,a=Q(o=>s?o.iiif.entities.Canvas[s]:void 0,[s]);return v.useMemo(()=>{if(a)return i?i(a):a},[a,i,...e])}const Ir=v.createContext(()=>{});function vs(t){const e=fe(),r=v.useContext(Ir);v.useEffect(()=>e&&e.id?(r(e.id,t),()=>r(e.id,-1)):()=>{},[e,t])}function gs({children:t,errorFallback:e,outerContainerProps:r={},worldScale:i,...n}){const[s,a]=v.useState(),o=Hn(),u=e||ds,[h,l]=v.useState({}),p=Object.entries(h),[g,b]=v.useState({}),d=Object.entries(g),[x,w]=v.useState({}),A=v.useMemo(()=>i||Math.max(...Object.values(x)),[x]),S=v.useMemo(()=>({maxOverZoom:A||1}),[A]),k=v.useCallback((T,P)=>{w(E=>{if(P===-1){const{[T]:C,...$}=E;return $}return{...E,[T]:P}})},[]),O=v.useCallback((T,P,E)=>{l(({[T]:C,...$})=>P?{...$,[T]:{element:P,props:E}}:$)},[]),F=v.useCallback((T,P,E)=>{b(({[T]:C,...$})=>P?{...$,[T]:{element:P,props:E}}:$)},[]);return m.jsxs(qi,{resetKeys:[],fallbackRender:T=>m.jsx(u,{...n,...T}),children:[m.jsx(we.AtlasAuto,{...n,containerProps:{style:{position:"relative"},...n.containerProps||{}},htmlChildren:m.jsx(m.Fragment,{children:p.map(([T,{element:P,props:E}])=>m.jsx(v.Fragment,{children:m.jsx(P,{...E||{}})},T))}),onCreated:T=>{a(T),n.onCreated&&n.onCreated(T)},runtimeOptions:S,children:m.jsx(Mt.Provider,{value:s,children:m.jsx(Ir.Provider,{value:k,children:m.jsx(kr.Provider,{value:O,children:m.jsx(Tr.Provider,{value:F,children:m.jsx(Nn,{bridge:o,children:m.jsx(we.ModeContext.Provider,{value:n.mode||"explore",children:m.jsx(hs,{children:t})})})})})})})}),m.jsx("div",{children:d.map(([T,{element:P,props:E}])=>m.jsx(v.Fragment,{children:m.jsx(P,{...E||{}})},T))})]})}const $e={},jr={get(t){return t},setMetaValue([t,e,r],i){const n=jr.getResourceMeta(t,e),s=n?n[r]:void 0,a=typeof i=="function"?i(s):i;$e[t]={...$e[t]||{},[e]:{...($e[t]||{})[e]||{},[r]:a}}},getResourceMeta:(t,e)=>{const r=$e[t];if(r)return e?r[e]:r}};function ms(t=jr){return{addEventListener(e,r,i,n){if(e)return t.setMetaValue([e.id,"eventManager",r],s=>{const a=s||[];for(const o of a)if(o.callback===i)return a;return[...a,{callback:i,scope:n}]}),i},removeEventListener(e,r,i){e&&t.setMetaValue([e.id,"eventManager",r],n=>(n||[]).filter(s=>s.callback!==i))},getListenersAsProps(e,r){const i=typeof e=="string"?{id:e}:e;if(!i||!i.id)return{};const n=t.getResourceMeta(i.id,"eventManager"),s={};if(n&&i)for(const a of Object.keys(n))s[a]=o=>{const u=t.get(i);for(const{callback:h,scope:l}of n[a]||[])(!l||r&&l.indexOf(r)!==-1)&&h(o,u)};return s}}}function Or(t,e){const r=W(),i=v.useMemo(()=>ms(r),[r]),n=Q(()=>t&&t.id?r.getResourceMeta(t.id,"eventManager"):null,[t]);return v.useMemo(()=>t?i.getListenersAsProps(t,e):{},[n,t,r,e])}const De={},Er={get(t){return t},setMetaValue([t,e,r],i){const n=Er.getResourceMeta(t,e),s=n?n[r]:void 0,a=typeof i=="function"?i(s):i;De[t]={...De[t]||{},[e]:{...(De[t]||{})[e]||{},[r]:a}}},getResourceMeta:(t,e)=>{const r=De[t];if(r)return e?r[e]:r}};function Pr(t=Er){return{applyStyles(e,r,i){const n=typeof e=="string"?e:e.id;return t.setMetaValue([n,"styles",r],i)},getAppliedStyles(e){const r=typeof e=="string"?e:e.id;return t.getResourceMeta(r,"styles")}}}function Be(t,e){const r=W(),i=v.useMemo(()=>Pr(r),[r]);return Q(()=>{if(!t)return null;const n=i.getAppliedStyles(t.id);return n?e?n[e]:n:void 0},[t,e])}var xs=Object.defineProperty,bs=(t,e,r)=>e in t?xs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ue=(t,e,r)=>(bs(t,typeof e!="symbol"?e+"":e,r),r),As=function(){function t(e,r){var i=[],n=!0,s=!1,a=void 0;try{for(var o=e[Symbol.iterator](),u;!(n=(u=o.next()).done)&&(i.push(u.value),!(r&&i.length===r));n=!0);}catch(h){s=!0,a=h}finally{try{!n&&o.return&&o.return()}finally{if(s)throw a}}return i}return function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Te=Math.PI*2,nt=function(t,e,r,i,n,s,a){var o=t.x,u=t.y;o*=e,u*=r;var h=i*o-n*u,l=n*o+i*u;return{x:h+s,y:l+a}},ws=function(t,e){var r=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=Math.cos(t),n=Math.sin(t),s=Math.cos(t+e),a=Math.sin(t+e);return[{x:i-n*r,y:n+i*r},{x:s+a*r,y:a-s*r},{x:s,y:a}]},Nt=function(t,e,r,i){var n=t*i-e*r<0?-1:1,s=t*r+e*i;return s>1&&(s=1),s<-1&&(s=-1),n*Math.acos(s)},Ss=function(t,e,r,i,n,s,a,o,u,h,l,p){var g=Math.pow(n,2),b=Math.pow(s,2),d=Math.pow(l,2),x=Math.pow(p,2),w=g*b-g*x-b*d;w<0&&(w=0),w/=g*x+b*d,w=Math.sqrt(w)*(a===o?-1:1);var A=w*n/s*p,S=w*-s/n*l,k=h*A-u*S+(t+r)/2,O=u*A+h*S+(e+i)/2,F=(l-A)/n,T=(p-S)/s,P=(-l-A)/n,E=(-p-S)/s,C=Nt(1,0,F,T),$=Nt(F,T,P,E);return o===0&&$>0&&($-=Te),o===1&&$<0&&($+=Te),[k,O,C,$]},Ms=function(t){var e=t.px,r=t.py,i=t.cx,n=t.cy,s=t.rx,a=t.ry,o=t.xAxisRotation,u=o===void 0?0:o,h=t.largeArcFlag,l=h===void 0?0:h,p=t.sweepFlag,g=p===void 0?0:p,b=[];if(s===0||a===0)return[];var d=Math.sin(u*Te/360),x=Math.cos(u*Te/360),w=x*(e-i)/2+d*(r-n)/2,A=-d*(e-i)/2+x*(r-n)/2;if(w===0&&A===0)return[];s=Math.abs(s),a=Math.abs(a);var S=Math.pow(w,2)/Math.pow(s,2)+Math.pow(A,2)/Math.pow(a,2);S>1&&(s*=Math.sqrt(S),a*=Math.sqrt(S));var k=Ss(e,r,i,n,s,a,l,g,d,x,w,A),O=As(k,4),F=O[0],T=O[1],P=O[2],E=O[3],C=Math.abs(E)/(Te/4);Math.abs(1-C)<1e-7&&(C=1);var $=Math.max(Math.ceil(C),1);E/=$;for(var X=0;X<$;X++)b.push(ws(P,E)),P+=E;return b.map(function(Y){var _=nt(Y[0],s,a,x,d,F,T),U=_.x,J=_.y,ee=nt(Y[1],s,a,x,d,F,T),he=ee.x,j=ee.y,V=nt(Y[2],s,a,x,d,F,T),G=V.x,oe=V.y;return{x1:U,y1:J,x2:he,y2:j,x:G,y:oe}})};function Lr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Cs=ks,st={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Rs=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function ks(t){var e=[];return t.replace(Rs,function(r,i,n){var s=i.toLowerCase();for(n=Is(n),s=="m"&&n.length>2&&(e.push([i].concat(n.splice(0,2))),s="l",i=i=="m"?"l":"L");;){if(n.length==st[s])return n.unshift(i),e.push(n);if(n.length<st[s])throw new Error("malformed path data");e.push([i].concat(n.splice(0,st[s])))}}),e}var Ts=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function Is(t){var e=t.match(Ts);return e?e.map(Number):[]}const js=Lr(Cs);var Os=Es;function Es(t){var e=0,r=0,i=0,n=0;return t.map(function(s){s=s.slice();var a=s[0],o=a.toUpperCase();if(a!=o)switch(s[0]=o,a){case"a":s[6]+=i,s[7]+=n;break;case"v":s[1]+=n;break;case"h":s[1]+=i;break;default:for(var u=1;u<s.length;)s[u++]+=i,s[u++]+=n}switch(o){case"Z":i=e,n=r;break;case"H":i=s[1];break;case"V":n=s[1];break;case"M":i=e=s[1],n=r=s[2];break;default:i=s[s.length-2],n=s[s.length-1]}return s})}const Ps=Lr(Os);function Ls(t){const e=js(t),r=Ps(e);let i,n=0,s=0,a=0,o=0,u,h,l=0,p=0;const g=[];for(let b=0;b<r.length;b++){let d=r[b];const x=d[0];switch(x){case"M":n=d[1],s=d[2];break;case"H":d=["L",d[1],s];break;case"V":d=["L",n,d[1]];break;case"S":{let w=l,A=p;(i==="C"||i=="S")&&(w+=w-a,A+=A-o),d=["C",w,A,d[1],d[2],d[3],d[4]]}break;case"T":i==="Q"||i=="T"?(u=l*2-u,h=p*2-h):(u=l,h=p),d=["Q",u,h,d[1],d[2]];break;case"Q":u=d[1],h=d[2];break;case"A":{const w=Ms({px:l,py:p,cx:d[6],cy:d[7],rx:d[1],ry:d[2],xAxisRotation:d[3],largeArcFlag:d[4],sweepFlag:d[5]});if(!w.length)continue;for(const[A,S]of w.entries())d=["C",S.x1,S.y1,S.x2,S.y2,S.x,S.y],A<w.length-1&&g.push(d);d=d}break;case"Z":d=["L",n,s];break}i=x,l=d[d.length-2],p=d[d.length-1],["C","Q","A"].indexOf(x)>-1?(a=d[d.length-4],o=d[d.length-3]):(a=l,o=p),g.push(d)}return g}/** Code to "flatten" quadratic and cubic Bézier curves to polylines.
|
|
5
|
+
`);const S=A.state[o];if(S==null)return;JSON.stringify(n.getState())!==JSON.stringify(S)&&b(S);return}n.dispatchFromDevtools&&typeof n.dispatch=="function"&&n.dispatch(A)});case"DISPATCH":switch(x.payload.type){case"RESET":return b(d),o===void 0?l==null?void 0:l.init(n.getState()):l==null?void 0:l.init(Fe(u.name));case"COMMIT":if(o===void 0){l==null||l.init(n.getState());return}return l==null?void 0:l.init(Fe(u.name));case"ROLLBACK":return et(x.state,A=>{if(o===void 0){b(A),l==null||l.init(n.getState());return}b(A[o]),l==null||l.init(Fe(u.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return et(x.state,A=>{if(o===void 0){b(A);return}JSON.stringify(n.getState())!==JSON.stringify(A[o])&&b(A[o])});case"IMPORT_STATE":{const{nextLiftedState:A}=x.payload,S=(w=A.computedStates.slice(-1)[0])==null?void 0:w.state;if(!S)return;b(o===void 0?S:S[o]),l==null||l.send(null,A);return}case"PAUSE_RECORDING":return g=!g}return}}),d},vn=yn,et=(t,e)=>{let r;try{r=JSON.parse(t)}catch(i){console.error("[zustand devtools middleware] Could not parse the received json",i)}r!==void 0&&e(r)},gn=t=>(e,r,i)=>{const n=i.subscribe;return i.subscribe=(s,a,o)=>{let u=s;if(a){const h=(o==null?void 0:o.equalityFn)||Object.is;let l=s(i.getState());u=p=>{const g=s(p);if(!h(l,g)){const b=l;a(l=g,b)}},o!=null&&o.fireImmediately&&a(l,l)}return n(u)},t(e,r,i)},mn=gn,xn=(t={},e)=>{switch(e.type){case cr:return{...t,[e.payload.id]:e.payload.type};case ur:return{...t,...e.payload.mapping};default:return t}};function tt(t,e,r,i){return!(!t[r]||!t[r][e]||!t[r][e][i]||!Array.isArray(t[r][e][i]))}function bn(t,e){const r={},i=[];for(const[n,s]of Object.entries(t||{})){i.push(n);const a=(e||{})[n];if(!a||a.length===0){r[n]=s;continue}r[n]=a}for(const[n,s]of Object.entries(e||{}))i.indexOf(n)===-1&&(r[n]=s);return r}function R(t){return t.payload}function rt(t,e){return typeof t>"u"?e:t}const An=(t=xr(),e)=>{var r;const i=(n,s)=>({...t,[R(e).type]:{...t[R(e).type],[R(e).id]:{...n,...s}}});switch(e.type){case er:{if(!t[R(e).type]||!t[R(e).type][R(e).id])return t;const n=t[R(e).type][R(e).id];return typeof n=="string"?t:i(n,{[R(e).key]:R(e).value})}case tr:{if(!tt(t,R(e).id,R(e).type,R(e).key))return t;const n=t[R(e).type][R(e).id];if(typeof n=="string")return t;const s=Array.from(n[R(e).key]),[a]=s.splice(R(e).startIndex,1);return s.splice(R(e).endIndex,0,a),i(n,{[R(e).key]:s})}case Xt:{const n=Object.keys(R(e).entities),s={...t};for(const a of n){const o=R(e).entities[a],u={...t[a]||{}};let h=!1;const l=Object.keys(o||{})||[];if(o&&l){for(const p of l)h=!0,u[p]=t[a][p]?bn(t[a][p],o[p]):o[p];h&&(s[a]=u)}}return s}case rr:{if(!tt(t,R(e).id,R(e).type,R(e).key))return t;const n=t[R(e).type][R(e).id],s=Array.from(n[R(e).key]);return s.splice(rt(R(e).index,s.length+1),0,R(e).reference),i(n,{[R(e).key]:s})}case lt:case ir:{if(!tt(t,R(e).id,R(e).type,R(e).key))return t;const n=t[R(e).type][R(e).id],s=Array.from(n[R(e).key]),a=rt(R(e).index,s.findIndex(o=>o&&o.id===R(e).reference.id));return a===-1||((r=s[a])==null?void 0:r.id)!==R(e).reference.id?t:(e.type===lt?s.splice(a,1,R(e).reference):s.splice(a,1),i(n,{[R(e).key]:s}))}case nr:{const n=t[R(e).type][R(e).id];if(!n)return t;const s=Array.from(n.metadata||[]),a=R(e);return s.splice(rt(e.payload.beforeIndex,s.length+1),0,{label:a.label,value:a.label}),i(n,{metadata:s})}case ar:{const n=t[R(e).type][R(e).id];if(typeof n=="string"||!n)return t;const s=Array.from(n.metadata||[]),[a]=s.splice(R(e).startIndex,1);return s.splice(R(e).endIndex,0,a),i(n,{metadata:s})}case ft:case sr:{const n=t[R(e).type][R(e).id],s=Array.from(n.metadata||[]),a=R(e).atIndex;return typeof a>"u"||a===-1||!s[a]?t:(e.type===ft?s.splice(a,1,{label:R(e).label,value:R(e).value}):s.splice(a,1),i(n,{metadata:s}))}default:return t}},wn=(t={},e)=>{switch(e.type){case dr:case nn:return{...t,[e.payload.id]:{requestUri:e.payload.id,loadingState:hr,uriMismatch:!1,resourceUri:e.payload.id}};case vr:return{...t,[e.payload.requestId]:{...t[e.payload.requestId]||{},uriMismatch:!0,resourceUri:e.payload.actualId},[e.payload.actualId]:{requestUri:e.payload.requestId,loadingState:t[e.payload.requestId].loadingState,uriMismatch:!0,resourceUri:e.payload.actualId}};case yr:return{...t,[e.payload.id]:{...t[e.payload.id]||{},loadingState:pt,error:e.payload.message}};case gr:return{...t,[e.payload.id]:{...t[e.payload.id]||{},loadingState:ht,error:void 0}}}return t},Sn=(t={},e)=>{const{id:r,updateValue:i,value:n,meta:s,key:a}=e&&e.payload||{};switch(e.type){case lr:return{...t,[r]:{...t[r]||{},[s]:{...t[r]?t[r][s]||{}:{},[a]:n}}};case fr:return{...t,[r]:{...t[r]||{},[s]:{...t[r]?t[r][s]||{}:{},[a]:t[r]&&t[r][s]?i(t[r][s][a]):i(void 0)}}};case pr:return t[r]&&t[r][s]&&t[r][s][a]?{...t,[r]:{...t[r]||{},[s]:{...t[r]?t[r][s]||{}:{},[a]:void 0}}}:t;default:return t}};function br(t={}){const e=Object.keys(t);return function(r={},i){let n=!1;const s={};for(let a=0;a<e.length;a++){const o=e[a];s[o]=t[o](r[o],i),n=n||s[o]!==r[o]}return n?s:r}}function Mn(t){return(e,r)=>r&&r.type===wt?r.payload.actions.reduce(t,e):r&&r.type===cn?{...e,iiif:{...e.iiif,...r.payload.state}}:t(e,r)}const Cn=br({mapping:xn,entities:An,requests:wn,meta:Sn});function Rn(){return{iiif:{entities:xr(),meta:{},mapping:{},requests:{}}}}function kn(t={}){const{enableDevtools:e=!1,iiifStoreName:r="iiif",defaultState:i=Rn(),customReducers:n={}}=t,s=Mn(br({[r]:Cn,...n}));return fn(mn(vn(hn(s,i),{enabled:e})))}function Tn(t){return{all:t=t||new Map,on:function(e,r){var i=t.get(e);i?i.push(r):t.set(e,[r])},off:function(e,r){var i=t.get(e);i&&(r?i.splice(i.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var i=t.get(e);i&&i.slice().map(function(n){n(r)}),(i=t.get("*"))&&i.slice().map(function(n){n(e,r)})}}}function N(t,e,r,i=!0){e[xe]=e[xe]||[],e[xe].push(t);const n=new Map;Object.defineProperty(e,t,{enumerable:i,get(){if(typeof e[ye][t]>"u")return;const s=e[ye][t];if(!s)return s;const a=r.get(e[ye][t],{parent:this.id?{id:this.id,type:this.type}:void 0});return n.has(a)||(n.clear(),n.set(a,ve(a,r))),n.get(a)},set(s){e[ye][t]!==s&&(this[de]?r.modifyEntityField({id:this.id,type:this.type},t,Ar(s)):this[ye][t]=s)}})}const ye=Symbol.for("_refs_"),de=Symbol.for("_reactive_"),xe=Symbol.for("_defined_"),Ut=Symbol.for("_parent_");function In(t,e=!1,r){const i={id:"",type:"unknown",[xe]:[],[ye]:{},[Ut]:r||null,[de]:null,is(n){return typeof n=="string"?this.id===n:n.id?n.id===this.id:!1},reactive(){if(!this[de])return this[de]=this.subscribe(()=>this.refresh(),!0),()=>{this.unreactive()}},refresh(){if(this.id){const n=this.unwrap();for(const s of Object.keys(n||{}))this[xe].includes(s)?this[ye][s]=n[s]:this[s]=n[s]}},unreactive(){this[de]&&(this[de](),this[de]=null)},unwrap(){if(!this.id)throw new Error("Invalid object");const n=this[Ut];return t.get(this.id,{parent:n?{id:n,type:"unknown"}:void 0})},toPresentation3(){return t.toPresentation3(this.unwrap())},toPresentation2(){return t.toPresentation2(this.unwrap())},valueOf(){return this.unwrap()},toJSON(){const n=this;return{...n,items:n.items,annotations:n.annotations,structures:n.structures,seeAlso:n.seeAlso,service:n.service,services:n.services,rendering:n.rendering,partOf:n.partOf,start:n.start,supplementary:n.supplementary,homepage:n.homepage,thumbnail:n.thumbnail,placeholderCanvas:n.placeholderCanvas,accompanyingCanvas:n.accompanyingCanvas,provider:n.provider}},subscribe(n,s=!0){return t.subscribe(()=>this.id?t.get(this.id):null,n,s)}};return N("items",i,t),N("annotations",i,t),N("structures",i,t),N("seeAlso",i,t),N("rendering",i,t),N("partOf",i,t),N("start",i,t,!1),N("supplementary",i,t),N("homepage",i,t),N("thumbnail",i,t),N("placeholderCanvas",i,t,!1),N("accompanyingCanvas",i,t,!1),N("provider",i,t),N("body",i,t),N("logo",i,t),i}function jn(t){return!!t[xe]}function Ar(t){return Array.isArray(t)?t.map(e=>Ar(e)):!t||!t.type?t:{id:t.id,type:t.type}}function ve(t,e,r=!1,i){if(Array.isArray(t))return t.map(o=>ve(o,e,r));if(!t||!t.type||!t.id)return t;const n=In(e,r),s=Object.create(n),a=Object.assign(s,t);return r&&a.reactive(),a}function Vt(t){switch(t){case"Image":case"Video":case"Sound":case"Dataset":case"Text":case"Composite":case"List":case"Independents":case"Audience":return"ContentResource";case"ImageService1":case"ImageService2":case"ImageService3":return"Service"}return t}let vt=class{constructor(e,r){le(this,"options"),le(this,"store"),le(this,"emitter"),le(this,"isBatching",!1),le(this,"batchQueue",[]),le(this,"remoteFetcher"),le(this,"staticFetcher"),le(this,"defaultFetcher",i=>fetch(i).then(n=>n.json())),this.options=Object.assign({reducers:{},customFetcher:this.defaultFetcher,enableDevtools:!0},e||{}),this.store=r||kn({customReducers:this.options.reducers,defaultState:this.options.defaultState,enableDevtools:this.options.enableDevtools}),this.emitter=Tn(),this.remoteFetcher=qt(this,this.options.customFetcher),this.staticFetcher=qt(this,(i,n)=>n)}batch(e){this.isBatching=!0;try{e(this),this.isBatching=!1,this.dispatch(dt({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}async asyncBatch(e){this.isBatching=!0;try{await e(this),this.isBatching=!1,this.dispatch(dt({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}modifyEntityField(e,r,i){this.dispatch(Ki.modifyEntityField({id:e.id,type:e.type,key:r,value:i}))}dispatch(e){if(this.isBatching)this.batchQueue.push(e);else{if(e.type===wt){for(const n of e.payload.actions)this.emitter.emit(n.type,{action:n,state:this.store.getState()});this.store.dispatch(e);const i=this.getState();for(const n of e.payload.actions)this.emitter.emit(`after:${n.type}`,{action:n,state:i});return}this.emitter.emit(e.type,{action:e,state:this.store.getState()}),this.store.dispatch(e);const r=this.store.getState();this.emitter.emit(`after:${e.type}`,{action:e,state:r});return}}on(e,r){return this.emitter.on(e,r),()=>{this.emitter.off(e,r)}}serialize(e,r){return B.serialize(this.getState().iiif,e,r)}toPresentation2(e){return this.serialize(e,B.serializeConfigPresentation2)}toPresentation3(e){return this.serialize(e,B.serializeConfigPresentation3)}hydrate(e,r,i={}){return this.get(e,r,{...i,skipSelfReturn:!1})}get(e,r,i={}){typeof r!="string"&&(i=r||{},r=void 0);const{skipSelfReturn:n=!0}=i||{};let s=i.parent?typeof i.parent=="string"?i.parent:i.parent.id:void 0;if(Array.isArray(e))return e.map(p=>this.get(p,i));const a=this.getState();if(B.isSpecificResource(e)&&!i.preserveSpecificResources&&(e=e.source),typeof e=="string"){const p=Vt(r||a.iiif.mapping[e]);if(!p)return n?null:{id:e,type:"unknown"};e={id:e,type:p}}if(e&&e.partOf&&!s&&!i.skipPartOfCheck){const p=Array.isArray(e.partOf)?e.partOf[0]:e.partOf;p&&(typeof p=="string"&&(s=p),typeof p.id=="string"&&(s=p.id))}const o=Vt(r||(e==null?void 0:e.type)),u=e==null?void 0:e.id,h=a.iiif.entities[o];if(!h){const p=a.iiif.requests[u];return p&&p.resourceUri!==u?this.get(p.resourceUri,i):n?null:e}const l=h[e.id];if(l&&l[B.HAS_PART]){const p=l[B.HAS_PART].find(g=>s?g[B.PART_OF]===s:g[B.PART_OF]===l.id);return B.frameResource(l,p)}return h[e.id]||(n?null:e)}select(e){return e(this.getState())}getStore(){return this.store}getState(){return this.store.getState()}deep(e,r){if(typeof e>"u")return this.get(r,{skipSelfReturn:!1});if(typeof e=="function")try{const n=e(this.get(r,{skipSelfReturn:!1})),s=a=>this.deep(a,n);return s.size=Array.isArray(n)?n.length:1,s}catch{const n=s=>this.deep(s,void 0);return n.size=0,n}const i=n=>this.deep(n,e);return i.size=Array.isArray(e)?e.length:1,i}loadManifest(e,r){const i=typeof e=="string"?e:e.id;return this.load(i,r)}loadCollection(e,r){const i=typeof e=="string"?e:e.id;return this.load(i,r)}load(e,r){const i=typeof e=="string"?e:e.id;return r?this.staticFetcher(i,r):this.remoteFetcher(i)}areInputsEqual(e,r){return Dt(e,r)}subscribe(e,r,i){return typeof i>"u"&&(typeof r>"u"||r===!1||r===!0)&&(i=r,r=e,e=n=>n),this.store.subscribe(e,n=>r(n,this),{equalityFn:Dt,fireImmediately:!i})}async ensureLoaded(e){const r=typeof e=="string"?e:e.id;this.requestStatus(r)||await this.load(r)}requestStatus(e){return this.select(r=>r.iiif.requests[e])}getResourceMeta(e,r){const i=this.getState().iiif.meta[e];if(i)return r?i[r]:i}getObject(e,r,i={}){const{reactive:n,...s}=i;return ve(this.get(e,r,s),this,n)}async loadObject(e,r){return ve(await this.load(e,r),this)}async loadManifestObject(e,r){return ve(await this.loadManifest(e,r),this)}async loadCollectionObject(e,r){return ve(await this.loadCollection(e,r),this)}wrapObject(e){return ve(this.get(e,{skipSelfReturn:!1}),this)}isWrapped(e){return jn(e)}setMetaValue([e,r,i],n){this.dispatch(typeof n=="function"?Ft.setMetaValueDynamic({id:e,meta:r,key:i,updateValue:n}):Ft.setMetaValue({id:e,meta:r,key:i,value:n}))}};function On(){return typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}function wr(t){const e=On();try{const i=e.IIIF_VAULT;if(i)return i}catch{}const r=new vt(t);try{e.IIIF_VAULT=r}catch{}return r}const We=v.createContext({vault:null,setVaultInstance:t=>{}});function Sr({vault:t,vaultOptions:e,useGlobal:r,resources:i,children:n}){const[s,a]=v.useState(()=>t||(r?wr(e):e?new vt(e):new vt));return m.jsx(We.Provider,{value:{vault:s,setVaultInstance:a},children:m.jsx(ze,{value:i||{},children:n})})}const W=()=>{const{vault:t}=v.useContext(We);if(t===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return t};function En(t,{noCache:e=!1}={}){const r=typeof t=="string"?t:t.id,i=W(),[n,s]=v.useState(r),[a,o]=v.useState(void 0),u=v.useMemo(()=>i.get(r,{skipSelfReturn:!0})||void 0,[r,i]),[h,l]=v.useState(u);return v.useEffect(()=>{(async()=>{try{const p=u&&!e?u:await i.load(r),g=p?p.id||p["@id"]:null;p&&n!==g&&s(g),l(p)}catch(p){o(p)}})()},[r,e]),{isLoaded:!!h,id:n,requestId:r,error:a,resource:h,cached:!!(h&&h===u)}}function Pn(t,e){const{id:r,isLoaded:i,error:n,resource:s,requestId:a,cached:o}=En(t,e);return{id:r,isLoaded:i,error:n,manifest:s,requestId:a,cached:o}}function Ln({manifest:t,children:e}){return m.jsx(ze,{value:{manifest:t},children:e})}function St({canvas:t,children:e}){return m.jsx(ze,{value:{canvas:t},children:e})}function Q(t,e=[]){const r=W(),[i,n]=v.useState(()=>t(r.getState(),r));return v.useEffect(()=>r.subscribe(s=>t(s,r),s=>{n(s)},!1),e),i}const Qe=v.createContext([]);function Mr(){const t=v.useContext(Qe);return Q(e=>t.map(r=>e.iiif.entities.Canvas[r]).filter(Boolean),[t])}function Ce(t={},e=[]){const{id:r,selector:i}=t,n=Me();W();const s=r||n.manifest,a=Q(o=>s?o.iiif.entities.Manifest[s]:void 0,[s]);return v.useMemo(()=>{if(a)return i?i(a):a},[a,i,...e])}function Fn({range:t,children:e}){return m.jsx(ze,{value:{range:t},children:e})}function Cr(t,e){var i;const r=[];for(const n of e.items)if(n.type==="SpecificResource"&&((i=n.source)==null?void 0:i.type)==="Canvas"&&(n.source.id.indexOf("#")!==-1?r.push({id:n.source.id.split("#")[0],type:"Canvas"}):r.push(n.source)),n.type==="Range"&&r.push(...Cr(t,t.get(n))),n.type==="SpecificResource"){const s=typeof n.source=="string"?n.source:n.source.id;r.push({id:s,type:"Canvas"})}return r}function $n(t,e,{disablePaging:r,skipNonPaged:i}={}){const n=e.behavior,s=n.includes("paged"),a=s?!1:n.includes("continuous"),o=s||a?!1:n.includes("individuals"),u=e.type==="Manifest"?e.items:Cr(t,e);if(a)return[u,[u.map((d,x)=>x)]];if(o||!s||r)return[u,u.map((d,x)=>[x])];const h=[];let l=[];const p=()=>{l.length&&(h.push([...l]),l=[])};let g=0,b=!1;for(let d=0;d<u.length;d++){const x=t.get(u[d]);if(x.behavior.includes("non-paged")){d===g&&g++,i||(p(),h.push([d]),p());continue}if(d===g||x.behavior.includes("facing-pages")){l.length&&(b=!0),p(),h.push([d]),p();continue}if(l.push(d),b){p(),b=!1;continue}l.length>1&&p()}return l.length&&p(),[u,h]}function Dn(t={},e=[]){const{id:r,selector:i}=t,n=Me(),s=r||n.range,a=Q(o=>s?o.iiif.entities.Range[s]:void 0,[s]);return v.useMemo(()=>{if(a)return i?i(a):a},[a,i,...e])}function qn({startCanvas:t,disablePaging:e}){var d;const r=W(),i=Ce(),n=Dn(),[s,a]=v.useState(void 0),o=n||i;if(!o)throw new Error("Nothing selected");const[u,h]=v.useMemo(()=>$n(r,o,{disablePaging:e}),[r,o]),l=v.useCallback(x=>{const w=h.findIndex(A=>A.includes(x));a(w===-1?0:w)},[u,h]),p=v.useCallback(x=>{const w=u.findIndex(A=>A.id===x);w!==-1?l(w):a(0)},[u,h]),g=v.useCallback(()=>{a(x=>x>=h.length?x:x+1)},[h]),b=v.useCallback(()=>{a(x=>x<=0?0:x-1)},[h]);return typeof s>"u"&&(t?p(t):a(0)),{visibleItems:((d=h[s])==null?void 0:d.map(x=>u[x].id))||[],cursor:s,items:u,sequence:h,setSequenceIndex:a,setCanvasIndex:l,setCanvasId:p,next:g,previous:b}}const Re=()=>{},Ye=v.createContext({setCurrentCanvasId:Re,setCurrentCanvasIndex:Re,nextCanvas:Re,previousCanvas:Re,items:[],sequence:[],setSequenceIndex:Re,currentSequenceIndex:0});function _n(t){const e=Ce(),{cursor:r,visibleItems:i,next:n,sequence:s,items:a,setCanvasIndex:o,setCanvasId:u,previous:h,setSequenceIndex:l}=qn({startCanvas:t.startCanvas,disablePaging:t.pagingEnabled===!1}),p=v.useMemo(()=>({sequence:s,items:a,setCurrentCanvasId:u,nextCanvas:n,previousCanvas:h,totalCanvases:a.length,setCurrentCanvasIndex:o,setSequenceIndex:l,currentSequenceIndex:r}),[s,a,u,n,h,a,o,l,r]);return e?m.jsx(Ye.Provider,{value:p,children:m.jsx(Qe.Provider,{value:i,children:m.jsx(St,{canvas:i[0],children:t.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."}))}function Un(t){const e=Pn(t.manifest);if(!e)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."});if(e.error)return m.jsx("div",{children:e.error.toString()});if(!e.isLoaded)return m.jsx("div",{children:"Loading..."});const r=m.jsx(_n,{...t,children:t.children});return m.jsx(Ln,{manifest:e.id,children:t.rangeId?m.jsx(Fn,{range:t.rangeId,children:r}):r})}function Vn(){return v.useContext(Ye)}function Hn(){return{VaultContext:v.useContext(We),ResourceContext:v.useContext(At),SimpleViewerReactContext:v.useContext(Ye),VisibleCanvasReactContext:v.useContext(Qe)}}function Nn(t){return m.jsx(Sr,{vault:t.bridge.VaultContext.vault||void 0,resources:t.bridge.ResourceContext,children:m.jsx(Qe.Provider,{value:t.bridge.VisibleCanvasReactContext,children:m.jsx(Ye.Provider,{value:t.bridge.SimpleViewerReactContext,children:t.children})})})}const te=function(t){return function(){const e={type:t,getType:()=>t,toString:()=>t};return(r,i)=>({...e,...r!==void 0&&{payload:r},...i!==void 0&&{meta:i}})}},Bn="@iiif/IMPORT_ENTITIES",zn="@iiif/MODIFY_ENTITY_FIELD",Wn="@iiif/REORDER_ENTITY_FIELD",Qn="@iiif/ADD_REFERENCE",Yn="@iiif/UPDATE_REFERENCE",Gn="@iiif/REMOVE_REFERENCE",Jn="@iiif/ADD_METADATA",Kn="@iiif/REMOVE_METADATA",Zn="@iiif/UPDATE_METADATA",Xn="@iiif/REORDER_METADATA",es=te(Bn)(),ts=te(zn)(),rs=te(Wn)(),is=te(Qn)(),ns=te(Gn)(),ss=te(Yn)(),as=te(Jn)(),os=te(Zn)(),cs=te(Kn)(),us=te(Xn)(),it={importEntities:es,modifyEntityField:ts,reorderEntityField:rs,addReference:is,removeReference:ns,updateReference:ss,addMetadata:as,removeMetadata:cs,updateMetadata:os,reorderMetadata:us};function ls(){const e=W().getStore();return v.useMemo(()=>r=>e.dispatch(r),[e])}function Ht(t){return typeof t!="string"&&t&&t.bindToVault}function fs(){const t=W(),e=v.useRef([]),r=ls(),i=v.useMemo(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);v.useLayoutEffect(()=>{const o={id:i,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};r(it.importEntities({entities:{AnnotationPage:{[o.id]:o}}}))},[i]);const n=Q(o=>i?o.iiif.entities.AnnotationPage[i]:null,[i]),s=v.useCallback((o,u)=>{if(i){if(Ht(o)){const p=o;p.__vault||p.bindToVault(t),o=typeof p.source=="string"?p.source:p.source.id,e.current[o]=p}else typeof o!="string"&&(o=o.id);const h=t.get({id:i,type:"AnnotationPage"}),l=t.get({id:o,type:"Annotation"});h&&l&&(h.items.find(p=>p.id===l.id)||r(it.addReference({id:i,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"},index:u})))}},[i]),a=v.useCallback(o=>{i&&(Ht(o)?o=typeof o.source=="string"?o.source:o.source.id:typeof o!="string"&&(o=o.id),e.current[o]&&e.current[o].beforeRemove(),t.get({id:i,type:"AnnotationPage"})&&r(it.removeReference({id:i,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"}})))},[i]);return[n,{addAnnotation:s,removeAnnotation:a}]}const Rr=v.createContext(null);function ps(){const t=v.useContext(Rr);return[t.fullPage,{addAnnotation:t.addAnnotation,removeAnnotation:t.removeAnnotation}]}function hs({children:t}){const[e,{addAnnotation:r,removeAnnotation:i}]=fs();return m.jsx(Rr.Provider,{value:v.useMemo(()=>({fullPage:e,addAnnotation:r,removeAnnotation:i}),[e]),children:t})}function ds({width:t,style:e,height:r,error:i,resetErrorBoundary:n}){return m.jsxs("div",{style:{width:t,height:r,minHeight:500,...e||{},background:"#f9f9f9"},children:[m.jsx("h3",{children:"Error occurred"}),m.jsx("p",{children:i.message}),m.jsx("button",{onClick:n,children:"Reset"})]})}const Mt=v.createContext(null);function ys(){return v.useContext(Mt)}const kr=v.createContext(()=>{}),Tr=v.createContext(()=>{});function Se(t,e,r,i,n=[]){const s=v.useContext(t==="portal"?Tr:kr);v.useEffect(()=>(t!=="none"&&s(e,r,i),()=>{s(e,null)}),[e,t,s,...n])}function fe(t={},e=[]){const{id:r,selector:i}=t,n=Me(),s=r||n.canvas,a=Q(o=>s?o.iiif.entities.Canvas[s]:void 0,[s]);return v.useMemo(()=>{if(a)return i?i(a):a},[a,i,...e])}const Ir=v.createContext(()=>{});function vs(t){const e=fe(),r=v.useContext(Ir);v.useEffect(()=>e&&e.id?(r(e.id,t),()=>r(e.id,-1)):()=>{},[e,t])}function gs({children:t,errorFallback:e,outerContainerProps:r={},worldScale:i,...n}){const[s,a]=v.useState(),o=Hn(),u=e||ds,[h,l]=v.useState({}),p=Object.entries(h),[g,b]=v.useState({}),d=Object.entries(g),[x,w]=v.useState({}),A=v.useMemo(()=>i||Math.max(...Object.values(x)),[x]),S=v.useMemo(()=>({maxOverZoom:A||1,...n.runtimeOptions||{}}),[A,n.runtimeOptions]),k=v.useCallback((T,P)=>{w(E=>{if(P===-1){const{[T]:C,...$}=E;return $}return{...E,[T]:P}})},[]),O=v.useCallback((T,P,E)=>{l(({[T]:C,...$})=>P?{...$,[T]:{element:P,props:E}}:$)},[]),F=v.useCallback((T,P,E)=>{b(({[T]:C,...$})=>P?{...$,[T]:{element:P,props:E}}:$)},[]);return m.jsxs(qi,{resetKeys:[],fallbackRender:T=>m.jsx(u,{...n,...T}),children:[m.jsx(we.AtlasAuto,{...n,containerProps:{style:{position:"relative"},...n.containerProps||{}},htmlChildren:m.jsx(m.Fragment,{children:p.map(([T,{element:P,props:E}])=>m.jsx(v.Fragment,{children:m.jsx(P,{...E||{}})},T))}),onCreated:T=>{a(T),n.onCreated&&n.onCreated(T)},runtimeOptions:S,children:m.jsx(Mt.Provider,{value:s,children:m.jsx(Ir.Provider,{value:k,children:m.jsx(kr.Provider,{value:O,children:m.jsx(Tr.Provider,{value:F,children:m.jsx(Nn,{bridge:o,children:m.jsx(we.ModeContext.Provider,{value:n.mode||"explore",children:m.jsx(hs,{children:t})})})})})})})}),m.jsx("div",{children:d.map(([T,{element:P,props:E}])=>m.jsx(v.Fragment,{children:m.jsx(P,{...E||{}})},T))})]})}const $e={},jr={get(t){return t},setMetaValue([t,e,r],i){const n=jr.getResourceMeta(t,e),s=n?n[r]:void 0,a=typeof i=="function"?i(s):i;$e[t]={...$e[t]||{},[e]:{...($e[t]||{})[e]||{},[r]:a}}},getResourceMeta:(t,e)=>{const r=$e[t];if(r)return e?r[e]:r}};function ms(t=jr){return{addEventListener(e,r,i,n){if(e)return t.setMetaValue([e.id,"eventManager",r],s=>{const a=s||[];for(const o of a)if(o.callback===i)return a;return[...a,{callback:i,scope:n}]}),i},removeEventListener(e,r,i){e&&t.setMetaValue([e.id,"eventManager",r],n=>(n||[]).filter(s=>s.callback!==i))},getListenersAsProps(e,r){const i=typeof e=="string"?{id:e}:e;if(!i||!i.id)return{};const n=t.getResourceMeta(i.id,"eventManager"),s={};if(n&&i)for(const a of Object.keys(n))s[a]=o=>{const u=t.get(i);for(const{callback:h,scope:l}of n[a]||[])(!l||r&&l.indexOf(r)!==-1)&&h(o,u)};return s}}}function Or(t,e){const r=W(),i=v.useMemo(()=>ms(r),[r]),n=Q(()=>t&&t.id?r.getResourceMeta(t.id,"eventManager"):null,[t]);return v.useMemo(()=>t?i.getListenersAsProps(t,e):{},[n,t,r,e])}const De={},Er={get(t){return t},setMetaValue([t,e,r],i){const n=Er.getResourceMeta(t,e),s=n?n[r]:void 0,a=typeof i=="function"?i(s):i;De[t]={...De[t]||{},[e]:{...(De[t]||{})[e]||{},[r]:a}}},getResourceMeta:(t,e)=>{const r=De[t];if(r)return e?r[e]:r}};function Pr(t=Er){return{applyStyles(e,r,i){const n=typeof e=="string"?e:e.id;return t.setMetaValue([n,"styles",r],i)},getAppliedStyles(e){const r=typeof e=="string"?e:e.id;return t.getResourceMeta(r,"styles")}}}function Be(t,e){const r=W(),i=v.useMemo(()=>Pr(r),[r]);return Q(()=>{if(!t)return null;const n=i.getAppliedStyles(t.id);return n?e?n[e]:n:void 0},[t,e])}var xs=Object.defineProperty,bs=(t,e,r)=>e in t?xs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ue=(t,e,r)=>(bs(t,typeof e!="symbol"?e+"":e,r),r),As=function(){function t(e,r){var i=[],n=!0,s=!1,a=void 0;try{for(var o=e[Symbol.iterator](),u;!(n=(u=o.next()).done)&&(i.push(u.value),!(r&&i.length===r));n=!0);}catch(h){s=!0,a=h}finally{try{!n&&o.return&&o.return()}finally{if(s)throw a}}return i}return function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Te=Math.PI*2,nt=function(t,e,r,i,n,s,a){var o=t.x,u=t.y;o*=e,u*=r;var h=i*o-n*u,l=n*o+i*u;return{x:h+s,y:l+a}},ws=function(t,e){var r=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=Math.cos(t),n=Math.sin(t),s=Math.cos(t+e),a=Math.sin(t+e);return[{x:i-n*r,y:n+i*r},{x:s+a*r,y:a-s*r},{x:s,y:a}]},Nt=function(t,e,r,i){var n=t*i-e*r<0?-1:1,s=t*r+e*i;return s>1&&(s=1),s<-1&&(s=-1),n*Math.acos(s)},Ss=function(t,e,r,i,n,s,a,o,u,h,l,p){var g=Math.pow(n,2),b=Math.pow(s,2),d=Math.pow(l,2),x=Math.pow(p,2),w=g*b-g*x-b*d;w<0&&(w=0),w/=g*x+b*d,w=Math.sqrt(w)*(a===o?-1:1);var A=w*n/s*p,S=w*-s/n*l,k=h*A-u*S+(t+r)/2,O=u*A+h*S+(e+i)/2,F=(l-A)/n,T=(p-S)/s,P=(-l-A)/n,E=(-p-S)/s,C=Nt(1,0,F,T),$=Nt(F,T,P,E);return o===0&&$>0&&($-=Te),o===1&&$<0&&($+=Te),[k,O,C,$]},Ms=function(t){var e=t.px,r=t.py,i=t.cx,n=t.cy,s=t.rx,a=t.ry,o=t.xAxisRotation,u=o===void 0?0:o,h=t.largeArcFlag,l=h===void 0?0:h,p=t.sweepFlag,g=p===void 0?0:p,b=[];if(s===0||a===0)return[];var d=Math.sin(u*Te/360),x=Math.cos(u*Te/360),w=x*(e-i)/2+d*(r-n)/2,A=-d*(e-i)/2+x*(r-n)/2;if(w===0&&A===0)return[];s=Math.abs(s),a=Math.abs(a);var S=Math.pow(w,2)/Math.pow(s,2)+Math.pow(A,2)/Math.pow(a,2);S>1&&(s*=Math.sqrt(S),a*=Math.sqrt(S));var k=Ss(e,r,i,n,s,a,l,g,d,x,w,A),O=As(k,4),F=O[0],T=O[1],P=O[2],E=O[3],C=Math.abs(E)/(Te/4);Math.abs(1-C)<1e-7&&(C=1);var $=Math.max(Math.ceil(C),1);E/=$;for(var X=0;X<$;X++)b.push(ws(P,E)),P+=E;return b.map(function(Y){var _=nt(Y[0],s,a,x,d,F,T),U=_.x,J=_.y,ee=nt(Y[1],s,a,x,d,F,T),he=ee.x,j=ee.y,V=nt(Y[2],s,a,x,d,F,T),G=V.x,oe=V.y;return{x1:U,y1:J,x2:he,y2:j,x:G,y:oe}})};function Lr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Cs=ks,st={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Rs=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function ks(t){var e=[];return t.replace(Rs,function(r,i,n){var s=i.toLowerCase();for(n=Is(n),s=="m"&&n.length>2&&(e.push([i].concat(n.splice(0,2))),s="l",i=i=="m"?"l":"L");;){if(n.length==st[s])return n.unshift(i),e.push(n);if(n.length<st[s])throw new Error("malformed path data");e.push([i].concat(n.splice(0,st[s])))}}),e}var Ts=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function Is(t){var e=t.match(Ts);return e?e.map(Number):[]}const js=Lr(Cs);var Os=Es;function Es(t){var e=0,r=0,i=0,n=0;return t.map(function(s){s=s.slice();var a=s[0],o=a.toUpperCase();if(a!=o)switch(s[0]=o,a){case"a":s[6]+=i,s[7]+=n;break;case"v":s[1]+=n;break;case"h":s[1]+=i;break;default:for(var u=1;u<s.length;)s[u++]+=i,s[u++]+=n}switch(o){case"Z":i=e,n=r;break;case"H":i=s[1];break;case"V":n=s[1];break;case"M":i=e=s[1],n=r=s[2];break;default:i=s[s.length-2],n=s[s.length-1]}return s})}const Ps=Lr(Os);function Ls(t){const e=js(t),r=Ps(e);let i,n=0,s=0,a=0,o=0,u,h,l=0,p=0;const g=[];for(let b=0;b<r.length;b++){let d=r[b];const x=d[0];switch(x){case"M":n=d[1],s=d[2];break;case"H":d=["L",d[1],s];break;case"V":d=["L",n,d[1]];break;case"S":{let w=l,A=p;(i==="C"||i=="S")&&(w+=w-a,A+=A-o),d=["C",w,A,d[1],d[2],d[3],d[4]]}break;case"T":i==="Q"||i=="T"?(u=l*2-u,h=p*2-h):(u=l,h=p),d=["Q",u,h,d[1],d[2]];break;case"Q":u=d[1],h=d[2];break;case"A":{const w=Ms({px:l,py:p,cx:d[6],cy:d[7],rx:d[1],ry:d[2],xAxisRotation:d[3],largeArcFlag:d[4],sweepFlag:d[5]});if(!w.length)continue;for(const[A,S]of w.entries())d=["C",S.x1,S.y1,S.x2,S.y2,S.x,S.y],A<w.length-1&&g.push(d);d=d}break;case"Z":d=["L",n,s];break}i=x,l=d[d.length-2],p=d[d.length-1],["C","Q","A"].indexOf(x)>-1?(a=d[d.length-4],o=d[d.length-3]):(a=l,o=p),g.push(d)}return g}/** Code to "flatten" quadratic and cubic Bézier curves to polylines.
|
|
6
6
|
*
|
|
7
7
|
* All code in this module is based on JavaScript code by Raph Levien, published on his blog at
|
|
8
8
|
* https://raphlinus.github.io/.
|