@plait/draw 0.35.0 → 0.37.0

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 (52) hide show
  1. package/constants/line.d.ts +4 -0
  2. package/esm2022/constants/line.mjs +5 -1
  3. package/esm2022/generators/line-active.generator.mjs +10 -7
  4. package/esm2022/generators/line-auto-complete.generator.mjs +45 -0
  5. package/esm2022/geometry.component.mjs +21 -11
  6. package/esm2022/image.component.mjs +14 -1
  7. package/esm2022/interfaces/element.mjs +2 -1
  8. package/esm2022/interfaces/index.mjs +2 -2
  9. package/esm2022/line.component.mjs +10 -15
  10. package/esm2022/plugins/with-draw-hotkey.mjs +5 -4
  11. package/esm2022/plugins/with-draw.mjs +4 -4
  12. package/esm2022/plugins/with-geometry-create.mjs +69 -53
  13. package/esm2022/plugins/with-line-auto-complete-reaction.mjs +36 -0
  14. package/esm2022/plugins/with-line-auto-complete.mjs +61 -0
  15. package/esm2022/plugins/with-line-bound-reaction.mjs +5 -1
  16. package/esm2022/plugins/with-line-create.mjs +2 -2
  17. package/esm2022/plugins/with-line-resize.mjs +2 -2
  18. package/esm2022/plugins/with-line-text.mjs +29 -27
  19. package/esm2022/transforms/geometry.mjs +3 -3
  20. package/esm2022/transforms/index.mjs +2 -7
  21. package/esm2022/utils/geometry.mjs +25 -12
  22. package/esm2022/utils/index.mjs +2 -1
  23. package/esm2022/utils/line-arrow.mjs +10 -6
  24. package/esm2022/utils/line.mjs +12 -5
  25. package/esm2022/utils/memorize.mjs +75 -0
  26. package/fesm2022/plait-draw.mjs +432 -325
  27. package/fesm2022/plait-draw.mjs.map +1 -1
  28. package/generators/line-active.generator.d.ts +0 -1
  29. package/generators/{auto-complete.generator.d.ts → line-auto-complete.generator.d.ts} +3 -3
  30. package/geometry.component.d.ts +2 -2
  31. package/image.component.d.ts +2 -0
  32. package/interfaces/element.d.ts +1 -0
  33. package/interfaces/index.d.ts +2 -2
  34. package/line.component.d.ts +0 -1
  35. package/package.json +1 -1
  36. package/plugins/with-geometry-create.d.ts +7 -2
  37. package/plugins/with-line-auto-complete-reaction.d.ts +2 -0
  38. package/plugins/with-line-auto-complete.d.ts +7 -0
  39. package/styles/styles.scss +1 -2
  40. package/transforms/index.d.ts +0 -4
  41. package/utils/geometry.d.ts +15 -4
  42. package/utils/index.d.ts +1 -0
  43. package/utils/line.d.ts +4 -4
  44. package/utils/memorize.d.ts +25 -0
  45. package/utils/position/geometry.d.ts +1 -1
  46. package/esm2022/generators/auto-complete.generator.mjs +0 -44
  47. package/esm2022/plugins/with-auto-complete-reaction.mjs +0 -35
  48. package/esm2022/plugins/with-auto-complete.mjs +0 -61
  49. package/esm2022/transforms/common.mjs +0 -33
  50. package/plugins/with-auto-complete-reaction.d.ts +0 -2
  51. package/plugins/with-auto-complete.d.ts +0 -7
  52. package/transforms/common.d.ts +0 -6
@@ -5,7 +5,6 @@ export interface ActiveData {
5
5
  selected: boolean;
6
6
  }
7
7
  export declare class LineActiveGenerator extends Generator<PlaitLine, ActiveData> {
8
- hasResizeHandle: boolean;
9
8
  canDraw(element: PlaitLine, data: ActiveData): boolean;
10
9
  draw(element: PlaitLine, data: ActiveData): SVGGElement;
11
10
  }
@@ -1,12 +1,12 @@
1
1
  import { PlaitBoard } from '@plait/core';
2
- import { PlaitGeometry } from '../interfaces';
2
+ import { PlaitGeometry, PlaitShape } from '../interfaces';
3
3
  import { ActiveGeneratorExtraData, Generator } from '@plait/common';
4
- export declare class AutoCompleteGenerator extends Generator<PlaitGeometry, ActiveGeneratorExtraData> {
4
+ export declare class LineAutoCompleteGenerator extends Generator<PlaitShape, ActiveGeneratorExtraData> {
5
5
  board: PlaitBoard;
6
6
  autoCompleteG: SVGGElement;
7
7
  hoverElement: SVGGElement | null;
8
8
  constructor(board: PlaitBoard);
9
- canDraw(element: PlaitGeometry, data: ActiveGeneratorExtraData): boolean;
9
+ canDraw(element: PlaitShape, data: ActiveGeneratorExtraData): boolean;
10
10
  draw(element: PlaitGeometry, data: ActiveGeneratorExtraData): SVGGElement;
11
11
  removeAutoCompleteG(index: number): void;
12
12
  recoverAutoCompleteG(): void;
@@ -5,14 +5,14 @@ import { PlaitGeometry } from './interfaces/geometry';
5
5
  import { GeometryShapeGenerator } from './generators/geometry-shape.generator';
6
6
  import { TextManage } from '@plait/text';
7
7
  import { ActiveGenerator, CommonPluginElement } from '@plait/common';
8
- import { AutoCompleteGenerator } from './generators/auto-complete.generator';
8
+ import { LineAutoCompleteGenerator } from './generators/line-auto-complete.generator';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class GeometryComponent extends CommonPluginElement<PlaitGeometry, PlaitBoard> implements OnInit, OnDestroy, OnContextChanged<PlaitGeometry, PlaitBoard> {
11
11
  private viewContainerRef;
12
12
  protected cdr: ChangeDetectorRef;
13
13
  destroy$: Subject<void>;
14
14
  activeGenerator: ActiveGenerator<PlaitGeometry>;
15
- autoCompleteGenerator: AutoCompleteGenerator;
15
+ lineAutoCompleteGenerator: LineAutoCompleteGenerator;
16
16
  shapeGenerator: GeometryShapeGenerator;
17
17
  get textManage(): TextManage;
18
18
  constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
@@ -3,6 +3,7 @@ import { PlaitBoard, PlaitPluginElementContext, OnContextChanged } from '@plait/
3
3
  import { Subject } from 'rxjs';
4
4
  import { CommonPluginElement, ImageGenerator } from '@plait/common';
5
5
  import { PlaitImage } from './interfaces/image';
6
+ import { LineAutoCompleteGenerator } from './generators/line-auto-complete.generator';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class ImageComponent extends CommonPluginElement<PlaitImage, PlaitBoard> implements OnInit, OnDestroy, OnContextChanged<PlaitImage, PlaitBoard> {
8
9
  private viewContainerRef;
@@ -10,6 +11,7 @@ export declare class ImageComponent extends CommonPluginElement<PlaitImage, Plai
10
11
  destroy$: Subject<void>;
11
12
  get activeGenerator(): import("@plait/common").ActiveGenerator<import("@plait/core").PlaitElement>;
12
13
  imageGenerator: ImageGenerator<PlaitImage>;
14
+ lineAutoCompleteGenerator: LineAutoCompleteGenerator;
13
15
  constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
14
16
  initializeGenerator(): void;
15
17
  ngOnInit(): void;
@@ -5,5 +5,6 @@ export declare enum StrokeStyle {
5
5
  export declare enum MemorizeKey {
6
6
  basicShape = "basicShape",
7
7
  flowchart = "flowchart",
8
+ text = "text",
8
9
  line = "line"
9
10
  }
@@ -14,7 +14,7 @@ export declare const PlaitDrawElement: {
14
14
  isText: (value: any) => value is PlaitText;
15
15
  isImage: (value: any) => value is PlaitImage;
16
16
  isDrawElement: (value: any) => value is PlaitDrawElement;
17
- isShape: (value: any) => boolean;
18
- isBaseShape: (value: any) => boolean;
17
+ isShape: (value: any) => value is PlaitShape;
18
+ isBasicShape: (value: any) => boolean;
19
19
  isFlowchart: (value: any) => boolean;
20
20
  };
@@ -23,7 +23,6 @@ export declare class LineComponent extends PlaitPluginElementComponent<PlaitLine
23
23
  ngOnInit(): void;
24
24
  getBoundedElements(): BoundedElements;
25
25
  onContextChanged(value: PlaitPluginElementContext<PlaitLine, PlaitBoard>, previous: PlaitPluginElementContext<PlaitLine, PlaitBoard>): void;
26
- hasResizeHandle(): boolean;
27
26
  initializeTextManages(): void;
28
27
  destroyTextManages(): void;
29
28
  drawText(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/draw",
3
- "version": "0.35.0",
3
+ "version": "0.37.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.0.0",
6
6
  "@angular/core": "^16.0.0",
@@ -1,9 +1,14 @@
1
1
  import { PlaitBoard, Point } from '@plait/core';
2
2
  import { DrawPointerType } from '../constants';
3
+ import { TextManage } from '@plait/text';
4
+ export interface FakeCreateTextRef {
5
+ g: SVGGElement;
6
+ textManage: TextManage;
7
+ }
3
8
  export declare const withGeometryCreateByDrag: (board: PlaitBoard) => PlaitBoard;
4
9
  export declare const withGeometryCreateByDrawing: (board: PlaitBoard) => PlaitBoard;
5
- export declare const getDefaultGeometryPoints: (pointer: DrawPointerType, targetPoint: Point) => [Point, Point];
6
- export declare const getGeometryDefaultProperty: (pointer: DrawPointerType) => {
10
+ export declare const getDefaultGeometryPoints: (board: PlaitBoard, pointer: DrawPointerType, targetPoint: Point, fontSize?: number) => [Point, Point];
11
+ export declare const getGeometryDefaultProperty: (board: PlaitBoard, pointer: DrawPointerType, fontSize?: number) => {
7
12
  width: number;
8
13
  height: number;
9
14
  };
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withLineAutoCompleteReaction: (board: PlaitBoard) => PlaitBoard;
@@ -0,0 +1,7 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ import { PlaitLine } from '../interfaces';
3
+ export interface LineAutoCompleteOptions {
4
+ afterComplete: (element: PlaitLine) => {};
5
+ }
6
+ export declare const withLineAutoCompletePluginKey = "plait-line-auto-complete-plugin-key";
7
+ export declare const withLineAutoComplete: (board: PlaitBoard) => PlaitBoard;
@@ -4,8 +4,7 @@
4
4
  cursor: default;
5
5
  }
6
6
  }
7
- &:not(.pointer-text):not(.pointer-selection):not(.pointer-hand)
8
- {
7
+ &:not(.pointer-text):not(.pointer-selection):not(.pointer-hand) {
9
8
  .board-host-svg {
10
9
  cursor: crosshair;
11
10
  }
@@ -10,8 +10,4 @@ export declare const DrawTransforms: {
10
10
  setLineMark: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitLine, handleKey: import("@plait/draw").LineHandleKey, marker: import("@plait/draw").LineMarkerType) => void;
11
11
  insertImage: (board: import("@plait/core").PlaitBoard, imageItem: import("@plait/common").CommonImageItem, startPoint?: import("@plait/core").Point | undefined) => void;
12
12
  transformShape: (board: import("@plait/core").PlaitBoard, element: import("@plait/draw").PlaitGeometry, shape: import("@plait/draw").GeometryShapes) => void;
13
- setStrokeColor: (board: import("@plait/core").PlaitBoard, strokeColor: string) => void;
14
- setStrokeWidth: (board: import("@plait/core").PlaitBoard, strokeWidth: number) => void;
15
- setFillColor: (board: import("@plait/core").PlaitBoard, fill: string) => void;
16
- setStrokeStyle: (board: import("@plait/core").PlaitBoard, strokeStyle: string) => void;
17
13
  };
@@ -1,8 +1,14 @@
1
1
  import { PlaitBoard, Point, RectangleClient, ThemeColorMode } from '@plait/core';
2
2
  import { GeometryShapes, PlaitGeometry, FlowchartSymbols } from '../interfaces/geometry';
3
+ import { Alignment, CustomText } from '@plait/text';
3
4
  import { Element } from 'slate';
4
5
  import { Options } from 'roughjs/bin/core';
5
- export declare const createGeometryElement: (shape: GeometryShapes, points: [Point, Point], text: string | Element, options?: Pick<PlaitGeometry, 'fill' | 'strokeColor' | 'strokeWidth'>) => PlaitGeometry;
6
+ import { PlaitShape } from '../interfaces';
7
+ export type GeometryStyleOptions = Pick<PlaitGeometry, 'fill' | 'strokeColor' | 'strokeWidth'>;
8
+ export type TextProperties = Partial<CustomText> & {
9
+ align?: Alignment;
10
+ };
11
+ export declare const createGeometryElement: (board: PlaitBoard, shape: GeometryShapes, points: [Point, Point], text: string | Element, options?: GeometryStyleOptions, textProperties?: TextProperties) => PlaitGeometry;
6
12
  export declare const getPointsByCenterPoint: (point: Point, width: number, height: number) => [Point, Point];
7
13
  export declare const getTextRectangle: (element: PlaitGeometry) => {
8
14
  height: number;
@@ -12,7 +18,7 @@ export declare const getTextRectangle: (element: PlaitGeometry) => {
12
18
  };
13
19
  export declare const drawBoundMask: (board: PlaitBoard, element: PlaitGeometry) => SVGGElement;
14
20
  export declare const drawGeometry: (board: PlaitBoard, outerRectangle: RectangleClient, shape: GeometryShapes, options: Options) => SVGGElement;
15
- export declare const getNearestPoint: (element: PlaitGeometry, point: Point, inflateDelta?: number) => Point;
21
+ export declare const getNearestPoint: (element: PlaitShape, point: Point, inflateDelta?: number) => Point;
16
22
  export declare const getCenterPointsOnPolygon: (points: Point[]) => Point[];
17
23
  export declare const getEdgeOnPolygonByPoint: (corners: Point[], point: Point) => [Point, Point] | null;
18
24
  export declare const getDefaultFlowchartProperty: (symbol: FlowchartSymbols) => {
@@ -34,8 +40,13 @@ export declare const getDefaultFlowchartProperty: (symbol: FlowchartSymbols) =>
34
40
  width: number;
35
41
  height: number;
36
42
  };
37
- export declare const createDefaultFlowchart: (point: Point) => (import("../interfaces").PlaitLine | PlaitGeometry)[];
38
- export declare const getAutoCompletePoints: (element: PlaitGeometry) => [Point, Point, Point, Point];
43
+ export declare const createDefaultFlowchart: (board: PlaitBoard, point: Point) => (import("../interfaces").PlaitLine | PlaitGeometry)[];
44
+ export declare const getAutoCompletePoints: (element: PlaitShape) => [Point, Point, Point, Point];
39
45
  export declare const getHitIndexOfAutoCompletePoint: (movingPoint: Point, points: Point[]) => number;
40
46
  export declare const getDrawDefaultStrokeColor: (theme: ThemeColorMode) => string;
41
47
  export declare const getFlowchartDefaultFill: (theme: ThemeColorMode) => string;
48
+ export declare const getDefaultTextShapeProperty: (board: PlaitBoard, fontSize?: number | string) => {
49
+ width: number;
50
+ height: number;
51
+ text: string;
52
+ };
package/utils/index.d.ts CHANGED
@@ -3,3 +3,4 @@ export * from './geometry';
3
3
  export * from './selected';
4
4
  export * from './style';
5
5
  export * from './hit';
6
+ export * from './memorize';
package/utils/line.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Point, PlaitBoard, RectangleClient, PointOfRectangle, Direction, Vector } from '@plait/core';
2
- import { LineHandle, LineHandleRef, LineShape, LineText, PlaitGeometry, PlaitLine } from '../interfaces';
2
+ import { LineHandle, LineHandleRef, LineShape, LineText, PlaitGeometry, PlaitLine, PlaitShape } from '../interfaces';
3
3
  import { Op } from 'roughjs/bin/core';
4
4
  export declare const createLineElement: (shape: LineShape, points: [Point, Point], source: LineHandle, target: LineHandle, texts?: LineText[], options?: Pick<PlaitLine, 'strokeColor' | 'strokeWidth'>) => PlaitLine;
5
5
  export declare const getLinePoints: (board: PlaitBoard, element: PlaitLine) => Point[];
@@ -15,11 +15,11 @@ export declare const getHitLineTextIndex: (board: PlaitBoard, element: PlaitLine
15
15
  export declare const isHitLineText: (board: PlaitBoard, element: PlaitLine, point: Point) => boolean;
16
16
  export declare const drawLine: (board: PlaitBoard, element: PlaitLine) => SVGGElement;
17
17
  export declare const getConnectionPoint: (geometry: PlaitGeometry, connection: Point, direction?: Direction, delta?: number) => Point;
18
- export declare const transformPointToConnection: (board: PlaitBoard, point: Point, hitElement: PlaitGeometry) => Point;
19
- export declare const getHitConnectorPoint: (movingPoint: Point, hitElement: PlaitGeometry, rectangle: RectangleClient) => Point | undefined;
18
+ export declare const transformPointToConnection: (board: PlaitBoard, point: Point, hitElement: PlaitShape) => Point;
19
+ export declare const getHitConnectorPoint: (movingPoint: Point, hitElement: PlaitShape, rectangle: RectangleClient) => Point | undefined;
20
20
  export declare const getLineTextRectangle: (board: PlaitBoard, element: PlaitLine, index: number) => RectangleClient;
21
21
  export declare const getBoardLines: (board: PlaitBoard) => PlaitLine[];
22
22
  export declare const Q2C: (points: Point[]) => Point[];
23
23
  export declare const getVectorByConnection: (boundElement: PlaitGeometry, connection: PointOfRectangle) => Vector;
24
24
  export declare const alignPoints: (basePoint: Point, movingPoint: Point) => Point;
25
- export declare const handleLineCreating: (board: PlaitBoard, lineShape: LineShape, startPoint: Point, movingPoint: Point, sourceElement: PlaitGeometry | null, lineShapeG: SVGGElement) => PlaitLine;
25
+ export declare const handleLineCreating: (board: PlaitBoard, lineShape: LineShape, startPoint: Point, movingPoint: Point, sourceElement: PlaitShape | null, lineShapeG: SVGGElement) => PlaitLine;
@@ -0,0 +1,25 @@
1
+ import { PlaitBoard, PlaitElement } from '@plait/core';
2
+ import { GeometryShapes, PlaitDrawElement } from '../interfaces';
3
+ import { DrawPointerType } from '../constants';
4
+ import { BaseOperation } from 'slate';
5
+ export declare const getMemorizeKey: (element: PlaitElement) => string;
6
+ export declare const getLineMemorizedLatest: () => {
7
+ [x: string]: any;
8
+ id: string;
9
+ children?: PlaitElement[] | undefined;
10
+ points?: import("@plait/core").Point[] | undefined;
11
+ type?: string | undefined;
12
+ };
13
+ export declare const getMemorizedLatestByPointer: (pointer: DrawPointerType) => {
14
+ textProperties: any;
15
+ geometryProperties: {
16
+ [x: string]: any;
17
+ id: string;
18
+ children?: PlaitElement[] | undefined;
19
+ points?: import("@plait/core").Point[] | undefined;
20
+ type?: string | undefined;
21
+ };
22
+ };
23
+ export declare const memorizeLatestText: (element: PlaitDrawElement, operations: BaseOperation[]) => void;
24
+ export declare const memorizeLatestShape: (board: PlaitBoard, shape: GeometryShapes) => void;
25
+ export declare const getMemorizedLatestShape: (board: PlaitBoard) => GeometryShapes[] | undefined;
@@ -10,6 +10,6 @@ export declare const getHitGeometryResizeHandleRef: (board: PlaitBoard, element:
10
10
  height: number;
11
11
  };
12
12
  handle: ResizeHandle;
13
- cursorClass: import("@plait/common").ResizeCursorClass;
13
+ cursorClass: import("@plait/core").ResizeCursorClass;
14
14
  } | undefined;
15
15
  export declare const getHitOutlineGeometry: (board: PlaitBoard, point: Point, offset?: number) => PlaitGeometry | null;
@@ -1,44 +0,0 @@
1
- import { PlaitBoard, createG, drawCircle, getSelectedElements, isSelectionMoving } from '@plait/core';
2
- import { Generator, RESIZE_HANDLE_DIAMETER } from '@plait/common';
3
- import { getAutoCompletePoints } from '../utils';
4
- export class AutoCompleteGenerator extends Generator {
5
- constructor(board) {
6
- super(board);
7
- this.board = board;
8
- this.hoverElement = null;
9
- }
10
- canDraw(element, data) {
11
- const selectedElements = getSelectedElements(this.board);
12
- if (data.selected && selectedElements.length === 1 && !isSelectionMoving(this.board)) {
13
- return true;
14
- }
15
- else {
16
- return false;
17
- }
18
- }
19
- draw(element, data) {
20
- this.autoCompleteG = createG();
21
- const middlePoints = getAutoCompletePoints(element);
22
- middlePoints.forEach((point, index) => {
23
- const circle = drawCircle(PlaitBoard.getRoughSVG(this.board), point, RESIZE_HANDLE_DIAMETER, {
24
- stroke: 'none',
25
- fill: '#6698FF4d',
26
- fillStyle: 'solid'
27
- });
28
- circle.classList.add(`geometry-auto-complete-${index}`);
29
- this.autoCompleteG.appendChild(circle);
30
- });
31
- return this.autoCompleteG;
32
- }
33
- removeAutoCompleteG(index) {
34
- this.hoverElement = this.autoCompleteG.querySelector(`.geometry-auto-complete-${index}`);
35
- this.hoverElement.style.visibility = 'hidden';
36
- }
37
- recoverAutoCompleteG() {
38
- if (this.hoverElement) {
39
- this.hoverElement.style.visibility = 'visible';
40
- this.hoverElement = null;
41
- }
42
- }
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL2F1dG8tY29tcGxldGUuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUgsT0FBTyxFQUE0QixTQUFTLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsU0FBa0Q7SUFJekYsWUFBbUIsS0FBaUI7UUFDaEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBREUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUZwQyxpQkFBWSxHQUF1QixJQUFJLENBQUM7SUFJeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFzQixFQUFFLElBQThCO1FBQzFELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xGLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7YUFBTTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFzQixFQUFFLElBQThCO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO2dCQUN6RixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsV0FBVztnQkFDakIsU0FBUyxFQUFFLE9BQU87YUFDckIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ25ELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBjcmVhdGVHLCBkcmF3Q2lyY2xlLCBnZXRTZWxlY3RlZEVsZW1lbnRzLCBpc1NlbGVjdGlvbk1vdmluZyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvckV4dHJhRGF0YSwgR2VuZXJhdG9yLCBSRVNJWkVfSEFORExFX0RJQU1FVEVSLCBnZXRSZWN0YW5nbGVCeVBvaW50cyB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0QXV0b0NvbXBsZXRlUG9pbnRzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPFBsYWl0R2VvbWV0cnksIEFjdGl2ZUdlbmVyYXRvckV4dHJhRGF0YT4ge1xuICAgIGF1dG9Db21wbGV0ZUchOiBTVkdHRWxlbWVudDtcbiAgICBob3ZlckVsZW1lbnQ6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgc3VwZXIoYm9hcmQpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRHZW9tZXRyeSwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuXG4gICAgICAgIGlmIChkYXRhLnNlbGVjdGVkICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnksIGRhdGE6IEFjdGl2ZUdlbmVyYXRvckV4dHJhRGF0YSk6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVHID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCBtaWRkbGVQb2ludHMgPSBnZXRBdXRvQ29tcGxldGVQb2ludHMoZWxlbWVudCk7XG4gICAgICAgIG1pZGRsZVBvaW50cy5mb3JFYWNoKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNpcmNsZSA9IGRyYXdDaXJjbGUoUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKSwgcG9pbnQsIFJFU0laRV9IQU5ETEVfRElBTUVURVIsIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnIzY2OThGRjRkJyxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2lyY2xlLmNsYXNzTGlzdC5hZGQoYGdlb21ldHJ5LWF1dG8tY29tcGxldGUtJHtpbmRleH1gKTtcbiAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlRy5hcHBlbmRDaGlsZChjaXJjbGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlRztcbiAgICB9XG5cbiAgICByZW1vdmVBdXRvQ29tcGxldGVHKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQgPSB0aGlzLmF1dG9Db21wbGV0ZUcucXVlcnlTZWxlY3RvcihgLmdlb21ldHJ5LWF1dG8tY29tcGxldGUtJHtpbmRleH1gKTtcbiAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQhLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICB9XG5cbiAgICByZWNvdmVyQXV0b0NvbXBsZXRlRygpIHtcbiAgICAgICAgaWYgKHRoaXMuaG92ZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhvdmVyRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,35 +0,0 @@
1
- import { PlaitBoard, PlaitElement, drawCircle, isSelectionMoving, toPoint, transformPoint } from '@plait/core';
2
- import { PlaitDrawElement } from '../interfaces';
3
- import { getAutoCompletePoints, getHitIndexOfAutoCompletePoint, getSelectedDrawElements } from '../utils';
4
- export const withAutoCompleteReaction = (board) => {
5
- const { pointerMove } = board;
6
- let reactionG = null;
7
- board.pointerMove = (event) => {
8
- reactionG?.remove();
9
- if (isSelectionMoving(board)) {
10
- pointerMove(event);
11
- return;
12
- }
13
- const selectedElements = getSelectedDrawElements(board);
14
- const movingPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
15
- if (selectedElements.length === 1 && PlaitDrawElement.isGeometry(selectedElements[0])) {
16
- const points = getAutoCompletePoints(selectedElements[0]);
17
- const hitIndex = getHitIndexOfAutoCompletePoint(movingPoint, points);
18
- const hitPoint = points[hitIndex];
19
- const component = PlaitElement.getComponent(selectedElements[0]);
20
- component.autoCompleteGenerator.recoverAutoCompleteG();
21
- if (hitPoint) {
22
- component.autoCompleteGenerator.removeAutoCompleteG(hitIndex);
23
- reactionG = drawCircle(PlaitBoard.getRoughSVG(board), hitPoint, 10, {
24
- stroke: 'none',
25
- fill: '#6698FF80',
26
- fillStyle: 'solid'
27
- });
28
- PlaitBoard.getElementActiveHost(board).append(reactionG);
29
- }
30
- }
31
- pointerMove(event);
32
- };
33
- return board;
34
- };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hdXRvLWNvbXBsZXRlLXJlYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvcGx1Z2lucy93aXRoLWF1dG8tY29tcGxldGUtcmVhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUcxRyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTlCLElBQUksU0FBUyxHQUF1QixJQUFJLENBQUM7SUFFekMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN4QyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDcEIsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTztTQUNWO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25GLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsTUFBTSxRQUFRLEdBQUcsOEJBQThCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFzQixDQUFDO1lBQ3RGLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZELElBQUksUUFBUSxFQUFFO2dCQUNWLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDOUQsU0FBUyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7b0JBQ2hFLE1BQU0sRUFBRSxNQUFNO29CQUNkLElBQUksRUFBRSxXQUFXO29CQUNqQixTQUFTLEVBQUUsT0FBTztpQkFDckIsQ0FBQyxDQUFDO2dCQUNILFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDNUQ7U0FDSjtRQUVELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIGRyYXdDaXJjbGUsIGlzU2VsZWN0aW9uTW92aW5nLCB0b1BvaW50LCB0cmFuc2Zvcm1Qb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEF1dG9Db21wbGV0ZVBvaW50cywgZ2V0SGl0SW5kZXhPZkF1dG9Db21wbGV0ZVBvaW50LCBnZXRTZWxlY3RlZERyYXdFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEdlb21ldHJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vZ2VvbWV0cnkuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IHdpdGhBdXRvQ29tcGxldGVSZWFjdGlvbiA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHsgcG9pbnRlck1vdmUgfSA9IGJvYXJkO1xuXG4gICAgbGV0IHJlYWN0aW9uRzogU1ZHR0VsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgcmVhY3Rpb25HPy5yZW1vdmUoKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0aW9uTW92aW5nKGJvYXJkKSkge1xuICAgICAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRHJhd0VsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3QgbW92aW5nUG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoc2VsZWN0ZWRFbGVtZW50c1swXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IGdldEF1dG9Db21wbGV0ZVBvaW50cyhzZWxlY3RlZEVsZW1lbnRzWzBdKTtcbiAgICAgICAgICAgIGNvbnN0IGhpdEluZGV4ID0gZ2V0SGl0SW5kZXhPZkF1dG9Db21wbGV0ZVBvaW50KG1vdmluZ1BvaW50LCBwb2ludHMpO1xuICAgICAgICAgICAgY29uc3QgaGl0UG9pbnQgPSBwb2ludHNbaGl0SW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gUGxhaXRFbGVtZW50LmdldENvbXBvbmVudChzZWxlY3RlZEVsZW1lbnRzWzBdKSBhcyBHZW9tZXRyeUNvbXBvbmVudDtcbiAgICAgICAgICAgIGNvbXBvbmVudC5hdXRvQ29tcGxldGVHZW5lcmF0b3IucmVjb3ZlckF1dG9Db21wbGV0ZUcoKTtcbiAgICAgICAgICAgIGlmIChoaXRQb2ludCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5hdXRvQ29tcGxldGVHZW5lcmF0b3IucmVtb3ZlQXV0b0NvbXBsZXRlRyhoaXRJbmRleCk7XG4gICAgICAgICAgICAgICAgcmVhY3Rpb25HID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSwgaGl0UG9pbnQsIDEwLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiAnIzY2OThGRjgwJyxcbiAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKHJlYWN0aW9uRyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
@@ -1,61 +0,0 @@
1
- import { BoardTransforms, PlaitBoard, PlaitPointerType, Transforms, addSelectedElement, clearSelectedElement, createG, distanceBetweenPointAndPoint, temporaryDisableSelection, toPoint, transformPoint } from '@plait/core';
2
- import { LineShape, PlaitDrawElement } from '../interfaces';
3
- import { handleLineCreating, getAutoCompletePoints, getHitIndexOfAutoCompletePoint, getSelectedDrawElements } from '../utils';
4
- export const withAutoCompletePluginKey = 'plait-auto-complete-plugin-key';
5
- export const withAutoComplete = (board) => {
6
- const { pointerDown, pointerMove, pointerUp } = board;
7
- const tolerance = 3;
8
- let startPoint = null;
9
- let lineShapeG = null;
10
- let sourceElement;
11
- let temporaryElement;
12
- board.pointerDown = (event) => {
13
- const selectedElements = getSelectedDrawElements(board);
14
- const clickPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
15
- if (selectedElements.length === 1 && PlaitDrawElement.isGeometry(selectedElements[0])) {
16
- const points = getAutoCompletePoints(selectedElements[0]);
17
- const index = getHitIndexOfAutoCompletePoint(clickPoint, points);
18
- const hitPoint = points[index];
19
- if (hitPoint) {
20
- temporaryDisableSelection(board);
21
- startPoint = clickPoint;
22
- sourceElement = selectedElements[0];
23
- BoardTransforms.updatePointerType(board, LineShape.elbow);
24
- }
25
- }
26
- pointerDown(event);
27
- };
28
- board.pointerMove = (event) => {
29
- lineShapeG?.remove();
30
- lineShapeG = createG();
31
- let movingPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
32
- if (startPoint && sourceElement) {
33
- const distance = distanceBetweenPointAndPoint(...movingPoint, ...startPoint);
34
- if (distance > tolerance) {
35
- temporaryElement = handleLineCreating(board, LineShape.elbow, startPoint, movingPoint, sourceElement, lineShapeG);
36
- }
37
- }
38
- pointerMove(event);
39
- };
40
- board.pointerUp = event => {
41
- if (temporaryElement) {
42
- Transforms.insertNode(board, temporaryElement, [board.children.length]);
43
- clearSelectedElement(board);
44
- addSelectedElement(board, temporaryElement);
45
- const afterComplete = board.getPluginOptions(withAutoCompletePluginKey)
46
- ?.afterComplete;
47
- afterComplete && afterComplete(temporaryElement);
48
- }
49
- if (startPoint) {
50
- BoardTransforms.updatePointerType(board, PlaitPointerType.selection);
51
- startPoint = null;
52
- }
53
- lineShapeG?.remove();
54
- lineShapeG = null;
55
- sourceElement = null;
56
- temporaryElement = null;
57
- pointerUp(event);
58
- };
59
- return board;
60
- };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hdXRvLWNvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvcGx1Z2lucy93aXRoLWF1dG8tY29tcGxldGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFDZixVQUFVLEVBRVYsZ0JBQWdCLEVBRWhCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLE9BQU8sRUFDUCxjQUFjLEVBQ2pCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU05SCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNsRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFdEQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLElBQUksVUFBVSxHQUFpQixJQUFJLENBQUM7SUFDcEMsSUFBSSxVQUFVLEdBQXVCLElBQUksQ0FBQztJQUMxQyxJQUFJLGFBQW1DLENBQUM7SUFDeEMsSUFBSSxnQkFBa0MsQ0FBQztJQUV2QyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxD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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJvYXJkVHJhbnNmb3JtcyxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0T3B0aW9uc0JvYXJkLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUG9pbnQsXG4gICAgVHJhbnNmb3JtcyxcbiAgICBhZGRTZWxlY3RlZEVsZW1lbnQsXG4gICAgY2xlYXJTZWxlY3RlZEVsZW1lbnQsXG4gICAgY3JlYXRlRyxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50LFxuICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24sXG4gICAgdG9Qb2ludCxcbiAgICB0cmFuc2Zvcm1Qb2ludFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBMaW5lU2hhcGUsIFBsYWl0RHJhd0VsZW1lbnQsIFBsYWl0R2VvbWV0cnksIFBsYWl0TGluZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaGFuZGxlTGluZUNyZWF0aW5nLCBnZXRBdXRvQ29tcGxldGVQb2ludHMsIGdldEhpdEluZGV4T2ZBdXRvQ29tcGxldGVQb2ludCwgZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0NvbXBsZXRlT3B0aW9ucyB7XG4gICAgYWZ0ZXJDb21wbGV0ZTogKGVsZW1lbnQ6IFBsYWl0TGluZSkgPT4ge307XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoQXV0b0NvbXBsZXRlUGx1Z2luS2V5ID0gJ3BsYWl0LWF1dG8tY29tcGxldGUtcGx1Z2luLWtleSc7XG5cbmV4cG9ydCBjb25zdCB3aXRoQXV0b0NvbXBsZXRlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIHBvaW50ZXJVcCB9ID0gYm9hcmQ7XG5cbiAgICBjb25zdCB0b2xlcmFuY2UgPSAzO1xuICAgIGxldCBzdGFydFBvaW50OiBQb2ludCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBsaW5lU2hhcGVHOiBTVkdHRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzb3VyY2VFbGVtZW50OiBQbGFpdEdlb21ldHJ5IHwgbnVsbDtcbiAgICBsZXQgdGVtcG9yYXJ5RWxlbWVudDogUGxhaXRMaW5lIHwgbnVsbDtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRHJhd0VsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3QgY2xpY2tQb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeShzZWxlY3RlZEVsZW1lbnRzWzBdKSkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0QXV0b0NvbXBsZXRlUG9pbnRzKHNlbGVjdGVkRWxlbWVudHNbMF0pO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBnZXRIaXRJbmRleE9mQXV0b0NvbXBsZXRlUG9pbnQoY2xpY2tQb2ludCwgcG9pbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IGhpdFBvaW50ID0gcG9pbnRzW2luZGV4XTtcbiAgICAgICAgICAgIGlmIChoaXRQb2ludCkge1xuICAgICAgICAgICAgICAgIHRlbXBvcmFyeURpc2FibGVTZWxlY3Rpb24oYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpO1xuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBjbGlja1BvaW50O1xuICAgICAgICAgICAgICAgIHNvdXJjZUVsZW1lbnQgPSBzZWxlY3RlZEVsZW1lbnRzWzBdO1xuICAgICAgICAgICAgICAgIEJvYXJkVHJhbnNmb3Jtcy51cGRhdGVQb2ludGVyVHlwZShib2FyZCwgTGluZVNoYXBlLmVsYm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgbGluZVNoYXBlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGxpbmVTaGFwZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGxldCBtb3ZpbmdQb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgaWYgKHN0YXJ0UG9pbnQgJiYgc291cmNlRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KC4uLm1vdmluZ1BvaW50LCAuLi5zdGFydFBvaW50KTtcbiAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+IHRvbGVyYW5jZSkge1xuICAgICAgICAgICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBoYW5kbGVMaW5lQ3JlYXRpbmcoYm9hcmQsIExpbmVTaGFwZS5lbGJvdywgc3RhcnRQb2ludCwgbW92aW5nUG9pbnQsIHNvdXJjZUVsZW1lbnQsIGxpbmVTaGFwZUcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5wb2ludGVyVXAgPSBldmVudCA9PiB7XG4gICAgICAgIGlmICh0ZW1wb3JhcnlFbGVtZW50KSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIHRlbXBvcmFyeUVsZW1lbnQsIFtib2FyZC5jaGlsZHJlbi5sZW5ndGhdKTtcbiAgICAgICAgICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50KGJvYXJkKTtcbiAgICAgICAgICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgdGVtcG9yYXJ5RWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBhZnRlckNvbXBsZXRlID0gKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zPEF1dG9Db21wbGV0ZU9wdGlvbnM+KHdpdGhBdXRvQ29tcGxldGVQbHVnaW5LZXkpXG4gICAgICAgICAgICAgICAgPy5hZnRlckNvbXBsZXRlO1xuICAgICAgICAgICAgYWZ0ZXJDb21wbGV0ZSAmJiBhZnRlckNvbXBsZXRlKHRlbXBvcmFyeUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydFBvaW50KSB7XG4gICAgICAgICAgICBCb2FyZFRyYW5zZm9ybXMudXBkYXRlUG9pbnRlclR5cGUoYm9hcmQsIFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGxpbmVTaGFwZUc/LnJlbW92ZSgpO1xuICAgICAgICBsaW5lU2hhcGVHID0gbnVsbDtcbiAgICAgICAgc291cmNlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBudWxsO1xuICAgICAgICBwb2ludGVyVXAoZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
@@ -1,33 +0,0 @@
1
- import { PropertyTransforms } from '@plait/common';
2
- import { MemorizeKey, PlaitDrawElement } from '../interfaces';
3
- export const setStrokeColor = (board, strokeColor) => {
4
- PropertyTransforms.setProperty(board, { strokeColor }, { getMemorizeKey });
5
- };
6
- export const setStrokeWidth = (board, strokeWidth) => {
7
- PropertyTransforms.setProperty(board, { strokeWidth }, { getMemorizeKey });
8
- };
9
- export const setFillColor = (board, fill) => {
10
- PropertyTransforms.setProperty(board, { fill }, { getMemorizeKey });
11
- };
12
- export const setStrokeStyle = (board, strokeStyle) => {
13
- PropertyTransforms.setProperty(board, { strokeStyle }, { getMemorizeKey });
14
- };
15
- export const getMemorizeKey = (element) => {
16
- let key = '';
17
- switch (true) {
18
- case PlaitDrawElement.isBaseShape(element): {
19
- key = MemorizeKey.basicShape;
20
- break;
21
- }
22
- case PlaitDrawElement.isFlowchart(element): {
23
- key = MemorizeKey.flowchart;
24
- break;
25
- }
26
- case PlaitDrawElement.isLine(element): {
27
- key = MemorizeKey.line;
28
- break;
29
- }
30
- }
31
- return key;
32
- };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdHJhbnNmb3Jtcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxXQUFtQixFQUFFLEVBQUU7SUFDckUsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQW1CLEVBQUUsRUFBRTtJQUNyRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWlCLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDNUQsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQW1CLEVBQUUsRUFBRTtJQUNyRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUNwRCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixRQUFRLElBQUksRUFBRTtRQUNWLEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDeEMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDN0IsTUFBTTtTQUNUO1FBQ0QsS0FBSyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4QyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QixNQUFNO1NBQ1Q7UUFDRCxLQUFLLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLE1BQU07U0FDVDtLQUNKO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eVRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1lbW9yaXplS2V5LCBQbGFpdERyYXdFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBzZXRTdHJva2VDb2xvciA9IChib2FyZDogUGxhaXRCb2FyZCwgc3Ryb2tlQ29sb3I6IHN0cmluZykgPT4ge1xuICAgIFByb3BlcnR5VHJhbnNmb3Jtcy5zZXRQcm9wZXJ0eShib2FyZCwgeyBzdHJva2VDb2xvciB9LCB7IGdldE1lbW9yaXplS2V5IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFN0cm9rZVdpZHRoID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzdHJva2VXaWR0aDogbnVtYmVyKSA9PiB7XG4gICAgUHJvcGVydHlUcmFuc2Zvcm1zLnNldFByb3BlcnR5KGJvYXJkLCB7IHN0cm9rZVdpZHRoIH0sIHsgZ2V0TWVtb3JpemVLZXkgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0RmlsbENvbG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBmaWxsOiBzdHJpbmcpID0+IHtcbiAgICBQcm9wZXJ0eVRyYW5zZm9ybXMuc2V0UHJvcGVydHkoYm9hcmQsIHsgZmlsbCB9LCB7IGdldE1lbW9yaXplS2V5IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFN0cm9rZVN0eWxlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzdHJva2VTdHlsZTogc3RyaW5nKSA9PiB7XG4gICAgUHJvcGVydHlUcmFuc2Zvcm1zLnNldFByb3BlcnR5KGJvYXJkLCB7IHN0cm9rZVN0eWxlIH0sIHsgZ2V0TWVtb3JpemVLZXkgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVLZXkgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgbGV0IGtleSA9ICcnO1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNCYXNlU2hhcGUoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmJhc2ljU2hhcGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNGbG93Y2hhcnQoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmZsb3djaGFydDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmxpbmU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ga2V5O1xufTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- export declare const withAutoCompleteReaction: (board: PlaitBoard) => PlaitBoard;
@@ -1,7 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- import { PlaitLine } from '../interfaces';
3
- export interface AutoCompleteOptions {
4
- afterComplete: (element: PlaitLine) => {};
5
- }
6
- export declare const withAutoCompletePluginKey = "plait-auto-complete-plugin-key";
7
- export declare const withAutoComplete: (board: PlaitBoard) => PlaitBoard;
@@ -1,6 +0,0 @@
1
- import { PlaitBoard, PlaitElement } from '@plait/core';
2
- export declare const setStrokeColor: (board: PlaitBoard, strokeColor: string) => void;
3
- export declare const setStrokeWidth: (board: PlaitBoard, strokeWidth: number) => void;
4
- export declare const setFillColor: (board: PlaitBoard, fill: string) => void;
5
- export declare const setStrokeStyle: (board: PlaitBoard, strokeStyle: string) => void;
6
- export declare const getMemorizeKey: (element: PlaitElement) => string;