← ClaudeAtlas

delon-form-dynamic-schema-formslisted

Create dynamic schema-based forms using @delon/form (SF component). Use this skill when building complex forms with validation, conditional rendering, async data loading, custom widgets, and multi-step workflows. Ensures forms follow JSON Schema standards, integrate with Angular reactive forms, support internationalization, and maintain consistent validation patterns across the application.
aiskillstore/marketplace · ★ 329 · API & Backend · score 82
Install: claude install-skill aiskillstore/marketplace
# @delon/form Dynamic Schema Forms Skill This skill helps create dynamic forms using @delon/form's SF (Schema Form) component. ## Core Principles ### Schema-Driven Forms - **JSON Schema**: Define forms declaratively with JSON Schema - **Type Safety**: Full TypeScript support for schema definitions - **Validation**: Built-in validation with custom validators - **Dynamic Rendering**: Conditional fields based on form state ### Key Features - Automatic form generation from schema - Custom widgets for specialized inputs - Async data loading (dropdowns, autocomplete) - Multi-step forms (wizards) - Responsive grid layouts - Internationalization support ## Basic Schema Form ```typescript import { Component, signal, output } from '@angular/core'; import { SFSchema, SFComponent, SFUISchema } from '@delon/form'; import { SHARED_IMPORTS } from '@shared'; @Component({ selector: 'app-user-form', standalone: true, imports: [SHARED_IMPORTS, SFComponent], template: ` <sf [schema]="schema" [ui]="ui" [formData]="initialData()" [loading]="loading()" (formSubmit)="handleSubmit($event)" (formChange)="handleChange($event)" (formError)="handleError($event)" /> ` }) export class UserFormComponent { loading = signal(false); initialData = signal<any>({}); formSubmit = output<any>(); schema: SFSchema = { properties: { name: { type: 'string', title: 'Full Name', maxLength: 100 }, e