@leafer-ui/interface
Version:
@leafer-ui/interface
1,287 lines (1,262 loc) • 46.8 kB
TypeScript
import { IBlendMode, IAlign, IUnitPointData, IExportFileType, IFourNumber, IPointData, IOptionSizeData, ISizeData, IGap, IPointGap, IScaleFixed, IPathCommandData, IAxis, IAxisReverse, IDirection, IWindingRule, IFilter, IMatrixData, ILeaferImage, ITaskItem, INumber, IString, IBoolean, IUnitData, IAnimateOptions, IAnimateEasing, IEventer, IObject, IEventParamsMap, IAnimateEasingFunction, IAnimateEnding, ITransition, IPercentData, IBounds, ILeafInputData, ILeaf as ILeaf$1, ILeafComputedData, ILeafData, IBoundsData, IValue, IPathCreator, IJSONOptions, IFindCondition, IAnswer, IPathString, IPathDrawer, ILeaferCanvas, IRenderOptions, IExportOptions, IExportResult, IPickOptions, IPickResult, ICanvasContext2DSettings, ICanvasContext2D, ILeaferAttrData, IControl, ILeaferType, ILeaferConfig, ILeafRender, ILeafBounds, ILeafHit, ICachedLeaf, IBooleanMap, IMatrixWithBoundsScaleData } from '@leafer/interface';
export * from '@leafer/interface';
import { IObject as IObject$1, IEditSize, IStroke as IStroke$1, IFourNumber as IFourNumber$1, IFill as IFill$1, IBoxInputData as IBoxInputData$1, IRectInputData as IRectInputData$1, IColorString as IColorString$1, IDirection4, ICursorType, IImageCursor, IAlign as IAlign$1, IUnitPointData as IUnitPointData$1, IUIInputData as IUIInputData$1, IShortcutKeysCheck, IShortcutKeys, IUI as IUI$1, IPointData as IPointData$1, IScaleData, ISkewData, IGroup as IGroup$1, ISelectorProxy, IBox as IBox$1, ILayoutBoundsData, IKeyEvent, IUIEvent, IDragEvent, IMoveEvent, IZoomEvent, IRotateEvent, ITransition as ITransition$1, ILeafList, ILeafer as ILeafer$1, ILeaf, IGroupInputData as IGroupInputData$1, IStateName as IStateName$1, IString as IString$1, IBoolean as IBoolean$1, IStateStyle as IStateStyle$1 } from '@leafer-ui/interface';
type IPercent = string;
type IColorString = string;
type ICornerRadiusString = string;
type IStrokeWidthString = string;
type IDashPatternString = string;
type IPaintString = ISolidPaintString | IGradientPaintString | IImagePaintString;
type ISolidPaintString = string;
type IGradientPaintString = string;
type IImagePaintString = string;
type IShadowString = string;
type IPaint = ISolidPaint | IGradientPaint | IImagePaint;
type IStrokePaint = IStrokeSolidPaint | IStrokeGradientPaint | IStrokeImagePaint;
type IFill = IPaint | IPaint[] | IPaintString;
type IStroke = IStrokePaint | IStrokePaint[] | IPaintString;
type IPaintAttr = 'fill' | 'stroke';
interface IPaintBase {
type: IPaintType;
blendMode?: IBlendMode;
visible?: boolean;
opacity?: number;
style?: IStrokeStyle;
editing?: boolean;
}
type IPaintType = 'image' | 'solid' | IGradientType;
type IGradientType = 'linear' | 'radial' | 'angular';
interface ISolidPaint extends IPaintBase {
type: 'solid';
color: IColor;
}
interface IStrokeSolidPaint extends ISolidPaint {
}
type IColor = IColorString | IRGB | IRGBA;
interface IRGB {
r: number;
g: number;
b: number;
a?: number;
}
interface IRGBA extends IRGB {
a: number;
}
interface IGradientPaint extends IPaintBase {
type: IGradientType;
from?: IAlign | IUnitPointData;
to?: IAlign | IUnitPointData;
stretch?: number;
stops: IColorStop[] | IColorString[];
}
interface IStrokeGradientPaint extends IGradientPaint {
}
interface IColorStop {
offset: number;
color: IColor;
}
interface IImagePaint extends IPaintBase {
type: "image";
url: string;
mode?: IImagePaintMode;
format?: IExportFileType;
filters?: IImageFilters;
padding?: IFourNumber;
align?: IAlign;
offset?: IPointData;
size?: number | IOptionSizeData;
scale?: number | IPointData;
rotation?: number;
skew?: IPointData;
freeTransform?: boolean;
clipSize?: ISizeData;
repeat?: IRepeat;
gap?: IGap | IPointGap;
scaleFixed?: IScaleFixed;
changeful?: boolean;
sync?: boolean;
showProgress?: boolean;
}
interface IStrokeImagePaint extends IImagePaint {
}
interface IImageFilters {
exposure?: number;
contrast?: number;
saturation?: number;
temperature?: number;
tint?: number;
highlights?: number;
shadows?: number;
}
type IImagePaintMode = 'normal' | 'cover' | 'fit' | 'stretch' | 'clip' | 'repeat';
type IRepeat = boolean | 'x' | 'y' | IPointData;
type IStrokeAlign = 'inside' | 'outside' | 'center';
type IStrokeCap = 'none' | 'round' | 'square';
type IStrokeJoin = 'bevel' | 'round' | 'miter';
type IArrowType = 'none' | 'angle' | 'angle-side' | 'arrow' | 'triangle' | 'triangle-flip' | 'circle' | 'circle-line' | 'square' | 'square-line' | 'diamond' | 'diamond-line' | 'mark' | (string & {});
type IArrowStyle = IPathDataArrow | IArrowType | IArrowTypeData;
interface IArrowTypeData {
type: IArrowType;
scale?: number;
}
interface IPathDataArrowMap {
[name: string]: IPathDataArrow;
}
interface IPathDataArrow {
connect?: IPathDataArrowOffset;
offset?: IPathDataArrowOffset;
path: IPathCommandData;
dashPath?: IPathCommandData;
}
interface IPathDataArrowOffset {
x?: number;
bevelJoin?: number;
roundJoin?: number;
}
type ITextAlign = 'left' | 'center' | 'right' | 'justify' | 'both';
type IVerticalAlign = 'top' | 'middle' | 'bottom';
type ITextCase = 'upper' | 'lower' | 'title' | 'none' | 'small-caps';
type IFontWeight = IFontWeightNumer | IFontWeightString;
type IFontWeightNumer = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
type IFontWeightString = 'thin' | 'extra-light' | 'light' | 'normal' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black';
type ITextDecoration = ITextDecorationType | ITextDecorationData;
type ITextDecorationType = 'none' | 'under' | 'delete' | 'under-delete';
interface ITextDecorationData {
type: ITextDecorationType;
color: IColor;
offset?: number;
}
type ITextWrap = 'normal' | 'none' | 'break';
type IWritingMode = IAxis | IAxisReverse;
interface IVectorPath {
rule?: IWindingRule;
data: string | IPathCommandData;
}
interface IShadowEffect {
x?: number;
y?: number;
blur?: number;
spread?: number;
color?: IColorString | IColor;
blendMode?: IBlendMode;
visible?: boolean;
box?: boolean;
scaleFixed?: IScaleFixed;
skew?: IPointData;
scale?: IPointData;
rotation?: number;
origin?: IDirection;
}
interface IBlurEffect {
blur: number;
visible?: boolean;
}
interface IGrayscaleEffect {
grayscale: number;
visible?: boolean;
}
interface IEffect extends IFilter {
}
type IOverflow = 'show' | 'hide' | 'scroll' | 'x-scroll' | 'y-scroll';
type ITextOverflow = 'show' | 'hide' | 'ellipsis' | (string & {});
type ILeafPaintColor = IColorString | CanvasGradient | CanvasPattern;
interface ILeafPaint {
type?: IPaintType;
style?: ILeafPaintColor;
strokeStyle?: IStrokeComputedStyle;
transform?: IMatrixData;
blendMode?: IBlendMode;
image?: ILeaferImage;
loadId?: number;
patternId?: string;
patternTask?: ITaskItem;
changeful?: boolean;
sync?: boolean;
isTransparent?: boolean;
data?: ILeafPaintPatternData;
editing?: boolean;
scaleFixed?: IScaleFixed;
}
interface ILeafPaintPatternData {
width?: number;
height?: number;
scaleX?: number;
scaleY?: number;
gap?: IPointData;
opacity?: number;
transform?: IMatrixData;
filters?: IImageFilters;
mode?: IImagePaintMode;
repeat?: 'repeat' | 'repeat-x' | 'repeat-y';
}
type ILeafFill = ILeafPaint;
interface ILeafStrokePaint extends ILeafPaint {
strokeAlign?: IStrokeAlign;
strokeWidth?: number;
strokeCap?: IStrokeCap;
strokeJoin?: IStrokeJoin;
dashPattern?: number[];
miterLimit?: number;
}
interface ILeafShadowEffect {
x?: number;
y?: number;
blur?: number;
spread?: number;
color?: IColorString;
blendMode?: IBlendMode;
box?: boolean;
scaleFixed?: IScaleFixed;
skew?: IPointData;
scale?: IPointData;
rotation?: number;
origin?: IDirection;
}
interface ICornerRadiusAttrData {
cornerRadius?: IFourNumber | ICornerRadiusString;
cornerSmoothing?: INumber;
}
interface ICornerRadiusInputData {
cornerRadius?: IFourNumber | ICornerRadiusString;
cornerSmoothing?: INumber;
}
interface ICornerRadiusComputedData {
cornerRadius?: number;
cornerSmoothing?: number;
}
interface IFillAttrData {
fill?: IFill;
}
interface IFillInputData {
fill?: IFill;
}
interface IFillComputedData {
fill?: IColorString | ILeafPaint[];
}
interface IBorderComputedData {
borderWidth?: number | number[];
borderRadius?: number | number[];
}
interface IStrokeAttrData extends IStrokeStyle {
stroke?: IStroke;
startArrow?: IArrowStyle;
endArrow?: IArrowStyle;
}
interface IStrokeInputData extends IStrokeStyle {
stroke?: IStroke;
startArrow?: IArrowStyle;
endArrow?: IArrowStyle;
}
interface IStrokeStyle {
strokeAlign?: IStrokeAlign;
strokeWidth?: IFourNumber | IStrokeWidthString;
strokeWidthFixed?: IScaleFixed;
strokeCap?: IStrokeCap;
strokeJoin?: IStrokeJoin;
dashPattern?: INumber[] | IDashPatternString;
dashOffset?: INumber;
miterLimit?: INumber;
}
interface IStrokeComputedData extends IStrokeComputedStyle {
stroke?: IColorString | ILeafStrokePaint[];
startArrow?: IArrowStyle;
endArrow?: IArrowStyle;
}
interface IStrokeComputedStyle {
strokeAlign?: IStrokeAlign;
strokeWidth?: number;
strokeWidths?: number[];
strokeWidthFixed?: IScaleFixed;
strokeCap?: IStrokeCap;
strokeJoin?: IStrokeJoin;
dashPattern?: number[];
dashOffset?: number;
miterLimit?: number;
}
interface ITextStyleAttrData {
fontFamily?: IString;
fontSize?: INumber;
fontWeight?: IFontWeight;
italic?: IBoolean;
textCase?: ITextCase;
textDecoration?: ITextDecoration;
letterSpacing?: INumber | IUnitData;
lineHeight?: INumber | IUnitData;
paraIndent?: INumber;
paraSpacing?: INumber;
writingMode?: IWritingMode;
textAlign?: ITextAlign;
verticalAlign?: IVerticalAlign;
autoSizeAlign?: IBoolean;
textWrap?: ITextWrap;
textOverflow?: ITextOverflow;
}
interface ITextStyleInputData {
fontFamily?: IString;
fontSize?: INumber;
fontWeight?: IFontWeight;
italic?: IBoolean;
textCase?: ITextCase;
textDecoration?: ITextDecoration;
letterSpacing?: INumber | IUnitData;
lineHeight?: INumber | IUnitData;
paraIndent?: INumber;
paraSpacing?: INumber;
writingMode?: IWritingMode;
textAlign?: ITextAlign;
verticalAlign?: IVerticalAlign;
autoSizeAlign?: IBoolean;
textWrap?: ITextWrap;
textOverflow?: ITextOverflow;
}
interface ITextStyleComputedData {
fontFamily?: string;
fontSize?: number;
fontWeight?: IFontWeight;
italic?: boolean;
textCase?: ITextCase;
textDecoration?: ITextDecoration;
letterSpacing?: number;
lineHeight?: number;
paraIndent?: number;
paraSpacing?: number;
writingMode?: IWritingMode;
textAlign?: ITextAlign;
verticalAlign?: IVerticalAlign;
autoSizeAlign?: boolean;
textWrap?: ITextWrap;
textOverflow?: ITextOverflow;
}
interface IEffectAttrData {
shadow?: IShadowEffect | IShadowEffect[] | IShadowString;
innerShadow?: IShadowEffect | IShadowEffect[] | IShadowString;
blur?: INumber | IBlurEffect;
backgroundBlur?: INumber | IBlurEffect;
grayscale?: INumber | IGrayscaleEffect;
}
interface IEffectInputData {
shadow?: IShadowEffect | IShadowEffect[] | IShadowString;
innerShadow?: IShadowEffect | IShadowEffect[] | IShadowString;
blur?: INumber | IBlurEffect;
backgroundBlur?: INumber | IBlurEffect;
grayscale?: INumber | IGrayscaleEffect;
}
interface IEffectComputedData {
shadow?: ILeafShadowEffect[];
innerShadow?: ILeafShadowEffect[];
blur?: number;
backgroundBlur?: number;
grayscale?: number;
}
type IAnimation = IStyleAnimation | IKeyframesAnimation;
type IAnimateType = 'all' | 'animation' | 'transition' | 'animate';
interface IStyleAnimation extends IAnimateOptions {
style: IUIInputData;
}
interface IKeyframesAnimation extends IAnimateOptions {
keyframes: IKeyframe[];
}
type IKeyframe = IUIInputData | IAnimateKeyframe;
type IKeyframeId = number;
interface IAnimateKeyframe {
style: IUIInputData;
easing?: IAnimateEasing;
delay?: number;
duration?: number;
swing?: number;
loop?: number;
autoDelay?: number;
autoDuration?: number;
}
interface IComputedKeyframe {
style: IUIInputData;
beforeStyle: IUIInputData;
betweenStyle?: IUIInputData;
easingFn?: IAnimateEasingFunction;
delay?: number;
duration?: number;
swing?: number;
loop?: number;
autoDelay?: number;
autoDuration?: number;
totalTime?: number;
}
interface IAnimate extends IAnimateOptions, IEventer {
target: IUI | IObject;
parent?: IAnimateList;
keyframes: IKeyframe[];
config?: IAnimateOptions;
event?: IEventParamsMap;
readonly frames: IComputedKeyframe[];
readonly style: IUIInputData;
readonly fromStyle: IUIInputData;
readonly toStyle: IUIInputData;
readonly endingStyle: IUIInputData;
readonly started: boolean;
readonly running: boolean;
readonly completed: boolean;
readonly destroyed: boolean;
readonly time: number;
readonly looped: number;
readonly realEnding: IAnimateEnding;
init(target: IUI | IObject, keyframe: IUIInputData | IKeyframe[], options?: ITransition, isTemp?: boolean): void;
play(): void;
pause(): void;
stop(): void;
seek(time: number | IPercentData): void;
kill(complete?: boolean, killStyle?: IUIInputData): void;
destroy(complete?: boolean): void;
}
interface IAnimateList extends IAnimate {
list: IAnimate[];
updateList(animation?: IAnimation[] | IAnimate[], isTemp?: boolean): void;
onChildEvent(type: string, _animate: IAnimate): void;
}
interface IEditorBase extends IGroup$1, ISelectorProxy, ITransformTool {
config: IEditorConfig;
readonly mergeConfig: IEditorConfig;
readonly mergedConfig: IEditorConfig;
target?: IUI$1 | IUI$1[];
hoverTarget?: IUI$1;
dimTarget?: IGroup$1 | IGroup$1[];
readonly list: IUI$1[];
leafList: ILeafList;
openedGroupList: ILeafList;
readonly editing: boolean;
innerEditing: boolean;
readonly groupOpening: boolean;
readonly multiple: boolean;
readonly single: boolean;
readonly dragPoint: IEditPoint;
readonly dragging: boolean;
readonly gesturing: boolean;
readonly moving: boolean;
readonly resizing: boolean;
readonly rotating: boolean;
readonly skewing: boolean;
element?: IUI$1;
buttons: IGroup$1;
selector: IGroup$1;
editBox: IEditBoxBase;
editTool?: IObject$1;
innerEditor?: IObject$1;
editMask: IUI$1;
readonly targetLeafer: ILeafer$1;
select(target: IUI$1 | IUI$1[]): void;
cancel(): void;
hasItem(item: IUI$1): boolean;
shiftItem(item: IUI$1): void;
addItem(item: IUI$1): void;
removeItem(item: IUI$1): void;
setDimOthers(value: boolean | number): void;
setBright(value: boolean): void;
update(): void;
updateEditBox(): void;
updateEditTool(): void;
unloadEditTool(): void;
getEditSize(ui: ILeaf): IEditSize;
group(group?: IGroup$1 | IGroupInputData$1): IGroup$1;
ungroup(): IUI$1[];
openGroup(group: IGroup$1): void;
closeGroup(group: IGroup$1): void;
openInnerEditor(target?: IUI$1, nameOrSelect?: string | boolean, select?: boolean): void;
closeInnerEditor(onlyInnerEditor?: boolean): void;
lock(): void;
unlock(): void;
toTop(): void;
toBottom(): void;
}
interface ITransformTool {
editBox: IEditBoxBase;
editTool?: IObject$1;
onMove(e: IDragEvent | IMoveEvent): void;
onScale(e: IDragEvent | IZoomEvent): void;
onRotate(e: IDragEvent | IRotateEvent): void;
onSkew(e: IDragEvent): void;
move(x: number | IPointData$1, y?: number, transition?: ITransition$1): void;
scaleOf(origin: IPointData$1 | IAlign$1, scaleX: number, scaleY?: number | ITransition$1, resize?: boolean, transition?: ITransition$1): void;
rotateOf(origin: IPointData$1 | IAlign$1, rotation: number, transition?: ITransition$1): void;
skewOf(origin: IPointData$1 | IAlign$1, skewX: number, skewY?: number, resize?: boolean, transition?: ITransition$1): void;
}
interface IEditorConfig extends IObject$1 {
editSize?: IEditSize;
keyEvent?: boolean;
stroke?: IStroke$1;
strokeWidth?: number;
spread?: IFourNumber$1;
pointFill?: IFill$1;
pointSize?: number;
pointRadius?: number;
point?: IEditPointInputData | IEditPointInputData[];
middlePoint?: IEditPointInputData | IEditPointInputData[];
resizeLine?: IEditPointInputData;
rect?: IBoxInputData$1;
rectThrough?: boolean;
area?: IRectInputData$1;
mask?: boolean | IColorString$1;
dimOthers?: boolean | number;
bright?: boolean;
circle?: IEditPointInputData;
circleDirection?: IDirection4;
circleMargin?: number;
rotatePoint?: IEditPointInputData;
buttonsDirection?: IDirection4;
buttonsFixed?: boolean | 'AABB' | 'OBB';
buttonsMargin?: number;
hideOnMove?: boolean;
hideOnSmall?: boolean | number;
hideRotatePoints?: boolean;
hideResizeLines?: boolean;
moveCursor?: ICursorType;
resizeCursor?: IImageCursor;
rotateCursor?: IImageCursor;
skewCursor?: IImageCursor;
around?: IAlign$1 | IUnitPointData$1;
rotateAround?: IAlign$1 | IUnitPointData$1;
rotateGap?: number;
lockRatio?: boolean | 'corner';
dragLimitAnimate?: boolean | number;
ignorePixelSnap?: boolean;
selector?: boolean;
editBox?: boolean;
hover?: boolean;
hoverStyle?: IUIInputData$1;
select?: 'press' | 'tap';
selectKeep?: boolean;
selectedStyle?: IUIInputData$1;
multipleSelect?: boolean;
boxSelect?: boolean;
continuousSelect?: boolean;
openInner?: 'double' | 'long';
moveable?: boolean | 'gesture' | 'move';
resizeable?: boolean | 'gesture' | 'zoom';
flipable?: boolean;
rotateable?: boolean | 'gesture' | 'rotate';
skewable?: boolean;
multipleSelectKey?: IShortcutKeysCheck | IShortcutKeys;
rotateKey?: IShortcutKeysCheck | IShortcutKeys;
diagonalRotateKey?: IShortcutKeysCheck | IShortcutKeys;
beforeSelect?: IEditorBeforeSelect;
beforeEditOuter?: IEditorBeforeEditOuter;
beforeEditInner?: IEditorBeforeEditInner;
beforeMove?: IEditorBeforeMove;
beforeScale?: IEditorBeforeScale;
beforeRotate?: IEditorBeforeRotate;
beforeSkew?: IEditorBeforeSkew;
preventEditInner?: boolean;
textEditor?: IObject$1;
pathEditor?: IObject$1;
}
interface IEditorSelectData {
target: IUI$1 | IUI$1[];
}
interface IEditorEditOuterData {
target: IUI$1;
name: string;
}
type IEditorEditInnerData = IEditorEditOuterData;
interface IEditorMoveData extends IPointData$1, IObject$1 {
target: IUI$1;
}
interface IEditorScaleData extends IScaleData, IObject$1 {
target: IUI$1;
origin: IPointData$1 | IAlign$1;
}
interface IEditorRotationData extends IObject$1 {
target: IUI$1;
origin: IPointData$1 | IAlign$1;
rotation: number;
}
interface IEditorSkewData extends ISkewData, IObject$1 {
target: IUI$1;
origin: IPointData$1 | IAlign$1;
}
interface IEditorBeforeSelect {
(data: IEditorSelectData): IUI$1 | IUI$1[] | boolean | void;
}
interface IEditorBeforeEditOuter {
(data: IEditorEditOuterData): string | boolean | void;
}
interface IEditorBeforeEditInner {
(data: IEditorEditInnerData): string | boolean | void;
}
interface IEditorBeforeMove {
(data: IEditorMoveData): IPointData$1 | boolean | void;
}
interface IEditorBeforeScale {
(data: IEditorScaleData): IScaleData | boolean | void;
}
interface IEditorBeforeRotate {
(data: IEditorRotationData): number | boolean | void;
}
interface IEditorBeforeSkew {
(data: IEditorSkewData): ISkewData | boolean | void;
}
interface IEditPointInputData extends IBoxInputData$1 {
direction?: number;
pointType?: IEditPointType;
}
interface IEditPoint extends IBox$1 {
direction: number;
pointType: IEditPointType;
}
type IEditPointType = 'move' | 'resize' | 'rotate' | 'skew' | 'resize-rotate' | 'button';
interface IEditBoxBase extends IGroup$1 {
editor: IEditorBase;
dragging: boolean;
gesturing: boolean;
moving: boolean;
resizing: boolean;
rotating: boolean;
skewing: boolean;
view: IGroup$1;
circle: IEditPoint;
rect: IEditPoint;
buttons: IGroup$1;
resizePoints: IEditPoint[];
rotatePoints: IEditPoint[];
resizeLines: IEditPoint[];
enterPoint: IEditPoint;
dragPoint: IEditPoint;
dragStartData: IEditorDragStartData;
config: IEditorConfig;
readonly mergeConfig: IEditorConfig;
readonly mergedConfig: IEditorConfig;
target: IUI$1;
single: boolean;
transformTool: ITransformTool;
readonly flipped: boolean;
readonly flippedX: boolean;
readonly flippedY: boolean;
readonly flippedOne: boolean;
readonly canUse: boolean;
readonly canGesture: boolean;
getPointStyle(userStyle?: IBoxInputData$1): IBoxInputData$1;
getPointsStyle(): IBoxInputData$1[];
getMiddlePointsStyle(): IBoxInputData$1[];
load(): void;
update(): void;
unload(): void;
onArrow(e: IKeyEvent): void;
isHoldRotateKey(e: IUIEvent): boolean;
}
interface IEditorDragStartData {
x: number;
y: number;
totalOffset: IPointData$1;
point: IPointData$1;
bounds: ILayoutBoundsData;
rotation: number;
}
interface IEditorConfigFunction {
(ui: any): IEditorConfig;
}
interface IEditToolFunction {
(ui: any): string;
}
interface IScrollConfig {
theme?: IScrollTheme;
style?: IBoxInputData;
size?: number;
cornerRadius?: number;
endsMargin?: number;
sideMargin?: number;
minSize?: number;
scaleFixed?: IScaleFixed;
scrollType?: 'drag' | 'move' | 'both';
stopDefault?: boolean;
hideOnActionEnd?: boolean | 'hover' | 'scroll';
}
type IScrollTheme = 'light' | 'dark' | (string & {});
interface IScroller extends IGroup {
config: IScrollConfig;
mergedConfig: IScrollConfig;
scrollXBar: IBox;
scrollYBar: IBox;
scrollXBounds: IBounds;
scrollYBounds: IBounds;
scrollRatioX: number;
scrollRatioY: number;
ratioX: number;
ratioY: number;
dragScrolling: boolean;
updateConfig(): void;
update(check?: boolean): void;
}
interface ILine extends ILineAttrData, IUI {
__: ILineData;
}
interface ILineAttrData {
toPoint?: IPointData;
points?: number[] | IPointData[];
curve?: boolean | number;
}
interface ILineData extends ILineAttrData, IUIData {
}
interface ILineInputData extends ILineAttrData, IUIBaseInputData {
}
interface IArrow extends ILine {
__: IArrowData;
}
interface IArrowAttrData {
}
interface IArrowData extends IArrowAttrData, ILineData {
}
interface IArrowInputData extends IArrowAttrData, ILineInputData {
}
interface IFlow extends IBox {
__: IFlowData;
}
interface IFlowAttrData {
}
interface IFlowData extends IFlowAttrData, IBoxData {
}
interface IFlowInputData extends IFlowAttrData, IBoxInputData {
}
interface IVideo extends IPlayerMethods, IRect {
__: IVideoData;
}
interface IPlayerMethods {
play(): void;
pause(): void;
stop(): void;
}
interface IVideoAttrData {
url?: string;
}
interface IVideoData extends IVideoAttrData, IRectData {
}
interface IVideoInputData extends IVideoAttrData, IRectInputData {
}
interface IGIF extends IPlayerMethods, IRect {
__: IGIFData;
}
interface IGIFAttrData {
url?: string;
}
interface IGIFData extends IGIFAttrData, IRectData {
}
interface IGIFInputData extends IGIFAttrData, IRectInputData {
}
interface IRobot extends IRobotAttrData, IPlayerMethods, IRect {
__: IRobotData;
readonly running: boolean;
readonly nowFrame?: IRobotComputedKeyframe;
readonly robotFrames?: IRobotComputedKeyframe[];
__updateRobot(): void;
__updateAction(): void;
}
interface IRobotAttrData {
robot?: IRobotKeyframe | IRobotKeyframe[];
actions?: IRobotActions;
action?: IRobotActionName;
now?: number;
FPS?: number;
loop?: boolean | number;
}
interface IRobotActions {
[name: string]: IKeyframeId | IKeyframeId[] | IRobotAnimation;
}
interface IRobotAnimation {
keyframes: IKeyframeId[];
loop?: boolean | number;
FPS?: number;
}
type IRobotActionName = string;
interface IRobotKeyframe {
mode?: 'normal' | 'clip';
url: string;
offset?: IPointData;
size?: number | ISizeData;
total?: number;
}
interface IRobotComputedKeyframe extends IBoundsData {
view: any;
}
interface IRobotData extends IRobotAttrData, IRectData {
}
interface IRobotInputData extends IRobotAttrData, IRectInputData {
}
interface IRect extends IUI {
__: IRectData;
}
interface IRectData extends IUIData {
}
interface IRectInputData extends IUIBaseInputData {
}
interface IEllipse extends IUI, IEllipseAttrData {
__: IEllipseData;
}
interface IEllipseAttrData {
startAngle?: number;
endAngle?: number;
innerRadius?: number;
}
interface IEllipseData extends IEllipseAttrData, IUIData {
}
interface IEllipseInputData extends IEllipseAttrData, IUIBaseInputData {
}
interface IPolygon extends IPolygonAttrData, IUI {
__: IPolygonData;
}
interface IPolygonAttrData {
sides?: number;
points?: number[] | IPointData[];
curve?: boolean | number;
}
interface IPolygonData extends IPolygonAttrData, IUIData {
}
interface IPolygonInputData extends IPolygonAttrData, IUIBaseInputData {
}
interface IStar extends IStarAttrData, IUI {
__: IStarData;
}
interface IStarAttrData {
corners?: number;
innerRadius?: number;
}
interface IStarData extends IStarAttrData, IUIData {
}
interface IStarInputData extends IStarAttrData, IUIBaseInputData {
}
interface IPath extends IUI {
__: IPathData;
}
interface IPathData extends IUIData {
}
interface IPathInputData extends IUIBaseInputData {
}
interface IPen extends IGroup, IPathCreator {
__: IPenData;
pathElement: IPath;
pathStyle: IPathInputData;
path: IPathCommandData;
paint(): void;
}
interface IPenData extends IGroupData {
}
interface IPenInputData extends IGroupInputData {
}
interface IText extends ITextAttrData, ITextStyleAttrData, IUI {
__: ITextData;
}
interface ITextAttrData {
text?: string | number;
placeholder?: string;
padding?: IFourNumber;
resizeFontSize?: boolean;
boxStyle?: IBackgroundBoxStyle;
textEditing?: boolean;
}
interface IBackgroundBoxStyle extends IRectInputData {
}
interface ITextData extends ITextAttrData, ITextStyleComputedData, IUIData {
__baseLine?: number;
__lineHeight?: number;
__letterSpacing?: number;
__padding?: number[];
__clipText?: boolean;
__isPlacehold?: boolean;
__textBoxBounds?: IBoundsData;
}
interface ITextInputData extends ITextAttrData, ITextStyleInputData, IUIBaseInputData {
}
interface ITextRowData {
x?: number;
y?: number;
width?: number;
height?: number;
text?: string;
data?: ITextCharData[];
words?: ITextWordData[];
startCharSize?: number;
endCharSize?: number;
paraStart?: boolean;
paraEnd?: boolean;
isOverflow?: boolean;
textMode?: boolean;
}
interface ITextWordData {
x?: number;
y?: number;
width?: number;
height?: number;
data?: ITextCharData[];
}
interface ITextCharData {
x?: number;
y?: number;
width?: number;
height?: number;
char?: string;
}
interface ITextDrawData {
bounds: IBoundsData;
rows: ITextRowData[];
paraNumber: number;
font: string;
maxWidth?: number;
decorationY?: number[];
decorationColor?: string;
decorationHeight?: number;
overflow?: number;
}
interface IImage extends IImageAttrData, IRect {
__: IImageData;
readonly ready: boolean;
readonly image?: ILeaferImage;
}
interface IImageAttrData {
url?: string;
}
interface IImageData extends IImageAttrData, IRectData {
__setImageFill(value: string): void;
}
interface IImageInputData extends IImageAttrData, IUIBaseInputData {
}
interface ICanvas extends ICanvasAttrData, IRect {
__: ICanvasData;
canvas?: ILeaferCanvas;
readonly context?: ICanvasContext2D;
__updateSize(): void;
}
interface ICanvasAttrData {
smooth?: boolean;
safeResize?: boolean;
contextSettings?: ICanvasContext2DSettings;
url?: string;
}
interface ICanvasData extends ICanvasAttrData, IRectData {
}
interface ICanvasInputData extends ICanvasAttrData, IUIBaseInputData {
}
interface ILeaferData extends IGroupData {
}
interface ILeaferInputData extends IGroupInputData {
}
interface IAppData extends ILeaferData {
}
interface IAppInputData extends ILeaferInputData {
}
interface IFrame extends IBox {
__: IFrameData;
}
interface IFrameData extends IBoxData {
}
interface IFrameInputData extends IBoxInputData {
}
interface IBox extends IBoxAttrData, IGroup {
__: IBoxData;
scroller?: IScroller;
hasScroller?: boolean;
__checkScroll(isScrollMode: boolean): void;
__updateRectRenderBounds(): void;
__renderGroup(canvas: ILeaferCanvas, options: IRenderOptions): void;
}
interface IBoxAttrData {
overflow?: IOverflow;
scrollConfig?: IScrollConfig;
resizeChildren?: IBoolean;
textBox?: IBoolean;
}
interface IBoxData extends IBoxAttrData, IGroupData {
}
interface IBoxInputData extends IBoxAttrData, IGroupInputData {
}
interface IGroup extends IUI {
__: IGroupData;
children: IUI[];
childlessJSON?: boolean;
pick(hitPoint: IPointData, options?: IPickOptions): IPickResult;
add(child: IUI | IUI[] | IUIInputData | IUIInputData[], index?: number): void;
addAt(child: IUI | IUI[] | IUIInputData | IUIInputData[], index: number): void;
addAfter(child: IUI | IUI[] | IUIInputData | IUIInputData[], after: IUI): void;
addBefore(child: IUI | IUI[] | IUIInputData | IUIInputData[], before: IUI): void;
addMany(...children: ILeaf$1[] | IUIInputData[]): void;
remove(child?: IUI | number | string | IFindCondition | IFindUIMethod): void;
removeAll(): void;
clear(): void;
}
interface IGroupData extends IUIData {
}
interface IGroupInputData extends IUIBaseInputData {
}
interface IUI extends IUIAttrData, IFillAttrData, IStrokeAttrData, ICornerRadiusAttrData, IEffectAttrData, ILeaf$1 {
__: IUIData;
readonly app: ILeafer;
leafer?: ILeafer;
parent?: IGroup;
zoomLayer?: IGroup;
readonly isFrame?: boolean;
isOverflow?: boolean;
useFastShadow?: boolean;
proxyData?: IUIInputData;
__proxyData?: IUIInputData;
animation?: IAnimation | IAnimation[];
animationOut?: IAnimation | IAnimation[];
children?: IUI[];
__box?: IUI;
__animate?: IAnimate;
readonly pen: IPathCreator;
reset(data?: IUIInputData): void;
set(data: IUIInputData, transition?: ITransition | 'temp'): void;
toJSON(options?: IJSONOptions): IUIJSONData;
get<K extends keyof this>(name: K): this[K];
get<K extends keyof this>(name?: K[] | IUIInputData): IUIInputData;
createProxyData(): IUIInputData;
find(condition: number | string | IFindCondition | IFindUIMethod, options?: any): IUI[];
findTag(tag: string | string[]): IUI[];
findOne(condition: number | string | IFindCondition | IFindUIMethod, options?: any): IUI | undefined;
findId(id: number | string): IUI | undefined;
getPath(curve?: boolean, pathForRender?: boolean): IPathCommandData;
getPathString(curve?: boolean, pathForRender?: boolean): IPathString;
load(): void;
__drawPathByData(drawer: IPathDrawer, data: IPathCommandData): void;
__drawPathByBox(drawer: IPathDrawer): void;
__drawAfterFill?(canvas: ILeaferCanvas, options: IRenderOptions): void;
__drawContent?(canvas: ILeaferCanvas, options: IRenderOptions): void;
drawImagePlaceholder(canvas: ILeaferCanvas, image: ILeaferImage): void;
animate(keyframe?: IUIInputData | IKeyframe[] | IAnimation | IAnimation[], options?: ITransition, type?: IAnimateType, isTemp?: boolean): IAnimate;
killAnimate(type?: IAnimateType, nextStyle?: IUIInputData): void;
export(filename: string, options?: IExportOptions | number | boolean): Promise<IExportResult>;
syncExport(filename: string, options?: IExportOptions | number | boolean): IExportResult;
clone(data?: IUIInputData): IUI;
}
interface IStateStyle extends IUIInputData {
}
interface IStates {
[name: string]: IStateStyle;
}
type IStateName = string;
interface IUIAttrData {
animation?: IAnimation | IAnimation[];
animationOut?: IAnimation | IAnimation[];
transition?: ITransition;
transitionOut?: ITransition;
states?: IStates;
state?: IStateName;
hoverStyle?: IStateStyle;
pressStyle?: IStateStyle;
focusStyle?: IStateStyle;
selectedStyle?: IStateStyle;
disabledStyle?: IStateStyle;
placeholderStyle?: IStateStyle;
placeholderColor?: IColorString;
placeholderDelay?: number;
editConfig?: IEditorConfig;
editOuter?: string;
editInner?: string;
}
interface IFindUIMethod {
(leaf: IUI, options?: any): IAnswer;
}
interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
readonly scale: number | IPointData;
__isFills?: boolean;
__isStrokes?: boolean;
readonly __strokeWidth: number;
readonly __maxStrokeWidth: number;
__hasMultiStrokeStyle?: number;
readonly __hasMultiPaint?: boolean;
__isAlphaPixelFill?: boolean;
__isAlphaPixelStroke?: boolean;
__isTransparentFill?: boolean;
__isTransparentStroke?: boolean;
__isHitPixel?: boolean;
__isCanvas?: boolean;
__isFastShadow?: boolean;
__fillAfterStroke?: boolean;
__drawAfterFill?: boolean;
readonly __clipAfterFill?: boolean;
readonly __hasSurface?: boolean;
__blendLayer?: boolean;
__boxStroke?: boolean;
__font?: string;
__textDrawData?: ITextDrawData;
__needComputePaint?: boolean;
__computePaint(): void;
__getRealStrokeWidth(childStyle?: IStrokeComputedStyle): number;
__setPaint(attrName: 'fill' | 'stroke', value: IValue): void;
__removePaint(attrName: 'fill' | 'stroke', removeInput?: boolean): void;
}
interface IUIComputedData extends IUIAttrData, IFillComputedData, IBorderComputedData, IStrokeComputedData, ITextStyleComputedData, ICornerRadiusComputedData, IEffectComputedData, ILeafComputedData {
}
interface IUIBaseInputData extends IUIAttrData, IFillInputData, IStrokeInputData, ITextStyleInputData, ICornerRadiusInputData, IEffectInputData, ILeafInputData {
children?: IUIInputData[];
}
type IUITag = 'App' | 'Leafer' | 'Rect' | 'Ellipse' | 'Polygon' | 'Star' | 'Line' | 'Path' | 'Pen' | 'Text' | 'Image' | 'Canvas' | 'Group' | 'Frame' | 'Box' | 'Arrow' | 'Robot' | 'GIF' | 'Video';
interface IUIInputData extends IRectInputData, IEllipseInputData, IPolygonInputData, IStarInputData, ILineInputData, IPathInputData, ITextInputData, IImageInputData, IGroupInputData, IBoxInputData, IFrameInputData, IFlowInputData, IArrowInputData, IGIFInputData, IVideoInputData, IRobotInputData, IUIBaseInputData, IObject {
children?: IUIInputData[];
}
interface IUIJSONData extends IUIInputData {
matrix?: IMatrixData;
}
interface ILeafer extends IGroup, ILeaferAttrData, IControl {
readonly isApp: boolean;
readonly app: ILeafer;
parentApp?: IApp;
parent?: IApp;
zoomLayer: IGroup;
editor: IEditorBase;
ground?: ILeafer;
tree?: ILeafer;
sky?: ILeafer;
onInit(): void;
initType(type: ILeaferType): void;
destroy(sync?: boolean): void;
}
interface IApp extends ILeafer {
children: ILeafer[];
realCanvas: boolean;
forEach(fn: IAppForEachFunction): void;
}
interface IAppConfig extends ILeaferConfig {
ground?: ILeaferConfig;
tree?: ILeaferConfig;
sky?: ILeaferConfig;
editor?: IEditorConfig;
}
interface IAppForEachFunction {
(value: ILeafer, index: number, array: ILeafer[]): void;
}
type IUIRenderModule = IUIRender & ThisType<IUI>;
interface IUIRender extends ILeafRender {
__drawAfterFill?(canvas: ILeaferCanvas, options: IRenderOptions): void;
__drawContent?(canvas: ILeaferCanvas, options: IRenderOptions): void;
}
type IRectRenderModule = IRectRender & ThisType<IRect>;
interface IRectRender extends IUIRender {
}
type IImageRenderModule = IImageRender & ThisType<IImage>;
interface IImageRender extends IUIRender {
}
type ITextRenderModule = ITextRender & ThisType<IText>;
interface ITextRender extends IUIRender {
}
type IGroupRenderModule = IGroupRender & ThisType<IGroup>;
interface IGroupRender extends IUIRender {
}
type IFrameRenderModule = IFrameRender & ThisType<IFrame>;
interface IFrameRender extends IGroupRender {
}
type IUIBoundsModule = IUIBounds & ThisType<IUI>;
interface IUIBounds extends ILeafBounds {
}
type IUIHitModule = ILeafHit & ThisType<IUI>;
interface IPathArrowModule {
list: IPathDataArrowMap;
addArrows(ui: IUI): void;
register(name: string, data: IPathDataArrow): void;
get(name: string): IPathDataArrow;
}
interface ITransitionModule {
list: ITransitionMap;
register(attrName: string, fn: ITransitionFunction): void;
get(attrName: string): ITransitionFunction;
setBetweenStyle(betweenStyle: IObject, fromStyle: IObject, toStyle: IObject, bothStyle: IObject, t: number, target: any, attrs?: IObject): void;
value(from: any, to: any, t: number, target?: IObject): any;
number(from: number, to: number, t: number, roundValue?: number): number;
color(from: IColor, to: IColor, t: number): string;
gradient(from: IGradientPaint, to: IGradientPaint, t: number, target: IObject): IGradientPaint;
}
interface ITransitionMap {
[name: string]: ITransitionFunction;
}
interface ITransitionFunction {
(from: any, to: any, t: number, target?: any): any;
}
interface ITextConvertModule {
getDrawData(content: string | number, style: ITextData): ITextDrawData;
}
interface IColorConvertModule {
string(color: IColor, opacity?: number): string;
object(color: IColor, opacity?: number): IRGBA;
hasTransparent(color: string): boolean;
}
interface IExportModule {
running?: boolean;
export(leaf: ILeaf$1, filename: IExportFileType | string, options?: IExportOptions | number | boolean): Promise<IExportResult>;
syncExport(leaf: ILeaf$1, filename: string, options?: IExportOptions | number | boolean): IExportResult;
}
interface IStateModule {
canAnimate: boolean;
animateExcludes: IObject$1;
isState(state: IStateName$1, leaf: ILeaf, button?: ILeaf | boolean): boolean;
isSelected(leaf: ILeaf, button?: ILeaf | boolean): boolean;
isDisabled(leaf: ILeaf, button?: ILeaf | boolean): boolean;
isFocus(leaf: ILeaf, button?: ILeaf | boolean): boolean;
isHover(leaf: ILeaf, button?: ILeaf | boolean): boolean;
isPress(leaf: ILeaf, button?: ILeaf | boolean): boolean;
isPlacehold(leaf: ILeaf, button?: ILeaf | boolean): boolean;
isDrag(leaf: ILeaf, button?: boolean | ILeaf): boolean;
setStyleName(leaf: ILeaf, styleName: IString$1, value: IBoolean$1): void;
set(leaf: ILeaf, stateName: IString$1): void;
getStyle(leaf: ILeaf): IStateStyle$1;
updateStyle(leaf: ILeaf, style?: IStateStyle$1, type?: 'in' | 'out'): void;
updateEventStyle(leaf: ILeaf, eventType: string): void;
}
interface ICachedShape extends ICachedLeaf {
worldCanvas?: ILeaferCanvas;
shapeBounds: IBoundsData;
renderBounds: IBoundsData;
scaleX: number;
scaleY: number;
}
interface IPaintModule {
compute(attrName: IPaintAttr, ui: IUI): void;
fill(fill: string, ui: IUI, canvas: ILeaferCanvas): void;
fills(fills: ILeafPaint[], ui: IUI, canvas: ILeaferCanvas): void;
fillPathOrText(ui: IUI, canvas: ILeaferCanvas): void;
fillText(ui: IUI, canvas: ILeaferCanvas): void;
stroke(stroke: string, ui: IUI, canvas: ILeaferCanvas): void;
strokes(strokes: ILeafPaint[], ui: IUI, canvas: ILeaferCanvas): void;
strokeText(stroke: string | ILeafPaint[], ui: IUI, canvas: ILeaferCanvas): void;
strokeArrow?(stroke: string | ILeafPaint[], ui: IUI, canvas: ILeaferCanvas): void;
drawTextStroke(ui: IUI, canvas: ILeaferCanvas): void;
shape(ui: IUI, current: ILeaferCanvas, renderOptions: IRenderOptions): ICachedShape;
}
interface IPaintImageModule {
image(ui: IUI, attrName: string, paint: IImagePaint, boxBounds: IBoundsData, firstUse: boolean): ILeafPaint;
checkImage(ui: IUI, canvas: ILeaferCanvas, paint: ILeafPaint, allowPaint?: boolean): boolean;
createPattern(ui: IUI, paint: ILeafPaint, pixelRatio: number): boolean;
recycleImage(attrName: IPaintAttr, data: IUIData): IBooleanMap;
createData(leafPaint: ILeafPaint, image: ILeaferImage, paint: IImagePaint, box: IBoundsData): void;
getPatternData(paint: IImagePaint, box: IBoundsData, image: ILeaferImage): ILeafPaintPatternData;
stretchMode(data: ILeafPaintPatternData, box: IBoundsData, scaleX: number, scaleY: number): void;
fillOrFitMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number): void;
clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData, clipScaleX?: number, clipScaleY?: number): void;
repeatMode(data: ILeafPaintPatternData, box: IBoundsData, width: number, height: number, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData, align: IAlign, freeTransform?: boolean): void;
}
interface IPaintGradientModule {
linearGradient(paint: IGradientPaint, box: IBoundsData): ILeafPaint;
radialGradient(paint: IGradientPaint, box: IBoundsData): ILeafPaint;
conicGradient(paint: IGradientPaint, box: IBoundsData): ILeafPaint;
getTransform(box: IBoundsData, from: IPointData, to: IPointData, stretch: number, rotate90: boolean): IMatrixData;
}
interface IEffectModule {
shadow(ui: IUI, current: ILeaferCanvas, shape: ICachedShape): void;
innerShadow(ui: IUI, current: ILeaferCanvas, shape: ICachedShape): void;
blur(ui: IUI, current: ILeaferCanvas, origin: ILeaferCanvas): void;
backgroundBlur(ui: IUI, current: ILeaferCanvas, shape: ICachedShape): void;
getShadowRenderSpread(ui: IUI, shadow: ILeafShadowEffect[], spreadSign?: 1 | -1): IFourNumber;
getShadowTransform(ui: IUI, canvas: ILeaferCanvas, shape: ICachedShape, shadow: ILeafShadowEffect, outBounds: IBoundsData, otherScale: number, isInnerShaodw?: boolean): IMatrixData;
isTransformShadow(shadow: ILeafShadowEffect): boolean;
getInnerShadowSpread(ui: IUI, innerShadow: ILeafShadowEffect[]): IFourNumber;
}
interface IFilterModule {
list: IFilterProcessorMap;
register(name: string, filterProcessor: IFilterProcessor): void;
apply(filters: IFilter[], ui: IUI, bounds: IMatrixWithBoundsScaleData, currentCanvas: ILeaferCanvas, originCanvas: ILeaferCanvas, shape: ICachedShape): void;
getSpread(filters: IFilter[]): number;
}
interface IFilterProcessorMap {
[name: string]: IFilterProcessor;
}
interface IFilterProcessor {
apply: IFilterFunction;
getSpread(filter: IFilter): number;
}
interface IFilterFunction {
(filter: IFilter, ui: IUI, bounds: IMatrixWithBoundsScaleData, currentCanvas: ILeaferCanvas, originCanvas: ILeaferCanvas, shape: ICachedShape): void;
}
export type { IAnimate, IAnimateKeyframe, IAnimateList, IAnimateType, IAnimation, IApp, IAppConfig, IAppData, IAppForEachFunction, IAppInputData, IArrow, IArrowData, IArrowInputData, IArrowStyle, IArrowType, IArrowTypeData, IBackgroundBoxStyle, IBlurEffect, IBox, IBoxData, IBoxInputData, ICachedShape, ICanvas, ICanvasData, ICanvasInputData, IColor, IColorConvertModule, IColorStop, IColorString, IComputedKeyframe, ICornerRadiusString, IDashPatternString, IEditBoxBase, IEditPoint, IEditPointInputData, IEditPointType, IEditToolFunction, IEditorBase, IEditorBeforeEditInner, IEditorBeforeEditOuter, IEditorBeforeMove, IEditorBeforeRotate, IEditorBeforeScale, IEditorBeforeSelect, IEditorBeforeSkew, IEditorConfig, IEditorConfigFunction, IEditorDragStartData, IEditorEditInnerData, IEditorEditOuterData, IEditorMoveData, IEditorRotationData, IEditorScaleData, IEditorSelectData, IEditorSkewData, IEffect, IEffectAttrData, IEffectComputedData, IEffectInputData, IEffectModule, IEllipse, IEllipseData, IEllipseInputData, IExportModule, IFill, IFilterFunction, IFilterModule, IFilterProcessor, IFindUIMethod, IFlow, IFlowData, IFlowInputData, IFontWeight, IFontWeightNumer, IFontWeightString, IFrame, IFrameData, IFrameInputData, IFrameRenderModule, IGIF, IGIFData, IGIFInputData, IGradientPaint, IGradientType, IGrayscaleEffect, IGroup, IGroupData, IGroupInputData, IGroupRenderModule, IImage, IImageData, IImageFilters, IImageInputData, IImagePaint, IImagePaintMode, IImageRenderModule, IKeyframe, IKeyframeId, IKeyframesAnimation, ILeafFill, ILeafPaint, ILeafPaintColor, ILeafPaintPatternData, ILeafShadowEffect, ILeafStrokePaint, ILeafer, ILeaferData, ILeaferInputData, ILine, ILineData, ILineInputData, IOverflow, IPaint, IPaintAttr, IPaintBase, IPaintGradientModule, IPaintImageModule, IPaintModule, IPaintString, IPaintType, IPath, IPathArrowModule, IPathData, IPathDataArrow, IPathDataArrowMap, IPathDataArrowOffset, IPathInputData, IPen, IPenData, IPenInputData, IPercent, IPolygon, IPolygonData, IPolygonInputData, IRGB, IRGBA, IRect, IRectData, IRectInputData, IRectRenderModule, IRepeat, IRobot, IRobotActionName, IRobotActions, IRobotAnimation, IRobotComputedKeyframe, IRobotData, IRobotInputData, IRobotKeyframe, IScrollConfig, IScrollTheme, IScroller, IShadowEffect, IShadowString, ISolidPaint, IStar, IStarData, IStarInputData, IStateModule, IStateName, IStateStyle, IStates, IStroke, IStrokeAlign, IStrokeAttrData, IStrokeCap, IStrokeComputedData, IStrokeComputedStyle, IStrokeGradientPaint, IStrokeImagePaint, IStrokeInputData, IStrokeJoin, IStrokePaint, IStrokeSolidPaint, IStrokeStyle, IStrokeWidthString, IStyleAnimation, IText, ITextAlign, ITextCase, ITextCharData, ITextConvertModule, ITextData, ITextDecoration, ITextDecorationData, ITextDecorationType, ITextDrawData, ITextInputData, ITextOverflow, ITextRenderModule, ITextRowData, ITextStyleAttrData, ITextStyleComputedData, ITextStyleInputData, ITextWordData, ITextWrap, ITransformTool, ITransitionFunction, ITransitionMap, ITransitionModule, IUI, IUIBaseInputData, IUIBoundsModule, IUIData, IUIHitModule, IUIInputData, IUIJSONData, IUIRenderModule, IUITag, IVectorPath, IVerticalAlign, IVideo, IVideoData, IVideoInputData, IWritingMode };