@plait/draw 0.1.0-next.3
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/README.md +3 -0
- package/constants/geometry.d.ts +27 -0
- package/constants/index.d.ts +2 -0
- package/constants/line.d.ts +4 -0
- package/constants/pointer.d.ts +10 -0
- package/esm2022/constants/geometry.mjs +28 -0
- package/esm2022/constants/index.mjs +3 -0
- package/esm2022/constants/line.mjs +5 -0
- package/esm2022/constants/pointer.mjs +19 -0
- package/esm2022/generator/geometry-shape.generator.mjs +22 -0
- package/esm2022/generator/line-active.generator.mjs +36 -0
- package/esm2022/generator/line.generator.mjs +43 -0
- package/esm2022/geometry.component.mjs +118 -0
- package/esm2022/interfaces/geometry.mjs +20 -0
- package/esm2022/interfaces/index.mjs +24 -0
- package/esm2022/interfaces/line.mjs +12 -0
- package/esm2022/interfaces/text.mjs +2 -0
- package/esm2022/line.component.mjs +152 -0
- package/esm2022/plait-draw.mjs +5 -0
- package/esm2022/plugins/with-draw-fragment.mjs +51 -0
- package/esm2022/plugins/with-draw-hotkey.mjs +19 -0
- package/esm2022/plugins/with-draw.mjs +76 -0
- package/esm2022/plugins/with-geometry-create.mjs +164 -0
- package/esm2022/plugins/with-geometry-resize.mjs +71 -0
- package/esm2022/plugins/with-line-bound-reaction.mjs +45 -0
- package/esm2022/plugins/with-line-create.mjs +66 -0
- package/esm2022/plugins/with-line-resize.mjs +52 -0
- package/esm2022/plugins/with-line-text.mjs +55 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/transforms/geometry-text.mjs +54 -0
- package/esm2022/transforms/geometry.mjs +31 -0
- package/esm2022/transforms/index.mjs +14 -0
- package/esm2022/transforms/line.mjs +16 -0
- package/esm2022/utils/clipboard.mjs +23 -0
- package/esm2022/utils/create-mode.mjs +13 -0
- package/esm2022/utils/engine/diamond.mjs +20 -0
- package/esm2022/utils/engine/ellipse.mjs +55 -0
- package/esm2022/utils/engine/index.mjs +18 -0
- package/esm2022/utils/engine/parallelogram.mjs +30 -0
- package/esm2022/utils/engine/rectangle.mjs +18 -0
- package/esm2022/utils/engine/round-rectangle.mjs +49 -0
- package/esm2022/utils/geometry-style/stroke.mjs +17 -0
- package/esm2022/utils/geometry.mjs +84 -0
- package/esm2022/utils/index.mjs +5 -0
- package/esm2022/utils/line.mjs +145 -0
- package/esm2022/utils/position/geometry.mjs +28 -0
- package/esm2022/utils/position/line.mjs +34 -0
- package/esm2022/utils/selected.mjs +15 -0
- package/fesm2022/plait-draw.mjs +1602 -0
- package/fesm2022/plait-draw.mjs.map +1 -0
- package/generator/geometry-shape.generator.d.ts +8 -0
- package/generator/line-active.generator.d.ts +9 -0
- package/generator/line.generator.d.ts +8 -0
- package/geometry.component.d.ts +27 -0
- package/index.d.ts +5 -0
- package/interfaces/geometry.d.ts +43 -0
- package/interfaces/index.d.ts +13 -0
- package/interfaces/line.d.ts +44 -0
- package/interfaces/text.d.ts +5 -0
- package/line.component.d.ts +36 -0
- package/package.json +25 -0
- package/plugins/with-draw-fragment.d.ts +2 -0
- package/plugins/with-draw-hotkey.d.ts +2 -0
- package/plugins/with-draw.d.ts +2 -0
- package/plugins/with-geometry-create.d.ts +3 -0
- package/plugins/with-geometry-resize.d.ts +2 -0
- package/plugins/with-line-bound-reaction.d.ts +2 -0
- package/plugins/with-line-create.d.ts +2 -0
- package/plugins/with-line-resize.d.ts +2 -0
- package/plugins/with-line-text.d.ts +2 -0
- package/public-api.d.ts +4 -0
- package/styles/styles.scss +16 -0
- package/transforms/geometry-text.d.ts +5 -0
- package/transforms/geometry.d.ts +6 -0
- package/transforms/index.d.ts +10 -0
- package/transforms/line.d.ts +5 -0
- package/utils/clipboard.d.ts +4 -0
- package/utils/create-mode.d.ts +7 -0
- package/utils/engine/diamond.d.ts +2 -0
- package/utils/engine/ellipse.d.ts +4 -0
- package/utils/engine/index.d.ts +3 -0
- package/utils/engine/parallelogram.d.ts +4 -0
- package/utils/engine/rectangle.d.ts +2 -0
- package/utils/engine/round-rectangle.d.ts +5 -0
- package/utils/geometry-style/stroke.d.ts +5 -0
- package/utils/geometry.d.ts +16 -0
- package/utils/index.d.ts +4 -0
- package/utils/line.d.ts +16 -0
- package/utils/position/geometry.d.ts +13 -0
- package/utils/position/line.d.ts +10 -0
- package/utils/selected.d.ts +5 -0
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plait/draw",
|
|
3
|
+
"version": "0.1.0-next.3",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^16.0.0",
|
|
6
|
+
"@angular/core": "^16.0.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"module": "fesm2022/plait-draw.mjs",
|
|
12
|
+
"typings": "index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
"./package.json": {
|
|
15
|
+
"default": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./index.d.ts",
|
|
19
|
+
"esm2022": "./esm2022/plait-draw.mjs",
|
|
20
|
+
"esm": "./esm2022/plait-draw.mjs",
|
|
21
|
+
"default": "./fesm2022/plait-draw.mjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"sideEffects": false
|
|
25
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
.plait-board-container {
|
|
2
|
+
&.pointer-text {
|
|
3
|
+
.board-host-svg {
|
|
4
|
+
cursor: default;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
&.pointer-rectangle,
|
|
8
|
+
&.pointer-line {
|
|
9
|
+
.board-host-svg {
|
|
10
|
+
cursor: crosshair;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
&.draw-line-resizing .element-active-host .line-handle {
|
|
14
|
+
display: none;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
import { Element } from 'slate';
|
|
3
|
+
import { PlaitGeometry } from '../interfaces';
|
|
4
|
+
export declare const setText: (board: PlaitBoard, element: PlaitGeometry, text: Element, width: number, textHeight: number) => void;
|
|
5
|
+
export declare const setTextSize: (board: PlaitBoard, element: PlaitGeometry, textWidth: number, textHeight: number) => void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PlaitBoard, Point, Path } from '@plait/core';
|
|
2
|
+
import { GeometryShape } from '../interfaces';
|
|
3
|
+
import { Element } from 'slate';
|
|
4
|
+
export declare const insertGeometry: (board: PlaitBoard, points: [Point, Point], shape: GeometryShape) => void;
|
|
5
|
+
export declare const insertText: (board: PlaitBoard, points: [Point, Point], text?: string | Element) => void;
|
|
6
|
+
export declare const resizeGeometry: (board: PlaitBoard, points: [Point, Point], textHeight: number, path: Path) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const DrawTransforms: {
|
|
2
|
+
setText: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitGeometry, text: import("slate").BaseElement, width: number, textHeight: number) => void;
|
|
3
|
+
insertGeometry: (board: import("@plait/core").PlaitBoard, points: [import("@plait/core").Point, import("@plait/core").Point], shape: import("@plait/draw").GeometryShape) => void;
|
|
4
|
+
resizeGeometry: (board: import("@plait/core").PlaitBoard, points: [import("@plait/core").Point, import("@plait/core").Point], textHeight: number, path: import("@plait/core").Path) => void;
|
|
5
|
+
insertText: (board: import("@plait/core").PlaitBoard, points: [import("@plait/core").Point, import("@plait/core").Point], text?: string | import("slate").BaseElement) => void;
|
|
6
|
+
setTextSize: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitGeometry, textWidth: number, textHeight: number) => void;
|
|
7
|
+
resizeLine: (board: import("@plait/core").PlaitBoard, options: Partial<import("@plait/draw").PlaitLine>, path: import("@plait/core").Path) => void;
|
|
8
|
+
setLineTexts: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitLine, texts: import("@plait/draw").LineText[]) => void;
|
|
9
|
+
removeLineText: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitLine, index: number) => void;
|
|
10
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Path, PlaitBoard } from '@plait/core';
|
|
2
|
+
import { LineText, PlaitLine } from '../interfaces';
|
|
3
|
+
export declare const resizeLine: (board: PlaitBoard, options: Partial<PlaitLine>, path: Path) => void;
|
|
4
|
+
export declare const setLineTexts: (board: PlaitBoard, element: PlaitLine, texts: LineText[]) => void;
|
|
5
|
+
export declare const removeLineText: (board: PlaitBoard, element: PlaitLine, index: number) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PlaitBoard, Point } from '@plait/core';
|
|
2
|
+
import { PlaitDrawElement, PlaitGeometry, PlaitLine } from '../interfaces';
|
|
3
|
+
export declare const buildClipboardData: (board: PlaitBoard, elements: PlaitDrawElement[], startPoint: Point) => (PlaitGeometry | PlaitLine)[];
|
|
4
|
+
export declare const insertClipboardData: (board: PlaitBoard, elements: PlaitDrawElement[], startPoint: Point) => void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
export declare enum DrawCreateMode {
|
|
3
|
+
'drag' = "drag",
|
|
4
|
+
'draw' = "draw"
|
|
5
|
+
}
|
|
6
|
+
export declare const getCreateMode: (board: PlaitBoard) => DrawCreateMode | undefined;
|
|
7
|
+
export declare const setCreateMode: (board: PlaitBoard, mode: DrawCreateMode) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Point } from '@plait/core';
|
|
2
|
+
import { ShapeEngine } from '../../interfaces';
|
|
3
|
+
export declare const EllipseEngine: ShapeEngine;
|
|
4
|
+
export declare function getNearestPointBetweenPointAndEllipse(point: Point, center: Point, rx: number, ry: number, rotation?: number): Point;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Point, RectangleClient } from '@plait/core';
|
|
2
|
+
import { ShapeEngine } from '../../interfaces';
|
|
3
|
+
export declare const RoundRectangleEngine: ShapeEngine;
|
|
4
|
+
export declare const getRoundRectangleRadius: (rectangle: RectangleClient) => number;
|
|
5
|
+
export declare function getNearestPointBetweenPointAndRoundRectangle(point: Point, rectangle: RectangleClient, radius: number): Point;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlaitGeometry, PlaitLine } from '../../interfaces';
|
|
2
|
+
export declare const getStrokeWidthByElement: (element: PlaitGeometry | PlaitLine) => number;
|
|
3
|
+
export declare const getStrokeColorByElement: (element: PlaitGeometry | PlaitLine) => string;
|
|
4
|
+
export declare const getFillByElement: (element: PlaitGeometry | PlaitLine) => any;
|
|
5
|
+
export declare const getLineDashByElement: (element: PlaitGeometry | PlaitLine) => number[] | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PlaitBoard, Point, RectangleClient } from '@plait/core';
|
|
2
|
+
import { GeometryShape, PlaitGeometry } from '../interfaces/geometry';
|
|
3
|
+
import { Element } from 'slate';
|
|
4
|
+
import { Options } from 'roughjs/bin/core';
|
|
5
|
+
export declare const createGeometryElement: (shape: GeometryShape, points: [Point, Point], text: string | Element, options?: Pick<PlaitGeometry, 'fill' | 'strokeColor' | 'strokeWidth'>) => PlaitGeometry;
|
|
6
|
+
export declare const getPointsByCenterPoint: (point: Point, width: number, height: number) => [Point, Point];
|
|
7
|
+
export declare const getTextRectangle: (element: PlaitGeometry) => {
|
|
8
|
+
height: number;
|
|
9
|
+
width: number;
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
export declare const drawBoundMask: (board: PlaitBoard, element: PlaitGeometry) => SVGGElement;
|
|
14
|
+
export declare const drawGeometry: (board: PlaitBoard, outerRectangle: RectangleClient, shape: GeometryShape, options: Options) => SVGGElement;
|
|
15
|
+
export declare const getNearestPoint: (element: PlaitGeometry, point: Point, offset?: number) => Point;
|
|
16
|
+
export declare const getCenterPointsOnPolygon: (points: Point[]) => Point[];
|
package/utils/index.d.ts
ADDED
package/utils/line.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Point, PlaitBoard, RectangleClient } from '@plait/core';
|
|
2
|
+
import { LineHandle, LineShape, PlaitGeometry, PlaitLine } from '../interfaces';
|
|
3
|
+
import { Options } from 'roughjs/bin/core';
|
|
4
|
+
export declare const createLineElement: (shape: LineShape, points: [Point, Point], source: LineHandle, target: LineHandle, options?: Pick<PlaitLine, 'strokeColor' | 'strokeWidth'>) => PlaitLine;
|
|
5
|
+
export declare const getElbowPoints: (board: PlaitBoard, element: PlaitLine) => Point[];
|
|
6
|
+
export declare const isHitPolyLine: (pathPoints: Point[], point: Point, strokeWidth: number, expand?: number) => boolean;
|
|
7
|
+
export declare const getHitLineTextIndex: (board: PlaitBoard, element: PlaitLine, point: Point) => number;
|
|
8
|
+
export declare const isHitLineText: (board: PlaitBoard, element: PlaitLine, point: Point) => boolean;
|
|
9
|
+
export declare const drawElbowLine: (board: PlaitBoard, element: PlaitLine) => SVGGElement;
|
|
10
|
+
export declare const drawLineArrow: (element: PlaitLine, points: Point[], options: Options) => SVGGElement | null;
|
|
11
|
+
export declare const getSourcePoint: (board: PlaitBoard, element: PlaitLine) => Point;
|
|
12
|
+
export declare const getTargetPoint: (board: PlaitBoard, element: PlaitLine) => Point;
|
|
13
|
+
export declare const normalizeConnection: (geometry: PlaitGeometry, connection: Point) => Point;
|
|
14
|
+
export declare const transformPointToConnection: (board: PlaitBoard, point: Point, hitElement: PlaitGeometry) => Point;
|
|
15
|
+
export declare const getHitConnectorPoint: (movingPoint: Point, hitElement: PlaitGeometry, rectangle: RectangleClient) => Point | undefined;
|
|
16
|
+
export declare const getLineTextRectangle: (board: PlaitBoard, element: PlaitLine, index: number) => RectangleClient;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PlaitBoard, Point } from '@plait/core';
|
|
2
|
+
import { PlaitGeometry } from '../../interfaces';
|
|
3
|
+
export declare const getHitGeometryResizeHandleRef: (board: PlaitBoard, element: PlaitGeometry, point: Point) => {
|
|
4
|
+
rectangle: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
handle: import("@plait/common").ResizeHandle;
|
|
11
|
+
cursorClass: import("@plait/common").ResizeCursorClass;
|
|
12
|
+
} | undefined;
|
|
13
|
+
export declare const getHitOutlineGeometry: (board: PlaitBoard, point: Point, offset?: number) => PlaitGeometry | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PlaitBoard, Point, RectangleClient } from '@plait/core';
|
|
2
|
+
import { PlaitLine } from '../../interfaces';
|
|
3
|
+
export declare enum LineResizeHandle {
|
|
4
|
+
'source' = "source",
|
|
5
|
+
'target' = "target"
|
|
6
|
+
}
|
|
7
|
+
export declare const getHitLineResizeHandleRef: (board: PlaitBoard, element: PlaitLine, point: Point) => {
|
|
8
|
+
rectangle: RectangleClient;
|
|
9
|
+
handle: LineResizeHandle;
|
|
10
|
+
} | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
import { PlaitDrawElement, PlaitGeometry, PlaitLine } from '../interfaces';
|
|
3
|
+
export declare const getSelectedDrawElements: (board: PlaitBoard) => PlaitDrawElement[];
|
|
4
|
+
export declare const getSelectedGeometryElements: (board: PlaitBoard) => PlaitGeometry[];
|
|
5
|
+
export declare const getSelectedLineElements: (board: PlaitBoard) => PlaitLine[];
|