[TASK] Zoom in visible area

This commit is contained in:
Xaver Maierhofer 2017-12-25 16:12:44 +01:00
parent 6af7ba6796
commit 7fa0c5e522
No known key found for this signature in database
GPG Key ID: 7FDCE23FD2EC9FE8
7 changed files with 379 additions and 148 deletions

View File

@ -55,7 +55,7 @@ define(['d3-selection', 'd3-force', 'd3-zoom', 'd3-drag', 'd3-timer', 'd3-ease',
var k = result[2];
var end = { k: k };
end.x = (canvas.width + sidebar()) / 2 - x * k;
end.x = (canvas.width + sidebar.getWidth()) / 2 - x * k;
end.y = canvas.height / 2 - y * k;
var start = { x: transform.x, y: transform.y, k: transform.k };

View File

@ -38,7 +38,7 @@ function (d3Interpolate, Map, Sidebar, Tabs, Container, Legend, Linklist,
function addContent(K) {
removeContent();
content = new K(linkScale, sidebar.getWidth, buttons);
content = new K(linkScale, sidebar, buttons);
content.render(contentDiv);
fanout.add(content);

View File

@ -1,4 +1,4 @@
define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet'],
define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet', 'map/activearea'],
function (ClientLayer, LabelLayer, Button, L) {
'use strict';
@ -27,10 +27,30 @@ define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet'],
document.querySelector('.leaflet-control-layers').classList.add('leaflet-control-layers-expanded');
}
function setActiveArea() {
setTimeout(function () {
map.setActiveArea({
position: 'absolute',
left: sidebar.getWidth() + 'px',
right: 0,
top: 0,
bottom: 0
});
}, 300);
}
var el = document.createElement('div');
el.classList.add('map');
map = L.map(el, options);
map.setActiveArea({
position: 'absolute',
left: sidebar.getWidth() + 'px',
right: 0,
top: 0,
bottom: 0
});
var now = new Date();
config.mapLayers.forEach(function (item, i) {
if ((typeof item.config.start === 'number' && item.config.start <= now.getHours()) || (typeof item.config.end === 'number' && item.config.end > now.getHours())) {
@ -79,6 +99,8 @@ define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet'],
labelLayer.addTo(map);
labelLayer.setZIndex(6);
sidebar.button.addEventListener('visibility', setActiveArea);
map.on('zoom', function () {
clientLayer.redraw();
labelLayer.redraw();
@ -128,7 +150,7 @@ define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet'],
}
function setView(bounds, zoom) {
map.fitBounds(bounds, { paddingTopLeft: [sidebar(), 0], maxZoom: (zoom ? zoom : config.nodeZoom) });
map.fitBounds(bounds, { maxZoom: (zoom ? zoom : config.nodeZoom) });
}
function goto(m) {
@ -205,6 +227,7 @@ define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet'],
self.destroy = function destroy() {
button.clearButtons();
sidebar.button.removeEventListener('visibility', setActiveArea);
map.remove();
if (el.parentNode) {

291
lib/map/activearea.js Normal file
View File

@ -0,0 +1,291 @@
define(function () {
/**
* https://github.com/Mappy/Leaflet-active-area
* Apache 2.0 license https://www.apache.org/licenses/LICENSE-2.0
*/
var previousMethods = {
getCenter: L.Map.prototype.getCenter,
setView: L.Map.prototype.setView,
setZoomAround: L.Map.prototype.setZoomAround,
getBoundsZoom: L.Map.prototype.getBoundsZoom,
RendererUpdate: L.Renderer.prototype._update
};
L.Map.include({
getBounds: function () {
if (this._viewport) {
return this.getViewportLatLngBounds();
}
var bounds = this.getPixelBounds();
var sw = this.unproject(bounds.getBottomLeft());
var ne = this.unproject(bounds.getTopRight());
return new L.LatLngBounds(sw, ne);
},
getViewport: function () {
return this._viewport;
},
getViewportBounds: function () {
var vp = this._viewport;
var topleft = L.point(vp.offsetLeft, vp.offsetTop);
var vpsize = L.point(vp.clientWidth, vp.clientHeight);
if (vpsize.x === 0 || vpsize.y === 0) {
// Our own viewport has no good size - so we fallback to the container size:
vp = this.getContainer();
if (vp) {
topleft = L.point(0, 0);
vpsize = L.point(vp.clientWidth, vp.clientHeight);
}
}
return L.bounds(topleft, topleft.add(vpsize));
},
getViewportLatLngBounds: function () {
var bounds = this.getViewportBounds();
return L.latLngBounds(this.containerPointToLatLng(bounds.min), this.containerPointToLatLng(bounds.max));
},
getOffset: function () {
var mCenter = this.getSize().divideBy(2);
var vCenter = this.getViewportBounds().getCenter();
return mCenter.subtract(vCenter);
},
getCenter: function (withoutViewport) {
var center = previousMethods.getCenter.call(this);
if (this.getViewport() && !withoutViewport) {
var zoom = this.getZoom();
var point = this.project(center, zoom);
point = point.subtract(this.getOffset());
center = this.unproject(point, zoom);
}
return center;
},
setView: function (center, zoom, options) {
center = L.latLng(center);
zoom = zoom === undefined ? this._zoom : this._limitZoom(zoom);
if (this.getViewport()) {
var point = this.project(center, this._limitZoom(zoom));
point = point.add(this.getOffset());
center = this.unproject(point, this._limitZoom(zoom));
}
return previousMethods.setView.call(this, center, zoom, options);
},
setZoomAround: function (latlng, zoom, options) {
var vp = this.getViewport();
if (vp) {
var scale = this.getZoomScale(zoom);
var viewHalf = this.getViewportBounds().getCenter();
var containerPoint = latlng instanceof L.Point ? latlng : this.latLngToContainerPoint(latlng);
var centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale);
var newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));
return this.setView(newCenter, zoom, { zoom: options });
}
return previousMethods.setZoomAround.call(this, latlng, zoom, options);
},
getBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number
bounds = L.latLngBounds(bounds);
padding = L.point(padding || [0, 0]);
var zoom = this.getZoom() || 0;
var min = this.getMinZoom();
var max = this.getMaxZoom();
var nw = bounds.getNorthWest();
var se = bounds.getSouthEast();
var vp = this.getViewport();
var size = (vp ? L.point(vp.clientWidth, vp.clientHeight) : this.getSize()).subtract(padding);
var boundsSize = this.project(se, zoom).subtract(this.project(nw, zoom));
var snap = L.Browser.any3d ? this.options.zoomSnap : 1;
var scale = Math.min(size.x / boundsSize.x, size.y / boundsSize.y);
zoom = this.getScaleZoom(scale, zoom);
if (snap) {
zoom = Math.round(zoom / (snap / 100)) * (snap / 100); // don't jump if within 1% of a snap level
zoom = inside ? Math.ceil(zoom / snap) * snap : Math.floor(zoom / snap) * snap;
}
return Math.max(min, Math.min(max, zoom));
}
});
L.Map.include({
setActiveArea: function (css, keepCenter, animate) {
var center;
if (keepCenter && this._zoom) {
// save center if map is already initialized
// and keepCenter is passed
center = this.getCenter();
}
if (!this._viewport) {
// Make viewport if not already made
var container = this.getContainer();
this._viewport = L.DomUtil.create('div', '');
container.insertBefore(this._viewport, container.firstChild);
}
if (typeof css === 'string') {
this._viewport.className = css;
} else {
L.extend(this._viewport.style, css);
}
if (center) {
this.setView(center, this.getZoom(), { animate: !!animate });
}
return this;
}
});
L.Renderer.include({
_onZoom: function () {
this._updateTransform(this._map.getCenter(true), this._map.getZoom());
},
_update: function () {
previousMethods.RendererUpdate.call(this);
this._center = this._map.getCenter(true);
}
});
L.GridLayer.include({
_updateLevels: function () {
var zoom = this._tileZoom;
var maxZoom = this.options.maxZoom;
if (zoom === undefined) {
return undefined;
}
for (var z in this._levels) {
if (this._levels[z].el.children.length || z === zoom) {
this._levels[z].el.style.zIndex = maxZoom - Math.abs(zoom - z);
} else {
L.DomUtil.remove(this._levels[z].el);
this._removeTilesAtZoom(z);
delete this._levels[z];
}
}
var level = this._levels[zoom];
var map = this._map;
if (!level) {
level = this._levels[zoom] = {};
level.el = L.DomUtil.create('div', 'leaflet-tile-container leaflet-zoom-animated', this._container);
level.el.style.zIndex = maxZoom;
level.origin = map.project(map.unproject(map.getPixelOrigin()), zoom).round();
level.zoom = zoom;
this._setZoomTransform(level, map.getCenter(true), map.getZoom());
// force the browser to consider the newly added element for transition
L.Util.falseFn(level.el.offsetWidth);
}
this._level = level;
return level;
},
_resetView: function (e) {
var animating = e && (e.pinch || e.flyTo);
this._setView(this._map.getCenter(true), this._map.getZoom(), animating, animating);
},
_update: function (center) {
var map = this._map;
if (!map) {
return;
}
var zoom = map.getZoom();
if (center === undefined) {
center = map.getCenter(this);
}
if (this._tileZoom === undefined) {
return;
} // if out of minzoom/maxzoom
var pixelBounds = this._getTiledPixelBounds(center);
var tileRange = this._pxBoundsToTileRange(pixelBounds);
var tileCenter = tileRange.getCenter();
var queue = [];
for (var key in this._tiles) {
this._tiles[key].current = false;
}
// _update just loads more tiles. If the tile zoom level differs too much
// from the map's, let _setView reset levels and prune old tiles.
if (Math.abs(zoom - this._tileZoom) > 1) {
this._setView(center, zoom);
return;
}
// create a queue of coordinates to load tiles from
for (var j = tileRange.min.y; j <= tileRange.max.y; j++) {
for (var i = tileRange.min.x; i <= tileRange.max.x; i++) {
var coords = new L.Point(i, j);
coords.z = this._tileZoom;
if (!this._isValidTile(coords)) {
continue;
}
var tile = this._tiles[this._tileCoordsToKey(coords)];
if (tile) {
tile.current = true;
} else {
queue.push(coords);
}
}
}
// sort tile queue to load tiles in order of their distance to center
queue.sort(function (a, b) {
return a.distanceTo(tileCenter) - b.distanceTo(tileCenter);
});
if (queue.length !== 0) {
// if its the first batch of tiles to load
if (!this._loading) {
this._loading = true;
// @event loading: Event
// Fired when the grid layer starts loading tiles
this.fire('loading');
}
// create DOM fragment to append tiles in one batch
var fragment = document.createDocumentFragment();
for (i = 0; i < queue.length; i++) {
this._addTile(queue[i], fragment);
}
this._level.el.appendChild(fragment);
}
}
});
});

View File

@ -15,11 +15,13 @@ define(function () {
el.appendChild(sidebar);
var button = document.createElement('button');
var visibility = new Event('visibility');
sidebar.appendChild(button);
button.classList.add('sidebarhandle');
button.setAttribute('aria-label', _.t('sidebar.toggle'));
button.onclick = function onclick() {
button.dispatchEvent(visibility);
sidebar.classList.toggle('hidden');
};
@ -28,7 +30,7 @@ define(function () {
sidebar.appendChild(container);
self.getWidth = function getWidth() {
if (gridBreakpoints.lg[0] > window.innerWidth) {
if (gridBreakpoints.lg[0] > window.innerWidth || sidebar.classList.contains('hidden')) {
return 0;
} else if (gridBreakpoints.xl[0] > window.innerWidth) {
return gridBreakpoints.lg[1];
@ -55,6 +57,7 @@ define(function () {
};
self.container = sidebar;
self.button = button;
return self;
};

View File

@ -9,8 +9,8 @@
"url": "https://github.com/ffrgb/meshviewer/issues"
},
"devDependencies": {
"babel-eslint": "^8.1.0",
"browser-sync": "^2.21.0",
"babel-eslint": "^8.1.1",
"browser-sync": "^2.19.0",
"eslint": "^4.14.0",
"eslint-config-airbnb-es5": "^1.2.0",
"eslint-config-defaults": "^9.0.0",

196
yarn.lock
View File

@ -108,10 +108,6 @@ after@0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627"
after@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
ajv-keywords@^1.0.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@ -386,10 +382,6 @@ async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
async-settle@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b"
@ -449,9 +441,9 @@ babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
babel-eslint@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.1.0.tgz#b6f32d598559f96127fa608bd19574626325d5b7"
babel-eslint@^8.1.1:
version "8.1.1"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.1.1.tgz#a0637faf5ba160ae9e445b360f4d5be295edf1ed"
dependencies:
"@babel/code-frame" "7.0.0-beta.31"
"@babel/traverse" "7.0.0-beta.31"
@ -490,9 +482,9 @@ base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
base64id@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
base64id@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f"
base@^0.11.1:
version "0.11.2"
@ -600,22 +592,29 @@ braces@^2.3.0:
split-string "^3.0.2"
to-regex "^3.0.1"
browser-sync-ui@v1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz#9740527b26d1d7ace259acc0c79e5b5e37d0fdf2"
browser-sync-client@2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.5.1.tgz#ec1ad69a49c2e2d4b645b18b1c06c29b3d9af8eb"
dependencies:
etag "^1.7.0"
fresh "^0.3.0"
browser-sync-ui@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-1.0.0.tgz#80c6cb5214e04218f1f2a3c8e2b1b830420f0b9f"
dependencies:
async-each-series "0.1.1"
connect-history-api-fallback "^1.1.0"
immutable "^3.7.6"
server-destroy "1.0.1"
socket.io-client "2.0.4"
stream-throttle "^0.1.3"
browser-sync@^2.21.0:
version "2.21.0"
resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.21.0.tgz#91cde3a8452f22f355ebe717ca1b3c1dbf9ca096"
browser-sync@^2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.19.0.tgz#8727742a87b6f6320fb293238a6ec8db57e4939a"
dependencies:
browser-sync-ui v1.0.1
browser-sync-client "2.5.1"
browser-sync-ui "1.0.0"
bs-recipes "1.3.4"
chokidar "1.7.0"
connect "3.5.0"
@ -623,8 +622,6 @@ browser-sync@^2.21.0:
easy-extender "2.3.2"
eazy-logger "3.0.2"
emitter-steward "^1.0.0"
etag "^1.8.1"
fresh "^0.5.2"
fs-extra "3.0.1"
http-proxy "1.15.2"
immutable "3.8.1"
@ -638,7 +635,7 @@ browser-sync@^2.21.0:
serve-index "1.8.0"
serve-static "1.12.2"
server-destroy "1.0.1"
socket.io "2.0.4"
socket.io "1.6.0"
socket.io-client "1.6.0"
ua-parser-js "0.7.12"
yargs "6.4.0"
@ -1241,7 +1238,7 @@ debug@3.X, debug@^3.0.1, debug@^3.1.0:
dependencies:
ms "2.0.0"
debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@~2.6.4, debug@~2.6.6, debug@~2.6.9:
debug@^2.1.1, debug@^2.2.0, debug@^2.3.3:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
@ -1497,22 +1494,6 @@ engine.io-client@1.8.0:
xmlhttprequest-ssl "1.5.3"
yeast "0.1.2"
engine.io-client@~3.1.0:
version "3.1.4"
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.4.tgz#4fcf1370b47163bd2ce9be2733972430350d4ea1"
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
debug "~2.6.9"
engine.io-parser "~2.1.1"
has-cors "1.1.0"
indexof "0.0.1"
parseqs "0.0.5"
parseuri "0.0.5"
ws "~3.3.1"
xmlhttprequest-ssl "~1.5.4"
yeast "0.1.2"
engine.io-parser@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.1.tgz#9554f1ae33107d6fbd170ca5466d2f833f6a07cf"
@ -1524,28 +1505,16 @@ engine.io-parser@1.3.1:
has-binary "0.1.6"
wtf-8 "1.0.0"
engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.1.tgz#e0fb3f0e0462f7f58bb77c1a52e9f5a7e26e4668"
dependencies:
after "0.8.2"
arraybuffer.slice "0.0.6"
base64-arraybuffer "0.1.5"
blob "0.0.4"
has-binary2 "~1.0.2"
engine.io@~3.1.0:
version "3.1.4"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.4.tgz#3d0211b70a552ce841ffc7da8627b301a9a4162e"
engine.io@1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.0.tgz#3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa"
dependencies:
accepts "1.3.3"
base64id "1.0.0"
base64id "0.1.0"
cookie "0.3.1"
debug "~2.6.9"
engine.io-parser "~2.1.0"
ws "~3.3.1"
optionalDependencies:
uws "~0.14.4"
debug "2.3.3"
engine.io-parser "1.3.1"
ws "1.1.1"
entities@1.0:
version "1.0.0"
@ -1794,7 +1763,7 @@ esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
etag@^1.8.1, etag@~1.8.0:
etag@^1.7.0, etag@~1.8.0:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
@ -2129,9 +2098,9 @@ fresh@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
fresh@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
fresh@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
from@~0:
version "0.1.7"
@ -2736,12 +2705,6 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
has-binary2@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
dependencies:
isarray "2.0.1"
has-binary@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10"
@ -3294,10 +3257,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
isarray@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@ -4164,6 +4123,10 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
object-assign@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
object-assign@4.1.x, object-assign@4.X, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@ -5154,9 +5117,12 @@ sntp@2.x.x:
dependencies:
hoek "4.x.x"
socket.io-adapter@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
socket.io-adapter@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
dependencies:
debug "2.3.3"
socket.io-parser "2.3.1"
socket.io-client@1.6.0:
version "1.6.0"
@ -5174,24 +5140,6 @@ socket.io-client@1.6.0:
socket.io-parser "2.3.1"
to-array "0.1.4"
socket.io-client@2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e"
dependencies:
backo2 "1.0.2"
base64-arraybuffer "0.1.5"
component-bind "1.0.0"
component-emitter "1.2.1"
debug "~2.6.4"
engine.io-client "~3.1.0"
has-cors "1.1.0"
indexof "0.0.1"
object-component "0.0.3"
parseqs "0.0.5"
parseuri "0.0.5"
socket.io-parser "~3.1.1"
to-array "0.1.4"
socket.io-parser@2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
@ -5201,24 +5149,17 @@ socket.io-parser@2.3.1:
isarray "0.0.1"
json3 "3.3.2"
socket.io-parser@~3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.2.tgz#dbc2282151fc4faebbe40aeedc0772eba619f7f2"
socket.io@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.6.0.tgz#3e40d932637e6bd923981b25caf7c53e83b6e2e1"
dependencies:
component-emitter "1.2.1"
debug "~2.6.4"
has-binary2 "~1.0.2"
isarray "2.0.1"
socket.io@2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014"
dependencies:
debug "~2.6.6"
engine.io "~3.1.0"
socket.io-adapter "~1.1.0"
socket.io-client "2.0.4"
socket.io-parser "~3.1.1"
debug "2.3.3"
engine.io "1.8.0"
has-binary "0.1.7"
object-assign "4.1.0"
socket.io-adapter "0.5.0"
socket.io-client "1.6.0"
socket.io-parser "2.3.1"
source-map-resolve@^0.3.0:
version "0.3.1"
@ -5717,20 +5658,13 @@ uglify-js@3.1.x:
commander "~2.11.0"
source-map "~0.6.1"
uglify-js@3.2.x:
uglify-js@3.2.x, uglify-js@^3.0.5:
version "3.2.2"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.2.2.tgz#870e4b34ed733d179284f9998efd3293f7fd73f6"
dependencies:
commander "~2.12.1"
source-map "~0.6.1"
uglify-js@^3.0.5:
version "3.3.0"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.0.tgz#5d36460ccdb144a7aedb13f0dcdb7a76909e6682"
dependencies:
commander "~2.12.1"
source-map "~0.6.1"
uid-number@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
@ -5739,10 +5673,6 @@ ultron@1.0.x:
version "1.0.2"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
ultron@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
unc-path-regex@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
@ -5868,10 +5798,6 @@ uuid@^3.0.0, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
uws@~0.14.4:
version "0.14.5"
resolved "https://registry.yarnpkg.com/uws/-/uws-0.14.5.tgz#67aaf33c46b2a587a5f6666d00f7691328f149dc"
v8flags@^2.0.9:
version "2.1.1"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
@ -6020,14 +5946,6 @@ ws@1.1.1:
options ">=0.0.5"
ultron "1.0.x"
ws@~3.3.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
dependencies:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
ultron "~1.1.0"
wtf-8@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
@ -6051,10 +5969,6 @@ xmlhttprequest-ssl@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
xmlhttprequest-ssl@~1.5.4:
version "1.5.4"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.4.tgz#04f560915724b389088715cc0ed7813e9677bf57"
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"