@ng-forge/dynamic-forms-ionic
v0.1.3
Published
Ionic integration for @ng-forge/dynamic-forms. Pre-built Ionic form components for mobile and desktop.
Downloads
362
Maintainers
Readme
@ng-forge/dynamic-forms-ionic
Ionic field components for @ng-forge/dynamic-forms.
Experimental API Notice: This library uses Angular's experimental Signal Forms API. Angular may introduce breaking changes in patch releases. Check the compatibility matrix below.
Compatibility
| @ng-forge/dynamic-forms-ionic | @ng-forge/dynamic-forms | Angular | | ----------------------------- | ----------------------- | ------------- | | 0.1.1+ | 0.1.1+ | >=21.0.2 | | 0.1.0 | 0.1.0 | 21.0.0-21.0.1 |
Installation
npm install @ng-forge/dynamic-forms @ng-forge/dynamic-forms-ionic @ionic/angularNote: This package includes date-fns as a dependency for datepicker formatting.
Setup
// styles.scss
@import '@ionic/angular/css/core.css';
@import '@ionic/angular/css/normalize.css';
@import '@ionic/angular/css/structure.css';
@import '@ionic/angular/css/typography.css';// app.config.ts
import { provideDynamicForm } from '@ng-forge/dynamic-forms';
import { withIonicFields } from '@ng-forge/dynamic-forms-ionic';
import { provideIonicAngular } from '@ionic/angular/standalone';
export const appConfig: ApplicationConfig = {
providers: [provideIonicAngular({ mode: 'md' }), provideDynamicForm(...withIonicFields())],
};Usage
import { DynamicForm, type FormConfig, type InferFormValue } from '@ng-forge/dynamic-forms';
@Component({
imports: [DynamicForm],
template: `<form [dynamic-form]="config" (submitted)="onSubmit($event)"></form>`,
})
export class ContactFormComponent {
config = {
fields: [
{ key: 'name', type: 'input', value: '', label: 'Name', required: true, props: { fill: 'outline', labelPlacement: 'stacked' } },
{
key: 'email',
type: 'input',
value: '',
label: 'Email',
required: true,
email: true,
props: { fill: 'outline', labelPlacement: 'stacked' },
},
{ type: 'submit', key: 'submit', label: 'Send', props: { color: 'primary', expand: 'block' } },
],
} as const satisfies FormConfig;
onSubmit(value: InferFormValue<typeof this.config.fields>) {
console.log('Form submitted:', value);
}
}Global Configuration
provideDynamicForm(
...withIonicFields({
fill: 'outline',
labelPlacement: 'floating',
color: 'primary',
}),
);Field Types
Input, Textarea, Select, Checkbox, Radio, Toggle, Datepicker, Slider, Multi-Checkbox, Button, Submit, Next, Previous
Documentation
Changelog
See GitHub Releases.
Contributing
Contributions are welcome! Please read our Contributing Guide.
License
MIT © ng-forge
