Justin Poehnelt 3 years ago committed by GitHub
parent
commit
134ca3ed56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14143
      package-lock.json
  2. 2
      package.json
  3. 66
      src/marker.ts
  4. 1
      tsconfig.json

14143
package-lock.json generated

File diff suppressed because it is too large Load Diff

2
package.json

@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
"@babel/preset-env": "^7.12.13",
"@babel/runtime-corejs3": "^7.13.8",
"@googlemaps/jest-mocks": "^0.1.0",
"@types/googlemaps": "^3.43.3",
"@types/google.maps": "^3.44.0",
"@types/jest": "^26.0.20",
"@types/selenium-webdriver": "^4.0.11",
"@typescript-eslint/eslint-plugin": ">=4.15.0",

66
src/marker.ts

@ -46,7 +46,7 @@ export class MarkerWithLabel extends MarkerSafe { @@ -46,7 +46,7 @@ export class MarkerWithLabel extends MarkerSafe {
private isMouseDownOnLabel = false;
private shouldIgnoreClick = false;
private eventOffset: google.maps.Point | null;
private mouseOutTimeout: number;
private mouseOutTimeout: ReturnType<typeof setTimeout>;
constructor(options: MarkerWithLabelOptions) {
super({ ...options });
@ -212,40 +212,48 @@ export class MarkerWithLabel extends MarkerSafe { @@ -212,40 +212,48 @@ export class MarkerWithLabel extends MarkerSafe {
});
abortEvent(e);
}),
google.maps.event.addListener(this.getMap(), MOUSEMOVE, (e) => {
if (this.isMouseDownOnLabel && this.getDraggable()) {
if (this.isDraggingLabel) {
// Adjust for offset
const position = new google.maps.LatLng(
e.latLng.lat() - this.eventOffset.y,
e.latLng.lng() - this.eventOffset.x
);
// this.setPosition(position);
google.maps.event.trigger(this, DRAG, {
...e,
latLng: position,
});
} else {
this.isDraggingLabel = true;
google.maps.event.addListener(
this.getMap(),
MOUSEMOVE,
(e: google.maps.MapMouseEvent) => {
if (this.isMouseDownOnLabel && this.getDraggable()) {
if (this.isDraggingLabel) {
// Adjust for offset
const position = new google.maps.LatLng(
e.latLng.lat() - this.eventOffset.y,
e.latLng.lng() - this.eventOffset.x
);
// this.setPosition(position);
google.maps.event.trigger(this, DRAG, {
...e,
latLng: position,
});
} else {
this.isDraggingLabel = true;
// Calculate and store event offset from marker position
this.eventOffset = new google.maps.Point(
e.latLng.lng() - this.getPosition().lng(),
e.latLng.lat() - this.getPosition().lat()
);
google.maps.event.trigger(this, DRAGSTART, {
...e,
latLng: this.getPosition(),
});
// Calculate and store event offset from marker position
this.eventOffset = new google.maps.Point(
e.latLng.lng() - this.getPosition().lng(),
e.latLng.lat() - this.getPosition().lat()
);
google.maps.event.trigger(this, DRAGSTART, {
...e,
latLng: this.getPosition(),
});
}
}
}
}),
),
google.maps.event.addListener(this, DRAGSTART, () => {
this.label.zIndex = 1000000;
}),
google.maps.event.addListener(this, DRAG, ({ latLng }) => {
this.setPosition(latLng);
}),
google.maps.event.addListener(
this,
DRAG,
({ latLng }: google.maps.MapMouseEvent) => {
this.setPosition(latLng);
}
),
google.maps.event.addListener(this, DRAGEND, () => {
this.label.zIndex = this.getZIndex();
this.label.draw();

1
tsconfig.json

@ -7,7 +7,6 @@ @@ -7,7 +7,6 @@
"sourceMap": true,
"esModuleInterop": true,
"lib": ["DOM", "ESNext"],
"types": ["googlemaps", "jest"],
"target": "ES6",
"moduleResolution": "node"
},

Loading…
Cancel
Save