From 93d4b27e457bbfd8c312bedcccd4ba1d9051c16f Mon Sep 17 00:00:00 2001 From: soal Date: Thu, 2 May 2019 14:32:18 +0300 Subject: [PATCH 1/3] Added initial DOM events on Marker implementation --- src/components/UI/Marker.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/UI/Marker.vue b/src/components/UI/Marker.vue index 6c78af63..c7123c8e 100644 --- a/src/components/UI/Marker.vue +++ b/src/components/UI/Marker.vue @@ -17,6 +17,12 @@ const markerEvents = { dragend: "dragend" }; +const markerDOMEvents = { + click: "click", + mouseenter: "mouseenter", + mouseleave: "mouseleave" +}; + export default { name: "MapMarker", mixins: [withEvents, withSelfEvents], @@ -110,7 +116,7 @@ export default { methods: { $_addMarker() { this.marker.setLngLat(this.coordinates).addTo(this.map); - + this.$_bindMarkerDOMEvents(); this.$_emitEvent("added", { marker: this.marker }); }, @@ -118,6 +124,16 @@ export default { this.$_emitMapEvent(event, { marker: this.marker }); }, + $_bindMarkerDOMEvents() { + Object.keys(this.$listeners).forEach(key => { + if (markerDOMEvents.includes(key)) { + this.marker._element.addEventListener(key, event => { + this.$_emitSelfEvent(event); + }); + } + }); + }, + remove() { this.marker.remove(); this.$_emitEvent("removed"); From d89a05bbd976df6a6854e67f7b08ba8da61b2453 Mon Sep 17 00:00:00 2001 From: soal Date: Thu, 2 May 2019 14:41:36 +0300 Subject: [PATCH 2/3] =?UTF-8?q?Fixed=20Marker=20DOM=C2=A0events=20names?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/UI/Marker.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/UI/Marker.vue b/src/components/UI/Marker.vue index c7123c8e..0c22690c 100644 --- a/src/components/UI/Marker.vue +++ b/src/components/UI/Marker.vue @@ -126,7 +126,7 @@ export default { $_bindMarkerDOMEvents() { Object.keys(this.$listeners).forEach(key => { - if (markerDOMEvents.includes(key)) { + if (Object.values(markerDOMEvents).includes(key)) { this.marker._element.addEventListener(key, event => { this.$_emitSelfEvent(event); }); From a3f9e0e7573c81ad44ee71e5c6495b05cd6429be Mon Sep 17 00:00:00 2001 From: soal Date: Thu, 2 May 2019 14:49:51 +0300 Subject: [PATCH 3/3] Marker docs update --- docs_source/api/marker.md | 54 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/docs_source/api/marker.md b/docs_source/api/marker.md index 8de93431..89a7213e 100644 --- a/docs_source/api/marker.md +++ b/docs_source/api/marker.md @@ -75,14 +75,62 @@ ### `@drag` - **Description:** Fires when marker dragged if marker `draggable` prop is `true` -- **Payload** `{ component: MarkerComponent, map: Map, MapEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event +- **Payload** `{ component: MarkerComponent, map: Map, mapboxEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event ### `@dragstart` - **Description:** Fires when marker dragging starts if marker `draggable` prop is `true` -- **Payload** `{ component: MarkerComponent, map: Map, MapEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event +- **Payload** `{ component: MarkerComponent, map: Map, mapboxEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event ### `@dragend` - **Description:** Fires when marker dragging ends if marker `draggable` prop is `true` -- **Payload** `{ component: MarkerComponent, map: Map, MapEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event +- **Payload** `{ component: MarkerComponent, map: Map, mapboxEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event + +### `@click` + +- **Description:** Fires marker is clicked. +- **Payload** + +``` + { + component: MarkerComponent, + map: Map, + mapboxEvent: DOMEvent, + marker: Marker + } +``` + +Object with `Marker` component, parent map and original MapboxGl event + +### `@mouseenter` + +- **Description:** Fires when mouse cursor enters marker area. +- **Payload** + +``` + { + component: MarkerComponent, + map: Map, + mapboxEvent: DOMEvent, + marker: Marker + } +``` + +Object with `Marker` component, parent map and original MapboxGl event + +### `@mouseleave` + +- **Description:** Fires when mouse cursor leaves marker area. +- **Payload** + +``` + { + component: MarkerComponent, + map: Map, + mapboxEvent: DOMEvent, + marker: Marker + } +``` + +Object with `Marker` component, parent map and original MapboxGl event