intentful
Version:
Create Custom Skills with less headache
103 lines (102 loc) • 4.69 kB
TypeScript
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;
}