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-builder
Assuming 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 install
For 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 dev
This 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:package
This script uses svelte-package
to build a component library, written to the
package
directory (ref).
npm run build
This uses vite
to build and write an optimized for production of the
standalone demo to the build
directory.
npm run preview
This 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.