universalviewer
Version:
The Universal Viewer is a community-developed open source project on a mission to help you share your 📚📜📰📽️📻🗿 with the 🌎
2 lines • 346 kB
JavaScript
/*! For license information please see 560.3d50ebd90220503763a4.js.LICENSE.txt */
(self.webpackChunkUV=self.webpackChunkUV||[]).push([[560],{5842(e,t,i){var n;window,e.exports=(n=i(4791),function(e){function t(n){if(i[n])return i[n].exports;var o=i[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,i){if(1&i&&(e=t(e)),8&i)return e;if(4&i&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&i&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)}([function(e){e.exports=n},function(e,t,i){"use strict";i.r(t);var n=i(0),o=i.n(n);t.default=function(e,t){if(!e.version||1>e.version.major)throw new Error("OpenSeadragonViewerInputHook requires OpenSeadragon version 1.0.0+");return e.Viewer.prototype.addViewerInputHook=function(e){return(e=e||{}).viewer=this,new t.ViewerInputHook(e)},t.ViewerInputHook=function(e){var t,i;for((e=e||{}).hooks=e.hooks||[],this.viewer=e.viewer||null,this.viewerTrackers={},this.hooks=[],this.viewer&&(this.viewerTrackers.viewer=this.viewer.innerTracker,this.viewerTrackers.viewer_outer=this.viewer.outerTracker),t=0;t<e.hooks.length;t++){if("string"==typeof e.hooks[t].tracker){if(!this.viewer)throw new Error("A viewer must be specified.");if(void 0===(i=this.viewerTrackers[e.hooks[t].tracker]))throw new Error("Unknown tracker specified: "+e.hooks[t].tracker)}else i=e.hooks[t].tracker;this.hooks.push({tracker:i,handlerName:e.hooks[t].handler,origHandler:i[e.hooks[t].handler],hookHandler:e.hooks[t].hookHandler}),function(e,t,i,n){var o=t[i];t[i]=function(t){return e._callHandlers(n,o,t)}}(this,i,e.hooks[t].handler,e.hooks[t].hookHandler)}},t.ViewerInputHook.version={versionStr:"2.2.1",major:2,minor:2,revision:1},t.ViewerInputHook.prototype._callHandlers=function(e,t,i){var n=e(i);return t&&!i.stopHandlers&&(n=t(i)),!i.stopBubbling&&n},t.ViewerInputHook.prototype.destroy=function(){for(;0<this.hooks.length;){var e=this.hooks.pop();e.tracker[e.handlerName]=e.origHandler}this.viewer&&(delete this.viewerTrackers.viewer,delete this.viewerTrackers.viewer_outer,this.viewer=null)},t.ViewerInputHook}(o.a||window.OpenSeadragon,window.OpenSeadragonImaging=window.OpenSeadragonImaging||{})}]).default)},4791(e,t){var i,n;function o(e){return new o.Viewer(e)}!function(e){e.version={versionStr:"6.0.2",major:parseInt("6",10),minor:parseInt("0",10),revision:parseInt("2",10)};const t={"[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"},i=Object.prototype.toString,n=Object.prototype.hasOwnProperty;e.isFunction=function(t){return"function"===e.type(t)},e.isArray=Array.isArray||function(t){return"array"===e.type(t)},e.isWindow=function(e){return e&&"object"==typeof e&&"setInterval"in e},e.type=function(e){return null==e?String(e):t[i.call(e)]||"object"},e.isPlainObject=function(t){if(!t||"object"!==o.type(t)||t.nodeType||e.isWindow(t))return!1;if(t.constructor&&!n.call(t,"constructor")&&!n.call(t.constructor.prototype,"isPrototypeOf"))return!1;let i;for(const e in t)i=e;return void 0===i||n.call(t,i)},e.isEmptyObject=function(e){for(const t in e)return!1;return!0},e.freezeObject=function(t){return Object.freeze?e.freezeObject=Object.freeze:e.freezeObject=function(e){return e},e.freezeObject(t)},e.supportsCanvas=function(){const t=document.createElement("canvas");return!(!e.isFunction(t.getContext)||!t.getContext("2d"))}(),e.isCanvasTainted=function(e){let t=!1;try{e.getContext("2d").getImageData(0,0,1,1)}catch(e){t=!0}return t},e.supportsAddEventListener=!(!document.documentElement.addEventListener||!document.addEventListener),e.supportsRemoveEventListener=!(!document.documentElement.removeEventListener||!document.removeEventListener),e.supportsEventListenerOptions=function(){let t=0;if(e.supportsAddEventListener)try{const e={get capture(){return t++,!1},get once(){return t++,!1},get passive(){return t++,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){t=0}return t>=3}(),e.supportsAsync=!0,e.getCurrentPixelDensityRatio=function(){if(e.supportsCanvas){const e=document.createElement("canvas").getContext("2d"),t=window.devicePixelRatio||1,i=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return Math.max(t,1)/i}return 1},e.pixelDensityRatio=e.getCurrentPixelDensityRatio()}(o),function(e){e.extend=function(){let t,i,n,s,r,a,l=arguments[0]||{};const h=arguments.length;let c=!1,u=1;for("boolean"==typeof l&&(c=l,l=arguments[1]||{},u=2),"object"==typeof l||o.isFunction(l)||(l={}),h===u&&(l=this,--u);u<h;u++)if(t=arguments[u],null!==t||void 0!==t)for(i in t){const h=Object.getOwnPropertyDescriptor(t,i);void 0!==h?h.get||h.set?Object.defineProperty(l,i,h):(s=h.value,l!==s&&(c&&s&&(o.isPlainObject(s)||(r=o.isArray(s)))?(n=l[i],r?(r=!1,a=n&&o.isArray(n)?n:[]):a=n&&o.isPlainObject(n)?n:{},l[i]=o.extend(c,a,s)):void 0!==s&&(l[i]=s))):e.console.warn('Could not copy inherited property "'+i+'".')}return l},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:function(){if("object"!=typeof navigator)return!1;const e=navigator.userAgent;return"string"==typeof e&&(-1!==e.indexOf("iPhone")||-1!==e.indexOf("iPad")||-1!==e.indexOf("iPod"))}(),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(e,t){return function(){let i=arguments;return void 0===i&&(i=[]),t.apply(e,i)}},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(t){return e._viewers.get(this.getElement(t))},getElement:function(e){return"string"==typeof e&&(e=document.getElementById(e)),e},getElementPosition:function(t){let i,n,o=new e.Point;for(t=e.getElement(t),i="fixed"===e.getElementStyle(t).position,n=s(t,i);n;)o.x+=t.offsetLeft,o.y+=t.offsetTop,i&&(o=o.plus(e.getPageScroll())),t=n,i="fixed"===e.getElementStyle(t).position,n=s(t,i);return o},getElementOffset:function(t){const i=(t=e.getElement(t))&&t.ownerDocument;let n={top:0,left:0};if(!i)return new e.Point;const o=i.documentElement;void 0!==t.getBoundingClientRect&&(n=t.getBoundingClientRect());const s=i===i.window?i:9===i.nodeType&&(i.defaultView||i.parentWindow);return new e.Point(n.left+(s.pageXOffset||o.scrollLeft)-(o.clientLeft||0),n.top+(s.pageYOffset||o.scrollTop)-(o.clientTop||0))},getElementSize:function(t){return t=e.getElement(t),new e.Point(t.clientWidth,t.clientHeight)},getElementStyle:document.documentElement.currentStyle?function(t){return(t=e.getElement(t)).currentStyle}:function(t){return t=e.getElement(t),window.getComputedStyle(t,"")},getCssPropertyWithVendorPrefix:function(t){const i={};return e.getCssPropertyWithVendorPrefix=function(t){if(void 0!==i[t])return i[t];const n=document.createElement("div").style;let o=null;if(void 0!==n[t])o=t;else{const i=["Webkit","Moz","MS","O","webkit","moz","ms","o"],s=e.capitalizeFirstLetter(t);for(let e=0;e<i.length;e++){const t=i[e]+s;if(void 0!==n[t]){o=t;break}}}return i[t]=o,o},e.getCssPropertyWithVendorPrefix(t)},capitalizeFirstLetter:function(e){return e.charAt(0).toUpperCase()+e.slice(1)},positiveModulo:function(e,t){let i=e%t;return i<0&&(i+=t),i},pointInElement:function(t,i){t=e.getElement(t);const n=e.getElementOffset(t),o=e.getElementSize(t);return i.x>=n.x&&i.x<n.x+o.x&&i.y<n.y+o.y&&i.y>=n.y},getMousePosition:function(t){if("number"==typeof t.pageX)e.getMousePosition=function(t){const i=new e.Point;return i.x=t.pageX,i.y=t.pageY,i};else{if("number"!=typeof t.clientX)throw new Error("Unknown event mouse position, no known technique.");e.getMousePosition=function(t){const i=new e.Point;return i.x=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,i.y=t.clientY+document.body.scrollTop+document.documentElement.scrollTop,i}}return e.getMousePosition(t)},getPageScroll:function(){const t=document.documentElement||{},i=document.body||{};if("number"==typeof window.pageXOffset)e.getPageScroll=function(){return new e.Point(window.pageXOffset,window.pageYOffset)};else if(i.scrollLeft||i.scrollTop)e.getPageScroll=function(){return new e.Point(document.body.scrollLeft,document.body.scrollTop)};else{if(!t.scrollLeft&&!t.scrollTop)return new e.Point(0,0);e.getPageScroll=function(){return new e.Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)}}return e.getPageScroll()},setPageScroll:function(t){if(void 0!==window.scrollTo)e.setPageScroll=function(e){window.scrollTo(e.x,e.y)};else{const i=e.getPageScroll();if(i.x===t.x&&i.y===t.y)return;document.body.scrollLeft=t.x,document.body.scrollTop=t.y;let n=e.getPageScroll();if(n.x!==i.x&&n.y!==i.y)return void(e.setPageScroll=function(e){document.body.scrollLeft=e.x,document.body.scrollTop=e.y});if(document.documentElement.scrollLeft=t.x,document.documentElement.scrollTop=t.y,n=e.getPageScroll(),n.x!==i.x&&n.y!==i.y)return void(e.setPageScroll=function(e){document.documentElement.scrollLeft=e.x,document.documentElement.scrollTop=e.y});e.setPageScroll=function(e){}}e.setPageScroll(t)},getWindowSize:function(){const t=document.documentElement||{},i=document.body||{};if("number"==typeof window.innerWidth)e.getWindowSize=function(){return new e.Point(window.innerWidth,window.innerHeight)};else if(t.clientWidth||t.clientHeight)e.getWindowSize=function(){return new e.Point(document.documentElement.clientWidth,document.documentElement.clientHeight)};else{if(!i.clientWidth&&!i.clientHeight)throw new Error("Unknown window size, no known technique.");e.getWindowSize=function(){return new e.Point(document.body.clientWidth,document.body.clientHeight)}}return e.getWindowSize()},makeCenteredNode:function(t){t=e.getElement(t);const i=[e.makeNeutralElement("div"),e.makeNeutralElement("div"),e.makeNeutralElement("div")];return e.extend(i[0].style,{display:"table",height:"100%",width:"100%"}),e.extend(i[1].style,{display:"table-row"}),e.extend(i[2].style,{display:"table-cell",verticalAlign:"middle",textAlign:"center"}),i[0].appendChild(i[1]),i[1].appendChild(i[2]),i[2].appendChild(t),i[0]},trace:function(e,t=!1){this.__traceLogs=[],setInterval((()=>{this.__traceLogs.length&&(console.log(this.__traceLogs.join("\n")),this.__traceLogs=[])}),2e3),this.trace=function(e,t=!1){if("string"==typeof e)return this.__traceLogs.push(e),void(t&&this.__traceLogs.push(...(new Error).stack.split("\n").slice(1)));e instanceof o.Tile&&(e=e.getCache(e.originalCacheKey));const i=e._tiles[0];this.__traceLogs.push(`Cache ${i.toString()} loaded ${i.loaded} loading ${i.loading} cacheCount ${Object.keys(i._caches).length} - CACHE ${e.__invStamp}`),t&&this.__traceLogs.push(...(new Error).stack.split("\n").slice(1))},this.trace(e,t)},makeNeutralElement:function(e){const t=document.createElement(e),i=t.style;return i.background="transparent none",i.border="none",i.margin="0px",i.padding="0px",i.position="static",t},now:function(){return Date.now?e.now=Date.now:e.now=function(){return(new Date).getTime()},e.now()},makeTransparentImage:function(t){const i=e.makeNeutralElement("img");return i.src=t,i},setElementOpacity:function(t,i,n){let o,s;t=e.getElement(t),n&&!e.Browser.alpha&&(i=Math.round(i)),e.Browser.opacity?t.style.opacity=i<1?i:"":i<1?(o=Math.round(100*i),s="alpha(opacity="+o+")",t.style.filter=s):t.style.filter=""},setElementTouchActionNone:function(t){void 0!==(t=e.getElement(t)).style.touchAction?t.style.touchAction="none":void 0!==t.style.msTouchAction&&(t.style.msTouchAction="none")},setElementPointerEvents:function(t,i){void 0!==(t=e.getElement(t)).style&&void 0!==t.style.pointerEvents&&(t.style.pointerEvents=i)},setElementPointerEventsNone:function(t){e.setElementPointerEvents(t,"none")},addClass:function(t,i){(t=e.getElement(t)).className?-1===(" "+t.className+" ").indexOf(" "+i+" ")&&(t.className+=" "+i):t.className=i},indexOf:function(e,t,i){return Array.prototype.indexOf?this.indexOf=function(e,t,i){return e.indexOf(t,i)}:this.indexOf=function(e,t,i){let n=i||0;if(!e)throw new TypeError;const o=e.length;if(0===o||n>=o)return-1;n<0&&(n=o-Math.abs(n));for(let i=n;i<o;i++)if(e[i]===t)return i;return-1},this.indexOf(e,t,i)},removeClass:function(t,i){const n=[],o=(t=e.getElement(t)).className.split(/\s+/);for(let e=0;e<o.length;e++)o[e]&&o[e]!==i&&n.push(o[e]);t.className=n.join(" ")},normalizeEventListenerOptions:function(t){let i;return i=void 0!==t?"boolean"==typeof t?e.supportsEventListenerOptions?{capture:t}:t:e.supportsEventListenerOptions?t:void 0!==t.capture&&t.capture:!!e.supportsEventListenerOptions&&{capture:!1},i},addEvent:function(){if(e.supportsAddEventListener)return function(t,i,n,o){o=e.normalizeEventListenerOptions(o),(t=e.getElement(t)).addEventListener(i,n,o)};if(document.documentElement.attachEvent&&document.attachEvent)return function(t,i,n){(t=e.getElement(t)).attachEvent("on"+i,n)};throw new Error("No known event model.")}(),removeEvent:function(){if(e.supportsRemoveEventListener)return function(t,i,n,o){o=e.normalizeEventListenerOptions(o),(t=e.getElement(t)).removeEventListener(i,n,o)};if(document.documentElement.detachEvent&&document.detachEvent)return function(t,i,n){(t=e.getElement(t)).detachEvent("on"+i,n)};throw new Error("No known event model.")}(),cancelEvent:function(e){e.preventDefault()},eventIsCanceled:function(e){return e.defaultPrevented},stopEvent:function(e){e.stopPropagation()},getUrlParameter:function(e){return n[e]||null},getUrlProtocol:function(e){const t=e.match(/^([a-z]+:)\/\//i);return null===t?window.location.protocol:t[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(t,i,n){let o,s,r,a;e.isPlainObject(t)?(i=t.success,n=t.error,o=t.withCredentials,s=t.headers,r=t.responseType||null,a=t.postData||null,t=t.url):e.console.warn("OpenSeadragon.makeAjaxRequest() deprecated usage!");const l=e.getUrlProtocol(t),h=e.createAjaxRequest();if(!e.isFunction(i))throw new Error("makeAjaxRequest requires a success callback");h.onreadystatechange=function(){4===h.readyState&&(h.onreadystatechange=function(){},h.status>=200&&h.status<300||0===h.status&&"http:"!==l&&"https:"!==l?i(h):e.isFunction(n)?n(h):e.console.error("AJAX request returned %d: %s",h.status,t))};const c=a?"POST":"GET";try{if(h.open(c,t,!0),r&&(h.responseType=r),s)for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&s[e]&&h.setRequestHeader(e,s[e]);o&&(h.withCredentials=!0),h.send(a)}catch(t){e.console.error("%s while making AJAX request: %s",t.name,t.message),h.onreadystatechange=function(){},e.isFunction(n)&&n(h,t)}return h},jsonp:function(t){let i,n=t.url;const o=document.head||document.getElementsByTagName("head")[0]||document.documentElement,s=t.callbackName||"openseadragon"+e.now(),r=window[s],a="$1"+s+"$2",l=t.param||"callback",h=t.callback;n=n.replace(/(=)\?(&|$)|\?\?/i,a),n+=(/\?/.test(n)?"&":"?")+l+"="+s,window[s]=function(t){if(r)window[s]=r;else try{delete window[s]}catch(e){}h&&e.isFunction(h)&&h(t)},i=document.createElement("script"),void 0===t.async&&!1===t.async||(i.async="async"),t.scriptCharset&&(i.charset=t.scriptCharset),i.src=n,i.onload=i.onreadystatechange=function(e,t){(t||!i.readyState||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=null,o&&i.parentNode&&o.removeChild(i),i=void 0)},o.insertBefore(i,o.firstChild)},createFromDZI:function(){throw"OpenSeadragon.createFromDZI is deprecated, use Viewer.open."},parseXml:function(t){if(!window.DOMParser)throw new Error("Browser doesn't support XML DOM.");return e.parseXml=function(e){let t=null;return t=(new DOMParser).parseFromString(e,"text/xml"),t},e.parseXml(t)},parseJSON:function(t){return e.parseJSON=window.JSON.parse,e.parseJSON(t)},imageFormatSupported:function(e){return!!i[(e=e||"").toLowerCase()]},setImageFormatsSupported:function(t){e.extend(i,t)}});const t=function(e){};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};const i={avif:!0,bmp:!1,jpeg:!0,jpg:!0,png:!0,tif:!1,wdp:!1,webp:!0},n={};function s(e,t){return t&&e!==document.body?document.body:e.offsetParent}!function(){const t=navigator.appVersion,i=navigator.userAgent;let o;switch(navigator.appName){case"Microsoft Internet Explorer":window.attachEvent&&window.ActiveXObject&&(e.Browser.vendor=e.BROWSERS.IE,e.Browser.version=parseFloat(i.substring(i.indexOf("MSIE")+5,i.indexOf(";",i.indexOf("MSIE")))));break;case"Netscape":window.addEventListener&&(i.indexOf("Edge")>=0?(e.Browser.vendor=e.BROWSERS.EDGE,e.Browser.version=parseFloat(i.substring(i.indexOf("Edge")+5))):i.indexOf("Edg")>=0?(e.Browser.vendor=e.BROWSERS.CHROMEEDGE,e.Browser.version=parseFloat(i.substring(i.indexOf("Edg")+4))):i.indexOf("Firefox")>=0?(e.Browser.vendor=e.BROWSERS.FIREFOX,e.Browser.version=parseFloat(i.substring(i.indexOf("Firefox")+8))):i.indexOf("Safari")>=0?(e.Browser.vendor=i.indexOf("Chrome")>=0?e.BROWSERS.CHROME:e.BROWSERS.SAFARI,e.Browser.version=parseFloat(i.substring(i.substring(0,i.indexOf("Safari")).lastIndexOf("/")+1,i.indexOf("Safari")))):(o=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"),null!==o.exec(i)&&(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(t)}const s=window.location.search.substring(1).split("&");for(let t=0;t<s.length;t++){const i=s[t],o=i.indexOf("=");if(o>0){const t=i.substring(0,o),s=i.substring(o+1);try{n[t]=decodeURIComponent(s)}catch(i){e.console.error("Ignoring malformed URL parameter: %s=%s",t,s)}}}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(t){const i=t.requestAnimationFrame||t.mozRequestAnimationFrame||t.webkitRequestAnimationFrame||t.msRequestAnimationFrame,n=t.cancelAnimationFrame||t.mozCancelAnimationFrame||t.webkitCancelAnimationFrame||t.msCancelAnimationFrame;if(i&&n)e.requestAnimationFrame=function(){return i.apply(t,arguments)},e.cancelAnimationFrame=function(){return n.apply(t,arguments)};else{let t,i=[],n=[],o=0;e.requestAnimationFrame=function(s){return i.push([++o,s]),t||(t=setInterval((function(){if(i.length){const t=e.now(),o=n;for(n=i,i=o;n.length;)n.shift()[1](t)}else clearInterval(t),t=void 0}),20)),o},e.cancelAnimationFrame=function(e){let t,o;for(t=0,o=i.length;t<o;t+=1)if(i[t][0]===e)return void i.splice(t,1);for(t=0,o=n.length;t<o;t+=1)if(n[t][0]===e)return void n.splice(t,1)}}}(window),e.Promise=window.Promise&&e.supportsAsync?window.Promise:class{constructor(t){this._error=!1,this.__value=void 0;try{t((t=>{for(;t instanceof e.Promise;)t=t._value;this._value=t}),(t=>{for(;t instanceof e.Promise;)t=t._value;this._value=t,this._error=!0}))}catch(e){this._value=e,this._error=!0}}then(e){if(!this._error)try{this._value=e(this._value)}catch(e){this._value=e,this._error=!0}return this}catch(e){if(this._error)try{this._value=e(this._value),this._error=!1}catch(e){this._value=e,this._error=!0}return this}get _value(){return this.__value}set _value(e){e&&e.constructor===this.constructor&&(e=e._value),this.__value=e}static resolve(e){return new this((t=>t(e)))}static reject(e){return new this(((t,i)=>i(e)))}static all(e){return new this((t=>t(e.map((e=>e())))))}static race(e){return e.length<1?this.resolve():new this((t=>t(e[0]())))}}}(o),n=o,void 0===(i=function(){return n}.apply(t,[]))||(e.exports=i),function(e){class t{constructor(e){e||(e=[0,0,0,0,0,0,0,0,0]),this.values=e}static makeIdentity(){return new t([1,0,0,0,1,0,0,0,1])}static makeTranslation(e,i){return new t([1,0,0,0,1,0,e,i,1])}static makeRotation(e){const i=Math.cos(e),n=Math.sin(e);return new t([i,-n,0,n,i,0,0,0,1])}static makeScaling(e,i){return new t([e,0,0,0,i,0,0,0,1])}multiply(e){let i=this.values,n=e.values;const o=i[0],s=i[1],r=i[2],a=i[3],l=i[4],h=i[5],c=i[6],u=i[7],d=i[8],p=n[0],g=n[1],m=n[2],f=n[3],v=n[4],y=n[5],w=n[6],_=n[7],T=n[8];return new t([p*o+g*a+m*c,p*s+g*l+m*u,p*r+g*h+m*d,f*o+v*a+y*c,f*s+v*l+y*u,f*r+v*h+y*d,w*o+_*a+T*c,w*s+_*l+T*u,w*r+_*h+T*d])}setValues(e,t,i,n,o,s,r,a,l){this.values[0]=e,this.values[1]=t,this.values[2]=i,this.values[3]=n,this.values[4]=o,this.values[5]=s,this.values[6]=r,this.values[7]=a,this.values[8]=l}scaleAndTranslate(e,i,n,o){const s=this.values,r=s[0],a=s[1],l=s[2],h=s[3],c=s[4],u=s[5];return new t([e*r,e*a,e*l,i*h,i*c,i*u,n*r+o*h,n*a+o*c,n*l+o*u])}scaleAndTranslateSelf(e,t,i,n){const o=this.values,s=o[0],r=o[1],a=o[2],l=o[3],h=o[4],c=o[5];o[0]=e*s,o[1]=e*r,o[2]=e*a,o[3]=t*l,o[4]=t*h,o[5]=t*c,o[6]=i*s+n*l+o[6],o[7]=i*r+n*h+o[7],o[8]=i*a+n*c+o[8]}scaleAndTranslateOtherSetSelf(e){const t=e.values,i=this.values,n=i[0],o=i[4],s=i[6],r=i[7];i[0]=n*t[0],i[1]=n*t[1],i[2]=n*t[2],i[3]=o*t[3],i[4]=o*t[4],i[5]=o*t[5],i[6]=s*t[0]+r*t[3]+t[6],i[7]=s*t[1]+r*t[4]+t[7],i[8]=s*t[2]+r*t[5]+t[8]}}e.Mat3=t}(o),function(e){const t={supportsFullScreen:!1,isFullScreen:function(){return!1},getFullScreenElement:function(){return null},requestFullScreen:function(){},exitFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",fullScreenErrorEventName:""};document.exitFullscreen?(t.supportsFullScreen=!0,t.getFullScreenElement=function(){return document.fullscreenElement},t.requestFullScreen=function(t){return t.requestFullscreen().catch((function(t){e.console.error("Fullscreen request failed: ",t)}))},t.exitFullScreen=function(){document.exitFullscreen().catch((function(t){e.console.error("Error while exiting fullscreen: ",t)}))},t.fullScreenEventName="fullscreenchange",t.fullScreenErrorEventName="fullscreenerror"):document.msExitFullscreen?(t.supportsFullScreen=!0,t.getFullScreenElement=function(){return document.msFullscreenElement},t.requestFullScreen=function(e){return e.msRequestFullscreen()},t.exitFullScreen=function(){document.msExitFullscreen()},t.fullScreenEventName="MSFullscreenChange",t.fullScreenErrorEventName="MSFullscreenError"):document.webkitExitFullscreen?(t.supportsFullScreen=!0,t.getFullScreenElement=function(){return document.webkitFullscreenElement},t.requestFullScreen=function(e){return e.webkitRequestFullscreen()},t.exitFullScreen=function(){document.webkitExitFullscreen()},t.fullScreenEventName="webkitfullscreenchange",t.fullScreenErrorEventName="webkitfullscreenerror"):document.webkitCancelFullScreen?(t.supportsFullScreen=!0,t.getFullScreenElement=function(){return document.webkitCurrentFullScreenElement},t.requestFullScreen=function(e){return e.webkitRequestFullScreen()},t.exitFullScreen=function(){document.webkitCancelFullScreen()},t.fullScreenEventName="webkitfullscreenchange",t.fullScreenErrorEventName="webkitfullscreenerror"):document.mozCancelFullScreen&&(t.supportsFullScreen=!0,t.getFullScreenElement=function(){return document.mozFullScreenElement},t.requestFullScreen=function(e){return e.mozRequestFullScreen()},t.exitFullScreen=function(){document.mozCancelFullScreen()},t.fullScreenEventName="mozfullscreenchange",t.fullScreenErrorEventName="mozfullscreenerror"),t.isFullScreen=function(){return null!==t.getFullScreenElement()},t.cancelFullScreen=function(){e.console.error("cancelFullScreen is deprecated. Use exitFullScreen instead."),t.exitFullScreen()},e.extend(e,t)}(o),function(e){e.EventSource=function(){this.events={},this._rejectedEventList={}},e.EventSource.prototype={addOnceHandler:function(e,t,i,n,o){const s=this;n=n||1;let r=0;const a=function(i){return r++,r===n&&s.removeHandler(e,a),t(i)};return this.addHandler(e,a,i,o)},addHandler:function(t,i,n,o){if(Object.prototype.hasOwnProperty.call(this._rejectedEventList,t))return e.console.error(`Error adding handler for ${t}. ${this._rejectedEventList[t]}`),!1;let s=this.events[t];if(s||(this.events[t]=s=[]),i&&e.isFunction(i)){let e=s.length,t={handler:i,userData:n||null,priority:o||0};for(s[e]=t;e>0&&s[e-1].priority<s[e].priority;)s[e]=s[e-1],s[e-1]=t,e--}return!0},removeHandler:function(t,i){const n=this.events[t],o=[];if(n&&e.isArray(n)){for(let e=0;e<n.length;e++)n[e].handler!==i&&o.push(n[e]);this.events[t]=o}},numberOfHandlers:function(e){const t=this.events[e];return t?t.length:0},removeAllHandlers:function(e){if(e)this.events[e]=[];else for(let e in this.events)this.events[e]=[]},getHandler:function(e){let t=this.events[e];return t&&t.length?(t=1===t.length?[t[0]]:Array.apply(null,t),function(e,i){let n=t.length;for(let o=0;o<n&&(!t[o]||(i.eventSource=e,i.userData=t[o].userData,t[o].handler(i),!i.stopPropagation||"function"==typeof i.stopPropagation&&!0!==i.stopPropagation()));o++);}):null},getAwaitingHandler:function(t,i){let n=this.events[t];return n&&n.length?(n=1===n.length?[n[0]]:Array.apply(null,n),function(t,o){return new e.Promise(((s,r)=>{const a=n.length;(function l(h){if(h>=a||!n[h])return s(i),null;let c;o.eventSource=t,o.userData=n[h].userData;try{c=n[h].handler(o)}catch(e){return r(e)}return c=c&&"promise"===e.type(c)?c:e.Promise.resolve(),c.then((()=>!o.stopPropagation||"function"==typeof o.stopPropagation&&!1===o.stopPropagation()?l(h+1):l(a)))})(0).catch(r)}))}):null},raiseEvent:function(t,i){if(Object.prototype.hasOwnProperty.call(this._rejectedEventList,t))return e.console.error(`Error adding handler for ${t}. ${this._rejectedEventList[t]}`),!1;const n=this.getHandler(t);return n&&n(this,i||{}),!0},raiseEventAwaiting:function(t,i,n=null){const o=this.getAwaitingHandler(t,n);return o?o(this,i||{}):e.Promise.resolve(n)},rejectEventHandler(e,t=""){this._rejectedEventList[e]=t},allowEventHandler(e){delete this._rejectedEventList[e]}}}(o),function(e){const t=[],i={};e.MouseTracker=function(n){t.push(this);const o=arguments;e.isPlainObject(n)||(n={element:o[0],clickTimeThreshold:o[1],clickDistThreshold:o[2]}),this.hash=function(){let e=Date.now().toString(36)+Math.random().toString(36).substring(2);for(;e in i;)e=Date.now().toString(36)+Math.random().toString(36).substring(2);return e}(),this.element=e.getElement(n.element),this.clickTimeThreshold=n.clickTimeThreshold||e.DEFAULT_SETTINGS.clickTimeThreshold,this.clickDistThreshold=n.clickDistThreshold||e.DEFAULT_SETTINGS.clickDistThreshold,this.dblClickTimeThreshold=n.dblClickTimeThreshold||e.DEFAULT_SETTINGS.dblClickTimeThreshold,this.dblClickDistThreshold=n.dblClickDistThreshold||e.DEFAULT_SETTINGS.dblClickDistThreshold,this.userData=n.userData||null,this.stopDelay=n.stopDelay||50,this.preProcessEventHandler=n.preProcessEventHandler||null,this.contextMenuHandler=n.contextMenuHandler||null,this.enterHandler=n.enterHandler||null,this.leaveHandler=n.leaveHandler||null,this.exitHandler=n.exitHandler||null,this.overHandler=n.overHandler||null,this.outHandler=n.outHandler||null,this.pressHandler=n.pressHandler||null,this.nonPrimaryPressHandler=n.nonPrimaryPressHandler||null,this.releaseHandler=n.releaseHandler||null,this.nonPrimaryReleaseHandler=n.nonPrimaryReleaseHandler||null,this.moveHandler=n.moveHandler||null,this.scrollHandler=n.scrollHandler||null,this.clickHandler=n.clickHandler||null,this.dblClickHandler=n.dblClickHandler||null,this.dragHandler=n.dragHandler||null,this.dragEndHandler=n.dragEndHandler||null,this.pinchHandler=n.pinchHandler||null,this.stopHandler=n.stopHandler||null,this.keyDownHandler=n.keyDownHandler||null,this.keyUpHandler=n.keyUpHandler||null,this.keyHandler=n.keyHandler||null,this.focusHandler=n.focusHandler||null,this.blurHandler=n.blurHandler||null;const s=this;i[this.hash]={click:function(t){!function(t,i){const n={originalEvent:i,eventType:"click",pointerType:"mouse",isEmulated:!1};D(t,n),n.preventDefault&&!n.defaultPrevented&&e.cancelEvent(i),n.stopPropagation&&e.stopEvent(i)}(s,t)},dblclick:function(t){!function(t,i){const n={originalEvent:i,eventType:"dblclick",pointerType:"mouse",isEmulated:!1};D(t,n),n.preventDefault&&!n.defaultPrevented&&e.cancelEvent(i),n.stopPropagation&&e.stopEvent(i)}(s,t)},keydown:function(t){!function(t,i){let n=null;const o={originalEvent:i,eventType:"keydown",pointerType:"",isEmulated:!1};D(t,o),!t.keyDownHandler||o.preventGesture||o.defaultPrevented||(n={eventSource:t,keyCode:i.keyCode?i.keyCode:i.charCode,ctrl:i.ctrlKey,shift:i.shiftKey,alt:i.altKey,meta:i.metaKey,originalEvent:i,preventDefault:o.preventDefault||o.defaultPrevented,userData:t.userData},t.keyDownHandler(n)),(n&&n.preventDefault||o.preventDefault&&!o.defaultPrevented)&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}(s,t)},keyup:function(t){!function(t,i){let n=null;const o={originalEvent:i,eventType:"keyup",pointerType:"",isEmulated:!1};D(t,o),!t.keyUpHandler||o.preventGesture||o.defaultPrevented||(n={eventSource:t,keyCode:i.keyCode?i.keyCode:i.charCode,ctrl:i.ctrlKey,shift:i.shiftKey,alt:i.altKey,meta:i.metaKey,originalEvent:i,preventDefault:o.preventDefault||o.defaultPrevented,userData:t.userData},t.keyUpHandler(n)),(n&&n.preventDefault||o.preventDefault&&!o.defaultPrevented)&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}(s,t)},keypress:function(t){!function(t,i){let n=null;const o={originalEvent:i,eventType:"keypress",pointerType:"",isEmulated:!1};D(t,o),!t.keyHandler||o.preventGesture||o.defaultPrevented||(n={eventSource:t,keyCode:i.keyCode?i.keyCode:i.charCode,ctrl:i.ctrlKey,shift:i.shiftKey,alt:i.altKey,meta:i.metaKey,originalEvent:i,preventDefault:o.preventDefault||o.defaultPrevented,userData:t.userData},t.keyHandler(n)),(n&&n.preventDefault||o.preventDefault&&!o.defaultPrevented)&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}(s,t)},focus:function(e){!function(e,t){const i={originalEvent:t,eventType:"focus",pointerType:"",isEmulated:!1};D(e,i),e.focusHandler&&!i.preventGesture&&e.focusHandler({eventSource:e,originalEvent:t,userData:e.userData})}(s,e)},blur:function(e){!function(e,t){const i={originalEvent:t,eventType:"blur",pointerType:"",isEmulated:!1};D(e,i),e.blurHandler&&!i.preventGesture&&e.blurHandler({eventSource:e,originalEvent:t,userData:e.userData})}(s,e)},contextmenu:function(t){!function(t,i){let n=null;const o={originalEvent:i,eventType:"contextmenu",pointerType:"mouse",isEmulated:!1};D(t,o),!t.contextMenuHandler||o.preventGesture||o.defaultPrevented||(n={eventSource:t,position:g(d(i),t.element),originalEvent:o.originalEvent,preventDefault:o.preventDefault||o.defaultPrevented,userData:t.userData},t.contextMenuHandler(n)),(n&&n.preventDefault||o.preventDefault&&!o.defaultPrevented)&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}(s,t)},wheel:function(e){!function(e,t){v(e,t,t)}(s,e)},mousewheel:function(e){f(s,e)},DOMMouseScroll:function(e){f(s,e)},MozMousePixelScroll:function(e){f(s,e)},losecapture:function(t){!function(t,i){const n={id:e.MouseTracker.mousePointerId,type:"mouse"},o={originalEvent:i,eventType:"lostpointercapture",pointerType:"mouse",isEmulated:!1};D(t,o),i.target===t.element&&I(t,n,!1),o.stopPropagation&&e.stopEvent(i)}(s,t)},mouseenter:function(e){y(s,e)},mouseleave:function(e){w(s,e)},mouseover:function(e){_(s,e)},mouseout:function(e){T(s,e)},mousedown:function(e){x(s,e)},mouseup:function(e){E(s,e)},mousemove:function(e){b(s,e)},touchstart:function(t){!function(t,i){const n=i.changedTouches.length,o=t.getActivePointersListByType("touch"),s=e.now();o.getLength()>i.touches.length-n&&e.console.warn("Tracked touch contact count doesn't match event.touches.length");const r={originalEvent:i,eventType:"pointerdown",pointerType:"touch",isEmulated:!1};D(t,r);for(let e=0;e<n;e++){const n={id:i.changedTouches[e].identifier,type:"touch",isPrimary:0===o.getLength(),currentPos:d(i.changedTouches[e]),currentTime:s};A(t,r,n),F(t,r,n,0),I(t,n,!0)}r.preventDefault&&!r.defaultPrevented&&e.cancelEvent(i),r.stopPropagation&&e.stopEvent(i)}(s,t)},touchend:function(t){!function(t,i){const n=i.changedTouches.length,o=e.now(),s={originalEvent:i,eventType:"pointerup",pointerType:"touch",isEmulated:!1};D(t,s);for(let e=0;e<n;e++){const n={id:i.changedTouches[e].identifier,type:"touch",currentPos:d(i.changedTouches[e]),currentTime:o};L(t,s,n,0),I(t,n,!1),k(t,s,n)}s.preventDefault&&!s.defaultPrevented&&e.cancelEvent(i),s.stopPropagation&&e.stopEvent(i)}(s,t)},touchmove:function(t){!function(t,i){const n=i.changedTouches.length,o=e.now(),s={originalEvent:i,eventType:"pointermove",pointerType:"touch",isEmulated:!1};D(t,s);for(let e=0;e<n;e++)B(t,s,{id:i.changedTouches[e].identifier,type:"touch",currentPos:d(i.changedTouches[e]),currentTime:o});s.preventDefault&&!s.defaultPrevented&&e.cancelEvent(i),s.stopPropagation&&e.stopEvent(i)}(s,t)},touchcancel:function(t){!function(t,i){const n=i.changedTouches.length,o={originalEvent:i,eventType:"pointercancel",pointerType:"touch",isEmulated:!1};D(t,o);for(let e=0;e<n;e++)O(t,0,{id:i.changedTouches[e].identifier,type:"touch"});o.stopPropagation&&e.stopEvent(i)}(s,t)},gesturestart:function(t){!function(t,i){e.eventIsCanceled(i)||i.preventDefault()}(0,t)},gesturechange:function(t){!function(t,i){e.eventIsCanceled(i)||i.preventDefault()}(0,t)},gotpointercapture:function(t){!function(t,i){const n={originalEvent:i,eventType:"gotpointercapture",pointerType:c(i),isEmulated:!1};D(t,n),i.target===t.element&&I(t,{id:i.pointerId,type:c(i)},!0),n.stopPropagation&&e.stopEvent(i)}(s,t)},lostpointercapture:function(t){!function(t,i){const n={originalEvent:i,eventType:"lostpointercapture",pointerType:c(i),isEmulated:!1};D(t,n),i.target===t.element&&I(t,{id:i.pointerId,type:c(i)},!1),n.stopPropagation&&e.stopEvent(i)}(s,t)},pointerenter:function(e){y(s,e)},pointerleave:function(e){w(s,e)},pointerover:function(e){_(s,e)},pointerout:function(e){T(s,e)},pointerdown:function(e){x(s,e)},pointerup:function(e){E(s,e)},pointermove:function(e){b(s,e)},pointercancel:function(t){!function(t,i){const n={id:i.pointerId,type:c(i)},o={originalEvent:i,eventType:"pointercancel",pointerType:n.type,isEmulated:!1};D(t,o),O(t,0,n),o.stopPropagation&&e.stopEvent(i)}(s,t)},pointerupcaptured:function(t){!function(t,i){t.getActivePointersListByType(c(i)).getById(i.pointerId)&&C(t,i),e.stopEvent(i)}(s,t)},pointermovecaptured:function(t){!function(t,i){t.getActivePointersListByType(c(i)).getById(i.pointerId)&&S(t,i),e.stopEvent(i)}(s,t)},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."),n.startDisabled||this.setTracking(!0)},e.MouseTracker.prototype={destroy:function(){r(this),this.element=null;for(let e=0;e<t.length;e++)if(t[e]===this){t.splice(e,1);break}i[this.hash]=null,delete i[this.hash]},isTracking:function(){return i[this.hash].tracking},setTracking:function(t){return t?function(t){const n=i[t.hash];if(!n.tracking){for(let i=0;i<e.MouseTracker.subscribeEvents.length;i++){const o=e.MouseTracker.subscribeEvents[i];e.addEvent(t.element,o,n[o],o===e.MouseTracker.wheelEventName&&{passive:!1,capture:!1})}s(t),n.tracking=!0}}(this):r(this),this},getActivePointersListByType:function(t){const n=i[this.hash],o=n?n.activePointersLists.length:0;let s;for(let e=0;e<o;e++)if(n.activePointersLists[e].type===t)return n.activePointersLists[e];return s=new e.MouseTracker.GesturePointList(t),n&&n.activePointersLists.push(s),s},getActivePointerCount:function(){const e=i[this.hash],t=e.activePointersLists.length;let n=0;for(let i=0;i<t;i++)n+=e.activePointersLists[i].getLength();return n},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(){}};const n=function(){try{return window.self!==window.top}catch(e){return!0}}();function o(e){try{return e.addEventListener&&e.removeEventListener}catch(e){return!1}}function s(e){const t=i[e.hash],n=t.activePointersLists.length;for(let i=0;i<n;i++){const n=t.activePointersLists[i];if(n.getLength()>0){const t=[],i=n.asArray();for(let e=0;e<i.length;e++)t.push(i[e]);for(let i=0;i<t.length;i++)R(e,n,t[i])}}for(let e=0;e<n;e++)t.activePointersLists.pop();t.sentDragEvent=!1}function r(t){const n=i[t.hash];if(n.tracking){for(let i=0;i<e.MouseTracker.subscribeEvents.length;i++){const o=e.MouseTracker.subscribeEvents[i];e.removeEvent(t.element,o,n[o],!1)}s(t),n.tracking=!1}}function a(e,t){const n=i[e.hash];if("pointerevent"===t)return{upName:"pointerup",upHandler:n.pointerupcaptured,moveName:"pointermove",moveHandler:n.pointermovecaptured};if("mouse"===t)return{upName:"pointerup",upHandler:n.pointerupcaptured,moveName:"pointermove",moveHandler:n.pointermovecaptured};if("touch"===t)return{upName:"touchend",upHandler:n.touchendcaptured,moveName:"touchmove",moveHandler:n.touchmovecaptured};throw new Error("MouseTracker.getCaptureEventParams: Unknown pointer type.")}function l(t,i){if(e.MouseTracker.havePointerCapture)if(e.MouseTracker.havePointerEvents){const e=t.getActivePointersListByType(i.type).getById(i.id);if(!e||!e.captured)return;try{t.element.releasePointerCapture(i.id)}catch(e){}}else t.element.releaseCapture();else{const s=a(t,e.MouseTracker.havePointerEvents?"pointerevent":i.type);n&&o(window.top)&&e.removeEvent(window.top,s.upName,s.upHandler,!0),e.removeEvent(e.MouseTracker.captureElement,s.moveName,s.moveHandler,!0),e.removeEvent(e.MouseTracker.captureElement,s.upName,s.upHandler,!0)}I(t,i,!1)}function h(t){return e.MouseTracker.havePointerEvents?t.pointerId:e.MouseTracker.mousePointerId}function c(t){return e.MouseTracker.havePointerEvents&&t.pointerType?t.pointerType:"mouse"}function u(t){return!e.MouseTracker.havePointerEvents||t.isPrimary}function d(t){return e.getMousePosition(t)}function p(e,t){return g(d(e),t)}function g(t,i){const n=e.getElementOffset(i);return t.minus(n)}function m(t,i){return new e.Point((t.x+i.x)/2,(t.y+i.y)/2)}function f(t,i){const n={target:i.target||i.srcElement,type:"wheel",shiftKey:i.shiftKey||!1,clientX:i.clientX,clientY:i.clientY,pageX:i.pageX?i.pageX:i.clientX,pageY:i.pageY?i.pageY:i.clientY,deltaMode:"MozMousePixelScroll"===i.type?0:1,deltaX:0,deltaZ:0};"mousewheel"===e.MouseTracker.wheelEventName?n.deltaY=-i.wheelDelta/e.DEFAULT_SETTINGS.pixelsPerWheelLine:n.deltaY=i.detail,v(t,n,i)}function v(t,i,n){let o,s=0,r=null;s=i.deltaY?i.deltaY<0?1:-1:0,o={originalEvent:i,eventType:"wheel",pointerType:"mouse",isEmulated:i!==n},D(t,o),!t.scrollHandler||o.preventGesture||o.defaultPrevented||(r={eventSource:t,pointerType:"mouse",position:p(i,t.element),scroll:s,shift:i.shiftKey,isTouchEvent:!1,originalEvent:n,preventDefault:o.preventDefault||o.defaultPrevented,userData:t.userData},t.scrollHandler(r)),o.stopPropagation&&e.stopEvent(n),(r&&r.preventDefault||o.preventDefault&&!o.defaultPrevented)&&e.cancelEvent(n)}function y(t,i){const n={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},o={originalEvent:i,eventType:"pointerenter",pointerType:n.type,isEmulated:!1};D(t,o),A(t,o,n)}function w(t,i){const n={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},o={originalEvent:i,eventType:"pointerleave",pointerType:n.type,isEmulated:!1};D(t,o),k(t,o,n)}function _(t,i){const n={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},o={originalEvent:i,eventType:"pointerover",pointerType:n.type,isEmulated:!1};D(t,o),function(e,t,i){const n=e.getActivePointersListByType(i.type),o=n.getById(i.id);o?i=o:(i.captured=!1,i.insideElementPressed=!1),e.overHandler&&e.overHandler({eventSource:e,pointerType:i.type,position:g(i.currentPos,e.element),buttons:n.buttons,pointers:e.getActivePointerCount(),insideElementPressed:i.insideElementPressed,buttonDownAny:0!==n.buttons,isTouchEvent:"touch"===i.type,originalEvent:t.originalEvent,userData:e.userData})}(t,o,n),o.preventDefault&&!o.defaultPrevented&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}function T(t,i){const n={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},o={originalEvent:i,eventType:"pointerout",pointerType:n.type,isEmulated:!1};D(t,o),function(e,t,i){const n=e.getActivePointersListByType(i.type),o=n.getById(i.id);o?i=o:(i.captured=!1,i.insideElementPressed=!1),e.outHandler&&e.outHandler({eventSource:e,pointerType:i.type,position:i.currentPos&&g(i.currentPos,e.element),buttons:n.buttons,pointers:e.getActivePointerCount(),insideElementPressed:i.insideElementPressed,buttonDownAny:0!==n.buttons,isTouchEvent:"touch"===i.type,originalEvent:t.originalEvent,userData:e.userData})}(t,o,n),o.preventDefault&&!o.defaultPrevented&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}function x(t,i){const s={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},r=e.MouseTracker.havePointerEvents&&"touch"===s.type,l={originalEvent:i,eventType:"pointerdown",pointerType:s.type,isEmulated:!1};D(t,l),F(t,l,s,i.button),l.preventDefault&&!l.defaultPrevented&&e.cancelEvent(i),l.stopPropagation&&e.stopEvent(i),l.shouldCapture&&(r?I(t,s,!0):function(t,i){if(e.MouseTracker.havePointerCapture)if(e.MouseTracker.havePointerEvents)try{t.element.setPointerCapture(i.id)}catch(t){return void e.console.warn("setPointerCapture() called on invalid pointer ID")}else t.element.setCapture(!0);else{const s=a(t,e.MouseTracker.havePointerEvents?"pointerevent":i.type);n&&o(window.top)&&e.addEvent(window.top,s.upName,s.upHandler,!0),e.addEvent(e.MouseTracker.captureElement,s.upName,s.upHandler,!0),e.addEvent(e.MouseTracker.captureElement,s.moveName,s.moveHandler,!0)}I(t,i,!0)}(t,s))}function E(e,t){C(e,t)}function C(t,i){const n={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},o={originalEvent:i,eventType:"pointerup",pointerType:n.type,isEmulated:!1};D(t,o),L(t,o,n,i.button),o.preventDefault&&!o.defaultPrevented&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i),o.shouldReleaseCapture&&(i.target===t.element?l(t,n):I(t,n,!1))}function b(e,t){S(e,t)}function S(t,i){const n={id:h(i),type:c(i),isPrimary:u(i),currentPos:d(i),currentTime:e.now()},o={originalEvent:i,eventType:"pointermove",pointerType:n.type,isEmulated:!1};D(t,o),B(t,o,n),o.preventDefault&&!o.defaultPrevented&&e.cancelEvent(i),o.stopPropagation&&e.stopEvent(i)}function P(e,t){return t.speed=0,t.direction=0,t.contactPos=t.currentPos,t.contactTime=t.currentTime,t.lastPos=t.currentPos,t.lastTime=t.currentTime,e.add(t)}function R(t,i,n){let o;const s=i.getById(n.id);return s?(s.captured&&(e.console.warn("stopTrackingPointer() called on captured pointer"),l(t,s)),i.removeContact(),o=i.removeById(n.id)):o=i.getLength(),o}function D(t,i){i.eventSource=t,i.eventPhase=i.originalEvent&&void 0!==i.originalEvent.eventPhase?i.originalEvent.eventPhase:0,i.defaultPrevented=e.eventIsCanceled(i.originalEvent),i.shouldCapture=!1,i.shouldReleaseCapture=!1,i.userData=t.userData,function(e,t){switch(t.eventType){case"pointermove":case"pointerdown":case"pointerup":t.isStoppable=!0,t.isCancelable=!0,t.preventDefault=!1,t.preventGesture=!e.hasGestureHandlers,t.stopPropagation=!1;break;case"pointerover":case"pointerout":case"contextmenu":case"keydown":case"keyup":case"keypress":t.isStoppable=!0,t.isCancelable=!0,t.preventDefault=!1,t.preventGesture=!1,t.stopPropagation=!1;break;case"wheel":t.isStoppable=!0,t.isCancelable=!0,t.preventDefault=!1,t.preventGesture=!e.hasScrollHandler,t.stopPropagation=!1;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":t.isStoppable=!0,t.isCancelable=!1,t.preventDefault=!1,t.preventGesture=!1,t.stopPropagation=!1;break;case"click":t.isStoppable=!0,t.isCancelable=!0,t.preventDefault=!!e.clickHandler,t.preventGesture=!1,t.stopPropagation=!1;break;case"dblclick":t.isStoppable=!0,t.isCancelable=!0,t.preventDefault=!!e.dblClickHandler,t.preventGesture=!1,t.stopPropagation=!1;break;default:t.isStoppable=!1,t.isCancelable=!1,t.preventDefault=!1,t.preventGesture=!1,t.stopPropagation=!1}}(t,i),t.preProcessEventHandler&&t.preProcessEventHandler(i)}function I(t,i,n){const o=t.getActivePointersListByType(i.type),s=o.getById(i.i