Skip to content

Commit 070c07f

Browse files
authored
Merge pull request #164 from osmlab/pre-merge
Merge v1.1.0 into master
2 parents fbad275 + 1ff1e6b commit 070c07f

File tree

10 files changed

+344
-147
lines changed

10 files changed

+344
-147
lines changed

.npmignore

Whitespace-only changes.

?

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#FFF}.toast-message a:hover{color:#CCC;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#FFF;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#FFF;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51A351}.toast-error{background-color:#BD362F}.toast-info{background-color:#2F96B4}.toast-warning{background-color:#F89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}

lib/config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export const config = {
2-
overpassBase: '//overpass-cfn-production.tilestream.net/api/interpreter',
3-
osmBase: '//www.openstreetmap.org/api/0.6/',
2+
overpassBase: 'https://overpass.maptime.in/api/interpreter',
3+
osmBase: 'https://www.openstreetmap.org/api/0.6/',
44
mapboxAccessToken:
55
'pk.eyJ1IjoicmFzYWd5IiwiYSI6ImNpejVrMjc4eTAwNGczM2thNWozYnJ1OHkifQ.yFRr3Sd39TJiwEguQpIkWQ',
6-
S3_URL: '//s3.amazonaws.com/mapbox/real-changesets/production/'
6+
S3_URL: 'https://s3.amazonaws.com/mapbox/real-changesets/production/'
77
};

lib/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ export { config } from './config';
22
export { getChangeset } from './getChangeset';
33
export { query } from './query';
44
export { propsDiff } from './propsDiff';
5-
export { render } from './render';
5+
export { render, getMapInstance, getGL } from './render';

lib/map.js

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -614,15 +614,31 @@ export class Map {
614614
}
615615

616616
renderMap(baseLayer, result) {
617+
if (!result) {
618+
if (!this.result) return;
619+
result = this.result;
620+
} else {
621+
this.result = result;
622+
}
617623
var bounds = getBounds(result.changeset.bbox);
618-
this.result = result;
619624
if (this.map) {
620625
if (!this.mapLoaded) {
621626
this.queue.push([result, bounds]); // TOFIX use variable instead of array
627+
this.result = result;
622628
return;
623629
}
624-
this.addMapSource(result, bounds);
625-
this.map.fitBounds(bounds, { linear: true, padding: 200 });
630+
631+
if (baseLayer && this.oldBaseLayer !== baseLayer) {
632+
this.map.setStyle(baseLayer);
633+
this.baseLayerData = [result, bounds];
634+
this.oldBaseLayer = baseLayer;
635+
} else {
636+
this.oldBaseLayer = baseLayer;
637+
this.addMapSource(result, bounds);
638+
this.map.fitBounds(bounds, { linear: true, padding: 200 });
639+
this.result = result;
640+
clearDiff();
641+
}
626642

627643
// why not re attach on('click')
628644
// if the map is still mounted
@@ -639,7 +655,17 @@ export class Map {
639655
dragRotate: false,
640656
touchZoomRotate: false
641657
});
642-
658+
this.map.on('styledata', () => {
659+
if (!this.baseLayerData) return;
660+
console.log('style event fired 2');
661+
var bounds = this.baseLayerData[1];
662+
var result = this.baseLayerData[0];
663+
this.baseLayerData = null;
664+
this.map.fitBounds(bounds, { linear: true, padding: 200 });
665+
this.addMapSource(result, bounds);
666+
this.addMapLayers();
667+
cmap.emit('load');
668+
});
643669
this.map.on('load', () => {
644670
this.mapLoaded = true;
645671
if (this.queue.length > 0) {

lib/query.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export function query(changesetID) {
2121
var uid = cs.uid.textContent;
2222
var user = cs.user.textContent;
2323
var from = moment(cs.created_at.textContent, 'YYYY-MM-DDTHH:mm:ss\\Z')
24-
.subtract('seconds', 1)
24+
.subtract(1, 'seconds')
2525
.format('YYYY-MM-DDTHH:mm:ss\\Z');
2626
var to = cs.closed_at ? cs.closed_at.textContent : null;
2727
var left = cs.min_lon ? cs.min_lon.textContent : -180;

lib/render.js

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function render(container, changesetId, options) {
2828
}
2929

3030
if (options.data) {
31-
_render(container, changesetId, options.data);
31+
_render(container, changesetId, options.data, options.disableSidebar);
3232
} else {
3333
getChangeset(changesetId, options.overpassBase)
3434
.then(result => _render(container, changesetId, result))
@@ -39,9 +39,15 @@ export function render(container, changesetId, options) {
3939

4040
return cmap;
4141
}
42+
export function getMapInstance() {
43+
return map;
44+
}
45+
export function getGL() {
46+
return mapboxgl;
47+
}
4248

43-
function _render(container, changesetId, result) {
44-
renderHTML(container, changesetId, result);
49+
function _render(container, changesetId, result, disableSidebar) {
50+
renderHTML(container, changesetId, result, disableSidebar);
4551

4652
container.classList.remove('cmap-loading');
4753

@@ -66,7 +72,7 @@ function _render(container, changesetId, result) {
6672
}
6773

6874
// Sets initial markup for info box and map container
69-
function renderHTML(container, changesetId, result) {
75+
function renderHTML(container, changesetId, result, disableSidebar) {
7076
var info;
7177
if (document.getElementById('seat')) {
7278
info = document.getElementById('seat');
@@ -97,28 +103,30 @@ function renderHTML(container, changesetId, result) {
97103
style={{ display: 'none' }}
98104
/>
99105
</div>
100-
<Sidebar
101-
result={result}
102-
changesetId={changesetId}
103-
filterLayers={map.filterLayers}
104-
toggleLayer={function(e) {
105-
var layer = e.target.value;
106-
if (layer === 'satellite') {
107-
map.renderMap(
108-
'mapbox://styles/rasagy/cizp6lsah00ct2snu6gi3p16q',
109-
result
110-
);
111-
}
112-
113-
if (layer === 'dark') {
114-
map.renderMap('mapbox://styles/mapbox/dark-v9', result);
115-
}
116-
117-
if (layer === 'streets') {
118-
map.renderMap('mapbox://styles/mapbox/streets-v9', result);
119-
}
120-
}}
121-
/>
106+
{!disableSidebar && (
107+
<Sidebar
108+
result={result}
109+
changesetId={changesetId}
110+
filterLayers={map.filterLayers}
111+
toggleLayer={function(e) {
112+
var layer = e.target.value;
113+
if (layer === 'satellite') {
114+
map.renderMap(
115+
'mapbox://styles/rasagy/cizp6lsah00ct2snu6gi3p16q',
116+
result
117+
);
118+
}
119+
120+
if (layer === 'dark') {
121+
map.renderMap('mapbox://styles/mapbox/dark-v9', result);
122+
}
123+
124+
if (layer === 'streets') {
125+
map.renderMap('mapbox://styles/mapbox/streets-v9', result);
126+
}
127+
}}
128+
/>
129+
)}
122130
</div>,
123131
info
124132
);

package.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "changeset-map",
3-
"version": "0.9.0",
3+
"version": "1.1.0",
44
"description": "",
55
"main": "dist/bundle.js",
66
"scripts": {
@@ -14,15 +14,19 @@
1414
},
1515
"author": "",
1616
"license": "ISC",
17+
"peerDependencies": {
18+
"react": "^15.5.4",
19+
"react-dom": "^15.5.4"
20+
},
1721
"dependencies": {
1822
"@turf/bbox-polygon": "^4.3.0",
1923
"@turf/helpers": "^4.3.0",
2024
"mapbox-gl": "^0.37.0",
25+
"global": "^4.3.2",
2126
"moment": "^2.18.1",
2227
"osm-adiff-parser-saxjs": "^1.0.0",
23-
"react": "^15.5.4",
24-
"react-dom": "^15.5.4",
2528
"real-changesets-parser": "^1.2.3",
29+
"rollup-plugin-uglify": "^2.0.1",
2630
"sax": "^1.2.2",
2731
"xhr": "^2.4.0"
2832
},
@@ -40,7 +44,7 @@
4044
"lint-staged": "^3.4.1",
4145
"prettier": "^1.3.1",
4246
"prettier-eslint-cli": "^3.4.3",
43-
"rollup": "^0.41.6",
47+
"rollup": "^0.42.0",
4448
"rollup-plugin-babel": "^2.7.1",
4549
"rollup-plugin-butternut": "^0.1.0",
4650
"rollup-plugin-commonjs": "^8.0.2",

rollup.plugin.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import builtins from 'rollup-plugin-node-builtins';
66
import globals from 'rollup-plugin-node-globals';
77
import eslint from 'rollup-plugin-eslint';
88
import sizes from 'rollup-plugin-sizes';
9-
import uglify from 'rollup-plugin-uglify';
109
export default {
1110
entry: 'lib/index.js',
1211
dest: 'dist/bundle.js',

0 commit comments

Comments
 (0)