react-iiif-vault 1.5.6 → 1.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ Error generating stack: `+g.message+`
8
8
  `+(d.join(" > ")+`
9
9
 
10
10
  No matching component was found for:
11
- `)+o.join(" > ")}return null},i.getPublicRootInstance=function(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return ke(o.child.stateNode);default:return o.child.stateNode}},i.injectIntoDevTools=function(o){if(o={bundleType:o.bundleType,version:o.version,rendererPackageName:o.rendererPackageName,rendererConfig:o.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:c.ReactCurrentDispatcher,findHostInstanceByFiber:_b,findFiberByHostInstance:o.findFiberByHostInstance||Mb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")o=!1;else{var s=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(s.isDisabled||!s.supportsFiber)o=!0;else{try{Xa=s.inject(o),un=s}catch{}o=!!s.checkDCE}}return o},i.isAlreadyRendering=function(){return!1},i.observeVisibleRects=function(o,s,u,d){if(!Ri)throw Error(l(363));o=Kd(o,s);var f=Y(o,u,d).disconnect;return{disconnect:function(){f()}}},i.registerMutableSourceForHydration=function(o,s){var u=s._getVersion;u=u(s._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[s,u]:o.mutableSourceEagerHydrationData.push(s,u)},i.runWithPriority=function(o,s){var u=Fe;try{return Fe=o,s()}finally{Fe=u}},i.shouldError=function(){return null},i.shouldSuspend=function(){return!1},i.updateContainer=function(o,s,u,d){var f=s.current,g=Gt(),b=tr(f);return u=Ay(u),s.context===null?s.context=u:s.pendingContext=u,s=Rn(g,b),s.payload={element:o},d=d===void 0?null:d,d!==null&&(s.callback=d),o=Zn(f,s,b),o!==null&&(Fi(o,f,b,g),rl(o,f,b)),b},i}});var Pv=Tt((yR,Cv)=>{"use strict";Cv.exports=bv()});var Hs=Tt((GR,Sx)=>{"use strict";Sx.exports=ReactDOM});var bx=Tt(Pp=>{"use strict";var wx=Hs();Pp.createRoot=wx.createRoot,Pp.hydrateRoot=wx.hydrateRoot;var YR});var xS=Tt(vS=>{"use strict";var Zo=H();function DA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var jA=typeof Object.is=="function"?Object.is:DA,VA=Zo.useState,UA=Zo.useEffect,WA=Zo.useLayoutEffect,HA=Zo.useDebugValue;function qA(e,t){var i=t(),n=VA({inst:{value:i,getSnapshot:t}}),r=n[0].inst,a=n[1];return WA(function(){r.value=i,r.getSnapshot=t,bf(r)&&a({inst:r})},[e,i,t]),UA(function(){return bf(r)&&a({inst:r}),e(function(){bf(r)&&a({inst:r})})},[e]),HA(i),i}function bf(e){var t=e.getSnapshot;e=e.value;try{var i=t();return!jA(e,i)}catch{return!0}}function QA(e,t){return t()}var $A=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?QA:qA;vS.useSyncExternalStore=Zo.useSyncExternalStore!==void 0?Zo.useSyncExternalStore:$A});var wS=Tt((vk,SS)=>{"use strict";SS.exports=xS()});var CS=Tt(bS=>{"use strict";var ac=H(),GA=wS();function YA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var XA=typeof Object.is=="function"?Object.is:YA,KA=GA.useSyncExternalStore,ZA=ac.useRef,JA=ac.useEffect,eI=ac.useMemo,tI=ac.useDebugValue;bS.useSyncExternalStoreWithSelector=function(e,t,i,n,r){var a=ZA(null);if(a.current===null){var l={hasValue:!1,value:null};a.current=l}else l=a.current;a=eI(function(){function p(w){if(!m){if(m=!0,h=w,w=n(w),r!==void 0&&l.hasValue){var v=l.value;if(r(v,w))return y=v}return y=w}if(v=y,XA(h,w))return v;var x=n(w);return r!==void 0&&r(v,x)?v:(h=w,y=x)}var m=!1,h,y,S=i===void 0?null:i;return[function(){return p(t())},S===null?void 0:function(){return p(S())}]},[t,i,n,r]);var c=KA(e,a[0],a[1]);return JA(function(){l.hasValue=!0,l.value=c},[c]),tI(c),c}});var ES=Tt((Sk,PS)=>{"use strict";PS.exports=CS()});var t1=Tt((bD,e1)=>{"use strict";(()=>{var e={296:(r,a,l)=>{var c=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,h=/^0o[0-7]+$/i,y=parseInt,S=typeof l.g=="object"&&l.g&&l.g.Object===Object&&l.g,w=typeof self=="object"&&self&&self.Object===Object&&self,v=S||w||Function("return this")(),x=Object.prototype.toString,A=Math.max,C=Math.min,I=function(){return v.Date.now()};function E(L){var M=typeof L;return!!L&&(M=="object"||M=="function")}function O(L){if(typeof L=="number")return L;if(function(V){return typeof V=="symbol"||function(J){return!!J&&typeof J=="object"}(V)&&x.call(V)=="[object Symbol]"}(L))return NaN;if(E(L)){var M=typeof L.valueOf=="function"?L.valueOf():L;L=E(M)?M+"":M}if(typeof L!="string")return L===0?L:+L;L=L.replace(c,"");var Q=m.test(L);return Q||h.test(L)?y(L.slice(2),Q?2:8):p.test(L)?NaN:+L}r.exports=function(L,M,Q){var V,J,U,q,ee,Me,pe=0,Te=!1,ke=!1,He=!0;if(typeof L!="function")throw new TypeError("Expected a function");function qe($e){var N=V,G=J;return V=J=void 0,pe=$e,q=L.apply(G,N)}function $($e){var N=$e-Me;return Me===void 0||N>=M||N<0||ke&&$e-pe>=U}function ve(){var $e=I();if($($e))return it($e);ee=setTimeout(ve,function(N){var G=M-(N-Me);return ke?C(G,U-(N-pe)):G}($e))}function it($e){return ee=void 0,He&&V?qe($e):(V=J=void 0,q)}function Qe(){var $e=I(),N=$($e);if(V=arguments,J=this,Me=$e,N){if(ee===void 0)return function(G){return pe=G,ee=setTimeout(ve,M),Te?qe(G):q}(Me);if(ke)return ee=setTimeout(ve,M),qe(Me)}return ee===void 0&&(ee=setTimeout(ve,M)),q}return M=O(M)||0,E(Q)&&(Te=!!Q.leading,U=(ke="maxWait"in Q)?A(O(Q.maxWait)||0,M):U,He="trailing"in Q?!!Q.trailing:He),Qe.cancel=function(){ee!==void 0&&clearTimeout(ee),pe=0,V=Me=J=ee=void 0},Qe.flush=function(){return ee===void 0?q:it(I())},Qe}},96:(r,a,l)=>{var c="Expected a function",p=NaN,m="[object Symbol]",h=/^\s+|\s+$/g,y=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,w=/^0o[0-7]+$/i,v=parseInt,x=typeof l.g=="object"&&l.g&&l.g.Object===Object&&l.g,A=typeof self=="object"&&self&&self.Object===Object&&self,C=x||A||Function("return this")(),I=Object.prototype.toString,E=Math.max,O=Math.min,L=function(){return C.Date.now()};function M(V){var J=typeof V;return!!V&&(J=="object"||J=="function")}function Q(V){if(typeof V=="number")return V;if(function(q){return typeof q=="symbol"||function(ee){return!!ee&&typeof ee=="object"}(q)&&I.call(q)==m}(V))return p;if(M(V)){var J=typeof V.valueOf=="function"?V.valueOf():V;V=M(J)?J+"":J}if(typeof V!="string")return V===0?V:+V;V=V.replace(h,"");var U=S.test(V);return U||w.test(V)?v(V.slice(2),U?2:8):y.test(V)?p:+V}r.exports=function(V,J,U){var q=!0,ee=!0;if(typeof V!="function")throw new TypeError(c);return M(U)&&(q="leading"in U?!!U.leading:q,ee="trailing"in U?!!U.trailing:ee),function(Me,pe,Te){var ke,He,qe,$,ve,it,Qe=0,$e=!1,N=!1,G=!0;if(typeof Me!="function")throw new TypeError(c);function de(Pe){var ne=ke,he=He;return ke=He=void 0,Qe=Pe,$=Me.apply(he,ne)}function ye(Pe){var ne=Pe-it;return it===void 0||ne>=pe||ne<0||N&&Pe-Qe>=qe}function ge(){var Pe=L();if(ye(Pe))return Ve(Pe);ve=setTimeout(ge,function(ne){var he=pe-(ne-it);return N?O(he,qe-(ne-Qe)):he}(Pe))}function Ve(Pe){return ve=void 0,G&&ke?de(Pe):(ke=He=void 0,$)}function ze(){var Pe=L(),ne=ye(Pe);if(ke=arguments,He=this,it=Pe,ne){if(ve===void 0)return function(he){return Qe=he,ve=setTimeout(ge,pe),$e?de(he):$}(it);if(N)return ve=setTimeout(ge,pe),de(it)}return ve===void 0&&(ve=setTimeout(ge,pe)),$}return pe=Q(pe)||0,M(Te)&&($e=!!Te.leading,qe=(N="maxWait"in Te)?E(Q(Te.maxWait)||0,pe):qe,G="trailing"in Te?!!Te.trailing:G),ze.cancel=function(){ve!==void 0&&clearTimeout(ve),Qe=0,ke=it=He=ve=void 0},ze.flush=function(){return ve===void 0?$:Ve(L())},ze}(V,J,{leading:q,maxWait:J,trailing:ee})}},703:(r,a,l)=>{"use strict";var c=l(414);function p(){}function m(){}m.resetWarningCache=p,r.exports=function(){function h(w,v,x,A,C,I){if(I!==c){var E=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw E.name="Invariant Violation",E}}function y(){return h}h.isRequired=h;var S={array:h,bigint:h,bool:h,func:h,number:h,object:h,string:h,symbol:h,any:h,arrayOf:y,element:h,elementType:h,instanceOf:y,node:h,objectOf:y,oneOf:y,oneOfType:y,shape:y,exact:y,checkPropTypes:m,resetWarningCache:p};return S.PropTypes=S,S}},697:(r,a,l)=>{r.exports=l(703)()},414:r=>{"use strict";r.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},t={};function i(r){var a=t[r];if(a!==void 0)return a.exports;var l=t[r]={exports:{}};return e[r](l,l.exports,i),l.exports}i.n=r=>{var a=r&&r.__esModule?()=>r.default:()=>r;return i.d(a,{a}),a},i.d=(r,a)=>{for(var l in a)i.o(a,l)&&!i.o(r,l)&&Object.defineProperty(r,l,{enumerable:!0,get:a[l]})},i.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),i.o=(r,a)=>Object.prototype.hasOwnProperty.call(r,a),i.r=r=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{LazyLoadComponent:()=>Oe,LazyLoadImage:()=>Kc,trackWindowScroll:()=>it});let r=H();var a=i.n(r),l=i(697);let c=Hs();var p=i.n(c);function m(){return typeof window<"u"&&"IntersectionObserver"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype}function h(Y){return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},h(Y)}function y(Y,k){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);k&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function S(Y,k,X){return(k=v(k))in Y?Object.defineProperty(Y,k,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[k]=X,Y}function w(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,v(K.key),K)}}function v(Y){var k=function(X,K){if(h(X)!=="object"||X===null)return X;var be=X[Symbol.toPrimitive];if(be!==void 0){var Ae=be.call(X,"string");if(h(Ae)!=="object")return Ae;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(X)}(Y);return h(k)==="symbol"?k:String(k)}function x(Y,k){return x=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},x(Y,k)}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},A(Y)}var C=function(Y){Y.forEach(function(k){k.isIntersecting&&k.target.onVisible()})},I={},E=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&x(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=A(K);if(be){var ue=A(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(h(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ie){if(Ie===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ie}(oe)}(this,j)});function je(j){var W;if(function(oe,se){if(!(oe instanceof se))throw new TypeError("Cannot call a class as a function")}(this,je),(W=Ae.call(this,j)).supportsObserver=!j.scrollPosition&&j.useIntersectionObserver&&m(),W.supportsObserver){var ue=j.threshold;W.observer=function(oe){return I[oe]=I[oe]||new IntersectionObserver(C,{rootMargin:oe+"px"}),I[oe]}(ue)}return W}return k=je,X=[{key:"componentDidMount",value:function(){this.placeholder&&this.observer&&(this.placeholder.onVisible=this.props.onVisible,this.observer.observe(this.placeholder)),this.supportsObserver||this.updateVisibility()}},{key:"componentWillUnmount",value:function(){this.observer&&this.placeholder&&this.observer.unobserve(this.placeholder)}},{key:"componentDidUpdate",value:function(){this.supportsObserver||this.updateVisibility()}},{key:"getPlaceholderBoundingBox",value:function(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props.scrollPosition,W=this.placeholder.getBoundingClientRect(),ue=p().findDOMNode(this.placeholder).style,oe=parseInt(ue.getPropertyValue("margin-left"),10)||0,se=parseInt(ue.getPropertyValue("margin-top"),10)||0;return{bottom:j.y+W.bottom+se,left:j.x+W.left+oe,right:j.x+W.right+oe,top:j.y+W.top+se}}},{key:"isPlaceholderInViewport",value:function(){if(typeof window>"u"||!this.placeholder)return!1;var j=this.props,W=j.scrollPosition,ue=j.threshold,oe=this.getPlaceholderBoundingBox(W),se=W.y+window.innerHeight,Ie=W.x,Xe=W.x+window.innerWidth,Ke=W.y;return Ke-ue<=oe.bottom&&se+ue>=oe.top&&Ie-ue<=oe.right&&Xe+ue>=oe.left}},{key:"updateVisibility",value:function(){this.isPlaceholderInViewport()&&this.props.onVisible()}},{key:"render",value:function(){var j=this,W=this.props,ue=W.className,oe=W.height,se=W.placeholder,Ie=W.style,Xe=W.width;if(se&&typeof se.type!="function")return a().cloneElement(se,{ref:function(Ue){return j.placeholder=Ue}});var Ke=function(Ue){for(var Pt=1;Pt<arguments.length;Pt++){var st=arguments[Pt]!=null?arguments[Pt]:{};Pt%2?y(Object(st),!0).forEach(function(Et){S(Ue,Et,st[Et])}):Object.getOwnPropertyDescriptors?Object.defineProperties(Ue,Object.getOwnPropertyDescriptors(st)):y(Object(st)).forEach(function(Et){Object.defineProperty(Ue,Et,Object.getOwnPropertyDescriptor(st,Et))})}return Ue}({display:"inline-block"},Ie);return Xe!==void 0&&(Ke.width=Xe),oe!==void 0&&(Ke.height=oe),a().createElement("span",{className:ue,ref:function(Ue){return j.placeholder=Ue},style:Ke},se)}}],X&&w(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);E.propTypes={onVisible:l.PropTypes.func.isRequired,className:l.PropTypes.string,height:l.PropTypes.oneOfType([l.PropTypes.number,l.PropTypes.string]),placeholder:l.PropTypes.element,threshold:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool,scrollPosition:l.PropTypes.shape({x:l.PropTypes.number.isRequired,y:l.PropTypes.number.isRequired}),width:l.PropTypes.oneOfType([l.PropTypes.number,l.PropTypes.string])},E.defaultProps={className:"",placeholder:null,threshold:100,useIntersectionObserver:!0};let O=E;var L=i(296),M=i.n(L),Q=i(96),V=i.n(Q),J=function(Y){var k=getComputedStyle(Y,null);return k.getPropertyValue("overflow")+k.getPropertyValue("overflow-y")+k.getPropertyValue("overflow-x")};let U=function(Y){if(!(Y instanceof HTMLElement))return window;for(var k=Y;k&&k instanceof HTMLElement;){if(/(scroll|auto)/.test(J(k)))return k;k=k.parentNode}return window};function q(Y){return q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},q(Y)}var ee=["delayMethod","delayTime"];function Me(){return Me=Object.assign?Object.assign.bind():function(Y){for(var k=1;k<arguments.length;k++){var X=arguments[k];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Me.apply(this,arguments)}function pe(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,(be=function(Ae,je){if(q(Ae)!=="object"||Ae===null)return Ae;var j=Ae[Symbol.toPrimitive];if(j!==void 0){var W=j.call(Ae,"string");if(q(W)!=="object")return W;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(Ae)}(K.key),q(be)==="symbol"?be:String(be)),K)}var be}function Te(Y,k){return Te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},Te(Y,k)}function ke(Y,k){if(k&&(q(k)==="object"||typeof k=="function"))return k;if(k!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return He(Y)}function He(Y){if(Y===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Y}function qe(Y){return qe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},qe(Y)}var $=function(){return typeof window>"u"?0:window.scrollX||window.pageXOffset},ve=function(){return typeof window>"u"?0:window.scrollY||window.pageYOffset};let it=function(Y){var k=function(X){(function(ue,oe){if(typeof oe!="function"&&oe!==null)throw new TypeError("Super expression must either be null or a function");ue.prototype=Object.create(oe&&oe.prototype,{constructor:{value:ue,writable:!0,configurable:!0}}),Object.defineProperty(ue,"prototype",{writable:!1}),oe&&Te(ue,oe)})(W,X);var K,be,Ae,je,j=(Ae=W,je=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var ue,oe=qe(Ae);if(je){var se=qe(this).constructor;ue=Reflect.construct(oe,arguments,se)}else ue=oe.apply(this,arguments);return ke(this,ue)});function W(ue){var oe;if(function(Ie,Xe){if(!(Ie instanceof Xe))throw new TypeError("Cannot call a class as a function")}(this,W),(oe=j.call(this,ue)).useIntersectionObserver=ue.useIntersectionObserver&&m(),oe.useIntersectionObserver)return ke(oe);var se=oe.onChangeScroll.bind(He(oe));return ue.delayMethod==="debounce"?oe.delayedScroll=M()(se,ue.delayTime):ue.delayMethod==="throttle"&&(oe.delayedScroll=V()(se,ue.delayTime)),oe.state={scrollPosition:{x:$(),y:ve()}},oe.baseComponentRef=a().createRef(),oe}return K=W,(be=[{key:"componentDidMount",value:function(){this.addListeners()}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"componentDidUpdate",value:function(){typeof window>"u"||this.useIntersectionObserver||U(p().findDOMNode(this.baseComponentRef.current))!==this.scrollElement&&(this.removeListeners(),this.addListeners())}},{key:"addListeners",value:function(){typeof window>"u"||this.useIntersectionObserver||(this.scrollElement=U(p().findDOMNode(this.baseComponentRef.current)),this.scrollElement.addEventListener("scroll",this.delayedScroll,{passive:!0}),window.addEventListener("resize",this.delayedScroll,{passive:!0}),this.scrollElement!==window&&window.addEventListener("scroll",this.delayedScroll,{passive:!0}))}},{key:"removeListeners",value:function(){typeof window>"u"||this.useIntersectionObserver||(this.scrollElement.removeEventListener("scroll",this.delayedScroll),window.removeEventListener("resize",this.delayedScroll),this.scrollElement!==window&&window.removeEventListener("scroll",this.delayedScroll))}},{key:"onChangeScroll",value:function(){this.useIntersectionObserver||this.setState({scrollPosition:{x:$(),y:ve()}})}},{key:"render",value:function(){var ue=this.props,oe=(ue.delayMethod,ue.delayTime,function(Ie,Xe){if(Ie==null)return{};var Ke,Ue,Pt=function(Et,Gn){if(Et==null)return{};var Qi,Ar,ys={},Wa=Object.keys(Et);for(Ar=0;Ar<Wa.length;Ar++)Qi=Wa[Ar],Gn.indexOf(Qi)>=0||(ys[Qi]=Et[Qi]);return ys}(Ie,Xe);if(Object.getOwnPropertySymbols){var st=Object.getOwnPropertySymbols(Ie);for(Ue=0;Ue<st.length;Ue++)Ke=st[Ue],Xe.indexOf(Ke)>=0||Object.prototype.propertyIsEnumerable.call(Ie,Ke)&&(Pt[Ke]=Ie[Ke])}return Pt}(ue,ee)),se=this.useIntersectionObserver?null:this.state.scrollPosition;return a().createElement(Y,Me({forwardRef:this.baseComponentRef,scrollPosition:se},oe))}}])&&pe(K.prototype,be),Object.defineProperty(K,"prototype",{writable:!1}),W}(a().Component);return k.propTypes={delayMethod:l.PropTypes.oneOf(["debounce","throttle"]),delayTime:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool},k.defaultProps={delayMethod:"throttle",delayTime:300,useIntersectionObserver:!0},k};function Qe(Y){return Qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},Qe(Y)}function $e(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,(be=function(Ae,je){if(Qe(Ae)!=="object"||Ae===null)return Ae;var j=Ae[Symbol.toPrimitive];if(j!==void 0){var W=j.call(Ae,"string");if(Qe(W)!=="object")return W;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(Ae)}(K.key),Qe(be)==="symbol"?be:String(be)),K)}var be}function N(Y,k){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},N(Y,k)}function G(Y){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},G(Y)}var de=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&N(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=G(K);if(be){var ue=G(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(Qe(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ie){if(Ie===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ie}(oe)}(this,j)});function je(j){return function(W,ue){if(!(W instanceof ue))throw new TypeError("Cannot call a class as a function")}(this,je),Ae.call(this,j)}return k=je,(X=[{key:"render",value:function(){return a().createElement(O,this.props)}}])&&$e(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);let ye=it(de);function ge(Y){return ge=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},ge(Y)}function Ve(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,(be=function(Ae,je){if(ge(Ae)!=="object"||Ae===null)return Ae;var j=Ae[Symbol.toPrimitive];if(j!==void 0){var W=j.call(Ae,"string");if(ge(W)!=="object")return W;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(Ae)}(K.key),ge(be)==="symbol"?be:String(be)),K)}var be}function ze(Y,k){return ze=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},ze(Y,k)}function Pe(Y){if(Y===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Y}function ne(Y){return ne=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},ne(Y)}var he=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&ze(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=ne(K);if(be){var ue=ne(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(ge(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Pe(oe)}(this,j)});function je(j){var W;(function(Xe,Ke){if(!(Xe instanceof Ke))throw new TypeError("Cannot call a class as a function")})(this,je),W=Ae.call(this,j);var ue=j.afterLoad,oe=j.beforeLoad,se=j.scrollPosition,Ie=j.visibleByDefault;return W.state={visible:Ie},Ie&&(oe(),ue()),W.onVisible=W.onVisible.bind(Pe(W)),W.isScrollTracked=!!(se&&Number.isFinite(se.x)&&se.x>=0&&Number.isFinite(se.y)&&se.y>=0),W}return k=je,(X=[{key:"componentDidUpdate",value:function(j,W){W.visible!==this.state.visible&&this.props.afterLoad()}},{key:"onVisible",value:function(){this.props.beforeLoad(),this.setState({visible:!0})}},{key:"render",value:function(){if(this.state.visible)return this.props.children;var j=this.props,W=j.className,ue=j.delayMethod,oe=j.delayTime,se=j.height,Ie=j.placeholder,Xe=j.scrollPosition,Ke=j.style,Ue=j.threshold,Pt=j.useIntersectionObserver,st=j.width;return this.isScrollTracked||Pt&&m()?a().createElement(O,{className:W,height:se,onVisible:this.onVisible,placeholder:Ie,scrollPosition:Xe,style:Ke,threshold:Ue,useIntersectionObserver:Pt,width:st}):a().createElement(ye,{className:W,delayMethod:ue,delayTime:oe,height:se,onVisible:this.onVisible,placeholder:Ie,style:Ke,threshold:Ue,width:st})}}])&&Ve(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);he.propTypes={afterLoad:l.PropTypes.func,beforeLoad:l.PropTypes.func,useIntersectionObserver:l.PropTypes.bool,visibleByDefault:l.PropTypes.bool},he.defaultProps={afterLoad:function(){return{}},beforeLoad:function(){return{}},useIntersectionObserver:!0,visibleByDefault:!1};let Oe=he;function ot(Y){return ot=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},ot(Y)}var Ti=["afterLoad","beforeLoad","delayMethod","delayTime","effect","placeholder","placeholderSrc","scrollPosition","threshold","useIntersectionObserver","visibleByDefault","wrapperClassName","wrapperProps"];function Dt(Y,k){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);k&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function Wt(Y){for(var k=1;k<arguments.length;k++){var X=arguments[k]!=null?arguments[k]:{};k%2?Dt(Object(X),!0).forEach(function(K){fs(Y,K,X[K])}):Object.getOwnPropertyDescriptors?Object.defineProperties(Y,Object.getOwnPropertyDescriptors(X)):Dt(Object(X)).forEach(function(K){Object.defineProperty(Y,K,Object.getOwnPropertyDescriptor(X,K))})}return Y}function fs(Y,k,X){return(k=Ua(k))in Y?Object.defineProperty(Y,k,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[k]=X,Y}function Ri(){return Ri=Object.assign?Object.assign.bind():function(Y){for(var k=1;k<arguments.length;k++){var X=arguments[k];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Ri.apply(this,arguments)}function Xc(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,Ua(K.key),K)}}function Ua(Y){var k=function(X,K){if(ot(X)!=="object"||X===null)return X;var be=X[Symbol.toPrimitive];if(be!==void 0){var Ae=be.call(X,"string");if(ot(Ae)!=="object")return Ae;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(X)}(Y);return ot(k)==="symbol"?k:String(k)}function ms(Y,k){return ms=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},ms(Y,k)}function ln(Y){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},ln(Y)}var gs=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&ms(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=ln(K);if(be){var ue=ln(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(ot(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ie){if(Ie===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ie}(oe)}(this,j)});function je(j){var W;return function(ue,oe){if(!(ue instanceof oe))throw new TypeError("Cannot call a class as a function")}(this,je),(W=Ae.call(this,j)).state={loaded:!1},W}return k=je,(X=[{key:"onImageLoad",value:function(){var j=this;return this.state.loaded?null:function(W){j.props.onLoad(W),j.props.afterLoad(),j.setState({loaded:!0})}}},{key:"getImg",value:function(){var j=this.props,W=(j.afterLoad,j.beforeLoad,j.delayMethod,j.delayTime,j.effect,j.placeholder,j.placeholderSrc,j.scrollPosition,j.threshold,j.useIntersectionObserver,j.visibleByDefault,j.wrapperClassName,j.wrapperProps,function(ue,oe){if(ue==null)return{};var se,Ie,Xe=function(Ue,Pt){if(Ue==null)return{};var st,Et,Gn={},Qi=Object.keys(Ue);for(Et=0;Et<Qi.length;Et++)st=Qi[Et],Pt.indexOf(st)>=0||(Gn[st]=Ue[st]);return Gn}(ue,oe);if(Object.getOwnPropertySymbols){var Ke=Object.getOwnPropertySymbols(ue);for(Ie=0;Ie<Ke.length;Ie++)se=Ke[Ie],oe.indexOf(se)>=0||Object.prototype.propertyIsEnumerable.call(ue,se)&&(Xe[se]=ue[se])}return Xe}(j,Ti));return a().createElement("img",Ri({},W,{onLoad:this.onImageLoad()}))}},{key:"getLazyLoadImage",value:function(){var j=this.props,W=j.beforeLoad,ue=j.className,oe=j.delayMethod,se=j.delayTime,Ie=j.height,Xe=j.placeholder,Ke=j.scrollPosition,Ue=j.style,Pt=j.threshold,st=j.useIntersectionObserver,Et=j.visibleByDefault,Gn=j.width;return a().createElement(Oe,{beforeLoad:W,className:ue,delayMethod:oe,delayTime:se,height:Ie,placeholder:Xe,scrollPosition:Ke,style:Ue,threshold:Pt,useIntersectionObserver:st,visibleByDefault:Et,width:Gn},this.getImg())}},{key:"getWrappedLazyLoadImage",value:function(j){var W=this.props,ue=W.effect,oe=W.height,se=W.placeholderSrc,Ie=W.width,Xe=W.wrapperClassName,Ke=W.wrapperProps,Ue=this.state.loaded,Pt=Ue?" lazy-load-image-loaded":"",st=Ue||!se?{}:{backgroundImage:"url(".concat(se,")"),backgroundSize:"100% 100%"};return a().createElement("span",Ri({className:Xe+" lazy-load-image-background "+ue+Pt,style:Wt(Wt({},st),{},{color:"transparent",display:"inline-block",height:oe,width:Ie})},Ke),j)}},{key:"render",value:function(){var j=this.props,W=j.effect,ue=j.placeholderSrc,oe=j.visibleByDefault,se=j.wrapperClassName,Ie=j.wrapperProps,Xe=this.getLazyLoadImage();return(W||ue)&&!oe||se||Ie?this.getWrappedLazyLoadImage(Xe):Xe}}])&&Xc(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);gs.propTypes={onLoad:l.PropTypes.func,afterLoad:l.PropTypes.func,beforeLoad:l.PropTypes.func,delayMethod:l.PropTypes.string,delayTime:l.PropTypes.number,effect:l.PropTypes.string,placeholderSrc:l.PropTypes.string,threshold:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool,visibleByDefault:l.PropTypes.bool,wrapperClassName:l.PropTypes.string,wrapperProps:l.PropTypes.object},gs.defaultProps={onLoad:function(){},afterLoad:function(){return{}},beforeLoad:function(){return{}},delayMethod:"throttle",delayTime:300,effect:"",placeholderSrc:null,threshold:100,useIntersectionObserver:!0,visibleByDefault:!1,wrapperClassName:""};let Kc=gs})(),e1.exports=n})()});var ZT={};Bb(ZT,{AnnotationContext:()=>jT,AnnotationPageContext:()=>VT,AnnotationStyleProvider:()=>uT,Auth:()=>Mf,AuthProvider:()=>Rf,AuthRContext:()=>to,AuthReactContext:()=>kS,AuthReactContextActions:()=>OS,CanvasAnnotations:()=>KI,CanvasContext:()=>Vi,CanvasPanel:()=>Bt,CanvasStrategyProvider:()=>um,CanvasWorldObject:()=>cm,CollectionContext:()=>UT,CombinedMetadata:()=>ZI,ComplexTimelineProvider:()=>mm,ContextBridge:()=>Nf,ControlsReactContext:()=>Ma,CreateCustomShape:()=>Wm,CustomContextBridge:()=>HS,CustomContextBridgeProvider:()=>pI,EventsProvider:()=>hI,Image:()=>Zw,ImageService:()=>BT,ImageServiceLoaderContext:()=>Dw,InnerViewerProvider:()=>DS,LanguageProvider:()=>VI,LanguageString:()=>_w,LocaleString:()=>Ii,ManifestContext:()=>vf,ManifestMetadata:()=>eT,MediaPlayerProvider:()=>La,Metadata:()=>Da,PolygonSelector:()=>NT,RangeContext:()=>xf,ReactEventContext:()=>io,ReactVaultContext:()=>mr,Render3DModelStrategy:()=>wm,RenderAccompanyingCanvas:()=>Am,RenderAnnotationStrategy:()=>bm,RenderAudioStrategy:()=>Em,RenderComplexTimelineStrategy:()=>gm,RenderEmptyStrategy:()=>dm,RenderImageStrategy:()=>xm,RenderSvgEditorControls:()=>oT,RenderTextualContentStrategy:()=>ym,RenderVideoStrategy:()=>Tm,RenderYouTubeStrategy:()=>Rm,ResourceProvider:()=>ei,ResourceReactContext:()=>ea,SelectorControllerProvider:()=>sT,SequenceThumbnails:()=>nT,SimpleViewerProvider:()=>Of,SimpleViewerReactContext:()=>is,SingleCanvasThumbnail:()=>km,StrategyReactContext:()=>_a,ThumbnailFallbackImage:()=>ho,TranslationProvider:()=>jI,TransliterationProvider:()=>UI,VaultProvider:()=>Kr,ViewerPresetContext:()=>Ui,VirtualAnnotationProvider:()=>Vf,VisibleCanvasReactContext:()=>Jr,authDetailsForResource:()=>Af,createAuthStateStore:()=>Pf,createProbe:()=>Ef,defaultEmitter:()=>VS,emptyActions:()=>Zf,emptyStrategy:()=>Jf,expandTarget:()=>Nt,findAllCanvasesInRange:()=>oc,findFirstCanvasFromRange:()=>fS,findManifestSelectedRange:()=>NA,findSelectedRange:()=>Sf,flattenAnnotationPageIds:()=>em,formatTime:()=>Pc,get3dStrategy:()=>nm,getComplexTimelineStrategy:()=>rm,getDefaultAnnotationStyles:()=>zm,getImageStrategy:()=>Ia,getManifestSequence:()=>sc,getParsedTargetSelector:()=>ba,getRenderingStrategy:()=>sm,getTextualContentStrategy:()=>Ta,getVideoStrategy:()=>Ra,getVisibleCanvasesFromCanvasId:()=>BA,hasAuth:()=>oI,isImageApiSelector:()=>mc,makeAccessServiceRequest:()=>Cf,makeAccessTokenRequest:()=>lc,parseRotation:()=>gc,parseSelector:()=>Wn,parseSpecificResource:()=>kI,svgThemes:()=>y1,unknownResponse:()=>Ca,unsupportedStrategy:()=>et,useAnnotation:()=>Sa,useAnnotationPage:()=>$f,useAnnotationPageManager:()=>Ea,useAnnotationStyles:()=>Nm,useAnnotationsAtTime:()=>WT,useAuthActions:()=>LS,useAuthService:()=>zS,useAuthStore:()=>es,useAuthToken:()=>aI,useAuthTokens:()=>If,useCanvas:()=>Ce,useCanvasChoices:()=>HT,useCanvasClock:()=>qT,useCanvasSequence:()=>wf,useCanvasStartTime:()=>za,useCanvasSubset:()=>QT,useClosestLanguage:()=>kw,useCollection:()=>$T,useComplexTimeline:()=>qI,useContextBridge:()=>Ff,useCreateLocaleString:()=>WI,useCurrentAuth:()=>sI,useCustomContextBridge:()=>zf,useDispatch:()=>Bf,useEventEmitter:()=>fa,useEventListener:()=>GT,useExistingVault:()=>Zr,useExternalCollection:()=>YT,useExternalManifest:()=>yf,useExternalResource:()=>la,useIIIFLanguage:()=>Ec,useImage:()=>Bc,useImageService:()=>qm,useImageServiceLoader:()=>Oa,useImageTile:()=>XT,useIsAuthEnabled:()=>_f,useLoadImageService:()=>Aa,useLocaleString:()=>Ow,useManifest:()=>vt,useMediaActions:()=>$I,useMediaElements:()=>GI,useMediaState:()=>QI,usePaintables:()=>im,usePaintingAnnotations:()=>oo,usePolygonHelper:()=>Vm,useRange:()=>ua,useRenderControls:()=>ni,useRenderingStrategy:()=>am,useResourceContext:()=>Xt,useResourceEvents:()=>ya,useResources:()=>tm,useSearchService:()=>kf,useSelectorController:()=>Lm,useSelectorEmitter:()=>aT,useSelectorEvents:()=>Om,useSelectorHelper:()=>lT,useSimpleMediaPlayer:()=>ao,useSimpleViewer:()=>pa,useStrategy:()=>pt,useStyleHelper:()=>KT,useStyles:()=>ro,useSvgEditor:()=>Um,useThumbnail:()=>Qn,useTranslations:()=>pm,useTransliteration:()=>hm,useVault:()=>_e,useVaultEffect:()=>vm,useVaultSelector:()=>De,useViewerPreset:()=>ma,useVirtualAnnotationPage:()=>Df,useVirtualAnnotationPageContext:()=>jf,useVisibleCanvases:()=>eo});var mo=T(H(),1);var ii=T(H(),1);var or=(e,t,i)=>{let n=e.length,r=i||re(n);for(let a=0;a<n;a++)r[a]=a%5===0?e[a+1]<t[3]&&e[a+3]>t[1]&&e[a+2]<t[4]&&e[a+4]>t[2]?1:0:e[a];return r};function re(e,t,i){return new Float32Array(e,t,i)}var My=(e,t,i)=>{let n=e[1]<=t[3]&&e[3]>=t[1]&&e[2]<=t[4]&&e[4]>=t[2],r=i||re(5);return n?(r[0]=1,r[1]=Math.max(e[1],t[1]),r[2]=Math.max(e[2],t[2]),r[3]=Math.min(e[3],t[3]),r[4]=Math.min(e[4],t[4]),r):(r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r)},ky=e=>e.length/5;var pi=(e,t,i)=>{let n=i||re(9);return n[0]=e[0]*t[0]+e[1]*t[3]+e[2]*t[6],n[1]=e[0]*t[1]+e[1]*t[4]+e[2]*t[7],n[2]=e[0]*t[2]+e[1]*t[5]+e[2]*t[8],n[3]=e[3]*t[0]+e[4]*t[3]+e[5]*t[6],n[4]=e[3]*t[1]+e[4]*t[4]+e[5]*t[7],n[5]=e[3]*t[2]+e[4]*t[5]+e[5]*t[8],n[6]=e[6]*t[0]+e[7]*t[3]+e[8]*t[6],n[7]=e[6]*t[1]+e[7]*t[4]+e[8]*t[7],n[8]=e[6]*t[2]+e[7]*t[5]+e[8]*t[8],n},xe=class e{constructor(t){this.index=0,this.length=t,this.points=re(this.length)}static grid(t=1,i=1){return new e(5*t*i)}static point(t,i){let n=re(5);return n[0]=1,n[1]=t,n[2]=i,n[3]=t,n[4]=i,n}static positionPair(t){let i=re(5);return i[0]=1,i[1]=t.x1,i[2]=t.y1,i[3]=t.x2,i[4]=t.y2,i}static projection(t){return e.singleBox(t.width,t.height,t.x,t.y)}static singleBox(t,i,n=0,r=0){let a=re(5);return a[0]=1,a[1]=n,a[2]=r,a[3]=t+n,a[4]=i+r,a}row(t){return t(this)}addPoints(t,i,n,r){return this.points[this.index]=1,this.points[1+this.index]=t,this.points[2+this.index]=i,this.points[3+this.index]=n,this.points[4+this.index]=r,this.index+=5,this}addBox(t,i,n,r){return this.addPoints(t,i,t+n,i+r),this}build(){return this.points}};var Zt=(e,t)=>{let i=e.length;for(let n=0;n<i;n++)e[n]=n%5===0?t[6]*e[n+1]+t[7]*e[n+2]+t[8]*e[n]:n%5%2===1?t[0]*e[n]+t[1]*e[n+1]+t[2]:t[3]*e[n-1]+t[4]*e[n]+t[5];return e},wi=e=>{let t=re(9);return t[0]=e,t[4]=e,t[8]=1,t},ut=(e,t)=>{let i=re(9);return i[0]=1,i[2]=e,i[4]=1,i[5]=t,i[8]=1,i},On=(e,t,i)=>pi(ut((1-e)*t,(1-e)*i),wi(e)),bi=(e,t,i)=>{let n=e.length,r=i&&i.length>=n?i.slice(0,n):re(n);for(let a=0;a<n;a++)r[a]=a%5===0?t[6]*e[a+1]+t[7]*e[a+2]+t[8]*e[a]:a%5%2===1?t[0]*e[a]+t[1]*e[a+1]+t[2]:t[3]*e[a-1]+t[4]*e[a]+t[5];return r};var Ns=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,jb=typeof AbortController=="function",Nl=jb?AbortController:class{constructor(){this.signal=new Oy}abort(t=new Error("This operation was aborted")){this.signal.reason=this.signal.reason||t,this.signal.aborted=!0,this.signal.dispatchEvent({type:"abort",target:this.signal})}},Vb=typeof AbortSignal=="function",Ub=typeof Nl.AbortSignal=="function",Oy=Vb?AbortSignal:Ub?Nl.AbortController:class{constructor(){this.reason=void 0,this.aborted=!1,this._listeners=[]}dispatchEvent(t){t.type==="abort"&&(this.aborted=!0,this.onabort(t),this._listeners.forEach(i=>i(t),this))}onabort(){}addEventListener(t,i){t==="abort"&&this._listeners.push(i)}removeEventListener(t,i){t==="abort"&&(this._listeners=this._listeners.filter(n=>n!==i))}},fh=new Set,dh=(e,t)=>{let i=`LRU_CACHE_OPTION_${e}`;Bl(i)&&mh(i,`${e} option`,`options.${t}`,Mo)},hh=(e,t)=>{let i=`LRU_CACHE_METHOD_${e}`;if(Bl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);mh(i,`${e} method`,`cache.${t}()`,r)}},Wb=(e,t)=>{let i=`LRU_CACHE_PROPERTY_${e}`;if(Bl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);mh(i,`${e} property`,`cache.${t}`,r)}},Ly=(...e)=>{typeof process=="object"&&process&&typeof process.emitWarning=="function"?process.emitWarning(...e):console.error(...e)},Bl=e=>!fh.has(e),mh=(e,t,i,n)=>{fh.add(e);let r=`The ${t} is deprecated. Please use ${i} instead.`;Ly(r,"DeprecationWarning",e,n)},sr=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),zy=e=>sr(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?_o:null:null,_o=class extends Array{constructor(t){super(t),this.fill(0)}},ph=class{constructor(t){if(t===0)return[];let i=zy(t);this.heap=new i(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},Mo=class e{constructor(t={}){let{max:i=0,ttl:n,ttlResolution:r=1,ttlAutopurge:a,updateAgeOnGet:l,updateAgeOnHas:c,allowStale:p,dispose:m,disposeAfter:h,noDisposeOnSet:y,noUpdateTTL:S,maxSize:w=0,maxEntrySize:v=0,sizeCalculation:x,fetchMethod:A,fetchContext:C,noDeleteOnFetchRejection:I,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:O,allowStaleOnFetchAbort:L,ignoreFetchAbort:M}=t,{length:Q,maxAge:V,stale:J}=t instanceof e?{}:t;if(i!==0&&!sr(i))throw new TypeError("max option must be a nonnegative integer");let U=i?zy(i):Array;if(!U)throw new Error("invalid max value: "+i);if(this.max=i,this.maxSize=w,this.maxEntrySize=v||this.maxSize,this.sizeCalculation=x||Q,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=A||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=C,!this.fetchMethod&&C!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(i).fill(null),this.valList=new Array(i).fill(null),this.next=new U(i),this.prev=new U(i),this.head=0,this.tail=0,this.free=new ph(i),this.initialFill=1,this.size=0,typeof m=="function"&&(this.dispose=m),typeof h=="function"?(this.disposeAfter=h,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!y,this.noUpdateTTL=!!S,this.noDeleteOnFetchRejection=!!I,this.allowStaleOnFetchRejection=!!O,this.allowStaleOnFetchAbort=!!L,this.ignoreFetchAbort=!!M,this.maxEntrySize!==0){if(this.maxSize!==0&&!sr(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!sr(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!p||!!J,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!c,this.ttlResolution=sr(r)||r===0?r:1,this.ttlAutopurge=!!a,this.ttl=n||V||0,this.ttl){if(!sr(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){let q="LRU_CACHE_UNBOUNDED";Bl(q)&&(fh.add(q),Ly("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",q,e))}J&&dh("stale","allowStale"),V&&dh("maxAge","ttl"),Q&&dh("length","sizeCalculation")}getRemainingTTL(t){return this.has(t,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new _o(this.max),this.starts=new _o(this.max),this.setItemTTL=(n,r,a=Ns.now())=>{if(this.starts[n]=r!==0?a:0,this.ttls[n]=r,r!==0&&this.ttlAutopurge){let l=setTimeout(()=>{this.isStale(n)&&this.delete(this.keyList[n])},r+1);l.unref&&l.unref()}},this.updateItemAge=n=>{this.starts[n]=this.ttls[n]!==0?Ns.now():0},this.statusTTL=(n,r)=>{n&&(n.ttl=this.ttls[r],n.start=this.starts[r],n.now=t||i(),n.remainingTTL=n.now+n.ttl-n.start)};let t=0,i=()=>{let n=Ns.now();if(this.ttlResolution>0){t=n;let r=setTimeout(()=>t=0,this.ttlResolution);r.unref&&r.unref()}return n};this.getRemainingTTL=n=>{let r=this.keyMap.get(n);return r===void 0?0:this.ttls[r]===0||this.starts[r]===0?1/0:this.starts[r]+this.ttls[r]-(t||i())},this.isStale=n=>this.ttls[n]!==0&&this.starts[n]!==0&&(t||i())-this.starts[n]>this.ttls[n]}updateItemAge(t){}statusTTL(t,i){}setItemTTL(t,i,n){}isStale(t){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new _o(this.max),this.removeItemSize=t=>{this.calculatedSize-=this.sizes[t],this.sizes[t]=0},this.requireSize=(t,i,n,r)=>{if(this.isBackgroundFetch(i))return 0;if(!sr(n))if(r){if(typeof r!="function")throw new TypeError("sizeCalculation must be a function");if(n=r(i,t),!sr(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return n},this.addItemSize=(t,i,n)=>{if(this.sizes[t]=i,this.maxSize){let r=this.maxSize-this.sizes[t];for(;this.calculatedSize>r;)this.evict(!0)}this.calculatedSize+=this.sizes[t],n&&(n.entrySize=i,n.totalCalculatedSize=this.calculatedSize)}}removeItemSize(t){}addItemSize(t,i){}requireSize(t,i,n,r){if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:t=this.allowStale}={}){if(this.size)for(let i=this.tail;!(!this.isValidIndex(i)||((t||!this.isStale(i))&&(yield i),i===this.head));)i=this.prev[i]}*rindexes({allowStale:t=this.allowStale}={}){if(this.size)for(let i=this.head;!(!this.isValidIndex(i)||((t||!this.isStale(i))&&(yield i),i===this.tail));)i=this.next[i]}isValidIndex(t){return t!==void 0&&this.keyMap.get(this.keyList[t])===t}*entries(){for(let t of this.indexes())this.valList[t]!==void 0&&this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield[this.keyList[t],this.valList[t]])}*rentries(){for(let t of this.rindexes())this.valList[t]!==void 0&&this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield[this.keyList[t],this.valList[t]])}*keys(){for(let t of this.indexes())this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.keyList[t])}*rkeys(){for(let t of this.rindexes())this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.keyList[t])}*values(){for(let t of this.indexes())this.valList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.valList[t])}*rvalues(){for(let t of this.rindexes())this.valList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.valList[t])}[Symbol.iterator](){return this.entries()}find(t,i){for(let n of this.indexes()){let r=this.valList[n],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;if(a!==void 0&&t(a,this.keyList[n],this))return this.get(this.keyList[n],i)}}forEach(t,i=this){for(let n of this.indexes()){let r=this.valList[n],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;a!==void 0&&t.call(i,a,this.keyList[n],this)}}rforEach(t,i=this){for(let n of this.rindexes()){let r=this.valList[n],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;a!==void 0&&t.call(i,a,this.keyList[n],this)}}get prune(){return hh("prune","purgeStale"),this.purgeStale}purgeStale(){let t=!1;for(let i of this.rindexes({allowStale:!0}))this.isStale(i)&&(this.delete(this.keyList[i]),t=!0);return t}dump(){let t=[];for(let i of this.indexes({allowStale:!0})){let n=this.keyList[i],r=this.valList[i],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;if(a===void 0)continue;let l={value:a};if(this.ttls){l.ttl=this.ttls[i];let c=Ns.now()-this.starts[i];l.start=Math.floor(Date.now()-c)}this.sizes&&(l.size=this.sizes[i]),t.unshift([n,l])}return t}load(t){this.clear();for(let[i,n]of t){if(n.start){let r=Date.now()-n.start;n.start=Ns.now()-r}this.set(i,n.value,n)}}dispose(t,i,n){}set(t,i,{ttl:n=this.ttl,start:r,noDisposeOnSet:a=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:p=this.noUpdateTTL,status:m}={}){if(l=this.requireSize(t,i,l,c),this.maxEntrySize&&l>this.maxEntrySize)return m&&(m.set="miss",m.maxEntrySizeExceeded=!0),this.delete(t),this;let h=this.size===0?void 0:this.keyMap.get(t);if(h===void 0)h=this.newIndex(),this.keyList[h]=t,this.valList[h]=i,this.keyMap.set(t,h),this.next[this.tail]=h,this.prev[h]=this.tail,this.tail=h,this.size++,this.addItemSize(h,l,m),m&&(m.set="add"),p=!1;else{this.moveToTail(h);let y=this.valList[h];if(i!==y){if(this.isBackgroundFetch(y)?y.__abortController.abort(new Error("replaced")):a||(this.dispose(y,t,"set"),this.disposeAfter&&this.disposed.push([y,t,"set"])),this.removeItemSize(h),this.valList[h]=i,this.addItemSize(h,l,m),m){m.set="replace";let S=y&&this.isBackgroundFetch(y)?y.__staleWhileFetching:y;S!==void 0&&(m.oldValue=S)}}else m&&(m.set="update")}if(n!==0&&this.ttl===0&&!this.ttls&&this.initializeTTLTracking(),p||this.setItemTTL(h,n,r),this.statusTTL(m,h),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){let t=this.valList[this.head];return this.evict(!0),t}}evict(t){let i=this.head,n=this.keyList[i],r=this.valList[i];return this.isBackgroundFetch(r)?r.__abortController.abort(new Error("evicted")):(this.dispose(r,n,"evict"),this.disposeAfter&&this.disposed.push([r,n,"evict"])),this.removeItemSize(i),t&&(this.keyList[i]=null,this.valList[i]=null,this.free.push(i)),this.head=this.next[i],this.keyMap.delete(n),this.size--,i}has(t,{updateAgeOnHas:i=this.updateAgeOnHas,status:n}={}){let r=this.keyMap.get(t);if(r!==void 0)if(this.isStale(r))n&&(n.has="stale",this.statusTTL(n,r));else return i&&this.updateItemAge(r),n&&(n.has="hit"),this.statusTTL(n,r),!0;else n&&(n.has="miss");return!1}peek(t,{allowStale:i=this.allowStale}={}){let n=this.keyMap.get(t);if(n!==void 0&&(i||!this.isStale(n))){let r=this.valList[n];return this.isBackgroundFetch(r)?r.__staleWhileFetching:r}}backgroundFetch(t,i,n,r){let a=i===void 0?void 0:this.valList[i];if(this.isBackgroundFetch(a))return a;let l=new Nl;n.signal&&n.signal.addEventListener("abort",()=>l.abort(n.signal.reason));let c={signal:l.signal,options:n,context:r},p=(w,v=!1)=>{let{aborted:x}=l.signal,A=n.ignoreFetchAbort&&w!==void 0;return n.status&&(x&&!v?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,A&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),x&&!A&&!v?h(l.signal.reason):(this.valList[i]===S&&(w===void 0?S.__staleWhileFetching?this.valList[i]=S.__staleWhileFetching:this.delete(t):(n.status&&(n.status.fetchUpdated=!0),this.set(t,w,c.options))),w)},m=w=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=w),h(w)),h=w=>{let{aborted:v}=l.signal,x=v&&n.allowStaleOnFetchAbort,A=x||n.allowStaleOnFetchRejection,C=A||n.noDeleteOnFetchRejection;if(this.valList[i]===S&&(!C||S.__staleWhileFetching===void 0?this.delete(t):x||(this.valList[i]=S.__staleWhileFetching)),A)return n.status&&S.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),S.__staleWhileFetching;if(S.__returned===S)throw w},y=(w,v)=>{this.fetchMethod(t,a,c).then(x=>w(x),v),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(w(),n.allowStaleOnFetchAbort&&(w=x=>p(x,!0)))})};n.status&&(n.status.fetchDispatched=!0);let S=new Promise(y).then(p,m);return S.__abortController=l,S.__staleWhileFetching=a,S.__returned=null,i===void 0?(this.set(t,S,{...c.options,status:void 0}),i=this.keyMap.get(t)):this.valList[i]=S,S}isBackgroundFetch(t){return t&&typeof t=="object"&&typeof t.then=="function"&&Object.prototype.hasOwnProperty.call(t,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(t,"__returned")&&(t.__returned===t||t.__returned===null)}async fetch(t,{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:a=this.ttl,noDisposeOnSet:l=this.noDisposeOnSet,size:c=0,sizeCalculation:p=this.sizeCalculation,noUpdateTTL:m=this.noUpdateTTL,noDeleteOnFetchRejection:h=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:y=this.allowStaleOnFetchRejection,ignoreFetchAbort:S=this.ignoreFetchAbort,allowStaleOnFetchAbort:w=this.allowStaleOnFetchAbort,fetchContext:v=this.fetchContext,forceRefresh:x=!1,status:A,signal:C}={}){if(!this.fetchMethod)return A&&(A.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:r,status:A});let I={allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:r,ttl:a,noDisposeOnSet:l,size:c,sizeCalculation:p,noUpdateTTL:m,noDeleteOnFetchRejection:h,allowStaleOnFetchRejection:y,allowStaleOnFetchAbort:w,ignoreFetchAbort:S,status:A,signal:C},E=this.keyMap.get(t);if(E===void 0){A&&(A.fetch="miss");let O=this.backgroundFetch(t,E,I,v);return O.__returned=O}else{let O=this.valList[E];if(this.isBackgroundFetch(O)){let J=i&&O.__staleWhileFetching!==void 0;return A&&(A.fetch="inflight",J&&(A.returnedStale=!0)),J?O.__staleWhileFetching:O.__returned=O}let L=this.isStale(E);if(!x&&!L)return A&&(A.fetch="hit"),this.moveToTail(E),n&&this.updateItemAge(E),this.statusTTL(A,E),O;let M=this.backgroundFetch(t,E,I,v),Q=M.__staleWhileFetching!==void 0,V=Q&&i;return A&&(A.fetch=Q&&L?"stale":"refresh",V&&L&&(A.returnedStale=!0)),V?M.__staleWhileFetching:M.__returned=M}}get(t,{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:a}={}){let l=this.keyMap.get(t);if(l!==void 0){let c=this.valList[l],p=this.isBackgroundFetch(c);return this.statusTTL(a,l),this.isStale(l)?(a&&(a.get="stale"),p?(a&&(a.returnedStale=i&&c.__staleWhileFetching!==void 0),i?c.__staleWhileFetching:void 0):(r||this.delete(t),a&&(a.returnedStale=i),i?c:void 0)):(a&&(a.get="hit"),p?c.__staleWhileFetching:(this.moveToTail(l),n&&this.updateItemAge(l),c))}else a&&(a.get="miss")}connect(t,i){this.prev[i]=t,this.next[t]=i}moveToTail(t){t!==this.tail&&(t===this.head?this.head=this.next[t]:this.connect(this.prev[t],this.next[t]),this.connect(this.tail,t),this.tail=t)}get del(){return hh("del","delete"),this.delete}delete(t){let i=!1;if(this.size!==0){let n=this.keyMap.get(t);if(n!==void 0)if(i=!0,this.size===1)this.clear();else{this.removeItemSize(n);let r=this.valList[n];this.isBackgroundFetch(r)?r.__abortController.abort(new Error("deleted")):(this.dispose(r,t,"delete"),this.disposeAfter&&this.disposed.push([r,t,"delete"])),this.keyMap.delete(t),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return i}clear(){for(let t of this.rindexes({allowStale:!0})){let i=this.valList[t];if(this.isBackgroundFetch(i))i.__abortController.abort(new Error("deleted"));else{let n=this.keyList[t];this.dispose(i,n,"delete"),this.disposeAfter&&this.disposed.push([i,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return hh("reset","clear"),this.clear}get length(){return Wb("length","size"),this.size}static get AbortController(){return Nl}static get AbortSignal(){return Oy}},Fy=Mo;var Ux=T(nv(),1);var dt=T(H(),1),Au=T(H(),1),IP=T(B(),1);var Ci=T(H(),1);function av(e,t){let i;return(...n)=>{window.clearTimeout(i),i=window.setTimeout(()=>e(...n),t)}}function Hl({debounce:e,scroll:t,polyfill:i,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){let r=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!r)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[a,l]=(0,Ci.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=(0,Ci.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:a,orientationHandler:null}),p=e?typeof e=="number"?e:e.scroll:null,m=e?typeof e=="number"?e:e.resize:null,h=(0,Ci.useRef)(!1);(0,Ci.useEffect)(()=>(h.current=!0,()=>void(h.current=!1)));let[y,S,w]=(0,Ci.useMemo)(()=>{let C=()=>{if(!c.current.element)return;let{left:I,top:E,width:O,height:L,bottom:M,right:Q,x:V,y:J}=c.current.element.getBoundingClientRect(),U={left:I,top:E,width:O,height:L,bottom:M,right:Q,x:V,y:J};c.current.element instanceof HTMLElement&&n&&(U.height=c.current.element.offsetHeight,U.width=c.current.element.offsetWidth),Object.freeze(U),h.current&&!nC(c.current.lastBounds,U)&&l(c.current.lastBounds=U)};return[C,m?av(C,m):C,p?av(C,p):C]},[l,n,p,m]);function v(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(C=>C.removeEventListener("scroll",w,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null),c.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",c.current.orientationHandler))}function x(){c.current.element&&(c.current.resizeObserver=new r(w),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(C=>C.addEventListener("scroll",w,{capture:!0,passive:!0})),c.current.orientationHandler=()=>{w()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",c.current.orientationHandler))}let A=C=>{!C||C===c.current.element||(v(),c.current.element=C,c.current.scrollContainers=lv(C),x())};return tC(w,!!t),eC(S),(0,Ci.useEffect)(()=>{v(),x()},[t,w,S]),(0,Ci.useEffect)(()=>v,[]),[A,a,y]}function eC(e){(0,Ci.useEffect)(()=>{let t=e;return window.addEventListener("resize",t),()=>void window.removeEventListener("resize",t)},[e])}function tC(e,t){(0,Ci.useEffect)(()=>{if(t){let i=e;return window.addEventListener("scroll",i,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",i,!0)}},[e,t])}function lv(e){let t=[];if(!e||e===document.body)return t;let{overflow:i,overflowX:n,overflowY:r}=window.getComputedStyle(e);return[i,n,r].some(a=>a==="auto"||a==="scroll")&&t.push(e),[...t,...lv(e.parentElement)]}var iC=["x","y","top","bottom","left","right","width","height"],nC=(e,t)=>iC.every(i=>e[i]===t[i]);var Op=T(H(),1),wn=T(H(),1),Hx=T(Pv(),1),qx=T(H(),1),Ru=T(H(),1),zo=T(B(),1),Di=T(H(),1),t0=T(H(),1),i0=T(H(),1),n0=T(B(),1),Jt=T(B(),1),_u=T(H(),1);var Zs=T(B(),1),zp=T(H(),1),o0=T(H(),1),qP=T(H(),1),s0=T(H(),1),l0=T(H(),1),Sn=T(H(),1),u0=T(H(),1),Rp=T(B(),1),c0=T(H(),1),xn=T(H(),1),_t=T(H(),1),d0=T(H(),1),Lu=T(H(),1),St=T(B(),1),_p=T(B(),1),Mp=T(H(),1),Vr=T(B(),1),p0=T(H(),1);var oC=Object.defineProperty,sC=(e,t,i)=>t in e?oC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Xl=(e,t,i)=>(sC(e,typeof t!="symbol"?t+"":t,i),i);function Dr(e){return e.endsWith("info.json")?e:e.endsWith("/")?`${e}info.json`:`${e}/info.json`}var aC="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Tv="http://library.stanford.edu/iiif/image-api/compliance.html#level1",Rv="http://library.stanford.edu/iiif/image-api/compliance.html#level2",lC="http://library.stanford.edu/iiif/image-api/conformance.html#level0",_v="http://library.stanford.edu/iiif/image-api/conformance.html#level1",Mv="http://library.stanford.edu/iiif/image-api/conformance.html#level2",uC="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",kv="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Ov="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",cC="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Lv="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",zv="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",dC="http://iiif.io/api/image/1/level0.json",hC="http://iiif.io/api/image/1/profiles/level0.json",Fv="http://iiif.io/api/image/1/level1.json",Nv="http://iiif.io/api/image/1/profiles/level1.json",Bv="http://iiif.io/api/image/1/level2.json",Dv="http://iiif.io/api/image/1/profiles/level2.json",pC="http://iiif.io/api/image/2/level0.json",fC="http://iiif.io/api/image/2/profiles/level0.json",jv="http://iiif.io/api/image/2/level1.json",Vv="http://iiif.io/api/image/2/profiles/level1.json",Uv="http://iiif.io/api/image/2/level2.json",Wv="http://iiif.io/api/image/2/profiles/level2.json",mC="level0",Hv="level1",qv="level2",gC="http://iiif.io/api/image/2/level0",Qv="http://iiif.io/api/image/2/level1",$v="http://iiif.io/api/image/2/level2",yC="https://iiif.io/api/image/1.1/compliance/#level0",Gv="https://iiif.io/api/image/1.1/compliance/#level1",Yv="https://iiif.io/api/image/1.1/compliance/#level2",Xv=[$v,Rv,Mv,Ov,zv,Bv,Dv,Uv,Wv,qv,Yv],Kv=[...Xv,Qv,Tv,_v,kv,Lv,Fv,Nv,jv,Vv,Hv,Gv],vC=[gC,Qv,$v,aC,Tv,Rv,lC,_v,Mv,uC,kv,Ov,cC,Lv,zv,dC,hC,Fv,Nv,Bv,Dv,pC,fC,jv,Vv,Uv,Wv,mC,Hv,qv,yC,Gv,Yv];var xC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["sizeByWhListed"]},SC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPx","regionSquare","sizeByWhListed","sizeByH","sizeByW","sizeByWh"]},wC={extraFormats:["jpg","png"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPct","regionByPx","regionSquare","rotationBy90s","sizeByWhListed","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"]};function bC(e){return Xv.indexOf(e)!==-1?wC:Kv.indexOf(e)!==-1?SC:xC}function CC(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],i={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let n of t)if(typeof n=="string"&&(n=bC(n)),!!n){if(n.formats)for(let r of n.formats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.qualities)for(let r of n.qualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.supports)for(let r of n.supports)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);if(n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea),n.extraFormats)for(let r of n.extraFormats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.extraQualities)for(let r of n.extraQualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.extraFeatures)for(let r of n.extraFeatures)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea)}if(e.extraFormats)for(let n of e.extraFormats)i.extraFormats.indexOf(n)===-1&&i.extraFormats.push(n);if(e.extraFeatures)for(let n of e.extraFeatures)i.extraFeatures.indexOf(n)===-1&&i.extraFeatures.push(n);if(e.extraQualities)for(let n of e.extraQualities)i.extraQualities.indexOf(n)===-1&&i.extraQualities.push(n);return i}function PC(e){try{if(e==="full")return{full:!0};if(e==="square")return{square:!0};let t=e.startsWith("pct:"),i=e.substr(t?4:0).split(",").map(n=>parseFloat(n));return{x:i[0],y:i[1],w:i[2],h:i[3],percent:t}}catch{throw new Error("Expected 'full', 'square' or 'x,y,w,h'. Found "+e)}}function EC(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]==="^"&&(t.upscaled=!0,e=e.slice(1)),e==="max"||e==="full")return t.max=!0,t.serialiseAsFull=e==="full",t;if(e[0]==="!"&&(t.confined=!0,e=e.slice(1)),e[0]==="p")return t.percentScale=parseFloat(e.slice(4)),t;let i=e.split(",").map(n=>n.trim());return i.length&&typeof i[0]<"u"&&(i[0]!==""&&(t.width=parseInt(i[0],10)),typeof i[1]<"u"&&i[1]!==""?(t.height=parseInt(i[1],10),t.version=2):t.version=3),t}function AC(e){let t={angle:0};if(e[0]==="!"&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw new Error(`Invalid rotation ${e}`);return t}function IC(e,t=""){let i=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!i)throw new Error(`Invalid or unknown input ${e}`);let n=i[2],r=i[3],a=i[4];if(a[0]==="/"&&(a=a.substring(1)),t.length>0){if(t[0]==="/"&&(t=t.substring(1)),t!==a.substring(0,t.length))throw new Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:n,server:r,path:a,prefix:t}}function TC(e,t=""){let{path:i,scheme:n,server:r,prefix:a}=IC(e,t),l=(i||"").split("/").reverse(),[c,p,m,h,...y]=l,S=y.reverse().filter(Boolean).join("/");if(l.length===1||c==="")return{type:"base",scheme:n,server:r,prefix:a,identifier:S};if(c==="info.json"){let[,...v]=l;return{type:"info",scheme:n,server:r,prefix:a,identifier:v.reverse().filter(Boolean).join("/")}}let w=(c||"").split(".");if(typeof w[1]>"u"||typeof w[0]>"u"||typeof h>"u"||typeof m>"u"||typeof p>"u")throw new Error("Invalid image request");return{type:"image",scheme:n,server:r,prefix:a,identifier:S,originalPath:i,region:PC(h),size:EC(m),rotation:AC(p),quality:w[0],format:w[1]}}function RC(e){let t=TC(Dr(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=CC(e);return{identifier:t.identifier,originalPath:"",server:t.server,prefix:t.prefix,scheme:t.scheme,type:"image",quality:i.extraQualities.indexOf("default")===-1?i.extraQualities[0]:"default",region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:"jpg",rotation:{angle:0}}}function _C(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];if(l){let c=l.width;r.push(e/c)}}return r}function MC(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];l&&r.push({width:Math.floor(e/l),height:Math.floor(t/l)})}return r}function ft(e){if(e["@id"])return e["@id"];if(e.id)return e.id}function Zl(e){if(!e||!e.profile||!ft(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&vC.indexOf(i)!==-1)return!0;return!1}function kC(e){if(!Zl(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"){if(Kv.indexOf(i)!==-1)return!0}else{let n=[...i.supports||[],...i.extraFeatures||[]];if(n.indexOf("regionByPx")!==-1&&(n.indexOf("sizeByW")!==-1||n.indexOf("sizeByWh")!==-1))return!0}return!1}function Kl(e,t){if(t&&t.profile){let i=t.profile;if(i){let n=Array.isArray(i)?i:[i];return n.includes(`level${e}`)||n.includes(`http://iiif.io/api/image/2/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`)}}return!1}function Lh(e){return Zl(e)?Kl(0,e)?0:Kl(1,e)?1:Kl(2,e)?2:null:null}function Zv(e){return(e["@context"]?Array.isArray(e["@context"])?e["@context"]:[e["@context"]]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1}function OC(e){if(!kC(e))return[];let t=[],i=Array.isArray(e.profile)?e.profile:[e.profile],n=i.length;for(let r=0;r<n;r++){let a=i[r];if(a&&typeof a!="string"&&(a.maxHeight||a.maxWidth))return[{id:ft(e),type:"variable",minWidth:0,minHeight:0,maxHeight:a.maxHeight||a.maxWidth,maxWidth:a.maxWidth||a.maxHeight,level:Lh(e),version:e["@context"]==="http://iiif.io/api/image/3/context.json"?3:2}]}if(e.tiles){let r=e.tiles.length;for(let a=0;a<r;a++){let l=e.tiles[a];l&&(l.height||l.width)&&t.push({id:ft(e),type:"variable",minHeight:0,minWidth:0,maxHeight:l.height||l.width,maxWidth:l.width,level:Lh(e),version:Zv(e)?3:2})}}return t}function Ev(e){let t=/^.*\/(full)\/(((\d+),(\d+)?)|max)\/(\d+)\/default\.(jpg|png|jpeg)$/,i=e.match(t);if(i&&i[4]&&i[5]){let n=i[1],r=parseInt(i[4],10),a=parseInt(i[5],10),l=i[7];if((n==="max"||n==="full")&&r&&a&&l)return{type:"fixed",id:e,height:a,width:r}}return{type:"unknown",id:e}}function LC(e){if(e["@type"])return e["@type"];if(e.type)return e.type}function zC(e){if(typeof e=="string")return Ev(e);let t=LC(e);if(t!=="Image"&&t!=="sc:Image")return null;let i=e,n=ft(i);return n?n&&i.width&&i.height?{id:n,type:"fixed",width:i.width,height:i.height,unsafe:!0}:Ev(n):null}function FC(e){return Zl(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:ft(e),type:"fixed-service",height:t.height,width:t.width,level:Lh(e),version:Zv(e)?3:2})):[]}function Av(e){let t=[],i=e.length;for(let n=0;n<i;n++){let r=e[n];if(!r)continue;let a=FC(r);a.length&&t.push(...a);let l=OC(r);l.length&&t.push(...l)}return t}function Jv(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],i=t.length,n=[];for(let r=0;r<i;r++)Zl(t[r])&&n.push(t[r]);return n}function NC(e,t=!0,i){let n=[],r=zC(e);if(r===null)return n;let a=e;if(n.push(r),t&&a&&a.width&&a.height){let l=[],c=Jv(a);for(let p of c){let m={id:ft(p),width:a.width,height:a.height};if(i.canLoadSync(m)){let h=i.loadServiceSync(m);h&&(h.height||(h.height=a.height),h.width||(h.width=a.width),l.push(...Av([h])))}}if(l.length)return n.push(...l),n}return a.service&&n.push(...Av(a.service)),n}function BC({x:e=0,y:t=0,w:i,h:n,full:r,square:a,percent:l}){if(r)return"full";if(a)return"square";if(typeof i>"u"||typeof n>"u")throw new Error("RegionParameter: invalid region");let c=`${e},${t},${i},${n}`;return l?`pct:${c}`:c}function DC({max:e,percentScale:t,upscaled:i,confined:n,width:r,height:a,serialiseAsFull:l,version:c}){let p=[];return i&&p.push("^"),e?(p.push(l?"full":"max"),p.join("")):(n&&p.push("!"),t&&p.push(`pct:${t}`),r&&p.push(`${r}`),p.push(","),a&&c===3&&p.push(`${a}`),p.join(""))}function jC(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function VC(e,t){let i=e.prefix.startsWith("/")?e.prefix.substr(1):e.prefix,n=`${e.scheme}://${e.server}/${i?`${i}/`:""}${e.identifier}`;if(e.type==="base")return n;if(e.type==="info")return`${n}/info.json`;let{size:r}=e,{region:a,rotation:l,format:c,quality:p}=e;if(t){let m=t["@context"]?Array.isArray(t["@context"])?t["@context"]:[t["@context"]]:[],h=t.profile,y=m.indexOf("http://iiif.io/api/image/2/context.json")!==-1||h==="level2",S=m.indexOf("http://iiif.io/api/image/3/context.json")!==-1;if((r.width===t.width&&!r.height||r.height===t.height&&!r.width||r.width===t.width&&r.height===t.height)&&(r={...r,max:!0}),y&&(r.max&&!r.serialiseAsFull&&(r={...r,serialiseAsFull:!0}),!r.max&&r.width&&r.height&&(r={...r,height:void 0}),r={...r,version:2}),S){if(r.max&&r.serialiseAsFull&&(r={...r,serialiseAsFull:!1}),r.width&&!r.height&&t.width&&t.height){let w=t.height/t.width;r={...r,height:Math.ceil(r.width*w)}}r={...r,version:3}}}return[n,BC(a),DC(r),jC(l),`${p}.${c}`].filter(Boolean).join("/")}function Oh(e,t,i){let n=RC({"@context":e.version===3?"http://iiif.io/api/image/3/context.json":"http://iiif.io/api/image/2/context.json",id:Dr(ft(e)),profile:e.level===null||typeof e.level>"u"?"level0":`level${e.level}`,type:e.version===3?"ImageService3":"ImageService2"});if(n.type!=="image")throw new Error("Invalid service");return n.size.max=!1,n.size.width=t,n.size.height=i,{id:VC(n),type:"fixed",width:t,height:i||e.height/(e.width||1)*t,unsafe:e.width>t}}function ko(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,"");return t.indexOf("/")!==-1?t.split("/")[0]:t}function UC(e,t,i){let n=e.width?e.width:e.maxWidth;return i.height<=e.maxHeight&&i.width<=e.maxWidth&&i.height>=e.minHeight&&i.width>=e.minWidth&&(!t||Math.abs(i.width-n)<Math.abs(t.width-n))}function WC(e,t){let i=[],n=Object.assign({unsafeImageService:!1,atAnyCost:!0,fallback:!0,minHeight:64,minWidth:64,maxHeight:1/0,maxWidth:1/0,returnAllOptions:!1,preferFixedSize:!1,allowUnsafe:!1,explain:!1,height:0,width:0},e),r=(h,y=0)=>n.explain?i.push(new Array(y).fill(0).map(S=>" ").join("")+h().trim()):void 0,a=[],l=[],c=null;r(()=>`Using configuration: ${JSON.stringify(n,null,2)}`);let p=(h,y)=>{if(r(()=>"Swapping choice",3),UC(n,y,h)){if(n.preferFixedSize&&h.unsafe){r(()=>`We found an image that was marked as unsafe, but it was the best size. (${h.id})`,4),l.push(h);return}n.returnAllOptions&&y&&l.push(y),r(()=>`We found a new image that was the best size. (${h.id})`,4),c=h}else n.returnAllOptions&&l.push(h)};r(()=>`The input shows we have ${t.length} list(s) of candidates to choose from.`);let m=t.length;for(let h=0;h<m;h++){let y=t[h]();r(()=>`Candidate group ${h}: ${JSON.stringify(y,null,2)}`,1);let S=y.length;r(()=>`Checking candidate list number ${h} and found ${S} potential ways of creating image(s)`,1);for(let w=0;w<S;w++){let v=y[w];if(r(()=>`-> Checking candidate ${w}`,1),v.type==="unknown"&&n.atAnyCost&&(r(()=>`We've found an unknown image type, adding this to the "last resort" list`,2),a.push(v)),v.type==="fixed"&&(v.unsafe?(r(()=>`We've found an unsafe fixed image type, adding this to the "last resort" list`,2),a.push(v)):(r(()=>"We've found a fixed size image, checking if it matches the request",2),p(v,c))),v.type==="fixed-service")if(n.unsafeImageService){r(()=>"Checking for an image from the tile source, without calculating the right height and width (unsafeImageService)",2);let x=Oh(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=Oh(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=Oh({id:v.id,type:"fixed-service",width:v.maxWidth,height:v.maxWidth,level:v.level,version:v.version},v.maxWidth);p(x,c)}}if(c&&!n.returnAllOptions){if(c.unsafe||n.allowUnsafe)continue;r(()=>`We found a match in choice list number ${h}, no searching any more`);break}}return n.atAnyCost&&l.length===0?(r(()=>c?`We found an image! ${c.id} of type ${c.type}`:'We found no images, but "atAnyCost" is set, so returning that'),{best:c||a[0]||null,fallback:a.slice(1),log:i}):n.returnAllOptions?(r(()=>"Returning all options that we have found"),{best:(n.atAnyCost?c||l[0]||a[0]:c||l[0])||null,fallback:[...l,...a],log:i}):(r(()=>"Returning the best image that we found, and a fallback"),{best:c||l[0]||null,fallback:c?l:l.slice(1),log:i})}function HC(e,t,i){let n=e>t?e:t,r=i.length,a=[];for(let l=0;l<r;l++){let c=i[l];if(!c||c.scaleFactors.length===0)continue;let p=c.scaleFactors[0];if(!p)continue;let m=n/p,h=[p];for(;m>=c.width;)p=p*2,h.push(p),m=m/2;a.push({...c,scaleFactors:h})}return a}function qC(e,t){if(e.length!==t.length)return!1;if(e.length===0&&t.length===0)return!0;let i=e.length,n=!0;for(let a=0;a<i;a++){let l=e[a],c=t[a];if(l.width!==c.width||l.height!==c.height){n=!1;break}}if(n)return!0;let r=0;for(let a=0;a<i;a++)for(let l=0;l<i;l++)if(e[a].width===t[l].width&&e[a].height===t[l].height){r++;break}return r===i}function Iv(e){return Kl(0,e)}var ex=class{constructor(e={}){Xl(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Xl(this,"fetchingCount",0),Xl(this,"imageServices",{}),Xl(this,"knownImageServers",{}),this.config=Object.assign(this.config,e)}setConfig(e){Object.assign(this.config,e)}sample(e,t,i=!0){let n=ko(ft(e)),r=Dr(ft(e)),a=this.knownImageServers[n];return this.imageServices[r]=Object.assign(e,{real:!0}),!a&&e.tiles&&!Iv(e)?(this.knownImageServers[n]={verifications:0,malformed:!1,root:n,preLoaded:i,sampledId:ft(e),verified:!1,server:null,result:{context:e["@context"]||[],sampledProfile:e.profile,resourceServiceRatio:t&&e.height?t.height/e.height:1,sampledSizes:e.sizes||[],sizeRatios:_C(e.width,e.height,e.sizes||[]),sampledTiles:e.tiles||[]}},!0):this.verify(e)}preLoad(e,t=!0){this.knownImageServers[e.root]=e,t&&(this.knownImageServers[e.root].malformed=!1,this.knownImageServers[e.root].verifications=this.config.verificationsRequired)}predict(e,t=!1,i=!1){let n=e?.source,r=ko(ft(e)),a=this.knownImageServers[r],l=Dr(ft(e));return this.imageServices[l]?this.imageServices[l]||null:!this.config.approximateServices||!a||!a.result||!(n?.height||e.height)||!(n?.width||e.width)||!i&&(a.malformed||a.verifications<this.config.verificationsRequired)||Iv(e.source)?null:(this.imageServices[l]||(this.imageServices[l]={"@context":a.result.context,"@id":ft(e),id:ft(e),protocol:"http://iiif.io/api/image",tiles:n?.tiles||HC(e.width,e.height,a.result.sampledTiles),sizes:n?.sizes||MC(Math.round(e.width/a.result.resourceServiceRatio),Math.round(e.height/a.result.resourceServiceRatio),a.result.sizeRatios),profile:n?.profile||a.result.sampledProfile,height:n?.height||e.height,width:n?.width||e.width,real:!1}),this.imageServices[l]||null)}async getThumbnailFromResource(e,t,i=!0,n=[]){let r=e?await this.getImageCandidates(e,i):[];return WC(t,[()=>n,()=>r])}async getImageCandidates(e,t=!0){let i=e;if(t&&i&&i.height&&i.width){let n=Jv(i);for(let r of n){let a={id:ft(r),width:r.width?r.width:i.width,height:r.height?r.height:i.height,source:r};await this.loadService(a)}}return NC(e,t,this)}async verify(e){let t=this.predict(e,!1,!0),i=await this.fetchService(ft(e));if(!t)return!1;let n=t.height===i.height&&t.width===i.width&&t["@context"]===i["@context"]&&qC(t.sizes||[],i.sizes||[]);if(n){let r=ko(ft(e)),a=this.knownImageServers[r];a&&(a.verifications+=1,a.verifications>=this.config.verificationsRequired&&(a.verified=!0))}return n}canLoadSync(e){let t=typeof e=="string"?e:ft(e),i=Dr(t);if(this.imageServices[i])return!0;let n=this.knownImageServers[ko(t)];return!!(n&&!n.malformed&&n.verifications>=this.config.verificationsRequired)}async markAsMalformed(e){return this.knownImageServers[ko(ft(e))].malformed=!0,this.loadService(e,!0)}async fetchService(e,t=!1){let i=Dr(e),n=this.imageServices[i];if(n&&(!t||n.real))return n;if(!this.config.enableFetching)throw new Error("Fetching is not enabled");let r=await this.fetch(i).then(a=>a.json());return!r.id&&r["@id"]&&(r.id=r["@id"]),r.id!==e&&(r.id=e,r["@id"]&&(r["@id"]=e)),this.imageServices[i]=Object.assign(r,{real:!0}),this.imageServices[i]}async fetch(e,t){return fetch(e,t)}async loadService(e,t=!1){if(!this.config.disableThrottling){let r=!0;for(;r;)if(this.fetchingCount>=this.config.verificationsRequired)await new Promise(a=>setTimeout(a,500));else{r=!1;break}}let i=this.knownImageServers[ko(ft(e))];if(i&&!i.malformed&&!t){await i.result;let r=this.loadServiceSync(e);if(r)return r}this.fetchingCount++;let n=await this.fetchService(ft(e),t);return this.fetchingCount--,n.real&&this.sample(n,e),n}loadServiceSync(e){let t=Dr(ft(e));return this.imageServices[t]?this.imageServices[t]:this.config.approximateServices?this.predict(e):null}},vR=new ex;function Jl(e){return{all:e=e||new Map,on:function(t,i){var n=e.get(t);n?n.push(i):e.set(t,[i])},off:function(t,i){var n=e.get(t);n&&(i?n.splice(n.indexOf(i)>>>0,1):e.set(t,[]))},emit:function(t,i){var n=e.get(t);n&&n.slice().map(function(r){r(i)}),(n=e.get("*"))&&n.slice().map(function(r){r(t,i)})}}}var ix={},tx=e=>{let t,i=new Set,n=(h,y)=>{let S=typeof h=="function"?h(t):h;if(!Object.is(S,t)){let w=t;t=y??(typeof S!="object"||S===null)?S:Object.assign({},t,S),i.forEach(v=>v(t,w))}},r=()=>t,p={setState:n,getState:r,getInitialState:()=>m,subscribe:h=>(i.add(h),()=>i.delete(h)),destroy:()=>{(ix.env?ix.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),i.clear()}},m=t=e(n,r,p);return p},eu=e=>e?tx(e):tx;var QC=Object.create,zh=Object.defineProperty,$C=Object.getOwnPropertyDescriptor,nx=Object.getOwnPropertyNames,GC=Object.getPrototypeOf,YC=Object.prototype.hasOwnProperty,XC=(e,t,i)=>t in e?zh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Fh=(e,t)=>function(){return t||(0,e[nx(e)[0]])((t={exports:{}}).exports,t),t.exports},KC=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of nx(t))!YC.call(e,r)&&r!==i&&zh(e,r,{get:()=>t[r],enumerable:!(n=$C(t,r))||n.enumerable});return e},Nh=(e,t,i)=>(i=e!=null?QC(GC(e)):{},KC(t||!e||!e.__esModule?zh(i,"default",{value:e,enumerable:!0}):i,e)),Rt=(e,t,i)=>(XC(e,typeof t!="symbol"?t+"":t,i),i);var Bh="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Dh="http://library.stanford.edu/iiif/image-api/compliance.html#level1",jh="http://library.stanford.edu/iiif/image-api/compliance.html#level2",Vh="http://library.stanford.edu/iiif/image-api/conformance.html#level0",Uh="http://library.stanford.edu/iiif/image-api/conformance.html#level1",Wh="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Hh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",qh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Qh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",$h="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Gh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",Yh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Xh="http://iiif.io/api/image/1/level0.json",Kh="http://iiif.io/api/image/1/profiles/level0.json",Zh="http://iiif.io/api/image/1/level1.json",Jh="http://iiif.io/api/image/1/profiles/level1.json",ep="http://iiif.io/api/image/1/level2.json",tp="http://iiif.io/api/image/1/profiles/level2.json",ip="http://iiif.io/api/image/2/level0.json",np="http://iiif.io/api/image/2/profiles/level0.json",rp="http://iiif.io/api/image/2/level1.json",op="http://iiif.io/api/image/2/profiles/level1.json",sp="http://iiif.io/api/image/2/level2.json",ap="http://iiif.io/api/image/2/profiles/level2.json",lp="level0",up="level1",cp="level2",dp="http://iiif.io/api/image/2/level0",hp="http://iiif.io/api/image/2/level1",pp="http://iiif.io/api/image/2/level2",Oo=[pp,jh,Wh,Qh,Yh,ep,tp,sp,ap,cp],tu=[...Oo,hp,Dh,Uh,qh,Gh,Zh,Jh,rp,op,up],fp=[dp,hp,pp,Bh,Dh,jh,Vh,Uh,Wh,Hh,qh,Qh,$h,Gh,Yh,Xh,Kh,Zh,Jh,ep,tp,ip,np,rp,op,sp,ap,lp,up,cp],mp=fp,gp=[dp,Bh,Vh,Hh,$h,Xh,Kh,ip,np,lp],rx={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["sizeByWhListed"]},ox={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPx","regionSquare","sizeByWhListed","sizeByH","sizeByW","sizeByWh"]},sx={extraFormats:["jpg","png"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPct","regionByPx","regionSquare","rotationBy90s","sizeByWhListed","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"]};var ZC=Object.defineProperty,JC=(e,t,i)=>t in e?ZC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,vn=(e,t,i)=>(JC(e,typeof t!="symbol"?t+"":t,i),i);function eP(e){try{if(e==="full")return{full:!0};if(e==="square")return{square:!0};let t=e.startsWith("pct:"),i=e.substr(t?4:0).split(",").map(n=>parseFloat(n));return{x:i[0],y:i[1],w:i[2],h:i[3],percent:t}}catch{throw new Error("Expected 'full', 'square' or 'x,y,w,h'. Found "+e)}}function tP(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]==="^"&&(t.upscaled=!0,e=e.slice(1)),e==="max"||e==="full")return t.max=!0,t.serialiseAsFull=e==="full",t;if(e[0]==="!"&&(t.confined=!0,e=e.slice(1)),e[0]==="p")return t.percentScale=parseFloat(e.slice(4)),t;let i=e.split(",").map(n=>n.trim());return i.length&&(i[0]!==""&&(t.width=parseInt(i[0],10)),i[1]!==""&&(t.height=parseInt(i[1],10))),t}function iP(e){let t={angle:0};if(e[0]==="!"&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw new Error(`Invalid rotation ${e}`);return t}function nP(e,t=""){let i=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!i)throw new Error(`Invalid or unknown input ${e}`);let n=i[2],r=i[3],a=i[4];if(a[0]==="/"&&(a=a.substring(1)),t.length>0){if(t[0]==="/"&&(t=t.substring(1)),t!==a.substring(0,t.length))throw new Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:n,server:r,path:a,prefix:t}}function rP(e,t=""){let{path:i,scheme:n,server:r,prefix:a}=nP(e,t),l=i.split("/").reverse(),[c,p,m,h,...y]=l,S=y.reverse().filter(Boolean).join("/");if(l.length===1||c==="")return{type:"base",scheme:n,server:r,prefix:a,identifier:S};if(c==="info.json"){let[,...x]=l;return{type:"info",scheme:n,server:r,prefix:a,identifier:x.reverse().filter(Boolean).join("/")}}if(typeof n>"u"||typeof r>"u"||typeof i>"u"||typeof h>"u"||typeof m>"u"||typeof p>"u"||typeof c>"u")throw new Error("Invalid image service URL");let[w="",v=""]=c.split(".");return{type:"image",scheme:n,server:r,prefix:a,identifier:S,originalPath:i,region:eP(h),size:tP(m),rotation:iP(p),quality:w,format:v}}function oP(e){return Oo.indexOf(e)!==-1?sx:tu.indexOf(e)!==-1?ox:rx}function sP(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],i={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let n of t)if(typeof n=="string"&&(n=oP(n)),!!n){if(n.formats)for(let r of n.formats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.qualities)for(let r of n.qualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.supports)for(let r of n.supports)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);if(n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea),n.extraFormats)for(let r of n.extraFormats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.extraQualities)for(let r of n.extraQualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.extraFeatures)for(let r of n.extraFeatures)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea)}if(e.extraFormats)for(let n of e.extraFormats)i.extraFormats.indexOf(n)===-1&&i.extraFormats.push(n);if(e.extraFeatures)for(let n of e.extraFeatures)i.extraFeatures.indexOf(n)===-1&&i.extraFeatures.push(n);if(e.extraQualities)for(let n of e.extraQualities)i.extraQualities.indexOf(n)===-1&&i.extraQualities.push(n);return i}function vp(e){let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&gp.indexOf(i)!==-1)return!0;return!1}function Le(e){if(e["@id"])return e["@id"];if(e.id)return e.id}function Vs(e){if(!e||!e.profile||!Le(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&fp.indexOf(i)!==-1)return!0;return!1}function ax(e){if(!Vs(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"){if(tu.indexOf(i)!==-1)return!0}else{let n=[...i.supports||[],...i.extraFeatures||[]];if(n.indexOf("regionByPx")!==-1&&(n.indexOf("sizeByW")!==-1||n.indexOf("sizeByWh")!==-1))return!0}return!1}function aP({x:e=0,y:t=0,w:i,h:n,full:r,square:a,percent:l}){if(r)return"full";if(a)return"square";if(typeof i>"u"||typeof n>"u")throw new Error("RegionParameter: invalid region");let c=`${e},${t},${i},${n}`;return l?`pct:${c}`:c}function lP({max:e,percentScale:t,upscaled:i,confined:n,width:r,height:a,serialiseAsFull:l,version:c}){let p=[];return i&&p.push("^"),e?(p.push(l?"full":"max"),p.join("")):(n&&p.push("!"),t&&p.push(`pct:${t}`),r&&p.push(`${r}`),p.push(","),a&&c===3&&p.push(`${a}`),p.join(""))}function uP(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function iu(e,t){let i=e.prefix.startsWith("/")?e.prefix.substring(1):e.prefix,n=`${e.scheme}://${e.server}/${i?`${i}/`:""}${e.identifier}`;if(e.type==="base")return n;if(e.type==="info")return`${n}/info.json`;let{size:r}=e,{region:a,rotation:l,format:c,quality:p}=e;if(t){let m=t["@context"]?Array.isArray(t["@context"])?t["@context"]:[t["@context"]]:[],h=m.indexOf("http://iiif.io/api/image/2/context.json")!==-1,y=m.indexOf("http://iiif.io/api/image/3/context.json")!==-1;if((r.width===t.width&&!r.height||r.height===t.height&&!r.width||r.width===t.width&&r.height===t.height)&&(r={...r,max:!0}),h&&(r.max&&!r.serialiseAsFull&&(r={...r,serialiseAsFull:!0}),!r.max&&r.width&&r.height&&(r={...r,height:void 0}),r={...r,version:2}),y){if(r.max&&r.serialiseAsFull&&(r={...r,serialiseAsFull:!1}),r.width&&!r.height&&t.width&&t.height){let S=t.height/t.width;r={...r,height:Math.ceil(r.width*S)}}r={...r,version:3}}}return[n,aP(a),lP(r),uP(l),`${p}.${c}`].filter(Boolean).join("/")}function Ln(e){return e.endsWith("info.json")?e:e.endsWith("/")?`${e}info.json`:`${e}/info.json`}function nu(e){let t=rP(Ln(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=sP(e);return{identifier:t.identifier,originalPath:"",server:t.server,prefix:t.prefix,scheme:t.scheme,type:"image",quality:i.extraQualities.indexOf("default")===-1?i.extraQualities[0]:"default",region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:"jpg",rotation:{angle:0}}}function lx(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];if(!l)continue;let c=l.width;r.push(e/c)}return r}function ux(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];l&&r.push({width:Math.floor(e/l),height:Math.floor(t/l)})}return r}function yp(e,t){if(t&&t.profile){let i=t.profile;if(i){let n=Array.isArray(i)?i:[i];if(n.includes(`level${e}`)||n.includes(`http://iiif.io/api/image/2/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`))return!0;if(e===2){for(let r of n)if(Oo.includes(r))return!0}if(e===1){for(let r of n)if(tu.includes(r))return!0}if(e===0){for(let r of n)if(gp.includes(r))return!0}}}return!1}function Us(e){return Vs(e)?yp(0,e)?0:yp(1,e)?1:yp(2,e)?2:null:null}function zn(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],i=t.length,n=[];for(let r=0;r<i;r++)Vs(t[r])&&n.push(t[r]);return n}function cx(e){if(e["@type"])return e["@type"];if(e.type)return e.type}function jr(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,"");return t.indexOf("/")!==-1?t.split("/")[0]:t}function dx(e,t,i){let n=e>t?e:t,r=i.length,a=[];for(let l=0;l<r;l++){let c=i[l];if(!c||c.scaleFactors.length===0)continue;let p=c.scaleFactors[0];if(!p)continue;let m=n/p,h=[p];for(;m>=c.width;)p=p*2,h.push(p),m=m/2;a.push({...c,scaleFactors:h})}return a}function ru(e,t,i){let n=nu({"@context":e.version===3?"http://iiif.io/api/image/3/context.json":"http://iiif.io/api/image/2/context.json",id:Ln(Le(e)),profile:e.level===null||typeof e.level>"u"?"level0":`level${e.level}`,type:e.version===3?"ImageService3":"ImageService2"});if(n.type!=="image")throw new Error("Invalid service");return n.size.max=!1,n.size.width=t,n.size.height=i,{id:iu(n),type:"fixed",width:t,height:i||e.height/(e.width||1)*t,unsafe:e.width>t}}function hx(e,t,i){let n=e.width?e.width:e.maxWidth;return i.height<=e.maxHeight&&i.width<=e.maxWidth&&i.height>=e.minHeight&&i.width>=e.minWidth&&(!t||Math.abs(i.width-n)<Math.abs(t.width-n))}function px(e,t){let i=[],n=Object.assign({unsafeImageService:!1,atAnyCost:!0,fallback:!0,minHeight:64,minWidth:64,maxHeight:1/0,maxWidth:1/0,returnAllOptions:!1,preferFixedSize:!1,allowUnsafe:!1,explain:!1,height:0,width:0},e),r=(h,y=0)=>n.explain?i.push(new Array(y).fill(0).map(S=>" ").join("")+h().trim()):void 0,a=[],l=[],c=null;r(()=>`Using configuration: ${JSON.stringify(n,null,2)}`);let p=(h,y)=>{if(r(()=>"Swapping choice",3),hx(n,y,h)){if(n.preferFixedSize&&h.unsafe){r(()=>`We found an image that was marked as unsafe, but it was the best size. (${h.id})`,4),l.push(h);return}n.returnAllOptions&&y&&l.push(y),r(()=>`We found a new image that was the best size. (${h.id})`,4),c=h}else n.returnAllOptions&&l.push(h)};r(()=>`The input shows we have ${t.length} list(s) of candidates to choose from.`);let m=t.length;for(let h=0;h<m;h++){let y=t[h]();r(()=>`Candidate group ${h}: ${JSON.stringify(y,null,2)}`,1);let S=y.length;r(()=>`Checking candidate list number ${h} and found ${S} potential ways of creating image(s)`,1);for(let w=0;w<S;w++){let v=y[w];if(r(()=>`-> Checking candidate ${w}`,1),v.type==="unknown"&&n.atAnyCost&&(r(()=>`We've found an unknown image type, adding this to the "last resort" list`,2),a.push(v)),v.type==="fixed"&&(v.unsafe?(r(()=>`We've found an unsafe fixed image type, adding this to the "last resort" list`,2),a.push(v)):(r(()=>"We've found a fixed size image, checking if it matches the request",2),p(v,c))),v.type==="fixed-service")if(n.unsafeImageService){r(()=>"Checking for an image from the tile source, without calculating the right height and width (unsafeImageService)",2);let x=ru(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=ru(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=ru({id:v.id,type:"fixed-service",width:v.maxWidth,height:v.maxWidth,level:v.level,version:v.version},v.maxWidth);p(x,c)}}if(c&&!n.returnAllOptions){if(c.unsafe||n.allowUnsafe)continue;r(()=>`We found a match in choice list number ${h}, no searching any more`);break}}return n.atAnyCost&&l.length===0?(r(()=>c?`We found an image! ${c.id} of type ${c.type}`:'We found no images, but "atAnyCost" is set, so returning that'),{best:c||a[0]||null,fallback:a.slice(1),log:i}):n.returnAllOptions?(r(()=>"Returning all options that we have found"),{best:(n.atAnyCost?c||l[0]||a[0]:c||l[0])||null,fallback:[...l,...a],log:i}):(r(()=>"Returning the best image that we found, and a fallback"),{best:c||l[0]||null,fallback:c?l:l.slice(1),log:i})}function wp(e){return(e["@context"]?Array.isArray(e["@context"])?e["@context"]:[e["@context"]]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1}function fx(e){return Vs(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:Le(e),type:"fixed-service",height:t.height,width:t.width,level:Us(e),version:wp(e)?3:2})):[]}function mx(e){if(!ax(e))return[];let t=[],i=Array.isArray(e.profile)?e.profile:[e.profile],n=i.length;for(let r=0;r<n;r++){let a=i[r];if(a&&typeof a!="string"&&(a.maxHeight||a.maxWidth))return[{id:Le(e),type:"variable",minWidth:0,minHeight:0,maxHeight:a.maxHeight||a.maxWidth,maxWidth:a.maxWidth||a.maxHeight,level:Us(e),version:e["@context"]==="http://iiif.io/api/image/3/context.json"?3:2}]}if(e.tiles){let r=e.tiles.length;for(let a=0;a<r;a++){let l=e.tiles[a];l&&(l.height||l.width)&&t.push({id:Le(e),type:"variable",minHeight:0,minWidth:0,maxHeight:l.height||l.width,maxWidth:l.width,level:Us(e),version:wp(e)?3:2})}}return t}function xp(e){let t=[],i=e.length;for(let n=0;n<i;n++){let r=e[n];if(!r)continue;let a=fx(r);a.length&&t.push(...a);let l=mx(r);l.length&&t.push(...l)}return t}function Sp(e){let t=/^.*\/(full)\/(((\d+),(\d+)?)|max)\/(\d+)\/default\.(jpg|png|jpeg)$/,i=e.match(t);if(i&&i[4]&&i[5]){let n=i[1],r=parseInt(i[4],10),a=parseInt(i[5],10),l=i[7];if((n==="max"||n==="full")&&r&&a&&l)return{type:"fixed",id:e,height:a,width:r}}return{type:"unknown",id:e}}function Ws(e){if(typeof e=="string")return Sp(e);let t=cx(e);if(t!=="Image"&&t!=="sc:Image")return null;let i=e,n=Le(i);return n?n&&i.width&&i.height?{id:n,type:"fixed",width:i.width,height:i.height,unsafe:!0}:Sp(n):null}function gx(e,t=!0,i){let n=[],r=Ws(e);if(r===null)return n;let a=e;if(n.push(r),t&&a&&a.width&&a.height){let l=[],c=zn(a);for(let p of c){let m={id:Le(p),width:a.width,height:a.height};if(i.canLoadSync(m)){let h=i.loadServiceSync(m);h&&(h.height||(h.height=a.height),h.width||(h.width=a.width),l.push(...xp([h])))}}if(l.length)return n.push(...l),n}return a.service&&n.push(...xp(a.service)),n}function yx(e,t){if(e.length!==t.length)return!1;if(e.length===0&&t.length===0)return!0;let i=e.length,n=!0;for(let a=0;a<i;a++){let l=e[a],c=t[a];if(l.width!==c.width||l.height!==c.height){n=!1;break}}if(n)return!0;let r=0;for(let a=0;a<i;a++)for(let l=0;l<i;l++)if(e[a].width===t[l].width&&e[a].height===t[l].height){r++;break}return r===i}var Lo=class{constructor(e={}){Rt(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Rt(this,"fetchingCount",0),Rt(this,"imageServices",{}),Rt(this,"knownImageServers",{}),this.config=Object.assign(this.config,e)}setConfig(e){Object.assign(this.config,e)}sample(e,t,i=!0){let n=jr(Le(e)),r=Ln(Le(e)),a=this.knownImageServers[n];return this.imageServices[r]=Object.assign(e,{real:!0}),!a&&e.tiles&&!vp(e)?(this.knownImageServers[n]={verifications:0,malformed:!1,root:n,preLoaded:i,sampledId:Le(e),verified:!1,server:null,result:{context:e["@context"]||[],sampledProfile:e.profile,resourceServiceRatio:t&&e.height?t.height/e.height:1,sampledSizes:e.sizes||[],sizeRatios:lx(e.width,e.height,e.sizes||[]),sampledTiles:e.tiles||[]}},!0):this.verify(e)}preLoad(e,t=!0){this.knownImageServers[e.root]=e,t&&(this.knownImageServers[e.root].malformed=!1,this.knownImageServers[e.root].verifications=this.config.verificationsRequired)}predict(e,t=!1,i=!1){let n=e?.source,r=jr(Le(e)),a=this.knownImageServers[r],l=Ln(Le(e));return this.imageServices[l]?this.imageServices[l]||null:!this.config.approximateServices||!a||!a.result||!(n?.height||e.height)||!(n?.width||e.width)||!i&&(a.malformed||a.verifications<this.config.verificationsRequired)||e.source&&vp(e.source)?null:(this.imageServices[l]||(this.imageServices[l]={"@context":a.result.context,"@id":Le(e),id:Le(e),protocol:"http://iiif.io/api/image",tiles:n?.tiles||dx(e.width,e.height,a.result.sampledTiles),sizes:n?.sizes||ux(Math.round(e.width/a.result.resourceServiceRatio),Math.round(e.height/a.result.resourceServiceRatio),a.result.sizeRatios),profile:n?.profile||a.result.sampledProfile,height:n?.height||e.height,width:n?.width||e.width,real:!1}),this.imageServices[l]||null)}async getThumbnailFromResource(e,t,i=!0,n=[]){let r=e?await this.getImageCandidates(e,i):[];return px(t,[()=>n,()=>r])}async getImageCandidates(e,t=!0){let i=e;if(t&&i&&i.height&&i.width){let n=zn(i);for(let r of n){let a={id:Le(r),width:r.width?r.width:i.width,height:r.height?r.height:i.height,source:r};await this.loadService(a)}}return gx(e,t,this)}async verify(e){let t=this.predict(e,!1,!0),i=await this.fetchService(Le(e));if(!t)return!1;let n=t.height===i.height&&t.width===i.width&&t["@context"]===i["@context"]&&yx(t.sizes||[],i.sizes||[]);if(n){let r=jr(Le(e)),a=this.knownImageServers[r];a&&(a.verifications+=1,a.verifications>=this.config.verificationsRequired&&(a.verified=!0))}return n}canLoadSync(e){let t=typeof e=="string"?e:Le(e),i=Ln(t);if(this.imageServices[i])return!0;let n=this.knownImageServers[jr(t)];return!!(n&&!n.malformed&&n.verifications>=this.config.verificationsRequired)}async markAsMalformed(e){return this.knownImageServers[jr(Le(e))].malformed=!0,this.loadService(e,!0)}async fetchService(e,t=!1){let i=Ln(e),n=this.imageServices[i];if(n&&(!t||n.real))return n;if(!this.config.enableFetching)throw new Error("Fetching is not enabled");let r=await this.fetch(i).then(a=>a.json());return!r.id&&r["@id"]&&(r.id=r["@id"]),r.id!==e&&(r.id=e,r["@id"]&&(r["@id"]=e)),this.imageServices[i]=Object.assign(r,{real:!0}),this.imageServices[i]}async fetch(e,t){return fetch(e,t)}async loadService(e,t=!1){if(!this.config.disableThrottling){let r=!0;for(;r;)if(this.fetchingCount>=this.config.verificationsRequired)await new Promise(a=>setTimeout(a,500));else{r=!1;break}}let i=this.knownImageServers[jr(Le(e))];if(i&&!i.malformed&&!t){await i.result;let r=this.loadServiceSync(e);if(r)return r}this.fetchingCount++;let n=await this.fetchService(Le(e),t);return this.fetchingCount--,n.real&&this.sample(n,e),n}loadServiceSync(e){let t=Ln(Le(e));return this.imageServices[t]?this.imageServices[t]:this.config.approximateServices?this.predict(e):null}};function vx(e={}){let t=e.events||Jl(),i=e.loader||new Lo;return{store:eu((r,a)=>({loaded:{},loadServiceSync:(l,c,p)=>{let m=l.id||l["@id"],h=a().loaded[m];if(h&&h.status==="done")return h.service;if(h&&h.status==="loading")return null;if(h&&h.status==="error")throw new Error("Failed to load image service");let y={id:Le(l),width:l.width||c?.width||0,height:l.height||c?.height||0,source:l},S=i.loadServiceSync(y);return S?(r(w=>({loaded:{...w.loaded,[m]:{status:"done",service:S,real:!0}}})),t.emit("image-service.loaded",{id:m,service:S})):p&&a().loadService(l,c).then(()=>{}),S},loadService:async(l,c)=>{let p=l.id||l["@id"],m=a().loaded[p];if(m&&m.status==="done")return m.service;if(m&&m.status==="loading")return new Promise((h,y)=>{let S=w=>{w.id===p&&(t.off("image-service.loaded",S),h(w.service||l))};t.on("image-service.loaded",S)});if(m&&m.status==="error"&&!c?.force)throw new Error("Failed to load image service");t.emit("image-service.loading",{id:p});try{let h={id:Le(l),width:l.width||0,height:l.height||0,source:l},y=await i.loadService(h,c?.force);return r(S=>({loaded:{...S.loaded,[p]:{status:"done",service:y,real:y.real}}})),t.emit("image-service.loaded",{id:p,service:y}),y}catch(h){throw t.emit("image-service.error",{id:p,error:h}),h}}})),events:t}}var bp=vx();var ou={},Fn={get(e){return e},setMetaValue([e,t,i],n){let r=Fn.getResourceMeta(e,t),a=r?r[i]:void 0,l=typeof n=="function"?n(a):n;ou[e]={...ou[e]||{},[t]:{...(ou[e]||{})[t]||{},[i]:l}}},getResourceMeta:(e,t)=>{let i=ou[e];if(i)return t?i[t]:i},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(i=>i.json())},requestStatus(e){}};var xx=new Lo;function Cp(e=Fn,t={}){let i=t.imageServiceLoader||xx;async function n(r,a,l=!1,c=[],p){let m=()=>i.getThumbnailFromResource(void 0,a,l,c);if(!r)return await i.getThumbnailFromResource(void 0,a,l,c);if(typeof r=="string"){let S=Ws(r);return S&&c.push(S),await i.getThumbnailFromResource(void 0,a,l,c)}let h=e.get(r,{skipSelfReturn:!1});if(typeof h=="string")return{best:Ws(h),fallback:[],log:[]};if(!h)return await m();switch(await(async S=>{if(S&&S.thumbnail&&S.thumbnail.length){let w=e.get(S.thumbnail[0]),v=await i.getImageCandidates(w,l);v&&v.length&&c.push(...v)}})(h),h.type){case"Annotation":{let S=Array.isArray(h.body)?h.body:[h.body],w=e.get(S[0]);return p&&!w.width&&(w.width=p.width,w.height=p.height),await i.getThumbnailFromResource(w,a,l,c)}case"Canvas":{let S=h;return n(S.items[0],a,l,c,{width:S.width,height:S.height})}case"AnnotationPage":return n(h.items[0],a,l,c,p);case"Choice":{let S=h;return!S.items||S.items[0]?await m():n(S.items[0],a,l,c,p)}case"Collection":{let w=h.items[0];return w?n(w,a,l,c,p):await m()}case"Manifest":{let w=h.items[0];return w?n(w,a,l,c,p):await m()}case"SpecificResource":case"Image":case"Dataset":case"Sound":case"Text":case"TextualBody":case"Video":return p&&!h.width&&(h.width=p.width,h.height=p.height),i.getThumbnailFromResource(h,a,l,c)}return await m()}return{getBestThumbnailAtSize:n}}var KP=T(B(),1),ZP=T(H(),1),Js=T(H(),1),JP=T(B(),1),eE=T(H(),1),f0=T(H(),1),cP=Object.defineProperty,dP=(e,t,i)=>t in e?cP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,P=(e,t,i)=>(dP(e,typeof t!="symbol"?t+"":t,i),i),bu=["onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onScroll","onWheel","onClick","onDragStart","onDragEnd","onDragEnter","onDragExit","onDrag","onDragOver"];function hP(){return bu.reduce((e,t)=>(e[t]=[],e),{})}var Fo=bu.reduce((e,t)=>(e[t.slice(2).toLowerCase()]=t,e[t]=t,e),{}),pP="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Cu=(e=21)=>{let t="",i=crypto.getRandomValues(new Uint8Array(e));for(;e--;)t+=pP[i[e]&63];return t},bn=class{constructor(){P(this,"__id"),P(this,"__revision",0),P(this,"__host"),P(this,"__onCreate"),P(this,"__parent"),P(this,"__owner",{value:void 0}),P(this,"__state",{}),P(this,"eventHandlers"),P(this,"scale",1),P(this,"layers",[]),P(this,"time",[]),P(this,"_crop"),P(this,"cropData"),P(this,"id"),P(this,"addEventListener",(e,t,i)=>{let n=Fo[e];if(!this.eventHandlers[n])throw new Error(`Unknown event ${n}`);this.eventHandlers[n].indexOf(t)===-1&&this.eventHandlers[n].push(t)}),P(this,"removeEventListener",(e,t)=>{let i=Fo[e];if(!this.eventHandlers[i]){console.warn(`Unknown event ${i}`);return}this.eventHandlers[i].indexOf(t)!==-1&&(this.eventHandlers[i]=this.eventHandlers[i].filter(n=>n!==t))}),this.id=this.__id=Cu(),this.eventHandlers=hP()}get crop(){return this._crop}set crop(e){this._crop=e}getObjectsAt(e){return[]}getAllPointsAt(e,t,i){return[]}getScheduledUpdates(e,t){return[]}dispatchEvent(e,t){let i=this.eventHandlers[e],n=i?i.length:0,r=!1;if(n)for(let a=0;a<n;a++)try{i[a](t),r=!0}catch(l){console.error(e,l)}return r}get x(){return this.points[1]}get y(){return this.points[2]}get width(){return this.points[3]-this.points[1]}get height(){return this.points[4]-this.points[2]}translate(e,t){Zt(this.points,ut(e,t))}atScale(e){Zt(this.points,On(e,this.x,this.y)),this.scale*=e}transform(e){Zt(this.points,e)}applyProps(e){this.__revision++}appendChild(e){}removeChild(e){}insertBefore(e,t){}hideInstance(){}},cr=class Ep extends bn{constructor(t){if(super(),P(this,"type","spacial-content"),P(this,"id"),P(this,"uri"),P(this,"display"),P(this,"points"),P(this,"priority"),P(this,"style",{opacity:1}),!t)this.id="",this.uri="",this.display={x:0,y:0,scale:1,width:0,height:0,points:re(5)},this.points=re(5);else{let i=t.scale||1;this.id=t.id||t.uri,this.uri=t.uri,this.points=xe.singleBox(t.width,t.height,t.x,t.y),this.display={x:0,y:0,scale:i,width:t.width/i,height:t.height/i,points:xe.singleBox(t.width/i,t.height/i),rotation:t?.rotation}}}applyProps(t){let i=t.display?t.display.width:t.target.width,n=t.target.width/i;if(this.id=t.id||t.uri,this.uri=t.uri,this.points.set(xe.singleBox(t.target.width,t.target.height,t.target.x,t.target.y)),t.style&&typeof t.style.opacity<"u"&&(this.style.opacity=t.style.opacity),t.crop){this.cropData=t.crop;let r=xe.singleBox(t.crop.width,t.crop.height,t.crop.x,t.crop.y);Zt(r,ut(-t.crop.x,-t.crop.y)),this.crop?this.crop.set(r):this.crop=re(r)}t.display?(this.display.scale=n,this.display.width=t.display.width,this.display.height=t.display.height,this.display.rotation=t.display.rotation,this.display.points=xe.singleBox(t.display.width,t.display.height)):(this.display.scale=n,this.display.width=t.target.width/n,this.display.height=t.target.height/n,this.display.points=xe.singleBox(t.target.width/n,t.target.height/n))}getAllPointsAt(t,i,n){return[[this,this.crop||this.points,i]]}static fromSvg(t,i,n,r){return Ep.fromImage("data:image/svg+xml;base64,"+btoa(t),i,n,r)}static fromImage(t,i,n,r){let a=new Ep;return a.applyProps({uri:t,id:r,display:n,target:i}),a}getImageUrl(){return this.uri}},Ap=class extends bn{constructor(e){if(super(),P(this,"type","spacial-content"),P(this,"id"),P(this,"uri"),P(this,"display"),P(this,"points"),P(this,"getTexture"),this.getTexture=()=>({source:void 0,hash:-1}),!e)this.id="",this.uri="",this.display={x:0,y:0,scale:1,width:0,height:0,points:re(5)},this.points=re(5);else{let t=e.scale||1;this.id=e.id||e.uri,this.uri=e.uri,this.points=xe.singleBox(e.width,e.height),this.display={x:0,y:0,scale:t,width:e.width/t,height:e.height/t,points:t!==1?xe.singleBox(e.width/t,e.height/t):this.points}}}applyProps(e){let t=e.display?e.display.width:e.target.width,i=e.target.width/t;this.id=e.id,this.points.set(xe.singleBox(e.target.width,e.target.height)),this.display.scale=i,this.display.width=e.target.width/i,this.display.height=e.target.height/i,this.getTexture=e.getTexture,this.display.points=i!==1?xe.singleBox(e.target.width/i,e.target.height/i):this.points}getAllPointsAt(e,t,i){return[[this,this.points,t]]}};function fP(e,t,i=1){let n=t.length;if(n===0)throw new Error("No resources passed in.");let r=0,a=1/0;for(let l=0;l<n&&!(!t[l]||!t[l].display);l++){let c=Ip(t[l].display.scale,e/(i||1));c<a&&(a=c,r=l)}return r}function Ip(e,t){return Math.abs(e-t)}function vu(e,t){let i=Ip(e.x,t.x),n=Ip(e.y,t.y);return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}function mP(e){let t=e.length;return e.indexOf("/info.json")===t-10?e.slice(0,-10):e}function su(e,t,i){return Math.min(Math.max(e,t),i)}var Ks=class Nx extends bn{constructor(t){super(),P(this,"id"),P(this,"type","spacial-content"),P(this,"display"),P(this,"tileWidth"),P(this,"style",{opacity:1}),P(this,"points"),P(this,"service"),P(this,"format","jpg"),P(this,"crop2"),P(this,"tileUrl"),this.tileUrl=mP(t.url),this.id=t.id||`${this.tileUrl}--${t.scaleFactor}`,this.points=t.displayPoints?t.displayPoints:bi(t.points,wi(t.scaleFactor)),this.tileWidth=t.tileWidth,this.display={x:0,y:0,width:t.width/t.scaleFactor,height:t.height/t.scaleFactor,points:t.points,scale:t.scaleFactor},t.format&&(this.format=t.format)}applyProps(t){if(t.style&&typeof t.style.opacity<"u"&&(this.style.opacity=t.style.opacity),t.service!==this.service&&(this.service=t.service),t.format?this.format=t.format:this.format="jpg",t.crop){this.cropData=t.crop;let i=re([...this.points]),n=i.length/5,r=t.crop.x||0,a=t.crop.y||0,l=t.crop.x+t.crop.width,c=t.crop.y+t.crop.height;for(let p=0;p<n;p++){let m=p*5;i[m+1]<l&&i[m+3]>r&&i[m+2]<c&&i[m+4]>a?(i[m+1]=su(i[m+1],r,l),i[m+3]=su(i[m+3],r,l),i[m+2]=su(i[m+2],a,c),i[m+4]=su(i[m+4],a,c)):i[m]=0}Zt(i,ut(-t.crop.x,-t.crop.y)),this.crop?this.crop.set(i):this.crop=i}}static fromTile(t,i,n,r,a,l,c){n.height=n.height?n.height:n.width;let p=c?Math.floor(i.width/r):Math.ceil(i.width/r),m=c?Math.floor(i.height/r):Math.ceil(i.height/r),h=Math.ceil(p/n.width),y=Math.ceil(m/n.height),S=xe.grid(h,y),w=xe.grid(h,y);for(let x=0;x<y;x++)for(let A=0;A<h;A++){let C=A*n.width,I=x*n.height;w.addPoints(C*r,I*r,A===h-1?i.width:(C+n.width)*r,x===y-1?i.height:(I+n.height)*r),S.addPoints(C,I,A===h-1?p:C+n.width,x===y-1?m:I+n.height)}let v=new Nx({url:t,scaleFactor:r,points:S.build(),displayPoints:w.build(),width:i.width,height:i.height,tileWidth:n.width,format:l});return v.applyProps({service:a}),v}getImageUrl(t){let i=this.points.slice(t*5,t*5+5),n=i[3]-i[1],r=i[4]-i[2],a=Math.ceil(n/this.display.scale);return`${this.tileUrl}/${i[1]},${i[2]},${n},${r}/${a>this.tileWidth?this.tileWidth:a},/0/default.${this.format||"jpg"}`}getAllPointsAt(t,i,n){let r=or(this.crop||this.points,t);return[[this,r,i]]}transform(t){Zt(this.points,t)}getScheduledUpdates(t,i){return[]}},gP=class extends bn{constructor(){super(...arguments),P(this,"type","spacial-content")}getAllPointsAt(e,t,i){return[[this,this.points,t]]}},yP=class extends gP{constructor(e){super(),P(this,"id"),P(this,"display"),P(this,"points"),P(this,"images",[]),P(this,"allImages",[]),P(this,"scaleFactors",[]),P(this,"aggregateBuffer",re(9)),P(this,"lazyLoader"),P(this,"isFullyLoaded",!1),P(this,"maxScaleFactor",0),P(this,"renderOptions"),P(this,"_scheduleSortByScales",!1),P(this,"_sortByScales",()=>{this._scheduleSortByScales=!1,this.allImages.sort((i,n)=>n.display.width-i.display.width),this.images=[];let t=.1;for(let i of this.allImages)if(!(i.display.width<this.renderOptions.minSize&&i.display.height<this.renderOptions.minSize&&!i.priority||i instanceof cr&&(i.display.width>this.renderOptions.maxImageSize||i.display.height>this.renderOptions.maxImageSize)&&!i.priority)){if(Math.abs(i.display.scale-t)<.25||i.priority){let n=this.images.pop();n&&(n instanceof cr||n.priority)?(i.priority&&this.images.push(i),this.images.push(n)):i&&this.images.push(i)}else i&&this.images.push(i);t=i.display.scale}this.images.length===0&&(this.images=[...this.allImages]),this.scaleFactors=this.images.map(i=>i.display.scale),this.maxScaleFactor=Math.max(...this.scaleFactors)}),P(this,"loadFullResource",async()=>{if(!this.isFullyLoaded&&this.lazyLoader){this.isFullyLoaded=!0;let t=await this.lazyLoader();this.addImages(t)}}),P(this,"fallback",[this.loadFullResource]),this.id=e.id,this.points=xe.singleBox(e.width,e.height),this.lazyLoader=e.loadFullImages,e.loadFullImages||(this.isFullyLoaded=!0),this.display={x:0,y:0,points:xe.singleBox(e.width,e.height),height:e.height,width:e.width,scale:1},this.renderOptions={renderSmallestFallback:!0,renderLayers:2,minSize:255,maxImageSize:1024,quality:1.75,...e.renderOptions||{}},this.addImages(e.images)}applyProps(e){typeof e.renderSmallestFallback<"u"&&e.renderSmallestFallback!==this.renderOptions.renderSmallestFallback&&(this.renderOptions.renderSmallestFallback=e.renderSmallestFallback),typeof e.renderLayers<"u"&&e.renderLayers!==this.renderOptions.renderLayers&&(this.renderOptions.renderLayers=e.renderLayers),typeof e.minSize<"u"&&e.minSize!==this.renderOptions.minSize&&(this.renderOptions.minSize=e.minSize),typeof e.maxImageSize<"u"&&e.maxImageSize!==this.renderOptions.maxImageSize&&(this.renderOptions.maxImageSize=e.maxImageSize),typeof e.quality<"u"&&e.quality!==this.renderOptions.quality&&(this.renderOptions.quality=e.quality)}appendChild(e){this.addImages([e])}removeChild(e){this.images.indexOf(e)!==-1&&(this.images=this.images.filter(t=>t!==e),this.sortByScales())}insertBefore(e,t){this.addImages([e])}hideInstance(){}addImages(e){for(let t of e)t.__parent=this,t.__owner=this.__owner;this.allImages.push(...e.filter(Boolean)),this.sortByScales()}sortByScales(){this._scheduleSortByScales=!0}getScheduledUpdates(e,t){return this._scheduleSortByScales?[this._sortByScales]:this.isFullyLoaded?[]:t>1/this.maxScaleFactor?this.fallback:[]}getAllPointsAt(e,t,i){if(this.images.length===0)return[];let n=fP(1/(i||1)/(window.devicePixelRatio||1),this.images,this.renderOptions.quality),r=this.images.length,a=t?pi(t,ut(this.x,this.y)):ut(this.x,this.y);if(n!==this.images.length-1&&this.images[n+1]){let l=[];for(let m=r-1;m>=n;m--)l.push(m);let c=l[0];this.renderOptions.renderLayers&&(l=l.slice(-Math.min(l.length,this.renderOptions.renderLayers))),this.renderOptions.renderSmallestFallback&&l.indexOf(c)===-1&&l.unshift(c);let p=[];for(let m=0;m<l.length;m++)p.push(...this.images[l[m]].getAllPointsAt(e,a,i));return p}return this.images[n].getAllPointsAt(e,a,i)}};function au(e,t,i,n,r){let a=Math.PI/180*r,l=Math.cos(a),c=Math.sin(a),p=l*(i-e)+c*(n-t)+e,m=l*(n-t)-c*(i-e)+t;return[p,m]}var kp=class Bx extends bn{constructor(t,i){super(),P(this,"id"),P(this,"type","world-object"),P(this,"scale"),P(this,"layers"),P(this,"points"),P(this,"worldPoints"),P(this,"intersectionBuffer",re(5)),P(this,"aggregateBuffer",re(9)),P(this,"invertedBuffer",re(9)),P(this,"rotation",0),P(this,"filteredPointsBuffer"),P(this,"_updatedList",[]),P(this,"geometry");let{x:n=0,y:r=0}=i||{};t?(this.id=t.id||"",this.scale=1,this.layers=t.layers,this.points=re([1,n,r,n+t.width,r+t.height]),this.worldPoints=re([1,n,r,n+t.width,r+t.height]),this.filteredPointsBuffer=re(t.layers.length*5)):(this.id="",this.scale=1,this.layers=[],this.points=re(5),this.worldPoints=re(5),this.filteredPointsBuffer=re(5))}static createWithProps(t){let i=new Bx;return i.applyProps(t),i}applyProps(t){let i=t.x||0,n=t.y||0;this.id=t.id;let r=typeof t.scale<"u"?t.scale:this.scale;this.points[0]=1,this.points[1]=i,this.points[2]=n,this.points[3]=i+t.width,this.points[4]=n+t.height,this.rotation=t.rotation||0,this.worldPoints[3]=this.worldPoints[1]+t.width,this.worldPoints[4]=this.worldPoints[2]+t.height,t.scale&&t.scale!==1&&this.atScale(r),this.scale=r}appendChild(t){t.points[0]===0&&t.points.set(this.points),t.__owner.value=this,this.addLayers([t])}removeChild(t){this.layers=this.layers.filter(i=>i!==t),this.filteredPointsBuffer=re(this.layers.length*5)}insertBefore(t,i){let n=this.layers.indexOf(i);if(n===-1||this.layers.indexOf(t)!==-1)return;let r=this.layers.slice(0,n),a=this.layers.slice(n);this.layers=[...r,t,...a]}hideInstance(){console.warn("hideInstance: not yet implemented")}getObjectsAt(t,i){if(this.rotation&&(t=this.applyRotation(t)),or(this.points,t,this.filteredPointsBuffer)[0]===0)return[];let n=this.layers.length,r=[];for(let a=0;a<n;a++){let l=this.layers[a];if(i&&l.isShape){let c=bi(l.points,ut(this.x,this.y));if(!l.intersects([t[1]-c[1],t[2]-c[2]]))continue}if(or(bi(l.points,ut(this.x,this.y)),t,this.filteredPointsBuffer)[0]!==0&&r.push(l),i){let c=l;r.push(...c.getObjectsAt(t,i))}}return r}applyRotation(t){if(this.rotation){let i={x:t[1],y:t[2]},n={x:t[1],y:t[4]},r={x:t[3],y:t[2]},a={x:t[3],y:t[4]},l=this.points[1]+(this.points[3]-this.points[1])/2,c=this.points[2]+(this.points[4]-this.points[2])/2,[p,m]=au(l,c,i.x,i.y,this.rotation),[h,y]=au(l,c,n.x,n.y,this.rotation),[S,w]=au(l,c,r.x,r.y,this.rotation),[v,x]=au(l,c,a.x,a.y,this.rotation),A=Math.min(p,h,S,v),C=Math.max(p,h,S,v),I=Math.min(m,y,w,x),E=Math.max(m,y,w,x);return re([t[0],A,I,C,E])}return t}getAllPointsAt(t,i,n){let r=pi(ut(this.x,this.y),wi(this.scale),this.aggregateBuffer);this.rotation&&(t=this.applyRotation(t));let a=My(t,this.points,this.intersectionBuffer),l=this.layers.length,c=[],p=bi(a,pi(wi(1/this.scale),ut(-this.x,-this.y),this.invertedBuffer)),m=i?pi(i,r,this.aggregateBuffer):r,h=n*this.scale;for(let y=0;y<l;y++)c.push(...this.layers[y].getAllPointsAt(p,m,h));return c}addLayers(t){let i=[];for(let n of t)this.layers.indexOf(n)===-1&&(i.push(n),n.points.length===5&&(n.points[1]<this.worldPoints[1]/this.scale||n.points[2]<this.worldPoints[2]/this.scale||n.points[3]>this.worldPoints[3]/this.scale||n.points[4]>this.worldPoints[4]/this.scale)&&(n.crop=n.crop||re([1,Math.max(this.worldPoints[1]/this.scale,n.points[1]),Math.max(this.worldPoints[2]/this.scale,n.points[2]),Math.min(this.worldPoints[3]/this.scale,n.points[3]),Math.min(this.worldPoints[4]/this.scale,n.points[4])])));this.layers=this.layers.concat(i),this.filteredPointsBuffer=re(this.layers.length*5)}getScheduledUpdates(t,i){let n=this.layers.length;this._updatedList=[];let r=i*this.scale;for(let a=0;a<n;a++){let l=this.layers[a].getScheduledUpdates(t,r);l&&this._updatedList.push(...l)}return this._updatedList}},Pu=class Dx extends bn{constructor(t=0,i=0,n=100,r="left-to-right"){super(),P(this,"id","world"),P(this,"_width"),P(this,"_height"),P(this,"aspectRatio"),P(this,"viewingDirection"),P(this,"aggregateBuffer",re(9)),P(this,"isDirty",!1),P(this,"zones",[]),P(this,"filteredPointsBuffer"),P(this,"selectedZone"),P(this,"triggerQueue",[]),P(this,"activatedEvents",[]),P(this,"_updatedList",[]),P(this,"translationBuffer",re(9)),P(this,"needsRecalculate",!0),P(this,"emptyPaintables",[]),P(this,"renderOrder",[]),P(this,"points"),P(this,"objects",[]),P(this,"subscriptions",[]),P(this,"_propagateEventTargets",[]),P(this,"_alreadyFlushed",[]),this._width=t,this._height=i,this.aspectRatio=Number.isNaN(t/i)?1:t/i,this.viewingDirection=r,this.points=re(n*5),this.filteredPointsBuffer=re(n*5)}get x(){return 0}get y(){return 0}get width(){return this._width}get height(){return this._height}static withProps(t){let i=new Dx;return i.applyProps(t),i}applyProps(t){typeof t.width<"u"&&typeof t.height<"u"&&(t.width!==this._width||t.height!==this._height)&&this.resize(t.width,t.height),t.viewingDirection!==this.viewingDirection&&(this.viewingDirection=t.viewingDirection,this.triggerRepaint())}propagateTouchEvent(t,i,n){let r=[];for(let a of n)if(a.x&&a.y){let l=xe.singleBox(1,1,a.x,a.y);r.push(this.getObjectsAt(l,!0).reverse())}return r.map(a=>this.propagateEvent(t,i,a,{bubbles:!0,cancelable:!0}))}propagatePointerEvent(t,i,n,r,a={}){let l=xe.singleBox(1,1,n,r),c=this.getObjectsAt(l,!0).reverse();return this.propagateEvent(t,i,c,a)}propagateEvent(t,i,n,{bubbles:r=!1,cancelable:a=!1}={}){i.atlasTarget=this,this._propagateEventTargets.length=1,this._propagateEventTargets[0]=this;let l=!1;i.stopPropagation=()=>{l=!0};let c=n.length;for(let h=c-1;h>=0;h--){this._propagateEventTargets.unshift(n[h][0]);let y=n[h][1].length;if(y)for(let S=0;S<y;S++)this._propagateEventTargets.unshift(n[h][1][S])}let p=this._propagateEventTargets.length,m=!1;for(let h=0;h<p&&(i.atlasTarget=this._propagateEventTargets[h],i.atlasWorld=this,m=this._propagateEventTargets[h].dispatchEvent(t,i)||m,!l);h++);return m&&this.triggerRepaint(),this._propagateEventTargets}appendChild(t){let i=this.appendWorldObject(t);this.renderOrder.push(i/5)}removeChild(t){let i=this.objects.indexOf(t);if(i===-1){for(let n of this.objects)if(n&&n.id===t.id){this.removeChild(n);return}return}this.objects[i]=null,this.renderOrder=this.renderOrder.filter(n=>n!==i),this.points[i*5]=0,this.triggerRepaint(),this.needsRecalculate=!0}insertBefore(t,i){let n=this.objects.indexOf(i);if(n===-1)return;let r=this.appendWorldObject(t);this.renderOrder.splice(n-1,0,r/5)}hideInstance(){}asWorldObject(){return null}addZone(t){this.zones.push(t)}selectZone(t){if(typeof t=="string"){let i=this.zones.length;for(let n=0;n<i;n++)if(this.zones[n].id===t){this.selectedZone=n,this.trigger("zone-changed");return}}else this.zones[t]&&(this.selectedZone=t,this.trigger("zone-changed"))}deselectZone(){this.selectedZone=void 0}getActiveZone(){if(this.selectedZone)return this.zones[this.selectedZone]}hasActiveZone(){return typeof this.selectedZone<"u"}checkResizeInternalBuffer(){if(ky(this.points)===this.objects.length){let t=this.points,i=re(this.points.length*2);i.set(t,0),this.points=i}}appendWorldObject(t){this.checkResizeInternalBuffer();let i=this.objects.length*5,n=t.points;return t.points=this.points.subarray(this.objects.length*5,this.objects.length*5+5),t.points[1]=n[1],t.points[2]=n[2],t.points[3]=n[3],t.points[4]=n[4],this.objects.push(t),this.filteredPointsBuffer=re(this.objects.length*5),this.needsRecalculate=!0,this.triggerRepaint(),i}recalculateWorldSize(){let t=!1;if(this.needsRecalculate){let i=new Int32Array(this.objects.length),n=new Int32Array(this.objects.length),r=this.renderOrder.length;for(let c=0;c<r;c++){let p=this.renderOrder[c];this.objects[p]&&(i[c]=this.points[p*5+3],n[c]=this.points[p*5+4])}let a=Math.max(...i);a!==this._width&&(this._width=a,t=!0);let l=Math.max(...n);l!==this._height&&(this._height=l,t=!0),t&&this.trigger("recalculate-world-size",{width:a,height:l}),this.needsRecalculate=!1}return t}addObjectAt(t,i){i.width&&!i.height?i.height=i.width/t.width*t.height:i.height&&!i.width&&(i.width=i.height/t.height*t.width),(!i||!i.width||!i.height)&&(i.width=t.width,i.height=t.height);let{width:n,x:r,y:a}=i,l=n/t.width;this.checkResizeInternalBuffer(),this.points.set(xe.singleBox(t.width,t.height,0,0),this.objects.length*5);let c=new kp(t);return c.points=this.points.subarray(this.objects.length*5,this.objects.length*5+5),this.objects.push(c),this.scaleWorldObject(this.objects.length-1,l),this.translateWorldObject(this.objects.length-1,r,a),this.filteredPointsBuffer=re(this.points.length*2),this.triggerRepaint(),this.needsRecalculate=!0,c}scaleWorldObject(t,i){Zt(this.points.subarray(t*5,t*5+5),On(i,this.points[t*5+1],this.points[t*5+2]));let n=this.objects[t];n&&(n.atScale(i),this.triggerRepaint())}translateWorldObject(t,i,n){Zt(this.points.subarray(t*5,t*5+5),ut(i,n));let r=this.objects[t];r&&(r.translate(i,n),this.triggerRepaint())}resize(t,i){return this._width=t,this._height=i,this.aspectRatio=t/i,this.triggerRepaint(),this}getObjects(){return this.objects}getPoints(){return this.points}getPointsFromViewer(t,i){let n=xe.singleBox(t.width,t.height,t.x,t.y);return this.getPointsAt(n,i,t.scale)}addLayoutSubscriber(t){return this.subscriptions.push(t),()=>{this.subscriptions.splice(this.subscriptions.indexOf(t),1)}}getScheduledUpdates(t,i){let n=or(this.points,t,this.filteredPointsBuffer),r=this.objects.length;this._updatedList=[];for(let a=0;a<r;a++)if(n[a*5]!==0){if(!this.objects[a])continue;this._updatedList.push(...this.objects[a].getScheduledUpdates(t,i))}return this._updatedList}getObjectsAt(t,i=!1){let n=this.getActiveZone(),r=or(this.points,t,this.filteredPointsBuffer),a=this.renderOrder.length,l=[];for(let c=0;c<a;c++){let p=this.renderOrder[c];if(r[p*5]!==0){let m=this.objects[p];if(!m||n&&n.objects.indexOf(m)===-1)continue;if(m.type!=="world-object"){l.push([m,[m]]);continue}i?l.push([m,m.getObjectsAt(t,i)]):l.push([m,this.emptyPaintables])}}return l}getPointsAt(t,i,n=1){let r=this.getObjectsAt(t),a=pi(wi(n),ut(-t[1],-t[2]),this.translationBuffer),l=i?pi(i,a,this.aggregateBuffer):a,c=r.length,p=[];for(let m=0;m<c;m++)r[m]&&p.push(...r[m][0].getAllPointsAt(t,l,n));return p}flushSubscriptions(){if(this.triggerQueue.length){this._alreadyFlushed=[];let t=this.triggerQueue.length;for(let i=0;i<t;i++){if(this._alreadyFlushed.indexOf(this.triggerQueue[i][0])!==-1)continue;typeof this.triggerQueue[i][1]>"u"&&this._alreadyFlushed.push(this.triggerQueue[i][0]);let n=this.subscriptions.length;for(let r=0;r<n;r++)this.subscriptions[r].apply(null,this.triggerQueue[i])}this.triggerQueue=[]}}trigger(t,i){this.triggerQueue.push([t,i])}triggerEventActivation(){this.trigger("event-activation")}triggerRepaint(){this.trigger("repaint")}gotoRegion(t){this.trigger("goto-region",t)}goHome(t=!1){this.trigger("go-home",{immediate:t})}zoomTo(t,i,n){this.trigger("zoom-to",{point:i,factor:t,stream:n})}zoomIn(t){this.trigger("zoom-to",{point:t,factor:.5})}zoomOut(t){this.trigger("zoom-to",{point:t,factor:2})}constraintBounds(t){this.trigger("constrain-bounds",{immediate:t})}};var lu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,uu={},vP=["backgroundColor","opacity","boxShadow","borderColor","borderWidth","borderStyle","outlineColor","outlineWidth","outlineOffset","outlineStyle"],$s=class extends bn{constructor(){super(),P(this,"id"),P(this,"type","spacial-content"),P(this,"points"),P(this,"hoverEvents",!1),P(this,"activeEvents",!1),P(this,"display",{x:0,y:0,scale:1,width:-1,height:-1,points:re(5)}),P(this,"_parsed",{border:{id:null,match:[]},outline:{id:null,match:[]}}),P(this,"hovering"),P(this,"pressing"),P(this,"props",{}),P(this,"addHover",()=>{this.hovering=!0,this.__revision++}),P(this,"removeHover",()=>{this.hovering=!1,this.pressing=!1,this.__revision++}),P(this,"addPress",()=>{this.pressing=!0,this.__revision++}),P(this,"removePress",()=>{this.pressing=!1,this.__revision++}),this.id=Cu(12),this.points=re(5)}getAllPointsAt(e,t){return[[this,this.points,t]]}applyProps(e={}){let t=!1;if(e.interactive!==this.props.interactive&&(t=!0,this.props.interactive=e.interactive),e.style){let i=e.border||e.style.border;if(i!==this._parsed.border.id)if(!i)this._parsed.border.id=null,this._parsed.border.match=[];else{let n=uu[i]||lu.exec(i)||lu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=uu[i]=n)}if(this._parsed.border.id&&(e.style.borderWidth=this._parsed.border.match[1],e.style.borderStyle="solid",e.style.borderColor=this._parsed.border.match[4]),e.style.outline!==this._parsed.outline.id)if(!e.style.outline)this._parsed.outline.id=null,this._parsed.outline.match=[];else{let n=uu[e.style.outline]||lu.exec(e.style.outline)||lu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=uu[e.style.outline]=n)}this._parsed.outline.id&&(e.style.outlineWidth=this._parsed.outline.match[1],e.style.outlineStyle="solid",e.style.outlineColor=this._parsed.outline.match[4]),this.props.style=e.style,e.backgroundColor&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.backgroundColor,t=!0),e.style.background&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.style.background,t=!0);for(let n of vP)if(this.props.style[n]!==e.style[n]){t=!0;break}e.style[":hover"]!==this.props.hoverStyles&&(this.props.hoverStyles=e.style[":hover"],this.hoverEvents||(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),t=!0),e.style[":active"]!==this.props.pressStyles&&(this.props.pressStyles=e.style[":active"],this.activeEvents||(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0)}e.href!==this.props.href&&(this.props.href=e.href,t=!0),e.hrefTarget!==this.props.hrefTarget&&(this.props.hrefTarget=e.hrefTarget,t=!0),e.title!==this.props.title&&(this.props.title=e.title,t=!0),e.className!==this.props.className&&(this.props.className=e.className,e.className&&!this.hoverEvents&&(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),e.className&&!this.activeEvents&&(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0),e.relativeSize!==this.props.relativeSize&&(this.props.relativeSize=e.relativeSize,t=!0),e.relativeStyle!==this.props.relativeStyle&&(this.props.relativeStyle=e.relativeStyle,t=!0),e.html!==this.props.html&&(this.props.html=e.html,t=!0),e.target&&(e.target.width!==this.display.width||e.target.height!==this.display.height||e.target.x!==this.points[1]||e.target.y!==this.points[2])&&(t=!0,this.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.width=e.target.width,this.display.height=e.target.height),t&&this.__revision++}},gu=class extends bn{constructor(){super(),P(this,"type","spacial-content"),P(this,"id"),P(this,"points"),P(this,"color","#000"),P(this,"backgroundColor"),P(this,"hovering"),P(this,"pressing"),P(this,"text",""),P(this,"display",{x:0,y:0,scale:1,width:100,height:100,points:re(5)}),P(this,"className"),P(this,"html"),P(this,"interactive",!1),P(this,"props",{font:"18px Arial, sans-serif",lineHeight:1,textAlign:"left",verticalAlign:"top",paddingX:0,paddingY:0,fitParent:!1,lineBreak:"auto",strokeText:!1,sizeToFill:!1,maxFontSizeToFill:void 0,allowNewLine:!0,justifyLines:!1,renderHDPI:!1,textDecoration:"none",interactive:!1,relativeSize:!1}),this.id="",this.points=re(5)}getAllPointsAt(e,t){return[[this,this.points,t]]}applyProps({id:e,target:t,text:i,color:n,backgroundColor:r,fontSize:a=18,interactive:l,fontFamily:c="Arial, sans-serif",...p}){p.font=`${a}px ${c}`,this.interactive=l||!1,typeof i<"u"&&(this.text=i||""),n&&(this.color=n),r&&(this.backgroundColor=r),e&&(this.id=e),t&&(this.points=xe.singleBox(t.width,t.height,t.x,t.y),this.display.points=this.points,this.display.width=t.width,this.display.height=t.height),this.props={...this.props,...p},this.__revision++}},ct=Math.pow,cu=Math.sqrt,qs=Math.sin,Cx=Math.cos,Gs=Math.PI,xu=1.70158,du=xu*1.525,Px=xu+1,Ex=2*Gs/3,Ax=2*Gs/4.5,hu=function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},ur={linear:e=>e,easeInQuad:function(e){return e*e},easeOutQuad:function(e){return 1-(1-e)*(1-e)},easeInOutQuad:function(e){return e<.5?2*e*e:1-ct(-2*e+2,2)/2},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return 1-ct(1-e,3)},easeInOutCubic:function(e){return e<.5?4*e*e*e:1-ct(-2*e+2,3)/2},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1-ct(1-e,4)},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-ct(-2*e+2,4)/2},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1-ct(1-e,5)},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1-ct(-2*e+2,5)/2},easeInSine:function(e){return 1-Cx(e*Gs/2)},easeOutSine:function(e){return qs(e*Gs/2)},easeInOutSine:function(e){return-(Cx(Gs*e)-1)/2},easeInExpo:function(e){return e===0?0:ct(2,10*e-10)},easeOutExpo:function(e){return e===1?1:1-ct(2,-10*e)},easeInOutExpo:function(e){return e===0?0:e===1?1:e<.5?ct(2,20*e-10)/2:(2-ct(2,-20*e+10))/2},easeInCirc:function(e){return 1-cu(1-ct(e,2))},easeOutCirc:function(e){return cu(1-ct(e-1,2))},easeInOutCirc:function(e){return e<.5?(1-cu(1-ct(2*e,2)))/2:(cu(1-ct(-2*e+2,2))+1)/2},easeInBack:function(e){return Px*e*e*e-xu*e*e},easeOutBack:function(e){return 1+Px*ct(e-1,3)+xu*ct(e-1,2)},easeInOutBack:function(e){return e<.5?ct(2*e,2)*((du+1)*2*e-du)/2:(ct(2*e-2,2)*((du+1)*(e*2-2)+du)+2)/2},easeInElastic:function(e){return e===0?0:e===1?1:-ct(2,10*e-10)*qs((e*10-10.75)*Ex)},easeOutElastic:function(e){return e===0?0:e===1?1:ct(2,-10*e)*qs((e*10-.75)*Ex)+1},easeInOutElastic:function(e){return e===0?0:e===1?1:e<.5?-(ct(2,20*e-10)*qs((20*e-11.125)*Ax))/2:ct(2,-20*e+10)*qs((20*e-11.125)*Ax)/2+1},easeInBounce:function(e){return 1-hu(1-e)},easeOutBounce:hu,easeInOutBounce:function(e){return e<.5?(1-hu(1-2*e))/2:(1+hu(2*e-1))/2}},xP=class{constructor(e){P(this,"runtime"),P(this,"pendingTransition"),this.runtime=e,this.pendingTransition={from:re(5),to:re(5),elapsed_time:0,done:!0,total_time:0,timingFunction:ur.easeInOutQuad,constrain:!1}}hasPending(){return!this.pendingTransition.done}getPendingTransition(){return this.pendingTransition}getPendingFrom(){return this.pendingTransition.from}customTransition(e){e(this.pendingTransition)}stopTransition(){this.pendingTransition.from=re(this.runtime.target),this.pendingTransition.to=re(this.runtime.target),this.pendingTransition.done=!0,this.pendingTransition.elapsed_time=0,this.pendingTransition.total_time=0}runTransition(e,t){if(!this.pendingTransition.done){let i=this.pendingTransition,n=i.total_time===0?0:(i.elapsed_time+t)/i.total_time,r=i.total_time===0?1:n===0?0:i.timingFunction(n);e[1]=i.from[1]+(i.to[1]-i.from[1])*r,e[2]=i.from[2]+(i.to[2]-i.from[2])*r,e[3]=i.from[3]+(i.to[3]-i.from[3])*r,e[4]=i.from[4]+(i.to[4]-i.from[4])*r,this.pendingTransition.elapsed_time+=t,this.pendingTransition.elapsed_time>=this.pendingTransition.total_time&&(this.pendingTransition.done=!0,this.pendingTransition.constrain&&this.constrainBounds({transition:{duration:this.pendingTransition.total_time===0?0:500,easing:ur.easeOutExpo}}))}}zoomTo(e,{origin:t,stream:i=!1,transition:n}={}){let r=this.runtime.getZoomedPosition(e,{origin:t}),a=Math.abs(1-e);this.applyTransition(r,n,{duration:2e3*a,easing:ur.easeOutExpo,constrain:!0},{stream:!1})}constrainBounds({transition:e,panPadding:t=0}={}){let[i,n]=this.runtime.constrainBounds(this.runtime.target,{panPadding:t});i&&(this.applyTransition(n,e,{duration:500,easing:ur.easeOutQuart,constrain:!1}),this.runtime.updateNextFrame())}applyTransition(e,t,i,{stream:n}={}){this.pendingTransition.from=re(this.runtime.target),this.pendingTransition.to=e,n||(this.pendingTransition.elapsed_time=0),this.pendingTransition.done=!1,this.pendingTransition.total_time=typeof t?.duration<"u"?t.duration:typeof i?.duration<"u"?i.duration:1e3,this.pendingTransition.constrain=typeof t?.constrain<"u"?t.constrain:typeof i?.constrain<"u"?i.constrain:!1,this.pendingTransition.timingFunction=t?.easing||i?.easing||ur.easeInOutSine}goToRegion(e,{transition:t}={}){let i=this.runtime.clampRegion(e);this.applyTransition(xe.singleBox(i.width,i.height,i.x,i.y),t,{duration:1e3,easing:ur.easeOutExpo,constrain:!0}),this.runtime.updateNextFrame()}},u_=Number.MIN_VALUE+1,Eu=class{constructor(e,t,i,n=[],r){P(this,"id",Cu()),P(this,"ready",!1),P(this,"renderer"),P(this,"world"),P(this,"target"),P(this,"homePosition"),P(this,"manualHomePosition"),P(this,"manualFocalPosition"),P(this,"focalPosition"),P(this,"transitionManager"),P(this,"aggregate"),P(this,"transformBuffer",re(500)),P(this,"lastTarget",re(5)),P(this,"zoomBuffer",re(5)),P(this,"logNextRender",!1),P(this,"pendingUpdate",!0),P(this,"isCommitting",!1),P(this,"firstRender",!0),P(this,"lastTime"),P(this,"stopId"),P(this,"mode","explore"),P(this,"controllers",[]),P(this,"controllersRunning",!1),P(this,"controllerStopFunctions",[]),P(this,"maxScaleFactor",1),P(this,"_viewerToWorld",{x:0,y:0}),P(this,"_lastGoodScale",1),P(this,"hooks",{useFrame:[],useBeforeFrame:[],useAfterPaint:[],useAfterFrame:[]}),P(this,"fpsLimit"),P(this,"options"),P(this,"hookOptions",{filters:{grayscale:0,contrast:0,brightness:0,saturate:0,sepia:0,invert:0,hueRotate:0,blur:0}}),P(this,"_viewport",{x:0,y:0,width:0,height:0}),P(this,"setViewport",a=>{let l=Math.round(typeof a.x>"u"?this.target[1]:a.x),c=Math.round(typeof a.y>"u"?this.target[2]:a.y);a.width?this.target[3]=l+a.width:this.target[3]=this.target[3]-this.target[1]+l,a.height?this.target[4]=c+a.height:this.target[4]=this.target[4]-this.target[2]+c,Math.abs(this.target[1]-l)>.01&&(this.target[1]=l),Math.abs(this.target[2]-c)>.01&&(this.target[2]=c),this.pendingUpdate=!0}),P(this,"render",a=>{let l=a-this.lastTime;if(this.isCommitting||this.fpsLimit&&l<1e3/this.fpsLimit){this.stopId=window.requestAnimationFrame(this.render);return}this.lastTime=a,this.world.flushSubscriptions(),this.stopId=window.requestAnimationFrame(this.render),this.hook("useFrame",l);let c=this.pendingUpdate,p=this.renderer.pendingUpdate();if(this.transitionManager.hasPending()&&(this.transitionManager.runTransition(this.target,l),this.pendingUpdate=!0,this.updateControllerPosition()),!this.firstRender&&!c&&!p&&this.target[0]===this.lastTarget[0]&&this.target[1]===this.lastTarget[1]&&this.target[2]===this.lastTarget[2]&&this.target[3]===this.lastTarget[3]&&this.target[4]===this.lastTarget[4])return;this.hook("useBeforeFrame",l),this.renderer.beforeFrame(this.world,l,this.target,this.hookOptions);let m=this.getScaleFactor(),h=this.renderer.getPointsAt(this.world,this.target,this.aggregate,m),y=h.length;for(let v=0;v<y;v++){let x=h[v][0],A=h[v][1],C=h[v][2],I=C?bi(A,C,this.transformBuffer):A;this.renderer.prepareLayer(x,x.__parent&&C?bi(x.__parent.crop||x.__parent.points,C):I);let E=I.length/5;for(let O=0;O<E;O++){let L=O*5;I[L]!==0&&(this.renderer.paint(x,O,I[L+1],I[L+2],I[L+3]-I[L+1],I[L+4]-I[L+2]),this.hook("useAfterPaint",x))}this.renderer.finishLayer(x,A)}this.renderer.afterFrame(this.world,l,this.target,this.hookOptions),this.hook("useAfterFrame",l),this.lastTarget[0]=this.target[0],this.lastTarget[1]=this.target[1],this.lastTarget[2]=this.target[2],this.lastTarget[3]=this.target[3],this.lastTarget[4]=this.target[4],this.firstRender=!1,this.pendingUpdate=!1,this.logNextRender=!1,this.renderer.isReady()&&(this.ready=!0,this.world.trigger("ready")),this.world.flushSubscriptions();let S=this.world.getScheduledUpdates(this.target,m),w=S.length;if(w>0)for(let v=0;v<w;v++){let x=S[w-v-1]();x?x.then(()=>{this.pendingUpdate=!0}):this.pendingUpdate=!0}}),this.renderer=e,this.world=t,this.options={maxOverZoom:1,maxUnderZoom:1,visibilityRatio:1.5,...r||{}},this.target=xe.projection(i),this.manualHomePosition=!1,this.pendingUpdate=!0,this.homePosition=xe.projection(this.world),this.manualFocalPosition=!1,this.focalPosition=this.target,this.updateFocalPosition(),this.transitionManager=new xP(this),this.aggregate=wi(1),this.world.addLayoutSubscriber(a=>{a==="repaint"&&(this.pendingUpdate=!0),a==="recalculate-world-size"&&(this.manualHomePosition||(this.setHomePosition(),this.goHome()),this.updateFocalPosition())}),this.lastTime=performance.now(),this.controllers=n,this.render(this.lastTime),this.startControllers()}get x(){return this.target[1]}set x(e){this.target[1]=e}get y(){return this.target[2]}set y(e){this.target[2]=e}get x2(){return this.target[3]}set x2(e){this.target[3]=e}get y2(){return this.target[4]}set y2(e){this.target[4]=e}get width(){return this.target[3]-this.target[1]}set width(e){this.target[3]=this.target[1]+e}get height(){return this.target[4]-this.target[2]}set height(e){this.target[4]=this.target[2]=e}setHomePosition(e){this.homePosition.set(xe.projection(e||this.world)),this.pendingUpdate=!0}startControllers(){if(!this.controllersRunning){for(let e of this.controllers)this.controllerStopFunctions.push(e.start(this));this.controllersRunning=!0}}stopControllers(){if(this.controllersRunning){for(let e of this.controllerStopFunctions)e();this.controllersRunning=!1,this.controllerStopFunctions=[]}}updateControllerPosition(){for(let e of this.controllers)e.updatePosition(this.x,this.y,this.width,this.height)}triggerResize(){this.renderer.triggerResize&&this.renderer.triggerResize(),this.pendingUpdate=!0}addController(e){this.controllers.push(e),this.controllersRunning&&e.start(this),this.pendingUpdate=!0}cover(){return this.goHome({cover:!0})}getRendererScreenPosition(){return this.renderer.getRendererScreenPosition()}updateRendererScreenPosition(){this.pendingUpdate=!0,this.renderer.resize()}setOptions(e){this.options={...this.options,...e}}goHome(e={}){if(this.world.width<=0||this.world.height<=0)return;let t=this.getScaleFactor(),i=e.position?{x:e.position[1],y:e.position[2],width:e.position[3]-e.position[1],height:e.position[4]-e.position[2]}:{x:this.homePosition[1],y:this.homePosition[2],width:this.homePosition[3]-this.homePosition[1],height:this.homePosition[4]-this.homePosition[2]},n=this.width*t,r=this.height*t,a=i.width/n,l=i.height/r,c=n/r;if(e.cover?a>l:a<l){let p=c*i.height,m=(p-i.width)/2;this.target[1]=Math.round(-m+i.x),this.target[2]=Math.round(i.y),this.target[3]=Math.round(p-m+i.x),this.target[4]=Math.round(i.height+i.y)}else{let p=i.width/c,m=(p-i.height)/2;this.target[1]=Math.round(i.x),this.target[2]=Math.round(i.y-m),this.target[3]=Math.round(i.x+i.width),this.target[4]=Math.round(i.y+p-m)}this.constrainBounds(this.target),this.updateControllerPosition()}resize(e,t,i,n){this.updateFocalPosition(e-t,i-n);let r=t/e,a=n/i;this.target[3]=this.target[1]+(this.target[3]-this.target[1])*r,this.target[4]=this.target[2]+(this.target[4]-this.target[2])*a,this.goHome({position:this.focalPosition}),this.renderer.resize(t,n),this.pendingUpdate=!0}updateFocalPosition(e,t){if(!this.manualFocalPosition){let i=this.width,n=this.height,r=Math.min(i,n),a=0,l=0,c=this.x+a,p=this.y+l;if(i<n){let m=this.height-this.width;this.focalPosition=xe.projection({x:c,y:p+m/2,width:r-a*2,height:r-l*2}),this.pendingUpdate=!0}else{let m=this.width-this.height;this.focalPosition=xe.projection({x:c+m/2,y:p,width:r-a*2,height:r-l*2}),this.pendingUpdate=!0}}}getViewport(){return this._viewport.x=this.target[1],this._viewport.y=this.target[2],this._viewport.width=this.target[3]-this.target[1],this._viewport.height=this.target[4]-this.target[2],this._viewport}constrainBounds(e,{panPadding:t=0,ref:i=!1}={}){let{minX:n,maxX:r,minY:a,maxY:l}=this.getBounds({target:e,padding:t}),c=!1,p=i?e:re(e),m=Math.round(e[3]-e[1]),h=Math.round(e[4]-e[2]);return n>e[1]&&(c=!0,p[1]=n,p[3]=n+m),a>e[2]&&(c=!0,p[2]=a,p[4]=a+h),r<e[1]&&(c=!0,p[1]=r,p[3]=r+m),l<e[2]&&(c=!0,p[2]=l,p[4]=l+h),[c,p]}getBounds(e){let t=e.target||this.target,i=e.padding,n=this.options.visibilityRatio,r=Math.abs(1-n);if(this.world.hasActiveZone()){let C=this.world.getActiveZone();if(C){let I=t[3]-t[1]<C.points[3]-C.points[1],E=t[4]-t[2]<C.points[4]-C.points[2];return{minX:I?C.points[1]-i:C.points[1]+(C.points[3]-C.points[1])/2-(t[3]-t[1])/2,maxX:E?C.points[2]-i:C.points[2]+(C.points[4]-C.points[2])/2-(t[4]-t[2])/2,minY:I?C.points[3]+i:C.points[1]+(C.points[3]-C.points[1])/2-(t[3]-t[1])/2,maxY:E?C.points[4]+i:C.points[2]+(C.points[4]-C.points[2])/2-(t[4]-t[2])/2}}}let a=t[3]-t[1],l=this.world.width,c=-a*r,p=l-a-c,m=t[4]-t[2],h=this.world.height,y=-m*r,S=h-m-y,w=Math.round(Math.max(c,p)),v=Math.round(Math.min(c,p)),x=Math.round(Math.max(y,S)),A=Math.round(Math.min(y,S));return{minX:v,maxX:w,minY:A,maxY:x}}getScaleFactor(e=!1){let t=this.renderer.getScale(this.target[3]-this.target[1],this.target[4]-this.target[2],e);return t===0?this._lastGoodScale:(this._lastGoodScale=t,t)}getZoomedPosition(e,{origin:t,fromPos:i}){let n=i?{width:i[3]-i[1],height:i[4]-i[2]}:void 0,r=n?this.renderer.getScale(n.width,n.height):this.getScaleFactor(),a=n?n.width:this.width,l=n?n.height:this.height,c=this.getRendererScreenPosition()?.width,p=this.world.width,m=c?c/p:1,h=this.options.maxUnderZoom,y=Math.max(m||1,this.options.maxOverZoom),S=1/e,w=r*S;if(S<1){let x=a*r,A=l*r,C=this.world.width/x,I=this.world.height/A;if(C>I){let E=this.world.width*w,O=~~(a*r)*h;E<O&&(e=this.world.width*r/(a*r*h))}else{let E=this.world.height*w,O=~~(l*r)*h;E<O&&(e=this.world.height*r/(l*r*h))}}else w>y&&(e=r/y);let v=bi(this.target,On(e,t?t.x:this.target[1]+(this.target[3]-this.target[1])/2,t?t.y:this.target[2]+(this.target[4]-this.target[2])/2),this.zoomBuffer);return this.constrainBounds(v,{ref:!0,panPadding:100}),v}clampRegion({x:e,y:t,width:i,height:n,padding:r=0}){let a=this.width,l=this.height,c=i/a<n/l,p=e-r,m=t-r,h=i+r*2,y=n+r*2;if(c){let w=y/l*a;return{x:p-(w-h)/2,y:m,width:w,height:y}}let S=h/a*l;return{x:p,y:m-(S-y)/2,width:h,height:S}}viewerToWorld(e,t){let i=this.getScaleFactor();return this._viewerToWorld.x=this.target[1]+e/i,this._viewerToWorld.y=this.target[2]+t/i,this._viewerToWorld}worldToViewer(e,t,i,n){let r=xe.singleBox(i,n,e,t);return Zt(r,pi(wi(this.getScaleFactor()),ut(-this.target[1],-this.target[2]))),{x:r[1],y:r[2],width:r[3]-r[1],height:r[4]-r[2],strand:r}}setScale(e,t){Zt(this.target,On(e,t?t.x:this.target[1]+(this.target[3]-this.target[1])/2,t?t.y:this.target[2]+(this.target[4]-this.target[2])/2)),this.pendingUpdate=!0}syncTo(e){let t=this.target;return this.target=e.target,this.pendingUpdate=!0,()=>{this.target=t}}stop(){return typeof this.stopId<"u"&&(window.cancelAnimationFrame(this.stopId),this.stopId=void 0),()=>{this.render(performance.now())}}reset(){this.renderer.reset()}selectZone(e){this.world.selectZone(e),this.pendingUpdate=!0}deselectZone(){this.world.deselectZone(),this.pendingUpdate=!0}hook(e,t){let i=this.hooks[e].length;if(i!==0)for(let n=0;n<i;n++)this.hooks[e][n](t)}registerHook(e,t){return this.hooks[e].push(t),()=>{this.hooks[e]=this.hooks[e].filter(i=>i!==t)}}updateNextFrame(){this.pendingUpdate=!0}},pu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,fu={},SP=["backgroundColor","opacity","boxShadow","borderColor","borderWidth","borderStyle","outlineColor","outlineWidth","outlineOffset","outlineStyle"],jx=class extends bn{constructor(){super(),P(this,"id"),P(this,"type","spacial-content"),P(this,"isShape",!0),P(this,"points"),P(this,"hoverEvents",!1),P(this,"activeEvents",!1),P(this,"display",{x:0,y:0,scale:1,width:-1,height:-1,points:re(5)}),P(this,"boundingBox",null),P(this,"_parsed",{border:{id:null,match:[]},outline:{id:null,match:[]}}),P(this,"hovering"),P(this,"pressing"),P(this,"props",{}),P(this,"shape",{type:"none"}),P(this,"addHover",()=>{this.hovering=!0,this.__revision++}),P(this,"removeHover",()=>{this.hovering=!1,this.pressing=!1,this.__revision++}),P(this,"addPress",()=>{this.pressing=!0,this.__revision++}),P(this,"removePress",()=>{this.pressing=!1,this.__revision++}),this.id=Cu(12),this.points=re(5),this.shape={type:"none"}}updateBoundingBox(){if(this.shape.type==="none")return;let e=this.shape.points;if(this.shape.points.length>2){let t=Math.min(...e.map(a=>a[0])),i=Math.min(...e.map(a=>a[1])),n=Math.max(0,...e.map(a=>a[0])),r=Math.max(0,...e.map(a=>a[1]));this.boundingBox={x:t,y:i,width:n-t,height:r-i};return}this.boundingBox=null}intersects(e){if(!e||this.shape.type==="none")return!1;let[t,i]=e,n=this.shape.points,r=this.boundingBox;if(r||(this.updateBoundingBox(),r=this.boundingBox),!r||t<r.x||t>r.x+r.width||i<r.y||i>r.height+r.y)return!1;let a=!1;for(let l=0,c=n.length-1;l<n.length;c=l++)n[l][1]>i!=n[c][1]>i&&t<(n[c][0]-n[l][0])*(i-n[l][1])/(n[c][1]-n[l][1])+n[l][0]&&(a=!a);return a}getAllPointsAt(e,t){return e[3]-e[1]===1&&e[4]-e[2]===1?this.intersects([e[1],e[2]])?[[this,this.points,t]]:[]:[[this,this.points,t]]}applyProps(e={}){let t=!1;if(e.points)if(this.shape.type!=="polygon"||this.shape.points.length!==e.points.length)this.shape={type:"polygon",points:e.points,open:e.open},this.updateBoundingBox();else{let i=!1,n=e.points.length;for(let r=0;r<n;r++)if(e.points[r][0]!==this.shape.points[r][0]||e.points[r][1]!==this.shape.points[r][1]){i=!0;break}i&&(this.shape={type:"polygon",points:e.points,open:e.open},this.updateBoundingBox())}if(e.interactive!==this.props.interactive&&(t=!0,this.props.interactive=e.interactive),(e.open||e.open===!1)&&(t=!0,this.shape.open=e.open),e.style){let i=e.border||e.style.border;if(i!==this._parsed.border.id)if(!i)this._parsed.border.id=null,this._parsed.border.match=[];else{let n=fu[i]||pu.exec(i)||pu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=fu[i]=n)}if(this._parsed.border.id&&(e.style.borderWidth=this._parsed.border.match[1],e.style.borderStyle="solid",e.style.borderColor=this._parsed.border.match[4]),e.style.outline!==this._parsed.outline.id)if(!e.style.outline)this._parsed.outline.id=null,this._parsed.outline.match=[];else{let n=fu[e.style.outline]||pu.exec(e.style.outline)||pu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=fu[e.style.outline]=n)}this._parsed.outline.id&&(e.style.outlineWidth=this._parsed.outline.match[1],e.style.outlineStyle="solid",e.style.outlineColor=this._parsed.outline.match[4]),this.props.style=e.style,e.backgroundColor&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.backgroundColor,t=!0),e.style.background&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.style.background,t=!0);for(let n of SP)if(this.props.style[n]!==e.style[n]){t=!0;break}e.style[":hover"]!==this.props.hoverStyles&&(this.props.hoverStyles=e.style[":hover"],this.hoverEvents||(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),t=!0),e.style[":active"]!==this.props.pressStyles&&(this.props.pressStyles=e.style[":active"],this.activeEvents||(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0)}e.href!==this.props.href&&(this.props.href=e.href,t=!0),e.hrefTarget!==this.props.hrefTarget&&(this.props.hrefTarget=e.hrefTarget,t=!0),e.title!==this.props.title&&(this.props.title=e.title,t=!0),e.className!==this.props.className&&(this.props.className=e.className,e.className&&!this.hoverEvents&&(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),e.className&&!this.activeEvents&&(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0),e.relativeSize!==this.props.relativeSize&&(this.props.relativeSize=e.relativeSize,t=!0),e.relativeStyle!==this.props.relativeStyle&&(this.props.relativeStyle=e.relativeStyle,t=!0),e.html!==this.props.html&&(this.props.html=e.html,t=!0),e.target&&(e.target.width!==this.display.width||e.target.height!==this.display.height||e.target.x!==this.points[1]||e.target.y!==this.points[2])&&(t=!0,this.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.width=e.target.width,this.display.height=e.target.height),t&&this.__revision++}},Ix=/(-?[0-9]+(px|em)\s+|0\s+)(-?[0-9]+(px|em)\s+|0\s+)(-?[0-9]+(px|em)\s+|0\s+)?(-?[0-9]+(px|em)\s+|0\s+)?(.*)/g,Tx={},wP=typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes("firefox"),mu={},bP=class{constructor(e,t){P(this,"canvas"),P(this,"ctx"),P(this,"options"),P(this,"imagesPending",0),P(this,"imagesLoaded",0),P(this,"imageIdsLoaded",[]),P(this,"frameIsRendering",!1),P(this,"pendingDrawCall",!1),P(this,"firstMeaningfulPaint",!1),P(this,"parallelTasks",8),P(this,"frameTasks",0),P(this,"loadingQueueOrdered",!0),P(this,"loadingQueue",[]),P(this,"currentTask",Promise.resolve()),P(this,"tasksRunning",0),P(this,"stats"),P(this,"averageJobTime",64),P(this,"lastKnownScale",1),P(this,"visible",[]),P(this,"previousVisible",[]),P(this,"rendererPosition"),P(this,"dpi"),P(this,"drawCalls",[]),P(this,"lastPaintedObject"),P(this,"hostCache"),P(this,"invalidated",[]),P(this,"_worker",()=>{if(this.loadingQueue.length){let i=this.loadingQueue.pop();i&&(this.tasksRunning++,this.frameTasks++,this.currentTask=i.task().then(()=>{this.tasksRunning--}).catch(()=>{this.tasksRunning--}))}}),P(this,"_scheduled",0),P(this,"_doWork",()=>{this.loadingQueue.length===0&&this.tasksRunning===0&&this._scheduled&&(clearInterval(this._scheduled),this._scheduled=0);let i=this.parallelTasks||1;!this.firstMeaningfulPaint&&this.loadingQueue.length&&(i=this.loadingQueue.length);for(let n=0;n<=i;n++)this._worker()}),this.canvas=e,this.rendererPosition=e.getBoundingClientRect(),this.ctx=e.getContext("2d",{alpha:!0}),this.ctx.imageSmoothingEnabled=!0,this.options=t||{},this.canvas.style.opacity="0",this.canvas.style.transition="opacity .3s",this.dpi=t?.dpi||1,this.hostCache=t?.lruCache?new Fy({maxSize:1024*512*512,dispose:(i,n,r)=>{this.invalidated.push(n),i.width=0,i.height=0},sizeCalculation:(i,n)=>i.width*i.height}):{store:{},get(i){return this.store[i]},set(i,n){this.store[i]=n}}}getCanvasDims(){return{width:this.canvas.width/this.dpi,height:this.canvas.height/this.dpi}}resize(){this.rendererPosition=this.canvas.getBoundingClientRect()}isReady(){return this.firstMeaningfulPaint}afterFrame(e){if(this.clearTransform(),this.lastPaintedObject=void 0,this.frameIsRendering=!1,this.imagesPending=Math.max(0,this.imagesPending-this.imagesLoaded),this.imagesLoaded=0,this.loadingQueueOrdered||(this.loadingQueue=this.loadingQueue.sort((t,i)=>t.network&&t.scale===i.scale?i.distance-t.distance:t.scale<i.scale?-1:1),this.loadingQueueOrdered=!0),this.previousVisible=this.visible,this.pendingDrawCall=!!this.drawCalls.length,this.pendingDrawCall)for(let t=0;t<this.drawCalls.length;t++){let i=this.drawCalls.shift();i&&i()}this.doOffscreenWork(),this.options.debug&&this.stats&&this.stats.end()}doOffscreenWork(){this.frameTasks=0,this.loadingQueue.length&&(this._worker(),this.loadingQueue.length&&(this._scheduled||(this._scheduled=setInterval(this._doWork,0))))}getScale(e,t,i){if(Number.isNaN(e)||Number.isNaN(t))return this.lastKnownScale;let n=this.getCanvasDims(),r=n.width/e,a=n.height/t,l=(r<a?a:r)*(i&&this.dpi||1);return Number.isNaN(l)||(this.lastKnownScale=l),this.lastKnownScale}beforeFrame(e,t,i,n){this.options.debug&&this.stats&&this.stats.begin(),this.frameIsRendering=!0,this.visible=[],this.options.beforeFrame&&this.options.beforeFrame(t);let r=this.getCanvasDims();if(this.ctx.globalAlpha=1,this.ctx.fillStyle=this.canvas.dataset.background??"rgb(0, 0, 0)",this.ctx.fillRect(0,0,r.width,r.height),n.enableFilters&&(n.filters.brightness||n.filters.contrast||n.filters.grayscale||n.filters.invert||n.filters.sepia||n.filters.saturate||n.filters.hueRotate||n.filters.blur)){let a="";n.filters.brightness&&(a+=`brightness(${~~(100+n.filters.brightness*100)}%) `),n.filters.contrast&&(a+=`contrast(${~~(100+n.filters.contrast*100)}%) `),n.filters.grayscale&&(a+=`grayscale(${~~(n.filters.grayscale*100)}%) `),n.filters.invert&&(a+=`invert(${~~(n.filters.invert*100)}%) `),n.filters.sepia&&(a+=`sepia(${~~(n.filters.sepia*100)}%) `),n.filters.saturate&&(a+=`saturate(${~~(100+n.filters.saturate*100)}%) `),n.filters.hueRotate&&(a+=`hue-rotate(${n.filters.hueRotate}deg) `),n.filters.blur&&(a+=`blur(${n.filters.blur}px) `),this.ctx.filter=a}else this.ctx.filter="none"}applyTransform(e,t,i,n,r){let a=e.__owner.value;if(a&&a.rotation){this.ctx.save();let l=t+n/2,c=i+r/2;this.ctx.translate(l,c),this.ctx.rotate(a.rotation*Math.PI/180),this.ctx.translate(-l,-c),this.lastPaintedObject=a}}clearTransform(){this.lastPaintedObject&&(this.lastPaintedObject.rotation&&this.ctx.restore(),this.lastPaintedObject=void 0)}paint(e,t,i,n,r,a){let l=this.ctx.globalAlpha;if(e instanceof cr||e instanceof Ks){if(e.display.rotation){this.ctx.save();let m=i+r/2,h=n+a/2;e.crop&&(m-=e.crop[t*5+1],h-=e.crop[t*5+2]),this.ctx.translate(m,h),this.ctx.rotate(e.display.rotation*Math.PI/180),this.ctx.translate(-m,-h)}if(this.visible.push(e),typeof e.style&&e.style.opacity!=="undefined"){if(!e.style.opacity)return;this.ctx.globalAlpha=e.style.opacity}try{let m=e.__host.canvas,h=this.getCanvasDims();if((m.indices.indexOf(t)===-1||this.invalidated.indexOf(m.canvases[t])!==-1)&&this.schedulePaintToCanvas(m,e,t,vu({x:i+r/2,y:n+r/2},{x:h.width/2,y:h.height/2})),!this.firstMeaningfulPaint)return;let y=this.hostCache.get(m.canvases[t]);if(y)if(e.crop&&e.cropData){if(e.crop[t*5]){let S=[e.crop[t*5+1]/e.display.scale-e.display.points[t*5+1],e.crop[t*5+2]/e.display.scale-e.display.points[t*5+2],1+(e.crop[t*5+3]-e.crop[t*5+1])/e.display.scale,1+(e.crop[t*5+4]-e.crop[t*5+2])/e.display.scale];S[0]+=e.cropData.x/e.display.scale,S[1]+=e.cropData.y/e.display.scale;let w=e.x*this.lastKnownScale,v=e.y*this.lastKnownScale,x=[i+w,n+v,r,a];x[0]+=w,x[1]+=v,this.ctx.drawImage(y,S[0],S[1],S[2],S[3],x[0],x[1],x[2]+1,x[3]+1)}}else wP?this.ctx.drawImage(y,0,0,e.display.points[t*5+3]-e.display.points[t*5+1],e.display.points[t*5+4]-e.display.points[t*5+2],i,n,r+1,a+1):this.ctx.drawImage(y,0,0,e.display.points[t*5+3]-e.display.points[t*5+1],e.display.points[t*5+4]-e.display.points[t*5+2],i,n,r+Number.MIN_VALUE+.5,a+Number.MIN_VALUE+.5)}catch{}e.display.rotation&&this.ctx.restore()}let c=e instanceof $s&&this.options.box,p=e instanceof jx&&this.options.polygon;if((c||p)&&!e.props.className&&!e.props.html&&!e.props.href){if(this.visible.push(e),e.props.style){let m=Object.assign({},e.props.style||{},e.hovering?e.props.hoverStyles:{},e.pressing?e.props.pressStyles:{}),h=e.props.relativeStyle?1:r/e.width;typeof m.opacity<"u"&&(this.ctx.globalAlpha=m.opacity);let y=0;typeof m.borderWidth<"u"&&(y=parseInt(m.borderWidth,10)*h);let S=0;typeof m.outlineWidth<"u"&&(S=parseInt(m.outlineWidth,10)*h);let w=0;if(typeof m.outlineOffset<"u"&&(w=parseInt(m.outlineOffset,10)*h),m.borderColor&&(this.ctx.strokeStyle=m.borderColor),m.boxShadow){let v=m.boxShadow.split(/,(?![^(]*\))/);for(let x of v){let A=Tx[x]||Ix.exec(x)||Ix.exec(x);Tx[x]=A,A&&(this.ctx.save(),this.ctx.shadowOffsetX=parseInt(A[1])*this.dpi*h,this.ctx.shadowOffsetY=parseInt(A[3])*this.dpi*h,this.ctx.shadowBlur=parseInt(A[5])*this.dpi*h,this.ctx.shadowColor=A[9],this.ctx.fillStyle="rgba(0,0,0,1)",this.ctx.fillRect(i+y,n+y,r,a),this.ctx.restore())}}if(this.ctx.fillStyle=m.backgroundColor||"transparent",this.ctx.lineWidth=y,p){let v=e.shape,x=v.points||[],A=x.length;this.ctx.beginPath();for(let C=0;C<A;C++)this.ctx.lineTo(i+x[C][0]*this.lastKnownScale,n+x[C][1]*this.lastKnownScale);v.open||this.ctx.closePath(),y&&this.ctx.stroke(),v.open||this.ctx.fill()}else y&&this.ctx.strokeRect(i+y/2,n+y/2,r+y,a+y),this.ctx.fillRect(i+y,n+y,r,a);S&&(m.outlineColor&&(this.ctx.strokeStyle=m.outlineColor),this.ctx.lineWidth=S,this.ctx.strokeRect(i-S/2-w,n-S/2-w,r+y*2+S+w*2,a+y*2+S+w*2))}this.ctx.globalAlpha=l}}loadImage(e,t,i,n=!1){if(mu[e]&&mu[e].naturalWidth>0){t(mu[e]);return}try{let r=!1;n||setTimeout(()=>{r||this.loadImage(e,t,i,!0)},3e3);let a=document.createElement("img");a.decoding="auto",a.onload=function(){r=!0,t(a),mu[e]=a,a.onload=null},this.options.crossOrigin&&(a.crossOrigin="anonymous"),a.src=e,a.complete&&a.onload({}),a.width}catch(r){console.log("image error",r),i(r)}}schedulePaintToCanvas(e,t,i,n){this.imagesPending++,e.indices.push(i);let r=`${t.id}--${t.display.scale}-${i}`,a=this.invalidated.indexOf(r);a!==-1&&this.invalidated.splice(a,1),e.canvases[i]=r,t.__host.canvas.loading=!0,this.loadingQueueOrdered=!1,this.loadingQueue.push({id:r,scale:t.display.scale,network:!0,distance:n,task:()=>new Promise(l=>{if(this.visible.indexOf(t)===-1){this.imagesPending--,e.indices.splice(e.indices.indexOf(i),1),l();return}let c=t.getImageUrl(i);this.loadImage(c,p=>{this.loadingQueue.push({id:r,scale:t.display.scale,distance:n,task:()=>new Promise(m=>{this.imageIdsLoaded.includes(r)||(this.imagesLoaded++,this.imageIdsLoaded.push(r)),e.loaded.push(i),e.loaded.length===e.indices.length&&(e.loading=!1);let h=t.display.points.slice(i*5,i*5+5),y=document.createElement("canvas"),S=y.getContext("2d");y.width=h[3]-h[1],y.height=h[4]-h[2],this.hostCache.set(e.canvases[i],y),this.drawCalls.push(()=>{S.drawImage(p,0,0,h[3]-h[1],h[4]-h[2]),m()})})}),l()},p=>{this.imagesPending--,e.indices.splice(e.indices.indexOf(i),1),l()})})})}afterPaintLayer(e,t){}prepareLayer(e,t){if(e.__owner.value)if(e.cropData){let i=this.lastKnownScale*(1/e.display.scale);this.applyTransform(e,t[1],t[2],t[3]-t[1],t[4]-t[2])}else this.applyTransform(e,t[1],t[2],t[3]-t[1],t[4]-t[2]);(!e.__host||!e.__host.canvas)&&(e instanceof cr||e instanceof Ks)&&this.createImageHost(e)}finishLayer(){this.lastPaintedObject&&this.clearTransform()}createImageHost(e){e.__host=e.__host?e.__host:{},e.__host.canvas={canvas:void 0,canvases:[],indices:[],loaded:[],loading:!1}}getPointsAt(e,t,i,n){return e.getPointsAt(t,i,n)}getViewportBounds(e,t,i){let n=e.getActiveZone();if(n){let r=t[3]-t[1]<n.points[3]-n.points[1],a=t[4]-t[2]<n.points[4]-n.points[2];return{x1:r?n.points[1]-i:n.points[1]+(n.points[3]-n.points[1])/2-(t[3]-t[1])/2,y1:a?n.points[2]-i:n.points[2]+(n.points[4]-n.points[2])/2-(t[4]-t[2])/2,x2:r?n.points[3]+i:n.points[1]+(n.points[3]-n.points[1])/2-(t[3]-t[1])/2,y2:a?n.points[4]+i:n.points[2]+(n.points[4]-n.points[2])/2-(t[4]-t[2])/2}}return null}pendingUpdate(){let e=!this.pendingDrawCall&&this.drawCalls.length===0&&this.imagesPending===0&&this.loadingQueue.length===0&&this.tasksRunning===0;return!e&&this.visible.length===0&&setTimeout(()=>{this.canvas.style.opacity="1",this.firstMeaningfulPaint=!0},500),!this.firstMeaningfulPaint&&e&&this.visible.length?(this.canvas.style.opacity="1",this.firstMeaningfulPaint=e,!0):this.options.debug?!0:!e}getRendererScreenPosition(){return this.rendererPosition}reset(){this.loadingQueue=[],this.drawCalls=[]}},Vx=class{constructor(e){P(this,"renderers",[]),P(this,"length");for(let t of e)t&&this.renderers.push(t);this.length=this.renderers.length}afterFrame(e,t,i,n){for(let r=0;r<this.length;r++)this.renderers[r].afterFrame(e,t,i,n)}afterPaintLayer(e,t){for(let i=0;i<this.length;i++)this.renderers[i].afterPaintLayer(e,t)}beforeFrame(e,t,i,n){for(let r=0;r<this.length;r++)this.renderers[r].beforeFrame(e,t,i,n)}triggerResize(){for(let e=0;e<this.length;e++){let t=this.renderers[e];t.triggerResize&&t.triggerResize()}}getPointsAt(e,t,i,n){return this.renderers[0].getPointsAt(e,t,i,n)}getScale(e,t){return this.renderers[0].getScale(e,t)}getViewportBounds(e,t,i){return this.renderers[0].getViewportBounds(e,t,i)}getRendererScreenPosition(){return this.renderers[0].getRendererScreenPosition()}isReady(){for(let e=0;e<this.length;e++)if(!this.renderers[e].isReady())return!1;return!0}paint(e,t,i,n,r,a){for(let l=0;l<this.length;l++)this.renderers[l].paint(e,t,i,n,r,a)}pendingUpdate(){for(let e=0;e<this.length;e++)if(this.renderers[e].pendingUpdate())return!0;return!1}prepareLayer(e,t){for(let i=0;i<this.length;i++)this.renderers[i].prepareLayer(e,t)}finishLayer(e,t){for(let i=0;i<this.length;i++)this.renderers[i].finishLayer(e,t)}resize(e,t){for(let i=0;i<this.length;i++)this.renderers[i].resize(e,t)}reset(){for(let e=0;e<this.length;e++)this.renderers[e].reset()}},CP=class{constructor(e){P(this,"canvas"),P(this,"context"),P(this,"heightRatio",1),P(this,"widthRatio",1),P(this,"target",new Float32Array(5)),P(this,"initialWidth"),P(this,"initialHeight"),P(this,"bounds"),P(this,"aggregate"),P(this,"delta",0),P(this,"renderNextFrame",!0),this.canvas=e,this.initialWidth=e.width,this.initialHeight=e.height,this.context=e.getContext("2d"),this.context.globalAlpha=.5,this.aggregate=wi(1)}isReady(){return!0}resize(){this.initialWidth=this.canvas.width,this.initialHeight=this.canvas.height,this.renderNextFrame=!0}afterFrame(e,t,i){if(this.renderNextFrame){this.context.clearRect(0,0,this.canvas.width,this.canvas.height);let n=this.initialWidth/e.width,r=this.initialHeight/e.height,a=this.widthRatio>this.heightRatio?n:r;if(this.target=i,this.bounds){let l=e.getPointsAt(this.bounds,this.aggregate,a);for(let[c,p]of l)if(c instanceof cr&&c.__host.canvas){let m=p.length/5;for(let h=0;h<m;h++)if(c.__host.canvas.canvases[h]){let y={x1:p[h+1]*a,y1:p[h+2]*a,width:(p[h+3]-p[h+1])*a,height:(p[h+4]-p[h+2])*a}}}}e.getPoints().forEach((l,c,p)=>{if(c%5===0&&l){let m={x1:p[c+1]*a,y1:p[c+2]*a,x2:p[c+3]*a,y2:p[c+4]*a,width:(p[c+3]-p[c+1])*a,height:(p[c+4]-p[c+2])*a};this.context.strokeStyle="red",this.context.strokeRect(m.x1,m.y1,m.width,m.height)}}),i&&(this.context.strokeStyle="red",this.context.lineWidth=window.devicePixelRatio||1,this.context.strokeRect(i[1]*a,i[2]*a,(i[3]-i[1])*a,(i[4]-i[2])*a))}}getActiveZone(e){return null}getPointsAt(e,t,i,n){return e.getPointsAt(t,i,n)}getScale(e,t){return 1}beforeFrame(e,t){this.bounds=xe.singleBox(e.width,e.height)}drawImage(){}afterPaintLayer(e,t){}paint(e,t,i,n,r,a){this.renderNextFrame=!0}prepareLayer(e){}pendingUpdate(){return!1}hasActiveZone(){return!1}getViewportBounds(e,t,i){return null}getRendererScreenPosition(){return this.canvas.getBoundingClientRect()}finishLayer(){}reset(){}};function PP(e){return{x:e[1],y:e[2],width:e[3]-e[1],height:e[4]-e[2]}}var Rx="pan",_x="scroll",EP="gesture",AP={zoomOutFactor:.8,zoomInFactor:1.25,maxZoomFactor:1,minZoomFactor:.05,zoomDuration:300,zoomWheelConstant:20,zoomClamp:.6,panBounceStiffness:120,panBounceDamping:15,panTimeConstant:240,panPower:.1,nudgeDistance:100,panPadding:0,devicePixelRatio:1,enableWheel:!0,enableClickToZoom:!0,ignoreSingleFingerTouch:!1,enablePanOnWait:!1,requireMetaKeyForWheelZoom:!1,panOnWaitDelay:40,onPanInSketchMode:()=>{},parentElement:null},Wx=(e={})=>({start:function(t){let{zoomWheelConstant:i,enableWheel:n,enableClickToZoom:r,ignoreSingleFingerTouch:a,enablePanOnWait:l,panOnWaitDelay:c,parentElement:p,requireMetaKeyForWheelZoom:m}={...AP,...e},h={pointerStart:{x:0,y:0},isPressing:!1,mousemoveBuffer:re(5),multiTouch:{distance:0}};t.world.activatedEvents.push("onMouseUp","onMouseDown","onMouseMove","onTouchStart","onTouchEnd","onTouchMove");function y(){x=0,C="",E(),E(void 0,"notice"),A=0}function S(){t.world.constraintBounds(),y()}function w(U){if(U.which>1){h.isPressing=!1;return}t.mode==="explore"&&(U.preventDefault(),h.pointerStart.x=U.atlas.x,h.pointerStart.y=U.atlas.y,t.transitionManager.stopTransition(),h.isPressing=!0)}function v(){y(),h.isPressing&&(t.mode==="explore"&&t.world.constraintBounds(),h.isPressing=!1)}let x=0,A=0,C="";function I(U){if(t.mode==="explore"){if(U.atlasTouches.length===1&&(A=performance.now(),a==!1&&U.preventDefault(),h.pointerStart.x=U.atlasTouches[0].x,h.pointerStart.y=U.atlasTouches[0].y),U.atlasTouches.length===2){C=EP,U.preventDefault();let q=U.atlasTouches[0].x,ee=U.atlasTouches[1].x;h.pointerStart.x=(q+ee)/2;let Me=U.atlasTouches[0].y,pe=U.atlasTouches[1].y;h.pointerStart.y=(Me+pe)/2,x=vu({x:U.touches[0].clientX,y:U.touches[0].clientY},{x:U.touches[1].clientX,y:U.touches[1].clientY})}t.transitionManager.stopTransition(),h.isPressing=!0}}function E(U,q="intent"){p&&(p.dataset[q]=U)}function O(U){let q=null,ee=null,Me=!1,pe=0;if(h.isPressing&&U.touches.length===2){let Te=U.touches[0].clientX,ke=U.touches[1].clientX;q=(Te+ke)/2;let He=U.touches[0].clientY,qe=U.touches[1].clientY;ee=(He+qe)/2,pe=vu({x:U.touches[0].clientX,y:U.touches[0].clientY},{x:U.touches[1].clientX,y:U.touches[1].clientY}),Me=!0}if(E(C),h.isPressing&&U.touches.length===1){if(l&&(performance.now()-A<c&&C==""&&(C=_x),C==""&&(C=Rx)),E(C),C==""&&a==!0||C==_x){E("require-two-finger","notice");return}let Te=U.touches[0];q=Te.clientX,ee=Te.clientY}if(q!==null&&ee!==null){let Te=t.getRendererScreenPosition();if(Te){let{x:ke,y:He}=t.viewerToWorld(q-Te.x,ee-Te.y),qe=pe&&x?pe/x:1;t.transitionManager.customTransition($=>{$.from=re(t.target),$.to=bi($.from,pi(ut(h.pointerStart.x-ke,h.pointerStart.y-He),On(1/qe,ke,He)),h.mousemoveBuffer),$.elapsed_time=0,$.total_time=0,$.timingFunction=ur.easeInOutExpo,$.done=!1})}x=pe}C==Rx&&U.preventDefault()}function L(U){if(h.isPressing){let q=t.getRendererScreenPosition();if(q){let{x:ee,y:Me}=t.viewerToWorld(U.clientX-q.x,U.clientY-q.y);t.transitionManager.customTransition(pe=>{pe.from=re(t.target),pe.to=bi(pe.from,ut(h.pointerStart.x-ee,h.pointerStart.y-Me),h.mousemoveBuffer),pe.elapsed_time=0,pe.total_time=0,pe.timingFunction=ur.easeInOutExpo,pe.done=!1})}}}function M(U){t.mode==="explore"&&t.world.zoomIn(U.atlas)}function Q(U){let q=1+(0,Ux.default)(U).spinY/i;t.world.zoomTo(q,U.atlas,!0)}function V(U){return m&&U.metaKey==!1?(E("meta-required","notice"),U.stopPropagation(),!1):!0}t.world.addEventListener("mouseup",S),t.world.addEventListener("touchend",S),t.world.addEventListener("touchstart",I),t.world.addEventListener("mousedown",w),window.addEventListener("touchend",v),window.addEventListener("mouseup",v),window.addEventListener("mousemove",L),p&&p.addEventListener("touchmove",O),r&&(t.world.activatedEvents.push("onClick"),t.world.addEventListener("click",M)),n&&(t.world.activatedEvents.push("onWheel"),m&&p?.addEventListener("wheel",V,{passive:!0,capture:!0}),t.world.addEventListener("wheel",Q));let J=t.world.addLayoutSubscriber((U,q)=>{if(U==="zone-changed"&&t.transitionManager.constrainBounds({transition:{duration:0}}),U==="zoom-to"&&q&&t.transitionManager.zoomTo(q.factor,{origin:q.point,stream:q.stream}),U==="go-home"){let ee=q.immediate?{duration:0}:void 0;t.transitionManager.goToRegion(PP(t.homePosition),{transition:ee})}if(U==="goto-region"&&q){let ee=q.immediate?{duration:0}:{};t.transitionManager.goToRegion(q,{transition:ee})}U==="constrain-bounds"&&t.transitionManager.constrainBounds({transition:q?.immediate?{duration:0}:void 0})});return()=>{t.world.removeEventListener("mouseup",S),t.world.removeEventListener("touchend",S),t.world.removeEventListener("touchstart",I),t.world.removeEventListener("mousedown",w),window.removeEventListener("touchend",v),window.removeEventListener("mouseup",v),t.world.removeEventListener("mousemove",L),p&&(p.removeEventListener("touchmove",L),p.removeEventListener("wheel",V,{passive:!0,capture:!0})),r&&t.world.removeEventListener("click",M),n&&t.world.removeEventListener("wheel",Q),J()}},updatePosition(){}}),No=Au.default.createContext("explore");No.displayName="Mode";var TP=()=>(0,Au.useContext)(No);var Iu=Op.default.createContext(null);Iu.displayName="Atlas";var Tu=Op.default.createContext(null);Tu.displayName="Bounds";var Su,RP=typeof performance=="object"&&typeof performance.now=="function";if(RP){let e=performance;Su=()=>e.now()}else{let e=Date,t=e.now();Su=()=>e.now()-t}var _P=16;function Mx(e,t){e&&e.appendChild&&t&&e.appendChild(t)}function Qx(e,t){e&&e.removeChild&&t&&e.removeChild(t)}function MP(e,t){return Qx(e.world,t)}function kP(e,t,i){return $x(e.world,t,i)}function $x(e,t,i){e&&e instanceof Eu&&(e=e.world),e&&e.insertBefore&&e.insertBefore(t,i)}function Gx(e,t,i){if(i&&(e.applyProps&&e.applyProps(i),e instanceof bn))for(let n of bu){let r=n.slice(2).toLowerCase();i[n]!==t[n]&&(t[n]&&e.removeEventListener(r,t[n]),e.addEventListener(r,i[n]))}}function Yx(e,t){let i=Object.keys(t),n=!1;for(let r of i)if(bu.indexOf(r)!==-1){let a=Fo[r];if(a){if(e.activatedEvents.indexOf(a)!==-1)continue;n=!0,e.activatedEvents.push(a)}}n&&e.triggerEventActivation()}var wu=new Map,kx={};function OP(e,{args:t=[],...i},n,r,a){if(!(n instanceof Eu)&&a){let p=m=>m.return?p(m.return):m.stateNode&&m.stateNode.containerInfo;n=p(a)}let l,c=n.world;switch(e){case"world":l=Pu.withProps({width:i.width,height:i.height,viewingDirection:"left-to-right"}),l.activatedEvents=c.activatedEvents,l.eventHandlers=c.eventHandlers,l.subscriptions=c.subscriptions,l.triggerEventActivation(),c=l;break;case"box":l=new $s;break;case"shape":l=new jx;break;case"worldObject":case"world-object":l=new kp;break;case"worldImage":case"world-image":l=new cr;break;case"texture":l=new Ap;break;case"compositeImage":case"composite-image":l=new yP({id:i.id,width:i.width,height:i.height,images:[],renderOptions:i.renderOptions});break;case"tiledImage":case"tiled-image":l=Ks.fromTile(i.uri,i.display,i.tile,i.scaleFactor,void 0,i.format);break;case"paragraph":l=new gu,l.text=i.children;break;default:return}return Yx(c,i),Gx(l,{},i),l}function LP(e,t){if(t instanceof Pu)e.world=t;else if(t instanceof kp)e.world.appendChild(t);else if(t)throw new Error("Invalid root")}var Ys=(0,Hx.default)({unstable_now:Su,now:Su,createInstance:OP,removeChild:Qx,appendChild:Mx,appendInitialChild:Mx,insertBefore:$x,warnsIfNotActing:!0,supportsMutation:!0,isPrimaryRenderer:!1,scheduleTimeout:typeof setTimeout<"u"?setTimeout:void 0,cancelTimeout:typeof clearTimeout<"u"?clearTimeout:void 0,setTimeout:typeof setTimeout<"u"?setTimeout:void 0,clearTimeout:typeof clearTimeout<"u"?clearTimeout:void 0,noTimeout:-1,appendChildToContainer:LP,removeChildFromContainer:MP,createTextInstance(){},insertInContainerBefore:kP,prepareUpdate(e,t,i,n,r){return Yx(r.world,n),n},commitUpdate(e,t,i,n,r,a){e.applyProps&&t&&Gx(e,n,t)},finalizeInitialChildren(e){return e?.__handlers},getChildHostContext(){return kx},getRootHostContext(){return kx},prepareForCommit(e){return e.isCommitting=!0,null},preparePortalMount(){},hideInstance(e){e&&e.points&&(e.points[0]=0)},unhideInstance(e,t){e&&e.points&&(e.points[0]=1)},getPublicInstance(e){return e},hideTextInstance(){throw new Error("Text is not allowed in the react-three-fibre tree. You may have extraneous whitespace between components.")},resetAfterCommit(e){e.isCommitting=!1,e.pendingUpdate=!0,e.world&&e.world.needsRecalculate&&(e.world.recalculateWorldSize(),e.world.triggerRepaint())},shouldSetTextContent(){return!1},clearContainer(){return!1},supportsHydration:!1,supportsPersistence:!1,detachDeletedInstance(e){},afterActiveInstanceBlur(){},beforeActiveInstanceBlur(){},getCurrentEventPriority(){return console.log("getCurrentEventPriority"),_P},getInstanceFromNode(e){throw console.log("getInstanceFromNode",e),new Error("Not implemented")},getInstanceFromScope(e){throw console.log("getInstanceFromScope",e),new Error("Not implemented")},prepareScopeUpdate(e,t){throw console.log("prepareScopeUpdate",e,t),new Error("Not implemented")},logRecoverableError(){},requestPostPaintCallback(){}});Ys.injectIntoDevTools({bundleType:0,version:qx.version,rendererPackageName:"@atlas-viewer/atlas"});function Lp(e,t){let i=wu.get(e);i&&Ys.updateContainer(null,i,null,()=>{wu.delete(e),t&&t(e)})}var Ox={render(e,t){let i=wu.get(t);if(i)Ys.updateContainer(e,i,null);else{let n=Ys.createContainer(t,0,null,!1,null,"",()=>{},null);Ys.updateContainer(e,n,null),wu.set(t,n)}},unmountComponentAtNode(e,t){Lp(e,t)}},Xs=typeof window<"u"&&(window.document?.createElement||window.navigator?.product==="ReactNative")?Ru.useLayoutEffect:Ru.useEffect,zP=wn.default.memo(({children:e,setIsReady:t,onCreated:i,bounds:n,preset:r,mode:a="explore"})=>{let l=(0,wn.useCallback)(function(c){let p=(0,wn.useRef)(!1),m=()=>{t(!0)};return(0,wn.useEffect)(()=>{if(r&&!p.current){r.runtime.goHome();let h=i&&i(r);return void(h&&h.then?h.then(m):m())}return()=>{}},[]),(0,wn.useEffect)(()=>{p.current=!0},[]),c.children},[r]);return Xs(()=>{if(r){let c=r.runtime;a!==c.mode&&(c.mode=a),Ox.render((0,zo.jsx)(wn.default.StrictMode,{children:(0,zo.jsx)(l,{children:(0,zo.jsx)(Tu.Provider,{value:n,children:(0,zo.jsx)(No.Provider,{value:a,children:(0,zo.jsx)(Iu.Provider,{value:r,children:e})})})})}),c)}},[r,a,e]),Xs(()=>{if(r){let c=r.runtime;return()=>{Ox.unmountComponentAtNode(c)}}return()=>{}},[r]),null}),FP=class{constructor(e,t){P(this,"canvas"),P(this,"gl"),P(this,"program"),P(this,"fragmentShader"),P(this,"vertexShader"),P(this,"rectBuffer"),P(this,"fragmentShaderSource",`
11
+ `)+o.join(" > ")}return null},i.getPublicRootInstance=function(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return ke(o.child.stateNode);default:return o.child.stateNode}},i.injectIntoDevTools=function(o){if(o={bundleType:o.bundleType,version:o.version,rendererPackageName:o.rendererPackageName,rendererConfig:o.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:c.ReactCurrentDispatcher,findHostInstanceByFiber:_b,findFiberByHostInstance:o.findFiberByHostInstance||Mb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")o=!1;else{var s=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(s.isDisabled||!s.supportsFiber)o=!0;else{try{Xa=s.inject(o),un=s}catch{}o=!!s.checkDCE}}return o},i.isAlreadyRendering=function(){return!1},i.observeVisibleRects=function(o,s,u,d){if(!Ri)throw Error(l(363));o=Kd(o,s);var f=Y(o,u,d).disconnect;return{disconnect:function(){f()}}},i.registerMutableSourceForHydration=function(o,s){var u=s._getVersion;u=u(s._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[s,u]:o.mutableSourceEagerHydrationData.push(s,u)},i.runWithPriority=function(o,s){var u=Fe;try{return Fe=o,s()}finally{Fe=u}},i.shouldError=function(){return null},i.shouldSuspend=function(){return!1},i.updateContainer=function(o,s,u,d){var f=s.current,g=Gt(),b=tr(f);return u=Ay(u),s.context===null?s.context=u:s.pendingContext=u,s=Rn(g,b),s.payload={element:o},d=d===void 0?null:d,d!==null&&(s.callback=d),o=Zn(f,s,b),o!==null&&(Fi(o,f,b,g),rl(o,f,b)),b},i}});var Pv=Tt((yR,Cv)=>{"use strict";Cv.exports=bv()});var Hs=Tt((GR,Sx)=>{"use strict";Sx.exports=ReactDOM});var bx=Tt(Pp=>{"use strict";var wx=Hs();Pp.createRoot=wx.createRoot,Pp.hydrateRoot=wx.hydrateRoot;var YR});var xS=Tt(vS=>{"use strict";var Zo=H();function DA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var jA=typeof Object.is=="function"?Object.is:DA,VA=Zo.useState,UA=Zo.useEffect,WA=Zo.useLayoutEffect,HA=Zo.useDebugValue;function qA(e,t){var i=t(),n=VA({inst:{value:i,getSnapshot:t}}),r=n[0].inst,a=n[1];return WA(function(){r.value=i,r.getSnapshot=t,bf(r)&&a({inst:r})},[e,i,t]),UA(function(){return bf(r)&&a({inst:r}),e(function(){bf(r)&&a({inst:r})})},[e]),HA(i),i}function bf(e){var t=e.getSnapshot;e=e.value;try{var i=t();return!jA(e,i)}catch{return!0}}function QA(e,t){return t()}var $A=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?QA:qA;vS.useSyncExternalStore=Zo.useSyncExternalStore!==void 0?Zo.useSyncExternalStore:$A});var wS=Tt((vk,SS)=>{"use strict";SS.exports=xS()});var CS=Tt(bS=>{"use strict";var ac=H(),GA=wS();function YA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var XA=typeof Object.is=="function"?Object.is:YA,KA=GA.useSyncExternalStore,ZA=ac.useRef,JA=ac.useEffect,eI=ac.useMemo,tI=ac.useDebugValue;bS.useSyncExternalStoreWithSelector=function(e,t,i,n,r){var a=ZA(null);if(a.current===null){var l={hasValue:!1,value:null};a.current=l}else l=a.current;a=eI(function(){function p(w){if(!m){if(m=!0,h=w,w=n(w),r!==void 0&&l.hasValue){var v=l.value;if(r(v,w))return y=v}return y=w}if(v=y,XA(h,w))return v;var x=n(w);return r!==void 0&&r(v,x)?v:(h=w,y=x)}var m=!1,h,y,S=i===void 0?null:i;return[function(){return p(t())},S===null?void 0:function(){return p(S())}]},[t,i,n,r]);var c=KA(e,a[0],a[1]);return JA(function(){l.hasValue=!0,l.value=c},[c]),tI(c),c}});var ES=Tt((Sk,PS)=>{"use strict";PS.exports=CS()});var t1=Tt((bD,e1)=>{"use strict";(()=>{var e={296:(r,a,l)=>{var c=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,h=/^0o[0-7]+$/i,y=parseInt,S=typeof l.g=="object"&&l.g&&l.g.Object===Object&&l.g,w=typeof self=="object"&&self&&self.Object===Object&&self,v=S||w||Function("return this")(),x=Object.prototype.toString,A=Math.max,C=Math.min,I=function(){return v.Date.now()};function E(L){var M=typeof L;return!!L&&(M=="object"||M=="function")}function O(L){if(typeof L=="number")return L;if(function(V){return typeof V=="symbol"||function(J){return!!J&&typeof J=="object"}(V)&&x.call(V)=="[object Symbol]"}(L))return NaN;if(E(L)){var M=typeof L.valueOf=="function"?L.valueOf():L;L=E(M)?M+"":M}if(typeof L!="string")return L===0?L:+L;L=L.replace(c,"");var Q=m.test(L);return Q||h.test(L)?y(L.slice(2),Q?2:8):p.test(L)?NaN:+L}r.exports=function(L,M,Q){var V,J,U,q,ee,Me,pe=0,Te=!1,ke=!1,He=!0;if(typeof L!="function")throw new TypeError("Expected a function");function qe($e){var N=V,G=J;return V=J=void 0,pe=$e,q=L.apply(G,N)}function $($e){var N=$e-Me;return Me===void 0||N>=M||N<0||ke&&$e-pe>=U}function ve(){var $e=I();if($($e))return it($e);ee=setTimeout(ve,function(N){var G=M-(N-Me);return ke?C(G,U-(N-pe)):G}($e))}function it($e){return ee=void 0,He&&V?qe($e):(V=J=void 0,q)}function Qe(){var $e=I(),N=$($e);if(V=arguments,J=this,Me=$e,N){if(ee===void 0)return function(G){return pe=G,ee=setTimeout(ve,M),Te?qe(G):q}(Me);if(ke)return ee=setTimeout(ve,M),qe(Me)}return ee===void 0&&(ee=setTimeout(ve,M)),q}return M=O(M)||0,E(Q)&&(Te=!!Q.leading,U=(ke="maxWait"in Q)?A(O(Q.maxWait)||0,M):U,He="trailing"in Q?!!Q.trailing:He),Qe.cancel=function(){ee!==void 0&&clearTimeout(ee),pe=0,V=Me=J=ee=void 0},Qe.flush=function(){return ee===void 0?q:it(I())},Qe}},96:(r,a,l)=>{var c="Expected a function",p=NaN,m="[object Symbol]",h=/^\s+|\s+$/g,y=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,w=/^0o[0-7]+$/i,v=parseInt,x=typeof l.g=="object"&&l.g&&l.g.Object===Object&&l.g,A=typeof self=="object"&&self&&self.Object===Object&&self,C=x||A||Function("return this")(),I=Object.prototype.toString,E=Math.max,O=Math.min,L=function(){return C.Date.now()};function M(V){var J=typeof V;return!!V&&(J=="object"||J=="function")}function Q(V){if(typeof V=="number")return V;if(function(q){return typeof q=="symbol"||function(ee){return!!ee&&typeof ee=="object"}(q)&&I.call(q)==m}(V))return p;if(M(V)){var J=typeof V.valueOf=="function"?V.valueOf():V;V=M(J)?J+"":J}if(typeof V!="string")return V===0?V:+V;V=V.replace(h,"");var U=S.test(V);return U||w.test(V)?v(V.slice(2),U?2:8):y.test(V)?p:+V}r.exports=function(V,J,U){var q=!0,ee=!0;if(typeof V!="function")throw new TypeError(c);return M(U)&&(q="leading"in U?!!U.leading:q,ee="trailing"in U?!!U.trailing:ee),function(Me,pe,Te){var ke,He,qe,$,ve,it,Qe=0,$e=!1,N=!1,G=!0;if(typeof Me!="function")throw new TypeError(c);function de(Pe){var ne=ke,he=He;return ke=He=void 0,Qe=Pe,$=Me.apply(he,ne)}function ye(Pe){var ne=Pe-it;return it===void 0||ne>=pe||ne<0||N&&Pe-Qe>=qe}function ge(){var Pe=L();if(ye(Pe))return Ve(Pe);ve=setTimeout(ge,function(ne){var he=pe-(ne-it);return N?O(he,qe-(ne-Qe)):he}(Pe))}function Ve(Pe){return ve=void 0,G&&ke?de(Pe):(ke=He=void 0,$)}function ze(){var Pe=L(),ne=ye(Pe);if(ke=arguments,He=this,it=Pe,ne){if(ve===void 0)return function(he){return Qe=he,ve=setTimeout(ge,pe),$e?de(he):$}(it);if(N)return ve=setTimeout(ge,pe),de(it)}return ve===void 0&&(ve=setTimeout(ge,pe)),$}return pe=Q(pe)||0,M(Te)&&($e=!!Te.leading,qe=(N="maxWait"in Te)?E(Q(Te.maxWait)||0,pe):qe,G="trailing"in Te?!!Te.trailing:G),ze.cancel=function(){ve!==void 0&&clearTimeout(ve),Qe=0,ke=it=He=ve=void 0},ze.flush=function(){return ve===void 0?$:Ve(L())},ze}(V,J,{leading:q,maxWait:J,trailing:ee})}},703:(r,a,l)=>{"use strict";var c=l(414);function p(){}function m(){}m.resetWarningCache=p,r.exports=function(){function h(w,v,x,A,C,I){if(I!==c){var E=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw E.name="Invariant Violation",E}}function y(){return h}h.isRequired=h;var S={array:h,bigint:h,bool:h,func:h,number:h,object:h,string:h,symbol:h,any:h,arrayOf:y,element:h,elementType:h,instanceOf:y,node:h,objectOf:y,oneOf:y,oneOfType:y,shape:y,exact:y,checkPropTypes:m,resetWarningCache:p};return S.PropTypes=S,S}},697:(r,a,l)=>{r.exports=l(703)()},414:r=>{"use strict";r.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},t={};function i(r){var a=t[r];if(a!==void 0)return a.exports;var l=t[r]={exports:{}};return e[r](l,l.exports,i),l.exports}i.n=r=>{var a=r&&r.__esModule?()=>r.default:()=>r;return i.d(a,{a}),a},i.d=(r,a)=>{for(var l in a)i.o(a,l)&&!i.o(r,l)&&Object.defineProperty(r,l,{enumerable:!0,get:a[l]})},i.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),i.o=(r,a)=>Object.prototype.hasOwnProperty.call(r,a),i.r=r=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{LazyLoadComponent:()=>Oe,LazyLoadImage:()=>Kc,trackWindowScroll:()=>it});let r=H();var a=i.n(r),l=i(697);let c=Hs();var p=i.n(c);function m(){return typeof window<"u"&&"IntersectionObserver"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype}function h(Y){return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},h(Y)}function y(Y,k){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);k&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function S(Y,k,X){return(k=v(k))in Y?Object.defineProperty(Y,k,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[k]=X,Y}function w(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,v(K.key),K)}}function v(Y){var k=function(X,K){if(h(X)!=="object"||X===null)return X;var be=X[Symbol.toPrimitive];if(be!==void 0){var Ae=be.call(X,"string");if(h(Ae)!=="object")return Ae;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(X)}(Y);return h(k)==="symbol"?k:String(k)}function x(Y,k){return x=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},x(Y,k)}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},A(Y)}var C=function(Y){Y.forEach(function(k){k.isIntersecting&&k.target.onVisible()})},I={},E=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&x(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=A(K);if(be){var ue=A(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(h(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ie){if(Ie===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ie}(oe)}(this,j)});function je(j){var W;if(function(oe,se){if(!(oe instanceof se))throw new TypeError("Cannot call a class as a function")}(this,je),(W=Ae.call(this,j)).supportsObserver=!j.scrollPosition&&j.useIntersectionObserver&&m(),W.supportsObserver){var ue=j.threshold;W.observer=function(oe){return I[oe]=I[oe]||new IntersectionObserver(C,{rootMargin:oe+"px"}),I[oe]}(ue)}return W}return k=je,X=[{key:"componentDidMount",value:function(){this.placeholder&&this.observer&&(this.placeholder.onVisible=this.props.onVisible,this.observer.observe(this.placeholder)),this.supportsObserver||this.updateVisibility()}},{key:"componentWillUnmount",value:function(){this.observer&&this.placeholder&&this.observer.unobserve(this.placeholder)}},{key:"componentDidUpdate",value:function(){this.supportsObserver||this.updateVisibility()}},{key:"getPlaceholderBoundingBox",value:function(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props.scrollPosition,W=this.placeholder.getBoundingClientRect(),ue=p().findDOMNode(this.placeholder).style,oe=parseInt(ue.getPropertyValue("margin-left"),10)||0,se=parseInt(ue.getPropertyValue("margin-top"),10)||0;return{bottom:j.y+W.bottom+se,left:j.x+W.left+oe,right:j.x+W.right+oe,top:j.y+W.top+se}}},{key:"isPlaceholderInViewport",value:function(){if(typeof window>"u"||!this.placeholder)return!1;var j=this.props,W=j.scrollPosition,ue=j.threshold,oe=this.getPlaceholderBoundingBox(W),se=W.y+window.innerHeight,Ie=W.x,Xe=W.x+window.innerWidth,Ke=W.y;return Ke-ue<=oe.bottom&&se+ue>=oe.top&&Ie-ue<=oe.right&&Xe+ue>=oe.left}},{key:"updateVisibility",value:function(){this.isPlaceholderInViewport()&&this.props.onVisible()}},{key:"render",value:function(){var j=this,W=this.props,ue=W.className,oe=W.height,se=W.placeholder,Ie=W.style,Xe=W.width;if(se&&typeof se.type!="function")return a().cloneElement(se,{ref:function(Ue){return j.placeholder=Ue}});var Ke=function(Ue){for(var Pt=1;Pt<arguments.length;Pt++){var st=arguments[Pt]!=null?arguments[Pt]:{};Pt%2?y(Object(st),!0).forEach(function(Et){S(Ue,Et,st[Et])}):Object.getOwnPropertyDescriptors?Object.defineProperties(Ue,Object.getOwnPropertyDescriptors(st)):y(Object(st)).forEach(function(Et){Object.defineProperty(Ue,Et,Object.getOwnPropertyDescriptor(st,Et))})}return Ue}({display:"inline-block"},Ie);return Xe!==void 0&&(Ke.width=Xe),oe!==void 0&&(Ke.height=oe),a().createElement("span",{className:ue,ref:function(Ue){return j.placeholder=Ue},style:Ke},se)}}],X&&w(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);E.propTypes={onVisible:l.PropTypes.func.isRequired,className:l.PropTypes.string,height:l.PropTypes.oneOfType([l.PropTypes.number,l.PropTypes.string]),placeholder:l.PropTypes.element,threshold:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool,scrollPosition:l.PropTypes.shape({x:l.PropTypes.number.isRequired,y:l.PropTypes.number.isRequired}),width:l.PropTypes.oneOfType([l.PropTypes.number,l.PropTypes.string])},E.defaultProps={className:"",placeholder:null,threshold:100,useIntersectionObserver:!0};let O=E;var L=i(296),M=i.n(L),Q=i(96),V=i.n(Q),J=function(Y){var k=getComputedStyle(Y,null);return k.getPropertyValue("overflow")+k.getPropertyValue("overflow-y")+k.getPropertyValue("overflow-x")};let U=function(Y){if(!(Y instanceof HTMLElement))return window;for(var k=Y;k&&k instanceof HTMLElement;){if(/(scroll|auto)/.test(J(k)))return k;k=k.parentNode}return window};function q(Y){return q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},q(Y)}var ee=["delayMethod","delayTime"];function Me(){return Me=Object.assign?Object.assign.bind():function(Y){for(var k=1;k<arguments.length;k++){var X=arguments[k];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Me.apply(this,arguments)}function pe(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,(be=function(Ae,je){if(q(Ae)!=="object"||Ae===null)return Ae;var j=Ae[Symbol.toPrimitive];if(j!==void 0){var W=j.call(Ae,"string");if(q(W)!=="object")return W;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(Ae)}(K.key),q(be)==="symbol"?be:String(be)),K)}var be}function Te(Y,k){return Te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},Te(Y,k)}function ke(Y,k){if(k&&(q(k)==="object"||typeof k=="function"))return k;if(k!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return He(Y)}function He(Y){if(Y===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Y}function qe(Y){return qe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},qe(Y)}var $=function(){return typeof window>"u"?0:window.scrollX||window.pageXOffset},ve=function(){return typeof window>"u"?0:window.scrollY||window.pageYOffset};let it=function(Y){var k=function(X){(function(ue,oe){if(typeof oe!="function"&&oe!==null)throw new TypeError("Super expression must either be null or a function");ue.prototype=Object.create(oe&&oe.prototype,{constructor:{value:ue,writable:!0,configurable:!0}}),Object.defineProperty(ue,"prototype",{writable:!1}),oe&&Te(ue,oe)})(W,X);var K,be,Ae,je,j=(Ae=W,je=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var ue,oe=qe(Ae);if(je){var se=qe(this).constructor;ue=Reflect.construct(oe,arguments,se)}else ue=oe.apply(this,arguments);return ke(this,ue)});function W(ue){var oe;if(function(Ie,Xe){if(!(Ie instanceof Xe))throw new TypeError("Cannot call a class as a function")}(this,W),(oe=j.call(this,ue)).useIntersectionObserver=ue.useIntersectionObserver&&m(),oe.useIntersectionObserver)return ke(oe);var se=oe.onChangeScroll.bind(He(oe));return ue.delayMethod==="debounce"?oe.delayedScroll=M()(se,ue.delayTime):ue.delayMethod==="throttle"&&(oe.delayedScroll=V()(se,ue.delayTime)),oe.state={scrollPosition:{x:$(),y:ve()}},oe.baseComponentRef=a().createRef(),oe}return K=W,(be=[{key:"componentDidMount",value:function(){this.addListeners()}},{key:"componentWillUnmount",value:function(){this.removeListeners()}},{key:"componentDidUpdate",value:function(){typeof window>"u"||this.useIntersectionObserver||U(p().findDOMNode(this.baseComponentRef.current))!==this.scrollElement&&(this.removeListeners(),this.addListeners())}},{key:"addListeners",value:function(){typeof window>"u"||this.useIntersectionObserver||(this.scrollElement=U(p().findDOMNode(this.baseComponentRef.current)),this.scrollElement.addEventListener("scroll",this.delayedScroll,{passive:!0}),window.addEventListener("resize",this.delayedScroll,{passive:!0}),this.scrollElement!==window&&window.addEventListener("scroll",this.delayedScroll,{passive:!0}))}},{key:"removeListeners",value:function(){typeof window>"u"||this.useIntersectionObserver||(this.scrollElement.removeEventListener("scroll",this.delayedScroll),window.removeEventListener("resize",this.delayedScroll),this.scrollElement!==window&&window.removeEventListener("scroll",this.delayedScroll))}},{key:"onChangeScroll",value:function(){this.useIntersectionObserver||this.setState({scrollPosition:{x:$(),y:ve()}})}},{key:"render",value:function(){var ue=this.props,oe=(ue.delayMethod,ue.delayTime,function(Ie,Xe){if(Ie==null)return{};var Ke,Ue,Pt=function(Et,Gn){if(Et==null)return{};var Qi,Ar,ys={},Wa=Object.keys(Et);for(Ar=0;Ar<Wa.length;Ar++)Qi=Wa[Ar],Gn.indexOf(Qi)>=0||(ys[Qi]=Et[Qi]);return ys}(Ie,Xe);if(Object.getOwnPropertySymbols){var st=Object.getOwnPropertySymbols(Ie);for(Ue=0;Ue<st.length;Ue++)Ke=st[Ue],Xe.indexOf(Ke)>=0||Object.prototype.propertyIsEnumerable.call(Ie,Ke)&&(Pt[Ke]=Ie[Ke])}return Pt}(ue,ee)),se=this.useIntersectionObserver?null:this.state.scrollPosition;return a().createElement(Y,Me({forwardRef:this.baseComponentRef,scrollPosition:se},oe))}}])&&pe(K.prototype,be),Object.defineProperty(K,"prototype",{writable:!1}),W}(a().Component);return k.propTypes={delayMethod:l.PropTypes.oneOf(["debounce","throttle"]),delayTime:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool},k.defaultProps={delayMethod:"throttle",delayTime:300,useIntersectionObserver:!0},k};function Qe(Y){return Qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},Qe(Y)}function $e(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,(be=function(Ae,je){if(Qe(Ae)!=="object"||Ae===null)return Ae;var j=Ae[Symbol.toPrimitive];if(j!==void 0){var W=j.call(Ae,"string");if(Qe(W)!=="object")return W;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(Ae)}(K.key),Qe(be)==="symbol"?be:String(be)),K)}var be}function N(Y,k){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},N(Y,k)}function G(Y){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},G(Y)}var de=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&N(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=G(K);if(be){var ue=G(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(Qe(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ie){if(Ie===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ie}(oe)}(this,j)});function je(j){return function(W,ue){if(!(W instanceof ue))throw new TypeError("Cannot call a class as a function")}(this,je),Ae.call(this,j)}return k=je,(X=[{key:"render",value:function(){return a().createElement(O,this.props)}}])&&$e(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);let ye=it(de);function ge(Y){return ge=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},ge(Y)}function Ve(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,(be=function(Ae,je){if(ge(Ae)!=="object"||Ae===null)return Ae;var j=Ae[Symbol.toPrimitive];if(j!==void 0){var W=j.call(Ae,"string");if(ge(W)!=="object")return W;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(Ae)}(K.key),ge(be)==="symbol"?be:String(be)),K)}var be}function ze(Y,k){return ze=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},ze(Y,k)}function Pe(Y){if(Y===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Y}function ne(Y){return ne=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},ne(Y)}var he=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&ze(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=ne(K);if(be){var ue=ne(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(ge(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Pe(oe)}(this,j)});function je(j){var W;(function(Xe,Ke){if(!(Xe instanceof Ke))throw new TypeError("Cannot call a class as a function")})(this,je),W=Ae.call(this,j);var ue=j.afterLoad,oe=j.beforeLoad,se=j.scrollPosition,Ie=j.visibleByDefault;return W.state={visible:Ie},Ie&&(oe(),ue()),W.onVisible=W.onVisible.bind(Pe(W)),W.isScrollTracked=!!(se&&Number.isFinite(se.x)&&se.x>=0&&Number.isFinite(se.y)&&se.y>=0),W}return k=je,(X=[{key:"componentDidUpdate",value:function(j,W){W.visible!==this.state.visible&&this.props.afterLoad()}},{key:"onVisible",value:function(){this.props.beforeLoad(),this.setState({visible:!0})}},{key:"render",value:function(){if(this.state.visible)return this.props.children;var j=this.props,W=j.className,ue=j.delayMethod,oe=j.delayTime,se=j.height,Ie=j.placeholder,Xe=j.scrollPosition,Ke=j.style,Ue=j.threshold,Pt=j.useIntersectionObserver,st=j.width;return this.isScrollTracked||Pt&&m()?a().createElement(O,{className:W,height:se,onVisible:this.onVisible,placeholder:Ie,scrollPosition:Xe,style:Ke,threshold:Ue,useIntersectionObserver:Pt,width:st}):a().createElement(ye,{className:W,delayMethod:ue,delayTime:oe,height:se,onVisible:this.onVisible,placeholder:Ie,style:Ke,threshold:Ue,width:st})}}])&&Ve(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);he.propTypes={afterLoad:l.PropTypes.func,beforeLoad:l.PropTypes.func,useIntersectionObserver:l.PropTypes.bool,visibleByDefault:l.PropTypes.bool},he.defaultProps={afterLoad:function(){return{}},beforeLoad:function(){return{}},useIntersectionObserver:!0,visibleByDefault:!1};let Oe=he;function ot(Y){return ot=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k},ot(Y)}var Ti=["afterLoad","beforeLoad","delayMethod","delayTime","effect","placeholder","placeholderSrc","scrollPosition","threshold","useIntersectionObserver","visibleByDefault","wrapperClassName","wrapperProps"];function Dt(Y,k){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);k&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function Wt(Y){for(var k=1;k<arguments.length;k++){var X=arguments[k]!=null?arguments[k]:{};k%2?Dt(Object(X),!0).forEach(function(K){fs(Y,K,X[K])}):Object.getOwnPropertyDescriptors?Object.defineProperties(Y,Object.getOwnPropertyDescriptors(X)):Dt(Object(X)).forEach(function(K){Object.defineProperty(Y,K,Object.getOwnPropertyDescriptor(X,K))})}return Y}function fs(Y,k,X){return(k=Ua(k))in Y?Object.defineProperty(Y,k,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[k]=X,Y}function Ri(){return Ri=Object.assign?Object.assign.bind():function(Y){for(var k=1;k<arguments.length;k++){var X=arguments[k];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Ri.apply(this,arguments)}function Xc(Y,k){for(var X=0;X<k.length;X++){var K=k[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,Ua(K.key),K)}}function Ua(Y){var k=function(X,K){if(ot(X)!=="object"||X===null)return X;var be=X[Symbol.toPrimitive];if(be!==void 0){var Ae=be.call(X,"string");if(ot(Ae)!=="object")return Ae;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(X)}(Y);return ot(k)==="symbol"?k:String(k)}function ms(Y,k){return ms=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},ms(Y,k)}function ln(Y){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(k){return k.__proto__||Object.getPrototypeOf(k)},ln(Y)}var gs=function(Y){(function(j,W){if(typeof W!="function"&&W!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(W&&W.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),W&&ms(j,W)})(je,Y);var k,X,K,be,Ae=(K=je,be=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var j,W=ln(K);if(be){var ue=ln(this).constructor;j=Reflect.construct(W,arguments,ue)}else j=W.apply(this,arguments);return function(oe,se){if(se&&(ot(se)==="object"||typeof se=="function"))return se;if(se!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ie){if(Ie===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ie}(oe)}(this,j)});function je(j){var W;return function(ue,oe){if(!(ue instanceof oe))throw new TypeError("Cannot call a class as a function")}(this,je),(W=Ae.call(this,j)).state={loaded:!1},W}return k=je,(X=[{key:"onImageLoad",value:function(){var j=this;return this.state.loaded?null:function(W){j.props.onLoad(W),j.props.afterLoad(),j.setState({loaded:!0})}}},{key:"getImg",value:function(){var j=this.props,W=(j.afterLoad,j.beforeLoad,j.delayMethod,j.delayTime,j.effect,j.placeholder,j.placeholderSrc,j.scrollPosition,j.threshold,j.useIntersectionObserver,j.visibleByDefault,j.wrapperClassName,j.wrapperProps,function(ue,oe){if(ue==null)return{};var se,Ie,Xe=function(Ue,Pt){if(Ue==null)return{};var st,Et,Gn={},Qi=Object.keys(Ue);for(Et=0;Et<Qi.length;Et++)st=Qi[Et],Pt.indexOf(st)>=0||(Gn[st]=Ue[st]);return Gn}(ue,oe);if(Object.getOwnPropertySymbols){var Ke=Object.getOwnPropertySymbols(ue);for(Ie=0;Ie<Ke.length;Ie++)se=Ke[Ie],oe.indexOf(se)>=0||Object.prototype.propertyIsEnumerable.call(ue,se)&&(Xe[se]=ue[se])}return Xe}(j,Ti));return a().createElement("img",Ri({},W,{onLoad:this.onImageLoad()}))}},{key:"getLazyLoadImage",value:function(){var j=this.props,W=j.beforeLoad,ue=j.className,oe=j.delayMethod,se=j.delayTime,Ie=j.height,Xe=j.placeholder,Ke=j.scrollPosition,Ue=j.style,Pt=j.threshold,st=j.useIntersectionObserver,Et=j.visibleByDefault,Gn=j.width;return a().createElement(Oe,{beforeLoad:W,className:ue,delayMethod:oe,delayTime:se,height:Ie,placeholder:Xe,scrollPosition:Ke,style:Ue,threshold:Pt,useIntersectionObserver:st,visibleByDefault:Et,width:Gn},this.getImg())}},{key:"getWrappedLazyLoadImage",value:function(j){var W=this.props,ue=W.effect,oe=W.height,se=W.placeholderSrc,Ie=W.width,Xe=W.wrapperClassName,Ke=W.wrapperProps,Ue=this.state.loaded,Pt=Ue?" lazy-load-image-loaded":"",st=Ue||!se?{}:{backgroundImage:"url(".concat(se,")"),backgroundSize:"100% 100%"};return a().createElement("span",Ri({className:Xe+" lazy-load-image-background "+ue+Pt,style:Wt(Wt({},st),{},{color:"transparent",display:"inline-block",height:oe,width:Ie})},Ke),j)}},{key:"render",value:function(){var j=this.props,W=j.effect,ue=j.placeholderSrc,oe=j.visibleByDefault,se=j.wrapperClassName,Ie=j.wrapperProps,Xe=this.getLazyLoadImage();return(W||ue)&&!oe||se||Ie?this.getWrappedLazyLoadImage(Xe):Xe}}])&&Xc(k.prototype,X),Object.defineProperty(k,"prototype",{writable:!1}),je}(a().Component);gs.propTypes={onLoad:l.PropTypes.func,afterLoad:l.PropTypes.func,beforeLoad:l.PropTypes.func,delayMethod:l.PropTypes.string,delayTime:l.PropTypes.number,effect:l.PropTypes.string,placeholderSrc:l.PropTypes.string,threshold:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool,visibleByDefault:l.PropTypes.bool,wrapperClassName:l.PropTypes.string,wrapperProps:l.PropTypes.object},gs.defaultProps={onLoad:function(){},afterLoad:function(){return{}},beforeLoad:function(){return{}},delayMethod:"throttle",delayTime:300,effect:"",placeholderSrc:null,threshold:100,useIntersectionObserver:!0,visibleByDefault:!1,wrapperClassName:""};let Kc=gs})(),e1.exports=n})()});var ZT={};Bb(ZT,{AnnotationContext:()=>jT,AnnotationPageContext:()=>VT,AnnotationStyleProvider:()=>uT,Auth:()=>Mf,AuthProvider:()=>Rf,AuthRContext:()=>to,AuthReactContext:()=>kS,AuthReactContextActions:()=>OS,CanvasAnnotations:()=>KI,CanvasContext:()=>Vi,CanvasPanel:()=>Bt,CanvasStrategyProvider:()=>um,CanvasWorldObject:()=>cm,CollectionContext:()=>UT,CombinedMetadata:()=>ZI,ComplexTimelineProvider:()=>mm,ContextBridge:()=>Nf,ControlsReactContext:()=>Ma,CreateCustomShape:()=>Wm,CustomContextBridge:()=>HS,CustomContextBridgeProvider:()=>pI,EventsProvider:()=>hI,Image:()=>Zw,ImageService:()=>BT,ImageServiceLoaderContext:()=>Dw,InnerViewerProvider:()=>DS,LanguageProvider:()=>VI,LanguageString:()=>_w,LocaleString:()=>Ii,ManifestContext:()=>vf,ManifestMetadata:()=>eT,MediaPlayerProvider:()=>La,Metadata:()=>Da,PolygonSelector:()=>NT,RangeContext:()=>xf,ReactEventContext:()=>io,ReactVaultContext:()=>mr,Render3DModelStrategy:()=>wm,RenderAccompanyingCanvas:()=>Am,RenderAnnotationStrategy:()=>bm,RenderAudioStrategy:()=>Em,RenderComplexTimelineStrategy:()=>gm,RenderEmptyStrategy:()=>dm,RenderImageStrategy:()=>xm,RenderSvgEditorControls:()=>oT,RenderTextualContentStrategy:()=>ym,RenderVideoStrategy:()=>Tm,RenderYouTubeStrategy:()=>Rm,ResourceProvider:()=>ei,ResourceReactContext:()=>ea,SelectorControllerProvider:()=>sT,SequenceThumbnails:()=>nT,SimpleViewerProvider:()=>Of,SimpleViewerReactContext:()=>is,SingleCanvasThumbnail:()=>km,StrategyReactContext:()=>_a,ThumbnailFallbackImage:()=>ho,TranslationProvider:()=>jI,TransliterationProvider:()=>UI,VaultProvider:()=>Kr,ViewerPresetContext:()=>Ui,VirtualAnnotationProvider:()=>Vf,VisibleCanvasReactContext:()=>Jr,authDetailsForResource:()=>Af,createAuthStateStore:()=>Pf,createProbe:()=>Ef,defaultEmitter:()=>VS,emptyActions:()=>Zf,emptyStrategy:()=>Jf,expandTarget:()=>Nt,findAllCanvasesInRange:()=>oc,findFirstCanvasFromRange:()=>fS,findManifestSelectedRange:()=>NA,findSelectedRange:()=>Sf,flattenAnnotationPageIds:()=>em,formatTime:()=>Pc,get3dStrategy:()=>nm,getComplexTimelineStrategy:()=>rm,getDefaultAnnotationStyles:()=>zm,getImageStrategy:()=>Ia,getManifestSequence:()=>sc,getParsedTargetSelector:()=>ba,getRenderingStrategy:()=>sm,getTextualContentStrategy:()=>Ta,getVideoStrategy:()=>Ra,getVisibleCanvasesFromCanvasId:()=>BA,hasAuth:()=>oI,isImageApiSelector:()=>mc,makeAccessServiceRequest:()=>Cf,makeAccessTokenRequest:()=>lc,parseRotation:()=>gc,parseSelector:()=>Wn,parseSpecificResource:()=>kI,svgThemes:()=>y1,unknownResponse:()=>Ca,unsupportedStrategy:()=>et,useAnnotation:()=>Sa,useAnnotationPage:()=>$f,useAnnotationPageManager:()=>Ea,useAnnotationStyles:()=>Nm,useAnnotationsAtTime:()=>WT,useAuthActions:()=>LS,useAuthService:()=>zS,useAuthStore:()=>es,useAuthToken:()=>aI,useAuthTokens:()=>If,useCanvas:()=>Ce,useCanvasChoices:()=>HT,useCanvasClock:()=>qT,useCanvasSequence:()=>wf,useCanvasStartTime:()=>za,useCanvasSubset:()=>QT,useClosestLanguage:()=>kw,useCollection:()=>$T,useComplexTimeline:()=>qI,useContextBridge:()=>Ff,useCreateLocaleString:()=>WI,useCurrentAuth:()=>sI,useCustomContextBridge:()=>zf,useDispatch:()=>Bf,useEventEmitter:()=>fa,useEventListener:()=>GT,useExistingVault:()=>Zr,useExternalCollection:()=>YT,useExternalManifest:()=>yf,useExternalResource:()=>la,useIIIFLanguage:()=>Ec,useImage:()=>Bc,useImageService:()=>qm,useImageServiceLoader:()=>Oa,useImageTile:()=>XT,useIsAuthEnabled:()=>_f,useLoadImageService:()=>Aa,useLocaleString:()=>Ow,useManifest:()=>vt,useMediaActions:()=>$I,useMediaElements:()=>GI,useMediaState:()=>QI,usePaintables:()=>im,usePaintingAnnotations:()=>oo,usePolygonHelper:()=>Vm,useRange:()=>ua,useRenderControls:()=>ni,useRenderingStrategy:()=>am,useResourceContext:()=>Xt,useResourceEvents:()=>ya,useResources:()=>tm,useSearchService:()=>kf,useSelectorController:()=>Lm,useSelectorEmitter:()=>aT,useSelectorEvents:()=>Om,useSelectorHelper:()=>lT,useSimpleMediaPlayer:()=>ao,useSimpleViewer:()=>pa,useStrategy:()=>pt,useStyleHelper:()=>KT,useStyles:()=>ro,useSvgEditor:()=>Um,useThumbnail:()=>Qn,useTranslations:()=>pm,useTransliteration:()=>hm,useVault:()=>_e,useVaultEffect:()=>vm,useVaultSelector:()=>De,useViewerPreset:()=>ma,useVirtualAnnotationPage:()=>Df,useVirtualAnnotationPageContext:()=>jf,useVisibleCanvases:()=>eo});var mo=T(H(),1);var ii=T(H(),1);var or=(e,t,i)=>{let n=e.length,r=i||re(n);for(let a=0;a<n;a++)r[a]=a%5===0?e[a+1]<t[3]&&e[a+3]>t[1]&&e[a+2]<t[4]&&e[a+4]>t[2]?1:0:e[a];return r};function re(e,t,i){return new Float32Array(e,t,i)}var My=(e,t,i)=>{let n=e[1]<=t[3]&&e[3]>=t[1]&&e[2]<=t[4]&&e[4]>=t[2],r=i||re(5);return n?(r[0]=1,r[1]=Math.max(e[1],t[1]),r[2]=Math.max(e[2],t[2]),r[3]=Math.min(e[3],t[3]),r[4]=Math.min(e[4],t[4]),r):(r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r)},ky=e=>e.length/5;var pi=(e,t,i)=>{let n=i||re(9);return n[0]=e[0]*t[0]+e[1]*t[3]+e[2]*t[6],n[1]=e[0]*t[1]+e[1]*t[4]+e[2]*t[7],n[2]=e[0]*t[2]+e[1]*t[5]+e[2]*t[8],n[3]=e[3]*t[0]+e[4]*t[3]+e[5]*t[6],n[4]=e[3]*t[1]+e[4]*t[4]+e[5]*t[7],n[5]=e[3]*t[2]+e[4]*t[5]+e[5]*t[8],n[6]=e[6]*t[0]+e[7]*t[3]+e[8]*t[6],n[7]=e[6]*t[1]+e[7]*t[4]+e[8]*t[7],n[8]=e[6]*t[2]+e[7]*t[5]+e[8]*t[8],n},xe=class e{constructor(t){this.index=0,this.length=t,this.points=re(this.length)}static grid(t=1,i=1){return new e(5*t*i)}static point(t,i){let n=re(5);return n[0]=1,n[1]=t,n[2]=i,n[3]=t,n[4]=i,n}static positionPair(t){let i=re(5);return i[0]=1,i[1]=t.x1,i[2]=t.y1,i[3]=t.x2,i[4]=t.y2,i}static projection(t){return e.singleBox(t.width,t.height,t.x,t.y)}static singleBox(t,i,n=0,r=0){let a=re(5);return a[0]=1,a[1]=n,a[2]=r,a[3]=t+n,a[4]=i+r,a}row(t){return t(this)}addPoints(t,i,n,r){return this.points[this.index]=1,this.points[1+this.index]=t,this.points[2+this.index]=i,this.points[3+this.index]=n,this.points[4+this.index]=r,this.index+=5,this}addBox(t,i,n,r){return this.addPoints(t,i,t+n,i+r),this}build(){return this.points}};var Zt=(e,t)=>{let i=e.length;for(let n=0;n<i;n++)e[n]=n%5===0?t[6]*e[n+1]+t[7]*e[n+2]+t[8]*e[n]:n%5%2===1?t[0]*e[n]+t[1]*e[n+1]+t[2]:t[3]*e[n-1]+t[4]*e[n]+t[5];return e},wi=e=>{let t=re(9);return t[0]=e,t[4]=e,t[8]=1,t},ut=(e,t)=>{let i=re(9);return i[0]=1,i[2]=e,i[4]=1,i[5]=t,i[8]=1,i},On=(e,t,i)=>pi(ut((1-e)*t,(1-e)*i),wi(e)),bi=(e,t,i)=>{let n=e.length,r=i&&i.length>=n?i.slice(0,n):re(n);for(let a=0;a<n;a++)r[a]=a%5===0?t[6]*e[a+1]+t[7]*e[a+2]+t[8]*e[a]:a%5%2===1?t[0]*e[a]+t[1]*e[a+1]+t[2]:t[3]*e[a-1]+t[4]*e[a]+t[5];return r};var Ns=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,jb=typeof AbortController=="function",Nl=jb?AbortController:class{constructor(){this.signal=new Oy}abort(t=new Error("This operation was aborted")){this.signal.reason=this.signal.reason||t,this.signal.aborted=!0,this.signal.dispatchEvent({type:"abort",target:this.signal})}},Vb=typeof AbortSignal=="function",Ub=typeof Nl.AbortSignal=="function",Oy=Vb?AbortSignal:Ub?Nl.AbortController:class{constructor(){this.reason=void 0,this.aborted=!1,this._listeners=[]}dispatchEvent(t){t.type==="abort"&&(this.aborted=!0,this.onabort(t),this._listeners.forEach(i=>i(t),this))}onabort(){}addEventListener(t,i){t==="abort"&&this._listeners.push(i)}removeEventListener(t,i){t==="abort"&&(this._listeners=this._listeners.filter(n=>n!==i))}},fh=new Set,dh=(e,t)=>{let i=`LRU_CACHE_OPTION_${e}`;Bl(i)&&mh(i,`${e} option`,`options.${t}`,Mo)},hh=(e,t)=>{let i=`LRU_CACHE_METHOD_${e}`;if(Bl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);mh(i,`${e} method`,`cache.${t}()`,r)}},Wb=(e,t)=>{let i=`LRU_CACHE_PROPERTY_${e}`;if(Bl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);mh(i,`${e} property`,`cache.${t}`,r)}},Ly=(...e)=>{typeof process=="object"&&process&&typeof process.emitWarning=="function"?process.emitWarning(...e):console.error(...e)},Bl=e=>!fh.has(e),mh=(e,t,i,n)=>{fh.add(e);let r=`The ${t} is deprecated. Please use ${i} instead.`;Ly(r,"DeprecationWarning",e,n)},sr=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),zy=e=>sr(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?_o:null:null,_o=class extends Array{constructor(t){super(t),this.fill(0)}},ph=class{constructor(t){if(t===0)return[];let i=zy(t);this.heap=new i(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},Mo=class e{constructor(t={}){let{max:i=0,ttl:n,ttlResolution:r=1,ttlAutopurge:a,updateAgeOnGet:l,updateAgeOnHas:c,allowStale:p,dispose:m,disposeAfter:h,noDisposeOnSet:y,noUpdateTTL:S,maxSize:w=0,maxEntrySize:v=0,sizeCalculation:x,fetchMethod:A,fetchContext:C,noDeleteOnFetchRejection:I,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:O,allowStaleOnFetchAbort:L,ignoreFetchAbort:M}=t,{length:Q,maxAge:V,stale:J}=t instanceof e?{}:t;if(i!==0&&!sr(i))throw new TypeError("max option must be a nonnegative integer");let U=i?zy(i):Array;if(!U)throw new Error("invalid max value: "+i);if(this.max=i,this.maxSize=w,this.maxEntrySize=v||this.maxSize,this.sizeCalculation=x||Q,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=A||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=C,!this.fetchMethod&&C!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(i).fill(null),this.valList=new Array(i).fill(null),this.next=new U(i),this.prev=new U(i),this.head=0,this.tail=0,this.free=new ph(i),this.initialFill=1,this.size=0,typeof m=="function"&&(this.dispose=m),typeof h=="function"?(this.disposeAfter=h,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!y,this.noUpdateTTL=!!S,this.noDeleteOnFetchRejection=!!I,this.allowStaleOnFetchRejection=!!O,this.allowStaleOnFetchAbort=!!L,this.ignoreFetchAbort=!!M,this.maxEntrySize!==0){if(this.maxSize!==0&&!sr(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!sr(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!p||!!J,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!c,this.ttlResolution=sr(r)||r===0?r:1,this.ttlAutopurge=!!a,this.ttl=n||V||0,this.ttl){if(!sr(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){let q="LRU_CACHE_UNBOUNDED";Bl(q)&&(fh.add(q),Ly("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",q,e))}J&&dh("stale","allowStale"),V&&dh("maxAge","ttl"),Q&&dh("length","sizeCalculation")}getRemainingTTL(t){return this.has(t,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new _o(this.max),this.starts=new _o(this.max),this.setItemTTL=(n,r,a=Ns.now())=>{if(this.starts[n]=r!==0?a:0,this.ttls[n]=r,r!==0&&this.ttlAutopurge){let l=setTimeout(()=>{this.isStale(n)&&this.delete(this.keyList[n])},r+1);l.unref&&l.unref()}},this.updateItemAge=n=>{this.starts[n]=this.ttls[n]!==0?Ns.now():0},this.statusTTL=(n,r)=>{n&&(n.ttl=this.ttls[r],n.start=this.starts[r],n.now=t||i(),n.remainingTTL=n.now+n.ttl-n.start)};let t=0,i=()=>{let n=Ns.now();if(this.ttlResolution>0){t=n;let r=setTimeout(()=>t=0,this.ttlResolution);r.unref&&r.unref()}return n};this.getRemainingTTL=n=>{let r=this.keyMap.get(n);return r===void 0?0:this.ttls[r]===0||this.starts[r]===0?1/0:this.starts[r]+this.ttls[r]-(t||i())},this.isStale=n=>this.ttls[n]!==0&&this.starts[n]!==0&&(t||i())-this.starts[n]>this.ttls[n]}updateItemAge(t){}statusTTL(t,i){}setItemTTL(t,i,n){}isStale(t){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new _o(this.max),this.removeItemSize=t=>{this.calculatedSize-=this.sizes[t],this.sizes[t]=0},this.requireSize=(t,i,n,r)=>{if(this.isBackgroundFetch(i))return 0;if(!sr(n))if(r){if(typeof r!="function")throw new TypeError("sizeCalculation must be a function");if(n=r(i,t),!sr(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return n},this.addItemSize=(t,i,n)=>{if(this.sizes[t]=i,this.maxSize){let r=this.maxSize-this.sizes[t];for(;this.calculatedSize>r;)this.evict(!0)}this.calculatedSize+=this.sizes[t],n&&(n.entrySize=i,n.totalCalculatedSize=this.calculatedSize)}}removeItemSize(t){}addItemSize(t,i){}requireSize(t,i,n,r){if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:t=this.allowStale}={}){if(this.size)for(let i=this.tail;!(!this.isValidIndex(i)||((t||!this.isStale(i))&&(yield i),i===this.head));)i=this.prev[i]}*rindexes({allowStale:t=this.allowStale}={}){if(this.size)for(let i=this.head;!(!this.isValidIndex(i)||((t||!this.isStale(i))&&(yield i),i===this.tail));)i=this.next[i]}isValidIndex(t){return t!==void 0&&this.keyMap.get(this.keyList[t])===t}*entries(){for(let t of this.indexes())this.valList[t]!==void 0&&this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield[this.keyList[t],this.valList[t]])}*rentries(){for(let t of this.rindexes())this.valList[t]!==void 0&&this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield[this.keyList[t],this.valList[t]])}*keys(){for(let t of this.indexes())this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.keyList[t])}*rkeys(){for(let t of this.rindexes())this.keyList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.keyList[t])}*values(){for(let t of this.indexes())this.valList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.valList[t])}*rvalues(){for(let t of this.rindexes())this.valList[t]!==void 0&&!this.isBackgroundFetch(this.valList[t])&&(yield this.valList[t])}[Symbol.iterator](){return this.entries()}find(t,i){for(let n of this.indexes()){let r=this.valList[n],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;if(a!==void 0&&t(a,this.keyList[n],this))return this.get(this.keyList[n],i)}}forEach(t,i=this){for(let n of this.indexes()){let r=this.valList[n],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;a!==void 0&&t.call(i,a,this.keyList[n],this)}}rforEach(t,i=this){for(let n of this.rindexes()){let r=this.valList[n],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;a!==void 0&&t.call(i,a,this.keyList[n],this)}}get prune(){return hh("prune","purgeStale"),this.purgeStale}purgeStale(){let t=!1;for(let i of this.rindexes({allowStale:!0}))this.isStale(i)&&(this.delete(this.keyList[i]),t=!0);return t}dump(){let t=[];for(let i of this.indexes({allowStale:!0})){let n=this.keyList[i],r=this.valList[i],a=this.isBackgroundFetch(r)?r.__staleWhileFetching:r;if(a===void 0)continue;let l={value:a};if(this.ttls){l.ttl=this.ttls[i];let c=Ns.now()-this.starts[i];l.start=Math.floor(Date.now()-c)}this.sizes&&(l.size=this.sizes[i]),t.unshift([n,l])}return t}load(t){this.clear();for(let[i,n]of t){if(n.start){let r=Date.now()-n.start;n.start=Ns.now()-r}this.set(i,n.value,n)}}dispose(t,i,n){}set(t,i,{ttl:n=this.ttl,start:r,noDisposeOnSet:a=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:p=this.noUpdateTTL,status:m}={}){if(l=this.requireSize(t,i,l,c),this.maxEntrySize&&l>this.maxEntrySize)return m&&(m.set="miss",m.maxEntrySizeExceeded=!0),this.delete(t),this;let h=this.size===0?void 0:this.keyMap.get(t);if(h===void 0)h=this.newIndex(),this.keyList[h]=t,this.valList[h]=i,this.keyMap.set(t,h),this.next[this.tail]=h,this.prev[h]=this.tail,this.tail=h,this.size++,this.addItemSize(h,l,m),m&&(m.set="add"),p=!1;else{this.moveToTail(h);let y=this.valList[h];if(i!==y){if(this.isBackgroundFetch(y)?y.__abortController.abort(new Error("replaced")):a||(this.dispose(y,t,"set"),this.disposeAfter&&this.disposed.push([y,t,"set"])),this.removeItemSize(h),this.valList[h]=i,this.addItemSize(h,l,m),m){m.set="replace";let S=y&&this.isBackgroundFetch(y)?y.__staleWhileFetching:y;S!==void 0&&(m.oldValue=S)}}else m&&(m.set="update")}if(n!==0&&this.ttl===0&&!this.ttls&&this.initializeTTLTracking(),p||this.setItemTTL(h,n,r),this.statusTTL(m,h),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){let t=this.valList[this.head];return this.evict(!0),t}}evict(t){let i=this.head,n=this.keyList[i],r=this.valList[i];return this.isBackgroundFetch(r)?r.__abortController.abort(new Error("evicted")):(this.dispose(r,n,"evict"),this.disposeAfter&&this.disposed.push([r,n,"evict"])),this.removeItemSize(i),t&&(this.keyList[i]=null,this.valList[i]=null,this.free.push(i)),this.head=this.next[i],this.keyMap.delete(n),this.size--,i}has(t,{updateAgeOnHas:i=this.updateAgeOnHas,status:n}={}){let r=this.keyMap.get(t);if(r!==void 0)if(this.isStale(r))n&&(n.has="stale",this.statusTTL(n,r));else return i&&this.updateItemAge(r),n&&(n.has="hit"),this.statusTTL(n,r),!0;else n&&(n.has="miss");return!1}peek(t,{allowStale:i=this.allowStale}={}){let n=this.keyMap.get(t);if(n!==void 0&&(i||!this.isStale(n))){let r=this.valList[n];return this.isBackgroundFetch(r)?r.__staleWhileFetching:r}}backgroundFetch(t,i,n,r){let a=i===void 0?void 0:this.valList[i];if(this.isBackgroundFetch(a))return a;let l=new Nl;n.signal&&n.signal.addEventListener("abort",()=>l.abort(n.signal.reason));let c={signal:l.signal,options:n,context:r},p=(w,v=!1)=>{let{aborted:x}=l.signal,A=n.ignoreFetchAbort&&w!==void 0;return n.status&&(x&&!v?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,A&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),x&&!A&&!v?h(l.signal.reason):(this.valList[i]===S&&(w===void 0?S.__staleWhileFetching?this.valList[i]=S.__staleWhileFetching:this.delete(t):(n.status&&(n.status.fetchUpdated=!0),this.set(t,w,c.options))),w)},m=w=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=w),h(w)),h=w=>{let{aborted:v}=l.signal,x=v&&n.allowStaleOnFetchAbort,A=x||n.allowStaleOnFetchRejection,C=A||n.noDeleteOnFetchRejection;if(this.valList[i]===S&&(!C||S.__staleWhileFetching===void 0?this.delete(t):x||(this.valList[i]=S.__staleWhileFetching)),A)return n.status&&S.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),S.__staleWhileFetching;if(S.__returned===S)throw w},y=(w,v)=>{this.fetchMethod(t,a,c).then(x=>w(x),v),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(w(),n.allowStaleOnFetchAbort&&(w=x=>p(x,!0)))})};n.status&&(n.status.fetchDispatched=!0);let S=new Promise(y).then(p,m);return S.__abortController=l,S.__staleWhileFetching=a,S.__returned=null,i===void 0?(this.set(t,S,{...c.options,status:void 0}),i=this.keyMap.get(t)):this.valList[i]=S,S}isBackgroundFetch(t){return t&&typeof t=="object"&&typeof t.then=="function"&&Object.prototype.hasOwnProperty.call(t,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(t,"__returned")&&(t.__returned===t||t.__returned===null)}async fetch(t,{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:a=this.ttl,noDisposeOnSet:l=this.noDisposeOnSet,size:c=0,sizeCalculation:p=this.sizeCalculation,noUpdateTTL:m=this.noUpdateTTL,noDeleteOnFetchRejection:h=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:y=this.allowStaleOnFetchRejection,ignoreFetchAbort:S=this.ignoreFetchAbort,allowStaleOnFetchAbort:w=this.allowStaleOnFetchAbort,fetchContext:v=this.fetchContext,forceRefresh:x=!1,status:A,signal:C}={}){if(!this.fetchMethod)return A&&(A.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:r,status:A});let I={allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:r,ttl:a,noDisposeOnSet:l,size:c,sizeCalculation:p,noUpdateTTL:m,noDeleteOnFetchRejection:h,allowStaleOnFetchRejection:y,allowStaleOnFetchAbort:w,ignoreFetchAbort:S,status:A,signal:C},E=this.keyMap.get(t);if(E===void 0){A&&(A.fetch="miss");let O=this.backgroundFetch(t,E,I,v);return O.__returned=O}else{let O=this.valList[E];if(this.isBackgroundFetch(O)){let J=i&&O.__staleWhileFetching!==void 0;return A&&(A.fetch="inflight",J&&(A.returnedStale=!0)),J?O.__staleWhileFetching:O.__returned=O}let L=this.isStale(E);if(!x&&!L)return A&&(A.fetch="hit"),this.moveToTail(E),n&&this.updateItemAge(E),this.statusTTL(A,E),O;let M=this.backgroundFetch(t,E,I,v),Q=M.__staleWhileFetching!==void 0,V=Q&&i;return A&&(A.fetch=Q&&L?"stale":"refresh",V&&L&&(A.returnedStale=!0)),V?M.__staleWhileFetching:M.__returned=M}}get(t,{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:a}={}){let l=this.keyMap.get(t);if(l!==void 0){let c=this.valList[l],p=this.isBackgroundFetch(c);return this.statusTTL(a,l),this.isStale(l)?(a&&(a.get="stale"),p?(a&&(a.returnedStale=i&&c.__staleWhileFetching!==void 0),i?c.__staleWhileFetching:void 0):(r||this.delete(t),a&&(a.returnedStale=i),i?c:void 0)):(a&&(a.get="hit"),p?c.__staleWhileFetching:(this.moveToTail(l),n&&this.updateItemAge(l),c))}else a&&(a.get="miss")}connect(t,i){this.prev[i]=t,this.next[t]=i}moveToTail(t){t!==this.tail&&(t===this.head?this.head=this.next[t]:this.connect(this.prev[t],this.next[t]),this.connect(this.tail,t),this.tail=t)}get del(){return hh("del","delete"),this.delete}delete(t){let i=!1;if(this.size!==0){let n=this.keyMap.get(t);if(n!==void 0)if(i=!0,this.size===1)this.clear();else{this.removeItemSize(n);let r=this.valList[n];this.isBackgroundFetch(r)?r.__abortController.abort(new Error("deleted")):(this.dispose(r,t,"delete"),this.disposeAfter&&this.disposed.push([r,t,"delete"])),this.keyMap.delete(t),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return i}clear(){for(let t of this.rindexes({allowStale:!0})){let i=this.valList[t];if(this.isBackgroundFetch(i))i.__abortController.abort(new Error("deleted"));else{let n=this.keyList[t];this.dispose(i,n,"delete"),this.disposeAfter&&this.disposed.push([i,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return hh("reset","clear"),this.clear}get length(){return Wb("length","size"),this.size}static get AbortController(){return Nl}static get AbortSignal(){return Oy}},Fy=Mo;var Ux=T(nv(),1);var dt=T(H(),1),Au=T(H(),1),IP=T(B(),1);var Ci=T(H(),1);function av(e,t){let i;return(...n)=>{window.clearTimeout(i),i=window.setTimeout(()=>e(...n),t)}}function Hl({debounce:e,scroll:t,polyfill:i,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){let r=i||(typeof window>"u"?class{}:window.ResizeObserver);if(!r)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[a,l]=(0,Ci.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=(0,Ci.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:a,orientationHandler:null}),p=e?typeof e=="number"?e:e.scroll:null,m=e?typeof e=="number"?e:e.resize:null,h=(0,Ci.useRef)(!1);(0,Ci.useEffect)(()=>(h.current=!0,()=>void(h.current=!1)));let[y,S,w]=(0,Ci.useMemo)(()=>{let C=()=>{if(!c.current.element)return;let{left:I,top:E,width:O,height:L,bottom:M,right:Q,x:V,y:J}=c.current.element.getBoundingClientRect(),U={left:I,top:E,width:O,height:L,bottom:M,right:Q,x:V,y:J};c.current.element instanceof HTMLElement&&n&&(U.height=c.current.element.offsetHeight,U.width=c.current.element.offsetWidth),Object.freeze(U),h.current&&!nC(c.current.lastBounds,U)&&l(c.current.lastBounds=U)};return[C,m?av(C,m):C,p?av(C,p):C]},[l,n,p,m]);function v(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(C=>C.removeEventListener("scroll",w,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null),c.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",c.current.orientationHandler))}function x(){c.current.element&&(c.current.resizeObserver=new r(w),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(C=>C.addEventListener("scroll",w,{capture:!0,passive:!0})),c.current.orientationHandler=()=>{w()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",c.current.orientationHandler))}let A=C=>{!C||C===c.current.element||(v(),c.current.element=C,c.current.scrollContainers=lv(C),x())};return tC(w,!!t),eC(S),(0,Ci.useEffect)(()=>{v(),x()},[t,w,S]),(0,Ci.useEffect)(()=>v,[]),[A,a,y]}function eC(e){(0,Ci.useEffect)(()=>{let t=e;return window.addEventListener("resize",t),()=>void window.removeEventListener("resize",t)},[e])}function tC(e,t){(0,Ci.useEffect)(()=>{if(t){let i=e;return window.addEventListener("scroll",i,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",i,!0)}},[e,t])}function lv(e){let t=[];if(!e||e===document.body)return t;let{overflow:i,overflowX:n,overflowY:r}=window.getComputedStyle(e);return[i,n,r].some(a=>a==="auto"||a==="scroll")&&t.push(e),[...t,...lv(e.parentElement)]}var iC=["x","y","top","bottom","left","right","width","height"],nC=(e,t)=>iC.every(i=>e[i]===t[i]);var Op=T(H(),1),wn=T(H(),1),Hx=T(Pv(),1),qx=T(H(),1),Ru=T(H(),1),zo=T(B(),1),Di=T(H(),1),t0=T(H(),1),i0=T(H(),1),n0=T(B(),1),Jt=T(B(),1),_u=T(H(),1);var Zs=T(B(),1),zp=T(H(),1),o0=T(H(),1),qP=T(H(),1),s0=T(H(),1),l0=T(H(),1),Sn=T(H(),1),u0=T(H(),1),Rp=T(B(),1),c0=T(H(),1),xn=T(H(),1),_t=T(H(),1),d0=T(H(),1),Lu=T(H(),1),St=T(B(),1),_p=T(B(),1),Mp=T(H(),1),Vr=T(B(),1),p0=T(H(),1);var oC=Object.defineProperty,sC=(e,t,i)=>t in e?oC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Xl=(e,t,i)=>(sC(e,typeof t!="symbol"?t+"":t,i),i);function Dr(e){return e.endsWith("info.json")?e:e.endsWith("/")?`${e}info.json`:`${e}/info.json`}var aC="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Tv="http://library.stanford.edu/iiif/image-api/compliance.html#level1",Rv="http://library.stanford.edu/iiif/image-api/compliance.html#level2",lC="http://library.stanford.edu/iiif/image-api/conformance.html#level0",_v="http://library.stanford.edu/iiif/image-api/conformance.html#level1",Mv="http://library.stanford.edu/iiif/image-api/conformance.html#level2",uC="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",kv="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Ov="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",cC="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Lv="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",zv="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",dC="http://iiif.io/api/image/1/level0.json",hC="http://iiif.io/api/image/1/profiles/level0.json",Fv="http://iiif.io/api/image/1/level1.json",Nv="http://iiif.io/api/image/1/profiles/level1.json",Bv="http://iiif.io/api/image/1/level2.json",Dv="http://iiif.io/api/image/1/profiles/level2.json",pC="http://iiif.io/api/image/2/level0.json",fC="http://iiif.io/api/image/2/profiles/level0.json",jv="http://iiif.io/api/image/2/level1.json",Vv="http://iiif.io/api/image/2/profiles/level1.json",Uv="http://iiif.io/api/image/2/level2.json",Wv="http://iiif.io/api/image/2/profiles/level2.json",mC="level0",Hv="level1",qv="level2",gC="http://iiif.io/api/image/2/level0",Qv="http://iiif.io/api/image/2/level1",$v="http://iiif.io/api/image/2/level2",yC="https://iiif.io/api/image/1.1/compliance/#level0",Gv="https://iiif.io/api/image/1.1/compliance/#level1",Yv="https://iiif.io/api/image/1.1/compliance/#level2",Xv=[$v,Rv,Mv,Ov,zv,Bv,Dv,Uv,Wv,qv,Yv],Kv=[...Xv,Qv,Tv,_v,kv,Lv,Fv,Nv,jv,Vv,Hv,Gv],vC=[gC,Qv,$v,aC,Tv,Rv,lC,_v,Mv,uC,kv,Ov,cC,Lv,zv,dC,hC,Fv,Nv,Bv,Dv,pC,fC,jv,Vv,Uv,Wv,mC,Hv,qv,yC,Gv,Yv];var xC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["sizeByWhListed"]},SC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPx","regionSquare","sizeByWhListed","sizeByH","sizeByW","sizeByWh"]},wC={extraFormats:["jpg","png"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPct","regionByPx","regionSquare","rotationBy90s","sizeByWhListed","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"]};function bC(e){return Xv.indexOf(e)!==-1?wC:Kv.indexOf(e)!==-1?SC:xC}function CC(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],i={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let n of t)if(typeof n=="string"&&(n=bC(n)),!!n){if(n.formats)for(let r of n.formats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.qualities)for(let r of n.qualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.supports)for(let r of n.supports)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);if(n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea),n.extraFormats)for(let r of n.extraFormats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.extraQualities)for(let r of n.extraQualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.extraFeatures)for(let r of n.extraFeatures)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea)}if(e.extraFormats)for(let n of e.extraFormats)i.extraFormats.indexOf(n)===-1&&i.extraFormats.push(n);if(e.extraFeatures)for(let n of e.extraFeatures)i.extraFeatures.indexOf(n)===-1&&i.extraFeatures.push(n);if(e.extraQualities)for(let n of e.extraQualities)i.extraQualities.indexOf(n)===-1&&i.extraQualities.push(n);return i}function PC(e){try{if(e==="full")return{full:!0};if(e==="square")return{square:!0};let t=e.startsWith("pct:"),i=e.substr(t?4:0).split(",").map(n=>parseFloat(n));return{x:i[0],y:i[1],w:i[2],h:i[3],percent:t}}catch{throw new Error("Expected 'full', 'square' or 'x,y,w,h'. Found "+e)}}function EC(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]==="^"&&(t.upscaled=!0,e=e.slice(1)),e==="max"||e==="full")return t.max=!0,t.serialiseAsFull=e==="full",t;if(e[0]==="!"&&(t.confined=!0,e=e.slice(1)),e[0]==="p")return t.percentScale=parseFloat(e.slice(4)),t;let i=e.split(",").map(n=>n.trim());return i.length&&typeof i[0]<"u"&&(i[0]!==""&&(t.width=parseInt(i[0],10)),typeof i[1]<"u"&&i[1]!==""?(t.height=parseInt(i[1],10),t.version=2):t.version=3),t}function AC(e){let t={angle:0};if(e[0]==="!"&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw new Error(`Invalid rotation ${e}`);return t}function IC(e,t=""){let i=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!i)throw new Error(`Invalid or unknown input ${e}`);let n=i[2],r=i[3],a=i[4];if(a[0]==="/"&&(a=a.substring(1)),t.length>0){if(t[0]==="/"&&(t=t.substring(1)),t!==a.substring(0,t.length))throw new Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:n,server:r,path:a,prefix:t}}function TC(e,t=""){let{path:i,scheme:n,server:r,prefix:a}=IC(e,t),l=(i||"").split("/").reverse(),[c,p,m,h,...y]=l,S=y.reverse().filter(Boolean).join("/");if(l.length===1||c==="")return{type:"base",scheme:n,server:r,prefix:a,identifier:S};if(c==="info.json"){let[,...v]=l;return{type:"info",scheme:n,server:r,prefix:a,identifier:v.reverse().filter(Boolean).join("/")}}let w=(c||"").split(".");if(typeof w[1]>"u"||typeof w[0]>"u"||typeof h>"u"||typeof m>"u"||typeof p>"u")throw new Error("Invalid image request");return{type:"image",scheme:n,server:r,prefix:a,identifier:S,originalPath:i,region:PC(h),size:EC(m),rotation:AC(p),quality:w[0],format:w[1]}}function RC(e){let t=TC(Dr(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=CC(e);return{identifier:t.identifier,originalPath:"",server:t.server,prefix:t.prefix,scheme:t.scheme,type:"image",quality:i.extraQualities.indexOf("default")===-1?i.extraQualities[0]:"default",region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:"jpg",rotation:{angle:0}}}function _C(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];if(l){let c=l.width;r.push(e/c)}}return r}function MC(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];l&&r.push({width:Math.floor(e/l),height:Math.floor(t/l)})}return r}function ft(e){if(e["@id"])return e["@id"];if(e.id)return e.id}function Zl(e){if(!e||!e.profile||!ft(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&vC.indexOf(i)!==-1)return!0;return!1}function kC(e){if(!Zl(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"){if(Kv.indexOf(i)!==-1)return!0}else{let n=[...i.supports||[],...i.extraFeatures||[]];if(n.indexOf("regionByPx")!==-1&&(n.indexOf("sizeByW")!==-1||n.indexOf("sizeByWh")!==-1))return!0}return!1}function Kl(e,t){if(t&&t.profile){let i=t.profile;if(i){let n=Array.isArray(i)?i:[i];return n.includes(`level${e}`)||n.includes(`http://iiif.io/api/image/2/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`)}}return!1}function Lh(e){return Zl(e)?Kl(0,e)?0:Kl(1,e)?1:Kl(2,e)?2:null:null}function Zv(e){return(e["@context"]?Array.isArray(e["@context"])?e["@context"]:[e["@context"]]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1}function OC(e){if(!kC(e))return[];let t=[],i=Array.isArray(e.profile)?e.profile:[e.profile],n=i.length;for(let r=0;r<n;r++){let a=i[r];if(a&&typeof a!="string"&&(a.maxHeight||a.maxWidth))return[{id:ft(e),type:"variable",minWidth:0,minHeight:0,maxHeight:a.maxHeight||a.maxWidth,maxWidth:a.maxWidth||a.maxHeight,level:Lh(e),version:e["@context"]==="http://iiif.io/api/image/3/context.json"?3:2}]}if(e.tiles){let r=e.tiles.length;for(let a=0;a<r;a++){let l=e.tiles[a];l&&(l.height||l.width)&&t.push({id:ft(e),type:"variable",minHeight:0,minWidth:0,maxHeight:l.height||l.width,maxWidth:l.width,level:Lh(e),version:Zv(e)?3:2})}}return t}function Ev(e){let t=/^.*\/(full)\/(((\d+),(\d+)?)|max)\/(\d+)\/default\.(jpg|png|jpeg)$/,i=e.match(t);if(i&&i[4]&&i[5]){let n=i[1],r=parseInt(i[4],10),a=parseInt(i[5],10),l=i[7];if((n==="max"||n==="full")&&r&&a&&l)return{type:"fixed",id:e,height:a,width:r}}return{type:"unknown",id:e}}function LC(e){if(e["@type"])return e["@type"];if(e.type)return e.type}function zC(e){if(typeof e=="string")return Ev(e);let t=LC(e);if(t!=="Image"&&t!=="sc:Image")return null;let i=e,n=ft(i);return n?n&&i.width&&i.height?{id:n,type:"fixed",width:i.width,height:i.height,unsafe:!0}:Ev(n):null}function FC(e){return Zl(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:ft(e),type:"fixed-service",height:t.height,width:t.width,level:Lh(e),version:Zv(e)?3:2})):[]}function Av(e){let t=[],i=e.length;for(let n=0;n<i;n++){let r=e[n];if(!r)continue;let a=FC(r);a.length&&t.push(...a);let l=OC(r);l.length&&t.push(...l)}return t}function Jv(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],i=t.length,n=[];for(let r=0;r<i;r++)Zl(t[r])&&n.push(t[r]);return n}function NC(e,t=!0,i){let n=[],r=zC(e);if(r===null)return n;let a=e;if(n.push(r),t&&a&&a.width&&a.height){let l=[],c=Jv(a);for(let p of c){let m={id:ft(p),width:a.width,height:a.height};if(i.canLoadSync(m)){let h=i.loadServiceSync(m);h&&(h.height||(h.height=a.height),h.width||(h.width=a.width),l.push(...Av([h])))}}if(l.length)return n.push(...l),n}return a.service&&n.push(...Av(a.service)),n}function BC({x:e=0,y:t=0,w:i,h:n,full:r,square:a,percent:l}){if(r)return"full";if(a)return"square";if(typeof i>"u"||typeof n>"u")throw new Error("RegionParameter: invalid region");let c=`${e},${t},${i},${n}`;return l?`pct:${c}`:c}function DC({max:e,percentScale:t,upscaled:i,confined:n,width:r,height:a,serialiseAsFull:l,version:c}){let p=[];return i&&p.push("^"),e?(p.push(l?"full":"max"),p.join("")):(n&&p.push("!"),t&&p.push(`pct:${t}`),r&&p.push(`${r}`),p.push(","),a&&c===3&&p.push(`${a}`),p.join(""))}function jC(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function VC(e,t){let i=e.prefix.startsWith("/")?e.prefix.substr(1):e.prefix,n=`${e.scheme}://${e.server}/${i?`${i}/`:""}${e.identifier}`;if(e.type==="base")return n;if(e.type==="info")return`${n}/info.json`;let{size:r}=e,{region:a,rotation:l,format:c,quality:p}=e;if(t){let m=t["@context"]?Array.isArray(t["@context"])?t["@context"]:[t["@context"]]:[],h=t.profile,y=m.indexOf("http://iiif.io/api/image/2/context.json")!==-1||h==="level2",S=m.indexOf("http://iiif.io/api/image/3/context.json")!==-1;if((r.width===t.width&&!r.height||r.height===t.height&&!r.width||r.width===t.width&&r.height===t.height)&&(r={...r,max:!0}),y&&(r.max&&!r.serialiseAsFull&&(r={...r,serialiseAsFull:!0}),!r.max&&r.width&&r.height&&(r={...r,height:void 0}),r={...r,version:2}),S){if(r.max&&r.serialiseAsFull&&(r={...r,serialiseAsFull:!1}),r.width&&!r.height&&t.width&&t.height){let w=t.height/t.width;r={...r,height:Math.ceil(r.width*w)}}r={...r,version:3}}}return[n,BC(a),DC(r),jC(l),`${p}.${c}`].filter(Boolean).join("/")}function Oh(e,t,i){let n=RC({"@context":e.version===3?"http://iiif.io/api/image/3/context.json":"http://iiif.io/api/image/2/context.json",id:Dr(ft(e)),profile:e.level===null||typeof e.level>"u"?"level0":`level${e.level}`,type:e.version===3?"ImageService3":"ImageService2"});if(n.type!=="image")throw new Error("Invalid service");return n.size.max=!1,n.size.width=t,n.size.height=i,{id:VC(n),type:"fixed",width:t,height:i||e.height/(e.width||1)*t,unsafe:e.width>t}}function ko(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,"");return t.indexOf("/")!==-1?t.split("/")[0]:t}function UC(e,t,i){let n=e.width?e.width:e.maxWidth;return i.height<=e.maxHeight&&i.width<=e.maxWidth&&i.height>=e.minHeight&&i.width>=e.minWidth&&(!t||Math.abs(i.width-n)<Math.abs(t.width-n))}function WC(e,t){let i=[],n=Object.assign({unsafeImageService:!1,atAnyCost:!0,fallback:!0,minHeight:64,minWidth:64,maxHeight:1/0,maxWidth:1/0,returnAllOptions:!1,preferFixedSize:!1,allowUnsafe:!1,explain:!1,height:0,width:0},e),r=(h,y=0)=>n.explain?i.push(new Array(y).fill(0).map(S=>" ").join("")+h().trim()):void 0,a=[],l=[],c=null;r(()=>`Using configuration: ${JSON.stringify(n,null,2)}`);let p=(h,y)=>{if(r(()=>"Swapping choice",3),UC(n,y,h)){if(n.preferFixedSize&&h.unsafe){r(()=>`We found an image that was marked as unsafe, but it was the best size. (${h.id})`,4),l.push(h);return}n.returnAllOptions&&y&&l.push(y),r(()=>`We found a new image that was the best size. (${h.id})`,4),c=h}else n.returnAllOptions&&l.push(h)};r(()=>`The input shows we have ${t.length} list(s) of candidates to choose from.`);let m=t.length;for(let h=0;h<m;h++){let y=t[h]();r(()=>`Candidate group ${h}: ${JSON.stringify(y,null,2)}`,1);let S=y.length;r(()=>`Checking candidate list number ${h} and found ${S} potential ways of creating image(s)`,1);for(let w=0;w<S;w++){let v=y[w];if(r(()=>`-> Checking candidate ${w}`,1),v.type==="unknown"&&n.atAnyCost&&(r(()=>`We've found an unknown image type, adding this to the "last resort" list`,2),a.push(v)),v.type==="fixed"&&(v.unsafe?(r(()=>`We've found an unsafe fixed image type, adding this to the "last resort" list`,2),a.push(v)):(r(()=>"We've found a fixed size image, checking if it matches the request",2),p(v,c))),v.type==="fixed-service")if(n.unsafeImageService){r(()=>"Checking for an image from the tile source, without calculating the right height and width (unsafeImageService)",2);let x=Oh(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=Oh(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=Oh({id:v.id,type:"fixed-service",width:v.maxWidth,height:v.maxWidth,level:v.level,version:v.version},v.maxWidth);p(x,c)}}if(c&&!n.returnAllOptions){if(c.unsafe||n.allowUnsafe)continue;r(()=>`We found a match in choice list number ${h}, no searching any more`);break}}return n.atAnyCost&&l.length===0?(r(()=>c?`We found an image! ${c.id} of type ${c.type}`:'We found no images, but "atAnyCost" is set, so returning that'),{best:c||a[0]||null,fallback:a.slice(1),log:i}):n.returnAllOptions?(r(()=>"Returning all options that we have found"),{best:(n.atAnyCost?c||l[0]||a[0]:c||l[0])||null,fallback:[...l,...a],log:i}):(r(()=>"Returning the best image that we found, and a fallback"),{best:c||l[0]||null,fallback:c?l:l.slice(1),log:i})}function HC(e,t,i){let n=e>t?e:t,r=i.length,a=[];for(let l=0;l<r;l++){let c=i[l];if(!c||c.scaleFactors.length===0)continue;let p=c.scaleFactors[0];if(!p)continue;let m=n/p,h=[p];for(;m>=c.width;)p=p*2,h.push(p),m=m/2;a.push({...c,scaleFactors:h})}return a}function qC(e,t){if(e.length!==t.length)return!1;if(e.length===0&&t.length===0)return!0;let i=e.length,n=!0;for(let a=0;a<i;a++){let l=e[a],c=t[a];if(l.width!==c.width||l.height!==c.height){n=!1;break}}if(n)return!0;let r=0;for(let a=0;a<i;a++)for(let l=0;l<i;l++)if(e[a].width===t[l].width&&e[a].height===t[l].height){r++;break}return r===i}function Iv(e){return Kl(0,e)}var ex=class{constructor(e={}){Xl(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Xl(this,"fetchingCount",0),Xl(this,"imageServices",{}),Xl(this,"knownImageServers",{}),this.config=Object.assign(this.config,e)}setConfig(e){Object.assign(this.config,e)}sample(e,t,i=!0){let n=ko(ft(e)),r=Dr(ft(e)),a=this.knownImageServers[n];return this.imageServices[r]=Object.assign(e,{real:!0}),!a&&e.tiles&&!Iv(e)?(this.knownImageServers[n]={verifications:0,malformed:!1,root:n,preLoaded:i,sampledId:ft(e),verified:!1,server:null,result:{context:e["@context"]||[],sampledProfile:e.profile,resourceServiceRatio:t&&e.height?t.height/e.height:1,sampledSizes:e.sizes||[],sizeRatios:_C(e.width,e.height,e.sizes||[]),sampledTiles:e.tiles||[]}},!0):this.verify(e)}preLoad(e,t=!0){this.knownImageServers[e.root]=e,t&&(this.knownImageServers[e.root].malformed=!1,this.knownImageServers[e.root].verifications=this.config.verificationsRequired)}predict(e,t=!1,i=!1){let n=e?.source,r=ko(ft(e)),a=this.knownImageServers[r],l=Dr(ft(e));return this.imageServices[l]?this.imageServices[l]||null:!this.config.approximateServices||!a||!a.result||!(n?.height||e.height)||!(n?.width||e.width)||!i&&(a.malformed||a.verifications<this.config.verificationsRequired)||Iv(e.source)?null:(this.imageServices[l]||(this.imageServices[l]={"@context":a.result.context,"@id":ft(e),id:ft(e),protocol:"http://iiif.io/api/image",tiles:n?.tiles||HC(e.width,e.height,a.result.sampledTiles),sizes:n?.sizes||MC(Math.round(e.width/a.result.resourceServiceRatio),Math.round(e.height/a.result.resourceServiceRatio),a.result.sizeRatios),profile:n?.profile||a.result.sampledProfile,height:n?.height||e.height,width:n?.width||e.width,real:!1}),this.imageServices[l]||null)}async getThumbnailFromResource(e,t,i=!0,n=[]){let r=e?await this.getImageCandidates(e,i):[];return WC(t,[()=>n,()=>r])}async getImageCandidates(e,t=!0){let i=e;if(t&&i&&i.height&&i.width){let n=Jv(i);for(let r of n){let a={id:ft(r),width:r.width?r.width:i.width,height:r.height?r.height:i.height,source:r};await this.loadService(a)}}return NC(e,t,this)}async verify(e){let t=this.predict(e,!1,!0),i=await this.fetchService(ft(e));if(!t)return!1;let n=t.height===i.height&&t.width===i.width&&t["@context"]===i["@context"]&&qC(t.sizes||[],i.sizes||[]);if(n){let r=ko(ft(e)),a=this.knownImageServers[r];a&&(a.verifications+=1,a.verifications>=this.config.verificationsRequired&&(a.verified=!0))}return n}canLoadSync(e){let t=typeof e=="string"?e:ft(e),i=Dr(t);if(this.imageServices[i])return!0;let n=this.knownImageServers[ko(t)];return!!(n&&!n.malformed&&n.verifications>=this.config.verificationsRequired)}async markAsMalformed(e){return this.knownImageServers[ko(ft(e))].malformed=!0,this.loadService(e,!0)}async fetchService(e,t=!1){let i=Dr(e),n=this.imageServices[i];if(n&&(!t||n.real))return n;if(!this.config.enableFetching)throw new Error("Fetching is not enabled");let r=await this.fetch(i).then(a=>a.json());return!r.id&&r["@id"]&&(r.id=r["@id"]),r.id!==e&&(r.id=e,r["@id"]&&(r["@id"]=e)),this.imageServices[i]=Object.assign(r,{real:!0}),this.imageServices[i]}async fetch(e,t){return fetch(e,t)}async loadService(e,t=!1){if(!this.config.disableThrottling){let r=!0;for(;r;)if(this.fetchingCount>=this.config.verificationsRequired)await new Promise(a=>setTimeout(a,500));else{r=!1;break}}let i=this.knownImageServers[ko(ft(e))];if(i&&!i.malformed&&!t){await i.result;let r=this.loadServiceSync(e);if(r)return r}this.fetchingCount++;let n=await this.fetchService(ft(e),t);return this.fetchingCount--,n.real&&this.sample(n,e),n}loadServiceSync(e){let t=Dr(ft(e));return this.imageServices[t]?this.imageServices[t]:this.config.approximateServices?this.predict(e):null}},vR=new ex;function Jl(e){return{all:e=e||new Map,on:function(t,i){var n=e.get(t);n?n.push(i):e.set(t,[i])},off:function(t,i){var n=e.get(t);n&&(i?n.splice(n.indexOf(i)>>>0,1):e.set(t,[]))},emit:function(t,i){var n=e.get(t);n&&n.slice().map(function(r){r(i)}),(n=e.get("*"))&&n.slice().map(function(r){r(t,i)})}}}var ix={},tx=e=>{let t,i=new Set,n=(h,y)=>{let S=typeof h=="function"?h(t):h;if(!Object.is(S,t)){let w=t;t=y??(typeof S!="object"||S===null)?S:Object.assign({},t,S),i.forEach(v=>v(t,w))}},r=()=>t,p={setState:n,getState:r,getInitialState:()=>m,subscribe:h=>(i.add(h),()=>i.delete(h)),destroy:()=>{(ix.env?ix.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),i.clear()}},m=t=e(n,r,p);return p},eu=e=>e?tx(e):tx;var QC=Object.create,zh=Object.defineProperty,$C=Object.getOwnPropertyDescriptor,nx=Object.getOwnPropertyNames,GC=Object.getPrototypeOf,YC=Object.prototype.hasOwnProperty,XC=(e,t,i)=>t in e?zh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Fh=(e,t)=>function(){return t||(0,e[nx(e)[0]])((t={exports:{}}).exports,t),t.exports},KC=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of nx(t))!YC.call(e,r)&&r!==i&&zh(e,r,{get:()=>t[r],enumerable:!(n=$C(t,r))||n.enumerable});return e},Nh=(e,t,i)=>(i=e!=null?QC(GC(e)):{},KC(t||!e||!e.__esModule?zh(i,"default",{value:e,enumerable:!0}):i,e)),Rt=(e,t,i)=>(XC(e,typeof t!="symbol"?t+"":t,i),i);var Bh="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Dh="http://library.stanford.edu/iiif/image-api/compliance.html#level1",jh="http://library.stanford.edu/iiif/image-api/compliance.html#level2",Vh="http://library.stanford.edu/iiif/image-api/conformance.html#level0",Uh="http://library.stanford.edu/iiif/image-api/conformance.html#level1",Wh="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Hh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",qh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Qh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",$h="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Gh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",Yh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Xh="http://iiif.io/api/image/1/level0.json",Kh="http://iiif.io/api/image/1/profiles/level0.json",Zh="http://iiif.io/api/image/1/level1.json",Jh="http://iiif.io/api/image/1/profiles/level1.json",ep="http://iiif.io/api/image/1/level2.json",tp="http://iiif.io/api/image/1/profiles/level2.json",ip="http://iiif.io/api/image/2/level0.json",np="http://iiif.io/api/image/2/profiles/level0.json",rp="http://iiif.io/api/image/2/level1.json",op="http://iiif.io/api/image/2/profiles/level1.json",sp="http://iiif.io/api/image/2/level2.json",ap="http://iiif.io/api/image/2/profiles/level2.json",lp="level0",up="level1",cp="level2",dp="http://iiif.io/api/image/2/level0",hp="http://iiif.io/api/image/2/level1",pp="http://iiif.io/api/image/2/level2",Oo=[pp,jh,Wh,Qh,Yh,ep,tp,sp,ap,cp],tu=[...Oo,hp,Dh,Uh,qh,Gh,Zh,Jh,rp,op,up],fp=[dp,hp,pp,Bh,Dh,jh,Vh,Uh,Wh,Hh,qh,Qh,$h,Gh,Yh,Xh,Kh,Zh,Jh,ep,tp,ip,np,rp,op,sp,ap,lp,up,cp],mp=fp,gp=[dp,Bh,Vh,Hh,$h,Xh,Kh,ip,np,lp],rx={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["sizeByWhListed"]},ox={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPx","regionSquare","sizeByWhListed","sizeByH","sizeByW","sizeByWh"]},sx={extraFormats:["jpg","png"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPct","regionByPx","regionSquare","rotationBy90s","sizeByWhListed","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"]};var ZC=Object.defineProperty,JC=(e,t,i)=>t in e?ZC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,vn=(e,t,i)=>(JC(e,typeof t!="symbol"?t+"":t,i),i);function eP(e){try{if(e==="full")return{full:!0};if(e==="square")return{square:!0};let t=e.startsWith("pct:"),i=e.substr(t?4:0).split(",").map(n=>parseFloat(n));return{x:i[0],y:i[1],w:i[2],h:i[3],percent:t}}catch{throw new Error("Expected 'full', 'square' or 'x,y,w,h'. Found "+e)}}function tP(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]==="^"&&(t.upscaled=!0,e=e.slice(1)),e==="max"||e==="full")return t.max=!0,t.serialiseAsFull=e==="full",t;if(e[0]==="!"&&(t.confined=!0,e=e.slice(1)),e[0]==="p")return t.percentScale=parseFloat(e.slice(4)),t;let i=e.split(",").map(n=>n.trim());return i.length&&(i[0]!==""&&(t.width=parseInt(i[0],10)),i[1]!==""&&(t.height=parseInt(i[1],10))),t}function iP(e){let t={angle:0};if(e[0]==="!"&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw new Error(`Invalid rotation ${e}`);return t}function nP(e,t=""){let i=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!i)throw new Error(`Invalid or unknown input ${e}`);let n=i[2],r=i[3],a=i[4];if(a[0]==="/"&&(a=a.substring(1)),t.length>0){if(t[0]==="/"&&(t=t.substring(1)),t!==a.substring(0,t.length))throw new Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:n,server:r,path:a,prefix:t}}function rP(e,t=""){let{path:i,scheme:n,server:r,prefix:a}=nP(e,t),l=i.split("/").reverse(),[c,p,m,h,...y]=l,S=y.reverse().filter(Boolean).join("/");if(l.length===1||c==="")return{type:"base",scheme:n,server:r,prefix:a,identifier:S};if(c==="info.json"){let[,...x]=l;return{type:"info",scheme:n,server:r,prefix:a,identifier:x.reverse().filter(Boolean).join("/")}}if(typeof n>"u"||typeof r>"u"||typeof i>"u"||typeof h>"u"||typeof m>"u"||typeof p>"u"||typeof c>"u")throw new Error("Invalid image service URL");let[w="",v=""]=c.split(".");return{type:"image",scheme:n,server:r,prefix:a,identifier:S,originalPath:i,region:eP(h),size:tP(m),rotation:iP(p),quality:w,format:v}}function oP(e){return Oo.indexOf(e)!==-1?sx:tu.indexOf(e)!==-1?ox:rx}function sP(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],i={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let n of t)if(typeof n=="string"&&(n=oP(n)),!!n){if(n.formats)for(let r of n.formats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.qualities)for(let r of n.qualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.supports)for(let r of n.supports)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);if(n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea),n.extraFormats)for(let r of n.extraFormats)i.extraFormats.indexOf(r)===-1&&i.extraFormats.push(r);if(n.extraQualities)for(let r of n.extraQualities)i.extraQualities.indexOf(r)===-1&&i.extraQualities.push(r);if(n.extraFeatures)for(let r of n.extraFeatures)i.extraFeatures.indexOf(r)===-1&&i.extraFeatures.push(r);n.maxHeight&&(i.maxHeight=n.maxHeight),n.maxWidth&&(i.maxWidth=n.maxWidth),n.maxArea&&(i.maxArea=n.maxArea)}if(e.extraFormats)for(let n of e.extraFormats)i.extraFormats.indexOf(n)===-1&&i.extraFormats.push(n);if(e.extraFeatures)for(let n of e.extraFeatures)i.extraFeatures.indexOf(n)===-1&&i.extraFeatures.push(n);if(e.extraQualities)for(let n of e.extraQualities)i.extraQualities.indexOf(n)===-1&&i.extraQualities.push(n);return i}function vp(e){let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&gp.indexOf(i)!==-1)return!0;return!1}function Le(e){if(e["@id"])return e["@id"];if(e.id)return e.id}function Vs(e){if(!e||!e.profile||!Le(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&fp.indexOf(i)!==-1)return!0;return!1}function ax(e){if(!Vs(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"){if(tu.indexOf(i)!==-1)return!0}else{let n=[...i.supports||[],...i.extraFeatures||[]];if(n.indexOf("regionByPx")!==-1&&(n.indexOf("sizeByW")!==-1||n.indexOf("sizeByWh")!==-1))return!0}return!1}function aP({x:e=0,y:t=0,w:i,h:n,full:r,square:a,percent:l}){if(r)return"full";if(a)return"square";if(typeof i>"u"||typeof n>"u")throw new Error("RegionParameter: invalid region");let c=`${e},${t},${i},${n}`;return l?`pct:${c}`:c}function lP({max:e,percentScale:t,upscaled:i,confined:n,width:r,height:a,serialiseAsFull:l,version:c}){let p=[];return i&&p.push("^"),e?(p.push(l?"full":"max"),p.join("")):(n&&p.push("!"),t&&p.push(`pct:${t}`),r&&p.push(`${r}`),p.push(","),a&&c===3&&p.push(`${a}`),p.join(""))}function uP(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function iu(e,t){let i=e.prefix.startsWith("/")?e.prefix.substring(1):e.prefix,n=`${e.scheme}://${e.server}/${i?`${i}/`:""}${e.identifier}`;if(e.type==="base")return n;if(e.type==="info")return`${n}/info.json`;let{size:r}=e,{region:a,rotation:l,format:c,quality:p}=e;if(t){let m=t["@context"]?Array.isArray(t["@context"])?t["@context"]:[t["@context"]]:[],h=m.indexOf("http://iiif.io/api/image/2/context.json")!==-1,y=m.indexOf("http://iiif.io/api/image/3/context.json")!==-1;if((r.width===t.width&&!r.height||r.height===t.height&&!r.width||r.width===t.width&&r.height===t.height)&&(r={...r,max:!0}),h&&(r.max&&!r.serialiseAsFull&&(r={...r,serialiseAsFull:!0}),!r.max&&r.width&&r.height&&(r={...r,height:void 0}),r={...r,version:2}),y){if(r.max&&r.serialiseAsFull&&(r={...r,serialiseAsFull:!1}),r.width&&!r.height&&t.width&&t.height){let S=t.height/t.width;r={...r,height:Math.ceil(r.width*S)}}r={...r,version:3}}}return[n,aP(a),lP(r),uP(l),`${p}.${c}`].filter(Boolean).join("/")}function Ln(e){return e.endsWith("info.json")?e:e.endsWith("/")?`${e}info.json`:`${e}/info.json`}function nu(e){let t=rP(Ln(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=sP(e);return{identifier:t.identifier,originalPath:"",server:t.server,prefix:t.prefix,scheme:t.scheme,type:"image",quality:i.extraQualities.indexOf("default")===-1?i.extraQualities[0]:"default",region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:"jpg",rotation:{angle:0}}}function lx(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];if(!l)continue;let c=l.width;r.push(e/c)}return r}function ux(e,t,i){let n=i.length,r=[];for(let a=0;a<n;a++){let l=i[a];l&&r.push({width:Math.floor(e/l),height:Math.floor(t/l)})}return r}function yp(e,t){if(t&&t.profile){let i=t.profile;if(i){let n=Array.isArray(i)?i:[i];if(n.includes(`level${e}`)||n.includes(`http://iiif.io/api/image/2/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/level${e}.json`)||n.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`))return!0;if(e===2){for(let r of n)if(Oo.includes(r))return!0}if(e===1){for(let r of n)if(tu.includes(r))return!0}if(e===0){for(let r of n)if(gp.includes(r))return!0}}}return!1}function Us(e){return Vs(e)?yp(0,e)?0:yp(1,e)?1:yp(2,e)?2:null:null}function zn(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],i=t.length,n=[];for(let r=0;r<i;r++)Vs(t[r])&&n.push(t[r]);return n}function cx(e){if(e["@type"])return e["@type"];if(e.type)return e.type}function jr(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,"");return t.indexOf("/")!==-1?t.split("/")[0]:t}function dx(e,t,i){let n=e>t?e:t,r=i.length,a=[];for(let l=0;l<r;l++){let c=i[l];if(!c||c.scaleFactors.length===0)continue;let p=c.scaleFactors[0];if(!p)continue;let m=n/p,h=[p];for(;m>=c.width;)p=p*2,h.push(p),m=m/2;a.push({...c,scaleFactors:h})}return a}function ru(e,t,i){let n=nu({"@context":e.version===3?"http://iiif.io/api/image/3/context.json":"http://iiif.io/api/image/2/context.json",id:Ln(Le(e)),profile:e.level===null||typeof e.level>"u"?"level0":`level${e.level}`,type:e.version===3?"ImageService3":"ImageService2"});if(n.type!=="image")throw new Error("Invalid service");return n.size.max=!1,n.size.width=t,n.size.height=i,{id:iu(n),type:"fixed",width:t,height:i||e.height/(e.width||1)*t,unsafe:e.width>t}}function hx(e,t,i){let n=e.width?e.width:e.maxWidth;return i.height<=e.maxHeight&&i.width<=e.maxWidth&&i.height>=e.minHeight&&i.width>=e.minWidth&&(!t||Math.abs(i.width-n)<Math.abs(t.width-n))}function px(e,t){let i=[],n=Object.assign({unsafeImageService:!1,atAnyCost:!0,fallback:!0,minHeight:64,minWidth:64,maxHeight:1/0,maxWidth:1/0,returnAllOptions:!1,preferFixedSize:!1,allowUnsafe:!1,explain:!1,height:0,width:0},e),r=(h,y=0)=>n.explain?i.push(new Array(y).fill(0).map(S=>" ").join("")+h().trim()):void 0,a=[],l=[],c=null;r(()=>`Using configuration: ${JSON.stringify(n,null,2)}`);let p=(h,y)=>{if(r(()=>"Swapping choice",3),hx(n,y,h)){if(n.preferFixedSize&&h.unsafe){r(()=>`We found an image that was marked as unsafe, but it was the best size. (${h.id})`,4),l.push(h);return}n.returnAllOptions&&y&&l.push(y),r(()=>`We found a new image that was the best size. (${h.id})`,4),c=h}else n.returnAllOptions&&l.push(h)};r(()=>`The input shows we have ${t.length} list(s) of candidates to choose from.`);let m=t.length;for(let h=0;h<m;h++){let y=t[h]();r(()=>`Candidate group ${h}: ${JSON.stringify(y,null,2)}`,1);let S=y.length;r(()=>`Checking candidate list number ${h} and found ${S} potential ways of creating image(s)`,1);for(let w=0;w<S;w++){let v=y[w];if(r(()=>`-> Checking candidate ${w}`,1),v.type==="unknown"&&n.atAnyCost&&(r(()=>`We've found an unknown image type, adding this to the "last resort" list`,2),a.push(v)),v.type==="fixed"&&(v.unsafe?(r(()=>`We've found an unsafe fixed image type, adding this to the "last resort" list`,2),a.push(v)):(r(()=>"We've found a fixed size image, checking if it matches the request",2),p(v,c))),v.type==="fixed-service")if(n.unsafeImageService){r(()=>"Checking for an image from the tile source, without calculating the right height and width (unsafeImageService)",2);let x=ru(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=ru(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=ru({id:v.id,type:"fixed-service",width:v.maxWidth,height:v.maxWidth,level:v.level,version:v.version},v.maxWidth);p(x,c)}}if(c&&!n.returnAllOptions){if(c.unsafe||n.allowUnsafe)continue;r(()=>`We found a match in choice list number ${h}, no searching any more`);break}}return n.atAnyCost&&l.length===0?(r(()=>c?`We found an image! ${c.id} of type ${c.type}`:'We found no images, but "atAnyCost" is set, so returning that'),{best:c||a[0]||null,fallback:a.slice(1),log:i}):n.returnAllOptions?(r(()=>"Returning all options that we have found"),{best:(n.atAnyCost?c||l[0]||a[0]:c||l[0])||null,fallback:[...l,...a],log:i}):(r(()=>"Returning the best image that we found, and a fallback"),{best:c||l[0]||null,fallback:c?l:l.slice(1),log:i})}function wp(e){return(e["@context"]?Array.isArray(e["@context"])?e["@context"]:[e["@context"]]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1}function fx(e){return Vs(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:Le(e),type:"fixed-service",height:t.height,width:t.width,level:Us(e),version:wp(e)?3:2})):[]}function mx(e){if(!ax(e))return[];let t=[],i=Array.isArray(e.profile)?e.profile:[e.profile],n=i.length;for(let r=0;r<n;r++){let a=i[r];if(a&&typeof a!="string"&&(a.maxHeight||a.maxWidth))return[{id:Le(e),type:"variable",minWidth:0,minHeight:0,maxHeight:a.maxHeight||a.maxWidth,maxWidth:a.maxWidth||a.maxHeight,level:Us(e),version:e["@context"]==="http://iiif.io/api/image/3/context.json"?3:2}]}if(e.tiles){let r=e.tiles.length;for(let a=0;a<r;a++){let l=e.tiles[a];l&&(l.height||l.width)&&t.push({id:Le(e),type:"variable",minHeight:0,minWidth:0,maxHeight:l.height||l.width,maxWidth:l.width,level:Us(e),version:wp(e)?3:2})}}return t}function xp(e){let t=[],i=e.length;for(let n=0;n<i;n++){let r=e[n];if(!r)continue;let a=fx(r);a.length&&t.push(...a);let l=mx(r);l.length&&t.push(...l)}return t}function Sp(e){let t=/^.*\/(full)\/(((\d+),(\d+)?)|max)\/(\d+)\/default\.(jpg|png|jpeg)$/,i=e.match(t);if(i&&i[4]&&i[5]){let n=i[1],r=parseInt(i[4],10),a=parseInt(i[5],10),l=i[7];if((n==="max"||n==="full")&&r&&a&&l)return{type:"fixed",id:e,height:a,width:r}}return{type:"unknown",id:e}}function Ws(e){if(typeof e=="string")return Sp(e);let t=cx(e);if(t!=="Image"&&t!=="sc:Image")return null;let i=e,n=Le(i);return n?n&&i.width&&i.height?{id:n,type:"fixed",width:i.width,height:i.height,unsafe:!0}:Sp(n):null}function gx(e,t=!0,i){let n=[],r=Ws(e);if(r===null)return n;let a=e;if(n.push(r),t&&a&&a.width&&a.height){let l=[],c=zn(a);for(let p of c){let m={id:Le(p),width:a.width,height:a.height};if(i.canLoadSync(m)){let h=i.loadServiceSync(m);h&&(h.height||(h.height=a.height),h.width||(h.width=a.width),l.push(...xp([h])))}}if(l.length)return n.push(...l),n}return a.service&&n.push(...xp(a.service)),n}function yx(e,t){if(e.length!==t.length)return!1;if(e.length===0&&t.length===0)return!0;let i=e.length,n=!0;for(let a=0;a<i;a++){let l=e[a],c=t[a];if(l.width!==c.width||l.height!==c.height){n=!1;break}}if(n)return!0;let r=0;for(let a=0;a<i;a++)for(let l=0;l<i;l++)if(e[a].width===t[l].width&&e[a].height===t[l].height){r++;break}return r===i}var Lo=class{constructor(e={}){Rt(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Rt(this,"fetchingCount",0),Rt(this,"imageServices",{}),Rt(this,"knownImageServers",{}),this.config=Object.assign(this.config,e)}setConfig(e){Object.assign(this.config,e)}sample(e,t,i=!0){let n=jr(Le(e)),r=Ln(Le(e)),a=this.knownImageServers[n];return this.imageServices[r]=Object.assign(e,{real:!0}),!a&&e.tiles&&!vp(e)?(this.knownImageServers[n]={verifications:0,malformed:!1,root:n,preLoaded:i,sampledId:Le(e),verified:!1,server:null,result:{context:e["@context"]||[],sampledProfile:e.profile,resourceServiceRatio:t&&e.height?t.height/e.height:1,sampledSizes:e.sizes||[],sizeRatios:lx(e.width,e.height,e.sizes||[]),sampledTiles:e.tiles||[]}},!0):this.verify(e)}preLoad(e,t=!0){this.knownImageServers[e.root]=e,t&&(this.knownImageServers[e.root].malformed=!1,this.knownImageServers[e.root].verifications=this.config.verificationsRequired)}predict(e,t=!1,i=!1){let n=e?.source,r=jr(Le(e)),a=this.knownImageServers[r],l=Ln(Le(e));return this.imageServices[l]?this.imageServices[l]||null:!this.config.approximateServices||!a||!a.result||!(n?.height||e.height)||!(n?.width||e.width)||!i&&(a.malformed||a.verifications<this.config.verificationsRequired)||e.source&&vp(e.source)?null:(this.imageServices[l]||(this.imageServices[l]={"@context":a.result.context,"@id":Le(e),id:Le(e),protocol:"http://iiif.io/api/image",tiles:n?.tiles||dx(e.width,e.height,a.result.sampledTiles),sizes:n?.sizes||ux(Math.round(e.width/a.result.resourceServiceRatio),Math.round(e.height/a.result.resourceServiceRatio),a.result.sizeRatios),profile:n?.profile||a.result.sampledProfile,height:n?.height||e.height,width:n?.width||e.width,real:!1}),this.imageServices[l]||null)}async getThumbnailFromResource(e,t,i=!0,n=[]){let r=e?await this.getImageCandidates(e,i):[];return px(t,[()=>n,()=>r])}async getImageCandidates(e,t=!0){let i=e;if(t&&i&&i.height&&i.width){let n=zn(i);for(let r of n){let a={id:Le(r),width:r.width?r.width:i.width,height:r.height?r.height:i.height,source:r};await this.loadService(a)}}return gx(e,t,this)}async verify(e){let t=this.predict(e,!1,!0),i=await this.fetchService(Le(e));if(!t)return!1;let n=t.height===i.height&&t.width===i.width&&t["@context"]===i["@context"]&&yx(t.sizes||[],i.sizes||[]);if(n){let r=jr(Le(e)),a=this.knownImageServers[r];a&&(a.verifications+=1,a.verifications>=this.config.verificationsRequired&&(a.verified=!0))}return n}canLoadSync(e){let t=typeof e=="string"?e:Le(e),i=Ln(t);if(this.imageServices[i])return!0;let n=this.knownImageServers[jr(t)];return!!(n&&!n.malformed&&n.verifications>=this.config.verificationsRequired)}async markAsMalformed(e){return this.knownImageServers[jr(Le(e))].malformed=!0,this.loadService(e,!0)}async fetchService(e,t=!1){let i=Ln(e),n=this.imageServices[i];if(n&&(!t||n.real))return n;if(!this.config.enableFetching)throw new Error("Fetching is not enabled");let r=await this.fetch(i).then(a=>a.json());return!r.id&&r["@id"]&&(r.id=r["@id"]),r.id!==e&&(r.id=e,r["@id"]&&(r["@id"]=e)),this.imageServices[i]=Object.assign(r,{real:!0}),this.imageServices[i]}async fetch(e,t){return fetch(e,t)}async loadService(e,t=!1){if(!this.config.disableThrottling){let r=!0;for(;r;)if(this.fetchingCount>=this.config.verificationsRequired)await new Promise(a=>setTimeout(a,500));else{r=!1;break}}let i=this.knownImageServers[jr(Le(e))];if(i&&!i.malformed&&!t){await i.result;let r=this.loadServiceSync(e);if(r)return r}this.fetchingCount++;let n=await this.fetchService(Le(e),t);return this.fetchingCount--,n.real&&this.sample(n,e),n}loadServiceSync(e){let t=Ln(Le(e));return this.imageServices[t]?this.imageServices[t]:this.config.approximateServices?this.predict(e):null}};function vx(e={}){let t=e.events||Jl(),i=e.loader||new Lo;return{store:eu((r,a)=>({loaded:{},loadServiceSync:(l,c,p)=>{let m=l.id||l["@id"],h=a().loaded[m];if(h&&h.status==="done")return h.service;if(h&&h.status==="loading")return null;if(h&&h.status==="error")throw new Error("Failed to load image service");let y={id:Le(l),width:l.width||c?.width||0,height:l.height||c?.height||0,source:l},S=i.loadServiceSync(y);return S?(r(w=>({loaded:{...w.loaded,[m]:{status:"done",service:S,real:!0}}})),t.emit("image-service.loaded",{id:m,service:S})):p&&a().loadService(l,c).then(()=>{}),S},loadService:async(l,c)=>{let p=l.id||l["@id"],m=a().loaded[p];if(m&&m.status==="done")return m.service;if(m&&m.status==="loading")return new Promise((h,y)=>{let S=w=>{w.id===p&&(t.off("image-service.loaded",S),h(w.service||l))};t.on("image-service.loaded",S)});if(m&&m.status==="error"&&!c?.force)throw new Error("Failed to load image service");t.emit("image-service.loading",{id:p});try{let h={id:Le(l),width:l.width||0,height:l.height||0,source:l},y=await i.loadService(h,c?.force);return r(S=>({loaded:{...S.loaded,[p]:{status:"done",service:y,real:y.real}}})),t.emit("image-service.loaded",{id:p,service:y}),y}catch(h){throw t.emit("image-service.error",{id:p,error:h}),h}}})),events:t}}var bp=vx();var ou={},Fn={get(e){return e},setMetaValue([e,t,i],n){let r=Fn.getResourceMeta(e,t),a=r?r[i]:void 0,l=typeof n=="function"?n(a):n;ou[e]={...ou[e]||{},[t]:{...(ou[e]||{})[t]||{},[i]:l}}},getResourceMeta:(e,t)=>{let i=ou[e];if(i)return t?i[t]:i},async load(e){let t=typeof e=="string"?e:e.id;return fetch(t).then(i=>i.json())},requestStatus(e){}};var xx=new Lo;function Cp(e=Fn,t={}){let i=t.imageServiceLoader||xx;async function n(r,a,l=!1,c=[],p){let m=()=>i.getThumbnailFromResource(void 0,a,l,c);if(!r)return await i.getThumbnailFromResource(void 0,a,l,c);if(typeof r=="string"){let S=Ws(r);return S&&c.push(S),await i.getThumbnailFromResource(void 0,a,l,c)}let h=e.get(r,{skipSelfReturn:!1});if(typeof h=="string")return{best:Ws(h),fallback:[],log:[]};if(!h)return await m();switch(await(async S=>{if(S&&S.thumbnail&&S.thumbnail.length){let w=e.get(S.thumbnail[0]),v=await i.getImageCandidates(w,l);v&&v.length&&c.push(...v)}})(h),h.type){case"Annotation":{let S=Array.isArray(h.body)?h.body:[h.body],w=e.get(S[0]);return p&&!w.width&&(w.width=p.width,w.height=p.height),await i.getThumbnailFromResource(w,a,l,c)}case"Canvas":{let S=h;return n(S.items[0],a,l,c,{width:S.width,height:S.height})}case"AnnotationPage":return n(h.items[0],a,l,c,p);case"Choice":{let S=h;return!S.items||S.items[0]?await m():n(S.items[0],a,l,c,p)}case"Collection":{let w=h.items[0];return w?n(w,a,l,c,p):await m()}case"Manifest":{let w=h.items[0];return w?n(w,a,l,c,p):await m()}case"SpecificResource":case"Image":case"Dataset":case"Sound":case"Text":case"TextualBody":case"Video":return p&&!h.width&&(h.width=p.width,h.height=p.height),i.getThumbnailFromResource(h,a,l,c)}return await m()}return{getBestThumbnailAtSize:n}}var KP=T(B(),1),ZP=T(H(),1),Js=T(H(),1),JP=T(B(),1),eE=T(H(),1),f0=T(H(),1),cP=Object.defineProperty,dP=(e,t,i)=>t in e?cP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,P=(e,t,i)=>(dP(e,typeof t!="symbol"?t+"":t,i),i),bu=["onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onScroll","onWheel","onClick","onDragStart","onDragEnd","onDragEnter","onDragExit","onDrag","onDragOver"];function hP(){return bu.reduce((e,t)=>(e[t]=[],e),{})}var Fo=bu.reduce((e,t)=>(e[t.slice(2).toLowerCase()]=t,e[t]=t,e),{}),pP="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Cu=(e=21)=>{let t="",i=crypto.getRandomValues(new Uint8Array(e));for(;e--;)t+=pP[i[e]&63];return t},bn=class{constructor(){P(this,"__id"),P(this,"__revision",0),P(this,"__host"),P(this,"__onCreate"),P(this,"__parent"),P(this,"__owner",{value:void 0}),P(this,"__state",{}),P(this,"eventHandlers"),P(this,"scale",1),P(this,"layers",[]),P(this,"time",[]),P(this,"_crop"),P(this,"cropData"),P(this,"id"),P(this,"addEventListener",(e,t,i)=>{let n=Fo[e];if(!this.eventHandlers[n])throw new Error(`Unknown event ${n}`);this.eventHandlers[n].indexOf(t)===-1&&this.eventHandlers[n].push(t)}),P(this,"removeEventListener",(e,t)=>{let i=Fo[e];if(!this.eventHandlers[i]){console.warn(`Unknown event ${i}`);return}this.eventHandlers[i].indexOf(t)!==-1&&(this.eventHandlers[i]=this.eventHandlers[i].filter(n=>n!==t))}),this.id=this.__id=Cu(),this.eventHandlers=hP()}get crop(){return this._crop}set crop(e){this._crop=e}getObjectsAt(e){return[]}getAllPointsAt(e,t,i){return[]}getScheduledUpdates(e,t){return[]}dispatchEvent(e,t){let i=this.eventHandlers[e],n=i?i.length:0,r=!1;if(n)for(let a=0;a<n;a++)try{i[a](t),r=!0}catch(l){console.error(e,l)}return r}get x(){return this.points[1]}get y(){return this.points[2]}get width(){return this.points[3]-this.points[1]}get height(){return this.points[4]-this.points[2]}translate(e,t){Zt(this.points,ut(e,t))}atScale(e){Zt(this.points,On(e,this.x,this.y)),this.scale*=e}transform(e){Zt(this.points,e)}applyProps(e){this.__revision++}appendChild(e){}removeChild(e){}insertBefore(e,t){}hideInstance(){}},cr=class Ep extends bn{constructor(t){if(super(),P(this,"type","spacial-content"),P(this,"id"),P(this,"uri"),P(this,"display"),P(this,"points"),P(this,"priority"),P(this,"style",{opacity:1}),!t)this.id="",this.uri="",this.display={x:0,y:0,scale:1,width:0,height:0,points:re(5)},this.points=re(5);else{let i=t.scale||1;this.id=t.id||t.uri,this.uri=t.uri,this.points=xe.singleBox(t.width,t.height,t.x,t.y),this.display={x:0,y:0,scale:i,width:t.width/i,height:t.height/i,points:xe.singleBox(t.width/i,t.height/i),rotation:t?.rotation}}}applyProps(t){let i=t.display?t.display.width:t.target.width,n=t.target.width/i;if(this.id=t.id||t.uri,this.uri=t.uri,this.points.set(xe.singleBox(t.target.width,t.target.height,t.target.x,t.target.y)),t.style&&typeof t.style.opacity<"u"&&(this.style.opacity=t.style.opacity),t.crop){this.cropData=t.crop;let r=xe.singleBox(t.crop.width,t.crop.height,t.crop.x,t.crop.y);Zt(r,ut(-t.crop.x,-t.crop.y)),this.crop?this.crop.set(r):this.crop=re(r)}t.display?(this.display.scale=n,this.display.width=t.display.width,this.display.height=t.display.height,this.display.rotation=t.display.rotation,this.display.points=xe.singleBox(t.display.width,t.display.height)):(this.display.scale=n,this.display.width=t.target.width/n,this.display.height=t.target.height/n,this.display.points=xe.singleBox(t.target.width/n,t.target.height/n))}getAllPointsAt(t,i,n){return[[this,this.crop||this.points,i]]}static fromSvg(t,i,n,r){return Ep.fromImage("data:image/svg+xml;base64,"+btoa(t),i,n,r)}static fromImage(t,i,n,r){let a=new Ep;return a.applyProps({uri:t,id:r,display:n,target:i}),a}getImageUrl(){return this.uri}},Ap=class extends bn{constructor(e){if(super(),P(this,"type","spacial-content"),P(this,"id"),P(this,"uri"),P(this,"display"),P(this,"points"),P(this,"getTexture"),this.getTexture=()=>({source:void 0,hash:-1}),!e)this.id="",this.uri="",this.display={x:0,y:0,scale:1,width:0,height:0,points:re(5)},this.points=re(5);else{let t=e.scale||1;this.id=e.id||e.uri,this.uri=e.uri,this.points=xe.singleBox(e.width,e.height),this.display={x:0,y:0,scale:t,width:e.width/t,height:e.height/t,points:t!==1?xe.singleBox(e.width/t,e.height/t):this.points}}}applyProps(e){let t=e.display?e.display.width:e.target.width,i=e.target.width/t;this.id=e.id,this.points.set(xe.singleBox(e.target.width,e.target.height)),this.display.scale=i,this.display.width=e.target.width/i,this.display.height=e.target.height/i,this.getTexture=e.getTexture,this.display.points=i!==1?xe.singleBox(e.target.width/i,e.target.height/i):this.points}getAllPointsAt(e,t,i){return[[this,this.points,t]]}};function fP(e,t,i=1){let n=t.length;if(n===0)throw new Error("No resources passed in.");let r=0,a=1/0;for(let l=0;l<n&&!(!t[l]||!t[l].display);l++){let c=Ip(t[l].display.scale,e/(i||1));c<a&&(a=c,r=l)}return r}function Ip(e,t){return Math.abs(e-t)}function vu(e,t){let i=Ip(e.x,t.x),n=Ip(e.y,t.y);return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}function mP(e){let t=e.length;return e.indexOf("/info.json")===t-10?e.slice(0,-10):e}function su(e,t,i){return Math.min(Math.max(e,t),i)}var Ks=class Nx extends bn{constructor(t){super(),P(this,"id"),P(this,"type","spacial-content"),P(this,"display"),P(this,"tileWidth"),P(this,"style",{opacity:1}),P(this,"points"),P(this,"service"),P(this,"format","jpg"),P(this,"crop2"),P(this,"tileUrl"),this.tileUrl=mP(t.url),this.id=t.id||`${this.tileUrl}--${t.scaleFactor}`,this.points=t.displayPoints?t.displayPoints:bi(t.points,wi(t.scaleFactor)),this.tileWidth=t.tileWidth,this.display={x:0,y:0,width:t.width/t.scaleFactor,height:t.height/t.scaleFactor,points:t.points,scale:t.scaleFactor},t.format&&(this.format=t.format)}applyProps(t){if(t.style&&typeof t.style.opacity<"u"&&(this.style.opacity=t.style.opacity),t.service!==this.service&&(this.service=t.service),t.format?this.format=t.format:this.format="jpg",t.crop){this.cropData=t.crop;let i=re([...this.points]),n=i.length/5,r=t.crop.x||0,a=t.crop.y||0,l=t.crop.x+t.crop.width,c=t.crop.y+t.crop.height;for(let p=0;p<n;p++){let m=p*5;i[m+1]<l&&i[m+3]>r&&i[m+2]<c&&i[m+4]>a?(i[m+1]=su(i[m+1],r,l),i[m+3]=su(i[m+3],r,l),i[m+2]=su(i[m+2],a,c),i[m+4]=su(i[m+4],a,c)):i[m]=0}Zt(i,ut(-t.crop.x,-t.crop.y)),this.crop?this.crop.set(i):this.crop=i}}static fromTile(t,i,n,r,a,l,c){n.height=n.height?n.height:n.width;let p=c?Math.floor(i.width/r):Math.ceil(i.width/r),m=c?Math.floor(i.height/r):Math.ceil(i.height/r),h=Math.ceil(p/n.width),y=Math.ceil(m/n.height),S=xe.grid(h,y),w=xe.grid(h,y);for(let x=0;x<y;x++)for(let A=0;A<h;A++){let C=A*n.width,I=x*n.height;w.addPoints(C*r,I*r,A===h-1?i.width:(C+n.width)*r,x===y-1?i.height:(I+n.height)*r),S.addPoints(C,I,A===h-1?p:C+n.width,x===y-1?m:I+n.height)}let v=new Nx({url:t,scaleFactor:r,points:S.build(),displayPoints:w.build(),width:i.width,height:i.height,tileWidth:n.width,format:l});return v.applyProps({service:a}),v}getImageUrl(t){let i=this.points.slice(t*5,t*5+5),n=i[3]-i[1],r=i[4]-i[2],a=Math.ceil(n/this.display.scale);return`${this.tileUrl}/${i[1]},${i[2]},${n},${r}/${a>this.tileWidth?this.tileWidth:a},/0/default.${this.format||"jpg"}`}getAllPointsAt(t,i,n){let r=or(this.crop||this.points,t);return[[this,r,i]]}transform(t){Zt(this.points,t)}getScheduledUpdates(t,i){return[]}},gP=class extends bn{constructor(){super(...arguments),P(this,"type","spacial-content")}getAllPointsAt(e,t,i){return[[this,this.points,t]]}},yP=class extends gP{constructor(e){super(),P(this,"id"),P(this,"display"),P(this,"points"),P(this,"images",[]),P(this,"allImages",[]),P(this,"scaleFactors",[]),P(this,"aggregateBuffer",re(9)),P(this,"lazyLoader"),P(this,"isFullyLoaded",!1),P(this,"maxScaleFactor",0),P(this,"renderOptions"),P(this,"_scheduleSortByScales",!1),P(this,"_sortByScales",()=>{this._scheduleSortByScales=!1,this.allImages.sort((i,n)=>n.display.width-i.display.width),this.images=[];let t=.1;for(let i of this.allImages)if(!(i.display.width<this.renderOptions.minSize&&i.display.height<this.renderOptions.minSize&&!i.priority||i instanceof cr&&(i.display.width>this.renderOptions.maxImageSize||i.display.height>this.renderOptions.maxImageSize)&&!i.priority)){if(Math.abs(i.display.scale-t)<.25||i.priority){let n=this.images.pop();n&&(n instanceof cr||n.priority)?(i.priority&&this.images.push(i),this.images.push(n)):i&&this.images.push(i)}else i&&this.images.push(i);t=i.display.scale}this.images.length===0&&(this.images=[...this.allImages]),this.scaleFactors=this.images.map(i=>i.display.scale),this.maxScaleFactor=Math.max(...this.scaleFactors)}),P(this,"loadFullResource",async()=>{if(!this.isFullyLoaded&&this.lazyLoader){this.isFullyLoaded=!0;let t=await this.lazyLoader();this.addImages(t)}}),P(this,"fallback",[this.loadFullResource]),this.id=e.id,this.points=xe.singleBox(e.width,e.height),this.lazyLoader=e.loadFullImages,e.loadFullImages||(this.isFullyLoaded=!0),this.display={x:0,y:0,points:xe.singleBox(e.width,e.height),height:e.height,width:e.width,scale:1},this.renderOptions={renderSmallestFallback:!0,renderLayers:3,minSize:255,maxImageSize:2048,quality:1.5,...e.renderOptions||{}},this.addImages(e.images)}applyProps(e){typeof e.renderSmallestFallback<"u"&&e.renderSmallestFallback!==this.renderOptions.renderSmallestFallback&&(this.renderOptions.renderSmallestFallback=e.renderSmallestFallback),typeof e.renderLayers<"u"&&e.renderLayers!==this.renderOptions.renderLayers&&(this.renderOptions.renderLayers=e.renderLayers),typeof e.minSize<"u"&&e.minSize!==this.renderOptions.minSize&&(this.renderOptions.minSize=e.minSize),typeof e.maxImageSize<"u"&&e.maxImageSize!==this.renderOptions.maxImageSize&&(this.renderOptions.maxImageSize=e.maxImageSize),typeof e.quality<"u"&&e.quality!==this.renderOptions.quality&&(this.renderOptions.quality=e.quality)}appendChild(e){this.addImages([e])}removeChild(e){this.images.indexOf(e)!==-1&&(this.images=this.images.filter(t=>t!==e),this.sortByScales())}insertBefore(e,t){this.addImages([e])}hideInstance(){}addImages(e){for(let t of e)t.__parent=this,t.__owner=this.__owner;this.allImages.push(...e.filter(Boolean)),this.sortByScales()}sortByScales(){this._scheduleSortByScales=!0}getScheduledUpdates(e,t){return this._scheduleSortByScales?[this._sortByScales]:this.isFullyLoaded?[]:t>1/this.maxScaleFactor?this.fallback:[]}getAllPointsAt(e,t,i){if(this.images.length===0)return[];let n=fP(1/(i||1)/(window.devicePixelRatio||1),this.images,this.renderOptions.quality),r=this.images.length,a=t?pi(t,ut(this.x,this.y)):ut(this.x,this.y);if(n!==this.images.length-1&&this.images[n+1]){let l=[];for(let m=r-1;m>=n;m--)l.push(m);let c=l[0];this.renderOptions.renderLayers&&(l=l.slice(-Math.min(l.length,this.renderOptions.renderLayers))),this.renderOptions.renderSmallestFallback&&l.indexOf(c)===-1&&l.unshift(c);let p=[];for(let m=0;m<l.length;m++)p.push(...this.images[l[m]].getAllPointsAt(e,a,i));return p}return this.images[n].getAllPointsAt(e,a,i)}};function au(e,t,i,n,r){let a=Math.PI/180*r,l=Math.cos(a),c=Math.sin(a),p=l*(i-e)+c*(n-t)+e,m=l*(n-t)-c*(i-e)+t;return[p,m]}var kp=class Bx extends bn{constructor(t,i){super(),P(this,"id"),P(this,"type","world-object"),P(this,"scale"),P(this,"layers"),P(this,"points"),P(this,"worldPoints"),P(this,"intersectionBuffer",re(5)),P(this,"aggregateBuffer",re(9)),P(this,"invertedBuffer",re(9)),P(this,"rotation",0),P(this,"filteredPointsBuffer"),P(this,"_updatedList",[]),P(this,"geometry");let{x:n=0,y:r=0}=i||{};t?(this.id=t.id||"",this.scale=1,this.layers=t.layers,this.points=re([1,n,r,n+t.width,r+t.height]),this.worldPoints=re([1,n,r,n+t.width,r+t.height]),this.filteredPointsBuffer=re(t.layers.length*5)):(this.id="",this.scale=1,this.layers=[],this.points=re(5),this.worldPoints=re(5),this.filteredPointsBuffer=re(5))}static createWithProps(t){let i=new Bx;return i.applyProps(t),i}applyProps(t){let i=t.x||0,n=t.y||0;this.id=t.id;let r=typeof t.scale<"u"?t.scale:this.scale;this.points[0]=1,this.points[1]=i,this.points[2]=n,this.points[3]=i+t.width,this.points[4]=n+t.height,this.rotation=t.rotation||0,this.worldPoints[3]=this.worldPoints[1]+t.width,this.worldPoints[4]=this.worldPoints[2]+t.height,t.scale&&t.scale!==1&&this.atScale(r),this.scale=r}appendChild(t){t.points[0]===0&&t.points.set(this.points),t.__owner.value=this,this.addLayers([t])}removeChild(t){this.layers=this.layers.filter(i=>i!==t),this.filteredPointsBuffer=re(this.layers.length*5)}insertBefore(t,i){let n=this.layers.indexOf(i);if(n===-1||this.layers.indexOf(t)!==-1)return;let r=this.layers.slice(0,n),a=this.layers.slice(n);this.layers=[...r,t,...a]}hideInstance(){console.warn("hideInstance: not yet implemented")}getObjectsAt(t,i){if(this.rotation&&(t=this.applyRotation(t)),or(this.points,t,this.filteredPointsBuffer)[0]===0)return[];let n=this.layers.length,r=[];for(let a=0;a<n;a++){let l=this.layers[a];if(i&&l.isShape){let c=bi(l.points,ut(this.x,this.y));if(!l.intersects([t[1]-c[1],t[2]-c[2]]))continue}if(or(bi(l.points,ut(this.x,this.y)),t,this.filteredPointsBuffer)[0]!==0&&r.push(l),i){let c=l;r.push(...c.getObjectsAt(t,i))}}return r}applyRotation(t){if(this.rotation){let i={x:t[1],y:t[2]},n={x:t[1],y:t[4]},r={x:t[3],y:t[2]},a={x:t[3],y:t[4]},l=this.points[1]+(this.points[3]-this.points[1])/2,c=this.points[2]+(this.points[4]-this.points[2])/2,[p,m]=au(l,c,i.x,i.y,this.rotation),[h,y]=au(l,c,n.x,n.y,this.rotation),[S,w]=au(l,c,r.x,r.y,this.rotation),[v,x]=au(l,c,a.x,a.y,this.rotation),A=Math.min(p,h,S,v),C=Math.max(p,h,S,v),I=Math.min(m,y,w,x),E=Math.max(m,y,w,x);return re([t[0],A,I,C,E])}return t}getAllPointsAt(t,i,n){let r=pi(ut(this.x,this.y),wi(this.scale),this.aggregateBuffer);this.rotation&&(t=this.applyRotation(t));let a=My(t,this.points,this.intersectionBuffer),l=this.layers.length,c=[],p=bi(a,pi(wi(1/this.scale),ut(-this.x,-this.y),this.invertedBuffer)),m=i?pi(i,r,this.aggregateBuffer):r,h=n*this.scale;for(let y=0;y<l;y++)c.push(...this.layers[y].getAllPointsAt(p,m,h));return c}addLayers(t){let i=[];for(let n of t)this.layers.indexOf(n)===-1&&(i.push(n),n.points.length===5&&(n.points[1]<this.worldPoints[1]/this.scale||n.points[2]<this.worldPoints[2]/this.scale||n.points[3]>this.worldPoints[3]/this.scale||n.points[4]>this.worldPoints[4]/this.scale)&&(n.crop=n.crop||re([1,Math.max(this.worldPoints[1]/this.scale,n.points[1]),Math.max(this.worldPoints[2]/this.scale,n.points[2]),Math.min(this.worldPoints[3]/this.scale,n.points[3]),Math.min(this.worldPoints[4]/this.scale,n.points[4])])));this.layers=this.layers.concat(i),this.filteredPointsBuffer=re(this.layers.length*5)}getScheduledUpdates(t,i){let n=this.layers.length;this._updatedList=[];let r=i*this.scale;for(let a=0;a<n;a++){let l=this.layers[a].getScheduledUpdates(t,r);l&&this._updatedList.push(...l)}return this._updatedList}},Pu=class Dx extends bn{constructor(t=0,i=0,n=100,r="left-to-right"){super(),P(this,"id","world"),P(this,"_width"),P(this,"_height"),P(this,"aspectRatio"),P(this,"viewingDirection"),P(this,"aggregateBuffer",re(9)),P(this,"isDirty",!1),P(this,"zones",[]),P(this,"filteredPointsBuffer"),P(this,"selectedZone"),P(this,"triggerQueue",[]),P(this,"activatedEvents",[]),P(this,"_updatedList",[]),P(this,"translationBuffer",re(9)),P(this,"needsRecalculate",!0),P(this,"emptyPaintables",[]),P(this,"renderOrder",[]),P(this,"points"),P(this,"objects",[]),P(this,"subscriptions",[]),P(this,"_propagateEventTargets",[]),P(this,"_alreadyFlushed",[]),this._width=t,this._height=i,this.aspectRatio=Number.isNaN(t/i)?1:t/i,this.viewingDirection=r,this.points=re(n*5),this.filteredPointsBuffer=re(n*5)}get x(){return 0}get y(){return 0}get width(){return this._width}get height(){return this._height}static withProps(t){let i=new Dx;return i.applyProps(t),i}applyProps(t){typeof t.width<"u"&&typeof t.height<"u"&&(t.width!==this._width||t.height!==this._height)&&this.resize(t.width,t.height),t.viewingDirection!==this.viewingDirection&&(this.viewingDirection=t.viewingDirection,this.triggerRepaint())}propagateTouchEvent(t,i,n){let r=[];for(let a of n)if(a.x&&a.y){let l=xe.singleBox(1,1,a.x,a.y);r.push(this.getObjectsAt(l,!0).reverse())}return r.map(a=>this.propagateEvent(t,i,a,{bubbles:!0,cancelable:!0}))}propagatePointerEvent(t,i,n,r,a={}){let l=xe.singleBox(1,1,n,r),c=this.getObjectsAt(l,!0).reverse();return this.propagateEvent(t,i,c,a)}propagateEvent(t,i,n,{bubbles:r=!1,cancelable:a=!1}={}){i.atlasTarget=this,this._propagateEventTargets.length=1,this._propagateEventTargets[0]=this;let l=!1;i.stopPropagation=()=>{l=!0};let c=n.length;for(let h=c-1;h>=0;h--){this._propagateEventTargets.unshift(n[h][0]);let y=n[h][1].length;if(y)for(let S=0;S<y;S++)this._propagateEventTargets.unshift(n[h][1][S])}let p=this._propagateEventTargets.length,m=!1;for(let h=0;h<p&&(i.atlasTarget=this._propagateEventTargets[h],i.atlasWorld=this,m=this._propagateEventTargets[h].dispatchEvent(t,i)||m,!l);h++);return m&&this.triggerRepaint(),this._propagateEventTargets}appendChild(t){let i=this.appendWorldObject(t);this.renderOrder.push(i/5)}removeChild(t){let i=this.objects.indexOf(t);if(i===-1){for(let n of this.objects)if(n&&n.id===t.id){this.removeChild(n);return}return}this.objects[i]=null,this.renderOrder=this.renderOrder.filter(n=>n!==i),this.points[i*5]=0,this.triggerRepaint(),this.needsRecalculate=!0}insertBefore(t,i){let n=this.objects.indexOf(i);if(n===-1)return;let r=this.appendWorldObject(t);this.renderOrder.splice(n-1,0,r/5)}hideInstance(){}asWorldObject(){return null}addZone(t){this.zones.push(t)}selectZone(t){if(typeof t=="string"){let i=this.zones.length;for(let n=0;n<i;n++)if(this.zones[n].id===t){this.selectedZone=n,this.trigger("zone-changed");return}}else this.zones[t]&&(this.selectedZone=t,this.trigger("zone-changed"))}deselectZone(){this.selectedZone=void 0}getActiveZone(){if(this.selectedZone)return this.zones[this.selectedZone]}hasActiveZone(){return typeof this.selectedZone<"u"}checkResizeInternalBuffer(){if(ky(this.points)===this.objects.length){let t=this.points,i=re(this.points.length*2);i.set(t,0),this.points=i}}appendWorldObject(t){this.checkResizeInternalBuffer();let i=this.objects.length*5,n=t.points;return t.points=this.points.subarray(this.objects.length*5,this.objects.length*5+5),t.points[1]=n[1],t.points[2]=n[2],t.points[3]=n[3],t.points[4]=n[4],this.objects.push(t),this.filteredPointsBuffer=re(this.objects.length*5),this.needsRecalculate=!0,this.triggerRepaint(),i}recalculateWorldSize(){let t=!1;if(this.needsRecalculate){let i=new Int32Array(this.objects.length),n=new Int32Array(this.objects.length),r=this.renderOrder.length;for(let c=0;c<r;c++){let p=this.renderOrder[c];this.objects[p]&&(i[c]=this.points[p*5+3],n[c]=this.points[p*5+4])}let a=Math.max(...i);a!==this._width&&(this._width=a,t=!0);let l=Math.max(...n);l!==this._height&&(this._height=l,t=!0),t&&this.trigger("recalculate-world-size",{width:a,height:l}),this.needsRecalculate=!1}return t}addObjectAt(t,i){i.width&&!i.height?i.height=i.width/t.width*t.height:i.height&&!i.width&&(i.width=i.height/t.height*t.width),(!i||!i.width||!i.height)&&(i.width=t.width,i.height=t.height);let{width:n,x:r,y:a}=i,l=n/t.width;this.checkResizeInternalBuffer(),this.points.set(xe.singleBox(t.width,t.height,0,0),this.objects.length*5);let c=new kp(t);return c.points=this.points.subarray(this.objects.length*5,this.objects.length*5+5),this.objects.push(c),this.scaleWorldObject(this.objects.length-1,l),this.translateWorldObject(this.objects.length-1,r,a),this.filteredPointsBuffer=re(this.points.length*2),this.triggerRepaint(),this.needsRecalculate=!0,c}scaleWorldObject(t,i){Zt(this.points.subarray(t*5,t*5+5),On(i,this.points[t*5+1],this.points[t*5+2]));let n=this.objects[t];n&&(n.atScale(i),this.triggerRepaint())}translateWorldObject(t,i,n){Zt(this.points.subarray(t*5,t*5+5),ut(i,n));let r=this.objects[t];r&&(r.translate(i,n),this.triggerRepaint())}resize(t,i){return this._width=t,this._height=i,this.aspectRatio=t/i,this.triggerRepaint(),this}getObjects(){return this.objects}getPoints(){return this.points}getPointsFromViewer(t,i){let n=xe.singleBox(t.width,t.height,t.x,t.y);return this.getPointsAt(n,i,t.scale)}addLayoutSubscriber(t){return this.subscriptions.push(t),()=>{this.subscriptions.splice(this.subscriptions.indexOf(t),1)}}getScheduledUpdates(t,i){let n=or(this.points,t,this.filteredPointsBuffer),r=this.objects.length;this._updatedList=[];for(let a=0;a<r;a++)if(n[a*5]!==0){if(!this.objects[a])continue;this._updatedList.push(...this.objects[a].getScheduledUpdates(t,i))}return this._updatedList}getObjectsAt(t,i=!1){let n=this.getActiveZone(),r=or(this.points,t,this.filteredPointsBuffer),a=this.renderOrder.length,l=[];for(let c=0;c<a;c++){let p=this.renderOrder[c];if(r[p*5]!==0){let m=this.objects[p];if(!m||n&&n.objects.indexOf(m)===-1)continue;if(m.type!=="world-object"){l.push([m,[m]]);continue}i?l.push([m,m.getObjectsAt(t,i)]):l.push([m,this.emptyPaintables])}}return l}getPointsAt(t,i,n=1){let r=this.getObjectsAt(t),a=pi(wi(n),ut(-t[1],-t[2]),this.translationBuffer),l=i?pi(i,a,this.aggregateBuffer):a,c=r.length,p=[];for(let m=0;m<c;m++)r[m]&&p.push(...r[m][0].getAllPointsAt(t,l,n));return p}flushSubscriptions(){if(this.triggerQueue.length){this._alreadyFlushed=[];let t=this.triggerQueue.length;for(let i=0;i<t;i++){if(this._alreadyFlushed.indexOf(this.triggerQueue[i][0])!==-1)continue;typeof this.triggerQueue[i][1]>"u"&&this._alreadyFlushed.push(this.triggerQueue[i][0]);let n=this.subscriptions.length;for(let r=0;r<n;r++)this.subscriptions[r].apply(null,this.triggerQueue[i])}this.triggerQueue=[]}}trigger(t,i){this.triggerQueue.push([t,i])}triggerEventActivation(){this.trigger("event-activation")}triggerRepaint(){this.trigger("repaint")}gotoRegion(t){this.trigger("goto-region",t)}goHome(t=!1){this.trigger("go-home",{immediate:t})}zoomTo(t,i,n){this.trigger("zoom-to",{point:i,factor:t,stream:n})}zoomIn(t){this.trigger("zoom-to",{point:t,factor:.5})}zoomOut(t){this.trigger("zoom-to",{point:t,factor:2})}constraintBounds(t){this.trigger("constrain-bounds",{immediate:t})}};var lu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,uu={},vP=["backgroundColor","opacity","boxShadow","borderColor","borderWidth","borderStyle","outlineColor","outlineWidth","outlineOffset","outlineStyle"],$s=class extends bn{constructor(){super(),P(this,"id"),P(this,"type","spacial-content"),P(this,"points"),P(this,"hoverEvents",!1),P(this,"activeEvents",!1),P(this,"display",{x:0,y:0,scale:1,width:-1,height:-1,points:re(5)}),P(this,"_parsed",{border:{id:null,match:[]},outline:{id:null,match:[]}}),P(this,"hovering"),P(this,"pressing"),P(this,"props",{}),P(this,"addHover",()=>{this.hovering=!0,this.__revision++}),P(this,"removeHover",()=>{this.hovering=!1,this.pressing=!1,this.__revision++}),P(this,"addPress",()=>{this.pressing=!0,this.__revision++}),P(this,"removePress",()=>{this.pressing=!1,this.__revision++}),this.id=Cu(12),this.points=re(5)}getAllPointsAt(e,t){return[[this,this.points,t]]}applyProps(e={}){let t=!1;if(e.interactive!==this.props.interactive&&(t=!0,this.props.interactive=e.interactive),e.style){let i=e.border||e.style.border;if(i!==this._parsed.border.id)if(!i)this._parsed.border.id=null,this._parsed.border.match=[];else{let n=uu[i]||lu.exec(i)||lu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=uu[i]=n)}if(this._parsed.border.id&&(e.style.borderWidth=this._parsed.border.match[1],e.style.borderStyle="solid",e.style.borderColor=this._parsed.border.match[4]),e.style.outline!==this._parsed.outline.id)if(!e.style.outline)this._parsed.outline.id=null,this._parsed.outline.match=[];else{let n=uu[e.style.outline]||lu.exec(e.style.outline)||lu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=uu[e.style.outline]=n)}this._parsed.outline.id&&(e.style.outlineWidth=this._parsed.outline.match[1],e.style.outlineStyle="solid",e.style.outlineColor=this._parsed.outline.match[4]),this.props.style=e.style,e.backgroundColor&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.backgroundColor,t=!0),e.style.background&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.style.background,t=!0);for(let n of vP)if(this.props.style[n]!==e.style[n]){t=!0;break}e.style[":hover"]!==this.props.hoverStyles&&(this.props.hoverStyles=e.style[":hover"],this.hoverEvents||(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),t=!0),e.style[":active"]!==this.props.pressStyles&&(this.props.pressStyles=e.style[":active"],this.activeEvents||(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0)}e.href!==this.props.href&&(this.props.href=e.href,t=!0),e.hrefTarget!==this.props.hrefTarget&&(this.props.hrefTarget=e.hrefTarget,t=!0),e.title!==this.props.title&&(this.props.title=e.title,t=!0),e.className!==this.props.className&&(this.props.className=e.className,e.className&&!this.hoverEvents&&(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),e.className&&!this.activeEvents&&(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0),e.relativeSize!==this.props.relativeSize&&(this.props.relativeSize=e.relativeSize,t=!0),e.relativeStyle!==this.props.relativeStyle&&(this.props.relativeStyle=e.relativeStyle,t=!0),e.html!==this.props.html&&(this.props.html=e.html,t=!0),e.target&&(e.target.width!==this.display.width||e.target.height!==this.display.height||e.target.x!==this.points[1]||e.target.y!==this.points[2])&&(t=!0,this.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.width=e.target.width,this.display.height=e.target.height),t&&this.__revision++}},gu=class extends bn{constructor(){super(),P(this,"type","spacial-content"),P(this,"id"),P(this,"points"),P(this,"color","#000"),P(this,"backgroundColor"),P(this,"hovering"),P(this,"pressing"),P(this,"text",""),P(this,"display",{x:0,y:0,scale:1,width:100,height:100,points:re(5)}),P(this,"className"),P(this,"html"),P(this,"interactive",!1),P(this,"props",{font:"18px Arial, sans-serif",lineHeight:1,textAlign:"left",verticalAlign:"top",paddingX:0,paddingY:0,fitParent:!1,lineBreak:"auto",strokeText:!1,sizeToFill:!1,maxFontSizeToFill:void 0,allowNewLine:!0,justifyLines:!1,renderHDPI:!1,textDecoration:"none",interactive:!1,relativeSize:!1}),this.id="",this.points=re(5)}getAllPointsAt(e,t){return[[this,this.points,t]]}applyProps({id:e,target:t,text:i,color:n,backgroundColor:r,fontSize:a=18,interactive:l,fontFamily:c="Arial, sans-serif",...p}){p.font=`${a}px ${c}`,this.interactive=l||!1,typeof i<"u"&&(this.text=i||""),n&&(this.color=n),r&&(this.backgroundColor=r),e&&(this.id=e),t&&(this.points=xe.singleBox(t.width,t.height,t.x,t.y),this.display.points=this.points,this.display.width=t.width,this.display.height=t.height),this.props={...this.props,...p},this.__revision++}},ct=Math.pow,cu=Math.sqrt,qs=Math.sin,Cx=Math.cos,Gs=Math.PI,xu=1.70158,du=xu*1.525,Px=xu+1,Ex=2*Gs/3,Ax=2*Gs/4.5,hu=function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},ur={linear:e=>e,easeInQuad:function(e){return e*e},easeOutQuad:function(e){return 1-(1-e)*(1-e)},easeInOutQuad:function(e){return e<.5?2*e*e:1-ct(-2*e+2,2)/2},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return 1-ct(1-e,3)},easeInOutCubic:function(e){return e<.5?4*e*e*e:1-ct(-2*e+2,3)/2},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1-ct(1-e,4)},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-ct(-2*e+2,4)/2},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1-ct(1-e,5)},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1-ct(-2*e+2,5)/2},easeInSine:function(e){return 1-Cx(e*Gs/2)},easeOutSine:function(e){return qs(e*Gs/2)},easeInOutSine:function(e){return-(Cx(Gs*e)-1)/2},easeInExpo:function(e){return e===0?0:ct(2,10*e-10)},easeOutExpo:function(e){return e===1?1:1-ct(2,-10*e)},easeInOutExpo:function(e){return e===0?0:e===1?1:e<.5?ct(2,20*e-10)/2:(2-ct(2,-20*e+10))/2},easeInCirc:function(e){return 1-cu(1-ct(e,2))},easeOutCirc:function(e){return cu(1-ct(e-1,2))},easeInOutCirc:function(e){return e<.5?(1-cu(1-ct(2*e,2)))/2:(cu(1-ct(-2*e+2,2))+1)/2},easeInBack:function(e){return Px*e*e*e-xu*e*e},easeOutBack:function(e){return 1+Px*ct(e-1,3)+xu*ct(e-1,2)},easeInOutBack:function(e){return e<.5?ct(2*e,2)*((du+1)*2*e-du)/2:(ct(2*e-2,2)*((du+1)*(e*2-2)+du)+2)/2},easeInElastic:function(e){return e===0?0:e===1?1:-ct(2,10*e-10)*qs((e*10-10.75)*Ex)},easeOutElastic:function(e){return e===0?0:e===1?1:ct(2,-10*e)*qs((e*10-.75)*Ex)+1},easeInOutElastic:function(e){return e===0?0:e===1?1:e<.5?-(ct(2,20*e-10)*qs((20*e-11.125)*Ax))/2:ct(2,-20*e+10)*qs((20*e-11.125)*Ax)/2+1},easeInBounce:function(e){return 1-hu(1-e)},easeOutBounce:hu,easeInOutBounce:function(e){return e<.5?(1-hu(1-2*e))/2:(1+hu(2*e-1))/2}},xP=class{constructor(e){P(this,"runtime"),P(this,"pendingTransition"),P(this,"lastZoomTo",null),P(this,"isConstraining",!1),P(this,"lastGoToRegion",null),this.runtime=e,this.pendingTransition={from:re(5),to:re(5),elapsed_time:0,done:!0,total_time:0,timingFunction:ur.easeInOutQuad,constrain:!1}}hasPending(){return!this.pendingTransition.done}getPendingTransition(){return this.pendingTransition}getPendingFrom(){return this.pendingTransition.from}customTransition(e){e(this.pendingTransition)}stopTransition(){this.pendingTransition.from=re(this.runtime.target),this.pendingTransition.to=re(this.runtime.target),this.pendingTransition.done=!0,this.pendingTransition.elapsed_time=0,this.pendingTransition.total_time=0}runTransition(e,t){if(!this.pendingTransition.done){let i=this.pendingTransition,n=i.total_time===0?0:(i.elapsed_time+t)/i.total_time,r=i.total_time===0?1:n===0?0:i.timingFunction(n);e[1]=i.from[1]+(i.to[1]-i.from[1])*r,e[2]=i.from[2]+(i.to[2]-i.from[2])*r,e[3]=i.from[3]+(i.to[3]-i.from[3])*r,e[4]=i.from[4]+(i.to[4]-i.from[4])*r,this.pendingTransition.elapsed_time+=t,this.pendingTransition.elapsed_time>=this.pendingTransition.total_time&&(this.pendingTransition.done=!0,this.pendingTransition.callback?.(),this.pendingTransition.constrain&&this.constrainBounds({transition:{duration:this.pendingTransition.total_time===0?0:500,easing:ur.easeOutExpo}}))}}resumeTransition(){this.lastZoomTo&&this.zoomTo(this.lastZoomTo.factor,this.lastZoomTo.options),this.isConstraining&&this.constrainBounds(),this.lastGoToRegion&&this.goToRegion(this.lastGoToRegion.target,this.lastGoToRegion.options)}zoomTo(e,t={}){let{origin:i,stream:n=!1,transition:r}=t;this.lastZoomTo={factor:e,options:t};let a=this.runtime.getZoomedPosition(e,{origin:i}),l=Math.abs(1-e);this.applyTransition(a,r,{duration:2e3*l,easing:ur.easeOutExpo,constrain:!0,callback:()=>{this.lastZoomTo=null}},{stream:!1})}constrainBounds({transition:e,panPadding:t=0}={}){this.isConstraining=!0;let[i,n]=this.runtime.constrainBounds(this.runtime.target,{panPadding:t});i&&(this.applyTransition(n,e,{duration:500,easing:ur.easeOutQuart,constrain:!1,callback:()=>{this.isConstraining=!1}}),this.runtime.updateNextFrame())}applyTransition(e,t,i,{stream:n}={}){this.pendingTransition.from=re(this.runtime.target),this.pendingTransition.to=e,n||(this.pendingTransition.elapsed_time=0),this.pendingTransition.done=!1,this.pendingTransition.total_time=typeof t?.duration<"u"?t.duration:typeof i?.duration<"u"?i.duration:1e3,this.pendingTransition.constrain=typeof t?.constrain<"u"?t.constrain:typeof i?.constrain<"u"?i.constrain:!1,this.pendingTransition.timingFunction=t?.easing||i?.easing||ur.easeInOutSine}goToRegion(e,{transition:t}={}){this.lastGoToRegion={target:e,options:{transition:t}};let i=this.runtime.clampRegion(e);this.applyTransition(xe.singleBox(i.width,i.height,i.x,i.y),t,{duration:1e3,easing:ur.easeOutExpo,constrain:!0,callback:()=>{this.lastGoToRegion=null}}),this.runtime.updateNextFrame()}},u_=Number.MIN_VALUE+1,Eu=class{constructor(e,t,i,n=[],r){P(this,"id",Cu()),P(this,"ready",!1),P(this,"renderer"),P(this,"world"),P(this,"target"),P(this,"homePosition"),P(this,"manualHomePosition"),P(this,"manualFocalPosition"),P(this,"focalPosition"),P(this,"transitionManager"),P(this,"aggregate"),P(this,"transformBuffer",re(500)),P(this,"lastTarget",re(5)),P(this,"zoomBuffer",re(5)),P(this,"logNextRender",!1),P(this,"pendingUpdate",!0),P(this,"isCommitting",!1),P(this,"firstRender",!0),P(this,"lastTime"),P(this,"stopId"),P(this,"mode","explore"),P(this,"controllers",[]),P(this,"controllersRunning",!1),P(this,"controllerStopFunctions",[]),P(this,"maxScaleFactor",1),P(this,"_viewerToWorld",{x:0,y:0}),P(this,"_lastGoodScale",1),P(this,"hooks",{useFrame:[],useBeforeFrame:[],useAfterPaint:[],useAfterFrame:[]}),P(this,"fpsLimit"),P(this,"options"),P(this,"hookOptions",{filters:{grayscale:0,contrast:0,brightness:0,saturate:0,sepia:0,invert:0,hueRotate:0,blur:0}}),P(this,"_viewport",{x:0,y:0,width:0,height:0}),P(this,"setViewport",a=>{let l=Math.round(typeof a.x>"u"?this.target[1]:a.x),c=Math.round(typeof a.y>"u"?this.target[2]:a.y);a.width?this.target[3]=l+a.width:this.target[3]=this.target[3]-this.target[1]+l,a.height?this.target[4]=c+a.height:this.target[4]=this.target[4]-this.target[2]+c,Math.abs(this.target[1]-l)>.01&&(this.target[1]=l),Math.abs(this.target[2]-c)>.01&&(this.target[2]=c),this.pendingUpdate=!0}),P(this,"render",a=>{let l=a-this.lastTime;if(this.isCommitting||this.fpsLimit&&l<1e3/this.fpsLimit){this.stopId=window.requestAnimationFrame(this.render);return}this.lastTime=a,this.world.flushSubscriptions(),this.stopId=window.requestAnimationFrame(this.render),this.hook("useFrame",l);let c=this.pendingUpdate,p=this.renderer.pendingUpdate();if(this.transitionManager.hasPending()&&(this.transitionManager.runTransition(this.target,l),this.pendingUpdate=!0,this.updateControllerPosition()),!this.firstRender&&!c&&!p&&this.target[0]===this.lastTarget[0]&&this.target[1]===this.lastTarget[1]&&this.target[2]===this.lastTarget[2]&&this.target[3]===this.lastTarget[3]&&this.target[4]===this.lastTarget[4])return;this.hook("useBeforeFrame",l),this.renderer.beforeFrame(this.world,l,this.target,this.hookOptions);let m=this.getScaleFactor(),h=this.renderer.getPointsAt(this.world,this.target,this.aggregate,m),y=h.length;for(let v=0;v<y;v++){let x=h[v][0],A=h[v][1],C=h[v][2],I=C?bi(A,C,this.transformBuffer):A;this.renderer.prepareLayer(x,x.__parent&&C?bi(x.__parent.crop||x.__parent.points,C):I);let E=I.length/5;for(let O=0;O<E;O++){let L=O*5;I[L]!==0&&(this.renderer.paint(x,O,I[L+1],I[L+2],I[L+3]-I[L+1],I[L+4]-I[L+2]),this.hook("useAfterPaint",x))}this.renderer.finishLayer(x,A)}this.renderer.afterFrame(this.world,l,this.target,this.hookOptions),this.hook("useAfterFrame",l),this.lastTarget[0]=this.target[0],this.lastTarget[1]=this.target[1],this.lastTarget[2]=this.target[2],this.lastTarget[3]=this.target[3],this.lastTarget[4]=this.target[4],this.firstRender=!1,this.pendingUpdate=!1,this.logNextRender=!1,this.renderer.isReady()&&(this.ready=!0,this.world.trigger("ready")),this.world.flushSubscriptions();let S=this.world.getScheduledUpdates(this.target,m),w=S.length;if(w>0)for(let v=0;v<w;v++){let x=S[w-v-1]();x?x.then(()=>{this.pendingUpdate=!0}):this.pendingUpdate=!0}}),this.renderer=e,this.world=t,this.options={maxOverZoom:1,maxUnderZoom:1,visibilityRatio:1.5,...r||{}},this.target=xe.projection(i),this.manualHomePosition=!1,this.pendingUpdate=!0,this.homePosition=xe.projection(this.world),this.manualFocalPosition=!1,this.focalPosition=this.target,this.updateFocalPosition(),this.transitionManager=new xP(this),this.aggregate=wi(1),this.world.addLayoutSubscriber(a=>{a==="repaint"&&(this.pendingUpdate=!0),a==="recalculate-world-size"&&(this.manualHomePosition||(this.setHomePosition(),this.goHome()),this.updateFocalPosition())}),this.lastTime=performance.now(),this.controllers=n,this.render(this.lastTime),this.startControllers()}get x(){return this.target[1]}set x(e){this.target[1]=e}get y(){return this.target[2]}set y(e){this.target[2]=e}get x2(){return this.target[3]}set x2(e){this.target[3]=e}get y2(){return this.target[4]}set y2(e){this.target[4]=e}get width(){return this.target[3]-this.target[1]}set width(e){this.target[3]=this.target[1]+e}get height(){return this.target[4]-this.target[2]}set height(e){this.target[4]=this.target[2]=e}setHomePosition(e){this.homePosition.set(xe.projection(e||this.world)),this.pendingUpdate=!0}startControllers(){if(!this.controllersRunning){for(let e of this.controllers)this.controllerStopFunctions.push(e.start(this));this.controllersRunning=!0}}stopControllers(){if(this.controllersRunning){for(let e of this.controllerStopFunctions)e();this.controllersRunning=!1,this.controllerStopFunctions=[]}}updateControllerPosition(){for(let e of this.controllers)e.updatePosition(this.x,this.y,this.width,this.height)}triggerResize(){this.renderer.triggerResize&&this.renderer.triggerResize(),this.pendingUpdate=!0}addController(e){this.controllers.push(e),this.controllersRunning&&e.start(this),this.pendingUpdate=!0}cover(){return this.goHome({cover:!0})}getRendererScreenPosition(){return this.renderer.getRendererScreenPosition()}updateRendererScreenPosition(){this.pendingUpdate=!0,this.renderer.resize()}setOptions(e){this.options={...this.options,...e}}goHome(e={}){if(this.world.width<=0||this.world.height<=0)return;let t=this.getScaleFactor(),i=e.position?{x:e.position[1],y:e.position[2],width:e.position[3]-e.position[1],height:e.position[4]-e.position[2]}:{x:this.homePosition[1],y:this.homePosition[2],width:this.homePosition[3]-this.homePosition[1],height:this.homePosition[4]-this.homePosition[2]},n=this.width*t,r=this.height*t,a=i.width/n,l=i.height/r,c=n/r;if(e.cover?a>l:a<l){let p=c*i.height,m=(p-i.width)/2;this.target[1]=Math.round(-m+i.x),this.target[2]=Math.round(i.y),this.target[3]=Math.round(p-m+i.x),this.target[4]=Math.round(i.height+i.y)}else{let p=i.width/c,m=(p-i.height)/2;this.target[1]=Math.round(i.x),this.target[2]=Math.round(i.y-m),this.target[3]=Math.round(i.x+i.width),this.target[4]=Math.round(i.y+p-m)}this.constrainBounds(this.target),this.updateControllerPosition()}resize(e,t,i,n){this.transitionManager.hasPending()&&this.transitionManager.stopTransition(),this.updateFocalPosition(e-t,i-n);let r=t/e,a=n/i;this.target[3]=this.target[1]+(this.target[3]-this.target[1])*r,this.target[4]=this.target[2]+(this.target[4]-this.target[2])*a,this.goHome({position:this.focalPosition}),this.renderer.resize(t,n),this.pendingUpdate=!0,this.transitionManager.resumeTransition()}updateFocalPosition(e,t){if(!this.manualFocalPosition){let i=this.width,n=this.height,r=Math.min(i,n),a=0,l=0,c=this.x+a,p=this.y+l;if(i<n){let m=this.height-this.width;this.focalPosition=xe.projection({x:c,y:p+m/2,width:r-a*2,height:r-l*2}),this.pendingUpdate=!0}else{let m=this.width-this.height;this.focalPosition=xe.projection({x:c+m/2,y:p,width:r-a*2,height:r-l*2}),this.pendingUpdate=!0}}}getViewport(){return this._viewport.x=this.target[1],this._viewport.y=this.target[2],this._viewport.width=this.target[3]-this.target[1],this._viewport.height=this.target[4]-this.target[2],this._viewport}constrainBounds(e,{panPadding:t=0,ref:i=!1}={}){let{minX:n,maxX:r,minY:a,maxY:l}=this.getBounds({target:e,padding:t}),c=!1,p=i?e:re(e),m=Math.round(e[3]-e[1]),h=Math.round(e[4]-e[2]);return n>e[1]&&(c=!0,p[1]=n,p[3]=n+m),a>e[2]&&(c=!0,p[2]=a,p[4]=a+h),r<e[1]&&(c=!0,p[1]=r,p[3]=r+m),l<e[2]&&(c=!0,p[2]=l,p[4]=l+h),[c,p]}getBounds(e){let t=e.target||this.target,i=e.padding,n=this.options.visibilityRatio,r=Math.abs(1-n);if(this.world.hasActiveZone()){let C=this.world.getActiveZone();if(C){let I=t[3]-t[1]<C.points[3]-C.points[1],E=t[4]-t[2]<C.points[4]-C.points[2];return{minX:I?C.points[1]-i:C.points[1]+(C.points[3]-C.points[1])/2-(t[3]-t[1])/2,maxX:E?C.points[2]-i:C.points[2]+(C.points[4]-C.points[2])/2-(t[4]-t[2])/2,minY:I?C.points[3]+i:C.points[1]+(C.points[3]-C.points[1])/2-(t[3]-t[1])/2,maxY:E?C.points[4]+i:C.points[2]+(C.points[4]-C.points[2])/2-(t[4]-t[2])/2}}}let a=t[3]-t[1],l=this.world.width,c=-a*r,p=l-a-c,m=t[4]-t[2],h=this.world.height,y=-m*r,S=h-m-y,w=Math.round(Math.max(c,p)),v=Math.round(Math.min(c,p)),x=Math.round(Math.max(y,S)),A=Math.round(Math.min(y,S));return{minX:v,maxX:w,minY:A,maxY:x}}getScaleFactor(e=!1){let t=this.renderer.getScale(this.target[3]-this.target[1],this.target[4]-this.target[2],e);return t===0?this._lastGoodScale:(this._lastGoodScale=t,t)}getZoomedPosition(e,{origin:t,fromPos:i}){let n=i?{width:i[3]-i[1],height:i[4]-i[2]}:void 0,r=n?this.renderer.getScale(n.width,n.height):this.getScaleFactor(),a=n?n.width:this.width,l=n?n.height:this.height,c=this.getRendererScreenPosition()?.width,p=this.world.width,m=c?c/p:1,h=this.options.maxUnderZoom,y=Math.max(m||1,this.options.maxOverZoom),S=1/e,w=r*S;if(S<1){let x=a*r,A=l*r,C=this.world.width/x,I=this.world.height/A;if(C>I){let E=this.world.width*w,O=~~(a*r)*h;E<O&&(e=this.world.width*r/(a*r*h))}else{let E=this.world.height*w,O=~~(l*r)*h;E<O&&(e=this.world.height*r/(l*r*h))}}else w>y&&(e=r/y);let v=bi(this.target,On(e,t?t.x:this.target[1]+(this.target[3]-this.target[1])/2,t?t.y:this.target[2]+(this.target[4]-this.target[2])/2),this.zoomBuffer);return this.constrainBounds(v,{ref:!0,panPadding:100}),v}clampRegion({x:e,y:t,width:i,height:n,padding:r=0}){let a=this.width,l=this.height,c=i/a<n/l,p=e-r,m=t-r,h=i+r*2,y=n+r*2;if(c){let w=y/l*a;return{x:p-(w-h)/2,y:m,width:w,height:y}}let S=h/a*l;return{x:p,y:m-(S-y)/2,width:h,height:S}}viewerToWorld(e,t){let i=this.getScaleFactor();return this._viewerToWorld.x=this.target[1]+e/i,this._viewerToWorld.y=this.target[2]+t/i,this._viewerToWorld}worldToViewer(e,t,i,n){let r=xe.singleBox(i,n,e,t);return Zt(r,pi(wi(this.getScaleFactor()),ut(-this.target[1],-this.target[2]))),{x:r[1],y:r[2],width:r[3]-r[1],height:r[4]-r[2],strand:r}}setScale(e,t){Zt(this.target,On(e,t?t.x:this.target[1]+(this.target[3]-this.target[1])/2,t?t.y:this.target[2]+(this.target[4]-this.target[2])/2)),this.pendingUpdate=!0}syncTo(e){let t=this.target;return this.target=e.target,this.pendingUpdate=!0,()=>{this.target=t}}stop(){return typeof this.stopId<"u"&&(window.cancelAnimationFrame(this.stopId),this.stopId=void 0),()=>{this.render(performance.now())}}reset(){this.renderer.reset()}selectZone(e){this.world.selectZone(e),this.pendingUpdate=!0}deselectZone(){this.world.deselectZone(),this.pendingUpdate=!0}hook(e,t){let i=this.hooks[e].length;if(i!==0)for(let n=0;n<i;n++)this.hooks[e][n](t)}registerHook(e,t){return this.hooks[e].push(t),()=>{this.hooks[e]=this.hooks[e].filter(i=>i!==t)}}updateNextFrame(){this.pendingUpdate=!0}},pu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,fu={},SP=["backgroundColor","opacity","boxShadow","borderColor","borderWidth","borderStyle","outlineColor","outlineWidth","outlineOffset","outlineStyle"],jx=class extends bn{constructor(){super(),P(this,"id"),P(this,"type","spacial-content"),P(this,"isShape",!0),P(this,"points"),P(this,"hoverEvents",!1),P(this,"activeEvents",!1),P(this,"display",{x:0,y:0,scale:1,width:-1,height:-1,points:re(5)}),P(this,"boundingBox",null),P(this,"_parsed",{border:{id:null,match:[]},outline:{id:null,match:[]}}),P(this,"hovering"),P(this,"pressing"),P(this,"props",{}),P(this,"shape",{type:"none"}),P(this,"addHover",()=>{this.hovering=!0,this.__revision++}),P(this,"removeHover",()=>{this.hovering=!1,this.pressing=!1,this.__revision++}),P(this,"addPress",()=>{this.pressing=!0,this.__revision++}),P(this,"removePress",()=>{this.pressing=!1,this.__revision++}),this.id=Cu(12),this.points=re(5),this.shape={type:"none"}}updateBoundingBox(){if(this.shape.type==="none")return;let e=this.shape.points;if(this.shape.points.length>2){let t=Math.min(...e.map(a=>a[0])),i=Math.min(...e.map(a=>a[1])),n=Math.max(0,...e.map(a=>a[0])),r=Math.max(0,...e.map(a=>a[1]));this.boundingBox={x:t,y:i,width:n-t,height:r-i};return}this.boundingBox=null}intersects(e){if(!e||this.shape.type==="none")return!1;let[t,i]=e,n=this.shape.points,r=this.boundingBox;if(r||(this.updateBoundingBox(),r=this.boundingBox),!r||t<r.x||t>r.x+r.width||i<r.y||i>r.height+r.y)return!1;let a=!1;for(let l=0,c=n.length-1;l<n.length;c=l++)n[l][1]>i!=n[c][1]>i&&t<(n[c][0]-n[l][0])*(i-n[l][1])/(n[c][1]-n[l][1])+n[l][0]&&(a=!a);return a}getAllPointsAt(e,t){return e[3]-e[1]===1&&e[4]-e[2]===1?this.intersects([e[1],e[2]])?[[this,this.points,t]]:[]:[[this,this.points,t]]}applyProps(e={}){let t=!1;if(e.points)if(this.shape.type!=="polygon"||this.shape.points.length!==e.points.length)this.shape={type:"polygon",points:e.points,open:e.open},this.updateBoundingBox();else{let i=!1,n=e.points.length;for(let r=0;r<n;r++)if(e.points[r][0]!==this.shape.points[r][0]||e.points[r][1]!==this.shape.points[r][1]){i=!0;break}i&&(this.shape={type:"polygon",points:e.points,open:e.open},this.updateBoundingBox())}if(e.interactive!==this.props.interactive&&(t=!0,this.props.interactive=e.interactive),(e.open||e.open===!1)&&(t=!0,this.shape.open=e.open),e.style){let i=e.border||e.style.border;if(i!==this._parsed.border.id)if(!i)this._parsed.border.id=null,this._parsed.border.match=[];else{let n=fu[i]||pu.exec(i)||pu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=fu[i]=n)}if(this._parsed.border.id&&(e.style.borderWidth=this._parsed.border.match[1],e.style.borderStyle="solid",e.style.borderColor=this._parsed.border.match[4]),e.style.outline!==this._parsed.outline.id)if(!e.style.outline)this._parsed.outline.id=null,this._parsed.outline.match=[];else{let n=fu[e.style.outline]||pu.exec(e.style.outline)||pu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=fu[e.style.outline]=n)}this._parsed.outline.id&&(e.style.outlineWidth=this._parsed.outline.match[1],e.style.outlineStyle="solid",e.style.outlineColor=this._parsed.outline.match[4]),this.props.style=e.style,e.backgroundColor&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.backgroundColor,t=!0),e.style.background&&!this.props.style.backgroundColor&&(this.props.style.backgroundColor=e.style.background,t=!0);for(let n of SP)if(this.props.style[n]!==e.style[n]){t=!0;break}e.style[":hover"]!==this.props.hoverStyles&&(this.props.hoverStyles=e.style[":hover"],this.hoverEvents||(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),t=!0),e.style[":active"]!==this.props.pressStyles&&(this.props.pressStyles=e.style[":active"],this.activeEvents||(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0)}e.href!==this.props.href&&(this.props.href=e.href,t=!0),e.hrefTarget!==this.props.hrefTarget&&(this.props.hrefTarget=e.hrefTarget,t=!0),e.title!==this.props.title&&(this.props.title=e.title,t=!0),e.className!==this.props.className&&(this.props.className=e.className,e.className&&!this.hoverEvents&&(this.hoverEvents=!0,this.addEventListener("pointerenter",this.addHover),this.addEventListener("pointerleave",this.removeHover)),e.className&&!this.activeEvents&&(this.activeEvents=!0,this.addEventListener("mousedown",this.addPress),this.addEventListener("mouseup",this.removePress)),t=!0),e.relativeSize!==this.props.relativeSize&&(this.props.relativeSize=e.relativeSize,t=!0),e.relativeStyle!==this.props.relativeStyle&&(this.props.relativeStyle=e.relativeStyle,t=!0),e.html!==this.props.html&&(this.props.html=e.html,t=!0),e.target&&(e.target.width!==this.display.width||e.target.height!==this.display.height||e.target.x!==this.points[1]||e.target.y!==this.points[2])&&(t=!0,this.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.points=xe.singleBox(e.target.width,e.target.height,e.target.x,e.target.y),this.display.width=e.target.width,this.display.height=e.target.height),t&&this.__revision++}},Ix=/(-?[0-9]+(px|em)\s+|0\s+)(-?[0-9]+(px|em)\s+|0\s+)(-?[0-9]+(px|em)\s+|0\s+)?(-?[0-9]+(px|em)\s+|0\s+)?(.*)/g,Tx={},wP=typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes("firefox"),mu={},bP=class{constructor(e,t){P(this,"canvas"),P(this,"ctx"),P(this,"options"),P(this,"imagesPending",0),P(this,"imagesLoaded",0),P(this,"imageIdsLoaded",[]),P(this,"frameIsRendering",!1),P(this,"pendingDrawCall",!1),P(this,"firstMeaningfulPaint",!1),P(this,"parallelTasks",8),P(this,"frameTasks",0),P(this,"loadingQueueOrdered",!0),P(this,"loadingQueue",[]),P(this,"currentTask",Promise.resolve()),P(this,"tasksRunning",0),P(this,"stats"),P(this,"averageJobTime",64),P(this,"lastKnownScale",1),P(this,"visible",[]),P(this,"previousVisible",[]),P(this,"rendererPosition"),P(this,"dpi"),P(this,"drawCalls",[]),P(this,"lastPaintedObject"),P(this,"hostCache"),P(this,"invalidated",[]),P(this,"_worker",()=>{if(this.loadingQueue.length){let i=this.loadingQueue.pop();i&&(this.tasksRunning++,this.frameTasks++,this.currentTask=i.task().then(()=>{this.tasksRunning--}).catch(()=>{this.tasksRunning--}))}}),P(this,"_scheduled",0),P(this,"_doWork",()=>{this.loadingQueue.length===0&&this.tasksRunning===0&&this._scheduled&&(clearInterval(this._scheduled),this._scheduled=0);let i=this.parallelTasks||1;!this.firstMeaningfulPaint&&this.loadingQueue.length&&(i=this.loadingQueue.length);for(let n=0;n<=i;n++)this._worker()}),this.canvas=e,this.rendererPosition=e.getBoundingClientRect(),this.ctx=e.getContext("2d",{alpha:!0}),this.ctx.imageSmoothingEnabled=!0,this.options=t||{},this.canvas.style.transition="opacity .3s",this.dpi=t?.dpi||1,this.hostCache=t?.lruCache?new Fy({maxSize:1024*512*512,dispose:(i,n,r)=>{this.invalidated.push(n),i.width=0,i.height=0},sizeCalculation:(i,n)=>i.width*i.height}):{store:{},get(i){return this.store[i]},set(i,n){this.store[i]=n}}}getCanvasDims(){return{width:this.canvas.width/this.dpi,height:this.canvas.height/this.dpi}}resize(){this.rendererPosition=this.canvas.getBoundingClientRect()}isReady(){return this.firstMeaningfulPaint}afterFrame(e){if(this.clearTransform(),this.lastPaintedObject=void 0,this.frameIsRendering=!1,this.imagesPending=Math.max(0,this.imagesPending-this.imagesLoaded),this.imagesLoaded=0,this.loadingQueueOrdered||(this.loadingQueue=this.loadingQueue.sort((t,i)=>t.network&&t.scale===i.scale?i.distance-t.distance:t.scale<i.scale?-1:1),this.loadingQueueOrdered=!0),this.previousVisible=this.visible,this.pendingDrawCall=!!this.drawCalls.length,this.pendingDrawCall)for(let t=0;t<this.drawCalls.length;t++){let i=this.drawCalls.shift();i&&i()}this.doOffscreenWork(),this.options.debug&&this.stats&&this.stats.end()}doOffscreenWork(){this.frameTasks=0,this.loadingQueue.length&&(this._worker(),this.loadingQueue.length&&(this._scheduled||(this._scheduled=setInterval(this._doWork,0))))}getScale(e,t,i){if(Number.isNaN(e)||Number.isNaN(t))return this.lastKnownScale;let n=this.getCanvasDims(),r=n.width/e,a=n.height/t,l=(r<a?a:r)*(i&&this.dpi||1);return Number.isNaN(l)||(this.lastKnownScale=l),this.lastKnownScale}beforeFrame(e,t,i,n){this.options.debug&&this.stats&&this.stats.begin(),this.frameIsRendering=!0,this.visible=[],this.options.beforeFrame&&this.options.beforeFrame(t);let r=this.getCanvasDims();if(this.ctx.globalAlpha=1,this.ctx.fillStyle=this.canvas.dataset.background??"rgb(0, 0, 0)",this.ctx.fillRect(0,0,r.width,r.height),n.enableFilters&&(n.filters.brightness||n.filters.contrast||n.filters.grayscale||n.filters.invert||n.filters.sepia||n.filters.saturate||n.filters.hueRotate||n.filters.blur)){let a="";n.filters.brightness&&(a+=`brightness(${~~(100+n.filters.brightness*100)}%) `),n.filters.contrast&&(a+=`contrast(${~~(100+n.filters.contrast*100)}%) `),n.filters.grayscale&&(a+=`grayscale(${~~(n.filters.grayscale*100)}%) `),n.filters.invert&&(a+=`invert(${~~(n.filters.invert*100)}%) `),n.filters.sepia&&(a+=`sepia(${~~(n.filters.sepia*100)}%) `),n.filters.saturate&&(a+=`saturate(${~~(100+n.filters.saturate*100)}%) `),n.filters.hueRotate&&(a+=`hue-rotate(${n.filters.hueRotate}deg) `),n.filters.blur&&(a+=`blur(${n.filters.blur}px) `),this.ctx.filter=a}else this.ctx.filter="none"}applyTransform(e,t,i,n,r){let a=e.__owner.value;if(a&&a.rotation){this.ctx.save();let l=t+n/2,c=i+r/2;this.ctx.translate(l,c),this.ctx.rotate(a.rotation*Math.PI/180),this.ctx.translate(-l,-c),this.lastPaintedObject=a}}clearTransform(){this.lastPaintedObject&&(this.lastPaintedObject.rotation&&this.ctx.restore(),this.lastPaintedObject=void 0)}paint(e,t,i,n,r,a){let l=this.ctx.globalAlpha;if(e instanceof cr||e instanceof Ks){if(e.display.rotation){this.ctx.save();let m=i+r/2,h=n+a/2;e.crop&&(m-=e.crop[t*5+1],h-=e.crop[t*5+2]),this.ctx.translate(m,h),this.ctx.rotate(e.display.rotation*Math.PI/180),this.ctx.translate(-m,-h)}if(this.visible.push(e),typeof e.style&&e.style.opacity!=="undefined"){if(!e.style.opacity)return;this.ctx.globalAlpha=e.style.opacity}try{let m=e.__host.canvas,h=this.getCanvasDims();if((m.indices.indexOf(t)===-1||this.invalidated.indexOf(m.canvases[t])!==-1)&&this.schedulePaintToCanvas(m,e,t,vu({x:i+r/2,y:n+r/2},{x:h.width/2,y:h.height/2})),!this.firstMeaningfulPaint)return;let y=this.hostCache.get(m.canvases[t]);if(y)if(e.crop&&e.cropData){if(e.crop[t*5]){let S=[e.crop[t*5+1]/e.display.scale-e.display.points[t*5+1],e.crop[t*5+2]/e.display.scale-e.display.points[t*5+2],1+(e.crop[t*5+3]-e.crop[t*5+1])/e.display.scale,1+(e.crop[t*5+4]-e.crop[t*5+2])/e.display.scale];S[0]+=e.cropData.x/e.display.scale,S[1]+=e.cropData.y/e.display.scale;let w=e.x*this.lastKnownScale,v=e.y*this.lastKnownScale,x=[i+w,n+v,r,a];x[0]+=w,x[1]+=v,this.ctx.drawImage(y,S[0],S[1],S[2],S[3],x[0],x[1],x[2]+1,x[3]+1)}}else wP?this.ctx.drawImage(y,0,0,e.display.points[t*5+3]-e.display.points[t*5+1],e.display.points[t*5+4]-e.display.points[t*5+2],i,n,r+1,a+1):this.ctx.drawImage(y,0,0,e.display.points[t*5+3]-e.display.points[t*5+1],e.display.points[t*5+4]-e.display.points[t*5+2],i,n,r+Number.MIN_VALUE+.5,a+Number.MIN_VALUE+.5)}catch{}e.display.rotation&&this.ctx.restore()}let c=e instanceof $s&&this.options.box,p=e instanceof jx&&this.options.polygon;if((c||p)&&!e.props.className&&!e.props.html&&!e.props.href){if(this.visible.push(e),e.props.style){let m=Object.assign({},e.props.style||{},e.hovering?e.props.hoverStyles:{},e.pressing?e.props.pressStyles:{}),h=e.props.relativeStyle?1:r/e.width;typeof m.opacity<"u"&&(this.ctx.globalAlpha=m.opacity);let y=0;typeof m.borderWidth<"u"&&(y=parseInt(m.borderWidth,10)*h);let S=0;typeof m.outlineWidth<"u"&&(S=parseInt(m.outlineWidth,10)*h);let w=0;if(typeof m.outlineOffset<"u"&&(w=parseInt(m.outlineOffset,10)*h),m.borderColor&&(this.ctx.strokeStyle=m.borderColor),m.boxShadow){let v=m.boxShadow.split(/,(?![^(]*\))/);for(let x of v){let A=Tx[x]||Ix.exec(x)||Ix.exec(x);Tx[x]=A,A&&(this.ctx.save(),this.ctx.shadowOffsetX=parseInt(A[1])*this.dpi*h,this.ctx.shadowOffsetY=parseInt(A[3])*this.dpi*h,this.ctx.shadowBlur=parseInt(A[5])*this.dpi*h,this.ctx.shadowColor=A[9],this.ctx.fillStyle="rgba(0,0,0,1)",this.ctx.fillRect(i+y,n+y,r,a),this.ctx.restore())}}if(this.ctx.fillStyle=m.backgroundColor||"transparent",this.ctx.lineWidth=y,p){let v=e.shape,x=v.points||[],A=x.length;this.ctx.beginPath();for(let C=0;C<A;C++)this.ctx.lineTo(i+x[C][0]*this.lastKnownScale,n+x[C][1]*this.lastKnownScale);v.open||this.ctx.closePath(),y&&this.ctx.stroke(),v.open||this.ctx.fill()}else y&&this.ctx.strokeRect(i+y/2,n+y/2,r+y,a+y),this.ctx.fillRect(i+y,n+y,r,a);S&&(m.outlineColor&&(this.ctx.strokeStyle=m.outlineColor),this.ctx.lineWidth=S,this.ctx.strokeRect(i-S/2-w,n-S/2-w,r+y*2+S+w*2,a+y*2+S+w*2))}this.ctx.globalAlpha=l}}loadImage(e,t,i,n=!1){if(mu[e]&&mu[e].naturalWidth>0){t(mu[e]);return}try{let r=!1;n||setTimeout(()=>{r||this.loadImage(e,t,i,!0)},3e3);let a=document.createElement("img");a.decoding="auto",a.onload=function(){r=!0,t(a),mu[e]=a,a.onload=null},this.options.crossOrigin&&(a.crossOrigin="anonymous"),a.src=e,a.complete&&a.onload({}),a.width}catch(r){console.log("image error",r),i(r)}}schedulePaintToCanvas(e,t,i,n){this.imagesPending++,e.indices.push(i);let r=`${t.id}--${t.display.scale}-${i}`,a=this.invalidated.indexOf(r);a!==-1&&this.invalidated.splice(a,1),e.canvases[i]=r,t.__host.canvas.loading=!0,this.loadingQueueOrdered=!1,this.loadingQueue.push({id:r,scale:t.display.scale,network:!0,distance:n,task:()=>new Promise(l=>{if(this.visible.indexOf(t)===-1){this.imagesPending--,e.indices.splice(e.indices.indexOf(i),1),l();return}let c=t.getImageUrl(i);this.loadImage(c,p=>{this.loadingQueue.push({id:r,scale:t.display.scale,distance:n,task:()=>new Promise(m=>{this.imageIdsLoaded.includes(r)||(this.imagesLoaded++,this.imageIdsLoaded.push(r)),e.loaded.push(i),e.loaded.length===e.indices.length&&(e.loading=!1);let h=t.display.points.slice(i*5,i*5+5),y=document.createElement("canvas"),S=y.getContext("2d");y.width=h[3]-h[1],y.height=h[4]-h[2],this.hostCache.set(e.canvases[i],y),this.drawCalls.push(()=>{S.drawImage(p,0,0,h[3]-h[1],h[4]-h[2]),m()})})}),l()},p=>{this.imagesPending--,e.indices.splice(e.indices.indexOf(i),1),l()})})})}afterPaintLayer(e,t){}prepareLayer(e,t){if(e.__owner.value)if(e.cropData){let i=this.lastKnownScale*(1/e.display.scale);this.applyTransform(e,t[1],t[2],t[3]-t[1],t[4]-t[2])}else this.applyTransform(e,t[1],t[2],t[3]-t[1],t[4]-t[2]);(!e.__host||!e.__host.canvas)&&(e instanceof cr||e instanceof Ks)&&this.createImageHost(e)}finishLayer(){this.lastPaintedObject&&this.clearTransform()}createImageHost(e){e.__host=e.__host?e.__host:{},e.__host.canvas={canvas:void 0,canvases:[],indices:[],loaded:[],loading:!1}}getPointsAt(e,t,i,n){return e.getPointsAt(t,i,n)}getViewportBounds(e,t,i){let n=e.getActiveZone();if(n){let r=t[3]-t[1]<n.points[3]-n.points[1],a=t[4]-t[2]<n.points[4]-n.points[2];return{x1:r?n.points[1]-i:n.points[1]+(n.points[3]-n.points[1])/2-(t[3]-t[1])/2,y1:a?n.points[2]-i:n.points[2]+(n.points[4]-n.points[2])/2-(t[4]-t[2])/2,x2:r?n.points[3]+i:n.points[1]+(n.points[3]-n.points[1])/2-(t[3]-t[1])/2,y2:a?n.points[4]+i:n.points[2]+(n.points[4]-n.points[2])/2-(t[4]-t[2])/2}}return null}pendingUpdate(){let e=!this.pendingDrawCall&&this.drawCalls.length===0&&this.imagesPending===0&&this.loadingQueue.length===0&&this.tasksRunning===0;return!e&&this.visible.length===0&&setTimeout(()=>{this.canvas.style.opacity="1",this.firstMeaningfulPaint=!0},500),!this.firstMeaningfulPaint&&e&&this.visible.length?(this.canvas.style.opacity="1",this.firstMeaningfulPaint=e,!0):this.options.debug?!0:!e}getRendererScreenPosition(){return this.rendererPosition}reset(){this.loadingQueue=[],this.drawCalls=[]}},Vx=class{constructor(e){P(this,"renderers",[]),P(this,"length");for(let t of e)t&&this.renderers.push(t);this.length=this.renderers.length}afterFrame(e,t,i,n){for(let r=0;r<this.length;r++)this.renderers[r].afterFrame(e,t,i,n)}afterPaintLayer(e,t){for(let i=0;i<this.length;i++)this.renderers[i].afterPaintLayer(e,t)}beforeFrame(e,t,i,n){for(let r=0;r<this.length;r++)this.renderers[r].beforeFrame(e,t,i,n)}triggerResize(){for(let e=0;e<this.length;e++){let t=this.renderers[e];t.triggerResize&&t.triggerResize()}}getPointsAt(e,t,i,n){return this.renderers[0].getPointsAt(e,t,i,n)}getScale(e,t){return this.renderers[0].getScale(e,t)}getViewportBounds(e,t,i){return this.renderers[0].getViewportBounds(e,t,i)}getRendererScreenPosition(){return this.renderers[0].getRendererScreenPosition()}isReady(){for(let e=0;e<this.length;e++)if(!this.renderers[e].isReady())return!1;return!0}paint(e,t,i,n,r,a){for(let l=0;l<this.length;l++)this.renderers[l].paint(e,t,i,n,r,a)}pendingUpdate(){for(let e=0;e<this.length;e++)if(this.renderers[e].pendingUpdate())return!0;return!1}prepareLayer(e,t){for(let i=0;i<this.length;i++)this.renderers[i].prepareLayer(e,t)}finishLayer(e,t){for(let i=0;i<this.length;i++)this.renderers[i].finishLayer(e,t)}resize(e,t){for(let i=0;i<this.length;i++)this.renderers[i].resize(e,t)}reset(){for(let e=0;e<this.length;e++)this.renderers[e].reset()}},CP=class{constructor(e){P(this,"canvas"),P(this,"context"),P(this,"heightRatio",1),P(this,"widthRatio",1),P(this,"target",new Float32Array(5)),P(this,"initialWidth"),P(this,"initialHeight"),P(this,"bounds"),P(this,"aggregate"),P(this,"delta",0),P(this,"renderNextFrame",!0),this.canvas=e,this.initialWidth=e.width,this.initialHeight=e.height,this.context=e.getContext("2d"),this.context.globalAlpha=.5,this.aggregate=wi(1)}isReady(){return!0}resize(){this.initialWidth=this.canvas.width,this.initialHeight=this.canvas.height,this.renderNextFrame=!0}afterFrame(e,t,i){if(this.renderNextFrame){this.context.clearRect(0,0,this.canvas.width,this.canvas.height);let n=this.initialWidth/e.width,r=this.initialHeight/e.height,a=this.widthRatio>this.heightRatio?n:r;if(this.target=i,this.bounds){let l=e.getPointsAt(this.bounds,this.aggregate,a);for(let[c,p]of l)if(c instanceof cr&&c.__host.canvas){let m=p.length/5;for(let h=0;h<m;h++)if(c.__host.canvas.canvases[h]){let y={x1:p[h+1]*a,y1:p[h+2]*a,width:(p[h+3]-p[h+1])*a,height:(p[h+4]-p[h+2])*a}}}}e.getPoints().forEach((l,c,p)=>{if(c%5===0&&l){let m={x1:p[c+1]*a,y1:p[c+2]*a,x2:p[c+3]*a,y2:p[c+4]*a,width:(p[c+3]-p[c+1])*a,height:(p[c+4]-p[c+2])*a};this.context.strokeStyle="red",this.context.strokeRect(m.x1,m.y1,m.width,m.height)}}),i&&(this.context.strokeStyle="red",this.context.lineWidth=window.devicePixelRatio||1,this.context.strokeRect(i[1]*a,i[2]*a,(i[3]-i[1])*a,(i[4]-i[2])*a))}}getActiveZone(e){return null}getPointsAt(e,t,i,n){return e.getPointsAt(t,i,n)}getScale(e,t){return 1}beforeFrame(e,t){this.bounds=xe.singleBox(e.width,e.height)}drawImage(){}afterPaintLayer(e,t){}paint(e,t,i,n,r,a){this.renderNextFrame=!0}prepareLayer(e){}pendingUpdate(){return!1}hasActiveZone(){return!1}getViewportBounds(e,t,i){return null}getRendererScreenPosition(){return this.canvas.getBoundingClientRect()}finishLayer(){}reset(){}};function PP(e){return{x:e[1],y:e[2],width:e[3]-e[1],height:e[4]-e[2]}}var Rx="pan",_x="scroll",EP="gesture",AP={zoomOutFactor:.8,zoomInFactor:1.25,maxZoomFactor:1,minZoomFactor:.05,zoomDuration:300,zoomWheelConstant:20,zoomClamp:.6,panBounceStiffness:120,panBounceDamping:15,panTimeConstant:240,panPower:.1,nudgeDistance:100,panPadding:0,devicePixelRatio:1,enableWheel:!0,enableClickToZoom:!0,ignoreSingleFingerTouch:!1,enablePanOnWait:!1,requireMetaKeyForWheelZoom:!1,panOnWaitDelay:40,onPanInSketchMode:()=>{},parentElement:null},Wx=(e={})=>({start:function(t){let{zoomWheelConstant:i,enableWheel:n,enableClickToZoom:r,ignoreSingleFingerTouch:a,enablePanOnWait:l,panOnWaitDelay:c,parentElement:p,requireMetaKeyForWheelZoom:m}={...AP,...e},h={pointerStart:{x:0,y:0},isPressing:!1,mousemoveBuffer:re(5),multiTouch:{distance:0}};t.world.activatedEvents.push("onMouseUp","onMouseDown","onMouseMove","onTouchStart","onTouchEnd","onTouchMove");function y(){x=0,C="",E(),E(void 0,"notice"),A=0}function S(){t.world.constraintBounds(),y()}function w(U){if(U.which>1){h.isPressing=!1;return}t.mode==="explore"&&(U.preventDefault(),h.pointerStart.x=U.atlas.x,h.pointerStart.y=U.atlas.y,t.transitionManager.stopTransition(),h.isPressing=!0)}function v(){y(),h.isPressing&&(t.mode==="explore"&&t.world.constraintBounds(),h.isPressing=!1)}let x=0,A=0,C="";function I(U){if(t.mode==="explore"){if(U.atlasTouches.length===1&&(A=performance.now(),a==!1&&U.preventDefault(),h.pointerStart.x=U.atlasTouches[0].x,h.pointerStart.y=U.atlasTouches[0].y),U.atlasTouches.length===2){C=EP,U.preventDefault();let q=U.atlasTouches[0].x,ee=U.atlasTouches[1].x;h.pointerStart.x=(q+ee)/2;let Me=U.atlasTouches[0].y,pe=U.atlasTouches[1].y;h.pointerStart.y=(Me+pe)/2,x=vu({x:U.touches[0].clientX,y:U.touches[0].clientY},{x:U.touches[1].clientX,y:U.touches[1].clientY})}t.transitionManager.stopTransition(),h.isPressing=!0}}function E(U,q="intent"){p&&(p.dataset[q]=U)}function O(U){let q=null,ee=null,Me=!1,pe=0;if(h.isPressing&&U.touches.length===2){let Te=U.touches[0].clientX,ke=U.touches[1].clientX;q=(Te+ke)/2;let He=U.touches[0].clientY,qe=U.touches[1].clientY;ee=(He+qe)/2,pe=vu({x:U.touches[0].clientX,y:U.touches[0].clientY},{x:U.touches[1].clientX,y:U.touches[1].clientY}),Me=!0}if(E(C),h.isPressing&&U.touches.length===1){if(l&&(performance.now()-A<c&&C==""&&(C=_x),C==""&&(C=Rx)),E(C),C==""&&a==!0||C==_x){E("require-two-finger","notice");return}let Te=U.touches[0];q=Te.clientX,ee=Te.clientY}if(q!==null&&ee!==null){let Te=t.getRendererScreenPosition();if(Te){let{x:ke,y:He}=t.viewerToWorld(q-Te.x,ee-Te.y),qe=pe&&x?pe/x:1;t.transitionManager.customTransition($=>{$.from=re(t.target),$.to=bi($.from,pi(ut(h.pointerStart.x-ke,h.pointerStart.y-He),On(1/qe,ke,He)),h.mousemoveBuffer),$.elapsed_time=0,$.total_time=0,$.timingFunction=ur.easeInOutExpo,$.done=!1})}x=pe}C==Rx&&U.preventDefault()}function L(U){if(h.isPressing){let q=t.getRendererScreenPosition();if(q){let{x:ee,y:Me}=t.viewerToWorld(U.clientX-q.x,U.clientY-q.y);t.transitionManager.customTransition(pe=>{pe.from=re(t.target),pe.to=bi(pe.from,ut(h.pointerStart.x-ee,h.pointerStart.y-Me),h.mousemoveBuffer),pe.elapsed_time=0,pe.total_time=0,pe.timingFunction=ur.easeInOutExpo,pe.done=!1})}}}function M(U){t.mode==="explore"&&t.world.zoomIn(U.atlas)}function Q(U){let q=1+(0,Ux.default)(U).spinY/i;t.world.zoomTo(q,U.atlas,!0)}function V(U){return m&&U.metaKey==!1?(E("meta-required","notice"),U.stopPropagation(),!1):!0}t.world.addEventListener("mouseup",S),t.world.addEventListener("touchend",S),t.world.addEventListener("touchstart",I),t.world.addEventListener("mousedown",w),window.addEventListener("touchend",v),window.addEventListener("mouseup",v),window.addEventListener("mousemove",L),p&&p.addEventListener("touchmove",O),r&&(t.world.activatedEvents.push("onClick"),t.world.addEventListener("click",M)),n&&(t.world.activatedEvents.push("onWheel"),m&&p?.addEventListener("wheel",V,{passive:!0,capture:!0}),t.world.addEventListener("wheel",Q));let J=t.world.addLayoutSubscriber((U,q)=>{if(U==="zone-changed"&&t.transitionManager.constrainBounds({transition:{duration:0}}),U==="zoom-to"&&q&&t.transitionManager.zoomTo(q.factor,{origin:q.point,stream:q.stream}),U==="go-home"){let ee=q.immediate?{duration:0}:void 0;t.transitionManager.goToRegion(PP(t.homePosition),{transition:ee})}if(U==="goto-region"&&q){let ee=q.immediate?{duration:0}:{};t.transitionManager.goToRegion(q,{transition:ee})}U==="constrain-bounds"&&t.transitionManager.constrainBounds({transition:q?.immediate?{duration:0}:void 0})});return()=>{t.world.removeEventListener("mouseup",S),t.world.removeEventListener("touchend",S),t.world.removeEventListener("touchstart",I),t.world.removeEventListener("mousedown",w),window.removeEventListener("touchend",v),window.removeEventListener("mouseup",v),t.world.removeEventListener("mousemove",L),p&&(p.removeEventListener("touchmove",L),p.removeEventListener("wheel",V,{passive:!0,capture:!0})),r&&t.world.removeEventListener("click",M),n&&t.world.removeEventListener("wheel",Q),J()}},updatePosition(){}}),No=Au.default.createContext("explore");No.displayName="Mode";var TP=()=>(0,Au.useContext)(No);var Iu=Op.default.createContext(null);Iu.displayName="Atlas";var Tu=Op.default.createContext(null);Tu.displayName="Bounds";var Su,RP=typeof performance=="object"&&typeof performance.now=="function";if(RP){let e=performance;Su=()=>e.now()}else{let e=Date,t=e.now();Su=()=>e.now()-t}var _P=16;function Mx(e,t){e&&e.appendChild&&t&&e.appendChild(t)}function Qx(e,t){e&&e.removeChild&&t&&e.removeChild(t)}function MP(e,t){return Qx(e.world,t)}function kP(e,t,i){return $x(e.world,t,i)}function $x(e,t,i){e&&e instanceof Eu&&(e=e.world),e&&e.insertBefore&&e.insertBefore(t,i)}function Gx(e,t,i){if(i&&(e.applyProps&&e.applyProps(i),e instanceof bn))for(let n of bu){let r=n.slice(2).toLowerCase();i[n]!==t[n]&&(t[n]&&e.removeEventListener(r,t[n]),e.addEventListener(r,i[n]))}}function Yx(e,t){let i=Object.keys(t),n=!1;for(let r of i)if(bu.indexOf(r)!==-1){let a=Fo[r];if(a){if(e.activatedEvents.indexOf(a)!==-1)continue;n=!0,e.activatedEvents.push(a)}}n&&e.triggerEventActivation()}var wu=new Map,kx={};function OP(e,{args:t=[],...i},n,r,a){if(!(n instanceof Eu)&&a){let p=m=>m.return?p(m.return):m.stateNode&&m.stateNode.containerInfo;n=p(a)}let l,c=n.world;switch(e){case"world":l=Pu.withProps({width:i.width,height:i.height,viewingDirection:"left-to-right"}),l.activatedEvents=c.activatedEvents,l.eventHandlers=c.eventHandlers,l.subscriptions=c.subscriptions,l.triggerEventActivation(),c=l;break;case"box":l=new $s;break;case"shape":l=new jx;break;case"worldObject":case"world-object":l=new kp;break;case"worldImage":case"world-image":l=new cr;break;case"texture":l=new Ap;break;case"compositeImage":case"composite-image":l=new yP({id:i.id,width:i.width,height:i.height,images:[],renderOptions:i.renderOptions});break;case"tiledImage":case"tiled-image":l=Ks.fromTile(i.uri,i.display,i.tile,i.scaleFactor,void 0,i.format);break;case"paragraph":l=new gu,l.text=i.children;break;default:return}return Yx(c,i),Gx(l,{},i),l}function LP(e,t){if(t instanceof Pu)e.world=t;else if(t instanceof kp)e.world.appendChild(t);else if(t)throw new Error("Invalid root")}var Ys=(0,Hx.default)({unstable_now:Su,now:Su,createInstance:OP,removeChild:Qx,appendChild:Mx,appendInitialChild:Mx,insertBefore:$x,warnsIfNotActing:!0,supportsMutation:!0,isPrimaryRenderer:!1,scheduleTimeout:typeof setTimeout<"u"?setTimeout:void 0,cancelTimeout:typeof clearTimeout<"u"?clearTimeout:void 0,setTimeout:typeof setTimeout<"u"?setTimeout:void 0,clearTimeout:typeof clearTimeout<"u"?clearTimeout:void 0,noTimeout:-1,appendChildToContainer:LP,removeChildFromContainer:MP,createTextInstance(){},insertInContainerBefore:kP,prepareUpdate(e,t,i,n,r){return Yx(r.world,n),n},commitUpdate(e,t,i,n,r,a){e.applyProps&&t&&Gx(e,n,t)},finalizeInitialChildren(e){return e?.__handlers},getChildHostContext(){return kx},getRootHostContext(){return kx},prepareForCommit(e){return e.isCommitting=!0,null},preparePortalMount(){},hideInstance(e){e&&e.points&&(e.points[0]=0)},unhideInstance(e,t){e&&e.points&&(e.points[0]=1)},getPublicInstance(e){return e},hideTextInstance(){throw new Error("Text is not allowed in the react-three-fibre tree. You may have extraneous whitespace between components.")},resetAfterCommit(e){e.isCommitting=!1,e.pendingUpdate=!0,e.world&&e.world.needsRecalculate&&(e.world.recalculateWorldSize(),e.world.triggerRepaint())},shouldSetTextContent(){return!1},clearContainer(){return!1},supportsHydration:!1,supportsPersistence:!1,detachDeletedInstance(e){},afterActiveInstanceBlur(){},beforeActiveInstanceBlur(){},getCurrentEventPriority(){return console.log("getCurrentEventPriority"),_P},getInstanceFromNode(e){throw console.log("getInstanceFromNode",e),new Error("Not implemented")},getInstanceFromScope(e){throw console.log("getInstanceFromScope",e),new Error("Not implemented")},prepareScopeUpdate(e,t){throw console.log("prepareScopeUpdate",e,t),new Error("Not implemented")},logRecoverableError(){},requestPostPaintCallback(){}});Ys.injectIntoDevTools({bundleType:0,version:qx.version,rendererPackageName:"@atlas-viewer/atlas"});function Lp(e,t){let i=wu.get(e);i&&Ys.updateContainer(null,i,null,()=>{wu.delete(e),t&&t(e)})}var Ox={render(e,t){let i=wu.get(t);if(i)Ys.updateContainer(e,i,null);else{let n=Ys.createContainer(t,0,null,!1,null,"",()=>{},null);Ys.updateContainer(e,n,null),wu.set(t,n)}},unmountComponentAtNode(e,t){Lp(e,t)}},Xs=typeof window<"u"&&(window.document?.createElement||window.navigator?.product==="ReactNative")?Ru.useLayoutEffect:Ru.useEffect,zP=wn.default.memo(({children:e,setIsReady:t,onCreated:i,bounds:n,preset:r,mode:a="explore"})=>{let l=(0,wn.useCallback)(function(c){let p=(0,wn.useRef)(!1),m=()=>{t(!0)};return(0,wn.useEffect)(()=>{if(r&&!p.current){r.runtime.goHome();let h=i&&i(r);return void(h&&h.then?h.then(m):m())}return()=>{}},[]),(0,wn.useEffect)(()=>{p.current=!0},[]),c.children},[r]);return Xs(()=>{if(r){let c=r.runtime;a!==c.mode&&(c.mode=a),Ox.render((0,zo.jsx)(wn.default.StrictMode,{children:(0,zo.jsx)(l,{children:(0,zo.jsx)(Tu.Provider,{value:n,children:(0,zo.jsx)(No.Provider,{value:a,children:(0,zo.jsx)(Iu.Provider,{value:r,children:e})})})})}),c)}},[r,a,e]),Xs(()=>{if(r){let c=r.runtime;return()=>{Ox.unmountComponentAtNode(c)}}return()=>{}},[r]),null}),FP=class{constructor(e,t){P(this,"canvas"),P(this,"gl"),P(this,"program"),P(this,"fragmentShader"),P(this,"vertexShader"),P(this,"rectBuffer"),P(this,"fragmentShaderSource",`
12
12
  precision mediump float;
13
13
 
14
14
  uniform sampler2D u_image;
@@ -69,7 +69,7 @@ No matching component was found for:
69
69
  width: var(--atlas-container-width, ${p?`${p}px`:"100%"});
70
70
  height: var(--atlas-container-height, ${HP(c||(t?h.height:512))})
71
71
  }
72
- `}),n.htmlChildren]})},Mu=()=>(0,o0.useContext)(Iu),ku=()=>{let e=Mu();return e?e.runtime:void 0};var a0=(e,t=[])=>{let i=ku();(0,s0.useEffect)(()=>i?i.registerHook("useFrame",e):()=>{},t)},Ou=()=>{let e=Mu();return e&&e.canvas?e.canvas:void 0};function QP(){return(0,l0.useContext)(Tu)}async function $P(e,t,i){if(u0.version.startsWith("18.")){let n=await Promise.resolve().then(()=>T(bx(),1)),r=n.default?n.default.createRoot:n.createRoot;i.current||(i.current=r(e)),i.current.render(t)}else if(typeof ReactDOM<"u"){let{render:n,unmountComponentAtNode:r}=ReactDOM;n(t,e),i.current={unmount(){r(e)}}}else{let n=await Promise.resolve().then(()=>T(Hs(),1)),r=n.default?n.default.render:n.render,a=n.default?n.default.unmountComponentAtNode:n.unmountComponentAtNode;r(t,e),i.current={unmount(){a(e)}}}}var Cn=Sn.default.forwardRef(({children:e,...t},i)=>{let n=(0,Sn.useRef)(),r=ku(),a=(0,Sn.useRef)(0),l=(0,Sn.useRef)(),c=(0,Sn.useRef)();return a0(()=>{if(t.relative){let p=n.current;if(p&&r){let m=r.getScaleFactor();a.current!==m&&(a.current=m,p.style.transformOrigin="0 0",p.style.transform=`scale(${1/a.current})`,p.style.width=`${a.current*100}%`,p.style.height=`${a.current*100}%`,n.current&&l.current?.__owner.value?.rotation&&(p.style.transform=`scale(${1/a.current}) translate(50%, 50%) rotate(${l.current?.__owner.value?.rotation||0}deg) translate(-50%, -50%)`))}}},[t.relative]),(0,Sn.useLayoutEffect)(()=>{let p=l.current;i&&p&&(typeof i=="function"?i(p):i.current=p);async function m(){if(p&&p.__host){let h=t.relative?(0,Rp.jsx)("div",{ref:n,children:e}):e;await $P(p.__host.element,h,c)}}p&&p.__host?m():p&&(p.__onCreate=m)},[i,e,l,t.relative]),(0,Sn.useLayoutEffect)(()=>()=>{c.current&&setTimeout(()=>{c.current.unmount()},0)},[]),(0,Rp.jsx)("box",{html:!0,...t,ref:l})});Cn.displayName="HTMLPortal";var zx=(e,t,i=[])=>{let n=ku(),r=n?n.world:void 0;(0,d0.useEffect)(()=>{if(n){let a=t,l=Fo[e];n.world.activatedEvents.push(l);let c=l.slice(2).toLowerCase();return n.world.addEventListener(c,a),()=>{n.world.removeEventListener(c,a)}}return()=>{}},[r,e,...i])};function Fx(e,t){if(e===0)return[0,1];if(t===0)return[1,0];let i=Math.abs(e)/Math.abs(t);return[i,1-i]}function GP(){let e=(0,Lu.useRef)({ctrl:!1,shift:!1,alt:!1});return(0,Lu.useLayoutEffect)(()=>{function t(n){n.key==="Shift"&&(e.current.shift=!0),n.key==="Control"&&(e.current.ctrl=!0),n.key==="Alt"&&(e.current.alt=!0)}function i(n){n.key==="Shift"&&(e.current.shift=!1),n.key==="Control"&&(e.current.ctrl=!1),n.key==="Alt"&&(e.current.alt=!1)}return window.addEventListener("keydown",t),window.addEventListener("keyup",i),()=>{window.removeEventListener("keydown",t),window.removeEventListener("keyup",i)}},[]),e}var YP=(e,t)=>{let i=TP(),n=ku(),r=QP(),a=(0,_t.useRef)(),l=(0,_t.useRef)(null),c=(0,_t.useRef)(),[p,m]=(0,_t.useState)(!1),h=(0,_t.useRef)(!1),y=(0,_t.useRef)({north:0,south:0,east:0,west:0}),S=GP(),w=(0,_t.useCallback)(I=>E=>{if(h.current=!0,m(!0),r&&n){let{top:O,left:L}=r,M=n.viewerToWorld(E.pageX-L,E.pageY-O);c.current={x:M.x,y:M.y},a.current=I}},[r,n]),v=(0,_t.useMemo)(()=>e.width/e.height,[e.width,e.height]),x=(0,_t.useCallback)(I=>{if(!Math.abs(I.north-I.south+(I.east-I.west)))return;let E=-I.west+I.east,O=-I.north+I.south,L=e.width+E,M=e.height+O;if(L/M>=v){let Q=M*v,V=L-Q,[J,U]=Fx(I.east,I.west);I.west=I.west+V*U,I.east=I.east-V*J}else{let Q=L/v,V=M-Q,[J,U]=Fx(I.north,I.south);I.north=I.north+V*J,I.south=I.south-V*U}},[e.width,e.height,v]);a0(()=>{c&&n&&n.updateNextFrame()}),(0,_t.useEffect)(()=>{n&&n.updateNextFrame()},[n,p]);let A=(0,_t.useCallback)(I=>{if(!n||!r||n.mode!=="sketch")return;let{top:E,left:O}=r,L=n.viewerToWorld(I.pageX-O,I.pageY-E),M=l.current,Q=!e.maintainAspectRatio&&S.current.alt,V=!Q&&S.current.shift&&a.current?.indexOf("-")!==-1;if((a.current==="translate"||a.current==="east"||a.current==="north-east"||a.current==="south-east")&&(y.current.east=L.x-(c.current?c.current.x:0),Q&&(y.current.west=-y.current.east)),(a.current==="translate"||a.current==="west"||a.current==="north-west"||a.current==="south-west")&&(y.current.west=L.x-(c.current?c.current.x:0),Q&&(y.current.east=-y.current.west)),(a.current==="translate"||a.current==="north"||a.current==="north-east"||a.current==="north-west")&&(y.current.north=L.y-(c.current?c.current.y:0),Q&&(y.current.south=-y.current.north)),(a.current==="translate"||a.current==="south"||a.current==="south-west"||a.current==="south-east")&&(y.current.south=L.y-(c.current?c.current.y:0),Q&&(y.current.north=-y.current.south)),(e.maintainAspectRatio||V)&&x(y.current),M){let J=y.current.west,U=y.current.north,q=e.width+y.current.east,ee=e.height+y.current.south;M.points[1]=Math.min(J,q),M.points[2]=Math.min(U,ee),M.points[3]=Math.max(J,q),M.points[4]=Math.max(U,ee),n.updateNextFrame()}},[n,e.width,e.height,e.maintainAspectRatio,r]);zx("mousemove",A,[e.width,e.height,r]),zx("pointermove",A,[e.width,e.height,r]);let C=(0,_t.useRef)();return(0,_t.useEffect)(()=>{C.current=()=>{if(h.current){let I=y.current.west,E=y.current.north,O=e.width+y.current.east,L=e.height+y.current.south,M=Math.min(I,O),Q=Math.min(E,L),V=Math.max(I,O),J=Math.max(E,L),U={x:(e.x||0)+M,y:(e.y||0)+Q,width:V-M||1,height:J-Q||1};e.maintainAspectRatio,t(U),a.current=void 0,c.current=void 0,y.current.east=0,y.current.west=0,y.current.north=0,y.current.south=0,h.current=!1,m(!1)}}},[t,e.height,e.width,e.x,e.y]),(0,_t.useEffect)(()=>{let I=()=>{C.current&&C.current()};return window.addEventListener("pointerup",I),window.addEventListener("touchend",I),()=>{window.removeEventListener("pointerup",I),window.removeEventListener("touchend",I)}},[]),{portalRef:l,mode:i,mouseEvent:w,onPointerMoveCallback:A,isEditing:p}};function XP({handleSize:e,resizable:t,onSave:i,children:n,maintainAspectRatio:r,disableCardinalControls:a,...l}){let c=typeof e>"u"?r?10:8:e,{portalRef:p,mode:m,mouseEvent:h,isEditing:y}=YP({x:l.x||0,y:l.y||0,width:l.width,height:l.height,maintainAspectRatio:r},i),S=(0,xn.useMemo)(()=>h("translate"),[h]),w=(0,xn.useMemo)(()=>h("east"),[h]),v=(0,xn.useMemo)(()=>h("west"),[h]),x=(0,xn.useMemo)(()=>h("south"),[h]),A=(0,xn.useMemo)(()=>h("north"),[h]),C=(0,xn.useMemo)(()=>h("south-east"),[h]),I=(0,xn.useMemo)(()=>h("south-west"),[h]),E=(0,xn.useMemo)(()=>h("north-east"),[h]),O=(0,xn.useMemo)(()=>h("north-west"),[h]),L=m==="sketch",M={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",border:"1px solid rgba(155,155,155,.7)",borderRadius:r||a?"50%":2,position:"absolute",background:"#fff",pointerEvents:y?"none":L?"initial":"none"};return(0,St.jsx)(St.Fragment,{children:(0,St.jsxs)("world-object",{...l,children:[n,L&&t?(0,St.jsx)(Cn,{ref:p,target:{x:0,y:0,height:l.height,width:l.width},relative:!0,interactive:!1,children:L&&t?(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("div",{onMouseDown:S,onTouchStart:S,style:{display:"block",width:"100%",height:"100%",position:"relative",border:"1px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:y?"none":L?"initial":"none"}}),r?null:(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("div",{title:"east",onTouchStart:w,onMouseDown:w,style:{...M,cursor:"e-resize",height:c*2,width:c,right:0,top:"50%",opacity:a?0:1,transform:`translate(${c/2}px, -${c}px)`}}),(0,St.jsx)("div",{title:"west",onMouseDown:v,style:{...M,cursor:"w-resize",position:"absolute",height:c*2,width:c,left:0,top:"50%",opacity:a?0:1,transform:`translate(-${c/2}px, -${c}px)`}}),(0,St.jsx)("div",{title:"north",onMouseDown:A,style:{...M,cursor:"n-resize",position:"absolute",height:c,width:c*2,left:"50%",top:0,opacity:a?0:1,transform:`translate(-${c}px, -${c/2}px)`}}),(0,St.jsx)("div",{title:"south",onMouseDown:x,style:{...M,cursor:"s-resize",position:"absolute",height:c,width:c*2,left:"50%",bottom:0,opacity:a?0:1,transform:`translate(-${c}px, ${c/2}px)`}})]}),(0,St.jsx)("div",{title:"north-east",onMouseDown:E,style:{...M,cursor:"ne-resize",position:"absolute",height:c,width:c,right:0,top:0,transform:`translate(${c/2}px, -${c/2}px)`}}),(0,St.jsx)("div",{title:"south-east",onMouseDown:C,style:{...M,cursor:"se-resize",position:"absolute",height:c,width:c,bottom:0,right:0,transform:`translate(${c/2}px, ${c/2}px)`}}),(0,St.jsx)("div",{title:"south-west",onMouseDown:I,style:{...M,cursor:"sw-resize",position:"absolute",height:c,width:c,bottom:0,left:0,transform:`translate(-${c/2}px, ${c/2}px)`}}),(0,St.jsx)("div",{title:"north-west",onMouseDown:O,style:{...M,cursor:"nw-resize",position:"absolute",height:c,width:c,top:0,left:0,transform:`translate(-${c/2}px, -${c/2}px)`}})]}):null}):null]})})}function h0({interactive:e,region:t,onClick:i,onSave:n,maintainAspectRatio:r,disableCardinalControls:a,isEditing:l,rotation:c,style:p={backgroundColor:"rgba(0,0,0,.5)"}}){let m=(0,c0.useCallback)(h=>{n({id:t.id,x:t.x,y:t.y,height:t.height,width:t.width,...h})},[n,t.id,t.x,t.y,t.height,t.width]);return(0,_p.jsx)(XP,{x:t.x,y:t.y,rotation:c,width:t.width,height:t.height,resizable:l,onSave:m,maintainAspectRatio:r,disableCardinalControls:a,children:(0,_p.jsx)("box",{interactive:e,onClick:h=>{h.preventDefault(),h.stopPropagation(),i(t)},target:{x:0,y:0,width:t.width,height:t.height},style:p})})}var Fp=e=>{let t=e.width/(e.crop?.width||e.tiles.width),i=e.tiles.imageService.sizes||[],n=e.enableThumbnail,r=e.enableSizes,a=(0,Mp.useMemo)(()=>{let c=e.tiles.imageService.id||e.tiles.imageService["@id"];return c&&c.endsWith("/info.json")?c.slice(0,-1*10):c},[e.tiles.imageService.id]),l=(0,Mp.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let p=e.width,m=[1],h=1;for(;Math.pow(2,h)<p;)h=h*2,m.push(h);return[{width:256,height:256,scaleFactors:[1,2,4,8]}]}return c},[e.tiles.imageService]);return(0,Vr.jsx)("world-object",{rotation:e.rotation,scale:t,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,Vr.jsxs)("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[n&&e.tiles.thumbnail?(0,Vr.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,r&&i.map((c,p)=>(0,Vr.jsx)("world-image",{uri:`${a}/full/${c.width},${c.height}/0/default.jpg`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:c.width,height:c.height},crop:e.crop},p)),l.map(c=>(c.scaleFactors||[]).map(p=>(0,Vr.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},tile:c,scaleFactor:p,crop:e.crop},`${e.tiles.imageService.id}-tile-${p}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};function m0(e,t){return e?t?{...e,...t||{},":hover":e[":hover"]?Object.assign(e[":hover"]||{},t[":hover"]||{}):t[":hover"],":active":e[":active"]?Object.assign(e[":active"]||{},t[":active"]||{}):t[":hover"]}:e:t}var Pi=T(H()),tE=(0,Pi.createContext)(null),Np={didCatch:!1,error:null},Bo=class extends Pi.Component{constructor(t){super(t),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Np}static getDerivedStateFromError(t){return{didCatch:!0,error:t}}resetErrorBoundary(){let{error:t}=this.state;if(t!==null){for(var i,n,r=arguments.length,a=new Array(r),l=0;l<r;l++)a[l]=arguments[l];(i=(n=this.props).onReset)===null||i===void 0||i.call(n,{args:a,reason:"imperative-api"}),this.setState(Np)}}componentDidCatch(t,i){var n,r;(n=(r=this.props).onError)===null||n===void 0||n.call(r,t,i)}componentDidUpdate(t,i){let{didCatch:n}=this.state,{resetKeys:r}=this.props;if(n&&i.error!==null&&iE(t.resetKeys,r)){var a,l;(a=(l=this.props).onReset)===null||a===void 0||a.call(l,{next:r,prev:t.resetKeys,reason:"keys"}),this.setState(Np)}}render(){let{children:t,fallbackRender:i,FallbackComponent:n,fallback:r}=this.props,{didCatch:a,error:l}=this.state,c=t;if(a){let p={error:l,resetErrorBoundary:this.resetErrorBoundary};if(typeof i=="function")c=i(p);else if(n)c=(0,Pi.createElement)(n,p);else if(r===null||(0,Pi.isValidElement)(r))c=r;else throw l}return(0,Pi.createElement)(tE.Provider,{value:{didCatch:a,error:l,resetErrorBoundary:this.resetErrorBoundary}},c)}};function iE(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.length!==t.length||e.some((i,n)=>!Object.is(i,t[n]))}var Ai=T(H(),1);var Do=T(H(),1),g0=T(B(),1),nE={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},ea=Do.default.createContext(nE),Xt=()=>(0,Do.useContext)(ea);function ei({value:e,children:t}){let i=Xt(),n=(0,Do.useMemo)(()=>({...i,...e}),[e,i]);return(0,g0.jsx)(ea.Provider,{value:n,children:t})}var nc=T(H(),1);var ht=function(t){return function(){let i={type:t,getType:()=>t,toString:()=>t};return(n,r)=>({...i,...n!==void 0&&{payload:n},...r!==void 0&&{meta:r}})}},zu="@iiif/IMPORT_ENTITIES",Fu="@iiif/MODIFY_ENTITY_FIELD",Nu="@iiif/REORDER_ENTITY_FIELD",Bu="@iiif/ADD_REFERENCE",ta="@iiif/UPDATE_REFERENCE",Du="@iiif/REMOVE_REFERENCE",ju="@iiif/ADD_METADATA",Vu="@iiif/REMOVE_METADATA",ia="@iiif/UPDATE_METADATA",Uu="@iiif/REORDER_METADATA",Wu=ht(zu)(),y0=ht(Fu)(),v0=ht(Nu)(),x0=ht(Bu)(),S0=ht(Du)(),w0=ht(ta)(),b0=ht(ju)(),C0=ht(ia)(),P0=ht(Vu)(),E0=ht(Uu)(),Ur={importEntities:Wu,modifyEntityField:y0,reorderEntityField:v0,addReference:x0,removeReference:S0,updateReference:w0,addMetadata:b0,removeMetadata:P0,updateMetadata:C0,reorderMetadata:E0},Hu="@iiif/ADD_MAPPING",qu="@iiif/ADD_MAPPINGS",Bp=ht(Hu)(),Dp=ht(qu)();var jo="RESOURCE_ERROR",na="RESOURCE_LOADING",Vo="RESOURCE_READY",Qu="@iiif/REQUEST_RESOURCE",$u="@iiif/REQUEST_ERROR",Gu="@iiif/REQUEST_MISMATCH",Yu="@iiif/REQUEST_COMPLETE",Xu="@iiif/REQUEST_OFFLINE_RESOURCE",jp=ht(Qu)(),ra=ht($u)(),Vp=ht(Gu)(),Up=ht(Yu)(),rE=ht(Xu)();var Uo="@iiif/BATCH",Ku="@iiif/BATCH_IMPORT",Wo=ht(Uo)(),oE=ht(Ku)();function en(e){for(let t in e)(typeof e[t]>"u"||e[t]===null)&&delete e[t];return e}function Nn(e){return Array.isArray(e)?e:e?[e]:[]}var A0=["sc:Collection","sc:Manifest","sc:Canvas","sc:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function sE(e){if(typeof e>"u"||e===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if(typeof e!="object")throw new Error(`${typeof e} is not a valid entity`);if(typeof e["@type"]=="string"){let t=A0.indexOf(e["@type"]);if(t!==-1)return A0[t]}if(e.profile)return"Service";if(e.format||e["@type"])return"ContentResource";throw new Error("Resource type is not known")}var aE=class _0{constructor(t,i={}){vn(this,"traversals"),vn(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...t},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(t){return new _0({collection:[t],manifest:[t],canvas:[t],annotationList:[t],sequence:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],layer:[t]})}traverseCollection(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(t))),this.traversals.collection)}traverseCollectionItems(t){if(this.options.mergeMemberProperties){let i=[...(t.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(t.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...t.members||[]];delete t.collections,delete t.manifests,t.members=i}return t.manifests&&(t.manifests=t.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),t.collections&&(t.collections=t.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),t.members&&(t.members=t.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),t}traverseManifest(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(t))),this.traversals.manifest)}traverseManifestItems(t){return t.sequences&&(t.sequences=t.sequences.map(i=>this.traverseSequence(i))),t.structures&&(t.structures=t.structures.map(i=>this.traverseRange(i))),t}traverseSequence(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(t))),this.traversals.sequence)}traverseSequenceItems(t){return t.canvases&&(t.canvases=t.canvases.map(i=>this.traverseCanvas(i))),t}traverseCanvas(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(t))),this.traversals.canvas)}traverseCanvasItems(t){return t.images&&(t.images=t.images.map(i=>this.traverseAnnotation(i))),t.otherContent&&(t.otherContent=t.otherContent.map(i=>this.traverseAnnotationList(i))),t}traverseRange(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(t))),this.traversals.range)}traverseRangeItems(t){if(this.options.mergeMemberProperties){let i=[...(t.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(t.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...t.members||[]];delete t.ranges,delete t.canvases,t.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return t}traverseAnnotationList(t){let i=typeof t=="string"?{"@id":t,"@type":"sc:AnnotationList"}:t;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(i)),this.traversals.annotationList)}traverseAnnotationListItems(t){return t.resources&&(t.resources=t.resources.map(i=>this.traverseAnnotation(i))),t}traverseAnnotation(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(t))),this.traversals.annotation)}traverseAnnotationItems(t){return t.resource&&(Array.isArray(t.resource)?t.resource=t.resource.map(i=>this.traverseContentResource(i)):t.resource=this.traverseContentResource(t.resource)),t.on,t}traverseLayer(t){return this.traverseType(this.traverseLinking(this.traverseLayerItems(t)),this.traversals.layer)}traverseLayerItems(t){return t.otherContent&&(t.otherContent=t.otherContent.map(i=>this.traverseAnnotationList(i))),t}traverseChoice(t){return this.traverseType(this.traverseChoiceItems(t),this.traversals.choice)}traverseChoiceItems(t){return t.default&&t.default!=="rdf:nil"&&(t.default=this.traverseContentResource(t.default)),t.item&&t.item!=="rdf:nil"&&(t.item=t.item.map(i=>this.traverseContentResource(i))),t}traverseService(t){return this.traverseType(this.traverseLinking(t),this.traversals.service)}traverseContentResource(t){return t["@type"]==="oa:Choice"?this.traverseChoice(t):this.traverseType(this.traverseDescriptive(this.traverseLinking(t)),this.traversals.contentResource)}traverseUnknown(t){if(!t["@type"]||typeof t=="string")return t;switch(sE(t)){case"sc:Collection":return this.traverseCollection(t);case"sc:Manifest":return this.traverseManifest(t);case"sc:Canvas":return this.traverseCanvas(t);case"sc:Sequence":return this.traverseSequence(t);case"sc:Range":return this.traverseRange(t);case"oa:Annotation":return this.traverseAnnotation(t);case"sc:AnnotationList":return this.traverseAnnotationList(t);case"sc:Layer":return this.traverseLayer(t);case"Service":return this.traverseService(t);case"oa:Choice":return this.traverseChoice(t);case"ContentResource":return this.traverseContentResource(t)}return t.profile?this.traverseService(t):t}traverseImageResource(t){let i=Array.isArray(t),n=Array.isArray(t)?t:[t],r=[];for(let a of n)typeof a=="string"?r.push(this.traverseContentResource({"@id":a,"@type":"dctypes:Image"})):r.push(this.traverseContentResource(a));return!i&&!this.options.convertPropsToArray?r[0]:r}traverseDescriptive(t){return t.thumbnail&&(t.thumbnail=this.traverseImageResource(t.thumbnail)),t.logo&&(t.logo=this.traverseImageResource(t.logo)),t}traverseOneOrMoreServices(t){let i=Array.isArray(t),n=Array.isArray(t)?t:[t],r=[];for(let a of n)r.push(this.traverseService(a));return!i&&!this.options.convertPropsToArray?r[0]:r}traverseLinking(t){return t.related&&(t.related=this.traverseOneOrManyType(t.related,this.traversals.contentResource)),t.rendering&&(t.rendering=this.traverseOneOrManyType(t.rendering,this.traversals.contentResource)),t.service&&(t.service=this.traverseOneOrMoreServices(t.service)),t.seeAlso&&(t.seeAlso=this.traverseOneOrManyType(t.seeAlso,this.traversals.contentResource)),t.within&&(typeof t.within=="string"||(t.within=this.traverseOneOrManyType(t.within,this.traversals.contentResource))),t.startCanvas&&(typeof t.startCanvas=="string"?t.startCanvas=this.traverseType({"@id":t.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):t.startCanvas&&this.traverseType(t.startCanvas,this.traversals.canvas)),t.contentLayer&&(typeof t.contentLayer=="string"?t.contentLayer=this.traverseLayer({"@id":t.contentLayer,"@type":"sc:Layer"}):t.contentLayer=this.traverseLayer(t.contentLayer)),t}traverseOneOrManyType(t,i){if(!Array.isArray(t))if(this.options.convertPropsToArray)t=[t];else return this.traverseType(t,i);return t.map(n=>this.traverseType(n,i))}traverseType(t,i){return i.reduce((n,r)=>{let a=r(n);return typeof a>"u"&&!this.options.allowUndefinedReturn?n:a},t)}},lE="http://library.stanford.edu/iiif/image-api/compliance.html#level1",uE="http://library.stanford.edu/iiif/image-api/compliance.html#level2",cE="http://library.stanford.edu/iiif/image-api/conformance.html#level1",dE="http://library.stanford.edu/iiif/image-api/conformance.html#level2",hE="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",pE="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",fE="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",mE="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",gE="http://iiif.io/api/image/1/level1.json",yE="http://iiif.io/api/image/1/profiles/level1.json",vE="http://iiif.io/api/image/1/level2.json",xE="http://iiif.io/api/image/1/profiles/level2.json",SE="http://iiif.io/api/image/2/level1.json",wE="http://iiif.io/api/image/2/profiles/level1.json",bE="http://iiif.io/api/image/2/level2.json",CE="http://iiif.io/api/image/2/profiles/level2.json",PE="level1",EE="level2",AE="http://iiif.io/api/image/2/level1",IE="http://iiif.io/api/image/2/level2",TE=[AE,IE,lE,uE,cE,dE,hE,pE,fE,mE,gE,yE,vE,xE,SE,wE,bE,CE,PE,EE],Wp={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function RE(e){if(typeof e=="string")return[e];if(!e)return[];let t=Array.isArray(e)?e:[e],i=[];for(let n of t){if(typeof n=="string"){i.push(n);continue}i.push({"@language":n["@language"]||n.language,"@value":n["@value"]||n.value})}return i}function Wr(e,t="none"){if(!e)return{none:[""]};let i=RE(e),n={};for(let r of i){if(typeof r=="string"){n[t]=n[t]?n[t]:[],n[t].push(r||"");continue}if(!r["@language"]){n[t]=n[t]?n[t]:[],n[t].push(r["@value"]||"");continue}let a=r["@language"];n[a]=n[a]?n[a]:[],n[a].push(r["@value"]||"")}return Object.keys(n).length===0?{none:[""]}:n}function M0(e){if(Array.isArray(e))return M0(e.find(t=>typeof t=="string"));if(Oo.indexOf(e)!==-1)return"level2";if(TE.indexOf(e)!==-1)return"level1";if(mp.indexOf(e)!==-1)return"level0";if(typeof e=="string")return e}function _E(e){let t=Array.isArray(e)?e:[e];for(let i of t)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function ME(e){switch(e){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function I0(e){for(let t of["sc","oa","dcterms","dctypes","iiif"])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}var kE=["Collection","Manifest","Annotation","AnnotationPage","Range","Service"];function qp(e){let t=e["@id"]||e.id,i=e["@type"]||e.type,n=e.profile||void 0,r=e["@context"]||void 0;if(n){let a=ME(n);if(a)return a}if(r){let a=_E(r);if(a)return a}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(let a of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${a}:`)){i=i.slice(a.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(i&&kE.indexOf(i)!==-1)return i;if(e.format){if(e.format.startsWith("image/"))return"Image";if(e.format.startsWith("text/")||e.format==="application/pdf")return"Text";if(e.format.startsWith("application/"))return"Dataset"}return t&&(t.endsWith(".jpg")||t.endsWith(".png")||t.endsWith(".jpeg"))?"Image":i||"unknown"}var OE=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function LE(e){let t=e.match(OE);return t?t[0]:e}function zE(e,t="Rights/License",i="none"){let n=null,r=[],a=Array.isArray(e)?e:[e];for(let l of a){let c=l?LE(l):void 0;if(c&&(c.indexOf("creativecommons.org")!==-1||c.indexOf("rightsstatements.org")!==-1)){c.startsWith("https://")?n=`http://${c.slice(8)}`:n=c;continue}c&&r.push({label:{[i]:[t]},value:{[i]:[c]}})}return[n,r]}var FE=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function NE(e){if(e){let t=Array.isArray(e)?e:[e],i=[];for(let n of t)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),FE.indexOf(n)===-1&&i.push(n);if(t.length)return i.length===1?i[0]:i}}function BE(e){return e?e.map(t=>({label:Wr(t.label),value:Wr(t.value)})):[]}var T0=0;function k0(e,t){let i=encodeURI(e.id||e["@id"]||"").trim();return i&&t?`${i}/${t}`:i||(T0++,`http://example.org/${e["@type"]}${t?`/${t}`:""}/${T0}`)}function Bn(e){let t=[...e.behavior||[]];e.viewingHint&&t.push(e.viewingHint);let i;return Array.isArray(e.motivation)?i=e.motivation.map(I0):e.motivation&&(i=I0(e.motivation)),{"@context":e["@context"]?NE(e["@context"]):void 0,id:(e["@id"]||k0(e)).trim(),type:qp(e),behavior:t.length?t:void 0,height:e.height?e.height:void 0,width:e.width?e.width:void 0,motivation:i,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function Dn(e){let[t,i]=zE(e.license),n=[...e.metadata?BE(e.metadata):[],...i];return{rights:t,metadata:n.length?n:void 0,label:e.label?Wr(e.label):void 0,requiredStatement:e.attribution?{label:Wr(Wp.attributionLabel),value:Wr(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?Wr(e.description):void 0,thumbnail:DE(e.thumbnail)}}function DE(e){return e&&(Array.isArray(e)?e:[e]).map(t=>typeof t=="string"?{id:t,type:"Image"}:(t.type==="unknown"&&(t.type="Image"),t))}function jE(e){if(!e.within)return;let t=Array.isArray(e.within)?e.within:[e.within],i=[];for(let n of t)if(typeof n=="string"){if(n)switch(e["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:qp(n)});return i.length?i:void 0}function dr(e){let t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],i=e.contentLayer;return{provider:e.logo||t.length?[{id:Wp.providerId,type:"Agent",homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:Wr(Wp.providerName)}]:void 0,partOf:jE(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?Nn(e.service):void 0,supplementary:i?[i]:void 0}}function VE(e){return{chars:e.chars,format:e.format?e.format:void 0,language:e.language}}function UE(e){return en({...Bn(e),...Dn(e),...dr(e),items:e.members})}function WE(e){let t=[],i=[],n,r;for(let l of e.sequences||[])console.log(l),l.canvases.length&&t.push(...l.canvases),l.behavior&&i.push(...l.behavior),l.viewingDirection&&(r=l.viewingDirection),l.startCanvas&&(n=l.startCanvas);let a=Bn(e);return i.length&&(a.behavior?a.behavior.push(...i):a.behavior=i),en({...a,...Dn(e),...dr(e),viewingDirection:r,start:n,items:t,structures:HE(e.structures)})}function HE(e){if(!e)return e;let t=new Map;for(let n of e)t.set(n.id,n);let i=[];for(let n of e)if(n.items){let r=n.items.map(a=>typeof a=="string"?(i.push(a),t.get(a)||a):a&&a.id?(i.push(a.id),t.get(a.id)||a):a);n.items=r}return e.filter(n=>i.indexOf(n.id)===-1)}function qE(e){return en({...Bn(e),...Dn(e),...dr(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:k0(e,"annotation-page"),type:"AnnotationPage",items:e.images}]:void 0})}function QE(e){return en({...Bn(e),...Dn(e),...dr(e),items:e.resources&&e.resources.length?e.resources:void 0})}function $E(e){return!e.canvases||e.canvases.length===0?{canvases:[],behavior:[]}:{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[],viewingDirection:e.viewingDirection,startCanvas:e.startCanvas}}function GE(e){function t(i){if(Array.isArray(i)){if(i.length>1)return{type:"List",items:i.map(t)};i=i[0]}if(typeof i=="string")return encodeURI(i).trim();if("@type"in i){let n;if(typeof i.full=="string")n=i.full;else if(i.full["@type"]==="dctypes:Image")n={id:i.full["@id"],type:"Image"};else if(i.full["@type"]==="sc:Canvas")n={id:i.full["@id"],type:"Canvas"};else throw new Error(`Unsupported source type on annotation: ${i.full["@type"]}`);return{type:"SpecificResource",source:n,selector:Hp(i.selector)}}else return encodeURI(i["@id"]).trim()}return en({...Bn(e),...Dn(e),...dr(e),target:t(e.on),body:Array.isArray(e.resource)?e.resource.map(R0):R0(e.resource)})}function R0(e){return e.type==="Choice"?e:O0(e)}function O0(e){let t=e;return en({...Bn(t),...Dn(t),...dr(t),...VE(t)})}function YE(e){let t=[];return e.default&&e.default!=="rdf:nil"&&t.push(e.default),e.item&&e.item!=="rdf:nil"&&t.push(...e.item),en({...Bn(e),...Dn(e),items:t})}function XE(e){return en({...Bn(e),...Dn(e),...dr(e),items:e.members})}function KE(e){let{"@id":t,"@type":i,"@context":n,profile:r,...a}=e,l={};return t&&(l["@id"]=t),l["@type"]=qp(e),l["@type"]==="unknown"&&(n&&n.length&&(l["@context"]=n),l["@type"]="Service"),r&&(l.profile=M0(r)),en({...l,...a})}function ZE(e){return en({...Bn(e),...Dn(e),...dr(e)})}var JE=new aE({collection:[UE],manifest:[WE],canvas:[qE],annotationList:[QE],sequence:[$E],annotation:[GE],contentResource:[O0],choice:[YE],range:[XE],service:[KE],layer:[ZE]});function L0(e){return e&&e["@context"]&&(e["@context"]==="http://iiif.io/api/presentation/2/context.json"||e["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||e["@context"]==="http://www.shared-canvas.org/ns/context.json")||e["@context"]==="http://iiif.io/api/image/2/context.json"?JE.traverseUnknown(e):e}function Hp(e){if((Array.isArray(e["@type"])&&e["@type"].includes("oa:SvgSelector")||e["@type"]=="oa:SvgSelector")&&("chars"in e||"value"in e))return{type:"SvgSelector",value:"chars"in e?e.chars:e.value};if(e["@type"]==="oa:FragmentSelector")return{type:"FragmentSelector",value:e.value};if(e["@type"]==="oa:Choice")return[Hp(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(Hp)];if(e["@type"]=="iiif:ImageApiSelector")return{type:"ImageApiSelector",region:"region"in e?e.region:void 0,rotation:"rotation"in e?e.rotation:void 0};throw new Error(`Unsupported selector type: ${e["@type"]}`)}function tn(e){return typeof e=="string"?!1:e&&!e.type&&"source"in e?(e.type="SpecificResource",!0):!!e&&e.type==="SpecificResource"}function Zu(...e){return t=>e.reduce((i,n)=>n(i),t)}var Qp=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function z0(e,t){if(typeof e>"u"||e===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if(typeof e!="object"){if(t)return t;throw new Error(`${typeof e} is not a valid entity`)}if(typeof e.type=="string"){let i=Qp.indexOf(e.type);if(i!==-1)return Qp[i]}if(e.profile)return"Service";throw new Error("Resource type is not known")}var $p=class F0{constructor(t,i={}){vn(this,"traversals"),vn(this,"options"),vn(this,"_traverseManifest",Zu(this.traverseManifestItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseManifestStructures.bind(this),this.traverseInlineAnnotationPages.bind(this))),vn(this,"_traverseCanvas",Zu(this.traverseCanvasItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseInlineAnnotationPages.bind(this))),vn(this,"_traverseAnnotationPage",Zu(this.traverseAnnotationPageItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this))),vn(this,"_traverseRange",Zu(this.traverseRangeRanges.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this))),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],specificResource:[],geoJson:[],...t},this.options={allowUndefinedReturn:!1,...i}}static all(t){return new F0({collection:[t],manifest:[t],canvas:[t],annotationCollection:[t],annotationPage:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],geoJson:[t],specificResource:[t],agent:[t]})}traverseDescriptive(t){return t.thumbnail&&(t.thumbnail=Nn(t.thumbnail).map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.provider&&(t.provider=t.provider.map(i=>this.traverseAgent(i,t))),t}traverseLinking(t){return t.seeAlso&&(t.seeAlso=t.seeAlso.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.service&&(t.service=Nn(t.service).map(i=>this.traverseService(i))),t.services&&(t.services=Nn(t.services).map(i=>this.traverseService(i,t))),t.logo&&(t.logo=t.logo.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.homepage&&(t.homepage=Nn(t.homepage).map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.partOf&&(t.partOf=t.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,{parent:t},this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,{parent:t},this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,{parent:t},this.traversals.annotationCollection):i.type==="Collection"?this.traverseType(i,{parent:t},this.traversals.collection):this.traverseType(i,{parent:t},this.traversals.contentResource))),t.start&&(tn(t.start)?t.start=this.traverseSpecificResource(t.start,"Canvas",t):t.start=this.traverseType(t.start,{parent:t},this.traversals.canvas)),t.rendering&&(t.rendering=t.rendering.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.supplementary&&(t.supplementary=t.supplementary.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t}traverseCollectionItems(t){return t.items&&t.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),t}traverseCollection(t,i){return this.traverseType(this.traverseDescriptive(this.traverseInlineAnnotationPages(this.traverseLinking(this.traverseLinkedCanvases(this.traverseCollectionItems(t))))),{parent:i},this.traversals.collection)}traverseGeoJson(t,i){return this.traverseType(t,{parent:i},this.traversals.geoJson)}traverseNavPlace(t){return t.navPlace&&(t.navPlace=this.traverseGeoJson(t.navPlace,t)),t}traverseManifestItems(t){return t.items&&(t.items=t.items.map(i=>this.traverseCanvas(i))),t}traverseManifestStructures(t){return t.structures&&(t.structures=t.structures.map(i=>this.traverseRange(i))),t}traverseManifest(t,i){return this.traverseType(this._traverseManifest(t),{parent:i},this.traversals.manifest)}traverseCanvasItems(t){return t.items=(t.items||[]).map(i=>this.traverseAnnotationPage(i,t)),t}traverseInlineAnnotationPages(t){return typeof t=="string"||!t||t.annotations&&(t.annotations=t.annotations.map(i=>this.traverseAnnotationPage(i,t))),t}traverseCanvas(t,i){return this.traverseType(this._traverseCanvas(t),{parent:i},this.traversals.canvas)}traverseAnnotationPageItems(t){return t.items&&(t.items=t.items.map(i=>this.traverseAnnotation(i,t))),t}traverseAnnotationPage(t,i){return this.traverseType(this._traverseAnnotationPage(t),{parent:i},this.traversals.annotationPage)}traverseAnnotationBody(t){return Array.isArray(t.body)?t.body=t.body.map(i=>this.traverseContentResource(i,t)):t.body&&(t.body=this.traverseContentResource(t.body,t)),t}traverseLinkedCanvases(t){return t.placeholderCanvas&&(t.placeholderCanvas=this.traverseCanvas(t.placeholderCanvas)),t.accompanyingCanvas&&(t.accompanyingCanvas=this.traverseCanvas(t.accompanyingCanvas)),t}traverseAnnotation(t,i){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(this.traverseDescriptive(t))),{parent:i},this.traversals.annotation)}traverseContentResourceLinking(t){return typeof t=="string"||!t||t&&t.service&&(t.service=Nn(t.service||[]).map(i=>this.traverseService(i,t))),t}traverseContentResource(t,i){return t.type==="Choice"&&(t.items=t.items.map(n=>this.traverseContentResource(n,t))),tn(t)?this.traverseSpecificResource(t,"ContentResource"):this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(t)),{parent:i},this.traversals.contentResource)}traverseSpecificResource(t,i,n){let r=t.source;return typeof t.source=="string"&&(r={id:t.source,type:i||"unknown"}),this.traverseType({...t,source:i==="Canvas"||r.type==="Canvas"?this.traverseType(r,{parent:n},this.traversals.canvas):i==="ContentResource"?this.traverseContentResource(r,{parent:n}):this.traverseUnknown(r,{parent:n,typeHint:i})},{parent:n},this.traversals.specificResource)}traverseRangeRanges(t){return t.items&&(t.items=t.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"},t):tn(i)?this.traverseSpecificResource(i,"Canvas",t):i.type==="Manifest"?this.traverseManifest(i,t):this.traverseRange(i,t))),t}traverseRange(t,i){return this.traverseType(this._traverseRange(t),{parent:i},this.traversals.range)}traverseAgent(t,i){return this.traverseType(this.traverseDescriptive(this.traverseLinking(t)),{parent:i},this.traversals.agent)}traverseType(t,i,n){return n.reduce((r,a)=>{let l=a(r,i);return typeof l>"u"&&!this.options.allowUndefinedReturn?r:l},t)}traverseService(t,i){let n=Object.assign({},t);return n&&n.service&&(n.service=Nn(n.service).map(r=>this.traverseService(r))),this.traverseType(n,{parent:i},this.traversals.service)}traverseUnknown(t,{parent:i,typeHint:n}={}){let r=z0(t,n);switch(r){case"Collection":return this.traverseCollection(t,i);case"Manifest":return this.traverseManifest(t,i);case"Canvas":return this.traverseCanvas(t,i);case"AnnotationPage":return this.traverseAnnotationPage(t,i);case"Annotation":return this.traverseAnnotation(t,i);case"ContentResource":return this.traverseContentResource(t,i);case"Range":return this.traverseRange(t,i);case"Service":return this.traverseService(t,i);case"Agent":return this.traverseAgent(t,i);default:throw new Error(`Unknown or unsupported resource type of ${r}`)}}};function Xp(e,t){let i=t||"unknown";if(!e)return;if(typeof e=="string")return{id:e,type:i};if(tn(e))return Xp(e.source,t);let n=i&&i!=="unknown"?i:e.type||e["@type"],r=e.id||e["@id"];if(n&&n.indexOf(":")!==-1&&(n=n.split(":").pop()),r&&n)return{id:r,type:n}}var qo={},mt="iiif-parser:hasPart",Ei="iiif-parser:partOf",Qo="iiif-parser:isExternal",ji="__$UNSET$__",Kp="__$UNWRAP$__",ce=[];Object.freeze(ce);Object.freeze(qo);function B0(e){if(e===qo||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function Go(e,t){if(t&&t["@explicit"]){let i={},n=Object.keys(t);for(let r of n)r===Ei||r==="@explicit"||(B0(t[r])?i[r]=e[r]:i[r]=t[r]);return i}return e}function Zp(e,t,i){let n=Xp(t);if(!n)return[void 0,void 0];let r=e.requests[n.id],a=n.type||e.mapping[n.id];if(!a||r&&r.resourceUri&&(!e.entities[a]||!e.entities[a][r.resourceUri]))return[void 0,void 0];let l=e.entities[a][r?r.resourceUri:n.id];if(n.type&&!l)return Zp(e,{id:n.id},i);if(l&&l[mt]){let c=l[mt].find(p=>i?p[Ei]===i.id:p[Ei]===l.id);return[Go(l,c),l]}return[l,l]}var D0={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:ce,label:null,thumbnail:ce,summary:null,requiredStatement:null,metadata:ce,rights:null,provider:ce,items:ce,seeAlso:ce,homepage:ce,rendering:ce,service:ce},j0={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:ce,thumbnail:ce,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:ce,rights:null,navDate:null,provider:ce,items:ce,annotations:ce,seeAlso:ce,homepage:ce,partOf:ce,rendering:ce,service:ce,duration:0,height:0,width:0},V0={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:ce,thumbnail:ce,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:ce,rights:null,navDate:null,provider:ce,items:ce,annotations:ce,seeAlso:ce,homepage:ce,partOf:ce,rendering:ce,service:ce,services:ce},U0={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:ce,behavior:ce,homepage:ce,items:ce,label:null,metadata:ce,navDate:null,provider:ce,partOf:ce,accompanyingCanvas:null,placeholderCanvas:null,rendering:ce,requiredStatement:null,rights:null,seeAlso:ce,service:ce,services:ce,start:null,structures:ce,summary:null,thumbnail:ce,viewingDirection:"left-to-right"},W0={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:ce,thumbnail:ce,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:ce,rights:null,navDate:null,provider:ce,items:ce,annotations:ce,seeAlso:ce,homepage:ce,partOf:ce,rendering:ce,service:ce,start:null,supplementary:null,viewingDirection:"left-to-right"},H0={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:ce,seeAlso:ce,homepage:ce},q0={id:"https://iiif-parser/empty-service",type:"UnknownService"};function Yp(e,t={}){if(Array.isArray(e))return Yp(e[0]);if(typeof e=="string"){let[i,n]=e.split("#");return n?{type:"SpecificResource",source:{id:i,type:t.typeHint||"Unknown"},selector:{type:"FragmentSelector",value:n}}:{type:"SpecificResource",source:{id:i,type:t.typeMap&&t.typeMap[i]||t.typeHint||"Unknown"}}}if(e.type==="Choice"||e.type==="List"||e.type==="Composite"||e.type==="Independents")return Yp(e.items[0]);if(!e.type&&"source"in e&&(e.type="SpecificResource"),e.type==="SpecificResource")return e.source.type==="Canvas"&&e.source.partOf&&typeof e.source.partOf=="string"&&(e.source.partOf=[{id:e.source.partOf,type:"Manifest"}]),e.selector?{type:"SpecificResource",source:e.source,selector:e.selector}:{type:"SpecificResource",source:e.source};if(e.id){e.type==="Canvas"&&e.partOf&&typeof e.partOf=="string"&&(e.partOf=[{id:e.partOf,type:"Manifest"}]);let[i,n]=e.id.split("#");return n?{type:"SpecificResource",source:{...e,id:i},selector:{type:"FragmentSelector",value:n}}:{type:"SpecificResource",source:{...e,id:i}}}return{type:"SpecificResource",source:e}}function Q0(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function $0(e,t){if(typeof e=="string")return{id:e,type:t};if(!e.id)throw new Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function eA(e,t){return(i,n)=>{let r=e[i]?e[i]:{};return(a,l)=>{let c=$0(a,n||i);return c&&c.id&&i?(r[c.id]=r[c.id]?tc(r[c.id],c,{parent:l.parent,isTopLevel:t.id===c.id}):tc({id:c.id,type:c.type},c,{parent:l.parent,isTopLevel:t.id===c.id}),{id:c.id,type:i==="ContentResource"?i:c.type}):c}}}function ec(e,t,i){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw new Error("Cannot merge array with non-array");let n=[...e];for(let r of t)if(r["@id"]&&!r.id&&(r.id=r["@id"]),r["@type"]&&!r.type&&(r.type=r["@type"]),r!=null)if(Array.isArray(r))n.push(r);else if(typeof r=="object"&&r.id&&r.type){let a=n.findIndex(l=>l.id===r.id&&l.type===r.type);a>=0&&(n[a]=ec(n[a],r))}else e.indexOf(r)===-1&&n.push(r);return n}else if(typeof e=="object"){if(Array.isArray(t)||typeof t!="object")throw new Error("Cannot merge object with non-object");let n={...e},r=[],a=[],l=Object.keys(e).filter(m=>m!==mt&&m!=="id"&&m!=="type"),c={},p={};for(let[m,h]of Object.entries(t)){if(m===mt||m==="id"||m==="type")continue;let y=n[m];y===h?a.push(m):y===ce||!y?(r.push(m),n[m]=h):(y&&h&&(c[m]=y,p[m]=h),n[m]=ec(y,h),n[m]===c[m]&&(a.push(m),delete c[m]))}if(i&&(i.parent&&i.parent.id||i.isTopLevel)){let m=[],h={};if(i.parent?h[Ei]=i.parent.id:i.isTopLevel&&(h[Ei]=e.id),n[mt]&&n[mt].length){let y=!(n[mt]||[]).find(w=>w["@explicit"]),S=r.length>0||a.length!==l.length;if(y&&S)for(let w of n[mt]){let v={...w},x=Object.keys(c);if(v){v["@explicit"]=!0;for(let A of l)A!==mt&&(v[A]=qo);for(let A of x)v[A]=c[A]}m.push(v)}else m.push(...n[mt]);if(S){let w=Object.keys(p);h["@explicit"]=!0;for(let v of r)h[v]=qo;for(let v of a)h[v]=qo;for(let v of w)h[v]=p[v]}}h.id=n.id,h.type=n.type,m.push(h),n[mt]=m}return n}else if(e)return e;return t}function tc(e,t,i){if(typeof e=="string")return e;if(t.id!==e.id||t.type!==e.type){if(t.type==="ImageService3")return t;if(e.type==="ImageService3")return e;throw new Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return ec({...e},t,i)}function tA(e){return(t,i)=>n=>{let{id:r,type:a}=$0(n,i||t);if(typeof r>"u")throw new Error("Found invalid entity without an ID.");return t==="ContentResource"||t==="Service"?e[r]=t:e[r]=a,n}}function iA(e){let t=Object.assign({},e);if(t["@id"]&&(t.id=t["@id"]),t["@type"]&&(t.type=t["@type"]),t.service){let i=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)i.push({id:n["@id"]||n.id,type:n["@type"]||n.type});t.service=i}return Object.assign({},q0,t)}function nA(e){return t=>{e.Service=e.Service?e.Service:{};let i=t.id||t["@id"],n=iA(t);return n&&n.id&&(e.Service[n.id]?e.Service[i]=tc(e.Service[i],n):e.Service[i]=n),t}}function rA(e){let t=JSON.stringify(e),i=5381,n=t.length;for(;n;)i=i*33^t.charCodeAt(--n);let r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function Gp(e){return t=>typeof t=="string"?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${rA(t)}`,type:e,...t}}function Ho(e){return t=>({...e,...t})}function oa(e){return Array.isArray(e)?e:[e]}function oA(e){return e.body&&(e.body=oa(e.body)),e.seeAlso&&(e.seeAlso=oa(e.seeAlso)),e.audience&&(e.audience=oa(e.audience)),e.accessibility&&(e.accessibility=oa(e.accessibility)),e.motivation&&(e.motivation=oa(e.motivation)),e}function G0(e,{typeHint:t,partOfTypeHint:i}={}){if(typeof e=="string"&&(e={id:e,type:t||"unknown"}),tn(e))return typeof e.source=="string"&&(e.source={id:e.source,type:t||"unknown"}),e.source.type==="Canvas"&&e.source.partOf&&typeof e.source.partOf=="string"&&(e.source.partOf=[{id:e.source.partOf,type:i||"Manifest"}]),e;let n;if((e.id||"").indexOf("#")!==-1){let[r,a]=(e.id||"").split("#");e.id=r,a&&(n={type:"FragmentSelector",value:a})}return{type:"SpecificResource",source:e,selector:n}}function sA(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(i=>typeof i=="string"||i.type==="Canvas"?G0(i):i)),t}function aA(e){let t=Object.assign({},e);return t.start?(t.start=G0(t.start,{typeHint:"Canvas"}),t):e}function lA(e){let t=Object.assign({},e);return t.target?(t.target=Yp(t.target,{typeHint:"Canvas"}),t):e}function Y0(e){return e}function Ju(e){return typeof e.items>"u"&&(e[Qo]=!0),e}function Jp(e){let t=L0(e),i=Q0(),n={},r=eA(i,t),a=tA(n),l=new $p({collection:[Ju,Ho(V0),a("Collection"),r("Collection")],manifest:[Ju,Ho(U0),aA,a("Manifest"),r("Manifest")],canvas:[Ho(j0),a("Canvas"),r("Canvas")],annotationPage:[Ju,Gp("AnnotationPage"),Ho(D0),a("AnnotationPage"),r("AnnotationPage")],annotation:[Gp("Annotation"),oA,lA,a("Annotation"),r("Annotation")],contentResource:[Gp("ContentResource"),a("ContentResource"),r("ContentResource")],range:[Ho(W0),sA,a("Range","Canvas"),r("Range","Canvas")],agent:[Ho(H0),a("Agent"),r("Agent")],specificResource:[Y0],service:[nA(i)]}).traverseUnknown(t);return{entities:i,resource:l,mapping:n}}function X0(e){let t={};for(let[i,n]of e){if(i===Kp&&n!==ji)return n;n!==ji&&typeof n<"u"&&n!==null&&(t[i]=n)}return t}function ef(e,t,i){if(!t.type||!t.id)throw new Error("Unknown entity");if(!i[t.type])throw new Error(`Serializer not found for ${t.type}`);function n(r,a,l=0){let c=i[r.type];if(!c)return ji;if(l>20)throw new Error("Circular reference: "+r.id+" "+r.type);let[p,m]=Zp(e,r.type?r:r.id,a)||(r.id&&r.type?r:null);if(!p)return ji;let h=c(p,e,{parent:a,isTopLevel:t.id===r.id,fullResource:m}),y=h.next();for(;!y.done;){let S=y.value,w=ji;if(S)if(Array.isArray(S)){let v=[];for(let x of S)v.push(n(x,r,l+1));w=v}else w=n(S,r,l+1);y=h.next(w)}return y.value===ji?ji:X0(y.value)}return n(t)}function $o(e,{allowSourceString:t=!0,allowString:i=!1,allowedStringType:n}={}){let r=a=>{if(t&&a&&a.source&&typeof a.source!="string"){let l=Object.keys(a.source);if(a.source.id&&a.source.type&&l.length===2)return{...a,source:a.source.id}}return a};if(e){if(e.source&&e.source.partOf)return r(e);let a=Object.keys(e);if(a.length===2&&e.type&&e.source||a.length===3&&e.type&&e.source&&a.indexOf("selector")!==-1&&!e.selector)return i&&(!n||n===e.source.type)?e.source.id:e.source.type==="ContentResource"?{type:"SpecificResource",source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!="string"&&e.selector.type==="FragmentSelector"){let l=`${e.source.id}#${e.selector.value}`;return i?l:{id:l,type:e.source.type}}}return r(e)}function $r(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let i=t[0];if(!i)return"";let n=(e[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return t.map(i=>({"@language":i,"@value":(e[i]||[]).join("")}))}}function K0(e){return Array.isArray(e)?e.map(t=>K0(t)):typeof e=="string"?e:e.type&&e.type==="Canvas"?e.id:e}function fr(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function uA(e){if(e){if(typeof e=="string")return{"@id":e};if("@id"in e){let t={...e};return delete t["@type"],t}return{"@context":"http://iiif.io/api/image/2/context.json","@id":e.id,profile:`http://iiif.io/api/image/2/profiles/${e.profile}.json`}}}function Hr(e,t){return[["@id",e.id],["@type",t],["format",e.format],["height",e.height],["width",e.width],["viewingDirection",e.viewingDirection!=="left-to-right"?e.viewingDirection:void 0],["license",e.license?e.license:void 0]]}function*qr(e){let t=e.provider?yield e.provider[0]:void 0;return[["label",$r(e.label)],["metadata",e.metadata&&e.metadata.length?e.metadata.map(i=>({label:$r(i.label)||"",value:$r(i.value)||""})):void 0],["description",$r(e.summary)],["thumbnail",fr(yield e.thumbnail)],["navDate",e.navDate],["logo",t?fr(t.logo):void 0],["homepage",t?t.homepage:void 0],["attribution",e.requiredStatement?$r(e.requiredStatement.value):void 0]]}function*sa(e){let t=e.start&&e.start.type&&e.start.type==="SpecificResource"?$o(e.start):e.start;return[["seeAlso",fr(yield e.seeAlso)],["service",fr((e.service||[]).map(uA))],["rendering",fr(yield e.rendering)],["startCanvas",t?t.id:void 0]]}function cA(e){return e.type==="SpecificResource"}function dA(e){return e&&e.type==="FragmentSelector"}function hA(e){if(e&&cA(e)){let t=e.id,i=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return dA(i)&&(t+="#"+i.value),t}return e?.id}var tf={Manifest:function*(e,t,{isTopLevel:i}){return[...i?[["@context","http://iiif.io/api/presentation/2/context.json"]]:[],...Hr(e,"sc:Manifest"),...yield*qr(e),...yield*sa(e),["sequences",[{"@id":`${e.id}/sequence0`,"@type":"sc:Sequence",canvases:yield e.items}]],["structures",yield e.structures]]},Canvas:function*(e){let t=(yield e.items)[0];return[...Hr(e,"sc:Canvas"),...yield*qr(e),...yield*sa(e),["images",t?[t.resources]:void 0],["annotations",e.annotations&&e.annotations.length?fr(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...Hr(e,"sc:AnnotationList"),...yield*qr(e),["resources",e.items&&e.items.length?fr(yield e.items):void 0]]},Annotation:function*(e){return[["@id",e.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",K0(e.target)],["resource",fr(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case"Image":return[...Hr(e,"dctypes:Image"),...yield*qr(e),...yield*sa(e)];case"Text":case"Dataset":default:return[...Hr(e,void 0),...yield*qr(e)]}},AnnotationCollection:function*(e){return[["@id",e.id],["@type","sc:Layer"],["label",$r(e.label)]]},Collection:function*(e){return[...Hr(e,"sc:Collection"),...yield*qr(e),...yield*sa(e),["members",yield*e.items]]},Range:function*(e){let t=[],i=[];if(e.items)for(let n of e.items){let r=n.type==="SpecificResource"?n.source:n;if(r){let a=yield r;t.push({"@id":hA(n),"@type":r.type,label:a?a.label:void 0,within:e.id}),r.type==="Canvas"&&i.push(r.id)}}return[...Hr(e,"sc:Range"),...yield*qr(e),...yield*sa(e),["canvases",i.length===t.length?i:void 0],["members",i.length!==t.length?t:void 0]]}};function Qr(e){return[["id",e.id?.startsWith("vault://")?void 0:e.id],["type",e.type],["format",e.format],["profile",e.profile],["height",e.height||void 0],["width",e.width||void 0],["duration",e.duration||void 0],["viewingDirection",e.viewingDirection!=="left-to-right"?e.viewingDirection:void 0],["behavior",e.behavior&&e.behavior.length?e.behavior:void 0],["timeMode",e.timeMode],["motivation",Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[mt,ji]]}function wt(e){if(e===ji||!e||e.length===0)return;let t=e.filter(i=>i!==ji);if(t.length!==0)return t}function Z0(e){if(e&&e.type&&e.type==="ImageService2"){let{id:t,type:i,profile:n,...r}=e,a=typeof n=="string"?n:Array.isArray(n)?n.find(l=>typeof l=="string"):"";return{"@id":t,"@type":i,profile:a?a.startsWith("http")?a:`http://iiif.io/api/image/2/${a}.json`:"http://iiif.io/api/image/2/level0.json",...r}}return e}function N0(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Z0)}function*hr(e){return[["label",e.label],["metadata",wt(e.metadata)],["summary",e.summary],["requiredStatement",e.requiredStatement],["rights",Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],["navDate",e.navDate],["language",e.language],["thumbnail",wt(yield e.thumbnail)],["placeholderCanvas",yield e.placeholderCanvas],["accompanyingCanvas",yield e.accompanyingCanvas],["provider",wt(yield e.provider)]]}function*pr(e,t){let i=[];for(let n of e.partOf||[])n.type==="Manifest"&&t.type==="Manifest"||i.push(yield n);return[["seeAlso",wt(yield e.seeAlso)],["service",wt(N0(e.service))],["services",wt(N0(e.services))],["rendering",wt(yield e.rendering)],["supplementary",wt(yield e.supplementary)],["homepage",wt(yield e.homepage)],["logo",wt(yield e.logo)],["partOf",wt(i)],["start",e.start?$o(e.start):e.start]]}var nf={Manifest:function*(e,t,{isTopLevel:i}){return i?[["@context",e["@context"]?e["@context"]:"http://iiif.io/api/presentation/3/context.json"],...Qr(e),...yield*hr(e),...yield*pr(e),["items",yield e.items],["structures",wt(yield e.structures)],["annotations",wt(yield e.annotations)],["navPlace",e.navPlace]]:[...Qr(e),...yield*hr(e)]},Canvas:function*(e,t,{parent:i}){return i&&i.type!=="Manifest"&&i.type!=="Canvas"?[["id",e.id]]:[...Qr(e),...yield*hr(e),...yield*pr(e,i),["items",yield e.items],["annotations",wt(yield e.annotations)],["navPlace",e.navPlace]]},Agent:function*(e){return[["id",e.id],["type","Agent"],["label",e.label],...yield*pr(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([n,r])=>[n,Array.isArray(r)?wt(r):r]).filter(([n,r])=>n!=="items"&&n!=="id"&&n!==mt&&n!==Ei&&n!==Qo),i=yield e.items;return[["id",e.id?.startsWith("vault://")?void 0:e.id],...t,...yield*pr(e),["items",i.length||e[Qo]===!1?i:ji]]},Service:function*(e){return[[Kp,Z0(e)]]},Annotation:function*(e){let t=Object.entries(e).map(([n,r])=>n==="motivation"?[n,Array.isArray(r)?r[0]:r]:n==="target"?[n,$o(r,{allowString:!0,allowSourceString:!0,allowedStringType:"Canvas"})]:[n,Array.isArray(r)?wt(r):r]).filter(([n])=>n!=="body"&&n!==mt&&n!==Qo),i;if(Array.isArray(e.body)){let n=[];for(let r of e.body)if(r&&tn(r)){let a={...r};r.source.type!=="Canvas"?a.source=yield r.source:a.source=r.source,n.push($o(a,{allowSourceString:!0}))}else n.push(yield r);i=n}else e.body&&tn(e.body)?(i={...e.body},i.source=yield e.body.source):i=yield e.body;return[...t,...yield*hr(e),...yield*pr(e),["body",i.length===1?i[0]:i]]},ContentResource:function*(e){return pA([...Qr(e),...yield*hr(e),...yield*pr(e),["annotations",wt(yield e.annotations)],["items",wt(yield e.items)]],e)},AnnotationCollection:function*(e){return[["id",e.id],["type","AnnotationCollection"],["label",e.label]]},Collection:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...Qr(e),...yield*hr(e),...yield*pr(e),["items",wt(yield e.items)],["navPlace",e.navPlace]]:[...Qr(e),...yield*hr(e)]},Range:function*(e){let t=[];for(let i of e.items)i.type==="Range"?t.push(yield i):i&&i.type==="SpecificResource"?t.push($o(i)):t.push(i);return[...Qr(e),...yield*hr(e),...yield*pr(e),["items",t],["annotations",wt(yield e.annotations)],["navPlace",e.navPlace]]}};function pA(e,t){let i=Object.keys(t),n=e.map(([r])=>r);for(let r of i)r===mt||r===Qo||n.indexOf(r)===-1&&typeof t[r]<"u"&&e.push([r,t[r]]);return e}var fA=(e,t)=>{let{entities:i,resource:n,mapping:r}=Jp(t);if(n.id===void 0)return[ra({id:e,message:"ID is not defined in resource."})];let a=[Wu({entities:i}),Dp({mapping:r})];return n.id!==e&&(a.push(Bp({id:e,type:n.type})),a.push(Vp({requestId:e,actualId:n.id}))),a.push(Up({id:e})),a},J0=Number.isNaN||function(t){return typeof t=="number"&&t!==t};function mA(e,t){return!!(e===t||J0(e)&&J0(t))}function of(e,t){if(!Array.isArray(e)||!Array.isArray(t))return e===t;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!mA(e[i],t[i]))return!1;return!0}function rf(e,t,i){let n=e.iiif.requests[t],r=e.iiif.mapping[t];if(!r||!e.iiif.entities[r][n.resourceUri])return;let a=e.iiif.entities[r][n.resourceUri];if(a&&a[mt]){let l=a[mt].find(c=>i?c[Ei]===i.id:c[Ei]===a.id);return Go(a,l)}return a}function gA(e){return e&&typeof e.then=="function"}function sf(e,t,{waitTimeout:i=30}={}){return(n,r)=>{let a=e.getStore(),l=a.getState(),c=l.iiif.requests[n];if(c){if(c.loadingState===Vo){let m=rf(l,n);if(m)return m}switch(c.loadingState){case jo:break;case na:return(async()=>{let m,h=!1;try{let y=await Promise.race([new Promise((S,w)=>{h||(m=a.subscribe(()=>{let v=a.getState();if(v.iiif.requests[n].loadingState===jo){w();return}if(v.iiif.requests[n].loadingState===Vo){let x=rf(v,n);x?S(x):w()}}))}),new Promise((S,w)=>setTimeout(()=>{h=!0,w()},i*60*1e3))]);if(m&&m(),y)return y}catch{m&&m()}})()}}e.dispatch(jp({id:n}));let p=m=>{if(!m)return;!m.id&&!m["@id"]&&(m["@type"]&&(m["@id"]=n),m.id=n);let h=fA(n,m);return e.dispatch(Wo({actions:h})),rf(a.getState(),n)};try{let m=t(n,r);return gA(m)?(async()=>{try{return p(await m)}catch(h){throw e.dispatch(ra({id:n,message:h.toString()})),h}})():p(m)}catch(m){throw e.dispatch(ra({id:n,message:m.toString()})),m}}}var af="@iiif/SET_META_VALUE",lf="@iiif/SET_META_VALUE_DYNAMIC",uf="@iiif/UNSET_META_VALUE",yA=ht(af)(),vA=ht(lf)(),xA=ht(uf)(),cf={setMetaValue:yA,setMetaValueDynamic:vA,unsetMetaValue:xA};function df(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}var Yo={},SA=(e,t)=>(i,n,r)=>(r.dispatch=a=>(i(l=>e(l,a),!1,a),a),r.dispatchFromDevtools=!0,{dispatch:(...a)=>r.dispatch(...a),...t}),wA=SA,mf=new Map,ic=e=>{let t=mf.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([i,n])=>[i,n.getState()])):{}},bA=(e,t,i)=>{if(e===void 0)return{type:"untracked",connection:t.connect(i)};let n=mf.get(i.name);if(n)return{type:"tracked",store:e,...n};let r={connection:t.connect(i),stores:{}};return mf.set(i.name,r),{type:"tracked",store:e,...r}},CA=(e,t={})=>(i,n,r)=>{let{enabled:a,anonymousActionType:l,store:c,...p}=t,m;try{m=(a??(Yo.env?Yo.env.MODE:void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!m)return(Yo.env?Yo.env.MODE:void 0)!=="production"&&a&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(i,n,r);let{connection:h,...y}=bA(c,m,p),S=!0;r.setState=(x,A,C)=>{let I=i(x,A);if(!S)return I;let E=C===void 0?{type:l||"anonymous"}:typeof C=="string"?{type:C}:C;return c===void 0?(h?.send(E,n()),I):(h?.send({...E,type:`${c}/${E.type}`},{...ic(p.name),[c]:r.getState()}),I)};let w=(...x)=>{let A=S;S=!1,i(...x),S=A},v=e(r.setState,n,r);if(y.type==="untracked"?h?.init(v):(y.stores[y.store]=r,h?.init(Object.fromEntries(Object.entries(y.stores).map(([x,A])=>[x,x===y.store?v:A.getState()])))),r.dispatchFromDevtools&&typeof r.dispatch=="function"){let x=!1,A=r.dispatch;r.dispatch=(...C)=>{(Yo.env?Yo.env.MODE:void 0)!=="production"&&C[0].type==="__setState"&&!x&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),x=!0),A(...C)}}return h.subscribe(x=>{var A;switch(x.type){case"ACTION":if(typeof x.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return hf(x.payload,C=>{if(C.type==="__setState"){if(c===void 0){w(C.state);return}Object.keys(C.state).length!==1&&console.error(`
72
+ `}),n.htmlChildren]})},Mu=()=>(0,o0.useContext)(Iu),ku=()=>{let e=Mu();return e?e.runtime:void 0};var a0=(e,t=[])=>{let i=ku();(0,s0.useEffect)(()=>i?i.registerHook("useFrame",e):()=>{},t)},Ou=()=>{let e=Mu();return e&&e.canvas?e.canvas:void 0};function QP(){return(0,l0.useContext)(Tu)}async function $P(e,t,i){if(u0.version.startsWith("18.")){let n=await Promise.resolve().then(()=>T(bx(),1)),r=n.default?n.default.createRoot:n.createRoot;i.current||(i.current=r(e)),i.current.render(t)}else if(typeof ReactDOM<"u"){let{render:n,unmountComponentAtNode:r}=ReactDOM;n(t,e),i.current={unmount(){r(e)}}}else{let n=await Promise.resolve().then(()=>T(Hs(),1)),r=n.default?n.default.render:n.render,a=n.default?n.default.unmountComponentAtNode:n.unmountComponentAtNode;r(t,e),i.current={unmount(){a(e)}}}}var Cn=Sn.default.forwardRef(({children:e,...t},i)=>{let n=(0,Sn.useRef)(),r=ku(),a=(0,Sn.useRef)(0),l=(0,Sn.useRef)(),c=(0,Sn.useRef)();return a0(()=>{if(t.relative){let p=n.current;if(p&&r){let m=r.getScaleFactor();a.current!==m&&(a.current=m,p.style.transformOrigin="0 0",p.style.transform=`scale(${1/a.current})`,p.style.width=`${a.current*100}%`,p.style.height=`${a.current*100}%`,n.current&&l.current?.__owner.value?.rotation&&(p.style.transform=`scale(${1/a.current}) translate(50%, 50%) rotate(${l.current?.__owner.value?.rotation||0}deg) translate(-50%, -50%)`))}}},[t.relative]),(0,Sn.useLayoutEffect)(()=>{let p=l.current;i&&p&&(typeof i=="function"?i(p):i.current=p);async function m(){if(p&&p.__host){let h=t.relative?(0,Rp.jsx)("div",{ref:n,children:e}):e;await $P(p.__host.element,h,c)}}p&&p.__host?m():p&&(p.__onCreate=m)},[i,e,l,t.relative]),(0,Sn.useLayoutEffect)(()=>()=>{c.current&&setTimeout(()=>{c.current.unmount()},0)},[]),(0,Rp.jsx)("box",{html:!0,...t,ref:l})});Cn.displayName="HTMLPortal";var zx=(e,t,i=[])=>{let n=ku(),r=n?n.world:void 0;(0,d0.useEffect)(()=>{if(n){let a=t,l=Fo[e];n.world.activatedEvents.push(l);let c=l.slice(2).toLowerCase();return n.world.addEventListener(c,a),()=>{n.world.removeEventListener(c,a)}}return()=>{}},[r,e,...i])};function Fx(e,t){if(e===0)return[0,1];if(t===0)return[1,0];let i=Math.abs(e)/Math.abs(t);return[i,1-i]}function GP(){let e=(0,Lu.useRef)({ctrl:!1,shift:!1,alt:!1});return(0,Lu.useLayoutEffect)(()=>{function t(n){n.key==="Shift"&&(e.current.shift=!0),n.key==="Control"&&(e.current.ctrl=!0),n.key==="Alt"&&(e.current.alt=!0)}function i(n){n.key==="Shift"&&(e.current.shift=!1),n.key==="Control"&&(e.current.ctrl=!1),n.key==="Alt"&&(e.current.alt=!1)}return window.addEventListener("keydown",t),window.addEventListener("keyup",i),()=>{window.removeEventListener("keydown",t),window.removeEventListener("keyup",i)}},[]),e}var YP=(e,t)=>{let i=TP(),n=ku(),r=QP(),a=(0,_t.useRef)(),l=(0,_t.useRef)(null),c=(0,_t.useRef)(),[p,m]=(0,_t.useState)(!1),h=(0,_t.useRef)(!1),y=(0,_t.useRef)({north:0,south:0,east:0,west:0}),S=GP(),w=(0,_t.useCallback)(I=>E=>{if(h.current=!0,m(!0),r&&n){let{top:O,left:L}=r,M=n.viewerToWorld(E.pageX-L,E.pageY-O);c.current={x:M.x,y:M.y},a.current=I}},[r,n]),v=(0,_t.useMemo)(()=>e.width/e.height,[e.width,e.height]),x=(0,_t.useCallback)(I=>{if(!Math.abs(I.north-I.south+(I.east-I.west)))return;let E=-I.west+I.east,O=-I.north+I.south,L=e.width+E,M=e.height+O;if(L/M>=v){let Q=M*v,V=L-Q,[J,U]=Fx(I.east,I.west);I.west=I.west+V*U,I.east=I.east-V*J}else{let Q=L/v,V=M-Q,[J,U]=Fx(I.north,I.south);I.north=I.north+V*J,I.south=I.south-V*U}},[e.width,e.height,v]);a0(()=>{c&&n&&n.updateNextFrame()}),(0,_t.useEffect)(()=>{n&&n.updateNextFrame()},[n,p]);let A=(0,_t.useCallback)(I=>{if(!n||!r||n.mode!=="sketch")return;let{top:E,left:O}=r,L=n.viewerToWorld(I.pageX-O,I.pageY-E),M=l.current,Q=!e.maintainAspectRatio&&S.current.alt,V=!Q&&S.current.shift&&a.current?.indexOf("-")!==-1;if((a.current==="translate"||a.current==="east"||a.current==="north-east"||a.current==="south-east")&&(y.current.east=L.x-(c.current?c.current.x:0),Q&&(y.current.west=-y.current.east)),(a.current==="translate"||a.current==="west"||a.current==="north-west"||a.current==="south-west")&&(y.current.west=L.x-(c.current?c.current.x:0),Q&&(y.current.east=-y.current.west)),(a.current==="translate"||a.current==="north"||a.current==="north-east"||a.current==="north-west")&&(y.current.north=L.y-(c.current?c.current.y:0),Q&&(y.current.south=-y.current.north)),(a.current==="translate"||a.current==="south"||a.current==="south-west"||a.current==="south-east")&&(y.current.south=L.y-(c.current?c.current.y:0),Q&&(y.current.north=-y.current.south)),(e.maintainAspectRatio||V)&&x(y.current),M){let J=y.current.west,U=y.current.north,q=e.width+y.current.east,ee=e.height+y.current.south;M.points[1]=Math.min(J,q),M.points[2]=Math.min(U,ee),M.points[3]=Math.max(J,q),M.points[4]=Math.max(U,ee),n.updateNextFrame()}},[n,e.width,e.height,e.maintainAspectRatio,r]);zx("mousemove",A,[e.width,e.height,r]),zx("pointermove",A,[e.width,e.height,r]);let C=(0,_t.useRef)();return(0,_t.useEffect)(()=>{C.current=()=>{if(h.current){let I=y.current.west,E=y.current.north,O=e.width+y.current.east,L=e.height+y.current.south,M=Math.min(I,O),Q=Math.min(E,L),V=Math.max(I,O),J=Math.max(E,L),U={x:(e.x||0)+M,y:(e.y||0)+Q,width:V-M||1,height:J-Q||1};e.maintainAspectRatio,t(U),a.current=void 0,c.current=void 0,y.current.east=0,y.current.west=0,y.current.north=0,y.current.south=0,h.current=!1,m(!1)}}},[t,e.height,e.width,e.x,e.y]),(0,_t.useEffect)(()=>{let I=()=>{C.current&&C.current()};return window.addEventListener("pointerup",I),window.addEventListener("touchend",I),()=>{window.removeEventListener("pointerup",I),window.removeEventListener("touchend",I)}},[]),{portalRef:l,mode:i,mouseEvent:w,onPointerMoveCallback:A,isEditing:p}};function XP({handleSize:e,resizable:t,onSave:i,children:n,maintainAspectRatio:r,disableCardinalControls:a,...l}){let c=typeof e>"u"?r?10:8:e,{portalRef:p,mode:m,mouseEvent:h,isEditing:y}=YP({x:l.x||0,y:l.y||0,width:l.width,height:l.height,maintainAspectRatio:r},i),S=(0,xn.useMemo)(()=>h("translate"),[h]),w=(0,xn.useMemo)(()=>h("east"),[h]),v=(0,xn.useMemo)(()=>h("west"),[h]),x=(0,xn.useMemo)(()=>h("south"),[h]),A=(0,xn.useMemo)(()=>h("north"),[h]),C=(0,xn.useMemo)(()=>h("south-east"),[h]),I=(0,xn.useMemo)(()=>h("south-west"),[h]),E=(0,xn.useMemo)(()=>h("north-east"),[h]),O=(0,xn.useMemo)(()=>h("north-west"),[h]),L=m==="sketch",M={zIndex:999,boxShadow:"0px 2px 3px 0 rgba(0,0,0,0.2)",border:"1px solid rgba(155,155,155,.7)",borderRadius:r||a?"50%":2,position:"absolute",background:"#fff",pointerEvents:y?"none":L?"initial":"none"};return(0,St.jsx)(St.Fragment,{children:(0,St.jsxs)("world-object",{...l,children:[n,L&&t?(0,St.jsx)(Cn,{ref:p,target:{x:0,y:0,height:l.height,width:l.width},relative:!0,interactive:!1,children:L&&t?(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("div",{onMouseDown:S,onTouchStart:S,style:{display:"block",width:"100%",height:"100%",position:"relative",border:"1px solid rgba(155,155,155, .7)",boxSizing:"border-box",pointerEvents:y?"none":L?"initial":"none"}}),r?null:(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("div",{title:"east",onTouchStart:w,onMouseDown:w,style:{...M,cursor:"e-resize",height:c*2,width:c,right:0,top:"50%",opacity:a?0:1,transform:`translate(${c/2}px, -${c}px)`}}),(0,St.jsx)("div",{title:"west",onMouseDown:v,style:{...M,cursor:"w-resize",position:"absolute",height:c*2,width:c,left:0,top:"50%",opacity:a?0:1,transform:`translate(-${c/2}px, -${c}px)`}}),(0,St.jsx)("div",{title:"north",onMouseDown:A,style:{...M,cursor:"n-resize",position:"absolute",height:c,width:c*2,left:"50%",top:0,opacity:a?0:1,transform:`translate(-${c}px, -${c/2}px)`}}),(0,St.jsx)("div",{title:"south",onMouseDown:x,style:{...M,cursor:"s-resize",position:"absolute",height:c,width:c*2,left:"50%",bottom:0,opacity:a?0:1,transform:`translate(-${c}px, ${c/2}px)`}})]}),(0,St.jsx)("div",{title:"north-east",onMouseDown:E,style:{...M,cursor:"ne-resize",position:"absolute",height:c,width:c,right:0,top:0,transform:`translate(${c/2}px, -${c/2}px)`}}),(0,St.jsx)("div",{title:"south-east",onMouseDown:C,style:{...M,cursor:"se-resize",position:"absolute",height:c,width:c,bottom:0,right:0,transform:`translate(${c/2}px, ${c/2}px)`}}),(0,St.jsx)("div",{title:"south-west",onMouseDown:I,style:{...M,cursor:"sw-resize",position:"absolute",height:c,width:c,bottom:0,left:0,transform:`translate(-${c/2}px, ${c/2}px)`}}),(0,St.jsx)("div",{title:"north-west",onMouseDown:O,style:{...M,cursor:"nw-resize",position:"absolute",height:c,width:c,top:0,left:0,transform:`translate(-${c/2}px, -${c/2}px)`}})]}):null}):null]})})}function h0({interactive:e,region:t,onClick:i,onSave:n,maintainAspectRatio:r,disableCardinalControls:a,isEditing:l,rotation:c,style:p={backgroundColor:"rgba(0,0,0,.5)"}}){let m=(0,c0.useCallback)(h=>{n({id:t.id,x:t.x,y:t.y,height:t.height,width:t.width,...h})},[n,t.id,t.x,t.y,t.height,t.width]);return(0,_p.jsx)(XP,{x:t.x,y:t.y,rotation:c,width:t.width,height:t.height,resizable:l,onSave:m,maintainAspectRatio:r,disableCardinalControls:a,children:(0,_p.jsx)("box",{interactive:e,onClick:h=>{h.preventDefault(),h.stopPropagation(),i(t)},target:{x:0,y:0,width:t.width,height:t.height},style:p})})}var Fp=e=>{let t=e.width/(e.crop?.width||e.tiles.width),i=e.tiles.imageService.sizes||[],n=e.enableThumbnail,r=e.enableSizes,a=(0,Mp.useMemo)(()=>{let c=e.tiles.imageService.id||e.tiles.imageService["@id"];return c&&c.endsWith("/info.json")?c.slice(0,-1*10):c},[e.tiles.imageService.id]),l=(0,Mp.useMemo)(()=>{let c=e.tiles.imageService.tiles||[];if(!c.length){let p=e.width,m=[1],h=1;for(;Math.pow(2,h)<p;)h=h*2,m.push(h);return[]}return c},[e.tiles.imageService]);return(0,Vr.jsx)("world-object",{rotation:e.rotation,scale:t,height:e.crop?.height||e.tiles.height,width:e.crop?.width||e.tiles.width,x:e.x,y:e.y,onClick:e.onClick,children:(0,Vr.jsxs)("composite-image",{id:e.tiles.imageService.id,width:e.crop?.width||e.tiles.width,height:e.crop?.height||e.tiles.height,crop:e.crop,renderOptions:e.renderOptions,children:[n&&e.tiles.thumbnail?(0,Vr.jsx)("world-image",{priority:!0,uri:e.tiles.thumbnail.id,target:{width:e.tiles.width,height:e.tiles.height},display:{width:e.tiles.thumbnail.width,height:e.tiles.thumbnail.height},crop:e.crop}):null,r&&i.map((c,p)=>(0,Vr.jsx)("world-image",{uri:`${a}/full/${c.width},${c.height}/0/default.jpg`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:c.width,height:c.height},crop:e.crop},p)),l.map(c=>(c.scaleFactors||[]).map(p=>(0,Vr.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},tile:c,scaleFactor:p,crop:e.crop},`${e.tiles.imageService.id}-tile-${p}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};function m0(e,t){return e?t?{...e,...t||{},":hover":e[":hover"]?Object.assign(e[":hover"]||{},t[":hover"]||{}):t[":hover"],":active":e[":active"]?Object.assign(e[":active"]||{},t[":active"]||{}):t[":hover"]}:e:t}var Pi=T(H()),tE=(0,Pi.createContext)(null),Np={didCatch:!1,error:null},Bo=class extends Pi.Component{constructor(t){super(t),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Np}static getDerivedStateFromError(t){return{didCatch:!0,error:t}}resetErrorBoundary(){let{error:t}=this.state;if(t!==null){for(var i,n,r=arguments.length,a=new Array(r),l=0;l<r;l++)a[l]=arguments[l];(i=(n=this.props).onReset)===null||i===void 0||i.call(n,{args:a,reason:"imperative-api"}),this.setState(Np)}}componentDidCatch(t,i){var n,r;(n=(r=this.props).onError)===null||n===void 0||n.call(r,t,i)}componentDidUpdate(t,i){let{didCatch:n}=this.state,{resetKeys:r}=this.props;if(n&&i.error!==null&&iE(t.resetKeys,r)){var a,l;(a=(l=this.props).onReset)===null||a===void 0||a.call(l,{next:r,prev:t.resetKeys,reason:"keys"}),this.setState(Np)}}render(){let{children:t,fallbackRender:i,FallbackComponent:n,fallback:r}=this.props,{didCatch:a,error:l}=this.state,c=t;if(a){let p={error:l,resetErrorBoundary:this.resetErrorBoundary};if(typeof i=="function")c=i(p);else if(n)c=(0,Pi.createElement)(n,p);else if(r===null||(0,Pi.isValidElement)(r))c=r;else throw l}return(0,Pi.createElement)(tE.Provider,{value:{didCatch:a,error:l,resetErrorBoundary:this.resetErrorBoundary}},c)}};function iE(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.length!==t.length||e.some((i,n)=>!Object.is(i,t[n]))}var Ai=T(H(),1);var Do=T(H(),1),g0=T(B(),1),nE={collection:void 0,manifest:void 0,range:void 0,canvas:void 0,annotation:void 0,annotationPage:void 0},ea=Do.default.createContext(nE),Xt=()=>(0,Do.useContext)(ea);function ei({value:e,children:t}){let i=Xt(),n=(0,Do.useMemo)(()=>({...i,...e}),[e,i]);return(0,g0.jsx)(ea.Provider,{value:n,children:t})}var nc=T(H(),1);var ht=function(t){return function(){let i={type:t,getType:()=>t,toString:()=>t};return(n,r)=>({...i,...n!==void 0&&{payload:n},...r!==void 0&&{meta:r}})}},zu="@iiif/IMPORT_ENTITIES",Fu="@iiif/MODIFY_ENTITY_FIELD",Nu="@iiif/REORDER_ENTITY_FIELD",Bu="@iiif/ADD_REFERENCE",ta="@iiif/UPDATE_REFERENCE",Du="@iiif/REMOVE_REFERENCE",ju="@iiif/ADD_METADATA",Vu="@iiif/REMOVE_METADATA",ia="@iiif/UPDATE_METADATA",Uu="@iiif/REORDER_METADATA",Wu=ht(zu)(),y0=ht(Fu)(),v0=ht(Nu)(),x0=ht(Bu)(),S0=ht(Du)(),w0=ht(ta)(),b0=ht(ju)(),C0=ht(ia)(),P0=ht(Vu)(),E0=ht(Uu)(),Ur={importEntities:Wu,modifyEntityField:y0,reorderEntityField:v0,addReference:x0,removeReference:S0,updateReference:w0,addMetadata:b0,removeMetadata:P0,updateMetadata:C0,reorderMetadata:E0},Hu="@iiif/ADD_MAPPING",qu="@iiif/ADD_MAPPINGS",Bp=ht(Hu)(),Dp=ht(qu)();var jo="RESOURCE_ERROR",na="RESOURCE_LOADING",Vo="RESOURCE_READY",Qu="@iiif/REQUEST_RESOURCE",$u="@iiif/REQUEST_ERROR",Gu="@iiif/REQUEST_MISMATCH",Yu="@iiif/REQUEST_COMPLETE",Xu="@iiif/REQUEST_OFFLINE_RESOURCE",jp=ht(Qu)(),ra=ht($u)(),Vp=ht(Gu)(),Up=ht(Yu)(),rE=ht(Xu)();var Uo="@iiif/BATCH",Ku="@iiif/BATCH_IMPORT",Wo=ht(Uo)(),oE=ht(Ku)();function en(e){for(let t in e)(typeof e[t]>"u"||e[t]===null)&&delete e[t];return e}function Nn(e){return Array.isArray(e)?e:e?[e]:[]}var A0=["sc:Collection","sc:Manifest","sc:Canvas","sc:AnnotationList","oa:Annotation","sc:Range","sc:Layer","sc:Sequence","oa:Choice","Service","ContentResource"];function sE(e){if(typeof e>"u"||e===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if(typeof e!="object")throw new Error(`${typeof e} is not a valid entity`);if(typeof e["@type"]=="string"){let t=A0.indexOf(e["@type"]);if(t!==-1)return A0[t]}if(e.profile)return"Service";if(e.format||e["@type"])return"ContentResource";throw new Error("Resource type is not known")}var aE=class _0{constructor(t,i={}){vn(this,"traversals"),vn(this,"options"),this.traversals={collection:[],manifest:[],canvas:[],annotationList:[],sequence:[],annotation:[],contentResource:[],choice:[],range:[],service:[],layer:[],...t},this.options={convertPropsToArray:!0,mergeMemberProperties:!0,allowUndefinedReturn:!1,...i}}static all(t){return new _0({collection:[t],manifest:[t],canvas:[t],annotationList:[t],sequence:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],layer:[t]})}traverseCollection(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCollectionItems(t))),this.traversals.collection)}traverseCollectionItems(t){if(this.options.mergeMemberProperties){let i=[...(t.manifests||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Manifest"}:n),...(t.collections||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Collection"}:n),...t.members||[]];delete t.collections,delete t.manifests,t.members=i}return t.manifests&&(t.manifests=t.manifests.map(i=>this.traverseManifest(typeof i=="string"?{"@id":i,"@type":"sc:Manifest"}:i))),t.collections&&(t.collections=t.collections.map(i=>this.traverseCollection(typeof i=="string"?{"@id":i,"@type":"sc:Collection"}:i))),t.members&&(t.members=t.members.map(i=>typeof i=="string"?i:this.traverseUnknown(i))),t}traverseManifest(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseManifestItems(t))),this.traversals.manifest)}traverseManifestItems(t){return t.sequences&&(t.sequences=t.sequences.map(i=>this.traverseSequence(i))),t.structures&&(t.structures=t.structures.map(i=>this.traverseRange(i))),t}traverseSequence(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseSequenceItems(t))),this.traversals.sequence)}traverseSequenceItems(t){return t.canvases&&(t.canvases=t.canvases.map(i=>this.traverseCanvas(i))),t}traverseCanvas(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseCanvasItems(t))),this.traversals.canvas)}traverseCanvasItems(t){return t.images&&(t.images=t.images.map(i=>this.traverseAnnotation(i))),t.otherContent&&(t.otherContent=t.otherContent.map(i=>this.traverseAnnotationList(i))),t}traverseRange(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseRangeItems(t))),this.traversals.range)}traverseRangeItems(t){if(this.options.mergeMemberProperties){let i=[...(t.ranges||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Range"}:n),...(t.canvases||[]).map(n=>typeof n=="string"?{"@id":n,"@type":"sc:Canvas"}:n),...t.members||[]];delete t.ranges,delete t.canvases,t.members=i.length?i.map(n=>this.traverseUnknown(n)):void 0}return t}traverseAnnotationList(t){let i=typeof t=="string"?{"@id":t,"@type":"sc:AnnotationList"}:t;return this.traverseType(this.traverseDescriptive(this.traverseAnnotationListItems(i)),this.traversals.annotationList)}traverseAnnotationListItems(t){return t.resources&&(t.resources=t.resources.map(i=>this.traverseAnnotation(i))),t}traverseAnnotation(t){return this.traverseType(this.traverseDescriptive(this.traverseLinking(this.traverseAnnotationItems(t))),this.traversals.annotation)}traverseAnnotationItems(t){return t.resource&&(Array.isArray(t.resource)?t.resource=t.resource.map(i=>this.traverseContentResource(i)):t.resource=this.traverseContentResource(t.resource)),t.on,t}traverseLayer(t){return this.traverseType(this.traverseLinking(this.traverseLayerItems(t)),this.traversals.layer)}traverseLayerItems(t){return t.otherContent&&(t.otherContent=t.otherContent.map(i=>this.traverseAnnotationList(i))),t}traverseChoice(t){return this.traverseType(this.traverseChoiceItems(t),this.traversals.choice)}traverseChoiceItems(t){return t.default&&t.default!=="rdf:nil"&&(t.default=this.traverseContentResource(t.default)),t.item&&t.item!=="rdf:nil"&&(t.item=t.item.map(i=>this.traverseContentResource(i))),t}traverseService(t){return this.traverseType(this.traverseLinking(t),this.traversals.service)}traverseContentResource(t){return t["@type"]==="oa:Choice"?this.traverseChoice(t):this.traverseType(this.traverseDescriptive(this.traverseLinking(t)),this.traversals.contentResource)}traverseUnknown(t){if(!t["@type"]||typeof t=="string")return t;switch(sE(t)){case"sc:Collection":return this.traverseCollection(t);case"sc:Manifest":return this.traverseManifest(t);case"sc:Canvas":return this.traverseCanvas(t);case"sc:Sequence":return this.traverseSequence(t);case"sc:Range":return this.traverseRange(t);case"oa:Annotation":return this.traverseAnnotation(t);case"sc:AnnotationList":return this.traverseAnnotationList(t);case"sc:Layer":return this.traverseLayer(t);case"Service":return this.traverseService(t);case"oa:Choice":return this.traverseChoice(t);case"ContentResource":return this.traverseContentResource(t)}return t.profile?this.traverseService(t):t}traverseImageResource(t){let i=Array.isArray(t),n=Array.isArray(t)?t:[t],r=[];for(let a of n)typeof a=="string"?r.push(this.traverseContentResource({"@id":a,"@type":"dctypes:Image"})):r.push(this.traverseContentResource(a));return!i&&!this.options.convertPropsToArray?r[0]:r}traverseDescriptive(t){return t.thumbnail&&(t.thumbnail=this.traverseImageResource(t.thumbnail)),t.logo&&(t.logo=this.traverseImageResource(t.logo)),t}traverseOneOrMoreServices(t){let i=Array.isArray(t),n=Array.isArray(t)?t:[t],r=[];for(let a of n)r.push(this.traverseService(a));return!i&&!this.options.convertPropsToArray?r[0]:r}traverseLinking(t){return t.related&&(t.related=this.traverseOneOrManyType(t.related,this.traversals.contentResource)),t.rendering&&(t.rendering=this.traverseOneOrManyType(t.rendering,this.traversals.contentResource)),t.service&&(t.service=this.traverseOneOrMoreServices(t.service)),t.seeAlso&&(t.seeAlso=this.traverseOneOrManyType(t.seeAlso,this.traversals.contentResource)),t.within&&(typeof t.within=="string"||(t.within=this.traverseOneOrManyType(t.within,this.traversals.contentResource))),t.startCanvas&&(typeof t.startCanvas=="string"?t.startCanvas=this.traverseType({"@id":t.startCanvas,"@type":"sc:Canvas"},this.traversals.canvas):t.startCanvas&&this.traverseType(t.startCanvas,this.traversals.canvas)),t.contentLayer&&(typeof t.contentLayer=="string"?t.contentLayer=this.traverseLayer({"@id":t.contentLayer,"@type":"sc:Layer"}):t.contentLayer=this.traverseLayer(t.contentLayer)),t}traverseOneOrManyType(t,i){if(!Array.isArray(t))if(this.options.convertPropsToArray)t=[t];else return this.traverseType(t,i);return t.map(n=>this.traverseType(n,i))}traverseType(t,i){return i.reduce((n,r)=>{let a=r(n);return typeof a>"u"&&!this.options.allowUndefinedReturn?n:a},t)}},lE="http://library.stanford.edu/iiif/image-api/compliance.html#level1",uE="http://library.stanford.edu/iiif/image-api/compliance.html#level2",cE="http://library.stanford.edu/iiif/image-api/conformance.html#level1",dE="http://library.stanford.edu/iiif/image-api/conformance.html#level2",hE="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",pE="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",fE="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",mE="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",gE="http://iiif.io/api/image/1/level1.json",yE="http://iiif.io/api/image/1/profiles/level1.json",vE="http://iiif.io/api/image/1/level2.json",xE="http://iiif.io/api/image/1/profiles/level2.json",SE="http://iiif.io/api/image/2/level1.json",wE="http://iiif.io/api/image/2/profiles/level1.json",bE="http://iiif.io/api/image/2/level2.json",CE="http://iiif.io/api/image/2/profiles/level2.json",PE="level1",EE="level2",AE="http://iiif.io/api/image/2/level1",IE="http://iiif.io/api/image/2/level2",TE=[AE,IE,lE,uE,cE,dE,hE,pE,fE,mE,gE,yE,vE,xE,SE,wE,bE,CE,PE,EE],Wp={attributionLabel:"Attribution",lang:"none",providerId:"http://example.org/provider",providerName:"Unknown"};function RE(e){if(typeof e=="string")return[e];if(!e)return[];let t=Array.isArray(e)?e:[e],i=[];for(let n of t){if(typeof n=="string"){i.push(n);continue}i.push({"@language":n["@language"]||n.language,"@value":n["@value"]||n.value})}return i}function Wr(e,t="none"){if(!e)return{none:[""]};let i=RE(e),n={};for(let r of i){if(typeof r=="string"){n[t]=n[t]?n[t]:[],n[t].push(r||"");continue}if(!r["@language"]){n[t]=n[t]?n[t]:[],n[t].push(r["@value"]||"");continue}let a=r["@language"];n[a]=n[a]?n[a]:[],n[a].push(r["@value"]||"")}return Object.keys(n).length===0?{none:[""]}:n}function M0(e){if(Array.isArray(e))return M0(e.find(t=>typeof t=="string"));if(Oo.indexOf(e)!==-1)return"level2";if(TE.indexOf(e)!==-1)return"level1";if(mp.indexOf(e)!==-1)return"level0";if(typeof e=="string")return e}function _E(e){let t=Array.isArray(e)?e:[e];for(let i of t)switch(i){case"http://iiif.io/api/image/2/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2":return"ImageService2";case"http://iiif.io/api/image/1/context.json":case"http://library.stanford.edu/iiif/image-api/1.1/context.json":return"ImageService1";case"http://iiif.io/api/annex/openannotation/context.json":return"ImageApiSelector"}}function ME(e){switch(e){case"http://iiif.io/api/image/2/level0.json":case"http://iiif.io/api/image/2/level1.json":case"http://iiif.io/api/image/2/level2.json":return"ImageService2";case"http://iiif.io/api/auth/1/kiosk":case"http://iiif.io/api/auth/1/login":case"http://iiif.io/api/auth/1/clickthrough":case"http://iiif.io/api/auth/1/external":case"http://iiif.io/api/auth/0/kiosk":case"http://iiif.io/api/auth/0/login":case"http://iiif.io/api/auth/0/clickthrough":case"http://iiif.io/api/auth/0/external":return"AuthCookieService1";case"http://iiif.io/api/auth/1/token":case"http://iiif.io/api/auth/0/token":return"AuthTokenService1";case"http://iiif.io/api/auth/1/logout":case"http://iiif.io/api/auth/0/logout":return"AuthLogoutService1";case"http://iiif.io/api/search/1/search":case"http://iiif.io/api/search/0/search":return"SearchService1";case"http://iiif.io/api/search/1/autocomplete":case"http://iiif.io/api/search/0/autocomplete":return"AutoCompleteService1"}}function I0(e){for(let t of["sc","oa","dcterms","dctypes","iiif"])if(e.startsWith(`${t}:`))return e.slice(t.length+1);return e}var kE=["Collection","Manifest","Annotation","AnnotationPage","Range","Service"];function qp(e){let t=e["@id"]||e.id,i=e["@type"]||e.type,n=e.profile||void 0,r=e["@context"]||void 0;if(n){let a=ME(n);if(a)return a}if(r){let a=_E(r);if(a)return a}if(i){if(Array.isArray(i)){if(i.indexOf("oa:CssStylesheet")!==-1)return"CssStylesheet";if(i.indexOf("cnt:ContentAsText")!==-1)return"TextualBody";i=i[0]}for(let a of["sc","oa","dcterms","dctypes","iiif"])if(i.startsWith(`${a}:`)){i=i.slice(a.length+1);break}switch(i){case"Layer":return"AnnotationCollection";case"AnnotationList":return"AnnotationPage";case"cnt:ContentAsText":return"TextualBody"}}if(i&&kE.indexOf(i)!==-1)return i;if(e.format){if(e.format.startsWith("image/"))return"Image";if(e.format.startsWith("text/")||e.format==="application/pdf")return"Text";if(e.format.startsWith("application/"))return"Dataset"}return t&&(t.endsWith(".jpg")||t.endsWith(".png")||t.endsWith(".jpeg"))?"Image":i||"unknown"}var OE=/http(s)?:\/\/(creativecommons.org|rightsstatements.org)[^"'\\<\n]+/gm;function LE(e){let t=e.match(OE);return t?t[0]:e}function zE(e,t="Rights/License",i="none"){let n=null,r=[],a=Array.isArray(e)?e:[e];for(let l of a){let c=l?LE(l):void 0;if(c&&(c.indexOf("creativecommons.org")!==-1||c.indexOf("rightsstatements.org")!==-1)){c.startsWith("https://")?n=`http://${c.slice(8)}`:n=c;continue}c&&r.push({label:{[i]:[t]},value:{[i]:[c]}})}return[n,r]}var FE=["http://iiif.io/api/presentation/2/context.json","http://iiif.io/api/image/2/context.json","http://iiif.io/api/image/1/context.json","http://library.stanford.edu/iiif/image-api/1.1/context.json","http://iiif.io/api/search/1/context.json","http://iiif.io/api/search/0/context.json","http://iiif.io/api/auth/1/context.json","http://iiif.io/api/auth/0/context.json","http://iiif.io/api/annex/openannotation/context.json"];function NE(e){if(e){let t=Array.isArray(e)?e:[e],i=[];for(let n of t)n==="http://iiif.io/api/presentation/2/context.json"&&i.push("http://iiif.io/api/presentation/3/context.json"),FE.indexOf(n)===-1&&i.push(n);if(t.length)return i.length===1?i[0]:i}}function BE(e){return e?e.map(t=>({label:Wr(t.label),value:Wr(t.value)})):[]}var T0=0;function k0(e,t){let i=encodeURI(e.id||e["@id"]||"").trim();return i&&t?`${i}/${t}`:i||(T0++,`http://example.org/${e["@type"]}${t?`/${t}`:""}/${T0}`)}function Bn(e){let t=[...e.behavior||[]];e.viewingHint&&t.push(e.viewingHint);let i;return Array.isArray(e.motivation)?i=e.motivation.map(I0):e.motivation&&(i=I0(e.motivation)),{"@context":e["@context"]?NE(e["@context"]):void 0,id:(e["@id"]||k0(e)).trim(),type:qp(e),behavior:t.length?t:void 0,height:e.height?e.height:void 0,width:e.width?e.width:void 0,motivation:i,viewingDirection:e.viewingDirection,profile:e.profile,format:e.format?e.format:void 0,duration:void 0,timeMode:void 0}}function Dn(e){let[t,i]=zE(e.license),n=[...e.metadata?BE(e.metadata):[],...i];return{rights:t,metadata:n.length?n:void 0,label:e.label?Wr(e.label):void 0,requiredStatement:e.attribution?{label:Wr(Wp.attributionLabel),value:Wr(e.attribution)}:void 0,navDate:e.navDate,summary:e.description?Wr(e.description):void 0,thumbnail:DE(e.thumbnail)}}function DE(e){return e&&(Array.isArray(e)?e:[e]).map(t=>typeof t=="string"?{id:t,type:"Image"}:(t.type==="unknown"&&(t.type="Image"),t))}function jE(e){if(!e.within)return;let t=Array.isArray(e.within)?e.within:[e.within],i=[];for(let n of t)if(typeof n=="string"){if(n)switch(e["@type"]){case"sc:Manifest":i.push({id:n,type:"Collection"});break}}else n["@id"]&&i.push({id:n["@id"],type:qp(n)});return i.length?i:void 0}function dr(e){let t=e.related?Array.isArray(e.related)?e.related:[e.related]:[],i=e.contentLayer;return{provider:e.logo||t.length?[{id:Wp.providerId,type:"Agent",homepage:t.length?[t[0]]:void 0,logo:e.logo?Array.isArray(e.logo)?e.logo:[e.logo]:void 0,label:Wr(Wp.providerName)}]:void 0,partOf:jE(e),rendering:e.rendering,seeAlso:e.seeAlso,start:e.startCanvas,service:e.service?Nn(e.service):void 0,supplementary:i?[i]:void 0}}function VE(e){return{chars:e.chars,format:e.format?e.format:void 0,language:e.language}}function UE(e){return en({...Bn(e),...Dn(e),...dr(e),items:e.members})}function WE(e){let t=[],i=[],n,r;for(let l of e.sequences||[])console.log(l),l.canvases.length&&t.push(...l.canvases),l.behavior&&i.push(...l.behavior),l.viewingDirection&&(r=l.viewingDirection),l.startCanvas&&(n=l.startCanvas);let a=Bn(e);return i.length&&(a.behavior?a.behavior.push(...i):a.behavior=i),en({...a,...Dn(e),...dr(e),viewingDirection:r,start:n,items:t,structures:HE(e.structures)})}function HE(e){if(!e)return e;let t=new Map;for(let n of e)t.set(n.id,n);let i=[];for(let n of e)if(n.items){let r=n.items.map(a=>typeof a=="string"?(i.push(a),t.get(a)||a):a&&a.id?(i.push(a.id),t.get(a.id)||a):a);n.items=r}return e.filter(n=>i.indexOf(n.id)===-1)}function qE(e){return en({...Bn(e),...Dn(e),...dr(e),annotations:e.otherContent&&e.otherContent.length?e.otherContent:void 0,items:e.images&&e.images.length?[{id:k0(e,"annotation-page"),type:"AnnotationPage",items:e.images}]:void 0})}function QE(e){return en({...Bn(e),...Dn(e),...dr(e),items:e.resources&&e.resources.length?e.resources:void 0})}function $E(e){return!e.canvases||e.canvases.length===0?{canvases:[],behavior:[]}:{canvases:e.canvases,behavior:e.viewingHint?[e.viewingHint]:[],viewingDirection:e.viewingDirection,startCanvas:e.startCanvas}}function GE(e){function t(i){if(Array.isArray(i)){if(i.length>1)return{type:"List",items:i.map(t)};i=i[0]}if(typeof i=="string")return encodeURI(i).trim();if("@type"in i){let n;if(typeof i.full=="string")n=i.full;else if(i.full["@type"]==="dctypes:Image")n={id:i.full["@id"],type:"Image"};else if(i.full["@type"]==="sc:Canvas")n={id:i.full["@id"],type:"Canvas"};else throw new Error(`Unsupported source type on annotation: ${i.full["@type"]}`);return{type:"SpecificResource",source:n,selector:Hp(i.selector)}}else return encodeURI(i["@id"]).trim()}return en({...Bn(e),...Dn(e),...dr(e),target:t(e.on),body:Array.isArray(e.resource)?e.resource.map(R0):R0(e.resource)})}function R0(e){return e.type==="Choice"?e:O0(e)}function O0(e){let t=e;return en({...Bn(t),...Dn(t),...dr(t),...VE(t)})}function YE(e){let t=[];return e.default&&e.default!=="rdf:nil"&&t.push(e.default),e.item&&e.item!=="rdf:nil"&&t.push(...e.item),en({...Bn(e),...Dn(e),items:t})}function XE(e){return en({...Bn(e),...Dn(e),...dr(e),items:e.members})}function KE(e){let{"@id":t,"@type":i,"@context":n,profile:r,...a}=e,l={};return t&&(l["@id"]=t),l["@type"]=qp(e),l["@type"]==="unknown"&&(n&&n.length&&(l["@context"]=n),l["@type"]="Service"),r&&(l.profile=M0(r)),en({...l,...a})}function ZE(e){return en({...Bn(e),...Dn(e),...dr(e)})}var JE=new aE({collection:[UE],manifest:[WE],canvas:[qE],annotationList:[QE],sequence:[$E],annotation:[GE],contentResource:[O0],choice:[YE],range:[XE],service:[KE],layer:[ZE]});function L0(e){return e&&e["@context"]&&(e["@context"]==="http://iiif.io/api/presentation/2/context.json"||e["@context"].indexOf("http://iiif.io/api/presentation/2/context.json")!==-1||e["@context"]==="http://www.shared-canvas.org/ns/context.json")||e["@context"]==="http://iiif.io/api/image/2/context.json"?JE.traverseUnknown(e):e}function Hp(e){if((Array.isArray(e["@type"])&&e["@type"].includes("oa:SvgSelector")||e["@type"]=="oa:SvgSelector")&&("chars"in e||"value"in e))return{type:"SvgSelector",value:"chars"in e?e.chars:e.value};if(e["@type"]==="oa:FragmentSelector")return{type:"FragmentSelector",value:e.value};if(e["@type"]==="oa:Choice")return[Hp(e.default),...(Array.isArray(e.item)?e.item:[e.item]).map(Hp)];if(e["@type"]=="iiif:ImageApiSelector")return{type:"ImageApiSelector",region:"region"in e?e.region:void 0,rotation:"rotation"in e?e.rotation:void 0};throw new Error(`Unsupported selector type: ${e["@type"]}`)}function tn(e){return typeof e=="string"?!1:e&&!e.type&&"source"in e?(e.type="SpecificResource",!0):!!e&&e.type==="SpecificResource"}function Zu(...e){return t=>e.reduce((i,n)=>n(i),t)}var Qp=["Collection","Manifest","Canvas","AnnotationPage","AnnotationCollection","Annotation","ContentResource","Range","Service","Selector","Agent"];function z0(e,t){if(typeof e>"u"||e===null)throw new Error("Null or undefined is not a valid entity.");if(Array.isArray(e))throw new Error("Array is not a valid entity");if(typeof e!="object"){if(t)return t;throw new Error(`${typeof e} is not a valid entity`)}if(typeof e.type=="string"){let i=Qp.indexOf(e.type);if(i!==-1)return Qp[i]}if(e.profile)return"Service";throw new Error("Resource type is not known")}var $p=class F0{constructor(t,i={}){vn(this,"traversals"),vn(this,"options"),vn(this,"_traverseManifest",Zu(this.traverseManifestItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseManifestStructures.bind(this),this.traverseInlineAnnotationPages.bind(this))),vn(this,"_traverseCanvas",Zu(this.traverseCanvasItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this),this.traverseInlineAnnotationPages.bind(this))),vn(this,"_traverseAnnotationPage",Zu(this.traverseAnnotationPageItems.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this))),vn(this,"_traverseRange",Zu(this.traverseRangeRanges.bind(this),this.traverseLinking.bind(this),this.traverseDescriptive.bind(this),this.traverseLinkedCanvases.bind(this))),this.traversals={collection:[],manifest:[],canvas:[],annotationCollection:[],annotationPage:[],annotation:[],contentResource:[],choice:[],range:[],service:[],agent:[],specificResource:[],geoJson:[],...t},this.options={allowUndefinedReturn:!1,...i}}static all(t){return new F0({collection:[t],manifest:[t],canvas:[t],annotationCollection:[t],annotationPage:[t],annotation:[t],contentResource:[t],choice:[t],range:[t],service:[t],geoJson:[t],specificResource:[t],agent:[t]})}traverseDescriptive(t){return t.thumbnail&&(t.thumbnail=Nn(t.thumbnail).map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.provider&&(t.provider=t.provider.map(i=>this.traverseAgent(i,t))),t}traverseLinking(t){return t.seeAlso&&(t.seeAlso=t.seeAlso.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.service&&(t.service=Nn(t.service).map(i=>this.traverseService(i))),t.services&&(t.services=Nn(t.services).map(i=>this.traverseService(i,t))),t.logo&&(t.logo=t.logo.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.homepage&&(t.homepage=Nn(t.homepage).map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.partOf&&(t.partOf=t.partOf.map(i=>typeof i=="string"||!i.type?this.traverseType(i,{parent:t},this.traversals.contentResource):i.type==="Canvas"?this.traverseType(i,{parent:t},this.traversals.canvas):i.type==="AnnotationCollection"?this.traverseType(i,{parent:t},this.traversals.annotationCollection):i.type==="Collection"?this.traverseType(i,{parent:t},this.traversals.collection):this.traverseType(i,{parent:t},this.traversals.contentResource))),t.start&&(tn(t.start)?t.start=this.traverseSpecificResource(t.start,"Canvas",t):t.start=this.traverseType(t.start,{parent:t},this.traversals.canvas)),t.rendering&&(t.rendering=t.rendering.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t.supplementary&&(t.supplementary=t.supplementary.map(i=>this.traverseType(i,{parent:t},this.traversals.contentResource))),t}traverseCollectionItems(t){return t.items&&t.items.map(i=>i.type==="Collection"?this.traverseCollection(i):this.traverseManifest(i)),t}traverseCollection(t,i){return this.traverseType(this.traverseDescriptive(this.traverseInlineAnnotationPages(this.traverseLinking(this.traverseLinkedCanvases(this.traverseCollectionItems(t))))),{parent:i},this.traversals.collection)}traverseGeoJson(t,i){return this.traverseType(t,{parent:i},this.traversals.geoJson)}traverseNavPlace(t){return t.navPlace&&(t.navPlace=this.traverseGeoJson(t.navPlace,t)),t}traverseManifestItems(t){return t.items&&(t.items=t.items.map(i=>this.traverseCanvas(i))),t}traverseManifestStructures(t){return t.structures&&(t.structures=t.structures.map(i=>this.traverseRange(i))),t}traverseManifest(t,i){return this.traverseType(this._traverseManifest(t),{parent:i},this.traversals.manifest)}traverseCanvasItems(t){return t.items=(t.items||[]).map(i=>this.traverseAnnotationPage(i,t)),t}traverseInlineAnnotationPages(t){return typeof t=="string"||!t||t.annotations&&(t.annotations=t.annotations.map(i=>this.traverseAnnotationPage(i,t))),t}traverseCanvas(t,i){return this.traverseType(this._traverseCanvas(t),{parent:i},this.traversals.canvas)}traverseAnnotationPageItems(t){return t.items&&(t.items=t.items.map(i=>this.traverseAnnotation(i,t))),t}traverseAnnotationPage(t,i){return this.traverseType(this._traverseAnnotationPage(t),{parent:i},this.traversals.annotationPage)}traverseAnnotationBody(t){return Array.isArray(t.body)?t.body=t.body.map(i=>this.traverseContentResource(i,t)):t.body&&(t.body=this.traverseContentResource(t.body,t)),t}traverseLinkedCanvases(t){return t.placeholderCanvas&&(t.placeholderCanvas=this.traverseCanvas(t.placeholderCanvas)),t.accompanyingCanvas&&(t.accompanyingCanvas=this.traverseCanvas(t.accompanyingCanvas)),t}traverseAnnotation(t,i){return this.traverseType(this.traverseLinking(this.traverseAnnotationBody(this.traverseDescriptive(t))),{parent:i},this.traversals.annotation)}traverseContentResourceLinking(t){return typeof t=="string"||!t||t&&t.service&&(t.service=Nn(t.service||[]).map(i=>this.traverseService(i,t))),t}traverseContentResource(t,i){return t.type==="Choice"&&(t.items=t.items.map(n=>this.traverseContentResource(n,t))),tn(t)?this.traverseSpecificResource(t,"ContentResource"):this.traverseType(this.traverseInlineAnnotationPages(this.traverseContentResourceLinking(t)),{parent:i},this.traversals.contentResource)}traverseSpecificResource(t,i,n){let r=t.source;return typeof t.source=="string"&&(r={id:t.source,type:i||"unknown"}),this.traverseType({...t,source:i==="Canvas"||r.type==="Canvas"?this.traverseType(r,{parent:n},this.traversals.canvas):i==="ContentResource"?this.traverseContentResource(r,{parent:n}):this.traverseUnknown(r,{parent:n,typeHint:i})},{parent:n},this.traversals.specificResource)}traverseRangeRanges(t){return t.items&&(t.items=t.items.map(i=>typeof i=="string"?this.traverseCanvas({id:i,type:"Canvas"},t):tn(i)?this.traverseSpecificResource(i,"Canvas",t):i.type==="Manifest"?this.traverseManifest(i,t):this.traverseRange(i,t))),t}traverseRange(t,i){return this.traverseType(this._traverseRange(t),{parent:i},this.traversals.range)}traverseAgent(t,i){return this.traverseType(this.traverseDescriptive(this.traverseLinking(t)),{parent:i},this.traversals.agent)}traverseType(t,i,n){return n.reduce((r,a)=>{let l=a(r,i);return typeof l>"u"&&!this.options.allowUndefinedReturn?r:l},t)}traverseService(t,i){let n=Object.assign({},t);return n&&n.service&&(n.service=Nn(n.service).map(r=>this.traverseService(r))),this.traverseType(n,{parent:i},this.traversals.service)}traverseUnknown(t,{parent:i,typeHint:n}={}){let r=z0(t,n);switch(r){case"Collection":return this.traverseCollection(t,i);case"Manifest":return this.traverseManifest(t,i);case"Canvas":return this.traverseCanvas(t,i);case"AnnotationPage":return this.traverseAnnotationPage(t,i);case"Annotation":return this.traverseAnnotation(t,i);case"ContentResource":return this.traverseContentResource(t,i);case"Range":return this.traverseRange(t,i);case"Service":return this.traverseService(t,i);case"Agent":return this.traverseAgent(t,i);default:throw new Error(`Unknown or unsupported resource type of ${r}`)}}};function Xp(e,t){let i=t||"unknown";if(!e)return;if(typeof e=="string")return{id:e,type:i};if(tn(e))return Xp(e.source,t);let n=i&&i!=="unknown"?i:e.type||e["@type"],r=e.id||e["@id"];if(n&&n.indexOf(":")!==-1&&(n=n.split(":").pop()),r&&n)return{id:r,type:n}}var qo={},mt="iiif-parser:hasPart",Ei="iiif-parser:partOf",Qo="iiif-parser:isExternal",ji="__$UNSET$__",Kp="__$UNWRAP$__",ce=[];Object.freeze(ce);Object.freeze(qo);function B0(e){if(e===qo||Object.keys(e).length===0)return!0;for(let t in e)return!1;return!0}function Go(e,t){if(t&&t["@explicit"]){let i={},n=Object.keys(t);for(let r of n)r===Ei||r==="@explicit"||(B0(t[r])?i[r]=e[r]:i[r]=t[r]);return i}return e}function Zp(e,t,i){let n=Xp(t);if(!n)return[void 0,void 0];let r=e.requests[n.id],a=n.type||e.mapping[n.id];if(!a||r&&r.resourceUri&&(!e.entities[a]||!e.entities[a][r.resourceUri]))return[void 0,void 0];let l=e.entities[a][r?r.resourceUri:n.id];if(n.type&&!l)return Zp(e,{id:n.id},i);if(l&&l[mt]){let c=l[mt].find(p=>i?p[Ei]===i.id:p[Ei]===l.id);return[Go(l,c),l]}return[l,l]}var D0={id:"https://iiif-parser/annotation-page",type:"AnnotationPage",behavior:ce,label:null,thumbnail:ce,summary:null,requiredStatement:null,metadata:ce,rights:null,provider:ce,items:ce,seeAlso:ce,homepage:ce,rendering:ce,service:ce},j0={id:"https://iiif-parser/empty-canvas",type:"Canvas",label:null,behavior:ce,thumbnail:ce,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:ce,rights:null,navDate:null,provider:ce,items:ce,annotations:ce,seeAlso:ce,homepage:ce,partOf:ce,rendering:ce,service:ce,duration:0,height:0,width:0},V0={id:"https://iiif-parser/empty-collection",type:"Collection",label:null,viewingDirection:"left-to-right",behavior:ce,thumbnail:ce,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:ce,rights:null,navDate:null,provider:ce,items:ce,annotations:ce,seeAlso:ce,homepage:ce,partOf:ce,rendering:ce,service:ce,services:ce},U0={id:"https://iiif-parser/empty-manifest",type:"Manifest",annotations:ce,behavior:ce,homepage:ce,items:ce,label:null,metadata:ce,navDate:null,provider:ce,partOf:ce,accompanyingCanvas:null,placeholderCanvas:null,rendering:ce,requiredStatement:null,rights:null,seeAlso:ce,service:ce,services:ce,start:null,structures:ce,summary:null,thumbnail:ce,viewingDirection:"left-to-right"},W0={id:"https://iiif-parser/empty-canvas",type:"Range",label:null,behavior:ce,thumbnail:ce,accompanyingCanvas:null,placeholderCanvas:null,summary:null,requiredStatement:null,metadata:ce,rights:null,navDate:null,provider:ce,items:ce,annotations:ce,seeAlso:ce,homepage:ce,partOf:ce,rendering:ce,service:ce,start:null,supplementary:null,viewingDirection:"left-to-right"},H0={id:"https://iiif-parser/empty-agent",type:"Agent",label:{},logo:ce,seeAlso:ce,homepage:ce},q0={id:"https://iiif-parser/empty-service",type:"UnknownService"};function Yp(e,t={}){if(Array.isArray(e))return Yp(e[0]);if(typeof e=="string"){let[i,n]=e.split("#");return n?{type:"SpecificResource",source:{id:i,type:t.typeHint||"Unknown"},selector:{type:"FragmentSelector",value:n}}:{type:"SpecificResource",source:{id:i,type:t.typeMap&&t.typeMap[i]||t.typeHint||"Unknown"}}}if(e.type==="Choice"||e.type==="List"||e.type==="Composite"||e.type==="Independents")return Yp(e.items[0]);if(!e.type&&"source"in e&&(e.type="SpecificResource"),e.type==="SpecificResource")return e.source.type==="Canvas"&&e.source.partOf&&typeof e.source.partOf=="string"&&(e.source.partOf=[{id:e.source.partOf,type:"Manifest"}]),e.selector?{type:"SpecificResource",source:e.source,selector:e.selector}:{type:"SpecificResource",source:e.source};if(e.id){e.type==="Canvas"&&e.partOf&&typeof e.partOf=="string"&&(e.partOf=[{id:e.partOf,type:"Manifest"}]);let[i,n]=e.id.split("#");return n?{type:"SpecificResource",source:{...e,id:i},selector:{type:"FragmentSelector",value:n}}:{type:"SpecificResource",source:{...e,id:i}}}return{type:"SpecificResource",source:e}}function Q0(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}function $0(e,t){if(typeof e=="string")return{id:e,type:t};if(!e.id)throw new Error(`Invalid resource does not have an ID (${JSON.stringify(e)}, ${t})`);return e}function eA(e,t){return(i,n)=>{let r=e[i]?e[i]:{};return(a,l)=>{let c=$0(a,n||i);return c&&c.id&&i?(r[c.id]=r[c.id]?tc(r[c.id],c,{parent:l.parent,isTopLevel:t.id===c.id}):tc({id:c.id,type:c.type},c,{parent:l.parent,isTopLevel:t.id===c.id}),{id:c.id,type:i==="ContentResource"?i:c.type}):c}}}function ec(e,t,i){if(!t)return e;if(Array.isArray(e)){if(!Array.isArray(t))throw new Error("Cannot merge array with non-array");let n=[...e];for(let r of t)if(r["@id"]&&!r.id&&(r.id=r["@id"]),r["@type"]&&!r.type&&(r.type=r["@type"]),r!=null)if(Array.isArray(r))n.push(r);else if(typeof r=="object"&&r.id&&r.type){let a=n.findIndex(l=>l.id===r.id&&l.type===r.type);a>=0&&(n[a]=ec(n[a],r))}else e.indexOf(r)===-1&&n.push(r);return n}else if(typeof e=="object"){if(Array.isArray(t)||typeof t!="object")throw new Error("Cannot merge object with non-object");let n={...e},r=[],a=[],l=Object.keys(e).filter(m=>m!==mt&&m!=="id"&&m!=="type"),c={},p={};for(let[m,h]of Object.entries(t)){if(m===mt||m==="id"||m==="type")continue;let y=n[m];y===h?a.push(m):y===ce||!y?(r.push(m),n[m]=h):(y&&h&&(c[m]=y,p[m]=h),n[m]=ec(y,h),n[m]===c[m]&&(a.push(m),delete c[m]))}if(i&&(i.parent&&i.parent.id||i.isTopLevel)){let m=[],h={};if(i.parent?h[Ei]=i.parent.id:i.isTopLevel&&(h[Ei]=e.id),n[mt]&&n[mt].length){let y=!(n[mt]||[]).find(w=>w["@explicit"]),S=r.length>0||a.length!==l.length;if(y&&S)for(let w of n[mt]){let v={...w},x=Object.keys(c);if(v){v["@explicit"]=!0;for(let A of l)A!==mt&&(v[A]=qo);for(let A of x)v[A]=c[A]}m.push(v)}else m.push(...n[mt]);if(S){let w=Object.keys(p);h["@explicit"]=!0;for(let v of r)h[v]=qo;for(let v of a)h[v]=qo;for(let v of w)h[v]=p[v]}}h.id=n.id,h.type=n.type,m.push(h),n[mt]=m}return n}else if(e)return e;return t}function tc(e,t,i){if(typeof e=="string")return e;if(t.id!==e.id||t.type!==e.type){if(t.type==="ImageService3")return t;if(e.type==="ImageService3")return e;throw new Error(`Can only merge entities with identical identifiers and type! ${t.type}(${t.id}) => ${e.type}(${e.id})`)}return ec({...e},t,i)}function tA(e){return(t,i)=>n=>{let{id:r,type:a}=$0(n,i||t);if(typeof r>"u")throw new Error("Found invalid entity without an ID.");return t==="ContentResource"||t==="Service"?e[r]=t:e[r]=a,n}}function iA(e){let t=Object.assign({},e);if(t["@id"]&&(t.id=t["@id"]),t["@type"]&&(t.type=t["@type"]),t.service){let i=[];t.service=Array.isArray(t.service)?t.service:[t.service];for(let n of t.service)i.push({id:n["@id"]||n.id,type:n["@type"]||n.type});t.service=i}return Object.assign({},q0,t)}function nA(e){return t=>{e.Service=e.Service?e.Service:{};let i=t.id||t["@id"],n=iA(t);return n&&n.id&&(e.Service[n.id]?e.Service[i]=tc(e.Service[i],n):e.Service[i]=n),t}}function rA(e){let t=JSON.stringify(e),i=5381,n=t.length;for(;n;)i=i*33^t.charCodeAt(--n);let r=(i>>>0).toString(16);return r.length%2?"0"+r:r}function Gp(e){return t=>typeof t=="string"?{id:t,type:e}:t.id?t.type?t:{type:e,...t}:{id:`vault://${rA(t)}`,type:e,...t}}function Ho(e){return t=>({...e,...t})}function oa(e){return Array.isArray(e)?e:[e]}function oA(e){return e.body&&(e.body=oa(e.body)),e.seeAlso&&(e.seeAlso=oa(e.seeAlso)),e.audience&&(e.audience=oa(e.audience)),e.accessibility&&(e.accessibility=oa(e.accessibility)),e.motivation&&(e.motivation=oa(e.motivation)),e}function G0(e,{typeHint:t,partOfTypeHint:i}={}){if(typeof e=="string"&&(e={id:e,type:t||"unknown"}),tn(e))return typeof e.source=="string"&&(e.source={id:e.source,type:t||"unknown"}),e.source.type==="Canvas"&&e.source.partOf&&typeof e.source.partOf=="string"&&(e.source.partOf=[{id:e.source.partOf,type:i||"Manifest"}]),e;let n;if((e.id||"").indexOf("#")!==-1){let[r,a]=(e.id||"").split("#");e.id=r,a&&(n={type:"FragmentSelector",value:a})}return{type:"SpecificResource",source:e,selector:n}}function sA(e){let t=Object.assign({},e);return e&&e.items&&(t.items=e.items.map(i=>typeof i=="string"||i.type==="Canvas"?G0(i):i)),t}function aA(e){let t=Object.assign({},e);return t.start?(t.start=G0(t.start,{typeHint:"Canvas"}),t):e}function lA(e){let t=Object.assign({},e);return t.target?(t.target=Yp(t.target,{typeHint:"Canvas"}),t):e}function Y0(e){return e}function Ju(e){return typeof e.items>"u"&&(e[Qo]=!0),e}function Jp(e){let t=L0(e),i=Q0(),n={},r=eA(i,t),a=tA(n),l=new $p({collection:[Ju,Ho(V0),a("Collection"),r("Collection")],manifest:[Ju,Ho(U0),aA,a("Manifest"),r("Manifest")],canvas:[Ho(j0),a("Canvas"),r("Canvas")],annotationPage:[Ju,Gp("AnnotationPage"),Ho(D0),a("AnnotationPage"),r("AnnotationPage")],annotation:[Gp("Annotation"),oA,lA,a("Annotation"),r("Annotation")],contentResource:[Gp("ContentResource"),a("ContentResource"),r("ContentResource")],range:[Ho(W0),sA,a("Range","Canvas"),r("Range","Canvas")],agent:[Ho(H0),a("Agent"),r("Agent")],specificResource:[Y0],service:[nA(i)]}).traverseUnknown(t);return{entities:i,resource:l,mapping:n}}function X0(e){let t={};for(let[i,n]of e){if(i===Kp&&n!==ji)return n;n!==ji&&typeof n<"u"&&n!==null&&(t[i]=n)}return t}function ef(e,t,i){if(!t.type||!t.id)throw new Error("Unknown entity");if(!i[t.type])throw new Error(`Serializer not found for ${t.type}`);function n(r,a,l=0){let c=i[r.type];if(!c)return ji;if(l>20)throw new Error("Circular reference: "+r.id+" "+r.type);let[p,m]=Zp(e,r.type?r:r.id,a)||(r.id&&r.type?r:null);if(!p)return ji;let h=c(p,e,{parent:a,isTopLevel:t.id===r.id,fullResource:m}),y=h.next();for(;!y.done;){let S=y.value,w=ji;if(S)if(Array.isArray(S)){let v=[];for(let x of S)v.push(n(x,r,l+1));w=v}else w=n(S,r,l+1);y=h.next(w)}return y.value===ji?ji:X0(y.value)}return n(t)}function $o(e,{allowSourceString:t=!0,allowString:i=!1,allowedStringType:n}={}){let r=a=>{if(t&&a&&a.source&&typeof a.source!="string"){let l=Object.keys(a.source);if(a.source.id&&a.source.type&&l.length===2)return{...a,source:a.source.id}}return a};if(e){if(e.source&&e.source.partOf)return r(e);let a=Object.keys(e);if(a.length===2&&e.type&&e.source||a.length===3&&e.type&&e.source&&a.indexOf("selector")!==-1&&!e.selector)return i&&(!n||n===e.source.type)?e.source.id:e.source.type==="ContentResource"?{type:"SpecificResource",source:e.source.id}:e.source;if(e.selector&&!Array.isArray(e.selector)&&typeof e.selector!="string"&&e.selector.type==="FragmentSelector"){let l=`${e.source.id}#${e.selector.value}`;return i?l:{id:l,type:e.source.type}}}return r(e)}function $r(e){if(!e)return;let t=Object.keys(e);if(t.length!==0){if(t.length===1){let i=t[0];if(!i)return"";let n=(e[i]||[]).join("");return i==="@none"||i==="none"||i==="en"?n:{"@language":i,"@value":n}}return t.map(i=>({"@language":i,"@value":(e[i]||[]).join("")}))}}function K0(e){return Array.isArray(e)?e.map(t=>K0(t)):typeof e=="string"?e:e.type&&e.type==="Canvas"?e.id:e}function fr(e,t=!1){if(e)return e.length>1&&!t?e:e[0]||void 0}function uA(e){if(e){if(typeof e=="string")return{"@id":e};if("@id"in e){let t={...e};return delete t["@type"],t}return{"@context":"http://iiif.io/api/image/2/context.json","@id":e.id,profile:`http://iiif.io/api/image/2/profiles/${e.profile}.json`}}}function Hr(e,t){return[["@id",e.id],["@type",t],["format",e.format],["height",e.height],["width",e.width],["viewingDirection",e.viewingDirection!=="left-to-right"?e.viewingDirection:void 0],["license",e.license?e.license:void 0]]}function*qr(e){let t=e.provider?yield e.provider[0]:void 0;return[["label",$r(e.label)],["metadata",e.metadata&&e.metadata.length?e.metadata.map(i=>({label:$r(i.label)||"",value:$r(i.value)||""})):void 0],["description",$r(e.summary)],["thumbnail",fr(yield e.thumbnail)],["navDate",e.navDate],["logo",t?fr(t.logo):void 0],["homepage",t?t.homepage:void 0],["attribution",e.requiredStatement?$r(e.requiredStatement.value):void 0]]}function*sa(e){let t=e.start&&e.start.type&&e.start.type==="SpecificResource"?$o(e.start):e.start;return[["seeAlso",fr(yield e.seeAlso)],["service",fr((e.service||[]).map(uA))],["rendering",fr(yield e.rendering)],["startCanvas",t?t.id:void 0]]}function cA(e){return e.type==="SpecificResource"}function dA(e){return e&&e.type==="FragmentSelector"}function hA(e){if(e&&cA(e)){let t=e.id,i=e.selector?Array.isArray(e.selector)?e.selector[0]:e.selector:void 0;return dA(i)&&(t+="#"+i.value),t}return e?.id}var tf={Manifest:function*(e,t,{isTopLevel:i}){return[...i?[["@context","http://iiif.io/api/presentation/2/context.json"]]:[],...Hr(e,"sc:Manifest"),...yield*qr(e),...yield*sa(e),["sequences",[{"@id":`${e.id}/sequence0`,"@type":"sc:Sequence",canvases:yield e.items}]],["structures",yield e.structures]]},Canvas:function*(e){let t=(yield e.items)[0];return[...Hr(e,"sc:Canvas"),...yield*qr(e),...yield*sa(e),["images",t?[t.resources]:void 0],["annotations",e.annotations&&e.annotations.length?fr(yield e.annotations):void 0]]},AnnotationPage:function*(e){return[...Hr(e,"sc:AnnotationList"),...yield*qr(e),["resources",e.items&&e.items.length?fr(yield e.items):void 0]]},Annotation:function*(e){return[["@id",e.id],["@type","oa:Annotation"],["motivation","sc:painting"],["on",K0(e.target)],["resource",fr(yield e.body,!0)]]},ContentResource:function*(e){switch(e.type){case"Image":return[...Hr(e,"dctypes:Image"),...yield*qr(e),...yield*sa(e)];case"Text":case"Dataset":default:return[...Hr(e,void 0),...yield*qr(e)]}},AnnotationCollection:function*(e){return[["@id",e.id],["@type","sc:Layer"],["label",$r(e.label)]]},Collection:function*(e){return[...Hr(e,"sc:Collection"),...yield*qr(e),...yield*sa(e),["members",yield*e.items]]},Range:function*(e){let t=[],i=[];if(e.items)for(let n of e.items){let r=n.type==="SpecificResource"?n.source:n;if(r){let a=yield r;t.push({"@id":hA(n),"@type":r.type,label:a?a.label:void 0,within:e.id}),r.type==="Canvas"&&i.push(r.id)}}return[...Hr(e,"sc:Range"),...yield*qr(e),...yield*sa(e),["canvases",i.length===t.length?i:void 0],["members",i.length!==t.length?t:void 0]]}};function Qr(e){return[["id",e.id?.startsWith("vault://")?void 0:e.id],["type",e.type],["format",e.format],["profile",e.profile],["height",e.height||void 0],["width",e.width||void 0],["duration",e.duration||void 0],["viewingDirection",e.viewingDirection!=="left-to-right"?e.viewingDirection:void 0],["behavior",e.behavior&&e.behavior.length?e.behavior:void 0],["timeMode",e.timeMode],["motivation",Array.isArray(e.motivation)?e.motivation[0]:e.motivation],[mt,ji]]}function wt(e){if(e===ji||!e||e.length===0)return;let t=e.filter(i=>i!==ji);if(t.length!==0)return t}function Z0(e){if(e&&e.type&&e.type==="ImageService2"){let{id:t,type:i,profile:n,...r}=e,a=typeof n=="string"?n:Array.isArray(n)?n.find(l=>typeof l=="string"):"";return{"@id":t,"@type":i,profile:a?a.startsWith("http")?a:`http://iiif.io/api/image/2/${a}.json`:"http://iiif.io/api/image/2/level0.json",...r}}return e}function N0(e){if(Array.isArray(e)||(e=e?[e]:[]),!(!e||e.length===0))return e.map(Z0)}function*hr(e){return[["label",e.label],["metadata",wt(e.metadata)],["summary",e.summary],["requiredStatement",e.requiredStatement],["rights",Array.isArray(e.rights)?e.rights[0]||void 0:e.rights||void 0],["navDate",e.navDate],["language",e.language],["thumbnail",wt(yield e.thumbnail)],["placeholderCanvas",yield e.placeholderCanvas],["accompanyingCanvas",yield e.accompanyingCanvas],["provider",wt(yield e.provider)]]}function*pr(e,t){let i=[];for(let n of e.partOf||[])n.type==="Manifest"&&t.type==="Manifest"||i.push(yield n);return[["seeAlso",wt(yield e.seeAlso)],["service",wt(N0(e.service))],["services",wt(N0(e.services))],["rendering",wt(yield e.rendering)],["supplementary",wt(yield e.supplementary)],["homepage",wt(yield e.homepage)],["logo",wt(yield e.logo)],["partOf",wt(i)],["start",e.start?$o(e.start):e.start]]}var nf={Manifest:function*(e,t,{isTopLevel:i}){return i?[["@context",e["@context"]?e["@context"]:"http://iiif.io/api/presentation/3/context.json"],...Qr(e),...yield*hr(e),...yield*pr(e),["items",yield e.items],["structures",wt(yield e.structures)],["annotations",wt(yield e.annotations)],["navPlace",e.navPlace]]:[...Qr(e),...yield*hr(e)]},Canvas:function*(e,t,{parent:i}){return i&&i.type!=="Manifest"&&i.type!=="Canvas"?[["id",e.id]]:[...Qr(e),...yield*hr(e),...yield*pr(e,i),["items",yield e.items],["annotations",wt(yield e.annotations)],["navPlace",e.navPlace]]},Agent:function*(e){return[["id",e.id],["type","Agent"],["label",e.label],...yield*pr(e)]},AnnotationPage:function*(e){let t=Object.entries(e).map(([n,r])=>[n,Array.isArray(r)?wt(r):r]).filter(([n,r])=>n!=="items"&&n!=="id"&&n!==mt&&n!==Ei&&n!==Qo),i=yield e.items;return[["id",e.id?.startsWith("vault://")?void 0:e.id],...t,...yield*pr(e),["items",i.length||e[Qo]===!1?i:ji]]},Service:function*(e){return[[Kp,Z0(e)]]},Annotation:function*(e){let t=Object.entries(e).map(([n,r])=>n==="motivation"?[n,Array.isArray(r)?r[0]:r]:n==="target"?[n,$o(r,{allowString:!0,allowSourceString:!0,allowedStringType:"Canvas"})]:[n,Array.isArray(r)?wt(r):r]).filter(([n])=>n!=="body"&&n!==mt&&n!==Qo),i;if(Array.isArray(e.body)){let n=[];for(let r of e.body)if(r&&tn(r)){let a={...r};r.source.type!=="Canvas"?a.source=yield r.source:a.source=r.source,n.push($o(a,{allowSourceString:!0}))}else n.push(yield r);i=n}else e.body&&tn(e.body)?(i={...e.body},i.source=yield e.body.source):i=yield e.body;return[...t,...yield*hr(e),...yield*pr(e),["body",i.length===1?i[0]:i]]},ContentResource:function*(e){return pA([...Qr(e),...yield*hr(e),...yield*pr(e),["annotations",wt(yield e.annotations)],["items",wt(yield e.items)]],e)},AnnotationCollection:function*(e){return[["id",e.id],["type","AnnotationCollection"],["label",e.label]]},Collection:function*(e,t,{isTopLevel:i}){return i?[["@context","http://iiif.io/api/presentation/3/context.json"],...Qr(e),...yield*hr(e),...yield*pr(e),["items",wt(yield e.items)],["navPlace",e.navPlace]]:[...Qr(e),...yield*hr(e)]},Range:function*(e){let t=[];for(let i of e.items)i.type==="Range"?t.push(yield i):i&&i.type==="SpecificResource"?t.push($o(i)):t.push(i);return[...Qr(e),...yield*hr(e),...yield*pr(e),["items",t],["annotations",wt(yield e.annotations)],["navPlace",e.navPlace]]}};function pA(e,t){let i=Object.keys(t),n=e.map(([r])=>r);for(let r of i)r===mt||r===Qo||n.indexOf(r)===-1&&typeof t[r]<"u"&&e.push([r,t[r]]);return e}var fA=(e,t)=>{let{entities:i,resource:n,mapping:r}=Jp(t);if(n.id===void 0)return[ra({id:e,message:"ID is not defined in resource."})];let a=[Wu({entities:i}),Dp({mapping:r})];return n.id!==e&&(a.push(Bp({id:e,type:n.type})),a.push(Vp({requestId:e,actualId:n.id}))),a.push(Up({id:e})),a},J0=Number.isNaN||function(t){return typeof t=="number"&&t!==t};function mA(e,t){return!!(e===t||J0(e)&&J0(t))}function of(e,t){if(!Array.isArray(e)||!Array.isArray(t))return e===t;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!mA(e[i],t[i]))return!1;return!0}function rf(e,t,i){let n=e.iiif.requests[t],r=e.iiif.mapping[t];if(!r||!e.iiif.entities[r][n.resourceUri])return;let a=e.iiif.entities[r][n.resourceUri];if(a&&a[mt]){let l=a[mt].find(c=>i?c[Ei]===i.id:c[Ei]===a.id);return Go(a,l)}return a}function gA(e){return e&&typeof e.then=="function"}function sf(e,t,{waitTimeout:i=30}={}){return(n,r)=>{let a=e.getStore(),l=a.getState(),c=l.iiif.requests[n];if(c){if(c.loadingState===Vo){let m=rf(l,n);if(m)return m}switch(c.loadingState){case jo:break;case na:return(async()=>{let m,h=!1;try{let y=await Promise.race([new Promise((S,w)=>{h||(m=a.subscribe(()=>{let v=a.getState();if(v.iiif.requests[n].loadingState===jo){w();return}if(v.iiif.requests[n].loadingState===Vo){let x=rf(v,n);x?S(x):w()}}))}),new Promise((S,w)=>setTimeout(()=>{h=!0,w()},i*60*1e3))]);if(m&&m(),y)return y}catch{m&&m()}})()}}e.dispatch(jp({id:n}));let p=m=>{if(!m)return;!m.id&&!m["@id"]&&(m["@type"]&&(m["@id"]=n),m.id=n);let h=fA(n,m);return e.dispatch(Wo({actions:h})),rf(a.getState(),n)};try{let m=t(n,r);return gA(m)?(async()=>{try{return p(await m)}catch(h){throw e.dispatch(ra({id:n,message:h.toString()})),h}})():p(m)}catch(m){throw e.dispatch(ra({id:n,message:m.toString()})),m}}}var af="@iiif/SET_META_VALUE",lf="@iiif/SET_META_VALUE_DYNAMIC",uf="@iiif/UNSET_META_VALUE",yA=ht(af)(),vA=ht(lf)(),xA=ht(uf)(),cf={setMetaValue:yA,setMetaValueDynamic:vA,unsetMetaValue:xA};function df(){return{Collection:{},Manifest:{},Canvas:{},AnnotationPage:{},AnnotationCollection:{},Annotation:{},ContentResource:{},Range:{},Service:{},Selector:{},Agent:{}}}var Yo={},SA=(e,t)=>(i,n,r)=>(r.dispatch=a=>(i(l=>e(l,a),!1,a),a),r.dispatchFromDevtools=!0,{dispatch:(...a)=>r.dispatch(...a),...t}),wA=SA,mf=new Map,ic=e=>{let t=mf.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([i,n])=>[i,n.getState()])):{}},bA=(e,t,i)=>{if(e===void 0)return{type:"untracked",connection:t.connect(i)};let n=mf.get(i.name);if(n)return{type:"tracked",store:e,...n};let r={connection:t.connect(i),stores:{}};return mf.set(i.name,r),{type:"tracked",store:e,...r}},CA=(e,t={})=>(i,n,r)=>{let{enabled:a,anonymousActionType:l,store:c,...p}=t,m;try{m=(a??(Yo.env?Yo.env.MODE:void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!m)return(Yo.env?Yo.env.MODE:void 0)!=="production"&&a&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(i,n,r);let{connection:h,...y}=bA(c,m,p),S=!0;r.setState=(x,A,C)=>{let I=i(x,A);if(!S)return I;let E=C===void 0?{type:l||"anonymous"}:typeof C=="string"?{type:C}:C;return c===void 0?(h?.send(E,n()),I):(h?.send({...E,type:`${c}/${E.type}`},{...ic(p.name),[c]:r.getState()}),I)};let w=(...x)=>{let A=S;S=!1,i(...x),S=A},v=e(r.setState,n,r);if(y.type==="untracked"?h?.init(v):(y.stores[y.store]=r,h?.init(Object.fromEntries(Object.entries(y.stores).map(([x,A])=>[x,x===y.store?v:A.getState()])))),r.dispatchFromDevtools&&typeof r.dispatch=="function"){let x=!1,A=r.dispatch;r.dispatch=(...C)=>{(Yo.env?Yo.env.MODE:void 0)!=="production"&&C[0].type==="__setState"&&!x&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),x=!0),A(...C)}}return h.subscribe(x=>{var A;switch(x.type){case"ACTION":if(typeof x.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return hf(x.payload,C=>{if(C.type==="__setState"){if(c===void 0){w(C.state);return}Object.keys(C.state).length!==1&&console.error(`
73
73
  [zustand devtools middleware] Unsupported __setState action format.
74
74
  When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
75
75
  and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }