Create HTML input forms dynamically using Lit web components
This is a lightweight web component built with Lit that renders dynamic forms from JSON schemas.
npm install @uportal/form-builderTo create a Jar of the built web component and publish to cache, run:
./gradlew jar
./gradlew publishToMavenLocal<form-builder
fbms-base-url="/fbms"
fbms-form-fname="communication-preferences"
oidc-url="/uPortal/api/v5-1/userinfo"
styles="div {color:grey} span {color:orange}"
>
</form-builder>- fbms-base-url: Base URL of the form builder micro service.
- fbms-form-fname: Form name that is appended to the fbms-base-url.
- oidc-url: Open ID Connect URL to authenticate requests.
- styles: Optional pass-through value to an HTML
styletag in the render method.
- Node.js 18 or higher
- npm 9 or higher
# Install dependencies
npm install
# Start development server
npm run serve
# Run tests
npm test
# Build for production
npm run buildnpm run dev- Build in watch modenpm run serve- Start development server with live reloadnpm test- Run tests with coveragenpm run test:watch- Run tests in watch modenpm run lint- Check code with ESLintnpm run format- Format code with Prettiernpm run build- Build for production
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Lit Documentation - Official Lit documentation
- Lit Tutorial - Getting started with Lit
- Lit Playground - Try Lit in your browser
- Lit Best Practices - Component patterns
- Web Test Runner - Our test framework
- Testing Lit Components - Lit-specific testing guide
- Open WC Testing - Testing utilities and helpers
- Web Components on MDN - Web Components fundamentals
- Custom Elements Everywhere - Framework compatibility
- Form Builder Microservice - Backend service for form definitions
Copyright 2018-2025 The Apereo Foundation. Licensed under the Apache License, Version 2.0. See LICENSE for details.