@focuson/form_components
Version:
Components that can be used by @focuson/forms
25 lines (24 loc) • 1.32 kB
TypeScript
import { FocusOnContext } from "@focuson/focuson";
import { LensState } from "@focuson/state";
import { InputChangeCommands } from "@focuson/rest";
export type InputSelectFn = <S, T, Context extends FocusOnContext<S>>(state: LensState<S, T, Context>, id: string, value: T, parentState: LensState<S, any, Context> | undefined, onChange: undefined | InputChangeCommands | InputChangeCommands[], changesCanExecute: boolean | undefined) => void;
export declare const defaultInputSelectFn: InputSelectFn;
export interface StringProps<T> {
transformer: (s: string) => T;
type: string;
default: T | undefined;
selectFn: InputSelectFn;
}
export declare function isStringProps<T>(p: TransformerProps<T>): p is StringProps<T>;
export interface CheckboxProps<T> {
transformer: (b: boolean) => T;
checkbox: (t: T | undefined) => boolean;
default: T | undefined;
selectFn: InputSelectFn;
}
export declare function isCheckboxProps<T>(p: TransformerProps<T>): p is CheckboxProps<T>;
export type TransformerProps<T> = StringProps<T> | CheckboxProps<T>;
export declare const StringTransformer: StringProps<string>;
export declare const NumberTransformer: StringProps<number>;
export declare const BooleanTransformer: CheckboxProps<boolean>;
export declare const BooleanYNTransformer: CheckboxProps<string>;