39 lines
654 B
Vue
39 lines
654 B
Vue
<template>
|
|
<div class="zoompan" ref="root">
|
|
<slot></slot>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import {defineComponent, onMounted, ref, reactive} from "vue";
|
|
import createPanZoom, {PanZoom} from "panzoom";
|
|
|
|
export default defineComponent({
|
|
name: "ZoomPan",
|
|
setup() {
|
|
const root = ref(null);
|
|
const bbox = reactive({
|
|
x: undefined,
|
|
y: undefined
|
|
});
|
|
|
|
onMounted(async () => {
|
|
const element = root.value as unknown as HTMLDivElement;
|
|
|
|
|
|
|
|
});
|
|
return {
|
|
root,
|
|
bbox
|
|
};
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
<style scoped>
|
|
.zoompan {
|
|
}
|
|
</style>
|