Commit 485425ec authored by Michael Underwood's avatar Michael Underwood
Browse files

Add attribution control

parent a2368994
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
<script>
import { onMounted, ref, inject } from "vue";
import {
  props,
  setup as attributionControlSetup,
} from "../functions/controlAttribution";
import { propsBinder } from "../utils.js";

export default {
  name: "LControlAttribution",
  props,
  setup(props) {
    const leafletRef = ref({});

    const registerControl = inject("registerControl");
    const { options, methods } = attributionControlSetup(props, leafletRef);
    onMounted(async () => {
      const { control, setOptions } = await import(
        "leaflet/dist/leaflet-src.esm"
      );

      leafletRef.value = control.attribution(options);
      propsBinder(methods, leafletRef.value, props, setOptions);
      registerControl({ leafletObject: leafletRef.value });
    });
  },
  render() {
    return null;
  },
};
</script>
+1 −0
Original line number Diff line number Diff line
export { default as LControlAttribution } from "./LControlAttribution.vue";
export { default as LControlLayers } from "./LControlLayers.vue";
export { default as LControlScale } from "./LControlScale.vue";
export { default as LControlZoom } from "./LControlZoom.vue";
+30 −0
Original line number Diff line number Diff line
import { props as controlProps, setup as controlSetup } from "./control";

export const props = {
  ...controlProps,
  prefix: {
    type: String,
    default: "Vue-Leaflet",
    custom: true,
  },
};

export const setup = (props, leafletRef) => {
  const { options: controlOptions, methods: controlMethods } = controlSetup(
    props,
    leafletRef
  );
  const options = {
    ...controlOptions,
    prefix: props.prefix,
  };

  const methods = {
    ...controlMethods,
    setPrefix(prefix) {
      leafletRef.value.setPrefix(prefix);
    },
  };

  return { options, methods };
};