-proto.hasEventListeners = proto.listens;
-
-L.Mixin = {Events: proto};
-
-
-
-/*
- * @namespace Browser
- * @aka L.Browser
- *
- * A namespace with static properties for browser/feature detection used by Leaflet internally.
- *
- * @example
- *
- * ```js
- * if (L.Browser.ielt9) {
- * alert('Upgrade your browser, dude!');
- * }
- * ```
- */
-
-(function () {
-
- var ua = navigator.userAgent.toLowerCase(),
- doc = document.documentElement,
-
- ie = 'ActiveXObject' in window,
-
- webkit = ua.indexOf('webkit') !== -1,
- phantomjs = ua.indexOf('phantom') !== -1,
- android23 = ua.search('android [23]') !== -1,
- chrome = ua.indexOf('chrome') !== -1,
- gecko = ua.indexOf('gecko') !== -1 && !webkit && !window.opera && !ie,
-
- win = navigator.platform.indexOf('Win') === 0,
-
- mobile = typeof orientation !== 'undefined' || ua.indexOf('mobile') !== -1,
- msPointer = !window.PointerEvent && window.MSPointerEvent,
- pointer = window.PointerEvent || msPointer,
-
- ie3d = ie && ('transition' in doc.style),
- webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23,
- gecko3d = 'MozPerspective' in doc.style,
- opera12 = 'OTransition' in doc.style;
-
-
- var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||
- (window.DocumentTouch && document instanceof window.DocumentTouch));
-
- L.Browser = {
-
- // @property ie: Boolean
- // `true` for all Internet Explorer versions (not Edge).
- ie: ie,
-
- // @property ielt9: Boolean
- // `true` for Internet Explorer versions less than 9.
- ielt9: ie && !document.addEventListener,
-
- // @property edge: Boolean
- // `true` for the Edge web browser.
- edge: 'msLaunchUri' in navigator && !('documentMode' in document),
-
- // @property webkit: Boolean
- // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).
- webkit: webkit,
-
- // @property gecko: Boolean
- // `true` for gecko-based browsers like Firefox.
- gecko: gecko,
-
- // @property android: Boolean
- // `true` for any browser running on an Android platform.
- android: ua.indexOf('android') !== -1,
-
- // @property android23: Boolean
- // `true` for browsers running on Android 2 or Android 3.
- android23: android23,
-
- // @property chrome: Boolean
- // `true` for the Chrome browser.
- chrome: chrome,
-
- // @property safari: Boolean
- // `true` for the Safari browser.
- safari: !chrome && ua.indexOf('safari') !== -1,
-
-
- // @property win: Boolean
- // `true` when the browser is running in a Windows platform
- win: win,
-
-
- // @property ie3d: Boolean
- // `true` for all Internet Explorer versions supporting CSS transforms.
- ie3d: ie3d,
-
- // @property webkit3d: Boolean
- // `true` for webkit-based browsers supporting CSS transforms.
- webkit3d: webkit3d,
-
- // @property gecko3d: Boolean
- // `true` for gecko-based browsers supporting CSS transforms.
- gecko3d: gecko3d,
-
- // @property opera12: Boolean
- // `true` for the Opera browser supporting CSS transforms (version 12 or later).
- opera12: opera12,
-
- // @property any3d: Boolean
- // `true` for all browsers supporting CSS transforms.
- any3d: !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantomjs,
-
-
- // @property mobile: Boolean
- // `true` for all browsers running in a mobile device.
- mobile: mobile,
-
- // @property mobileWebkit: Boolean
- // `true` for all webkit-based browsers in a mobile device.
- mobileWebkit: mobile && webkit,
-
- // @property mobileWebkit3d: Boolean
- // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.
- mobileWebkit3d: mobile && webkit3d,
-
- // @property mobileOpera: Boolean
- // `true` for the Opera browser in a mobile device.
- mobileOpera: mobile && window.opera,
-
- // @property mobileGecko: Boolean
- // `true` for gecko-based browsers running in a mobile device.
- mobileGecko: mobile && gecko,
-
-
- // @property touch: Boolean
- // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).
- // This does not necessarily mean that the browser is running in a computer with
- // a touchscreen, it only means that the browser is capable of understanding
- // touch events.
- touch: !!touch,
-
- // @property msPointer: Boolean
- // `true` for browsers implementing the Microsoft touch events model (notably IE10).
- msPointer: !!msPointer,
-
- // @property pointer: Boolean
- // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).
- pointer: !!pointer,
-
-
- // @property retina: Boolean
- // `true` for browsers on a high-resolution "retina" screen.
- retina: (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1
- };
-
-}());
-