ngx-form-lib
v0.3.0
Published
Dynamic form library for Angular 18 with Material 3 support. Create complex reactive forms easily using JSON configuration with modern Angular 18 control flow syntax.
Maintainers
Readme
Create dynamic forms in Angular quickly and effortlessly
This package simplifies Angular form creation with full Angular reactive capabilities by offering a straightforward class configuration. It leverages Angular Material, utilizing material themes for enhanced functionality.
Homepage
Configure your form directly on NgxFormLib or play with forms on Stackblitz
Installation
- In your angular project run command
npm install --save ngx-form-liband install the package. - This library use Angular material for themes. So, if you have already setup
Angular materialskip step 4. - You also need to install
peer dependencies. Installing npm peer dependencies. - Setup angular material in your project. Getting started guide.
- Import
BrowserAnimationModuleinapp.module.ts.
// ... Other imports
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
imports: [
...,
BrowserAnimationsModule
],
...,
})
export class AppModule { }- Import
FormLibModulefromngx-form-liband add it into the imports array of your module.
import { NgModule } from '@angular/core';
import { FormLibModule } from 'ngx-form-lib';
import { CommonModule } from '@angular/common';
@NgModule({
declarations: [HomeComponent],
imports: [
CommonModule,
FormLibModule,
],
})
export class HomeModule {}- Create a constant file with form configuration. You can directly create form configuration on NgxFormLib webpage and use it in your projects. IDE support will provide with autofill for various properties.
import { ParentConfig, Input, Field, Config } from "ngx-form-lib";
export const CONFIG: Config = {
header: 'Form Header',
parentConfig: new ParentConfig({
appearance: 'fill',
color: 'primary',
}),
sections: [
{
sectionHeader: 'Section Header',
fields: [
new Input({
subType: 'text',
field: new Field({
type: 'input',
name: 'money',
label: 'Enter your name',
order: 1,
classes: ['ngf-col-12'],
}),
}),
],
},
],
};- Bind the configuration with
configproperty ofngx-for-libcomponent.
<ngx-form-lib [config]="CONFIG"></ngx-form-lib>Style error fix
If you find breaking style with material form just install peer dependencies manually and rerun the project.
List of supported component
- Input
- Textarea
- Checkbox
- Radio
- Button
- Dropdown
Features and releases
Current features
- Dynamic components
- Field Dependencies
- Facets implementations (hidden, disable, set value)
Next release version features
- Form dependencies
Further help
To get more help, issues or any suggestions for the ngx-form-lib mail to [email protected] with subject ngx-form-lib.
