aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json91
-rw-r--r--src/client/views/nodes/MapBox/MapBox.tsx150
2 files changed, 155 insertions, 86 deletions
diff --git a/package-lock.json b/package-lock.json
index 356224577..00410e3be 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7094,12 +7094,97 @@
"strip-ansi": "^7.0.1"
}
},
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
"strip-ansi": {
"version": "7.1.0",
"bundled": true,
"requires": {
"ansi-regex": "^6.0.1"
}
+ },
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ }
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
}
}
},
@@ -8604,7 +8689,7 @@
}
},
"string-width-cjs": {
- "version": "npm:string-width@4.2.3",
+ "version": "npm:string-width-cjs@4.2.3",
"bundled": true,
"requires": {
"emoji-regex": "^8.0.0",
@@ -8627,7 +8712,7 @@
}
},
"strip-ansi-cjs": {
- "version": "npm:strip-ansi@6.0.1",
+ "version": "npm:strip-ansi-cjs@6.0.1",
"bundled": true,
"requires": {
"ansi-regex": "^5.0.1"
@@ -8786,7 +8871,7 @@
}
},
"wrap-ansi-cjs": {
- "version": "npm:wrap-ansi@7.0.0",
+ "version": "npm:wrap-ansi-cjs@7.0.0",
"bundled": true,
"requires": {
"ansi-styles": "^4.0.0",
diff --git a/src/client/views/nodes/MapBox/MapBox.tsx b/src/client/views/nodes/MapBox/MapBox.tsx
index 93020354d..48bc02f84 100644
--- a/src/client/views/nodes/MapBox/MapBox.tsx
+++ b/src/client/views/nodes/MapBox/MapBox.tsx
@@ -357,15 +357,16 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
createNoteAnnotation = () => {
!this.layoutDoc.layout_showSidebar && this.toggleSidebar();
- setTimeout(undoable(() => {
- const note = this._sidebarRef.current?.anchorMenuClick(this.getAnchor(false));
- if (note && this.selectedPin) {
- note.latitude = this.selectedPin.latitude;
- note.longitude = this.selectedPin.latitude;
- }
- },"create note annotation"))
-
- }
+ setTimeout(
+ undoable(() => {
+ const note = this._sidebarRef.current?.anchorMenuClick(this.getAnchor(false));
+ if (note && this.selectedPin) {
+ note.latitude = this.selectedPin.latitude;
+ note.longitude = this.selectedPin.latitude;
+ }
+ }, 'create note annotation')
+ );
+ };
sidebarDown = (e: React.PointerEvent) => {
setupMoveUpEvents(this, e, this.sidebarMove, emptyFunction, () => setTimeout(this.toggleSidebar), true);
};
@@ -510,7 +511,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
this.addDocument(mapMarker, this.annotationKey);
// mapMarker.infoWindowOpen = true;
- },"createpin");
+ }, 'createpin');
/*
* Pushpin dblclick
@@ -529,8 +530,8 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
deselectPin = () => {
if (this.selectedPin) {
// Removes filter
- Doc.setDocFilter(this.rootDoc, "latitude", this.selectedPin.latitude, "remove");
- Doc.setDocFilter(this.rootDoc, "longitude", this.selectedPin.longitude, "remove");
+ Doc.setDocFilter(this.rootDoc, 'latitude', this.selectedPin.latitude, 'remove');
+ Doc.setDocFilter(this.rootDoc, 'longitude', this.selectedPin.longitude, 'remove');
const temp = this.selectedPin;
this._bingMap.current.entities.remove(this.map_docToPinMap.get(temp));
@@ -539,10 +540,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
this._bingMap.current.entities.push(newpin);
this.map_docToPinMap.set(temp, newpin);
this.selectedPin = undefined;
-
-
}
-
};
getView = async (doc: Doc) => {
@@ -557,8 +555,8 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
this.deselectPin();
this.selectedPin = pinDoc;
- Doc.setDocFilter(this.rootDoc, "latitude", this.selectedPin.latitude, "match");
- Doc.setDocFilter(this.rootDoc, "longitude", this.selectedPin.latitude, "match");
+ Doc.setDocFilter(this.rootDoc, 'latitude', this.selectedPin.latitude, 'match');
+ Doc.setDocFilter(this.rootDoc, 'longitude', this.selectedPin.latitude, 'match');
this._bingMap.current.entities.remove(this.map_docToPinMap.get(this.selectedPin));
const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(this.selectedPin.latitude, this.selectedPin.longitude), {
@@ -579,10 +577,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
MapAnchorMenu.Instance.jumpTo(cpt[0], cpt[1], true);
document.addEventListener('pointerdown', this.tryHideMapAnchorMenu, true);
- this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'click', this.mapOnClick);
-
// Filter sidebar:
-
};
/**
@@ -596,13 +591,7 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
* Map OnClick
*/
@action
- mapOnClick = (e: { location: { latitude: any; longitude: any } }) => {
- if (this.selectedPin) {
- this.deselectPin();
- this.MicrosoftMaps.Events.removeEventListener(this._bingMap.current, 'click', this.mapOnClick);
- }
- };
-
+ mapOnClick = (e: { location: { latitude: any; longitude: any } }) => this.deselectPin();
/*
* Updates values of layout doc to match the current map
*/
@@ -720,15 +709,14 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
this._bingMap.current.entities.remove(this.map_docToPinMap.get(pinDoc));
this.map_docToPinMap.delete(pinDoc);
this.selectedPin = undefined;
-
};
@action
deleteSelectedPin = undoable(() => {
if (this.selectedPin) {
// Removes filter
- Doc.setDocFilter(this.rootDoc, "latitude", this.selectedPin.latitude, "remove");
- Doc.setDocFilter(this.rootDoc, "longitude", this.selectedPin.longitude, "remove");
+ Doc.setDocFilter(this.rootDoc, 'latitude', this.selectedPin.latitude, 'remove');
+ Doc.setDocFilter(this.rootDoc, 'longitude', this.selectedPin.longitude, 'remove');
this.removePushpin(this.selectedPin);
}
@@ -818,62 +806,58 @@ export class MapBox extends ViewBoxAnnotatableComponent<ViewBoxAnnotatableProps
if (!this._bingMap.current) {
alert('NO Map!?');
}
+ this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'click', this.mapOnClick);
this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'viewchangeend', undoable(this.updateLayout, 'Map Layout Change'));
this.MicrosoftMaps.Events.addHandler(this._bingMap.current, 'maptypechanged', undoable(this.updateMapType, 'Map ViewType Change'));
this.updateLayout();
- this._disposer.highlight = reaction( () => this.allMapPushpins.map(doc => doc[Highlight]),
- () => this.allMapPushpins.forEach(doc => {
-
- // if(doc[Highlight]){
- // this.deselectPin();
- // this.selectedPin = doc;
-
- // Doc.setDocFilter(this.rootDoc, "latitude", this.selectedPin.latitude, "match");
- // Doc.setDocFilter(this.rootDoc, "longitude", this.selectedPin.latitude, "match");
-
- // this._bingMap.current.entities.remove(this.map_docToPinMap.get(this.selectedPin));
- // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(this.selectedPin.latitude, this.selectedPin.longitude), {
- // color: 'green',
- // });
- // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(this.selectedPin as Doc));
- // this._bingMap.current.entities.push(newpin);
- // this.map_docToPinMap.set(this.selectedPin, newpin);
-
- // MapAnchorMenu.Instance.Delete = this.deleteSelectedPin;
- // MapAnchorMenu.Instance.Center = this.centerOnSelectedPin;
- // MapAnchorMenu.Instance.LinkNote = this.createNoteAnnotation;
- // }
- // if (doc[Highlight]) {
- // this._bingMap.current.entities.remove(this.map_docToPinMap.get(doc));
- // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(doc.latitude, doc.longitude), {
- // color: 'orange',
- // });
- // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(doc));
- // this._bingMap.current.entities.push(newpin);
- // this.map_docToPinMap.set(doc, newpin);
-
- // }
- // if (this.map_docToPinMap.get(doc).getColor() == 'orange' && !doc[Highlight]) {
- // this._bingMap.current.entities.remove(this.map_docToPinMap.get(doc));
- // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(doc.latitude, doc.longitude), {});
- // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(doc));
- // this._bingMap.current.entities.push(newpin);
- // this.map_docToPinMap.set(doc, newpin);
-
- // }
- // else if (this.map_docToPinMap.get(doc).getColor() != 'orange' && doc[Highlight]) {
- // this._bingMap.current.entities.remove(this.map_docToPinMap.get(doc));
- // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(doc.latitude, doc.longitude), {
- // color: 'orange',
- // });
- // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(doc));
- // this._bingMap.current.entities.push(newpin);
- // this.map_docToPinMap.set(doc, newpin);
- // }
-
-
- })
- , {fireImmediately: true})
+ this._disposer.highlight = reaction(
+ () => this.allMapPushpins.map(doc => doc[Highlight]),
+ () =>
+ this.allMapPushpins.forEach(doc => {
+ // if(doc[Highlight]){
+ // this.deselectPin();
+ // this.selectedPin = doc;
+ // Doc.setDocFilter(this.rootDoc, "latitude", this.selectedPin.latitude, "match");
+ // Doc.setDocFilter(this.rootDoc, "longitude", this.selectedPin.latitude, "match");
+ // this._bingMap.current.entities.remove(this.map_docToPinMap.get(this.selectedPin));
+ // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(this.selectedPin.latitude, this.selectedPin.longitude), {
+ // color: 'green',
+ // });
+ // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(this.selectedPin as Doc));
+ // this._bingMap.current.entities.push(newpin);
+ // this.map_docToPinMap.set(this.selectedPin, newpin);
+ // MapAnchorMenu.Instance.Delete = this.deleteSelectedPin;
+ // MapAnchorMenu.Instance.Center = this.centerOnSelectedPin;
+ // MapAnchorMenu.Instance.LinkNote = this.createNoteAnnotation;
+ // }
+ // if (doc[Highlight]) {
+ // this._bingMap.current.entities.remove(this.map_docToPinMap.get(doc));
+ // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(doc.latitude, doc.longitude), {
+ // color: 'orange',
+ // });
+ // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(doc));
+ // this._bingMap.current.entities.push(newpin);
+ // this.map_docToPinMap.set(doc, newpin);
+ // }
+ // if (this.map_docToPinMap.get(doc).getColor() == 'orange' && !doc[Highlight]) {
+ // this._bingMap.current.entities.remove(this.map_docToPinMap.get(doc));
+ // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(doc.latitude, doc.longitude), {});
+ // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(doc));
+ // this._bingMap.current.entities.push(newpin);
+ // this.map_docToPinMap.set(doc, newpin);
+ // }
+ // else if (this.map_docToPinMap.get(doc).getColor() != 'orange' && doc[Highlight]) {
+ // this._bingMap.current.entities.remove(this.map_docToPinMap.get(doc));
+ // const newpin = new this.MicrosoftMaps.Pushpin(new this.MicrosoftMaps.Location(doc.latitude, doc.longitude), {
+ // color: 'orange',
+ // });
+ // this.MicrosoftMaps.Events.addHandler(newpin, 'click', (e: any) => this.pushpinClicked(doc));
+ // this._bingMap.current.entities.push(newpin);
+ // this.map_docToPinMap.set(doc, newpin);
+ // }
+ }),
+ { fireImmediately: true }
+ );
// this.updateMapType();
this._disposer.location = reaction(
() => ({ lat: this.rootDoc.latitude, lng: this.rootDoc.longitude, zoom: this.rootDoc.mapZoom, mapType: this.rootDoc.mapType }),