@velis/dynamicforms
Version:
Data entry boilerplate components and a RESTful API consumer
35 lines • 1.51 kB
TypeScript
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