Unverified Commit 07a6a01d authored by Nicolò Maria Mezzopera's avatar Nicolò Maria Mezzopera Committed by GitHub
Browse files

Merge pull request #31 from vue-leaflet/leaflet-p-i-wrapper

Leaflet provide/inject wrapper
parents c8679280 c40ea08c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ export default {
  setup(props) {
    const leafletRef = ref({});

    const lMethods = inject("leafLetMethods");
    const registerLayerControl = inject("registerLayerControl");
    const { options, methods } = controlSetup(props, leafletRef);
    onMounted(async () => {
      const { control, setOptions } = await import(
@@ -19,7 +19,7 @@ export default {
      leafletRef.value = control.layers(null, null, options);
      propsBinder(methods, leafletRef.value, props, setOptions);

      lMethods.registerLayerControl({
      registerLayerControl({
        ...props,
        ...methods,
        leafletObject: leafletRef.value,
+9 −19
Original line number Diff line number Diff line
@@ -5,20 +5,14 @@
</template>

<script>
import {
  onMounted,
  onBeforeUnmount,
  computed,
  provide,
  reactive,
  ref,
} from "vue";
import { onMounted, onBeforeUnmount, computed, reactive, ref } from "vue";
import {
  remapEvents,
  propsBinder,
  debounce,
  resetWebpackIcon,
  generatePlaceholderMethods,
  provideLeafletWrapper,
  updateLeafletWrapper,
} from "../utils.js";

export default {
@@ -169,13 +163,9 @@ export default {
      markerZoomAnimation: props.markerZoomAnimation,
    };

    const schematics = generatePlaceholderMethods([
      "addLayer",
      "removeLayer",
      "registerLayerControl",
    ]);

    provide("leafLetMethods", schematics);
    const addLayer = provideLeafletWrapper("addLayer");
    const removeLayer = provideLeafletWrapper("removeLayer");
    const registerLayerControl = provideLeafletWrapper("registerLayerControl");

    const eventHandlers = {
      moveEndHandler() {
@@ -335,9 +325,9 @@ export default {
        },
      };

      schematics.addLayer = methods.addLayer;
      schematics.removeLayer = methods.removeLayer;
      schematics.registerLayerControl = methods.registerLayerControl;
      updateLeafletWrapper(addLayer, methods.addLayer);
      updateLeafletWrapper(removeLayer, methods.removeLayer);
      updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);

      blueprint.leafletRef = map(root.value, options);

+14 −15
Original line number Diff line number Diff line
<script>
import { onMounted, ref, inject, h } from "vue";
import { onMounted, ref, h, inject } from "vue";
import {
  remapEvents,
  propsBinder,
  debounce,
  generatePlaceholderMethods,
  provideLeafletWrapper,
  updateLeafletWrapper,
} from "../utils.js";
import { props, setup as markerSetup } from "../functions/marker";

@@ -18,21 +19,19 @@ export default {
    const leafletRef = ref({});
    const ready = ref(false);

    const schematics = generatePlaceholderMethods(["latLng"]);
    const addLayer = inject("addLayer");

    const lMethods = inject("leafLetMethods");
    const { options, methods } = markerSetup(
      props,
      leafletRef,
      context,
      schematics
    );
    const latLng = provideLeafletWrapper("latLng");
    const { options, methods } = markerSetup(props, leafletRef, context);

    onMounted(async () => {
      const { marker, DomEvent, latLng, setOptions } = await import(
        "leaflet/dist/leaflet-src.esm"
      );
      schematics.latLng = latLng;
      const {
        marker,
        DomEvent,
        latLng: leafletLatLng,
        setOptions,
      } = await import("leaflet/dist/leaflet-src.esm");
      updateLeafletWrapper(latLng, leafletLatLng);

      leafletRef.value = marker(props.latLng, options);

@@ -41,7 +40,7 @@ export default {

      leafletRef.value.on("move", debounce(methods.latLngSync, 100));
      propsBinder(methods, leafletRef.value, props, setOptions);
      lMethods.addLayer({
      addLayer({
        ...props,
        ...methods,
        leafletObject: leafletRef.value,
+3 −2
Original line number Diff line number Diff line
@@ -7,7 +7,8 @@ export default {
  props,
  setup(props, context) {
    const leafletRef = ref({});
    const lMethods = inject("leafLetMethods");
    //const addLayer = injectLeafletMethod("addLayer");
    const addLayer = inject("addLayer");

    const { options, methods } = tileLayerSetup(props, leafletRef);

@@ -21,7 +22,7 @@ export default {
      DomEvent.on(leafletRef.value, listeners);

      propsBinder(methods, leafletRef.value, props, setOptions);
      lMethods.addLayer({
      addLayer({
        ...props,
        ...methods,
        leafletObject: leafletRef.value,
+4 −9
Original line number Diff line number Diff line
<script>
import { onMounted, ref, inject, h } from "vue";
import { onMounted, ref, h, inject } from "vue";
import { propsBinder, remapEvents } from "../utils.js";
import { setup as tooltipSetup, props } from "../functions/tooltip";

@@ -13,13 +13,8 @@ export default {
    const leafletRef = ref({});
    const root = ref(null);

    const lMethods = inject("leafLetMethods");
    const { options, methods } = tooltipSetup(
      props,
      leafletRef,
      context,
      lMethods
    );
    const bindTooltip = inject("bindTooltip");
    const { options, methods } = tooltipSetup(props, leafletRef, context);

    onMounted(async () => {
      const { tooltip, DomEvent, setOptions } = await import(
@@ -32,7 +27,7 @@ export default {
      const listeners = remapEvents(context.attrs);
      DomEvent.on(leafletRef.value, listeners);
      leafletRef.value.setContent(props.content || root.value);
      lMethods.bindTooltip({ leafletObject: leafletRef.value });
      bindTooltip({ leafletObject: leafletRef.value });
    });
    return { root };
  },
Loading