@plait/draw 0.1.0-next.10

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 (97) hide show
  1. package/README.md +3 -0
  2. package/constants/geometry.d.ts +27 -0
  3. package/constants/index.d.ts +2 -0
  4. package/constants/line.d.ts +4 -0
  5. package/constants/pointer.d.ts +10 -0
  6. package/esm2020/constants/geometry.mjs +29 -0
  7. package/esm2020/constants/index.mjs +3 -0
  8. package/esm2020/constants/line.mjs +5 -0
  9. package/esm2020/constants/pointer.mjs +19 -0
  10. package/esm2020/generators/geometry-shape.generator.mjs +23 -0
  11. package/esm2020/generators/line-active.generator.mjs +36 -0
  12. package/esm2020/generators/line.generator.mjs +22 -0
  13. package/esm2020/geometry.component.mjs +130 -0
  14. package/esm2020/interfaces/element.mjs +6 -0
  15. package/esm2020/interfaces/geometry.mjs +23 -0
  16. package/esm2020/interfaces/index.mjs +25 -0
  17. package/esm2020/interfaces/line.mjs +48 -0
  18. package/esm2020/interfaces/text.mjs +2 -0
  19. package/esm2020/line.component.mjs +152 -0
  20. package/esm2020/plait-draw.mjs +5 -0
  21. package/esm2020/plugins/with-draw-fragment.mjs +52 -0
  22. package/esm2020/plugins/with-draw-hotkey.mjs +33 -0
  23. package/esm2020/plugins/with-draw.mjs +73 -0
  24. package/esm2020/plugins/with-geometry-create.mjs +160 -0
  25. package/esm2020/plugins/with-geometry-resize.mjs +73 -0
  26. package/esm2020/plugins/with-line-bound-reaction.mjs +43 -0
  27. package/esm2020/plugins/with-line-create.mjs +66 -0
  28. package/esm2020/plugins/with-line-resize.mjs +52 -0
  29. package/esm2020/plugins/with-line-text.mjs +55 -0
  30. package/esm2020/public-api.mjs +8 -0
  31. package/esm2020/transforms/geometry-text.mjs +54 -0
  32. package/esm2020/transforms/geometry.mjs +31 -0
  33. package/esm2020/transforms/index.mjs +15 -0
  34. package/esm2020/transforms/line.mjs +23 -0
  35. package/esm2020/utils/clipboard.mjs +53 -0
  36. package/esm2020/utils/engine/diamond.mjs +22 -0
  37. package/esm2020/utils/engine/ellipse.mjs +55 -0
  38. package/esm2020/utils/engine/index.mjs +18 -0
  39. package/esm2020/utils/engine/parallelogram.mjs +32 -0
  40. package/esm2020/utils/engine/rectangle.mjs +18 -0
  41. package/esm2020/utils/engine/round-rectangle.mjs +49 -0
  42. package/esm2020/utils/geometry.mjs +84 -0
  43. package/esm2020/utils/index.mjs +5 -0
  44. package/esm2020/utils/line-arrow.mjs +89 -0
  45. package/esm2020/utils/line.mjs +169 -0
  46. package/esm2020/utils/position/geometry.mjs +28 -0
  47. package/esm2020/utils/position/line.mjs +34 -0
  48. package/esm2020/utils/selected.mjs +15 -0
  49. package/esm2020/utils/style/index.mjs +2 -0
  50. package/esm2020/utils/style/stroke.mjs +24 -0
  51. package/fesm2015/plait-draw.mjs +1765 -0
  52. package/fesm2015/plait-draw.mjs.map +1 -0
  53. package/fesm2020/plait-draw.mjs +1786 -0
  54. package/fesm2020/plait-draw.mjs.map +1 -0
  55. package/generators/geometry-shape.generator.d.ts +8 -0
  56. package/generators/line-active.generator.d.ts +9 -0
  57. package/generators/line.generator.d.ts +8 -0
  58. package/geometry.component.d.ts +27 -0
  59. package/index.d.ts +5 -0
  60. package/interfaces/element.d.ts +4 -0
  61. package/interfaces/geometry.d.ts +44 -0
  62. package/interfaces/index.d.ts +14 -0
  63. package/interfaces/line.d.ts +59 -0
  64. package/interfaces/text.d.ts +5 -0
  65. package/line.component.d.ts +36 -0
  66. package/package.json +31 -0
  67. package/plugins/with-draw-fragment.d.ts +2 -0
  68. package/plugins/with-draw-hotkey.d.ts +2 -0
  69. package/plugins/with-draw.d.ts +2 -0
  70. package/plugins/with-geometry-create.d.ts +3 -0
  71. package/plugins/with-geometry-resize.d.ts +2 -0
  72. package/plugins/with-line-bound-reaction.d.ts +2 -0
  73. package/plugins/with-line-create.d.ts +2 -0
  74. package/plugins/with-line-resize.d.ts +2 -0
  75. package/plugins/with-line-text.d.ts +2 -0
  76. package/public-api.d.ts +7 -0
  77. package/styles/styles.scss +16 -0
  78. package/transforms/geometry-text.d.ts +5 -0
  79. package/transforms/geometry.d.ts +6 -0
  80. package/transforms/index.d.ts +11 -0
  81. package/transforms/line.d.ts +6 -0
  82. package/utils/clipboard.d.ts +4 -0
  83. package/utils/engine/diamond.d.ts +2 -0
  84. package/utils/engine/ellipse.d.ts +4 -0
  85. package/utils/engine/index.d.ts +3 -0
  86. package/utils/engine/parallelogram.d.ts +4 -0
  87. package/utils/engine/rectangle.d.ts +2 -0
  88. package/utils/engine/round-rectangle.d.ts +5 -0
  89. package/utils/geometry.d.ts +16 -0
  90. package/utils/index.d.ts +4 -0
  91. package/utils/line-arrow.d.ts +4 -0
  92. package/utils/line.d.ts +17 -0
  93. package/utils/position/geometry.d.ts +13 -0
  94. package/utils/position/line.d.ts +10 -0
  95. package/utils/selected.d.ts +5 -0
  96. package/utils/style/index.d.ts +1 -0
  97. package/utils/style/stroke.d.ts +6 -0
@@ -0,0 +1,59 @@
1
+ import { PlaitElement, Point } from '@plait/core';
2
+ import { Element } from 'slate';
3
+ import { PlaitGeometry } from './geometry';
4
+ import { StrokeStyle } from './element';
5
+ export declare enum LineMarkerType {
6
+ arrow = "arrow",
7
+ none = "none",
8
+ openTriangle = "open-triangle",
9
+ solidTriangle = "solid-triangle",
10
+ sharpArrow = "sharp-arrow"
11
+ }
12
+ export declare enum LineShape {
13
+ straight = "straight",
14
+ curve = "curve",
15
+ elbow = "elbow"
16
+ }
17
+ export declare enum LineHandleKey {
18
+ source = "source",
19
+ target = "target"
20
+ }
21
+ export interface LineText {
22
+ text: Element;
23
+ position: number;
24
+ width: number;
25
+ height: number;
26
+ }
27
+ export interface LineHandle {
28
+ boundId?: string;
29
+ connection?: Point;
30
+ marker: LineMarkerType;
31
+ }
32
+ export interface PlaitLine extends PlaitElement {
33
+ type: 'line';
34
+ shape: LineShape;
35
+ points: Point[];
36
+ source: LineHandle;
37
+ target: LineHandle;
38
+ texts: LineText[];
39
+ strokeColor?: string;
40
+ strokeWidth?: number;
41
+ strokeStyle?: StrokeStyle;
42
+ opacity: number;
43
+ }
44
+ export interface PlaitStraightLine extends PlaitLine {
45
+ shape: LineShape.straight;
46
+ }
47
+ export interface PlaitCurveLine extends PlaitLine {
48
+ shape: LineShape.curve;
49
+ }
50
+ export interface PlaitElbowLine extends PlaitLine {
51
+ shape: LineShape.elbow;
52
+ }
53
+ export declare const PlaitLine: {
54
+ getTextEditors(element: PlaitLine): (import("slate").BaseEditor & import("slate-angular").AngularEditor & import("slate-history").HistoryEditor)[];
55
+ isSourceMark(line: PlaitLine, markType: LineMarkerType): boolean;
56
+ isTargetMark(line: PlaitLine, markType: LineMarkerType): boolean;
57
+ isBoundElementOfSource(line: PlaitLine, element: PlaitGeometry): boolean;
58
+ isBoundElementOfTarget(line: PlaitLine, element: PlaitGeometry): boolean;
59
+ };
@@ -0,0 +1,5 @@
1
+ import { PlaitGeometry, GeometryShape } from './geometry';
2
+ export interface PlaitText extends PlaitGeometry {
3
+ shape: GeometryShape.text;
4
+ autoSize: boolean;
5
+ }
@@ -0,0 +1,36 @@
1
+ import { ChangeDetectorRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
2
+ import { PlaitBoard, PlaitPluginElementComponent, PlaitPluginElementContext, OnContextChanged } from '@plait/core';
3
+ import { Subject } from 'rxjs';
4
+ import { LineText, PlaitGeometry, PlaitLine } from './interfaces';
5
+ import { TextManage } from '@plait/text';
6
+ import { LineShapeGenerator } from './generators/line.generator';
7
+ import { LineActiveGenerator } from './generators/line-active.generator';
8
+ import * as i0 from "@angular/core";
9
+ interface BoundedElements {
10
+ source?: PlaitGeometry;
11
+ target?: PlaitGeometry;
12
+ }
13
+ export declare class LineComponent extends PlaitPluginElementComponent<PlaitLine, PlaitBoard> implements OnInit, OnDestroy, OnContextChanged<PlaitLine, PlaitBoard> {
14
+ private viewContainerRef;
15
+ protected cdr: ChangeDetectorRef;
16
+ destroy$: Subject<void>;
17
+ shapeGenerator: LineShapeGenerator;
18
+ activeGenerator: LineActiveGenerator;
19
+ textManages: TextManage[];
20
+ boundedElements: BoundedElements;
21
+ constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
22
+ initializeGenerator(): void;
23
+ ngOnInit(): void;
24
+ getBoundedElements(): BoundedElements;
25
+ onContextChanged(value: PlaitPluginElementContext<PlaitLine, PlaitBoard>, previous: PlaitPluginElementContext<PlaitLine, PlaitBoard>): void;
26
+ initializeTextManages(): void;
27
+ destroyTextManages(): void;
28
+ drawText(): void;
29
+ createTextManage(text: LineText, index: number): TextManage;
30
+ updateText(previousTexts: LineText[], currentTexts: LineText[]): void;
31
+ updateTextRectangle(): void;
32
+ ngOnDestroy(): void;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<LineComponent, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<LineComponent, "plait-draw-line", never, {}, {}, never, never, false, never>;
35
+ }
36
+ export {};
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@plait/draw",
3
+ "version": "0.1.0-next.10",
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": "fesm2015/plait-draw.mjs",
12
+ "es2020": "fesm2020/plait-draw.mjs",
13
+ "esm2020": "esm2020/plait-draw.mjs",
14
+ "fesm2020": "fesm2020/plait-draw.mjs",
15
+ "fesm2015": "fesm2015/plait-draw.mjs",
16
+ "typings": "index.d.ts",
17
+ "exports": {
18
+ "./package.json": {
19
+ "default": "./package.json"
20
+ },
21
+ ".": {
22
+ "types": "./index.d.ts",
23
+ "esm2020": "./esm2020/plait-draw.mjs",
24
+ "es2020": "./fesm2020/plait-draw.mjs",
25
+ "es2015": "./fesm2015/plait-draw.mjs",
26
+ "node": "./fesm2015/plait-draw.mjs",
27
+ "default": "./fesm2020/plait-draw.mjs"
28
+ }
29
+ },
30
+ "sideEffects": false
31
+ }
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withDrawFragment: (baseBoard: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withDrawHotkey: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withDraw: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,3 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withGeometryCreateByDrag: (board: PlaitBoard) => PlaitBoard;
3
+ export declare const withGeometryCreateByDraw: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withGeometryResize: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withLineBoundReaction: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withLineCreateByDraw: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withLineResize: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withLineText: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,7 @@
1
+ export * from './interfaces';
2
+ export * from './plugins/with-draw';
3
+ export * from './constants';
4
+ export * from './utils';
5
+ export * from './geometry.component';
6
+ export * from './line.component';
7
+ export * from './transforms';
@@ -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,11 @@
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
+ setLineMark: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitLine, handleKey: import("@plait/draw").LineHandleKey, marker: import("@plait/draw").LineMarkerType) => void;
11
+ };
@@ -0,0 +1,6 @@
1
+ import { Path, PlaitBoard } from '@plait/core';
2
+ import { LineHandleKey, LineMarkerType, 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;
6
+ export declare const setLineMark: (board: PlaitBoard, element: PlaitLine, handleKey: LineHandleKey, marker: LineMarkerType) => 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,2 @@
1
+ import { ShapeEngine } from '../../interfaces';
2
+ export declare const DiamondEngine: ShapeEngine;
@@ -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,3 @@
1
+ import { GeometryShape, ShapeEngine } from '../../interfaces';
2
+ export declare const ShapeEngineMap: Record<GeometryShape, ShapeEngine>;
3
+ export declare const getEngine: (shape: GeometryShape) => ShapeEngine;
@@ -0,0 +1,4 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const ParallelogramEngine: ShapeEngine;
4
+ export declare const getParallelogramPoints: (rectangle: RectangleClient) => Point[];
@@ -0,0 +1,2 @@
1
+ import { ShapeEngine } from '../../interfaces';
2
+ export declare const RectangleEngine: ShapeEngine;
@@ -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,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, inflateDelta?: number) => Point;
16
+ export declare const getCenterPointsOnPolygon: (points: Point[]) => Point[];
@@ -0,0 +1,4 @@
1
+ export * from './line';
2
+ export * from './geometry';
3
+ export * from './selected';
4
+ export * from './style';
@@ -0,0 +1,4 @@
1
+ import { Point } from '@plait/core';
2
+ import { PlaitLine } from '../interfaces';
3
+ import { Options } from 'roughjs/bin/core';
4
+ export declare const drawLineArrow: (element: PlaitLine, points: Point[], options: Options) => SVGGElement | null;
@@ -0,0 +1,17 @@
1
+ import { Point, PlaitBoard, RectangleClient } from '@plait/core';
2
+ import { LineHandle, LineShape, PlaitGeometry, PlaitLine } from '../interfaces';
3
+ export declare const createLineElement: (shape: LineShape, points: [Point, Point], source: LineHandle, target: LineHandle, options?: Pick<PlaitLine, 'strokeColor' | 'strokeWidth'>) => PlaitLine;
4
+ export declare const getLinePoints: (board: PlaitBoard, element: PlaitLine) => Point[];
5
+ export declare const getStraightPoints: (board: PlaitBoard, element: PlaitLine) => Point[];
6
+ export declare const getElbowPoints: (board: PlaitBoard, element: PlaitLine) => Point[];
7
+ export declare const isHitPolyLine: (pathPoints: Point[], point: Point, strokeWidth: number, expand?: number) => boolean;
8
+ export declare const getHitLineTextIndex: (board: PlaitBoard, element: PlaitLine, point: Point) => number;
9
+ export declare const isHitLineText: (board: PlaitBoard, element: PlaitLine, point: Point) => boolean;
10
+ export declare const drawLine: (board: PlaitBoard, element: PlaitLine) => SVGGElement;
11
+ export declare const getSourcePoint: (board: PlaitBoard, element: PlaitLine) => Point;
12
+ export declare const getTargetPoint: (board: PlaitBoard, element: PlaitLine) => Point;
13
+ export declare const getConnectionPoint: (geometry: PlaitGeometry, connection: Point, offset: number) => 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;
17
+ export declare const getBoardLines: (board: PlaitBoard) => PlaitLine[];
@@ -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[];
@@ -0,0 +1 @@
1
+ export * from './stroke';
@@ -0,0 +1,6 @@
1
+ import { PlaitGeometry, PlaitLine, StrokeStyle } 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;
6
+ export declare const getStrokeStyleByElement: (element: PlaitGeometry | PlaitLine) => StrokeStyle;