@plait/common 0.1.0-next.0 → 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 (80) hide show
  1. package/constants/default.d.ts +2 -1
  2. package/constants/media.d.ts +3 -0
  3. package/constants/resize.d.ts +1 -1
  4. package/core/image-base.component.d.ts +29 -0
  5. package/core/plugin-element.d.ts +7 -0
  6. package/{esm2020 → esm2022}/constants/default.mjs +3 -2
  7. package/esm2022/constants/media.mjs +8 -0
  8. package/esm2022/constants/resize.mjs +19 -0
  9. package/esm2022/core/image-base.component.mjs +93 -0
  10. package/esm2022/core/plugin-element.mjs +14 -0
  11. package/esm2022/generators/active.generator.mjs +46 -0
  12. package/esm2022/generators/generator.mjs +42 -0
  13. package/esm2022/generators/image.generator.mjs +54 -0
  14. package/esm2022/generators/index.mjs +4 -0
  15. package/esm2022/plugins/index.mjs +3 -0
  16. package/esm2022/plugins/text-options.mjs +2 -0
  17. package/esm2022/plugins/with-resize.mjs +101 -0
  18. package/esm2022/public-api.mjs +12 -0
  19. package/esm2022/shapes/common.mjs +14 -0
  20. package/esm2022/shapes/index.mjs +2 -0
  21. package/esm2022/transforms/common.mjs +15 -0
  22. package/esm2022/transforms/index.mjs +2 -0
  23. package/esm2022/transforms/property.mjs +21 -0
  24. package/esm2022/utils/creation-mode.mjs +19 -0
  25. package/esm2022/utils/direction.mjs +95 -0
  26. package/esm2022/utils/hot-key.mjs +29 -0
  27. package/esm2022/utils/image.mjs +40 -0
  28. package/esm2022/utils/index.mjs +9 -0
  29. package/esm2022/utils/line-path.mjs +146 -0
  30. package/esm2022/utils/rectangle.mjs +16 -0
  31. package/esm2022/utils/resize.mjs +61 -0
  32. package/esm2022/utils/text.mjs +11 -0
  33. package/fesm2022/plait-common.mjs +840 -0
  34. package/fesm2022/plait-common.mjs.map +1 -0
  35. package/{generator → generators}/active.generator.d.ts +4 -2
  36. package/{generator → generators}/generator.d.ts +1 -0
  37. package/generators/image.generator.d.ts +23 -0
  38. package/{generator → generators}/index.d.ts +1 -0
  39. package/package.json +7 -12
  40. package/plugins/index.d.ts +1 -0
  41. package/plugins/text-options.d.ts +5 -0
  42. package/plugins/with-resize.d.ts +12 -14
  43. package/public-api.d.ts +4 -3
  44. package/{shape → shapes}/common.d.ts +1 -1
  45. package/transforms/common.d.ts +2 -0
  46. package/transforms/index.d.ts +1 -3
  47. package/transforms/property.d.ts +8 -0
  48. package/utils/creation-mode.d.ts +9 -0
  49. package/utils/direction.d.ts +29 -0
  50. package/utils/hot-key.d.ts +6 -0
  51. package/utils/image.d.ts +12 -0
  52. package/utils/index.d.ts +7 -0
  53. package/utils/line-path.d.ts +17 -0
  54. package/utils/rectangle.d.ts +7 -0
  55. package/utils/resize.d.ts +12 -10
  56. package/utils/text.d.ts +3 -0
  57. package/esm2020/constants/media.mjs +0 -5
  58. package/esm2020/constants/resize.mjs +0 -19
  59. package/esm2020/generator/active.generator.mjs +0 -40
  60. package/esm2020/generator/generator.mjs +0 -29
  61. package/esm2020/generator/index.mjs +0 -3
  62. package/esm2020/plugins/index.mjs +0 -2
  63. package/esm2020/plugins/with-resize.mjs +0 -93
  64. package/esm2020/public-api.mjs +0 -11
  65. package/esm2020/rectangle.mjs +0 -16
  66. package/esm2020/shape/common.mjs +0 -6
  67. package/esm2020/shape/index.mjs +0 -2
  68. package/esm2020/transforms/element.mjs +0 -17
  69. package/esm2020/transforms/index.mjs +0 -5
  70. package/esm2020/utils/index.mjs +0 -2
  71. package/esm2020/utils/resize.mjs +0 -69
  72. package/fesm2015/plait-common.mjs +0 -304
  73. package/fesm2015/plait-common.mjs.map +0 -1
  74. package/fesm2020/plait-common.mjs +0 -304
  75. package/fesm2020/plait-common.mjs.map +0 -1
  76. package/rectangle.d.ts +0 -4
  77. package/transforms/element.d.ts +0 -2
  78. /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
  79. /package/{esm2020 → esm2022}/plait-common.mjs +0 -0
  80. /package/{shape → shapes}/index.d.ts +0 -0
@@ -1,29 +0,0 @@
1
- export class Generator {
2
- constructor(board, options) {
3
- this.board = board;
4
- }
5
- draw(element, parentG, data) {
6
- this.destroy();
7
- if (this.canDraw && this.canDraw(element, data)) {
8
- const g = this.baseDraw(element, data);
9
- if (g) {
10
- parentG.append(g);
11
- }
12
- if (hasAfterDraw(this)) {
13
- this.afterDraw(element);
14
- }
15
- }
16
- }
17
- destroy() {
18
- if (this.g) {
19
- this.g.remove();
20
- }
21
- }
22
- }
23
- export function hasAfterDraw(value) {
24
- if (value.afterDraw) {
25
- return true;
26
- }
27
- return false;
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3IvZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBZ0IsU0FBUztJQU8zQixZQUFzQixLQUFpQixFQUFFLE9BQVc7UUFBOUIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUFnQixDQUFDO0lBRXhELElBQUksQ0FBQyxPQUFVLEVBQUUsT0FBb0IsRUFBRSxJQUFRO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM3QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRTtnQkFDSCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0I7U0FDSjtJQUNMLENBQUM7SUFNRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuQjtJQUNMLENBQUM7Q0FDSjtBQU1ELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBVTtJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yRXh0cmFEYXRhIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yT3B0aW9ucyB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJhdG9yPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIEdlbmVyYXRvckV4dHJhRGF0YSA9IEdlbmVyYXRvckV4dHJhRGF0YSxcbiAgICBWIGV4dGVuZHMgR2VuZXJhdG9yT3B0aW9ucyA9IEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBib2FyZDogUGxhaXRCb2FyZCwgb3B0aW9ucz86IFYpIHt9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQsIHBhcmVudEc6IFNWR0dFbGVtZW50LCBkYXRhPzogSykge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKHRoaXMuY2FuRHJhdyAmJiB0aGlzLmNhbkRyYXcoZWxlbWVudCwgZGF0YSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGcgPSB0aGlzLmJhc2VEcmF3KGVsZW1lbnQsIGRhdGEpO1xuICAgICAgICAgICAgaWYgKGcpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRHLmFwcGVuZChnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFic3RyYWN0IGNhbkRyYXcoZWxlbWVudDogVCwgZGF0YT86IEspOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgYmFzZURyYXcoZWxlbWVudDogVCwgZGF0YT86IEspOiBTVkdHRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmcpIHtcbiAgICAgICAgICAgIHRoaXMuZy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZnRlckRyYXc8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4ge1xuICAgIGFmdGVyRHJhdyhlbGVtZW50OiBUKTogdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FmdGVyRHJhdyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQWZ0ZXJEcmF3IHtcbiAgICBpZiAodmFsdWUuYWZ0ZXJEcmF3KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './generator';
2
- export * from './active.generator';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2dlbmVyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hY3RpdmUuZ2VuZXJhdG9yJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './with-resize';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dpdGgtcmVzaXplJztcbiJdfQ==
@@ -1,93 +0,0 @@
1
- import { MERGING, PRESS_AND_MOVE_BUFFER, PlaitBoard, PlaitPointerType, distanceBetweenPointAndPoint, isMainPointer, preventTouchMove, throttleRAF, toPoint, transformPoint } from '@plait/core';
2
- import { addResizing, isResizing, removeResizing } from '../utils/resize';
3
- const generalCanResize = (board, event) => {
4
- return (PlaitBoard.isReadonly(board) ||
5
- PlaitBoard.hasBeenTextEditing(board) ||
6
- !PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
7
- !isMainPointer(event));
8
- };
9
- export const withResize = (board, options) => {
10
- const { pointerDown, pointerMove, globalPointerUp } = board;
11
- let resizeDetectResult = null;
12
- let resizeRef = null;
13
- let startPoint = null;
14
- let hoveDetectResult = null;
15
- board.pointerDown = (event) => {
16
- if (!options.canResize() || !generalCanResize(board, event)) {
17
- pointerDown(event);
18
- return;
19
- }
20
- const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
21
- resizeDetectResult = options.detect(point);
22
- if (resizeDetectResult) {
23
- PlaitBoard.getBoardContainer(board).classList.add(`${resizeDetectResult.cursorClass}`);
24
- startPoint = [event.x, event.y];
25
- resizeRef = {
26
- path: PlaitBoard.findPath(board, resizeDetectResult.element),
27
- element: resizeDetectResult.element,
28
- direction: resizeDetectResult.direction
29
- };
30
- return;
31
- }
32
- pointerDown(event);
33
- };
34
- board.pointerMove = (event) => {
35
- if (!options.canResize() || !generalCanResize(board, event)) {
36
- pointerMove(event);
37
- return;
38
- }
39
- if (startPoint && resizeDetectResult && !isResizing(board)) {
40
- // prevent text from being selected
41
- event.preventDefault();
42
- preventTouchMove(board, true);
43
- const endPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
44
- const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
45
- if (distance > PRESS_AND_MOVE_BUFFER) {
46
- addResizing(board, options.key);
47
- MERGING.set(board, true);
48
- }
49
- }
50
- if (isResizing(board) && startPoint) {
51
- // prevent text from being selected
52
- event.preventDefault();
53
- preventTouchMove(board, true);
54
- throttleRAF(() => {
55
- const endPoint = [event.x, event.y];
56
- if (startPoint && resizeRef) {
57
- const offsetX = endPoint[0] - startPoint[0];
58
- const offsetY = endPoint[1] - startPoint[1];
59
- options.onResize(resizeRef, { offsetX, offsetY });
60
- }
61
- });
62
- return;
63
- }
64
- else {
65
- const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
66
- const resizeDetectResult = options.detect(point);
67
- if (resizeDetectResult) {
68
- hoveDetectResult = resizeDetectResult;
69
- PlaitBoard.getBoardContainer(board).classList.add(`${hoveDetectResult.cursorClass}`);
70
- }
71
- else {
72
- if (hoveDetectResult) {
73
- PlaitBoard.getBoardContainer(board).classList.remove(`${hoveDetectResult.cursorClass}`);
74
- hoveDetectResult = null;
75
- }
76
- }
77
- }
78
- pointerMove(event);
79
- };
80
- board.globalPointerUp = (event) => {
81
- globalPointerUp(event);
82
- if (isResizing(board) || resizeDetectResult) {
83
- removeResizing(board, options.key);
84
- startPoint = null;
85
- resizeDetectResult = null;
86
- resizeRef = null;
87
- MERGING.set(board, false);
88
- preventTouchMove(board, false);
89
- }
90
- };
91
- return board;
92
- };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFFckIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsT0FBTyxFQUNQLGNBQWMsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEwQjFFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtJQUNoRSxPQUFPLENBQ0gsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDNUIsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUNwQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNuRCxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FDeEIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUF3QyxLQUFpQixFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUNsSCxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDNUQsSUFBSSxrQkFBa0IsR0FBaUMsSUFBSSxDQUFDO0lBQzVELElBQUksU0FBUyxHQUF3QixJQUFJLENBQUM7SUFDMUMsSUFBSSxVQUFVLEdBQWlCLElBQUksQ0FBQztJQUNwQyxJQUFJLGdCQUFnQixHQUFpQyxJQUFJLENBQUM7SUFFMUQsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ3pELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixPQUFPO1NBQ1Y7UUFDRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUYsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN2RixVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxTQUFTLEdBQUc7Z0JBQ1IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztnQkFDNUQsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE9BQU87Z0JBQ25DLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO2FBQzFDLENBQUM7WUFDRixPQUFPO1NBQ1Y7UUFDRCxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ3pELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLFVBQVUsSUFBSSxrQkFBa0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4RCxtQ0FBbUM7WUFDbkMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUU5QixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0YsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEcsSUFBSSxRQUFRLEdBQUcscUJBQXFCLEVBQUU7Z0JBQ2xDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzthQUM1QjtTQUNKO1FBRUQsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ2pDLG1DQUFtQztZQUNuQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTlCLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFO29CQUN6QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2lCQUNyRDtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTztTQUNWO2FBQU07WUFDSCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELElBQUksa0JBQWtCLEVBQUU7Z0JBQ3BCLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO2dCQUN0QyxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDeEY7aUJBQU07Z0JBQ0gsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDbEIsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUN4RixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7aUJBQzNCO2FBQ0o7U0FDSjtRQUNELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsRUFBRTtZQUN6QyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMxQixTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTUVSR0lORyxcbiAgICBQUkVTU19BTkRfTU9WRV9CVUZGRVIsXG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdFBvaW50ZXJUeXBlLFxuICAgIFBvaW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBwcmV2ZW50VG91Y2hNb3ZlLFxuICAgIHRocm90dGxlUkFGLFxuICAgIHRvUG9pbnQsXG4gICAgdHJhbnNmb3JtUG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVzaXplRGlyZWN0aW9uLCBSZXNpemVDdXJzb3JDbGFzcyB9IGZyb20gJy4uL2NvbnN0YW50cy9yZXNpemUnO1xuaW1wb3J0IHsgYWRkUmVzaXppbmcsIGlzUmVzaXppbmcsIHJlbW92ZVJlc2l6aW5nIH0gZnJvbSAnLi4vdXRpbHMvcmVzaXplJztcblxuZXhwb3J0IGludGVyZmFjZSBXaXRoUmVzaXplT3B0aW9uczxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50PiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgY2FuUmVzaXplOiAoKSA9PiBib29sZWFuO1xuICAgIGRldGVjdDogKHBvaW50OiBQb2ludCkgPT4gUmVzaXplRGV0ZWN0UmVzdWx0PFQ+IHwgbnVsbDtcbiAgICBvblJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQ+LCByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaXplRGV0ZWN0UmVzdWx0PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIGRpcmVjdGlvbjogUmVzaXplRGlyZWN0aW9uO1xuICAgIGN1cnNvckNsYXNzOiBSZXNpemVDdXJzb3JDbGFzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVSZWY8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgcGF0aDogUGF0aDtcbiAgICBkaXJlY3Rpb246IFJlc2l6ZURpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVTdGF0ZSB7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbn1cblxuY29uc3QgZ2VuZXJhbENhblJlc2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgfHxcbiAgICAgICAgUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpIHx8XG4gICAgICAgICFQbGFpdEJvYXJkLmlzUG9pbnRlcihib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5oYW5kKSB8fFxuICAgICAgICAhaXNNYWluUG9pbnRlcihldmVudClcbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhSZXNpemUgPSA8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4oYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM6IFdpdGhSZXNpemVPcHRpb25zPFQ+KSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCB9ID0gYm9hcmQ7XG4gICAgbGV0IHJlc2l6ZURldGVjdFJlc3VsdDogUmVzaXplRGV0ZWN0UmVzdWx0PFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHJlc2l6ZVJlZjogUmVzaXplUmVmPFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHN0YXJ0UG9pbnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGhvdmVEZXRlY3RSZXN1bHQ6IFJlc2l6ZURldGVjdFJlc3VsdDxUPiB8IG51bGwgPSBudWxsO1xuXG4gICAgYm9hcmQucG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKSkpO1xuICAgICAgICByZXNpemVEZXRlY3RSZXN1bHQgPSBvcHRpb25zLmRldGVjdChwb2ludCk7XG4gICAgICAgIGlmIChyZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7cmVzaXplRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgc3RhcnRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IHtcbiAgICAgICAgICAgICAgICBwYXRoOiBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCByZXNpemVEZXRlY3RSZXN1bHQuZWxlbWVudCksXG4gICAgICAgICAgICAgICAgZWxlbWVudDogcmVzaXplRGV0ZWN0UmVzdWx0LmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiByZXNpemVEZXRlY3RSZXN1bHQuZGlyZWN0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydFBvaW50ICYmIHJlc2l6ZURldGVjdFJlc3VsdCAmJiAhaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgdGV4dCBmcm9tIGJlaW5nIHNlbGVjdGVkXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKSkpO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0sIGVuZFBvaW50WzBdLCBlbmRQb2ludFsxXSk7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiBQUkVTU19BTkRfTU9WRV9CVUZGRVIpIHtcbiAgICAgICAgICAgICAgICBhZGRSZXNpemluZyhib2FyZCwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSAmJiBzdGFydFBvaW50KSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IHRleHQgZnJvbSBiZWluZyBzZWxlY3RlZFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHByZXZlbnRUb3VjaE1vdmUoYm9hcmQsIHRydWUpO1xuXG4gICAgICAgICAgICB0aHJvdHRsZVJBRigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBbZXZlbnQueCwgZXZlbnQueV07XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgJiYgcmVzaXplUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBlbmRQb2ludFswXSAtIHN0YXJ0UG9pbnRbMF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFkgPSBlbmRQb2ludFsxXSAtIHN0YXJ0UG9pbnRbMV07XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMub25SZXNpemUocmVzaXplUmVmLCB7IG9mZnNldFgsIG9mZnNldFkgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZURldGVjdFJlc3VsdCA9IG9wdGlvbnMuZGV0ZWN0KHBvaW50KTtcbiAgICAgICAgICAgIGlmIChyZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBob3ZlRGV0ZWN0UmVzdWx0ID0gcmVzaXplRGV0ZWN0UmVzdWx0O1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7aG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzc31gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGhvdmVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICBob3ZlRGV0ZWN0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nbG9iYWxQb2ludGVyVXAgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBnbG9iYWxQb2ludGVyVXAoZXZlbnQpO1xuICAgICAgICBpZiAoaXNSZXNpemluZyhib2FyZCkgfHwgcmVzaXplRGV0ZWN0UmVzdWx0KSB7XG4gICAgICAgICAgICByZW1vdmVSZXNpemluZyhib2FyZCwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgc3RhcnRQb2ludCA9IG51bGw7XG4gICAgICAgICAgICByZXNpemVEZXRlY3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgcmVzaXplUmVmID0gbnVsbDtcbiAgICAgICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG4gICAgICAgICAgICBwcmV2ZW50VG91Y2hNb3ZlKGJvYXJkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcbiJdfQ==
@@ -1,11 +0,0 @@
1
- /*
2
- * Public API Surface of utils
3
- */
4
- export * from './constants';
5
- export * from './rectangle';
6
- export * from './generator';
7
- export * from './transforms';
8
- export * from './shape';
9
- export * from './plugins';
10
- export * from './utils';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1dGlsc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjdGFuZ2xlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- export const drawRectangle = (board, rectangle, options) => {
3
- const roughSVG = PlaitBoard.getRoughSVG(board);
4
- const rectangleG = roughSVG.rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height, options);
5
- rectangleG.querySelector('path').setAttribute('stroke-linecap', 'square');
6
- return rectangleG;
7
- };
8
- export const getRectangleByPoints = (points) => {
9
- return {
10
- x: points[0][0],
11
- y: points[0][1],
12
- width: points[1][0] - points[0][0],
13
- height: points[1][1] - points[0][1]
14
- };
15
- };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9yZWN0YW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxhQUFhLENBQUM7QUFHakUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUM3RixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRSxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtJQUMzRCxPQUFPO1FBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkIsQ0FBQztBQUN6QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgZHJhd1JlY3RhbmdsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICBjb25zdCByb3VnaFNWRyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgIGNvbnN0IHJlY3RhbmdsZUcgPSByb3VnaFNWRy5yZWN0YW5nbGUocmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55LCByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS5oZWlnaHQsIG9wdGlvbnMpO1xuICAgIHJlY3RhbmdsZUcucXVlcnlTZWxlY3RvcigncGF0aCcpIS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1saW5lY2FwJywgJ3NxdWFyZScpO1xuICAgIHJldHVybiByZWN0YW5nbGVHO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY3RhbmdsZUJ5UG9pbnRzID0gKHBvaW50czogW1BvaW50LCBQb2ludF0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiBwb2ludHNbMF1bMF0sXG4gICAgICAgIHk6IHBvaW50c1swXVsxXSxcbiAgICAgICAgd2lkdGg6IHBvaW50c1sxXVswXSAtIHBvaW50c1swXVswXSxcbiAgICAgICAgaGVpZ2h0OiBwb2ludHNbMV1bMV0gLSBwb2ludHNbMF1bMV1cbiAgICB9IGFzIFJlY3RhbmdsZUNsaWVudDtcbn07XG4iXX0=
@@ -1,6 +0,0 @@
1
- export const normalizeShapePoints = (points) => {
2
- const leftTopPoint = [Math.min(points[0][0], points[1][0]), Math.min(points[0][1], points[1][1])];
3
- const rightBottomPoint = [Math.max(points[0][0], points[1][0]), Math.max(points[0][1], points[1][1])];
4
- return [leftTopPoint, rightBottomPoint];
5
- };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9zaGFwZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFzQixFQUFrQixFQUFFO0lBQzNFLE1BQU0sWUFBWSxHQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RyxNQUFNLGdCQUFnQixHQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxPQUFPLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVTaGFwZVBvaW50cyA9IChwb2ludHM6IFtQb2ludCwgUG9pbnRdKTogW1BvaW50LCBQb2ludF0gPT4ge1xuICAgIGNvbnN0IGxlZnRUb3BQb2ludDogUG9pbnQgPSBbTWF0aC5taW4ocG9pbnRzWzBdWzBdLCBwb2ludHNbMV1bMF0pLCBNYXRoLm1pbihwb2ludHNbMF1bMV0sIHBvaW50c1sxXVsxXSldO1xuICAgIGNvbnN0IHJpZ2h0Qm90dG9tUG9pbnQ6IFBvaW50ID0gW01hdGgubWF4KHBvaW50c1swXVswXSwgcG9pbnRzWzFdWzBdKSwgTWF0aC5tYXgocG9pbnRzWzBdWzFdLCBwb2ludHNbMV1bMV0pXTtcbiAgICByZXR1cm4gW2xlZnRUb3BQb2ludCwgcmlnaHRCb3R0b21Qb2ludF07XG59O1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './common';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NoYXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuIl19
@@ -1,17 +0,0 @@
1
- import { PlaitBoard, Transforms, removeSelectedElement } from '@plait/core';
2
- export const removeElements = (board, elements) => {
3
- elements
4
- .map(element => {
5
- const path = PlaitBoard.findPath(board, element);
6
- const ref = board.pathRef(path);
7
- return () => {
8
- Transforms.removeNode(board, ref.current);
9
- ref.unref();
10
- removeSelectedElement(board, element);
11
- };
12
- })
13
- .forEach(action => {
14
- action();
15
- });
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdHJhbnNmb3Jtcy9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXdCLEVBQUUsRUFBRTtJQUMxRSxRQUFRO1NBQ0gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1gsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsRUFBRTtZQUNSLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFRLENBQUMsQ0FBQztZQUMzQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO1NBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2QsTUFBTSxFQUFFLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgVHJhbnNmb3JtcywgcmVtb3ZlU2VsZWN0ZWRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGVsZW1lbnRzXG4gICAgICAgIC5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCByZWYgPSBib2FyZC5wYXRoUmVmKHBhdGgpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHJlZi5jdXJyZW50ISk7XG4gICAgICAgICAgICAgICAgcmVmLnVucmVmKCk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICBhY3Rpb24oKTtcbiAgICAgICAgfSk7XG59O1xuIl19
@@ -1,5 +0,0 @@
1
- import { removeElements } from './element';
2
- export const CommonTransforms = {
3
- removeElements
4
- };
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixjQUFjO0NBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW1vdmVFbGVtZW50cyB9IGZyb20gJy4vZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBDb21tb25UcmFuc2Zvcm1zID0ge1xuICAgIHJlbW92ZUVsZW1lbnRzXG59O1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './resize';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuIl19
@@ -1,69 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- import { ResizeCursorClass, ResizeDirection } from '../constants/resize';
3
- /**
4
- * @returns [left-top,right-top,right-bottom,left-bottom]: [Point, Point, Point, Point]
5
- */
6
- export const getHandleCenters = (rectangle) => {
7
- return [
8
- [rectangle.x, rectangle.y],
9
- [rectangle.x + rectangle.width, rectangle.y],
10
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height],
11
- [rectangle.x, rectangle.y + rectangle.height]
12
- ];
13
- };
14
- const getResizeDirectionByIndex = (index) => {
15
- switch (index) {
16
- case 0:
17
- return ResizeDirection.nw;
18
- case 1:
19
- return ResizeDirection.ne;
20
- case 2:
21
- return ResizeDirection.se;
22
- case 3:
23
- return ResizeDirection.sw;
24
- default:
25
- return null;
26
- }
27
- };
28
- const getResizeCursorClassByIndex = (index) => {
29
- switch (index) {
30
- case 0:
31
- return ResizeCursorClass.nwse;
32
- case 1:
33
- return ResizeCursorClass.nesw;
34
- case 2:
35
- return ResizeCursorClass.nwse;
36
- case 3:
37
- return ResizeCursorClass.nesw;
38
- default:
39
- return null;
40
- }
41
- };
42
- export const getRectangleResizeTargets = (rectangle, diameter) => {
43
- const centers = getHandleCenters(rectangle);
44
- return centers.map((center, index) => {
45
- return {
46
- rectangle: {
47
- x: center[0] - diameter / 2,
48
- y: center[1] - diameter / 2,
49
- width: diameter,
50
- height: diameter
51
- },
52
- direction: getResizeDirectionByIndex(index),
53
- cursorClass: getResizeCursorClassByIndex(index)
54
- };
55
- });
56
- };
57
- export const IS_RESIZING = new WeakMap();
58
- export const isResizing = (board) => {
59
- return !!IS_RESIZING.get(board);
60
- };
61
- export const addResizing = (board, key) => {
62
- PlaitBoard.getBoardContainer(board).classList.add(`${key}-resizing`);
63
- IS_RESIZING.set(board, true);
64
- };
65
- export const removeResizing = (board, key) => {
66
- PlaitBoard.getBoardContainer(board).classList.remove(`${key}-resizing`);
67
- IS_RESIZING.set(board, false);
68
- };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUEwQixFQUFFLEVBQUU7SUFDM0QsT0FBTztRQUNILENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQy9ELENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDaEIsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDaEQsUUFBUSxLQUFLLEVBQUU7UUFDWCxLQUFLLENBQUM7WUFDRixPQUFPLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDO1lBQ0YsT0FBTyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzlCLEtBQUssQ0FBQztZQUNGLE9BQU8sZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM5QixLQUFLLENBQUM7WUFDRixPQUFPLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDOUI7WUFDSSxPQUFPLElBQUksQ0FBQztLQUNuQjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNsRCxRQUFRLEtBQUssRUFBRTtRQUNYLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDO1lBQ0ksT0FBTyxJQUFJLENBQUM7S0FDbkI7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFNBQTBCLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ3RGLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUN6QyxPQUFPO1lBQ0gsU0FBUyxFQUFFO2dCQUNQLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUM7Z0JBQzNCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxRQUFRO2FBQ25CO1lBQ0QsU0FBUyxFQUFFLHlCQUF5QixDQUFDLEtBQUssQ0FBb0I7WUFDOUQsV0FBVyxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBc0I7U0FDdkUsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUM1QyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDMUQsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDN0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3hFLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVDdXJzb3JDbGFzcywgUmVzaXplRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Jlc2l6ZSc7XG5cbi8qKlxuICogQHJldHVybnMgW2xlZnQtdG9wLHJpZ2h0LXRvcCxyaWdodC1ib3R0b20sbGVmdC1ib3R0b21dOiBbUG9pbnQsIFBvaW50LCBQb2ludCwgUG9pbnRdXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRIYW5kbGVDZW50ZXJzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueV0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XVxuICAgIF0gYXMgW1BvaW50LCBQb2ludCwgUG9pbnQsIFBvaW50XTtcbn07XG5cbmNvbnN0IGdldFJlc2l6ZURpcmVjdGlvbkJ5SW5kZXggPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5udztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5uZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5zZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5zdztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFJlc2l6ZUN1cnNvckNsYXNzQnlJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gUmVzaXplQ3Vyc29yQ2xhc3MubndzZTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm5lc3c7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ud3NlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gUmVzaXplQ3Vyc29yQ2xhc3MubmVzdztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWN0YW5nbGVSZXNpemVUYXJnZXRzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBkaWFtZXRlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY2VudGVycyA9IGdldEhhbmRsZUNlbnRlcnMocmVjdGFuZ2xlKTtcbiAgICByZXR1cm4gY2VudGVycy5tYXAoKGNlbnRlciwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVjdGFuZ2xlOiB7XG4gICAgICAgICAgICAgICAgeDogY2VudGVyWzBdIC0gZGlhbWV0ZXIgLyAyLFxuICAgICAgICAgICAgICAgIHk6IGNlbnRlclsxXSAtIGRpYW1ldGVyIC8gMixcbiAgICAgICAgICAgICAgICB3aWR0aDogZGlhbWV0ZXIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBkaWFtZXRlclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogZ2V0UmVzaXplRGlyZWN0aW9uQnlJbmRleChpbmRleCkgYXMgUmVzaXplRGlyZWN0aW9uLFxuICAgICAgICAgICAgY3Vyc29yQ2xhc3M6IGdldFJlc2l6ZUN1cnNvckNsYXNzQnlJbmRleChpbmRleCkgYXMgUmVzaXplQ3Vyc29yQ2xhc3NcbiAgICAgICAgfTtcbiAgICB9KTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IElTX1JFU0laSU5HID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgYm9vbGVhbj4oKTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gISFJU19SRVNJWklORy5nZXQoYm9hcmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFJlc2l6aW5nID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBrZXk6IHN0cmluZykgPT4ge1xuICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7a2V5fS1yZXNpemluZ2ApO1xuICAgIElTX1JFU0laSU5HLnNldChib2FyZCwgdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtrZXl9LXJlc2l6aW5nYCk7XG4gICAgSVNfUkVTSVpJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG59OyJdfQ==
@@ -1,304 +0,0 @@
1
- import { PlaitBoard, createG, RectangleClient, drawCircle, Transforms, removeSelectedElement, PlaitPointerType, isMainPointer, transformPoint, toPoint, preventTouchMove, distanceBetweenPointAndPoint, PRESS_AND_MOVE_BUFFER, MERGING, throttleRAF } from '@plait/core';
2
-
3
- const BASE = 4;
4
- const PRIMARY_COLOR = '#6698FF';
5
- const RESIZE_HANDLE_DIAMETER = 10;
6
-
7
- var MediaKeys;
8
- (function (MediaKeys) {
9
- MediaKeys["image"] = "image";
10
- })(MediaKeys || (MediaKeys = {}));
11
-
12
- var ResizeCursorClass;
13
- (function (ResizeCursorClass) {
14
- ResizeCursorClass["ew"] = "ew-resize";
15
- ResizeCursorClass["ns"] = "ns-resize";
16
- ResizeCursorClass["nesw"] = "nesw-resize";
17
- ResizeCursorClass["nwse"] = "nwse-resize";
18
- })(ResizeCursorClass || (ResizeCursorClass = {}));
19
- var ResizeDirection;
20
- (function (ResizeDirection) {
21
- ResizeDirection["ne"] = "ne";
22
- ResizeDirection["n"] = "n";
23
- ResizeDirection["nw"] = "nw";
24
- ResizeDirection["e"] = "w";
25
- ResizeDirection["se"] = "se";
26
- ResizeDirection["s"] = "s";
27
- ResizeDirection["sw"] = "sw";
28
- ResizeDirection["w"] = "w";
29
- })(ResizeDirection || (ResizeDirection = {}));
30
-
31
- const drawRectangle = (board, rectangle, options) => {
32
- const roughSVG = PlaitBoard.getRoughSVG(board);
33
- const rectangleG = roughSVG.rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height, options);
34
- rectangleG.querySelector('path').setAttribute('stroke-linecap', 'square');
35
- return rectangleG;
36
- };
37
- const getRectangleByPoints = (points) => {
38
- return {
39
- x: points[0][0],
40
- y: points[0][1],
41
- width: points[1][0] - points[0][0],
42
- height: points[1][1] - points[0][1]
43
- };
44
- };
45
-
46
- class Generator {
47
- constructor(board, options) {
48
- this.board = board;
49
- }
50
- draw(element, parentG, data) {
51
- this.destroy();
52
- if (this.canDraw && this.canDraw(element, data)) {
53
- const g = this.baseDraw(element, data);
54
- if (g) {
55
- parentG.append(g);
56
- }
57
- if (hasAfterDraw(this)) {
58
- this.afterDraw(element);
59
- }
60
- }
61
- }
62
- destroy() {
63
- if (this.g) {
64
- this.g.remove();
65
- }
66
- }
67
- }
68
- function hasAfterDraw(value) {
69
- if (value.afterDraw) {
70
- return true;
71
- }
72
- return false;
73
- }
74
-
75
- class ActiveGenerator extends Generator {
76
- constructor(board, options) {
77
- super(board, options);
78
- this.board = board;
79
- this.options = options;
80
- }
81
- canDraw(element, data) {
82
- if (data.selected) {
83
- return true;
84
- }
85
- else {
86
- return false;
87
- }
88
- }
89
- baseDraw(element, data) {
90
- const activeG = createG();
91
- this.g = activeG;
92
- const rectangle = this.options.getRectangle(element);
93
- // add 0.1 to avoid white gap
94
- const offset = (this.options.getStrokeWidthByElement(element) + this.options.activeStrokeWidth) / 2 - 0.1;
95
- const activeRectangle = RectangleClient.getOutlineRectangle(rectangle, -offset);
96
- const strokeG = drawRectangle(this.board, activeRectangle, {
97
- stroke: PRIMARY_COLOR,
98
- strokeWidth: this.options.activeStrokeWidth
99
- });
100
- // resize handle
101
- const options = { stroke: '#999999', strokeWidth: 1, fill: '#FFF', fillStyle: 'solid' };
102
- const leftTopHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x, activeRectangle.y], RESIZE_HANDLE_DIAMETER, options);
103
- const rightTopHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x + activeRectangle.width, activeRectangle.y], RESIZE_HANDLE_DIAMETER, options);
104
- const rightBottomHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x + activeRectangle.width, activeRectangle.y + activeRectangle.height], RESIZE_HANDLE_DIAMETER, options);
105
- const leftBottomHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x, activeRectangle.y + activeRectangle.height], RESIZE_HANDLE_DIAMETER, options);
106
- this.g.append(...[strokeG, leftTopHandleG, rightTopHandleG, rightBottomHandleG, leftBottomHandleG]);
107
- return activeG;
108
- }
109
- }
110
-
111
- const removeElements = (board, elements) => {
112
- elements
113
- .map(element => {
114
- const path = PlaitBoard.findPath(board, element);
115
- const ref = board.pathRef(path);
116
- return () => {
117
- Transforms.removeNode(board, ref.current);
118
- ref.unref();
119
- removeSelectedElement(board, element);
120
- };
121
- })
122
- .forEach(action => {
123
- action();
124
- });
125
- };
126
-
127
- const CommonTransforms = {
128
- removeElements
129
- };
130
-
131
- const normalizeShapePoints = (points) => {
132
- const leftTopPoint = [Math.min(points[0][0], points[1][0]), Math.min(points[0][1], points[1][1])];
133
- const rightBottomPoint = [Math.max(points[0][0], points[1][0]), Math.max(points[0][1], points[1][1])];
134
- return [leftTopPoint, rightBottomPoint];
135
- };
136
-
137
- /**
138
- * @returns [left-top,right-top,right-bottom,left-bottom]: [Point, Point, Point, Point]
139
- */
140
- const getHandleCenters = (rectangle) => {
141
- return [
142
- [rectangle.x, rectangle.y],
143
- [rectangle.x + rectangle.width, rectangle.y],
144
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height],
145
- [rectangle.x, rectangle.y + rectangle.height]
146
- ];
147
- };
148
- const getResizeDirectionByIndex = (index) => {
149
- switch (index) {
150
- case 0:
151
- return ResizeDirection.nw;
152
- case 1:
153
- return ResizeDirection.ne;
154
- case 2:
155
- return ResizeDirection.se;
156
- case 3:
157
- return ResizeDirection.sw;
158
- default:
159
- return null;
160
- }
161
- };
162
- const getResizeCursorClassByIndex = (index) => {
163
- switch (index) {
164
- case 0:
165
- return ResizeCursorClass.nwse;
166
- case 1:
167
- return ResizeCursorClass.nesw;
168
- case 2:
169
- return ResizeCursorClass.nwse;
170
- case 3:
171
- return ResizeCursorClass.nesw;
172
- default:
173
- return null;
174
- }
175
- };
176
- const getRectangleResizeTargets = (rectangle, diameter) => {
177
- const centers = getHandleCenters(rectangle);
178
- return centers.map((center, index) => {
179
- return {
180
- rectangle: {
181
- x: center[0] - diameter / 2,
182
- y: center[1] - diameter / 2,
183
- width: diameter,
184
- height: diameter
185
- },
186
- direction: getResizeDirectionByIndex(index),
187
- cursorClass: getResizeCursorClassByIndex(index)
188
- };
189
- });
190
- };
191
- const IS_RESIZING = new WeakMap();
192
- const isResizing = (board) => {
193
- return !!IS_RESIZING.get(board);
194
- };
195
- const addResizing = (board, key) => {
196
- PlaitBoard.getBoardContainer(board).classList.add(`${key}-resizing`);
197
- IS_RESIZING.set(board, true);
198
- };
199
- const removeResizing = (board, key) => {
200
- PlaitBoard.getBoardContainer(board).classList.remove(`${key}-resizing`);
201
- IS_RESIZING.set(board, false);
202
- };
203
-
204
- const generalCanResize = (board, event) => {
205
- return (PlaitBoard.isReadonly(board) ||
206
- PlaitBoard.hasBeenTextEditing(board) ||
207
- !PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
208
- !isMainPointer(event));
209
- };
210
- const withResize = (board, options) => {
211
- const { pointerDown, pointerMove, globalPointerUp } = board;
212
- let resizeDetectResult = null;
213
- let resizeRef = null;
214
- let startPoint = null;
215
- let hoveDetectResult = null;
216
- board.pointerDown = (event) => {
217
- if (!options.canResize() || !generalCanResize(board, event)) {
218
- pointerDown(event);
219
- return;
220
- }
221
- const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
222
- resizeDetectResult = options.detect(point);
223
- if (resizeDetectResult) {
224
- PlaitBoard.getBoardContainer(board).classList.add(`${resizeDetectResult.cursorClass}`);
225
- startPoint = [event.x, event.y];
226
- resizeRef = {
227
- path: PlaitBoard.findPath(board, resizeDetectResult.element),
228
- element: resizeDetectResult.element,
229
- direction: resizeDetectResult.direction
230
- };
231
- return;
232
- }
233
- pointerDown(event);
234
- };
235
- board.pointerMove = (event) => {
236
- if (!options.canResize() || !generalCanResize(board, event)) {
237
- pointerMove(event);
238
- return;
239
- }
240
- if (startPoint && resizeDetectResult && !isResizing(board)) {
241
- // prevent text from being selected
242
- event.preventDefault();
243
- preventTouchMove(board, true);
244
- const endPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
245
- const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
246
- if (distance > PRESS_AND_MOVE_BUFFER) {
247
- addResizing(board, options.key);
248
- MERGING.set(board, true);
249
- }
250
- }
251
- if (isResizing(board) && startPoint) {
252
- // prevent text from being selected
253
- event.preventDefault();
254
- preventTouchMove(board, true);
255
- throttleRAF(() => {
256
- const endPoint = [event.x, event.y];
257
- if (startPoint && resizeRef) {
258
- const offsetX = endPoint[0] - startPoint[0];
259
- const offsetY = endPoint[1] - startPoint[1];
260
- options.onResize(resizeRef, { offsetX, offsetY });
261
- }
262
- });
263
- return;
264
- }
265
- else {
266
- const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
267
- const resizeDetectResult = options.detect(point);
268
- if (resizeDetectResult) {
269
- hoveDetectResult = resizeDetectResult;
270
- PlaitBoard.getBoardContainer(board).classList.add(`${hoveDetectResult.cursorClass}`);
271
- }
272
- else {
273
- if (hoveDetectResult) {
274
- PlaitBoard.getBoardContainer(board).classList.remove(`${hoveDetectResult.cursorClass}`);
275
- hoveDetectResult = null;
276
- }
277
- }
278
- }
279
- pointerMove(event);
280
- };
281
- board.globalPointerUp = (event) => {
282
- globalPointerUp(event);
283
- if (isResizing(board) || resizeDetectResult) {
284
- removeResizing(board, options.key);
285
- startPoint = null;
286
- resizeDetectResult = null;
287
- resizeRef = null;
288
- MERGING.set(board, false);
289
- preventTouchMove(board, false);
290
- }
291
- };
292
- return board;
293
- };
294
-
295
- /*
296
- * Public API Surface of utils
297
- */
298
-
299
- /**
300
- * Generated bundle index. Do not edit.
301
- */
302
-
303
- export { ActiveGenerator, BASE, CommonTransforms, Generator, IS_RESIZING, MediaKeys, PRIMARY_COLOR, RESIZE_HANDLE_DIAMETER, ResizeCursorClass, ResizeDirection, addResizing, drawRectangle, getHandleCenters, getRectangleByPoints, getRectangleResizeTargets, hasAfterDraw, isResizing, normalizeShapePoints, removeResizing, withResize };
304
- //# sourceMappingURL=plait-common.mjs.map