enh: svg zoom pan

This commit is contained in:
Timothy J. Baek
2024-10-06 12:51:29 -07:00
parent 913620ff0c
commit babfc97c90
6 changed files with 130 additions and 30 deletions

View File

@@ -0,0 +1,29 @@
<script lang="ts">
import { onMount } from 'svelte';
import panzoom from 'panzoom';
import DOMPurify from 'dompurify';
export let className = '';
export let svg = '';
let instance;
let sceneParentElement: HTMLElement;
let sceneElement: HTMLElement;
$: if (sceneElement) {
instance = panzoom(sceneElement, {
bounds: true,
boundsPadding: 0.1,
zoomSpeed: 0.065
});
}
</script>
<div bind:this={sceneParentElement} class={className}>
<div bind:this={sceneElement} class="flex h-full max-h-full justify-center items-center">
{@html svg}
</div>
</div>