npm install @harbour-enterprises/superdoc
<script>
import { onMount, onDestroy } from 'svelte';
import { SuperDoc } from '@harbour-enterprises/superdoc';
import '@harbour-enterprises/superdoc/style.css';
let container;
let superdoc = null;
onMount(() => {
superdoc = new SuperDoc({
selector: container,
document: 'contract.docx'
});
});
onDestroy(() => {
superdoc = null;
});
async function handleExport() {
if (superdoc) {
await superdoc.export();
}
}
</script>
<button on:click={handleExport}>Export</button>
<div bind:this={container} class="editor"></div>
<style>
.editor {
height: 700px;
}
</style>
<script>
import { onMount, onDestroy } from 'svelte';
import { SuperDoc } from '@harbour-enterprises/superdoc';
export let document;
export let user = { name: 'User', email: 'user@example.com' };
export let mode = 'editing';
let container;
let superdoc = null;
onMount(() => {
superdoc = new SuperDoc({
selector: container,
document,
user,
documentMode: mode
});
});
onDestroy(() => {
superdoc = null;
});
</script>
<div bind:this={container}></div>
// documentStore.js
import { writable } from 'svelte/store';
export const superdocInstance = writable(null);
// Component.svelte
<script>
import { superdocInstance } from './documentStore';
onMount(() => {
const instance = new SuperDoc({
selector: container,
document: 'document.docx'
});
$superdocInstance = instance;
});
</script>