UNPKG

intentful

Version:

Create Custom Skills with less headache

103 lines (102 loc) 4.69 kB
import { Calculable, ModelProvider } from '../..'; import { LabeledRequestHandler, RequestHandlerProvider } from '../../skill'; import { Command, CommandModel, CommandProps } from '../commands'; import { ActionModel, ActionProps, APLActionableComponentModel, APLActionableComponentProps, APLContainerChildComponentModel, APLContainerChildComponentProps, APLMultiChildComponentModel, APLMultiChildComponentProps, BindingModel, BindingProps, Color, Dimension, DisplayMode, EntityModel, EntityProps, TickHandlerModel, TickHandlerProps, TransformModel, TransformProps } from '../interfaces'; export interface APLBaseComponentModel extends APLContainerChildComponentModel { type?: string; id?: string; accessibilityLabel?: string; actions?: ActionModel[]; bind?: BindingModel[]; description?: string; checked?: Calculable<boolean>; disabled?: Calculable<boolean>; display?: Calculable<DisplayMode>; entities?: EntityModel[]; handleTick?: TickHandlerModel[]; height?: Calculable<Dimension>; width?: Calculable<Dimension>; inheritParentState?: Calculable<boolean>; layoutDirection?: Calculable<string>; maxHeight?: Calculable<Dimension>; maxWidth?: Calculable<Dimension>; minHeight?: Calculable<Dimension>; minWidth?: Calculable<Dimension>; onMount?: Command<CommandModel, CommandProps>[]; onCursorEnter?: Command<CommandModel, CommandProps>[]; onCursorExit?: Command<CommandModel, CommandProps>[]; opacity?: Calculable<number | string>; padding?: Dimension[]; paddingBottom?: Calculable<Dimension>; paddingEnd?: Calculable<Dimension>; paddingLeft?: Calculable<Dimension>; paddingRight?: Calculable<Dimension>; paddingStart?: Calculable<Dimension>; paddingTop?: Calculable<Dimension>; preserve?: string[]; role?: Calculable<string>; shadowColor?: Calculable<Color>; shadowHorizontalOffset?: Calculable<Dimension>; shadowRadius?: Calculable<Dimension>; shadowVerticalOffset?: Calculable<Dimension>; style?: Calculable<string>; transform?: TransformModel[]; when?: Calculable<string>; } export interface APLBaseComponentProps extends APLContainerChildComponentProps { id?: string; accessibilityLabel?: string; actions?: ActionProps[]; bind?: BindingProps[]; description?: string; checked?: Calculable<boolean>; disabled?: Calculable<boolean>; display?: Calculable<DisplayMode>; entities?: EntityProps[]; handleTick?: TickHandlerProps[]; height?: Calculable<Dimension>; width?: Calculable<Dimension>; inheritParentState?: Calculable<boolean>; layoutDirection?: Calculable<string>; maxHeight?: Calculable<Dimension>; maxWidth?: Calculable<Dimension>; minHeight?: Calculable<Dimension>; minWidth?: Calculable<Dimension>; onMount?: Command<CommandModel, CommandProps>[]; onCursorEnter?: Command<CommandModel, CommandProps>[]; onCursorExit?: Command<CommandModel, CommandProps>[]; opacity?: number | Calculable<string>; padding?: Dimension[]; paddingBottom?: Calculable<Dimension>; paddingEnd?: Calculable<Dimension>; paddingLeft?: Calculable<Dimension>; paddingRight?: Calculable<Dimension>; paddingStart?: Calculable<Dimension>; paddingTop?: Calculable<Dimension>; preserve?: string[]; role?: Calculable<string>; shadowColor?: Calculable<Color>; shadowHorizontalOffset?: Calculable<Dimension>; shadowRadius?: Calculable<Dimension>; shadowVerticalOffset?: Calculable<Dimension>; style?: Calculable<string>; transform?: TransformProps[]; when?: Calculable<string>; propertiesForContainerChildren?: APLContainerChildComponentProps; } export declare abstract class APLComponent<T extends APLBaseComponentModel, P extends APLBaseComponentProps> implements RequestHandlerProvider, ModelProvider<T> { readonly type: string; readonly props: P; containerChildProperties?: APLContainerChildComponentProps; protected constructor(type: string, props: P); abstract componentSpecificRequestHandlers(): LabeledRequestHandler[]; abstract componentSpecificModel(): T; model(): T & APLContainerChildComponentModel; toJSON(): T; getRequestHandlers(): LabeledRequestHandler[]; private convertBaseComponentPropsToRequestHandlers; private convertContainerChildComponentPropsToModel; private convertBaseComponentPropsToModel; protected convertActionableComponentPropsToModel(props: APLActionableComponentProps): APLActionableComponentModel; protected convertMultiChildComponentPropsToModel(props: APLMultiChildComponentProps): APLMultiChildComponentModel; }