From 179e08aa059454720ab8a2720dc0fb90b3512818 Mon Sep 17 00:00:00 2001 From: Sachin Dharmapurikar Date: Sat, 10 Oct 2015 01:57:49 +0530 Subject: [PATCH] Upgraded to 0.7.5 version of leafletjs diff --git a/vendor/assets/javascripts/leaflet.js.erb b/vendor/assets/javascripts/leaflet.js.erb index d20ae15..7fa4051 100644 --- a/vendor/assets/javascripts/leaflet.js.erb +++ b/vendor/assets/javascripts/leaflet.js.erb @@ -12,7 +12,7 @@ var oldL = window.L, L = {}; -L.version = '0.7.3'; +L.version = '0.7.5'; // define Leaflet for Node module pattern loaders, including Browserify if (typeof module === 'object' && typeof module.exports === 'object') { @@ -524,8 +524,7 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent; gecko = ua.indexOf('gecko') !== -1, mobile = typeof orientation !== undefined + '', - msPointer = window.navigator && window.navigator.msPointerEnabled && - window.navigator.msMaxTouchPoints && !window.PointerEvent, + msPointer = !window.PointerEvent && window.MSPointerEvent, pointer = (window.PointerEvent && window.navigator.pointerEnabled && window.navigator.maxTouchPoints) || msPointer, retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) || @@ -539,38 +538,8 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent; opera3d = 'OTransition' in doc.style, any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs; - - // PhantomJS has 'ontouchstart' in document.documentElement, but doesn't actually support touch. - // https://github.com/Leaflet/Leaflet/pull/1434#issuecomment-13843151 - - var touch = !window.L_NO_TOUCH && !phantomjs && (function () { - - var startName = 'ontouchstart'; - - // IE10+ (We simulate these into touch* events in L.DomEvent and L.DomEvent.Pointer) or WebKit, etc. - if (pointer || (startName in doc)) { - return true; - } - - // Firefox/Gecko - var div = document.createElement('div'), - supported = false; - - if (!div.setAttribute) { - return false; - } - div.setAttribute(startName, 'return;'); - - if (typeof div[startName] === 'function') { - supported = true; - } - - div.removeAttribute(startName); - div = null; - - return supported; - }()); - + var touch = !window.L_NO_TOUCH && !phantomjs && (pointer || 'ontouchstart' in window || + (window.DocumentTouch && document instanceof window.DocumentTouch)); L.Browser = { ie: ie, @@ -1637,15 +1606,16 @@ L.Map = L.Class.extend({ var paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]), paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]), - zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)), - paddingOffset = paddingBR.subtract(paddingTL).divideBy(2), + zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)); + + zoom = (options.maxZoom) ? Math.min(options.maxZoom, zoom) : zoom; + + var paddingOffset = paddingBR.subtract(paddingTL).divideBy(2), swPoint = this.project(bounds.getSouthWest(), zoom), nePoint = this.project(bounds.getNorthEast(), zoom), center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom); - zoom = options && options.maxZoom ? Math.min(options.maxZoom, zoom) : zoom; - return this.setView(center, zoom, options); }, @@ -2787,7 +2757,7 @@ L.TileLayer = L.Class.extend({ } if (options.bounds) { - var tileSize = options.tileSize, + var tileSize = this._getTileSize(), nwPoint = tilePoint.multiplyBy(tileSize), sePoint = nwPoint.add([tileSize, tileSize]), nw = this._map.unproject(nwPoint), @@ -3449,6 +3419,8 @@ L.Icon.Default = L.Icon.extend({ } else { return "<%= asset_path('marker-icon.png') %>"; } + + return path + '/marker-' + name + '.png'; } }); @@ -3570,10 +3542,8 @@ L.Marker = L.Class.extend({ update: function () { if (this._icon) { - var pos = this._map.latLngToLayerPoint(this._latlng).round(); - this._setPos(pos); + this._setPos(this._map.latLngToLayerPoint(this._latlng).round()); } - return this; }, @@ -4231,6 +4201,7 @@ L.Marker.include({ if (content instanceof L.Popup) { L.setOptions(content, options); this._popup = content; + content._source = this; } else { this._popup = new L.Popup(options, this) .setContent(content); @@ -5086,7 +5057,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : } this._requestUpdate(); - + this.fire('remove'); this._map = null; }, @@ -5117,6 +5088,13 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : if (options.fill) { this._ctx.fillStyle = options.fillColor || options.color; } + + if (options.lineCap) { + this._ctx.lineCap = options.lineCap; + } + if (options.lineJoin) { + this._ctx.lineJoin = options.lineJoin; + } }, _drawPath: function () { @@ -5154,7 +5132,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : if (options.fill) { ctx.globalAlpha = options.fillOpacity; - ctx.fill(); + ctx.fill(options.fillRule || 'evenodd'); } if (options.stroke) { @@ -5169,15 +5147,14 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : _initEvents: function () { if (this.options.clickable) { - // TODO dblclick this._map.on('mousemove', this._onMouseMove, this); - this._map.on('click', this._onClick, this); + this._map.on('click dblclick contextmenu', this._fireMouseEvent, this); } }, - _onClick: function (e) { + _fireMouseEvent: function (e) { if (this._containsPoint(e.layerPoint)) { - this.fire('click', e); + this.fire(e.type, e); } }, @@ -8134,7 +8111,7 @@ L.Control.Attribution = L.Control.extend({ this.addAttribution(map._layers[i].getAttribution()); } } - + map .on('layeradd', this._onLayerAdd, this) .on('layerremove', this._onLayerRemove, this); @@ -8955,10 +8932,13 @@ L.Map.include(!L.DomUtil.TRANSITION ? {} : { delta: delta, backwards: backwards }); + // horrible hack to work around a Chrome bug https://github.com/Leaflet/Leaflet/issues/3689 + setTimeout(L.bind(this._onZoomTransitionEnd, this), 250); }, this); }, _onZoomTransitionEnd: function () { + if (!this._animatingZoom) { return; } this._animatingZoom = false; @@ -9004,6 +8984,11 @@ L.TileLayer.include({ // force reflow L.Util.falseFn(bg.offsetWidth); + var zoom = this._map.getZoom(); + if (zoom > this.options.maxZoom || zoom < this.options.minZoom) { + this._clearBgBuffer(); + } + this._animating = false; }, @@ -9180,4 +9165,4 @@ L.Map.include({ }); -}(window, document)); +}(window, document)); \ No newline at end of file diff --git a/vendor/assets/stylesheets/leaflet.css.erb b/vendor/assets/stylesheets/leaflet.css.erb index 3c106c1..733fcfc 100644 --- a/vendor/assets/stylesheets/leaflet.css.erb +++ b/vendor/assets/stylesheets/leaflet.css.erb @@ -14,49 +14,49 @@ .leaflet-zoom-box, .leaflet-image-layer, .leaflet-layer { - position: absolute; - left: 0; - top: 0; - } + position: absolute; + left: 0; + top: 0; + } .leaflet-container { - overflow: hidden; - -ms-touch-action: none; - } + overflow: hidden; + -ms-touch-action: none; + } .leaflet-tile, .leaflet-marker-icon, .leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } .leaflet-marker-icon, .leaflet-marker-shadow { - display: block; - } + display: block; + } /* map is broken in FF if you have max-width: 100% on tiles */ .leaflet-container img { - max-width: none !important; - } + max-width: none !important; + } /* stupid Android 2 doesn't understand "max-width: none" properly */ .leaflet-container img.leaflet-image-layer { - max-width: 15000px !important; - } + max-width: 15000px !important; + } .leaflet-tile { - filter: inherit; - visibility: hidden; - } + filter: inherit; + visibility: hidden; + } .leaflet-tile-loaded { - visibility: inherit; - } + visibility: inherit; + } .leaflet-zoom-box { - width: 0; - height: 0; - } + width: 0; + height: 0; + } /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ .leaflet-overlay-pane svg { - -moz-user-select: none; - } + -moz-user-select: none; + } .leaflet-tile-pane { z-index: 2; } .leaflet-objects-pane { z-index: 3; } @@ -66,413 +66,413 @@ .leaflet-popup-pane { z-index: 7; } .leaflet-vml-shape { - width: 1px; - height: 1px; - } + width: 1px; + height: 1px; + } .lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } /* control positioning */ .leaflet-control { - position: relative; - z-index: 7; - pointer-events: auto; - } + position: relative; + z-index: 7; + pointer-events: auto; + } .leaflet-top, .leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } + position: absolute; + z-index: 1000; + pointer-events: none; + } .leaflet-top { - top: 0; - } + top: 0; + } .leaflet-right { - right: 0; - } + right: 0; + } .leaflet-bottom { - bottom: 0; - } + bottom: 0; + } .leaflet-left { - left: 0; - } + left: 0; + } .leaflet-control { - float: left; - clear: both; - } + float: left; + clear: both; + } .leaflet-right .leaflet-control { - float: right; - } + float: right; + } .leaflet-top .leaflet-control { - margin-top: 10px; - } + margin-top: 10px; + } .leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } + margin-bottom: 10px; + } .leaflet-left .leaflet-control { - margin-left: 10px; - } + margin-left: 10px; + } .leaflet-right .leaflet-control { - margin-right: 10px; - } + margin-right: 10px; + } /* zoom and fade animations */ .leaflet-fade-anim .leaflet-tile, .leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - -o-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } .leaflet-fade-anim .leaflet-tile-loaded, .leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } + opacity: 1; + } .leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } .leaflet-zoom-anim .leaflet-tile, .leaflet-pan-anim .leaflet-tile, .leaflet-touching .leaflet-zoom-animated { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } .leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } + visibility: hidden; + } /* cursors */ .leaflet-clickable { - cursor: pointer; - } + cursor: pointer; + } .leaflet-container { - cursor: -webkit-grab; - cursor: -moz-grab; - } + cursor: -webkit-grab; + cursor: -moz-grab; + } .leaflet-popup-pane, .leaflet-control { - cursor: auto; - } + cursor: auto; + } .leaflet-dragging .leaflet-container, .leaflet-dragging .leaflet-clickable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - } + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } /* visual tweaks */ .leaflet-container { - background: #ddd; - outline: 0; - } + background: #ddd; + outline: 0; + } .leaflet-container a { - color: #0078A8; - } + color: #0078A8; + } .leaflet-container a.leaflet-active { - outline: 2px solid orange; - } + outline: 2px solid orange; + } .leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } /* general typography */ .leaflet-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; - } + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } /* general toolbar styles */ .leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } .leaflet-bar a, .leaflet-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } .leaflet-bar a, .leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } .leaflet-bar a:hover { - background-color: #f4f4f4; - } + background-color: #f4f4f4; + } .leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } .leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } .leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } .leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } + width: 30px; + height: 30px; + line-height: 30px; + } /* zoom control */ .leaflet-control-zoom-in, .leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } .leaflet-control-zoom-out { - font-size: 20px; - } + font-size: 20px; + } .leaflet-touch .leaflet-control-zoom-in { - font-size: 22px; - } + font-size: 22px; + } .leaflet-touch .leaflet-control-zoom-out { - font-size: 24px; - } + font-size: 24px; + } /* layers control */ .leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } .leaflet-control-layers-toggle { background-image: url(<%= asset_path 'layers.png' %>); - width: 36px; - height: 36px; - } + width: 36px; + height: 36px; + } .leaflet-retina .leaflet-control-layers-toggle { background-image: url(<%= asset_path 'layers-2x.png' %>); - background-size: 26px 26px; - } + background-size: 26px 26px; + } .leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } + width: 44px; + height: 44px; + } .leaflet-control-layers .leaflet-control-layers-list, .leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } + display: none; + } .leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } + display: block; + position: relative; + } .leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } .leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } + margin-top: 2px; + position: relative; + top: 1px; + } .leaflet-control-layers label { - display: block; - } + display: block; + } .leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } /* attribution and scale controls */ .leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } .leaflet-control-attribution, .leaflet-control-scale-line { - padding: 0 5px; - color: #333; - } + padding: 0 5px; + color: #333; + } .leaflet-control-attribution a { - text-decoration: none; - } + text-decoration: none; + } .leaflet-control-attribution a:hover { - text-decoration: underline; - } + text-decoration: underline; + } .leaflet-container .leaflet-control-attribution, .leaflet-container .leaflet-control-scale { - font-size: 11px; - } + font-size: 11px; + } .leaflet-left .leaflet-control-scale { - margin-left: 5px; - } + margin-left: 5px; + } .leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } + margin-bottom: 5px; + } .leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: content-box; - box-sizing: content-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); - } + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: content-box; + box-sizing: content-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } .leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } .leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } + border-bottom: 2px solid #777; + } .leaflet-touch .leaflet-control-attribution, .leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar { - box-shadow: none; - } + box-shadow: none; + } .leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } /* popup */ .leaflet-popup { - position: absolute; - text-align: center; - } + position: absolute; + text-align: center; + } .leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } + padding: 1px; + text-align: left; + border-radius: 12px; + } .leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; - } + margin: 13px 19px; + line-height: 1.4; + } .leaflet-popup-content p { - margin: 18px 0; - } + margin: 18px 0; + } .leaflet-popup-tip-container { - margin: 0 auto; - width: 40px; - height: 20px; - position: relative; - overflow: hidden; - } + margin: 0 auto; + width: 40px; + height: 20px; + position: relative; + overflow: hidden; + } .leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - } + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } .leaflet-popup-content-wrapper, .leaflet-popup-tip { - background: white; + background: white; - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } .leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; - } + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } .leaflet-container a.leaflet-popup-close-button:hover { - color: #999; - } + color: #999; + } .leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; - } + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } .leaflet-oldie .leaflet-popup-content-wrapper { - zoom: 1; - } + zoom: 1; + } .leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; + width: 24px; + margin: 0 auto; - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } .leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; - } + margin-top: -1px; + } .leaflet-oldie .leaflet-control-zoom, .leaflet-oldie .leaflet-control-layers, .leaflet-oldie .leaflet-popup-content-wrapper, .leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } + border: 1px solid #999; + } /* div icon */ .leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } + background: #fff; + border: 1px solid #666; + } --- vendor/assets/javascripts/leaflet.js.erb | 87 ++-- vendor/assets/stylesheets/leaflet.css.erb | 576 +++++++++++----------- 2 files changed, 324 insertions(+), 339 deletions(-) diff --git a/vendor/assets/javascripts/leaflet.js.erb b/vendor/assets/javascripts/leaflet.js.erb index d20ae15a..7fa40511 100644 --- a/vendor/assets/javascripts/leaflet.js.erb +++ b/vendor/assets/javascripts/leaflet.js.erb @@ -12,7 +12,7 @@ var oldL = window.L, L = {}; -L.version = '0.7.3'; +L.version = '0.7.5'; // define Leaflet for Node module pattern loaders, including Browserify if (typeof module === 'object' && typeof module.exports === 'object') { @@ -524,8 +524,7 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent; gecko = ua.indexOf('gecko') !== -1, mobile = typeof orientation !== undefined + '', - msPointer = window.navigator && window.navigator.msPointerEnabled && - window.navigator.msMaxTouchPoints && !window.PointerEvent, + msPointer = !window.PointerEvent && window.MSPointerEvent, pointer = (window.PointerEvent && window.navigator.pointerEnabled && window.navigator.maxTouchPoints) || msPointer, retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) || @@ -539,38 +538,8 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent; opera3d = 'OTransition' in doc.style, any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs; - - // PhantomJS has 'ontouchstart' in document.documentElement, but doesn't actually support touch. - // https://github.com/Leaflet/Leaflet/pull/1434#issuecomment-13843151 - - var touch = !window.L_NO_TOUCH && !phantomjs && (function () { - - var startName = 'ontouchstart'; - - // IE10+ (We simulate these into touch* events in L.DomEvent and L.DomEvent.Pointer) or WebKit, etc. - if (pointer || (startName in doc)) { - return true; - } - - // Firefox/Gecko - var div = document.createElement('div'), - supported = false; - - if (!div.setAttribute) { - return false; - } - div.setAttribute(startName, 'return;'); - - if (typeof div[startName] === 'function') { - supported = true; - } - - div.removeAttribute(startName); - div = null; - - return supported; - }()); - + var touch = !window.L_NO_TOUCH && !phantomjs && (pointer || 'ontouchstart' in window || + (window.DocumentTouch && document instanceof window.DocumentTouch)); L.Browser = { ie: ie, @@ -1637,15 +1606,16 @@ L.Map = L.Class.extend({ var paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]), paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]), - zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)), - paddingOffset = paddingBR.subtract(paddingTL).divideBy(2), + zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)); + + zoom = (options.maxZoom) ? Math.min(options.maxZoom, zoom) : zoom; + + var paddingOffset = paddingBR.subtract(paddingTL).divideBy(2), swPoint = this.project(bounds.getSouthWest(), zoom), nePoint = this.project(bounds.getNorthEast(), zoom), center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom); - zoom = options && options.maxZoom ? Math.min(options.maxZoom, zoom) : zoom; - return this.setView(center, zoom, options); }, @@ -2787,7 +2757,7 @@ L.TileLayer = L.Class.extend({ } if (options.bounds) { - var tileSize = options.tileSize, + var tileSize = this._getTileSize(), nwPoint = tilePoint.multiplyBy(tileSize), sePoint = nwPoint.add([tileSize, tileSize]), nw = this._map.unproject(nwPoint), @@ -3449,6 +3419,8 @@ L.Icon.Default = L.Icon.extend({ } else { return "<%= asset_path('marker-icon.png') %>"; } + + return path + '/marker-' + name + '.png'; } }); @@ -3570,10 +3542,8 @@ L.Marker = L.Class.extend({ update: function () { if (this._icon) { - var pos = this._map.latLngToLayerPoint(this._latlng).round(); - this._setPos(pos); + this._setPos(this._map.latLngToLayerPoint(this._latlng).round()); } - return this; }, @@ -4231,6 +4201,7 @@ L.Marker.include({ if (content instanceof L.Popup) { L.setOptions(content, options); this._popup = content; + content._source = this; } else { this._popup = new L.Popup(options, this) .setContent(content); @@ -5086,7 +5057,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : } this._requestUpdate(); - + this.fire('remove'); this._map = null; }, @@ -5117,6 +5088,13 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : if (options.fill) { this._ctx.fillStyle = options.fillColor || options.color; } + + if (options.lineCap) { + this._ctx.lineCap = options.lineCap; + } + if (options.lineJoin) { + this._ctx.lineJoin = options.lineJoin; + } }, _drawPath: function () { @@ -5154,7 +5132,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : if (options.fill) { ctx.globalAlpha = options.fillOpacity; - ctx.fill(); + ctx.fill(options.fillRule || 'evenodd'); } if (options.stroke) { @@ -5169,15 +5147,14 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path : _initEvents: function () { if (this.options.clickable) { - // TODO dblclick this._map.on('mousemove', this._onMouseMove, this); - this._map.on('click', this._onClick, this); + this._map.on('click dblclick contextmenu', this._fireMouseEvent, this); } }, - _onClick: function (e) { + _fireMouseEvent: function (e) { if (this._containsPoint(e.layerPoint)) { - this.fire('click', e); + this.fire(e.type, e); } }, @@ -8134,7 +8111,7 @@ L.Control.Attribution = L.Control.extend({ this.addAttribution(map._layers[i].getAttribution()); } } - + map .on('layeradd', this._onLayerAdd, this) .on('layerremove', this._onLayerRemove, this); @@ -8955,10 +8932,13 @@ L.Map.include(!L.DomUtil.TRANSITION ? {} : { delta: delta, backwards: backwards }); + // horrible hack to work around a Chrome bug https://github.com/Leaflet/Leaflet/issues/3689 + setTimeout(L.bind(this._onZoomTransitionEnd, this), 250); }, this); }, _onZoomTransitionEnd: function () { + if (!this._animatingZoom) { return; } this._animatingZoom = false; @@ -9004,6 +8984,11 @@ L.TileLayer.include({ // force reflow L.Util.falseFn(bg.offsetWidth); + var zoom = this._map.getZoom(); + if (zoom > this.options.maxZoom || zoom < this.options.minZoom) { + this._clearBgBuffer(); + } + this._animating = false; }, @@ -9180,4 +9165,4 @@ L.Map.include({ }); -}(window, document)); +}(window, document)); \ No newline at end of file diff --git a/vendor/assets/stylesheets/leaflet.css.erb b/vendor/assets/stylesheets/leaflet.css.erb index 3c106c1e..733fcfcd 100644 --- a/vendor/assets/stylesheets/leaflet.css.erb +++ b/vendor/assets/stylesheets/leaflet.css.erb @@ -14,49 +14,49 @@ .leaflet-zoom-box, .leaflet-image-layer, .leaflet-layer { - position: absolute; - left: 0; - top: 0; - } + position: absolute; + left: 0; + top: 0; + } .leaflet-container { - overflow: hidden; - -ms-touch-action: none; - } + overflow: hidden; + -ms-touch-action: none; + } .leaflet-tile, .leaflet-marker-icon, .leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } .leaflet-marker-icon, .leaflet-marker-shadow { - display: block; - } + display: block; + } /* map is broken in FF if you have max-width: 100% on tiles */ .leaflet-container img { - max-width: none !important; - } + max-width: none !important; + } /* stupid Android 2 doesn't understand "max-width: none" properly */ .leaflet-container img.leaflet-image-layer { - max-width: 15000px !important; - } + max-width: 15000px !important; + } .leaflet-tile { - filter: inherit; - visibility: hidden; - } + filter: inherit; + visibility: hidden; + } .leaflet-tile-loaded { - visibility: inherit; - } + visibility: inherit; + } .leaflet-zoom-box { - width: 0; - height: 0; - } + width: 0; + height: 0; + } /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ .leaflet-overlay-pane svg { - -moz-user-select: none; - } + -moz-user-select: none; + } .leaflet-tile-pane { z-index: 2; } .leaflet-objects-pane { z-index: 3; } @@ -66,413 +66,413 @@ .leaflet-popup-pane { z-index: 7; } .leaflet-vml-shape { - width: 1px; - height: 1px; - } + width: 1px; + height: 1px; + } .lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } /* control positioning */ .leaflet-control { - position: relative; - z-index: 7; - pointer-events: auto; - } + position: relative; + z-index: 7; + pointer-events: auto; + } .leaflet-top, .leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } + position: absolute; + z-index: 1000; + pointer-events: none; + } .leaflet-top { - top: 0; - } + top: 0; + } .leaflet-right { - right: 0; - } + right: 0; + } .leaflet-bottom { - bottom: 0; - } + bottom: 0; + } .leaflet-left { - left: 0; - } + left: 0; + } .leaflet-control { - float: left; - clear: both; - } + float: left; + clear: both; + } .leaflet-right .leaflet-control { - float: right; - } + float: right; + } .leaflet-top .leaflet-control { - margin-top: 10px; - } + margin-top: 10px; + } .leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } + margin-bottom: 10px; + } .leaflet-left .leaflet-control { - margin-left: 10px; - } + margin-left: 10px; + } .leaflet-right .leaflet-control { - margin-right: 10px; - } + margin-right: 10px; + } /* zoom and fade animations */ .leaflet-fade-anim .leaflet-tile, .leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - -o-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } .leaflet-fade-anim .leaflet-tile-loaded, .leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } + opacity: 1; + } .leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } .leaflet-zoom-anim .leaflet-tile, .leaflet-pan-anim .leaflet-tile, .leaflet-touching .leaflet-zoom-animated { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } .leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } + visibility: hidden; + } /* cursors */ .leaflet-clickable { - cursor: pointer; - } + cursor: pointer; + } .leaflet-container { - cursor: -webkit-grab; - cursor: -moz-grab; - } + cursor: -webkit-grab; + cursor: -moz-grab; + } .leaflet-popup-pane, .leaflet-control { - cursor: auto; - } + cursor: auto; + } .leaflet-dragging .leaflet-container, .leaflet-dragging .leaflet-clickable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - } + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } /* visual tweaks */ .leaflet-container { - background: #ddd; - outline: 0; - } + background: #ddd; + outline: 0; + } .leaflet-container a { - color: #0078A8; - } + color: #0078A8; + } .leaflet-container a.leaflet-active { - outline: 2px solid orange; - } + outline: 2px solid orange; + } .leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } /* general typography */ .leaflet-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; - } + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } /* general toolbar styles */ .leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } .leaflet-bar a, .leaflet-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } .leaflet-bar a, .leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } .leaflet-bar a:hover { - background-color: #f4f4f4; - } + background-color: #f4f4f4; + } .leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } .leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } .leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } .leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } + width: 30px; + height: 30px; + line-height: 30px; + } /* zoom control */ .leaflet-control-zoom-in, .leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } .leaflet-control-zoom-out { - font-size: 20px; - } + font-size: 20px; + } .leaflet-touch .leaflet-control-zoom-in { - font-size: 22px; - } + font-size: 22px; + } .leaflet-touch .leaflet-control-zoom-out { - font-size: 24px; - } + font-size: 24px; + } /* layers control */ .leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } .leaflet-control-layers-toggle { background-image: url(<%= asset_path 'layers.png' %>); - width: 36px; - height: 36px; - } + width: 36px; + height: 36px; + } .leaflet-retina .leaflet-control-layers-toggle { background-image: url(<%= asset_path 'layers-2x.png' %>); - background-size: 26px 26px; - } + background-size: 26px 26px; + } .leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } + width: 44px; + height: 44px; + } .leaflet-control-layers .leaflet-control-layers-list, .leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } + display: none; + } .leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } + display: block; + position: relative; + } .leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } .leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } + margin-top: 2px; + position: relative; + top: 1px; + } .leaflet-control-layers label { - display: block; - } + display: block; + } .leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } /* attribution and scale controls */ .leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } .leaflet-control-attribution, .leaflet-control-scale-line { - padding: 0 5px; - color: #333; - } + padding: 0 5px; + color: #333; + } .leaflet-control-attribution a { - text-decoration: none; - } + text-decoration: none; + } .leaflet-control-attribution a:hover { - text-decoration: underline; - } + text-decoration: underline; + } .leaflet-container .leaflet-control-attribution, .leaflet-container .leaflet-control-scale { - font-size: 11px; - } + font-size: 11px; + } .leaflet-left .leaflet-control-scale { - margin-left: 5px; - } + margin-left: 5px; + } .leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } + margin-bottom: 5px; + } .leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: content-box; - box-sizing: content-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); - } + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: content-box; + box-sizing: content-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } .leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } .leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } + border-bottom: 2px solid #777; + } .leaflet-touch .leaflet-control-attribution, .leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar { - box-shadow: none; - } + box-shadow: none; + } .leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } /* popup */ .leaflet-popup { - position: absolute; - text-align: center; - } + position: absolute; + text-align: center; + } .leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } + padding: 1px; + text-align: left; + border-radius: 12px; + } .leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; - } + margin: 13px 19px; + line-height: 1.4; + } .leaflet-popup-content p { - margin: 18px 0; - } + margin: 18px 0; + } .leaflet-popup-tip-container { - margin: 0 auto; - width: 40px; - height: 20px; - position: relative; - overflow: hidden; - } + margin: 0 auto; + width: 40px; + height: 20px; + position: relative; + overflow: hidden; + } .leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - } + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } .leaflet-popup-content-wrapper, .leaflet-popup-tip { - background: white; + background: white; - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } .leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; - } + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } .leaflet-container a.leaflet-popup-close-button:hover { - color: #999; - } + color: #999; + } .leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; - } + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } .leaflet-oldie .leaflet-popup-content-wrapper { - zoom: 1; - } + zoom: 1; + } .leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; + width: 24px; + margin: 0 auto; - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } .leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; - } + margin-top: -1px; + } .leaflet-oldie .leaflet-control-zoom, .leaflet-oldie .leaflet-control-layers, .leaflet-oldie .leaflet-popup-content-wrapper, .leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } + border: 1px solid #999; + } /* div icon */ .leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } + background: #fff; + border: 1px solid #666; + }