@fluent-form/core
Version:
An Angular dynamic forms library powered by Fluent API and JSON.
45 lines (44 loc) • 2.55 kB
TypeScript
import { type ValidatorFn } from '@angular/forms';
import type { AbstractBranchSchema, AbstractComponentContainerSchema, AbstractComponentWrapperSchema, AbstractControlContainerSchema, AbstractControlSchema, AbstractControlWrapperSchema, AbstractSchema, SchemaKey, SingleSchemaKey } from '../schemas';
import { type SchemaLike, SchemaType } from '../schemas/interfaces';
import type { Indexable } from '../types';
import * as i0 from "@angular/core";
export declare class SchemaUtil {
private readonly schemaMap;
private readonly schemaPatchers;
patch<T extends Indexable<AbstractSchema>>(schema: T): T;
/**
* Filter out top-level control/control container schemas.
*/
filterControls(schemas: Indexable<AbstractSchema>[]): (AbstractControlSchema<SchemaKey, any> | AbstractControlContainerSchema<SingleSchemaKey>)[];
isControlGroup(schema: SchemaLike): schema is AbstractControlContainerSchema;
isControlArray(schema: SchemaLike): schema is AbstractControlContainerSchema;
isControlContainer(schema: SchemaLike): schema is AbstractControlContainerSchema;
isControlWrapper(schema: SchemaLike): schema is AbstractControlWrapperSchema;
isControl(schema: SchemaLike): schema is AbstractControlSchema;
isComponentContainer(schema: SchemaLike): schema is AbstractComponentContainerSchema;
isComponentWrapper(schema: SchemaLike): schema is AbstractComponentWrapperSchema;
isComponent(schema: SchemaLike): schema is AbstractSchema;
/**
* Whether it is a multi-field schema.
*/
isMultiKeySchema(schema: SchemaLike): boolean;
/**
* Whether it is a path field schema.
*/
isPathKeySchema(schema: SchemaLike): boolean;
/**
* Non-control schema, indicating that it or its child nodes
* do not contain any control schemas.
*/
isNonControl(schema: SchemaLike): schema is AbstractSchema;
typeOf(schema: SchemaLike): SchemaType | undefined;
validatorsOf(schema: AbstractControlSchema): ValidatorFn[];
parsePathKey(key: string): string[];
norimalizePaths(paths: SingleSchemaKey | SchemaKey[]): string[];
find(schema: Indexable<AbstractBranchSchema>, key: SingleSchemaKey): AbstractSchema | null;
find(schema: Indexable<AbstractBranchSchema>, key: SchemaKey[]): AbstractSchema | null;
find(schema: Indexable<AbstractBranchSchema>, paths: SingleSchemaKey | SchemaKey[]): AbstractSchema | null;
static ɵfac: i0.ɵɵFactoryDeclaration<SchemaUtil, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SchemaUtil>;
}