UNPKG

@leafer-in/interface

Version:
172 lines (161 loc) 5.22 kB
import { IEditBoxBase, IUI, IRectInputData, IGroup, IBoundsData, IBounds, IPointerEvent, IRect, IMatrix, IFunction, IEditorBase, IObject, IEventListenerId, IEvent, IPointData, IMatrixData, IDragEvent, IMoveEvent, IZoomEvent, IRotateEvent, IAround, IImageData, IImageInputData, IBoxInputData, IFourNumber, IAxisAlign, IFlowWrap, IGap, IFlowAlign } from '@leafer-ui/interface'; export * from '@leafer-ui/interface'; interface IEditBox extends IEditBoxBase { editor: IEditor; } interface IStroker extends IUI { target: IUI | IUI[]; update(style?: IRectInputData): void; setTarget(target: IUI | IUI[], style?: IRectInputData): void; } interface ISelectArea extends IGroup { setStyle(style: IRectInputData, userStyle?: IRectInputData): void; setBounds(bounds: IBoundsData): void; } interface IEditSelect extends IGroup { editor: IEditor; dragging: boolean; running: boolean; hoverStroker: IStroker; targetStroker: IStroker; selectArea: ISelectArea; bounds: IBounds; findUI(e: IPointerEvent): IUI; findDeepOne(e: IPointerEvent): IUI; update(): void; } interface ISimulateElement extends IRect { checkChange: boolean; canChange: boolean; changedTransform: IMatrix; safeChange(fn: IFunction): void; } interface IEditor extends IEditorBase { simulateTarget: ISimulateElement; selector: IEditSelect; editBox: IEditBox; editTool?: IEditTool; innerEditor?: IInnerEditor; targetEventIds: IEventListenerId[]; checkOpenedGroups(): void; listenTargetEvents(): void; removeTargetEvents(): void; } interface IEditTool extends IInnerEditor { onMove(e: IEditorMoveEvent): void; onScale(e: IEditorScaleEvent): void; onScaleWithDrag?(e: IEditorScaleEvent): void; onRotate(e: IEditorRotateEvent): void; onSkew(e: IEditorSkewEvent): void; } interface IInnerEditor { readonly tag: string; readonly mode: IInnerEditorMode; editTarget: IUI; config: IObject; editor: IEditor; editBox: IEditBox; view: IGroup; eventIds: IEventListenerId[]; onCreate(): void; create(): void; onLoad(): void; load(): void; onLoad(): void; unload(): void; onUpdate(): void; update(): void; onDestroy(): void; destroy(): void; } type IInnerEditorMode = 'focus' | 'both'; interface IEditorEvent extends IEvent { readonly target?: IUI; readonly editor?: IEditor; readonly value?: IUI | IUI[]; readonly oldValue?: IUI | IUI[]; readonly list?: IUI[]; readonly oldList?: IUI[]; readonly worldOrigin?: IPointData; readonly origin?: IPointData; } interface IInnerEditorEvent extends IEditorEvent { editTarget: IUI; innerEditor: IInnerEditor; } interface IEditorGroupEvent extends IEditorEvent { editTarget: IGroup; } interface IEditorTransformEvent extends IEditorEvent { transform?: IMatrixData; operateEvent?: IDragEvent | IMoveEvent | IZoomEvent | IRotateEvent; isStart?: boolean; isEnd?: boolean; } interface IEditorMoveEvent extends IEditorTransformEvent { readonly moveX: number; readonly moveY: number; } interface IEditorScaleEvent extends IEditorTransformEvent { readonly scaleX?: number; readonly scaleY?: number; readonly direction?: number; readonly lockRatio?: boolean | 'corner'; readonly around?: IAround; drag?: IDragEvent; } interface IEditorRotateEvent extends IEditorTransformEvent { readonly rotation?: number; } interface IEditorSkewEvent extends IEditorTransformEvent { readonly skewX?: number; readonly skewY?: number; } interface IHTMLTextAttrData { text?: string; __htmlChanged?: boolean; } interface IHTMLTextData extends IHTMLTextAttrData, IImageData { } interface IHTMLTextInputData extends IHTMLTextAttrData, IImageInputData { } interface IScrollBarConfig { theme?: IScrollBarTheme; padding?: IFourNumber; minSize?: number; } type IScrollBarTheme = 'light' | 'dark' | IBoxInputData; interface IScrollBar extends IGroup { config: IScrollBarConfig; changeTheme(theme: IScrollBarTheme): void; update(check: boolean): void; } interface IFlowWrapDrawData extends IGapBoundsData { list: IFlowDrawData[]; } interface IFlowDrawData extends IGapBoundsData { start: number; grow: number; hasRangeSize?: boolean; } interface IGapBoundsData extends IBoundsData { count: number; gap: number; } interface IFlowAlignToAxisAlignMap { [name: string]: IAxisAlign; } interface IFlowParseData { complex: boolean; wrap: IFlowWrap; xGap: IGap; yGap: IGap; isAutoXGap: boolean; isAutoYGap: boolean; isFitXGap: boolean; isFitYGap: boolean; contentAlign: IFlowAlign; rowXAlign: IAxisAlign; rowYAlign: IAxisAlign; } export type { IEditBox, IEditSelect, IEditTool, IEditor, IEditorEvent, IEditorGroupEvent, IEditorMoveEvent, IEditorRotateEvent, IEditorScaleEvent, IEditorSkewEvent, IFlowAlignToAxisAlignMap, IFlowDrawData, IFlowParseData, IFlowWrapDrawData, IGapBoundsData, IHTMLTextData, IHTMLTextInputData, IInnerEditor, IInnerEditorEvent, IInnerEditorMode, IScrollBar, IScrollBarConfig, IScrollBarTheme, ISelectArea, ISimulateElement, IStroker };