@gedit/editor-2d 0.2.46 → 0.2.47

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.
Files changed (95) hide show
  1. package/lib/browser/model/editor2d-document.d.ts +11 -2
  2. package/lib/browser/model/editor2d-document.d.ts.map +1 -1
  3. package/lib/browser/model/editor2d-document.js +44 -8
  4. package/lib/browser/model/editor2d-document.js.map +1 -1
  5. package/lib/browser/model/editor2d-model-container.d.ts.map +1 -1
  6. package/lib/browser/model/editor2d-model-container.js +1 -1
  7. package/lib/browser/model/editor2d-model-container.js.map +1 -1
  8. package/lib/browser/model/editor2d-model.d.ts +2 -0
  9. package/lib/browser/model/editor2d-model.d.ts.map +1 -1
  10. package/lib/browser/model/editor2d-model.js +5 -0
  11. package/lib/browser/model/editor2d-model.js.map +1 -1
  12. package/lib/browser/model/editor2d.d.ts +2 -0
  13. package/lib/browser/model/editor2d.d.ts.map +1 -1
  14. package/lib/browser/model/editor2d.js +4 -2
  15. package/lib/browser/model/editor2d.js.map +1 -1
  16. package/lib/browser/playground/canvas-draw.d.ts.map +1 -1
  17. package/lib/browser/playground/canvas-draw.js +30 -27
  18. package/lib/browser/playground/canvas-draw.js.map +1 -1
  19. package/lib/browser/playground/canvas-layer.d.ts +14 -2
  20. package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
  21. package/lib/browser/playground/canvas-layer.js +96 -50
  22. package/lib/browser/playground/canvas-layer.js.map +1 -1
  23. package/lib/browser/playground/index.d.ts +2 -0
  24. package/lib/browser/playground/index.d.ts.map +1 -1
  25. package/lib/browser/playground/index.js +2 -0
  26. package/lib/browser/playground/index.js.map +1 -1
  27. package/lib/browser/playground/path-edit/index.d.ts +4 -0
  28. package/lib/browser/playground/path-edit/index.d.ts.map +1 -0
  29. package/lib/browser/playground/path-edit/index.js +20 -0
  30. package/lib/browser/playground/path-edit/index.js.map +1 -0
  31. package/lib/browser/playground/path-edit/path-edit-layer-move-point.d.ts +18 -0
  32. package/lib/browser/playground/path-edit/path-edit-layer-move-point.d.ts.map +1 -0
  33. package/lib/browser/playground/path-edit/path-edit-layer-move-point.js +52 -0
  34. package/lib/browser/playground/path-edit/path-edit-layer-move-point.js.map +1 -0
  35. package/lib/browser/playground/path-edit/path-edit-layer-svg-path.d.ts +21 -0
  36. package/lib/browser/playground/path-edit/path-edit-layer-svg-path.d.ts.map +1 -0
  37. package/lib/browser/playground/path-edit/path-edit-layer-svg-path.js +158 -0
  38. package/lib/browser/playground/path-edit/path-edit-layer-svg-path.js.map +1 -0
  39. package/lib/browser/playground/path-edit/utils.d.ts +37 -0
  40. package/lib/browser/playground/path-edit/utils.d.ts.map +1 -0
  41. package/lib/browser/playground/path-edit/utils.js +236 -0
  42. package/lib/browser/playground/path-edit/utils.js.map +1 -0
  43. package/lib/browser/playground/path-edit-layer.d.ts +32 -12
  44. package/lib/browser/playground/path-edit-layer.d.ts.map +1 -1
  45. package/lib/browser/playground/path-edit-layer.js +460 -146
  46. package/lib/browser/playground/path-edit-layer.js.map +1 -1
  47. package/lib/browser/playground/playground-context.d.ts +5 -2
  48. package/lib/browser/playground/playground-context.d.ts.map +1 -1
  49. package/lib/browser/playground/playground-context.js +13 -2
  50. package/lib/browser/playground/playground-context.js.map +1 -1
  51. package/lib/browser/playground/playground-contribution.d.ts +2 -1
  52. package/lib/browser/playground/playground-contribution.d.ts.map +1 -1
  53. package/lib/browser/playground/playground-contribution.js +4 -21
  54. package/lib/browser/playground/playground-contribution.js.map +1 -1
  55. package/lib/browser/playground/selection-entity-manager.d.ts.map +1 -1
  56. package/lib/browser/playground/selection-entity-manager.js +24 -8
  57. package/lib/browser/playground/selection-entity-manager.js.map +1 -1
  58. package/lib/browser/playground/selector-extend-renderer.d.ts +2 -1
  59. package/lib/browser/playground/selector-extend-renderer.d.ts.map +1 -1
  60. package/lib/browser/playground/selector-extend-renderer.js +50 -21
  61. package/lib/browser/playground/selector-extend-renderer.js.map +1 -1
  62. package/lib/browser/utils/snapshot.d.ts +1 -0
  63. package/lib/browser/utils/snapshot.d.ts.map +1 -1
  64. package/lib/browser/utils/snapshot.js +11 -0
  65. package/lib/browser/utils/snapshot.js.map +1 -1
  66. package/package.json +9 -7
  67. package/src/browser/model/editor2d-document.ts +44 -6
  68. package/src/browser/model/editor2d-model-container.ts +2 -0
  69. package/src/browser/model/editor2d-model.ts +2 -0
  70. package/src/browser/model/editor2d.ts +4 -1
  71. package/src/browser/playground/canvas-draw.ts +30 -25
  72. package/src/browser/playground/canvas-layer.ts +97 -52
  73. package/src/browser/playground/index.ts +2 -0
  74. package/src/browser/playground/path-edit/index.ts +3 -0
  75. package/src/browser/playground/path-edit/path-edit-layer-move-point.tsx +108 -0
  76. package/src/browser/playground/path-edit/path-edit-layer-svg-path.tsx +283 -0
  77. package/src/browser/playground/path-edit/utils.tsx +285 -0
  78. package/src/browser/playground/path-edit-layer.tsx +563 -216
  79. package/src/browser/playground/playground-context.ts +7 -1
  80. package/src/browser/playground/playground-contribution.ts +2 -21
  81. package/src/browser/playground/selection-entity-manager.tsx +34 -6
  82. package/src/browser/playground/selector-extend-renderer.tsx +69 -37
  83. package/src/browser/style/path-edit-layer.less +17 -30
  84. package/src/browser/svg/pen_close.svg +24 -0
  85. package/src/browser/utils/snapshot.ts +11 -0
  86. package/lib/browser/playground/path-edit-layer-move-point.d.ts +0 -15
  87. package/lib/browser/playground/path-edit-layer-move-point.d.ts.map +0 -1
  88. package/lib/browser/playground/path-edit-layer-move-point.js +0 -47
  89. package/lib/browser/playground/path-edit-layer-move-point.js.map +0 -1
  90. package/lib/browser/playground/path-edit-layer-svg-path.d.ts +0 -11
  91. package/lib/browser/playground/path-edit-layer-svg-path.d.ts.map +0 -1
  92. package/lib/browser/playground/path-edit-layer-svg-path.js +0 -21
  93. package/lib/browser/playground/path-edit-layer-svg-path.js.map +0 -1
  94. package/src/browser/playground/path-edit-layer-move-point.tsx +0 -71
  95. package/src/browser/playground/path-edit-layer-svg-path.tsx +0 -50
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SvgPath = void 0;
4
+ const React = require("react");
5
+ const canvas_draw_1 = require("@gedit/canvas-draw");
6
+ const path_edit_layer_move_point_1 = require("./path-edit-layer-move-point");
7
+ const path_edit_layer_1 = require("../path-edit-layer");
8
+ const clsx_1 = require("clsx");
9
+ const utils_1 = require("@gedit/utils");
10
+ const playground_1 = require("@gedit/playground");
11
+ const SvgPath = ({ width, height, paths = [], closed, scale, selection = [], selectMode, getPosFromMouseEvent, getPointIsStartOrEnd, }) => {
12
+ var _a;
13
+ const isMultiple = selection.length > 1; // 多选模式;
14
+ const isSelect = selectMode !== playground_1.PathSelectMode.ADD_PATH; // 选择点模式
15
+ const [hideMovePoint, setHideMovePoint] = React.useState(false);
16
+ const [closePath, setClosePath] = React.useState(false);
17
+ const onHideMovePoint = () => {
18
+ setHideMovePoint(true);
19
+ };
20
+ const onShowMovePoint = () => {
21
+ setHideMovePoint(false);
22
+ };
23
+ const onClosePath = () => {
24
+ setClosePath(true);
25
+ };
26
+ const onReClosePath = () => {
27
+ setClosePath(false);
28
+ };
29
+ const { onPointMouseDown, onClosePath: onClosedPath, onPathAddPoint, onBezierPointMouseDown, } = React.useContext(path_edit_layer_1.PathEditLayerEventContext);
30
+ const p = [...paths];
31
+ if (closed) {
32
+ p.push(Object.assign(Object.assign({}, paths[0]), { id: (0, utils_1.generateUuid)() }));
33
+ }
34
+ const pathsStringArray = (0, canvas_draw_1.getPointsToPaths)(p);
35
+ /**
36
+ * 路径点
37
+ * 1. 没有任何点的情况,显示默认移动点,不绘制路径;
38
+ * 2. 有点的情况,显示所有点,绘制最后点到移动点的路径;
39
+ * 3. 选中中间点的情况,不显示移动点与路径;
40
+ * 4. 选中起始点的情况,显示移动点,绘制起点到移动点的路径,反转点的 x1=x2, y1=y2;
41
+ * 5. 选中贝赛尔点时,不显示移动点与路径;
42
+ * @param bezierSelect 是否选中贝赛尔点
43
+ * @param pointIsStartOrEnd 是否选中起始点或结束点
44
+ * @param currentPointIndex 当前选中点的索引
45
+ * @param closePointIndex 当前选中点的闭合点索引
46
+ */
47
+ const bezierSelect = !isMultiple &&
48
+ selection[0] &&
49
+ typeof selection[0].bezierKey !== 'undefined';
50
+ const pointIsStartOrEnd = getPointIsStartOrEnd();
51
+ const currentPointIndex = !isSelect && selection.length
52
+ ? paths.findIndex(c => c.id === selection[0].pointId)
53
+ : undefined;
54
+ const closePointIndex = currentPointIndex === paths.length - 1 ? 0 : paths.length - 1;
55
+ const allPoints = paths.map((item, i) => {
56
+ /**
57
+ * 经过点时,是否关闭路径;
58
+ * 条件:
59
+ * 1. 点的数量大于2; 或者点的数量等于2,但是有一点不是直线时;
60
+ * 2. 不是闭合路径时; 闭合路径了选择器是 select_bezier;
61
+ * 3. 不是多选模式;
62
+ * 4. 第一帧或最后一帧时;
63
+ * 5. 选中的点是起始点时,最后一点是闭合点;选中的点是结束点时,第一点是闭合点;
64
+ */
65
+ const closePoint = (paths.length > 2 ||
66
+ (paths.length === 2 &&
67
+ paths.some(c => c.type !== canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT))) &&
68
+ !closed &&
69
+ !isMultiple &&
70
+ pointIsStartOrEnd &&
71
+ closePointIndex === i;
72
+ return (React.createElement("circle", { className: (0, clsx_1.default)('gedit-path-edit-layer-point', {
73
+ 'gedit-path-edit-layer-point-closed': closePoint,
74
+ 'gedit-path-edit-layer-point-active': selection.some(c => c.pointId === item.id) && !bezierSelect,
75
+ }), cx: item.x, cy: item.y, r: 4 / scale, key: item.id, strokeWidth: "1", onMouseDown: e => {
76
+ e.preventDefault();
77
+ e.stopPropagation();
78
+ if (closePoint) {
79
+ onClosedPath();
80
+ return;
81
+ }
82
+ onPointMouseDown === null || onPointMouseDown === void 0 ? void 0 : onPointMouseDown(e, item);
83
+ }, onMouseEnter: closePoint ? onClosePath : onHideMovePoint, onMouseLeave: closePoint ? onReClosePath : onShowMovePoint }));
84
+ });
85
+ // 贝塞尔点
86
+ const bezierPointNodes = [];
87
+ const bezierPathNodes = [];
88
+ const bezierPoints = [];
89
+ // 插入贝塞尔点
90
+ selection.forEach(item => {
91
+ const { pointId: currentPointId } = item;
92
+ const index = paths.findIndex(c => c.id === currentPointId);
93
+ // 关闭路径把第一个贝赛尔点加入
94
+ if (closed) {
95
+ if (index === paths.length - 1) {
96
+ bezierPoints.push(paths[0]);
97
+ }
98
+ if (index === 0) {
99
+ bezierPoints.push(paths[paths.length - 1]);
100
+ }
101
+ }
102
+ // 前后两点加当前开启贝赛尔点
103
+ paths.filter((_, i) => i >= index - 1 && i <= index + 1).forEach(c => {
104
+ if (bezierPoints.some(d => d.id === c.id)) {
105
+ return;
106
+ }
107
+ bezierPoints.push(c);
108
+ });
109
+ });
110
+ bezierPoints.forEach((p, i) => {
111
+ const selectionNode = selection.find(c => c.pointId === p.id);
112
+ const { bezierKey, pointId: currentPointId } = selectionNode || {};
113
+ if (p.type === canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT) {
114
+ return;
115
+ }
116
+ if ('x1' in p && 'y1' in p) {
117
+ bezierPathNodes.push(React.createElement("path", { key: `${p.id}_${i}_x1-line`, className: "gedit-path-edit-layer-point-bezier-line", strokeWidth: 1 / scale, d: `M${p.x},${p.y} L${p.x1},${p.y1}` }));
118
+ bezierPointNodes.push(React.createElement("circle", { key: `${p.id}_${i}_x1_point`, className: (0, clsx_1.default)('gedit-path-edit-layer-point-bezier', {
119
+ 'gedit-path-edit-layer-point-active': bezierKey === 'left' && currentPointId === p.id,
120
+ }), cx: p.x1, cy: p.y1, r: 3 / scale, onMouseDown: e => {
121
+ onBezierPointMouseDown(e, p, 'left');
122
+ }, onMouseEnter: onHideMovePoint, onMouseLeave: onShowMovePoint }));
123
+ }
124
+ if ('x2' in p && 'y2' in p) {
125
+ bezierPathNodes.push(React.createElement("path", { key: `${p.id}_${i}_x2-line`, className: "gedit-path-edit-layer-point-bezier-line", strokeWidth: 1 / scale, d: `M${p.x},${p.y} L${p.x2},${p.y2}` }));
126
+ bezierPointNodes.push(React.createElement("circle", { key: `${p.id}_${i}x2_point`, className: (0, clsx_1.default)('gedit-path-edit-layer-point-bezier', {
127
+ 'gedit-path-edit-layer-point-active': bezierKey === 'right' && currentPointId === p.id,
128
+ }), cx: p.x2, cy: p.y2, r: 3 / scale, onMouseDown: e => {
129
+ onBezierPointMouseDown(e, p, 'right');
130
+ }, onMouseEnter: onHideMovePoint, onMouseLeave: onShowMovePoint }));
131
+ }
132
+ });
133
+ const showDefaultMovePoint = !isMultiple && // 不是多选模式
134
+ !isSelect && // 不是选择模式
135
+ !hideMovePoint && // 没经过点时
136
+ !closed && // 不是关闭路径时
137
+ (!paths.length || // 没有点时
138
+ pointIsStartOrEnd); // 选中起始点或结束点时
139
+ // const ppp = [...paths, paths[0]];
140
+ // const bezierBox = getPathToBezier(ppp).map(c => c.bbox());
141
+ return (React.createElement("svg", { width: width || 300, height: height || 300, className: (0, clsx_1.default)('gedit-path-edit-layer-svg', {
142
+ // 'gedit-path-edit-layer-pen': !closed,
143
+ }) },
144
+ showDefaultMovePoint && (React.createElement(path_edit_layer_move_point_1.PointMoveDefault, { getPosFromMouseEvent: getPosFromMouseEvent, paths: paths, scale: scale, closePath: closePath, currentPointId: (_a = selection[0]) === null || _a === void 0 ? void 0 : _a.pointId })),
145
+ pathsStringArray.map((p, i) => (React.createElement("path", { className: (0, clsx_1.default)('gedit-path-edit-layer-path', 'gedit-path-edit-layer-pen'), key: i.toString(), strokeLinecap: "round", strokeWidth: 1.5 / scale, d: p, onMouseEnter: onHideMovePoint, onMouseLeave: onShowMovePoint, onMouseDown: e => {
146
+ e.preventDefault();
147
+ e.stopPropagation();
148
+ }, onClick: e => {
149
+ e.preventDefault();
150
+ e.stopPropagation();
151
+ onPathAddPoint(i, e);
152
+ } }))),
153
+ bezierPathNodes,
154
+ allPoints,
155
+ bezierPointNodes));
156
+ };
157
+ exports.SvgPath = SvgPath;
158
+ //# sourceMappingURL=path-edit-layer-svg-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-edit-layer-svg-path.js","sourceRoot":"","sources":["../../../../src/browser/playground/path-edit/path-edit-layer-svg-path.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { PathChild, Point, PATH_FUNC_TYPE, PathSchema } from '@gedit/canvas-draw';
3
+ import { PositionSchema } from '@gedit/utils';
4
+ import { PointSchema } from './path-edit-layer-move-point';
5
+ import { Editor2dPathNode } from '../../model';
6
+ export declare const pathFuncIcon: {
7
+ icon: React.JSX.Element;
8
+ type: PATH_FUNC_TYPE;
9
+ name: string;
10
+ }[];
11
+ export declare const getLeftRightCenterPoint: (item: PathChild) => {
12
+ left: PathChild;
13
+ right: PathChild;
14
+ center: PathChild;
15
+ };
16
+ export declare const getBezierHullByPos: (points: [x: number, x: number, x: number, x: number, x: number, x: number, x: number, x: number], pos: Point) => {
17
+ x: number;
18
+ y: number;
19
+ }[];
20
+ /**
21
+ * 按点获取扩展点
22
+ * @param c
23
+ * @param s
24
+ * @returns
25
+ */
26
+ export declare const getExtendPositionByPoint: (c: Point, s: Point) => Point;
27
+ export declare const getExtendPositionByRadius: (c: PathChild, p: PathChild, r: number) => PathChild;
28
+ /**
29
+ * 获取点击线上的新增点
30
+ */
31
+ export declare const getNewPoint: (point: PathChild, nextPoint: PathChild, pos: PointSchema) => PathChild;
32
+ export declare const setBezierMovePoint: (path: PathChild, key: 'left' | 'right', pos: PointSchema) => PathChild;
33
+ export declare const updatePathNodeData: (node: Editor2dPathNode) => {
34
+ path: PathSchema;
35
+ position: PositionSchema;
36
+ };
37
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/browser/playground/path-edit/utils.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,SAAS,EACT,KAAK,EAEL,cAAc,EAMd,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAgB,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,YAAY;;;;GA8CxB,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAAU,SAAS;;;;CAUtD,CAAC;AAEF,eAAO,MAAM,kBAAkB,0GAExB,KAAK,KACT;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAe1B,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,MAAO,KAAK,KAAK,KAAK,KAAG,KAAiD,CAAC;AAEhH,eAAO,MAAM,yBAAyB,MACjC,SAAS,KACT,SAAS,KACT,MAAM,KACR,SAOF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,UACf,SAAS,aACL,SAAS,OACf,WAAW,KACf,SAgFF,CAAC;AAEF,eAAO,MAAM,kBAAkB,SACvB,SAAS,OACV,MAAM,GAAG,OAAO,OAChB,WAAW,KACf,SAgCF,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,gBAAgB;UAAW,UAAU;cAAY,cAAc;CAsCvG,CAAC"}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updatePathNodeData = exports.setBezierMovePoint = exports.getNewPoint = exports.getExtendPositionByRadius = exports.getExtendPositionByPoint = exports.getBezierHullByPos = exports.getLeftRightCenterPoint = exports.pathFuncIcon = void 0;
4
+ /* eslint-disable max-len*/
5
+ const React = require("react");
6
+ const canvas_draw_1 = require("@gedit/canvas-draw");
7
+ const bezier_js_1 = require("bezier-js");
8
+ const utils_1 = require("@gedit/utils");
9
+ exports.pathFuncIcon = [
10
+ {
11
+ icon: (React.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16" },
12
+ React.createElement("g", { stroke: "none", fill: "currentColor", fillRule: "nonzero" },
13
+ React.createElement("path", { d: "M10.4684227,7.89241331 L13.8353656,11.2580367 C14.2258898,11.648561 14.2258898,12.281726 13.8353656,12.6722503 C13.6478292,12.8597867 13.3934753,12.9651435 13.1282588,12.9651435 L2.87174123,12.9651435 C2.31945648,12.9651435 1.87174123,12.5174282 1.87174123,11.9651435 C1.87174123,11.699927 1.97709807,11.4455731 2.16463445,11.2580367 L5.5315773,7.89241331 C6.17107192,8.50939201 7.04121784,8.88888889 8,8.88888889 C8.95878216,8.88888889 9.82892808,8.50939201 10.4684227,7.89241331 Z" }),
14
+ React.createElement("path", { d: "M8,3.11111111 C6.77270056,3.11111111 5.77777778,4.10603389 5.77777778,5.33333333 C5.77777778,6.56063278 6.77270056,7.55555556 8,7.55555556 C9.22729944,7.55555556 10.2222222,6.56063278 10.2222222,5.33333333 C10.2222222,4.10603389 9.22729944,3.11111111 8,3.11111111 Z M8,4 C8.73637967,4 9.33333333,4.59695367 9.33333333,5.33333333 C9.33333333,6.069713 8.73637967,6.66666667 8,6.66666667 C7.26362033,6.66666667 6.66666667,6.069713 6.66666667,5.33333333 C6.66666667,4.59695367 7.26362033,4 8,4 Z" })))),
15
+ type: canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT,
16
+ name: '笔直',
17
+ },
18
+ {
19
+ icon: (React.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16" },
20
+ React.createElement("g", { stroke: "none", fill: "currentColor", fillRule: "nonzero" },
21
+ React.createElement("path", { d: "M11.0960993,7.08278272 C12.90892,7.79368793 13.8669699,9.26586873 13.9715946,11.4991392 C13.9974693,12.0508335 13.5711839,12.5190234 13.0194883,12.5448693 L12.9960956,12.545691 L12.9960956,12.545691 L3.02729199,12.5459649 C2.47501636,12.5459484 2.0273085,12.0982406 2.0273085,11.5459649 C2.0273085,11.5303611 2.02767372,11.5147595 2.02840387,11.4991728 C2.13302028,9.26588707 3.09106789,7.7936962 4.9025467,7.08260023 C5.51453959,8.16114343 6.67228276,8.88888889 8,8.88888889 C9.32771724,8.88888889 10.4854604,8.16114343 11.0960993,7.08278272 Z M8,3.11111111 C9.07494019,3.11111111 9.97161786,3.87434369 10.1776822,4.88845806 L12.3150306,4.88807899 C12.4866723,4.49608833 12.8780204,4.22222222 13.3333333,4.22222222 C13.9469831,4.22222222 14.4444444,4.71968361 14.4444444,5.33333333 C14.4444444,5.94698306 13.9469831,6.44444444 13.3333333,6.44444444 C12.8776416,6.44444444 12.4860212,6.17012247 12.3146027,5.77760908 L10.1776822,5.7782086 C9.97161786,6.79232298 9.07494019,7.55555556 8,7.55555556 C6.92505981,7.55555556 6.02838214,6.79232298 5.82231777,5.7782086 L3.68539731,5.77760908 C3.51397881,6.17012247 3.1223584,6.44444444 2.66666667,6.44444444 C2.05301694,6.44444444 1.55555556,5.94698306 1.55555556,5.33333333 C1.55555556,4.71968361 2.05301694,4.22222222 2.66666667,4.22222222 C3.12197961,4.22222222 3.51332769,4.49608833 3.68496938,4.88807899 L5.82231777,4.88845806 C6.02838214,3.87434369 6.92505981,3.11111111 8,3.11111111 Z M8,4 C7.26362033,4 6.66666667,4.59695367 6.66666667,5.33333333 C6.66666667,6.069713 7.26362033,6.66666667 8,6.66666667 C8.73637967,6.66666667 9.33333333,6.069713 9.33333333,5.33333333 C9.33333333,4.59695367 8.73637967,4 8,4 Z M2.66666667,4.66666667 C2.29847683,4.66666667 2,4.9651435 2,5.33333333 C2,5.70152317 2.29847683,6 2.66666667,6 C3.0348565,6 3.33333333,5.70152317 3.33333333,5.33333333 C3.33333333,4.9651435 3.0348565,4.66666667 2.66666667,4.66666667 Z M13.3333333,4.66666667 C12.9651435,4.66666667 12.6666667,4.9651435 12.6666667,5.33333333 C12.6666667,5.70152317 12.9651435,6 13.3333333,6 C13.7015232,6 14,5.70152317 14,5.33333333 C14,4.9651435 13.7015232,4.66666667 13.3333333,4.66666667 Z" })))),
22
+ type: canvas_draw_1.PATH_FUNC_TYPE.EQUAL,
23
+ name: '平衡对称',
24
+ },
25
+ {
26
+ icon: (React.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16" },
27
+ React.createElement("g", { stroke: "none", fill: "currentColor", fillRule: "nonzero" },
28
+ React.createElement("path", { d: "M4.9025467,7.08260023 C5.51453959,8.16114343 6.67228277,8.88888889 8,8.88888889 C8.74203543,8.88888889 9.43097987,8.66157939 10.0009996,8.27279411 L10.1137604,8.37175614 L10.1137604,8.37175614 L10.2225556,8.46711111 L10.2278018,8.60314648 C10.3091765,9.75637815 11.2705058,10.6666667 12.4444444,10.6666667 L12.5461712,10.6633099 C12.6121342,10.7325386 12.6759208,10.800472 12.7375309,10.8671103 C13.1124477,11.272636 13.087643,11.9053101 12.6821225,12.2802325 C12.4973359,12.4510762 12.2549271,12.5459649 12.0032653,12.5459649 L3.027292,12.5459649 C2.47501636,12.5459484 2.0273085,12.0982406 2.0273085,11.5459649 C2.0273085,11.5303612 2.02767373,11.5147595 2.02840387,11.4991728 C2.13302028,9.26588707 3.09106789,7.7936962 4.9025467,7.08260023 Z M8,3.11111111 C9.22729944,3.11111111 10.2222222,4.10603389 10.2222222,5.33333333 C10.2222222,5.49236269 10.2055174,5.64749043 10.1737666,5.79705753 L11.8370907,7.45894334 C12.2356667,7.30306411 12.7061115,7.38611945 13.0281014,7.70810937 C13.4620173,8.14202525 13.4620173,8.84554189 13.0281014,9.27945777 C12.5941856,9.71337365 11.8906689,9.71337365 11.456753,9.27945777 C11.1345303,8.95723505 11.0515878,8.48634268 11.2079255,8.08758262 L9.78192352,6.66134751 C9.37675045,7.20412589 8.72941562,7.55555556 8,7.55555556 C6.92505981,7.55555556 6.02838214,6.79232298 5.82231777,5.7782086 L3.68539731,5.77760908 C3.51397881,6.17012247 3.1223584,6.44444444 2.66666667,6.44444444 C2.05301694,6.44444444 1.55555556,5.94698306 1.55555556,5.33333333 C1.55555556,4.71968361 2.05301694,4.22222222 2.66666667,4.22222222 C3.07649292,4.22222222 3.43449636,4.44410206 3.62710432,4.77428908 L3.68502542,4.888207 L5.82231777,4.88845806 C6.02838214,3.87434369 6.92505981,3.11111111 8,3.11111111 Z M11.7710227,8.02237905 C11.5106732,8.28272858 11.5106732,8.70483856 11.7710227,8.96518809 C12.0313722,9.22553762 12.4534822,9.22553762 12.7138318,8.96518809 C12.9741813,8.70483856 12.9741813,8.28272858 12.7138318,8.02237905 C12.4534822,7.76202952 12.0313722,7.76202952 11.7710227,8.02237905 Z M8,4 C7.26362033,4 6.66666667,4.59695367 6.66666667,5.33333333 C6.66666667,6.069713 7.26362033,6.66666667 8,6.66666667 C8.73637967,6.66666667 9.33333333,6.069713 9.33333333,5.33333333 C9.33333333,4.59695367 8.73637967,4 8,4 Z M2.66666667,4.66666667 C2.29847683,4.66666667 2,4.9651435 2,5.33333333 C2,5.70152317 2.29847683,6 2.66666667,6 C3.0348565,6 3.33333333,5.70152317 3.33333333,5.33333333 C3.33333333,4.9651435 3.0348565,4.66666667 2.66666667,4.66666667 Z" })))),
29
+ type: canvas_draw_1.PATH_FUNC_TYPE.BREAK,
30
+ name: '断开链接',
31
+ },
32
+ {
33
+ icon: (React.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16" },
34
+ React.createElement("g", { stroke: "none", fill: "currentColor", fillRule: "nonzero" },
35
+ React.createElement("path", { d: "M9.48113654,6.75735761 C11.4348163,7.48824028 12.802824,8.97509642 13.5854936,11.2162897 C13.7675572,11.7376913 13.4924892,12.307972 12.9710939,12.4900537 C12.8651151,12.5270636 12.7536611,12.5459649 12.6414058,12.5459649 L2.93734326,12.5459649 C2.41280388,12.5459761 1.97740772,12.1406813 1.93989294,11.6174852 C1.79069809,9.53675393 2.20550284,8.05786209 3.18430719,7.18080967 C3.80834692,8.20534701 4.93545969,8.88888889 6.22222222,8.88888889 C7.67952934,8.88888889 8.93206301,8.01214956 9.48113654,6.75735761 Z M8.39990445,5.7782086 C8.19384008,6.79232298 7.29716241,7.55555556 6.22222222,7.55555556 C5.14728203,7.55555556 4.25060437,6.79232298 4.04453999,5.7782086 L3.68539731,5.77760908 C3.51397881,6.17012247 3.1223584,6.44444444 2.66666667,6.44444444 C2.05301694,6.44444444 1.55555556,5.94698306 1.55555556,5.33333333 C1.55555556,4.71968361 2.05301694,4.22222222 2.66666667,4.22222222 C3.07649292,4.22222222 3.43449636,4.44410206 3.62710432,4.77428908 L3.68502542,4.888207 L4.04453999,4.88845806 C4.25060437,3.87434369 5.14728203,3.11111111 6.22222222,3.11111111 C7.29716241,3.11111111 8.19384008,3.87434369 8.39990445,4.88845806 L10.5371968,4.888207 C10.7088093,4.49614795 11.1001931,4.22222222 11.5555556,4.22222222 C12.1692053,4.22222222 12.6666667,4.71968361 12.6666667,5.33333333 C12.6666667,5.94698306 12.1692053,6.44444444 11.5555556,6.44444444 C11.0998638,6.44444444 10.7082434,6.17012247 10.5368249,5.77760908 Z M6.22222222,4 C5.48584256,4 4.88888889,4.59695367 4.88888889,5.33333333 C4.88888889,6.069713 5.48584256,6.66666667 6.22222222,6.66666667 C6.95860189,6.66666667 7.55555556,6.069713 7.55555556,5.33333333 C7.55555556,4.59695367 6.95860189,4 6.22222222,4 Z M11.5555556,4.66666667 C11.1873657,4.66666667 10.8888889,4.9651435 10.8888889,5.33333333 C10.8888889,5.70152317 11.1873657,6 11.5555556,6 C11.9237454,6 12.2222222,5.70152317 12.2222222,5.33333333 C12.2222222,4.9651435 11.9237454,4.66666667 11.5555556,4.66666667 Z M2.66666667,4.66666667 C2.29847683,4.66666667 2,4.9651435 2,5.33333333 C2,5.70152317 2.29847683,6 2.66666667,6 C3.0348565,6 3.33333333,5.70152317 3.33333333,5.33333333 C3.33333333,4.9651435 3.0348565,4.66666667 2.66666667,4.66666667 Z" })))),
36
+ type: canvas_draw_1.PATH_FUNC_TYPE.UNEQUAL,
37
+ name: '平衡不对称',
38
+ },
39
+ ];
40
+ const getLeftRightCenterPoint = (item) => {
41
+ var _a, _b, _c, _d;
42
+ const l = { x: (_a = item.x1) !== null && _a !== void 0 ? _a : item.x, y: (_b = item.y1) !== null && _b !== void 0 ? _b : item.y };
43
+ const r = { x: (_c = item.x2) !== null && _c !== void 0 ? _c : item.x, y: (_d = item.y2) !== null && _d !== void 0 ? _d : item.y };
44
+ const c = { x: item.x, y: item.y };
45
+ return {
46
+ left: l,
47
+ right: r,
48
+ center: c,
49
+ };
50
+ };
51
+ exports.getLeftRightCenterPoint = getLeftRightCenterPoint;
52
+ const getBezierHullByPos = (points, pos) => {
53
+ // 判断是二次还是三次贝塞尔曲线
54
+ /* const [x1, y1, x2, y2, x3, y3, x4, y4] = points;
55
+ let p: BezierArray | BezierArray<number, 6> = points;
56
+ const isQuadratic = x1 === x2 && y1 === y2 || x3 === x4 && y3 === y4;
57
+ if (isQuadratic) {
58
+ const xB = x1 === x2 && y1 === y2 ? x3 : x1;
59
+ const yB = x1 === x2 && y1 === y2 ? y3 : y1;
60
+ p = [x1, y1, xB, yB, x4, y4];
61
+ } */
62
+ const bezier = new bezier_js_1.Bezier(...points);
63
+ const { t = 0 } = bezier.project(pos);
64
+ const h = bezier.hull(t);
65
+ const hull = h.slice(-6);
66
+ return hull;
67
+ };
68
+ exports.getBezierHullByPos = getBezierHullByPos;
69
+ /**
70
+ * 按点获取扩展点
71
+ * @param c
72
+ * @param s
73
+ * @returns
74
+ */
75
+ const getExtendPositionByPoint = (c, s) => ({ x: c.x * 2 - s.x, y: c.y * 2 - s.y });
76
+ exports.getExtendPositionByPoint = getExtendPositionByPoint;
77
+ const getExtendPositionByRadius = (c, p, r) => {
78
+ const ang = (Math.atan2(p.y - c.y, p.x - c.x) / Math.PI) * 180;
79
+ const angle = 180 + ang;
80
+ const x = c.x + r * Math.cos((angle * Math.PI) / 180);
81
+ const y = c.y + r * Math.sin((angle * Math.PI) / 180);
82
+ // console.log(ang, angle);
83
+ return { x, y };
84
+ };
85
+ exports.getExtendPositionByRadius = getExtendPositionByRadius;
86
+ /**
87
+ * 获取点击线上的新增点
88
+ */
89
+ const getNewPoint = (point, nextPoint, pos) => {
90
+ var _a, _b, _c, _d;
91
+ const afterQuadratic = point.type === canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT &&
92
+ nextPoint.type !== canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT &&
93
+ typeof nextPoint.x1 === 'number' &&
94
+ typeof nextPoint.y1 === 'number';
95
+ const beforeQuadratic = point.type !== canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT &&
96
+ nextPoint.type === canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT &&
97
+ typeof point.x2 === 'number' &&
98
+ typeof point.y2 === 'number';
99
+ const isQuadratic = beforeQuadratic || afterQuadratic;
100
+ const bezier = [
101
+ point.x,
102
+ point.y,
103
+ (_a = point.x2) !== null && _a !== void 0 ? _a : point.x,
104
+ (_b = point.y2) !== null && _b !== void 0 ? _b : point.y,
105
+ (_c = nextPoint.x1) !== null && _c !== void 0 ? _c : nextPoint.x,
106
+ (_d = nextPoint.y1) !== null && _d !== void 0 ? _d : nextPoint.y,
107
+ nextPoint.x,
108
+ nextPoint.y,
109
+ ];
110
+ if (isQuadratic) {
111
+ // 转换三次贝赛尔
112
+ const cubic = (0, canvas_draw_1.quadraticToCubic)({
113
+ x: point.x,
114
+ y: point.y,
115
+ }, {
116
+ x: beforeQuadratic ? point.x2 : nextPoint.x1,
117
+ y: beforeQuadratic ? point.y2 : nextPoint.y1,
118
+ }, {
119
+ x: nextPoint.x,
120
+ y: nextPoint.y,
121
+ });
122
+ bezier[2] = cubic[0];
123
+ bezier[3] = cubic[1];
124
+ bezier[4] = cubic[2];
125
+ bezier[5] = cubic[3];
126
+ }
127
+ const hull = (0, exports.getBezierHullByPos)(bezier, pos);
128
+ /**
129
+ * 0, 1, 2: 二次贝赛尔点,1为中心点,没用
130
+ * 3, 4: 三次点,
131
+ * 5: 新增点
132
+ */
133
+ const newPoint = {
134
+ x: hull[5].x,
135
+ y: hull[5].y,
136
+ x1: hull[3].x,
137
+ y1: hull[3].y,
138
+ x2: hull[4].x,
139
+ y2: hull[4].y,
140
+ id: (0, utils_1.generateUuid)(),
141
+ type: canvas_draw_1.PATH_FUNC_TYPE.UNEQUAL,
142
+ };
143
+ let pCenter;
144
+ if (point.type !== canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT) {
145
+ point.type = canvas_draw_1.PATH_FUNC_TYPE.UNEQUAL;
146
+ point.x2 = (0, canvas_draw_1.toFixedValue)(hull[0].x, 4);
147
+ point.y2 = (0, canvas_draw_1.toFixedValue)(hull[0].y, 4);
148
+ }
149
+ else {
150
+ // 不是贝赛尔时,转换回二次贝赛尔点;
151
+ pCenter = (0, canvas_draw_1.cubicToQuadratic)(hull[5], hull[3]);
152
+ newPoint.x1 = (0, canvas_draw_1.toFixedValue)(pCenter.x, 4);
153
+ newPoint.y1 = (0, canvas_draw_1.toFixedValue)(pCenter.y, 4);
154
+ }
155
+ if (nextPoint.type !== canvas_draw_1.PATH_FUNC_TYPE.STRAIGHT) {
156
+ nextPoint.type = canvas_draw_1.PATH_FUNC_TYPE.UNEQUAL;
157
+ nextPoint.x1 = (0, canvas_draw_1.toFixedValue)(hull[2].x, 4);
158
+ nextPoint.y1 = (0, canvas_draw_1.toFixedValue)(hull[2].y, 4);
159
+ }
160
+ else {
161
+ pCenter = (0, canvas_draw_1.cubicToQuadratic)(hull[5], hull[4]);
162
+ newPoint.x2 = (0, canvas_draw_1.toFixedValue)(pCenter.x, 4);
163
+ newPoint.y2 = (0, canvas_draw_1.toFixedValue)(pCenter.y, 4);
164
+ }
165
+ return newPoint;
166
+ };
167
+ exports.getNewPoint = getNewPoint;
168
+ const setBezierMovePoint = (path, key, pos) => {
169
+ const { type } = path;
170
+ const x = key === 'left' ? 'x1' : 'x2';
171
+ const x1 = key === 'left' ? 'x2' : 'x1';
172
+ const y = key === 'left' ? 'y1' : 'y2';
173
+ const y1 = key === 'left' ? 'y2' : 'y1';
174
+ const center = { x: path.x, y: path.y };
175
+ const currentPoint = { x: pos.x, y: pos.y };
176
+ path[x] = (0, canvas_draw_1.toFixedValue)(pos.x, 4);
177
+ path[y] = (0, canvas_draw_1.toFixedValue)(pos.y, 4);
178
+ let p2 = false;
179
+ const isOnly = typeof path[x1] === 'undefined' && typeof path[y1] === 'undefined';
180
+ if (!isOnly) {
181
+ switch (type) {
182
+ case canvas_draw_1.PATH_FUNC_TYPE.EQUAL:
183
+ p2 = (0, exports.getExtendPositionByPoint)(center, currentPoint);
184
+ break;
185
+ case canvas_draw_1.PATH_FUNC_TYPE.UNEQUAL:
186
+ // 取半径,走圆周;
187
+ const radius = (0, canvas_draw_1.getLineWidth)(center, { x: path[x1], y: path[y1] });
188
+ p2 = (0, exports.getExtendPositionByRadius)(center, currentPoint, radius);
189
+ break;
190
+ default:
191
+ break;
192
+ }
193
+ if (p2) {
194
+ path[x1] = (0, canvas_draw_1.toFixedValue)(p2.x, 4);
195
+ path[y1] = (0, canvas_draw_1.toFixedValue)(p2.y, 4);
196
+ }
197
+ }
198
+ return path;
199
+ };
200
+ exports.setBezierMovePoint = setBezierMovePoint;
201
+ const updatePathNodeData = (node) => {
202
+ const { position, origin, path } = node;
203
+ const { paths: p = [], closed } = path;
204
+ const paths = [...p];
205
+ if (closed) {
206
+ paths.push(paths[0]);
207
+ }
208
+ const bounds = (0, canvas_draw_1.getPathBounds)(paths);
209
+ const x = bounds.minX + bounds.width * ((origin === null || origin === void 0 ? void 0 : origin.x) || 0.5);
210
+ const y = bounds.minY + bounds.height * ((origin === null || origin === void 0 ? void 0 : origin.y) || 0.5);
211
+ const newPath = p.map(c => {
212
+ const item = Object.assign(Object.assign({}, c), { x: (0, canvas_draw_1.toFixedValue)(c.x - x, 4), y: (0, canvas_draw_1.toFixedValue)(c.y - y, 4) });
213
+ if (typeof c.x1 === 'number') {
214
+ item.x1 = (0, canvas_draw_1.toFixedValue)(c.x1 - x, 4);
215
+ }
216
+ if (typeof c.x2 === 'number') {
217
+ item.x2 = (0, canvas_draw_1.toFixedValue)(c.x2 - x, 4);
218
+ }
219
+ if (typeof c.y1 === 'number') {
220
+ item.y1 = (0, canvas_draw_1.toFixedValue)(c.y1 - y, 4);
221
+ }
222
+ if (typeof c.y2 === 'number') {
223
+ item.y2 = (0, canvas_draw_1.toFixedValue)(c.y2 - y, 4);
224
+ }
225
+ return item;
226
+ });
227
+ return {
228
+ path: Object.assign(Object.assign({}, path), { paths: newPath }),
229
+ position: {
230
+ x: x + ((position === null || position === void 0 ? void 0 : position.x) || 0),
231
+ y: y + ((position === null || position === void 0 ? void 0 : position.y) || 0),
232
+ },
233
+ };
234
+ };
235
+ exports.updatePathNodeData = updatePathNodeData;
236
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/browser/playground/path-edit/utils.tsx"],"names":[],"mappings":"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"}
@@ -1,36 +1,56 @@
1
1
  import * as React from 'react';
2
- import { EditorStateConfigEntity, Layer } from '@gedit/playground';
2
+ import { EditorStateConfigEntity, Layer, SelectorBoxConfigEntity } from '@gedit/playground';
3
3
  import { DocumentEntity } from './entities/document-entity';
4
4
  import { Editor2dDocument, Editor2dPathNode } from '../model';
5
5
  import { PlaygroundContext2d } from './playground-context';
6
6
  import { PathChild } from '@gedit/canvas-draw';
7
- import { PointSchema } from './path-edit-layer-move-point';
7
+ import { Disposable } from '@gedit/utils';
8
+ import { PointSchema } from './path-edit';
9
+ export interface PathEditLayerEventContextProps {
10
+ onPointMouseDown: (e: React.MouseEvent, p: PathChild) => void;
11
+ onClosePath: () => void;
12
+ onSceneAddEvent: (event: keyof HTMLElementEventMap, cb: (e: MouseEvent) => void, toDispose?: boolean) => Disposable;
13
+ onBezierPointMouseDown: (e: React.MouseEvent, p: PathChild, key: string) => void;
14
+ onPathAddPoint: (index: number, e: React.MouseEvent) => void;
15
+ }
16
+ export declare const PathEditLayerEventContext: React.Context<PathEditLayerEventContextProps>;
8
17
  /**
9
18
  * 动态绘制层
10
19
  */
11
20
  export declare class PathEditLayer extends Layer<PlaygroundContext2d> {
12
21
  node: HTMLDivElement;
13
22
  protected editorState: EditorStateConfigEntity;
23
+ protected selectorConfig: SelectorBoxConfigEntity;
14
24
  documentEntity: DocumentEntity;
15
- protected hideMovePoint: boolean;
16
25
  currentPathNode?: Editor2dPathNode;
17
- currentPointId?: string;
18
26
  startPos?: PathChild;
19
- selectId?: string;
27
+ protected bezierStartPos?: {
28
+ x: number;
29
+ y: number;
30
+ key: 'left' | 'right';
31
+ path: PathChild;
32
+ };
33
+ get document(): Editor2dDocument | undefined;
20
34
  get isEnabled(): boolean;
21
35
  onZoom(scale: number): void;
36
+ addDispose(disposable: Disposable[]): void;
37
+ reNodeData(): void;
38
+ updateNodeData(): void;
39
+ protected isOnePoint(point?: PathChild): boolean;
40
+ protected isLastPoint(point?: PathChild): boolean;
41
+ protected getPointIsStartOrEnd(point?: PathChild): boolean;
22
42
  onReady(): void;
23
43
  /**
24
44
  * 创建路径
25
45
  * @param pos - 当前鼠标点击的位置
26
46
  */
27
- drawPath(pos: PointSchema): void;
28
- get document(): Editor2dDocument | undefined;
29
- protected onBezierPointMouseDown(e: React.MouseEvent, p: PathChild, key: string): void;
30
- protected onPointMouseDown(e: React.MouseEvent, node: Editor2dPathNode, p: PathChild): void;
31
- protected onHideMovePoint(): void;
32
- protected onShowMovePoint(): void;
33
- protected getBezierPoint(node?: Editor2dPathNode): JSX.Element[];
47
+ initPath(pos: PointSchema): void;
48
+ protected onBezierPointMove(pos: PointSchema): void;
49
+ protected onBezierPointMouseDown(e: React.MouseEvent, p: PathChild, key: 'left' | 'right'): void;
50
+ protected onSceneAddEvent(e: keyof HTMLElementEventMap, cb: (e: MouseEvent) => void, toDispose?: boolean): Disposable;
51
+ protected onPointMouseDown(e: React.MouseEvent, currentPoint: PathChild): void;
52
+ protected onPathAddPoint(i: number, e: React.MouseEvent): void;
53
+ protected onClosePath(): void;
34
54
  draw(): JSX.Element;
35
55
  }
36
56
  //# sourceMappingURL=path-edit-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-edit-layer.d.ts","sourceRoot":"","sources":["../../../src/browser/playground/path-edit-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAU,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAuB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAgB,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAKzE;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAC3D,IAAI,iBAAwD;IAE5D,SAAS,CAAC,WAAW,EAAE,uBAAuB,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IACvD,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IAEjC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,IAAI,IAAI;IA8Df;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAiChC,IAAI,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAE3C;IAED,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKtF,SAAS,CAAC,gBAAgB,CACxB,CAAC,EAAE,KAAK,CAAC,UAAU,EACnB,IAAI,EAAE,gBAAgB,EACtB,CAAC,EAAE,SAAS,GACX,IAAI;IA+BP,SAAS,CAAC,eAAe,IAAI,IAAI;IAIjC,SAAS,CAAC,eAAe,IAAI,IAAI;IAKjC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE;IAwEhE,IAAI,IAAI,GAAG,CAAC,OAAO;CA8DpB"}
1
+ {"version":3,"file":"path-edit-layer.d.ts","sourceRoot":"","sources":["../../../src/browser/playground/path-edit-layer.tsx"],"names":[],"mappings":"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"}