UNPKG

@ng-formworks/core

Version:

Angular ng-formworks - JSON Schema Form builder core

151 lines (150 loc) 5.69 kB
import { OnDestroy, Signal } from '@angular/core'; import { AbstractControl, UntypedFormArray, UntypedFormGroup } from '@angular/forms'; import Ajv2019, { ErrorObject, Options, ValidateFunction } from 'ajv/dist/2019'; import { Subject, Subscription } from 'rxjs'; import * as i0 from "@angular/core"; export type WidgetContext = { formControl?: AbstractControl; layoutNode?: Signal<any>; layoutIndex?: Signal<number[]>; dataIndex?: Signal<number[]>; options?: any; controlValue?: any; boundControl?: boolean; controlName?: string; controlDisabled?: boolean; }; export type AJVRegistryItem = { [name: string]: { name: string; ajvInstance: Ajv2019; ajvValidator: ValidateFunction; }; }; export interface TitleMapItem { name?: string; value?: any; checked?: boolean; group?: string; items?: TitleMapItem[]; } export interface ErrorMessages { [control_name: string]: { message: string | Function | Object; code: string; }[]; } export declare class JsonSchemaFormService implements OnDestroy { JsonFormCompatibility: boolean; ReactJsonSchemaFormCompatibility: boolean; AngularSchemaFormCompatibility: boolean; tpldata: any; ajvOptions: Options; ajv: any; validateFormData: any; formValues: any; data: any; schema: any; layout: any[]; formGroupTemplate: any; formGroup: any; framework: any; formOptions: any; validData: any; isValid: boolean; ajvErrors: ErrorObject[]; validationErrors: any; dataErrors: any; formValueSubscription: any; dataChanges: Subject<any>; isValidChanges: Subject<any>; validationErrorChanges: Subject<any>; arrayMap: Map<string, number>; dataMap: Map<string, any>; dataRecursiveRefMap: Map<string, string>; schemaRecursiveRefMap: Map<string, string>; schemaRefLibrary: any; layoutRefLibrary: any; templateRefLibrary: any; hasRootReference: boolean; language: string; defaultFormOptions: any; fcValueChangesSubs: Subscription; fcStatusChangesSubs: Subscription; private draggableStateSubject; draggableState$: import("rxjs").Observable<boolean>; setDraggableState(value: boolean): void; private sortableOptionsSubject; sortableOptions$: import("rxjs").Observable<any>; setSortableOptions(value: any): void; createAjvInstance(ajvOptions: any): Ajv2019; createAndRegisterAjvInstance(ajvOptions: any, name?: string): { name: string; ajvInstance: Ajv2019; ajvValidator: ValidateFunction; }; ajvRegistry: AJVRegistryItem; getAjvInstance(name?: string): Ajv2019; getAjvValidator(name?: string): ValidateFunction<unknown>; constructor(); ngOnDestroy(): void; setLanguage(language?: string): void; getData(): any; getSchema(): any; getLayout(): any[]; resetAllValues(): void; /** * 'buildRemoteError' function * * Example errors: * { * last_name: [ { * message: 'Last name must by start with capital letter.', * code: 'capital_letter' * } ], * email: [ { * message: 'Email must be from example.com domain.', * code: 'special_domain' * }, { * message: 'Email must contain an @ symbol.', * code: 'at_symbol' * } ] * } * //{ErrorMessages} errors */ buildRemoteError(errors: ErrorMessages): void; validateData(newValue: any, updateSubscriptions?: boolean, ajvInstanceName?: string): void; buildFormGroupTemplate(formValues?: any, setValues?: boolean): void; buildFormGroup(ajvInstanceName?: string): void; buildLayout(widgetLibrary: any): void; setOptions(newOptions: any): void; compileAjvSchema(ajvInstanceName?: string): void; buildSchemaFromData(data?: any, requireAllFields?: boolean): any; buildSchemaFromLayout(layout?: any): any; setTpldata(newTpldata?: any): void; parseText(text?: string, value?: any, values?: any, key?: number | string): string; parseExpression(expression?: string, value?: any, values?: any, key?: number | string, tpldata?: any): any; setArrayItemTitle(parentCtx?: any, childNode?: any, index?: number): string; setItemTitle(ctx: WidgetContext): string; evaluateCondition(layoutNode: any, dataIndex: number[]): boolean; initializeControl(ctx: WidgetContext, bind?: boolean): boolean; formatErrors(errors: any, validationMessages?: any): string; updateValue(ctx: WidgetContext, value: any): void; updateArrayCheckboxList(ctx: WidgetContext, checkboxList: TitleMapItem[]): void; updateArrayMultiSelectList(ctx: WidgetContext, selectList: TitleMapItem[]): void; getFormControl(ctx: WidgetContext): AbstractControl; setFormControl(ctx: WidgetContext, control: AbstractControl): AbstractControl; getFormControlValue(ctx: WidgetContext): AbstractControl; getFormControlGroup(ctx: WidgetContext): UntypedFormArray | UntypedFormGroup; getFormControlName(ctx: WidgetContext): string; getLayoutArray(ctx: WidgetContext): any[]; getParentNode(ctx: WidgetContext): any; getDataPointer(ctx: WidgetContext): string; getLayoutPointer(ctx: WidgetContext): string; isControlBound(ctx: WidgetContext): boolean; addItem(ctx: WidgetContext, name?: string): boolean; moveArrayItem(ctx: WidgetContext, oldIndex: number, newIndex: number, moveLayout?: boolean): boolean; removeItem(ctx: WidgetContext): boolean; static ɵfac: i0.ɵɵFactoryDeclaration<JsonSchemaFormService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<JsonSchemaFormService>; }