@leafer-in/interface
Version:
@leafer-in/interface
172 lines (161 loc) • 5.22 kB
TypeScript
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 };