@leafer-ui/interface 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-ui/interface",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "@leafer-ui/interface",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -22,6 +22,6 @@
22
22
  "leaferjs"
23
23
  ],
24
24
  "dependencies": {
25
- "@leafer/interface": "2.0.2"
25
+ "@leafer/interface": "2.0.4"
26
26
  }
27
27
  }
@@ -53,7 +53,7 @@ export interface IStrokeInputData extends IStrokeStyle {
53
53
  export interface IStrokeStyle {
54
54
  strokeAlign?: IStrokeAlign
55
55
  strokeWidth?: IFourNumber | IStrokeWidthString
56
- strokeWidthFixed?: IScaleFixed
56
+ strokeScaleFixed?: IScaleFixed
57
57
  strokeCap?: IStrokeCap
58
58
  strokeJoin?: IStrokeJoin
59
59
  dashPattern?: INumber[] | IDashPatternString
@@ -72,7 +72,7 @@ export interface IStrokeComputedStyle {
72
72
  strokeAlign?: IStrokeAlign
73
73
  strokeWidth?: number
74
74
  strokeWidths?: number[]
75
- strokeWidthFixed?: IScaleFixed
75
+ strokeScaleFixed?: IScaleFixed
76
76
  strokeCap?: IStrokeCap
77
77
  strokeJoin?: IStrokeJoin
78
78
  dashPattern?: number[]
package/src/IUI.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ILeaf, ILeafComputedData, ILeafData, ILeafInputData, ILeaferCanvas, IRenderOptions, IExportOptions, IExportResult, IPathDrawer, IPointData, IPathCommandData, IBoundsData, IObject, IPathString, ILeaferImage, IPathCreator, IAnswer, IPickOptions, IPickResult, IValue, ICanvasContext2DSettings, IFourNumber, IFindCondition, IBoolean, ICanvasContext2D, IJSONOptions, IMatrixData, ISizeData, ITransition, IAround, IMultimediaType } from '@leafer/interface'
1
+ import { ILeaf, ILeafComputedData, ILeafData, ILeafInputData, ILeaferCanvas, IRenderOptions, IExportOptions, IExportResult, IPathDrawer, IPointData, IPathCommandData, IBoundsData, IObject, IPathString, ILeaferImage, IPathCreator, IAnswer, IPickOptions, IPickResult, IValue, ICanvasContext2DSettings, IFourNumber, IFindCondition, IBoolean, ICanvasContext2D, IJSONOptions, IMatrixData, ISizeData, ITransition, IAround, IMultimediaType, IDirection4, IOptionPointData, IDirection } from '@leafer/interface'
2
2
 
3
3
  import {
4
4
  IFillAttrData, IFillInputData, IFillComputedData,
@@ -44,21 +44,45 @@ export interface IArrowInputData extends IArrowAttrData, ILineInputData { }
44
44
 
45
45
 
46
46
  // Linker
47
- export interface ILinker extends IArrow {
47
+ export interface ILinker extends ILine {
48
48
  __: ILinkerData
49
+
50
+ startNode: IUI
51
+ endNode: IUI
52
+
53
+ startData: ILinkerComputedPointData
54
+ endData: ILinkerComputedPointData
55
+
56
+ createStartPoint(worldPoint: IPointData, node?: IUI, options?: ILinkerPointOptions): ILinkerPointData
57
+ createEndPoint(worldPoint: IPointData, node?: IUI, options?: ILinkerPointOptions): ILinkerPointData
58
+ createLinkerPoint(worldPoint: IPointData, node?: IUI, options?: ILinkerPointOptions): ILinkerPointData
49
59
  }
50
60
 
51
61
  export interface ILinkerPointData {
52
- id: string | IUI,
62
+ id?: string | IUI,
63
+ direction?: IDirection4 | 'center'
53
64
  point?: IAround,
65
+ offset?: IOptionPointData
66
+ }
67
+
68
+ export interface ILinkerPointOptions {
69
+ snapRadius?: number
70
+ }
71
+
72
+ export type ILinkerPointType = 'start' | 'end'
73
+
74
+ export interface ILinkerComputedPointData {
75
+ auto: boolean
76
+ direction: IDirection
77
+ point: IPointData
54
78
  }
55
79
 
56
80
  interface ILinkerAttrData {
57
81
  startPoint?: ILinkerPointData | IUI | string
58
82
  endPoint?: ILinkerPointData | IUI | string
59
83
  }
60
- export interface ILinkerData extends ILinkerAttrData, IArrowData { }
61
- export interface ILinkerInputData extends ILinkerAttrData, IArrowInputData { }
84
+ export interface ILinkerData extends ILinkerAttrData, ILineData { }
85
+ export interface ILinkerInputData extends ILinkerAttrData, ILineInputData { }
62
86
 
63
87
 
64
88
  // Flow
@@ -257,6 +281,7 @@ export interface ICanvasInputData extends ICanvasAttrData, IUIBaseInputData { }
257
281
  // Film
258
282
  export interface IFilm extends IFilmAttrData, IPlayerMethods, IImage {
259
283
  __: IFilmData
284
+ seekFrame(frameIndex: number): void
260
285
  }
261
286
  interface IFilmAttrData {
262
287
  url?: string
@@ -386,6 +411,51 @@ export interface IBoxData extends IBoxAttrData, IGroupData { }
386
411
  export interface IBoxInputData extends IBoxAttrData, IGroupInputData { }
387
412
 
388
413
 
414
+
415
+ // EllipseBox
416
+ export interface IEllipseBox extends IEllipseAttrData, IBox {
417
+ __: IEllipseBoxData
418
+ }
419
+ export interface IEllipseBoxData extends IEllipseAttrData, IBoxData { }
420
+ export interface IEllipseBoxInputData extends IEllipseAttrData, IBoxInputData { }
421
+
422
+
423
+ // PolygonBox
424
+ export interface IPolygonBox extends IPolygonAttrData, IBox {
425
+ __: IPolygonBoxData
426
+ }
427
+ export interface IPolygonBoxData extends IPolygonAttrData, IBoxData { }
428
+ export interface IPolygonBoxInputData extends IPolygonAttrData, IBoxInputData { }
429
+
430
+
431
+ // StarBox
432
+ export interface IStarBox extends IStarAttrData, IBox {
433
+ __: IStarBoxData
434
+ }
435
+ export interface IStarBoxData extends IStarAttrData, IBoxData { }
436
+ export interface IStarBoxInputData extends IStarAttrData, IBoxInputData { }
437
+
438
+ // PathBox
439
+ export interface IPathBox extends IBox {
440
+ __: IPathBoxData
441
+ }
442
+ export interface IPathBoxData extends IBoxData { }
443
+ export interface IPathBoxInputData extends IBoxInputData { }
444
+
445
+ // ImageBox
446
+ export interface IImageBox extends IImageAttrData, IBox {
447
+ __: IImageBoxData
448
+ readonly ready: boolean
449
+ readonly image?: ILeaferImage
450
+ }
451
+ export interface IImageBoxData extends IImageAttrData, IBoxData {
452
+ readonly __urlType: IMultimediaType
453
+ __setImageFill(value: string): void
454
+ }
455
+ export interface IImageBoxInputData extends IImageAttrData, IBoxInputData { }
456
+
457
+
458
+
389
459
  // Group
390
460
  export interface IGroup extends IUI {
391
461
  __: IGroupData
@@ -404,6 +474,7 @@ export interface IGroup extends IUI {
404
474
  export interface IGroupData extends IUIData { }
405
475
  export interface IGroupInputData extends IUIBaseInputData { }
406
476
 
477
+
407
478
  // UI
408
479
  export interface IUI extends IUIAttrData, IFillAttrData, IStrokeAttrData, ICornerRadiusAttrData, IEffectAttrData, ILeaf {
409
480
  __: IUIData
@@ -424,6 +495,9 @@ export interface IUI extends IUIAttrData, IFillAttrData, IStrokeAttrData, ICorne
424
495
 
425
496
  children?: IUI[]
426
497
 
498
+ startLinker?: ILinker[]
499
+ endLinker?: ILinker[]
500
+
427
501
  __box?: IUI // 背景box, 一般用于文本背景框
428
502
  __animate?: IAnimate
429
503
 
@@ -446,6 +520,7 @@ export interface IUI extends IUIAttrData, IFillAttrData, IStrokeAttrData, ICorne
446
520
 
447
521
  getPath(curve?: boolean, pathForRender?: boolean): IPathCommandData
448
522
  getPathString(curve?: boolean, pathForRender?: boolean): IPathString
523
+ asPath(curve?: boolean, pathForRender?: boolean): void
449
524
 
450
525
  load(): void
451
526
 
@@ -514,8 +589,9 @@ export interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
514
589
  __isFills?: boolean
515
590
  __isStrokes?: boolean
516
591
 
517
- readonly __strokeWidth: number // 会受 strokeWidthFixed 影响
592
+ readonly __strokeWidth: number // 会受 strokeScaleFixed 影响
518
593
  readonly __maxStrokeWidth: number
594
+ __strokeWidthCache?: number // 一般用于固定线宽的箭头做缓存对比
519
595
  __hasMultiStrokeStyle?: number // 是否存在多个不同的描述样式(同时存储多个描边样式中的最大宽度用于运算)
520
596
  readonly __hasMultiPaint?: boolean
521
597
 
@@ -579,6 +655,13 @@ export type IUITag =
579
655
  | 'Film'
580
656
  | 'Video'
581
657
  | (string & {})
658
+ | 'EllipseBox' // @leafer-in/box
659
+ | 'PolygonBox'
660
+ | 'StarBox'
661
+ | 'LineBox'
662
+ | 'PathBox'
663
+ | 'ImageBox'
664
+ | 'CanvasBox'
582
665
 
583
666
 
584
667
  export interface IUIInputData extends IRectInputData, IEllipseInputData, IPolygonInputData, IStarInputData, ILineInputData, IPathInputData, ITextInputData, IImageInputData, IGroupInputData, IBoxInputData, IFrameInputData, IFlowInputData, IArrowInputData, IVideoInputData, IRobotInputData, IUIBaseInputData, IObject {
@@ -39,6 +39,8 @@ export interface IEditorBase extends IGroup, ISelectorProxy, ITransformTool {
39
39
  innerEditor?: IObject
40
40
  editMask: IUI
41
41
 
42
+ hasDimOthers?: boolean
43
+
42
44
  readonly targetLeafer: ILeafer
43
45
 
44
46
  select(target: IUI | IUI[]): void
@@ -142,6 +144,8 @@ export interface IEditorConfig extends IObject {
142
144
  around?: IAlign | IUnitPointData // 缩放、旋转、倾斜时围绕的中心点
143
145
  rotateAround?: IAlign | IUnitPointData // 单独设置旋转围绕的中心点,比 around 优先级高
144
146
  rotateGap?: number
147
+ arrowStep?: number // 方向键移动步长,默认为1
148
+ arrowFastStep?: number // 按住 shift 键的移动步长,默认为10
145
149
  lockRatio?: boolean | 'corner'
146
150
  dragLimitAnimate?: boolean | number // 限制拖动范围的元素,可在拖拽结束时进行动画归位,默认采用 app.config.pointer.dragLimitAnimate 的值
147
151
  ignorePixelSnap?: boolean
@@ -179,6 +183,8 @@ export interface IEditorConfig extends IObject {
179
183
  beforeRotate?: IEditorBeforeRotate
180
184
  beforeSkew?: IEditorBeforeSkew
181
185
 
186
+ onCopy?: IEditorOnCopy
187
+
182
188
  preventEditInner?: boolean // 仅阻止交互事件触发内部编辑
183
189
 
184
190
  textEditor?: IObject
@@ -244,6 +250,10 @@ export interface IEditorBeforeSkew {
244
250
  (data: IEditorSkewData): ISkewData | boolean | void
245
251
  }
246
252
 
253
+ export interface IEditorOnCopy {
254
+ (): boolean | void
255
+ }
256
+
247
257
 
248
258
  export interface IEditPointInputData extends IBoxInputData {
249
259
  direction?: number
package/src/index.ts CHANGED
@@ -6,7 +6,7 @@ export { ILeafer } from './app/ILeafer'
6
6
  export {
7
7
  ILine, ILineInputData, ILineData,
8
8
  IArrow, IArrowInputData, IArrowData,
9
- ILinker, ILinkerInputData, ILinkerData, ILinkerPointData,
9
+ ILinker, ILinkerInputData, ILinkerData, ILinkerPointData, ILinkerPointOptions, ILinkerComputedPointData, ILinkerPointType,
10
10
  IRect, IRectInputData, IRectData,
11
11
  IEllipse, IEllipseInputData, IEllipseData,
12
12
  IPolygon, IPolygonInputData, IPolygonData,
@@ -22,6 +22,11 @@ export {
22
22
  IVideo, IVideoInputData, IVideoData,
23
23
  IRobot, IRobotInputData, IRobotData, IRobotActions, IRobotActionName, IRobotKeyframe, IRobotComputedKeyframe, IRobotAnimation,
24
24
  IBox, IBoxInputData, IBoxData,
25
+ IEllipseBox, IEllipseBoxInputData, IEllipseBoxData,
26
+ IPolygonBox, IPolygonBoxInputData, IPolygonBoxData,
27
+ IStarBox, IStarBoxInputData, IStarBoxData,
28
+ IPathBox, IPathBoxInputData, IPathBoxData,
29
+ IImageBox, IImageBoxInputData, IImageBoxData,
25
30
  IGroup, IGroupInputData, IGroupData,
26
31
  ILeaferInputData, ILeaferData,
27
32
  IAppInputData, IAppData,
@@ -29,7 +34,7 @@ export {
29
34
  IUITag, IUIInputData, IUIJSONData, IStateStyle, IStates, IStateName
30
35
  } from './IUI'
31
36
 
32
- export { IVectorPath, IShadowEffect, IBlurEffect, IGrayscaleEffect, IEffect, IFill, IStroke, IPaintAttr, IStrokeAlign, IStrokeJoin, IStrokeCap, IArrowStyle, IArrowType, IArrowTypeData, IPathDataArrow, IPathDataArrowMap, IRGB, IRGBA, IColor, IColorStop, IPaint, IStrokePaint, IStrokeSolidPaint, IGradientPaint, IStrokeGradientPaint, IImagePaint, IStrokeImagePaint, IImagePaintMode, IFontWeight, IFontWeightNumer, IFontWeightString, ITextCase, ITextDecoration, ITextDecorationType, ITextDecorationData, IWritingMode, ITextAlign, IVerticalAlign, IOverflow, ITextOverflow, ITextWrap, IRepeat, IGradientType, IPaintType, IImageFilters, IPathDataArrowOffset, ISolidPaint, IPaintBase } from './type/IType'
37
+ export { IVectorPath, IShadowEffect, IBlurEffect, IGrayscaleEffect, IEffect, IFill, IStroke, IPaintAttr, IStrokeAlign, IStrokeJoin, IStrokeCap, IArrowStyle, IArrowType, IArrowTypeData, IPathDataArrow, IPathDataArrowMap, IRGB, IRGBA, IColor, IColorStop, IPaint, IStrokePaint, IStrokeSolidPaint, IGradientPaint, IStrokeGradientPaint, IImagePaint, IStrokeImagePaint, IImagePaintMode, IFontWeight, IFontWeightNumer, IFontWeightString, ITextCase, ITextDecoration, ITextDecorationType, ITextDecorationData, IWritingMode, ITextAlign, IVerticalAlign, IOverflow, ITextOverflow, ITextWrap, IRepeat, IGradientType, IPaintType, IImageFilters, IImageFilter, IImageFilterType, IPathDataArrowOffset, ISolidPaint, IPaintBase } from './type/IType'
33
38
  export { ICornerRadiusString, IStrokeWidthString, IPaintString, IShadowString, IPercent, IDashPatternString, IColorString } from './type/IStringType'
34
39
  export { ILeafFill, ILeafPaint, ILeafPaintPatternData, ILeafPaintColor, ILeafStrokePaint, ILeafShadowEffect } from './type/IComputedType'
35
40
  export { IStrokeAttrData, IStrokeInputData, IStrokeComputedData, IStrokeComputedStyle, IStrokeStyle, ITextStyleAttrData, ITextStyleInputData, ITextStyleComputedData, IEffectAttrData, IEffectInputData, IEffectComputedData } from './ICommonAttr'
@@ -52,4 +57,4 @@ export { IEffectModule } from './module/IEffect'
52
57
  export { IFilterModule, IFilterProcessor, IFilterFunction } from './module/IFilter'
53
58
  export { ICachedShape } from './ICachedShape'
54
59
 
55
- export { IEditorBase, IEditorConfig, ITransformTool, IEditBoxBase, IEditPoint, IEditPointInputData, IEditPointType, IEditorDragStartData, IEditToolFunction, IEditorConfigFunction, IEditorBeforeSelect, IEditorBeforeEditOuter, IEditorBeforeEditInner, IEditorBeforeMove, IEditorBeforeScale, IEditorBeforeRotate, IEditorBeforeSkew, IEditorSelectData, IEditorEditOuterData, IEditorEditInnerData, IEditorMoveData, IEditorScaleData, IEditorRotationData, IEditorSkewData } from './editor/IEditor'
60
+ export { IEditorBase, IEditorConfig, ITransformTool, IEditBoxBase, IEditPoint, IEditPointInputData, IEditPointType, IEditorDragStartData, IEditToolFunction, IEditorConfigFunction, IEditorBeforeSelect, IEditorBeforeEditOuter, IEditorBeforeEditInner, IEditorBeforeMove, IEditorBeforeScale, IEditorBeforeRotate, IEditorBeforeSkew, IEditorOnCopy, IEditorSelectData, IEditorEditOuterData, IEditorEditInnerData, IEditorMoveData, IEditorScaleData, IEditorRotationData, IEditorSkewData } from './editor/IEditor'
@@ -3,7 +3,7 @@ import { ILeaferCanvas, IRenderOptions, IBooleanMap, IBoundsData, ILeaferImage,
3
3
  import { ILeafPaint, ILeafStrokePaint, ILeafPaintPatternData } from '../type/IComputedType'
4
4
  import { IUI, IUIData } from '../IUI'
5
5
  import { ICachedShape } from '../ICachedShape'
6
- import { IGradientPaint, IImagePaint, IPaintAttr } from '../type/IType'
6
+ import { IGradientPaint, IImageFilters, IImagePaint, IPaintAttr } from '../type/IType'
7
7
 
8
8
 
9
9
  export interface IPaintModule {
@@ -45,6 +45,10 @@ export interface IPaintImageModule {
45
45
  createData(leafPaint: ILeafPaint, image: ILeaferImage, paint: IImagePaint, box: IBoundsData): void
46
46
  getPatternData(paint: IImagePaint, box: IBoundsData, image: ILeaferImage): ILeafPaintPatternData
47
47
 
48
+ //@leafer-in/image-filter will rewrite
49
+ applyFilter?(leafPaint: ILeafPaint, image: ILeaferImage, filter: IImageFilters, ui: IUI): void
50
+ recycleFilter?(image: ILeaferImage, ui: IUI): void
51
+
48
52
  stretchMode(data: ILeafPaintPatternData, box: IBoundsData, scaleX: number, scaleY: number): void
49
53
  fillOrFitMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number): void
50
54
  clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData, clipScaleX?: number, clipScaleY?: number): void
@@ -4,7 +4,9 @@ import { IUI } from '../IUI'
4
4
 
5
5
  export interface IPathArrowModule {
6
6
  list: IPathDataArrowMap
7
- addArrows(ui: IUI): void
8
- register(name: string, data: IPathDataArrow): void
7
+ fillList: IPathDataArrowMap
8
+ addArrows(ui: IUI, updateCache?: boolean): void
9
+ updateArrow(ui: IUI): void
10
+ register(name: string, data: IPathDataArrow, fillData?: IPathDataArrow): void
9
11
  get(name: string): IPathDataArrow
10
12
  }
package/src/type/IType.ts CHANGED
@@ -79,7 +79,7 @@ export interface IImagePaint extends IPaintBase, IFilmOptions {
79
79
  mode?: IImagePaintMode
80
80
  format?: IExportFileType
81
81
 
82
- filters?: IImageFilters
82
+ filter?: IImageFilters
83
83
 
84
84
  padding?: IFourNumber
85
85
 
@@ -105,15 +105,25 @@ export interface IImagePaint extends IPaintBase, IFilmOptions {
105
105
  }
106
106
 
107
107
  export interface IStrokeImagePaint extends IImagePaint { }
108
- export interface IImageFilters {
109
- exposure?: number // 曝光
110
- contrast?: number // 对比度
111
- saturation?: number // 饱和度
112
- temperature?: number // 色温
113
- tint?: number // 色调
114
- highlights?: number // 高光
115
- shadows?: number // 阴影
108
+
109
+ export type IImageFilterType =
110
+ | 'exposure' // 曝光
111
+ | 'contrast' // 对比度
112
+ | 'saturation' // 饱和度
113
+ | 'temperature' // 色温
114
+ | 'tint' // 色调
115
+ | 'highlights' // 高光
116
+ | 'shadows' // 阴影
117
+ | (string & {})
118
+
119
+
120
+ export interface IImageFilter {
121
+ type: IImageFilterType
122
+ value: number // -1 ~ 1
116
123
  }
124
+
125
+ export type IImageFilters = IImageFilter[]
126
+
117
127
  export type IImagePaintMode = 'normal' | 'cover' | 'fit' | 'stretch' | 'clip' | 'repeat'
118
128
  export type IRepeat = boolean | 'x' | 'y' | IPointData
119
129
 
@@ -129,6 +139,7 @@ export type IArrowStyle = IPathDataArrow | IArrowType | IArrowTypeData
129
139
  export interface IArrowTypeData {
130
140
  type: IArrowType
131
141
  scale?: number
142
+ rotation?: number
132
143
  }
133
144
 
134
145
  export interface IPathDataArrowMap {
@@ -140,6 +151,7 @@ export interface IPathDataArrow {
140
151
  offset?: IPathDataArrowOffset // 箭头偏移距离,与末端对齐
141
152
  path: IPathCommandData
142
153
  dashPath?: IPathCommandData // 采用虚线时,需增加填充的内容
154
+ fill?: boolean // 是否进行fill,性能会差一点
143
155
  }
144
156
 
145
157
  export interface IPathDataArrowOffset {
package/types/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IMultimediaType, IBlendMode, IScaleFixed, IAlign, IUnitPointData, IFilmOptions, IImageLOD, IExportFileType, IFourNumber, IPointData, IOptionSizeData, ISizeData, IGap, IPointGap, IPercentData, IInterlace, IPathCommandData, IAxis, IAxisReverse, IDirection, IWindingRule, IFilter, IFilmPlayOptions, IMatrixData, ILeaferImage, ITaskItem, INumber, IString, IBoolean, IUnitData, IAnimateOptions, IAnimateEasing, IEventer, IObject, IEventParamsMap, IAnimateEasingFunction, IAnimateEnding, ITransition, IBounds, ILeafInputData, ILeaf as ILeaf$1, ILeafComputedData, ILeafData, IBoundsData, IValue, IPathCreator, IJSONOptions, IFindCondition, IAnswer, IPathString, IPathDrawer, ILeaferCanvas, IRenderOptions, IExportOptions, IExportResult, IPickOptions, IPickResult, IAround, ICanvasContext2DSettings, ICanvasContext2D, ILeaferAttrData, IControl, ILeaferType, ILeaferConfig, ILeafRender, ILeafBounds, ILeafHit, ICachedLeaf, IScaleData as IScaleData$1, IBooleanMap, IFunction, IMatrixWithBoundsScaleData } from '@leafer/interface';
1
+ import { IMultimediaType, IBlendMode, IScaleFixed, IAlign, IUnitPointData, IFilmOptions, IImageLOD, IExportFileType, IFourNumber, IPointData, IOptionSizeData, ISizeData, IGap, IPointGap, IPercentData, IInterlace, IPathCommandData, IAxis, IAxisReverse, IDirection, IWindingRule, IFilter, IFilmPlayOptions, IMatrixData, ILeaferImage, ITaskItem, INumber, IString, IBoolean, IUnitData, IAnimateOptions, IAnimateEasing, IEventer, IObject, IEventParamsMap, IAnimateEasingFunction, IAnimateEnding, ITransition, IBounds, ILeafInputData, ILeaf as ILeaf$1, ILeafComputedData, ILeafData, IBoundsData, IValue, IDirection4 as IDirection4$1, IAround, IOptionPointData, IPathCreator, IJSONOptions, IFindCondition, IAnswer, IPathString, IPathDrawer, ILeaferCanvas, IRenderOptions, IExportOptions, IExportResult, IPickOptions, IPickResult, ICanvasContext2DSettings, ICanvasContext2D, ILeaferAttrData, IControl, ILeaferType, ILeaferConfig, ILeafRender, ILeafBounds, ILeafHit, ICachedLeaf, IScaleData as IScaleData$1, IBooleanMap, IFunction, IMatrixWithBoundsScaleData } from '@leafer/interface';
2
2
  export * from '@leafer/interface';
3
3
  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';
4
4
 
@@ -65,7 +65,7 @@ interface IImagePaint extends IPaintBase, IFilmOptions {
65
65
  lod?: IImageLOD;
66
66
  mode?: IImagePaintMode;
67
67
  format?: IExportFileType;
68
- filters?: IImageFilters;
68
+ filter?: IImageFilters;
69
69
  padding?: IFourNumber;
70
70
  align?: IAlign;
71
71
  offset?: IPointData;
@@ -84,15 +84,12 @@ interface IImagePaint extends IPaintBase, IFilmOptions {
84
84
  }
85
85
  interface IStrokeImagePaint extends IImagePaint {
86
86
  }
87
- interface IImageFilters {
88
- exposure?: number;
89
- contrast?: number;
90
- saturation?: number;
91
- temperature?: number;
92
- tint?: number;
93
- highlights?: number;
94
- shadows?: number;
87
+ type IImageFilterType = 'exposure' | 'contrast' | 'saturation' | 'temperature' | 'tint' | 'highlights' | 'shadows' | (string & {});
88
+ interface IImageFilter {
89
+ type: IImageFilterType;
90
+ value: number;
95
91
  }
92
+ type IImageFilters = IImageFilter[];
96
93
  type IImagePaintMode = 'normal' | 'cover' | 'fit' | 'stretch' | 'clip' | 'repeat';
97
94
  type IRepeat = boolean | 'x' | 'y' | IPointData;
98
95
  type IStrokeAlign = 'inside' | 'outside' | 'center';
@@ -103,6 +100,7 @@ type IArrowStyle = IPathDataArrow | IArrowType | IArrowTypeData;
103
100
  interface IArrowTypeData {
104
101
  type: IArrowType;
105
102
  scale?: number;
103
+ rotation?: number;
106
104
  }
107
105
  interface IPathDataArrowMap {
108
106
  [name: string]: IPathDataArrow;
@@ -112,6 +110,7 @@ interface IPathDataArrow {
112
110
  offset?: IPathDataArrowOffset;
113
111
  path: IPathCommandData;
114
112
  dashPath?: IPathCommandData;
113
+ fill?: boolean;
115
114
  }
116
115
  interface IPathDataArrowOffset {
117
116
  x?: number;
@@ -255,7 +254,7 @@ interface IStrokeInputData extends IStrokeStyle {
255
254
  interface IStrokeStyle {
256
255
  strokeAlign?: IStrokeAlign;
257
256
  strokeWidth?: IFourNumber | IStrokeWidthString;
258
- strokeWidthFixed?: IScaleFixed;
257
+ strokeScaleFixed?: IScaleFixed;
259
258
  strokeCap?: IStrokeCap;
260
259
  strokeJoin?: IStrokeJoin;
261
260
  dashPattern?: INumber[] | IDashPatternString;
@@ -271,7 +270,7 @@ interface IStrokeComputedStyle {
271
270
  strokeAlign?: IStrokeAlign;
272
271
  strokeWidth?: number;
273
272
  strokeWidths?: number[];
274
- strokeWidthFixed?: IScaleFixed;
273
+ strokeScaleFixed?: IScaleFixed;
275
274
  strokeCap?: IStrokeCap;
276
275
  strokeJoin?: IStrokeJoin;
277
276
  dashPattern?: number[];
@@ -448,6 +447,7 @@ interface IEditorBase extends IGroup$1, ISelectorProxy, ITransformTool {
448
447
  editTool?: IObject$1;
449
448
  innerEditor?: IObject$1;
450
449
  editMask: IUI$1;
450
+ hasDimOthers?: boolean;
451
451
  readonly targetLeafer: ILeafer$1;
452
452
  select(target: IUI$1 | IUI$1[]): void;
453
453
  cancel(): void;
@@ -524,6 +524,8 @@ interface IEditorConfig extends IObject$1 {
524
524
  around?: IAlign$1 | IUnitPointData$1;
525
525
  rotateAround?: IAlign$1 | IUnitPointData$1;
526
526
  rotateGap?: number;
527
+ arrowStep?: number;
528
+ arrowFastStep?: number;
527
529
  lockRatio?: boolean | 'corner';
528
530
  dragLimitAnimate?: boolean | number;
529
531
  ignorePixelSnap?: boolean;
@@ -554,6 +556,7 @@ interface IEditorConfig extends IObject$1 {
554
556
  beforeScale?: IEditorBeforeScale;
555
557
  beforeRotate?: IEditorBeforeRotate;
556
558
  beforeSkew?: IEditorBeforeSkew;
559
+ onCopy?: IEditorOnCopy;
557
560
  preventEditInner?: boolean;
558
561
  textEditor?: IObject$1;
559
562
  pathEditor?: IObject$1;
@@ -603,6 +606,9 @@ interface IEditorBeforeRotate {
603
606
  interface IEditorBeforeSkew {
604
607
  (data: IEditorSkewData): ISkewData | boolean | void;
605
608
  }
609
+ interface IEditorOnCopy {
610
+ (): boolean | void;
611
+ }
606
612
  interface IEditPointInputData extends IBoxInputData$1 {
607
613
  direction?: number;
608
614
  pointType?: IEditPointType;
@@ -717,20 +723,38 @@ interface IArrowData extends IArrowAttrData, ILineData {
717
723
  }
718
724
  interface IArrowInputData extends IArrowAttrData, ILineInputData {
719
725
  }
720
- interface ILinker extends IArrow {
726
+ interface ILinker extends ILine {
721
727
  __: ILinkerData;
728
+ startNode: IUI;
729
+ endNode: IUI;
730
+ startData: ILinkerComputedPointData;
731
+ endData: ILinkerComputedPointData;
732
+ createStartPoint(worldPoint: IPointData, node?: IUI, options?: ILinkerPointOptions): ILinkerPointData;
733
+ createEndPoint(worldPoint: IPointData, node?: IUI, options?: ILinkerPointOptions): ILinkerPointData;
734
+ createLinkerPoint(worldPoint: IPointData, node?: IUI, options?: ILinkerPointOptions): ILinkerPointData;
722
735
  }
723
736
  interface ILinkerPointData {
724
- id: string | IUI;
737
+ id?: string | IUI;
738
+ direction?: IDirection4$1 | 'center';
725
739
  point?: IAround;
740
+ offset?: IOptionPointData;
741
+ }
742
+ interface ILinkerPointOptions {
743
+ snapRadius?: number;
744
+ }
745
+ type ILinkerPointType = 'start' | 'end';
746
+ interface ILinkerComputedPointData {
747
+ auto: boolean;
748
+ direction: IDirection;
749
+ point: IPointData;
726
750
  }
727
751
  interface ILinkerAttrData {
728
752
  startPoint?: ILinkerPointData | IUI | string;
729
753
  endPoint?: ILinkerPointData | IUI | string;
730
754
  }
731
- interface ILinkerData extends ILinkerAttrData, IArrowData {
755
+ interface ILinkerData extends ILinkerAttrData, ILineData {
732
756
  }
733
- interface ILinkerInputData extends ILinkerAttrData, IArrowInputData {
757
+ interface ILinkerInputData extends ILinkerAttrData, ILineInputData {
734
758
  }
735
759
  interface IFlow extends IBox {
736
760
  __: IFlowData;
@@ -900,6 +924,7 @@ interface ICanvasInputData extends ICanvasAttrData, IUIBaseInputData {
900
924
  }
901
925
  interface IFilm extends IFilmAttrData, IPlayerMethods, IImage {
902
926
  __: IFilmData;
927
+ seekFrame(frameIndex: number): void;
903
928
  }
904
929
  interface IFilmAttrData {
905
930
  url?: string;
@@ -996,6 +1021,45 @@ interface IBoxData extends IBoxAttrData, IGroupData {
996
1021
  }
997
1022
  interface IBoxInputData extends IBoxAttrData, IGroupInputData {
998
1023
  }
1024
+ interface IEllipseBox extends IEllipseAttrData, IBox {
1025
+ __: IEllipseBoxData;
1026
+ }
1027
+ interface IEllipseBoxData extends IEllipseAttrData, IBoxData {
1028
+ }
1029
+ interface IEllipseBoxInputData extends IEllipseAttrData, IBoxInputData {
1030
+ }
1031
+ interface IPolygonBox extends IPolygonAttrData, IBox {
1032
+ __: IPolygonBoxData;
1033
+ }
1034
+ interface IPolygonBoxData extends IPolygonAttrData, IBoxData {
1035
+ }
1036
+ interface IPolygonBoxInputData extends IPolygonAttrData, IBoxInputData {
1037
+ }
1038
+ interface IStarBox extends IStarAttrData, IBox {
1039
+ __: IStarBoxData;
1040
+ }
1041
+ interface IStarBoxData extends IStarAttrData, IBoxData {
1042
+ }
1043
+ interface IStarBoxInputData extends IStarAttrData, IBoxInputData {
1044
+ }
1045
+ interface IPathBox extends IBox {
1046
+ __: IPathBoxData;
1047
+ }
1048
+ interface IPathBoxData extends IBoxData {
1049
+ }
1050
+ interface IPathBoxInputData extends IBoxInputData {
1051
+ }
1052
+ interface IImageBox extends IImageAttrData, IBox {
1053
+ __: IImageBoxData;
1054
+ readonly ready: boolean;
1055
+ readonly image?: ILeaferImage;
1056
+ }
1057
+ interface IImageBoxData extends IImageAttrData, IBoxData {
1058
+ readonly __urlType: IMultimediaType;
1059
+ __setImageFill(value: string): void;
1060
+ }
1061
+ interface IImageBoxInputData extends IImageAttrData, IBoxInputData {
1062
+ }
999
1063
  interface IGroup extends IUI {
1000
1064
  __: IGroupData;
1001
1065
  children: IUI[];
@@ -1028,6 +1092,8 @@ interface IUI extends IUIAttrData, IFillAttrData, IStrokeAttrData, ICornerRadius
1028
1092
  animation?: IAnimation | IAnimation[];
1029
1093
  animationOut?: IAnimation | IAnimation[];
1030
1094
  children?: IUI[];
1095
+ startLinker?: ILinker[];
1096
+ endLinker?: ILinker[];
1031
1097
  __box?: IUI;
1032
1098
  __animate?: IAnimate;
1033
1099
  readonly pen: IPathCreator;
@@ -1043,6 +1109,7 @@ interface IUI extends IUIAttrData, IFillAttrData, IStrokeAttrData, ICornerRadius
1043
1109
  findId(id: number | string): IUI | undefined;
1044
1110
  getPath(curve?: boolean, pathForRender?: boolean): IPathCommandData;
1045
1111
  getPathString(curve?: boolean, pathForRender?: boolean): IPathString;
1112
+ asPath(curve?: boolean, pathForRender?: boolean): void;
1046
1113
  load(): void;
1047
1114
  __drawPathByData(drawer: IPathDrawer, data: IPathCommandData, ignoreCornerRadius?: boolean): void;
1048
1115
  __drawPathByBox(drawer: IPathDrawer, ignoreCornerRadius?: boolean): void;
@@ -1089,6 +1156,7 @@ interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
1089
1156
  __isStrokes?: boolean;
1090
1157
  readonly __strokeWidth: number;
1091
1158
  readonly __maxStrokeWidth: number;
1159
+ __strokeWidthCache?: number;
1092
1160
  __hasMultiStrokeStyle?: number;
1093
1161
  readonly __hasMultiPaint?: boolean;
1094
1162
  __isAlphaPixelFill?: boolean;
@@ -1117,7 +1185,7 @@ interface IUIComputedData extends IUIAttrData, IFillComputedData, IBorderCompute
1117
1185
  interface IUIBaseInputData extends IUIAttrData, IFillInputData, IStrokeInputData, ITextStyleInputData, ICornerRadiusInputData, IEffectInputData, ILeafInputData {
1118
1186
  children?: IUIInputData[];
1119
1187
  }
1120
- type IUITag = 'App' | 'Leafer' | 'Rect' | 'Ellipse' | 'Polygon' | 'Star' | 'Line' | 'Path' | 'Pen' | 'Text' | 'Image' | 'Canvas' | 'Group' | 'Frame' | 'Box' | 'Arrow' | 'Robot' | 'Film' | 'Video' | (string & {});
1188
+ type IUITag = 'App' | 'Leafer' | 'Rect' | 'Ellipse' | 'Polygon' | 'Star' | 'Line' | 'Path' | 'Pen' | 'Text' | 'Image' | 'Canvas' | 'Group' | 'Frame' | 'Box' | 'Arrow' | 'Robot' | 'Film' | 'Video' | (string & {}) | 'EllipseBox' | 'PolygonBox' | 'StarBox' | 'LineBox' | 'PathBox' | 'ImageBox' | 'CanvasBox';
1121
1189
  interface IUIInputData extends IRectInputData, IEllipseInputData, IPolygonInputData, IStarInputData, ILineInputData, IPathInputData, ITextInputData, IImageInputData, IGroupInputData, IBoxInputData, IFrameInputData, IFlowInputData, IArrowInputData, IVideoInputData, IRobotInputData, IUIBaseInputData, IObject {
1122
1190
  children?: IUIInputData[];
1123
1191
  }
@@ -1184,8 +1252,10 @@ type IUIHitModule = ILeafHit & ThisType<IUI>;
1184
1252
 
1185
1253
  interface IPathArrowModule {
1186
1254
  list: IPathDataArrowMap;
1187
- addArrows(ui: IUI): void;
1188
- register(name: string, data: IPathDataArrow): void;
1255
+ fillList: IPathDataArrowMap;
1256
+ addArrows(ui: IUI, updateCache?: boolean): void;
1257
+ updateArrow(ui: IUI): void;
1258
+ register(name: string, data: IPathDataArrow, fillData?: IPathDataArrow): void;
1189
1259
  get(name: string): IPathDataArrow;
1190
1260
  }
1191
1261
 
@@ -1275,6 +1345,8 @@ interface IPaintImageModule {
1275
1345
  getPatternFixScale(paint: ILeafPaint, imageScaleX: number, imageScaleY: number): number;
1276
1346
  createData(leafPaint: ILeafPaint, image: ILeaferImage, paint: IImagePaint, box: IBoundsData): void;
1277
1347
  getPatternData(paint: IImagePaint, box: IBoundsData, image: ILeaferImage): ILeafPaintPatternData;
1348
+ applyFilter?(leafPaint: ILeafPaint, image: ILeaferImage, filter: IImageFilters, ui: IUI): void;
1349
+ recycleFilter?(image: ILeaferImage, ui: IUI): void;
1278
1350
  stretchMode(data: ILeafPaintPatternData, box: IBoundsData, scaleX: number, scaleY: number): void;
1279
1351
  fillOrFitMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number): void;
1280
1352
  clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData, clipScaleX?: number, clipScaleY?: number): void;
@@ -1315,4 +1387,4 @@ interface IFilterFunction {
1315
1387
  (filter: IFilter, ui: IUI, bounds: IMatrixWithBoundsScaleData, currentCanvas: ILeaferCanvas, originCanvas: ILeaferCanvas, shape: ICachedShape): void;
1316
1388
  }
1317
1389
 
1318
- 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, IFilm, IFilmData, IFilmInputData, IFilterFunction, IFilterModule, IFilterProcessor, IFindUIMethod, IFlow, IFlowData, IFlowInputData, IFontWeight, IFontWeightNumer, IFontWeightString, IFrame, IFrameData, IFrameInputData, IFrameRenderModule, 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, ILinker, ILinkerData, ILinkerInputData, ILinkerPointData, 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 };
1390
+ 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, IEditorOnCopy, IEditorRotationData, IEditorScaleData, IEditorSelectData, IEditorSkewData, IEffect, IEffectAttrData, IEffectComputedData, IEffectInputData, IEffectModule, IEllipse, IEllipseBox, IEllipseBoxData, IEllipseBoxInputData, IEllipseData, IEllipseInputData, IExportModule, IFill, IFilm, IFilmData, IFilmInputData, IFilterFunction, IFilterModule, IFilterProcessor, IFindUIMethod, IFlow, IFlowData, IFlowInputData, IFontWeight, IFontWeightNumer, IFontWeightString, IFrame, IFrameData, IFrameInputData, IFrameRenderModule, IGradientPaint, IGradientType, IGrayscaleEffect, IGroup, IGroupData, IGroupInputData, IGroupRenderModule, IImage, IImageBox, IImageBoxData, IImageBoxInputData, IImageData, IImageFilter, IImageFilterType, IImageFilters, IImageInputData, IImagePaint, IImagePaintMode, IImageRenderModule, IKeyframe, IKeyframeId, IKeyframesAnimation, ILeafFill, ILeafPaint, ILeafPaintColor, ILeafPaintPatternData, ILeafShadowEffect, ILeafStrokePaint, ILeafer, ILeaferData, ILeaferInputData, ILine, ILineData, ILineInputData, ILinker, ILinkerComputedPointData, ILinkerData, ILinkerInputData, ILinkerPointData, ILinkerPointOptions, ILinkerPointType, IOverflow, IPaint, IPaintAttr, IPaintBase, IPaintGradientModule, IPaintImageModule, IPaintModule, IPaintString, IPaintType, IPath, IPathArrowModule, IPathBox, IPathBoxData, IPathBoxInputData, IPathData, IPathDataArrow, IPathDataArrowMap, IPathDataArrowOffset, IPathInputData, IPen, IPenData, IPenInputData, IPercent, IPolygon, IPolygonBox, IPolygonBoxData, IPolygonBoxInputData, IPolygonData, IPolygonInputData, IRGB, IRGBA, IRect, IRectData, IRectInputData, IRectRenderModule, IRepeat, IRobot, IRobotActionName, IRobotActions, IRobotAnimation, IRobotComputedKeyframe, IRobotData, IRobotInputData, IRobotKeyframe, IScrollConfig, IScrollTheme, IScroller, IShadowEffect, IShadowString, ISolidPaint, IStar, IStarBox, IStarBoxData, IStarBoxInputData, 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 };