UNPKG

@velis/dynamicforms

Version:

Data entry boilerplate components and a RESTful API consumer

35 lines 1.51 kB
import FilteredActions from '../../actions/filtered-actions'; import type { ActionsNS } from '../../actions/namespace'; import { PrimaryKeyType } from '../../adapters/api/namespace'; import { FormAdapter } from '../../adapters/namespace'; import FormPayload from '../../form/definitions/form-payload'; import FormLayout from '../../form/definitions/layout'; import { APIConsumer } from '../namespace'; import { FormConsumerHooks, FormExecuteResult } from './namespace'; type IHandlers = ActionsNS.IHandlers; export default abstract class FormConsumerBase<T = any> { pkName: keyof T & string; ux_def: APIConsumer.FormUXDefinition; layout: FormLayout; titles: APIConsumer.Titles; actions: FilteredActions; data: FormPayload; loading: boolean; errors: any; actionHandlers?: IHandlers; protected api: FormAdapter<T>; beforeDialog?: (instance: any) => void; afterDialog?: (instance: any, action: any) => void; protected constructor(handlers?: IHandlers, hooks?: FormConsumerHooks<FormConsumerBase>); title(which: 'table' | 'new' | 'edit'): string; get pkValue(): PrimaryKeyType; get definition(): APIConsumer.FormDefinition; withErrors(errors: any): this; execute(defaultData?: Partial<T> | null): Promise<FormExecuteResult<T>>; delete(): Promise<T>; save(): Promise<T>; getRecord(): Promise<APIConsumer.FormPayloadJSON>; getUXDefinition(): Promise<APIConsumer.FormDefinition>; } export {}; //# sourceMappingURL=base.d.ts.map