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.
@@ -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 w=S.state[o];if(w==null)return;JSON.stringify(i.getState())!==JSON.stringify(w)&&b(w);return}i.dispatchFromDevtools&&typeof i.dispatch=="function"&&i.dispatch(S)});case"DISPATCH":switch(x.payload.type){case"RESET":return b(h),o===void 0?l==null?void 0:l.init(i.getState()):l==null?void 0:l.init(Ue(u.name));case"COMMIT":if(o===void 0){l==null||l.init(i.getState());return}return l==null?void 0:l.init(Ue(u.name));case"ROLLBACK":return ct(x.state,S=>{if(o===void 0){b(S),l==null||l.init(i.getState());return}b(S[o]),l==null||l.init(Ue(u.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return ct(x.state,S=>{if(o===void 0){b(S);return}JSON.stringify(i.getState())!==JSON.stringify(S[o])&&b(S[o])});case"IMPORT_STATE":{const{nextLiftedState:S}=x.payload,w=(A=S.computedStates.slice(-1)[0])==null?void 0:A.state;if(!w)return;b(o===void 0?w:w[o]),l==null||l.send(null,S);return}case"PAUSE_RECORDING":return g=!g}return}}),h},ls=us,ct=(e,t)=>{let r;try{r=JSON.parse(e)}catch(n){console.error("[zustand devtools middleware] Could not parse the received json",n)}r!==void 0&&t(r)},fs=e=>(t,r,n)=>{const i=n.subscribe;return n.subscribe=(s,a,o)=>{let u=s;if(a){const d=(o==null?void 0:o.equalityFn)||Object.is;let l=s(n.getState());u=p=>{const g=s(p);if(!d(l,g)){const b=l;a(l=g,b)}},o!=null&&o.fireImmediately&&a(l,l)}return i(u)},e(t,r,n)},ps=fs,ds=(e={},t)=>{switch(t.type){case Sr:return{...e,[t.payload.id]:t.payload.type};case wr:return{...e,...t.payload.mapping};default:return e}};function ut(e,t,r,n){return!(!e[r]||!e[r][t]||!e[r][t][n]||!Array.isArray(e[r][t][n]))}function hs(e,t){const r={},n=[];for(const[i,s]of Object.entries(e||{})){n.push(i);const a=(t||{})[i];if(!a||a.length===0){r[i]=s;continue}r[i]=a}for(const[i,s]of Object.entries(t||{}))n.indexOf(i)===-1&&(r[i]=s);return r}function I(e){return e.payload}function lt(e,t){return typeof e>"u"?t:e}const vs=(e=Or(),t)=>{var r;const n=(i,s)=>({...e,[I(t).type]:{...e[I(t).type],[I(t).id]:{...i,...s}}});switch(t.type){case hr:{if(!e[I(t).type]||!e[I(t).type][I(t).id])return e;const i=e[I(t).type][I(t).id];return typeof i=="string"?e:n(i,{[I(t).key]:I(t).value})}case vr:{if(!ut(e,I(t).id,I(t).type,I(t).key))return e;const i=e[I(t).type][I(t).id];if(typeof i=="string")return e;const s=Array.from(i[I(t).key]),[a]=s.splice(I(t).startIndex,1);return s.splice(I(t).endIndex,0,a),n(i,{[I(t).key]:s})}case dr:{const i=Object.keys(I(t).entities),s={...e};for(const a of i){const o=I(t).entities[a],u={...e[a]||{}};let d=!1;const l=Object.keys(o||{})||[];if(o&&l){for(const p of l)d=!0,u[p]=e[a][p]?hs(e[a][p],o[p]):o[p];d&&(s[a]=u)}}return s}case yr:{if(!ut(e,I(t).id,I(t).type,I(t).key))return e;const i=e[I(t).type][I(t).id],s=Array.from(i[I(t).key]);return s.splice(lt(I(t).index,s.length+1),0,I(t).reference),n(i,{[I(t).key]:s})}case gt:case gr:{if(!ut(e,I(t).id,I(t).type,I(t).key))return e;const i=e[I(t).type][I(t).id],s=Array.from(i[I(t).key]),a=lt(I(t).index,s.findIndex(o=>o&&o.id===I(t).reference.id));return a===-1||((r=s[a])==null?void 0:r.id)!==I(t).reference.id?e:(t.type===gt?s.splice(a,1,I(t).reference):s.splice(a,1),n(i,{[I(t).key]:s}))}case mr:{const i=e[I(t).type][I(t).id];if(!i)return e;const s=Array.from(i.metadata||[]),a=I(t);return s.splice(lt(t.payload.beforeIndex,s.length+1),0,{label:a.label,value:a.label}),n(i,{metadata:s})}case br:{const i=e[I(t).type][I(t).id];if(typeof i=="string"||!i)return e;const s=Array.from(i.metadata||[]),[a]=s.splice(I(t).startIndex,1);return s.splice(I(t).endIndex,0,a),n(i,{metadata:s})}case mt:case xr:{const i=e[I(t).type][I(t).id],s=Array.from(i.metadata||[]),a=I(t).atIndex;return typeof a>"u"||a===-1||!s[a]?e:(t.type===mt?s.splice(a,1,{label:I(t).label,value:I(t).value}):s.splice(a,1),n(i,{metadata:s}))}default:return e}},ys=(e={},t)=>{switch(t.type){case kr:case Zi:return{...e,[t.payload.id]:{requestUri:t.payload.id,loadingState:Ir,uriMismatch:!1,resourceUri:t.payload.id}};case jr:return{...e,[t.payload.requestId]:{...e[t.payload.requestId]||{},uriMismatch:!0,resourceUri:t.payload.actualId},[t.payload.actualId]:{requestUri:t.payload.requestId,loadingState:e[t.payload.requestId].loadingState,uriMismatch:!0,resourceUri:t.payload.actualId}};case Tr:return{...e,[t.payload.id]:{...e[t.payload.id]||{},loadingState:xt,error:t.payload.message}};case Er:return{...e,[t.payload.id]:{...e[t.payload.id]||{},loadingState:bt,error:void 0}}}return e},gs=(e={},t)=>{const{id:r,updateValue:n,value:i,meta:s,key:a}=t&&t.payload||{};switch(t.type){case Cr:return{...e,[r]:{...e[r]||{},[s]:{...e[r]?e[r][s]||{}:{},[a]:i}}};case Mr:return{...e,[r]:{...e[r]||{},[s]:{...e[r]?e[r][s]||{}:{},[a]:e[r]&&e[r][s]?n(e[r][s][a]):n(void 0)}}};case Rr:return e[r]&&e[r][s]&&e[r][s][a]?{...e,[r]:{...e[r]||{},[s]:{...e[r]?e[r][s]||{}:{},[a]:void 0}}}:e;default:return e}};function Lr(e={}){const t=Object.keys(e);return function(r={},n){let i=!1;const s={};for(let a=0;a<t.length;a++){const o=t[a];s[o]=e[o](r[o],n),i=i||s[o]!==r[o]}return i?s:r}}function ms(e){return(t,r)=>r&&r.type===kt?r.payload.actions.reduce(e,t):r&&r.type===rs?{...t,iiif:{...t.iiif,...r.payload.state}}:e(t,r)}const xs=Lr({mapping:ds,entities:vs,requests:ys,meta:gs});function bs(){return{iiif:{entities:Or(),meta:{},mapping:{},requests:{}}}}function As(e={}){const{enableDevtools:t=!1,iiifStoreName:r="iiif",defaultState:n=bs(),customReducers:i={}}=e,s=ms(Lr({[r]:xs,...i}));return ss(ps(ls(os(s,n),{enabled:t})))}function Ss(e){return{all:e=e||new Map,on:function(t,r){var n=e.get(t);n?n.push(r):e.set(t,[r])},off:function(t,r){var n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var n=e.get(t);n&&n.slice().map(function(i){i(r)}),(n=e.get("*"))&&n.slice().map(function(i){i(t,r)})}}}function z(e,t,r,n=!0){t[we]=t[we]||[],t[we].push(e);const i=new Map;Object.defineProperty(t,e,{enumerable:n,get(){if(typeof t[xe][e]>"u")return;const s=t[xe][e];if(!s)return s;const a=r.get(t[xe][e],{parent:this.id?{id:this.id,type:this.type}:void 0});return i.has(a)||(i.clear(),i.set(a,be(a,r))),i.get(a)},set(s){t[xe][e]!==s&&(this[me]?r.modifyEntityField({id:this.id,type:this.type},e,Fr(s)):this[xe][e]=s)}})}const xe=Symbol.for("_refs_"),me=Symbol.for("_reactive_"),we=Symbol.for("_defined_"),er=Symbol.for("_parent_");function ws(e,t=!1,r){const n={id:"",type:"unknown",[we]:[],[xe]:{},[er]:r||null,[me]:null,is(i){return typeof i=="string"?this.id===i:i.id?i.id===this.id:!1},reactive(){if(!this[me])return this[me]=this.subscribe(()=>this.refresh(),!0),()=>{this.unreactive()}},refresh(){if(this.id){const i=this.unwrap();for(const s of Object.keys(i||{}))this[we].includes(s)?this[xe][s]=i[s]:this[s]=i[s]}},unreactive(){this[me]&&(this[me](),this[me]=null)},unwrap(){if(!this.id)throw new Error("Invalid object");const i=this[er];return e.get(this.id,{parent:i?{id:i,type:"unknown"}:void 0})},toPresentation3(){return e.toPresentation3(this.unwrap())},toPresentation2(){return e.toPresentation2(this.unwrap())},valueOf(){return this.unwrap()},toJSON(){const i=this;return{...i,items:i.items,annotations:i.annotations,structures:i.structures,seeAlso:i.seeAlso,service:i.service,services:i.services,rendering:i.rendering,partOf:i.partOf,start:i.start,supplementary:i.supplementary,homepage:i.homepage,thumbnail:i.thumbnail,placeholderCanvas:i.placeholderCanvas,accompanyingCanvas:i.accompanyingCanvas,provider:i.provider}},subscribe(i,s=!0){return e.subscribe(()=>this.id?e.get(this.id):null,i,s)}};return z("items",n,e),z("annotations",n,e),z("structures",n,e),z("seeAlso",n,e),z("rendering",n,e),z("partOf",n,e),z("start",n,e,!1),z("supplementary",n,e),z("homepage",n,e),z("thumbnail",n,e),z("placeholderCanvas",n,e,!1),z("accompanyingCanvas",n,e,!1),z("provider",n,e),z("body",n,e),z("logo",n,e),n}function Cs(e){return!!e[we]}function Fr(e){return Array.isArray(e)?e.map(t=>Fr(t)):!e||!e.type?e:{id:e.id,type:e.type}}function be(e,t,r=!1,n){if(Array.isArray(e))return e.map(o=>be(o,t,r));if(!e||!e.type||!e.id)return e;const i=ws(t,r),s=Object.create(i),a=Object.assign(s,e);return r&&a.reactive(),a}function tr(e){switch(e){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 e}let wt=class{constructor(t,r){pe(this,"options"),pe(this,"store"),pe(this,"emitter"),pe(this,"isBatching",!1),pe(this,"batchQueue",[]),pe(this,"remoteFetcher"),pe(this,"staticFetcher"),pe(this,"defaultFetcher",n=>fetch(n).then(i=>i.json())),this.options=Object.assign({reducers:{},customFetcher:this.defaultFetcher,enableDevtools:!0},t||{}),this.store=r||As({customReducers:this.options.reducers,defaultState:this.options.defaultState,enableDevtools:this.options.enableDevtools}),this.emitter=Ss(),this.remoteFetcher=Zt(this,this.options.customFetcher),this.staticFetcher=Zt(this,(n,i)=>i)}batch(t){this.isBatching=!0;try{t(this),this.isBatching=!1,this.dispatch(At({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}async asyncBatch(t){this.isBatching=!0;try{await t(this),this.isBatching=!1,this.dispatch(At({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}modifyEntityField(t,r,n){this.dispatch(Wi.modifyEntityField({id:t.id,type:t.type,key:r,value:n}))}dispatch(t){if(this.isBatching)this.batchQueue.push(t);else{if(t.type===kt){for(const i of t.payload.actions)this.emitter.emit(i.type,{action:i,state:this.store.getState()});this.store.dispatch(t);const n=this.getState();for(const i of t.payload.actions)this.emitter.emit(`after:${i.type}`,{action:i,state:n});return}this.emitter.emit(t.type,{action:t,state:this.store.getState()}),this.store.dispatch(t);const r=this.store.getState();this.emitter.emit(`after:${t.type}`,{action:t,state:r});return}}on(t,r){return this.emitter.on(t,r),()=>{this.emitter.off(t,r)}}serialize(t,r){return W.serialize(this.getState().iiif,t,r)}toPresentation2(t){return this.serialize(t,W.serializeConfigPresentation2)}toPresentation3(t){return this.serialize(t,W.serializeConfigPresentation3)}hydrate(t,r,n={}){return this.get(t,r,{...n,skipSelfReturn:!1})}get(t,r,n={}){typeof r!="string"&&(n=r||{},r=void 0);const{skipSelfReturn:i=!0}=n||{};let s=n.parent?typeof n.parent=="string"?n.parent:n.parent.id:void 0;if(Array.isArray(t))return t.map(p=>this.get(p,n));const a=this.getState();if(W.isSpecificResource(t)&&!n.preserveSpecificResources&&(t=t.source),typeof t=="string"){const p=tr(r||a.iiif.mapping[t]);if(!p)return i?null:{id:t,type:"unknown"};t={id:t,type:p}}if(t&&t.partOf&&!s&&!n.skipPartOfCheck){const p=Array.isArray(t.partOf)?t.partOf[0]:t.partOf;p&&(typeof p=="string"&&(s=p),typeof p.id=="string"&&(s=p.id))}const o=tr(r||(t==null?void 0:t.type)),u=t==null?void 0:t.id,d=a.iiif.entities[o];if(!d){const p=a.iiif.requests[u];return p&&p.resourceUri!==u?this.get(p.resourceUri,n):i?null:t}const l=d[t.id];if(l&&l[W.HAS_PART]){const p=l[W.HAS_PART].find(g=>s?g[W.PART_OF]===s:g[W.PART_OF]===l.id);return W.frameResource(l,p)}return d[t.id]||(i?null:t)}select(t){return t(this.getState())}getStore(){return this.store}getState(){return this.store.getState()}deep(t,r){if(typeof t>"u")return this.get(r,{skipSelfReturn:!1});if(typeof t=="function")try{const i=t(this.get(r,{skipSelfReturn:!1})),s=a=>this.deep(a,i);return s.size=Array.isArray(i)?i.length:1,s}catch{const i=s=>this.deep(s,void 0);return i.size=0,i}const n=i=>this.deep(i,t);return n.size=Array.isArray(t)?t.length:1,n}loadManifest(t,r){const n=typeof t=="string"?t:t.id;return this.load(n,r)}loadCollection(t,r){const n=typeof t=="string"?t:t.id;return this.load(n,r)}load(t,r){const n=typeof t=="string"?t:t.id;return r?this.staticFetcher(n,r):this.remoteFetcher(n)}areInputsEqual(t,r){return Kt(t,r)}subscribe(t,r,n){return typeof n>"u"&&(typeof r>"u"||r===!1||r===!0)&&(n=r,r=t,t=i=>i),this.store.subscribe(t,i=>r(i,this),{equalityFn:Kt,fireImmediately:!n})}async ensureLoaded(t){const r=typeof t=="string"?t:t.id;this.requestStatus(r)||await this.load(r)}requestStatus(t){return this.select(r=>r.iiif.requests[t])}getResourceMeta(t,r){const n=this.getState().iiif.meta[t];if(n)return r?n[r]:n}getObject(t,r,n={}){const{reactive:i,...s}=n;return be(this.get(t,r,s),this,i)}async loadObject(t,r){return be(await this.load(t,r),this)}async loadManifestObject(t,r){return be(await this.loadManifest(t,r),this)}async loadCollectionObject(t,r){return be(await this.loadCollection(t,r),this)}wrapObject(t){return be(this.get(t,{skipSelfReturn:!1}),this)}isWrapped(t){return Cs(t)}setMetaValue([t,r,n],i){this.dispatch(typeof i=="function"?Gt.setMetaValueDynamic({id:t,meta:r,key:n,updateValue:i}):Gt.setMetaValue({id:t,meta:r,key:n,value:i}))}};function Ms(){return typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}function $r(e){const t=Ms();try{const n=t.IIIF_VAULT;if(n)return n}catch{}const r=new wt(e);try{t.IIIF_VAULT=r}catch{}return r}const $e=v.createContext({vault:null,setVaultInstance:e=>{}});function Tt({vault:e,vaultOptions:t,useGlobal:r,resources:n,children:i}){const[s,a]=v.useState(()=>e||(r?$r(t):t?new wt(t):new wt));return m.jsx($e.Provider,{value:{vault:s,setVaultInstance:a},children:m.jsx(he,{value:n||{},children:i})})}const V=()=>{const{vault:e}=v.useContext($e);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};function jt(e,{noCache:t=!1}={}){const r=typeof e=="string"?e:e.id,n=V(),[i,s]=v.useState(r),[a,o]=v.useState(void 0),u=v.useMemo(()=>n.get(r,{skipSelfReturn:!0})||void 0,[r,n]),[d,l]=v.useState(u);return v.useEffect(()=>{(async()=>{try{const p=u&&!t?u:await n.load(r),g=p?p.id||p["@id"]:null;p&&i!==g&&s(g),l(p)}catch(p){o(p)}})()},[r,t]),{isLoaded:!!d,id:i,requestId:r,error:a,resource:d,cached:!!(d&&d===u)}}function Dr(e,t){const{id:r,isLoaded:n,error:i,resource:s,requestId:a,cached:o}=jt(e,t);return{id:r,isLoaded:n,error:i,manifest:s,requestId:a,cached:o}}function qr({manifest:e,children:t}){return m.jsx(he,{value:{manifest:e},children:t})}function Ke({canvas:e,children:t}){return m.jsx(he,{value:{canvas:e},children:t})}function U(e,t=[]){const r=V(),[n,i]=v.useState(()=>e(r.getState(),r));return v.useEffect(()=>r.subscribe(s=>e(s,r),s=>{i(s)},!1),t),n}const De=v.createContext([]);function Et(){const e=v.useContext(De);return U(t=>e.map(r=>t.iiif.entities.Canvas[r]).filter(Boolean),[e])}function ve(e={},t=[]){const{id:r,selector:n}=e,i=se();V();const s=r||i.manifest,a=U(o=>s?o.iiif.entities.Manifest[s]:void 0,[s]);return v.useMemo(()=>{if(a)return n?n(a):a},[a,n,...t])}function Vr({range:e,children:t}){return m.jsx(he,{value:{range:e},children:t})}function _r(e,t){for(const r of t.items){if(r.type==="Canvas")return r;if(r.type==="SpecificResource")return r.source;if(r.type==="Range"){const n=_r(e,e.get(r));if(n)return n}}return null}function Pt(e,t){var n;const r=[];for(const i of t.items)if(i.type==="SpecificResource"&&((n=i.source)==null?void 0:n.type)==="Canvas"&&(i.source.id.indexOf("#")!==-1?r.push({id:i.source.id.split("#")[0],type:"Canvas"}):r.push(i.source)),i.type==="Range"&&r.push(...Pt(e,e.get(i))),i.type==="SpecificResource"){const s=typeof i.source=="string"?i.source:i.source.id;r.push({id:s,type:"Canvas"})}return r}function Rs(e,t,r){for(const n of t.structures){const i=Ot(e,e.get(n),r);if(i)return i}return null}function Ot(e,t,r){var n,i,s;for(const a of t.items){const o=(i=(n=a==null?void 0:a.source)==null?void 0:n.id)==null?void 0:i.split("#")[0];if(a.type==="SpecificResource"&&a.source===r||a.type==="SpecificResource"&&((s=a.source)==null?void 0:s.type)==="Canvas"&&r===o)return t;if(a.type==="Range"){const u=Ot(e,e.get(a),r);if(u)return u}}return null}function Is(e,t,r,n=!1){const i=t.behavior,s=r?e.get(r):null;if(!s)return[];const a=s.behavior,o=n?!1:i.includes("paged"),u=o?!1:i.includes("continuous"),d=o||u?!1:i.includes("individuals"),l=a.includes("facing-pages"),p=a.includes("non-paged");if(l||p||d||n)return[{id:s.id,type:"Canvas"}];const[g,b]=Lt(e,t);if(u)return g;const h=g.findIndex(x=>x.id===r);if(h===-1)return[];for(const x of b)if(x.includes(h))return x.map(A=>g[A]);return[{id:s.id,type:"Canvas"}]}function Lt(e,t,{disablePaging:r,skipNonPaged:n}={}){const i=t.behavior,s=i.includes("paged"),a=s?!1:i.includes("continuous"),o=s||a?!1:i.includes("individuals"),u=t.type==="Manifest"?t.items:Pt(e,t);if(a)return[u,[u.map((h,x)=>x)]];if(o||!s||r)return[u,u.map((h,x)=>[x])];const d=[];let l=[];const p=()=>{l.length&&(d.push([...l]),l=[])};let g=0,b=!1;for(let h=0;h<u.length;h++){const x=e.get(u[h]);if(x.behavior.includes("non-paged")){h===g&&g++,n||(p(),d.push([h]),p());continue}if(h===g||x.behavior.includes("facing-pages")){l.length&&(b=!0),p(),d.push([h]),p();continue}if(l.push(h),b){p(),b=!1;continue}l.length>1&&p()}return l.length&&p(),[u,d]}function Ur(e={},t=[]){const{id:r,selector:n}=e,i=se(),s=r||i.range,a=U(o=>s?o.iiif.entities.Range[s]:void 0,[s]);return v.useMemo(()=>{if(a)return n?n(a):a},[a,n,...t])}function Hr({startCanvas:e,disablePaging:t}){var h;const r=V(),n=ve(),i=Ur(),[s,a]=v.useState(void 0),o=i||n;if(!o)throw new Error("Nothing selected");const[u,d]=v.useMemo(()=>Lt(r,o,{disablePaging:t}),[r,o]),l=v.useCallback(x=>{const A=d.findIndex(S=>S.includes(x));a(A===-1?0:A)},[u,d]),p=v.useCallback(x=>{const A=u.findIndex(S=>S.id===x);A!==-1?l(A):a(0)},[u,d]),g=v.useCallback(()=>{a(x=>x>=d.length?x:x+1)},[d]),b=v.useCallback(()=>{a(x=>x<=0?0:x-1)},[d]);return typeof s>"u"&&(e?p(e):a(0)),{visibleItems:((h=d[s])==null?void 0:h.map(x=>u[x].id))||[],cursor:s,items:u,sequence:d,setSequenceIndex:a,setCanvasIndex:l,setCanvasId:p,next:g,previous:b}}const ke=()=>{},qe=v.createContext({setCurrentCanvasId:ke,setCurrentCanvasIndex:ke,nextCanvas:ke,previousCanvas:ke,items:[],sequence:[],setSequenceIndex:ke,currentSequenceIndex:0});function Nr(e){const t=ve(),{cursor:r,visibleItems:n,next:i,sequence:s,items:a,setCanvasIndex:o,setCanvasId:u,previous:d,setSequenceIndex:l}=Hr({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),p=v.useMemo(()=>({sequence:s,items:a,setCurrentCanvasId:u,nextCanvas:i,previousCanvas:d,totalCanvases:a.length,setCurrentCanvasIndex:o,setSequenceIndex:l,currentSequenceIndex:r}),[s,a,u,i,d,a,o,l,r]);return t?m.jsx(qe.Provider,{value:p,children:m.jsx(De.Provider,{value:n,children:m.jsx(Ke,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."}))}function Br(e){const t=Dr(e.manifest);if(!t)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."});if(t.error)return m.jsx("div",{children:t.error.toString()});if(!t.isLoaded)return m.jsx("div",{children:"Loading..."});const r=m.jsx(Nr,{...e,children:e.children});return m.jsx(qr,{manifest:t.id,children:e.rangeId?m.jsx(Vr,{range:e.rangeId,children:r}):r})}function zr(){return v.useContext(qe)}function Wr(){return{VaultContext:v.useContext($e),ResourceContext:v.useContext(Je),SimpleViewerReactContext:v.useContext(qe),VisibleCanvasReactContext:v.useContext(De)}}function Qr(e){return m.jsx(Tt,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:m.jsx(De.Provider,{value:e.bridge.VisibleCanvasReactContext,children:m.jsx(qe.Provider,{value:e.bridge.SimpleViewerReactContext,children:e.children})})})}const te=function(e){return function(){const t={type:e,getType:()=>e,toString:()=>e};return(r,n)=>({...t,...r!==void 0&&{payload:r},...n!==void 0&&{meta:n}})}},ks="@iiif/IMPORT_ENTITIES",Ts="@iiif/MODIFY_ENTITY_FIELD",js="@iiif/REORDER_ENTITY_FIELD",Es="@iiif/ADD_REFERENCE",Ps="@iiif/UPDATE_REFERENCE",Os="@iiif/REMOVE_REFERENCE",Ls="@iiif/ADD_METADATA",Fs="@iiif/REMOVE_METADATA",$s="@iiif/UPDATE_METADATA",Ds="@iiif/REORDER_METADATA",qs=te(ks)(),Vs=te(Ts)(),_s=te(js)(),Us=te(Es)(),Hs=te(Os)(),Ns=te(Ps)(),Bs=te(Ls)(),zs=te($s)(),Ws=te(Fs)(),Qs=te(Ds)(),ft={importEntities:qs,modifyEntityField:Vs,reorderEntityField:_s,addReference:Us,removeReference:Hs,updateReference:Ns,addMetadata:Bs,removeMetadata:Ws,updateMetadata:zs,reorderMetadata:Qs};function Yr(){const t=V().getStore();return v.useMemo(()=>r=>t.dispatch(r),[t])}function rr(e){return typeof e!="string"&&e&&e.bindToVault}function Gr(){const e=V(),t=v.useRef([]),r=Yr(),n=v.useMemo(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);v.useLayoutEffect(()=>{const o={id:n,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};r(ft.importEntities({entities:{AnnotationPage:{[o.id]:o}}}))},[n]);const i=U(o=>n?o.iiif.entities.AnnotationPage[n]:null,[n]),s=v.useCallback((o,u)=>{if(n){if(rr(o)){const p=o;p.__vault||p.bindToVault(e),o=typeof p.source=="string"?p.source:p.source.id,t.current[o]=p}else typeof o!="string"&&(o=o.id);const d=e.get({id:n,type:"AnnotationPage"}),l=e.get({id:o,type:"Annotation"});d&&l&&(d.items.find(p=>p.id===l.id)||r(ft.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"},index:u})))}},[n]),a=v.useCallback(o=>{n&&(rr(o)?o=typeof o.source=="string"?o.source:o.source.id:typeof o!="string"&&(o=o.id),t.current[o]&&t.current[o].beforeRemove(),e.get({id:n,type:"AnnotationPage"})&&r(ft.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"}})))},[n]);return[i,{addAnnotation:s,removeAnnotation:a}]}const Jr=v.createContext(null);function Kr(){const e=v.useContext(Jr);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Zr({children:e}){const[t,{addAnnotation:r,removeAnnotation:n}]=Gr();return m.jsx(Jr.Provider,{value:v.useMemo(()=>({fullPage:t,addAnnotation:r,removeAnnotation:n}),[t]),children:e})}function Ys({width:e,style:t,height:r,error:n,resetErrorBoundary:i}){return m.jsxs("div",{style:{width:e,height:r,minHeight:500,...t||{},background:"#f9f9f9"},children:[m.jsx("h3",{children:"Error occurred"}),m.jsx("p",{children:n.message}),m.jsx("button",{onClick:i,children:"Reset"})]})}const Ze=v.createContext(null);function Xr(){return v.useContext(Ze)}const en=v.createContext(()=>{}),tn=v.createContext(()=>{});function Ie(e,t,r,n,i=[]){const s=v.useContext(e==="portal"?tn:en);v.useEffect(()=>(e!=="none"&&s(t,r,n),()=>{s(t,null)}),[t,e,s,...i])}function re(e={},t=[]){const{id:r,selector:n}=e,i=se(),s=r||i.canvas,a=U(o=>s?o.iiif.entities.Canvas[s]:void 0,[s]);return v.useMemo(()=>{if(a)return n?n(a):a},[a,n,...t])}const rn=v.createContext(()=>{});function Gs(e){const t=re(),r=v.useContext(rn);v.useEffect(()=>t&&t.id?(r(t.id,e),()=>r(t.id,-1)):()=>{},[t,e])}function Js({children:e,errorFallback:t,outerContainerProps:r={},worldScale:n,...i}){const[s,a]=v.useState(),o=Wr(),u=t||Ys,[d,l]=v.useState({}),p=Object.entries(d),[g,b]=v.useState({}),h=Object.entries(g),[x,A]=v.useState({}),S=v.useMemo(()=>n||Math.max(...Object.values(x)),[x]),w=v.useMemo(()=>({maxOverZoom:S||1}),[S]),M=v.useCallback((k,O)=>{A(P=>{if(O===-1){const{[k]:R,...$}=P;return $}return{...P,[k]:O}})},[]),T=v.useCallback((k,O,P)=>{l(({[k]:R,...$})=>O?{...$,[k]:{element:O,props:P}}:$)},[]),F=v.useCallback((k,O,P)=>{b(({[k]:R,...$})=>O?{...$,[k]:{element:O,props:P}}:$)},[]);return m.jsxs(Oi,{resetKeys:[],fallbackRender:k=>m.jsx(u,{...i,...k}),children:[m.jsx(Re.AtlasAuto,{...i,containerProps:{style:{position:"relative"},...i.containerProps||{}},htmlChildren:m.jsx(m.Fragment,{children:p.map(([k,{element:O,props:P}])=>m.jsx(v.Fragment,{children:m.jsx(O,{...P||{}})},k))}),onCreated:k=>{a(k),i.onCreated&&i.onCreated(k)},runtimeOptions:w,children:m.jsx(Ze.Provider,{value:s,children:m.jsx(rn.Provider,{value:M,children:m.jsx(en.Provider,{value:T,children:m.jsx(tn.Provider,{value:F,children:m.jsx(Qr,{bridge:o,children:m.jsx(Re.ModeContext.Provider,{value:i.mode||"explore",children:m.jsx(Zr,{children:e})})})})})})})}),m.jsx("div",{children:h.map(([k,{element:O,props:P}])=>m.jsx(v.Fragment,{children:m.jsx(O,{...P||{}})},k))})]})}const He={},nn={get(e){return e},setMetaValue([e,t,r],n){const i=nn.getResourceMeta(e,t),s=i?i[r]:void 0,a=typeof n=="function"?n(s):n;He[e]={...He[e]||{},[t]:{...(He[e]||{})[t]||{},[r]:a}}},getResourceMeta:(e,t)=>{const r=He[e];if(r)return t?r[t]:r}};function sn(e=nn){return{addEventListener(t,r,n,i){if(t)return e.setMetaValue([t.id,"eventManager",r],s=>{const a=s||[];for(const o of a)if(o.callback===n)return a;return[...a,{callback:n,scope:i}]}),n},removeEventListener(t,r,n){t&&e.setMetaValue([t.id,"eventManager",r],i=>(i||[]).filter(s=>s.callback!==n))},getListenersAsProps(t,r){const n=typeof t=="string"?{id:t}:t;if(!n||!n.id)return{};const i=e.getResourceMeta(n.id,"eventManager"),s={};if(i&&n)for(const a of Object.keys(i))s[a]=o=>{const u=e.get(n);for(const{callback:d,scope:l}of i[a]||[])(!l||r&&l.indexOf(r)!==-1)&&d(o,u)};return s}}}function Ft(e,t){const r=V(),n=v.useMemo(()=>sn(r),[r]),i=U(()=>e&&e.id?r.getResourceMeta(e.id,"eventManager"):null,[e]);return v.useMemo(()=>e?n.getListenersAsProps(e,t):{},[i,e,r,t])}const Ne={},an={get(e){return e},setMetaValue([e,t,r],n){const i=an.getResourceMeta(e,t),s=i?i[r]:void 0,a=typeof n=="function"?n(s):n;Ne[e]={...Ne[e]||{},[t]:{...(Ne[e]||{})[t]||{},[r]:a}}},getResourceMeta:(e,t)=>{const r=Ne[e];if(r)return t?r[t]:r}};function $t(e=an){return{applyStyles(t,r,n){const i=typeof t=="string"?t:t.id;return e.setMetaValue([i,"styles",r],n)},getAppliedStyles(t){const r=typeof t=="string"?t:t.id;return e.getResourceMeta(r,"styles")}}}function Fe(e,t){const r=V(),n=v.useMemo(()=>$t(r),[r]);return U(()=>{if(!e)return null;const i=n.getAppliedStyles(e.id);return i?t?i[t]:i:void 0},[e,t])}var Ks=Object.defineProperty,Zs=(e,t,r)=>t in e?Ks(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,We=(e,t,r)=>(Zs(e,typeof t!="symbol"?t+"":t,r),r),Xs=function(){function e(t,r){var n=[],i=!0,s=!1,a=void 0;try{for(var o=t[Symbol.iterator](),u;!(i=(u=o.next()).done)&&(n.push(u.value),!(r&&n.length===r));i=!0);}catch(d){s=!0,a=d}finally{try{!i&&o.return&&o.return()}finally{if(s)throw a}}return n}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),je=Math.PI*2,pt=function(e,t,r,n,i,s,a){var o=e.x,u=e.y;o*=t,u*=r;var d=n*o-i*u,l=i*o+n*u;return{x:d+s,y:l+a}},ea=function(e,t){var r=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),n=Math.cos(e),i=Math.sin(e),s=Math.cos(e+t),a=Math.sin(e+t);return[{x:n-i*r,y:i+n*r},{x:s+a*r,y:a-s*r},{x:s,y:a}]},nr=function(e,t,r,n){var i=e*n-t*r<0?-1:1,s=e*r+t*n;return s>1&&(s=1),s<-1&&(s=-1),i*Math.acos(s)},ta=function(e,t,r,n,i,s,a,o,u,d,l,p){var g=Math.pow(i,2),b=Math.pow(s,2),h=Math.pow(l,2),x=Math.pow(p,2),A=g*b-g*x-b*h;A<0&&(A=0),A/=g*x+b*h,A=Math.sqrt(A)*(a===o?-1:1);var S=A*i/s*p,w=A*-s/i*l,M=d*S-u*w+(e+r)/2,T=u*S+d*w+(t+n)/2,F=(l-S)/i,k=(p-w)/s,O=(-l-S)/i,P=(-p-w)/s,R=nr(1,0,F,k),$=nr(F,k,O,P);return o===0&&$>0&&($-=je),o===1&&$<0&&($+=je),[M,T,R,$]},ra=function(e){var t=e.px,r=e.py,n=e.cx,i=e.cy,s=e.rx,a=e.ry,o=e.xAxisRotation,u=o===void 0?0:o,d=e.largeArcFlag,l=d===void 0?0:d,p=e.sweepFlag,g=p===void 0?0:p,b=[];if(s===0||a===0)return[];var h=Math.sin(u*je/360),x=Math.cos(u*je/360),A=x*(t-n)/2+h*(r-i)/2,S=-h*(t-n)/2+x*(r-i)/2;if(A===0&&S===0)return[];s=Math.abs(s),a=Math.abs(a);var w=Math.pow(A,2)/Math.pow(s,2)+Math.pow(S,2)/Math.pow(a,2);w>1&&(s*=Math.sqrt(w),a*=Math.sqrt(w));var M=ta(t,r,n,i,s,a,l,g,h,x,A,S),T=Xs(M,4),F=T[0],k=T[1],O=T[2],P=T[3],R=Math.abs(P)/(je/4);Math.abs(1-R)<1e-7&&(R=1);var $=Math.max(Math.ceil(R),1);P/=$;for(var X=0;X<$;X++)b.push(ea(O,P)),O+=P;return b.map(function(Y){var _=pt(Y[0],s,a,x,h,F,k),H=_.x,J=_.y,ee=pt(Y[1],s,a,x,h,F,k),ge=ee.x,E=ee.y,N=pt(Y[2],s,a,x,h,F,k),G=N.x,ue=N.y;return{x1:H,y1:J,x2:ge,y2:E,x:G,y:ue}})};function on(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var na=sa,dt={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},ia=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function sa(e){var t=[];return e.replace(ia,function(r,n,i){var s=n.toLowerCase();for(i=oa(i),s=="m"&&i.length>2&&(t.push([n].concat(i.splice(0,2))),s="l",n=n=="m"?"l":"L");;){if(i.length==dt[s])return i.unshift(n),t.push(i);if(i.length<dt[s])throw new Error("malformed path data");t.push([n].concat(i.splice(0,dt[s])))}}),t}var aa=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function oa(e){var t=e.match(aa);return t?t.map(Number):[]}const ca=on(na);var ua=la;function la(e){var t=0,r=0,n=0,i=0;return e.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]+=n,s[7]+=i;break;case"v":s[1]+=i;break;case"h":s[1]+=n;break;default:for(var u=1;u<s.length;)s[u++]+=n,s[u++]+=i}switch(o){case"Z":n=t,i=r;break;case"H":n=s[1];break;case"V":i=s[1];break;case"M":n=t=s[1],i=r=s[2];break;default:n=s[s.length-2],i=s[s.length-1]}return s})}const fa=on(ua);function pa(e){const t=ca(e),r=fa(t);let n,i=0,s=0,a=0,o=0,u,d,l=0,p=0;const g=[];for(let b=0;b<r.length;b++){let h=r[b];const x=h[0];switch(x){case"M":i=h[1],s=h[2];break;case"H":h=["L",h[1],s];break;case"V":h=["L",i,h[1]];break;case"S":{let A=l,S=p;(n==="C"||n=="S")&&(A+=A-a,S+=S-o),h=["C",A,S,h[1],h[2],h[3],h[4]]}break;case"T":n==="Q"||n=="T"?(u=l*2-u,d=p*2-d):(u=l,d=p),h=["Q",u,d,h[1],h[2]];break;case"Q":u=h[1],d=h[2];break;case"A":{const A=ra({px:l,py:p,cx:h[6],cy:h[7],rx:h[1],ry:h[2],xAxisRotation:h[3],largeArcFlag:h[4],sweepFlag:h[5]});if(!A.length)continue;for(const[S,w]of A.entries())h=["C",w.x1,w.y1,w.x2,w.y2,w.x,w.y],S<A.length-1&&g.push(h);h=h}break;case"Z":h=["L",i,s];break}n=x,l=h[h.length-2],p=h[h.length-1],["C","Q","A"].indexOf(x)>-1?(a=h[h.length-4],o=h[h.length-3]):(a=l,o=p),g.push(h)}return g}/** Code to "flatten" quadratic and cubic Bézier curves to polylines.
5
+ `);const w=S.state[o];if(w==null)return;JSON.stringify(i.getState())!==JSON.stringify(w)&&b(w);return}i.dispatchFromDevtools&&typeof i.dispatch=="function"&&i.dispatch(S)});case"DISPATCH":switch(x.payload.type){case"RESET":return b(h),o===void 0?l==null?void 0:l.init(i.getState()):l==null?void 0:l.init(Ue(u.name));case"COMMIT":if(o===void 0){l==null||l.init(i.getState());return}return l==null?void 0:l.init(Ue(u.name));case"ROLLBACK":return ct(x.state,S=>{if(o===void 0){b(S),l==null||l.init(i.getState());return}b(S[o]),l==null||l.init(Ue(u.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return ct(x.state,S=>{if(o===void 0){b(S);return}JSON.stringify(i.getState())!==JSON.stringify(S[o])&&b(S[o])});case"IMPORT_STATE":{const{nextLiftedState:S}=x.payload,w=(A=S.computedStates.slice(-1)[0])==null?void 0:A.state;if(!w)return;b(o===void 0?w:w[o]),l==null||l.send(null,S);return}case"PAUSE_RECORDING":return g=!g}return}}),h},ls=us,ct=(e,t)=>{let r;try{r=JSON.parse(e)}catch(n){console.error("[zustand devtools middleware] Could not parse the received json",n)}r!==void 0&&t(r)},fs=e=>(t,r,n)=>{const i=n.subscribe;return n.subscribe=(s,a,o)=>{let u=s;if(a){const d=(o==null?void 0:o.equalityFn)||Object.is;let l=s(n.getState());u=p=>{const g=s(p);if(!d(l,g)){const b=l;a(l=g,b)}},o!=null&&o.fireImmediately&&a(l,l)}return i(u)},e(t,r,n)},ps=fs,ds=(e={},t)=>{switch(t.type){case Sr:return{...e,[t.payload.id]:t.payload.type};case wr:return{...e,...t.payload.mapping};default:return e}};function ut(e,t,r,n){return!(!e[r]||!e[r][t]||!e[r][t][n]||!Array.isArray(e[r][t][n]))}function hs(e,t){const r={},n=[];for(const[i,s]of Object.entries(e||{})){n.push(i);const a=(t||{})[i];if(!a||a.length===0){r[i]=s;continue}r[i]=a}for(const[i,s]of Object.entries(t||{}))n.indexOf(i)===-1&&(r[i]=s);return r}function I(e){return e.payload}function lt(e,t){return typeof e>"u"?t:e}const vs=(e=Or(),t)=>{var r;const n=(i,s)=>({...e,[I(t).type]:{...e[I(t).type],[I(t).id]:{...i,...s}}});switch(t.type){case hr:{if(!e[I(t).type]||!e[I(t).type][I(t).id])return e;const i=e[I(t).type][I(t).id];return typeof i=="string"?e:n(i,{[I(t).key]:I(t).value})}case vr:{if(!ut(e,I(t).id,I(t).type,I(t).key))return e;const i=e[I(t).type][I(t).id];if(typeof i=="string")return e;const s=Array.from(i[I(t).key]),[a]=s.splice(I(t).startIndex,1);return s.splice(I(t).endIndex,0,a),n(i,{[I(t).key]:s})}case dr:{const i=Object.keys(I(t).entities),s={...e};for(const a of i){const o=I(t).entities[a],u={...e[a]||{}};let d=!1;const l=Object.keys(o||{})||[];if(o&&l){for(const p of l)d=!0,u[p]=e[a][p]?hs(e[a][p],o[p]):o[p];d&&(s[a]=u)}}return s}case yr:{if(!ut(e,I(t).id,I(t).type,I(t).key))return e;const i=e[I(t).type][I(t).id],s=Array.from(i[I(t).key]);return s.splice(lt(I(t).index,s.length+1),0,I(t).reference),n(i,{[I(t).key]:s})}case gt:case gr:{if(!ut(e,I(t).id,I(t).type,I(t).key))return e;const i=e[I(t).type][I(t).id],s=Array.from(i[I(t).key]),a=lt(I(t).index,s.findIndex(o=>o&&o.id===I(t).reference.id));return a===-1||((r=s[a])==null?void 0:r.id)!==I(t).reference.id?e:(t.type===gt?s.splice(a,1,I(t).reference):s.splice(a,1),n(i,{[I(t).key]:s}))}case mr:{const i=e[I(t).type][I(t).id];if(!i)return e;const s=Array.from(i.metadata||[]),a=I(t);return s.splice(lt(t.payload.beforeIndex,s.length+1),0,{label:a.label,value:a.label}),n(i,{metadata:s})}case br:{const i=e[I(t).type][I(t).id];if(typeof i=="string"||!i)return e;const s=Array.from(i.metadata||[]),[a]=s.splice(I(t).startIndex,1);return s.splice(I(t).endIndex,0,a),n(i,{metadata:s})}case mt:case xr:{const i=e[I(t).type][I(t).id],s=Array.from(i.metadata||[]),a=I(t).atIndex;return typeof a>"u"||a===-1||!s[a]?e:(t.type===mt?s.splice(a,1,{label:I(t).label,value:I(t).value}):s.splice(a,1),n(i,{metadata:s}))}default:return e}},ys=(e={},t)=>{switch(t.type){case kr:case Zi:return{...e,[t.payload.id]:{requestUri:t.payload.id,loadingState:Ir,uriMismatch:!1,resourceUri:t.payload.id}};case jr:return{...e,[t.payload.requestId]:{...e[t.payload.requestId]||{},uriMismatch:!0,resourceUri:t.payload.actualId},[t.payload.actualId]:{requestUri:t.payload.requestId,loadingState:e[t.payload.requestId].loadingState,uriMismatch:!0,resourceUri:t.payload.actualId}};case Tr:return{...e,[t.payload.id]:{...e[t.payload.id]||{},loadingState:xt,error:t.payload.message}};case Er:return{...e,[t.payload.id]:{...e[t.payload.id]||{},loadingState:bt,error:void 0}}}return e},gs=(e={},t)=>{const{id:r,updateValue:n,value:i,meta:s,key:a}=t&&t.payload||{};switch(t.type){case Cr:return{...e,[r]:{...e[r]||{},[s]:{...e[r]?e[r][s]||{}:{},[a]:i}}};case Mr:return{...e,[r]:{...e[r]||{},[s]:{...e[r]?e[r][s]||{}:{},[a]:e[r]&&e[r][s]?n(e[r][s][a]):n(void 0)}}};case Rr:return e[r]&&e[r][s]&&e[r][s][a]?{...e,[r]:{...e[r]||{},[s]:{...e[r]?e[r][s]||{}:{},[a]:void 0}}}:e;default:return e}};function Lr(e={}){const t=Object.keys(e);return function(r={},n){let i=!1;const s={};for(let a=0;a<t.length;a++){const o=t[a];s[o]=e[o](r[o],n),i=i||s[o]!==r[o]}return i?s:r}}function ms(e){return(t,r)=>r&&r.type===kt?r.payload.actions.reduce(e,t):r&&r.type===rs?{...t,iiif:{...t.iiif,...r.payload.state}}:e(t,r)}const xs=Lr({mapping:ds,entities:vs,requests:ys,meta:gs});function bs(){return{iiif:{entities:Or(),meta:{},mapping:{},requests:{}}}}function As(e={}){const{enableDevtools:t=!1,iiifStoreName:r="iiif",defaultState:n=bs(),customReducers:i={}}=e,s=ms(Lr({[r]:xs,...i}));return ss(ps(ls(os(s,n),{enabled:t})))}function Ss(e){return{all:e=e||new Map,on:function(t,r){var n=e.get(t);n?n.push(r):e.set(t,[r])},off:function(t,r){var n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var n=e.get(t);n&&n.slice().map(function(i){i(r)}),(n=e.get("*"))&&n.slice().map(function(i){i(t,r)})}}}function z(e,t,r,n=!0){t[we]=t[we]||[],t[we].push(e);const i=new Map;Object.defineProperty(t,e,{enumerable:n,get(){if(typeof t[xe][e]>"u")return;const s=t[xe][e];if(!s)return s;const a=r.get(t[xe][e],{parent:this.id?{id:this.id,type:this.type}:void 0});return i.has(a)||(i.clear(),i.set(a,be(a,r))),i.get(a)},set(s){t[xe][e]!==s&&(this[me]?r.modifyEntityField({id:this.id,type:this.type},e,Fr(s)):this[xe][e]=s)}})}const xe=Symbol.for("_refs_"),me=Symbol.for("_reactive_"),we=Symbol.for("_defined_"),er=Symbol.for("_parent_");function ws(e,t=!1,r){const n={id:"",type:"unknown",[we]:[],[xe]:{},[er]:r||null,[me]:null,is(i){return typeof i=="string"?this.id===i:i.id?i.id===this.id:!1},reactive(){if(!this[me])return this[me]=this.subscribe(()=>this.refresh(),!0),()=>{this.unreactive()}},refresh(){if(this.id){const i=this.unwrap();for(const s of Object.keys(i||{}))this[we].includes(s)?this[xe][s]=i[s]:this[s]=i[s]}},unreactive(){this[me]&&(this[me](),this[me]=null)},unwrap(){if(!this.id)throw new Error("Invalid object");const i=this[er];return e.get(this.id,{parent:i?{id:i,type:"unknown"}:void 0})},toPresentation3(){return e.toPresentation3(this.unwrap())},toPresentation2(){return e.toPresentation2(this.unwrap())},valueOf(){return this.unwrap()},toJSON(){const i=this;return{...i,items:i.items,annotations:i.annotations,structures:i.structures,seeAlso:i.seeAlso,service:i.service,services:i.services,rendering:i.rendering,partOf:i.partOf,start:i.start,supplementary:i.supplementary,homepage:i.homepage,thumbnail:i.thumbnail,placeholderCanvas:i.placeholderCanvas,accompanyingCanvas:i.accompanyingCanvas,provider:i.provider}},subscribe(i,s=!0){return e.subscribe(()=>this.id?e.get(this.id):null,i,s)}};return z("items",n,e),z("annotations",n,e),z("structures",n,e),z("seeAlso",n,e),z("rendering",n,e),z("partOf",n,e),z("start",n,e,!1),z("supplementary",n,e),z("homepage",n,e),z("thumbnail",n,e),z("placeholderCanvas",n,e,!1),z("accompanyingCanvas",n,e,!1),z("provider",n,e),z("body",n,e),z("logo",n,e),n}function Cs(e){return!!e[we]}function Fr(e){return Array.isArray(e)?e.map(t=>Fr(t)):!e||!e.type?e:{id:e.id,type:e.type}}function be(e,t,r=!1,n){if(Array.isArray(e))return e.map(o=>be(o,t,r));if(!e||!e.type||!e.id)return e;const i=ws(t,r),s=Object.create(i),a=Object.assign(s,e);return r&&a.reactive(),a}function tr(e){switch(e){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 e}let wt=class{constructor(t,r){pe(this,"options"),pe(this,"store"),pe(this,"emitter"),pe(this,"isBatching",!1),pe(this,"batchQueue",[]),pe(this,"remoteFetcher"),pe(this,"staticFetcher"),pe(this,"defaultFetcher",n=>fetch(n).then(i=>i.json())),this.options=Object.assign({reducers:{},customFetcher:this.defaultFetcher,enableDevtools:!0},t||{}),this.store=r||As({customReducers:this.options.reducers,defaultState:this.options.defaultState,enableDevtools:this.options.enableDevtools}),this.emitter=Ss(),this.remoteFetcher=Zt(this,this.options.customFetcher),this.staticFetcher=Zt(this,(n,i)=>i)}batch(t){this.isBatching=!0;try{t(this),this.isBatching=!1,this.dispatch(At({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}async asyncBatch(t){this.isBatching=!0;try{await t(this),this.isBatching=!1,this.dispatch(At({actions:this.batchQueue}))}catch(r){throw this.batchQueue=[],this.isBatching=!1,r}this.batchQueue=[]}modifyEntityField(t,r,n){this.dispatch(Wi.modifyEntityField({id:t.id,type:t.type,key:r,value:n}))}dispatch(t){if(this.isBatching)this.batchQueue.push(t);else{if(t.type===kt){for(const i of t.payload.actions)this.emitter.emit(i.type,{action:i,state:this.store.getState()});this.store.dispatch(t);const n=this.getState();for(const i of t.payload.actions)this.emitter.emit(`after:${i.type}`,{action:i,state:n});return}this.emitter.emit(t.type,{action:t,state:this.store.getState()}),this.store.dispatch(t);const r=this.store.getState();this.emitter.emit(`after:${t.type}`,{action:t,state:r});return}}on(t,r){return this.emitter.on(t,r),()=>{this.emitter.off(t,r)}}serialize(t,r){return W.serialize(this.getState().iiif,t,r)}toPresentation2(t){return this.serialize(t,W.serializeConfigPresentation2)}toPresentation3(t){return this.serialize(t,W.serializeConfigPresentation3)}hydrate(t,r,n={}){return this.get(t,r,{...n,skipSelfReturn:!1})}get(t,r,n={}){typeof r!="string"&&(n=r||{},r=void 0);const{skipSelfReturn:i=!0}=n||{};let s=n.parent?typeof n.parent=="string"?n.parent:n.parent.id:void 0;if(Array.isArray(t))return t.map(p=>this.get(p,n));const a=this.getState();if(W.isSpecificResource(t)&&!n.preserveSpecificResources&&(t=t.source),typeof t=="string"){const p=tr(r||a.iiif.mapping[t]);if(!p)return i?null:{id:t,type:"unknown"};t={id:t,type:p}}if(t&&t.partOf&&!s&&!n.skipPartOfCheck){const p=Array.isArray(t.partOf)?t.partOf[0]:t.partOf;p&&(typeof p=="string"&&(s=p),typeof p.id=="string"&&(s=p.id))}const o=tr(r||(t==null?void 0:t.type)),u=t==null?void 0:t.id,d=a.iiif.entities[o];if(!d){const p=a.iiif.requests[u];return p&&p.resourceUri!==u?this.get(p.resourceUri,n):i?null:t}const l=d[t.id];if(l&&l[W.HAS_PART]){const p=l[W.HAS_PART].find(g=>s?g[W.PART_OF]===s:g[W.PART_OF]===l.id);return W.frameResource(l,p)}return d[t.id]||(i?null:t)}select(t){return t(this.getState())}getStore(){return this.store}getState(){return this.store.getState()}deep(t,r){if(typeof t>"u")return this.get(r,{skipSelfReturn:!1});if(typeof t=="function")try{const i=t(this.get(r,{skipSelfReturn:!1})),s=a=>this.deep(a,i);return s.size=Array.isArray(i)?i.length:1,s}catch{const i=s=>this.deep(s,void 0);return i.size=0,i}const n=i=>this.deep(i,t);return n.size=Array.isArray(t)?t.length:1,n}loadManifest(t,r){const n=typeof t=="string"?t:t.id;return this.load(n,r)}loadCollection(t,r){const n=typeof t=="string"?t:t.id;return this.load(n,r)}load(t,r){const n=typeof t=="string"?t:t.id;return r?this.staticFetcher(n,r):this.remoteFetcher(n)}areInputsEqual(t,r){return Kt(t,r)}subscribe(t,r,n){return typeof n>"u"&&(typeof r>"u"||r===!1||r===!0)&&(n=r,r=t,t=i=>i),this.store.subscribe(t,i=>r(i,this),{equalityFn:Kt,fireImmediately:!n})}async ensureLoaded(t){const r=typeof t=="string"?t:t.id;this.requestStatus(r)||await this.load(r)}requestStatus(t){return this.select(r=>r.iiif.requests[t])}getResourceMeta(t,r){const n=this.getState().iiif.meta[t];if(n)return r?n[r]:n}getObject(t,r,n={}){const{reactive:i,...s}=n;return be(this.get(t,r,s),this,i)}async loadObject(t,r){return be(await this.load(t,r),this)}async loadManifestObject(t,r){return be(await this.loadManifest(t,r),this)}async loadCollectionObject(t,r){return be(await this.loadCollection(t,r),this)}wrapObject(t){return be(this.get(t,{skipSelfReturn:!1}),this)}isWrapped(t){return Cs(t)}setMetaValue([t,r,n],i){this.dispatch(typeof i=="function"?Gt.setMetaValueDynamic({id:t,meta:r,key:n,updateValue:i}):Gt.setMetaValue({id:t,meta:r,key:n,value:i}))}};function Ms(){return typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}function $r(e){const t=Ms();try{const n=t.IIIF_VAULT;if(n)return n}catch{}const r=new wt(e);try{t.IIIF_VAULT=r}catch{}return r}const $e=v.createContext({vault:null,setVaultInstance:e=>{}});function Tt({vault:e,vaultOptions:t,useGlobal:r,resources:n,children:i}){const[s,a]=v.useState(()=>e||(r?$r(t):t?new wt(t):new wt));return m.jsx($e.Provider,{value:{vault:s,setVaultInstance:a},children:m.jsx(he,{value:n||{},children:i})})}const V=()=>{const{vault:e}=v.useContext($e);if(e===null)throw new Error("Vault not found. Ensure you have your provider set up correctly.");return e};function jt(e,{noCache:t=!1}={}){const r=typeof e=="string"?e:e.id,n=V(),[i,s]=v.useState(r),[a,o]=v.useState(void 0),u=v.useMemo(()=>n.get(r,{skipSelfReturn:!0})||void 0,[r,n]),[d,l]=v.useState(u);return v.useEffect(()=>{(async()=>{try{const p=u&&!t?u:await n.load(r),g=p?p.id||p["@id"]:null;p&&i!==g&&s(g),l(p)}catch(p){o(p)}})()},[r,t]),{isLoaded:!!d,id:i,requestId:r,error:a,resource:d,cached:!!(d&&d===u)}}function Dr(e,t){const{id:r,isLoaded:n,error:i,resource:s,requestId:a,cached:o}=jt(e,t);return{id:r,isLoaded:n,error:i,manifest:s,requestId:a,cached:o}}function qr({manifest:e,children:t}){return m.jsx(he,{value:{manifest:e},children:t})}function Ke({canvas:e,children:t}){return m.jsx(he,{value:{canvas:e},children:t})}function U(e,t=[]){const r=V(),[n,i]=v.useState(()=>e(r.getState(),r));return v.useEffect(()=>r.subscribe(s=>e(s,r),s=>{i(s)},!1),t),n}const De=v.createContext([]);function Et(){const e=v.useContext(De);return U(t=>e.map(r=>t.iiif.entities.Canvas[r]).filter(Boolean),[e])}function ve(e={},t=[]){const{id:r,selector:n}=e,i=se();V();const s=r||i.manifest,a=U(o=>s?o.iiif.entities.Manifest[s]:void 0,[s]);return v.useMemo(()=>{if(a)return n?n(a):a},[a,n,...t])}function Vr({range:e,children:t}){return m.jsx(he,{value:{range:e},children:t})}function _r(e,t){for(const r of t.items){if(r.type==="Canvas")return r;if(r.type==="SpecificResource")return r.source;if(r.type==="Range"){const n=_r(e,e.get(r));if(n)return n}}return null}function Pt(e,t){var n;const r=[];for(const i of t.items)if(i.type==="SpecificResource"&&((n=i.source)==null?void 0:n.type)==="Canvas"&&(i.source.id.indexOf("#")!==-1?r.push({id:i.source.id.split("#")[0],type:"Canvas"}):r.push(i.source)),i.type==="Range"&&r.push(...Pt(e,e.get(i))),i.type==="SpecificResource"){const s=typeof i.source=="string"?i.source:i.source.id;r.push({id:s,type:"Canvas"})}return r}function Rs(e,t,r){for(const n of t.structures){const i=Ot(e,e.get(n),r);if(i)return i}return null}function Ot(e,t,r){var n,i,s;for(const a of t.items){const o=(i=(n=a==null?void 0:a.source)==null?void 0:n.id)==null?void 0:i.split("#")[0];if(a.type==="SpecificResource"&&a.source===r||a.type==="SpecificResource"&&((s=a.source)==null?void 0:s.type)==="Canvas"&&r===o)return t;if(a.type==="Range"){const u=Ot(e,e.get(a),r);if(u)return u}}return null}function Is(e,t,r,n=!1){const i=t.behavior,s=r?e.get(r):null;if(!s)return[];const a=s.behavior,o=n?!1:i.includes("paged"),u=o?!1:i.includes("continuous"),d=o||u?!1:i.includes("individuals"),l=a.includes("facing-pages"),p=a.includes("non-paged");if(l||p||d||n)return[{id:s.id,type:"Canvas"}];const[g,b]=Lt(e,t);if(u)return g;const h=g.findIndex(x=>x.id===r);if(h===-1)return[];for(const x of b)if(x.includes(h))return x.map(A=>g[A]);return[{id:s.id,type:"Canvas"}]}function Lt(e,t,{disablePaging:r,skipNonPaged:n}={}){const i=t.behavior,s=i.includes("paged"),a=s?!1:i.includes("continuous"),o=s||a?!1:i.includes("individuals"),u=t.type==="Manifest"?t.items:Pt(e,t);if(a)return[u,[u.map((h,x)=>x)]];if(o||!s||r)return[u,u.map((h,x)=>[x])];const d=[];let l=[];const p=()=>{l.length&&(d.push([...l]),l=[])};let g=0,b=!1;for(let h=0;h<u.length;h++){const x=e.get(u[h]);if(x.behavior.includes("non-paged")){h===g&&g++,n||(p(),d.push([h]),p());continue}if(h===g||x.behavior.includes("facing-pages")){l.length&&(b=!0),p(),d.push([h]),p();continue}if(l.push(h),b){p(),b=!1;continue}l.length>1&&p()}return l.length&&p(),[u,d]}function Ur(e={},t=[]){const{id:r,selector:n}=e,i=se(),s=r||i.range,a=U(o=>s?o.iiif.entities.Range[s]:void 0,[s]);return v.useMemo(()=>{if(a)return n?n(a):a},[a,n,...t])}function Hr({startCanvas:e,disablePaging:t}){var h;const r=V(),n=ve(),i=Ur(),[s,a]=v.useState(void 0),o=i||n;if(!o)throw new Error("Nothing selected");const[u,d]=v.useMemo(()=>Lt(r,o,{disablePaging:t}),[r,o]),l=v.useCallback(x=>{const A=d.findIndex(S=>S.includes(x));a(A===-1?0:A)},[u,d]),p=v.useCallback(x=>{const A=u.findIndex(S=>S.id===x);A!==-1?l(A):a(0)},[u,d]),g=v.useCallback(()=>{a(x=>x>=d.length?x:x+1)},[d]),b=v.useCallback(()=>{a(x=>x<=0?0:x-1)},[d]);return typeof s>"u"&&(e?p(e):a(0)),{visibleItems:((h=d[s])==null?void 0:h.map(x=>u[x].id))||[],cursor:s,items:u,sequence:d,setSequenceIndex:a,setCanvasIndex:l,setCanvasId:p,next:g,previous:b}}const ke=()=>{},qe=v.createContext({setCurrentCanvasId:ke,setCurrentCanvasIndex:ke,nextCanvas:ke,previousCanvas:ke,items:[],sequence:[],setSequenceIndex:ke,currentSequenceIndex:0});function Nr(e){const t=ve(),{cursor:r,visibleItems:n,next:i,sequence:s,items:a,setCanvasIndex:o,setCanvasId:u,previous:d,setSequenceIndex:l}=Hr({startCanvas:e.startCanvas,disablePaging:e.pagingEnabled===!1}),p=v.useMemo(()=>({sequence:s,items:a,setCurrentCanvasId:u,nextCanvas:i,previousCanvas:d,totalCanvases:a.length,setCurrentCanvasIndex:o,setSequenceIndex:l,currentSequenceIndex:r}),[s,a,u,i,d,a,o,l,r]);return t?m.jsx(qe.Provider,{value:p,children:m.jsx(De.Provider,{value:n,children:m.jsx(Ke,{canvas:n[0],children:e.children})})}):(console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."}))}function Br(e){const t=Dr(e.manifest);if(!t)return console.warn("The manifest passed to the provider is not a valid IIIF manifest."),m.jsx("div",{children:"Sorry, something went wrong."});if(t.error)return m.jsx("div",{children:t.error.toString()});if(!t.isLoaded)return m.jsx("div",{children:"Loading..."});const r=m.jsx(Nr,{...e,children:e.children});return m.jsx(qr,{manifest:t.id,children:e.rangeId?m.jsx(Vr,{range:e.rangeId,children:r}):r})}function zr(){return v.useContext(qe)}function Wr(){return{VaultContext:v.useContext($e),ResourceContext:v.useContext(Je),SimpleViewerReactContext:v.useContext(qe),VisibleCanvasReactContext:v.useContext(De)}}function Qr(e){return m.jsx(Tt,{vault:e.bridge.VaultContext.vault||void 0,resources:e.bridge.ResourceContext,children:m.jsx(De.Provider,{value:e.bridge.VisibleCanvasReactContext,children:m.jsx(qe.Provider,{value:e.bridge.SimpleViewerReactContext,children:e.children})})})}const te=function(e){return function(){const t={type:e,getType:()=>e,toString:()=>e};return(r,n)=>({...t,...r!==void 0&&{payload:r},...n!==void 0&&{meta:n}})}},ks="@iiif/IMPORT_ENTITIES",Ts="@iiif/MODIFY_ENTITY_FIELD",js="@iiif/REORDER_ENTITY_FIELD",Es="@iiif/ADD_REFERENCE",Ps="@iiif/UPDATE_REFERENCE",Os="@iiif/REMOVE_REFERENCE",Ls="@iiif/ADD_METADATA",Fs="@iiif/REMOVE_METADATA",$s="@iiif/UPDATE_METADATA",Ds="@iiif/REORDER_METADATA",qs=te(ks)(),Vs=te(Ts)(),_s=te(js)(),Us=te(Es)(),Hs=te(Os)(),Ns=te(Ps)(),Bs=te(Ls)(),zs=te($s)(),Ws=te(Fs)(),Qs=te(Ds)(),ft={importEntities:qs,modifyEntityField:Vs,reorderEntityField:_s,addReference:Us,removeReference:Hs,updateReference:Ns,addMetadata:Bs,removeMetadata:Ws,updateMetadata:zs,reorderMetadata:Qs};function Yr(){const t=V().getStore();return v.useMemo(()=>r=>t.dispatch(r),[t])}function rr(e){return typeof e!="string"&&e&&e.bindToVault}function Gr(){const e=V(),t=v.useRef([]),r=Yr(),n=v.useMemo(()=>`vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random()*1e9).toString(16)}`,[]);v.useLayoutEffect(()=>{const o={id:n,type:"AnnotationPage",behavior:[],label:null,thumbnail:[],summary:null,requiredStatement:null,metadata:[],rights:null,provider:[],items:[],seeAlso:[],homepage:[],rendering:[],service:[]};r(ft.importEntities({entities:{AnnotationPage:{[o.id]:o}}}))},[n]);const i=U(o=>n?o.iiif.entities.AnnotationPage[n]:null,[n]),s=v.useCallback((o,u)=>{if(n){if(rr(o)){const p=o;p.__vault||p.bindToVault(e),o=typeof p.source=="string"?p.source:p.source.id,t.current[o]=p}else typeof o!="string"&&(o=o.id);const d=e.get({id:n,type:"AnnotationPage"}),l=e.get({id:o,type:"Annotation"});d&&l&&(d.items.find(p=>p.id===l.id)||r(ft.addReference({id:n,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"},index:u})))}},[n]),a=v.useCallback(o=>{n&&(rr(o)?o=typeof o.source=="string"?o.source:o.source.id:typeof o!="string"&&(o=o.id),t.current[o]&&t.current[o].beforeRemove(),e.get({id:n,type:"AnnotationPage"})&&r(ft.removeReference({id:n,type:"AnnotationPage",key:"items",reference:{id:o,type:"Annotation"}})))},[n]);return[i,{addAnnotation:s,removeAnnotation:a}]}const Jr=v.createContext(null);function Kr(){const e=v.useContext(Jr);return[e.fullPage,{addAnnotation:e.addAnnotation,removeAnnotation:e.removeAnnotation}]}function Zr({children:e}){const[t,{addAnnotation:r,removeAnnotation:n}]=Gr();return m.jsx(Jr.Provider,{value:v.useMemo(()=>({fullPage:t,addAnnotation:r,removeAnnotation:n}),[t]),children:e})}function Ys({width:e,style:t,height:r,error:n,resetErrorBoundary:i}){return m.jsxs("div",{style:{width:e,height:r,minHeight:500,...t||{},background:"#f9f9f9"},children:[m.jsx("h3",{children:"Error occurred"}),m.jsx("p",{children:n.message}),m.jsx("button",{onClick:i,children:"Reset"})]})}const Ze=v.createContext(null);function Xr(){return v.useContext(Ze)}const en=v.createContext(()=>{}),tn=v.createContext(()=>{});function Ie(e,t,r,n,i=[]){const s=v.useContext(e==="portal"?tn:en);v.useEffect(()=>(e!=="none"&&s(t,r,n),()=>{s(t,null)}),[t,e,s,...i])}function re(e={},t=[]){const{id:r,selector:n}=e,i=se(),s=r||i.canvas,a=U(o=>s?o.iiif.entities.Canvas[s]:void 0,[s]);return v.useMemo(()=>{if(a)return n?n(a):a},[a,n,...t])}const rn=v.createContext(()=>{});function Gs(e){const t=re(),r=v.useContext(rn);v.useEffect(()=>t&&t.id?(r(t.id,e),()=>r(t.id,-1)):()=>{},[t,e])}function Js({children:e,errorFallback:t,outerContainerProps:r={},worldScale:n,...i}){const[s,a]=v.useState(),o=Wr(),u=t||Ys,[d,l]=v.useState({}),p=Object.entries(d),[g,b]=v.useState({}),h=Object.entries(g),[x,A]=v.useState({}),S=v.useMemo(()=>n||Math.max(...Object.values(x)),[x]),w=v.useMemo(()=>({maxOverZoom:S||1,...i.runtimeOptions||{}}),[S,i.runtimeOptions]),M=v.useCallback((k,O)=>{A(P=>{if(O===-1){const{[k]:R,...$}=P;return $}return{...P,[k]:O}})},[]),T=v.useCallback((k,O,P)=>{l(({[k]:R,...$})=>O?{...$,[k]:{element:O,props:P}}:$)},[]),F=v.useCallback((k,O,P)=>{b(({[k]:R,...$})=>O?{...$,[k]:{element:O,props:P}}:$)},[]);return m.jsxs(Oi,{resetKeys:[],fallbackRender:k=>m.jsx(u,{...i,...k}),children:[m.jsx(Re.AtlasAuto,{...i,containerProps:{style:{position:"relative"},...i.containerProps||{}},htmlChildren:m.jsx(m.Fragment,{children:p.map(([k,{element:O,props:P}])=>m.jsx(v.Fragment,{children:m.jsx(O,{...P||{}})},k))}),onCreated:k=>{a(k),i.onCreated&&i.onCreated(k)},runtimeOptions:w,children:m.jsx(Ze.Provider,{value:s,children:m.jsx(rn.Provider,{value:M,children:m.jsx(en.Provider,{value:T,children:m.jsx(tn.Provider,{value:F,children:m.jsx(Qr,{bridge:o,children:m.jsx(Re.ModeContext.Provider,{value:i.mode||"explore",children:m.jsx(Zr,{children:e})})})})})})})}),m.jsx("div",{children:h.map(([k,{element:O,props:P}])=>m.jsx(v.Fragment,{children:m.jsx(O,{...P||{}})},k))})]})}const He={},nn={get(e){return e},setMetaValue([e,t,r],n){const i=nn.getResourceMeta(e,t),s=i?i[r]:void 0,a=typeof n=="function"?n(s):n;He[e]={...He[e]||{},[t]:{...(He[e]||{})[t]||{},[r]:a}}},getResourceMeta:(e,t)=>{const r=He[e];if(r)return t?r[t]:r}};function sn(e=nn){return{addEventListener(t,r,n,i){if(t)return e.setMetaValue([t.id,"eventManager",r],s=>{const a=s||[];for(const o of a)if(o.callback===n)return a;return[...a,{callback:n,scope:i}]}),n},removeEventListener(t,r,n){t&&e.setMetaValue([t.id,"eventManager",r],i=>(i||[]).filter(s=>s.callback!==n))},getListenersAsProps(t,r){const n=typeof t=="string"?{id:t}:t;if(!n||!n.id)return{};const i=e.getResourceMeta(n.id,"eventManager"),s={};if(i&&n)for(const a of Object.keys(i))s[a]=o=>{const u=e.get(n);for(const{callback:d,scope:l}of i[a]||[])(!l||r&&l.indexOf(r)!==-1)&&d(o,u)};return s}}}function Ft(e,t){const r=V(),n=v.useMemo(()=>sn(r),[r]),i=U(()=>e&&e.id?r.getResourceMeta(e.id,"eventManager"):null,[e]);return v.useMemo(()=>e?n.getListenersAsProps(e,t):{},[i,e,r,t])}const Ne={},an={get(e){return e},setMetaValue([e,t,r],n){const i=an.getResourceMeta(e,t),s=i?i[r]:void 0,a=typeof n=="function"?n(s):n;Ne[e]={...Ne[e]||{},[t]:{...(Ne[e]||{})[t]||{},[r]:a}}},getResourceMeta:(e,t)=>{const r=Ne[e];if(r)return t?r[t]:r}};function $t(e=an){return{applyStyles(t,r,n){const i=typeof t=="string"?t:t.id;return e.setMetaValue([i,"styles",r],n)},getAppliedStyles(t){const r=typeof t=="string"?t:t.id;return e.getResourceMeta(r,"styles")}}}function Fe(e,t){const r=V(),n=v.useMemo(()=>$t(r),[r]);return U(()=>{if(!e)return null;const i=n.getAppliedStyles(e.id);return i?t?i[t]:i:void 0},[e,t])}var Ks=Object.defineProperty,Zs=(e,t,r)=>t in e?Ks(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,We=(e,t,r)=>(Zs(e,typeof t!="symbol"?t+"":t,r),r),Xs=function(){function e(t,r){var n=[],i=!0,s=!1,a=void 0;try{for(var o=t[Symbol.iterator](),u;!(i=(u=o.next()).done)&&(n.push(u.value),!(r&&n.length===r));i=!0);}catch(d){s=!0,a=d}finally{try{!i&&o.return&&o.return()}finally{if(s)throw a}}return n}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),je=Math.PI*2,pt=function(e,t,r,n,i,s,a){var o=e.x,u=e.y;o*=t,u*=r;var d=n*o-i*u,l=i*o+n*u;return{x:d+s,y:l+a}},ea=function(e,t){var r=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),n=Math.cos(e),i=Math.sin(e),s=Math.cos(e+t),a=Math.sin(e+t);return[{x:n-i*r,y:i+n*r},{x:s+a*r,y:a-s*r},{x:s,y:a}]},nr=function(e,t,r,n){var i=e*n-t*r<0?-1:1,s=e*r+t*n;return s>1&&(s=1),s<-1&&(s=-1),i*Math.acos(s)},ta=function(e,t,r,n,i,s,a,o,u,d,l,p){var g=Math.pow(i,2),b=Math.pow(s,2),h=Math.pow(l,2),x=Math.pow(p,2),A=g*b-g*x-b*h;A<0&&(A=0),A/=g*x+b*h,A=Math.sqrt(A)*(a===o?-1:1);var S=A*i/s*p,w=A*-s/i*l,M=d*S-u*w+(e+r)/2,T=u*S+d*w+(t+n)/2,F=(l-S)/i,k=(p-w)/s,O=(-l-S)/i,P=(-p-w)/s,R=nr(1,0,F,k),$=nr(F,k,O,P);return o===0&&$>0&&($-=je),o===1&&$<0&&($+=je),[M,T,R,$]},ra=function(e){var t=e.px,r=e.py,n=e.cx,i=e.cy,s=e.rx,a=e.ry,o=e.xAxisRotation,u=o===void 0?0:o,d=e.largeArcFlag,l=d===void 0?0:d,p=e.sweepFlag,g=p===void 0?0:p,b=[];if(s===0||a===0)return[];var h=Math.sin(u*je/360),x=Math.cos(u*je/360),A=x*(t-n)/2+h*(r-i)/2,S=-h*(t-n)/2+x*(r-i)/2;if(A===0&&S===0)return[];s=Math.abs(s),a=Math.abs(a);var w=Math.pow(A,2)/Math.pow(s,2)+Math.pow(S,2)/Math.pow(a,2);w>1&&(s*=Math.sqrt(w),a*=Math.sqrt(w));var M=ta(t,r,n,i,s,a,l,g,h,x,A,S),T=Xs(M,4),F=T[0],k=T[1],O=T[2],P=T[3],R=Math.abs(P)/(je/4);Math.abs(1-R)<1e-7&&(R=1);var $=Math.max(Math.ceil(R),1);P/=$;for(var X=0;X<$;X++)b.push(ea(O,P)),O+=P;return b.map(function(Y){var _=pt(Y[0],s,a,x,h,F,k),H=_.x,J=_.y,ee=pt(Y[1],s,a,x,h,F,k),ge=ee.x,E=ee.y,N=pt(Y[2],s,a,x,h,F,k),G=N.x,ue=N.y;return{x1:H,y1:J,x2:ge,y2:E,x:G,y:ue}})};function on(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var na=sa,dt={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},ia=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function sa(e){var t=[];return e.replace(ia,function(r,n,i){var s=n.toLowerCase();for(i=oa(i),s=="m"&&i.length>2&&(t.push([n].concat(i.splice(0,2))),s="l",n=n=="m"?"l":"L");;){if(i.length==dt[s])return i.unshift(n),t.push(i);if(i.length<dt[s])throw new Error("malformed path data");t.push([n].concat(i.splice(0,dt[s])))}}),t}var aa=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function oa(e){var t=e.match(aa);return t?t.map(Number):[]}const ca=on(na);var ua=la;function la(e){var t=0,r=0,n=0,i=0;return e.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]+=n,s[7]+=i;break;case"v":s[1]+=i;break;case"h":s[1]+=n;break;default:for(var u=1;u<s.length;)s[u++]+=n,s[u++]+=i}switch(o){case"Z":n=t,i=r;break;case"H":n=s[1];break;case"V":i=s[1];break;case"M":n=t=s[1],i=r=s[2];break;default:n=s[s.length-2],i=s[s.length-1]}return s})}const fa=on(ua);function pa(e){const t=ca(e),r=fa(t);let n,i=0,s=0,a=0,o=0,u,d,l=0,p=0;const g=[];for(let b=0;b<r.length;b++){let h=r[b];const x=h[0];switch(x){case"M":i=h[1],s=h[2];break;case"H":h=["L",h[1],s];break;case"V":h=["L",i,h[1]];break;case"S":{let A=l,S=p;(n==="C"||n=="S")&&(A+=A-a,S+=S-o),h=["C",A,S,h[1],h[2],h[3],h[4]]}break;case"T":n==="Q"||n=="T"?(u=l*2-u,d=p*2-d):(u=l,d=p),h=["Q",u,d,h[1],h[2]];break;case"Q":u=h[1],d=h[2];break;case"A":{const A=ra({px:l,py:p,cx:h[6],cy:h[7],rx:h[1],ry:h[2],xAxisRotation:h[3],largeArcFlag:h[4],sweepFlag:h[5]});if(!A.length)continue;for(const[S,w]of A.entries())h=["C",w.x1,w.y1,w.x2,w.y2,w.x,w.y],S<A.length-1&&g.push(h);h=h}break;case"Z":h=["L",i,s];break}n=x,l=h[h.length-2],p=h[h.length-1],["C","Q","A"].indexOf(x)>-1?(a=h[h.length-4],o=h[h.length-3]):(a=l,o=p),g.push(h)}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/.