From aa1e051cfdcfdd7f409fec01f3db260ad5b7f443 Mon Sep 17 00:00:00 2001 From: Norbert Renner Date: Wed, 14 May 2014 16:01:20 +0200 Subject: [PATCH] update other libs --- bower_components/leaflet-gpx/.bower.json | 4 +- bower_components/leaflet-gpx/README.md | 25 +- bower_components/leaflet-gpx/gpx.js | 28 +- bower_components/leaflet-plugins/.bower.json | 10 +- bower_components/leaflet-plugins/.jshintrc | 11 + bower_components/leaflet-plugins/LICENSE | 2 +- .../leaflet-plugins/README.asciidoc | 2 +- .../leaflet-plugins/control/Distance.js | 7 +- .../leaflet-plugins/control/Layers.Load.js | 8 +- .../control/Permalink.Layer.js | 12 +- .../leaflet-plugins/control/Permalink.Line.js | 6 +- .../control/Permalink.Marker.js | 4 +- .../leaflet-plugins/control/Permalink.js | 48 +- .../leaflet-plugins/control/Scale.js | 118 ----- .../leaflet-plugins/layer/Icon.Canvas.js | 2 +- .../leaflet-plugins/layer/Layer.Deferred.js | 20 +- .../leaflet-plugins/layer/Marker.Rotate.js | 80 ++-- .../leaflet-plugins/layer/Marker.Text.js | 6 +- .../leaflet-plugins/layer/OpenStreetBugs.js | 229 +++++----- .../leaflet-plugins/layer/tile/Bing.js | 23 +- .../leaflet-plugins/layer/tile/Google.js | 38 +- .../leaflet-plugins/layer/tile/Yandex.js | 44 +- .../leaflet-plugins/layer/vector/GPX.Speed.js | 28 +- .../leaflet-plugins/layer/vector/GPX.js | 36 +- .../leaflet-plugins/layer/vector/KML.js | 54 ++- .../leaflet-plugins/layer/vector/OSM.js | 81 ++-- bower_components/leaflet-plugins/package.json | 8 +- bower_components/normalize-css/.bower.json | 9 +- bower_components/normalize-css/README.md | 19 +- bower_components/normalize-css/bower.json | 21 +- bower_components/normalize-css/normalize.css | 415 +++++++++--------- 31 files changed, 679 insertions(+), 719 deletions(-) create mode 100644 bower_components/leaflet-plugins/.jshintrc delete mode 100644 bower_components/leaflet-plugins/control/Scale.js diff --git a/bower_components/leaflet-gpx/.bower.json b/bower_components/leaflet-gpx/.bower.json index 05adf33..2650246 100644 --- a/bower_components/leaflet-gpx/.bower.json +++ b/bower_components/leaflet-gpx/.bower.json @@ -1,11 +1,11 @@ { "name": "leaflet-gpx", "homepage": "https://github.com/mpetazzoni/leaflet-gpx", - "_release": "f0622fa76e", + "_release": "ad9d5adf0a", "_resolution": { "type": "branch", "branch": "master", - "commit": "f0622fa76ec80639b530a2348a7b291ed05a4418" + "commit": "ad9d5adf0ae5450bc5bc60e1e86307beb7667772" }, "_source": "git://github.com/mpetazzoni/leaflet-gpx.git", "_target": "*", diff --git a/bower_components/leaflet-gpx/README.md b/bower_components/leaflet-gpx/README.md index 39efcbe..5b5980f 100644 --- a/bower_components/leaflet-gpx/README.md +++ b/bower_components/leaflet-gpx/README.md @@ -60,6 +60,7 @@ so in the 'loaded' event handler, calling one of the following methods on the * `get_moving_time()`: returns the moving time, in milliseconds * `get_total_time()`: returns the total track time, in milliseconds * `get_moving_pace()`: returns the average moving pace in milliseconds per km +* `get_moving_speed()`: returns the average moving speed in km per hour * `get_elevation_gain()`: returns the cumulative elevation gain, in meters * `get_elevation_loss()`: returns the cumulative elevation loss, in meters * `get_average_hr()`: returns the average heart rate (if available) @@ -68,8 +69,10 @@ If you're not a fan of the metric system, you also have the following methods at your disposal: * `get_distance_imp()`: returns the total track distance in miles -* `get_moving_pace_imp()`: returns the average moving pace in milliseconds per - mile +* `get_moving_pace_imp()`: returns the average moving pace in milliseconds per + hour +* `get_moving_speed()`: returns the average moving pace in miles per + hour The reason why these methods return milliseconds is that you have at your disposal a nice helper method to format a duration in milliseconds into a cool @@ -89,6 +92,15 @@ the distance is either in kilometers or in miles and the elevation in meters of feet, depending on whether you use the `_imp` variant or not. Heart rate, obviously, doesn't change. +You can reload remote gpx file every 5 seconds with: +```javascript +var gpxLayer = new L.GPX(gpxFile); + +setInterval(function() { + gpxLayer.reload(); +},5000); +``` + About marker icons ------------------ @@ -124,3 +136,12 @@ new L.GPX(url, { map.fitBounds(e.target.getBounds()); }).addTo(map); ``` + +Caveats +------- + + * Distance calculation is relatively accurate, but elevation change + calculation is not topographically adjusted, so the total elevation + gain/loss/change might appear inaccurate in some situations. + * Currently doesn't seem to work in IE8/9. See #9 and #11 for + discussion. diff --git a/bower_components/leaflet-gpx/gpx.js b/bower_components/leaflet-gpx/gpx.js index 88d3790..ddee4ff 100644 --- a/bower_components/leaflet-gpx/gpx.js +++ b/bower_components/leaflet-gpx/gpx.js @@ -107,12 +107,17 @@ L.GPX = L.FeatureGroup.extend({ return s; }, + // Public methods to_miles: function(v) { return v / 1.60934; }, to_ft: function(v) { return v * 3.28084; }, m_to_km: function(v) { return v / 1000; }, m_to_mi: function(v) { return v / 1609.34; }, get_name: function() { return this._info.name; }, + get_desc: function() { return this._info.desc; }, + get_author: function() { return this._info.author; }, + get_copyright: function() { return this._info.copyright; }, + get_desc: function() { return this._info.desc; }, get_distance: function() { return this._info.length; }, get_distance_imp: function() { return this.to_miles(this.m_to_km(this.get_distance())); }, @@ -123,6 +128,9 @@ L.GPX = L.FeatureGroup.extend({ get_moving_pace: function() { return this.get_moving_time() / this.m_to_km(this.get_distance()); }, get_moving_pace_imp: function() { return this.get_moving_time() / this.get_distance_imp(); }, + + get_moving_speed: function() { return this.m_to_km(this.get_distance()) / (this.get_moving_time() / (3600 * 1000)) ; }, + get_moving_speed_imp:function() { return this.to_miles(this.m_to_km(this.get_distance())) / (this.get_moving_time() / (3600 * 1000)) ; }, get_elevation_gain: function() { return this._info.elevation.gain; }, get_elevation_loss: function() { return this._info.elevation.loss; }, @@ -157,8 +165,12 @@ L.GPX = L.FeatureGroup.extend({ }); }, - // Private methods + reload: function() { + this.clearLayers(); + this._parse(this._gpx, this.options, this.options.async); + }, + // Private methods _merge_objs: function(a, b) { var _ = {}; for (var attr in a) { _[attr] = a[attr]; } @@ -214,6 +226,18 @@ L.GPX = L.FeatureGroup.extend({ if (name.length > 0) { this._info.name = name[0].textContent; } + var desc = xml.getElementsByTagName('desc'); + if (desc.length > 0) { + this._info.desc = desc[0].textContent; + } + var author = xml.getElementsByTagName('author'); + if (author.length > 0) { + this._info.author = author[0].textContent; + } + var copyright = xml.getElementsByTagName('copyright'); + if (copyright.length > 0) { + this._info.copyright = copyright[0].textContent; + } for (j = 0; j < tags.length; j++) { el = xml.getElementsByTagName(tags[j][0]); @@ -333,5 +357,5 @@ L.GPX = L.FeatureGroup.extend({ _deg2rad: function(deg) { return deg * Math.PI / 180; - }, + } }); diff --git a/bower_components/leaflet-plugins/.bower.json b/bower_components/leaflet-plugins/.bower.json index a55fed4..dc58bc6 100644 --- a/bower_components/leaflet-plugins/.bower.json +++ b/bower_components/leaflet-plugins/.bower.json @@ -1,12 +1,12 @@ { - "name": "shramov-plugins-permalink", + "name": "leaflet-plugins", "homepage": "https://github.com/shramov/leaflet-plugins", - "version": "1.0.1", - "_release": "1.0.1", + "version": "1.1.2", + "_release": "1.1.2", "_resolution": { "type": "version", - "tag": "v1.0.1", - "commit": "a03de1df77d53c58dd7194bf7e1ddbc100231ac2" + "tag": "v1.1.2", + "commit": "de2380a9efa24b3b43fb780219363f171f9f3140" }, "_source": "git://github.com/shramov/leaflet-plugins.git", "_target": "*", diff --git a/bower_components/leaflet-plugins/.jshintrc b/bower_components/leaflet-plugins/.jshintrc new file mode 100644 index 0000000..0347be5 --- /dev/null +++ b/bower_components/leaflet-plugins/.jshintrc @@ -0,0 +1,11 @@ +{ + "browser": true, + "eqeqeq": true, + "undef": true, + "quotmark": "single", + "trailing": true, + "laxbreak": true, + "globals": { + "L": true + } +} \ No newline at end of file diff --git a/bower_components/leaflet-plugins/LICENSE b/bower_components/leaflet-plugins/LICENSE index 05eaf18..1471f11 100644 --- a/bower_components/leaflet-plugins/LICENSE +++ b/bower_components/leaflet-plugins/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2011-2012, Pavel Shramov +Copyright (c) 2011-2014, Pavel Shramov, Bruno Bergot All rights reserved. Redistribution and use in source and binary forms, with or without modification, are diff --git a/bower_components/leaflet-plugins/README.asciidoc b/bower_components/leaflet-plugins/README.asciidoc index 26dedab..79acf07 100644 --- a/bower_components/leaflet-plugins/README.asciidoc +++ b/bower_components/leaflet-plugins/README.asciidoc @@ -22,7 +22,7 @@ Also there are some useful control plugins (`control/`): * Permalink - OpenLayers compatible permanent link with support for storing location data in hash part (#lat=...); - * Scale - scale ruler which looks like one on paper maps. + * Distance - simple tool to measure distances on maps == How to get? diff --git a/bower_components/leaflet-plugins/control/Distance.js b/bower_components/leaflet-plugins/control/Distance.js index ff60020..3e79db1 100644 --- a/bower_components/leaflet-plugins/control/Distance.js +++ b/bower_components/leaflet-plugins/control/Distance.js @@ -1,3 +1,4 @@ +/* global console: true */ L.Control.Distance = L.Control.extend({ options: { position: 'topleft', @@ -95,15 +96,15 @@ L.Control.Distance = L.Control.extend({ }, _update: function(e) { - console.info("Update"); + console.info('Update'); this._text.textContent = this._d2txt(this._distance_calc()); }, _d2txt: function(d) { if (d < 2000) - return d.toFixed(0) + " m"; + return d.toFixed(0) + ' m'; else - return (d/1000).toFixed(1) + " km"; + return (d/1000).toFixed(1) + ' km'; }, _distance_calc: function(e) { diff --git a/bower_components/leaflet-plugins/control/Layers.Load.js b/bower_components/leaflet-plugins/control/Layers.Load.js index 9b7952c..210e332 100644 --- a/bower_components/leaflet-plugins/control/Layers.Load.js +++ b/bower_components/leaflet-plugins/control/Layers.Load.js @@ -3,7 +3,7 @@ */ L.Control.Layers.include({ _loadScripts: function(scripts, cb, args) { - if (!scripts || scripts.length == 0) + if (!scripts || scripts.length === 0) return cb(args); var _this = this, s = scripts.pop(), c; c = L.Control.Layers._script_cache[s]; @@ -17,13 +17,13 @@ L.Control.Layers.include({ var i = 0; for (i = 0; i < c.wait.length; i++) c.wait[i](); - } + }; c.e = script; document.getElementsByTagName('head')[0].appendChild(script); } function _cb() { _this._loadScripts(scripts, cb, args); } c.wait.push(_cb); - if (c.e.readyState == "completed") + if (c.e.readyState === 'completed') _cb(); L.Control.Layers._script_cache[s] = c; }, @@ -43,7 +43,7 @@ L.Control.Layers.include({ loadLayer: function(name, deflt) { var _this = this, l = this._layer_defs[name]; l['default'] = deflt; - this._loadScripts(l.js.reverse(), function(l) {_this._loadLayer(l)}, l); + this._loadScripts(l.js.reverse(), function(l) {_this._loadLayer(l);}, l); }, _loadLayer: function(l) { diff --git a/bower_components/leaflet-plugins/control/Permalink.Layer.js b/bower_components/leaflet-plugins/control/Permalink.Layer.js index 03aa060..a0aba1a 100644 --- a/bower_components/leaflet-plugins/control/Permalink.Layer.js +++ b/bower_components/leaflet-plugins/control/Permalink.Layer.js @@ -44,20 +44,20 @@ L.Control.Layers.include({ if (!this._layers.hasOwnProperty(i)) continue; obj = this._layers[i]; - if (!obj.overlay && obj.name == name) + if (!obj.overlay && obj.name === name) layer = obj.layer; } if (!layer || this._map.hasLayer(layer)) return; - for (var i in this._layers) { - if (!this._layers.hasOwnProperty(i)) + for (var j in this._layers) { + if (!this._layers.hasOwnProperty(j)) continue; - obj = this._layers[i]; + obj = this._layers[j]; if (!obj.overlay && this._map.hasLayer(obj.layer)) - this._map.removeLayer(obj.layer) + this._map.removeLayer(obj.layer); } - this._map.addLayer(layer) + this._map.addLayer(layer); this._update(); }, diff --git a/bower_components/leaflet-plugins/control/Permalink.Line.js b/bower_components/leaflet-plugins/control/Permalink.Line.js index 6d7c9ce..5d229fc 100644 --- a/bower_components/leaflet-plugins/control/Permalink.Line.js +++ b/bower_components/leaflet-plugins/control/Permalink.Line.js @@ -16,7 +16,7 @@ L.Control.Permalink.include({ //console.info("onAdd::line", e); if (!this.options.line) return; this.options.line.on('edit', this._update_line, this); - this._update_line() + this._update_line(); }, _update_line: function() { @@ -27,7 +27,7 @@ L.Control.Permalink.include({ if (!coords.length) return this._update({line: null}); for (var i in coords) - text.push(coords[i].lat.toFixed(4) + "," + coords[i].lng.toFixed(4)) + text.push(coords[i].lat.toFixed(4) + ',' + coords[i].lng.toFixed(4)); this._update({line: text.join(';')}); }, @@ -38,7 +38,7 @@ L.Control.Permalink.include({ var coords = [], text = p.line.split(';'); for (var i in text) { var ll = text[i].split(','); - if (ll.length != 2) continue; + if (ll.length !== 2) continue; coords.push(new L.LatLng(ll[0], ll[1])); } if (!coords.length) return; diff --git a/bower_components/leaflet-plugins/control/Permalink.Marker.js b/bower_components/leaflet-plugins/control/Permalink.Marker.js index 4de8fdc..71be274 100644 --- a/bower_components/leaflet-plugins/control/Permalink.Marker.js +++ b/bower_components/leaflet-plugins/control/Permalink.Marker.js @@ -18,13 +18,13 @@ L.Control.Permalink.include({ var p = e.params; //if (!this.options.useMarker) return; if (this._marker) return; - if (p.marker != 1) return; + if (p.marker !== 1) return; if (p.mlat !== undefined && p.mlon !== undefined) return this._update({mlat: null, mlon: null, lat: p.mlat, lon: p.mlon, marker: 1}); this._marker = new L.Marker(new L.LatLng(p.lat, p.lon), this.options.markerOptions); - this._marker.bindPopup("" + this.options.text + ""); + this._marker.bindPopup('' + this.options.text + ''); this._map.addLayer(this._marker); this._update({marker: null}); } diff --git a/bower_components/leaflet-plugins/control/Permalink.js b/bower_components/leaflet-plugins/control/Permalink.js index b758265..0b0a4a1 100644 --- a/bower_components/leaflet-plugins/control/Permalink.js +++ b/bower_components/leaflet-plugins/control/Permalink.js @@ -2,19 +2,19 @@ L.Control.Permalink = L.Control.extend({ includes: L.Mixin.Events, options: { - position: "bottomleft", + position: 'bottomleft', useAnchor: true, useLocation: false, - text: "Permalink" + text: 'Permalink' }, initialize: function(options) { L.Util.setOptions(this, options); this._params = {}; this._set_urlvars(); - this.on("update", this._set_center, this); + this.on('update', this._set_center, this); for (var i in this) { - if (typeof(i) === "string" && i.indexOf('initialize_') == 0) + if (typeof(i) === 'string' && i.indexOf('initialize_') === 0) this[i](); } }, @@ -24,10 +24,10 @@ L.Control.Permalink = L.Control.extend({ L.DomEvent.disableClickPropagation(this._container); this._map = map; this._href = L.DomUtil.create('a', null, this._container); - this._href.innerHTML = this.options.text + this._href.innerHTML = this.options.text; map.on('moveend', this._update_center, this); - this.fire("update", {params: this._params}) + this.fire('update', {params: this._params}); this._update_center(); if (this.options.useAnchor && 'onhashchange' in window) { @@ -35,7 +35,7 @@ L.Control.Permalink = L.Control.extend({ window.onhashchange = function() { _this._set_urlvars(); if (fn) return fn(); - } + }; } this.fire('add', {map: map}); @@ -66,26 +66,26 @@ L.Control.Permalink = L.Control.extend({ var ne = bounds.getNorthEast(), sw = bounds.getSouthWest(); var round = function (x, p) { - if (p == 0) return x; - shift = 1; + if (p === 0) return x; + var shift = 1; while (p < 1 && p > -1) { x *= 10; p *= 10; shift *= 10; } return Math.floor(x)/shift; - } + }; point.lat = round(point.lat, (ne.lat - sw.lat) / size.y); point.lng = round(point.lng, (ne.lng - sw.lng) / size.x); return point; }, _update: function(obj, source) { - //console.info("Update", obj, this._params); + //console.info('Update', obj, this._params); for(var i in obj) { if (!obj.hasOwnProperty(i)) continue; - if (obj[i] != null && obj[i] != undefined) - this._params[i] = obj[i] + if (obj[i] !== null && obj[i] !== undefined) + this._params[i] = obj[i]; else delete this._params[i]; } @@ -105,7 +105,7 @@ L.Control.Permalink = L.Control.extend({ function eq(x, y) { for(var i in x) - if (x.hasOwnProperty(i) && x[i] != y[i]) + if (x.hasOwnProperty(i) && x[i] !== y[i]) return false; return true; } @@ -114,16 +114,16 @@ L.Control.Permalink = L.Control.extend({ return; this._params = p; this._update_href(); - this.fire("update", {params: this._params}) + this.fire('update', {params: this._params}); }, _set_center: function(e) { - //console.info("Update center", e); + //console.info('Update center', e); var params = e.params; - if (params.zoom == undefined || - params.lat == undefined || - params.lon == undefined) return; + if (params.zoom === undefined || + params.lat === undefined || + params.lon === undefined) return; this._map.setView(new L.LatLng(params.lat, params.lon), params.zoom); } }); @@ -131,13 +131,13 @@ L.Control.Permalink = L.Control.extend({ L.UrlUtil = { queryParse: function(s) { var p = {}; - var sep = "&"; - if (s.search("&") != -1) - sep = "&"; + var sep = '&'; + if (s.search('&') !== -1) + sep = '&'; var params = s.split(sep); for(var i = 0; i < params.length; i++) { var tmp = params[i].split('='); - if (tmp.length != 2) continue; + if (tmp.length !== 2) continue; p[tmp[0]] = decodeURI(tmp[1]); } return p; @@ -150,7 +150,7 @@ L.UrlUtil = { return href.slice(idx+1); }, - hash: function() { return window.location.hash.slice(1) }, + hash: function() { return window.location.hash.slice(1); }, updateParamString: function (q, obj) { var p = L.UrlUtil.queryParse(q); diff --git a/bower_components/leaflet-plugins/control/Scale.js b/bower_components/leaflet-plugins/control/Scale.js deleted file mode 100644 index 7f1aca5..0000000 --- a/bower_components/leaflet-plugins/control/Scale.js +++ /dev/null @@ -1,118 +0,0 @@ -L.Control.Scale = L.Control.extend({ - options: { - position: "bottomleft", - useCanvas: null, - width: 100 - }, - - initialize: function(options) { - L.Util.setOptions(this, options); - }, - - onAdd: function(map) { - this._map = map; - - this._container = L.DomUtil.create('div', 'leaflet-control-attribution leaflet-control-scale'); - this._label = L.DomUtil.create('div', null, this._container); - this._label.style.textAlign = 'right'; - - if (!this.options.useCanvas && this.options.useCanvas != false) - this.options.useCanvas = "HTMLCanvasElement" in window; - if (this.options.useCanvas) { - this._canvas = L.DomUtil.create('canvas', 'leaflet-canvas-marker', this._container); - } else { - this._canvas = L.DomUtil.create('div', null, this._container); - this._canvas.style.border = "1px solid black"; - this._canvas.innerHTML = " "; - //this._canvas.style.padding = "none"; - //this._canvas.style.margin = "none"; - //this._canvas.style.width = 100; - //this._canvas.style.height = 5; - } - map.on('zoomend', this._update, this); - this._update(); - return this._container; - }, - - onRemove: function(map) { - map._container.removeChild(this._label); - map._container.removeChild(this._canvas); - map.off('zoomend', this._reset); - }, - - getPosition: function() { - return this.options.position; - }, - - getContainer: function() { - return this._container; - }, - - _update: function() { - if (!this._map) return; - - var size = this.options.width; - - var b = this._map.getBounds(), pb = this._map.getPixelBounds(); - var width = this._deg_length(b.getNorthEast(), b.getNorthWest()); - width = size * width / (pb.max.x - pb.min.x); - var iw = this._round(width); - - if (iw >= 1) - this._label.innerHTML = iw + " km"; - else - this._label.innerHTML = Math.round(1000 * iw) + " m"; - - size = size * iw / width; - - if (this.options.useCanvas) { - this._canvas.width = size+1; - this._canvas.height = 10+1; - - var ctx = this._canvas.getContext("2d"); - this._draw(ctx, size, 5); - } else { - this._canvas.style.width = size; - this._canvas.style.height = 5; - - } - }, - - _draw: function(ctx, width, height) { - ctx.beginPath(); - ctx.fillStyle = ctx.strokeStyle = '#000'; - ctx.lineWidth = 0.5; - - ctx.strokeRect(0, height, width/2, height); - ctx.fillRect(0, height, width/2, height); - ctx.strokeRect(width/2, height, width/2, height); - - ctx.moveTo(0, 0); - ctx.lineTo(0, height); - ctx.moveTo(width/2, 0); - ctx.lineTo(width/2, height); - ctx.moveTo(width, 0); - ctx.lineTo(width, height); - ctx.stroke(); - }, - - _deg_length : function(p1, p2) { - var deglen = 111.12 * L.LatLng.RAD_TO_DEG; - var p1lat = p1.lat * L.LatLng.DEG_TO_RAD, - p1lng = p1.lng * L.LatLng.DEG_TO_RAD, - p2lat = p2.lat * L.LatLng.DEG_TO_RAD, - p2lng = p2.lng * L.LatLng.DEG_TO_RAD; - return deglen * Math.acos(Math.sin(p1lat) * Math.sin(p2lat) + - Math.cos(p1lat) * Math.cos(p2lat) * Math.cos(p2lng - p1lng)); - }, - - _round : function (x) { - var div = 1; - while (div < x) div *= 10; - while (div > x) div /= 10; - var s = div; - while (s < x) s += div; - if (s > 5 * div) s = 10 * div; - return s; - } -}); diff --git a/bower_components/leaflet-plugins/layer/Icon.Canvas.js b/bower_components/leaflet-plugins/layer/Icon.Canvas.js index e787bf0..0cadeef 100644 --- a/bower_components/leaflet-plugins/layer/Icon.Canvas.js +++ b/bower_components/leaflet-plugins/layer/Icon.Canvas.js @@ -12,7 +12,7 @@ L.Icon.Canvas = L.Icon.extend({ var e = document.createElement('canvas'); this._setIconStyles(e, 'icon'); var s = this.options.iconSize; - e.width = s.x + e.width = s.x; e.height = s.y; this.draw(e.getContext('2d'), s.x, s.y); return e; diff --git a/bower_components/leaflet-plugins/layer/Layer.Deferred.js b/bower_components/leaflet-plugins/layer/Layer.Deferred.js index b6be6b8..6d310e3 100644 --- a/bower_components/leaflet-plugins/layer/Layer.Deferred.js +++ b/bower_components/leaflet-plugins/layer/Layer.Deferred.js @@ -15,42 +15,42 @@ L.DeferredLayer = L.LayerGroup.extend({ onAdd: function(map) { L.LayerGroup.prototype.onAdd.apply(this, [map]); if (this._loaded) return; - //console.info("Script cache", this._script_cache); + //console.info('Script cache', this._script_cache); var loaded = function() { - //console.info("Loaded", this, this.options); + //console.info('Loaded', this, this.options); this._loaded = true; var l = this.options.init(); if (l) this.addLayer(l); - } + }; this._loadScripts(this.options.js.reverse(), L.Util.bind(loaded, this)); }, _loadScripts: function(scripts, cb, args) { - if (!scripts || scripts.length == 0) + if (!scripts || scripts.length === 0) return cb(args); var _this = this, s = scripts.pop(), c; c = this._script_cache[s]; if (c === undefined) { c = {url: s, wait: []}; - //console.info("Load ", s); + //console.info('Load ', s); var script = document.createElement('script'); script.src = s; script.type = 'text/javascript'; script.onload = function () { - //console.info("Element(cb)", c.e.readyState); - c.e.readyState = "completed"; + //console.info('Element(cb)', c.e.readyState); + c.e.readyState = 'completed'; var i = 0; for (i = 0; i < c.wait.length; i++) c.wait[i](); - } + }; c.e = script; document.getElementsByTagName('head')[0].appendChild(script); } function _cb() { _this._loadScripts(scripts, cb, args); } c.wait.push(_cb); - //console.info("Element", c.e.readyState); - if (c.e.readyState == "completed") + //console.info('Element', c.e.readyState); + if (c.e.readyState === 'completed') _cb(); this._script_cache[s] = c; } diff --git a/bower_components/leaflet-plugins/layer/Marker.Rotate.js b/bower_components/leaflet-plugins/layer/Marker.Rotate.js index 92d8ec3..32a8741 100644 --- a/bower_components/leaflet-plugins/layer/Marker.Rotate.js +++ b/bower_components/leaflet-plugins/layer/Marker.Rotate.js @@ -5,49 +5,47 @@ * Wrapping function is needed to preserve L.Marker.update function */ (function () { - var _old__setPos = L.Marker.prototype._setPos; - L.Marker.include({ - _updateImg: function(i, a, s) { - a = L.point(s).divideBy(2)._subtract(L.point(a)); - var transform = ''; - transform += ' translate(' + -a.x + 'px, ' + -a.y + 'px)'; - transform += ' rotate(' + this.options.iconAngle + 'deg)'; - transform += ' translate(' + a.x + 'px, ' + a.y + 'px)'; - i.style[L.DomUtil.TRANSFORM] += transform; - }, + var _old__setPos = L.Marker.prototype._setPos; + L.Marker.include({ + _updateImg: function(i, a, s) { + a = L.point(s).divideBy(2)._subtract(L.point(a)); + var transform = ''; + transform += ' translate(' + -a.x + 'px, ' + -a.y + 'px)'; + transform += ' rotate(' + this.options.iconAngle + 'deg)'; + transform += ' translate(' + a.x + 'px, ' + a.y + 'px)'; + i.style[L.DomUtil.TRANSFORM] += transform; + }, - setIconAngle: function (iconAngle) { - this.options.iconAngle = iconAngle; + setIconAngle: function (iconAngle) { + this.options.iconAngle = iconAngle; + if (this._map) + this.update(); + }, - if (this._map) this.update(); - }, + _setPos: function (pos) { + if (this._icon) + this._icon.style[L.DomUtil.TRANSFORM] = ''; + if (this._shadow) + this._shadow.style[L.DomUtil.TRANSFORM] = ''; - _setPos: function (pos) { - if (this._icon) { - this._icon.style[L.DomUtil.TRANSFORM] = ""; - } - if (this._shadow) { - this._shadow.style[L.DomUtil.TRANSFORM] = ""; - } + _old__setPos.apply(this,[pos]); - _old__setPos.apply(this,[pos]); - - if (this.options.iconAngle) { - var a = this.options.icon.options.iconAnchor; - var s = this.options.icon.options.iconSize; - var i; - if (this._icon) { - i = this._icon; - this._updateImg(i, a, s); - } - - if (this._shadow) { - // Rotate around the icons anchor. - s = this.options.icon.options.shadowSize; - i = this._shadow; - this._updateImg(i, a, s); - } - - } } - }); + if (this.options.iconAngle) { + var a = this.options.icon.options.iconAnchor; + var s = this.options.icon.options.iconSize; + var i; + if (this._icon) { + i = this._icon; + this._updateImg(i, a, s); + } + if (this._shadow) { + if (this.options.icon.options.shadowAnchor) + a = this.options.icon.options.shadowAnchor; + s = this.options.icon.options.shadowSize; + i = this._shadow; + this._updateImg(i, a, s); + } + } + } + }); }()); diff --git a/bower_components/leaflet-plugins/layer/Marker.Text.js b/bower_components/leaflet-plugins/layer/Marker.Text.js index e48528a..f1bc247 100644 --- a/bower_components/leaflet-plugins/layer/Marker.Text.js +++ b/bower_components/leaflet-plugins/layer/Marker.Text.js @@ -8,7 +8,7 @@ L.Icon.Text = L.Icon.extend({ var el = document.createElement('div'); el.appendChild(document.createTextNode(this._text)); this._setIconStyles(el, 'icon'); - el.style.textShadow = "2px 2px 2px #fff"; + el.style.textShadow = '2px 2px 2px #fff'; return el; }, @@ -25,7 +25,7 @@ L.Marker.Text = L.Marker.extend({ _initIcon: function() { L.Marker.prototype._initIcon.apply(this); - var i = this._icon, s = this._shadow, obj = this.options.icon + var i = this._icon, s = this._shadow, obj = this.options.icon; this._icon = this._shadow = null; this.options.icon = this._fakeicon; @@ -41,7 +41,7 @@ L.Marker.Text = L.Marker.extend({ this._icon.appendChild(i); var w = this._icon.clientWidth, h = this._icon.clientHeight; - this._icon.style.marginLeft = -w / 2 + "px"; + this._icon.style.marginLeft = -w / 2 + 'px'; //this._icon.style.backgroundColor = "red"; var off = new L.Point(w/2, 0); if (L.Browser.webkit) off.y = -h; diff --git a/bower_components/leaflet-plugins/layer/OpenStreetBugs.js b/bower_components/leaflet-plugins/layer/OpenStreetBugs.js index 65c5fc3..cac4c21 100644 --- a/bower_components/leaflet-plugins/layer/OpenStreetBugs.js +++ b/bower_components/leaflet-plugins/layer/OpenStreetBugs.js @@ -1,9 +1,10 @@ +/* global alert: true */ L.OpenStreetBugs = L.FeatureGroup.extend({ options : { - serverURL : "http://openstreetbugs.schokokeks.org/api/0.1/", + serverURL : 'http://openstreetbugs.schokokeks.org/api/0.1/', readonly : false, setCookie : true, - username : "NoName", + username : 'NoName', cookieLifetime : 1000, cookiePath : null, permalinkZoom : 14, @@ -11,8 +12,8 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ opacity : 0.7, showOpen: true, showClosed: true, - iconOpen: "http://openstreetbugs.schokokeks.org/client/open_bug_marker.png", - iconClosed:"http://openstreetbugs.schokokeks.org/client/closed_bug_marker.png", + iconOpen: 'http://openstreetbugs.schokokeks.org/client/open_bug_marker.png', + iconClosed:'http://openstreetbugs.schokokeks.org/client/closed_bug_marker.png', iconActive: undefined, editArea: 0.01, popupOptions: {autoPan: false}, @@ -21,8 +22,8 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ initialize : function(options) { - var tmp = L.Util.extend({}, this.options.popupOptions, (options || {}).popupOptions) - L.Util.setOptions(this, options) + var tmp = L.Util.extend({}, this.options.popupOptions, (options || {}).popupOptions); + L.Util.setOptions(this, options); this.options.popupOptions = tmp; putAJAXMarker.layers.push(this); @@ -30,7 +31,7 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ this.bugs = {}; this._layers = {}; - var username = this.get_cookie("osbUsername"); + var username = this.get_cookie('osbUsername'); if (username) this.options.username = username; @@ -41,7 +42,7 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ { L.FeatureGroup.prototype.onAdd.apply(this, [map]); - this._map.on("moveend", this.loadBugs, this); + this._map.on('moveend', this.loadBugs, this); this.loadBugs(); if (!this.options.readonly) { if (this.options.dblClick) { @@ -57,7 +58,7 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ onRemove : function(map) { - this._map.off("moveend", this.loadBugs, this); + this._map.off('moveend', this.loadBugs, this); this._iterateLayers(map.removeLayer, map); delete this._map; if (!this.options.readonly) { @@ -75,7 +76,7 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ set_cookie : function(name, value) { var expires = (new Date((new Date()).getTime() + 604800000)).toGMTString(); // one week from now - document.cookie = name+"="+escape(value)+";"; + document.cookie = name+'='+encodeURIComponent(value)+';'; }, get_cookie : function(name) @@ -83,9 +84,9 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ var cookies = (document.cookie || '').split(/;\s*/); for(var i=0; i'; - newContent.innerHTML += '
'+L.i18n("Find your bug?")+'
'+L.i18n("Contact details and someone will fix it.")+'
'; + newContent.innerHTML += '

'+L.i18n('New bug')+'

'; + newContent.innerHTML += '
'+L.i18n('Find your bug?')+'
'+L.i18n('Contact details and someone will fix it.')+'
'; var popup = new L.Popup(); var _this = this; var form = this.createCommentForm(newContent); form.osblat.value = e.latlng.lat; form.osblon.value = e.latlng.lng; - form.ok.value = L.i18n("Add comment"); + form.ok.value = L.i18n('Add comment'); form.onsubmit = function(e) { _this._map.closePopup(popup); _this.createBug(form); return false; }; - form.cancel.onclick = function(e) { _this._map.closePopup(popup); } + form.cancel.onclick = function(e) { _this._map.closePopup(popup); }; popup.setLatLng(e.latlng); popup.setContent(newContent); popup.options.maxWidth=410; popup.options.minWidth=410; - popup.options.className += ' osb osbCreate' + popup.options.className += ' osb osbCreate'; this._map.openPopup(popup); }, @@ -348,21 +349,20 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ createBug: function(form) { if (!form.osbcomment.value) return; var nickname = form.osbnickname.value || this.options.username; - this.apiRequest("addPOIexec" - + "?lat="+encodeURIComponent(form.osblat.value) - + "&lon="+encodeURIComponent(form.osblon.value) - + "&text="+encodeURIComponent(form.osbcomment.value + " [" + nickname + "]") - + "&format=js", true + this.apiRequest('addPOIexec' + + '?lat='+encodeURIComponent(form.osblat.value) + + '&lon='+encodeURIComponent(form.osblon.value) + + '&text='+encodeURIComponent(form.osbcomment.value + ' [' + nickname + ']') + + '&format=js', true ); - this.set_cookie("osbUsername",nickname); + this.set_cookie('osbUsername',nickname); this.options.username=nickname; }, remoteEdit: function(x) { var ydelta = this.options.editArea || 0.01; var xdelta = ydelta * 2; - var p = [ 'left=' + (x.lng - xdelta), 'bottom=' + (x.lat - ydelta) - , 'right=' + (x.lng + xdelta), 'top=' + (x.lat + ydelta)]; + var p = [ 'left=' + (x.lng - xdelta), 'bottom=' + (x.lat - ydelta), 'right=' + (x.lng + xdelta), 'top=' + (x.lat + ydelta)]; var url = 'http://localhost:8111/load_and_zoom?' + p.join('&'); var frame = L.DomUtil.create('iframe', null); frame.style.display = 'none'; @@ -371,7 +371,7 @@ L.OpenStreetBugs = L.FeatureGroup.extend({ frame.onload = function(e) { document.body.removeChild(frame); }; return false; } -}) +}); L.OpenStreetBugs.setCSS = function() { if(L.OpenStreetBugs.setCSS.done) @@ -387,40 +387,41 @@ L.OpenStreetBugs.setCSS = function() { if(s.addRule) // M$IE rule = s.addRule(selector, rules, idx); else - rule = s.insertRule(selector + " { " + rules + " }", idx); + rule = s.insertRule(selector + ' { ' + rules + ' }', idx); s.style = L.Util.extend(s.style || {}, rules); idx++; }; - addRule(".osb-popup dl", 'margin:0; padding:0;'); - addRule(".osb-popup dt", 'margin:0; padding:0; font-weight:bold; float:left; clear:left;'); - addRule(".osb-popup dt:after", 'content: ": ";'); - addRule("* html .osb-popup dt", 'margin-right:1ex;'); - addRule(".osb-popup dd", 'margin:0; padding:0;'); - addRule(".osb-popup ul.buttons", 'list-style-type:none; padding:0; margin:0;'); - addRule(".osb-popup ul.buttons li", 'display:inline; margin:0; padding:0;'); - addRule(".osb-popup h3", 'font-size:1.2em; margin:.2em 0 .7em 0;'); + addRule('.osb-popup dl', 'margin:0; padding:0;'); + addRule('.osb-popup dt', 'margin:0; padding:0; font-weight:bold; float:left; clear:left;'); + addRule('.osb-popup dt:after', 'content: ": ";'); + addRule('* html .osb-popup dt', 'margin-right:1ex;'); + addRule('.osb-popup dd', 'margin:0; padding:0;'); + addRule('.osb-popup ul.buttons', 'list-style-type:none; padding:0; margin:0;'); + addRule('.osb-popup ul.buttons li', 'display:inline; margin:0; padding:0;'); + addRule('.osb-popup h3', 'font-size:1.2em; margin:.2em 0 .7em 0;'); }; function putAJAXMarker(id, lon, lat, text, closed) { var comments = text.split(/
/); - var comments_only = [] + var comments_only = []; var nickname = []; var datetime = []; var info = null; var isplit = 0; - for(var i=0; i").replace(/&/g, "&"); - isplit = comments[i].lastIndexOf("["); + comments[i] = comments[i].replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); + isplit = comments[i].lastIndexOf('['); if (isplit > 0) { comments_only[i] = comments[i].substr(0,isplit-1); info = comments[i].substr(isplit+1); - nickname[i] = info.substr(0,info.lastIndexOf(",")); - datetime[i] = info.substr(info.lastIndexOf(",")+2); - datetime[i] = datetime[i].substr(0,datetime[i].lastIndexOf("]")); + nickname[i] = info.substr(0,info.lastIndexOf(',')); + datetime[i] = info.substr(info.lastIndexOf(',')+2); + datetime[i] = datetime[i].substr(0,datetime[i].lastIndexOf(']')); } else { comments_only[i] = comments[i]; @@ -436,19 +437,17 @@ function putAJAXMarker(id, lon, lat, text, closed) nickname, datetime ]; - var force = (old && old[3]) != text; - for(var i=0; i 0; i--) { var digit = 0; var mask = 1 << (i - 1); - if ((x & mask) != 0) digit += 1; - if ((y & mask) != 0) digit += 2; + if ((x & mask) !== 0) digit += 1; + if ((y & mask) !== 0) digit += 2; quad = quad + digit; } return quad; }, getTileUrl: function(p, z) { - var z = this._getZoomForUrl(); + var zoom = this._getZoomForUrl(); var subdomains = this.options.subdomains, s = this.options.subdomains[Math.abs((p.x + p.y) % subdomains.length)]; return this._url.replace('{subdomain}', s) - .replace('{quadkey}', this.tile2quad(p.x, p.y, z)) - .replace('http:', document.location.protocol) + .replace('{quadkey}', this.tile2quad(p.x, p.y, zoom)) .replace('{culture}', this.options.culture); }, @@ -46,17 +46,18 @@ L.BingLayer = L.TileLayer.extend({ var e = document.getElementById(cbid); e.parentNode.removeChild(e); if (meta.errorDetails) { - if (window.console) console.log("Leaflet Bing Plugin Error - Got metadata: " + meta.errorDetails); + if (window.console) console.log('Leaflet Bing Plugin Error - Got metadata: ' + meta.errorDetails); return; } _this.initMetadata(); }; - var url = document.location.protocol + "//dev.virtualearth.net/REST/v1/Imagery/Metadata/" + this.options.type + "?include=ImageryProviders&jsonp=" + cbid + "&key=" + this._key; - var script = document.createElement("script"); - script.type = "text/javascript"; + var url = document.location.protocol + '//dev.virtualearth.net/REST/v1/Imagery/Metadata/' + this.options.type + '?include=ImageryProviders&jsonp=' + cbid + + '&key=' + this._key + '&UriScheme=' + document.location.protocol.slice(0, -1); + var script = document.createElement('script'); + script.type = 'text/javascript'; script.src = url; script.id = cbid; - document.getElementsByTagName("head")[0].appendChild(script); + document.getElementsByTagName('head')[0].appendChild(script); }, initMetadata: function() { @@ -84,7 +85,7 @@ L.BingLayer = L.TileLayer.extend({ }, _update: function() { - if (this._url == null || !this._map) return; + if (this._url === null || !this._map) return; this._update_attribution(); L.TileLayer.prototype._update.apply(this, []); }, diff --git a/bower_components/leaflet-plugins/layer/tile/Google.js b/bower_components/leaflet-plugins/layer/tile/Google.js index 217af9f..6ea68c8 100644 --- a/bower_components/leaflet-plugins/layer/tile/Google.js +++ b/bower_components/leaflet-plugins/layer/tile/Google.js @@ -1,7 +1,8 @@ /* * Google layer using Google Maps API */ -//(function (google, L) { + +/* global google: true */ L.Google = L.Class.extend({ includes: L.Mixin.Events, @@ -25,7 +26,7 @@ L.Google = L.Class.extend({ initialize: function(type, options) { L.Util.setOptions(this, options); - this._ready = google.maps.Map != undefined; + this._ready = google.maps.Map !== undefined; if (!this._ready) L.Google.asyncWait.push(this); this._type = type || 'SATELLITE'; @@ -48,7 +49,7 @@ L.Google = L.Class.extend({ map.on('zoomanim', this._handleZoomAnim, this); //20px instead of 1em to avoid a slight overlap with google's attribution - map._controlCorners['bottomright'].style.marginBottom = "20px"; + map._controlCorners.bottomright.style.marginBottom = '20px'; this._reset(); this._update(); @@ -64,7 +65,7 @@ L.Google = L.Class.extend({ this._map.off('zoomanim', this._handleZoomAnim, this); - map._controlCorners['bottomright'].style.marginBottom = "0em"; + map._controlCorners.bottomright.style.marginBottom = '0em'; //this._map.off('moveend', this._update, this); }, @@ -80,8 +81,8 @@ L.Google = L.Class.extend({ }, setElementSize: function(e, size) { - e.style.width = size.x + "px"; - e.style.height = size.y + "px"; + e.style.width = size.x + 'px'; + e.style.height = size.y + 'px'; }, _initContainer: function() { @@ -90,16 +91,14 @@ L.Google = L.Class.extend({ if (!this._container) { this._container = L.DomUtil.create('div', 'leaflet-google-layer leaflet-top leaflet-left'); - this._container.id = "_GMapContainer_" + L.Util.stamp(this); - this._container.style.zIndex = "auto"; + this._container.id = '_GMapContainer_' + L.Util.stamp(this); + this._container.style.zIndex = 'auto'; } - if (true) { - tilePane.insertBefore(this._container, first); + tilePane.insertBefore(this._container, first); - this.setOpacity(this.options.opacity); - this.setElementSize(this._container, this._map.getSize()); - } + this.setOpacity(this.options.opacity); + this.setElementSize(this._container, this._map.getSize()); }, _initMapObject: function() { @@ -121,11 +120,11 @@ L.Google = L.Class.extend({ }); var _this = this; - this._reposition = google.maps.event.addListenerOnce(map, "center_changed", + this._reposition = google.maps.event.addListenerOnce(map, 'center_changed', function() { _this.onReposition(); }); this._google = map; - google.maps.event.addListenerOnce(map, "idle", + google.maps.event.addListenerOnce(map, 'idle', function() { _this._checkZoomLevels(); }); }, @@ -163,8 +162,8 @@ L.Google = L.Class.extend({ _resize: function() { var size = this._map.getSize(); - if (this._container.style.width == size.x && - this._container.style.height == size.y) + if (this._container.style.width === size.x && + this._container.style.height === size.y) return; this.setElementSize(this._container, size); this.onReposition(); @@ -182,7 +181,7 @@ L.Google = L.Class.extend({ onReposition: function() { if (!this._google) return; - google.maps.event.trigger(this._google, "resize"); + google.maps.event.trigger(this._google, 'resize'); } }); @@ -198,5 +197,4 @@ L.Google.asyncInitialize = function() { } } L.Google.asyncWait = []; -}; -//})(window.google, L) +}; \ No newline at end of file diff --git a/bower_components/leaflet-plugins/layer/tile/Yandex.js b/bower_components/leaflet-plugins/layer/tile/Yandex.js index 21a5f00..87dc168 100644 --- a/bower_components/leaflet-plugins/layer/tile/Yandex.js +++ b/bower_components/leaflet-plugins/layer/tile/Yandex.js @@ -1,7 +1,9 @@ /* * L.TileLayer is used for standard xyz-numbered tile layers. */ -//(function (ymaps, L) { + +/* global ymaps: true */ +/* global console: true */ L.Yandex = L.Class.extend({ includes: L.Mixin.Events, @@ -18,7 +20,7 @@ L.Yandex = L.Class.extend({ initialize: function(type, options) { L.Util.setOptions(this, options); - this._type = "yandex#" + (type || 'map'); + this._type = 'yandex#' + (type || 'map'); }, onAdd: function(map, insertAtTheBottom) { @@ -35,7 +37,7 @@ L.Yandex = L.Class.extend({ this._limitedUpdate = L.Util.limitExecByInterval(this._update, 150, this); map.on('move', this._update, this); - map._controlCorners['bottomright'].style.marginBottom = "3em"; + map._controlCorners.bottomright.style.marginBottom = '3em'; this._reset(); this._update(true); @@ -48,7 +50,7 @@ L.Yandex = L.Class.extend({ this._map.off('move', this._update, this); - map._controlCorners['bottomright'].style.marginBottom = "0em"; + map._controlCorners.bottomright.style.marginBottom = '0em'; }, getAttribution: function() { @@ -63,8 +65,8 @@ L.Yandex = L.Class.extend({ }, setElementSize: function(e, size) { - e.style.width = size.x + "px"; - e.style.height = size.y + "px"; + e.style.width = size.x + 'px'; + e.style.height = size.y + 'px'; }, _initContainer: function() { @@ -73,8 +75,8 @@ L.Yandex = L.Class.extend({ if (!this._container) { this._container = L.DomUtil.create('div', 'leaflet-yandex-layer leaflet-top leaflet-left'); - this._container.id = "_YMapContainer_" + L.Util.stamp(this); - this._container.style.zIndex = "auto"; + this._container.id = '_YMapContainer_' + L.Util.stamp(this); + this._container.style.zIndex = 'auto'; } if (this.options.overlay) { @@ -82,7 +84,7 @@ L.Yandex = L.Class.extend({ first = first.nextSibling; // XXX: Bug with layer order if (L.Browser.opera) - this._container.className += " leaflet-objects-pane"; + this._container.className += ' leaflet-objects-pane'; } tilePane.insertBefore(this._container, first); @@ -96,9 +98,9 @@ L.Yandex = L.Class.extend({ // Check that ymaps.Map is ready if (ymaps.Map === undefined) { if (console) { - console.debug("L.Yandex: Waiting on ymaps.load('package.map')"); + console.debug('L.Yandex: Waiting on ymaps.load("package.map")'); } - return ymaps.load(["package.map"], this._initMapObject, this); + return ymaps.load(['package.map'], this._initMapObject, this); } // If traffic layer is requested check if control.TrafficControl is ready @@ -106,9 +108,9 @@ L.Yandex = L.Class.extend({ if (ymaps.control === undefined || ymaps.control.TrafficControl === undefined) { if (console) { - console.debug("L.Yandex: loading traffic and controls"); + console.debug('L.Yandex: loading traffic and controls'); } - return ymaps.load(["package.traffic", "package.controls"], + return ymaps.load(['package.traffic', 'package.controls'], this._initMapObject, this); } @@ -117,9 +119,9 @@ L.Yandex = L.Class.extend({ if (this.options.traffic) map.controls.add(new ymaps.control.TrafficControl({shown: true})); - if (this._type == "yandex#null") { - this._type = new ymaps.MapType("null", []); - map.container.getElement().style.background = "transparent"; + if (this._type === 'yandex#null') { + this._type = new ymaps.MapType('null', []); + map.container.getElement().style.background = 'transparent'; } map.setType(this._type); @@ -143,19 +145,17 @@ L.Yandex = L.Class.extend({ var _center = [center.lat, center.lng]; var zoom = this._map.getZoom(); - if (force || this._yandex.getZoom() != zoom) + if (force || this._yandex.getZoom() !== zoom) this._yandex.setZoom(zoom); this._yandex.panTo(_center, {duration: 0, delay: 0}); }, _resize: function(force) { var size = this._map.getSize(), style = this._container.style; - if (style.width == size.x + "px" && - style.height == size.y + "px") - if (force != true) return; + if (style.width === size.x + 'px' && style.height === size.y + 'px') + if (force !== true) return; this.setElementSize(this._container, size); var b = this._map.getBounds(), sw = b.getSouthWest(), ne = b.getNorthEast(); this._yandex.container.fitToViewport(); } -}); -//})(ymaps, L) +}); \ No newline at end of file diff --git a/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js b/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js index 1404d8f..2b8f6c9 100644 --- a/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js +++ b/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js @@ -1,4 +1,4 @@ -//#include "GPX.js" +//#include 'GPX.js' (function() { @@ -6,7 +6,7 @@ function d2h(d) { var hex = '0123456789ABCDEF'; var r = ''; d = Math.floor(d); - while (d != 0) { + while (d !== 0) { r = hex[d % 16] + r; d = Math.floor(d / 16); } @@ -18,23 +18,23 @@ function gradient(color) { // First arc (0, PI) in HSV colorspace function f2h(d) { return d2h(256 * d); } if (color < 0) - return "#FF0000"; + return '#FF0000'; else if (color < 1.0/3) - return "#FF" + f2h(3 * color) + "00"; + return '#FF' + f2h(3 * color) + '00'; else if (color < 2.0/3) - return "#" + f2h(2 - 3 * color) + "FF00"; + return '#' + f2h(2 - 3 * color) + 'FF00'; else if (color < 1) - return "#00FF" + f2h(3 * color - 2); + return '#00FF' + f2h(3 * color - 2); else - return "#00FFFF"; -}; + return '#00FFFF'; +} function gpx2time(s) { // 2011-09-24T12:07:53Z - if (s.length != 10 + 1 + 8 + 1) + if (s.length !== 10 + 1 + 8 + 1) return new Date(); return new Date(s); -}; +} L.GPX.include({ options: { @@ -68,11 +68,11 @@ L.GPX.include({ p = ll[i + chunk - 1]; t = (gpx2time(p.meta.time) - t) / (3600 * 1000); var speed = 0.001 * d / t; - //console.info('Dist: ' + d + "; Speed: " + speed); + //console.info('Dist: ' + d + '; Speed: ' + speed); var color = gradient(speed / this.options.maxSpeed); - var l = new L.Polyline(ll.slice(i, i+chunk+1), {color: color, weight: 2, opacity: 1}); - l.bindPopup('Dist: ' + d.toFixed() + "m; Speed: " + speed.toFixed(2) + " km/h"); - e.line.push(l); + var poly = new L.Polyline(ll.slice(i, i+chunk+1), {color: color, weight: 2, opacity: 1}); + poly.bindPopup('Dist: ' + d.toFixed() + 'm; Speed: ' + speed.toFixed(2) + ' km/h'); + e.line.push(poly); } } diff --git a/bower_components/leaflet-plugins/layer/vector/GPX.js b/bower_components/leaflet-plugins/layer/vector/GPX.js index 109b7a4..e2e7d6a 100644 --- a/bower_components/leaflet-plugins/layer/vector/GPX.js +++ b/bower_components/leaflet-plugins/layer/vector/GPX.js @@ -1,5 +1,3 @@ -/*global L: true */ - L.GPX = L.FeatureGroup.extend({ initialize: function(gpx, options) { L.Util.setOptions(this, options); @@ -12,8 +10,8 @@ L.GPX = L.FeatureGroup.extend({ }, loadXML: function(url, cb, options, async) { - if (async == undefined) async = this.options.async; - if (options == undefined) options = this.options; + if (async === undefined) async = this.options.async; + if (options === undefined) options = this.options; var req = new window.XMLHttpRequest(); req.open('GET', url, async); @@ -21,17 +19,17 @@ L.GPX = L.FeatureGroup.extend({ req.overrideMimeType('text/xml'); // unsupported by IE } catch(e) {} req.onreadystatechange = function() { - if (req.readyState != 4) return; - if(req.status == 200) cb(req.responseXML, options); + if (req.readyState !== 4) return; + if(req.status === 200) cb(req.responseXML, options); }; req.send(null); }, _humanLen: function(l) { if (l < 2000) - return l.toFixed(0) + " m"; + return l.toFixed(0) + ' m'; else - return (l/1000).toFixed(1) + " km"; + return (l/1000).toFixed(1) + ' km'; }, _polylineLen: function(line)//line is a L.Polyline() @@ -49,7 +47,7 @@ L.GPX = L.FeatureGroup.extend({ addGPX: function(url, options, async) { var _this = this; - var cb = function(gpx, options) { _this._addGPX(gpx, options) }; + var cb = function(gpx, options) { _this._addGPX(gpx, options); }; this.loadXML(url, cb, options, async); }, @@ -57,7 +55,7 @@ L.GPX = L.FeatureGroup.extend({ var layers = this.parseGPX(gpx, options); if (!layers) return; this.addLayer(layers); - this.fire("loaded"); + this.fire('loaded'); }, parseGPX: function(xml, options) { @@ -76,12 +74,12 @@ L.GPX = L.FeatureGroup.extend({ } el = xml.getElementsByTagName('wpt'); - if (options.display_wpt != false) { + if (options.display_wpt !== false) { for (i = 0; i < el.length; i++) { - var l = this.parse_wpt(el[i], xml, options); - if (!l) continue; - if (this.parse_name(el[i], l)) named = true; - layers.push(l); + var marker = this.parse_wpt(el[i], xml, options); + if (!marker) continue; + if (this.parse_name(el[i], marker)) named = true; + layers.push(marker); } } @@ -94,7 +92,7 @@ L.GPX = L.FeatureGroup.extend({ }, parse_name: function(xml, layer) { - var i, el, txt="", name, descr="", len=0; + var i, el, txt='', name, descr='', len=0; el = xml.getElementsByTagName('name'); if (el.length) name = el[0].childNodes[0].nodeValue; @@ -107,8 +105,8 @@ L.GPX = L.FeatureGroup.extend({ if(layer instanceof L.Path) len = this._polylineLen(layer); - if (name) txt += "

" + name + "

" + descr; - if (len) txt += "

" + this._humanLen(len) + "

"; + if (name) txt += '

' + name + '

' + descr; + if (len) txt += '

' + this._humanLen(len) + '

'; if (layer && layer._popup === undefined) layer.bindPopup(txt); return txt; @@ -130,7 +128,7 @@ L.GPX = L.FeatureGroup.extend({ coords.push(ll); } var l = [new L.Polyline(coords, options)]; - this.fire('addline', {line:l}) + this.fire('addline', {line:l}); return l; }, diff --git a/bower_components/leaflet-plugins/layer/vector/KML.js b/bower_components/leaflet-plugins/layer/vector/KML.js index f5e6476..8efcf31 100644 --- a/bower_components/leaflet-plugins/layer/vector/KML.js +++ b/bower_components/leaflet-plugins/layer/vector/KML.js @@ -1,5 +1,3 @@ -/*global L: true */ - L.KML = L.FeatureGroup.extend({ options: { async: true @@ -16,8 +14,8 @@ L.KML = L.FeatureGroup.extend({ }, loadXML: function(url, cb, options, async) { - if (async == undefined) async = this.options.async; - if (options == undefined) options = this.options; + if (async === undefined) async = this.options.async; + if (options === undefined) options = this.options; var req = new window.XMLHttpRequest(); req.open('GET', url, async); @@ -25,30 +23,29 @@ L.KML = L.FeatureGroup.extend({ req.overrideMimeType('text/xml'); // unsupported by IE } catch(e) {} req.onreadystatechange = function() { - if (req.readyState != 4) return; - if(req.status == 200) cb(req.responseXML, options); + if (req.readyState !== 4) return; + if (req.status === 200) cb(req.responseXML, options); }; req.send(null); }, addKML: function(url, options, async) { var _this = this; - var cb = function(gpx, options) { _this._addKML(gpx, options) }; + var cb = function(gpx, options) { _this._addKML(gpx, options); }; this.loadXML(url, cb, options, async); }, _addKML: function(xml, options) { var layers = L.KML.parseKML(xml); if (!layers || !layers.length) return; - for (var i = 0; i < layers.length; i++) - { + for (var i = 0; i < layers.length; i++) { this.fire('addlayer', { layer: layers[i] }); this.addLayer(layers[i]); } this.latLngs = L.KML.getLatLngs(xml); - this.fire("loaded"); + this.fire('loaded'); }, latLngs: [] @@ -59,7 +56,7 @@ L.Util.extend(L.KML, { parseKML: function (xml) { var style = this.parseStyle(xml); this.parseStyleMap(xml, style); - var el = xml.getElementsByTagName("Folder"); + var el = xml.getElementsByTagName('Folder'); var layers = [], l; for (var i = 0; i < el.length; i++) { if (!this._check_folder(el[i])) { continue; } @@ -79,7 +76,7 @@ L.Util.extend(L.KML, { // - returns true if no parent Folders _check_folder: function (e, folder) { e = e.parentElement; - while (e && e.tagName !== "Folder") + while (e && e.tagName !== 'Folder') { e = e.parentElement; } @@ -88,7 +85,7 @@ L.Util.extend(L.KML, { parseStyle: function (xml) { var style = {}; - var sl = xml.getElementsByTagName("Style"); + var sl = xml.getElementsByTagName('Style'); //for (var i = 0; i < sl.length; i++) { var attributes = {color: true, width: true, Icon: true, href: true, @@ -109,7 +106,7 @@ L.Util.extend(L.KML, { var value = e.childNodes[0].nodeValue; if (key === 'color') { options.opacity = parseInt(value.substring(0, 2), 16) / 255.0; - options.color = "#" + value.substring(6, 8) + value.substring(4, 6) + value.substring(2, 4); + options.color = '#' + value.substring(6, 8) + value.substring(4, 6) + value.substring(2, 4); } else if (key === 'width') { options.weight = value; } else if (key === 'Icon') { @@ -126,13 +123,13 @@ L.Util.extend(L.KML, { for (var i = 0; i < sl.length; i++) { var e = sl[i], el; var options = {}, poptions = {}, ioptions = {}; - el = e.getElementsByTagName("LineStyle"); + el = e.getElementsByTagName('LineStyle'); if (el && el[0]) { options = _parse(el[0]); } - el = e.getElementsByTagName("PolyStyle"); + el = e.getElementsByTagName('PolyStyle'); if (el && el[0]) { poptions = _parse(el[0]); } if (poptions.color) { options.fillColor = poptions.color; } if (poptions.opacity) { options.fillOpacity = poptions.opacity; } - el = e.getElementsByTagName("IconStyle"); + el = e.getElementsByTagName('IconStyle'); if (el && el[0]) { ioptions = _parse(el[0]); } if (ioptions.href) { // save anchor info until the image is loaded @@ -149,18 +146,18 @@ L.Util.extend(L.KML, { }, parseStyleMap: function (xml, existingStyles) { - var sl = xml.getElementsByTagName("StyleMap"); + var sl = xml.getElementsByTagName('StyleMap'); for (var i = 0; i < sl.length; i++) { var e = sl[i], el; var smKey, smStyleUrl; - el = e.getElementsByTagName("key"); + el = e.getElementsByTagName('key'); if (el && el[0]) { smKey = el[0].textContent; } - el = e.getElementsByTagName("styleUrl"); + el = e.getElementsByTagName('styleUrl'); if (el && el[0]) { smStyleUrl = el[0].textContent; } - if (smKey=='normal') + if (smKey === 'normal') { existingStyles['#' + e.getAttribute('id')] = existingStyles[smStyleUrl]; } @@ -212,7 +209,7 @@ L.Util.extend(L.KML, { var tag = parse[j]; el = place.getElementsByTagName(tag); for (i = 0; i < el.length; i++) { - var l = this["parse" + tag](el[i], xml, options); + var l = this['parse' + tag](el[i], xml, options); if (l) { layers.push(l); } } } @@ -226,7 +223,7 @@ L.Util.extend(L.KML, { layer = new L.FeatureGroup(layers); } - var name, descr = ""; + var name, descr = ''; el = place.getElementsByTagName('name'); if (el.length && el[0].childNodes.length) { name = el[0].childNodes[0].nodeValue; @@ -239,7 +236,7 @@ L.Util.extend(L.KML, { } if (name) { - layer.bindPopup("

" + name + "

" + descr); + layer.bindPopup('

' + name + '

' + descr); } return layer; @@ -304,7 +301,7 @@ L.Util.extend(L.KML, { }, _read_coords: function (el) { - var text = "", coords = [], i; + var text = '', coords = [], i; for (i = 0; i < el.childNodes.length; i++) { text = text + el.childNodes[i].nodeValue; } @@ -326,8 +323,7 @@ L.KMLIcon = L.Icon.extend({ createIcon: function () { var img = this._createIcon('icon'); img.onload = function () { - var i = new Image(); - i.src = this.src; + var i = img; this.style.width = i.width + 'px'; this.style.height = i.height + 'px'; @@ -337,13 +333,13 @@ L.KMLIcon = L.Icon.extend({ if (this.anchorType.y === 'UNITS_FRACTION' || this.anchorType.x === 'fraction') { img.style.marginTop = (-(1 - this.anchor.y) * i.height) + 'px'; } - this.style.display = ""; + this.style.display = ''; }; return img; }, _setIconStyles: function (img, name) { - L.Icon.prototype._setIconStyles.apply(this, [img, name]) + L.Icon.prototype._setIconStyles.apply(this, [img, name]); // save anchor information to the image img.anchor = this.options.iconAnchorRef; img.anchorType = this.options.iconAnchorType; diff --git a/bower_components/leaflet-plugins/layer/vector/OSM.js b/bower_components/leaflet-plugins/layer/vector/OSM.js index 2064592..f8f4eed 100644 --- a/bower_components/leaflet-plugins/layer/vector/OSM.js +++ b/bower_components/leaflet-plugins/layer/vector/OSM.js @@ -1,4 +1,4 @@ -/*global L: true */ +/* global console: true */ L.OSM = L.FeatureGroup.extend({ options: { @@ -17,22 +17,22 @@ L.OSM = L.FeatureGroup.extend({ }, loadXML: function(url, cb, options, async) { - if (async == undefined) async = this.options.async; - if (options == undefined) options = this.options; + if (async === undefined) async = this.options.async; + if (options === undefined) options = this.options; var req = new window.XMLHttpRequest(); req.open('GET', url, async); req.overrideMimeType('text/xml'); req.onreadystatechange = function() { - if (req.readyState != 4) return; - if(req.status == 200) cb(req.responseXML, options); + if (req.readyState !== 4) return; + if (req.status === 200) cb(req.responseXML, options); }; req.send(null); }, addXML: function(url, options, async) { var _this = this; - var cb = function(xml, options) { _this._addXML(xml, options) }; + var cb = function(xml, options) { _this._addXML(xml, options); }; this.loadXML(url, cb, options, async); }, @@ -40,7 +40,7 @@ L.OSM = L.FeatureGroup.extend({ var layers = this.parseOSM(xml, options); if (!layers) return; this.addLayer(layers); - this.fire("loaded"); + this.fire('loaded'); }, parseOSM: function(xml, options) { @@ -52,34 +52,34 @@ L.OSM = L.FeatureGroup.extend({ el = xml.getElementsByTagName('node'); for (i = 0; i < el.length; i++) { var l = this.parse_node(el[i], xml, options); - if (l == undefined) continue; + if (l === undefined) continue; nodes[l.osmid] = l; if (!this.options.forceAll && !l.tags.length) continue; var m = this.named_node(l, options); if (!ll) ll = m.getLatLng(); - if (this.parse_name(m, l, "Node")) named = true; + if (this.parse_name(m, l, 'Node')) named = true; layers.push(m); } el = xml.getElementsByTagName('way'); for (i = 0; i < el.length; i++) { if (i > 10) break; - var l = this.parse_way(el[i], nodes, options); - if (!l) continue; - if (!ll) ll = l.getLatLngs()[0]; - if (this.parse_name(l, l, "Way")) named = true; - layers.push(l); - ways[l.osmid] = l; + var way = this.parse_way(el[i], nodes, options); + if (!way) continue; + if (!ll) ll = way.getLatLngs()[0]; + if (this.parse_name(way, way, 'Way')) named = true; + layers.push(way); + ways[way.osmid] = way; } el = xml.getElementsByTagName('relation'); for (i = 0; i < el.length; i++) { if (i > 10) break; - var l = this.parse_relation(el[i], ways, options); - if (!l) continue; - if (!ll) ll = l.getLatLngs()[0]; - if (this.parse_name(l, l, "Relation")) named = true; - layers.push(l); + var relation = this.parse_relation(el[i], ways, options); + if (!relation) continue; + if (!ll) ll = relation.getLatLngs()[0]; + if (this.parse_name(relation, relation, 'Relation')) named = true; + layers.push(relation); } if (!layers.length) return; @@ -92,17 +92,17 @@ L.OSM = L.FeatureGroup.extend({ }, parse_name: function(layer, obj, obj_name) { - console.info("parse name"); + console.info('parse name'); console.info(this.options); if (!this.options.forceAll) if (!obj.tags || !obj.tags.length) return; - var i, txt = ""; + var i, txt = '
'; for (i = 0; i < obj.tags.length; i++) { var t = obj.tags[i]; - txt += ""; + txt += ''; } - txt += "
" + t.k + "=" + t.v + "
' + t.k + '=' + t.v + '
" - txt = "

" + obj_name + " " + obj.osmid + "

" + txt; + txt += ''; + txt = '

' + obj_name + ' ' + obj.osmid + '

' + txt; if (layer) layer.bindPopup(txt); return txt; }, @@ -110,15 +110,15 @@ L.OSM = L.FeatureGroup.extend({ parse_tags: function(line) { var tags = [], el = line.getElementsByTagName('tag'); for (var i = 0; i < el.length; i++) - tags.push({k: el[i].getAttribute('k'), v: el[i].getAttribute('v')}) + tags.push({k: el[i].getAttribute('k'), v: el[i].getAttribute('v')}); return tags; }, parse_node: function(e) { - var n = { osmid: e.getAttribute('id') - , lat:e.getAttribute('lat') - , lon:e.getAttribute('lon') - } + var n = { osmid: e.getAttribute('id'), + lat:e.getAttribute('lat'), + lon:e.getAttribute('lon') + }; n.ll = new L.LatLng(n.lat, n.lon); n.tags = this.parse_tags(e); return n; @@ -135,7 +135,7 @@ L.OSM = L.FeatureGroup.extend({ } var layer = new L.Polyline(coords, options); layer.tags = this.parse_tags(line); - layer.osmid = line.getAttribute('id') + layer.osmid = line.getAttribute('id'); return layer; }, @@ -143,25 +143,26 @@ L.OSM = L.FeatureGroup.extend({ var el = line.getElementsByTagName('member'); if (!el.length) return; var rt, coords = [], tags = this.parse_tags(line); - for (var i = 0; i < tags.length; i++) - if (tags[i].k == "type") rt = tags[i].v; + var i; + for (i = 0; i < tags.length; i++) + if (tags[i].k === 'type') rt = tags[i].v; - if (rt != "multipolygon" && rt != "boundary" && rt != "waterway") + if (rt !== 'multipolygon' && rt !== 'boundary' && rt !== 'waterway') return; - for (var i = 0; i < el.length; i++) { - var mt = el[i].getAttribute("type"), ref = el[i].getAttribute("ref"); - if (mt != "way") continue; + for (i = 0; i < el.length; i++) { + var mt = el[i].getAttribute('type'), ref = el[i].getAttribute('ref'); + if (mt !== 'way') continue; var w = ways[ref]; - console.info("Way: " + ref + " " + w); + console.info('Way: ' + ref + ' ' + w); if (!w) return; coords.push(w); } - console.info("Coords: " + coords.length); + console.info('Coords: ' + coords.length); if (!coords.length) return; var layer = new L.MultiPolyline(coords, options); layer.tags = this.parse_tags(line); - layer.osmid = line.getAttribute('id') + layer.osmid = line.getAttribute('id'); return layer; }, diff --git a/bower_components/leaflet-plugins/package.json b/bower_components/leaflet-plugins/package.json index 148328e..c87d3da 100644 --- a/bower_components/leaflet-plugins/package.json +++ b/bower_components/leaflet-plugins/package.json @@ -1,12 +1,18 @@ { "author": "Pavel Shramov", "name": "leaflet-plugins", - "version": "1.0.1", + "version": "1.1.2", "description": "Miscellaneous plugins for Leaflet library for services that need to display route information and need satellite imagery from different providers", "repository": { "type": "git", "url": "git@github.com:shramov/leaflet-plugins.git" }, + "scripts": { + "test": "jshint control/* layer/*" + }, + "devDependencies": { + "jshint": "2.5.0" + }, "contributors": [ "Bruno Bergot ", "Andrey Lushchick " diff --git a/bower_components/normalize-css/.bower.json b/bower_components/normalize-css/.bower.json index 24d7e5b..9119639 100644 --- a/bower_components/normalize-css/.bower.json +++ b/bower_components/normalize-css/.bower.json @@ -1,20 +1,21 @@ { "name": "normalize-css", - "version": "2.1.3", + "version": "3.0.1", "main": "normalize.css", "author": "Nicolas Gallagher", "ignore": [ "CHANGELOG.md", "CONTRIBUTING.md", "component.json", + "package.json", "test.html" ], "homepage": "https://github.com/necolas/normalize.css", - "_release": "2.1.3", + "_release": "3.0.1", "_resolution": { "type": "version", - "tag": "v2.1.3", - "commit": "be14934fad255a01ed345de6ae59ff612adcf3b9" + "tag": "3.0.1", + "commit": "e3c71c911b0c0ebc0ee14d2421543ce1476fd761" }, "_source": "git://github.com/necolas/normalize.css.git", "_target": "*", diff --git a/bower_components/normalize-css/README.md b/bower_components/normalize-css/README.md index 2734827..80ec51a 100644 --- a/bower_components/normalize-css/README.md +++ b/bower_components/normalize-css/README.md @@ -1,4 +1,4 @@ -# normalize.css v2 +# normalize.css v3 Normalize.css is a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards. @@ -7,15 +7,17 @@ The project relies on researching the differences between default browser styles in order to precisely target only the styles that need or benefit from normalizing. -[Check out the demo](http://necolas.github.io/normalize.css/latest/test.html) +[View the test file](http://necolas.github.io/normalize.css/latest/test.html) ## Install Download from the [project page](http://necolas.github.io/normalize.css/). -Install with [Bower](http://bower.io/): `bower install --save normalize-css` +Install with [Component(1)](https://github.com/component/component/): `component install necolas/normalize.css` -Install with [Component(1)](http://component.io/): `component install necolas/normalize.css` +Install with [npm](http://npmjs.org/): `npm install --save normalize.css` + +Install with [Bower](http://bower.io/): `bower install --save normalize.css` ## What does it do? @@ -34,10 +36,11 @@ library code. ## Browser support -* Google Chrome -* Mozilla Firefox 4+ -* Apple Safari 5+ -* Opera 12+ +* Google Chrome (latest) +* Mozilla Firefox (latest) +* Mozilla Firefox 4 +* Opera (latest) +* Apple Safari 6+ * Internet Explorer 8+ [Normalize.css v1 provides legacy browser diff --git a/bower_components/normalize-css/bower.json b/bower_components/normalize-css/bower.json index 6e5e4b7..9ddcdd0 100644 --- a/bower_components/normalize-css/bower.json +++ b/bower_components/normalize-css/bower.json @@ -1,12 +1,13 @@ { - "name": "normalize-css", - "version": "2.1.3", - "main": "normalize.css", - "author": "Nicolas Gallagher", - "ignore": [ - "CHANGELOG.md", - "CONTRIBUTING.md", - "component.json", - "test.html" - ] + "name": "normalize-css", + "version": "3.0.1", + "main": "normalize.css", + "author": "Nicolas Gallagher", + "ignore": [ + "CHANGELOG.md", + "CONTRIBUTING.md", + "component.json", + "package.json", + "test.html" + ] } diff --git a/bower_components/normalize-css/normalize.css b/bower_components/normalize-css/normalize.css index c2de8df..08f8950 100644 --- a/bower_components/normalize-css/normalize.css +++ b/bower_components/normalize-css/normalize.css @@ -1,11 +1,32 @@ -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ -/* ========================================================================== - HTML5 display definitions +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions ========================================================================== */ /** - * Correct `block` display not defined in IE 8/9. + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. + * Correct `block` display not defined for `main` in IE 11. */ article, @@ -20,17 +41,20 @@ main, nav, section, summary { - display: block; + display: block; } /** - * Correct `inline-block` display not defined in IE 8/9. + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ audio, canvas, +progress, video { - display: inline-block; + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ } /** @@ -39,46 +63,21 @@ video { */ audio:not([controls]) { - display: none; - height: 0; + display: none; + height: 0; } /** - * Address `[hidden]` styling not present in IE 8/9. - * Hide the `template` element in IE, Safari, and Firefox < 22. + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ [hidden], template { - display: none; + display: none; } -/* ========================================================================== - Base - ========================================================================== */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* ========================================================================== - Links +/* Links ========================================================================== */ /** @@ -86,15 +85,7 @@ body { */ a { - background: transparent; -} - -/** - * Address `outline` inconsistency between Chrome and other browsers. - */ - -a:focus { - outline: thin dotted; + background: transparent; } /** @@ -103,56 +94,45 @@ a:focus { a:active, a:hover { - outline: 0; + outline: 0; } -/* ========================================================================== - Typography +/* Text-level semantics ========================================================================== */ /** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari 5, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9, Safari 5, and Chrome. + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ abbr[title] { - border-bottom: 1px dotted; + border-bottom: 1px dotted; } /** - * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ b, strong { - font-weight: bold; + font-weight: bold; } /** - * Address styling not present in Safari 5 and Chrome. + * Address styling not present in Safari and Chrome. */ dfn { - font-style: italic; + font-style: italic; } /** - * Address differences between Firefox and other browsers. + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; +h1 { + font-size: 2em; + margin: 0.67em 0; } /** @@ -160,36 +140,8 @@ hr { */ mark { - background: #ff0; - color: #000; -} - -/** - * Correct font family set oddly in Safari 5 and Chrome. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; -} - -/** - * Improve readability of pre-formatted text in all browsers. - */ - -pre { - white-space: pre-wrap; -} - -/** - * Set consistent quote types. - */ - -q { - quotes: "\201C" "\201D" "\2018" "\2019"; + background: #ff0; + color: #000; } /** @@ -197,7 +149,7 @@ q { */ small { - font-size: 80%; + font-size: 80%; } /** @@ -206,111 +158,123 @@ small { sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } sup { - top: -0.5em; + top: -0.5em; } sub { - bottom: -0.25em; + bottom: -0.25em; } -/* ========================================================================== - Embedded content +/* Embedded content ========================================================================== */ /** - * Remove border when inside `a` element in IE 8/9. + * Remove border when inside `a` element in IE 8/9/10. */ img { - border: 0; + border: 0; } /** - * Correct overflow displayed oddly in IE 9. + * Correct overflow not hidden in IE 9/10/11. */ svg:not(:root) { - overflow: hidden; + overflow: hidden; } -/* ========================================================================== - Figures +/* Grouping content ========================================================================== */ /** - * Address margin not present in IE 8/9 and Safari 5. + * Address margin not present in IE 8/9 and Safari. */ figure { - margin: 0; + margin: 1em 40px; } -/* ========================================================================== - Forms +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms ========================================================================== */ /** - * Define consistent border, margin, and padding. + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - /** - * 1. Correct `color` not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * 1. Correct font family not being inherited in all browsers. - * 2. Correct font size not being inherited in all browsers. - * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ button, input, +optgroup, select, textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 2 */ - margin: 0; /* 3 */ + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ } /** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. + * Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button, -input { - line-height: normal; +button { + overflow: visible; } /** * Address inconsistent `text-transform` inheritance for `button` and `select`. * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. - * Correct `select` style inheritance in Firefox 4+ and Opera. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. */ button, select { - text-transform: none; + text-transform: none; } /** @@ -325,8 +289,8 @@ button, html input[type="button"], /* 1 */ input[type="reset"], input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ } /** @@ -335,41 +299,7 @@ input[type="submit"] { button[disabled], html input[disabled] { - cursor: default; -} - -/** - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari 5 and Chrome - * on OS X. - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; + cursor: default; } /** @@ -378,22 +308,106 @@ input[type="search"]::-webkit-search-decoration { button::-moz-focus-inner, input::-moz-focus-inner { - border: 0; - padding: 0; + border: 0; + padding: 0; } /** - * 1. Remove default vertical scrollbar in IE 8/9. - * 2. Improve readability and alignment in all browsers. + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. */ textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ + overflow: auto; } -/* ========================================================================== - Tables +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables ========================================================================== */ /** @@ -401,6 +415,11 @@ textarea { */ table { - border-collapse: collapse; - border-spacing: 0; + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; }