@meta2d/core 1.1.21 → 1.1.23
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 +1 -1
- package/src/canvas/canvas.d.ts +13 -0
- package/src/canvas/canvas.js +298 -12
- package/src/canvas/canvas.js.map +1 -1
- package/src/canvas/canvasTemplate.d.ts +3 -1
- package/src/canvas/canvasTemplate.js +67 -186
- package/src/canvas/canvasTemplate.js.map +1 -1
- package/src/core.d.ts +22 -2
- package/src/core.js +124 -21
- package/src/core.js.map +1 -1
- package/src/grid/defaultGrid.d.ts +3 -0
- package/src/grid/defaultGrid.js +73 -0
- package/src/grid/defaultGrid.js.map +1 -0
- package/src/grid/dotGrid.d.ts +3 -0
- package/src/grid/dotGrid.js +21 -0
- package/src/grid/dotGrid.js.map +1 -0
- package/src/grid/index.d.ts +2 -0
- package/src/grid/index.js +3 -0
- package/src/grid/index.js.map +1 -0
- package/src/options.d.ts +4 -0
- package/src/options.js +1 -0
- package/src/options.js.map +1 -1
- package/src/pen/render.js +23 -25
- package/src/pen/render.js.map +1 -1
- package/src/point/point.d.ts +11 -0
- package/src/point/point.js.map +1 -1
- package/src/store/global.d.ts +28 -0
- package/src/store/global.js +7 -0
- package/src/store/global.js.map +1 -1
- package/src/store/store.d.ts +2 -0
- package/src/store/store.js.map +1 -1
- package/src/utils/easing.d.ts +4 -0
- package/src/utils/easing.js +19 -0
- package/src/utils/easing.js.map +1 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { GridDrawerContext } from '../store';
|
|
2
|
+
import { Point } from '../point';
|
|
3
|
+
export declare function defaultGridDrawer(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, { area, align, size, color, rotate }: GridDrawerContext, mousePos: Point): boolean;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export function defaultGridDrawer(ctx, { area, align, size, color, rotate }, mousePos) {
|
|
2
|
+
ctx.lineWidth = 1;
|
|
3
|
+
ctx.strokeStyle = color;
|
|
4
|
+
if (rotate) {
|
|
5
|
+
const radian1 = (rotate * Math.PI) / 180;
|
|
6
|
+
const radian2 = radian1 + Math.PI / 2;
|
|
7
|
+
const normal1 = { x: Math.sin(radian1), y: -Math.cos(radian1) };
|
|
8
|
+
const normal2 = { x: Math.sin(radian2), y: -Math.cos(radian2) };
|
|
9
|
+
drawPreciseLines(ctx, area, size, normal1, radian1);
|
|
10
|
+
drawPreciseLines(ctx, area, size, normal2, radian2);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const m = align.x / size;
|
|
14
|
+
const n = align.y / size;
|
|
15
|
+
const offset = size * 10;
|
|
16
|
+
const newX = align.x - Math.ceil(m) * size;
|
|
17
|
+
const newY = align.y - Math.ceil(n) * size;
|
|
18
|
+
const endX = area.x + area.width + offset;
|
|
19
|
+
const endY = area.y + area.height + offset;
|
|
20
|
+
ctx.beginPath();
|
|
21
|
+
for (let i = newX; i <= endX; i += size) {
|
|
22
|
+
ctx.moveTo(i, newY);
|
|
23
|
+
ctx.lineTo(i, area.y + area.height + offset);
|
|
24
|
+
}
|
|
25
|
+
for (let i = newY; i <= endY; i += size) {
|
|
26
|
+
ctx.moveTo(newX, i);
|
|
27
|
+
ctx.lineTo(area.x + area.width + offset, i);
|
|
28
|
+
}
|
|
29
|
+
ctx.stroke();
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
function drawPreciseLines(ctx, area, spacing, normal, angle) {
|
|
34
|
+
const corners = [
|
|
35
|
+
{ x: area.x, y: area.y },
|
|
36
|
+
{ x: area.x + area.width, y: area.y },
|
|
37
|
+
{ x: area.x + area.width, y: area.y + area.height },
|
|
38
|
+
{ x: area.x, y: area.y + area.height },
|
|
39
|
+
];
|
|
40
|
+
let minProjection = Infinity;
|
|
41
|
+
let maxProjection = -Infinity;
|
|
42
|
+
corners.forEach((corner) => {
|
|
43
|
+
const proj = corner.x * normal.x + corner.y * normal.y;
|
|
44
|
+
minProjection = Math.min(minProjection, proj);
|
|
45
|
+
maxProjection = Math.max(maxProjection, proj);
|
|
46
|
+
});
|
|
47
|
+
const lineCount = Math.ceil((maxProjection - minProjection) / spacing);
|
|
48
|
+
ctx.beginPath();
|
|
49
|
+
for (let i = 0; i <= lineCount; i++) {
|
|
50
|
+
const d = minProjection + i * spacing;
|
|
51
|
+
let points = [];
|
|
52
|
+
for (let j = 0; j < corners.length; j++) {
|
|
53
|
+
const p1 = corners[j];
|
|
54
|
+
const p2 = corners[(j + 1) % corners.length];
|
|
55
|
+
const denom = normal.x * (p2.y - p1.y) - normal.y * (p2.x - p1.x);
|
|
56
|
+
if (Math.abs(denom) > 1e-6) {
|
|
57
|
+
const t = (d - p1.x * normal.x - p1.y * normal.y) /
|
|
58
|
+
(normal.x * (p2.x - p1.x) + normal.y * (p2.y - p1.y));
|
|
59
|
+
if (t >= 0 && t <= 1) {
|
|
60
|
+
const x = p1.x + t * (p2.x - p1.x);
|
|
61
|
+
const y = p1.y + t * (p2.y - p1.y);
|
|
62
|
+
points.push({ x, y });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (points.length >= 2) {
|
|
67
|
+
ctx.moveTo(points[0].x, points[0].y);
|
|
68
|
+
ctx.lineTo(points[1].x, points[1].y);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
ctx.stroke();
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=defaultGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultGrid.js","sourceRoot":"","sources":["../../../../packages/core/src/grid/defaultGrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function dotGridDrawer(ctx, { store, area, align, size, color }, mousePos) {
|
|
2
|
+
const baseColor = color;
|
|
3
|
+
ctx.fillStyle = baseColor;
|
|
4
|
+
const radius = Math.max(0.5, 1.5 * store.data.scale);
|
|
5
|
+
const m = align.x / size;
|
|
6
|
+
const n = align.y / size;
|
|
7
|
+
const offset = size * 10;
|
|
8
|
+
const newX = align.x - Math.ceil(m) * size;
|
|
9
|
+
const newY = align.y - Math.ceil(n) * size;
|
|
10
|
+
const endX = area.x + area.width + offset;
|
|
11
|
+
const endY = area.y + area.height + offset;
|
|
12
|
+
for (let x = newX + radius; x <= endX - radius; x += size) {
|
|
13
|
+
for (let y = newY + radius; y <= endY - radius; y += size) {
|
|
14
|
+
ctx.beginPath();
|
|
15
|
+
ctx.arc(x, y, radius, 0, Math.PI * 2);
|
|
16
|
+
ctx.fill();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dotGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotGrid.js","sourceRoot":"","sources":["../../../../packages/core/src/grid/dotGrid.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAC3B,GAAiE,EACjE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAqB,EACtD,QAAgB;IAEhB,MAAM,SAAS,GAAG,KAAK,CAAC;IACxB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1D,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
|
package/src/options.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare enum KeydownType {
|
|
|
6
6
|
Document = 0,
|
|
7
7
|
Canvas = 1
|
|
8
8
|
}
|
|
9
|
+
export declare const TRANSPARENT_COLOR = "#FFFFFF00";
|
|
9
10
|
export interface Options {
|
|
10
11
|
color?: string;
|
|
11
12
|
activeColor?: string;
|
|
@@ -55,6 +56,9 @@ export interface Options {
|
|
|
55
56
|
grid?: boolean;
|
|
56
57
|
gridColor?: string;
|
|
57
58
|
gridSize?: number;
|
|
59
|
+
gridType?: string;
|
|
60
|
+
gridScope?: 'full' | 'inner' | 'outer';
|
|
61
|
+
gridAlwaysRender?: boolean;
|
|
58
62
|
rule?: boolean;
|
|
59
63
|
ruleColor?: string;
|
|
60
64
|
ruleOptions?: {
|
package/src/options.js
CHANGED
|
@@ -4,6 +4,7 @@ export var KeydownType;
|
|
|
4
4
|
KeydownType[KeydownType["Document"] = 0] = "Document";
|
|
5
5
|
KeydownType[KeydownType["Canvas"] = 1] = "Canvas";
|
|
6
6
|
})(KeydownType || (KeydownType = {}));
|
|
7
|
+
export const TRANSPARENT_COLOR = '#FFFFFF00';
|
|
7
8
|
export const defaultOptions = {
|
|
8
9
|
fontFamily: '"Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial',
|
|
9
10
|
fontSize: 12,
|
package/src/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../packages/core/src/options.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8CAAS,CAAA;IACT,qDAAQ,CAAA;IACR,iDAAM,CAAA;AACR,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../packages/core/src/options.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8CAAS,CAAA;IACT,qDAAQ,CAAA;IACR,iDAAM,CAAA;AACR,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AA4I5C,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,UAAU,EACR,2EAA2E;IAC7E,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,QAAQ;IACtB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,uBAAuB;IACnC,WAAW,EAAE,SAAS;IACtB,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,MAAM;IACxB,SAAS,EAAE,uBAAuB;IAClC,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,WAAW,CAAC,QAAQ;IAC7B,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,OAAO;IACxB,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE;QACd;YACE,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;SACL;QACD;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP;QACD;YACE,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,CAAC;SACL;QACD;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP;KACF;IACD,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,CAAC;IACpB,oBAAoB,EAAE,KAAK;IAC3B,WAAW,EAAE,IAAI;IACjB,GAAG,EAAE,EAAE;IACP,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,EAAE;IACb,eAAe,EAAC,CAAC,WAAW,CAAC;IAC7B,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAC,IAAI;IAClB,aAAa,EAAC,EAAE;CACjB,CAAC"}
|
package/src/pen/render.js
CHANGED
|
@@ -10,6 +10,7 @@ import { renderFromArrow, renderToArrow } from './arrow';
|
|
|
10
10
|
import { Gradient, PenType } from '../pen';
|
|
11
11
|
import { pSBC, rgba, cubicBezierY } from '../utils';
|
|
12
12
|
import { isEmptyText } from '../utils/tool';
|
|
13
|
+
import { TRANSPARENT_COLOR } from "../options";
|
|
13
14
|
const LINE = "line";
|
|
14
15
|
const REPEAT = "repeat";
|
|
15
16
|
/**
|
|
@@ -1837,32 +1838,27 @@ export function ctxDrawLinePath(canUsePath = true, ctx, pen, store) {
|
|
|
1837
1838
|
setCtxLineAnimate(ctx, pen, store);
|
|
1838
1839
|
ctx.beginPath();
|
|
1839
1840
|
if (path instanceof Path2D) {
|
|
1840
|
-
if (pen.
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
pen
|
|
1853
|
-
getGradientAnimatePath(pen);
|
|
1854
|
-
}
|
|
1855
|
-
if (pen.calculative.gradientAnimatePath instanceof Path2D) {
|
|
1856
|
-
ctx.stroke(pen.calculative.gradientAnimatePath);
|
|
1857
|
-
}
|
|
1841
|
+
if (pen.lineAnimateType === LineAnimateType.Arrow ||
|
|
1842
|
+
pen.lineAnimateType === LineAnimateType.WaterDrop) {
|
|
1843
|
+
//箭头动画
|
|
1844
|
+
const _path = drawArrow(pen);
|
|
1845
|
+
ctx.stroke(_path);
|
|
1846
|
+
ctx.fill(_path);
|
|
1847
|
+
}
|
|
1848
|
+
else {
|
|
1849
|
+
if (pen.calculative.gradientSmooth ||
|
|
1850
|
+
pen.calculative.lineSmooth) {
|
|
1851
|
+
if (!pen.calculative.gradientAnimatePath) {
|
|
1852
|
+
pen.calculative.gradientAnimatePath =
|
|
1853
|
+
getGradientAnimatePath(pen);
|
|
1858
1854
|
}
|
|
1859
|
-
|
|
1860
|
-
ctx.stroke(
|
|
1855
|
+
if (pen.calculative.gradientAnimatePath instanceof Path2D) {
|
|
1856
|
+
ctx.stroke(pen.calculative.gradientAnimatePath);
|
|
1861
1857
|
}
|
|
1862
1858
|
}
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1859
|
+
else {
|
|
1860
|
+
ctx.stroke(path);
|
|
1861
|
+
}
|
|
1866
1862
|
}
|
|
1867
1863
|
}
|
|
1868
1864
|
else {
|
|
@@ -1888,7 +1884,9 @@ export function ctxDrawLinePath(canUsePath = true, ctx, pen, store) {
|
|
|
1888
1884
|
* 设置线条动画,ctx 的 strokeStyle lineDash 等属性更改
|
|
1889
1885
|
*/
|
|
1890
1886
|
export function setCtxLineAnimate(ctx, pen, store) {
|
|
1891
|
-
ctx.strokeStyle = pen.
|
|
1887
|
+
ctx.strokeStyle = pen.lineAnimateType === LineAnimateType.Custom ?
|
|
1888
|
+
pen.animateColor || TRANSPARENT_COLOR
|
|
1889
|
+
: (pen.animateColor || store.styles.animateColor);
|
|
1892
1890
|
if (pen.animateShadow) {
|
|
1893
1891
|
ctx.shadowBlur = pen.animateShadowBlur || pen.animateLineWidth || 6;
|
|
1894
1892
|
ctx.shadowColor =
|
|
@@ -2060,7 +2058,7 @@ function lineAnimatePenRender(tracks) {
|
|
|
2060
2058
|
height: viewHeight,
|
|
2061
2059
|
rotate: state.rotate,
|
|
2062
2060
|
};
|
|
2063
|
-
meta2d.setValue({ id: targetPen.id, ...data });
|
|
2061
|
+
meta2d.setValue({ id: targetPen.id, ...data }, { render: false, doEvent: false, history: false });
|
|
2064
2062
|
};
|
|
2065
2063
|
}
|
|
2066
2064
|
function lineAnimateIconRender(icon) {
|