Commit ab8591e6 authored by Michael Underwood's avatar Michael Underwood
Browse files

Add typings around provide/inject

parent 89b8ed15
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
<script lang="ts">
import type L from "leaflet";
import { onMounted, ref, inject, nextTick, markRaw } from "vue";
import {
  remapEvents,
  propsBinder,
  WINDOW_OR_GLOBAL,
  GLOBAL_LEAFLET_OPT,
} from "../utils.js";
import { circleProps, setupCircle } from "../functions/circle";
import { render } from "../functions/layer";
  assertInject,
} from "@src/utils.js";
import { circleProps, setupCircle } from "@src/functions/circle";
import { render } from "@src/functions/layer";
import {
  AddLayerInjection,
  UseGlobalLeafletInjection,
} from "@src/types/injectionKeys";

/**
 * Circle component, lets you add and personalize circles on the map
@@ -16,11 +21,11 @@ export default {
  name: "LCircle",
  props: circleProps,
  setup(props, context) {
    const leafletObject = ref({});
    const leafletObject = ref<L.Circle>();
    const ready = ref(false);

    const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);
    const addLayer = inject("addLayer");
    const useGlobalLeaflet = inject(UseGlobalLeafletInjection);
    const addLayer = assertInject(AddLayerInjection);

    const { options, methods } = setupCircle(props, leafletObject, context);

@@ -29,7 +34,7 @@ export default {
        ? WINDOW_OR_GLOBAL.L
        : await import("leaflet/dist/leaflet-src.esm");

      leafletObject.value = markRaw(circle(props.latLng, options));
      leafletObject.value = markRaw<L.Circle>(circle(props.latLng, options));

      const listeners = remapEvents(context.attrs);
      DomEvent.on(leafletObject.value, listeners);
+15 −8
Original line number Diff line number Diff line
<script lang="ts">
import type L from "leaflet";
import { onMounted, ref, inject, nextTick, markRaw } from "vue";
import {
  remapEvents,
  propsBinder,
  WINDOW_OR_GLOBAL,
  GLOBAL_LEAFLET_OPT,
} from "../utils.js";
  assertInject,
} from "@src/utils.js";
import {
  circleMarkerProps,
  setupCircleMarker,
} from "../functions/circleMarker";
import { render } from "../functions/layer";
} from "@src/functions/circleMarker";
import { render } from "@src/functions/layer";
import {
  AddLayerInjection,
  UseGlobalLeafletInjection,
} from "@src/types/injectionKeys";

/**
 * Circle Marker component, lets you add and personalize circle markers on the map
@@ -19,11 +24,11 @@ export default {
  name: "LCircleMarker",
  props: circleMarkerProps,
  setup(props, context) {
    const leafletObject = ref({});
    const leafletObject = ref<L.CircleMarker>();
    const ready = ref(false);

    const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);
    const addLayer = inject("addLayer");
    const useGlobalLeaflet = inject(UseGlobalLeafletInjection);
    const addLayer = assertInject(AddLayerInjection);

    const { options, methods } = setupCircleMarker(
      props,
@@ -36,7 +41,9 @@ export default {
        ? WINDOW_OR_GLOBAL.L
        : await import("leaflet/dist/leaflet-src.esm");

      leafletObject.value = markRaw(circleMarker(props.latLng, options));
      leafletObject.value = markRaw<L.CircleMarker>(
        circleMarker(props.latLng, options)
      );

      const listeners = remapEvents(context.attrs);
      DomEvent.on(leafletObject.value, listeners);
+11 −6
Original line number Diff line number Diff line
<script lang="ts">
import type L from "leaflet";
import { onMounted, ref, inject, markRaw, nextTick } from "vue";
import { controlProps, setupControl, render } from "../functions/control";
import { propsBinder, WINDOW_OR_GLOBAL, GLOBAL_LEAFLET_OPT } from "../utils.js";
import { controlProps, setupControl, render } from "@src/functions/control";
import { propsBinder, WINDOW_OR_GLOBAL, assertInject } from "@src/utils.js";
import {
  RegisterControlInjection,
  UseGlobalLeafletInjection,
} from "@src/types/injectionKeys";

export default {
  name: "LControl",
@@ -19,11 +24,11 @@ export default {
    },
  },
  setup(props, context) {
    const leafletObject = ref({});
    const leafletObject = ref<L.Control>();
    const root = ref(null);

    const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);
    const registerControl = inject("registerControl");
    const useGlobalLeaflet = inject(UseGlobalLeafletInjection);
    const registerControl = assertInject(RegisterControlInjection);

    const { options, methods } = setupControl(props, leafletObject);

@@ -38,7 +43,7 @@ export default {
        },
      });

      leafletObject.value = markRaw(new LControl(options));
      leafletObject.value = markRaw<L.Control>(new LControl(options));
      propsBinder(methods, leafletObject.value, props);
      registerControl({ leafletObject: leafletObject.value });

+13 −6
Original line number Diff line number Diff line
<script lang="ts">
import type L from "leaflet";
import { onMounted, ref, inject, nextTick, markRaw } from "vue";
import {
  controlAttributionProps,
  setupControlAttribution,
} from "../functions/controlAttribution";
import { propsBinder, WINDOW_OR_GLOBAL, GLOBAL_LEAFLET_OPT } from "../utils.js";
} from "@src/functions/controlAttribution";
import { propsBinder, WINDOW_OR_GLOBAL, assertInject } from "@src/utils.js";
import {
  RegisterControlInjection,
  UseGlobalLeafletInjection,
} from "@src/types/injectionKeys";

export default {
  name: "LControlAttribution",
  props: controlAttributionProps,
  setup(props, context) {
    const leafletObject = ref({});
    const leafletObject = ref<L.Control.Attribution>();

    const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);
    const registerControl = inject("registerControl");
    const useGlobalLeaflet = inject(UseGlobalLeafletInjection);
    const registerControl = assertInject(RegisterControlInjection);

    const { options, methods } = setupControlAttribution(props, leafletObject);

@@ -22,7 +27,9 @@ export default {
        ? WINDOW_OR_GLOBAL.L
        : await import("leaflet/dist/leaflet-src.esm");

      leafletObject.value = markRaw(control.attribution(options));
      leafletObject.value = markRaw<L.Control.Attribution>(
        control.attribution(options)
      );
      propsBinder(methods, leafletObject.value, props);
      registerControl({ leafletObject: leafletObject.value });
      nextTick(() => context.emit("ready", leafletObject.value));
+13 −6
Original line number Diff line number Diff line
<script lang="ts">
import type L from "leaflet";
import { onMounted, ref, inject, nextTick, markRaw } from "vue";
import {
  controlLayersProps,
  setupControlLayers,
} from "../functions/controlLayers";
import { propsBinder, WINDOW_OR_GLOBAL, GLOBAL_LEAFLET_OPT } from "../utils.js";
} from "@src/functions/controlLayers";
import { assertInject, propsBinder, WINDOW_OR_GLOBAL } from "@src/utils.js";
import {
  RegisterLayerControlInjection,
  UseGlobalLeafletInjection,
} from "@src/types/injectionKeys";

export default {
  name: "LControlLayers",
  props: controlLayersProps,
  setup(props, context) {
    const leafletObject = ref({});
    const leafletObject = ref<L.Control.Layers>();

    const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);
    const registerLayerControl = inject("registerLayerControl");
    const useGlobalLeaflet = inject(UseGlobalLeafletInjection);
    const registerLayerControl = assertInject(RegisterLayerControlInjection);

    const { options, methods } = setupControlLayers(props, leafletObject);

@@ -22,7 +27,9 @@ export default {
        ? WINDOW_OR_GLOBAL.L
        : await import("leaflet/dist/leaflet-src.esm");

      leafletObject.value = markRaw(control.layers(null, null, options));
      leafletObject.value = markRaw<L.Control.Layers>(
        control.layers(null, null, options)
      );

      propsBinder(methods, leafletObject.value, props);

Loading