GOBL Builder is an interactive, low code tool for building GOBL documents.
This repository contains GOBLBuilder, a Svelte
component used to render a self-contained UI with menu bar, toolbar, code editor
and bottom drawer for showing errors, warnings and more. The component is
packaged publically on NPM, to be imported and used from Svelte projects.
A standalone wrapper for GOBLBuilder is included in this repository in src
(not part of the packaged library). It's available at https://build.gobl.org.
At the moment, the component library relies on Tailwind CSS for styling. This might change in the future.
GOBL Builder is released as @invopop/gobl-builder on NPM. To add it to your Svelte project:
npm add -D @invopop/gobl-builderAssuming your project already is configured to use Tailwind CSS, configure its
template paths to include the component library and Flowbite (its dependency).
An example tailwind.config.cjs file:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/**/*.{html,js,svelte,ts}", "./node_modules/@invopop/gobl-builder/**/*.{html,js,svelte,ts}"],
theme: {
extend: {},
},
plugins: [],
};Import and use the GOBLBuilder Svelte component. For example, using
TypeScript:
<script lang="ts">
import GOBLBuilder from "@invopop/gobl-builder";
</script>
<GOBLBuilder data="" jsonSchemaURL="https://gobl.org/draft-0/bill/invoice" />For further example usage, including directives for event handling, see src/routes/+page.svelte.
Below sections cover development of the component library itself. See above sections for instructions on using GOBL Builder in your own project.
Clone this repository from GitHub, then run from within its directory:
npm installFor an optimal developer experience, use an IDE with plugin support for Svelte,
TypeScript, ESLint and Prettier. For VS Code, recommended plugins are included
in .vscode/extensions.json.
npm run devThis script uses vite to run a development web server with
HMR. It
compiles TypeScript to JavaScript and serves the demo wrapper on
http://localhost:3000.
npm run build:packageThis script uses svelte-package to build a component library, written to the
package directory (ref).
npm run buildThis uses vite to build and write an optimized for production of the
standalone demo to the build directory.
npm run previewThis uses vite to serve a previously built build folder on
http://localhost:4173.
GOBL Builder makes use of gobl cli for
validating, calculating and building GOBL documents. This is done using the @invopop/gobl-worker package that prepares a Worker and uses the WASM binary distributed on cdn.gobl.org.
To upgrade the version of the GOBL worker currently in use, simply update the package.json file to reflect the new version.
GOBL Builder is licensed under the Apache-2.0 License.
© 2024 Invopop, S.L.