@plait/draw 0.1.0-next.5 → 0.1.0-next.7
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/esm2022/generators/geometry-shape.generator.mjs +22 -0
- package/esm2022/generators/line-active.generator.mjs +36 -0
- package/esm2022/generators/line.generator.mjs +45 -0
- package/esm2022/geometry.component.mjs +7 -5
- package/esm2022/interfaces/element.mjs +6 -0
- package/esm2022/interfaces/geometry.mjs +1 -1
- package/esm2022/interfaces/index.mjs +2 -1
- package/esm2022/interfaces/line.mjs +1 -1
- package/esm2022/line.component.mjs +3 -3
- package/esm2022/plugins/with-draw-fragment.mjs +5 -10
- package/esm2022/plugins/with-draw-hotkey.mjs +7 -3
- package/esm2022/plugins/with-draw.mjs +4 -4
- package/esm2022/plugins/with-geometry-create.mjs +2 -2
- package/esm2022/plugins/with-line-bound-reaction.mjs +2 -2
- package/esm2022/plugins/with-line-create.mjs +2 -2
- package/esm2022/plugins/with-line-text.mjs +3 -3
- package/esm2022/utils/geometry.mjs +2 -2
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/line.mjs +18 -13
- package/esm2022/utils/style/index.mjs +2 -0
- package/esm2022/utils/style/stroke.mjs +21 -0
- package/fesm2022/plait-draw.mjs +43 -25
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/geometry.component.d.ts +1 -1
- package/interfaces/element.d.ts +4 -0
- package/interfaces/geometry.d.ts +1 -1
- package/interfaces/index.d.ts +1 -0
- package/interfaces/line.d.ts +1 -1
- package/line.component.d.ts +2 -2
- package/package.json +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/line.d.ts +3 -1
- package/utils/style/index.d.ts +1 -0
- package/utils/{geometry-style → style}/stroke.d.ts +2 -1
- package/esm2022/generator/geometry-shape.generator.mjs +0 -22
- package/esm2022/generator/line-active.generator.mjs +0 -36
- package/esm2022/generator/line.generator.mjs +0 -43
- package/esm2022/utils/geometry-style/stroke.mjs +0 -17
- /package/{generator → generators}/geometry-shape.generator.d.ts +0 -0
- /package/{generator → generators}/line-active.generator.d.ts +0 -0
- /package/{generator → generators}/line.generator.d.ts +0 -0
package/geometry.component.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ChangeDetectorRef, OnDestroy, OnInit, ViewContainerRef } from '@angular
|
|
|
2
2
|
import { PlaitBoard, PlaitPluginElementComponent, PlaitPluginElementContext, OnContextChanged } from '@plait/core';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { PlaitGeometry } from './interfaces/geometry';
|
|
5
|
-
import { GeometryShapeGenerator } from './
|
|
5
|
+
import { GeometryShapeGenerator } from './generators/geometry-shape.generator';
|
|
6
6
|
import { TextManage } from '@plait/text';
|
|
7
7
|
import { ActiveGenerator } from '@plait/common';
|
|
8
8
|
import * as i0 from "@angular/core";
|
package/interfaces/geometry.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlaitBoard, PlaitElement, Point, RectangleClient } from '@plait/core';
|
|
2
2
|
import { Options } from 'roughjs/bin/core';
|
|
3
|
-
import { StrokeStyle } from './line';
|
|
4
3
|
import { ParagraphElement } from '@plait/text';
|
|
4
|
+
import { StrokeStyle } from './element';
|
|
5
5
|
export declare enum GeometryShape {
|
|
6
6
|
rectangle = "rectangle",
|
|
7
7
|
ellipse = "ellipse",
|
package/interfaces/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PlaitText } from './text';
|
|
|
4
4
|
export * from './line';
|
|
5
5
|
export * from './geometry';
|
|
6
6
|
export * from './text';
|
|
7
|
+
export * from './element';
|
|
7
8
|
export type PlaitDrawElement = PlaitGeometry | PlaitLine;
|
|
8
9
|
export declare const PlaitDrawElement: {
|
|
9
10
|
isGeometry: (value: any) => value is PlaitGeometry;
|
package/interfaces/line.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PlaitElement, Point } from '@plait/core';
|
|
2
2
|
import { Element } from 'slate';
|
|
3
3
|
import { PlaitGeometry } from './geometry';
|
|
4
|
+
import { StrokeStyle } from './element';
|
|
4
5
|
export declare enum LineMarkerType {
|
|
5
6
|
arrow = "arrow",
|
|
6
7
|
none = "none"
|
|
@@ -33,7 +34,6 @@ export interface PlaitLine extends PlaitElement {
|
|
|
33
34
|
strokeStyle?: StrokeStyle;
|
|
34
35
|
opacity: number;
|
|
35
36
|
}
|
|
36
|
-
export type StrokeStyle = 'solid' | 'dashed';
|
|
37
37
|
export interface PlaitStraightLine extends PlaitLine {
|
|
38
38
|
shape: LineShape.straight;
|
|
39
39
|
}
|
package/line.component.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { PlaitBoard, PlaitPluginElementComponent, PlaitPluginElementContext, OnC
|
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { LineText, PlaitGeometry, PlaitLine } from './interfaces';
|
|
5
5
|
import { TextManage } from '@plait/text';
|
|
6
|
-
import { LineShapeGenerator } from './
|
|
7
|
-
import { LineActiveGenerator } from './
|
|
6
|
+
import { LineShapeGenerator } from './generators/line.generator';
|
|
7
|
+
import { LineActiveGenerator } from './generators/line-active.generator';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
interface BoundedElements {
|
|
10
10
|
source?: PlaitGeometry;
|
package/package.json
CHANGED
package/utils/index.d.ts
CHANGED
package/utils/line.d.ts
CHANGED
|
@@ -2,11 +2,13 @@ import { Point, PlaitBoard, RectangleClient } from '@plait/core';
|
|
|
2
2
|
import { LineHandle, LineShape, PlaitGeometry, PlaitLine } from '../interfaces';
|
|
3
3
|
import { Options } from 'roughjs/bin/core';
|
|
4
4
|
export declare const createLineElement: (shape: LineShape, points: [Point, Point], source: LineHandle, target: LineHandle, options?: Pick<PlaitLine, 'strokeColor' | 'strokeWidth'>) => PlaitLine;
|
|
5
|
+
export declare const getLinePoints: (board: PlaitBoard, element: PlaitLine) => Point[];
|
|
6
|
+
export declare const getStraightPoints: (board: PlaitBoard, element: PlaitLine) => Point[];
|
|
5
7
|
export declare const getElbowPoints: (board: PlaitBoard, element: PlaitLine) => Point[];
|
|
6
8
|
export declare const isHitPolyLine: (pathPoints: Point[], point: Point, strokeWidth: number, expand?: number) => boolean;
|
|
7
9
|
export declare const getHitLineTextIndex: (board: PlaitBoard, element: PlaitLine, point: Point) => number;
|
|
8
10
|
export declare const isHitLineText: (board: PlaitBoard, element: PlaitLine, point: Point) => boolean;
|
|
9
|
-
export declare const
|
|
11
|
+
export declare const drawLine: (board: PlaitBoard, element: PlaitLine) => SVGGElement;
|
|
10
12
|
export declare const drawLineArrow: (element: PlaitLine, points: Point[], options: Options) => SVGGElement | null;
|
|
11
13
|
export declare const getSourcePoint: (board: PlaitBoard, element: PlaitLine) => Point;
|
|
12
14
|
export declare const getTargetPoint: (board: PlaitBoard, element: PlaitLine) => Point;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './stroke';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { PlaitGeometry, PlaitLine } from '../../interfaces';
|
|
1
|
+
import { PlaitGeometry, PlaitLine, StrokeStyle } from '../../interfaces';
|
|
2
2
|
export declare const getStrokeWidthByElement: (element: PlaitGeometry | PlaitLine) => number;
|
|
3
3
|
export declare const getStrokeColorByElement: (element: PlaitGeometry | PlaitLine) => string;
|
|
4
4
|
export declare const getFillByElement: (element: PlaitGeometry | PlaitLine) => any;
|
|
5
5
|
export declare const getLineDashByElement: (element: PlaitGeometry | PlaitLine) => number[] | undefined;
|
|
6
|
+
export declare const getStrokeStyleByElement: (element: PlaitGeometry | PlaitLine) => StrokeStyle;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { GeometryShape } from '../interfaces';
|
|
2
|
-
import { getRectangleByPoints, Generator } from '@plait/common';
|
|
3
|
-
import { getFillByElement, getLineDashByElement, getStrokeColorByElement, getStrokeWidthByElement } from '../utils/geometry-style/stroke';
|
|
4
|
-
import { drawGeometry } from '../utils';
|
|
5
|
-
export class GeometryShapeGenerator extends Generator {
|
|
6
|
-
canDraw(element, data) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
baseDraw(element, data) {
|
|
10
|
-
const outerRectangle = getRectangleByPoints(element.points);
|
|
11
|
-
const shape = element.shape;
|
|
12
|
-
if (shape === GeometryShape.text) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
const strokeWidth = getStrokeWidthByElement(element);
|
|
16
|
-
const strokeColor = getStrokeColorByElement(element);
|
|
17
|
-
const fill = getFillByElement(element);
|
|
18
|
-
const strokeLineDash = getLineDashByElement(element);
|
|
19
|
-
return drawGeometry(this.board, outerRectangle, shape, { stroke: strokeColor, strokeWidth, fill, strokeLineDash });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9yL2dlb21ldHJ5LXNoYXBlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJeEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQW1DO0lBQzNFLE9BQU8sQ0FBQyxPQUFzQixFQUFFLElBQWU7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFzQixFQUFFLElBQWU7UUFDNUMsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDNUIsSUFBSSxLQUFLLEtBQUssYUFBYSxDQUFDLElBQUksRUFBRTtZQUM5QixPQUFPO1NBQ1Y7UUFDRCxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN2SCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW9tZXRyeVNoYXBlLCBQbGFpdEdlb21ldHJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeVBvaW50cywgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBnZXRGaWxsQnlFbGVtZW50LCBnZXRMaW5lRGFzaEJ5RWxlbWVudCwgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQsIGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvZ2VvbWV0cnktc3R5bGUvc3Ryb2tlJztcbmltcG9ydCB7IGRyYXdHZW9tZXRyeSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFwZURhdGEge31cblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgZXh0ZW5kcyBHZW5lcmF0b3I8UGxhaXRHZW9tZXRyeSwgU2hhcGVEYXRhPiB7XG4gICAgY2FuRHJhdyhlbGVtZW50OiBQbGFpdEdlb21ldHJ5LCBkYXRhOiBTaGFwZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYmFzZURyYXcoZWxlbWVudDogUGxhaXRHZW9tZXRyeSwgZGF0YTogU2hhcGVEYXRhKSB7XG4gICAgICAgIGNvbnN0IG91dGVyUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IGVsZW1lbnQuc2hhcGU7XG4gICAgICAgIGlmIChzaGFwZSA9PT0gR2VvbWV0cnlTaGFwZS50ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlQ29sb3IgPSBnZXRTdHJva2VDb2xvckJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgZmlsbCA9IGdldEZpbGxCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUxpbmVEYXNoID0gZ2V0TGluZURhc2hCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBkcmF3R2VvbWV0cnkodGhpcy5ib2FyZCwgb3V0ZXJSZWN0YW5nbGUsIHNoYXBlLCB7IHN0cm9rZTogc3Ryb2tlQ29sb3IsIHN0cm9rZVdpZHRoLCBmaWxsLCBzdHJva2VMaW5lRGFzaCB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, createG, drawCircle } from '@plait/core';
|
|
2
|
-
import { Generator, RESIZE_HANDLE_DIAMETER } from '@plait/common';
|
|
3
|
-
import { getSourcePoint, getTargetPoint } from '../utils';
|
|
4
|
-
export class LineActiveGenerator extends Generator {
|
|
5
|
-
canDraw(element, data) {
|
|
6
|
-
if (data.selected) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
baseDraw(element, data) {
|
|
14
|
-
const activeG = createG();
|
|
15
|
-
activeG.classList.add('active');
|
|
16
|
-
activeG.classList.add('line-handle');
|
|
17
|
-
const sourcePoint = getSourcePoint(this.board, element);
|
|
18
|
-
const targetPoint = getTargetPoint(this.board, element);
|
|
19
|
-
const sourceCircle = drawCircle(PlaitBoard.getRoughSVG(this.board), sourcePoint, RESIZE_HANDLE_DIAMETER, {
|
|
20
|
-
stroke: '#999999',
|
|
21
|
-
strokeWidth: 1,
|
|
22
|
-
fill: '#FFF',
|
|
23
|
-
fillStyle: 'solid'
|
|
24
|
-
});
|
|
25
|
-
const targetCircle = drawCircle(PlaitBoard.getRoughSVG(this.board), targetPoint, RESIZE_HANDLE_DIAMETER, {
|
|
26
|
-
stroke: '#999999',
|
|
27
|
-
strokeWidth: 1,
|
|
28
|
-
fill: '#FFF',
|
|
29
|
-
fillStyle: 'solid'
|
|
30
|
-
});
|
|
31
|
-
activeG.appendChild(targetCircle);
|
|
32
|
-
activeG.appendChild(sourceCircle);
|
|
33
|
-
return activeG;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hY3RpdmUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9yL2xpbmUtYWN0aXZlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU0xRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBZ0M7SUFDckUsT0FBTyxDQUFDLE9BQWtCLEVBQUUsSUFBZ0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWtCLEVBQUUsSUFBZ0I7UUFDekMsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUNyRyxNQUFNLEVBQUUsU0FBUztZQUNqQixXQUFXLEVBQUUsQ0FBQztZQUNkLElBQUksRUFBRSxNQUFNO1lBQ1osU0FBUyxFQUFFLE9BQU87U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUNyRyxNQUFNLEVBQUUsU0FBUztZQUNqQixXQUFXLEVBQUUsQ0FBQztZQUNkLElBQUksRUFBRSxNQUFNO1lBQ1osU0FBUyxFQUFFLE9BQU87U0FDckIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIGNyZWF0ZUcsIGRyYXdDaXJjbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdExpbmUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlbmVyYXRvciwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0U291cmNlUG9pbnQsIGdldFRhcmdldFBvaW50IH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZURhdGEge1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTGluZUFjdGl2ZUdlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxQbGFpdExpbmUsIEFjdGl2ZURhdGE+IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFBsYWl0TGluZSwgZGF0YTogQWN0aXZlRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZGF0YS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiYXNlRHJhdyhlbGVtZW50OiBQbGFpdExpbmUsIGRhdGE6IEFjdGl2ZURhdGEpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGFjdGl2ZUcuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICAgIGFjdGl2ZUcuY2xhc3NMaXN0LmFkZCgnbGluZS1oYW5kbGUnKTtcbiAgICAgICAgY29uc3Qgc291cmNlUG9pbnQgPSBnZXRTb3VyY2VQb2ludCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSBnZXRUYXJnZXRQb2ludCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3Qgc291cmNlQ2lyY2xlID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCBzb3VyY2VQb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwge1xuICAgICAgICAgICAgc3Ryb2tlOiAnIzk5OTk5OScsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMSxcbiAgICAgICAgICAgIGZpbGw6ICcjRkZGJyxcbiAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Q2lyY2xlID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCB0YXJnZXRQb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwge1xuICAgICAgICAgICAgc3Ryb2tlOiAnIzk5OTk5OScsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMSxcbiAgICAgICAgICAgIGZpbGw6ICcjRkZGJyxcbiAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICB9KTtcbiAgICAgICAgYWN0aXZlRy5hcHBlbmRDaGlsZCh0YXJnZXRDaXJjbGUpO1xuICAgICAgICBhY3RpdmVHLmFwcGVuZENoaWxkKHNvdXJjZUNpcmNsZSk7XG4gICAgICAgIHJldHVybiBhY3RpdmVHO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { LineShape } from '../interfaces';
|
|
2
|
-
import { Generator, getRectangleByPoints } from '@plait/common';
|
|
3
|
-
import { drawElbowLine, getElbowPoints, getLineTextRectangle } from '../utils';
|
|
4
|
-
import { RectangleClient, createMask, createRect } from '@plait/core';
|
|
5
|
-
export class LineShapeGenerator extends Generator {
|
|
6
|
-
canDraw(element, data) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
baseDraw(element, data) {
|
|
10
|
-
const shape = element.shape;
|
|
11
|
-
let lineG;
|
|
12
|
-
switch (shape) {
|
|
13
|
-
case LineShape.elbow:
|
|
14
|
-
lineG = drawElbowLine(this.board, element);
|
|
15
|
-
drawMask(this.board, lineG, element);
|
|
16
|
-
break;
|
|
17
|
-
default:
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
return lineG;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function drawMask(board, g, element) {
|
|
24
|
-
const mask = createMask();
|
|
25
|
-
mask.setAttribute('id', element.id);
|
|
26
|
-
const points = getElbowPoints(board, element);
|
|
27
|
-
let rectangle = getRectangleByPoints(points);
|
|
28
|
-
rectangle = RectangleClient.getOutlineRectangle(rectangle, -3);
|
|
29
|
-
const maskRect = createRect(rectangle, {
|
|
30
|
-
fill: 'white'
|
|
31
|
-
});
|
|
32
|
-
mask.appendChild(maskRect);
|
|
33
|
-
const texts = element.texts;
|
|
34
|
-
texts.forEach((text, index) => {
|
|
35
|
-
const textRectangle = getLineTextRectangle(board, element, index);
|
|
36
|
-
const rect = createRect(textRectangle, {
|
|
37
|
-
fill: 'black'
|
|
38
|
-
});
|
|
39
|
-
mask.appendChild(rect);
|
|
40
|
-
});
|
|
41
|
-
g.appendChild(mask);
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3IvbGluZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9FLE9BQU8sRUFBYyxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUlsRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBK0I7SUFDbkUsT0FBTyxDQUFDLE9BQWtCLEVBQUUsSUFBZTtRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWtCLEVBQUUsSUFBZTtRQUN4QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksS0FBOEIsQ0FBQztRQUNuQyxRQUFRLEtBQUssRUFBRTtZQUNYLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2hCLEtBQUssR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxNQUFNO1lBQ1Y7Z0JBQ0ksTUFBTTtTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBaUIsRUFBRSxDQUFhLEVBQUUsT0FBa0I7SUFDbEUsTUFBTSxJQUFJLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsSUFBSSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFO1FBQ25DLElBQUksRUFBRSxPQUFPO0tBQ2hCLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzFCLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxJQUFJLEVBQUUsT0FBTztTQUNoQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGluZVNoYXBlLCBQbGFpdExpbmUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlbmVyYXRvciwgZ2V0UmVjdGFuZ2xlQnlQb2ludHMgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGRyYXdFbGJvd0xpbmUsIGdldEVsYm93UG9pbnRzLCBnZXRMaW5lVGV4dFJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgY3JlYXRlTWFzaywgY3JlYXRlUmVjdCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFwZURhdGEge31cblxuZXhwb3J0IGNsYXNzIExpbmVTaGFwZUdlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxQbGFpdExpbmUsIFNoYXBlRGF0YT4ge1xuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRMaW5lLCBkYXRhOiBTaGFwZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYmFzZURyYXcoZWxlbWVudDogUGxhaXRMaW5lLCBkYXRhOiBTaGFwZURhdGEpIHtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBlbGVtZW50LnNoYXBlO1xuICAgICAgICBsZXQgbGluZUc6IFNWR0dFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICBzd2l0Y2ggKHNoYXBlKSB7XG4gICAgICAgICAgICBjYXNlIExpbmVTaGFwZS5lbGJvdzpcbiAgICAgICAgICAgICAgICBsaW5lRyA9IGRyYXdFbGJvd0xpbmUodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgZHJhd01hc2sodGhpcy5ib2FyZCwgbGluZUcsIGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGluZUc7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmF3TWFzayhib2FyZDogUGxhaXRCb2FyZCwgZzogU1ZHRWxlbWVudCwgZWxlbWVudDogUGxhaXRMaW5lKSB7XG4gICAgY29uc3QgbWFzayA9IGNyZWF0ZU1hc2soKTtcbiAgICBtYXNrLnNldEF0dHJpYnV0ZSgnaWQnLCBlbGVtZW50LmlkKTtcbiAgICBjb25zdCBwb2ludHMgPSBnZXRFbGJvd1BvaW50cyhib2FyZCwgZWxlbWVudCk7XG4gICAgbGV0IHJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5UG9pbnRzKHBvaW50cyk7XG4gICAgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldE91dGxpbmVSZWN0YW5nbGUocmVjdGFuZ2xlLCAtMyk7XG4gICAgY29uc3QgbWFza1JlY3QgPSBjcmVhdGVSZWN0KHJlY3RhbmdsZSwge1xuICAgICAgICBmaWxsOiAnd2hpdGUnXG4gICAgfSk7XG4gICAgbWFzay5hcHBlbmRDaGlsZChtYXNrUmVjdCk7XG5cbiAgICBjb25zdCB0ZXh0cyA9IGVsZW1lbnQudGV4dHM7XG4gICAgdGV4dHMuZm9yRWFjaCgodGV4dCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdGV4dFJlY3RhbmdsZSA9IGdldExpbmVUZXh0UmVjdGFuZ2xlKGJvYXJkLCBlbGVtZW50LCBpbmRleCk7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBjcmVhdGVSZWN0KHRleHRSZWN0YW5nbGUsIHtcbiAgICAgICAgICAgIGZpbGw6ICdibGFjaydcbiAgICAgICAgfSk7XG4gICAgICAgIG1hc2suYXBwZW5kQ2hpbGQocmVjdCk7XG4gICAgfSk7XG4gICAgZy5hcHBlbmRDaGlsZChtYXNrKTtcbn1cbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { DefaultGeometryStyle } from '../../constants';
|
|
2
|
-
export const getStrokeWidthByElement = (element) => {
|
|
3
|
-
const strokeWidth = element.strokeWidth || DefaultGeometryStyle.strokeWidth;
|
|
4
|
-
return strokeWidth;
|
|
5
|
-
};
|
|
6
|
-
export const getStrokeColorByElement = (element) => {
|
|
7
|
-
const strokeColor = element.strokeColor || DefaultGeometryStyle.strokeColor;
|
|
8
|
-
return strokeColor;
|
|
9
|
-
};
|
|
10
|
-
export const getFillByElement = (element) => {
|
|
11
|
-
const fill = element.fill || DefaultGeometryStyle.fill;
|
|
12
|
-
return fill;
|
|
13
|
-
};
|
|
14
|
-
export const getLineDashByElement = (element) => {
|
|
15
|
-
return element.strokeStyle === 'dashed' ? [8, 8 + getStrokeWidthByElement(element)] : undefined;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Ryb2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvZ2VvbWV0cnktc3R5bGUvc3Ryb2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQzFFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksb0JBQW9CLENBQUMsV0FBVyxDQUFDO0lBQzVFLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQzFFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksb0JBQW9CLENBQUMsV0FBVyxDQUFDO0lBQzVFLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQ25FLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQ3ZFLE9BQU8sT0FBTyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDcEcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFBsYWl0TGluZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEdlb21ldHJ5U3R5bGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRHZW9tZXRyeSB8IFBsYWl0TGluZSkgPT4ge1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZWxlbWVudC5zdHJva2VXaWR0aCB8fCBEZWZhdWx0R2VvbWV0cnlTdHlsZS5zdHJva2VXaWR0aDtcbiAgICByZXR1cm4gc3Ryb2tlV2lkdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRHZW9tZXRyeSB8IFBsYWl0TGluZSkgPT4ge1xuICAgIGNvbnN0IHN0cm9rZUNvbG9yID0gZWxlbWVudC5zdHJva2VDb2xvciB8fCBEZWZhdWx0R2VvbWV0cnlTdHlsZS5zdHJva2VDb2xvcjtcbiAgICByZXR1cm4gc3Ryb2tlQ29sb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsbEJ5RWxlbWVudCA9IChlbGVtZW50OiBQbGFpdEdlb21ldHJ5IHwgUGxhaXRMaW5lKSA9PiB7XG4gICAgY29uc3QgZmlsbCA9IGVsZW1lbnQuZmlsbCB8fCBEZWZhdWx0R2VvbWV0cnlTdHlsZS5maWxsO1xuICAgIHJldHVybiBmaWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVEYXNoQnlFbGVtZW50ID0gKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdExpbmUpID0+IHtcbiAgICByZXR1cm4gZWxlbWVudC5zdHJva2VTdHlsZSA9PT0gJ2Rhc2hlZCcgPyBbOCwgOCArIGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpXSA6IHVuZGVmaW5lZDtcbn07XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
File without changes
|