armstrong-react
Version:
Rocketmakers Armstrong library of React components
49 lines (48 loc) • 4.02 kB
TypeScript
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>;
}