@idraw/renderer 0.4.0-beta.3 → 0.4.0-beta.5
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/dist/esm/draw/box.d.ts +2 -0
- package/dist/esm/draw/box.js +12 -21
- package/dist/esm/draw/circle.js +28 -12
- package/dist/esm/draw/elements.js +4 -1
- package/dist/esm/draw/group.js +6 -4
- package/dist/esm/draw/html.js +4 -4
- package/dist/esm/draw/image.js +5 -5
- package/dist/esm/draw/path.js +2 -1
- package/dist/esm/draw/rect.js +2 -1
- package/dist/esm/draw/svg.js +4 -4
- package/dist/esm/draw/text.js +2 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +7 -1
- package/dist/esm/loader.d.ts +4 -11
- package/dist/esm/loader.js +112 -99
- package/dist/index.global.js +189 -140
- package/dist/index.global.min.js +1 -1
- package/package.json +3 -3
package/dist/esm/draw/box.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ViewContext2D, Element, ElementType, ElementSize, ViewScaleInfo, ViewSizeInfo } from '@idraw/types';
|
|
2
|
+
export declare function getOpacity(elem: Element): number;
|
|
2
3
|
export declare function drawBox(ctx: ViewContext2D, viewElem: Element<ElementType>, opts: {
|
|
3
4
|
originElem: Element<ElementType>;
|
|
4
5
|
calcElemSize: ElementSize;
|
|
@@ -6,6 +7,7 @@ export declare function drawBox(ctx: ViewContext2D, viewElem: Element<ElementTyp
|
|
|
6
7
|
renderContent: () => void;
|
|
7
8
|
viewScaleInfo: ViewScaleInfo;
|
|
8
9
|
viewSizeInfo: ViewSizeInfo;
|
|
10
|
+
parentOpacity: number;
|
|
9
11
|
}): void;
|
|
10
12
|
export declare function drawBoxShadow(ctx: ViewContext2D, viewElem: Element<ElementType>, opts: {
|
|
11
13
|
viewScaleInfo: ViewScaleInfo;
|
package/dist/esm/draw/box.js
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
import { istype, isColorStr, generateSVGPath, rotateElement, is, getDefaultElementDetailConfig, calcViewBoxSize } from '@idraw/util';
|
|
2
2
|
import { createColorStyle } from './color';
|
|
3
3
|
const defaultElemConfig = getDefaultElementDetailConfig();
|
|
4
|
+
export function getOpacity(elem) {
|
|
5
|
+
var _a, _b, _c, _d;
|
|
6
|
+
let opacity = 1;
|
|
7
|
+
if (((_a = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _a === void 0 ? void 0 : _a.opacity) !== undefined && ((_b = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _b === void 0 ? void 0 : _b.opacity) >= 0 && ((_c = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _c === void 0 ? void 0 : _c.opacity) <= 1) {
|
|
8
|
+
opacity = (_d = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _d === void 0 ? void 0 : _d.opacity;
|
|
9
|
+
}
|
|
10
|
+
return opacity;
|
|
11
|
+
}
|
|
4
12
|
export function drawBox(ctx, viewElem, opts) {
|
|
5
13
|
const { pattern, renderContent, originElem, calcElemSize, viewScaleInfo, viewSizeInfo } = opts || {};
|
|
14
|
+
const { parentOpacity } = opts;
|
|
15
|
+
const opacity = getOpacity(originElem) * parentOpacity;
|
|
6
16
|
drawClipPath(ctx, viewElem, {
|
|
7
17
|
originElem,
|
|
8
18
|
calcElemSize,
|
|
9
19
|
viewScaleInfo,
|
|
10
20
|
viewSizeInfo,
|
|
11
21
|
renderContent: () => {
|
|
12
|
-
|
|
13
|
-
if (((_a = viewElem === null || viewElem === void 0 ? void 0 : viewElem.detail) === null || _a === void 0 ? void 0 : _a.opacity) !== undefined && ((_b = viewElem === null || viewElem === void 0 ? void 0 : viewElem.detail) === null || _b === void 0 ? void 0 : _b.opacity) >= 0) {
|
|
14
|
-
ctx.globalAlpha = viewElem.detail.opacity;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
ctx.globalAlpha = 1;
|
|
18
|
-
}
|
|
22
|
+
ctx.globalAlpha = opacity;
|
|
19
23
|
drawBoxBackground(ctx, viewElem, { pattern, viewScaleInfo, viewSizeInfo });
|
|
20
24
|
renderContent === null || renderContent === void 0 ? void 0 : renderContent();
|
|
21
25
|
drawBoxBorder(ctx, viewElem, { viewScaleInfo, viewSizeInfo });
|
|
22
|
-
ctx.globalAlpha =
|
|
26
|
+
ctx.globalAlpha = parentOpacity;
|
|
23
27
|
}
|
|
24
28
|
});
|
|
25
29
|
}
|
|
@@ -57,11 +61,6 @@ function drawBoxBackground(ctx, viewElem, opts) {
|
|
|
57
61
|
var _a, _b;
|
|
58
62
|
const { pattern, viewScaleInfo, viewSizeInfo } = opts;
|
|
59
63
|
const transform = [];
|
|
60
|
-
let { borderRadius } = viewElem.detail;
|
|
61
|
-
const { borderWidth } = viewElem.detail;
|
|
62
|
-
if (typeof borderWidth !== 'number') {
|
|
63
|
-
borderRadius = 0;
|
|
64
|
-
}
|
|
65
64
|
if (viewElem.detail.background || pattern) {
|
|
66
65
|
const { x, y, w, h, radiusList } = calcViewBoxSize(viewElem, {
|
|
67
66
|
viewScaleInfo,
|
|
@@ -120,19 +119,12 @@ function drawBoxBackground(ctx, viewElem, opts) {
|
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
function drawBoxBorder(ctx, viewElem, opts) {
|
|
123
|
-
var _a, _b;
|
|
124
122
|
if (viewElem.detail.borderWidth === 0) {
|
|
125
123
|
return;
|
|
126
124
|
}
|
|
127
125
|
if (!isColorStr(viewElem.detail.borderColor)) {
|
|
128
126
|
return;
|
|
129
127
|
}
|
|
130
|
-
if (((_a = viewElem === null || viewElem === void 0 ? void 0 : viewElem.detail) === null || _a === void 0 ? void 0 : _a.opacity) !== undefined && ((_b = viewElem === null || viewElem === void 0 ? void 0 : viewElem.detail) === null || _b === void 0 ? void 0 : _b.opacity) >= 0) {
|
|
131
|
-
ctx.globalAlpha = viewElem.detail.opacity;
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
ctx.globalAlpha = 1;
|
|
135
|
-
}
|
|
136
128
|
const { viewScaleInfo } = opts;
|
|
137
129
|
const { scale } = viewScaleInfo;
|
|
138
130
|
let borderColor = defaultElemConfig.borderColor;
|
|
@@ -263,7 +255,6 @@ function drawBoxBorder(ctx, viewElem, opts) {
|
|
|
263
255
|
ctx.arcTo(x, y, x + w, y, radiusList[0]);
|
|
264
256
|
ctx.closePath();
|
|
265
257
|
ctx.stroke();
|
|
266
|
-
ctx.globalAlpha = 1;
|
|
267
258
|
}
|
|
268
259
|
ctx.setLineDash([]);
|
|
269
260
|
}
|
package/dist/esm/draw/circle.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { rotateElement } from '@idraw/util';
|
|
2
2
|
import { createColorStyle } from './color';
|
|
3
|
-
import { drawBoxShadow } from './box';
|
|
3
|
+
import { drawBoxShadow, getOpacity } from './box';
|
|
4
4
|
export function drawCircle(ctx, elem, opts) {
|
|
5
5
|
const { detail, angle } = elem;
|
|
6
|
-
const { background = '#000000', borderColor = '#000000', borderWidth = 0 } = detail;
|
|
7
|
-
|
|
6
|
+
const { background = '#000000', borderColor = '#000000', boxSizing, borderWidth = 0 } = detail;
|
|
7
|
+
let bw = 0;
|
|
8
|
+
if (typeof borderWidth === 'number' && borderWidth > 0) {
|
|
9
|
+
bw = borderWidth;
|
|
10
|
+
}
|
|
11
|
+
else if (Array.isArray(borderWidth) && typeof borderWidth[0] === 'number' && borderWidth[0] > 0) {
|
|
12
|
+
bw = borderWidth[0];
|
|
13
|
+
}
|
|
14
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
8
15
|
const { x, y, w, h } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h }, viewScaleInfo, viewSizeInfo)) || elem;
|
|
9
16
|
const viewElem = Object.assign(Object.assign({}, elem), { x, y, w, h, angle });
|
|
10
17
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
@@ -12,17 +19,26 @@ export function drawCircle(ctx, elem, opts) {
|
|
|
12
19
|
viewScaleInfo,
|
|
13
20
|
viewSizeInfo,
|
|
14
21
|
renderContent: () => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const b = h / 2;
|
|
22
|
+
let a = w / 2;
|
|
23
|
+
let b = h / 2;
|
|
18
24
|
const centerX = x + a;
|
|
19
25
|
const centerY = y + b;
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
if (bw > 0) {
|
|
27
|
+
if (boxSizing === 'border-box') {
|
|
28
|
+
a = a - bw;
|
|
29
|
+
b = b - bw;
|
|
30
|
+
}
|
|
31
|
+
else if (boxSizing === 'center-line') {
|
|
32
|
+
a = a - bw / 2;
|
|
33
|
+
b = b - bw / 2;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
a = a - bw;
|
|
37
|
+
b = b - bw;
|
|
38
|
+
}
|
|
25
39
|
}
|
|
40
|
+
const opacity = getOpacity(viewElem) * parentOpacity;
|
|
41
|
+
ctx.globalAlpha = opacity;
|
|
26
42
|
if (typeof borderWidth === 'number' && borderWidth > 0) {
|
|
27
43
|
const ba = borderWidth / 2 + a;
|
|
28
44
|
const bb = borderWidth / 2 + b;
|
|
@@ -43,7 +59,7 @@ export function drawCircle(ctx, elem, opts) {
|
|
|
43
59
|
ctx.circle(centerX, centerY, a, b, 0, 0, 2 * Math.PI);
|
|
44
60
|
ctx.closePath();
|
|
45
61
|
ctx.fill();
|
|
46
|
-
ctx.globalAlpha =
|
|
62
|
+
ctx.globalAlpha = parentOpacity;
|
|
47
63
|
}
|
|
48
64
|
});
|
|
49
65
|
});
|
|
@@ -4,6 +4,7 @@ const defaultDetail = getDefaultElementDetailConfig();
|
|
|
4
4
|
export function drawElementList(ctx, data, opts) {
|
|
5
5
|
var _a;
|
|
6
6
|
const { elements = [] } = data;
|
|
7
|
+
const { parentOpacity } = opts;
|
|
7
8
|
for (let i = 0; i < elements.length; i++) {
|
|
8
9
|
const element = elements[i];
|
|
9
10
|
const elem = Object.assign(Object.assign({}, element), {
|
|
@@ -15,7 +16,9 @@ export function drawElementList(ctx, data, opts) {
|
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
try {
|
|
18
|
-
drawElement(ctx, elem, opts)
|
|
19
|
+
drawElement(ctx, elem, Object.assign(Object.assign({}, opts), {
|
|
20
|
+
parentOpacity
|
|
21
|
+
}));
|
|
19
22
|
}
|
|
20
23
|
catch (err) {
|
|
21
24
|
console.error(err);
|
package/dist/esm/draw/group.js
CHANGED
|
@@ -5,7 +5,7 @@ import { drawImage } from './image';
|
|
|
5
5
|
import { drawText } from './text';
|
|
6
6
|
import { drawSVG } from './svg';
|
|
7
7
|
import { drawHTML } from './html';
|
|
8
|
-
import { drawBox, drawBoxShadow } from './box';
|
|
8
|
+
import { drawBox, drawBoxShadow, getOpacity } from './box';
|
|
9
9
|
import { drawPath } from './path';
|
|
10
10
|
export function drawElement(ctx, elem, opts) {
|
|
11
11
|
var _a;
|
|
@@ -57,10 +57,11 @@ export function drawElement(ctx, elem, opts) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
export function drawGroup(ctx, elem, opts) {
|
|
60
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
60
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
61
61
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h, angle: elem.angle }, viewScaleInfo, viewSizeInfo)) || elem;
|
|
62
62
|
const viewElem = Object.assign(Object.assign({}, elem), { x, y, w, h, angle });
|
|
63
63
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
64
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
64
65
|
drawBoxShadow(ctx, viewElem, {
|
|
65
66
|
viewScaleInfo,
|
|
66
67
|
viewSizeInfo,
|
|
@@ -70,6 +71,7 @@ export function drawGroup(ctx, elem, opts) {
|
|
|
70
71
|
calcElemSize: { x, y, w, h, angle },
|
|
71
72
|
viewScaleInfo,
|
|
72
73
|
viewSizeInfo,
|
|
74
|
+
parentOpacity,
|
|
73
75
|
renderContent: () => {
|
|
74
76
|
const { x, y, w, h, radiusList } = calcViewBoxSize(viewElem, {
|
|
75
77
|
viewScaleInfo,
|
|
@@ -110,7 +112,7 @@ export function drawGroup(ctx, elem, opts) {
|
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
try {
|
|
113
|
-
drawElement(ctx, child, Object.assign({}, opts));
|
|
115
|
+
drawElement(ctx, child, Object.assign(Object.assign({}, opts), { parentOpacity: parentOpacity * getOpacity(elem) }));
|
|
114
116
|
}
|
|
115
117
|
catch (err) {
|
|
116
118
|
console.error(err);
|
|
@@ -118,12 +120,12 @@ export function drawGroup(ctx, elem, opts) {
|
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
122
|
if (elem.detail.overflow === 'hidden') {
|
|
121
|
-
ctx.globalAlpha = 1;
|
|
122
123
|
ctx.restore();
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
});
|
|
126
127
|
}
|
|
127
128
|
});
|
|
129
|
+
ctx.globalAlpha = parentOpacity;
|
|
128
130
|
});
|
|
129
131
|
}
|
package/dist/esm/draw/html.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { rotateElement } from '@idraw/util';
|
|
2
|
+
import { getOpacity } from './box';
|
|
2
3
|
export function drawHTML(ctx, elem, opts) {
|
|
3
4
|
const content = opts.loader.getContent(elem);
|
|
4
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
5
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
5
6
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
6
7
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
7
8
|
if (!content) {
|
|
8
9
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
9
10
|
}
|
|
10
11
|
if (elem.type === 'html' && content) {
|
|
11
|
-
|
|
12
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
12
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
13
13
|
ctx.drawImage(content, x, y, w, h);
|
|
14
|
-
ctx.globalAlpha =
|
|
14
|
+
ctx.globalAlpha = parentOpacity;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
}
|
package/dist/esm/draw/image.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { rotateElement, calcViewBoxSize } from '@idraw/util';
|
|
2
|
-
import { drawBox, drawBoxShadow } from './box';
|
|
2
|
+
import { drawBox, drawBoxShadow, getOpacity } from './box';
|
|
3
3
|
export function drawImage(ctx, elem, opts) {
|
|
4
4
|
const content = opts.loader.getContent(elem);
|
|
5
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
5
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
6
6
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
7
7
|
const viewElem = Object.assign(Object.assign({}, elem), { x, y, w, h, angle });
|
|
8
8
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
@@ -15,13 +15,13 @@ export function drawImage(ctx, elem, opts) {
|
|
|
15
15
|
calcElemSize: { x, y, w, h, angle },
|
|
16
16
|
viewScaleInfo,
|
|
17
17
|
viewSizeInfo,
|
|
18
|
+
parentOpacity,
|
|
18
19
|
renderContent: () => {
|
|
19
20
|
if (!content) {
|
|
20
21
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
21
22
|
}
|
|
22
23
|
if (elem.type === 'image' && content) {
|
|
23
|
-
|
|
24
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
24
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
25
25
|
const { x, y, w, h, radiusList } = calcViewBoxSize(viewElem, {
|
|
26
26
|
viewScaleInfo,
|
|
27
27
|
viewSizeInfo
|
|
@@ -38,7 +38,7 @@ export function drawImage(ctx, elem, opts) {
|
|
|
38
38
|
ctx.fill();
|
|
39
39
|
ctx.clip();
|
|
40
40
|
ctx.drawImage(content, x, y, w, h);
|
|
41
|
-
ctx.globalAlpha =
|
|
41
|
+
ctx.globalAlpha = parentOpacity;
|
|
42
42
|
ctx.restore();
|
|
43
43
|
}
|
|
44
44
|
}
|
package/dist/esm/draw/path.js
CHANGED
|
@@ -3,7 +3,7 @@ import { drawBox, drawBoxShadow } from './box';
|
|
|
3
3
|
export function drawPath(ctx, elem, opts) {
|
|
4
4
|
const { detail } = elem;
|
|
5
5
|
const { originX, originY, originW, originH } = detail;
|
|
6
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
6
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
7
7
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
8
8
|
const scaleW = w / originW;
|
|
9
9
|
const scaleH = h / originH;
|
|
@@ -19,6 +19,7 @@ export function drawPath(ctx, elem, opts) {
|
|
|
19
19
|
calcElemSize: { x, y, w, h, angle },
|
|
20
20
|
viewScaleInfo,
|
|
21
21
|
viewSizeInfo,
|
|
22
|
+
parentOpacity,
|
|
22
23
|
renderContent: () => {
|
|
23
24
|
drawBoxShadow(ctx, viewElem, {
|
|
24
25
|
viewScaleInfo,
|
package/dist/esm/draw/rect.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { rotateElement } from '@idraw/util';
|
|
2
2
|
import { drawBox, drawBoxShadow } from './box';
|
|
3
3
|
export function drawRect(ctx, elem, opts) {
|
|
4
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
4
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
5
5
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
6
6
|
const viewElem = Object.assign(Object.assign({}, elem), { x, y, w, h, angle });
|
|
7
7
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
@@ -14,6 +14,7 @@ export function drawRect(ctx, elem, opts) {
|
|
|
14
14
|
calcElemSize: { x, y, w, h, angle },
|
|
15
15
|
viewScaleInfo,
|
|
16
16
|
viewSizeInfo,
|
|
17
|
+
parentOpacity,
|
|
17
18
|
renderContent: () => {
|
|
18
19
|
}
|
|
19
20
|
});
|
package/dist/esm/draw/svg.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { rotateElement } from '@idraw/util';
|
|
2
|
+
import { getOpacity } from './box';
|
|
2
3
|
export function drawSVG(ctx, elem, opts) {
|
|
3
4
|
const content = opts.loader.getContent(elem);
|
|
4
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
5
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
5
6
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
6
7
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
7
8
|
if (!content) {
|
|
8
9
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
9
10
|
}
|
|
10
11
|
if (elem.type === 'svg' && content) {
|
|
11
|
-
|
|
12
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
12
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
13
13
|
ctx.drawImage(content, x, y, w, h);
|
|
14
|
-
ctx.globalAlpha =
|
|
14
|
+
ctx.globalAlpha = parentOpacity;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
}
|
package/dist/esm/draw/text.js
CHANGED
|
@@ -3,7 +3,7 @@ import { is, isColorStr, getDefaultElementDetailConfig } from '@idraw/util';
|
|
|
3
3
|
import { drawBox } from './box';
|
|
4
4
|
const detailConfig = getDefaultElementDetailConfig();
|
|
5
5
|
export function drawText(ctx, elem, opts) {
|
|
6
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
6
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
7
7
|
const { x, y, w, h, angle } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
8
8
|
const viewElem = Object.assign(Object.assign({}, elem), { x, y, w, h, angle });
|
|
9
9
|
rotateElement(ctx, { x, y, w, h, angle }, () => {
|
|
@@ -12,6 +12,7 @@ export function drawText(ctx, elem, opts) {
|
|
|
12
12
|
calcElemSize: { x, y, w, h, angle },
|
|
13
13
|
viewScaleInfo,
|
|
14
14
|
viewSizeInfo,
|
|
15
|
+
parentOpacity,
|
|
15
16
|
renderContent: () => {
|
|
16
17
|
const detail = Object.assign(Object.assign({}, detailConfig), elem.detail);
|
|
17
18
|
const fontSize = (detail.fontSize || detailConfig.fontSize) * viewScaleInfo.scale;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '@idraw/util';
|
|
2
|
+
import type { LoadItemMap } from '@idraw/types';
|
|
2
3
|
import type { Data, BoardRenderer, RendererOptions, RendererEventMap, RendererDrawOptions } from '@idraw/types';
|
|
3
4
|
export declare class Renderer extends EventEmitter<RendererEventMap> implements BoardRenderer {
|
|
4
5
|
#private;
|
|
@@ -6,4 +7,6 @@ export declare class Renderer extends EventEmitter<RendererEventMap> implements
|
|
|
6
7
|
updateOptions(opts: RendererOptions): void;
|
|
7
8
|
drawData(data: Data, opts: RendererDrawOptions): void;
|
|
8
9
|
scale(num: number): void;
|
|
10
|
+
setLoadItemMap(itemMap: LoadItemMap): void;
|
|
11
|
+
getLoadItemMap(): LoadItemMap;
|
|
9
12
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -38,7 +38,7 @@ export class Renderer extends EventEmitter {
|
|
|
38
38
|
};
|
|
39
39
|
drawElementList(viewContext, data, Object.assign({ loader,
|
|
40
40
|
calculator,
|
|
41
|
-
parentElementSize, elementAssets: data.assets }, opts));
|
|
41
|
+
parentElementSize, elementAssets: data.assets, parentOpacity: 1 }, opts));
|
|
42
42
|
}
|
|
43
43
|
scale(num) {
|
|
44
44
|
const { sharer } = __classPrivateFieldGet(this, _Renderer_opts, "f");
|
|
@@ -65,6 +65,12 @@ export class Renderer extends EventEmitter {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
setLoadItemMap(itemMap) {
|
|
69
|
+
__classPrivateFieldGet(this, _Renderer_loader, "f").setLoadItemMap(itemMap);
|
|
70
|
+
}
|
|
71
|
+
getLoadItemMap() {
|
|
72
|
+
return __classPrivateFieldGet(this, _Renderer_loader, "f").getLoadItemMap();
|
|
73
|
+
}
|
|
68
74
|
}
|
|
69
75
|
_Renderer_opts = new WeakMap(), _Renderer_loader = new WeakMap(), _Renderer_instances = new WeakSet(), _Renderer_init = function _Renderer_init() {
|
|
70
76
|
const loader = __classPrivateFieldGet(this, _Renderer_loader, "f");
|
package/dist/esm/loader.d.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import type { RendererLoader, LoaderEventMap, LoadContent, LoadElementType, Element, ElementAssets } from '@idraw/types';
|
|
1
|
+
import type { RendererLoader, LoaderEventMap, LoadContent, LoadItemMap, LoadElementType, Element, ElementAssets } from '@idraw/types';
|
|
2
2
|
import { EventEmitter } from '@idraw/util';
|
|
3
3
|
export declare class Loader extends EventEmitter<LoaderEventMap> implements RendererLoader {
|
|
4
|
-
private
|
|
5
|
-
private _currentLoadItemMap;
|
|
6
|
-
private _storageLoadItemMap;
|
|
4
|
+
#private;
|
|
7
5
|
constructor();
|
|
8
|
-
private _registerLoadFunc;
|
|
9
|
-
private _getLoadElementSource;
|
|
10
|
-
private _createLoadItem;
|
|
11
|
-
private _emitLoad;
|
|
12
|
-
private _emitError;
|
|
13
|
-
private _loadResource;
|
|
14
|
-
private _isExistingErrorStorage;
|
|
15
6
|
load(element: Element<LoadElementType>, assets: ElementAssets): void;
|
|
16
7
|
getContent(element: Element<LoadElementType>): LoadContent | null;
|
|
8
|
+
getLoadItemMap(): LoadItemMap;
|
|
9
|
+
setLoadItemMap(itemMap: LoadItemMap): void;
|
|
17
10
|
}
|