UNPKG

@fluent-form/core

Version:

An Angular dynamic forms library powered by Fluent API and JSON.

43 lines (42 loc) 1.32 kB
import { AbstractControl } from '@angular/forms'; import type { SafeAny } from '@ngify/core'; import type { AbstractSchema } from './abstract.schema'; import type { SchemaKey } from './types'; /** * @public */ export declare enum SchemaType { Control = 0, ControlGroup = 1, ControlArray = 2, ControlWrapper = 3, Component = 4, ComponentContainer = 5, ComponentWrapper = 6 } export declare const enum SchemaKind { Headless = "headless", Headful = "headful", Template = "template", Row = "row" } export interface SchemaLike<Key extends SchemaKey = SchemaKey> { kind: string; key?: Key; } export interface SchemaContext<S extends SchemaLike = AbstractSchema> { schema: S; /** * If there is no corresponding control, the parent control will be returned, * usually a `FormGroup` or `FormArray`. */ control: AbstractControl; model: SafeAny; } export type Length = number | { max?: number; min?: number; }; export type SchemaReactiveFn<S extends AbstractSchema, R> = (ctx: SchemaContext<S>) => R; export type MaybeSchemaReactiveFn<S extends AbstractSchema, R> = R | SchemaReactiveFn<S, R>; export type WithoutSchemaReactiveFn<T extends MaybeSchemaReactiveFn<AbstractSchema, SafeAny>> = Exclude<T, SchemaReactiveFn<SafeAny, SafeAny>>;