@leafer-ui/paint 1.6.1 → 1.6.2
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 +5 -5
- package/src/Fill.ts +26 -20
- package/src/FillText.ts +7 -5
- package/src/index.ts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leafer-ui/paint",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "@leafer-ui/paint",
|
|
5
5
|
"author": "Chao (Leafer) Wan",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"leaferjs"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@leafer/core": "1.6.
|
|
26
|
-
"@leafer-ui/draw": "1.6.
|
|
25
|
+
"@leafer/core": "1.6.2",
|
|
26
|
+
"@leafer-ui/draw": "1.6.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@leafer/interface": "1.6.
|
|
30
|
-
"@leafer-ui/interface": "1.6.
|
|
29
|
+
"@leafer/interface": "1.6.2",
|
|
30
|
+
"@leafer-ui/interface": "1.6.2"
|
|
31
31
|
}
|
|
32
32
|
}
|
package/src/Fill.ts
CHANGED
|
@@ -8,46 +8,52 @@ import { fillText } from './FillText'
|
|
|
8
8
|
|
|
9
9
|
export function fill(fill: string, ui: IUI, canvas: ILeaferCanvas): void {
|
|
10
10
|
canvas.fillStyle = fill
|
|
11
|
-
|
|
11
|
+
fillPathOrText(ui, canvas)
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
export function fills(fills: ILeafPaint[], ui: IUI, canvas: ILeaferCanvas): void {
|
|
16
16
|
let item: ILeafPaint
|
|
17
|
-
const { windingRule, __font } = ui.__
|
|
18
17
|
for (let i = 0, len = fills.length; i < len; i++) {
|
|
19
18
|
item = fills[i]
|
|
20
19
|
|
|
21
|
-
if (item.image
|
|
20
|
+
if (item.image) {
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
if (PaintImage.checkImage(ui, canvas, item, !ui.__.__font)) continue
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
if (!item.style) {
|
|
25
|
+
if (!i && item.image.isPlacehold) ui.drawImagePlaceholder(canvas, item.image) // 图片加载中或加载失败
|
|
26
|
+
continue
|
|
27
|
+
}
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
canvas.save()
|
|
29
|
+
}
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
canvas.fillStyle = item.style
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
if (item.transform) {
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
canvas.save()
|
|
36
|
+
canvas.transform(item.transform)
|
|
37
|
+
if (item.blendMode) canvas.blendMode = item.blendMode
|
|
38
|
+
fillPathOrText(ui, canvas)
|
|
39
|
+
canvas.restore()
|
|
35
40
|
|
|
36
|
-
|
|
37
|
-
} else {
|
|
38
|
-
if (item.blendMode) {
|
|
39
|
-
canvas.saveBlendMode(item.blendMode)
|
|
41
|
+
} else {
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
if (item.blendMode) {
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
canvas.saveBlendMode(item.blendMode)
|
|
46
|
+
fillPathOrText(ui, canvas)
|
|
47
|
+
canvas.restoreBlendMode()
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
} else fillPathOrText(ui, canvas)
|
|
47
50
|
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
export function fillPathOrText(ui: IUI, canvas: ILeaferCanvas): void {
|
|
58
|
+
ui.__.__font ? fillText(ui, canvas) : (ui.__.windingRule ? canvas.fill(ui.__.windingRule) : canvas.fill())
|
|
53
59
|
}
|
package/src/FillText.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ILeaferCanvas } from '@leafer/interface'
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { ITextRowData, IText } from '@leafer-ui/interface'
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
export function fillText(ui:
|
|
6
|
+
export function fillText(ui: IText, canvas: ILeaferCanvas): void {
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const data = ui.__, { rows, decorationY } = data.__textDrawData
|
|
9
|
+
if (data.__isPlacehold && data.placeholderColor) canvas.fillStyle = data.placeholderColor
|
|
10
|
+
|
|
11
|
+
let row: ITextRowData
|
|
10
12
|
|
|
11
13
|
for (let i = 0, len = rows.length; i < len; i++) {
|
|
12
14
|
row = rows[i]
|
|
@@ -16,7 +18,7 @@ export function fillText(ui: IUI, canvas: ILeaferCanvas): void {
|
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
if (decorationY) {
|
|
19
|
-
const { decorationColor, decorationHeight } = data
|
|
21
|
+
const { decorationColor, decorationHeight } = data.__textDrawData
|
|
20
22
|
if (decorationColor) canvas.fillStyle = decorationColor
|
|
21
23
|
rows.forEach(row => decorationY.forEach(value => canvas.fillRect(row.x, row.y + value, row.width, decorationHeight)))
|
|
22
24
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IPaintModule } from '@leafer-ui/interface'
|
|
2
2
|
|
|
3
|
-
import { fill, fills } from './Fill'
|
|
3
|
+
import { fill, fills, fillPathOrText } from './Fill'
|
|
4
4
|
import { fillText } from './FillText'
|
|
5
5
|
import { stroke, strokes } from './Stroke'
|
|
6
6
|
import { strokeText, drawTextStroke } from './StrokeText'
|
|
@@ -12,6 +12,7 @@ export const PaintModule: IPaintModule = {
|
|
|
12
12
|
compute,
|
|
13
13
|
fill,
|
|
14
14
|
fills,
|
|
15
|
+
fillPathOrText,
|
|
15
16
|
fillText,
|
|
16
17
|
stroke,
|
|
17
18
|
strokes,
|