You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.4 KiB
64 lines
1.4 KiB
import { watch } from "vue-demi";
|
|
import { toLngLat, toPoint } from "../../../utils";
|
|
import { Props } from "./";
|
|
|
|
export function useWatch({ props, instance }: { props: Props; instance: T.Label }) {
|
|
watch(
|
|
() => props.position,
|
|
val => val && instance.setLngLat(toLngLat(val))
|
|
);
|
|
watch(
|
|
() => props.text,
|
|
val => val && instance.setLabel(val)
|
|
);
|
|
watch(
|
|
() => props.offset,
|
|
val => val && instance.setOffset(toPoint(val))
|
|
);
|
|
watch(
|
|
() => props.title,
|
|
val => val && instance.setTitle(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.zIndex,
|
|
val => val && instance.setZIndex(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.fontSize,
|
|
val => val && instance.setFontSize(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.fontColor,
|
|
val => val && instance.setFontColor(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.backgroundColor,
|
|
val => val && instance.setBackgroundColor(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.borderLine,
|
|
val => val && instance.setBorderLine(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.borderColor,
|
|
val => val && instance.setBorderColor(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.opacity,
|
|
val => val && instance.setOpacity(val),
|
|
{ immediate: true }
|
|
);
|
|
watch(
|
|
() => props.visible,
|
|
val => (val ? instance.show() : instance.hide()),
|
|
{ immediate: true }
|
|
);
|
|
}
|