@leafer-ui/paint 1.6.0 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-ui/paint",
3
- "version": "1.6.0",
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.0",
26
- "@leafer-ui/draw": "1.6.0"
25
+ "@leafer/core": "1.6.2",
26
+ "@leafer-ui/draw": "1.6.2"
27
27
  },
28
28
  "devDependencies": {
29
- "@leafer/interface": "1.6.0",
30
- "@leafer-ui/interface": "1.6.0"
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
- ui.__.__font ? fillText(ui, canvas) : (ui.__.windingRule ? canvas.fill(ui.__.windingRule) : canvas.fill())
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 && PaintImage.checkImage(ui, canvas, item, !__font)) continue
20
+ if (item.image) {
22
21
 
23
- if (item.style) {
22
+ if (PaintImage.checkImage(ui, canvas, item, !ui.__.__font)) continue
24
23
 
25
- canvas.fillStyle = item.style
24
+ if (!item.style) {
25
+ if (!i && item.image.isPlacehold) ui.drawImagePlaceholder(canvas, item.image) // 图片加载中或加载失败
26
+ continue
27
+ }
26
28
 
27
- if (item.transform) {
28
- canvas.save()
29
+ }
29
30
 
30
- canvas.transform(item.transform)
31
+ canvas.fillStyle = item.style
31
32
 
32
- if (item.blendMode) canvas.blendMode = item.blendMode
33
+ if (item.transform) {
33
34
 
34
- __font ? fillText(ui, canvas) : (windingRule ? canvas.fill(windingRule) : canvas.fill())
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
- canvas.restore()
37
- } else {
38
- if (item.blendMode) {
39
- canvas.saveBlendMode(item.blendMode)
41
+ } else {
40
42
 
41
- __font ? fillText(ui, canvas) : (windingRule ? canvas.fill(windingRule) : canvas.fill())
43
+ if (item.blendMode) {
42
44
 
43
- canvas.restoreBlendMode()
44
- } else {
45
+ canvas.saveBlendMode(item.blendMode)
46
+ fillPathOrText(ui, canvas)
47
+ canvas.restoreBlendMode()
45
48
 
46
- __font ? fillText(ui, canvas) : (windingRule ? canvas.fill(windingRule) : canvas.fill())
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 { IUI, ITextRowData } from '@leafer-ui/interface'
3
+ import { ITextRowData, IText } from '@leafer-ui/interface'
4
4
 
5
5
 
6
- export function fillText(ui: IUI, canvas: ILeaferCanvas): void {
6
+ export function fillText(ui: IText, canvas: ILeaferCanvas): void {
7
7
 
8
- let row: ITextRowData, data = ui.__.__textDrawData
9
- const { rows, decorationY } = data
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,