UNPKG

universalviewer

Version:

The Universal Viewer is a community-developed open source project on a mission to help you share your 📚📜📰📽️📻🗿 with the 🌎

4 lines 466 kB
import{a as Jt}from"./chunk-3UUJB7QR.js";import{a as Yt}from"./chunk-CHPN5XCG.js";import{a as Vt}from"./chunk-VFS2UTIV.js";import{a as Ht,b as li,c as he,d as Ai,e as Qt,f as xe,g as zt}from"./chunk-JBOC3SMM.js";import"./chunk-BYXBJQAS.js";import{b as Gt,d as Ge,e as Ot,g as rt,h as _t,i as Zt,j as jt,k as Wt}from"./chunk-3EE5OYDH.js";import{a as Tt,b as St,c as st}from"./chunk-R55BXRRG.js";import{a as R}from"./chunk-DAOTUXG2.js";import{a as ke,b as Ct,c as q,h as It,i as kt,j as tt,k as Rt,l as Nt,p as te}from"./chunk-HKSRVRBT.js";import{a as Ft,b as Ue,c as Lt,e as Ut,g as ze}from"./chunk-5XPHF4E5.js";import{c as Pt,d as ye}from"./chunk-L67DAW3A.js";var pt=Pt((ei,gt)=>{function U(e){return new U.Viewer(e)}(function(e){e.version={versionStr:"6.0.2",major:parseInt("6",10),minor:parseInt("0",10),revision:parseInt("2",10)};let n={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object AsyncFunction]":"function","[object Promise]":"promise","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object HTMLUnknownElement]":"dom-node","[object HTMLImageElement]":"image","[object HTMLCanvasElement]":"canvas","[object CanvasRenderingContext2D]":"context2d"},t=Object.prototype.toString,s=Object.prototype.hasOwnProperty;e.isFunction=function(i){return e.type(i)==="function"},e.isArray=Array.isArray||function(i){return e.type(i)==="array"},e.isWindow=function(i){return i&&typeof i=="object"&&"setInterval"in i},e.type=function(i){return i==null?String(i):n[t.call(i)]||"object"},e.isPlainObject=function(i){if(!i||U.type(i)!=="object"||i.nodeType||e.isWindow(i)||i.constructor&&!s.call(i,"constructor")&&!s.call(i.constructor.prototype,"isPrototypeOf"))return!1;let a;for(let o in i)a=o;return a===void 0||s.call(i,a)},e.isEmptyObject=function(i){for(let a in i)return!1;return!0},e.freezeObject=function(i){return Object.freeze?e.freezeObject=Object.freeze:e.freezeObject=function(a){return a},e.freezeObject(i)},e.supportsCanvas=function(){let i=document.createElement("canvas");return!!(e.isFunction(i.getContext)&&i.getContext("2d"))}(),e.isCanvasTainted=function(i){let a=!1;try{i.getContext("2d").getImageData(0,0,1,1)}catch{a=!0}return a},e.supportsAddEventListener=function(){return!!(document.documentElement.addEventListener&&document.addEventListener)}(),e.supportsRemoveEventListener=function(){return!!(document.documentElement.removeEventListener&&document.removeEventListener)}(),e.supportsEventListenerOptions=function(){let i=0;if(e.supportsAddEventListener)try{let a={get capture(){return i++,!1},get once(){return i++,!1},get passive(){return i++,!1}};window.addEventListener("test",null,a),window.removeEventListener("test",null,a)}catch{i=0}return i>=3}(),e.supportsAsync=!0,e.getCurrentPixelDensityRatio=function(){if(e.supportsCanvas){let i=document.createElement("canvas").getContext("2d"),a=window.devicePixelRatio||1,o=i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1;return Math.max(a,1)/o}else return 1},e.pixelDensityRatio=e.getCurrentPixelDensityRatio()})(U);(function(e){e.extend=function(){let o,r,l,A,h,u,d=arguments[0]||{},m=arguments.length,f=!1,w=1;for(typeof d=="boolean"&&(f=d,d=arguments[1]||{},w=2),typeof d!="object"&&!U.isFunction(d)&&(d={}),m===w&&(d=this,--w);w<m;w++)if(o=arguments[w],o!==null||o!==void 0)for(r in o){let y=Object.getOwnPropertyDescriptor(o,r);if(y!==void 0){if(y.get||y.set){Object.defineProperty(d,r,y);continue}A=y.value}else{e.console.warn('Could not copy inherited property "'+r+'".');continue}d!==A&&(f&&A&&(U.isPlainObject(A)||(h=U.isArray(A)))?(l=d[r],h?(h=!1,u=l&&U.isArray(l)?l:[]):u=l&&U.isPlainObject(l)?l:{},d[r]=U.extend(f,u,A)):A!==void 0&&(d[r]=A))}return d};let n=function(){if(typeof navigator!="object")return!1;let o=navigator.userAgent;return typeof o!="string"?!1:o.indexOf("iPhone")!==-1||o.indexOf("iPad")!==-1||o.indexOf("iPod")!==-1};e.extend(e,{DEFAULT_SETTINGS:{xmlPath:null,tileSources:null,tileHost:null,initialPage:0,crossOriginPolicy:!1,ajaxWithCredentials:!1,loadTilesWithAjax:!1,ajaxHeaders:{},splitHashDataForPost:!1,callTileLoadedWithCachedData:!1,panHorizontal:!0,panVertical:!0,constrainDuringPan:!1,wrapHorizontal:!1,wrapVertical:!1,visibilityRatio:.5,minPixelRatio:.5,defaultZoomLevel:0,minZoomLevel:null,maxZoomLevel:null,homeFillsViewer:!1,clickTimeThreshold:300,clickDistThreshold:5,dblClickTimeThreshold:300,dblClickDistThreshold:20,springStiffness:6.5,animationTime:1.2,loadDestinationTilesOnAnimation:!0,gestureSettingsMouse:{dragToPan:!0,scrollToZoom:!0,clickToZoom:!0,dblClickToZoom:!1,dblClickDragToZoom:!1,pinchToZoom:!1,zoomToRefPoint:!0,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsTouch:{dragToPan:!0,scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,dblClickDragToZoom:!0,pinchToZoom:!0,zoomToRefPoint:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsPen:{dragToPan:!0,scrollToZoom:!1,clickToZoom:!0,dblClickToZoom:!1,dblClickDragToZoom:!1,pinchToZoom:!1,zoomToRefPoint:!0,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsUnknown:{dragToPan:!0,scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,dblClickDragToZoom:!1,pinchToZoom:!0,zoomToRefPoint:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},zoomPerClick:2,zoomPerScroll:1.2,zoomPerDblClickDrag:1.2,zoomPerSecond:1,blendTime:0,alwaysBlend:!1,autoHideControls:!0,immediateRender:!1,minZoomImageRatio:.9,maxZoomPixelRatio:1.1,smoothTileEdgesMinZoom:1.1,iOSDevice:n(),pixelsPerWheelLine:40,pixelsPerArrowPress:40,autoResize:!0,preserveImageSizeOnResize:!1,minScrollDeltaTime:50,rotationIncrement:90,maxTilesPerFrame:1,showSequenceControl:!0,sequenceControlAnchor:null,preserveViewport:!1,preserveOverlays:!1,navPrevNextWrap:!1,showNavigationControl:!0,navigationControlAnchor:null,showZoomControl:!0,showHomeControl:!0,showFullPageControl:!0,showRotationControl:!1,showFlipControl:!1,controlsFadeDelay:2e3,controlsFadeLength:1500,mouseNavEnabled:!0,keyboardNavEnabled:!0,showNavigator:!1,navigatorElement:null,navigatorId:null,navigatorPosition:null,navigatorSizeRatio:.2,navigatorMaintainSizeRatio:!1,navigatorTop:null,navigatorLeft:null,navigatorHeight:null,navigatorWidth:null,navigatorAutoFade:!0,navigatorRotate:!0,navigatorBackground:"#000",navigatorOpacity:.8,navigatorBorderColor:"#555",navigatorDisplayRegionColor:"#900",degrees:0,flipped:!1,overlayPreserveContentDirection:!0,opacity:1,compositeOperation:null,drawer:["auto","webgl","canvas","html"],drawerOptions:{},preload:!1,imageSmoothingEnabled:!0,placeholderFillStyle:null,subPixelRoundingForTransparency:null,showReferenceStrip:!1,referenceStripScroll:"horizontal",referenceStripElement:null,referenceStripHeight:null,referenceStripWidth:null,referenceStripPosition:"BOTTOM_LEFT",referenceStripSizeRatio:.2,collectionRows:3,collectionColumns:0,collectionLayout:"horizontal",collectionMode:!1,collectionTileSize:800,collectionTileMargin:80,imageLoaderLimit:0,maxImageCacheCount:200,timeout:3e4,tileRetryMax:0,tileRetryDelay:2500,prefixUrl:"/images/",navImages:{zoomIn:{REST:"zoomin_rest.png",GROUP:"zoomin_grouphover.png",HOVER:"zoomin_hover.png",DOWN:"zoomin_pressed.png"},zoomOut:{REST:"zoomout_rest.png",GROUP:"zoomout_grouphover.png",HOVER:"zoomout_hover.png",DOWN:"zoomout_pressed.png"},home:{REST:"home_rest.png",GROUP:"home_grouphover.png",HOVER:"home_hover.png",DOWN:"home_pressed.png"},fullpage:{REST:"fullpage_rest.png",GROUP:"fullpage_grouphover.png",HOVER:"fullpage_hover.png",DOWN:"fullpage_pressed.png"},rotateleft:{REST:"rotateleft_rest.png",GROUP:"rotateleft_grouphover.png",HOVER:"rotateleft_hover.png",DOWN:"rotateleft_pressed.png"},rotateright:{REST:"rotateright_rest.png",GROUP:"rotateright_grouphover.png",HOVER:"rotateright_hover.png",DOWN:"rotateright_pressed.png"},flip:{REST:"flip_rest.png",GROUP:"flip_grouphover.png",HOVER:"flip_hover.png",DOWN:"flip_pressed.png"},previous:{REST:"previous_rest.png",GROUP:"previous_grouphover.png",HOVER:"previous_hover.png",DOWN:"previous_pressed.png"},next:{REST:"next_rest.png",GROUP:"next_grouphover.png",HOVER:"next_hover.png",DOWN:"next_pressed.png"}},debugMode:!1,debugGridColor:["#437AB2","#1B9E77","#D95F02","#7570B3","#E7298A","#66A61E","#E6AB02","#A6761D","#666666"],silenceMultiImageWarnings:!1},delegate:function(o,r){return function(){let l=arguments;return l===void 0&&(l=[]),r.apply(o,l)}},BROWSERS:{UNKNOWN:0,IE:1,FIREFOX:2,SAFARI:3,CHROME:4,OPERA:5,EDGE:6,CHROMEEDGE:7},SUBPIXEL_ROUNDING_OCCURRENCES:{NEVER:0,ONLY_AT_REST:1,ALWAYS:2},_viewers:new Map,getViewer:function(o){return e._viewers.get(this.getElement(o))},getElement:function(o){return typeof o=="string"&&(o=document.getElementById(o)),o},getElementPosition:function(o){let r=new e.Point,l,A;for(o=e.getElement(o),l=e.getElementStyle(o).position==="fixed",A=a(o,l);A;)r.x+=o.offsetLeft,r.y+=o.offsetTop,l&&(r=r.plus(e.getPageScroll())),o=A,l=e.getElementStyle(o).position==="fixed",A=a(o,l);return r},getElementOffset:function(o){o=e.getElement(o);let r=o&&o.ownerDocument,l={top:0,left:0};if(!r)return new e.Point;let A=r.documentElement;typeof o.getBoundingClientRect<"u"&&(l=o.getBoundingClientRect());let h=r===r.window?r:r.nodeType===9?r.defaultView||r.parentWindow:!1;return new e.Point(l.left+(h.pageXOffset||A.scrollLeft)-(A.clientLeft||0),l.top+(h.pageYOffset||A.scrollTop)-(A.clientTop||0))},getElementSize:function(o){return o=e.getElement(o),new e.Point(o.clientWidth,o.clientHeight)},getElementStyle:document.documentElement.currentStyle?function(o){return o=e.getElement(o),o.currentStyle}:function(o){return o=e.getElement(o),window.getComputedStyle(o,"")},getCssPropertyWithVendorPrefix:function(o){let r={};return e.getCssPropertyWithVendorPrefix=function(l){if(r[l]!==void 0)return r[l];let A=document.createElement("div").style,h=null;if(A[l]!==void 0)h=l;else{let u=["Webkit","Moz","MS","O","webkit","moz","ms","o"],d=e.capitalizeFirstLetter(l);for(let m=0;m<u.length;m++){let f=u[m]+d;if(A[f]!==void 0){h=f;break}}}return r[l]=h,h},e.getCssPropertyWithVendorPrefix(o)},capitalizeFirstLetter:function(o){return o.charAt(0).toUpperCase()+o.slice(1)},positiveModulo:function(o,r){let l=o%r;return l<0&&(l+=r),l},pointInElement:function(o,r){o=e.getElement(o);let l=e.getElementOffset(o),A=e.getElementSize(o);return r.x>=l.x&&r.x<l.x+A.x&&r.y<l.y+A.y&&r.y>=l.y},getMousePosition:function(o){if(typeof o.pageX=="number")e.getMousePosition=function(r){let l=new e.Point;return l.x=r.pageX,l.y=r.pageY,l};else if(typeof o.clientX=="number")e.getMousePosition=function(r){let l=new e.Point;return l.x=r.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,l.y=r.clientY+document.body.scrollTop+document.documentElement.scrollTop,l};else throw new Error("Unknown event mouse position, no known technique.");return e.getMousePosition(o)},getPageScroll:function(){let o=document.documentElement||{},r=document.body||{};if(typeof window.pageXOffset=="number")e.getPageScroll=function(){return new e.Point(window.pageXOffset,window.pageYOffset)};else if(r.scrollLeft||r.scrollTop)e.getPageScroll=function(){return new e.Point(document.body.scrollLeft,document.body.scrollTop)};else if(o.scrollLeft||o.scrollTop)e.getPageScroll=function(){return new e.Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)};else return new e.Point(0,0);return e.getPageScroll()},setPageScroll:function(o){if(typeof window.scrollTo<"u")e.setPageScroll=function(r){window.scrollTo(r.x,r.y)};else{let r=e.getPageScroll();if(r.x===o.x&&r.y===o.y)return;document.body.scrollLeft=o.x,document.body.scrollTop=o.y;let l=e.getPageScroll();if(l.x!==r.x&&l.y!==r.y){e.setPageScroll=function(A){document.body.scrollLeft=A.x,document.body.scrollTop=A.y};return}if(document.documentElement.scrollLeft=o.x,document.documentElement.scrollTop=o.y,l=e.getPageScroll(),l.x!==r.x&&l.y!==r.y){e.setPageScroll=function(A){document.documentElement.scrollLeft=A.x,document.documentElement.scrollTop=A.y};return}e.setPageScroll=function(A){}}e.setPageScroll(o)},getWindowSize:function(){let o=document.documentElement||{},r=document.body||{};if(typeof window.innerWidth=="number")e.getWindowSize=function(){return new e.Point(window.innerWidth,window.innerHeight)};else if(o.clientWidth||o.clientHeight)e.getWindowSize=function(){return new e.Point(document.documentElement.clientWidth,document.documentElement.clientHeight)};else if(r.clientWidth||r.clientHeight)e.getWindowSize=function(){return new e.Point(document.body.clientWidth,document.body.clientHeight)};else throw new Error("Unknown window size, no known technique.");return e.getWindowSize()},makeCenteredNode:function(o){o=e.getElement(o);let r=[e.makeNeutralElement("div"),e.makeNeutralElement("div"),e.makeNeutralElement("div")];return e.extend(r[0].style,{display:"table",height:"100%",width:"100%"}),e.extend(r[1].style,{display:"table-row"}),e.extend(r[2].style,{display:"table-cell",verticalAlign:"middle",textAlign:"center"}),r[0].appendChild(r[1]),r[1].appendChild(r[2]),r[2].appendChild(o),r[0]},trace:function(o,r=!1){this.__traceLogs=[],setInterval(()=>{this.__traceLogs.length&&(console.log(this.__traceLogs.join(` `)),this.__traceLogs=[])},2e3),this.trace=function(l,A=!1){if(typeof l=="string"){this.__traceLogs.push(l),A&&this.__traceLogs.push(...new Error().stack.split(` `).slice(1));return}l instanceof U.Tile&&(l=l.getCache(l.originalCacheKey));let h=l._tiles[0];this.__traceLogs.push(`Cache ${h.toString()} loaded ${h.loaded} loading ${h.loading} cacheCount ${Object.keys(h._caches).length} - CACHE ${l.__invStamp}`),A&&this.__traceLogs.push(...new Error().stack.split(` `).slice(1))},this.trace(o,r)},makeNeutralElement:function(o){let r=document.createElement(o),l=r.style;return l.background="transparent none",l.border="none",l.margin="0px",l.padding="0px",l.position="static",r},now:function(){return Date.now?e.now=Date.now:e.now=function(){return new Date().getTime()},e.now()},makeTransparentImage:function(o){let r=e.makeNeutralElement("img");return r.src=o,r},setElementOpacity:function(o,r,l){let A,h;o=e.getElement(o),l&&!e.Browser.alpha&&(r=Math.round(r)),e.Browser.opacity?o.style.opacity=r<1?r:"":r<1?(A=Math.round(100*r),h="alpha(opacity="+A+")",o.style.filter=h):o.style.filter=""},setElementTouchActionNone:function(o){o=e.getElement(o),typeof o.style.touchAction<"u"?o.style.touchAction="none":typeof o.style.msTouchAction<"u"&&(o.style.msTouchAction="none")},setElementPointerEvents:function(o,r){o=e.getElement(o),typeof o.style<"u"&&typeof o.style.pointerEvents<"u"&&(o.style.pointerEvents=r)},setElementPointerEventsNone:function(o){e.setElementPointerEvents(o,"none")},addClass:function(o,r){o=e.getElement(o),o.className?(" "+o.className+" ").indexOf(" "+r+" ")===-1&&(o.className+=" "+r):o.className=r},indexOf:function(o,r,l){return Array.prototype.indexOf?this.indexOf=function(A,h,u){return A.indexOf(h,u)}:this.indexOf=function(A,h,u){let d=u||0;if(!A)throw new TypeError;let m=A.length;if(m===0||d>=m)return-1;d<0&&(d=m-Math.abs(d));for(let f=d;f<m;f++)if(A[f]===h)return f;return-1},this.indexOf(o,r,l)},removeClass:function(o,r){let l=[];o=e.getElement(o);let A=o.className.split(/\s+/);for(let h=0;h<A.length;h++)A[h]&&A[h]!==r&&l.push(A[h]);o.className=l.join(" ")},normalizeEventListenerOptions:function(o){let r;return typeof o<"u"?typeof o=="boolean"?r=e.supportsEventListenerOptions?{capture:o}:o:r=e.supportsEventListenerOptions?o:typeof o.capture<"u"?o.capture:!1:r=e.supportsEventListenerOptions?{capture:!1}:!1,r},addEvent:function(){if(e.supportsAddEventListener)return function(o,r,l,A){A=e.normalizeEventListenerOptions(A),o=e.getElement(o),o.addEventListener(r,l,A)};if(document.documentElement.attachEvent&&document.attachEvent)return function(o,r,l){o=e.getElement(o),o.attachEvent("on"+r,l)};throw new Error("No known event model.")}(),removeEvent:function(){if(e.supportsRemoveEventListener)return function(o,r,l,A){A=e.normalizeEventListenerOptions(A),o=e.getElement(o),o.removeEventListener(r,l,A)};if(document.documentElement.detachEvent&&document.detachEvent)return function(o,r,l){o=e.getElement(o),o.detachEvent("on"+r,l)};throw new Error("No known event model.")}(),cancelEvent:function(o){o.preventDefault()},eventIsCanceled:function(o){return o.defaultPrevented},stopEvent:function(o){o.stopPropagation()},getUrlParameter:function(o){let r=i[o];return r||null},getUrlProtocol:function(o){let r=o.match(/^([a-z]+:)\/\//i);return r===null?window.location.protocol:r[1].toLowerCase()},createAjaxRequest:function(){if(window.XMLHttpRequest)return e.createAjaxRequest=function(){return new XMLHttpRequest},new XMLHttpRequest;throw new Error("Browser doesn't support XMLHttpRequest.")},makeAjaxRequest:function(o,r,l){let A,h,u,d;e.isPlainObject(o)?(r=o.success,l=o.error,A=o.withCredentials,h=o.headers,u=o.responseType||null,d=o.postData||null,o=o.url):e.console.warn("OpenSeadragon.makeAjaxRequest() deprecated usage!");let m=e.getUrlProtocol(o),f=e.createAjaxRequest();if(!e.isFunction(r))throw new Error("makeAjaxRequest requires a success callback");f.onreadystatechange=function(){f.readyState===4&&(f.onreadystatechange=function(){},f.status>=200&&f.status<300||f.status===0&&m!=="http:"&&m!=="https:"?r(f):e.isFunction(l)?l(f):e.console.error("AJAX request returned %d: %s",f.status,o))};let w=d?"POST":"GET";try{if(f.open(w,o,!0),u&&(f.responseType=u),h)for(let y in h)Object.prototype.hasOwnProperty.call(h,y)&&h[y]&&f.setRequestHeader(y,h[y]);A&&(f.withCredentials=!0),f.send(d)}catch(y){e.console.error("%s while making AJAX request: %s",y.name,y.message),f.onreadystatechange=function(){},e.isFunction(l)&&l(f,y)}return f},jsonp:function(o){let r,l=o.url,A=document.head||document.getElementsByTagName("head")[0]||document.documentElement,h=o.callbackName||"openseadragon"+e.now(),u=window[h],d="$1"+h+"$2",m=o.param||"callback",f=o.callback;l=l.replace(/(=)\?(&|$)|\?\?/i,d),l+=(/\?/.test(l)?"&":"?")+m+"="+h,window[h]=function(w){if(u)window[h]=u;else try{delete window[h]}catch{}f&&e.isFunction(f)&&f(w)},r=document.createElement("script"),(o.async!==void 0||o.async!==!1)&&(r.async="async"),o.scriptCharset&&(r.charset=o.scriptCharset),r.src=l,r.onload=r.onreadystatechange=function(w,y){(y||!r.readyState||/loaded|complete/.test(r.readyState))&&(r.onload=r.onreadystatechange=null,A&&r.parentNode&&A.removeChild(r),r=void 0)},A.insertBefore(r,A.firstChild)},createFromDZI:function(){throw"OpenSeadragon.createFromDZI is deprecated, use Viewer.open."},parseXml:function(o){if(window.DOMParser)e.parseXml=function(r){let l=null;return l=new DOMParser().parseFromString(r,"text/xml"),l};else throw new Error("Browser doesn't support XML DOM.");return e.parseXml(o)},parseJSON:function(o){return e.parseJSON=window.JSON.parse,e.parseJSON(o)},imageFormatSupported:function(o){return o=o||"",!!s[o.toLowerCase()]},setImageFormatsSupported:function(o){e.extend(s,o)}});let t=function(o){};e.console=window.console||{log:t,debug:t,info:t,warn:t,error:t,assert:t},e.Browser={vendor:e.BROWSERS.UNKNOWN,version:0,alpha:!0};let s={avif:!0,bmp:!1,jpeg:!0,jpg:!0,png:!0,tif:!1,wdp:!1,webp:!0},i={};(function(){let o=navigator.appVersion,r=navigator.userAgent,l;switch(navigator.appName){case"Microsoft Internet Explorer":window.attachEvent&&window.ActiveXObject&&(e.Browser.vendor=e.BROWSERS.IE,e.Browser.version=parseFloat(r.substring(r.indexOf("MSIE")+5,r.indexOf(";",r.indexOf("MSIE")))));break;case"Netscape":window.addEventListener&&(r.indexOf("Edge")>=0?(e.Browser.vendor=e.BROWSERS.EDGE,e.Browser.version=parseFloat(r.substring(r.indexOf("Edge")+5))):r.indexOf("Edg")>=0?(e.Browser.vendor=e.BROWSERS.CHROMEEDGE,e.Browser.version=parseFloat(r.substring(r.indexOf("Edg")+4))):r.indexOf("Firefox")>=0?(e.Browser.vendor=e.BROWSERS.FIREFOX,e.Browser.version=parseFloat(r.substring(r.indexOf("Firefox")+8))):r.indexOf("Safari")>=0?(e.Browser.vendor=r.indexOf("Chrome")>=0?e.BROWSERS.CHROME:e.BROWSERS.SAFARI,e.Browser.version=parseFloat(r.substring(r.substring(0,r.indexOf("Safari")).lastIndexOf("/")+1,r.indexOf("Safari")))):(l=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"),l.exec(r)!==null&&(e.Browser.vendor=e.BROWSERS.IE,e.Browser.version=parseFloat(RegExp.$1))));break;case"Opera":e.Browser.vendor=e.BROWSERS.OPERA,e.Browser.version=parseFloat(o);break}let h=window.location.search.substring(1).split("&");for(let u=0;u<h.length;u++){let d=h[u],m=d.indexOf("=");if(m>0){let f=d.substring(0,m),w=d.substring(m+1);try{i[f]=decodeURIComponent(w)}catch{e.console.error("Ignoring malformed URL parameter: %s=%s",f,w)}}}e.Browser.alpha=!(e.Browser.vendor===e.BROWSERS.CHROME&&e.Browser.version<2),e.Browser.opacity=!0,e.Browser.vendor===e.BROWSERS.IE&&e.console.error("Internet Explorer is not supported by OpenSeadragon")})(),function(o){let r=o.requestAnimationFrame||o.mozRequestAnimationFrame||o.webkitRequestAnimationFrame||o.msRequestAnimationFrame,l=o.cancelAnimationFrame||o.mozCancelAnimationFrame||o.webkitCancelAnimationFrame||o.msCancelAnimationFrame;if(r&&l)e.requestAnimationFrame=function(){return r.apply(o,arguments)},e.cancelAnimationFrame=function(){return l.apply(o,arguments)};else{let A=[],h=[],u,d=0;e.requestAnimationFrame=function(m){return A.push([++d,m]),u||(u=setInterval(function(){if(A.length){let f=e.now(),w=h;for(h=A,A=w;h.length;)h.shift()[1](f)}else clearInterval(u),u=void 0},1e3/50)),d},e.cancelAnimationFrame=function(m){let f,w;for(f=0,w=A.length;f<w;f+=1)if(A[f][0]===m){A.splice(f,1);return}for(f=0,w=h.length;f<w;f+=1)if(h[f][0]===m){h.splice(f,1);return}}}}(window);function a(o,r){return r&&o!==document.body?document.body:o.offsetParent}e.Promise=window.Promise&&e.supportsAsync?window.Promise:class{constructor(o){this._error=!1,this.__value=void 0;try{o(r=>{for(;r instanceof e.Promise;)r=r._value;this._value=r},r=>{for(;r instanceof e.Promise;)r=r._value;this._value=r,this._error=!0})}catch(r){this._value=r,this._error=!0}}then(o){if(!this._error)try{this._value=o(this._value)}catch(r){this._value=r,this._error=!0}return this}catch(o){if(this._error)try{this._value=o(this._value),this._error=!1}catch(r){this._value=r,this._error=!0}return this}get _value(){return this.__value}set _value(o){o&&o.constructor===this.constructor&&(o=o._value),this.__value=o}static resolve(o){return new this(r=>r(o))}static reject(o){return new this((r,l)=>l(o))}static all(o){return new this(r=>r(o.map(l=>l())))}static race(o){return o.length<1?this.resolve():new this(r=>r(o[0]()))}}})(U);(function(e,n){typeof define=="function"&&define.amd?define([],function(){return n}):typeof gt=="object"&&gt.exports?gt.exports=n:(e||(e=typeof window=="object"&&window,e||n.console.error("OpenSeadragon must run in browser environment!")),e.OpenSeadragon=n)})(ei,U);(function(e){class n{constructor(s){s||(s=[0,0,0,0,0,0,0,0,0]),this.values=s}static makeIdentity(){return new n([1,0,0,0,1,0,0,0,1])}static makeTranslation(s,i){return new n([1,0,0,0,1,0,s,i,1])}static makeRotation(s){let i=Math.cos(s),a=Math.sin(s);return new n([i,-a,0,a,i,0,0,0,1])}static makeScaling(s,i){return new n([s,0,0,0,i,0,0,0,1])}multiply(s){let i=this.values,a=s.values,o=i[0*3+0],r=i[0*3+1],l=i[0*3+2],A=i[1*3+0],h=i[1*3+1],u=i[1*3+2],d=i[2*3+0],m=i[2*3+1],f=i[2*3+2],w=a[0*3+0],y=a[0*3+1],E=a[0*3+2],S=a[1*3+0],B=a[1*3+1],F=a[1*3+2],k=a[2*3+0],Q=a[2*3+1],W=a[2*3+2];return new n([w*o+y*A+E*d,w*r+y*h+E*m,w*l+y*u+E*f,S*o+B*A+F*d,S*r+B*h+F*m,S*l+B*u+F*f,k*o+Q*A+W*d,k*r+Q*h+W*m,k*l+Q*u+W*f])}setValues(s,i,a,o,r,l,A,h,u){this.values[0]=s,this.values[1]=i,this.values[2]=a,this.values[3]=o,this.values[4]=r,this.values[5]=l,this.values[6]=A,this.values[7]=h,this.values[8]=u}scaleAndTranslate(s,i,a,o){let r=this.values,l=r[0],A=r[1],h=r[2],u=r[3],d=r[4],m=r[5];return new n([s*l,s*A,s*h,i*u,i*d,i*m,a*l+o*u,a*A+o*d,a*h+o*m])}scaleAndTranslateSelf(s,i,a,o){let r=this.values,l=r[0],A=r[1],h=r[2],u=r[3],d=r[4],m=r[5];r[0]=s*l,r[1]=s*A,r[2]=s*h,r[3]=i*u,r[4]=i*d,r[5]=i*m,r[6]=a*l+o*u+r[6],r[7]=a*A+o*d+r[7],r[8]=a*h+o*m+r[8]}scaleAndTranslateOtherSetSelf(s){let i=s.values,a=this.values,o=a[0],r=a[4],l=a[6],A=a[7];a[0]=o*i[0],a[1]=o*i[1],a[2]=o*i[2],a[3]=r*i[3],a[4]=r*i[4],a[5]=r*i[5],a[6]=l*i[0]+A*i[3]+i[6],a[7]=l*i[1]+A*i[4]+i[7],a[8]=l*i[2]+A*i[5]+i[8]}}e.Mat3=n})(U);(function(e){let n={supportsFullScreen:!1,isFullScreen:function(){return!1},getFullScreenElement:function(){return null},requestFullScreen:function(){},exitFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",fullScreenErrorEventName:""};document.exitFullscreen?(n.supportsFullScreen=!0,n.getFullScreenElement=function(){return document.fullscreenElement},n.requestFullScreen=function(t){return t.requestFullscreen().catch(function(s){e.console.error("Fullscreen request failed: ",s)})},n.exitFullScreen=function(){document.exitFullscreen().catch(function(t){e.console.error("Error while exiting fullscreen: ",t)})},n.fullScreenEventName="fullscreenchange",n.fullScreenErrorEventName="fullscreenerror"):document.msExitFullscreen?(n.supportsFullScreen=!0,n.getFullScreenElement=function(){return document.msFullscreenElement},n.requestFullScreen=function(t){return t.msRequestFullscreen()},n.exitFullScreen=function(){document.msExitFullscreen()},n.fullScreenEventName="MSFullscreenChange",n.fullScreenErrorEventName="MSFullscreenError"):document.webkitExitFullscreen?(n.supportsFullScreen=!0,n.getFullScreenElement=function(){return document.webkitFullscreenElement},n.requestFullScreen=function(t){return t.webkitRequestFullscreen()},n.exitFullScreen=function(){document.webkitExitFullscreen()},n.fullScreenEventName="webkitfullscreenchange",n.fullScreenErrorEventName="webkitfullscreenerror"):document.webkitCancelFullScreen?(n.supportsFullScreen=!0,n.getFullScreenElement=function(){return document.webkitCurrentFullScreenElement},n.requestFullScreen=function(t){return t.webkitRequestFullScreen()},n.exitFullScreen=function(){document.webkitCancelFullScreen()},n.fullScreenEventName="webkitfullscreenchange",n.fullScreenErrorEventName="webkitfullscreenerror"):document.mozCancelFullScreen&&(n.supportsFullScreen=!0,n.getFullScreenElement=function(){return document.mozFullScreenElement},n.requestFullScreen=function(t){return t.mozRequestFullScreen()},n.exitFullScreen=function(){document.mozCancelFullScreen()},n.fullScreenEventName="mozfullscreenchange",n.fullScreenErrorEventName="mozfullscreenerror"),n.isFullScreen=function(){return n.getFullScreenElement()!==null},n.cancelFullScreen=function(){e.console.error("cancelFullScreen is deprecated. Use exitFullScreen instead."),n.exitFullScreen()},e.extend(e,n)})(U);(function(e){e.EventSource=function(){this.events={},this._rejectedEventList={}},e.EventSource.prototype={addOnceHandler:function(n,t,s,i,a){let o=this;i=i||1;let r=0,l=function(A){return r++,r===i&&o.removeHandler(n,l),t(A)};return this.addHandler(n,l,s,a)},addHandler:function(n,t,s,i){if(Object.prototype.hasOwnProperty.call(this._rejectedEventList,n))return e.console.error(`Error adding handler for ${n}. ${this._rejectedEventList[n]}`),!1;let a=this.events[n];if(a||(this.events[n]=a=[]),t&&e.isFunction(t)){let o=a.length,r={handler:t,userData:s||null,priority:i||0};for(a[o]=r;o>0&&a[o-1].priority<a[o].priority;)a[o]=a[o-1],a[o-1]=r,o--}return!0},removeHandler:function(n,t){let s=this.events[n],i=[];if(s&&e.isArray(s)){for(let a=0;a<s.length;a++)s[a].handler!==t&&i.push(s[a]);this.events[n]=i}},numberOfHandlers:function(n){let t=this.events[n];return t?t.length:0},removeAllHandlers:function(n){if(n)this.events[n]=[];else for(let t in this.events)this.events[t]=[]},getHandler:function(n){let t=this.events[n];return!t||!t.length?null:(t=t.length===1?[t[0]]:Array.apply(null,t),function(s,i){let a=t.length;for(let o=0;o<a&&!(t[o]&&(i.eventSource=s,i.userData=t[o].userData,t[o].handler(i),i.stopPropagation&&(typeof i.stopPropagation!="function"||i.stopPropagation()===!0)));o++);})},getAwaitingHandler:function(n,t){let s=this.events[n];return!s||!s.length?null:(s=s.length===1?[s[0]]:Array.apply(null,s),function(i,a){return new e.Promise((o,r)=>{let l=s.length;function A(h){if(h>=l||!s[h])return o(t),null;a.eventSource=i,a.userData=s[h].userData;let u;try{u=s[h].handler(a)}catch(d){return r(d)}return u=!u||e.type(u)!=="promise"?e.Promise.resolve():u,u.then(()=>!a.stopPropagation||typeof a.stopPropagation=="function"&&a.stopPropagation()===!1?A(h+1):A(l))}A(0).catch(r)})})},raiseEvent:function(n,t){if(Object.prototype.hasOwnProperty.call(this._rejectedEventList,n))return e.console.error(`Error adding handler for ${n}. ${this._rejectedEventList[n]}`),!1;let s=this.getHandler(n);return s&&s(this,t||{}),!0},raiseEventAwaiting:function(n,t,s=null){let i=this.getAwaitingHandler(n,s);return i?i(this,t||{}):e.Promise.resolve(s)},rejectEventHandler(n,t=""){this._rejectedEventList[n]=t},allowEventHandler(n){delete this._rejectedEventList[n]}}})(U);(function(e){let n=[],t={};e.MouseTracker=function(g){n.push(this);let p=arguments;e.isPlainObject(g)||(g={element:p[0],clickTimeThreshold:p[1],clickDistThreshold:p[2]}),this.hash=O(),this.element=e.getElement(g.element),this.clickTimeThreshold=g.clickTimeThreshold||e.DEFAULT_SETTINGS.clickTimeThreshold,this.clickDistThreshold=g.clickDistThreshold||e.DEFAULT_SETTINGS.clickDistThreshold,this.dblClickTimeThreshold=g.dblClickTimeThreshold||e.DEFAULT_SETTINGS.dblClickTimeThreshold,this.dblClickDistThreshold=g.dblClickDistThreshold||e.DEFAULT_SETTINGS.dblClickDistThreshold,this.userData=g.userData||null,this.stopDelay=g.stopDelay||50,this.preProcessEventHandler=g.preProcessEventHandler||null,this.contextMenuHandler=g.contextMenuHandler||null,this.enterHandler=g.enterHandler||null,this.leaveHandler=g.leaveHandler||null,this.exitHandler=g.exitHandler||null,this.overHandler=g.overHandler||null,this.outHandler=g.outHandler||null,this.pressHandler=g.pressHandler||null,this.nonPrimaryPressHandler=g.nonPrimaryPressHandler||null,this.releaseHandler=g.releaseHandler||null,this.nonPrimaryReleaseHandler=g.nonPrimaryReleaseHandler||null,this.moveHandler=g.moveHandler||null,this.scrollHandler=g.scrollHandler||null,this.clickHandler=g.clickHandler||null,this.dblClickHandler=g.dblClickHandler||null,this.dragHandler=g.dragHandler||null,this.dragEndHandler=g.dragEndHandler||null,this.pinchHandler=g.pinchHandler||null,this.stopHandler=g.stopHandler||null,this.keyDownHandler=g.keyDownHandler||null,this.keyUpHandler=g.keyUpHandler||null,this.keyHandler=g.keyHandler||null,this.focusHandler=g.focusHandler||null,this.blurHandler=g.blurHandler||null;let v=this;t[this.hash]={click:function(b){S(v,b)},dblclick:function(b){B(v,b)},keydown:function(b){F(v,b)},keyup:function(b){k(v,b)},keypress:function(b){Q(v,b)},focus:function(b){W(v,b)},blur:function(b){K(v,b)},contextmenu:function(b){oe(v,b)},wheel:function(b){ve(v,b)},mousewheel:function(b){ne(v,b)},DOMMouseScroll:function(b){ne(v,b)},MozMousePixelScroll:function(b){ne(v,b)},losecapture:function(b){Ie(v,b)},mouseenter:function(b){Pe(v,b)},mouseleave:function(b){Y(v,b)},mouseover:function(b){Be(v,b)},mouseout:function(b){Ze(v,b)},mousedown:function(b){Ae(v,b)},mouseup:function(b){je(v,b)},mousemove:function(b){Ve(v,b)},touchstart:function(b){Fe(v,b)},touchend:function(b){Le(v,b)},touchmove:function(b){ce(v,b)},touchcancel:function(b){pe(v,b)},gesturestart:function(b){me(v,b)},gesturechange:function(b){Re(v,b)},gotpointercapture:function(b){be(v,b)},lostpointercapture:function(b){we(v,b)},pointerenter:function(b){Pe(v,b)},pointerleave:function(b){Y(v,b)},pointerover:function(b){Be(v,b)},pointerout:function(b){Ze(v,b)},pointerdown:function(b){Ae(v,b)},pointerup:function(b){je(v,b)},pointermove:function(b){Ve(v,b)},pointercancel:function(b){He(v,b)},pointerupcaptured:function(b){Te(v,b)},pointermovecaptured:function(b){$e(v,b)},tracking:!1,activePointersLists:[],lastClickPos:null,dblClickTimeOut:null,pinchGPoints:[],lastPinchDist:0,currentPinchDist:0,lastPinchCenter:null,currentPinchCenter:null,sentDragEvent:!1},e.MouseTracker.havePointerEvents&&e.setElementPointerEvents(this.element,"auto"),this.exitHandler&&e.console.error("MouseTracker.exitHandler is deprecated. Use MouseTracker.leaveHandler instead."),g.startDisabled||this.setTracking(!0)},e.MouseTracker.prototype={destroy:function(){r(this),this.element=null;for(let g=0;g<n.length;g++)if(n[g]===this){n.splice(g,1);break}t[this.hash]=null,delete t[this.hash]},isTracking:function(){return t[this.hash].tracking},setTracking:function(g){return g?o(this):r(this),this},getActivePointersListByType:function(g){let p=t[this.hash],v=p?p.activePointersLists.length:0,b;for(let T=0;T<v;T++)if(p.activePointersLists[T].type===g)return p.activePointersLists[T];return b=new e.MouseTracker.GesturePointList(g),p&&p.activePointersLists.push(b),b},getActivePointerCount:function(){let g=t[this.hash],p=g.activePointersLists.length,v=0;for(let b=0;b<p;b++)v+=g.activePointersLists[b].getLength();return v},get hasGestureHandlers(){return!!(this.pressHandler||this.nonPrimaryPressHandler||this.releaseHandler||this.nonPrimaryReleaseHandler||this.clickHandler||this.dblClickHandler||this.dragHandler||this.dragEndHandler||this.pinchHandler)},get hasScrollHandler(){return!!this.scrollHandler},preProcessEventHandler:function(){},contextMenuHandler:function(){},enterHandler:function(){},leaveHandler:function(){},exitHandler:function(){},overHandler:function(){},outHandler:function(){},pressHandler:function(){},nonPrimaryPressHandler:function(){},releaseHandler:function(){},nonPrimaryReleaseHandler:function(){},moveHandler:function(){},scrollHandler:function(){},clickHandler:function(){},dblClickHandler:function(){},dragHandler:function(){},dragEndHandler:function(){},pinchHandler:function(){},stopHandler:function(){},keyDownHandler:function(){},keyUpHandler:function(){},keyHandler:function(){},focusHandler:function(){},blurHandler:function(){}};let s=function(){try{return window.self!==window.top}catch{return!0}}();function i(g){try{return g.addEventListener&&g.removeEventListener}catch{return!1}}e.MouseTracker.gesturePointVelocityTracker=function(){let g=[],p=0,v=0,b=function(ee,fe){return ee.hash.toString()+fe.type+fe.id.toString()},T=function(){let ee=g.length,fe=e.now(),De,V,Je=fe-v;v=fe;for(let Et=0;Et<ee;Et++){let et=g[Et],Qe=et.gPoint;Qe.direction=Math.atan2(Qe.currentPos.y-et.lastPos.y,Qe.currentPos.x-et.lastPos.x),De=et.lastPos.distanceTo(Qe.currentPos),et.lastPos=Qe.currentPos,V=1e3*De/(Je+1),Qe.speed=.75*V+.25*Qe.speed}};return{addPoint:function(ee,fe){let De=b(ee,fe);g.push({guid:De,gPoint:fe,lastPos:fe.currentPos}),g.length===1&&(v=e.now(),p=window.setInterval(T,50))},removePoint:function(ee,fe){let De=b(ee,fe),V=g.length;for(let Je=0;Je<V;Je++)if(g[Je].guid===De){g.splice(Je,1),V--,V===0&&window.clearInterval(p);break}}}}(),e.MouseTracker.captureElement=document,e.MouseTracker.wheelEventName="onwheel"in document.createElement("div")?"wheel":document.onmousewheel!==void 0?"mousewheel":"DOMMouseScroll",e.MouseTracker.subscribeEvents=["click","dblclick","keydown","keyup","keypress","focus","blur","contextmenu",e.MouseTracker.wheelEventName],e.MouseTracker.wheelEventName==="DOMMouseScroll"&&e.MouseTracker.subscribeEvents.push("MozMousePixelScroll"),window.PointerEvent?(e.MouseTracker.havePointerEvents=!0,e.MouseTracker.subscribeEvents.push("pointerenter","pointerleave","pointerover","pointerout","pointerdown","pointerup","pointermove","pointercancel"),e.MouseTracker.havePointerCapture=function(){let g=document.createElement("div");return e.isFunction(g.setPointerCapture)&&e.isFunction(g.releasePointerCapture)}(),e.MouseTracker.havePointerCapture&&e.MouseTracker.subscribeEvents.push("gotpointercapture","lostpointercapture")):(e.MouseTracker.havePointerEvents=!1,e.MouseTracker.subscribeEvents.push("mouseenter","mouseleave","mouseover","mouseout","mousedown","mouseup","mousemove"),e.MouseTracker.mousePointerId="legacy-mouse",e.MouseTracker.havePointerCapture=function(){let g=document.createElement("div");return e.isFunction(g.setCapture)&&e.isFunction(g.releaseCapture)}(),e.MouseTracker.havePointerCapture&&e.MouseTracker.subscribeEvents.push("losecapture"),"ontouchstart"in window&&e.MouseTracker.subscribeEvents.push("touchstart","touchend","touchmove","touchcancel"),"ongesturestart"in window&&e.MouseTracker.subscribeEvents.push("gesturestart","gesturechange")),e.MouseTracker.GesturePointList=function(g){this._gPoints=[],this.type=g,this.buttons=0,this.contacts=0,this.clicks=0,this.captureCount=0},e.MouseTracker.GesturePointList.prototype={getLength:function(){return this._gPoints.length},asArray:function(){return this._gPoints},add:function(g){return this._gPoints.push(g)},removeById:function(g){let p=this._gPoints.length;for(let v=0;v<p;v++)if(this._gPoints[v].id===g){this._gPoints.splice(v,1);break}return this._gPoints.length},getByIndex:function(g){return g<this._gPoints.length?this._gPoints[g]:null},getById:function(g){let p=this._gPoints.length;for(let v=0;v<p;v++)if(this._gPoints[v].id===g)return this._gPoints[v];return null},getPrimary:function(g){let p=this._gPoints.length;for(let v=0;v<p;v++)if(this._gPoints[v].isPrimary)return this._gPoints[v];return null},addContact:function(){++this.contacts,this.contacts>1&&(this.type==="mouse"||this.type==="pen")&&(e.console.warn("GesturePointList.addContact() Implausible contacts value"),this.contacts=1)},removeContact:function(){--this.contacts,this.contacts<0&&(this.contacts=0)}};function a(g){let p=t[g.hash],v=p.activePointersLists.length;for(let b=0;b<v;b++){let T=p.activePointersLists[b];if(T.getLength()>0){let N=[],H=T.asArray();for(let ee=0;ee<H.length;ee++)N.push(H[ee]);for(let ee=0;ee<N.length;ee++)x(g,T,N[ee])}}for(let b=0;b<v;b++)p.activePointersLists.pop();p.sentDragEvent=!1}function o(g){let p=t[g.hash];if(!p.tracking){for(let v=0;v<e.MouseTracker.subscribeEvents.length;v++){let b=e.MouseTracker.subscribeEvents[v];e.addEvent(g.element,b,p[b],b===e.MouseTracker.wheelEventName?{passive:!1,capture:!1}:!1)}a(g),p.tracking=!0}}function r(g){let p=t[g.hash];if(p.tracking){for(let v=0;v<e.MouseTracker.subscribeEvents.length;v++){let b=e.MouseTracker.subscribeEvents[v];e.removeEvent(g.element,b,p[b],!1)}a(g),p.tracking=!1}}function l(g,p){let v=t[g.hash];if(p==="pointerevent")return{upName:"pointerup",upHandler:v.pointerupcaptured,moveName:"pointermove",moveHandler:v.pointermovecaptured};if(p==="mouse")return{upName:"pointerup",upHandler:v.pointerupcaptured,moveName:"pointermove",moveHandler:v.pointermovecaptured};if(p==="touch")return{upName:"touchend",upHandler:v.touchendcaptured,moveName:"touchmove",moveHandler:v.touchmovecaptured};throw new Error("MouseTracker.getCaptureEventParams: Unknown pointer type.")}function A(g,p){if(e.MouseTracker.havePointerCapture)if(e.MouseTracker.havePointerEvents)try{g.element.setPointerCapture(p.id)}catch{e.console.warn("setPointerCapture() called on invalid pointer ID");return}else g.element.setCapture(!0);else{let v=l(g,e.MouseTracker.havePointerEvents?"pointerevent":p.type);s&&i(window.top)&&e.addEvent(window.top,v.upName,v.upHandler,!0),e.addEvent(e.MouseTracker.captureElement,v.upName,v.upHandler,!0),e.addEvent(e.MouseTracker.captureElement,v.moveName,v.moveHandler,!0)}D(g,p,!0)}function h(g,p){if(e.MouseTracker.havePointerCapture)if(e.MouseTracker.havePointerEvents){let b=g.getActivePointersListByType(p.type).getById(p.id);if(!b||!b.captured)return;try{g.element.releasePointerCapture(p.id)}catch{}}else g.element.releaseCapture();else{let v=l(g,e.MouseTracker.havePointerEvents?"pointerevent":p.type);s&&i(window.top)&&e.removeEvent(window.top,v.upName,v.upHandler,!0),e.removeEvent(e.MouseTracker.captureElement,v.moveName,v.moveHandler,!0),e.removeEvent(e.MouseTracker.captureElement,v.upName,v.upHandler,!0)}D(g,p,!1)}function u(g){return e.MouseTracker.havePointerEvents?g.pointerId:e.MouseTracker.mousePointerId}function d(g){return e.MouseTracker.havePointerEvents&&g.pointerType?g.pointerType:"mouse"}function m(g){return e.MouseTracker.havePointerEvents?g.isPrimary:!0}function f(g){return e.getMousePosition(g)}function w(g,p){return y(f(g),p)}function y(g,p){let v=e.getElementOffset(p);return g.minus(v)}function E(g,p){return new e.Point((g.x+p.x)/2,(g.y+p.y)/2)}function S(g,p){let v={originalEvent:p,eventType:"click",pointerType:"mouse",isEmulated:!1};C(g,v),v.preventDefault&&!v.defaultPrevented&&e.cancelEvent(p),v.stopPropagation&&e.stopEvent(p)}function B(g,p){let v={originalEvent:p,eventType:"dblclick",pointerType:"mouse",isEmulated:!1};C(g,v),v.preventDefault&&!v.defaultPrevented&&e.cancelEvent(p),v.stopPropagation&&e.stopEvent(p)}function F(g,p){let v=null,b={originalEvent:p,eventType:"keydown",pointerType:"",isEmulated:!1};C(g,b),g.keyDownHandler&&!b.preventGesture&&!b.defaultPrevented&&(v={eventSource:g,keyCode:p.keyCode?p.keyCode:p.charCode,ctrl:p.ctrlKey,shift:p.shiftKey,alt:p.altKey,meta:p.metaKey,originalEvent:p,preventDefault:b.preventDefault||b.defaultPrevented,userData:g.userData},g.keyDownHandler(v)),(v&&v.preventDefault||b.preventDefault&&!b.defaultPrevented)&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function k(g,p){let v=null,b={originalEvent:p,eventType:"keyup",pointerType:"",isEmulated:!1};C(g,b),g.keyUpHandler&&!b.preventGesture&&!b.defaultPrevented&&(v={eventSource:g,keyCode:p.keyCode?p.keyCode:p.charCode,ctrl:p.ctrlKey,shift:p.shiftKey,alt:p.altKey,meta:p.metaKey,originalEvent:p,preventDefault:b.preventDefault||b.defaultPrevented,userData:g.userData},g.keyUpHandler(v)),(v&&v.preventDefault||b.preventDefault&&!b.defaultPrevented)&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function Q(g,p){let v=null,b={originalEvent:p,eventType:"keypress",pointerType:"",isEmulated:!1};C(g,b),g.keyHandler&&!b.preventGesture&&!b.defaultPrevented&&(v={eventSource:g,keyCode:p.keyCode?p.keyCode:p.charCode,ctrl:p.ctrlKey,shift:p.shiftKey,alt:p.altKey,meta:p.metaKey,originalEvent:p,preventDefault:b.preventDefault||b.defaultPrevented,userData:g.userData},g.keyHandler(v)),(v&&v.preventDefault||b.preventDefault&&!b.defaultPrevented)&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function W(g,p){let v={originalEvent:p,eventType:"focus",pointerType:"",isEmulated:!1};C(g,v),g.focusHandler&&!v.preventGesture&&g.focusHandler({eventSource:g,originalEvent:p,userData:g.userData})}function K(g,p){let v={originalEvent:p,eventType:"blur",pointerType:"",isEmulated:!1};C(g,v),g.blurHandler&&!v.preventGesture&&g.blurHandler({eventSource:g,originalEvent:p,userData:g.userData})}function oe(g,p){let v=null,b={originalEvent:p,eventType:"contextmenu",pointerType:"mouse",isEmulated:!1};C(g,b),g.contextMenuHandler&&!b.preventGesture&&!b.defaultPrevented&&(v={eventSource:g,position:y(f(p),g.element),originalEvent:b.originalEvent,preventDefault:b.preventDefault||b.defaultPrevented,userData:g.userData},g.contextMenuHandler(v)),(v&&v.preventDefault||b.preventDefault&&!b.defaultPrevented)&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function ve(g,p){Se(g,p,p)}function ne(g,p){let v={target:p.target||p.srcElement,type:"wheel",shiftKey:p.shiftKey||!1,clientX:p.clientX,clientY:p.clientY,pageX:p.pageX?p.pageX:p.clientX,pageY:p.pageY?p.pageY:p.clientY,deltaMode:p.type==="MozMousePixelScroll"?0:1,deltaX:0,deltaZ:0};e.MouseTracker.wheelEventName==="mousewheel"?v.deltaY=-p.wheelDelta/e.DEFAULT_SETTINGS.pixelsPerWheelLine:v.deltaY=p.detail,Se(g,v,p)}function Se(g,p,v){let b=0,T,N=null;b=p.deltaY?p.deltaY<0?1:-1:0,T={originalEvent:p,eventType:"wheel",pointerType:"mouse",isEmulated:p!==v},C(g,T),g.scrollHandler&&!T.preventGesture&&!T.defaultPrevented&&(N={eventSource:g,pointerType:"mouse",position:w(p,g.element),scroll:b,shift:p.shiftKey,isTouchEvent:!1,originalEvent:v,preventDefault:T.preventDefault||T.defaultPrevented,userData:g.userData},g.scrollHandler(N)),T.stopPropagation&&e.stopEvent(v),(N&&N.preventDefault||T.preventDefault&&!T.defaultPrevented)&&e.cancelEvent(v)}function Ie(g,p){let v={id:e.MouseTracker.mousePointerId,type:"mouse"},b={originalEvent:p,eventType:"lostpointercapture",pointerType:"mouse",isEmulated:!1};C(g,b),p.target===g.element&&D(g,v,!1),b.stopPropagation&&e.stopEvent(p)}function Fe(g,p){let v=p.changedTouches.length,b=g.getActivePointersListByType("touch"),T=e.now();b.getLength()>p.touches.length-v&&e.console.warn("Tracked touch contact count doesn't match event.touches.length");let N={originalEvent:p,eventType:"pointerdown",pointerType:"touch",isEmulated:!1};C(g,N);for(let H=0;H<v;H++){let ee={id:p.changedTouches[H].identifier,type:"touch",isPrimary:b.getLength()===0,currentPos:f(p.changedTouches[H]),currentTime:T};L(g,N,ee),Z(g,N,ee,0),D(g,ee,!0)}N.preventDefault&&!N.defaultPrevented&&e.cancelEvent(p),N.stopPropagation&&e.stopEvent(p)}function Le(g,p){let v=p.changedTouches.length,b=e.now(),T={originalEvent:p,eventType:"pointerup",pointerType:"touch",isEmulated:!1};C(g,T);for(let N=0;N<v;N++){let H={id:p.changedTouches[N].identifier,type:"touch",currentPos:f(p.changedTouches[N]),currentTime:b};J(g,T,H,0),D(g,H,!1),M(g,T,H)}T.preventDefault&&!T.defaultPrevented&&e.cancelEvent(p),T.stopPropagation&&e.stopEvent(p)}function ce(g,p){let v=p.changedTouches.length,b=e.now(),T={originalEvent:p,eventType:"pointermove",pointerType:"touch",isEmulated:!1};C(g,T);for(let N=0;N<v;N++){let H={id:p.changedTouches[N].identifier,type:"touch",currentPos:f(p.changedTouches[N]),currentTime:b};se(g,T,H)}T.preventDefault&&!T.defaultPrevented&&e.cancelEvent(p),T.stopPropagation&&e.stopEvent(p)}function pe(g,p){let v=p.changedTouches.length,b={originalEvent:p,eventType:"pointercancel",pointerType:"touch",isEmulated:!1};C(g,b);for(let T=0;T<v;T++){let N={id:p.changedTouches[T].identifier,type:"touch"};j(g,b,N)}b.stopPropagation&&e.stopEvent(p)}function me(g,p){return e.eventIsCanceled(p)||p.preventDefault(),!1}function Re(g,p){return e.eventIsCanceled(p)||p.preventDefault(),!1}function be(g,p){let v={originalEvent:p,eventType:"gotpointercapture",pointerType:d(p),isEmulated:!1};C(g,v),p.target===g.element&&D(g,{id:p.pointerId,type:d(p)},!0),v.stopPropagation&&e.stopEvent(p)}function we(g,p){let v={originalEvent:p,eventType:"lostpointercapture",pointerType:d(p),isEmulated:!1};C(g,v),p.target===g.element&&D(g,{id:p.pointerId,type:d(p)},!1),v.stopPropagation&&e.stopEvent(p)}function Pe(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b={originalEvent:p,eventType:"pointerenter",pointerType:v.type,isEmulated:!1};C(g,b),L(g,b,v)}function Y(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b={originalEvent:p,eventType:"pointerleave",pointerType:v.type,isEmulated:!1};C(g,b),M(g,b,v)}function Be(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b={originalEvent:p,eventType:"pointerover",pointerType:v.type,isEmulated:!1};C(g,b),G(g,b,v),b.preventDefault&&!b.defaultPrevented&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function Ze(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b={originalEvent:p,eventType:"pointerout",pointerType:v.type,isEmulated:!1};C(g,b),X(g,b,v),b.preventDefault&&!b.defaultPrevented&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function Ae(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b=e.MouseTracker.havePointerEvents&&v.type==="touch",T={originalEvent:p,eventType:"pointerdown",pointerType:v.type,isEmulated:!1};C(g,T),Z(g,T,v,p.button),T.preventDefault&&!T.defaultPrevented&&e.cancelEvent(p),T.stopPropagation&&e.stopEvent(p),T.shouldCapture&&(b?D(g,v,!0):A(g,v))}function je(g,p){We(g,p)}function Te(g,p){g.getActivePointersListByType(d(p)).getById(p.pointerId)&&We(g,p),e.stopEvent(p)}function We(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b={originalEvent:p,eventType:"pointerup",pointerType:v.type,isEmulated:!1};C(g,b),J(g,b,v,p.button),b.preventDefault&&!b.defaultPrevented&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p),b.shouldReleaseCapture&&(p.target===g.element?h(g,v):D(g,v,!1))}function Ve(g,p){Ye(g,p)}function $e(g,p){g.getActivePointersListByType(d(p)).getById(p.pointerId)&&Ye(g,p),e.stopEvent(p)}function Ye(g,p){let v={id:u(p),type:d(p),isPrimary:m(p),currentPos:f(p),currentTime:e.now()},b={originalEvent:p,eventType:"pointermove",pointerType:v.type,isEmulated:!1};C(g,b),se(g,b,v),b.preventDefault&&!b.defaultPrevented&&e.cancelEvent(p),b.stopPropagation&&e.stopEvent(p)}function He(g,p){let v={id:p.pointerId,type:d(p)},b={originalEvent:p,eventType:"pointercancel",pointerType:v.type,isEmulated:!1};C(g,b),j(g,b,v),b.stopPropagation&&e.stopEvent(p)}function c(g,p){return p.speed=0,p.direction=0,p.contactPos=p.currentPos,p.contactTime=p.currentTime,p.lastPos=p.currentPos,p.lastTime=p.currentTime,g.add(p)}function x(g,p,v){let b,T=p.getById(v.id);return T?(T.captured&&(e.console.warn("stopTrackingPointer() called on captured pointer"),h(g,T)),p.removeContact(),b=p.removeById(v.id)):b=p.getLength(),b}function I(g,p){switch(p.eventType){case"pointermove":p.isStoppable=!0,p.isCancelable=!0,p.preventDefault=!1,p.preventGesture=!g.hasGestureHandlers,p.stopPropagation=!1;break;case"pointerover":case"pointerout":case"contextmenu":case"keydown":case"keyup":case"keypress":p.isStoppable=!0,p.isCancelable=!0,p.preventDefault=!1,p.preventGesture=!1,p.stopPropagation=!1;break;case"pointerdown":p.isStoppable=!0,p.isCancelable=!0,p.preventDefault=!1,p.preventGesture=!g.hasGestureHandlers,p.stopPropagation=!1;break;case"pointerup":p.isStoppable=!0,p.isCancelable=!0,p.preventDefault=!1,p.preventGesture=!g.hasGestureHandlers,p.stopPropagation=!1;break;case"wheel":p.isStoppable=!0,p.isCancelable=!0,p.preventDefault=!1,p.preventGesture=!g.hasScrollHandler,p.stopPropagation=!1;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":p.isStoppable=!0,p.isCancelable=!1,p.preventDefault=!1,p.preventGesture=!1,p.stopPropagation=!1;break;case"click":p.isStoppable=!0,