@leafer-ui/interface 1.7.0 → 1.8.0

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": "1.7.0",
3
+ "version": "1.8.0",
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": "1.7.0"
25
+ "@leafer/interface": "1.8.0"
26
26
  }
27
27
  }
package/src/IAnimation.ts CHANGED
@@ -56,6 +56,7 @@ export interface IComputedKeyframe {
56
56
 
57
57
  export interface IAnimate extends IAnimateOptions, IEventer {
58
58
  target: IUI | IObject
59
+ parent?: IAnimateList
59
60
 
60
61
  keyframes: IKeyframe[]
61
62
  config?: IAnimateOptions
@@ -92,4 +93,5 @@ export interface IAnimate extends IAnimateOptions, IEventer {
92
93
  export interface IAnimateList extends IAnimate {
93
94
  list: IAnimate[]
94
95
  updateList(animation?: IAnimation[] | IAnimate[], isTemp?: boolean): void
96
+ onChildEvent(type: string, _animate: IAnimate): void
95
97
  }
@@ -36,24 +36,21 @@ export interface IBorderComputedData {
36
36
  }
37
37
 
38
38
  // stroke---
39
- export interface IStrokeAttrData {
39
+ export interface IStrokeAttrData extends IStrokeStyle {
40
40
  stroke?: IStroke
41
41
 
42
- strokeAlign?: IStrokeAlign
43
- strokeWidth?: IFourNumber | IStrokeWidthString
44
- strokeWidthFixed?: IBoolean
45
- strokeCap?: IStrokeCap
46
- strokeJoin?: IStrokeJoin
47
- dashPattern?: INumber[] | IDashPatternString
48
- dashOffset?: INumber
49
- miterLimit?: INumber
50
-
51
42
  startArrow?: IArrowType
52
43
  endArrow?: IArrowType
53
44
  }
54
- export interface IStrokeInputData {
45
+
46
+ export interface IStrokeInputData extends IStrokeStyle {
55
47
  stroke?: IStroke
56
48
 
49
+ startArrow?: IArrowType
50
+ endArrow?: IArrowType
51
+ }
52
+
53
+ export interface IStrokeStyle {
57
54
  strokeAlign?: IStrokeAlign
58
55
  strokeWidth?: IFourNumber | IStrokeWidthString
59
56
  strokeWidthFixed?: IBoolean
@@ -62,13 +59,16 @@ export interface IStrokeInputData {
62
59
  dashPattern?: INumber[] | IDashPatternString
63
60
  dashOffset?: INumber
64
61
  miterLimit?: INumber
62
+ }
63
+
64
+ export interface IStrokeComputedData extends IStrokeComputedStyle {
65
+ stroke?: IColorString | ILeafStrokePaint[]
65
66
 
66
67
  startArrow?: IArrowType
67
68
  endArrow?: IArrowType
68
69
  }
69
- export interface IStrokeComputedData {
70
- stroke?: IColorString | ILeafStrokePaint[]
71
70
 
71
+ export interface IStrokeComputedStyle {
72
72
  strokeAlign?: IStrokeAlign
73
73
  strokeWidth?: number
74
74
  strokeWidths?: number[]
@@ -78,9 +78,6 @@ export interface IStrokeComputedData {
78
78
  dashPattern?: number[]
79
79
  dashOffset?: number
80
80
  miterLimit?: number
81
-
82
- startArrow?: IArrowType
83
- endArrow?: IArrowType
84
81
  }
85
82
 
86
83
  // text---
package/src/IUI.ts CHANGED
@@ -6,7 +6,8 @@ import {
6
6
  ICornerRadiusAttrData, ICornerRadiusInputData, ICornerRadiusComputedData,
7
7
  IStrokeAttrData, IStrokeComputedData, IStrokeInputData,
8
8
  IEffectAttrData, IEffectInputData, IEffectComputedData,
9
- ITextStyleAttrData, ITextStyleInputData, ITextStyleComputedData
9
+ ITextStyleAttrData, ITextStyleInputData, ITextStyleComputedData,
10
+ IStrokeComputedStyle
10
11
  } from './ICommonAttr'
11
12
  import { IOverflow } from './type/IType'
12
13
  import { IAnimation, IAnimate, IKeyframe, IKeyframeId, IAnimateType } from './IAnimation'
@@ -339,6 +340,8 @@ export interface IFrameInputData extends IBoxInputData {
339
340
  // Box
340
341
  export interface IBox extends IBoxAttrData, IGroup {
341
342
  __: IBoxData
343
+ scrollBar?: IGroup
344
+ __updateScrollBar(): void
342
345
  __updateRectRenderBounds(): void
343
346
  __renderGroup(canvas: ILeaferCanvas, options: IRenderOptions): void
344
347
  }
@@ -356,6 +359,7 @@ export interface IBoxInputData extends IBoxAttrData, IGroupInputData { }
356
359
  export interface IGroup extends IUI {
357
360
  __: IGroupData
358
361
  children: IUI[]
362
+ childlessJSON?: boolean // 子级 JSON 不导出
359
363
  pick(hitPoint: IPointData, options?: IPickOptions): IPickResult
360
364
  add(child: IUI | IUI[] | IUIInputData | IUIInputData[], index?: number): void
361
365
  addAt(child: IUI | IUI[] | IUIInputData | IUIInputData[], index: number): void
@@ -477,7 +481,10 @@ export interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
477
481
  __isFills?: boolean
478
482
  __isStrokes?: boolean
479
483
 
480
- readonly __strokeWidth: number
484
+ readonly __strokeWidth: number // 会受 strokeWidthFixed 影响
485
+ readonly __maxStrokeWidth: number
486
+ __hasMultiStrokeStyle?: number // 是否存在多个不同的描述样式(同时存储多个描边样式中的最大宽度用于运算)
487
+ readonly __hasMultiPaint?: boolean
481
488
 
482
489
  __isAlphaPixelFill?: boolean // png / svg / webp
483
490
  __isAlphaPixelStroke?: boolean
@@ -504,6 +511,7 @@ export interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
504
511
 
505
512
  __needComputePaint?: boolean
506
513
  __computePaint(): void
514
+ __getRealStrokeWidth(childStyle?: IStrokeComputedStyle): number
507
515
 
508
516
  __setPaint(attrName: 'fill' | 'stroke', value: IValue): void
509
517
  __removePaint(attrName: 'fill' | 'stroke', removeInput?: boolean): void
@@ -1,8 +1,8 @@
1
- import { IGroup, IUI, IBox, IRectInputData, ISelectorProxy, IEditSize, ICursorType, IAlign, IUnitPointData, IDragEvent, IMoveEvent, IRotateEvent, IStroke, IFill, ILeaf, ILeafList, IObject, IBoxInputData, IGroupInputData, IImageCursor, IRect, IKeyEvent, IUIInputData, IZoomEvent, IColorString, IDirection4, IPointData, IScaleData, ISkewData, ILayoutBoundsData, ITransition } from '@leafer-ui/interface'
1
+ import { IGroup, IUI, IBox, IRectInputData, ISelectorProxy, IEditSize, ICursorType, IAlign, IUnitPointData, IDragEvent, IMoveEvent, IRotateEvent, IStroke, IFill, ILeaf, ILeafList, IObject, IBoxInputData, IGroupInputData, IImageCursor, IRect, IKeyEvent, IUIInputData, IZoomEvent, IColorString, IDirection4, IPointData, IScaleData, ISkewData, ILayoutBoundsData, ITransition, IFourNumber } from '@leafer-ui/interface'
2
2
 
3
3
  export interface IEditorBase extends IGroup, ISelectorProxy, ITransformTool {
4
4
  config: IEditorConfig
5
- readonly mergeConfig: IEditorConfig // 实际使用,合并了选中元素上的editConfig,频繁访问会消耗性能
5
+ readonly mergeConfig: IEditorConfig // 实际使用,合并了选中元素、默认editBox上的editConfig,频繁访问会消耗性能
6
6
  readonly mergedConfig: IEditorConfig // 合并之后的缓存配置
7
7
 
8
8
  hoverTarget?: IUI
@@ -19,9 +19,15 @@ export interface IEditorBase extends IGroup, ISelectorProxy, ITransformTool {
19
19
  readonly multiple: boolean
20
20
  readonly single: boolean
21
21
 
22
+ readonly dragPoint: IEditPoint // 正在拖拽的控制点
23
+
22
24
  readonly dragging: boolean
25
+ readonly gesturing: boolean // 手势操作元素中
26
+
23
27
  readonly moving: boolean
24
- readonly dragPoint: IEditPoint // 正在拖拽的控制点
28
+ readonly resizing: boolean
29
+ readonly rotating: boolean
30
+ readonly skewing: boolean
25
31
 
26
32
  element?: IUI
27
33
  buttons: IGroup
@@ -43,6 +49,7 @@ export interface IEditorBase extends IGroup, ISelectorProxy, ITransformTool {
43
49
  update(): void
44
50
  updateEditBox(): void
45
51
  updateEditTool(): void
52
+ unloadEditTool(): void
46
53
 
47
54
  getEditSize(ui: ILeaf): IEditSize
48
55
 
@@ -51,8 +58,8 @@ export interface IEditorBase extends IGroup, ISelectorProxy, ITransformTool {
51
58
  openGroup(group: IGroup): void
52
59
  closeGroup(group: IGroup): void
53
60
 
54
- openInnerEditor(target?: IUI, select?: boolean): void
55
- closeInnerEditor(): void
61
+ openInnerEditor(target?: IUI, nameOrSelect?: string | boolean, select?: boolean): void
62
+ closeInnerEditor(onlyInnerEditor?: boolean): void
56
63
 
57
64
  lock(): void
58
65
  unlock(): void
@@ -84,6 +91,8 @@ export interface IEditorConfig extends IObject {
84
91
  stroke?: IStroke
85
92
  strokeWidth?: number
86
93
 
94
+ spread?: IFourNumber // 扩张编辑框的大小,与实际元素之间产生一定的间隙
95
+
87
96
  pointFill?: IFill
88
97
  pointSize?: number
89
98
  pointRadius?: number
@@ -112,9 +121,10 @@ export interface IEditorConfig extends IObject {
112
121
  rotateCursor?: IImageCursor
113
122
  skewCursor?: IImageCursor
114
123
 
115
- around?: IAlign | IUnitPointData
116
- lockRatio?: boolean | 'corner'
124
+ around?: IAlign | IUnitPointData // 缩放、旋转、倾斜时围绕的中心点
125
+ rotateAround?: IAlign | IUnitPointData // 单独设置旋转围绕的中心点,比 around 优先级高
117
126
  rotateGap?: number
127
+ lockRatio?: boolean | 'corner'
118
128
 
119
129
  selector?: boolean
120
130
  editBox?: boolean
@@ -127,10 +137,10 @@ export interface IEditorConfig extends IObject {
127
137
  continuousSelect?: boolean // 点击可以连续选择
128
138
  openInner?: 'double' | 'long' // 双击/长按打开内部
129
139
 
130
- moveable?: boolean | 'move'
131
- resizeable?: boolean | 'zoom'
140
+ moveable?: boolean | 'gesture' | 'move'
141
+ resizeable?: boolean | 'gesture' | 'zoom'
132
142
  flipable?: boolean
133
- rotateable?: boolean | 'rotate'
143
+ rotateable?: boolean | 'gesture' | 'rotate'
134
144
  skewable?: boolean
135
145
 
136
146
  beforeSelect?: IEditorBeforeSelect
@@ -206,7 +216,12 @@ export interface IEditBoxBase extends IGroup {
206
216
  editor: IEditorBase
207
217
 
208
218
  dragging: boolean
219
+ gesturing: boolean // 手势操作元素中
220
+
209
221
  moving: boolean
222
+ resizing: boolean
223
+ rotating: boolean
224
+ skewing: boolean
210
225
 
211
226
  view: IGroup // 放置默认编辑工具控制点
212
227
 
@@ -238,6 +253,9 @@ export interface IEditBoxBase extends IGroup {
238
253
  readonly flippedY: boolean
239
254
  readonly flippedOne: boolean
240
255
 
256
+ readonly canUse: boolean // 编辑框是否处于激活状态
257
+ readonly canGesture: boolean // 是否支持手势
258
+
241
259
  getPointStyle(userStyle?: IBoxInputData): IBoxInputData
242
260
  getPointsStyle(): IBoxInputData[]
243
261
  getMiddlePointsStyle(): IBoxInputData[]
package/src/index.ts CHANGED
@@ -28,10 +28,10 @@ export {
28
28
  IUITag, IUIInputData, IUIJSONData, IStateStyle, IStates, IStateName
29
29
  } from './IUI'
30
30
 
31
- export { IVectorPath, IShadowEffect, IBlurEffect, IGrayscaleEffect, IEffect, IFill, IStroke, IPaintAttr, IStrokeAlign, IStrokeJoin, IStrokeCap, IArrowType, IPathDataArrow, IPathDataArrowMap, IRGB, IRGBA, IColor, IColorStop, IPaint, IGradientPaint, IImagePaint, IImagePaintMode, IFontWeight, IFontWeightNumer, IFontWeightString, ITextCase, ITextDecoration, ITextDecorationType, ITextDecorationData, IWritingMode, ITextAlign, IVerticalAlign, IOverflow, ITextWrap, IRepeat, IGradientType, IPaintType, IImageFilters, IPathDataArrowOffset, ISolidPaint, IPaintBase } from './type/IType'
31
+ export { IVectorPath, IShadowEffect, IBlurEffect, IGrayscaleEffect, IEffect, IFill, IStroke, IPaintAttr, IStrokeAlign, IStrokeJoin, IStrokeCap, IArrowType, 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, ITextWrap, IRepeat, IGradientType, IPaintType, IImageFilters, IPathDataArrowOffset, ISolidPaint, IPaintBase } from './type/IType'
32
32
  export { ICornerRadiusString, IStrokeWidthString, IPaintString, IShadowString, IPercent, IDashPatternString, IColorString } from './type/IStringType'
33
33
  export { ILeafFill, ILeafPaint, ILeafPaintPatternData, ILeafPaintColor, ILeafStrokePaint, ILeafShadowEffect } from './type/IComputedType'
34
- export { IStrokeAttrData, IStrokeInputData, IStrokeComputedData, ITextStyleAttrData, ITextStyleInputData, ITextStyleComputedData, IEffectAttrData, IEffectInputData, IEffectComputedData } from './ICommonAttr'
34
+ export { IStrokeAttrData, IStrokeInputData, IStrokeComputedData, IStrokeComputedStyle, IStrokeStyle, ITextStyleAttrData, ITextStyleInputData, ITextStyleComputedData, IEffectAttrData, IEffectInputData, IEffectComputedData } from './ICommonAttr'
35
35
 
36
36
  export { IAnimation, IAnimate, IAnimateList, IAnimateType, IKeyframe, IKeyframeId, IAnimateKeyframe, IComputedKeyframe, IStyleAnimation, IKeyframesAnimation } from './IAnimation'
37
37
 
@@ -1,4 +1,4 @@
1
- import { ILeaferCanvas, IRenderOptions, IBooleanMap, IBoundsData, ILeaferImage, IAround, IPointData, IMatrixData } from '@leafer/interface'
1
+ import { ILeaferCanvas, IRenderOptions, IBooleanMap, IBoundsData, ILeaferImage, IAround, IPointData, IMatrixData, ISizeData } from '@leafer/interface'
2
2
 
3
3
  import { ILeafPaint, ILeafPaintPatternData } from '../type/IComputedType'
4
4
  import { IUI, IUIData } from '../IUI'
@@ -35,7 +35,7 @@ export interface IPaintImageModule {
35
35
  createData(leafPaint: ILeafPaint, image: ILeaferImage, paint: IImagePaint, box: IBoundsData): void
36
36
  getPatternData(paint: IImagePaint, box: IBoundsData, image: ILeaferImage): ILeafPaintPatternData
37
37
  fillOrFitMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number): void
38
- clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData): void
38
+ clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData, clipSize?: ISizeData): void
39
39
  repeatMode(data: ILeafPaintPatternData, box: IBoundsData, width: number, height: number, x: number, y: number, scaleX: number, scaleY: number, rotation: number, around: IAround): void
40
40
  }
41
41
 
@@ -3,12 +3,14 @@ import { IBlendMode, ILeaferImage, IMatrixData, ITaskItem } from '@leafer/interf
3
3
  import { IColorString } from './IStringType'
4
4
  import { IStrokeAlign, IStrokeJoin, IStrokeCap, IImagePaintMode, IImageFilters } from './IType'
5
5
  import { IPaintType } from './IType'
6
+ import { IStrokeComputedStyle } from '../ICommonAttr'
6
7
 
7
8
  export type ILeafPaintColor = IColorString | CanvasGradient | CanvasPattern
8
9
 
9
10
  export interface ILeafPaint {
10
11
  type?: IPaintType
11
12
  style?: ILeafPaintColor
13
+ strokeStyle?: IStrokeComputedStyle // 子描边样式选项
12
14
  transform?: IMatrixData // 存在时表示pattern自身不能应用transform
13
15
  blendMode?: IBlendMode
14
16
  image?: ILeaferImage
@@ -20,6 +22,7 @@ export interface ILeafPaint {
20
22
  isTransparent?: boolean // 是否为透明色
21
23
  data?: ILeafPaintPatternData
22
24
  editing?: boolean // 标记编辑中
25
+ scaleFixed?: boolean // 平铺图片不跟随画布缩放
23
26
  }
24
27
 
25
28
  export interface ILeafPaintPatternData {
package/src/type/IType.ts CHANGED
@@ -1,11 +1,14 @@
1
- import { IPointData, IPathCommandData, IWindingRule, IBlendMode, IExportFileType, IFourNumber, IAlign, IUnitPointData, IAxis, IAxisReverse, IFilter, IOptionSizeData } from '@leafer/interface'
1
+ import { IPointData, IPathCommandData, IWindingRule, IBlendMode, IExportFileType, IFourNumber, IAlign, IUnitPointData, IAxis, IAxisReverse, IFilter, IOptionSizeData, ISizeData } from '@leafer/interface'
2
2
  import { IColorString, IPaintString } from './IStringType'
3
+ import { IStrokeStyle } from '../ICommonAttr'
3
4
 
4
5
  export type IPaint = ISolidPaint | IGradientPaint | IImagePaint
5
6
 
7
+ export type IStrokePaint = IStrokeSolidPaint | IStrokeGradientPaint | IStrokeImagePaint
8
+
6
9
  export type IFill = IPaint | IPaint[] | IPaintString
7
10
 
8
- export type IStroke = IPaint | IPaint[] | IPaintString
11
+ export type IStroke = IStrokePaint | IStrokePaint[] | IPaintString
9
12
 
10
13
  export type IPaintAttr = 'fill' | 'stroke'
11
14
 
@@ -14,6 +17,9 @@ export interface IPaintBase {
14
17
  blendMode?: IBlendMode
15
18
  visible?: boolean
16
19
  opacity?: number
20
+
21
+ style?: IStrokeStyle
22
+ editing?: boolean // 标记编辑中
17
23
  }
18
24
 
19
25
  export type IPaintType =
@@ -32,6 +38,8 @@ export interface ISolidPaint extends IPaintBase {
32
38
  color: IColor
33
39
  }
34
40
 
41
+ export interface IStrokeSolidPaint extends ISolidPaint { }
42
+
35
43
  export type IColor = IColorString | IRGB | IRGBA
36
44
  export interface IRGB {
37
45
  r: number
@@ -51,6 +59,9 @@ export interface IGradientPaint extends IPaintBase {
51
59
  stretch?: number
52
60
  stops: IColorStop[] | IColorString[]
53
61
  }
62
+
63
+ export interface IStrokeGradientPaint extends IGradientPaint { }
64
+
54
65
  export interface IColorStop {
55
66
  offset: number
56
67
  color: IColor
@@ -77,14 +88,17 @@ export interface IImagePaint extends IPaintBase {
77
88
  rotation?: number
78
89
  skew?: | IPointData
79
90
 
91
+ clipSize?: ISizeData
92
+
80
93
  repeat?: IRepeat
94
+ scaleFixed?: boolean // 平铺图片不跟随画布缩放
81
95
 
82
96
  changeful?: boolean // 会频繁变化,不生成图案(有特殊性能优化,一般用于游戏精灵、动图场景)
83
97
  sync?: boolean // 同步显示,不走任务列表生成图案
84
98
  showProgress?: boolean // 是否显示进度
85
-
86
- editing?: boolean // 标记编辑中
87
99
  }
100
+
101
+ export interface IStrokeImagePaint extends IImagePaint { }
88
102
  export interface IImageFilters {
89
103
  exposure?: number // 曝光
90
104
  contrast?: number // 对比度
package/types/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { IBlendMode, IAlign, IUnitPointData, IExportFileType, IFourNumber, IPointData, IOptionSizeData, IPathCommandData, IAxis, IAxisReverse, IWindingRule, IFilter, IMatrixData, ILeaferImage, ITaskItem, IBoolean, INumber, IString, IUnitData, IAnimateOptions, IAnimateEasing, IEventer, IObject, IEventParamsMap, IAnimateEasingFunction, IAnimateEnding, ITransition, IPercentData, ILeafInputData, ISizeData, 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, IAround, IMatrixWithBoundsScaleData } from '@leafer/interface';
1
+ import { IBlendMode, IAlign, IUnitPointData, IExportFileType, IFourNumber, IPointData, IOptionSizeData, ISizeData, IPathCommandData, IAxis, IAxisReverse, IWindingRule, IFilter, IMatrixData, ILeaferImage, ITaskItem, IBoolean, INumber, IString, IUnitData, IAnimateOptions, IAnimateEasing, IEventer, IObject, IEventParamsMap, IAnimateEasingFunction, IAnimateEnding, ITransition, IPercentData, 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, IAround, IMatrixWithBoundsScaleData } from '@leafer/interface';
2
2
  export * from '@leafer/interface';
3
- import { IObject as IObject$1, IEditSize, IStroke as IStroke$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, IUI as IUI$1, IPointData as IPointData$1, IScaleData, ISkewData, IGroup as IGroup$1, ISelectorProxy, IBox as IBox$1, IRect as IRect$1, ILayoutBoundsData, IKeyEvent, IDragEvent, IMoveEvent, IZoomEvent, IRotateEvent, ITransition as ITransition$1, ILeafList, 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';
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, IUI as IUI$1, IPointData as IPointData$1, IScaleData, ISkewData, IGroup as IGroup$1, ISelectorProxy, IBox as IBox$1, IRect as IRect$1, ILayoutBoundsData, IKeyEvent, IDragEvent, IMoveEvent, IZoomEvent, IRotateEvent, ITransition as ITransition$1, ILeafList, 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
 
5
5
  type IPercent = string;
6
6
  type IColorString = string;
@@ -14,14 +14,17 @@ type IImagePaintString = string;
14
14
  type IShadowString = string;
15
15
 
16
16
  type IPaint = ISolidPaint | IGradientPaint | IImagePaint;
17
+ type IStrokePaint = IStrokeSolidPaint | IStrokeGradientPaint | IStrokeImagePaint;
17
18
  type IFill = IPaint | IPaint[] | IPaintString;
18
- type IStroke = IPaint | IPaint[] | IPaintString;
19
+ type IStroke = IStrokePaint | IStrokePaint[] | IPaintString;
19
20
  type IPaintAttr = 'fill' | 'stroke';
20
21
  interface IPaintBase {
21
22
  type: IPaintType;
22
23
  blendMode?: IBlendMode;
23
24
  visible?: boolean;
24
25
  opacity?: number;
26
+ style?: IStrokeStyle;
27
+ editing?: boolean;
25
28
  }
26
29
  type IPaintType = 'image' | 'solid' | IGradientType;
27
30
  type IGradientType = 'linear' | 'radial' | 'angular';
@@ -29,6 +32,8 @@ interface ISolidPaint extends IPaintBase {
29
32
  type: 'solid';
30
33
  color: IColor;
31
34
  }
35
+ interface IStrokeSolidPaint extends ISolidPaint {
36
+ }
32
37
  type IColor = IColorString | IRGB | IRGBA;
33
38
  interface IRGB {
34
39
  r: number;
@@ -46,6 +51,8 @@ interface IGradientPaint extends IPaintBase {
46
51
  stretch?: number;
47
52
  stops: IColorStop[] | IColorString[];
48
53
  }
54
+ interface IStrokeGradientPaint extends IGradientPaint {
55
+ }
49
56
  interface IColorStop {
50
57
  offset: number;
51
58
  color: IColor;
@@ -63,11 +70,14 @@ interface IImagePaint extends IPaintBase {
63
70
  scale?: number | IPointData;
64
71
  rotation?: number;
65
72
  skew?: IPointData;
73
+ clipSize?: ISizeData;
66
74
  repeat?: IRepeat;
75
+ scaleFixed?: boolean;
67
76
  changeful?: boolean;
68
77
  sync?: boolean;
69
78
  showProgress?: boolean;
70
- editing?: boolean;
79
+ }
80
+ interface IStrokeImagePaint extends IImagePaint {
71
81
  }
72
82
  interface IImageFilters {
73
83
  exposure?: number;
@@ -142,6 +152,7 @@ type ILeafPaintColor = IColorString | CanvasGradient | CanvasPattern;
142
152
  interface ILeafPaint {
143
153
  type?: IPaintType;
144
154
  style?: ILeafPaintColor;
155
+ strokeStyle?: IStrokeComputedStyle;
145
156
  transform?: IMatrixData;
146
157
  blendMode?: IBlendMode;
147
158
  image?: ILeaferImage;
@@ -153,6 +164,7 @@ interface ILeafPaint {
153
164
  isTransparent?: boolean;
154
165
  data?: ILeafPaintPatternData;
155
166
  editing?: boolean;
167
+ scaleFixed?: boolean;
156
168
  }
157
169
  interface ILeafPaintPatternData {
158
170
  width?: number;
@@ -209,21 +221,17 @@ interface IBorderComputedData {
209
221
  borderWidth?: number | number[];
210
222
  borderRadius?: number | number[];
211
223
  }
212
- interface IStrokeAttrData {
224
+ interface IStrokeAttrData extends IStrokeStyle {
213
225
  stroke?: IStroke;
214
- strokeAlign?: IStrokeAlign;
215
- strokeWidth?: IFourNumber | IStrokeWidthString;
216
- strokeWidthFixed?: IBoolean;
217
- strokeCap?: IStrokeCap;
218
- strokeJoin?: IStrokeJoin;
219
- dashPattern?: INumber[] | IDashPatternString;
220
- dashOffset?: INumber;
221
- miterLimit?: INumber;
222
226
  startArrow?: IArrowType;
223
227
  endArrow?: IArrowType;
224
228
  }
225
- interface IStrokeInputData {
229
+ interface IStrokeInputData extends IStrokeStyle {
226
230
  stroke?: IStroke;
231
+ startArrow?: IArrowType;
232
+ endArrow?: IArrowType;
233
+ }
234
+ interface IStrokeStyle {
227
235
  strokeAlign?: IStrokeAlign;
228
236
  strokeWidth?: IFourNumber | IStrokeWidthString;
229
237
  strokeWidthFixed?: IBoolean;
@@ -232,11 +240,13 @@ interface IStrokeInputData {
232
240
  dashPattern?: INumber[] | IDashPatternString;
233
241
  dashOffset?: INumber;
234
242
  miterLimit?: INumber;
243
+ }
244
+ interface IStrokeComputedData extends IStrokeComputedStyle {
245
+ stroke?: IColorString | ILeafStrokePaint[];
235
246
  startArrow?: IArrowType;
236
247
  endArrow?: IArrowType;
237
248
  }
238
- interface IStrokeComputedData {
239
- stroke?: IColorString | ILeafStrokePaint[];
249
+ interface IStrokeComputedStyle {
240
250
  strokeAlign?: IStrokeAlign;
241
251
  strokeWidth?: number;
242
252
  strokeWidths?: number[];
@@ -246,8 +256,6 @@ interface IStrokeComputedData {
246
256
  dashPattern?: number[];
247
257
  dashOffset?: number;
248
258
  miterLimit?: number;
249
- startArrow?: IArrowType;
250
- endArrow?: IArrowType;
251
259
  }
252
260
  interface ITextStyleAttrData {
253
261
  fontFamily?: IString;
@@ -360,6 +368,7 @@ interface IComputedKeyframe {
360
368
  }
361
369
  interface IAnimate extends IAnimateOptions, IEventer {
362
370
  target: IUI | IObject;
371
+ parent?: IAnimateList;
363
372
  keyframes: IKeyframe[];
364
373
  config?: IAnimateOptions;
365
374
  event?: IEventParamsMap;
@@ -386,6 +395,7 @@ interface IAnimate extends IAnimateOptions, IEventer {
386
395
  interface IAnimateList extends IAnimate {
387
396
  list: IAnimate[];
388
397
  updateList(animation?: IAnimation[] | IAnimate[], isTemp?: boolean): void;
398
+ onChildEvent(type: string, _animate: IAnimate): void;
389
399
  }
390
400
 
391
401
  interface IEditorBase extends IGroup$1, ISelectorProxy, ITransformTool {
@@ -402,9 +412,13 @@ interface IEditorBase extends IGroup$1, ISelectorProxy, ITransformTool {
402
412
  readonly groupOpening: boolean;
403
413
  readonly multiple: boolean;
404
414
  readonly single: boolean;
415
+ readonly dragPoint: IEditPoint;
405
416
  readonly dragging: boolean;
417
+ readonly gesturing: boolean;
406
418
  readonly moving: boolean;
407
- readonly dragPoint: IEditPoint;
419
+ readonly resizing: boolean;
420
+ readonly rotating: boolean;
421
+ readonly skewing: boolean;
408
422
  element?: IUI$1;
409
423
  buttons: IGroup$1;
410
424
  selector: IGroup$1;
@@ -421,13 +435,14 @@ interface IEditorBase extends IGroup$1, ISelectorProxy, ITransformTool {
421
435
  update(): void;
422
436
  updateEditBox(): void;
423
437
  updateEditTool(): void;
438
+ unloadEditTool(): void;
424
439
  getEditSize(ui: ILeaf): IEditSize;
425
440
  group(group?: IGroup$1 | IGroupInputData$1): IGroup$1;
426
441
  ungroup(): IUI$1[];
427
442
  openGroup(group: IGroup$1): void;
428
443
  closeGroup(group: IGroup$1): void;
429
- openInnerEditor(target?: IUI$1, select?: boolean): void;
430
- closeInnerEditor(): void;
444
+ openInnerEditor(target?: IUI$1, nameOrSelect?: string | boolean, select?: boolean): void;
445
+ closeInnerEditor(onlyInnerEditor?: boolean): void;
431
446
  lock(): void;
432
447
  unlock(): void;
433
448
  toTop(): void;
@@ -450,6 +465,7 @@ interface IEditorConfig extends IObject$1 {
450
465
  keyEvent?: boolean;
451
466
  stroke?: IStroke$1;
452
467
  strokeWidth?: number;
468
+ spread?: IFourNumber$1;
453
469
  pointFill?: IFill$1;
454
470
  pointSize?: number;
455
471
  pointRadius?: number;
@@ -472,8 +488,9 @@ interface IEditorConfig extends IObject$1 {
472
488
  rotateCursor?: IImageCursor;
473
489
  skewCursor?: IImageCursor;
474
490
  around?: IAlign$1 | IUnitPointData$1;
475
- lockRatio?: boolean | 'corner';
491
+ rotateAround?: IAlign$1 | IUnitPointData$1;
476
492
  rotateGap?: number;
493
+ lockRatio?: boolean | 'corner';
477
494
  selector?: boolean;
478
495
  editBox?: boolean;
479
496
  hover?: boolean;
@@ -484,10 +501,10 @@ interface IEditorConfig extends IObject$1 {
484
501
  boxSelect?: boolean;
485
502
  continuousSelect?: boolean;
486
503
  openInner?: 'double' | 'long';
487
- moveable?: boolean | 'move';
488
- resizeable?: boolean | 'zoom';
504
+ moveable?: boolean | 'gesture' | 'move';
505
+ resizeable?: boolean | 'gesture' | 'zoom';
489
506
  flipable?: boolean;
490
- rotateable?: boolean | 'rotate';
507
+ rotateable?: boolean | 'gesture' | 'rotate';
491
508
  skewable?: boolean;
492
509
  beforeSelect?: IEditorBeforeSelect;
493
510
  beforeMove?: IEditorBeforeMove;
@@ -544,7 +561,11 @@ type IEditPointType = 'resize' | 'rotate' | 'skew' | 'resize-rotate' | 'button';
544
561
  interface IEditBoxBase extends IGroup$1 {
545
562
  editor: IEditorBase;
546
563
  dragging: boolean;
564
+ gesturing: boolean;
547
565
  moving: boolean;
566
+ resizing: boolean;
567
+ rotating: boolean;
568
+ skewing: boolean;
548
569
  view: IGroup$1;
549
570
  circle: IEditPoint;
550
571
  rect: IRect$1;
@@ -565,6 +586,8 @@ interface IEditBoxBase extends IGroup$1 {
565
586
  readonly flippedX: boolean;
566
587
  readonly flippedY: boolean;
567
588
  readonly flippedOne: boolean;
589
+ readonly canUse: boolean;
590
+ readonly canGesture: boolean;
568
591
  getPointStyle(userStyle?: IBoxInputData$1): IBoxInputData$1;
569
592
  getPointsStyle(): IBoxInputData$1[];
570
593
  getMiddlePointsStyle(): IBoxInputData$1[];
@@ -851,6 +874,8 @@ interface IFrameInputData extends IBoxInputData {
851
874
  }
852
875
  interface IBox extends IBoxAttrData, IGroup {
853
876
  __: IBoxData;
877
+ scrollBar?: IGroup;
878
+ __updateScrollBar(): void;
854
879
  __updateRectRenderBounds(): void;
855
880
  __renderGroup(canvas: ILeaferCanvas, options: IRenderOptions): void;
856
881
  }
@@ -866,6 +891,7 @@ interface IBoxInputData extends IBoxAttrData, IGroupInputData {
866
891
  interface IGroup extends IUI {
867
892
  __: IGroupData;
868
893
  children: IUI[];
894
+ childlessJSON?: boolean;
869
895
  pick(hitPoint: IPointData, options?: IPickOptions): IPickResult;
870
896
  add(child: IUI | IUI[] | IUIInputData | IUIInputData[], index?: number): void;
871
897
  addAt(child: IUI | IUI[] | IUIInputData | IUIInputData[], index: number): void;
@@ -953,6 +979,9 @@ interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
953
979
  __isFills?: boolean;
954
980
  __isStrokes?: boolean;
955
981
  readonly __strokeWidth: number;
982
+ readonly __maxStrokeWidth: number;
983
+ __hasMultiStrokeStyle?: number;
984
+ readonly __hasMultiPaint?: boolean;
956
985
  __isAlphaPixelFill?: boolean;
957
986
  __isAlphaPixelStroke?: boolean;
958
987
  __isTransparentFill?: boolean;
@@ -970,6 +999,7 @@ interface IUIData extends IUIAttrData, IUIComputedData, ILeafData {
970
999
  __textDrawData?: ITextDrawData;
971
1000
  __needComputePaint?: boolean;
972
1001
  __computePaint(): void;
1002
+ __getRealStrokeWidth(childStyle?: IStrokeComputedStyle): number;
973
1003
  __setPaint(attrName: 'fill' | 'stroke', value: IValue): void;
974
1004
  __removePaint(attrName: 'fill' | 'stroke', removeInput?: boolean): void;
975
1005
  }
@@ -1127,7 +1157,7 @@ interface IPaintImageModule {
1127
1157
  createData(leafPaint: ILeafPaint, image: ILeaferImage, paint: IImagePaint, box: IBoundsData): void;
1128
1158
  getPatternData(paint: IImagePaint, box: IBoundsData, image: ILeaferImage): ILeafPaintPatternData;
1129
1159
  fillOrFitMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number): void;
1130
- clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData): void;
1160
+ clipMode(data: ILeafPaintPatternData, box: IBoundsData, x: number, y: number, scaleX: number, scaleY: number, rotation: number, skew: IPointData, clipSize?: ISizeData): void;
1131
1161
  repeatMode(data: ILeafPaintPatternData, box: IBoundsData, width: number, height: number, x: number, y: number, scaleX: number, scaleY: number, rotation: number, around: IAround): void;
1132
1162
  }
1133
1163
  interface IPaintGradientModule {
@@ -1161,4 +1191,4 @@ interface IFilterFunction {
1161
1191
  (filter: IFilter, ui: IUI, bounds: IMatrixWithBoundsScaleData, currentCanvas: ILeaferCanvas, originCanvas: ILeaferCanvas, shape: ICachedShape): void;
1162
1192
  }
1163
1193
 
1164
- export type { IAnimate, IAnimateKeyframe, IAnimateList, IAnimateType, IAnimation, IApp, IAppConfig, IAppData, IAppForEachFunction, IAppInputData, IArrow, IArrowData, IArrowInputData, IArrowType, IBackgroundBoxStyle, IBlurEffect, IBox, IBoxData, IBoxInputData, ICachedShape, ICanvas, ICanvasData, ICanvasInputData, IColor, IColorConvertModule, IColorStop, IColorString, IComputedKeyframe, ICornerRadiusString, IDashPatternString, IEditBoxBase, IEditPoint, IEditPointInputData, IEditPointType, IEditToolFunction, IEditorBase, IEditorBeforeMove, IEditorBeforeRotate, IEditorBeforeScale, IEditorBeforeSelect, IEditorBeforeSkew, IEditorConfig, IEditorConfigFunction, IEditorDragStartData, 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, IShadowEffect, IShadowString, ISolidPaint, IStar, IStarData, IStarInputData, IStateModule, IStateName, IStateStyle, IStates, IStroke, IStrokeAlign, IStrokeAttrData, IStrokeCap, IStrokeComputedData, IStrokeInputData, IStrokeJoin, IStrokeWidthString, IStyleAnimation, IText, ITextAlign, ITextCase, ITextCharData, ITextConvertModule, ITextData, ITextDecoration, ITextDecorationData, ITextDecorationType, ITextDrawData, ITextInputData, 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 };
1194
+ export type { IAnimate, IAnimateKeyframe, IAnimateList, IAnimateType, IAnimation, IApp, IAppConfig, IAppData, IAppForEachFunction, IAppInputData, IArrow, IArrowData, IArrowInputData, IArrowType, IBackgroundBoxStyle, IBlurEffect, IBox, IBoxData, IBoxInputData, ICachedShape, ICanvas, ICanvasData, ICanvasInputData, IColor, IColorConvertModule, IColorStop, IColorString, IComputedKeyframe, ICornerRadiusString, IDashPatternString, IEditBoxBase, IEditPoint, IEditPointInputData, IEditPointType, IEditToolFunction, IEditorBase, IEditorBeforeMove, IEditorBeforeRotate, IEditorBeforeScale, IEditorBeforeSelect, IEditorBeforeSkew, IEditorConfig, IEditorConfigFunction, IEditorDragStartData, 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, 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, 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 };