UNPKG

@tindtechnologies/universalviewer

Version:

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

2 lines 331 kB
import{a as Jt}from"./chunk-3UUJB7QR.js";import{a as qt}from"./chunk-YLQOZZ6G.js";import{a as Xt}from"./chunk-CHPN5XCG.js";import{a as Zt}from"./chunk-YXN24ANC.js";import{b as Ft,c as ui,d as xe,e as ci,f as zt,g as Re,h as Vt}from"./chunk-I3HGOF4N.js";import{a as ve}from"./chunk-2SUYJOML.js";import{c as Mt,d as st,e as _e,f as kt,h as ot,i as Gt,k as Wt,l as Ut,m as jt}from"./chunk-BIWUBEGG.js";import{a as pt,b as ft,c as nt}from"./chunk-UYLDA6E6.js";import{a as ct,b as he,e as dt,f as Bt,g as Ke,h as gt,i as Ht,n as ge,p as E}from"./chunk-2YE6NNA6.js";import{a as Dt,b as Ne,c as Nt,e as Lt,g as $e}from"./chunk-R6HAKAEO.js";import{b as At,c as Se}from"./chunk-YAXTLTJC.js";var rt=At((exports,module)=>{function OpenSeadragon(t){return new OpenSeadragon.Viewer(t)}(function(t){t.version={versionStr:"2.4.2",major:parseInt("2",10),minor:parseInt("4",10),revision:parseInt("2",10)};var e={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},i=Object.prototype.toString,n=Object.prototype.hasOwnProperty;t.isFunction=function(s){return t.type(s)==="function"},t.isArray=Array.isArray||function(s){return t.type(s)==="array"},t.isWindow=function(s){return s&&typeof s=="object"&&"setInterval"in s},t.type=function(s){return s==null?String(s):e[i.call(s)]||"object"},t.isPlainObject=function(s){if(!s||OpenSeadragon.type(s)!=="object"||s.nodeType||t.isWindow(s)||s.constructor&&!n.call(s,"constructor")&&!n.call(s.constructor.prototype,"isPrototypeOf"))return!1;var o;for(var a in s)o=a;return o===void 0||n.call(s,o)},t.isEmptyObject=function(s){for(var o in s)return!1;return!0},t.freezeObject=function(s){return Object.freeze?t.freezeObject=Object.freeze:t.freezeObject=function(o){return o},t.freezeObject(s)},t.supportsCanvas=function(){var s=document.createElement("canvas");return!!(t.isFunction(s.getContext)&&s.getContext("2d"))}(),t.isCanvasTainted=function(s){var o=!1;try{s.getContext("2d").getImageData(0,0,1,1)}catch{o=!0}return o},t.pixelDensityRatio=function(){if(t.supportsCanvas){var s=document.createElement("canvas").getContext("2d"),o=window.devicePixelRatio||1,a=s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1;return Math.max(o,1)/a}else return 1}()})(OpenSeadragon);(function($){$.extend=function(){var t,e,i,n,s,o,a=arguments[0]||{},r=arguments.length,c=!1,d=1;for(typeof a=="boolean"&&(c=a,a=arguments[1]||{},d=2),typeof a!="object"&&!OpenSeadragon.isFunction(a)&&(a={}),r===d&&(a=this,--d);d<r;d++)if(t=arguments[d],t!==null||t!==void 0)for(e in t)i=a[e],n=t[e],a!==n&&(c&&n&&(OpenSeadragon.isPlainObject(n)||(s=OpenSeadragon.isArray(n)))?(s?(s=!1,o=i&&OpenSeadragon.isArray(i)?i:[]):o=i&&OpenSeadragon.isPlainObject(i)?i:{},a[e]=OpenSeadragon.extend(c,o,n)):n!==void 0&&(a[e]=n));return a};var isIOSDevice=function(){if(typeof navigator!="object")return!1;var t=navigator.userAgent;return typeof t!="string"?!1:t.indexOf("iPhone")!==-1||t.indexOf("iPad")!==-1||t.indexOf("iPod")!==-1};$.extend($,{DEFAULT_SETTINGS:{xmlPath:null,tileSources:null,tileHost:null,initialPage:0,crossOriginPolicy:!1,ajaxWithCredentials:!1,loadTilesWithAjax:!1,ajaxHeaders:{},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,gestureSettingsMouse:{scrollToZoom:!0,clickToZoom:!0,dblClickToZoom:!1,pinchToZoom:!1,zoomToRefPoint:!0,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsTouch:{scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,pinchToZoom:!0,zoomToRefPoint:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsPen:{scrollToZoom:!1,clickToZoom:!0,dblClickToZoom:!1,pinchToZoom:!1,zoomToRefPoint:!0,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsUnknown:{scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,pinchToZoom:!0,zoomToRefPoint:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},zoomPerClick:2,zoomPerScroll:1.2,zoomPerSecond:1,blendTime:0,alwaysBlend:!1,autoHideControls:!0,immediateRender:!1,minZoomImageRatio:.9,maxZoomPixelRatio:1.1,smoothTileEdgesMinZoom:1.1,iOSDevice:isIOSDevice(),pixelsPerWheelLine:40,pixelsPerArrowPress:40,autoResize:!0,preserveImageSizeOnResize:!1,minScrollDeltaTime:50,rotationIncrement:90,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,showNavigator:!1,navigatorId:null,navigatorPosition:null,navigatorSizeRatio:.2,navigatorMaintainSizeRatio:!1,navigatorTop:null,navigatorLeft:null,navigatorHeight:null,navigatorWidth:null,navigatorAutoResize:!0,navigatorAutoFade:!0,navigatorRotate:!0,navigatorBackground:"#000",navigatorOpacity:.8,navigatorBorderColor:"#555",navigatorDisplayRegionColor:"#900",degrees:0,flipped:!1,opacity:1,preload:!1,compositeOperation:null,imageSmoothingEnabled:!0,placeholderFillStyle: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,useCanvas:!0,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"]},SIGNAL:"----seadragon----",delegate:function(t,e){return function(){var i=arguments;return i===void 0&&(i=[]),e.apply(t,i)}},BROWSERS:{UNKNOWN:0,IE:1,FIREFOX:2,SAFARI:3,CHROME:4,OPERA:5},getElement:function(t){return typeof t=="string"&&(t=document.getElementById(t)),t},getElementPosition:function(t){var e=new $.Point,i,n;for(t=$.getElement(t),i=$.getElementStyle(t).position=="fixed",n=getOffsetParent(t,i);n;)e.x+=t.offsetLeft,e.y+=t.offsetTop,i&&(e=e.plus($.getPageScroll())),t=n,i=$.getElementStyle(t).position=="fixed",n=getOffsetParent(t,i);return e},getElementOffset:function(t){t=$.getElement(t);var e=t&&t.ownerDocument,i,n,s={top:0,left:0};return e?(i=e.documentElement,typeof t.getBoundingClientRect!="undefined"&&(s=t.getBoundingClientRect()),n=e==e.window?e:e.nodeType===9?e.defaultView||e.parentWindow:!1,new $.Point(s.left+(n.pageXOffset||i.scrollLeft)-(i.clientLeft||0),s.top+(n.pageYOffset||i.scrollTop)-(i.clientTop||0))):new $.Point},getElementSize:function(t){return t=$.getElement(t),new $.Point(t.clientWidth,t.clientHeight)},getElementStyle:document.documentElement.currentStyle?function(t){return t=$.getElement(t),t.currentStyle}:function(t){return t=$.getElement(t),window.getComputedStyle(t,"")},getCssPropertyWithVendorPrefix:function(t){var e={};return $.getCssPropertyWithVendorPrefix=function(i){if(e[i]!==void 0)return e[i];var n=document.createElement("div").style,s=null;if(n[i]!==void 0)s=i;else for(var o=["Webkit","Moz","MS","O","webkit","moz","ms","o"],a=$.capitalizeFirstLetter(i),r=0;r<o.length;r++){var c=o[r]+a;if(n[c]!==void 0){s=c;break}}return e[i]=s,s},$.getCssPropertyWithVendorPrefix(t)},capitalizeFirstLetter:function(t){return t.charAt(0).toUpperCase()+t.slice(1)},positiveModulo:function(t,e){var i=t%e;return i<0&&(i+=e),i},pointInElement:function(t,e){t=$.getElement(t);var i=$.getElementOffset(t),n=$.getElementSize(t);return e.x>=i.x&&e.x<i.x+n.x&&e.y<i.y+n.y&&e.y>=i.y},getEvent:function(t){return t?$.getEvent=function(e){return e}:$.getEvent=function(){return window.event},$.getEvent(t)},getMousePosition:function(t){if(typeof t.pageX=="number")$.getMousePosition=function(e){var i=new $.Point;return e=$.getEvent(e),i.x=e.pageX,i.y=e.pageY,i};else if(typeof t.clientX=="number")$.getMousePosition=function(e){var i=new $.Point;return e=$.getEvent(e),i.x=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,i.y=e.clientY+document.body.scrollTop+document.documentElement.scrollTop,i};else throw new Error("Unknown event mouse position, no known technique.");return $.getMousePosition(t)},getPageScroll:function(){var t=document.documentElement||{},e=document.body||{};if(typeof window.pageXOffset=="number")$.getPageScroll=function(){return new $.Point(window.pageXOffset,window.pageYOffset)};else if(e.scrollLeft||e.scrollTop)$.getPageScroll=function(){return new $.Point(document.body.scrollLeft,document.body.scrollTop)};else if(t.scrollLeft||t.scrollTop)$.getPageScroll=function(){return new $.Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)};else return new $.Point(0,0);return $.getPageScroll()},setPageScroll:function(t){if(typeof window.scrollTo!="undefined")$.setPageScroll=function(n){window.scrollTo(n.x,n.y)};else{var e=$.getPageScroll();if(e.x===t.x&&e.y===t.y)return;document.body.scrollLeft=t.x,document.body.scrollTop=t.y;var i=$.getPageScroll();if(i.x!==e.x&&i.y!==e.y){$.setPageScroll=function(n){document.body.scrollLeft=n.x,document.body.scrollTop=n.y};return}if(document.documentElement.scrollLeft=t.x,document.documentElement.scrollTop=t.y,i=$.getPageScroll(),i.x!==e.x&&i.y!==e.y){$.setPageScroll=function(n){document.documentElement.scrollLeft=n.x,document.documentElement.scrollTop=n.y};return}$.setPageScroll=function(n){}}return $.setPageScroll(t)},getWindowSize:function(){var t=document.documentElement||{},e=document.body||{};if(typeof window.innerWidth=="number")$.getWindowSize=function(){return new $.Point(window.innerWidth,window.innerHeight)};else if(t.clientWidth||t.clientHeight)$.getWindowSize=function(){return new $.Point(document.documentElement.clientWidth,document.documentElement.clientHeight)};else if(e.clientWidth||e.clientHeight)$.getWindowSize=function(){return new $.Point(document.body.clientWidth,document.body.clientHeight)};else throw new Error("Unknown window size, no known technique.");return $.getWindowSize()},makeCenteredNode:function(t){t=$.getElement(t);var e=[$.makeNeutralElement("div"),$.makeNeutralElement("div"),$.makeNeutralElement("div")];return $.extend(e[0].style,{display:"table",height:"100%",width:"100%"}),$.extend(e[1].style,{display:"table-row"}),$.extend(e[2].style,{display:"table-cell",verticalAlign:"middle",textAlign:"center"}),e[0].appendChild(e[1]),e[1].appendChild(e[2]),e[2].appendChild(t),e[0]},makeNeutralElement:function(t){var e=document.createElement(t),i=e.style;return i.background="transparent none",i.border="none",i.margin="0px",i.padding="0px",i.position="static",e},now:function(){return Date.now?$.now=Date.now:$.now=function(){return new Date().getTime()},$.now()},makeTransparentImage:function(t){return $.makeTransparentImage=function(e){var i=$.makeNeutralElement("img");return i.src=e,i},$.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<7&&($.makeTransparentImage=function(e){var i=$.makeNeutralElement("img"),n=null;return n=$.makeNeutralElement("span"),n.style.display="inline-block",i.onload=function(){n.style.width=n.style.width||i.width+"px",n.style.height=n.style.height||i.height+"px",i.onload=null,i=null},i.src=e,n.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e+"', sizingMethod='scale')",n}),$.makeTransparentImage(t)},setElementOpacity:function(t,e,i){var n,s;t=$.getElement(t),i&&!$.Browser.alpha&&(e=Math.round(e)),$.Browser.opacity?t.style.opacity=e<1?e:"":e<1?(n=Math.round(100*e),s="alpha(opacity="+n+")",t.style.filter=s):t.style.filter=""},setElementTouchActionNone:function(t){t=$.getElement(t),typeof t.style.touchAction!="undefined"?t.style.touchAction="none":typeof t.style.msTouchAction!="undefined"&&(t.style.msTouchAction="none")},addClass:function(t,e){t=$.getElement(t),t.className?(" "+t.className+" ").indexOf(" "+e+" ")===-1&&(t.className+=" "+e):t.className=e},indexOf:function(t,e,i){return Array.prototype.indexOf?this.indexOf=function(n,s,o){return n.indexOf(s,o)}:this.indexOf=function(n,s,o){var a,r=o||0,c;if(!n)throw new TypeError;if(c=n.length,c===0||r>=c)return-1;for(r<0&&(r=c-Math.abs(r)),a=r;a<c;a++)if(n[a]===s)return a;return-1},this.indexOf(t,e,i)},removeClass:function(t,e){var i,n=[],s;for(t=$.getElement(t),i=t.className.split(/\s+/),s=0;s<i.length;s++)i[s]&&i[s]!==e&&n.push(i[s]);t.className=n.join(" ")},addEvent:function(){if(window.addEventListener)return function(t,e,i,n){t=$.getElement(t),t.addEventListener(e,i,n)};if(window.attachEvent)return function(t,e,i,n){t=$.getElement(t),t.attachEvent("on"+e,i)};throw new Error("No known event model.")}(),removeEvent:function(){if(window.removeEventListener)return function(t,e,i,n){t=$.getElement(t),t.removeEventListener(e,i,n)};if(window.detachEvent)return function(t,e,i,n){t=$.getElement(t),t.detachEvent("on"+e,i)};throw new Error("No known event model.")}(),cancelEvent:function(t){t=$.getEvent(t),t.preventDefault?$.cancelEvent=function(e){e.preventDefault()}:$.cancelEvent=function(e){e=$.getEvent(e),e.cancel=!0,e.returnValue=!1},$.cancelEvent(t)},stopEvent:function(t){t=$.getEvent(t),t.stopPropagation?$.stopEvent=function(e){e.stopPropagation()}:$.stopEvent=function(e){e=$.getEvent(e),e.cancelBubble=!0},$.stopEvent(t)},createCallback:function(t,e){var i=[],n;for(n=2;n<arguments.length;n++)i.push(arguments[n]);return function(){var s=i.concat([]),o;for(o=0;o<arguments.length;o++)s.push(arguments[o]);return e.apply(t,s)}},getUrlParameter:function(t){var e=URLPARAMS[t];return e||null},getUrlProtocol:function(t){var e=t.match(/^([a-z]+:)\/\//i);return e===null?window.location.protocol:e[1].toLowerCase()},createAjaxRequest:function(t){var e;try{e=!!new ActiveXObject("Microsoft.XMLHTTP")}catch{e=!1}if(e)window.XMLHttpRequest?$.createAjaxRequest=function(i){return i?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest}:$.createAjaxRequest=function(){return new ActiveXObject("Microsoft.XMLHTTP")};else if(window.XMLHttpRequest)$.createAjaxRequest=function(){return new XMLHttpRequest};else throw new Error("Browser doesn't support XMLHttpRequest.");return $.createAjaxRequest(t)},makeAjaxRequest:function(t,e,i){var n,s,o;$.isPlainObject(t)&&(e=t.success,i=t.error,n=t.withCredentials,s=t.headers,o=t.responseType||null,t=t.url);var a=$.getUrlProtocol(t),r=$.createAjaxRequest(a==="file:");if(!$.isFunction(e))throw new Error("makeAjaxRequest requires a success callback");r.onreadystatechange=function(){r.readyState==4&&(r.onreadystatechange=function(){},r.status>=200&&r.status<300||r.status===0&&a!=="http:"&&a!=="https:"?e(r):($.console.log("AJAX request returned %d: %s",r.status,t),$.isFunction(i)&&i(r)))};try{if(r.open("GET",t,!0),o&&(r.responseType=o),s)for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&s[c]&&r.setRequestHeader(c,s[c]);n&&(r.withCredentials=!0),r.send(null)}catch(y){var d=y.message,p=$.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<10;if(p&&typeof y.number!="undefined"&&y.number==-2147024891&&(d+=` See http://msdn.microsoft.com/en-us/library/ms537505(v=vs.85).aspx#xdomain`),$.console.log("%s while making AJAX request: %s",y.name,d),r.onreadystatechange=function(){},window.XDomainRequest){var w=new window.XDomainRequest;if(w){w.onload=function(R){$.isFunction(e)&&e({responseText:w.responseText,status:200,statusText:"OK"})},w.onerror=function(R){$.isFunction(i)&&i({responseText:w.responseText,status:444,statusText:"An error happened. Due to an XDomainRequest deficiency we can not extract any information about this error. Upgrade your browser."})};try{w.open("GET",t),w.send()}catch{$.isFunction(i)&&i(r,y)}}}else $.isFunction(i)&&i(r,y)}return r},jsonp:function(t){var e,i=t.url,n=document.head||document.getElementsByTagName("head")[0]||document.documentElement,s=t.callbackName||"openseadragon"+$.now(),o=window[s],a="$1"+s+"$2",r=t.param||"callback",c=t.callback;i=i.replace(/(\=)\?(&|$)|\?\?/i,a),i+=(/\?/.test(i)?"&":"?")+r+"="+s,window[s]=function(d){if(o)window[s]=o;else try{delete window[s]}catch{}c&&$.isFunction(c)&&c(d)},e=document.createElement("script"),(t.async!==void 0||t.async!==!1)&&(e.async="async"),t.scriptCharset&&(e.charset=t.scriptCharset),e.src=i,e.onload=e.onreadystatechange=function(d,p){(p||!e.readyState||/loaded|complete/.test(e.readyState))&&(e.onload=e.onreadystatechange=null,n&&e.parentNode&&n.removeChild(e),e=void 0)},n.insertBefore(e,n.firstChild)},createFromDZI:function(){throw"OpenSeadragon.createFromDZI is deprecated, use Viewer.open."},parseXml:function(t){if(window.DOMParser)$.parseXml=function(e){var i=null,n;return n=new DOMParser,i=n.parseFromString(e,"text/xml"),i};else if(window.ActiveXObject)$.parseXml=function(e){var i=null;return i=new ActiveXObject("Microsoft.XMLDOM"),i.async=!1,i.loadXML(e),i};else throw new Error("Browser doesn't support XML DOM.");return $.parseXml(t)},parseJSON:function(string){return window.JSON&&window.JSON.parse?$.parseJSON=window.JSON.parse:$.parseJSON=function(string){return eval("("+string+")")},$.parseJSON(string)},imageFormatSupported:function(t){return t=t||"",!!FILEFORMATS[t.toLowerCase()]}});var nullfunction=function(t){};$.console=window.console||{log:nullfunction,debug:nullfunction,info:nullfunction,warn:nullfunction,error:nullfunction,assert:nullfunction},$.Browser={vendor:$.BROWSERS.UNKNOWN,version:0,alpha:!0};var FILEFORMATS={bmp:!1,jpeg:!0,jpg:!0,png:!0,tif:!1,wdp:!1},URLPARAMS={};(function(){var t=navigator.appVersion,e=navigator.userAgent,i;switch(navigator.appName){case"Microsoft Internet Explorer":!!window.attachEvent&&!!window.ActiveXObject&&($.Browser.vendor=$.BROWSERS.IE,$.Browser.version=parseFloat(e.substring(e.indexOf("MSIE")+5,e.indexOf(";",e.indexOf("MSIE")))));break;case"Netscape":window.addEventListener&&(e.indexOf("Firefox")>=0?($.Browser.vendor=$.BROWSERS.FIREFOX,$.Browser.version=parseFloat(e.substring(e.indexOf("Firefox")+8))):e.indexOf("Safari")>=0?($.Browser.vendor=e.indexOf("Chrome")>=0?$.BROWSERS.CHROME:$.BROWSERS.SAFARI,$.Browser.version=parseFloat(e.substring(e.substring(0,e.indexOf("Safari")).lastIndexOf("/")+1,e.indexOf("Safari")))):(i=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"),i.exec(e)!==null&&($.Browser.vendor=$.BROWSERS.IE,$.Browser.version=parseFloat(RegExp.$1))));break;case"Opera":$.Browser.vendor=$.BROWSERS.OPERA,$.Browser.version=parseFloat(t);break}var n=window.location.search.substring(1),s=n.split("&"),o,a,r;for(r=0;r<s.length;r++)if(o=s[r],a=o.indexOf("="),a>0){var c=o.substring(0,a),d=o.substring(a+1);try{URLPARAMS[c]=decodeURIComponent(d)}catch{$.console.error("Ignoring malformed URL parameter: %s=%s",c,d)}}$.Browser.alpha=!($.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<9||$.Browser.vendor==$.BROWSERS.CHROME&&$.Browser.version<2),$.Browser.opacity=!($.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<9)})(),function(t){var e=t.requestAnimationFrame||t.mozRequestAnimationFrame||t.webkitRequestAnimationFrame||t.msRequestAnimationFrame,i=t.cancelAnimationFrame||t.mozCancelAnimationFrame||t.webkitCancelAnimationFrame||t.msCancelAnimationFrame;if(e&&i)$.requestAnimationFrame=function(){return e.apply(t,arguments)},$.cancelAnimationFrame=function(){return i.apply(t,arguments)};else{var n=[],s=[],o=0,a;$.requestAnimationFrame=function(r){return n.push([++o,r]),a||(a=setInterval(function(){if(n.length){var c=$.now(),d=s;for(s=n,n=d;s.length;)s.shift()[1](c)}else clearInterval(a),a=void 0},1e3/50)),o},$.cancelAnimationFrame=function(r){var c,d;for(c=0,d=n.length;c<d;c+=1)if(n[c][0]===r){n.splice(c,1);return}for(c=0,d=s.length;c<d;c+=1)if(s[c][0]===r){s.splice(c,1);return}}}}(window);function getOffsetParent(t,e){return e&&t!=document.body?document.body:t.offsetParent}})(OpenSeadragon);(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof module=="object"&&module.exports?module.exports=e():t.OpenSeadragon=e()})(exports,function(){return OpenSeadragon});(function(t){var e={supportsFullScreen:!1,isFullScreen:function(){return!1},getFullScreenElement:function(){return null},requestFullScreen:function(){},exitFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",fullScreenErrorEventName:""};document.exitFullscreen?(e.supportsFullScreen=!0,e.getFullScreenElement=function(){return document.fullscreenElement},e.requestFullScreen=function(i){return i.requestFullscreen()},e.exitFullScreen=function(){document.exitFullscreen()},e.fullScreenEventName="fullscreenchange",e.fullScreenErrorEventName="fullscreenerror"):document.msExitFullscreen?(e.supportsFullScreen=!0,e.getFullScreenElement=function(){return document.msFullscreenElement},e.requestFullScreen=function(i){return i.msRequestFullscreen()},e.exitFullScreen=function(){document.msExitFullscreen()},e.fullScreenEventName="MSFullscreenChange",e.fullScreenErrorEventName="MSFullscreenError"):document.webkitExitFullscreen?(e.supportsFullScreen=!0,e.getFullScreenElement=function(){return document.webkitFullscreenElement},e.requestFullScreen=function(i){return i.webkitRequestFullscreen()},e.exitFullScreen=function(){document.webkitExitFullscreen()},e.fullScreenEventName="webkitfullscreenchange",e.fullScreenErrorEventName="webkitfullscreenerror"):document.webkitCancelFullScreen?(e.supportsFullScreen=!0,e.getFullScreenElement=function(){return document.webkitCurrentFullScreenElement},e.requestFullScreen=function(i){return i.webkitRequestFullScreen()},e.exitFullScreen=function(){document.webkitCancelFullScreen()},e.fullScreenEventName="webkitfullscreenchange",e.fullScreenErrorEventName="webkitfullscreenerror"):document.mozCancelFullScreen&&(e.supportsFullScreen=!0,e.getFullScreenElement=function(){return document.mozFullScreenElement},e.requestFullScreen=function(i){return i.mozRequestFullScreen()},e.exitFullScreen=function(){document.mozCancelFullScreen()},e.fullScreenEventName="mozfullscreenchange",e.fullScreenErrorEventName="mozfullscreenerror"),e.isFullScreen=function(){return e.getFullScreenElement()!==null},e.cancelFullScreen=function(){t.console.error("cancelFullScreen is deprecated. Use exitFullScreen instead."),e.exitFullScreen()},t.extend(t,e)})(OpenSeadragon);(function(t){t.EventSource=function(){this.events={}},t.EventSource.prototype={addOnceHandler:function(e,i,n,s){var o=this;s=s||1;var a=0,r=function(c){a++,a===s&&o.removeHandler(e,r),i(c)};this.addHandler(e,r,n)},addHandler:function(e,i,n){var s=this.events[e];s||(this.events[e]=s=[]),i&&t.isFunction(i)&&(s[s.length]={handler:i,userData:n||null})},removeHandler:function(e,i){var n=this.events[e],s=[],o;if(!!n&&t.isArray(n)){for(o=0;o<n.length;o++)n[o].handler!==i&&s.push(n[o]);this.events[e]=s}},removeAllHandlers:function(e){if(e)this.events[e]=[];else for(var i in this.events)this.events[i]=[]},getHandler:function(e){var i=this.events[e];return!i||!i.length?null:(i=i.length===1?[i[0]]:Array.apply(null,i),function(n,s){var o,a=i.length;for(o=0;o<a;o++)i[o]&&(s.eventSource=n,s.userData=i[o].userData,i[o].handler(s))})},raiseEvent:function(e,i){var n=this.getHandler(e);n&&(i||(i={}),n(this,i))}}})(OpenSeadragon);(function(t){var e=[],i={};t.MouseTracker=function(g){e.push(this);var u=arguments;t.isPlainObject(g)||(g={element:u[0],clickTimeThreshold:u[1],clickDistThreshold:u[2]}),this.hash=Math.random(),this.element=t.getElement(g.element),this.clickTimeThreshold=g.clickTimeThreshold||t.DEFAULT_SETTINGS.clickTimeThreshold,this.clickDistThreshold=g.clickDistThreshold||t.DEFAULT_SETTINGS.clickDistThreshold,this.dblClickTimeThreshold=g.dblClickTimeThreshold||t.DEFAULT_SETTINGS.dblClickTimeThreshold,this.dblClickDistThreshold=g.dblClickDistThreshold||t.DEFAULT_SETTINGS.dblClickDistThreshold,this.userData=g.userData||null,this.stopDelay=g.stopDelay||50,this.enterHandler=g.enterHandler||null,this.exitHandler=g.exitHandler||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;var m=this;i[this.hash]={click:function(v){b(m,v)},dblclick:function(v){N(m,v)},keydown:function(v){h(m,v)},keyup:function(v){x(m,v)},keypress:function(v){T(m,v)},focus:function(v){S(m,v)},blur:function(v){P(m,v)},wheel:function(v){O(m,v)},mousewheel:function(v){M(m,v)},DOMMouseScroll:function(v){M(m,v)},MozMousePixelScroll:function(v){M(m,v)},mouseenter:function(v){Q(m,v)},mouseleave:function(v){X(m,v)},mouseover:function(v){V(m,v)},mouseout:function(v){oe(m,v)},mousedown:function(v){se(m,v)},mouseup:function(v){G(m,v)},mouseupcaptured:function(v){pe(m,v)},mousemove:function(v){Me(m,v)},mousemovecaptured:function(v){ke(m,v)},touchstart:function(v){be(m,v)},touchend:function(v){We(m,v)},touchendcaptured:function(v){Ue(m,v)},touchmove:function(v){je(m,v)},touchmovecaptured:function(v){Ze(m,v)},touchcancel:function(v){Be(m,v)},gesturestart:function(v){qe(m,v)},gesturechange:function(v){l(m,v)},pointerover:function(v){f(m,v)},MSPointerOver:function(v){f(m,v)},pointerout:function(v){C(m,v)},MSPointerOut:function(v){C(m,v)},pointerdown:function(v){A(m,v)},MSPointerDown:function(v){A(m,v)},pointerup:function(v){H(m,v)},MSPointerUp:function(v){H(m,v)},pointermove:function(v){z(m,v)},MSPointerMove:function(v){z(m,v)},pointercancel:function(v){Z(m,v)},MSPointerCancel:function(v){Z(m,v)},pointerupcaptured:function(v){D(m,v)},pointermovecaptured:function(v){q(m,v)},tracking:!1,activePointersLists:[],lastClickPos:null,dblClickTimeOut:null,pinchGPoints:[],lastPinchDist:0,currentPinchDist:0,lastPinchCenter:null,currentPinchCenter:null},g.startDisabled||this.setTracking(!0)},t.MouseTracker.prototype={destroy:function(){var g;for(o(this),this.element=null,g=0;g<e.length;g++)if(e[g]===this){e.splice(g,1);break}i[this.hash]=null,delete i[this.hash]},isTracking:function(){return i[this.hash].tracking},setTracking:function(g){return g?s(this):o(this),this},getActivePointersListsExceptType:function(g){for(var u=i[this.hash],m=[],v=0;v<u.activePointersLists.length;++v)u.activePointersLists[v].type!==g&&m.push(u.activePointersLists[v]);return m},getActivePointersListByType:function(g){var u=i[this.hash],m,v=u.activePointersLists.length,B;for(m=0;m<v;m++)if(u.activePointersLists[m].type===g)return u.activePointersLists[m];return B=new t.MouseTracker.GesturePointList(g),u.activePointersLists.push(B),B},getActivePointerCount:function(){var g=i[this.hash],u,m=g.activePointersLists.length,v=0;for(u=0;u<m;u++)v+=g.activePointersLists[u].getLength();return v},enterHandler:function(){},exitHandler: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(){}},t.MouseTracker.resetAllMouseTrackers=function(){for(var g=0;g<e.length;g++)e[g].isTracking()&&(e[g].setTracking(!1),e[g].setTracking(!0))},t.MouseTracker.gesturePointVelocityTracker=function(){var g=[],u=0,m=0,v=function(k,J){return k.hash.toString()+J.type+J.id.toString()},B=function(){var k,J=g.length,te,ie,de=t.now(),ee,Je,Qe;for(ee=de-m,m=de,k=0;k<J;k++)te=g[k],ie=te.gPoint,ie.direction=Math.atan2(ie.currentPos.y-te.lastPos.y,ie.currentPos.x-te.lastPos.x),Je=te.lastPos.distanceTo(ie.currentPos),te.lastPos=ie.currentPos,Qe=1e3*Je/(ee+1),ie.speed=.75*Qe+.25*ie.speed},W=function(k,J){var te=v(k,J);g.push({guid:te,gPoint:J,lastPos:J.currentPos}),g.length===1&&(m=t.now(),u=window.setInterval(B,50))},F=function(k,J){var te=v(k,J),ie,de=g.length;for(ie=0;ie<de;ie++)if(g[ie].guid===te){g.splice(ie,1),de--,de===0&&window.clearInterval(u);break}};return{addPoint:W,removePoint:F}}(),t.MouseTracker.captureElement=document,t.MouseTracker.wheelEventName=t.Browser.vendor==t.BROWSERS.IE&&t.Browser.version>8||"onwheel"in document.createElement("div")?"wheel":document.onmousewheel!==void 0?"mousewheel":"DOMMouseScroll",t.MouseTracker.supportsMouseCapture=function(){var g=document.createElement("div");return t.isFunction(g.setCapture)&&t.isFunction(g.releaseCapture)}(),t.MouseTracker.subscribeEvents=["click","dblclick","keydown","keyup","keypress","focus","blur",t.MouseTracker.wheelEventName],t.MouseTracker.wheelEventName=="DOMMouseScroll"&&t.MouseTracker.subscribeEvents.push("MozMousePixelScroll"),window.PointerEvent&&(window.navigator.pointerEnabled||t.Browser.vendor!==t.BROWSERS.IE)?(t.MouseTracker.havePointerEvents=!0,t.MouseTracker.subscribeEvents.push("pointerover","pointerout","pointerdown","pointerup","pointermove","pointercancel"),t.MouseTracker.unprefixedPointerEvents=!0,navigator.maxTouchPoints?t.MouseTracker.maxTouchPoints=navigator.maxTouchPoints:t.MouseTracker.maxTouchPoints=0,t.MouseTracker.haveMouseEnter=!1):window.MSPointerEvent&&window.navigator.msPointerEnabled?(t.MouseTracker.havePointerEvents=!0,t.MouseTracker.subscribeEvents.push("MSPointerOver","MSPointerOut","MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel"),t.MouseTracker.unprefixedPointerEvents=!1,navigator.msMaxTouchPoints?t.MouseTracker.maxTouchPoints=navigator.msMaxTouchPoints:t.MouseTracker.maxTouchPoints=0,t.MouseTracker.haveMouseEnter=!1):(t.MouseTracker.havePointerEvents=!1,t.Browser.vendor===t.BROWSERS.IE&&t.Browser.version<9?(t.MouseTracker.subscribeEvents.push("mouseenter","mouseleave"),t.MouseTracker.haveMouseEnter=!0):(t.MouseTracker.subscribeEvents.push("mouseover","mouseout"),t.MouseTracker.haveMouseEnter=!1),t.MouseTracker.subscribeEvents.push("mousedown","mouseup","mousemove"),"ontouchstart"in window&&t.MouseTracker.subscribeEvents.push("touchstart","touchend","touchmove","touchcancel"),"ongesturestart"in window&&t.MouseTracker.subscribeEvents.push("gesturestart","gesturechange"),t.MouseTracker.mousePointerId="legacy-mouse",t.MouseTracker.maxTouchPoints=10),t.MouseTracker.GesturePointList=function(g){this._gPoints=[],this.type=g,this.buttons=0,this.contacts=0,this.clicks=0,this.captureCount=0},t.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){var u,m=this._gPoints.length;for(u=0;u<m;u++)if(this._gPoints[u].id===g){this._gPoints.splice(u,1);break}return this._gPoints.length},getByIndex:function(g){return g<this._gPoints.length?this._gPoints[g]:null},getById:function(g){var u,m=this._gPoints.length;for(u=0;u<m;u++)if(this._gPoints[u].id===g)return this._gPoints[u];return null},getPrimary:function(g){var u,m=this._gPoints.length;for(u=0;u<m;u++)if(this._gPoints[u].isPrimary)return this._gPoints[u];return null},addContact:function(){++this.contacts,this.contacts>1&&(this.type==="mouse"||this.type==="pen")&&(this.contacts=1)},removeContact:function(){--this.contacts,this.contacts<0&&(this.contacts=0)}};function n(g){var u=i[g.hash],m,v=u.activePointersLists.length;for(m=0;m<v;m++)u.activePointersLists[m].captureCount>0&&(t.removeEvent(t.MouseTracker.captureElement,"mousemove",u.mousemovecaptured,!0),t.removeEvent(t.MouseTracker.captureElement,"mouseup",u.mouseupcaptured,!0),t.removeEvent(t.MouseTracker.captureElement,t.MouseTracker.unprefixedPointerEvents?"pointermove":"MSPointerMove",u.pointermovecaptured,!0),t.removeEvent(t.MouseTracker.captureElement,t.MouseTracker.unprefixedPointerEvents?"pointerup":"MSPointerUp",u.pointerupcaptured,!0),t.removeEvent(t.MouseTracker.captureElement,"touchmove",u.touchmovecaptured,!0),t.removeEvent(t.MouseTracker.captureElement,"touchend",u.touchendcaptured,!0),u.activePointersLists[m].captureCount=0);for(m=0;m<v;m++)u.activePointersLists.pop()}function s(g){var u=i[g.hash],m,v;if(!u.tracking){for(v=0;v<t.MouseTracker.subscribeEvents.length;v++)m=t.MouseTracker.subscribeEvents[v],t.addEvent(g.element,m,u[m],!1);n(g),u.tracking=!0}}function o(g){var u=i[g.hash],m,v;if(u.tracking){for(v=0;v<t.MouseTracker.subscribeEvents.length;v++)m=t.MouseTracker.subscribeEvents[v],t.removeEvent(g.element,m,u[m],!1);n(g),u.tracking=!1}}function a(g,u){var m=i[g.hash];if(u==="pointerevent")return{upName:t.MouseTracker.unprefixedPointerEvents?"pointerup":"MSPointerUp",upHandler:m.pointerupcaptured,moveName:t.MouseTracker.unprefixedPointerEvents?"pointermove":"MSPointerMove",moveHandler:m.pointermovecaptured};if(u==="mouse")return{upName:"mouseup",upHandler:m.mouseupcaptured,moveName:"mousemove",moveHandler:m.mousemovecaptured};if(u==="touch")return{upName:"touchend",upHandler:m.touchendcaptured,moveName:"touchmove",moveHandler:m.touchmovecaptured};throw new Error("MouseTracker.getCaptureEventParams: Unknown pointer type.")}function r(g,u,m){var v=g.getActivePointersListByType(u),B;v.captureCount+=m||1,v.captureCount===1&&(t.Browser.vendor===t.BROWSERS.IE&&t.Browser.version<9?g.element.setCapture(!0):(B=a(g,t.MouseTracker.havePointerEvents?"pointerevent":u),It&&Ot(window.top)&&t.addEvent(window.top,B.upName,B.upHandler,!0),t.addEvent(t.MouseTracker.captureElement,B.upName,B.upHandler,!0),t.addEvent(t.MouseTracker.captureElement,B.moveName,B.moveHandler,!0)))}function c(g,u,m){var v=g.getActivePointersListByType(u),B;v.captureCount-=m||1,v.captureCount===0&&(t.Browser.vendor===t.BROWSERS.IE&&t.Browser.version<9?g.element.releaseCapture():(B=a(g,t.MouseTracker.havePointerEvents?"pointerevent":u),It&&Ot(window.top)&&t.removeEvent(window.top,B.upName,B.upHandler,!0),t.removeEvent(t.MouseTracker.captureElement,B.moveName,B.moveHandler,!0),t.removeEvent(t.MouseTracker.captureElement,B.upName,B.upHandler,!0)))}function d(g){var u;if(t.MouseTracker.unprefixedPointerEvents)u=g.pointerType;else switch(g.pointerType){case 2:u="touch";break;case 3:u="pen";break;case 4:u="mouse";break;default:u=""}return u}function p(g){return t.getMousePosition(g)}function w(g,u){return y(p(g),u)}function y(g,u){var m=t.getElementOffset(u);return g.minus(m)}function R(g,u){return new t.Point((g.x+u.x)/2,(g.y+u.y)/2)}function b(g,u){g.clickHandler&&t.cancelEvent(u)}function N(g,u){g.dblClickHandler&&t.cancelEvent(u)}function h(g,u){var m;g.keyDownHandler&&(u=t.getEvent(u),m=g.keyDownHandler({eventSource:g,keyCode:u.keyCode?u.keyCode:u.charCode,ctrl:u.ctrlKey,shift:u.shiftKey,alt:u.altKey,meta:u.metaKey,originalEvent:u,preventDefaultAction:!1,userData:g.userData}),m||t.cancelEvent(u))}function x(g,u){var m;g.keyUpHandler&&(u=t.getEvent(u),m=g.keyUpHandler({eventSource:g,keyCode:u.keyCode?u.keyCode:u.charCode,ctrl:u.ctrlKey,shift:u.shiftKey,alt:u.altKey,meta:u.metaKey,originalEvent:u,preventDefaultAction:!1,userData:g.userData}),m||t.cancelEvent(u))}function T(g,u){var m;g.keyHandler&&(u=t.getEvent(u),m=g.keyHandler({eventSource:g,keyCode:u.keyCode?u.keyCode:u.charCode,ctrl:u.ctrlKey,shift:u.shiftKey,alt:u.altKey,meta:u.metaKey,originalEvent:u,preventDefaultAction:!1,userData:g.userData}),m||t.cancelEvent(u))}function S(g,u){var m;g.focusHandler&&(u=t.getEvent(u),m=g.focusHandler({eventSource:g,originalEvent:u,preventDefaultAction:!1,userData:g.userData}),m===!1&&t.cancelEvent(u))}function P(g,u){var m;g.blurHandler&&(u=t.getEvent(u),m=g.blurHandler({eventSource:g,originalEvent:u,preventDefaultAction:!1,userData:g.userData}),m===!1&&t.cancelEvent(u))}function O(g,u){L(g,u,u)}function M(g,u){u=t.getEvent(u);var m={target:u.target||u.srcElement,type:"wheel",shiftKey:u.shiftKey||!1,clientX:u.clientX,clientY:u.clientY,pageX:u.pageX?u.pageX:u.clientX,pageY:u.pageY?u.pageY:u.clientY,deltaMode:u.type=="MozMousePixelScroll"?0:1,deltaX:0,deltaZ:0};t.MouseTracker.wheelEventName=="mousewheel"?m.deltaY=-u.wheelDelta/t.DEFAULT_SETTINGS.pixelsPerWheelLine:m.deltaY=u.detail,L(g,m,u)}function L(g,u,m){var v=0,B;v=u.deltaY<0?1:-1,g.scrollHandler&&(B=g.scrollHandler({eventSource:g,pointerType:"mouse",position:w(u,g.element),scroll:v,shift:u.shiftKey,isTouchEvent:!1,originalEvent:m,preventDefaultAction:!1,userData:g.userData}),B===!1&&t.cancelEvent(m))}function U(g,u){if(g===u)return!1;for(;u&&u!==g;)u=u.parentNode;return u===g}function Q(g,u){u=t.getEvent(u),Y(g,u)}function V(g,u){u=t.getEvent(u),!(u.currentTarget===u.relatedTarget||U(u.currentTarget,u.relatedTarget))&&Y(g,u)}function Y(g,u){var m={id:t.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:p(u),currentTime:t.now()};we(g,u,[m])}function X(g,u){u=t.getEvent(u),re(g,u)}function oe(g,u){u=t.getEvent(u),!(u.currentTarget===u.relatedTarget||U(u.currentTarget,u.relatedTarget))&&re(g,u)}function re(g,u){var m={id:t.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:p(u),currentTime:t.now()};Ee(g,u,[m])}function le(g){return t.Browser.vendor===t.BROWSERS.IE&&t.Browser.version<9?g===1?0:g===2?2:g===4?1:-1:g}function se(g,u){var m;u=t.getEvent(u),m={id:t.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:p(u),currentTime:t.now()},lt(g,u,[m],le(u.button))&&(t.stopEvent(u),r(g,"mouse")),(g.clickHandler||g.dblClickHandler||g.pressHandler||g.dragHandler||g.dragEndHandler)&&t.cancelEvent(u)}function G(g,u){Oe(g,u)}function pe(g,u){Oe(g,u),t.stopEvent(u)}function Oe(g,u){var m;u=t.getEvent(u),m={id:t.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:p(u),currentTime:t.now()},Xe(g,u,[m],le(u.button))&&c(g,"mouse")}function Me(g,u){Te(g,u)}function ke(g,u){Te(g,u),t.stopEvent(u)}function Te(g,u){var m;u=t.getEvent(u),m={id:t.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:p(u),currentTime:t.now()},ht(g,u,[m])}function Ae(g,u,m){var v,B=m.getLength(),W=[];if(m.type==="touch"||m.contacts>0){for(v=0;v<B;v++)W.push(m.getByIndex(v));W.length>0&&(Xe(g,u,W,0),m.captureCount=1,c(g,m.type),Ee(g,u,W))}}function be(g,u){var m,v,B,W=u.changedTouches.length,F=[],k,J=g.getActivePointersListByType("touch");for(m=t.now(),J.getLength()>u.touches.length-W&&(t.console.warn("Tracked touch contact count doesn't match event.touches.length. Removing all tracked touch pointers."),Ae(g,u,J)),v=0;v<W;v++)F.push({id:u.changedTouches[v].identifier,type:"touch",currentPos:p(u.changedTouches[v]),currentTime:m});for(we(g,u,F),v=0;v<e.length;v++)if(e[v]!==g&&e[v].isTracking()&&U(e[v].element,g.element)){for(k=[],B=0;B<W;B++)k.push({id:u.changedTouches[B].identifier,type:"touch",currentPos:p(u.changedTouches[B]),currentTime:m});we(e[v],u,k)}lt(g,u,F,0)&&(t.stopEvent(u),r(g,"touch",W)),t.cancelEvent(u)}function We(g,u){ze(g,u)}function Ue(g,u){ze(g,u),t.stopEvent(u)}function ze(g,u){var m,v,B,W=u.changedTouches.length,F=[],k;for(m=t.now(),v=0;v<W;v++)F.push({id:u.changedTouches[v].identifier,type:"touch",currentPos:p(u.changedTouches[v]),currentTime:m});for(Xe(g,u,F,0)&&c(g,"touch",W),Ee(g,u,F),v=0;v<e.length;v++)if(e[v]!==g&&e[v].isTracking()&&U(e[v].element,g.element)){for(k=[],B=0;B<W;B++)k.push({id:u.changedTouches[B].identifier,type:"touch",currentPos:p(u.changedTouches[B]),currentTime:m});Ee(e[v],u,k)}t.cancelEvent(u)}function je(g,u){Ve(g,u)}function Ze(g,u){Ve(g,u),t.stopEvent(u)}function Ve(g,u){var m,v=u.changedTouches.length,B=[];for(m=0;m<v;m++)B.push({id:u.changedTouches[m].identifier,type:"touch",currentPos:p(u.changedTouches[m]),currentTime:t.now()});ht(g,u,B),t.cancelEvent(u)}function Be(g,u){var m=g.getActivePointersListByType("touch");Ae(g,u,m)}function qe(g,u){return u.stopPropagation(),u.preventDefault(),!1}function l(g,u){return u.stopPropagation(),u.preventDefault(),!1}function f(g,u){var m;u.currentTarget===u.relatedTarget||U(u.currentTarget,u.relatedTarget)||(m={id:u.pointerId,type:d(u),isPrimary:u.isPrimary,currentPos:p(u),currentTime:t.now()},we(g,u,[m]))}function C(g,u){var m;u.currentTarget===u.relatedTarget||U(u.currentTarget,u.relatedTarget)||(m={id:u.pointerId,type:d(u),isPrimary:u.isPrimary,currentPos:p(u),currentTime:t.now()},Ee(g,u,[m]))}function A(g,u){var m;m={id:u.pointerId,type:d(u),isPrimary:u.isPrimary,currentPos:p(u),currentTime:t.now()},lt(g,u,[m],u.button)&&(t.stopEvent(u),r(g,m.type)),(g.clickHandler||g.dblClickHandler||g.pressHandler||g.dragHandler||g.dragEndHandler||g.pinchHandler)&&t.cancelEvent(u)}function H(g,u){_(g,u)}function D(g,u){var m=g.getActivePointersListByType(d(u));m.getById(u.pointerId)&&_(g,u),t.stopEvent(u)}function _(g,u){var m;m={id:u.pointerId,type:d(u),isPrimary:u.isPrimary,currentPos:p(u),currentTime:t.now()},Xe(g,u,[m],u.button)&&c(g,m.type)}function z(g,u){K(g,u)}function q(g,u){var m=g.getActivePointersListByType(d(u));m.getById(u.pointerId)&&K(g,u),t.stopEvent(u)}function K(g,u){var m;m={id:u.pointerId,type:d(u),isPrimary:u.isPrimary,currentPos:p(u),currentTime:t.now()},ht(g,u,[m])}function Z(g,u){var m;m={id:u.pointerId,type:d(u)},ai(g,u,[m])}function ce(g,u){return Object.prototype.hasOwnProperty.call(u,"isPrimary")||(g.getLength()===0?u.isPrimary=!0:u.isPrimary=!1),u.speed=0,u.direction=0,u.contactPos=u.currentPos,u.contactTime=u.currentTime,u.lastPos=u.currentPos,u.lastTime=u.currentTime,g.add(u)}function ne(g,u){var m,v;return g.getById(u.id)?(m=g.removeById(u.id),Object.prototype.hasOwnProperty.call(u,"isPrimary")||(v=g.getPrimary(),v||(v=g.getByIndex(0),v&&(v.isPrimary=!0)))):m=g.getLength(),m}function we(g,u,m){var v=g.getActivePointersListByType(m[0].type),B,W=m.length,F,k,J;for(B=0;B<W;B++)F=m[B],k=v.getById(F.id),k?(k.insideElement=!0,k.lastPos=k.currentPos,k.lastTime=k.currentTime,k.currentPos=F.currentPos,k.currentTime=F.currentTime,F=k):(F.captured=!1,F.insideElementPressed=!1,F.insideElement=!0,ce(v,F)),g.enterHandler&&(J=g.enterHandler({eventSource:g,pointerType:F.type,position:y(F.currentPos,g.element),buttons:v.buttons,pointers:g.getActivePointerCount(),insideElementPressed:F.insideElementPressed,buttonDownAny:v.buttons!==0,isTouchEvent:F.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),J===!1&&t.cancelEvent(u))}function Ee(g,u,m){var v=g.getActivePointersListByType(m[0].type),B,W=m.length,F,k,J;for(B=0;B<W;B++)F=m[B],k=v.getById(F.id),k&&(k.captured?(k.insideElement=!1,k.lastPos=k.currentPos,k.lastTime=k.currentTime,k.currentPos=F.currentPos,k.currentTime=F.currentTime):ne(v,k),F=k),g.exitHandler&&(J=g.exitHandler({eventSource:g,pointerType:F.type,position:F.currentPos&&y(F.currentPos,g.element),buttons:v.buttons,pointers:g.getActivePointerCount(),insideElementPressed:k?k.insideElementPressed:!1,buttonDownAny:v.buttons!==0,isTouchEvent:F.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),J===!1&&t.cancelEvent(u))}function lt(g,u,m,v){var B=i[g.hash],W,F=g.getActivePointersListByType(m[0].type),k,J=m.length,te,ie;typeof u.buttons!="undefined"?F.buttons=u.buttons:t.Browser.vendor===t.BROWSERS.IE&&t.Browser.version<9?v===0?F.buttons+=1:v===1?F.buttons+=4:v===2?F.buttons+=2:v===3?F.buttons+=8:v===4?F.buttons+=16:v===5&&(F.buttons+=32):v===0?F.buttons|=1:v===1?F.buttons|=4:v===2?F.buttons|=2:v===3?F.buttons|=8:v===4?F.buttons|=16:v===5&&(F.buttons|=32);var de=g.getActivePointersListsExceptType(m[0].type);for(k=0;k<de.length;k++)Ae(g,u,de[k]);if(v!==0)return g.nonPrimaryPressHandler&&(W=g.nonPrimaryPressHandler({eventSource:g,pointerType:m[0].type,position:y(m[0].currentPos,g.element),button:v,buttons:F.buttons,isTouchEvent:m[0].type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),W===!1&&t.cancelEvent(u)),!1;for(k=0;k<J;k++)te=m[k],ie=F.getById(te.id),ie?(ie.captured=!0,ie.insideElementPressed=!0,ie.insideElement=!0,ie.contactPos=te.currentPos,ie.contactTime=te.currentTime,ie.lastPos=ie.currentPos,ie.lastTime=ie.currentTime,ie.currentPos=te.currentPos,ie.currentTime=te.currentTime,te=ie):(te.captured=!0,te.insideElementPressed=!0,te.insideElement=!0,ce(F,te)),F.addContact(),(g.dragHandler||g.dragEndHandler||g.pinchHandler)&&t.MouseTracker.gesturePointVelocityTracker.addPoint(g,te),F.contacts===1?g.pressHandler&&(W=g.pressHandler({eventSource:g,pointerType:te.type,position:y(te.contactPos,g.element),buttons:F.buttons,isTouchEvent:te.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),W===!1&&t.cancelEvent(u)):F.contacts===2&&g.pinchHandler&&te.type==="touch"&&(B.pinchGPoints=F.asArray(),B.lastPinchDist=B.currentPinchDist=B.pinchGPoints[0].currentPos.distanceTo(B.pinchGPoints[1].currentPos),B.lastPinchCenter=B.currentPinchCenter=R(B.pinchGPoints[0].currentPos,B.pinchGPoints[1].currentPos));return!0}function Xe(g,u,m,v){var B=i[g.hash],W=g.getActivePointersListByType(m[0].type),F,k,J,te,ie=m.length,de,ee,Je=!1,Qe=!1,ut;if(typeof u.buttons!="undefined"?W.buttons=u.buttons:t.Browser.vendor===t.BROWSERS.IE&&t.Browser.version<9?v===0?W.buttons-=1:v===1?W.buttons-=4:v===2?W.buttons-=2:v===3?W.buttons-=8:v===4?W.buttons-=16:v===5&&(W.buttons-=32):v===0?W.buttons^=~1:v===1?W.buttons^=~4:v===2?W.buttons^=~2:v===3?W.buttons^=~8:v===4?W.buttons^=~16:v===5&&(W.buttons^=~32),v!==0){g.nonPrimaryReleaseHandler&&(F=g.nonPrimaryReleaseHandler({eventSource:g,pointerType:m[0].type,position:y(m[0].currentPos,g.element),button:v,buttons:W.buttons,isTouchEvent:m[0].type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),F===!1&&t.cancelEvent(u));var hi=g.getActivePointersListByType("mouse");return Ae(g,u,hi),!1}if(typeof m[0].currentPos=="undefined")return Ae(g,u,W),!1;for(te=0;te<ie;te++)de=m[te],ee=W.getById(de.id),ee&&(ee.captured&&(ee.captured=!1,Je=!0,Qe=!0),ee.lastPos=ee.currentPos,ee.lastTime=ee.currentTime,ee.currentPos=de.currentPos,ee.currentTime=de.currentTime,ee.insideElement||ne(W,ee),k=ee.currentPos,J=ee.currentTime,Qe?(W.removeContact(),(g.dragHandler||g.dragEndHandler||g.pinchHandler)&&t.MouseTracker.gesturePointVelocityTracker.removePoint(g,ee),W.contacts===0?(g.releaseHandler&&(F=g.releaseHandler({eventSource:g,pointerType:ee.type,position:y(k,g.element),buttons:W.buttons,insideElementPressed:ee.insideElementPressed,insideElementReleased:ee.insideElement,isTouchEvent:ee.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),F===!1&&t.cancelEvent(u)),g.dragEndHandler&&!ee.currentPos.equals(ee.contactPos)&&(F=g.dragEndHandler({eventSource:g,pointerType:ee.type,position:y(ee.currentPos,g.element),speed:ee.speed,direction:ee.direction,shift:u.shiftKey,isTouchEvent:ee.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),F===!1&&t.cancelEvent(u)),(g.clickHandler||g.dblClickHandler)&&ee.insideElement&&(ut=J-ee.contactTime<=g.clickTimeThreshold&&ee.contactPos.distanceTo(k)<=g.clickDistThreshold,g.clickHandler&&(F=g.clickHandler({eventSource:g,pointerType:ee.type,position:y(ee.currentPos,g.element),quick:ut,shift:u.shiftKey,isTouchEvent:ee.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),F===!1&&t.cancelEvent(u)),g.dblClickHandler&&ut&&(W.clicks++,W.clicks===1?(B.lastClickPos=k,B.dblClickTimeOut=setTimeout(function(){W.clicks=0},g.dblClickTimeThreshold)):W.clicks===2&&(clearTimeout(B.dblClickTimeOut),W.clicks=0,B.lastClickPos.distanceTo(k)<=g.dblClickDistThreshold&&(F=g.dblClickHandler({eventSource:g,pointerType:ee.type,position:y(ee.currentPos,g.element),shift:u.shiftKey,isTouchEvent:ee.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),F===!1&&t.cancelEvent(u)),B.lastClickPos=null)))):W.contacts===2&&g.pinchHandler&&ee.type==="touch"&&(B.pinchGPoints=W.asArray(),B.lastPinchDist=B.currentPinchDist=B.pinchGPoints[0].currentPos.distanceTo(B.pinchGPoints[1].currentPos),B.lastPinchCenter=B.currentPinchCenter=R(B.pinchGPoints[0].currentPos,B.pinchGPoints[1].currentPos))):g.releaseHandler&&(F=g.releaseHandler({eventSource:g,pointerType:ee.type,position:y(k,g.element),buttons:W.buttons,insideElementPressed:ee.insideElementPressed,insideElementReleased:ee.insideElement,isTouchEvent:ee.type==="touch",originalEvent:u,preventDefaultAction:!1,userData:g.userData}),F===!1&&t.cancelEvent(u)));return Je}function ht(g,u,m){var v=i[g.hash],B=g.getActivePointersListByType(m[0].type),W,F=m.length,k,J,te,ie,de;for(typeof u.buttons!="undefined"&&(B.buttons=u.buttons),W=0;W<F;W++)k=m[W],J=B.getById(k.id),J?(Object.prototype.hasOwnProperty.call(k,"isPrimary")&&(J.isPrimary=k.isPrimary),J.lastPos=J.currentPos,J.lastTime=J.currentTime,J.currentPos=k.current