blob: 64a8eea9b3f2cc5bc059c21b2c3af4844127efb2 [file] [log] [blame]
import 'elements-sk/error-toast-sk'
import { define } from 'elements-sk/define'
import { html } from 'lit-html'
import { SKIA_VERSION } from '../../build/version.js'
import { WasmFiddle, codeEditor } from '../wasm-fiddle'
const PathKitInit = require('../../build/pathkit/pathkit.js');
// Main template for this element
const template = (ele) => html`
<header>
<div class=title>PathKit Fiddle</div>
<div class=npm>
<a href="https://www.npmjs.com/package/pathkit-wasm">Available on npm</a>
</div>
<div class=flex></div>
<div class=version>
<a href="https://skia.googlesource.com/skia/+/${SKIA_VERSION}">${SKIA_VERSION.substring(0, 10)}</a>
</div>
</header>
<main>
${codeEditor(ele)}
<div class=output>
<div class=buttons>
<button class="action ${(ele.hasRun || !ele.loadedWasm) ? '': 'prompt'}" @click=${ele.run}>Run</button>
<button class=action @click=${ele.save}>Save</button>
</div>
<div id=canvasContainer><canvas width=500 height=500></canvas></div>
</div>
</main>
<footer>
<error-toast-sk></error-toast-sk>
</footer>`;
const wasmPromise = PathKitInit({
locateFile: (file) => '/res/'+file,
}).ready();
/**
* @module jsfiddle/modules/pathkit-fiddle
* @description <h2><code>pathkit-fiddle</code></h2>
*
* <p>
* The top level element for displaying pathkit fiddles.
* The main elements are a code editor box (textarea), a canvas
* on which to render the result and a few buttons.
* </p>
*
*/
define('pathkit-fiddle', class extends WasmFiddle {
constructor() {
super(wasmPromise, template, 'PathKit', 'pathkit');
}
});