@leafer-ui/interface 1.0.0-beta.11 → 1.0.0-beta.15

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.
@@ -1,148 +0,0 @@
1
- import { IPaint, IStrokeAlign, IStrokeCap, IStrokeJoin, IBlurEffect, IFontWeight, ITextCase, ITextDecoration, IShadowEffect, IGrayscaleEffect, ITextAlign, IVerticalAlign, IOverflow, IUnitData } from './type/IType'
2
- import { ILeafStrokePaint, ILeafShadowEffect, ILeafPaint } from './type/IComputedType'
3
- import { IPaintString, IDashPatternString, IShadowString, IColorString, IStrokeWidthString, ICornerRadiusString } from './type/IStringType'
4
-
5
- // corner---
6
- export interface ICornerRadiusAttrData {
7
- cornerRadius: number | number[] | ICornerRadiusString
8
- cornerSmoothing: number
9
- }
10
- export interface ICornerRadiusInputData {
11
- cornerRadius?: number | number[] | ICornerRadiusString
12
- cornerSmoothing?: number
13
- }
14
- export interface ICornerRadiusComputedData {
15
- cornerRadius?: number
16
- cornerSmoothing?: number
17
- }
18
-
19
- // fill---
20
- export interface IFillAttrData {
21
- fill: IPaint | IPaint[] | IPaintString
22
- }
23
- export interface IFillInputData {
24
- fill?: IPaint | IPaint[] | IPaintString
25
- }
26
- export interface IFillComputedData {
27
- fill?: IColorString | ILeafPaint[]
28
- }
29
-
30
- // border
31
- export interface IBorderComputedData {
32
- borderWidth?: number | number[]
33
- borderRadius?: number | number[]
34
- }
35
-
36
- // stroke---
37
- export interface IStrokeAttrData {
38
- stroke: IPaint | IPaint[] | IPaintString
39
-
40
- strokeAlign: IStrokeAlign
41
- strokeWidth: number | number[] | IStrokeWidthString
42
- strokeCap: IStrokeCap
43
- strokeJoin: IStrokeJoin
44
- dashPattern: number[] | IDashPatternString
45
- dashOffset: number
46
- miterLimit: number
47
- }
48
- export interface IStrokeInputData {
49
- stroke?: IPaint | IPaint[] | IPaintString
50
-
51
- strokeAlign?: IStrokeAlign
52
- strokeWidth?: number | number[] | IStrokeWidthString
53
- strokeCap?: IStrokeCap
54
- strokeJoin?: IStrokeJoin
55
- dashPattern?: number[] | IDashPatternString
56
- dashOffset?: number
57
- miterLimit?: number
58
- }
59
- export interface IStrokeComputedData {
60
- stroke?: IColorString | ILeafStrokePaint[]
61
-
62
- strokeAlign?: IStrokeAlign
63
- strokeWidth?: number
64
- strokeWidths?: number[]
65
- strokeCap?: IStrokeCap
66
- strokeJoin?: IStrokeJoin
67
- dashPattern?: number[]
68
- dashOffset?: number
69
- miterLimit?: number
70
- }
71
-
72
- // text---
73
- export interface ITextStyleAttrData {
74
- fontFamily: string
75
- fontSize: number
76
- fontWeight: IFontWeight
77
- italic: boolean
78
- textCase: ITextCase
79
- textDecoration: ITextDecoration
80
- letterSpacing: number | IUnitData
81
- lineHeight: number | IUnitData
82
-
83
- paraIndent: number
84
- paraSpacing: number
85
-
86
- textAlign: ITextAlign
87
- verticalAlign: IVerticalAlign
88
-
89
- textOverflow: IOverflow | string
90
- }
91
- export interface ITextStyleInputData {
92
- fontFamily?: string
93
- fontSize?: number
94
- fontWeight?: IFontWeight
95
- italic?: boolean
96
- textCase?: ITextCase
97
- textDecoration?: ITextDecoration
98
- letterSpacing?: number | IUnitData
99
- lineHeight?: number | IUnitData
100
-
101
- paraIndent?: number
102
- paraSpacing?: number
103
-
104
- textAlign?: ITextAlign
105
- verticalAlign?: IVerticalAlign
106
-
107
- textOverflow?: IOverflow | string
108
- }
109
- export interface ITextStyleComputedData {
110
- fontFamily?: string
111
- fontSize?: number
112
- fontWeight?: IFontWeight
113
- italic?: boolean
114
- textCase?: ITextCase
115
- textDecoration?: ITextDecoration
116
- letterSpacing?: number
117
- lineHeight?: number
118
-
119
- paraIndent?: number
120
- paraSpacing?: number
121
-
122
- textAlign?: ITextAlign
123
- verticalAlign?: IVerticalAlign
124
- textOverflow?: IOverflow
125
- }
126
-
127
- // effect---
128
- export interface IEffectAttrData {
129
- shadow: IShadowEffect | IShadowEffect[] | IShadowString
130
- innerShadow: IShadowEffect | IShadowEffect[] | IShadowString
131
- blur: number | IBlurEffect
132
- backgroundBlur: number | IBlurEffect
133
- grayscale: number | IGrayscaleEffect
134
- }
135
- export interface IEffectInputData {
136
- shadow?: IShadowEffect | IShadowEffect[] | IShadowString
137
- innerShadow?: IShadowEffect | IShadowEffect[] | IShadowString
138
- blur?: number | IBlurEffect
139
- backgroundBlur?: number | IBlurEffect
140
- grayscale?: number | IGrayscaleEffect
141
- }
142
- export interface IEffectComputedData {
143
- shadow?: ILeafShadowEffect[]
144
- innerShadow?: ILeafShadowEffect[]
145
- blur?: number
146
- backgroundBlur?: number
147
- grayscale?: number
148
- }
package/src/IUI.ts DELETED
@@ -1,337 +0,0 @@
1
- import { ILeaf, ILeafComputedData, ILeafData, ILeafInputData, ILeaferCanvas, IRenderOptions, IPathDrawer, IPointData, IPath2D, IPathCommandData, IWindingRule, ILeaferImageConfig, IBoundsData, IObject, __Number, IPathString, ILeaferImage, IBlob, IBooleanMap } from '@leafer/interface'
2
-
3
- import {
4
- IFillAttrData, IFillInputData, IFillComputedData,
5
- IBorderComputedData,
6
- ICornerRadiusAttrData, ICornerRadiusInputData, ICornerRadiusComputedData,
7
- IStrokeAttrData, IStrokeComputedData, IStrokeInputData,
8
- IEffectAttrData, IEffectInputData, IEffectComputedData,
9
- ITextStyleAttrData, ITextStyleInputData, ITextStyleComputedData
10
- } from './ICommonAttr'
11
- import { IOverflow } from './type/IType'
12
- import { IExportOptions } from './module/IExport'
13
-
14
-
15
- // Line
16
- export interface ILine extends IUI {
17
- __: ILineData
18
- toPoint: IPointData
19
- }
20
- export interface ILineData extends IUIData { }
21
- export interface ILineInputData extends IUIInputData {
22
- toPoint?: IPointData
23
- }
24
-
25
-
26
- // Rect
27
- export interface IRect extends IUI {
28
- __: IRectData
29
- }
30
- export interface IRectData extends IUIData { }
31
- export interface IRectInputData extends IUIInputData { }
32
-
33
-
34
- // Ellipse
35
- export interface IEllipse extends IUI {
36
- __: IEllipseData
37
- startAngle: number
38
- endAngle: number
39
- innerRadius: number
40
- }
41
- interface IEllipseAttrData {
42
- startAngle?: number
43
- endAngle?: number
44
- innerRadius?: number
45
- }
46
- export interface IEllipseData extends IEllipseAttrData, IUIData { }
47
- export interface IEllipseInputData extends IEllipseAttrData, IUIInputData { }
48
-
49
-
50
- // Polygon
51
- export interface IPolygon extends IUI {
52
- __: IPolygonData
53
- sides: number
54
- }
55
- interface IPolygonAttrData {
56
- sides?: number
57
- }
58
- export interface IPolygonData extends IPolygonAttrData, IUIData { }
59
- export interface IPolygonInputData extends IPolygonAttrData, IUIInputData { }
60
-
61
-
62
- // Star
63
- export interface IStar extends IUI {
64
- __: IStarData
65
- points: number
66
- innerRadius: number
67
- }
68
- interface IStarAttrData {
69
- points?: number
70
- innerRadius?: number
71
- }
72
-
73
- export interface IStarData extends IStarAttrData, IUIData { }
74
- export interface IStarInputData extends IStarAttrData, IUIInputData { }
75
-
76
- // Path
77
- export interface IPath extends IUI {
78
- __: IPathData
79
- path: IPathCommandData | IPathString
80
- windingRule: IWindingRule
81
- }
82
- export interface IPathData extends IUIData {
83
- path?: IPathCommandData
84
- windingRule?: IWindingRule
85
- }
86
- export interface IPathInputData extends IUIInputData {
87
- path?: IPathCommandData | IPathString
88
- windingRule?: IWindingRule
89
- }
90
-
91
- // Pen
92
-
93
- export interface IPen extends IGroup {
94
- __: IPenData
95
- path: IPath
96
- pathStyle: IPathInputData
97
- pathData: IPathCommandData
98
-
99
- moveTo(x: number, y: number): IPen
100
- lineTo(x: number, y: number): IPen
101
- bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x: number, y: number): IPen
102
- quadraticCurveTo(x1: number, y1: number, x: number, y: number): IPen
103
-
104
- rect(x: number, y: number, width: number, height: number): IPen
105
- roundRect(x: number, y: number, width: number, height: number, cornerRadius: number | number[]): IPen
106
- ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation?: number, startAngle?: number, endAngle?: number, anticlockwise?: boolean): IPen
107
- arc(x: number, y: number, radius: number, startAngle?: number, endAngle?: number, anticlockwise?: boolean): IPen
108
- arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): IPen
109
-
110
- close(): IPen
111
- clear(): IPen
112
-
113
- paint(): void
114
- }
115
-
116
- export interface IPenData extends IGroupData { }
117
- export interface IPenInputData extends IGroupInputData { }
118
-
119
-
120
- // Text
121
- export interface IText extends ITextStyleAttrData, IUI {
122
- __: ITextData
123
- text: string
124
- }
125
- interface ITextAttrData {
126
- text?: string
127
- }
128
-
129
- export interface ITextData extends ITextAttrData, ITextStyleComputedData, IUIData {
130
- __baseLine?: number
131
- __lineHeight?: number
132
- __letterSpacing?: number
133
- }
134
- export interface ITextInputData extends ITextAttrData, ITextStyleInputData, IUIInputData {
135
-
136
- }
137
-
138
- export interface ITextRowData {
139
- x?: number
140
- y?: number
141
- width?: number
142
- height?: number
143
- text?: string
144
- data?: ITextCharData[]
145
- words?: ITextWordData[]
146
-
147
- paraStart?: boolean // paragraph start
148
- paraEnd?: boolean // paragraph end
149
- isOverflow?: boolean
150
- }
151
-
152
- export interface ITextWordData {
153
- x?: number
154
- y?: number
155
- width?: number
156
- height?: number
157
- data?: ITextCharData[]
158
- }
159
-
160
- export interface ITextCharData {
161
- x?: number
162
- y?: number
163
- width?: number
164
- height?: number
165
- char?: string
166
- }
167
-
168
- export interface ITextDrawData {
169
- bounds: IBoundsData
170
- rows: ITextRowData[]
171
- paraNumber: number
172
- font: string
173
- decorationY?: number
174
- decorationHeight?: number
175
- overflow?: number // overflowed row number, not index
176
- }
177
-
178
- // Image
179
- export interface IImage extends IRect, ILeaferImageConfig {
180
- __: IImageData
181
- url: string
182
- ready: boolean
183
- image?: ILeaferImage
184
- }
185
- interface IImageAttrData {
186
- url?: string
187
- }
188
- export interface IImageData extends IImageAttrData, IRectData { }
189
- export interface IImageInputData extends IImageAttrData, IUIInputData { }
190
-
191
- export interface ICanvas extends IRect {
192
- __: ICanvasData
193
- pixelRatio: number
194
- smooth: boolean
195
- canvas: ILeaferCanvas
196
- __updateSize(): void
197
- }
198
- interface ICanvasAttrData {
199
- pixelRatio?: number
200
- smooth?: boolean
201
- }
202
- export interface ICanvasData extends ICanvasAttrData, IRectData { }
203
- export interface ICanvasInputData extends ICanvasAttrData, IUIInputData { }
204
-
205
-
206
- // Leafer
207
- export interface ILeaferData extends IGroupData {
208
- pixelRatio?: number
209
- }
210
-
211
- export interface ILeaferInputData extends IGroupInputData {
212
- pixelRatio?: number
213
- }
214
-
215
-
216
- // Frame
217
- export interface IFrame extends IBox {
218
- __: IFrameData
219
- }
220
- export interface IFrameData extends IBoxData {
221
-
222
- }
223
- export interface IFrameInputData extends IBoxInputData {
224
-
225
- }
226
-
227
-
228
- // Box
229
- export interface IBox extends IGroup {
230
- __: IBoxData
231
- overflow: IOverflow
232
- __updateRectRenderBounds(): void
233
- __renderGroup(canvas: ILeaferCanvas, options: IRenderOptions): void
234
- }
235
- export interface IBoxData extends IGroupData {
236
- overflow?: IOverflow
237
- }
238
- export interface IBoxInputData extends IGroupInputData {
239
- overflow?: IOverflow
240
- }
241
-
242
-
243
- // Group
244
- export interface IGroup extends IUI {
245
- __: IGroupData
246
- children: IUI[]
247
- mask?: IUI
248
- add(child: IUI, index?: number): void
249
- addAt(child: IUI, index: number): void
250
- addAfter(child: IUI, after: IUI): void
251
- addBefore(child: IUI, before: IUI): void
252
- remove(child?: IUI): void
253
- removeAll(): void
254
- }
255
- export interface IGroupData extends IUIData { }
256
- export interface IGroupInputData extends IUIInputData { }
257
-
258
- // UI
259
- export interface IUI extends IFillAttrData, IStrokeAttrData, ICornerRadiusAttrData, IEffectAttrData, ILeaf {
260
- __: IUIData
261
- parent?: IGroup
262
-
263
- set(data: IUITagInputData): void
264
- get(): IUITagInputData
265
-
266
- getPath(curve?: boolean): IPathCommandData
267
- getPathString(curve?: boolean): IPathString
268
-
269
- __drawPathByData(drawer: IPathDrawer, data: IPathCommandData): void
270
- __drawAfterFill?(canvas: ILeaferCanvas, options: IRenderOptions): void
271
-
272
- export(filename: string, options?: IExportOptions | number): Promise<IBlob | string | boolean>
273
- }
274
-
275
- export interface IUIData extends IUIComputedData, ILeafData {
276
-
277
- padding?: number | number[]
278
- locked?: boolean
279
-
280
- // 非数据属性, 自动计算的缓存数据
281
- __isFills?: boolean
282
- __isStrokes?: boolean
283
- __drawAfterFill?: boolean
284
- __isOverflow?: boolean
285
- __blendLayer?: boolean
286
-
287
- __isTranslucentFill?: boolean // 半透明的
288
- __isTranslucentStroke?: boolean
289
-
290
- __useEffect?: boolean
291
-
292
- // path
293
- path?: IPathCommandData
294
- windingRule?: IWindingRule
295
-
296
- __pathForRender?: IPathCommandData
297
- __path2DForRender?: IPath2D
298
-
299
- __boxStroke?: boolean
300
-
301
- // text
302
- __font?: string
303
- __textDrawData?: ITextDrawData
304
-
305
- __recycleImage(attrName: string): IBooleanMap
306
-
307
- }
308
- export interface IUIComputedData extends IFillComputedData, IBorderComputedData, IStrokeComputedData, ITextStyleComputedData, ICornerRadiusComputedData, IEffectComputedData, ILeafComputedData {
309
- padding?: number | number[]
310
- locked?: boolean
311
- }
312
-
313
- export interface IUIInputData extends IFillInputData, IStrokeInputData, ITextStyleInputData, ICornerRadiusInputData, IEffectInputData, ILeafInputData {
314
- padding?: number | number[]
315
- locked?: boolean
316
- }
317
-
318
-
319
- export type IUITag =
320
- | 'Rect'
321
- | 'Ellipse'
322
- | 'Polygon'
323
- | 'Star'
324
- | 'Line'
325
- | 'Path'
326
- | 'Pen'
327
- | 'Text'
328
- | 'Image'
329
- | 'Canvas'
330
- | 'Group'
331
- | 'Frame'
332
- | 'Box'
333
-
334
-
335
- export interface IUITagInputData extends IRectInputData, IEllipseInputData, IPolygonInputData, IStarInputData, ILineInputData, IPathInputData, ITextInputData, IImageInputData, IGroupInputData, IFrameInputData, IObject {
336
- tagName?: IUITag
337
- }
@@ -1,12 +0,0 @@
1
- import { ILeaferCanvas, IRenderOptions } from '@leafer/interface'
2
-
3
- import { IUI } from '../IUI'
4
- import { ICachedShape } from '../ICachedShape'
5
-
6
-
7
- export interface IEffectModule {
8
- shadow?(ui: IUI, current: ILeaferCanvas, shape: ICachedShape, options: IRenderOptions): void
9
- innerShadow?(ui: IUI, current: ILeaferCanvas, shape: ICachedShape, options: IRenderOptions): void
10
- blur?(ui: IUI, current: ILeaferCanvas, origin: ILeaferCanvas, options: IRenderOptions): void
11
- backgroundBlur?(ui: IUI, current: ILeaferCanvas, shape: ICachedShape, options: IRenderOptions): void
12
- }
@@ -1,19 +0,0 @@
1
- import { ILeaf, IExportFileType, IBlob } from '@leafer/interface'
2
-
3
- export interface IExportOptions {
4
- quality?: number
5
- blob?: boolean
6
- }
7
-
8
- export interface IExportResult {
9
- data: IBlob | string | boolean
10
- }
11
-
12
- export interface IExportResultFunction {
13
- (data: IExportResult): void
14
- }
15
-
16
-
17
- export interface IExportModule {
18
- export(leaf: ILeaf, filename: IExportFileType | string, options?: IExportOptions | number | boolean): Promise<IExportResult>
19
- }
@@ -1,24 +0,0 @@
1
- import { ILeaferCanvas, IRenderOptions } from '@leafer/interface'
2
-
3
- import { ILeafPaint } from '../type/IComputedType'
4
- import { IUI } from '../IUI'
5
- import { ICachedShape } from '../ICachedShape'
6
-
7
- export interface IPaintModule {
8
- compute?(ui: IUI, attrName: 'fill' | 'stroke'): void
9
-
10
- fill?(ui: IUI, canvas: ILeaferCanvas, fill: string): void
11
- fills?(ui: IUI, canvas: ILeaferCanvas, fills: ILeafPaint[]): void
12
-
13
- fillText?(ui: IUI, canvas: ILeaferCanvas): void
14
-
15
- stroke?(ui: IUI, canvas: ILeaferCanvas, stroke: string): void
16
- strokes?(ui: IUI, canvas: ILeaferCanvas, strokes: ILeafPaint[]): void
17
-
18
- strokeText?(ui: IUI, canvas: ILeaferCanvas, stroke: string): void
19
- strokesText?(ui: IUI, canvas: ILeaferCanvas, strokes: ILeafPaint[]): void
20
-
21
- drawTextStroke?(ui: IUI, canvas: ILeaferCanvas): void
22
-
23
- shape?(ui: IUI, current: ILeaferCanvas, options: IRenderOptions): ICachedShape
24
- }
@@ -1,8 +0,0 @@
1
- import { ILeafBounds } from '@leafer/interface'
2
-
3
- import { IUI } from '../IUI'
4
-
5
- export type IUIBoundsModule = IUIBounds & ThisType<IUI>
6
-
7
- interface IUIBounds extends ILeafBounds {
8
- }
@@ -1,5 +0,0 @@
1
- import { ILeafHit } from '@leafer/interface'
2
-
3
- import { IUI } from '../IUI'
4
-
5
- export type IUIHitModule = ILeafHit & ThisType<IUI>
@@ -1,40 +0,0 @@
1
- import { ILeafRender, ILeaferCanvas, IRenderOptions } from '@leafer/interface'
2
-
3
- import { IUI, IRect, IImage, IText, IFrame, IGroup } from '../IUI'
4
-
5
- export type IUIRenderModule = IUIRender & ThisType<IUI>
6
-
7
- export interface IUIRender extends ILeafRender {
8
- __drawAfterFill?(canvas: ILeaferCanvas, options: IRenderOptions): void
9
- }
10
-
11
- export type IRectRenderModule = IRectRender & ThisType<IRect>
12
-
13
- export interface IRectRender extends IUIRender {
14
-
15
- }
16
-
17
- export type IImageRenderModule = IImageRender & ThisType<IImage>
18
-
19
- export interface IImageRender extends IUIRender {
20
-
21
- }
22
-
23
- export type ITextRenderModule = ITextRender & ThisType<IText>
24
-
25
- export interface ITextRender extends IUIRender {
26
-
27
- }
28
-
29
- export type IGroupRenderModule = IGroupRender & ThisType<IGroup>
30
-
31
- export interface IGroupRender extends IUIRender {
32
-
33
- }
34
-
35
- export type IFrameRenderModule = IFrameRender & ThisType<IFrame>
36
-
37
- export interface IFrameRender extends IGroupRender {
38
-
39
- }
40
-
@@ -1,50 +0,0 @@
1
- import { IBlendMode, ILeaferImage, IMatrixData } from '@leafer/interface'
2
-
3
- import { IColorString } from './IStringType'
4
- import { IStrokeAlign, IStrokeJoin, IStrokeCap, IImagePaintMode } from './IType'
5
- import { IPaintType } from './IType'
6
-
7
- export type ILeafPaintColor = IColorString | CanvasGradient | CanvasPattern
8
-
9
- export interface ILeafPaint {
10
- type?: IPaintType
11
- style?: ILeafPaintColor
12
- transform?: IMatrixData
13
- blendMode?: IBlendMode
14
- opacity?: number
15
- image?: ILeaferImage
16
- loadId?: number
17
- patternId?: number
18
- data?: ILeafPaintPatternData
19
- }
20
-
21
- export interface ILeafPaintPatternData {
22
- width?: number
23
- height?: number
24
- scaleX?: number
25
- scaleY?: number
26
- opacity?: number
27
- transform?: IMatrixData
28
- mode?: IImagePaintMode
29
- }
30
-
31
- export type ILeafFill = ILeafPaint
32
-
33
- export interface ILeafStrokePaint extends ILeafPaint {
34
- strokeAlign?: IStrokeAlign
35
- strokeWidth?: number
36
- strokeCap?: IStrokeCap
37
- strokeJoin?: IStrokeJoin
38
- dashPattern?: number[]
39
- miterLimit?: number
40
- }
41
-
42
- export interface ILeafShadowEffect {
43
- x: number
44
- y: number
45
- blur: number
46
- spread?: number
47
- color: IColorString
48
- blendMode?: IBlendMode
49
- box?: boolean
50
- }
@@ -1,13 +0,0 @@
1
- export type IPercent = string
2
- export type IColorString = string
3
-
4
- export type ICornerRadiusString = string
5
- export type IStrokeWidthString = string
6
- export type IDashPatternString = string
7
-
8
- export type IPaintString = ISolidPaintString | IGradientPaintString | IImagePaintString
9
- export type ISolidPaintString = string
10
- export type IGradientPaintString = string
11
- export type IImagePaintString = string
12
-
13
- export type IShadowString = string