react-iiif-vault 1.5.9 → 1.5.10

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:Mb,findFiberByHostInstance:o.findFiberByHostInstance||kb,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{Ka=s.inject(o),un=s}catch{}o=!!s.checkDCE}}return o},i.isAlreadyRendering=function(){return!1},i.observeVisibleRects=function(o,s,u,d){if(!Ti)throw Error(l(363));o=Jd(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=ze;try{return ze=o,s()}finally{ze=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=Tn(g,b),s.payload={element:o},d=d===void 0?null:d,d!==null&&(s.callback=d),o=Zn(f,s,b),o!==null&&(zi(o,f,b,g),ol(o,f,b)),b},i}});var Pv=Rt((xT,Cv)=>{"use strict";Cv.exports=bv()});var qs=Rt((XT,Sx)=>{"use strict";Sx.exports=ReactDOM});var bx=Rt(Ep=>{"use strict";var wx=qs();Ep.createRoot=wx.createRoot,Ep.hydrateRoot=wx.hydrateRoot;var KT});var SS=Rt(xS=>{"use strict";var Zo=H();function VA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var UA=typeof Object.is=="function"?Object.is:VA,WA=Zo.useState,HA=Zo.useEffect,qA=Zo.useLayoutEffect,QA=Zo.useDebugValue;function $A(e,t){var i=t(),n=WA({inst:{value:i,getSnapshot:t}}),r=n[0].inst,a=n[1];return qA(function(){r.value=i,r.getSnapshot=t,wf(r)&&a({inst:r})},[e,i,t]),HA(function(){return wf(r)&&a({inst:r}),e(function(){wf(r)&&a({inst:r})})},[e]),QA(i),i}function wf(e){var t=e.getSnapshot;e=e.value;try{var i=t();return!UA(e,i)}catch{return!0}}function GA(e,t){return t()}var YA=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?GA:$A;xS.useSyncExternalStore=Zo.useSyncExternalStore!==void 0?Zo.useSyncExternalStore:YA});var bS=Rt((Sk,wS)=>{"use strict";wS.exports=SS()});var PS=Rt(CS=>{"use strict";var lc=H(),XA=bS();function KA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ZA=typeof Object.is=="function"?Object.is:KA,JA=XA.useSyncExternalStore,eI=lc.useRef,tI=lc.useEffect,iI=lc.useMemo,nI=lc.useDebugValue;CS.useSyncExternalStoreWithSelector=function(e,t,i,n,r){var a=eI(null);if(a.current===null){var l={hasValue:!1,value:null};a.current=l}else l=a.current;a=iI(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,ZA(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=JA(e,a[0],a[1]);return tI(function(){l.hasValue=!0,l.value=c},[c]),nI(c),c}});var AS=Rt((bk,ES)=>{"use strict";ES.exports=PS()});var i1=Rt((AD,t1)=>{"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(k){var O=typeof k;return!!k&&(O=="object"||O=="function")}function M(k){if(typeof k=="number")return k;if(function(V){return typeof V=="symbol"||function(J){return!!J&&typeof J=="object"}(V)&&x.call(V)=="[object Symbol]"}(k))return NaN;if(E(k)){var O=typeof k.valueOf=="function"?k.valueOf():k;k=E(O)?O+"":O}if(typeof k!="string")return k===0?k:+k;k=k.replace(c,"");var Q=m.test(k);return Q||h.test(k)?y(k.slice(2),Q?2:8):p.test(k)?NaN:+k}r.exports=function(k,O,Q){var V,J,U,q,ee,Me,pe=0,Re=!1,ke=!1,He=!0;if(typeof k!="function")throw new TypeError("Expected a function");function qe($e){var N=V,G=J;return V=J=void 0,pe=$e,q=k.apply(G,N)}function $($e){var N=$e-Me;return Me===void 0||N>=O||N<0||ke&&$e-pe>=U}function ve(){var $e=I();if($($e))return it($e);ee=setTimeout(ve,function(N){var G=O-(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,O),Re?qe(G):q}(Me);if(ke)return ee=setTimeout(ve,O),qe(Me)}return ee===void 0&&(ee=setTimeout(ve,O)),q}return O=M(O)||0,E(Q)&&(Re=!!Q.leading,U=(ke="maxWait"in Q)?A(M(Q.maxWait)||0,O):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,M=Math.min,k=function(){return C.Date.now()};function O(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(O(V)){var J=typeof V.valueOf=="function"?V.valueOf():V;V=O(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 O(U)&&(q="leading"in U?!!U.leading:q,ee="trailing"in U?!!U.trailing:ee),function(Me,pe,Re){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=k();if(ye(Pe))return Ve(Pe);ve=setTimeout(ge,function(ne){var he=pe-(ne-it);return N?M(he,qe-(ne-Qe)):he}(Pe))}function Ve(Pe){return ve=void 0,G&&ke?de(Pe):(ke=He=void 0,$)}function Fe(){var Pe=k(),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,O(Re)&&($e=!!Re.leading,qe=(N="maxWait"in Re)?E(Q(Re.maxWait)||0,pe):qe,G="trailing"in Re?!!Re.trailing:G),Fe.cancel=function(){ve!==void 0&&clearTimeout(ve),Qe=0,ke=it=He=ve=void 0},Fe.flush=function(){return ve===void 0?$:Ve(k())},Fe}(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:()=>Jc,trackWindowScroll:()=>it});let r=H();var a=i.n(r),l=i(697);let c=qs();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(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},h(Y)}function y(Y,L){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);L&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function S(Y,L,X){return(L=v(L))in Y?Object.defineProperty(Y,L,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[L]=X,Y}function w(Y,L){for(var X=0;X<L.length;X++){var K=L[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 L=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(L)==="symbol"?L:String(L)}function x(Y,L){return x=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},x(Y,L)}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(L){return L.__proto__||Object.getPrototypeOf(L)},A(Y)}var C=function(Y){Y.forEach(function(L){L.isIntersecting&&L.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 L,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 L=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(L.prototype,X),Object.defineProperty(L,"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 M=E;var k=i(296),O=i.n(k),Q=i(96),V=i.n(Q),J=function(Y){var L=getComputedStyle(Y,null);return L.getPropertyValue("overflow")+L.getPropertyValue("overflow-y")+L.getPropertyValue("overflow-x")};let U=function(Y){if(!(Y instanceof HTMLElement))return window;for(var L=Y;L&&L instanceof HTMLElement;){if(/(scroll|auto)/.test(J(L)))return L;L=L.parentNode}return window};function q(Y){return q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},q(Y)}var ee=["delayMethod","delayTime"];function Me(){return Me=Object.assign?Object.assign.bind():function(Y){for(var L=1;L<arguments.length;L++){var X=arguments[L];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Me.apply(this,arguments)}function pe(Y,L){for(var X=0;X<L.length;X++){var K=L[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 Re(Y,L){return Re=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},Re(Y,L)}function ke(Y,L){if(L&&(q(L)==="object"||typeof L=="function"))return L;if(L!==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(L){return L.__proto__||Object.getPrototypeOf(L)},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 L=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&&Re(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=O()(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={},Ha=Object.keys(Et);for(Ar=0;Ar<Ha.length;Ar++)Qi=Ha[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 L.propTypes={delayMethod:l.PropTypes.oneOf(["debounce","throttle"]),delayTime:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool},L.defaultProps={delayMethod:"throttle",delayTime:300,useIntersectionObserver:!0},L};function Qe(Y){return Qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},Qe(Y)}function $e(Y,L){for(var X=0;X<L.length;X++){var K=L[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,L){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},N(Y,L)}function G(Y){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(L){return L.__proto__||Object.getPrototypeOf(L)},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 L,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 L=je,(X=[{key:"render",value:function(){return a().createElement(M,this.props)}}])&&$e(L.prototype,X),Object.defineProperty(L,"prototype",{writable:!1}),je}(a().Component);let ye=it(de);function ge(Y){return ge=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},ge(Y)}function Ve(Y,L){for(var X=0;X<L.length;X++){var K=L[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 Fe(Y,L){return Fe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},Fe(Y,L)}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(L){return L.__proto__||Object.getPrototypeOf(L)},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&&Fe(j,W)})(je,Y);var L,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 L=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(M,{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(L.prototype,X),Object.defineProperty(L,"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(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},ot(Y)}var Ri=["afterLoad","beforeLoad","delayMethod","delayTime","effect","placeholder","placeholderSrc","scrollPosition","threshold","useIntersectionObserver","visibleByDefault","wrapperClassName","wrapperProps"];function Dt(Y,L){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);L&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function Wt(Y){for(var L=1;L<arguments.length;L++){var X=arguments[L]!=null?arguments[L]:{};L%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,L,X){return(L=Wa(L))in Y?Object.defineProperty(Y,L,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[L]=X,Y}function Ti(){return Ti=Object.assign?Object.assign.bind():function(Y){for(var L=1;L<arguments.length;L++){var X=arguments[L];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Ti.apply(this,arguments)}function Zc(Y,L){for(var X=0;X<L.length;X++){var K=L[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,Wa(K.key),K)}}function Wa(Y){var L=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(L)==="symbol"?L:String(L)}function ms(Y,L){return ms=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},ms(Y,L)}function ln(Y){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(L){return L.__proto__||Object.getPrototypeOf(L)},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 L,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 L=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,Ri));return a().createElement("img",Ti({},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",Ti({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}}])&&Zc(L.prototype,X),Object.defineProperty(L,"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 Jc=gs})(),t1.exports=n})()});var eT={};Db(eT,{AnnotationContext:()=>UR,AnnotationPageContext:()=>WR,AnnotationStyleProvider:()=>dR,Auth:()=>_f,AuthProvider:()=>Rf,AuthRContext:()=>eo,AuthReactContext:()=>OS,AuthReactContextActions:()=>LS,CanvasAnnotations:()=>JI,CanvasContext:()=>Vi,CanvasPanel:()=>Bt,CanvasStrategyProvider:()=>lm,CanvasWorldObject:()=>um,CollectionContext:()=>HR,CombinedMetadata:()=>eR,ComplexTimelineProvider:()=>mm,ContextBridge:()=>zf,ControlsReactContext:()=>ka,CreateCustomShape:()=>Wm,CustomContextBridge:()=>qS,CustomContextBridgeProvider:()=>mI,EventsProvider:()=>fI,Image:()=>Jw,ImageService:()=>jR,ImageServiceLoaderContext:()=>jw,InnerViewerProvider:()=>jS,LanguageProvider:()=>WI,LanguageString:()=>Mw,LocaleString:()=>Ii,ManifestContext:()=>yf,ManifestMetadata:()=>iR,MediaPlayerProvider:()=>Fa,Metadata:()=>ja,PolygonSelector:()=>DR,RangeContext:()=>vf,ReactEventContext:()=>to,ReactVaultContext:()=>mr,Render3DModelStrategy:()=>wm,RenderAccompanyingCanvas:()=>Am,RenderAnnotationStrategy:()=>bm,RenderAudioStrategy:()=>Em,RenderComplexTimelineStrategy:()=>gm,RenderEmptyStrategy:()=>cm,RenderImageStrategy:()=>xm,RenderSvgEditorControls:()=>aR,RenderTextualContentStrategy:()=>ym,RenderVideoStrategy:()=>Rm,RenderYouTubeStrategy:()=>Tm,ResourceProvider:()=>ei,ResourceReactContext:()=>ta,SelectorControllerProvider:()=>lR,SequenceThumbnails:()=>oR,SimpleViewerProvider:()=>kf,SimpleViewerReactContext:()=>is,SingleCanvasThumbnail:()=>km,StrategyReactContext:()=>Ma,ThumbnailFallbackImage:()=>ho,TranslationProvider:()=>UI,TransliterationProvider:()=>HI,VaultProvider:()=>Xr,ViewerPresetContext:()=>Ui,VirtualAnnotationProvider:()=>jf,VisibleCanvasReactContext:()=>Zr,authDetailsForResource:()=>Ef,createAuthStateStore:()=>Cf,createProbe:()=>Pf,defaultEmitter:()=>US,emptyActions:()=>Kf,emptyStrategy:()=>Zf,expandTarget:()=>Nt,findAllCanvasesInRange:()=>sc,findFirstCanvasFromRange:()=>mS,findManifestSelectedRange:()=>DA,findSelectedRange:()=>xf,flattenAnnotationPageIds:()=>Jf,formatTime:()=>Ec,get3dStrategy:()=>im,getComplexTimelineStrategy:()=>nm,getDefaultAnnotationStyles:()=>Fm,getImageStrategy:()=>Ra,getManifestSequence:()=>ac,getParsedTargetSelector:()=>Ca,getRenderingStrategy:()=>om,getTextualContentStrategy:()=>Ta,getVideoStrategy:()=>_a,getVisibleCanvasesFromCanvasId:()=>jA,hasAuth:()=>aI,isImageApiSelector:()=>gc,makeAccessServiceRequest:()=>bf,makeAccessTokenRequest:()=>uc,parseRotation:()=>yc,parseSelector:()=>Wn,parseSpecificResource:()=>LI,svgThemes:()=>v1,unknownResponse:()=>Pa,unsupportedStrategy:()=>et,useAnnotation:()=>wa,useAnnotationPage:()=>Qf,useAnnotationPageManager:()=>Aa,useAnnotationStyles:()=>Nm,useAnnotationsAtTime:()=>qR,useAuthActions:()=>FS,useAuthService:()=>zS,useAuthStore:()=>es,useAuthToken:()=>uI,useAuthTokens:()=>Af,useCanvas:()=>Ce,useCanvasChoices:()=>QR,useCanvasClock:()=>$R,useCanvasSequence:()=>Sf,useCanvasStartTime:()=>za,useCanvasSubset:()=>GR,useClosestLanguage:()=>Ow,useCollection:()=>YR,useComplexTimeline:()=>$I,useContextBridge:()=>Ff,useCreateLocaleString:()=>qI,useCurrentAuth:()=>lI,useCustomContextBridge:()=>Lf,useDispatch:()=>Nf,useEventEmitter:()=>ma,useEventListener:()=>XR,useExistingVault:()=>Kr,useExternalCollection:()=>KR,useExternalManifest:()=>gf,useExternalResource:()=>ua,useIIIFLanguage:()=>Ac,useImage:()=>jc,useImageService:()=>qm,useImageServiceLoader:()=>La,useImageTile:()=>ZR,useIsAuthEnabled:()=>Tf,useLoadImageService:()=>Ia,useLocaleString:()=>Lw,useManifest:()=>vt,useMediaActions:()=>YI,useMediaElements:()=>XI,useMediaState:()=>GI,usePaintables:()=>tm,usePaintingAnnotations:()=>ro,usePolygonHelper:()=>Vm,useRange:()=>ca,useRenderControls:()=>ni,useRenderingStrategy:()=>sm,useResourceContext:()=>Xt,useResourceEvents:()=>va,useResources:()=>em,useSearchService:()=>Mf,useSelectorController:()=>Lm,useSelectorEmitter:()=>uR,useSelectorEvents:()=>Om,useSelectorHelper:()=>cR,useSimpleMediaPlayer:()=>so,useSimpleViewer:()=>fa,useStrategy:()=>pt,useStyleHelper:()=>JR,useStyles:()=>no,useSvgEditor:()=>Um,useThumbnail:()=>Qn,useTranslations:()=>hm,useTransliteration:()=>dm,useVault:()=>_e,useVaultEffect:()=>vm,useVaultSelector:()=>De,useViewerPreset:()=>ga,useVirtualAnnotationPage:()=>Bf,useVirtualAnnotationPageContext:()=>Df,useVisibleCanvases:()=>Jr});var mo=R(H(),1);var ii=R(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,Vb=typeof AbortController=="function",Bl=Vb?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})}},Ub=typeof AbortSignal=="function",Wb=typeof Bl.AbortSignal=="function",Oy=Ub?AbortSignal:Wb?Bl.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))}},gh=new Set,ph=(e,t)=>{let i=`LRU_CACHE_OPTION_${e}`;Dl(i)&&yh(i,`${e} option`,`options.${t}`,Mo)},fh=(e,t)=>{let i=`LRU_CACHE_METHOD_${e}`;if(Dl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);yh(i,`${e} method`,`cache.${t}()`,r)}},Hb=(e,t)=>{let i=`LRU_CACHE_PROPERTY_${e}`;if(Dl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);yh(i,`${e} property`,`cache.${t}`,r)}},Ly=(...e)=>{typeof process=="object"&&process&&typeof process.emitWarning=="function"?process.emitWarning(...e):console.error(...e)},Dl=e=>!gh.has(e),yh=(e,t,i,n)=>{gh.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),Fy=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)}},mh=class{constructor(t){if(t===0)return[];let i=Fy(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:M,allowStaleOnFetchAbort:k,ignoreFetchAbort:O}=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?Fy(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 mh(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=!!M,this.allowStaleOnFetchAbort=!!k,this.ignoreFetchAbort=!!O,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";Dl(q)&&(gh.add(q),Ly("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",q,e))}J&&ph("stale","allowStale"),V&&ph("maxAge","ttl"),Q&&ph("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 fh("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 Bl;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 M=this.backgroundFetch(t,E,I,v);return M.__returned=M}else{let M=this.valList[E];if(this.isBackgroundFetch(M)){let J=i&&M.__staleWhileFetching!==void 0;return A&&(A.fetch="inflight",J&&(A.returnedStale=!0)),J?M.__staleWhileFetching:M.__returned=M}let k=this.isStale(E);if(!x&&!k)return A&&(A.fetch="hit"),this.moveToTail(E),n&&this.updateItemAge(E),this.statusTTL(A,E),M;let O=this.backgroundFetch(t,E,I,v),Q=O.__staleWhileFetching!==void 0,V=Q&&i;return A&&(A.fetch=Q&&k?"stale":"refresh",V&&k&&(A.returnedStale=!0)),V?O.__staleWhileFetching:O.__returned=O}}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 fh("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 fh("reset","clear"),this.clear}get length(){return Hb("length","size"),this.size}static get AbortController(){return Bl}static get AbortSignal(){return Oy}},zy=Mo;var Ux=R(nv(),1);var dt=R(H(),1),Iu=R(H(),1),RP=R(B(),1);var Ci=R(H(),1);function av(e,t){let i;return(...n)=>{window.clearTimeout(i),i=window.setTimeout(()=>e(...n),t)}}function ql({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:M,height:k,bottom:O,right:Q,x:V,y:J}=c.current.element.getBoundingClientRect(),U={left:I,top:E,width:M,height:k,bottom:O,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&&!rC(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 iC(w,!!t),tC(S),(0,Ci.useEffect)(()=>{v(),x()},[t,w,S]),(0,Ci.useEffect)(()=>v,[]),[A,a,y]}function tC(e){(0,Ci.useEffect)(()=>{let t=e;return window.addEventListener("resize",t),()=>void window.removeEventListener("resize",t)},[e])}function iC(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 nC=["x","y","top","bottom","left","right","width","height"],rC=(e,t)=>nC.every(i=>e[i]===t[i]);var Op=R(H(),1),wn=R(H(),1),Hx=R(Pv(),1),qx=R(H(),1),_u=R(H(),1),Fo=R(B(),1),Di=R(H(),1),t0=R(H(),1),i0=R(H(),1),n0=R(B(),1),Jt=R(B(),1),Mu=R(H(),1);var Js=R(B(),1),Fp=R(H(),1),o0=R(H(),1),QP=R(H(),1),s0=R(H(),1),l0=R(H(),1),Sn=R(H(),1),u0=R(H(),1),_p=R(B(),1),c0=R(H(),1),xn=R(H(),1),_t=R(H(),1),d0=R(H(),1),Fu=R(H(),1),St=R(B(),1),Mp=R(B(),1),ZP=R(H(),1),p0=R(B(),1),f0=R(H(),1);var sC=Object.defineProperty,aC=(e,t,i)=>t in e?sC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Kl=(e,t,i)=>(aC(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 lC="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Rv="http://library.stanford.edu/iiif/image-api/compliance.html#level1",Tv="http://library.stanford.edu/iiif/image-api/compliance.html#level2",uC="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",cC="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",dC="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",Fv="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",hC="http://iiif.io/api/image/1/level0.json",pC="http://iiif.io/api/image/1/profiles/level0.json",zv="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",fC="http://iiif.io/api/image/2/level0.json",mC="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",gC="level0",Hv="level1",qv="level2",yC="http://iiif.io/api/image/2/level0",Qv="http://iiif.io/api/image/2/level1",$v="http://iiif.io/api/image/2/level2",vC="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,Tv,Mv,Ov,Fv,Bv,Dv,Uv,Wv,qv,Yv],Kv=[...Xv,Qv,Rv,_v,kv,Lv,zv,Nv,jv,Vv,Hv,Gv],xC=[yC,Qv,$v,lC,Rv,Tv,uC,_v,Mv,cC,kv,Ov,dC,Lv,Fv,hC,pC,zv,Nv,Bv,Dv,fC,mC,jv,Vv,Uv,Wv,gC,Hv,qv,vC,Gv,Yv];var SC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["sizeByWhListed"]},wC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPx","regionSquare","sizeByWhListed","sizeByH","sizeByW","sizeByWh"]},bC={extraFormats:["jpg","png"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPct","regionByPx","regionSquare","rotationBy90s","sizeByWhListed","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"]};function CC(e){return Xv.indexOf(e)!==-1?bC:Kv.indexOf(e)!==-1?wC:SC}function PC(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=CC(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 EC(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 AC(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 IC(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 RC(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}=RC(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:EC(h),size:AC(m),rotation:IC(p),quality:w[0],format:w[1]}}function _C(e){let t=TC(Dr(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=PC(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 MC(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 kC(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 Jl(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"&&xC.indexOf(i)!==-1)return!0;return!1}function OC(e){if(!Jl(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 Zl(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 zh(e){return Jl(e)?Zl(0,e)?0:Zl(1,e)?1:Zl(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 LC(e){if(!OC(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:zh(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:zh(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 FC(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=FC(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 NC(e){return Jl(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:ft(e),type:"fixed-service",height:t.height,width:t.width,level:zh(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=NC(r);a.length&&t.push(...a);let l=LC(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++)Jl(t[r])&&n.push(t[r]);return n}function BC(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 DC({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 jC({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 VC(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function UC(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,DC(a),jC(r),VC(l),`${p}.${c}`].filter(Boolean).join("/")}function Fh(e,t,i){let n=_C({"@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:UC(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 WC(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 HC(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),WC(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=Fh(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=Fh(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=Fh({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 qC(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 Zl(0,e)}var ex=class{constructor(e={}){Kl(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Kl(this,"fetchingCount",0),Kl(this,"imageServices",{}),Kl(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:MC(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||qC(e.width,e.height,a.result.sampledTiles),sizes:n?.sizes||kC(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 HC(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 BC(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}},ST=new ex;function eu(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},tu=e=>e?tx(e):tx;var $C=Object.create,Nh=Object.defineProperty,GC=Object.getOwnPropertyDescriptor,nx=Object.getOwnPropertyNames,YC=Object.getPrototypeOf,XC=Object.prototype.hasOwnProperty,KC=(e,t,i)=>t in e?Nh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Bh=(e,t)=>function(){return t||(0,e[nx(e)[0]])((t={exports:{}}).exports,t),t.exports},ZC=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of nx(t))!XC.call(e,r)&&r!==i&&Nh(e,r,{get:()=>t[r],enumerable:!(n=GC(t,r))||n.enumerable});return e},Dh=(e,t,i)=>(i=e!=null?$C(YC(e)):{},ZC(t||!e||!e.__esModule?Nh(i,"default",{value:e,enumerable:!0}):i,e)),Tt=(e,t,i)=>(KC(e,typeof t!="symbol"?t+"":t,i),i);var jh="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Vh="http://library.stanford.edu/iiif/image-api/compliance.html#level1",Uh="http://library.stanford.edu/iiif/image-api/compliance.html#level2",Wh="http://library.stanford.edu/iiif/image-api/conformance.html#level0",Hh="http://library.stanford.edu/iiif/image-api/conformance.html#level1",qh="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Qh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",$h="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Gh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Yh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Xh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",Kh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Zh="http://iiif.io/api/image/1/level0.json",Jh="http://iiif.io/api/image/1/profiles/level0.json",ep="http://iiif.io/api/image/1/level1.json",tp="http://iiif.io/api/image/1/profiles/level1.json",ip="http://iiif.io/api/image/1/level2.json",np="http://iiif.io/api/image/1/profiles/level2.json",rp="http://iiif.io/api/image/2/level0.json",op="http://iiif.io/api/image/2/profiles/level0.json",sp="http://iiif.io/api/image/2/level1.json",ap="http://iiif.io/api/image/2/profiles/level1.json",lp="http://iiif.io/api/image/2/level2.json",up="http://iiif.io/api/image/2/profiles/level2.json",cp="level0",dp="level1",hp="level2",pp="http://iiif.io/api/image/2/level0",fp="http://iiif.io/api/image/2/level1",mp="http://iiif.io/api/image/2/level2",Oo=[mp,Uh,qh,Gh,Kh,ip,np,lp,up,hp],iu=[...Oo,fp,Vh,Hh,$h,Xh,ep,tp,sp,ap,dp],gp=[pp,fp,mp,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,dp,hp],yp=gp,vp=[pp,jh,Wh,Qh,Yh,Zh,Jh,rp,op,cp],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 JC=Object.defineProperty,eP=(e,t,i)=>t in e?JC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,vn=(e,t,i)=>(eP(e,typeof t!="symbol"?t+"":t,i),i);function tP(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 iP(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 nP(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 rP(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 oP(e,t=""){let{path:i,scheme:n,server:r,prefix:a}=rP(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:tP(h),size:iP(m),rotation:nP(p),quality:w,format:v}}function sP(e){return Oo.indexOf(e)!==-1?sx:iu.indexOf(e)!==-1?ox:rx}function aP(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=sP(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 xp(e){let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&vp.indexOf(i)!==-1)return!0;return!1}function Le(e){if(e["@id"])return e["@id"];if(e.id)return e.id}function Us(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"&&gp.indexOf(i)!==-1)return!0;return!1}function ax(e){if(!Us(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"){if(iu.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 lP({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 uP({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 cP(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function nu(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,lP(a),uP(r),cP(l),`${p}.${c}`].filter(Boolean).join("/")}function Ln(e){return e.endsWith("info.json")?e:e.endsWith("/")?`${e}info.json`:`${e}/info.json`}function ru(e){let t=oP(Ln(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=aP(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 Vs(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(iu.includes(r))return!0}if(e===0){for(let r of n)if(vp.includes(r))return!0}}}return!1}function Ws(e){return Us(e)?Vs(0,e)?0:Vs(1,e)?1:Vs(2,e)?2:null:null}function Fn(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],i=t.length,n=[];for(let r=0;r<i;r++)Us(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 ou(e,t,i){let n=ru({"@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:nu(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=ou(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=ou(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=ou({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 bp(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 Us(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:Le(e),type:"fixed-service",height:t.height,width:t.width,level:Ws(e),version:bp(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:Ws(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:Ws(e),version:bp(e)?3:2})}}return t}function Sp(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 wp(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 Hs(e){if(typeof e=="string")return wp(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}:wp(n):null}function gx(e,t=!0,i){let n=[],r=Hs(e);if(r===null)return n;let a=e;if(n.push(r),t&&a&&a.width&&a.height){let l=[],c=Fn(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(...Sp([h])))}}if(l.length)return n.push(...l),n}return a.service&&n.push(...Sp(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={}){Tt(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Tt(this,"fetchingCount",0),Tt(this,"imageServices",{}),Tt(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&&!xp(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&&xp(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=Fn(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||eu(),i=e.loader||new Lo;return{store:tu((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 Cp=vx();var su={},zn={get(e){return e},setMetaValue([e,t,i],n){let r=zn.getResourceMeta(e,t),a=r?r[i]:void 0,l=typeof n=="function"?n(a):n;su[e]={...su[e]||{},[t]:{...(su[e]||{})[t]||{},[i]:l}}},getResourceMeta:(e,t)=>{let i=su[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 Pp(e=zn,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=Hs(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:Hs(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 JP=R(B(),1),eE=R(H(),1),ea=R(H(),1),tE=R(B(),1),iE=R(H(),1),m0=R(H(),1),dP=Object.defineProperty,hP=(e,t,i)=>t in e?dP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,P=(e,t,i)=>(hP(e,typeof t!="symbol"?t+"":t,i),i),Cu=["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 pP(){return Cu.reduce((e,t)=>(e[t]=[],e),{})}var zo=Cu.reduce((e,t)=>(e[t.slice(2).toLowerCase()]=t,e[t]=t,e),{}),fP="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Pu=(e=21)=>{let t="",i=crypto.getRandomValues(new Uint8Array(e));for(;e--;)t+=fP[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=zo[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=zo[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=Pu(),this.eventHandlers=pP()}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 Ap 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 Ap.fromImage("data:image/svg+xml;base64,"+btoa(t),i,n,r)}static fromImage(t,i,n,r){let a=new Ap;return a.applyProps({uri:t,id:r,display:n,target:i}),a}getImageUrl(){return this.uri}},Ip=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 mP(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=Rp(t[l].display.scale,e/(i||1));c<a&&(a=c,r=l)}return r}function Rp(e,t){return Math.abs(e-t)}function xu(e,t){let i=Rp(e.x,t.x),n=Rp(e.y,t.y);return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}function gP(e){let t=e.length;return e.indexOf("/info.json")===t-10?e.slice(0,-10):e}function au(e,t,i){return Math.min(Math.max(e,t),i)}var Zs=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,"version3"),P(this,"tileUrl"),this.tileUrl=gP(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.version3=t.version3,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]=au(i[m+1],r,l),i[m+3]=au(i[m+3],r,l),i[m+2]=au(i[m+2],a,c),i[m+4]=au(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,p){n.height=n.height?n.height:n.width;let m=c?Math.floor(i.width/r):Math.ceil(i.width/r),h=c?Math.floor(i.height/r):Math.ceil(i.height/r),y=Math.ceil(m/n.width),S=Math.ceil(h/n.height),w=xe.grid(y,S),v=xe.grid(y,S),x=a?a["@context"]?Array.isArray(a["@context"])?a["@context"]:[a["@context"]]:[]:[],A=typeof p<"u"?p:x.indexOf("http://iiif.io/api/image/3/context.json")!==-1;for(let I=0;I<S;I++)for(let E=0;E<y;E++){let M=E*n.width,k=I*n.height;v.addPoints(M*r,k*r,E===y-1?i.width:(M+n.width)*r,I===S-1?i.height:(k+n.height)*r),w.addPoints(M,k,E===y-1?m:M+n.width,I===S-1?h:k+n.height)}let C=new Nx({url:t,scaleFactor:r,points:w.build(),displayPoints:v.build(),width:i.width,height:i.height,tileWidth:n.width,format:l,version3:A});return C.applyProps({service:a}),C}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),l=Math.ceil(r/this.display.scale),c=`${a>this.tileWidth?this.tileWidth:a},`;return this.version3&&(c+=`${l>this.tileWidth?this.tileWidth:l}`),`${this.tileUrl}/${i[1]},${i[2]},${n},${r}/${c}/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[]}},yP=class extends bn{constructor(){super(...arguments),P(this,"type","spacial-content")}getAllPointsAt(e,t,i){return[[this,this.points,t]]}},vP=class extends yP{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=mP(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 lu(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]=lu(l,c,i.x,i.y,this.rotation),[h,y]=lu(l,c,n.x,n.y,this.rotation),[S,w]=lu(l,c,r.x,r.y,this.rotation),[v,x]=lu(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}},Eu=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 uu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,cu={},xP=["backgroundColor","opacity","boxShadow","borderColor","borderWidth","borderStyle","outlineColor","outlineWidth","outlineOffset","outlineStyle"],Gs=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=Pu(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=cu[i]||uu.exec(i)||uu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=cu[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=cu[e.style.outline]||uu.exec(e.style.outline)||uu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=cu[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 xP)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++}},yu=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,du=Math.sqrt,Qs=Math.sin,Cx=Math.cos,Ys=Math.PI,Su=1.70158,hu=Su*1.525,Px=Su+1,Ex=2*Ys/3,Ax=2*Ys/4.5,pu=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*Ys/2)},easeOutSine:function(e){return Qs(e*Ys/2)},easeInOutSine:function(e){return-(Cx(Ys*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-du(1-ct(e,2))},easeOutCirc:function(e){return du(1-ct(e-1,2))},easeInOutCirc:function(e){return e<.5?(1-du(1-ct(2*e,2)))/2:(du(1-ct(-2*e+2,2))+1)/2},easeInBack:function(e){return Px*e*e*e-Su*e*e},easeOutBack:function(e){return 1+Px*ct(e-1,3)+Su*ct(e-1,2)},easeInOutBack:function(e){return e<.5?ct(2*e,2)*((hu+1)*2*e-hu)/2:(ct(2*e-2,2)*((hu+1)*(e*2-2)+hu)+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-pu(1-e)},easeOutBounce:pu,easeInOutBounce:function(e){return e<.5?(1-pu(1-2*e))/2:(1+pu(2*e-1))/2}},SP=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()}},d_=Number.MIN_VALUE+1,Au=class{constructor(e,t,i,n=[],r){P(this,"id",Pu()),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 M=0;M<E;M++){let k=M*5;I[k]!==0&&(this.renderer.paint(x,M,I[k+1],I[k+2],I[k+3]-I[k+1],I[k+4]-I[k+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 SP(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,M=~~(a*r)*h;E<M&&(e=this.world.width*r/(a*r*h))}else{let E=this.world.height*w,M=~~(l*r)*h;E<M&&(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}},fu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,mu={},wP=["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=Pu(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=mu[i]||fu.exec(i)||fu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=mu[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=mu[e.style.outline]||fu.exec(e.style.outline)||fu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=mu[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 wP)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,Rx={},bP=typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes("firefox"),gu={},CP=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 zy({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 Zs){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,xu({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 bP?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 Gs&&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=Rx[x]||Ix.exec(x)||Ix.exec(x);Rx[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(gu[e]&&gu[e].naturalWidth>0){t(gu[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),gu[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 Zs)&&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()}},PP=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 EP(e){return{x:e[1],y:e[2],width:e[3]-e[1],height:e[4]-e[2]}}var Tx="pan",_x="scroll",AP="gesture",IP={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}={...IP,...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=AP,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=xu({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 M(U){let q=null,ee=null,Me=!1,pe=0;if(h.isPressing&&U.touches.length===2){let Re=U.touches[0].clientX,ke=U.touches[1].clientX;q=(Re+ke)/2;let He=U.touches[0].clientY,qe=U.touches[1].clientY;ee=(He+qe)/2,pe=xu({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=Tx)),E(C),C==""&&a==!0||C==_x){E("require-two-finger","notice");return}let Re=U.touches[0];q=Re.clientX,ee=Re.clientY}if(q!==null&&ee!==null){let Re=t.getRendererScreenPosition();if(Re){let{x:ke,y:He}=t.viewerToWorld(q-Re.x,ee-Re.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==Tx&&U.preventDefault()}function k(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 O(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",k),p&&p.addEventListener("touchmove",M),r&&(t.world.activatedEvents.push("onClick"),t.world.addEventListener("click",O)),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(EP(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",k),p&&(p.removeEventListener("touchmove",k),p.removeEventListener("wheel",V,{passive:!0,capture:!0})),r&&t.world.removeEventListener("click",O),n&&t.world.removeEventListener("wheel",Q),J()}},updatePosition(){}}),No=Iu.default.createContext("explore");No.displayName="Mode";var TP=()=>(0,Iu.useContext)(No);var Ru=Op.default.createContext(null);Ru.displayName="Atlas";var Tu=Op.default.createContext(null);Tu.displayName="Bounds";var wu,_P=typeof performance=="object"&&typeof performance.now=="function";if(_P){let e=performance;wu=()=>e.now()}else{let e=Date,t=e.now();wu=()=>e.now()-t}var MP=16;function Mx(e,t){e&&e.appendChild&&t&&e.appendChild(t)}function Qx(e,t){e&&e.removeChild&&t&&e.removeChild(t)}function kP(e,t){return Qx(e.world,t)}function OP(e,t,i){return $x(e.world,t,i)}function $x(e,t,i){e&&e instanceof Au&&(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 Cu){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(Cu.indexOf(r)!==-1){let a=zo[r];if(a){if(e.activatedEvents.indexOf(a)!==-1)continue;n=!0,e.activatedEvents.push(a)}}n&&e.triggerEventActivation()}var bu=new Map,kx={};function LP(e,{args:t=[],...i},n,r,a){if(!(n instanceof Au)&&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=Eu.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 Gs;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 Ip;break;case"compositeImage":case"composite-image":l=new vP({id:i.id,width:i.width,height:i.height,images:[],renderOptions:i.renderOptions});break;case"tiledImage":case"tiled-image":l=Zs.fromTile(i.uri,i.display,i.tile,i.scaleFactor,void 0,i.format,i.useFloorCalc,i.version3);break;case"paragraph":l=new yu,l.text=i.children;break;default:return}return Yx(c,i),Gx(l,{},i),l}function FP(e,t){if(t instanceof Eu)e.world=t;else if(t instanceof kp)e.world.appendChild(t);else if(t)throw new Error("Invalid root")}var Xs=(0,Hx.default)({unstable_now:wu,now:wu,createInstance:LP,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:FP,removeChildFromContainer:kP,createTextInstance(){},insertInContainerBefore:OP,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"),MP},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(){}});Xs.injectIntoDevTools({bundleType:0,version:qx.version,rendererPackageName:"@atlas-viewer/atlas"});function Lp(e,t){let i=bu.get(e);i&&Xs.updateContainer(null,i,null,()=>{bu.delete(e),t&&t(e)})}var Ox={render(e,t){let i=bu.get(t);if(i)Xs.updateContainer(e,i,null);else{let n=Xs.createContainer(t,0,null,!1,null,"",()=>{},null);Xs.updateContainer(e,n,null),bu.set(t,n)}},unmountComponentAtNode(e,t){Lp(e,t)}},Ks=typeof window<"u"&&(window.document?.createElement||window.navigator?.product==="ReactNative")?_u.useLayoutEffect:_u.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 Ks(()=>{if(r){let c=r.runtime;a!==c.mode&&(c.mode=a),Ox.render((0,Fo.jsx)(wn.default.StrictMode,{children:(0,Fo.jsx)(l,{children:(0,Fo.jsx)(Tu.Provider,{value:n,children:(0,Fo.jsx)(No.Provider,{value:a,children:(0,Fo.jsx)(Ru.Provider,{value:r,children:e})})})})}),c)}},[r,a,e]),Ks(()=>{if(r){let c=r.runtime;return()=>{Ox.unmountComponentAtNode(c)}}return()=>{}},[r]),null}),NP=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:Mb,findFiberByHostInstance:o.findFiberByHostInstance||kb,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{Ka=s.inject(o),un=s}catch{}o=!!s.checkDCE}}return o},i.isAlreadyRendering=function(){return!1},i.observeVisibleRects=function(o,s,u,d){if(!Ti)throw Error(l(363));o=Jd(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=ze;try{return ze=o,s()}finally{ze=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=Tn(g,b),s.payload={element:o},d=d===void 0?null:d,d!==null&&(s.callback=d),o=Zn(f,s,b),o!==null&&(zi(o,f,b,g),ol(o,f,b)),b},i}});var Pv=Rt((xT,Cv)=>{"use strict";Cv.exports=bv()});var qs=Rt((XT,Sx)=>{"use strict";Sx.exports=ReactDOM});var bx=Rt(Ep=>{"use strict";var wx=qs();Ep.createRoot=wx.createRoot,Ep.hydrateRoot=wx.hydrateRoot;var KT});var SS=Rt(xS=>{"use strict";var Zo=H();function VA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var UA=typeof Object.is=="function"?Object.is:VA,WA=Zo.useState,HA=Zo.useEffect,qA=Zo.useLayoutEffect,QA=Zo.useDebugValue;function $A(e,t){var i=t(),n=WA({inst:{value:i,getSnapshot:t}}),r=n[0].inst,a=n[1];return qA(function(){r.value=i,r.getSnapshot=t,wf(r)&&a({inst:r})},[e,i,t]),HA(function(){return wf(r)&&a({inst:r}),e(function(){wf(r)&&a({inst:r})})},[e]),QA(i),i}function wf(e){var t=e.getSnapshot;e=e.value;try{var i=t();return!UA(e,i)}catch{return!0}}function GA(e,t){return t()}var YA=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?GA:$A;xS.useSyncExternalStore=Zo.useSyncExternalStore!==void 0?Zo.useSyncExternalStore:YA});var bS=Rt((Sk,wS)=>{"use strict";wS.exports=SS()});var PS=Rt(CS=>{"use strict";var lc=H(),XA=bS();function KA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ZA=typeof Object.is=="function"?Object.is:KA,JA=XA.useSyncExternalStore,eI=lc.useRef,tI=lc.useEffect,iI=lc.useMemo,nI=lc.useDebugValue;CS.useSyncExternalStoreWithSelector=function(e,t,i,n,r){var a=eI(null);if(a.current===null){var l={hasValue:!1,value:null};a.current=l}else l=a.current;a=iI(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,ZA(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=JA(e,a[0],a[1]);return tI(function(){l.hasValue=!0,l.value=c},[c]),nI(c),c}});var AS=Rt((bk,ES)=>{"use strict";ES.exports=PS()});var i1=Rt((AD,t1)=>{"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(k){var O=typeof k;return!!k&&(O=="object"||O=="function")}function M(k){if(typeof k=="number")return k;if(function(V){return typeof V=="symbol"||function(J){return!!J&&typeof J=="object"}(V)&&x.call(V)=="[object Symbol]"}(k))return NaN;if(E(k)){var O=typeof k.valueOf=="function"?k.valueOf():k;k=E(O)?O+"":O}if(typeof k!="string")return k===0?k:+k;k=k.replace(c,"");var Q=m.test(k);return Q||h.test(k)?y(k.slice(2),Q?2:8):p.test(k)?NaN:+k}r.exports=function(k,O,Q){var V,J,U,q,ee,Me,pe=0,Re=!1,ke=!1,He=!0;if(typeof k!="function")throw new TypeError("Expected a function");function qe($e){var N=V,G=J;return V=J=void 0,pe=$e,q=k.apply(G,N)}function $($e){var N=$e-Me;return Me===void 0||N>=O||N<0||ke&&$e-pe>=U}function ve(){var $e=I();if($($e))return it($e);ee=setTimeout(ve,function(N){var G=O-(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,O),Re?qe(G):q}(Me);if(ke)return ee=setTimeout(ve,O),qe(Me)}return ee===void 0&&(ee=setTimeout(ve,O)),q}return O=M(O)||0,E(Q)&&(Re=!!Q.leading,U=(ke="maxWait"in Q)?A(M(Q.maxWait)||0,O):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,M=Math.min,k=function(){return C.Date.now()};function O(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(O(V)){var J=typeof V.valueOf=="function"?V.valueOf():V;V=O(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 O(U)&&(q="leading"in U?!!U.leading:q,ee="trailing"in U?!!U.trailing:ee),function(Me,pe,Re){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=k();if(ye(Pe))return Ve(Pe);ve=setTimeout(ge,function(ne){var he=pe-(ne-it);return N?M(he,qe-(ne-Qe)):he}(Pe))}function Ve(Pe){return ve=void 0,G&&ke?de(Pe):(ke=He=void 0,$)}function Fe(){var Pe=k(),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,O(Re)&&($e=!!Re.leading,qe=(N="maxWait"in Re)?E(Q(Re.maxWait)||0,pe):qe,G="trailing"in Re?!!Re.trailing:G),Fe.cancel=function(){ve!==void 0&&clearTimeout(ve),Qe=0,ke=it=He=ve=void 0},Fe.flush=function(){return ve===void 0?$:Ve(k())},Fe}(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:()=>Jc,trackWindowScroll:()=>it});let r=H();var a=i.n(r),l=i(697);let c=qs();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(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},h(Y)}function y(Y,L){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);L&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function S(Y,L,X){return(L=v(L))in Y?Object.defineProperty(Y,L,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[L]=X,Y}function w(Y,L){for(var X=0;X<L.length;X++){var K=L[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 L=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(L)==="symbol"?L:String(L)}function x(Y,L){return x=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},x(Y,L)}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(L){return L.__proto__||Object.getPrototypeOf(L)},A(Y)}var C=function(Y){Y.forEach(function(L){L.isIntersecting&&L.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 L,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 L=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(L.prototype,X),Object.defineProperty(L,"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 M=E;var k=i(296),O=i.n(k),Q=i(96),V=i.n(Q),J=function(Y){var L=getComputedStyle(Y,null);return L.getPropertyValue("overflow")+L.getPropertyValue("overflow-y")+L.getPropertyValue("overflow-x")};let U=function(Y){if(!(Y instanceof HTMLElement))return window;for(var L=Y;L&&L instanceof HTMLElement;){if(/(scroll|auto)/.test(J(L)))return L;L=L.parentNode}return window};function q(Y){return q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},q(Y)}var ee=["delayMethod","delayTime"];function Me(){return Me=Object.assign?Object.assign.bind():function(Y){for(var L=1;L<arguments.length;L++){var X=arguments[L];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Me.apply(this,arguments)}function pe(Y,L){for(var X=0;X<L.length;X++){var K=L[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 Re(Y,L){return Re=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},Re(Y,L)}function ke(Y,L){if(L&&(q(L)==="object"||typeof L=="function"))return L;if(L!==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(L){return L.__proto__||Object.getPrototypeOf(L)},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 L=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&&Re(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=O()(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={},Ha=Object.keys(Et);for(Ar=0;Ar<Ha.length;Ar++)Qi=Ha[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 L.propTypes={delayMethod:l.PropTypes.oneOf(["debounce","throttle"]),delayTime:l.PropTypes.number,useIntersectionObserver:l.PropTypes.bool},L.defaultProps={delayMethod:"throttle",delayTime:300,useIntersectionObserver:!0},L};function Qe(Y){return Qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},Qe(Y)}function $e(Y,L){for(var X=0;X<L.length;X++){var K=L[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,L){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},N(Y,L)}function G(Y){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(L){return L.__proto__||Object.getPrototypeOf(L)},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 L,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 L=je,(X=[{key:"render",value:function(){return a().createElement(M,this.props)}}])&&$e(L.prototype,X),Object.defineProperty(L,"prototype",{writable:!1}),je}(a().Component);let ye=it(de);function ge(Y){return ge=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},ge(Y)}function Ve(Y,L){for(var X=0;X<L.length;X++){var K=L[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 Fe(Y,L){return Fe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},Fe(Y,L)}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(L){return L.__proto__||Object.getPrototypeOf(L)},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&&Fe(j,W)})(je,Y);var L,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 L=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(M,{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(L.prototype,X),Object.defineProperty(L,"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(L){return typeof L}:function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},ot(Y)}var Ri=["afterLoad","beforeLoad","delayMethod","delayTime","effect","placeholder","placeholderSrc","scrollPosition","threshold","useIntersectionObserver","visibleByDefault","wrapperClassName","wrapperProps"];function Dt(Y,L){var X=Object.keys(Y);if(Object.getOwnPropertySymbols){var K=Object.getOwnPropertySymbols(Y);L&&(K=K.filter(function(be){return Object.getOwnPropertyDescriptor(Y,be).enumerable})),X.push.apply(X,K)}return X}function Wt(Y){for(var L=1;L<arguments.length;L++){var X=arguments[L]!=null?arguments[L]:{};L%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,L,X){return(L=Wa(L))in Y?Object.defineProperty(Y,L,{value:X,enumerable:!0,configurable:!0,writable:!0}):Y[L]=X,Y}function Ti(){return Ti=Object.assign?Object.assign.bind():function(Y){for(var L=1;L<arguments.length;L++){var X=arguments[L];for(var K in X)Object.prototype.hasOwnProperty.call(X,K)&&(Y[K]=X[K])}return Y},Ti.apply(this,arguments)}function Zc(Y,L){for(var X=0;X<L.length;X++){var K=L[X];K.enumerable=K.enumerable||!1,K.configurable=!0,"value"in K&&(K.writable=!0),Object.defineProperty(Y,Wa(K.key),K)}}function Wa(Y){var L=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(L)==="symbol"?L:String(L)}function ms(Y,L){return ms=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(X,K){return X.__proto__=K,X},ms(Y,L)}function ln(Y){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(L){return L.__proto__||Object.getPrototypeOf(L)},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 L,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 L=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,Ri));return a().createElement("img",Ti({},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",Ti({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}}])&&Zc(L.prototype,X),Object.defineProperty(L,"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 Jc=gs})(),t1.exports=n})()});var eT={};Db(eT,{AnnotationContext:()=>UR,AnnotationPageContext:()=>WR,AnnotationStyleProvider:()=>dR,Auth:()=>_f,AuthProvider:()=>Rf,AuthRContext:()=>eo,AuthReactContext:()=>OS,AuthReactContextActions:()=>LS,CanvasAnnotations:()=>JI,CanvasContext:()=>Vi,CanvasPanel:()=>Bt,CanvasStrategyProvider:()=>lm,CanvasWorldObject:()=>um,CollectionContext:()=>HR,CombinedMetadata:()=>eR,ComplexTimelineProvider:()=>mm,ContextBridge:()=>zf,ControlsReactContext:()=>ka,CreateCustomShape:()=>Wm,CustomContextBridge:()=>qS,CustomContextBridgeProvider:()=>mI,EventsProvider:()=>fI,Image:()=>Jw,ImageService:()=>jR,ImageServiceLoaderContext:()=>jw,InnerViewerProvider:()=>jS,LanguageProvider:()=>WI,LanguageString:()=>Mw,LocaleString:()=>Ii,ManifestContext:()=>yf,ManifestMetadata:()=>iR,MediaPlayerProvider:()=>Fa,Metadata:()=>ja,PolygonSelector:()=>DR,RangeContext:()=>vf,ReactEventContext:()=>to,ReactVaultContext:()=>mr,Render3DModelStrategy:()=>wm,RenderAccompanyingCanvas:()=>Am,RenderAnnotationStrategy:()=>bm,RenderAudioStrategy:()=>Em,RenderComplexTimelineStrategy:()=>gm,RenderEmptyStrategy:()=>cm,RenderImageStrategy:()=>xm,RenderSvgEditorControls:()=>aR,RenderTextualContentStrategy:()=>ym,RenderVideoStrategy:()=>Rm,RenderYouTubeStrategy:()=>Tm,ResourceProvider:()=>ei,ResourceReactContext:()=>ta,SelectorControllerProvider:()=>lR,SequenceThumbnails:()=>oR,SimpleViewerProvider:()=>kf,SimpleViewerReactContext:()=>is,SingleCanvasThumbnail:()=>km,StrategyReactContext:()=>Ma,ThumbnailFallbackImage:()=>ho,TranslationProvider:()=>UI,TransliterationProvider:()=>HI,VaultProvider:()=>Xr,ViewerPresetContext:()=>Ui,VirtualAnnotationProvider:()=>jf,VisibleCanvasReactContext:()=>Zr,authDetailsForResource:()=>Ef,createAuthStateStore:()=>Cf,createProbe:()=>Pf,defaultEmitter:()=>US,emptyActions:()=>Kf,emptyStrategy:()=>Zf,expandTarget:()=>Nt,findAllCanvasesInRange:()=>sc,findFirstCanvasFromRange:()=>mS,findManifestSelectedRange:()=>DA,findSelectedRange:()=>xf,flattenAnnotationPageIds:()=>Jf,formatTime:()=>Ec,get3dStrategy:()=>im,getComplexTimelineStrategy:()=>nm,getDefaultAnnotationStyles:()=>Fm,getImageStrategy:()=>Ra,getManifestSequence:()=>ac,getParsedTargetSelector:()=>Ca,getRenderingStrategy:()=>om,getTextualContentStrategy:()=>Ta,getVideoStrategy:()=>_a,getVisibleCanvasesFromCanvasId:()=>jA,hasAuth:()=>aI,isImageApiSelector:()=>gc,makeAccessServiceRequest:()=>bf,makeAccessTokenRequest:()=>uc,parseRotation:()=>yc,parseSelector:()=>Wn,parseSpecificResource:()=>LI,svgThemes:()=>v1,unknownResponse:()=>Pa,unsupportedStrategy:()=>et,useAnnotation:()=>wa,useAnnotationPage:()=>Qf,useAnnotationPageManager:()=>Aa,useAnnotationStyles:()=>Nm,useAnnotationsAtTime:()=>qR,useAuthActions:()=>FS,useAuthService:()=>zS,useAuthStore:()=>es,useAuthToken:()=>uI,useAuthTokens:()=>Af,useCanvas:()=>Ce,useCanvasChoices:()=>QR,useCanvasClock:()=>$R,useCanvasSequence:()=>Sf,useCanvasStartTime:()=>za,useCanvasSubset:()=>GR,useClosestLanguage:()=>Ow,useCollection:()=>YR,useComplexTimeline:()=>$I,useContextBridge:()=>Ff,useCreateLocaleString:()=>qI,useCurrentAuth:()=>lI,useCustomContextBridge:()=>Lf,useDispatch:()=>Nf,useEventEmitter:()=>ma,useEventListener:()=>XR,useExistingVault:()=>Kr,useExternalCollection:()=>KR,useExternalManifest:()=>gf,useExternalResource:()=>ua,useIIIFLanguage:()=>Ac,useImage:()=>jc,useImageService:()=>qm,useImageServiceLoader:()=>La,useImageTile:()=>ZR,useIsAuthEnabled:()=>Tf,useLoadImageService:()=>Ia,useLocaleString:()=>Lw,useManifest:()=>vt,useMediaActions:()=>YI,useMediaElements:()=>XI,useMediaState:()=>GI,usePaintables:()=>tm,usePaintingAnnotations:()=>ro,usePolygonHelper:()=>Vm,useRange:()=>ca,useRenderControls:()=>ni,useRenderingStrategy:()=>sm,useResourceContext:()=>Xt,useResourceEvents:()=>va,useResources:()=>em,useSearchService:()=>Mf,useSelectorController:()=>Lm,useSelectorEmitter:()=>uR,useSelectorEvents:()=>Om,useSelectorHelper:()=>cR,useSimpleMediaPlayer:()=>so,useSimpleViewer:()=>fa,useStrategy:()=>pt,useStyleHelper:()=>JR,useStyles:()=>no,useSvgEditor:()=>Um,useThumbnail:()=>Qn,useTranslations:()=>hm,useTransliteration:()=>dm,useVault:()=>_e,useVaultEffect:()=>vm,useVaultSelector:()=>De,useViewerPreset:()=>ga,useVirtualAnnotationPage:()=>Bf,useVirtualAnnotationPageContext:()=>Df,useVisibleCanvases:()=>Jr});var mo=R(H(),1);var ii=R(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,Vb=typeof AbortController=="function",Bl=Vb?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})}},Ub=typeof AbortSignal=="function",Wb=typeof Bl.AbortSignal=="function",Oy=Ub?AbortSignal:Wb?Bl.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))}},gh=new Set,ph=(e,t)=>{let i=`LRU_CACHE_OPTION_${e}`;Dl(i)&&yh(i,`${e} option`,`options.${t}`,Mo)},fh=(e,t)=>{let i=`LRU_CACHE_METHOD_${e}`;if(Dl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);yh(i,`${e} method`,`cache.${t}()`,r)}},Hb=(e,t)=>{let i=`LRU_CACHE_PROPERTY_${e}`;if(Dl(i)){let{prototype:n}=Mo,{get:r}=Object.getOwnPropertyDescriptor(n,e);yh(i,`${e} property`,`cache.${t}`,r)}},Ly=(...e)=>{typeof process=="object"&&process&&typeof process.emitWarning=="function"?process.emitWarning(...e):console.error(...e)},Dl=e=>!gh.has(e),yh=(e,t,i,n)=>{gh.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),Fy=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)}},mh=class{constructor(t){if(t===0)return[];let i=Fy(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:M,allowStaleOnFetchAbort:k,ignoreFetchAbort:O}=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?Fy(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 mh(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=!!M,this.allowStaleOnFetchAbort=!!k,this.ignoreFetchAbort=!!O,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";Dl(q)&&(gh.add(q),Ly("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",q,e))}J&&ph("stale","allowStale"),V&&ph("maxAge","ttl"),Q&&ph("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 fh("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 Bl;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 M=this.backgroundFetch(t,E,I,v);return M.__returned=M}else{let M=this.valList[E];if(this.isBackgroundFetch(M)){let J=i&&M.__staleWhileFetching!==void 0;return A&&(A.fetch="inflight",J&&(A.returnedStale=!0)),J?M.__staleWhileFetching:M.__returned=M}let k=this.isStale(E);if(!x&&!k)return A&&(A.fetch="hit"),this.moveToTail(E),n&&this.updateItemAge(E),this.statusTTL(A,E),M;let O=this.backgroundFetch(t,E,I,v),Q=O.__staleWhileFetching!==void 0,V=Q&&i;return A&&(A.fetch=Q&&k?"stale":"refresh",V&&k&&(A.returnedStale=!0)),V?O.__staleWhileFetching:O.__returned=O}}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 fh("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 fh("reset","clear"),this.clear}get length(){return Hb("length","size"),this.size}static get AbortController(){return Bl}static get AbortSignal(){return Oy}},zy=Mo;var Ux=R(nv(),1);var dt=R(H(),1),Iu=R(H(),1),RP=R(B(),1);var Ci=R(H(),1);function av(e,t){let i;return(...n)=>{window.clearTimeout(i),i=window.setTimeout(()=>e(...n),t)}}function ql({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:M,height:k,bottom:O,right:Q,x:V,y:J}=c.current.element.getBoundingClientRect(),U={left:I,top:E,width:M,height:k,bottom:O,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&&!rC(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 iC(w,!!t),tC(S),(0,Ci.useEffect)(()=>{v(),x()},[t,w,S]),(0,Ci.useEffect)(()=>v,[]),[A,a,y]}function tC(e){(0,Ci.useEffect)(()=>{let t=e;return window.addEventListener("resize",t),()=>void window.removeEventListener("resize",t)},[e])}function iC(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 nC=["x","y","top","bottom","left","right","width","height"],rC=(e,t)=>nC.every(i=>e[i]===t[i]);var Op=R(H(),1),wn=R(H(),1),Hx=R(Pv(),1),qx=R(H(),1),_u=R(H(),1),Fo=R(B(),1),Di=R(H(),1),t0=R(H(),1),i0=R(H(),1),n0=R(B(),1),Jt=R(B(),1),Mu=R(H(),1);var Js=R(B(),1),Fp=R(H(),1),o0=R(H(),1),QP=R(H(),1),s0=R(H(),1),l0=R(H(),1),Sn=R(H(),1),u0=R(H(),1),_p=R(B(),1),c0=R(H(),1),xn=R(H(),1),_t=R(H(),1),d0=R(H(),1),Fu=R(H(),1),St=R(B(),1),Mp=R(B(),1),ZP=R(H(),1),p0=R(B(),1),f0=R(H(),1);var sC=Object.defineProperty,aC=(e,t,i)=>t in e?sC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Kl=(e,t,i)=>(aC(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 lC="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Rv="http://library.stanford.edu/iiif/image-api/compliance.html#level1",Tv="http://library.stanford.edu/iiif/image-api/compliance.html#level2",uC="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",cC="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",dC="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",Fv="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",hC="http://iiif.io/api/image/1/level0.json",pC="http://iiif.io/api/image/1/profiles/level0.json",zv="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",fC="http://iiif.io/api/image/2/level0.json",mC="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",gC="level0",Hv="level1",qv="level2",yC="http://iiif.io/api/image/2/level0",Qv="http://iiif.io/api/image/2/level1",$v="http://iiif.io/api/image/2/level2",vC="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,Tv,Mv,Ov,Fv,Bv,Dv,Uv,Wv,qv,Yv],Kv=[...Xv,Qv,Rv,_v,kv,Lv,zv,Nv,jv,Vv,Hv,Gv],xC=[yC,Qv,$v,lC,Rv,Tv,uC,_v,Mv,cC,kv,Ov,dC,Lv,Fv,hC,pC,zv,Nv,Bv,Dv,fC,mC,jv,Vv,Uv,Wv,gC,Hv,qv,vC,Gv,Yv];var SC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["sizeByWhListed"]},wC={extraFormats:["jpg"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPx","regionSquare","sizeByWhListed","sizeByH","sizeByW","sizeByWh"]},bC={extraFormats:["jpg","png"],extraQualities:["default"],extraFeatures:["baseUriRedirect","cors","jsonldMediaType","regionByPct","regionByPx","regionSquare","rotationBy90s","sizeByWhListed","sizeByConfinedWh","sizeByH","sizeByPct","sizeByW","sizeByWh"]};function CC(e){return Xv.indexOf(e)!==-1?bC:Kv.indexOf(e)!==-1?wC:SC}function PC(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=CC(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 EC(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 AC(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 IC(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 RC(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}=RC(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:EC(h),size:AC(m),rotation:IC(p),quality:w[0],format:w[1]}}function _C(e){let t=TC(Dr(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=PC(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 MC(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 kC(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 Jl(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"&&xC.indexOf(i)!==-1)return!0;return!1}function OC(e){if(!Jl(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 Zl(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 zh(e){return Jl(e)?Zl(0,e)?0:Zl(1,e)?1:Zl(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 LC(e){if(!OC(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:zh(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:zh(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 FC(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=FC(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 NC(e){return Jl(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:ft(e),type:"fixed-service",height:t.height,width:t.width,level:zh(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=NC(r);a.length&&t.push(...a);let l=LC(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++)Jl(t[r])&&n.push(t[r]);return n}function BC(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 DC({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 jC({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 VC(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function UC(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,DC(a),jC(r),VC(l),`${p}.${c}`].filter(Boolean).join("/")}function Fh(e,t,i){let n=_C({"@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:UC(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 WC(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 HC(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),WC(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=Fh(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=Fh(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=Fh({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 qC(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 Zl(0,e)}var ex=class{constructor(e={}){Kl(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Kl(this,"fetchingCount",0),Kl(this,"imageServices",{}),Kl(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:MC(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||qC(e.width,e.height,a.result.sampledTiles),sizes:n?.sizes||kC(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 HC(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 BC(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}},ST=new ex;function eu(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},tu=e=>e?tx(e):tx;var $C=Object.create,Nh=Object.defineProperty,GC=Object.getOwnPropertyDescriptor,nx=Object.getOwnPropertyNames,YC=Object.getPrototypeOf,XC=Object.prototype.hasOwnProperty,KC=(e,t,i)=>t in e?Nh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Bh=(e,t)=>function(){return t||(0,e[nx(e)[0]])((t={exports:{}}).exports,t),t.exports},ZC=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of nx(t))!XC.call(e,r)&&r!==i&&Nh(e,r,{get:()=>t[r],enumerable:!(n=GC(t,r))||n.enumerable});return e},Dh=(e,t,i)=>(i=e!=null?$C(YC(e)):{},ZC(t||!e||!e.__esModule?Nh(i,"default",{value:e,enumerable:!0}):i,e)),Tt=(e,t,i)=>(KC(e,typeof t!="symbol"?t+"":t,i),i);var jh="http://library.stanford.edu/iiif/image-api/compliance.html#level0",Vh="http://library.stanford.edu/iiif/image-api/compliance.html#level1",Uh="http://library.stanford.edu/iiif/image-api/compliance.html#level2",Wh="http://library.stanford.edu/iiif/image-api/conformance.html#level0",Hh="http://library.stanford.edu/iiif/image-api/conformance.html#level1",qh="http://library.stanford.edu/iiif/image-api/conformance.html#level2",Qh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0",$h="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1",Gh="http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",Yh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0",Xh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",Kh="http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2",Zh="http://iiif.io/api/image/1/level0.json",Jh="http://iiif.io/api/image/1/profiles/level0.json",ep="http://iiif.io/api/image/1/level1.json",tp="http://iiif.io/api/image/1/profiles/level1.json",ip="http://iiif.io/api/image/1/level2.json",np="http://iiif.io/api/image/1/profiles/level2.json",rp="http://iiif.io/api/image/2/level0.json",op="http://iiif.io/api/image/2/profiles/level0.json",sp="http://iiif.io/api/image/2/level1.json",ap="http://iiif.io/api/image/2/profiles/level1.json",lp="http://iiif.io/api/image/2/level2.json",up="http://iiif.io/api/image/2/profiles/level2.json",cp="level0",dp="level1",hp="level2",pp="http://iiif.io/api/image/2/level0",fp="http://iiif.io/api/image/2/level1",mp="http://iiif.io/api/image/2/level2",Oo=[mp,Uh,qh,Gh,Kh,ip,np,lp,up,hp],iu=[...Oo,fp,Vh,Hh,$h,Xh,ep,tp,sp,ap,dp],gp=[pp,fp,mp,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,dp,hp],yp=gp,vp=[pp,jh,Wh,Qh,Yh,Zh,Jh,rp,op,cp],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 JC=Object.defineProperty,eP=(e,t,i)=>t in e?JC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,vn=(e,t,i)=>(eP(e,typeof t!="symbol"?t+"":t,i),i);function tP(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 iP(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 nP(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 rP(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 oP(e,t=""){let{path:i,scheme:n,server:r,prefix:a}=rP(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:tP(h),size:iP(m),rotation:nP(p),quality:w,format:v}}function sP(e){return Oo.indexOf(e)!==-1?sx:iu.indexOf(e)!==-1?ox:rx}function aP(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=sP(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 xp(e){let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"&&vp.indexOf(i)!==-1)return!0;return!1}function Le(e){if(e["@id"])return e["@id"];if(e.id)return e.id}function Us(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"&&gp.indexOf(i)!==-1)return!0;return!1}function ax(e){if(!Us(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let i of t)if(typeof i=="string"){if(iu.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 lP({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 uP({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 cP(e){return`${e.mirror?"!":""}${(e.angle||0)%360}`}function nu(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,lP(a),uP(r),cP(l),`${p}.${c}`].filter(Boolean).join("/")}function Ln(e){return e.endsWith("info.json")?e:e.endsWith("/")?`${e}info.json`:`${e}/info.json`}function ru(e){let t=oP(Ln(e.id));if(t.type!=="info")throw new Error("Invalid service URL");let i=aP(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 Vs(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(iu.includes(r))return!0}if(e===0){for(let r of n)if(vp.includes(r))return!0}}}return!1}function Ws(e){return Us(e)?Vs(0,e)?0:Vs(1,e)?1:Vs(2,e)?2:null:null}function Fn(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],i=t.length,n=[];for(let r=0;r<i;r++)Us(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 ou(e,t,i){let n=ru({"@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:nu(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=ou(v,n.width,n.height);p(x,c)}else{r(()=>"Checking for an image from the tile source 3",2);let x=ou(v,v.width,v.height);p(x,c)}if(v.type==="variable"&&v.maxWidth){let x=ou({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 bp(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 Us(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:Le(e),type:"fixed-service",height:t.height,width:t.width,level:Ws(e),version:bp(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:Ws(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:Ws(e),version:bp(e)?3:2})}}return t}function Sp(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 wp(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 Hs(e){if(typeof e=="string")return wp(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}:wp(n):null}function gx(e,t=!0,i){let n=[],r=Hs(e);if(r===null)return n;let a=e;if(n.push(r),t&&a&&a.width&&a.height){let l=[],c=Fn(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(...Sp([h])))}}if(l.length)return n.push(...l),n}return a.service&&n.push(...Sp(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={}){Tt(this,"config",{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),Tt(this,"fetchingCount",0),Tt(this,"imageServices",{}),Tt(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&&!xp(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&&xp(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=Fn(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||eu(),i=e.loader||new Lo;return{store:tu((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 Cp=vx();var su={},zn={get(e){return e},setMetaValue([e,t,i],n){let r=zn.getResourceMeta(e,t),a=r?r[i]:void 0,l=typeof n=="function"?n(a):n;su[e]={...su[e]||{},[t]:{...(su[e]||{})[t]||{},[i]:l}}},getResourceMeta:(e,t)=>{let i=su[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 Pp(e=zn,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=Hs(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:Hs(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 JP=R(B(),1),eE=R(H(),1),ea=R(H(),1),tE=R(B(),1),iE=R(H(),1),m0=R(H(),1),dP=Object.defineProperty,hP=(e,t,i)=>t in e?dP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,P=(e,t,i)=>(hP(e,typeof t!="symbol"?t+"":t,i),i),Cu=["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 pP(){return Cu.reduce((e,t)=>(e[t]=[],e),{})}var zo=Cu.reduce((e,t)=>(e[t.slice(2).toLowerCase()]=t,e[t]=t,e),{}),fP="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Pu=(e=21)=>{let t="",i=crypto.getRandomValues(new Uint8Array(e));for(;e--;)t+=fP[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=zo[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=zo[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=Pu(),this.eventHandlers=pP()}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 Ap 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 Ap.fromImage("data:image/svg+xml;base64,"+btoa(t),i,n,r)}static fromImage(t,i,n,r){let a=new Ap;return a.applyProps({uri:t,id:r,display:n,target:i}),a}getImageUrl(){return this.uri}},Ip=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 mP(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=Rp(t[l].display.scale,e/(i||1));c<a&&(a=c,r=l)}return r}function Rp(e,t){return Math.abs(e-t)}function xu(e,t){let i=Rp(e.x,t.x),n=Rp(e.y,t.y);return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}function gP(e){let t=e.length;return e.indexOf("/info.json")===t-10?e.slice(0,-10):e}function au(e,t,i){return Math.min(Math.max(e,t),i)}var Zs=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,"version3"),P(this,"tileUrl"),this.tileUrl=gP(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.version3=t.version3,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",typeof t.version3<"u"&&(this.version3=t.version3),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]=au(i[m+1],r,l),i[m+3]=au(i[m+3],r,l),i[m+2]=au(i[m+2],a,c),i[m+4]=au(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,p){n.height=n.height?n.height:n.width;let m=c?Math.floor(i.width/r):Math.ceil(i.width/r),h=c?Math.floor(i.height/r):Math.ceil(i.height/r),y=Math.ceil(m/n.width),S=Math.ceil(h/n.height),w=xe.grid(y,S),v=xe.grid(y,S),x=a?a["@context"]?Array.isArray(a["@context"])?a["@context"]:[a["@context"]]:[]:[],A=typeof p<"u"?p:x.indexOf("http://iiif.io/api/image/3/context.json")!==-1;for(let I=0;I<S;I++)for(let E=0;E<y;E++){let M=E*n.width,k=I*n.height;v.addPoints(M*r,k*r,E===y-1?i.width:(M+n.width)*r,I===S-1?i.height:(k+n.height)*r),w.addPoints(M,k,E===y-1?m:M+n.width,I===S-1?h:k+n.height)}let C=new Nx({url:t,scaleFactor:r,points:w.build(),displayPoints:v.build(),width:i.width,height:i.height,tileWidth:n.width,format:l,version3:A});return C.applyProps({service:a}),C}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),l=Math.ceil(r/this.display.scale),c=`${a>this.tileWidth?this.tileWidth:a},`;return this.version3&&(c+=`${l>this.tileWidth?this.tileWidth:l}`),`${this.tileUrl}/${i[1]},${i[2]},${n},${r}/${c}/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[]}},yP=class extends bn{constructor(){super(...arguments),P(this,"type","spacial-content")}getAllPointsAt(e,t,i){return[[this,this.points,t]]}},vP=class extends yP{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=mP(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 lu(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]=lu(l,c,i.x,i.y,this.rotation),[h,y]=lu(l,c,n.x,n.y,this.rotation),[S,w]=lu(l,c,r.x,r.y,this.rotation),[v,x]=lu(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}},Eu=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 uu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,cu={},xP=["backgroundColor","opacity","boxShadow","borderColor","borderWidth","borderStyle","outlineColor","outlineWidth","outlineOffset","outlineStyle"],Gs=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=Pu(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=cu[i]||uu.exec(i)||uu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=cu[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=cu[e.style.outline]||uu.exec(e.style.outline)||uu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=cu[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 xP)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++}},yu=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,du=Math.sqrt,Qs=Math.sin,Cx=Math.cos,Ys=Math.PI,Su=1.70158,hu=Su*1.525,Px=Su+1,Ex=2*Ys/3,Ax=2*Ys/4.5,pu=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*Ys/2)},easeOutSine:function(e){return Qs(e*Ys/2)},easeInOutSine:function(e){return-(Cx(Ys*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-du(1-ct(e,2))},easeOutCirc:function(e){return du(1-ct(e-1,2))},easeInOutCirc:function(e){return e<.5?(1-du(1-ct(2*e,2)))/2:(du(1-ct(-2*e+2,2))+1)/2},easeInBack:function(e){return Px*e*e*e-Su*e*e},easeOutBack:function(e){return 1+Px*ct(e-1,3)+Su*ct(e-1,2)},easeInOutBack:function(e){return e<.5?ct(2*e,2)*((hu+1)*2*e-hu)/2:(ct(2*e-2,2)*((hu+1)*(e*2-2)+hu)+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-pu(1-e)},easeOutBounce:pu,easeInOutBounce:function(e){return e<.5?(1-pu(1-2*e))/2:(1+pu(2*e-1))/2}},SP=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()}},d_=Number.MIN_VALUE+1,Au=class{constructor(e,t,i,n=[],r){P(this,"id",Pu()),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 M=0;M<E;M++){let k=M*5;I[k]!==0&&(this.renderer.paint(x,M,I[k+1],I[k+2],I[k+3]-I[k+1],I[k+4]-I[k+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 SP(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,M=~~(a*r)*h;E<M&&(e=this.world.width*r/(a*r*h))}else{let E=this.world.height*w,M=~~(l*r)*h;E<M&&(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}},fu=/([0-9]+(px|em)\s+)+(solid)\s+(.*)/g,mu={},wP=["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=Pu(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=mu[i]||fu.exec(i)||fu.exec(i);n&&(this._parsed.border.id=i,this._parsed.border.match=mu[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=mu[e.style.outline]||fu.exec(e.style.outline)||fu.exec(e.style.outline);n&&(this._parsed.outline.id=e.style.outline,this._parsed.outline.match=mu[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 wP)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,Rx={},bP=typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes("firefox"),gu={},CP=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 zy({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 Zs){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,xu({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 bP?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 Gs&&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=Rx[x]||Ix.exec(x)||Ix.exec(x);Rx[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(gu[e]&&gu[e].naturalWidth>0){t(gu[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),gu[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 Zs)&&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()}},PP=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 EP(e){return{x:e[1],y:e[2],width:e[3]-e[1],height:e[4]-e[2]}}var Tx="pan",_x="scroll",AP="gesture",IP={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}={...IP,...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=AP,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=xu({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 M(U){let q=null,ee=null,Me=!1,pe=0;if(h.isPressing&&U.touches.length===2){let Re=U.touches[0].clientX,ke=U.touches[1].clientX;q=(Re+ke)/2;let He=U.touches[0].clientY,qe=U.touches[1].clientY;ee=(He+qe)/2,pe=xu({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=Tx)),E(C),C==""&&a==!0||C==_x){E("require-two-finger","notice");return}let Re=U.touches[0];q=Re.clientX,ee=Re.clientY}if(q!==null&&ee!==null){let Re=t.getRendererScreenPosition();if(Re){let{x:ke,y:He}=t.viewerToWorld(q-Re.x,ee-Re.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==Tx&&U.preventDefault()}function k(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 O(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",k),p&&p.addEventListener("touchmove",M),r&&(t.world.activatedEvents.push("onClick"),t.world.addEventListener("click",O)),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(EP(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",k),p&&(p.removeEventListener("touchmove",k),p.removeEventListener("wheel",V,{passive:!0,capture:!0})),r&&t.world.removeEventListener("click",O),n&&t.world.removeEventListener("wheel",Q),J()}},updatePosition(){}}),No=Iu.default.createContext("explore");No.displayName="Mode";var TP=()=>(0,Iu.useContext)(No);var Ru=Op.default.createContext(null);Ru.displayName="Atlas";var Tu=Op.default.createContext(null);Tu.displayName="Bounds";var wu,_P=typeof performance=="object"&&typeof performance.now=="function";if(_P){let e=performance;wu=()=>e.now()}else{let e=Date,t=e.now();wu=()=>e.now()-t}var MP=16;function Mx(e,t){e&&e.appendChild&&t&&e.appendChild(t)}function Qx(e,t){e&&e.removeChild&&t&&e.removeChild(t)}function kP(e,t){return Qx(e.world,t)}function OP(e,t,i){return $x(e.world,t,i)}function $x(e,t,i){e&&e instanceof Au&&(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 Cu){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(Cu.indexOf(r)!==-1){let a=zo[r];if(a){if(e.activatedEvents.indexOf(a)!==-1)continue;n=!0,e.activatedEvents.push(a)}}n&&e.triggerEventActivation()}var bu=new Map,kx={};function LP(e,{args:t=[],...i},n,r,a){if(!(n instanceof Au)&&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=Eu.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 Gs;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 Ip;break;case"compositeImage":case"composite-image":l=new vP({id:i.id,width:i.width,height:i.height,images:[],renderOptions:i.renderOptions});break;case"tiledImage":case"tiled-image":l=Zs.fromTile(i.uri,i.display,i.tile,i.scaleFactor,void 0,i.format,i.useFloorCalc,i.version3);break;case"paragraph":l=new yu,l.text=i.children;break;default:return}return Yx(c,i),Gx(l,{},i),l}function FP(e,t){if(t instanceof Eu)e.world=t;else if(t instanceof kp)e.world.appendChild(t);else if(t)throw new Error("Invalid root")}var Xs=(0,Hx.default)({unstable_now:wu,now:wu,createInstance:LP,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:FP,removeChildFromContainer:kP,createTextInstance(){},insertInContainerBefore:OP,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"),MP},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(){}});Xs.injectIntoDevTools({bundleType:0,version:qx.version,rendererPackageName:"@atlas-viewer/atlas"});function Lp(e,t){let i=bu.get(e);i&&Xs.updateContainer(null,i,null,()=>{bu.delete(e),t&&t(e)})}var Ox={render(e,t){let i=bu.get(t);if(i)Xs.updateContainer(e,i,null);else{let n=Xs.createContainer(t,0,null,!1,null,"",()=>{},null);Xs.updateContainer(e,n,null),bu.set(t,n)}},unmountComponentAtNode(e,t){Lp(e,t)}},Ks=typeof window<"u"&&(window.document?.createElement||window.navigator?.product==="ReactNative")?_u.useLayoutEffect:_u.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 Ks(()=>{if(r){let c=r.runtime;a!==c.mode&&(c.mode=a),Ox.render((0,Fo.jsx)(wn.default.StrictMode,{children:(0,Fo.jsx)(l,{children:(0,Fo.jsx)(Tu.Provider,{value:n,children:(0,Fo.jsx)(No.Provider,{value:a,children:(0,Fo.jsx)(Ru.Provider,{value:r,children:e})})})})}),c)}},[r,a,e]),Ks(()=>{if(r){let c=r.runtime;return()=>{Ox.unmountComponentAtNode(c)}}return()=>{}},[r]),null}),NP=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;
@@ -77,7 +77,7 @@ No matching component was found for:
77
77
  `,fallbackLanguages:l=[],closest:c,skipLanguages:p}=i,m=Object.keys(e||{}),h=c?t:dw(t,m,l,n,p);if(!e)return r;if(typeof e=="string")return e;let y=h?e[h]:void 0;if(y&&h){if(typeof y=="string")return y;if(y.length===1&&y[0]===""){let S=i.skipLanguages||[];return Yf(e,t,{...i,skipLanguages:[...S,h]})}return y.join(a)}return""}function Xf(e,t={}){return Yf(e,t.language||(typeof navigator<"u"?navigator.language:"en"),t)}function LI(e){return e.type==="SpecificResource"?[e.source,{selector:e.selector}]:[e,{selector:null}]}function Ca(e,t){let{selector:i,source:n}=Nt(t);if(n.id!==e.id)return[null,n];let r={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}};return[i?i.type==="TemporalSelector"?{type:"TemporalBoxSelector",temporal:i.temporal,spatial:r.spatial}:i:null,n]}var Kf={makeChoice:()=>{}},Pa={type:"unknown"},et=e=>({type:"unknown",reason:e,annotations:{pages:[]}}),Zf=(e,t)=>({type:"empty",width:e,height:t,annotations:{pages:[]},image:null,images:[]});var Ea=R(H(),1);function FI(e,t){let i=e?.iiif?.meta[t];return i?i.annotationPageManager:null}function hw(e,t){return De(i=>{let n=[];if(!e)return n;let r=Object.keys(i.iiif.entities.AnnotationPage);for(let a of r)if(!t||t.indexOf(a)!==-1){let l=FI(i,a);l&&l.views&&l.views[e]&&n.push(a)}return n},[e,t])}function Jf({canvas:e,manifest:t,all:i,canvases:n}){let r=[];if(t)for(let a of t.annotations)r.indexOf(a.id)===-1&&r.push(a.id);if(i){if(n&&n.length)for(let a of n)for(let l of a.annotations)r.indexOf(l.id)===-1&&r.push(l.id)}else if(e)for(let a of e.annotations)r.indexOf(a.id)===-1&&r.push(a.id);return r}function zI(e,t){let i=e?.iiif?.meta[t];return i?i.annotationPageManager:null}function Aa(e,t={}){let i=_e(),n=vt(),r=Ce(),a=Jr(),l=(0,Ea.useMemo)(()=>Jf({all:t.all,manifest:n,canvas:r,canvases:a}),[t.all,r,a,n]),c=hw(e,t.all?void 0:l),p=(0,Ea.useCallback)(h=>{e&&i.setMetaValue([h,"annotationPageManager","views"],y=>y&&!y[e]?y:{...y||{},[e]:!1})},[e,i]),m=(0,Ea.useCallback)((h,y={})=>{if(!e)return;let S=i.getState(),w=[];if(y?.deselectOthers){let v=Object.keys(S.iiif.entities.AnnotationPage);for(let x of v){let A=zI(S,x);A&&A.views&&A.views[e]&&w.push(x)}}for(let v of w)p(v);i.setMetaValue([h,"annotationPageManager","views"],v=>v&&v[e]?v:{...v||{},[e]:!0})},[e,p,i]);return{availablePageIds:l,enabledPageIds:c,setPageEnabled:m,setPageDisabled:p}}function em(e,t){return De((i,n)=>n.get(e.map(r=>({id:r,type:t}))),[e,t])}var yw=R(H(),1);var xc=R(H(),1);var pw=xc.default.createContext(Cp.store);pw.displayName="ImageServicesHelper";function Sc(){return(0,xc.useContext)(pw)}function fw(e){let t=Sc();return Ft(t,({loaded:i})=>i[e])}function as(){let e=Sc();return Ft(e,({loadServiceSync:t})=>t)}function mw(){let e=Sc();return Ft(e,({loaded:t})=>t)}function gw(){let e=Sc();return Ft(e,({loadService:t})=>t)}var NI=jn((e,t)=>({loaded:{},setLoaded:(i,n="done")=>{e(r=>({loaded:{...r.loaded,[i]:n}}))}})),BI=Vn();BI.on("loaded",e=>{NI.getState().setLoaded(e.imageServiceId)});function Ia(){let e=as(),t=mw();return[(0,yw.useCallback)((n,{height:r,width:a})=>n&&e(n,{height:r,width:a},!0),[e]),t]}var oo=R(H(),1);function ro(e={}){let t=wa(),i=Ce(e.canvasId?{id:e.canvasId}:void 0);return De((n,r)=>{if(!i)return[];if(t&&e.enableSingleAnnotation)return[t];let a=r.get(i.items),l=[];for(let c of a)l.push(...r.get(c.items));return l},[i])}function tm(e,t=[]){let i=_e(),n=(0,oo.useMemo)(()=>Gf(i),[]),r=ro({enableSingleAnnotation:e?.enableSingleAnnotation}),[a,l]=(0,oo.useState)(e?.defaultChoices||[]),c=(0,oo.useMemo)(()=>n.getPaintables(r,a),[i,r,a,...t]),m={makeChoice:(0,oo.useCallback)((h,{deselectOthers:y=!0,deselect:S=!1}={})=>{c.choice&&l(w=>{if(S){let x=w.filter(A=>A!==h);if(x.length===0){let A=c.items[0].resource.id;return A?[A]:[]}return x}if(y)return[h];let v=[...w];if(v.length===0&&c.items.length){let x=c.items[0].resource.id;x&&v.push(x)}return w.indexOf(h)!==-1?w:[...w,h]})},[c.choice])};return[c,m]}var DI=["model/gltf-binary"];function im(e,t){let i=t.items[0],n=i.resource;return n.format?DI.indexOf(n.format)===-1?et(`3D format: ${n.format} is unsupported`):{type:"3d-model",model:n,annotationId:i.annotationId,annotation:i.annotation}:et("Unknown format")}function vw(e,t){let i=t.items,n=i[0];if(i.length===0||!n)return et("No audio");if(!e.duration)return et("No duration on canvas");if(i.length>1)return et("Only one audio source supported");let r=n.resource;return r?"format"in r?{type:"media",media:{annotationId:n.annotationId,annotation:n.annotation,duration:e.duration,url:r.id,type:"Sound",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:r.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},annotations:{pages:[]}}:et("Audio does not have format"):et("Unknown audio")}function Ra(e,t,i){let n=[];for(let r of t.items){let a=r.resource&&r.resource.type==="SpecificResource"?r.resource.source:r.resource;if(!a.id)return et("No resource Identifier");let l;if(a.service){let x=Fn(a);x[0]&&(l=i(x[0],e))}let c={type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}},[p,m]=Ca(e,r.target),h=e.id?.split("?")[0]||"";if(!(m.id===e.id||decodeURIComponent(m.id||"")===(e.id||"")||m.id===h||decodeURIComponent(m.id||"")===h))continue;let y=r.resource.width&&r.resource.height?{type:"BoxSelector",spatial:{x:0,y:0,width:r.resource.width,height:r.resource.height}}:void 0,S=r.resource.type==="SpecificResource"?Nt(r.resource):null;if(r.selector){let x=Nt({type:"SpecificResource",source:r.resource,selector:r.selector});x&&(S=x)}let w=S&&S.selector&&(S.selector.type==="BoxSelector"||S.selector.type==="TemporalBoxSelector")?{type:"BoxSelector",spatial:{x:S.selector.spatial.x,y:S.selector.spatial.y,width:S.selector.spatial.width,height:S.selector.spatial.height}}:void 0;l&&!l.id&&(l.id=l["@id"]);let v={id:a.id,type:"Image",annotationId:r.annotationId,annotation:r.annotation,width:Number(p||w?a.width:e.width),height:Number(p||w?a.height:e.height),service:l,sizes:l&&l.sizes?l.sizes:a.width&&a.height?[{width:a.width,height:a.height}]:[],target:p&&p.type!=="PointSelector"?p:c,selector:w||{type:"BoxSelector",spatial:{x:0,y:0,width:Number(e.width),height:Number(e.height)}}};n.push(v)}return{type:"images",image:n[0],images:n,choice:t.choice}}function xw(e,t={},i){let n=e.language||i||"none";switch(e.type){case"TextualBody":{typeof e.value<"u"&&(t[n]=[e.value]);break}case"List":case"Composite":case"Choice":e.items&&e.items.forEach(r=>xw(r,t,n))}return t}function Ta(e,t){let i=[];return t.items.forEach(n=>{if(n.resource){let[r]=Ca(e,n.target);i.push({type:"Text",annotationId:n.annotationId,annotation:n.annotation,text:xw(n.resource),target:r})}}),{type:"textual-content",items:i}}var jI=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function _a(e,t,i){let n=t.items.filter(w=>w.type==="video"),r=n[0],a=!1;if(e.duration||(a=!0),n.length>1||!r)return et("Only one video source supported");let l=n[0]?.resource,c=!!(l.service||[]).find(w=>(w.profile||"").includes("youtube.com"));if(!c&&a)return et("Video does not have duration");if(!l)return et("Unknown video");if((!l.format||l.format==="text/html")&&!c)return et("Video does not have format");let p=[],m=i.get(e.annotations||[]);for(let w of m){let v=i.get(w.items||[]);for(let x of v)if((x.motivation?Array.isArray(x.motivation||"")?x.motivation:[x.motivation]:[]).includes("supplementing")){let C=i.get(x.body||[]);for(let I of C){let E=I;if(E.type==="Choice")for(let M of E.items){let k=i.get(M);k.format==="text/vtt"&&p.push({id:k.id,type:"Text",format:"text/vtt",label:k.label,language:k.language})}else E.format==="text/vtt"&&p.push({id:E.id,type:"Text",format:"text/vtt",label:E.label,language:E.language})}}}let h={annotationId:r.annotationId,annotation:r.annotation,duration:e.duration,url:l.id,type:"Video",target:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}},format:l.format,selector:{type:"TemporalSelector",temporal:{startTime:0,endTime:e.duration}}},y=Nt(r.target);y.selector&&y.selector.type==="TemporalBoxSelector"&&(h.target=y.selector);let{selector:S}=Wn(r.selector);if(S===null){let w=h.target.temporal.startTime,x=(h.target.temporal.endTime||e.duration)-w;h.selector={type:"TemporalSelector",temporal:{startTime:0,endTime:x}}}else S.type==="TemporalSelector"&&(h.selector=S);if(c){h.type="VideoYouTube";let w=l.id.match(jI);if(!w[1])return et("Video is not known youtube video");h.youTubeId=w[1]}return{type:"media",media:h,annotations:{pages:[]},captions:p}}function nm(e,t,i,n){let r={type:"complex-timeline",items:[],keyframes:[],duration:e.duration||0},a={type:"complex-choice",items:[]};function l(m){m.choice&&(m.choice.type==="complex-choice"?a.items.push(...m.choice.items):a.items.push(m.choice))}for(let m of t.items){if(m.type==="image"){let h=Ra(e,{choice:null,allChoices:null,types:["image"],items:[m]},i);if(h.type==="images"){l(h),r.items.push(h.image);let y={id:h.image.annotationId,type:"enter",resourceType:"image",time:h.image.target?.temporal?.startTime||0};r.keyframes.push(y);let S={id:h.image.annotationId,type:"exit",resourceType:"image",time:h.image.target?.temporal?.endTime||e.duration||0};r.keyframes.push(S)}}if(m.type==="textualbody"){let h=Ta(e,{choice:null,allChoices:null,types:["textualbody"],items:[m]});if(h.type==="textual-content"){l(h);let y=h.items[0];r.items.push(y);let S=y.target,w={id:y.annotationId,type:"enter",resourceType:"text",time:S.temporal?.startTime||0};r.keyframes.push(w);let v={id:y.annotationId,type:"exit",resourceType:"text",time:S.temporal?.endTime||e.duration||0};r.keyframes.push(v)}}if(m.type==="video"){let h=_a(e,{choice:null,allChoices:null,types:["video"],items:[m]},n);if(h.type==="media"){l(h);let y=h.media;r.items.push(y);let S={id:y.annotationId,type:"enter",resourceType:"video",time:y.target?.temporal?.startTime||0};r.keyframes.push(S);let w={id:y.annotationId,type:"exit",resourceType:"video",time:y.target?.temporal?.endTime||e.duration||0};r.keyframes.push(w)}}}r.keyframes.sort((m,h)=>m.time-h.time);let c=[],p=[];for(let m of r.keyframes){if(m.resourceType==="image"||m.resourceType==="text"){p.push(m);continue}if(m.type==="enter"){c.length===0&&(m.isPrime=!0),c.push(m),p.push(m);continue}if(m.type==="exit"&&(p.push(m),c=c.filter(h=>h.id!==m.id),c.length!==0)){let h=c[0],y={id:h.id,type:"change",isPrime:!0,resourceType:h.resourceType,time:m.time};p.push(y)}}return r.keyframes=p,a.items.length&&(r.choice=a),r}var wc={},rm={get(e){return e},setMetaValue([e,t,i],n){let r=rm.getResourceMeta(e,t),a=r?r[i]:void 0,l=typeof n=="function"?n(a):n;wc[e]={...wc[e]||{},[t]:{...(wc[e]||{})[t]||{},[i]:l}}},getResourceMeta:(e,t)=>{let i=wc[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){}};function om({canvas:e,paintables:t,supports:i,loadImageService:n,vault:r=rm}){if(!e)return Pa;if(t.types.length===0)return i.indexOf("empty")!==-1?Zf(e.width,e.height):Pa;if(t.types.length!==1)if(t.types.length===2&&t.types.indexOf("text")!==-1)t.types=t.types.filter(l=>l!=="text");else return i.indexOf("complex-timeline")===-1?et("Complex timeline not supported"):nm(e,t,n,r);let a=t.types[0];return a==="image"?i.indexOf("images")===-1?et("Image not supported"):Ra(e,t,n):a==="Model"||a==="model"?i.indexOf("3d-model")===-1?et("3D not supported"):im(e,t):a==="textualbody"?i.indexOf("textual-content")===-1?et("Textual content not supported"):Ta(e,t):a==="sound"||a==="audio"?i.indexOf("media")===-1?et("Media not supported"):vw(e,t):a==="video"?i.indexOf("media")===-1?et("Media not supported"):_a(e,t,r):Pa}function sm(e){let t=vt(),i=Ce(),n=_e(),r=ma(),a=e?.emitter||r,[l,c]=Ia(),{enabledPageIds:p}=Aa(e?.annotationPageManagerId||t?.id||i?.id,{all:!1}),m=em(p,"AnnotationPage"),h=e?.strategies||["empty","images","media","textual-content","complex-timeline"],[y,S]=tm(e,[c]);(0,ls.useEffect)(()=>{let v=x=>{S.makeChoice(x.choiceId,{deselectOthers:x.deselectOthers,deselect:x.deselect})};return a.on("make-choice",v),()=>{a.off("make-choice",v)}},[]);let w=(0,ls.useMemo)(()=>om({canvas:i,paintables:y,supports:h,loadImageService:l,vault:n}),[i,y,n,S.makeChoice]);return(0,ls.useEffect)(()=>{let v=y.allChoices,x={canvasId:i?.id,manifestId:t?.id};v&&a.emit("choice-change",{choice:v,partOf:x})},[i?.id,y.allChoices]),(0,ls.useMemo)(()=>w.type==="unknown"?[w,Kf]:[{...w,annotations:{pages:m}},S],[w,m])}var bc=R(H(),1),Ma=(0,bc.createContext)(null);Ma.displayName="Strategy";function pt(){let e=(0,bc.useContext)(Ma);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var Cc=R(H(),1),ka=(0,Cc.createContext)(null);ka.displayName="Controls";function ni(){let e=(0,Cc.useContext)(ka);if(!e)throw new Error("useStrategy must be used within a StrategyProvider");return e}var am=R(B(),1);function lm({strategies:e,registerActions:t,defaultChoices:i,onChoiceChange:n,mediaControlsDeps:r,renderMediaControls:a,renderViewerControls:l,viewControlsDeps:c,renderComplexTimelineControls:p,complexTimelineControlsDeps:m,throwOnUnknown:h,children:y}){let S=Ce(),w=_e(),v=(0,vr.useMemo)(()=>yr(w),[w]),[x,A]=sm({strategies:e||["images"],defaultChoices:i?.map(({id:M})=>M)}),C="choice"in x?x.choice:void 0;if((0,vr.useEffect)(()=>{t&&t(A)},[x.annotations]),(0,vr.useEffect)(()=>{n&&n(C)},[C]),(0,vr.useEffect)(()=>{if(i)for(let M of i)typeof M.opacity<"u"&&v.applyStyles({id:M.id},"atlas",{opacity:M.opacity})},[i]),x.type==="unknown"&&h)throw new Error(x.reason||"Unknown strategy");let I=(0,vr.useMemo)(()=>({renderMediaControls:a,mediaControlsDeps:r||[],renderViewerControls:l,viewControlsDeps:c||[],renderComplexTimelineControls:p,complexTimelineControlsDeps:m||[]}),[r,a,l,c,p,m]),E=(0,vr.useMemo)(()=>({strategy:x,actions:A,choices:"choice"in x?x.choice:[]}),[x,S]);return(0,am.jsx)(ka.Provider,{value:I,children:(0,am.jsx)(Ma.Provider,{value:E,children:y})})}var Sw=R(H(),1);var ww=R(B(),1);function um({x:e=0,y:t=0,keepCanvasScale:i,children:n}){let{strategy:r}=pt(),a=Ce(),l=va(a,["deep-zoom"]),c=(0,Sw.useMemo)(()=>i?1:Math.max(1,...r.type==="images"?r.images.map(m=>(m.width||0)/m.target?.spatial.width):[]),[i,r]);KS(c);let p=r.type==="images"?r.images.length:0;return a?(0,ww.jsx)("world-object",{height:a.height,width:a.width,x:e,y:t,...l,children:n},`${a.id}/${r.type}/${p}`):null}var bw=R(B(),1);function Pc({style:e}){let t=Ce();return!t||!t.height||!t.width?null:(0,bw.jsx)("box",{interactive:!1,target:{x:0,y:0,width:Number(t.width),height:Number(t.height)},style:e})}var Cw=R(B(),1);function cm({backgroundStyle:e,alwaysShowBackground:t}){let{strategy:i}=pt();return i.type!=="empty"&&!t?null:(0,Cw.jsx)(Pc,{style:e})}var _c=R(H(),1);var gt=R(H(),1);function Pw(e){return{isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,volume:100,duration:e}}function VI(e,t){switch(t.type){case"RESET":return t.state;case"FINISHED":return{...e,isFinished:!0,isPlaying:!1,playRequested:!1};case"PLAY_PAUSE":return{...e,isFinished:!1,isPlaying:!e.isPlaying};case"PLAY_REQUESTED":return{...e,isFinished:!1,playRequested:!0};case"PAUSE":return{...e,isPlaying:!1};case"PLAY":return{...e,isFinished:!1,playRequested:!1,isPlaying:!0};case"MUTE":return{...e,isMuted:!0};case"SET_VOLUME":return{...e,volume:t.volume,isMuted:t.volume===0};case"TOGGLE_MUTE":return{...e,isMuted:!e.isMuted};case"UNMUTE":return{...e,isMuted:!1}}return e}function Ec(e){let t=Math.round(e);return`${Math.floor(t/60)}:${`${t%60}`.padStart(2,"0")}`}function so(e){let[t,i]=(0,gt.useReducer)(VI,Pw(e.duration));(0,gt.useEffect)(()=>{i({type:"RESET",state:Pw(e.duration)})},[e.duration]);let n=(0,gt.useRef)(null),r=(0,gt.useRef)(null),a=(0,gt.useRef)(null),l=(0,gt.useRef)(!1),c=(0,gt.useCallback)(()=>{r.current&&n.current&&(r.current.innerHTML=Ec(n.current.currentTime),a.current&&(a.current.style.width=`${n.current.currentTime/e.duration*100}%`),l.current!==n.current.muted&&(l.current=n.current.muted,i(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"})))},[e.duration]),p=(0,gt.useCallback)(()=>{n.current&&(i({type:"PLAY_REQUESTED"}),n.current.play().then(()=>{i({type:"PLAY"})}),c())},[c]),m=(0,gt.useCallback)(()=>{n.current&&(n.current.duration>0&&n.current.paused?p():h())},[c]),h=(0,gt.useCallback)(()=>{n.current&&(n.current.pause(),i({type:"PAUSE"}),c())},[c]),y=(0,gt.useCallback)(()=>{n.current&&(n.current.muted=!n.current.muted,i(n.current.muted?{type:"MUTE"}:{type:"UNMUTE"}))},[]),S=(0,gt.useCallback)(()=>{n.current&&(n.current.muted=!0,i({type:"MUTE"}))},[]),w=(0,gt.useCallback)(()=>{n.current&&(n.current.muted=!1,i({type:"UNMUTE"}))},[]),v=(0,gt.useCallback)(C=>{n.current&&(n.current.muted=!1,n.current.volume=C/100,i({type:"SET_VOLUME",volume:C}))},[]),x=(0,gt.useCallback)(C=>{n.current&&(n.current.currentTime=Math.max(0,Math.min(C*e.duration,e.duration)),c())},[]),A=(0,gt.useCallback)(C=>{if(n.current){let I=typeof C=="function"?C(n.current.currentTime):C;n.current.currentTime=Math.max(0,Math.min(I,e.duration)),c()}},[]);return(0,gt.useEffect)(()=>{let C=setInterval(()=>{c()},350);return()=>clearInterval(C)},[c,e.duration]),(0,gt.useEffect)(()=>{let C=()=>{i({type:"FINISHED"})},I=n.current;return I?.addEventListener("ended",C),()=>I?.removeEventListener("ended",C)},[]),[{element:n,currentTime:r,progress:a},t,{play:p,pause:h,playPause:m,mute:S,unmute:w,toggleMute:y,setVolume:v,setDurationPercent:x,setTime:A}]}function Ew({currentKeyFrameIndex:e,keyframes:t,targetTime:i,currentTime:n}){if(n<=i){let r=t.findIndex(c=>c.time>i);if(r===-1)return[e,[]];let a={},l=t.slice(e,r);for(let c of l)c.type==="enter"&&(a[c.id]=c),c.type==="exit"&&(a[c.id]?delete a[c.id]:a[c.id]=c);return[r,Object.values(a)]}return[e,[]]}function Aw({complexTimeline:e,startTime:t=0}){let i=Vn(),n={},r={progress:null,currentTime:null},a=0,l=null,c=0,p=null;function m(){let I=A.getState().visibleElements,E=n,M=[],k=Object.keys(E);for(let O of k){let Q=E[O],V=I[O];Q&&V&&M.push(Q)}return M}function h(){return Object.keys(n).map(I=>n[I])}function y(C){r.currentTime&&(r.currentTime.innerHTML=Ec(C),r.progress&&(r.progress.style.width=`${C/e.duration*100}%`))}let S=()=>{let C=A.getState(),I=C.currentPrime;if(!I)return;let E=n,M=C.visibleElements,k=Object.keys(E);for(let O of k){let Q=E[O],V=M[O];if(Q&&O!==I.id&&V){let J=c-V.time*1e3;Math.abs(c-V.time*1e3-Q.currentTime*1e3)>300&&(Q.currentTime=J/1e3)}}},w=(C=0)=>{let I=C-a,E=A.getState();if(E.isPlaying){let M=E.currentPrime;if(M){let V=n[M.id];V&&(V.paused?c+=I:c=(M.time+V.currentTime)*1e3)}else c+=I;let k=c/1e3;if(k>E.duration){A.getState().setTime(0),A.setState({isPlaying:!1}),v(),y(0);return}y(k);let[O,Q]=Ew({currentTime:k,currentKeyFrameIndex:E.nextKeyframeIndex,keyframes:E.complexTimeline.keyframes,targetTime:k});Q.length&&E.applyKeyframes(O,Q)}a=C,l=requestAnimationFrame(w)},v=()=>{l&&cancelAnimationFrame(l)},x=(C,I)=>{},A=jn((C,I)=>({complexTimeline:e,elements:{},visibleElements:{},isBuffering:!1,bufferMap:{},isMuted:!1,playRequested:!1,isPlaying:!1,isFinished:!1,isReady:!1,volume:100,duration:e.duration,clockStartRequests:0,clockStartTime:0,primeTime:0,currentPrime:null,clockRunning:!1,nextKeyframeIndex:0,startClock:()=>{I().clockRunning||(w(),p=setInterval(S,500)),C({clockRunning:!0,clockStartRequests:I().clockStartRequests+1})},applyKeyframes(E,M){let k=I(),O={...k.visibleElements},Q=k.currentPrime;for(let V of M)V.type==="enter"&&(O[V.id]=V,i.emit("complex-timeline.enter",{id:V.id})),V.type==="exit"&&(O[V.id]=null,i.emit("complex-timeline.exit",{id:V.id})),V.isPrime&&(Q=V);C({nextKeyframeIndex:E,visibleElements:O,currentPrime:Q})},stopClock:()=>{let E=I().clockStartRequests;if(E!==0){if(E===1){v(),p&&clearInterval(p),C({clockRunning:!1,clockStartRequests:0});return}C({clockStartRequests:E-1})}},setElement:(E,M)=>{n[E]=M;let k=Object.keys(n),O=I().complexTimeline;x(M,E),O.items.filter(V=>V.type!=="Image"&&V.type!=="Text").every(V=>k.includes(V.annotationId))&&!I().isReady&&(i.emit("complex-timeline.ready",{complexTimeline:O}),C({isReady:!0}))},removeElement:E=>{delete n[E]},mute(){for(let E of h())E.muted=!0;C({isMuted:!0})},unmute(){for(let E of h())E.muted=!1;C({isMuted:!1})},play(){if(!I().isPlaying){for(let M of m())M.play();C({isPlaying:!0})}},pause(){if(I().isPlaying){for(let M of m())M.pause();C({isPlaying:!1})}},playPause(){let E=I();E.isPlaying?E.pause():E.play()},setDurationPercent(E){let k=I().duration*E;I().setTime(k)},setTime(E){let M=I(),k=c/1e3,O=typeof E=="function"?E(k):E,Q=M.nextKeyframeIndex;if(k>O){C({visibleElements:{},currentPrime:null});let pe=Object.keys(M.visibleElements);for(let Re of pe)i.emit("complex-timeline.exit",{id:Re});k=0,Q=0}let[V,J]=Ew({currentTime:k,currentKeyFrameIndex:Q,keyframes:M.complexTimeline.keyframes,targetTime:O});M.applyKeyframes(V,J),c=O*1e3;let q=A.getState().visibleElements,ee=n,Me=Object.keys(q);for(let pe of Me){let Re=q[pe];if(Re){let ke=ee[pe];ke&&(ke.currentTime=(c-Re.time*1e3)/1e3)}}y(O)},setVolume(E){for(let M of h())M.volume=Math.min(1,Math.max(0,E/100));C({volume:E})},toggleMute(){let E=I();E.isMuted?(E.unmute(),C({isMuted:!1})):(E.mute(),C({isMuted:!0}))},clearProgressElement(){r.progress=null},setProgressElement(E){r.progress=E},setCurrentTimeElement(E){r.currentTime=E},clearCurrentTimeElement(){r.currentTime=null}}));return i.on("complex-timeline.enter",C=>{let I=A.getState(),E=C.id,M=n[E];M&&I.isPlaying&&M.play()}),i.on("complex-timeline.exit",C=>{let I=A.getState(),E=C.id,M=n[E];M&&(M.currentTime=0,M.pause())}),A.getState().setTime(t),{store:A,emitter:i}}var Oa=R(H(),1);var an=R(H(),1),sn=R(B(),1),Rw=an.default.createContext("en"),Tw=an.default.createContext({}),_w=an.default.createContext(null);function UI(e){return(0,sn.jsx)(Tw.Provider,{value:e.translations,children:e.children})}function WI(e){return(0,sn.jsx)(Rw.Provider,{value:e.language,children:e.children})}function HI(e){return(0,sn.jsx)(_w.Provider,{value:e.convert,children:e.children})}function dm(){return an.default.useContext(_w)}function Ac(){return an.default.useContext(Rw)}function hm(){return an.default.useContext(Tw)}function Iw(e){return e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):e}function Mw({as:e,language:t,children:i,viewingDirection:n,...r}){let a=Ac();return(0,an.useMemo)(()=>Iw(a)===Iw(t),[a,t])?e?(0,sn.jsx)(e,{...r,children:i}):(0,sn.jsx)("span",{...r,children:i}):e?(0,sn.jsx)(e,{...r,lang:t,dir:n,children:i}):(0,sn.jsx)("span",{...r,lang:t,dir:n,children:i})}function kw(e,t,i){if(t.length===0)return;if(t.length===1)return t[0];if(t.indexOf(e)!==-1)return e;let n=e.indexOf("-")!==-1?e.slice(0,e.indexOf("-")):null;if(n&&t.indexOf(n)!==-1)return n;for(let r of i)if(t.indexOf(r)!==-1)return r;return t.indexOf("none")!==-1?"none":t.indexOf("@none")!==-1?"@none":t[0]}var Ow=(e,t=[])=>{let i=Ac();return(0,an.useMemo)(()=>{let n=e();return kw(i,n,[])},[i,...t])};function ao(e,t,i,n){return t?i?i(e[t]||t,n||"none"):e[t]||t:""}function Lw(e,t,i=`
78
78
  `,n={}){let r=dm(),a=Ow(()=>Object.keys(e||{}),[e]);return[(0,an.useMemo)(()=>{if(!e)return ao(n,t,r)||"";if(typeof e=="string")return ao(n,e,r);let l=a?e[a]:void 0;return l?typeof l=="string"?l:l.map(c=>ao(n,c,r,a)).join(i):""},[a,t,e]),a]}function qI(){let e=Ac(),t=hm(),i=dm();return function(r,a="",l=`
79
79
  `,c=t){let p=Object.keys(r||{}),m=kw(e,p,[]);if(!r)return ao(c,a,i)||"";if(typeof r=="string")return ao(c,r,i);let h=m?r[m]:void 0;return h?typeof h=="string"?ao(c,h,i,m):h.map(y=>ao(c,y,i,m)).join(typeof l<"u"?l:`
80
- `):""}}function Ii({as:e,defaultText:t,enableDangerouslySetInnerHTML:i,children:n,separator:r,...a}){let l=hm(),[c,p]=Lw(n,t,r,l);return p?(0,sn.jsx)(Mw,{...a,as:e,language:p,title:i?void 0:c,dangerouslySetInnerHTML:i?{__html:c}:void 0,children:i?void 0:c}):e?(0,sn.jsx)(e,{...a,children:c}):(0,sn.jsx)("span",{...a,title:i?void 0:c,dangerouslySetInnerHTML:i?{__html:c}:void 0,children:i?void 0:c})}var Ic=R(H(),1),lo=R(B(),1),pm=e=>{let t=e.format||"jpg",i=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,a=e.enableSizes,l=(0,Ic.useMemo)(()=>{let m=e.tiles.imageService.id||e.tiles.imageService["@id"];return m?.endsWith("/info.json")?m.slice(0,-1*10):m},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),c=(0,Ic.useMemo)(()=>{let m=e.tiles.imageService.tiles||[];if(!m.length){let h=e.width,y=[1],S=1;for(;Math.pow(2,S)<h;)S=S*2,y.push(S);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&Vs(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:y}]:[]}return m},[e.tiles.imageService,e.width]),p=(0,Ic.useMemo)(()=>{let m=e.tiles.imageService;return(m?m["@context"]?Array.isArray(m["@context"])?m["@context"]:[m["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,lo.jsx)("world-object",{rotation:e.rotation,scale:i,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,lo.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:[r&&e.tiles.thumbnail?(0,lo.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,a&&n.map((m,h)=>(0,lo.jsx)("world-image",{uri:`${l}/full/${m.width},${m.height}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:m.width,height:m.height},crop:e.crop},h)),c.map(m=>(m.scaleFactors||[]).map(h=>(0,lo.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:m,scaleFactor:h,crop:e.crop,version3:p},`${e.tiles.imageService.id}-tile-${h}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var Hi=R(B(),1);function QI({resource:e,heading:t,note:i,extra:n}){return n?(0,Hi.jsx)(Cn,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,Hi.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,Hi.jsxs)("div",{children:[(0,Hi.jsx)(Ii,{children:t||"Not authorised"}),i&&(0,Hi.jsx)("p",{children:(0,Hi.jsx)(Ii,{children:i})}),(0,Hi.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Fw({image:e,thumbnail:t,crop:i,enableSizes:n,enableThumbnail:r,renderOptions:a}){let l=Tf(),c=Le(e.service),p=fw(c),m=as(),h=p?.service;m(e.service,e);let y=h&&p?.status==="done",S=(h?.preferredFormats||[])[0],w=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(y===!1)return null;if(!l){let v=e.service,x=v.width||e.width||0,A=v.height||e.height||0;return(0,Hi.jsx)(pm,{enableThumbnail:r,renderOptions:a,tiles:{id:v.id||v["@id"]||"unknown",height:A,width:x,imageService:v,thumbnail:w},enableSizes:n,x:0,y:0,format:S,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:i})}return(0,Hi.jsx)(_f,{resource:e.service,errorComponent:QI,extra:e,children:v=>{let x=v.width||e.width||0,A=v.height||e.height||0;return(0,Hi.jsx)(pm,{enableThumbnail:r,renderOptions:a,tiles:{id:v.id||v["@id"]||"unknown",height:A,width:x,imageService:v,thumbnail:w},format:S,enableSizes:n,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:i})}},e.id)}var uo=R(B(),1);function xr({id:e,image:t,thumbnail:i,isStatic:n,x:r=0,y:a=0,children:l,selector:c,onClick:p,enableSizes:m}){let h=(0,Oa.useMemo)(()=>{if(!(!c||c.spatial.x===0&&c.spatial.y===0))return c.spatial},[c]);return(0,uo.jsx)("world-object",{x:r+t.target.spatial.x,y:a+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:p,children:t.service?(0,uo.jsxs)(Oa.Fragment,{children:[(0,uo.jsx)(Fw,{image:t,thumbnail:i,crop:h,enableSizes:m}),l]},"service"):(0,uo.jsxs)(Oa.Fragment,{children:[(0,uo.jsx)("world-image",{onClick:p,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:h}),l]},"no-service")},e+(t.service?"server":"no-service"))}var Rc=R(H(),1);var zw=R(B(),1),fm=(0,Rc.createContext)(null);fm.displayName="ComplexTimeline";function mm({children:e,store:t}){return(0,zw.jsx)(fm.Provider,{value:t,children:e})}function $I(e){let t=(0,Rc.useContext)(fm);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return Ft(t,e)}var Hn=R(B(),1);function Tc({strategy:e,onClickPaintingAnnotation:t}){return(0,Hn.jsx)(Hn.Fragment,{children:e.items.map((i,n)=>(0,Hn.jsx)(Hn.Fragment,{children:(0,Hn.jsx)(Cn,{onClick:t?r=>{r.stopPropagation(),t(i.annotationId,i,r)}:void 0,target:i.target?.spatial||void 0,children:(0,Hn.jsx)("div",{"data-textual-content":!0,children:(0,Hn.jsx)(Ii,{enableDangerouslySetInnerHTML:!0,children:i.text})})},n)}))})}var qn=R(B(),1);function Nw({strategy:e,children:t}){let{store:i}=(0,_c.useMemo)(()=>Aw({complexTimeline:e}),[e]),n=Ft(i,l=>l.isReady),r=Ft(i,l=>l.visibleElements);function a(l){return c=>{c&&i.getState().setElement(l,c)}}return(0,_c.useLayoutEffect)(()=>{if(n){let{startClock:l,stopClock:c}=i.getState();return l(),()=>{c()}}},[e,n]),zt("portal","custom-controls",mm,{store:i,children:t},[n]),(0,qn.jsxs)(qn.Fragment,{children:[e.items.map(l=>l.type!=="Image"||!r[l.annotationId]?null:(0,qn.jsx)(xr,{image:l,id:l.annotationId},l.id)),e.items.map((l,c)=>l.type!=="Text"||!r[l.annotationId]?null:(0,qn.jsx)(Tc,{strategy:{type:"textual-content",items:[l]}},c)),e.items.map((l,c)=>l.type!=="Video"||!l.target.spatial?null:(0,qn.jsx)(Cn,{target:l.target.spatial,children:(0,qn.jsx)("video",{ref:a(l.annotationId),src:l.url,style:{height:"100%",width:"100%",opacity:r[l.annotationId]?1:0}})},c))]})}var Bw=R(B(),1);function gm(){let{strategy:e}=pt(),{renderComplexTimelineControls:t}=ni();return e.type!=="complex-timeline"?null:(0,Bw.jsx)(Nw,{strategy:e,children:t?t(e):null})}var us=R(B(),1);function ym({onClickPaintingAnnotation:e,children:t}){let{strategy:i}=pt(),{renderViewerControls:n,viewControlsDeps:r}=ni(),a=ga(),l=Ce();return zt(a&&i.type==="textual-content"&&n?"overlay":"none",`canvas-portal-controls-${l?.id}`,Ui.Provider,n?{value:a||null,children:n(i)}:{},[l,a,i,...r||[]]),i.type!=="textual-content"?null:(0,us.jsxs)(us.Fragment,{children:[(0,us.jsx)(Tc,{strategy:i,onClickPaintingAnnotation:e}),t]})}var Sr=R(H(),1);var Dw=R(H(),1),vm=(e,t=[])=>{let i=_e();(0,Dw.useEffect)(()=>{e(i)},[i,...t])};var Mc=R(H(),1);var jw=Mc.default.createContext(new Lo);function La(){return(0,Mc.useContext)(jw)}function Qn(e,t,{canvasId:i,manifestId:n}={}){let r=_e(),a=La(),l=(0,Sr.useMemo)(()=>Pp(r,{imageServiceLoader:a}),[r,a]),[c,p]=(0,Sr.useState)(),m=vt(n?{id:n}:void 0),h=Ce(i?{id:i}:void 0),y=h||m,S=(0,Sr.useRef)(!1);if((0,Sr.useEffect)(()=>(S.current=!1,()=>{S.current=!0}),[]),!y)throw new Error("Must be called under a manifest or canvas context.");return vm(w=>{l.getBestThumbnailAtSize(y,e,t).then(v=>{v.best&&!S.current&&p(v.best)})},[y]),c}var cs=R(B(),1);function xm({isStatic:e=!1,enableSizes:t=!1,onClickPaintingAnnotation:i,children:n}){let{strategy:r}=pt(),{renderViewerControls:a,viewControlsDeps:l}=ni(),c=Ce(),p=ga(),m=Qn({maxWidth:256,maxHeight:256});return zt(p&&r.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${c?.id}`,Ui.Provider,a?{value:p||null,children:a(r)}:{},[c,p,r,...l||[]]),r.type!=="images"?null:(0,cs.jsxs)(cs.Fragment,{children:[r.images.map((h,y)=>(0,cs.jsx)(xr,{isStatic:e,image:h,id:h.id,thumbnail:y===0?m:void 0,selector:h.selector,enableSizes:t,onClick:i?S=>{i(h.annotationId,h,S)}:void 0},h.id+y)),n]})}var wr=R(B(),1);function Sm({model:e}){return(0,wr.jsxs)(wr.Fragment,{children:[(0,wr.jsx)("style",{children:`
80
+ `):""}}function Ii({as:e,defaultText:t,enableDangerouslySetInnerHTML:i,children:n,separator:r,...a}){let l=hm(),[c,p]=Lw(n,t,r,l);return p?(0,sn.jsx)(Mw,{...a,as:e,language:p,title:i?void 0:c,dangerouslySetInnerHTML:i?{__html:c}:void 0,children:i?void 0:c}):e?(0,sn.jsx)(e,{...a,children:c}):(0,sn.jsx)("span",{...a,title:i?void 0:c,dangerouslySetInnerHTML:i?{__html:c}:void 0,children:i?void 0:c})}var Ic=R(H(),1),lo=R(B(),1),pm=e=>{let t=e.format||"jpg",i=e.width/(e.crop?.width||e.tiles.width),n=e.tiles.imageService.sizes||[],r=e.enableThumbnail,a=e.enableSizes,l=(0,Ic.useMemo)(()=>{let m=e.tiles.imageService.id||e.tiles.imageService["@id"];return m?.endsWith("/info.json")?m.slice(0,-1*10):m},[e.tiles.imageService.id,e.tiles.imageService["@id"]]),c=(0,Ic.useMemo)(()=>{let m=e.tiles.imageService.tiles||[];if(!m.length){let h=e.width,y=[1],S=1;for(;Math.pow(2,S)<h;)S=S*2,y.push(S);return(e.tiles.imageService.maxArea||e.tiles.imageService.maxWidth||e.tiles.imageService.maxHeight)&&Vs(2,e.tiles.imageService)?[{width:256,height:256,scaleFactors:y}]:[]}return m},[e.tiles.imageService,e.width]),p=(0,Ic.useMemo)(()=>{let m=e.tiles.imageService;return(m?m["@context"]?Array.isArray(m["@context"])?m["@context"]:[m["@context"]]:[]:[]).indexOf("http://iiif.io/api/image/3/context.json")!==-1},[e.tiles.imageService.id,e.tiles.imageService]);return(0,lo.jsx)("world-object",{rotation:e.rotation,scale:i,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,lo.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:[r&&e.tiles.thumbnail?(0,lo.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,a&&n.map((m,h)=>(0,lo.jsx)("world-image",{uri:`${l}/full/${m.width},${p?m.height:""}/0/default.${t}`,target:{width:e.tiles.width,height:e.tiles.height},display:{width:m.width,height:m.height},crop:e.crop},h)),c.map(m=>(m.scaleFactors||[]).map(h=>(0,lo.jsx)("tiled-image",{uri:e.tiles.imageService.id,display:{width:e.tiles.width,height:e.tiles.height},format:t,tile:m,scaleFactor:h,crop:e.crop,version3:p},`${e.tiles.imageService.id}-tile-${h}`)))]},e.tiles.imageService.id)},e.tiles.imageService.id)};var Hi=R(B(),1);function QI({resource:e,heading:t,note:i,extra:n}){return n?(0,Hi.jsx)(Cn,{target:{x:0,y:0,width:n.target?.spatial.width,height:n.target?.spatial.height},backgroundColor:"#333",relative:!0,children:(0,Hi.jsx)("div",{style:{display:"flex",alignContent:"center",justifyContent:"center",alignItems:"center",height:"100%",width:"100%",background:"#444",color:"#BBB"},children:(0,Hi.jsxs)("div",{children:[(0,Hi.jsx)(Ii,{children:t||"Not authorised"}),i&&(0,Hi.jsx)("p",{children:(0,Hi.jsx)(Ii,{children:i})}),(0,Hi.jsx)("p",{children:e.id||e["@id"]||"unknown"})]})})}):null}function Fw({image:e,thumbnail:t,crop:i,enableSizes:n,enableThumbnail:r,renderOptions:a}){let l=Tf(),c=Le(e.service),p=fw(c),m=as(),h=p?.service;m(e.service,e);let y=h&&p?.status==="done",S=(h?.preferredFormats||[])[0],w=t&&t.type==="fixed"&&t.id&&!t.id.includes("/full/full/")&&!t.id.includes("/max/")?t:void 0;if(y===!1)return null;if(!l){let v=e.service,x=v.width||e.width||0,A=v.height||e.height||0;return(0,Hi.jsx)(pm,{enableThumbnail:r,renderOptions:a,tiles:{id:v.id||v["@id"]||"unknown",height:A,width:x,imageService:v,thumbnail:w},enableSizes:n,x:0,y:0,format:S,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:i})}return(0,Hi.jsx)(_f,{resource:e.service,errorComponent:QI,extra:e,children:v=>{let x=v.width||e.width||0,A=v.height||e.height||0;return(0,Hi.jsx)(pm,{enableThumbnail:r,renderOptions:a,tiles:{id:v.id||v["@id"]||"unknown",height:A,width:x,imageService:v,thumbnail:w},format:S,enableSizes:n,x:0,y:0,width:e.target?.spatial.width,height:e.target?.spatial.height,crop:i})}},e.id)}var uo=R(B(),1);function xr({id:e,image:t,thumbnail:i,isStatic:n,x:r=0,y:a=0,children:l,selector:c,onClick:p,enableSizes:m}){let h=(0,Oa.useMemo)(()=>{if(!(!c||c.spatial.x===0&&c.spatial.y===0))return c.spatial},[c]);return(0,uo.jsx)("world-object",{x:r+t.target.spatial.x,y:a+t.target.spatial.y,width:t.target.spatial.width,height:t.target.spatial.height,onClick:p,children:t.service?(0,uo.jsxs)(Oa.Fragment,{children:[(0,uo.jsx)(Fw,{image:t,thumbnail:i,crop:h,enableSizes:m}),l]},"service"):(0,uo.jsxs)(Oa.Fragment,{children:[(0,uo.jsx)("world-image",{onClick:p,uri:t.id,target:{x:0,y:0,width:t.target.spatial.width,height:t.target.spatial.height},display:t.width&&t.height?{width:t.width,height:t.height}:void 0,crop:h}),l]},"no-service")},e+(t.service?"server":"no-service"))}var Rc=R(H(),1);var zw=R(B(),1),fm=(0,Rc.createContext)(null);fm.displayName="ComplexTimeline";function mm({children:e,store:t}){return(0,zw.jsx)(fm.Provider,{value:t,children:e})}function $I(e){let t=(0,Rc.useContext)(fm);if(!t)throw new Error("useComplexTimeline must be used within a ComplexTimelineProvider");return Ft(t,e)}var Hn=R(B(),1);function Tc({strategy:e,onClickPaintingAnnotation:t}){return(0,Hn.jsx)(Hn.Fragment,{children:e.items.map((i,n)=>(0,Hn.jsx)(Hn.Fragment,{children:(0,Hn.jsx)(Cn,{onClick:t?r=>{r.stopPropagation(),t(i.annotationId,i,r)}:void 0,target:i.target?.spatial||void 0,children:(0,Hn.jsx)("div",{"data-textual-content":!0,children:(0,Hn.jsx)(Ii,{enableDangerouslySetInnerHTML:!0,children:i.text})})},n)}))})}var qn=R(B(),1);function Nw({strategy:e,children:t}){let{store:i}=(0,_c.useMemo)(()=>Aw({complexTimeline:e}),[e]),n=Ft(i,l=>l.isReady),r=Ft(i,l=>l.visibleElements);function a(l){return c=>{c&&i.getState().setElement(l,c)}}return(0,_c.useLayoutEffect)(()=>{if(n){let{startClock:l,stopClock:c}=i.getState();return l(),()=>{c()}}},[e,n]),zt("portal","custom-controls",mm,{store:i,children:t},[n]),(0,qn.jsxs)(qn.Fragment,{children:[e.items.map(l=>l.type!=="Image"||!r[l.annotationId]?null:(0,qn.jsx)(xr,{image:l,id:l.annotationId},l.id)),e.items.map((l,c)=>l.type!=="Text"||!r[l.annotationId]?null:(0,qn.jsx)(Tc,{strategy:{type:"textual-content",items:[l]}},c)),e.items.map((l,c)=>l.type!=="Video"||!l.target.spatial?null:(0,qn.jsx)(Cn,{target:l.target.spatial,children:(0,qn.jsx)("video",{ref:a(l.annotationId),src:l.url,style:{height:"100%",width:"100%",opacity:r[l.annotationId]?1:0}})},c))]})}var Bw=R(B(),1);function gm(){let{strategy:e}=pt(),{renderComplexTimelineControls:t}=ni();return e.type!=="complex-timeline"?null:(0,Bw.jsx)(Nw,{strategy:e,children:t?t(e):null})}var us=R(B(),1);function ym({onClickPaintingAnnotation:e,children:t}){let{strategy:i}=pt(),{renderViewerControls:n,viewControlsDeps:r}=ni(),a=ga(),l=Ce();return zt(a&&i.type==="textual-content"&&n?"overlay":"none",`canvas-portal-controls-${l?.id}`,Ui.Provider,n?{value:a||null,children:n(i)}:{},[l,a,i,...r||[]]),i.type!=="textual-content"?null:(0,us.jsxs)(us.Fragment,{children:[(0,us.jsx)(Tc,{strategy:i,onClickPaintingAnnotation:e}),t]})}var Sr=R(H(),1);var Dw=R(H(),1),vm=(e,t=[])=>{let i=_e();(0,Dw.useEffect)(()=>{e(i)},[i,...t])};var Mc=R(H(),1);var jw=Mc.default.createContext(new Lo);function La(){return(0,Mc.useContext)(jw)}function Qn(e,t,{canvasId:i,manifestId:n}={}){let r=_e(),a=La(),l=(0,Sr.useMemo)(()=>Pp(r,{imageServiceLoader:a}),[r,a]),[c,p]=(0,Sr.useState)(),m=vt(n?{id:n}:void 0),h=Ce(i?{id:i}:void 0),y=h||m,S=(0,Sr.useRef)(!1);if((0,Sr.useEffect)(()=>(S.current=!1,()=>{S.current=!0}),[]),!y)throw new Error("Must be called under a manifest or canvas context.");return vm(w=>{l.getBestThumbnailAtSize(y,e,t).then(v=>{v.best&&!S.current&&p(v.best)})},[y]),c}var cs=R(B(),1);function xm({isStatic:e=!1,enableSizes:t=!1,onClickPaintingAnnotation:i,children:n}){let{strategy:r}=pt(),{renderViewerControls:a,viewControlsDeps:l}=ni(),c=Ce(),p=ga(),m=Qn({maxWidth:256,maxHeight:256});return zt(p&&r.type==="images"&&a?"overlay":"none",`canvas-portal-controls-${c?.id}`,Ui.Provider,a?{value:p||null,children:a(r)}:{},[c,p,r,...l||[]]),r.type!=="images"?null:(0,cs.jsxs)(cs.Fragment,{children:[r.images.map((h,y)=>(0,cs.jsx)(xr,{isStatic:e,image:h,id:h.id,thumbnail:y===0?m:void 0,selector:h.selector,enableSizes:t,onClick:i?S=>{i(h.annotationId,h,S)}:void 0},h.id+y)),n]})}var wr=R(B(),1);function Sm({model:e}){return(0,wr.jsxs)(wr.Fragment,{children:[(0,wr.jsx)("style",{children:`
81
81
  .model-container {
82
82
  position: absolute;
83
83
  top: 0;