UNPKG

armstrong-react

Version:

Rocketmakers Armstrong library of React components

49 lines (48 loc) 4.02 kB
import * as React from "react"; import { IFormBinder, IDataBinder, IFormBinderInjector } from "./formCore"; import { IdEntity, NumericIdEntity, IItemValueConverter, IValueConverter, IInputValueConverter, INumericOptions } from "./formValueConverters"; export declare abstract class FormBinderBase<P, D, V> implements IFormBinder<P, any> { protected dataName: string; protected propertySet: string; private valueConverter; protected propertyGet: string; constructor(dataName: string, propertySet: string, valueConverter?: IValueConverter<D, V>, propertyGet?: string); setElementProperty(props: P, dataBinder: IDataBinder<any>): void; abstract handleValueChanged(props: P, dataBinder: IDataBinder<any>, notifyChanged: () => void): void; protected onChanged(dataBinder: IDataBinder<any>, newValue: V, notifyChanged: () => void): void; protected convert(data: D): any; protected convertBack(value: V): any; } export declare class InputFormBinder<D, V> extends FormBinderBase<React.DOMAttributes, D, V> { handleValueChanged(props: React.DOMAttributes, dataBinder: IDataBinder<any>, notifyChanged: () => void): void; } export declare class RadioFormBinder<D, V> extends InputFormBinder<D, V> { setElementProperty(props: React.DOMAttributes, dataBinder: IDataBinder<any>): void; } export declare class FormBinder { static custom<P>(formBinder: IFormBinder<P, any>): IFormBinderInjector<P>; static hidden<D>(dataName: string, valueConverter?: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static password<D>(dataName: string, valueConverter?: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static text<D>(dataName: string, valueConverter?: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static textEmail<D>(dataName: string, valueConverter?: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static range(dataName: string, options?: INumericOptions): IFormBinderInjector<React.DOMAttributes>; static defaultText<D>(dataName: string, valueConverter?: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static textNumeric(dataName: string, options?: INumericOptions): IFormBinderInjector<React.DOMAttributes>; static selectInject<D>(dataName: string, valueConverter?: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static select(dataName: string): IFormBinderInjector<React.DOMAttributes>; static selectNumeric(dataName: string): IFormBinderInjector<React.DOMAttributes>; static selectId(dataName: string, convertBack: IItemValueConverter<string, IdEntity>): any; static selectId(dataName: string, items: IdEntity[]): any; static selectNumericId(dataName: string, convertBack: IItemValueConverter<string, NumericIdEntity>): any; static selectNumericId(dataName: string, items: NumericIdEntity[]): any; static checkboxInject<D>(dataName: string, valueConverter?: IValueConverter<D, boolean>): IFormBinderInjector<React.DOMAttributes>; static checkbox(dataName: string): IFormBinderInjector<React.DOMAttributes>; static checkboxConvert<D>(dataName: string, trueValue: D, falseValue: D): IFormBinderInjector<React.DOMAttributes>; static radioInject<D>(dataName: string, value: string, valueConverter: IInputValueConverter<D>): IFormBinderInjector<React.DOMAttributes>; static radio(dataName: string, value: string): IFormBinderInjector<React.DOMAttributes>; static radioNumeric(dataName: string, value: number): IFormBinderInjector<React.DOMAttributes>; static radioId(dataName: string, value: IdEntity): IFormBinderInjector<React.DOMAttributes>; static radioIdEntity(dataName: string, value: IdEntity): IFormBinderInjector<React.DOMAttributes>; static radioNumericIdEntity(dataName: string, value: NumericIdEntity): IFormBinderInjector<React.DOMAttributes>; static radioNumericId(dataName: string, value: NumericIdEntity): IFormBinderInjector<React.DOMAttributes>; }