@plait/common 0.55.1 → 0.56.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/core/element-ref.d.ts +7 -0
- package/core/group.component.d.ts +2 -3
- package/core/plugin-element.d.ts +8 -1
- package/esm2022/core/element-ref.mjs +12 -0
- package/esm2022/core/group.component.mjs +5 -6
- package/esm2022/core/image-base.component.mjs +5 -3
- package/esm2022/core/plugin-element.mjs +20 -2
- package/esm2022/generators/generator.mjs +1 -1
- package/esm2022/generators/image.generator.mjs +2 -1
- package/esm2022/plugins/with-group.mjs +11 -7
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/utils/resize.mjs +9 -2
- package/esm2022/utils/text.mjs +5 -6
- package/fesm2022/plait-common.mjs +57 -20
- package/fesm2022/plait-common.mjs.map +1 -1
- package/generators/image.generator.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/utils/resize.d.ts +2 -1
- package/utils/text.d.ts +4 -3
package/esm2022/utils/text.mjs
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { PlaitElement } from '@plait/core';
|
|
2
1
|
import { PlaitMarkEditor } from '@plait/text';
|
|
3
2
|
import { Node } from 'slate';
|
|
4
3
|
export const getTextManages = (element) => {
|
|
5
|
-
|
|
6
|
-
return component.getTextManages();
|
|
4
|
+
return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
|
|
7
5
|
};
|
|
8
6
|
export const getFirstTextManage = (element) => {
|
|
9
7
|
const textManage = getTextManages(element)[0];
|
|
10
8
|
if (!textManage) {
|
|
11
|
-
|
|
9
|
+
console.warn('can not find textManage');
|
|
12
10
|
}
|
|
13
11
|
return textManage;
|
|
14
12
|
};
|
|
@@ -20,7 +18,7 @@ export const getTextEditors = (element) => {
|
|
|
20
18
|
export const getFirstTextEditor = (element) => {
|
|
21
19
|
const textEditor = getTextEditors(element)[0];
|
|
22
20
|
if (!textEditor) {
|
|
23
|
-
|
|
21
|
+
console.warn('can not find textManage');
|
|
24
22
|
}
|
|
25
23
|
return textEditor;
|
|
26
24
|
};
|
|
@@ -60,4 +58,5 @@ export const getElementsText = (elements) => {
|
|
|
60
58
|
.filter(item => item)
|
|
61
59
|
.join(' ');
|
|
62
60
|
};
|
|
63
|
-
|
|
61
|
+
export const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWMsZUFBZSxFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDM0QsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBNkIsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ILE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBNkIsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRixPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF3QixFQUFFLEVBQUU7SUFDeEQsT0FBTyxRQUFRO1NBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQixPQUFPLE9BQU87cUJBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUMsQ0FBQztxQkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QyxJQUFJLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uUGx1Z2luRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvcGx1Z2luLWVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGV4dCwgUGxhaXRNYXJrRWRpdG9yLCBUZXh0TWFuYWdlIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYW5hZ2VzID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5nZXQoZWxlbWVudCkgfHwgW107XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0TWFuYWdlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KVswXTtcbiAgICBpZiAoIXRleHRNYW5hZ2UpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdjYW4gbm90IGZpbmQgdGV4dE1hbmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGV4dE1hbmFnZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0RWRpdG9ycyA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gZ2V0VGV4dE1hbmFnZXMoZWxlbWVudCkubWFwKG1hbmFnZSA9PiB7XG4gICAgICAgIHJldHVybiBtYW5hZ2UuY29tcG9uZW50UmVmLmluc3RhbmNlLmVkaXRvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRFZGl0b3IgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dEVkaXRvciA9IGdldFRleHRFZGl0b3JzKGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dEVkaXRvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0RWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYXJrc0J5RWxlbWVudCA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnMoZWxlbWVudCk7XG4gICAgY29uc3QgZWRpdG9yID0gZWRpdG9yc1swXTtcbiAgICBpZiAoIWVkaXRvcikge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGlmIChlZGl0b3IuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KVswXTtcbiAgICAgICAgY29uc3QgY3VycmVudE1hcmtzOiBPbWl0PEN1c3RvbVRleHQsICd0ZXh0Jz4gPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3NCeUVsZW1lbnQodGV4dE1hbmFnZS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2hpbGRyZW5bMF0pO1xuICAgICAgICByZXR1cm4gY3VycmVudE1hcmtzO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50TWFya3M6IE9taXQ8Q3VzdG9tVGV4dCwgJ3RleHQnPiA9IFBsYWl0TWFya0VkaXRvci5nZXRNYXJrcyhlZGl0b3IpO1xuICAgIHJldHVybiBjdXJyZW50TWFya3M7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudHNUZXh0ID0gKGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50c1xuICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnMoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGVkaXRvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlZGl0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGVkaXRvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dHNFbnRyeSA9IE5vZGUudGV4dHMoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0ZXh0c0VudHJ5KS5yZWR1Y2UoKHRvdGFsLCB0ZXh0KSA9PiAodG90YWwgKz0gdGV4dFswXS50ZXh0KSwgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSlcbiAgICAgICAgLmpvaW4oJyAnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUzogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFRleHRNYW5hZ2VbXT4gPSBuZXcgV2Vha01hcCgpO1xuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { PlaitGroupElement, getSelectionAngle, getElementsInGroup, setAngleForG, RectangleClient, drawCircle, PlaitBoard, RESIZE_HANDLE_CLASS_NAME, createG, setStrokeLinecap, drawRectangle, SELECTION_RECTANGLE_CLASS_NAME, createForeignObject, updateForeignObject, ResizeCursorClass, RESIZE_CURSORS, setDragging, rotatePoints, distanceBetweenPointAndPoint, Point, Direction, hotkeys,
|
|
1
|
+
import { PlaitGroupElement, getSelectionAngle, getElementsInGroup, setAngleForG, RectangleClient, drawCircle, PlaitBoard, RESIZE_HANDLE_CLASS_NAME, createG, setStrokeLinecap, drawRectangle, SELECTION_RECTANGLE_CLASS_NAME, createForeignObject, updateForeignObject, ResizeCursorClass, RESIZE_CURSORS, setDragging, rotatePoints, isSelectionMoving, getSelectedElements, distanceBetweenPointAndPoint, Point, Direction, hotkeys, PlaitContextService, createDebugGenerator, Transforms, getHighestSelectedElements, getRectangleByElements, MERGING, PlaitPointerType, isMainPointer, toViewBoxPoint, toHostPoint, preventTouchMove, PRESS_AND_MOVE_BUFFER, isDragging, throttleRAF, handleTouchTarget, ACTIVE_STROKE_WIDTH, getRectangleByGroup, PlaitPluginElementComponent, isSelectedElementOrGroup, Selection, getHitElementsBySelection, createGroupRectangleG, getSelectedGroups, getHighestSelectedGroups, getSelectedIsolatedElements, idCreator, getSelectedIsolatedElementsCanAddToGroup, getGroupByElement } from '@plait/core';
|
|
2
2
|
import { isKeyHotkey } from 'is-hotkey';
|
|
3
3
|
import { PlaitMarkEditor, MarkTypes, AlignEditor } from '@plait/text';
|
|
4
4
|
import { Node, Transforms as Transforms$1, Editor } from 'slate';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { inject, Component, ChangeDetectionStrategy,
|
|
6
|
+
import { Directive, inject, Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
7
7
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
8
|
|
|
9
9
|
const BASE = 4;
|
|
@@ -181,6 +181,7 @@ class ActiveGenerator extends Generator {
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
class ImageGenerator extends Generator {
|
|
184
|
+
static { this.key = 'image-generator'; }
|
|
184
185
|
constructor(board, options) {
|
|
185
186
|
super(board, options);
|
|
186
187
|
this.board = board;
|
|
@@ -359,6 +360,13 @@ const resetPointsAfterResize = (originRectangle, currentRectangle, originSelecti
|
|
|
359
360
|
const rotatedPoints = rotatePoints(currentPoints, originRectangleCenterPoint, angle);
|
|
360
361
|
return rotatePoints(rotatedPoints, correctElementCenterPoint, -angle);
|
|
361
362
|
};
|
|
363
|
+
const canResize = (board, element) => {
|
|
364
|
+
if (PlaitBoard.hasBeenTextEditing(board) || isSelectionMoving(board)) {
|
|
365
|
+
return false;
|
|
366
|
+
}
|
|
367
|
+
const selectedElements = getSelectedElements(board);
|
|
368
|
+
return selectedElements.length === 1 && selectedElements[0] === element;
|
|
369
|
+
};
|
|
362
370
|
|
|
363
371
|
function getUnitVectorByPointAndPoint(point1, point2) {
|
|
364
372
|
const deltaX = point2[0] - point1[0];
|
|
@@ -727,13 +735,12 @@ const isDrawingMode = (board) => {
|
|
|
727
735
|
};
|
|
728
736
|
|
|
729
737
|
const getTextManages = (element) => {
|
|
730
|
-
|
|
731
|
-
return component.getTextManages();
|
|
738
|
+
return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
|
|
732
739
|
};
|
|
733
740
|
const getFirstTextManage = (element) => {
|
|
734
741
|
const textManage = getTextManages(element)[0];
|
|
735
742
|
if (!textManage) {
|
|
736
|
-
|
|
743
|
+
console.warn('can not find textManage');
|
|
737
744
|
}
|
|
738
745
|
return textManage;
|
|
739
746
|
};
|
|
@@ -745,7 +752,7 @@ const getTextEditors = (element) => {
|
|
|
745
752
|
const getFirstTextEditor = (element) => {
|
|
746
753
|
const textEditor = getTextEditors(element)[0];
|
|
747
754
|
if (!textEditor) {
|
|
748
|
-
|
|
755
|
+
console.warn('can not find textManage');
|
|
749
756
|
}
|
|
750
757
|
return textEditor;
|
|
751
758
|
};
|
|
@@ -785,6 +792,7 @@ const getElementsText = (elements) => {
|
|
|
785
792
|
.filter(item => item)
|
|
786
793
|
.join(' ');
|
|
787
794
|
};
|
|
795
|
+
const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
|
|
788
796
|
|
|
789
797
|
const selectImage = (board, defaultImageWidth, handle, acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp']) => {
|
|
790
798
|
const inputFile = document.createElement('input');
|
|
@@ -1584,13 +1592,33 @@ class GroupGenerator extends Generator {
|
|
|
1584
1592
|
}
|
|
1585
1593
|
}
|
|
1586
1594
|
|
|
1595
|
+
class PlaitCommonElementRef {
|
|
1596
|
+
constructor() {
|
|
1597
|
+
this.generatorMap = new Map();
|
|
1598
|
+
}
|
|
1599
|
+
addGenerator(key, generator) {
|
|
1600
|
+
this.generatorMap.set(key, generator);
|
|
1601
|
+
}
|
|
1602
|
+
getGenerator(key) {
|
|
1603
|
+
return this.generatorMap.get(key);
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1587
1607
|
class CommonPluginElement extends PlaitPluginElementComponent {
|
|
1588
1608
|
constructor() {
|
|
1589
|
-
|
|
1609
|
+
const elementRef = new PlaitCommonElementRef();
|
|
1610
|
+
super(elementRef);
|
|
1590
1611
|
this.textManages = [];
|
|
1591
1612
|
}
|
|
1613
|
+
initializeWeakMap() {
|
|
1614
|
+
ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
|
|
1615
|
+
}
|
|
1616
|
+
destroyWeakMap() {
|
|
1617
|
+
ELEMENT_TO_TEXT_MANAGES.delete(this.element);
|
|
1618
|
+
}
|
|
1592
1619
|
initializeTextManages(textManages) {
|
|
1593
1620
|
this.textManages = textManages;
|
|
1621
|
+
this.initializeWeakMap();
|
|
1594
1622
|
}
|
|
1595
1623
|
addTextManage(textManage) {
|
|
1596
1624
|
this.textManages.push(textManage);
|
|
@@ -1600,16 +1628,21 @@ class CommonPluginElement extends PlaitPluginElementComponent {
|
|
|
1600
1628
|
manage.destroy();
|
|
1601
1629
|
});
|
|
1602
1630
|
this.textManages = [];
|
|
1631
|
+
this.destroyWeakMap();
|
|
1603
1632
|
}
|
|
1604
1633
|
getTextManages() {
|
|
1605
1634
|
return this.textManages;
|
|
1606
1635
|
}
|
|
1636
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CommonPluginElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1637
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: CommonPluginElement, usesInheritance: true, ngImport: i0 }); }
|
|
1607
1638
|
}
|
|
1639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CommonPluginElement, decorators: [{
|
|
1640
|
+
type: Directive
|
|
1641
|
+
}], ctorParameters: () => [] });
|
|
1608
1642
|
|
|
1609
1643
|
class GroupComponent extends CommonPluginElement {
|
|
1610
|
-
constructor(
|
|
1611
|
-
super(
|
|
1612
|
-
this.cdr = cdr;
|
|
1644
|
+
constructor(destroyRef) {
|
|
1645
|
+
super();
|
|
1613
1646
|
this.destroyRef = destroyRef;
|
|
1614
1647
|
this.contextService = inject(PlaitContextService);
|
|
1615
1648
|
}
|
|
@@ -1640,7 +1673,7 @@ class GroupComponent extends CommonPluginElement {
|
|
|
1640
1673
|
});
|
|
1641
1674
|
}
|
|
1642
1675
|
onContextChanged(value, previous) { }
|
|
1643
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.
|
|
1676
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1644
1677
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: GroupComponent, isStandalone: true, selector: "plait-group", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1645
1678
|
}
|
|
1646
1679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, decorators: [{
|
|
@@ -1651,7 +1684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
1651
1684
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1652
1685
|
standalone: true
|
|
1653
1686
|
}]
|
|
1654
|
-
}], ctorParameters: () => [{ type: i0.
|
|
1687
|
+
}], ctorParameters: () => [{ type: i0.DestroyRef }] });
|
|
1655
1688
|
|
|
1656
1689
|
function withGroup(board) {
|
|
1657
1690
|
let groupRectangleG;
|
|
@@ -1670,10 +1703,13 @@ function withGroup(board) {
|
|
|
1670
1703
|
if (board.selection && !Selection.isCollapsed(board.selection)) {
|
|
1671
1704
|
selection = board.selection;
|
|
1672
1705
|
}
|
|
1673
|
-
const
|
|
1674
|
-
if (
|
|
1675
|
-
|
|
1676
|
-
|
|
1706
|
+
const pointer = PlaitBoard.getPointer(board);
|
|
1707
|
+
if (!isResizing(board) && pointer === PlaitPointerType.selection) {
|
|
1708
|
+
const hitElements = getHitElementsBySelection(board, selection);
|
|
1709
|
+
if (hitElements.length) {
|
|
1710
|
+
groupRectangleG = createGroupRectangleG(board, hitElements);
|
|
1711
|
+
groupRectangleG && PlaitBoard.getElementActiveHost(board).append(groupRectangleG);
|
|
1712
|
+
}
|
|
1677
1713
|
}
|
|
1678
1714
|
pointerMove(event);
|
|
1679
1715
|
};
|
|
@@ -1683,7 +1719,7 @@ function withGroup(board) {
|
|
|
1683
1719
|
globalPointerUp(event);
|
|
1684
1720
|
};
|
|
1685
1721
|
board.getRelatedFragment = (elements, originData) => {
|
|
1686
|
-
const groups = getSelectedGroups(board, originData);
|
|
1722
|
+
const groups = getSelectedGroups(board, elements, originData);
|
|
1687
1723
|
return getRelatedFragment([...elements, ...groups], originData);
|
|
1688
1724
|
};
|
|
1689
1725
|
board.insertFragment = (clipboardData, targetPoint) => {
|
|
@@ -1890,8 +1926,9 @@ class ImageBaseComponent {
|
|
|
1890
1926
|
return this.getRectangle();
|
|
1891
1927
|
},
|
|
1892
1928
|
hasResizeHandle: () => {
|
|
1893
|
-
const
|
|
1894
|
-
|
|
1929
|
+
const isSelectedImageElement = canResize(this.board, this.element);
|
|
1930
|
+
const isSelectedImage = !!getElementOfFocusedImage(this.board);
|
|
1931
|
+
return isSelectedImage || isSelectedImageElement;
|
|
1895
1932
|
}
|
|
1896
1933
|
});
|
|
1897
1934
|
this.initialized = true;
|
|
@@ -1939,5 +1976,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
1939
1976
|
* Generated bundle index. Do not edit.
|
|
1940
1977
|
*/
|
|
1941
1978
|
|
|
1942
|
-
export { AStar, ActiveGenerator, AlignTransform, BASE, BoardCreationMode, CommonPluginElement, DEFAULT_ROUTE_MARGIN, Generator, IS_RESIZING, IS_ROTATING, ImageBaseComponent, ImageGenerator, MediaKeys, PICTURE_ACCEPTED_UPLOAD_SIZE, PRIMARY_COLOR, PointGraph, PointNode, PriorityQueue, PropertyTransforms, RESIZE_HANDLE_DIAMETER, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, ResizeHandle, TRANSPARENT, TextTransforms, WithCommonPluginKey, WithTextPluginKey, acceptImageTypes, addElementOfFocusedImage, addResizing, addRotating, alignBottom, alignHorizontalCenter, alignLeft, alignRight, alignTop, alignVerticalCenter, buildImage, calculatePolylineLength, createGraph, distributeHorizontal, distributeVertical, drawFillPrimaryHandle, drawHandle, drawPrimaryHandle, drawRotateHandle, generateElbowLineRoute, getCreationMode, getCrossingPointsBetweenPointAndSegment, getDirectionBetweenPointAndPoint, getDirectionByPointOfRectangle, getDirectionByVector, getDirectionFactor, getDirectionFactorByDirectionComponent, getElementOfFocusedImage, getElementsText, getExtendPoint, getFirstTextEditor, getFirstTextManage, getGraphPoints, getIndexByResizeHandle, getMemorizedLatest, getNextPoint, getOppositeDirection, getPointByVectorComponent, getPointByVectorDirectionComponent, getPointOnPolyline, getPoints, getRatioByPoint, getRectangleResizeHandleRefs, getResizeHandleByIndex, getResizeHandlePointByIndex, getRotatedResizeCursorClassByAngle, getSourceAndTargetOuterRectangle, getSymmetricHandleIndex, getTextEditors, getTextManages, getTextMarksByElement, getUnitVectorByPointAndPoint, hasAfterDraw, isCornerHandle, isDelete, isDndMode, isDrawingMode, isEdgeHandle, isEnterHotkey, isExpandHotkey, isPointOnSegment, isResizing, isResizingByCondition, isRotating, isSourceAndTargetIntersect, isSpaceHotkey, isTabHotkey, isVirtualKey, memorizeLatest, normalizeShapePoints, reduceRouteMargin, removeDuplicatePoints, removeElementOfFocusedImage, removeResizing, removeRotating, resetPointsAfterResize, rotateVector, rotateVectorAnti90, routeAdjust, selectImage, setCreationMode, setProperty, simplifyOrthogonalPoints, withGroup, withResize };
|
|
1979
|
+
export { AStar, ActiveGenerator, AlignTransform, BASE, BoardCreationMode, CommonPluginElement, DEFAULT_ROUTE_MARGIN, ELEMENT_TO_TEXT_MANAGES, Generator, IS_RESIZING, IS_ROTATING, ImageBaseComponent, ImageGenerator, MediaKeys, PICTURE_ACCEPTED_UPLOAD_SIZE, PRIMARY_COLOR, PlaitCommonElementRef, PointGraph, PointNode, PriorityQueue, PropertyTransforms, RESIZE_HANDLE_DIAMETER, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, ResizeHandle, TRANSPARENT, TextTransforms, WithCommonPluginKey, WithTextPluginKey, acceptImageTypes, addElementOfFocusedImage, addResizing, addRotating, alignBottom, alignHorizontalCenter, alignLeft, alignRight, alignTop, alignVerticalCenter, buildImage, calculatePolylineLength, canResize, createGraph, distributeHorizontal, distributeVertical, drawFillPrimaryHandle, drawHandle, drawPrimaryHandle, drawRotateHandle, generateElbowLineRoute, getCreationMode, getCrossingPointsBetweenPointAndSegment, getDirectionBetweenPointAndPoint, getDirectionByPointOfRectangle, getDirectionByVector, getDirectionFactor, getDirectionFactorByDirectionComponent, getElementOfFocusedImage, getElementsText, getExtendPoint, getFirstTextEditor, getFirstTextManage, getGraphPoints, getIndexByResizeHandle, getMemorizedLatest, getNextPoint, getOppositeDirection, getPointByVectorComponent, getPointByVectorDirectionComponent, getPointOnPolyline, getPoints, getRatioByPoint, getRectangleResizeHandleRefs, getResizeHandleByIndex, getResizeHandlePointByIndex, getRotatedResizeCursorClassByAngle, getSourceAndTargetOuterRectangle, getSymmetricHandleIndex, getTextEditors, getTextManages, getTextMarksByElement, getUnitVectorByPointAndPoint, hasAfterDraw, isCornerHandle, isDelete, isDndMode, isDrawingMode, isEdgeHandle, isEnterHotkey, isExpandHotkey, isPointOnSegment, isResizing, isResizingByCondition, isRotating, isSourceAndTargetIntersect, isSpaceHotkey, isTabHotkey, isVirtualKey, memorizeLatest, normalizeShapePoints, reduceRouteMargin, removeDuplicatePoints, removeElementOfFocusedImage, removeResizing, removeRotating, resetPointsAfterResize, rotateVector, rotateVectorAnti90, routeAdjust, selectImage, setCreationMode, setProperty, simplifyOrthogonalPoints, withGroup, withResize };
|
|
1943
1980
|
//# sourceMappingURL=plait-common.mjs.map
|