@plait/common 0.77.3 → 0.78.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.
- package/fesm2022/plait-common.mjs.map +1 -1
- package/package.json +1 -3
- package/esm2022/algorithms/a-star.mjs +0 -58
- package/esm2022/algorithms/data-structures/graph.mjs +0 -47
- package/esm2022/algorithms/data-structures/index.mjs +0 -3
- package/esm2022/algorithms/data-structures/priority-queue.mjs +0 -13
- package/esm2022/algorithms/index.mjs +0 -3
- package/esm2022/constants/default.mjs +0 -11
- package/esm2022/constants/index.mjs +0 -5
- package/esm2022/constants/media.mjs +0 -8
- package/esm2022/constants/property.mjs +0 -7
- package/esm2022/constants/resize.mjs +0 -12
- package/esm2022/core/element-flavour.mjs +0 -8
- package/esm2022/core/element-ref.mjs +0 -32
- package/esm2022/core/group.component.mjs +0 -39
- package/esm2022/core/index.mjs +0 -5
- package/esm2022/core/render-component.mjs +0 -2
- package/esm2022/generators/active.generator.mjs +0 -50
- package/esm2022/generators/generator.mjs +0 -70
- package/esm2022/generators/group.generator.mjs +0 -21
- package/esm2022/generators/index.mjs +0 -4
- package/esm2022/image/image-base.component.mjs +0 -9
- package/esm2022/image/image.generator.mjs +0 -98
- package/esm2022/image/index.mjs +0 -4
- package/esm2022/image/with-image.mjs +0 -8
- package/esm2022/plait-common.mjs +0 -5
- package/esm2022/plugins/index.mjs +0 -3
- package/esm2022/plugins/with-group.mjs +0 -198
- package/esm2022/plugins/with-resize.mjs +0 -111
- package/esm2022/public-api.mjs +0 -16
- package/esm2022/shapes/common.mjs +0 -14
- package/esm2022/shapes/index.mjs +0 -2
- package/esm2022/text/index.mjs +0 -5
- package/esm2022/text/text-manage.mjs +0 -147
- package/esm2022/text/text-measure.mjs +0 -59
- package/esm2022/text/types.mjs +0 -7
- package/esm2022/text/with-text.mjs +0 -8
- package/esm2022/transforms/align.mjs +0 -116
- package/esm2022/transforms/index.mjs +0 -3
- package/esm2022/transforms/property.mjs +0 -40
- package/esm2022/types/index.mjs +0 -3
- package/esm2022/types/resize.mjs +0 -2
- package/esm2022/types/rotate.mjs +0 -2
- package/esm2022/utils/animate.mjs +0 -38
- package/esm2022/utils/clipboard.mjs +0 -30
- package/esm2022/utils/creation-mode.mjs +0 -19
- package/esm2022/utils/default-orthogonal-routing.mjs +0 -87
- package/esm2022/utils/direction.mjs +0 -93
- package/esm2022/utils/drawing/index.mjs +0 -3
- package/esm2022/utils/drawing/resize-handle.mjs +0 -25
- package/esm2022/utils/drawing/rotate-handle.mjs +0 -22
- package/esm2022/utils/elbow-line-route.mjs +0 -256
- package/esm2022/utils/elements.mjs +0 -19
- package/esm2022/utils/hot-key.mjs +0 -29
- package/esm2022/utils/image.mjs +0 -50
- package/esm2022/utils/index.mjs +0 -19
- package/esm2022/utils/line-path.mjs +0 -80
- package/esm2022/utils/math.mjs +0 -24
- package/esm2022/utils/memorize.mjs +0 -10
- package/esm2022/utils/resize.mjs +0 -137
- package/esm2022/utils/rotate.mjs +0 -16
- package/esm2022/utils/stroke.mjs +0 -12
- package/esm2022/utils/text.mjs +0 -105
- package/esm2022/utils/vector.mjs +0 -43
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { ACTIVE_STROKE_WIDTH, PlaitBoard, RectangleClient, createForeignObject, createG, getSelectedElements, isSelectionMoving, setAngleForG, updateForeignObject } from '@plait/core';
|
|
2
|
-
import { Generator } from '../generators/generator';
|
|
3
|
-
import { hasResizeHandle, getElementOfFocusedImage } from '../utils';
|
|
4
|
-
import { createActiveGenerator } from '../generators/active.generator';
|
|
5
|
-
export const FOREIGN_OBJECT_IMAGE_CLASS_NAME = 'foreign-object-image';
|
|
6
|
-
export class ImageGenerator extends Generator {
|
|
7
|
-
static { this.key = 'image-generator'; }
|
|
8
|
-
constructor(board, options) {
|
|
9
|
-
super(board, options);
|
|
10
|
-
this.board = board;
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.isFocus = false;
|
|
13
|
-
}
|
|
14
|
-
canDraw(element) {
|
|
15
|
-
return !!this.options.getImageItem(element);
|
|
16
|
-
}
|
|
17
|
-
draw(element) {
|
|
18
|
-
this.element = element;
|
|
19
|
-
const g = createG();
|
|
20
|
-
const foreignRectangle = this.options.getRectangle(element);
|
|
21
|
-
this.foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
|
|
22
|
-
this.foreignObject.classList.add(FOREIGN_OBJECT_IMAGE_CLASS_NAME);
|
|
23
|
-
g.append(this.foreignObject);
|
|
24
|
-
const props = {
|
|
25
|
-
board: this.board,
|
|
26
|
-
imageItem: this.options.getImageItem(element),
|
|
27
|
-
element,
|
|
28
|
-
getRectangle: () => {
|
|
29
|
-
return this.options.getRectangle(element);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
this.imageComponentRef = this.board.renderImage(this.foreignObject, props);
|
|
33
|
-
this.activeGenerator = createActiveGenerator(this.board, {
|
|
34
|
-
getStrokeWidth: () => {
|
|
35
|
-
const selectedElements = getSelectedElements(this.board);
|
|
36
|
-
if (!(selectedElements.length === 1 && !isSelectionMoving(this.board))) {
|
|
37
|
-
return ACTIVE_STROKE_WIDTH;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return ACTIVE_STROKE_WIDTH;
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
getStrokeOpacity: () => {
|
|
44
|
-
const selectedElements = getSelectedElements(this.board);
|
|
45
|
-
if ((selectedElements.length === 1 && !isSelectionMoving(this.board)) || !selectedElements.length) {
|
|
46
|
-
return 1;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
return 0.5;
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
getRectangle: () => {
|
|
53
|
-
return this.options.getRectangle(this.element);
|
|
54
|
-
},
|
|
55
|
-
hasResizeHandle: () => {
|
|
56
|
-
const isSelectedImageElement = hasResizeHandle(this.board, this.element);
|
|
57
|
-
const isSelectedImage = !!getElementOfFocusedImage(this.board);
|
|
58
|
-
return isSelectedImage || isSelectedImageElement;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return g;
|
|
62
|
-
}
|
|
63
|
-
updateImage(nodeG, previous, current) {
|
|
64
|
-
this.element = current;
|
|
65
|
-
if (previous !== current && this.imageComponentRef) {
|
|
66
|
-
const props = {
|
|
67
|
-
imageItem: this.options.getImageItem(current),
|
|
68
|
-
element: current,
|
|
69
|
-
getRectangle: () => {
|
|
70
|
-
return this.options.getRectangle(current);
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
this.imageComponentRef.update(props);
|
|
74
|
-
}
|
|
75
|
-
const currentForeignObject = this.options.getRectangle(current);
|
|
76
|
-
updateForeignObject(this.g, currentForeignObject.width, currentForeignObject.height, currentForeignObject.x, currentForeignObject.y);
|
|
77
|
-
if (currentForeignObject && current.angle !== undefined) {
|
|
78
|
-
setAngleForG(this.g, RectangleClient.getCenterPoint(currentForeignObject), current.angle);
|
|
79
|
-
}
|
|
80
|
-
const activeG = PlaitBoard.getActiveHost(this.board);
|
|
81
|
-
this.activeGenerator.processDrawing(current, activeG, { selected: this.isFocus });
|
|
82
|
-
}
|
|
83
|
-
setFocus(element, isFocus) {
|
|
84
|
-
this.isFocus = isFocus;
|
|
85
|
-
const activeG = PlaitBoard.getActiveHost(this.board);
|
|
86
|
-
this.activeGenerator.processDrawing(element, activeG, { selected: isFocus });
|
|
87
|
-
const props = {
|
|
88
|
-
isFocus
|
|
89
|
-
};
|
|
90
|
-
this.imageComponentRef.update(props);
|
|
91
|
-
}
|
|
92
|
-
destroy() {
|
|
93
|
-
super.destroy();
|
|
94
|
-
this.imageComponentRef?.destroy();
|
|
95
|
-
this.activeGenerator?.destroy();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pbWFnZS9pbWFnZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUNuQixVQUFVLEVBRVYsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQXdDLE1BQU0seUJBQXlCLENBQUM7QUFDMUYsT0FBTyxFQUFtQixlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFtQixxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3hGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLHNCQUFzQixDQUFDO0FBT3RFLE1BQU0sT0FBTyxjQUFzRCxTQUFRLFNBSTFFO2FBQ1UsUUFBRyxHQUFHLGlCQUFpQixBQUFwQixDQUFxQjtJQVkvQixZQUFtQixLQUFpQixFQUFTLE9BQWlDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFKOUUsWUFBTyxHQUFHLEtBQUssQ0FBQztJQU1oQixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVU7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVU7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdC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Q0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQXdCO1lBQy9CLE9BQU87U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBjcmVhdGVGb3JlaWduT2JqZWN0LFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBzZXRBbmdsZUZvckcsXG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IsIEdlbmVyYXRvckV4dHJhRGF0YSwgR2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvZ2VuZXJhdG9yJztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSwgaGFzUmVzaXplSGFuZGxlLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IsIGNyZWF0ZUFjdGl2ZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMvYWN0aXZlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBQbGFpdEltYWdlQm9hcmQsIEltYWdlQ29tcG9uZW50UmVmLCBJbWFnZVByb3BzIH0gZnJvbSAnLi93aXRoLWltYWdlJztcblxuZXhwb3J0IGNvbnN0IEZPUkVJR05fT0JKRUNUX0lNQUdFX0NMQVNTX05BTUUgPSAnZm9yZWlnbi1vYmplY3QtaW1hZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlR2VuZXJhdG9yT3B0aW9uczxUPiB7XG4gICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogVCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuICAgIGdldEltYWdlSXRlbTogKGVsZW1lbnQ6IFQpID0+IENvbW1vbkltYWdlSXRlbTtcbn1cblxuZXhwb3J0IGNsYXNzIEltYWdlR2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IGV4dGVuZHMgR2VuZXJhdG9yPFxuICAgIFQsXG4gICAgR2VuZXJhdG9yRXh0cmFEYXRhLFxuICAgIEltYWdlR2VuZXJhdG9yT3B0aW9uczxUPiAmIEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIHN0YXRpYyBrZXkgPSAnaW1hZ2UtZ2VuZXJhdG9yJztcblxuICAgIGZvcmVpZ25PYmplY3QhOiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDtcblxuICAgIGltYWdlQ29tcG9uZW50UmVmITogSW1hZ2VDb21wb25lbnRSZWY7XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I7XG5cbiAgICBpc0ZvY3VzID0gZmFsc2U7XG5cbiAgICBlbGVtZW50ITogVDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBib2FyZDogUGxhaXRCb2FyZCwgcHVibGljIG9wdGlvbnM6IEltYWdlR2VuZXJhdG9yT3B0aW9uczxUPikge1xuICAgICAgICBzdXBlcihib2FyZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBUKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCBmb3JlaWduUmVjdGFuZ2xlID0gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0ID0gY3JlYXRlRm9yZWlnbk9iamVjdChmb3JlaWduUmVjdGFuZ2xlLngsIGZvcmVpZ25SZWN0YW5nbGUueSwgZm9yZWlnblJlY3RhbmdsZS53aWR0aCwgZm9yZWlnblJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QuY2xhc3NMaXN0LmFkZChGT1JFSUdOX09CSkVDVF9JTUFHRV9DTEFTU19OQU1FKTtcbiAgICAgICAgZy5hcHBlbmQodGhpcy5mb3JlaWduT2JqZWN0KTtcbiAgICAgICAgY29uc3QgcHJvcHM6IEltYWdlUHJvcHMgPSB7XG4gICAgICAgICAgICBib2FyZDogdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIGltYWdlSXRlbTogdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShlbGVtZW50KSxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZiA9ICh0aGlzLmJvYXJkIGFzIHVua25vd24gYXMgUGxhaXRJbWFnZUJvYXJkKS5yZW5kZXJJbWFnZSh0aGlzLmZvcmVpZ25PYmplY3QsIHByb3BzKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IGNyZWF0ZUFjdGl2ZUdlbmVyYXRvcih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIGlmICghKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFDVElWRV9TVFJPS0VfV0lEVEg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFDVElWRV9TVFJPS0VfV0lEVEg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkgfHwgIXNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZEltYWdlRWxlbWVudCA9IGhhc1Jlc2l6ZUhhbmRsZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJbWFnZSA9ICEhZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc1NlbGVjdGVkSW1hZ2UgfHwgaXNTZWxlY3RlZEltYWdlRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBnO1xuICAgIH1cblxuICAgIHVwZGF0ZUltYWdlKG5vZGVHOiBTVkdHRWxlbWVudCwgcHJldmlvdXM6IFQsIGN1cnJlbnQ6IFQpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gY3VycmVudDtcbiAgICAgICAgaWYgKHByZXZpb3VzICE9PSBjdXJyZW50ICYmIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAgICAgICAgIGltYWdlSXRlbTogdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShjdXJyZW50KSxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBjdXJyZW50LFxuICAgICAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShjdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGb3JlaWduT2JqZWN0ID0gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShjdXJyZW50KTtcbiAgICAgICAgdXBkYXRlRm9yZWlnbk9iamVjdChcbiAgICAgICAgICAgIHRoaXMuZyEsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC53aWR0aCxcbiAgICAgICAgICAgIGN1cnJlbnRGb3JlaWduT2JqZWN0LmhlaWdodCxcbiAgICAgICAgICAgIGN1cnJlbnRGb3JlaWduT2JqZWN0LngsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC55XG4gICAgICAgICk7XG4gICAgICAgIGlmIChjdXJyZW50Rm9yZWlnbk9iamVjdCAmJiBjdXJyZW50LmFuZ2xlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNldEFuZ2xlRm9yRyh0aGlzLmchLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoY3VycmVudEZvcmVpZ25PYmplY3QpLCBjdXJyZW50LmFuZ2xlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVHID0gUGxhaXRCb2FyZC5nZXRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhjdXJyZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiB0aGlzLmlzRm9jdXMgfSk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoZWxlbWVudDogUGxhaXRFbGVtZW50LCBpc0ZvY3VzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNGb2N1cyA9IGlzRm9jdXM7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKGVsZW1lbnQsIGFjdGl2ZUcsIHsgc2VsZWN0ZWQ6IGlzRm9jdXMgfSk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBQYXJ0aWFsPEltYWdlUHJvcHM+ID0ge1xuICAgICAgICAgICAgaXNGb2N1c1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmltYWdlQ29tcG9uZW50UmVmLnVwZGF0ZShwcm9wcyk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmltYWdlQ29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yPy5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
|
package/esm2022/image/index.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './image-base.component';
|
|
2
|
-
export * from './image.generator';
|
|
3
|
-
export * from './with-image';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2ltYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtYmFzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS5nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWltYWdlJztcbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const withImage = (board) => {
|
|
2
|
-
const newBoard = board;
|
|
3
|
-
newBoard.renderImage = (container, props) => {
|
|
4
|
-
throw new Error('No implementation for renderImage method.');
|
|
5
|
-
};
|
|
6
|
-
return newBoard;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvaW1hZ2Uvd2l0aC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBb0MsS0FBUSxFQUFFLEVBQUU7SUFDckUsTUFBTSxRQUFRLEdBQUcsS0FBNEIsQ0FBQztJQUU5QyxRQUFRLENBQUMsV0FBVyxHQUFHLENBQUMsU0FBcUMsRUFBRSxLQUFpQixFQUFFLEVBQUU7UUFDaEYsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50UmVmIH0gZnJvbSAnLi4vY29yZS9yZW5kZXItY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSB9IGZyb20gJy4uL3V0aWxzL2ltYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEltYWdlQm9hcmQge1xuICAgIHJlbmRlckltYWdlOiAoY29udGFpbmVyOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgcHJvcHM6IEltYWdlUHJvcHMpID0+IEltYWdlQ29tcG9uZW50UmVmO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aEltYWdlID0gPFQgZXh0ZW5kcyBQbGFpdEJvYXJkID0gUGxhaXRCb2FyZD4oYm9hcmQ6IFQpID0+IHtcbiAgICBjb25zdCBuZXdCb2FyZCA9IGJvYXJkIGFzIFQgJiBQbGFpdEltYWdlQm9hcmQ7XG5cbiAgICBuZXdCb2FyZC5yZW5kZXJJbWFnZSA9IChjb250YWluZXI6IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50LCBwcm9wczogSW1hZ2VQcm9wcykgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGltcGxlbWVudGF0aW9uIGZvciByZW5kZXJJbWFnZSBtZXRob2QuJyk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3Qm9hcmQ7XG59O1xuXG5leHBvcnQgdHlwZSBJbWFnZUNvbXBvbmVudFJlZiA9IFJlbmRlckNvbXBvbmVudFJlZjxJbWFnZVByb3BzPjtcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZVByb3BzIHtcbiAgICBib2FyZDogUGxhaXRCb2FyZDtcbiAgICBpbWFnZUl0ZW06IENvbW1vbkltYWdlSXRlbTtcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQ7XG4gICAgaXNGb2N1cz86IGJvb2xlYW47XG4gICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG59XG4iXX0=
|
package/esm2022/plait-common.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaXQtY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9wbGFpdC1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './with-resize';
|
|
2
|
-
export * from './with-group';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dpdGgtcmVzaXplJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1ncm91cCc7XG4iXX0=
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, PlaitGroupElement, toViewBoxPoint, toHostPoint, getHitElementsBySelection, createGroupRectangleG, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedGroups, Selection, Transforms, idCreator, getGroupByElement, getSelectedIsolatedElementsCanAddToGroup, getElementsInGroup, getRectangleByGroup, PlaitPointerType, throttleRAF, isMovingElements } from '@plait/core';
|
|
2
|
-
import { GroupComponent } from '../core/group.component';
|
|
3
|
-
import { isKeyHotkey } from 'is-hotkey';
|
|
4
|
-
import { isResizing } from '../utils';
|
|
5
|
-
export function withGroup(board) {
|
|
6
|
-
let groupRectangleG;
|
|
7
|
-
let removeGroups;
|
|
8
|
-
const { drawElement, pointerMove, globalPointerUp, insertFragment, getDeletedFragment, deleteFragment, getRelatedFragment, getRectangle, keyDown } = board;
|
|
9
|
-
board.drawElement = (context) => {
|
|
10
|
-
if (PlaitGroupElement.isGroup(context.element)) {
|
|
11
|
-
return GroupComponent;
|
|
12
|
-
}
|
|
13
|
-
return drawElement(context);
|
|
14
|
-
};
|
|
15
|
-
board.pointerMove = (event) => {
|
|
16
|
-
throttleRAF(board, 'with-group', () => {
|
|
17
|
-
groupRectangleG?.remove();
|
|
18
|
-
const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
19
|
-
let selection = { anchor: point, focus: point };
|
|
20
|
-
if (board.selection && !Selection.isCollapsed(board.selection)) {
|
|
21
|
-
selection = board.selection;
|
|
22
|
-
}
|
|
23
|
-
const pointer = PlaitBoard.getPointer(board);
|
|
24
|
-
if (!isResizing(board) && !isMovingElements(board) && pointer === PlaitPointerType.selection) {
|
|
25
|
-
const hitElements = getHitElementsBySelection(board, selection);
|
|
26
|
-
if (hitElements.length) {
|
|
27
|
-
groupRectangleG = createGroupRectangleG(board, hitElements);
|
|
28
|
-
groupRectangleG && PlaitBoard.getElementTopHost(board).append(groupRectangleG);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
pointerMove(event);
|
|
33
|
-
};
|
|
34
|
-
board.globalPointerUp = (event) => {
|
|
35
|
-
groupRectangleG?.remove();
|
|
36
|
-
groupRectangleG = null;
|
|
37
|
-
globalPointerUp(event);
|
|
38
|
-
};
|
|
39
|
-
board.getRelatedFragment = (elements, originData) => {
|
|
40
|
-
const groups = getSelectedGroups(board, elements, originData);
|
|
41
|
-
return getRelatedFragment([...elements, ...groups], originData);
|
|
42
|
-
};
|
|
43
|
-
board.insertFragment = (clipboardData, targetPoint, operationType) => {
|
|
44
|
-
let elements = [];
|
|
45
|
-
if (clipboardData?.elements?.length) {
|
|
46
|
-
elements = new Array(clipboardData?.elements?.length);
|
|
47
|
-
const groups = getHighestSelectedGroups(board, clipboardData?.elements);
|
|
48
|
-
const selectedIsolatedElements = getSelectedIsolatedElements(board, clipboardData?.elements);
|
|
49
|
-
selectedIsolatedElements.forEach((item) => {
|
|
50
|
-
const index = clipboardData.elements.map((element) => element.id).indexOf(item.id);
|
|
51
|
-
elements.splice(index, 1, !item.groupId ? item : updateGroupId(item, undefined));
|
|
52
|
-
});
|
|
53
|
-
if (groups.length) {
|
|
54
|
-
groups.forEach((item) => {
|
|
55
|
-
const index = clipboardData.elements.map((element) => element.id).indexOf(item.id);
|
|
56
|
-
const newGroup = { ...updateGroupId(item, undefined), id: idCreator() };
|
|
57
|
-
elements.splice(index, 1, newGroup);
|
|
58
|
-
updateElementsGroupId(item, clipboardData.elements, newGroup.id, elements);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
clipboardData.elements = elements;
|
|
62
|
-
}
|
|
63
|
-
insertFragment(clipboardData, targetPoint, operationType);
|
|
64
|
-
const groupElements = elements?.filter((value) => PlaitGroupElement.isGroup(value));
|
|
65
|
-
groupElements.forEach((element) => {
|
|
66
|
-
Transforms.insertNode(board, element, [board.children.length]);
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
board.getDeletedFragment = (data) => {
|
|
70
|
-
removeGroups = getRemoveGroups(board);
|
|
71
|
-
if (removeGroups && removeGroups.length) {
|
|
72
|
-
data.push(...removeGroups);
|
|
73
|
-
}
|
|
74
|
-
return getDeletedFragment(data);
|
|
75
|
-
};
|
|
76
|
-
board.deleteFragment = (elements) => {
|
|
77
|
-
if (removeGroups?.length) {
|
|
78
|
-
updateSiblingElementGroupId(board, removeGroups);
|
|
79
|
-
}
|
|
80
|
-
deleteFragment(elements);
|
|
81
|
-
removeGroups = null;
|
|
82
|
-
};
|
|
83
|
-
board.getRectangle = (element) => {
|
|
84
|
-
if (PlaitGroupElement.isGroup(element)) {
|
|
85
|
-
return getRectangleByGroup(board, element, true);
|
|
86
|
-
}
|
|
87
|
-
return getRectangle(element);
|
|
88
|
-
};
|
|
89
|
-
board.keyDown = (event) => {
|
|
90
|
-
if (!PlaitBoard.isReadonly(board)) {
|
|
91
|
-
if (isKeyHotkey('mod+g', event)) {
|
|
92
|
-
event.preventDefault();
|
|
93
|
-
Transforms.addGroup(board);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
if (isKeyHotkey('mod+shift+g', event)) {
|
|
97
|
-
event.preventDefault();
|
|
98
|
-
Transforms.removeGroup(board);
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
keyDown(event);
|
|
103
|
-
};
|
|
104
|
-
return board;
|
|
105
|
-
}
|
|
106
|
-
const updateGroupId = (element, groupId) => {
|
|
107
|
-
return {
|
|
108
|
-
...element,
|
|
109
|
-
groupId: groupId
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
const updateElementsGroupId = (group, clipboardDataElements, newGroupId, elements) => {
|
|
113
|
-
const elementsInGroup = clipboardDataElements.filter((item) => item.groupId === group.id);
|
|
114
|
-
if (elementsInGroup.length) {
|
|
115
|
-
elementsInGroup.forEach((item) => {
|
|
116
|
-
const index = clipboardDataElements.map((item) => item.id).indexOf(item.id);
|
|
117
|
-
if (PlaitGroupElement.isGroup(item)) {
|
|
118
|
-
const newGroup = { ...updateGroupId(item, newGroupId), id: idCreator() };
|
|
119
|
-
elements.splice(index, 1, newGroup);
|
|
120
|
-
updateElementsGroupId(item, clipboardDataElements, newGroup.id, elements);
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
elements.splice(index, 1, updateGroupId(item, newGroupId));
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
return elements;
|
|
128
|
-
};
|
|
129
|
-
const getRemoveGroups = (board) => {
|
|
130
|
-
const selectedGroups = board.getRelatedFragment([]);
|
|
131
|
-
const removeGroups = [...selectedGroups];
|
|
132
|
-
const highestSelectedGroups = getHighestSelectedGroups(board);
|
|
133
|
-
const selectedIsolatedElements = getSelectedIsolatedElementsCanAddToGroup(board);
|
|
134
|
-
const removeNodes = [...highestSelectedGroups, ...selectedIsolatedElements];
|
|
135
|
-
removeNodes.forEach((item) => {
|
|
136
|
-
const hitElementGroups = getGroupByElement(board, item, true);
|
|
137
|
-
if (hitElementGroups.length) {
|
|
138
|
-
const elementsInGroup = getElementsInGroup(board, hitElementGroups[0], false, true);
|
|
139
|
-
const siblingElements = elementsInGroup.filter((element) => ![...removeNodes, ...removeGroups].map((item) => item.id).includes(element.id));
|
|
140
|
-
if (siblingElements.length === 1 || siblingElements.length === 0) {
|
|
141
|
-
if (!removeGroups.includes(hitElementGroups[0])) {
|
|
142
|
-
removeGroups.push(hitElementGroups[0]);
|
|
143
|
-
}
|
|
144
|
-
if (siblingElements.length === 1) {
|
|
145
|
-
if (hitElementGroups.length > 1) {
|
|
146
|
-
const aboveGroup = findAboveGroupWithAnotherElement(board, hitElementGroups.slice(1, hitElementGroups.length), [
|
|
147
|
-
...removeNodes,
|
|
148
|
-
...removeGroups
|
|
149
|
-
]);
|
|
150
|
-
let index = hitElementGroups.length;
|
|
151
|
-
if (aboveGroup) {
|
|
152
|
-
index = hitElementGroups.findIndex((item) => item.id === aboveGroup.id);
|
|
153
|
-
}
|
|
154
|
-
[...hitElementGroups.slice(1, index)].forEach((item) => {
|
|
155
|
-
if (!removeGroups.includes(item)) {
|
|
156
|
-
removeGroups.push(item);
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
return removeGroups;
|
|
165
|
-
};
|
|
166
|
-
const findAboveGroupWithAnotherElement = (board, groups, excludeNodes) => {
|
|
167
|
-
let group = null;
|
|
168
|
-
for (let i = 0; i < groups.length; i++) {
|
|
169
|
-
const elementsInGroup = getElementsInGroup(board, groups[i], false, true);
|
|
170
|
-
const siblingElements = elementsInGroup.filter((element) => !excludeNodes.map((item) => item.id).includes(element.id));
|
|
171
|
-
if (siblingElements.length > 0) {
|
|
172
|
-
group = groups[i];
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return group;
|
|
177
|
-
};
|
|
178
|
-
const updateSiblingElementGroupId = (board, removeGroups) => {
|
|
179
|
-
const selectedIsolatedElements = getSelectedIsolatedElementsCanAddToGroup(board);
|
|
180
|
-
const highestSelectedGroups = getHighestSelectedGroups(board);
|
|
181
|
-
const isolatedElementsInGroup = selectedIsolatedElements.filter((item) => item.groupId);
|
|
182
|
-
[...highestSelectedGroups, ...isolatedElementsInGroup].forEach((item) => {
|
|
183
|
-
const hitElementGroups = getGroupByElement(board, item, true);
|
|
184
|
-
if (hitElementGroups.length) {
|
|
185
|
-
const elementsInGroup = getElementsInGroup(board, hitElementGroups[0], false, true);
|
|
186
|
-
const siblingElements = elementsInGroup.filter((element) => element.id !== item.id);
|
|
187
|
-
if (siblingElements.length === 1) {
|
|
188
|
-
const removeGroupIds = removeGroups.map((item) => item.id);
|
|
189
|
-
if (hitElementGroups.some((group) => removeGroupIds.includes(group.id))) {
|
|
190
|
-
const group = hitElementGroups.find((group) => !removeGroupIds.includes(group.id));
|
|
191
|
-
const path = PlaitBoard.findPath(board, siblingElements[0]);
|
|
192
|
-
Transforms.setNode(board, { groupId: group?.id || undefined }, path);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
};
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcGx1Z2lucy93aXRoLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBRzNCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsd0NBQXdDLEVBQ3hDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBRWhCLFdBQVcsRUFDWCxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWlCO0lBQ3ZDLElBQUksZUFBbUMsQ0FBQztJQUN4QyxJQUFJLFlBQWlDLENBQUM7SUFFdEMsTUFBTSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsZUFBZSxFQUNmLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osT0FBTyxFQUNWLEdBQUcsS0FBSyxDQUFDO0lBRVYsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLE9BQWtDLEVBQUUsRUFBRTtRQUN2RCxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxPQUFPLGNBQWMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLENB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TUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN0RSxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDbkYsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3pFLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgUGxhaXRHcm91cEVsZW1lbnQsXG4gICAgdG9WaWV3Qm94UG9pbnQsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgZ2V0SGl0RWxlbWVudHNCeVNlbGVjdGlvbixcbiAgICBjcmVhdGVHcm91cFJlY3RhbmdsZUcsXG4gICAgQ2xpcGJvYXJkRGF0YSxcbiAgICBnZXRIaWdoZXN0U2VsZWN0ZWRHcm91cHMsXG4gICAgZ2V0U2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdEdyb3VwLFxuICAgIGdldFNlbGVjdGVkR3JvdXBzLFxuICAgIFNlbGVjdGlvbixcbiAgICBQb2ludCxcbiAgICBUcmFuc2Zvcm1zLFxuICAgIGlkQ3JlYXRvcixcbiAgICBnZXRHcm91cEJ5RWxlbWVudCxcbiAgICBnZXRTZWxlY3RlZElzb2xhdGVkRWxlbWVudHNDYW5BZGRUb0dyb3VwLFxuICAgIGdldEVsZW1lbnRzSW5Hcm91cCxcbiAgICBnZXRSZWN0YW5nbGVCeUdyb3VwLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgV3JpdGFibGVDbGlwYm9hcmRPcGVyYXRpb25UeXBlLFxuICAgIHRocm90dGxlUkFGLFxuICAgIGlzTW92aW5nRWxlbWVudHNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2dyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0tleUhvdGtleSB9IGZyb20gJ2lzLWhvdGtleSc7XG5pbXBvcnQgeyBpc1Jlc2l6aW5nIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEdyb3VwKGJvYXJkOiBQbGFpdEJvYXJkKSB7XG4gICAgbGV0IGdyb3VwUmVjdGFuZ2xlRzogU1ZHR0VsZW1lbnQgfCBudWxsO1xuICAgIGxldCByZW1vdmVHcm91cHM6IFBsYWl0R3JvdXBbXSB8IG51bGw7XG5cbiAgICBjb25zdCB7XG4gICAgICAgIGRyYXdFbGVtZW50LFxuICAgICAgICBwb2ludGVyTW92ZSxcbiAgICAgICAgZ2xvYmFsUG9pbnRlclVwLFxuICAgICAgICBpbnNlcnRGcmFnbWVudCxcbiAgICAgICAgZ2V0RGVsZXRlZEZyYWdtZW50LFxuICAgICAgICBkZWxldGVGcmFnbWVudCxcbiAgICAgICAgZ2V0UmVsYXRlZEZyYWdtZW50LFxuICAgICAgICBnZXRSZWN0YW5nbGUsXG4gICAgICAgIGtleURvd25cbiAgICB9ID0gYm9hcmQ7XG5cbiAgICBib2FyZC5kcmF3RWxlbWVudCA9IChjb250ZXh0OiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0KSA9PiB7XG4gICAgICAgIGlmIChQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKGNvbnRleHQuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBHcm91cENvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZHJhd0VsZW1lbnQoY29udGV4dCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgdGhyb3R0bGVSQUYoYm9hcmQsICd3aXRoLWdyb3VwJywgKCkgPT4ge1xuICAgICAgICAgICAgZ3JvdXBSZWN0YW5nbGVHPy5yZW1vdmUoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBsZXQgc2VsZWN0aW9uOiBTZWxlY3Rpb24gPSB7IGFuY2hvcjogcG9pbnQsIGZvY3VzOiBwb2ludCB9O1xuICAgICAgICAgICAgaWYgKGJvYXJkLnNlbGVjdGlvbiAmJiAhU2VsZWN0aW9uLmlzQ29sbGFwc2VkKGJvYXJkLnNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb2ludGVyID0gUGxhaXRCb2FyZC5nZXRQb2ludGVyKGJvYXJkKTtcbiAgICAgICAgICAgIGlmICghaXNSZXNpemluZyhib2FyZCkgJiYgIWlzTW92aW5nRWxlbWVudHMoYm9hcmQpICYmIHBvaW50ZXIgPT09IFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGl0RWxlbWVudHMgPSBnZXRIaXRFbGVtZW50c0J5U2VsZWN0aW9uKGJvYXJkLCBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIGlmIChoaXRFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBSZWN0YW5nbGVHID0gY3JlYXRlR3JvdXBSZWN0YW5nbGVHKGJvYXJkLCBoaXRFbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwUmVjdGFuZ2xlRyAmJiBQbGFpdEJvYXJkLmdldEVsZW1lbnRUb3BIb3N0KGJvYXJkKS5hcHBlbmQoZ3JvdXBSZWN0YW5nbGVHKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdyb3VwUmVjdGFuZ2xlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdyb3VwUmVjdGFuZ2xlRyA9IG51bGw7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlbGF0ZWRGcmFnbWVudCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10sIG9yaWdpbkRhdGE/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBjb25zdCBncm91cHMgPSBnZXRTZWxlY3RlZEdyb3Vwcyhib2FyZCwgZWxlbWVudHMsIG9yaWdpbkRhdGEpO1xuICAgICAgICByZXR1cm4gZ2V0UmVsYXRlZEZyYWdtZW50KFsuLi5lbGVtZW50cywgLi4uZ3JvdXBzXSwgb3JpZ2luRGF0YSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmluc2VydEZyYWdtZW50ID0gKGNsaXBib2FyZERhdGE6IENsaXBib2FyZERhdGEgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQsIG9wZXJhdGlvblR5cGU/OiBXcml0YWJsZUNsaXBib2FyZE9wZXJhdGlvblR5cGUpID0+IHtcbiAgICAgICAgbGV0IGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuICAgICAgICBpZiAoY2xpcGJvYXJkRGF0YT8uZWxlbWVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgZWxlbWVudHMgPSBuZXcgQXJyYXkoY2xpcGJvYXJkRGF0YT8uZWxlbWVudHM/Lmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCBncm91cHMgPSBnZXRIaWdoZXN0U2VsZWN0ZWRHcm91cHMoYm9hcmQsIGNsaXBib2FyZERhdGE/LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyhib2FyZCwgY2xpcGJvYXJkRGF0YT8uZWxlbWVudHMpO1xuICAgICAgICAgICAgc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNsaXBib2FyZERhdGEuZWxlbWVudHMhLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5pZCkuaW5kZXhPZihpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEsICFpdGVtLmdyb3VwSWQgPyBpdGVtIDogdXBkYXRlR3JvdXBJZChpdGVtLCB1bmRlZmluZWQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBncm91cHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNsaXBib2FyZERhdGEuZWxlbWVudHMhLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5pZCkuaW5kZXhPZihpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3R3JvdXAgPSB7IC4uLnVwZGF0ZUdyb3VwSWQoaXRlbSwgdW5kZWZpbmVkKSwgaWQ6IGlkQ3JlYXRvcigpIH07XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnNwbGljZShpbmRleCwgMSwgbmV3R3JvdXApO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVFbGVtZW50c0dyb3VwSWQoaXRlbSwgY2xpcGJvYXJkRGF0YS5lbGVtZW50cyEsIG5ld0dyb3VwLmlkLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGlwYm9hcmREYXRhLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQsIG9wZXJhdGlvblR5cGUpO1xuICAgICAgICBjb25zdCBncm91cEVsZW1lbnRzID0gZWxlbWVudHM/LmZpbHRlcigodmFsdWUpID0+IFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAodmFsdWUpKSBhcyBQbGFpdEVsZW1lbnRbXTtcbiAgICAgICAgZ3JvdXBFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIGVsZW1lbnQsIFtib2FyZC5jaGlsZHJlbi5sZW5ndGhdKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdldERlbGV0ZWRGcmFnbWVudCA9IChkYXRhOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICByZW1vdmVHcm91cHMgPSBnZXRSZW1vdmVHcm91cHMoYm9hcmQpO1xuICAgICAgICBpZiAocmVtb3ZlR3JvdXBzICYmIHJlbW92ZUdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGRhdGEucHVzaCguLi5yZW1vdmVHcm91cHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXREZWxldGVkRnJhZ21lbnQoZGF0YSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmRlbGV0ZUZyYWdtZW50ID0gKGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBpZiAocmVtb3ZlR3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHVwZGF0ZVNpYmxpbmdFbGVtZW50R3JvdXBJZChib2FyZCwgcmVtb3ZlR3JvdXBzKTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVGcmFnbWVudChlbGVtZW50cyk7XG4gICAgICAgIHJlbW92ZUdyb3VwcyA9IG51bGw7XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlY3RhbmdsZSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUdyb3VwKGJvYXJkLCBlbGVtZW50LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5rZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSkge1xuICAgICAgICAgICAgaWYgKGlzS2V5SG90a2V5KCdtb2QrZycsIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5hZGRHcm91cChib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzS2V5SG90a2V5KCdtb2Qrc2hpZnQrZycsIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVHcm91cChib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGtleURvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59XG5cbmNvbnN0IHVwZGF0ZUdyb3VwSWQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50LCBncm91cElkPzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgZ3JvdXBJZDogZ3JvdXBJZFxuICAgIH07XG59O1xuXG5jb25zdCB1cGRhdGVFbGVtZW50c0dyb3VwSWQgPSAoZ3JvdXA6IFBsYWl0R3JvdXAsIGNsaXBib2FyZERhdGFFbGVtZW50czogUGxhaXRFbGVtZW50W10sIG5ld0dyb3VwSWQ6IHN0cmluZywgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gY2xpcGJvYXJkRGF0YUVsZW1lbnRzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5ncm91cElkID09PSBncm91cC5pZCk7XG4gICAgaWYgKGVsZW1lbnRzSW5Hcm91cC5sZW5ndGgpIHtcbiAgICAgICAgZWxlbWVudHNJbkdyb3VwLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gY2xpcGJvYXJkRGF0YUVsZW1lbnRzLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCkuaW5kZXhPZihpdGVtLmlkKTtcbiAgICAgICAgICAgIGlmIChQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3R3JvdXAgPSB7IC4uLnVwZGF0ZUdyb3VwSWQoaXRlbSwgbmV3R3JvdXBJZCksIGlkOiBpZENyZWF0b3IoKSB9O1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnNwbGljZShpbmRleCwgMSwgbmV3R3JvdXApO1xuICAgICAgICAgICAgICAgIHVwZGF0ZUVsZW1lbnRzR3JvdXBJZChpdGVtLCBjbGlwYm9hcmREYXRhRWxlbWVudHMsIG5ld0dyb3VwLmlkLCBlbGVtZW50cyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnNwbGljZShpbmRleCwgMSwgdXBkYXRlR3JvdXBJZChpdGVtLCBuZXdHcm91cElkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudHM7XG59O1xuXG5jb25zdCBnZXRSZW1vdmVHcm91cHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEdyb3VwcyA9IGJvYXJkLmdldFJlbGF0ZWRGcmFnbWVudChbXSkgYXMgUGxhaXRHcm91cFtdO1xuICAgIGNvbnN0IHJlbW92ZUdyb3VwcyA9IFsuLi5zZWxlY3RlZEdyb3Vwc107XG4gICAgY29uc3QgaGlnaGVzdFNlbGVjdGVkR3JvdXBzID0gZ2V0SGlnaGVzdFNlbGVjdGVkR3JvdXBzKGJvYXJkKTtcbiAgICBjb25zdCBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZElzb2xhdGVkRWxlbWVudHNDYW5BZGRUb0dyb3VwKGJvYXJkKTtcbiAgICBjb25zdCByZW1vdmVOb2RlcyA9IFsuLi5oaWdoZXN0U2VsZWN0ZWRHcm91cHMsIC4uLnNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c107XG4gICAgcmVtb3ZlTm9kZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50R3JvdXBzID0gZ2V0R3JvdXBCeUVsZW1lbnQoYm9hcmQsIGl0ZW0sIHRydWUpIGFzIFBsYWl0R3JvdXBbXTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHNbMF0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpYmxpbmdFbGVtZW50cyA9IGVsZW1lbnRzSW5Hcm91cC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVsZW1lbnQpID0+ICFbLi4ucmVtb3ZlTm9kZXMsIC4uLnJlbW92ZUdyb3Vwc10ubWFwKChpdGVtKSA9PiBpdGVtLmlkKS5pbmNsdWRlcyhlbGVtZW50LmlkKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzaWJsaW5nRWxlbWVudHMubGVuZ3RoID09PSAxIHx8IHNpYmxpbmdFbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlbW92ZUdyb3Vwcy5pbmNsdWRlcyhoaXRFbGVtZW50R3JvdXBzWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVHcm91cHMucHVzaChoaXRFbGVtZW50R3JvdXBzWzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNpYmxpbmdFbGVtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWJvdmVHcm91cCA9IGZpbmRBYm92ZUdyb3VwV2l0aEFub3RoZXJFbGVtZW50KGJvYXJkLCBoaXRFbGVtZW50R3JvdXBzLnNsaWNlKDEsIGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoKSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlbW92ZU5vZGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlbW92ZUdyb3Vwc1xuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSBoaXRFbGVtZW50R3JvdXBzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhYm92ZUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBoaXRFbGVtZW50R3JvdXBzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gYWJvdmVHcm91cC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBbLi4uaGl0RWxlbWVudEdyb3Vwcy5zbGljZSgxLCBpbmRleCldLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlbW92ZUdyb3Vwcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVHcm91cHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZW1vdmVHcm91cHM7XG59O1xuXG5jb25zdCBmaW5kQWJvdmVHcm91cFdpdGhBbm90aGVyRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZ3JvdXBzOiBQbGFpdEdyb3VwW10sIGV4Y2x1ZGVOb2RlczogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgZ3JvdXA6IFBsYWl0R3JvdXAgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAoYm9hcmQsIGdyb3Vwc1tpXSwgZmFsc2UsIHRydWUpO1xuICAgICAgICBjb25zdCBzaWJsaW5nRWxlbWVudHMgPSBlbGVtZW50c0luR3JvdXAuZmlsdGVyKChlbGVtZW50KSA9PiAhZXhjbHVkZU5vZGVzLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCkuaW5jbHVkZXMoZWxlbWVudC5pZCkpO1xuICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwO1xufTtcblxuY29uc3QgdXBkYXRlU2libGluZ0VsZW1lbnRHcm91cElkID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByZW1vdmVHcm91cHM6IFBsYWl0R3JvdXBbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IGhpZ2hlc3RTZWxlY3RlZEdyb3VwcyA9IGdldEhpZ2hlc3RTZWxlY3RlZEdyb3Vwcyhib2FyZCk7XG4gICAgY29uc3QgaXNvbGF0ZWRFbGVtZW50c0luR3JvdXAgPSBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmdyb3VwSWQpO1xuICAgIFsuLi5oaWdoZXN0U2VsZWN0ZWRHcm91cHMsIC4uLmlzb2xhdGVkRWxlbWVudHNJbkdyb3VwXS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnRHcm91cHMgPSBnZXRHcm91cEJ5RWxlbWVudChib2FyZCwgaXRlbSwgdHJ1ZSkgYXMgUGxhaXRHcm91cFtdO1xuICAgICAgICBpZiAoaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzSW5Hcm91cCA9IGdldEVsZW1lbnRzSW5Hcm91cChib2FyZCwgaGl0RWxlbWVudEdyb3Vwc1swXSwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgY29uc3Qgc2libGluZ0VsZW1lbnRzID0gZWxlbWVudHNJbkdyb3VwLmZpbHRlcigoZWxlbWVudCkgPT4gZWxlbWVudC5pZCAhPT0gaXRlbS5pZCk7XG4gICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUdyb3VwSWRzID0gcmVtb3ZlR3JvdXBzLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMuc29tZSgoZ3JvdXApID0+IHJlbW92ZUdyb3VwSWRzLmluY2x1ZGVzKGdyb3VwLmlkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBoaXRFbGVtZW50R3JvdXBzLmZpbmQoKGdyb3VwKSA9PiAhcmVtb3ZlR3JvdXBJZHMuaW5jbHVkZXMoZ3JvdXAuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHNpYmxpbmdFbGVtZW50c1swXSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBncm91cElkOiBncm91cD8uaWQgfHwgdW5kZWZpbmVkIH0sIHBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcbiJdfQ==
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { MERGING, PRESS_AND_MOVE_BUFFER, PlaitBoard, PlaitPointerType, distanceBetweenPointAndPoint, isMainPointer, throttleRAF, toViewBoxPoint, toHostPoint, isDragging } from '@plait/core';
|
|
2
|
-
import { addResizing, isResizing, removeResizing } from '../utils/resize';
|
|
3
|
-
const generalCanResize = (board, event) => {
|
|
4
|
-
return (!PlaitBoard.isReadonly(board) && !PlaitBoard.hasBeenTextEditing(board) && PlaitBoard.isPointer(board, PlaitPointerType.selection));
|
|
5
|
-
};
|
|
6
|
-
export const withResize = (board, options) => {
|
|
7
|
-
const { pointerDown, pointerMove, globalPointerUp } = board;
|
|
8
|
-
let resizeHitTestRef = null;
|
|
9
|
-
let resizeRef = null;
|
|
10
|
-
let startPoint = null;
|
|
11
|
-
let hoverHitTestRef = null;
|
|
12
|
-
board.pointerDown = (event) => {
|
|
13
|
-
if (!options.canResize() || !generalCanResize(board, event) || !isMainPointer(event)) {
|
|
14
|
-
pointerDown(event);
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
18
|
-
resizeHitTestRef = options.hitTest(point);
|
|
19
|
-
if (resizeHitTestRef) {
|
|
20
|
-
if (resizeHitTestRef.cursorClass) {
|
|
21
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${resizeHitTestRef.cursorClass}`);
|
|
22
|
-
}
|
|
23
|
-
startPoint = [event.x, event.y];
|
|
24
|
-
const path = Array.isArray(resizeHitTestRef.element)
|
|
25
|
-
? resizeHitTestRef.element.map(el => PlaitBoard.findPath(board, el))
|
|
26
|
-
: PlaitBoard.findPath(board, resizeHitTestRef.element);
|
|
27
|
-
resizeRef = {
|
|
28
|
-
path,
|
|
29
|
-
element: resizeHitTestRef.element,
|
|
30
|
-
handle: resizeHitTestRef.handle,
|
|
31
|
-
handleIndex: resizeHitTestRef.handleIndex,
|
|
32
|
-
rectangle: resizeHitTestRef.rectangle,
|
|
33
|
-
options: resizeHitTestRef.options
|
|
34
|
-
};
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
pointerDown(event);
|
|
38
|
-
};
|
|
39
|
-
board.pointerMove = (event) => {
|
|
40
|
-
if (!options.canResize() || !generalCanResize(board, event)) {
|
|
41
|
-
clearHoverHitTestRef();
|
|
42
|
-
pointerMove(event);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (startPoint && resizeHitTestRef && !isResizing(board)) {
|
|
46
|
-
const endPoint = [event.x, event.y];
|
|
47
|
-
const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
|
|
48
|
-
if (distance > PRESS_AND_MOVE_BUFFER) {
|
|
49
|
-
addResizing(board, resizeRef, options.key);
|
|
50
|
-
MERGING.set(board, true);
|
|
51
|
-
options.beforeResize && options.beforeResize(resizeRef);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (!isResizing(board) && !isDragging(board)) {
|
|
55
|
-
const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
56
|
-
throttleRAF(board, options.key + '-common-resize-hit-test', () => {
|
|
57
|
-
const hitTestRef = options.hitTest(point);
|
|
58
|
-
if (hitTestRef) {
|
|
59
|
-
if (hoverHitTestRef && hitTestRef.cursorClass !== hoverHitTestRef.cursorClass) {
|
|
60
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${hoverHitTestRef.cursorClass}`);
|
|
61
|
-
}
|
|
62
|
-
hoverHitTestRef = hitTestRef;
|
|
63
|
-
if (hoverHitTestRef.cursorClass) {
|
|
64
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${hoverHitTestRef.cursorClass}`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
clearHoverHitTestRef();
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
if (startPoint && isResizing(board)) {
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
const endPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
76
|
-
throttleRAF(board, 'with-common-resize', () => {
|
|
77
|
-
if (startPoint && resizeRef) {
|
|
78
|
-
options.onResize(resizeRef, {
|
|
79
|
-
startPoint: toViewBoxPoint(board, toHostPoint(board, startPoint[0], startPoint[1])),
|
|
80
|
-
endPoint,
|
|
81
|
-
isShift: !!event.shiftKey
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
pointerMove(event);
|
|
89
|
-
};
|
|
90
|
-
board.globalPointerUp = (event) => {
|
|
91
|
-
globalPointerUp(event);
|
|
92
|
-
if (isResizing(board) || resizeHitTestRef) {
|
|
93
|
-
options.afterResize && options.afterResize(resizeRef);
|
|
94
|
-
removeResizing(board, options.key);
|
|
95
|
-
startPoint = null;
|
|
96
|
-
resizeHitTestRef = null;
|
|
97
|
-
resizeRef = null;
|
|
98
|
-
MERGING.set(board, false);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
const clearHoverHitTestRef = () => {
|
|
102
|
-
if (hoverHitTestRef) {
|
|
103
|
-
if (hoverHitTestRef.cursorClass) {
|
|
104
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${hoverHitTestRef.cursorClass}`);
|
|
105
|
-
}
|
|
106
|
-
hoverHitTestRef = null;
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
return board;
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFDckIsVUFBVSxFQUNWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLFdBQVcsRUFDWCxjQUFjLEVBQ2QsV0FBVyxFQUNYLFVBQVUsRUFDYixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFtQixFQUFFLEVBQUU7SUFDaEUsT0FBTyxDQUNILENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FDcEksQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN0QixLQUFpQixFQUNqQixPQUFtQyxFQUNyQyxFQUFFO0lBQ0EsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzVELElBQUksZ0JBQWdCLEdBQXFDLElBQUksQ0FBQztJQUM5RCxJQUFJLFNBQVMsR0FBOEIsSUFBSSxDQUFDO0lBQ2hELElBQUksVUFBVSxHQUFpQixJQUFJLENBQUM7SUFDcEMsSUFBSSxlQUFlLEdBQXFDLElBQUksQ0FBQztJQUU3RCxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQ3hDLElBQUksQ0FBQyxPQUFP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QU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO1FBQzlCLElBQUksZUFBZSxFQUFFLENBQUM7WUFDbEIsSUFBSSxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzlCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDM0YsQ0FBQztZQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTUVSR0lORyxcbiAgICBQUkVTU19BTkRfTU9WRV9CVUZGRVIsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBvaW50ZXJUeXBlLFxuICAgIFBvaW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICB0aHJvdHRsZVJBRixcbiAgICB0b1ZpZXdCb3hQb2ludCxcbiAgICB0b0hvc3RQb2ludCxcbiAgICBpc0RyYWdnaW5nXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFJlc2l6ZUhhbmRsZSB9IGZyb20gJy4uL2NvbnN0YW50cy9yZXNpemUnO1xuaW1wb3J0IHsgYWRkUmVzaXppbmcsIGlzUmVzaXppbmcsIHJlbW92ZVJlc2l6aW5nIH0gZnJvbSAnLi4vdXRpbHMvcmVzaXplJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudE9yQXJyYXksIFJlc2l6ZU9wdGlvbnMsIFJlc2l6ZUhpdFRlc3RSZWYsIFJlc2l6ZVJlZiwgV2l0aFJlc2l6ZU9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy9yZXNpemUnO1xuXG5jb25zdCBnZW5lcmFsQ2FuUmVzaXplID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgIVBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKGJvYXJkKSAmJiBQbGFpdEJvYXJkLmlzUG9pbnRlcihib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5zZWxlY3Rpb24pXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB3aXRoUmVzaXplID0gPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnRPckFycmF5ID0gUGxhaXRFbGVtZW50T3JBcnJheSwgSyA9IFJlc2l6ZUhhbmRsZSwgUCA9IFJlc2l6ZU9wdGlvbnM+KFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIG9wdGlvbnM6IFdpdGhSZXNpemVPcHRpb25zPFQsIEssIFA+XG4pID0+IHtcbiAgICBjb25zdCB7IHBvaW50ZXJEb3duLCBwb2ludGVyTW92ZSwgZ2xvYmFsUG9pbnRlclVwIH0gPSBib2FyZDtcbiAgICBsZXQgcmVzaXplSGl0VGVzdFJlZjogUmVzaXplSGl0VGVzdFJlZjxULCBLLCBQPiB8IG51bGwgPSBudWxsO1xuICAgIGxldCByZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLLCBQPiB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzdGFydFBvaW50OiBQb2ludCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBob3ZlckhpdFRlc3RSZWY6IFJlc2l6ZUhpdFRlc3RSZWY8VCwgSywgUD4gfCBudWxsID0gbnVsbDtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNhblJlc2l6ZSgpIHx8ICFnZW5lcmFsQ2FuUmVzaXplKGJvYXJkLCBldmVudCkgfHwgIWlzTWFpblBvaW50ZXIoZXZlbnQpKSB7XG4gICAgICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgcmVzaXplSGl0VGVzdFJlZiA9IG9wdGlvbnMuaGl0VGVzdChwb2ludCk7XG4gICAgICAgIGlmIChyZXNpemVIaXRUZXN0UmVmKSB7XG4gICAgICAgICAgICBpZiAocmVzaXplSGl0VGVzdFJlZi5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7cmVzaXplSGl0VGVzdFJlZi5jdXJzb3JDbGFzc31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBbZXZlbnQueCwgZXZlbnQueV07XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gQXJyYXkuaXNBcnJheShyZXNpemVIaXRUZXN0UmVmLmVsZW1lbnQpXG4gICAgICAgICAgICAgICAgPyByZXNpemVIaXRUZXN0UmVmLmVsZW1lbnQubWFwKGVsID0+IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsKSlcbiAgICAgICAgICAgICAgICA6IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHJlc2l6ZUhpdFRlc3RSZWYuZWxlbWVudCk7XG4gICAgICAgICAgICByZXNpemVSZWYgPSB7XG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiByZXNpemVIaXRUZXN0UmVmLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgaGFuZGxlOiByZXNpemVIaXRUZXN0UmVmLmhhbmRsZSxcbiAgICAgICAgICAgICAgICBoYW5kbGVJbmRleDogcmVzaXplSGl0VGVzdFJlZi5oYW5kbGVJbmRleCxcbiAgICAgICAgICAgICAgICByZWN0YW5nbGU6IHJlc2l6ZUhpdFRlc3RSZWYucmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHJlc2l6ZUhpdFRlc3RSZWYub3B0aW9uc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNhblJlc2l6ZSgpIHx8ICFnZW5lcmFsQ2FuUmVzaXplKGJvYXJkLCBldmVudCkpIHtcbiAgICAgICAgICAgIGNsZWFySG92ZXJIaXRUZXN0UmVmKCk7XG4gICAgICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0UG9pbnQgJiYgcmVzaXplSGl0VGVzdFJlZiAmJiAhaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gW2V2ZW50LngsIGV2ZW50LnldO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0sIGVuZFBvaW50WzBdLCBlbmRQb2ludFsxXSk7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiBQUkVTU19BTkRfTU9WRV9CVUZGRVIpIHtcbiAgICAgICAgICAgICAgICBhZGRSZXNpemluZyhib2FyZCwgcmVzaXplUmVmISwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmJlZm9yZVJlc2l6ZSAmJiBvcHRpb25zLmJlZm9yZVJlc2l6ZShyZXNpemVSZWYhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzUmVzaXppbmcoYm9hcmQpICYmICFpc0RyYWdnaW5nKGJvYXJkKSkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgICAgIHRocm90dGxlUkFGKGJvYXJkLCBvcHRpb25zLmtleSArICctY29tbW9uLXJlc2l6ZS1oaXQtdGVzdCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBoaXRUZXN0UmVmID0gb3B0aW9ucy5oaXRUZXN0KHBvaW50KTtcbiAgICAgICAgICAgICAgICBpZiAoaGl0VGVzdFJlZikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZXJIaXRUZXN0UmVmICYmIGhpdFRlc3RSZWYuY3Vyc29yQ2xhc3MgIT09IGhvdmVySGl0VGVzdFJlZi5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlckhpdFRlc3RSZWYuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaG92ZXJIaXRUZXN0UmVmID0gaGl0VGVzdFJlZjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhvdmVySGl0VGVzdFJlZi5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LmFkZChgJHtob3ZlckhpdFRlc3RSZWYuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjbGVhckhvdmVySGl0VGVzdFJlZigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgJiYgaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICAgICAgdGhyb3R0bGVSQUYoYm9hcmQsICd3aXRoLWNvbW1vbi1yZXNpemUnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ICYmIHJlc2l6ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vblJlc2l6ZShyZXNpemVSZWYsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvaW50OiB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NoaWZ0OiAhIWV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSB8fCByZXNpemVIaXRUZXN0UmVmKSB7XG4gICAgICAgICAgICBvcHRpb25zLmFmdGVyUmVzaXplICYmIG9wdGlvbnMuYWZ0ZXJSZXNpemUocmVzaXplUmVmISk7XG4gICAgICAgICAgICByZW1vdmVSZXNpemluZyhib2FyZCwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgc3RhcnRQb2ludCA9IG51bGw7XG4gICAgICAgICAgICByZXNpemVIaXRUZXN0UmVmID0gbnVsbDtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IG51bGw7XG4gICAgICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGNsZWFySG92ZXJIaXRUZXN0UmVmID0gKCkgPT4ge1xuICAgICAgICBpZiAoaG92ZXJIaXRUZXN0UmVmKSB7XG4gICAgICAgICAgICBpZiAoaG92ZXJIaXRUZXN0UmVmLmN1cnNvckNsYXNzKSB7XG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlckhpdFRlc3RSZWYuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBob3ZlckhpdFRlc3RSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of utils
|
|
3
|
-
*/
|
|
4
|
-
export * from './constants';
|
|
5
|
-
export * from './generators';
|
|
6
|
-
export * from './transforms';
|
|
7
|
-
export * from './shapes';
|
|
8
|
-
export * from './plugins';
|
|
9
|
-
export * from './utils';
|
|
10
|
-
export * from './image/image-base.component';
|
|
11
|
-
export * from './core';
|
|
12
|
-
export * from './algorithms';
|
|
13
|
-
export * from './text';
|
|
14
|
-
export * from './image';
|
|
15
|
-
export * from './types';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHV0aWxzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlL2ltYWdlLWJhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2FsZ29yaXRobXMnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const normalizeShapePoints = (points, shift = false) => {
|
|
2
|
-
let start = points[0];
|
|
3
|
-
let end = points[1];
|
|
4
|
-
if (shift) {
|
|
5
|
-
const width = Math.abs(start[0] - end[0]);
|
|
6
|
-
const height = Math.abs(start[1] - end[1]);
|
|
7
|
-
const edge = Math.max(height, width);
|
|
8
|
-
end = [start[0] + (end[0] > start[0] ? edge : -edge), start[1] + (end[1] > start[1] ? edge : -edge)];
|
|
9
|
-
}
|
|
10
|
-
const leftTopPoint = [Math.min(start[0], end[0]), Math.min(start[1], end[1])];
|
|
11
|
-
let rightBottomPoint = [Math.max(start[0], end[0]), Math.max(start[1], end[1])];
|
|
12
|
-
return [leftTopPoint, rightBottomPoint];
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9zaGFwZXMvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBc0IsRUFBRSxRQUFpQixLQUFLLEVBQWtCLEVBQUU7SUFDbkcsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckYsSUFBSSxnQkFBZ0IsR0FBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkYsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplU2hhcGVQb2ludHMgPSAocG9pbnRzOiBbUG9pbnQsIFBvaW50XSwgc2hpZnQ6IGJvb2xlYW4gPSBmYWxzZSk6IFtQb2ludCwgUG9pbnRdID0+IHtcbiAgICBsZXQgc3RhcnQgPSBwb2ludHNbMF07XG4gICAgbGV0IGVuZCA9IHBvaW50c1sxXTtcbiAgICBpZiAoc2hpZnQpIHtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLmFicyhzdGFydFswXSAtIGVuZFswXSk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IE1hdGguYWJzKHN0YXJ0WzFdIC0gZW5kWzFdKTtcbiAgICAgICAgY29uc3QgZWRnZSA9IE1hdGgubWF4KGhlaWdodCwgd2lkdGgpO1xuICAgICAgICBlbmQgPSBbc3RhcnRbMF0gKyAoZW5kWzBdID4gc3RhcnRbMF0gPyBlZGdlIDogLWVkZ2UpLCBzdGFydFsxXSArIChlbmRbMV0gPiBzdGFydFsxXSA/IGVkZ2UgOiAtZWRnZSldO1xuICAgIH1cblxuICAgIGNvbnN0IGxlZnRUb3BQb2ludDogUG9pbnQgPSBbTWF0aC5taW4oc3RhcnRbMF0sIGVuZFswXSksIE1hdGgubWluKHN0YXJ0WzFdLCBlbmRbMV0pXTtcbiAgICBsZXQgcmlnaHRCb3R0b21Qb2ludDogUG9pbnQgPSBbTWF0aC5tYXgoc3RhcnRbMF0sIGVuZFswXSksIE1hdGgubWF4KHN0YXJ0WzFdLCBlbmRbMV0pXTtcblxuICAgIHJldHVybiBbbGVmdFRvcFBvaW50LCByaWdodEJvdHRvbVBvaW50XTtcbn07XG4iXX0=
|
package/esm2022/shapes/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NoYXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcbiJdfQ==
|
package/esm2022/text/index.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './text-manage';
|
|
2
|
-
export * from './with-text';
|
|
3
|
-
export * from './text-measure';
|
|
4
|
-
export * from './types';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RleHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGV4dC1tYW5hZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LW1lYXN1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|