UNPKG

mobx-react-form

Version:
229 lines 6.4 kB
import { ObservableMap } from "mobx"; import { BaseInterface } from "./models/BaseInterface"; import { StateInterface } from "./models/StateInterface"; import { FieldInterface } from "./models/FieldInterface"; import { ValidateOptions } from "./models/ValidatorInterface"; import { SubmitHooks } from "./models/SharedActionsInterface"; export default class Base implements BaseInterface { noop: () => void; state: StateInterface; fields: ObservableMap; path: string | undefined | null; $submitted: number; $submitting: boolean; $validated: number; $validating: boolean; $clearing: boolean; $resetting: boolean; $touched: boolean; $changed: number; $hooks: any; $handlers: any; constructor(); execHook: (name: string, fallback?: any) => any; execHandler: (name: string, args: any, fallback?: any, hook?: any, execHook?: boolean) => any; get resetting(): boolean; get clearing(): boolean; get submitted(): number; get submitting(): boolean; get validated(): number; get validating(): boolean; get hasIncrementalKeys(): boolean; get hasNestedFields(): boolean; get size(): number; get changed(): number; /** Interceptor */ intercept: (opt: any) => any; /** Observer */ observe: (opt: any) => any; /** Event Handler: On Clear */ onClear: (...args: any) => any; /** Event Handler: On Reset */ onReset: (...args: any) => any; /** Event Handler: On Submit */ onSubmit: (...args: any) => any; /** Event Handler: On Add */ onAdd: (...args: any) => any; /** Event Handler: On Del */ onDel: (...args: any) => any; /****************************************************************** Initializer */ initFields(initial: any, update?: boolean): void; initField(key: string, path: string, data: any, update?: boolean): any; /****************************************************************** Actions */ validate(opt?: ValidateOptions, obj?: ValidateOptions): Promise<any>; /** Submit */ submit(hooks?: SubmitHooks, { execOnSubmitHook, execValidationHooks, validate }?: { execOnSubmitHook?: boolean; execValidationHooks?: boolean; validate?: boolean; }): Promise<any>; /** Check Field Computed Values */ check(prop: string, deep?: boolean): boolean; deepCheck(type: string, prop: string, fields: any): any; /** Update Field Values recurisvely OR Create Field if 'undefined' */ update(fields: any): void; deepUpdate(fields: any, path?: string, recursion?: boolean, raw?: any): void; /** Get Fields Props */ get(prop?: any, strict?: boolean): any; /** Get Fields Props Recursively */ deepGet(prop: any, fields: any, strict?: boolean): any; /** Set Fields Props */ set(prop: any, data?: any): void; /** Set Fields Props Recursively */ deepSet(prop: any, data: any, path?: string, recursion?: boolean): void; /** Add Field */ add(obj: any, execEvent?: boolean): any; /** Del Field */ del($path?: string | null, execEvent?: boolean): any; /****************************************************************** Events */ /** MobX Event (observe/intercept) */ MOBXEvent({ prop, key, path, call, type }: any): void; /** Dispose MOBX Events */ dispose(opt?: any): void; /** Dispose All Events (observe/intercept) */ disposeAll(): any; /** Dispose Single Event (observe/intercept) */ disposeSingle({ type, key, path }: any): void; /****************************************************************** Utils */ /** Fields Selector */ select(path: string, fields?: any, isStrict?: boolean): any; /** Get Container */ container($path: string): any; /** Has Field */ has(path: string): boolean; /** Map Fields */ map(cb: any): ReadonlyArray<FieldInterface>; /** * Iterates deeply over fields and invokes `iteratee` for each element. * The iteratee is invoked with three arguments: (value, index|key, depth). * * @param {Function} iteratee The function invoked per iteration. * @param {Array|Object} [fields=form.fields] fields to iterate over. * @param {number} [depth=1] The recursion depth for internal use. * @returns {Array} Returns [fields.values()] of input [fields] parameter. * @example * * JSON.stringify(form) * // => { * "fields": { * "state": { * "fields": { * "city": { * "fields": { "places": { * "fields": {}, * "key": "places", "path": "state.city.places", "$value": "NY Places" * } * }, * "key": "city", "path": "state.city", "$value": "New York" * } * }, * "key": "state", "path": "state", "$value": "USA" * } * } * } * * const data = {}; * form.each(field => data[field.path] = field.value); * // => { * "state": "USA", * "state.city": "New York", * "state.city.places": "NY Places" * } * */ each(iteratee: any, fields?: any, depth?: number): void; reduce(iteratee: any, acc: any): any; /****************************************************************** Helpers */ /** Fields Selector (alias of select) */ $(key: string): any; /** Fields Values (recursive with Nested Fields) */ values(): any; /** Fields Errors (recursive with Nested Fields) */ errors(): any; /** Fields Labels (recursive with Nested Fields) */ labels(): any; /** Fields Placeholders (recursive with Nested Fields) */ placeholders(): any; /** Fields Default Values (recursive with Nested Fields) */ defaults(): any; /** Fields Initial Values (recursive with Nested Fields) */ initials(): any; /** Fields Types (recursive with Nested Fields) */ types(): any; } //# sourceMappingURL=Base.d.ts.map