vue3-openlayers
Version:
OpenLayers Wrapper for Vue3
33 lines (32 loc) • 984 B
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
const composables_usePropsAsObjectProperties = require("./usePropsAsObjectProperties.js");
function useGeometry(GeometryType, props) {
const feature = vue.inject("feature");
const properties = composables_usePropsAsObjectProperties.default(props);
const geometry = vue.computed(() => {
const parameters = Object.values(properties);
return new GeometryType(
...parameters
);
});
vue.watch(properties, () => {
feature?.value?.setGeometry(geometry.value);
feature?.value?.changed();
});
vue.watch(
() => feature,
() => {
feature?.value?.setGeometry(geometry.value);
}
);
vue.onMounted(() => {
feature?.value?.setGeometry(geometry.value);
});
vue.onUnmounted(() => {
feature?.value?.setGeometry(void 0);
});
return geometry;
}
exports.default = useGeometry;