@plait/mind 0.29.0 → 0.30.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/esm2022/drawer/node-active.generator.mjs +6 -5
- package/esm2022/plugins/with-mind.mjs +19 -5
- package/esm2022/plugins/with-node-dnd.mjs +10 -11
- package/esm2022/plugins/with-node-image-resize.mjs +6 -5
- package/esm2022/plugins/with-node-image.mjs +22 -24
- package/esm2022/transforms/image.mjs +3 -3
- package/esm2022/utils/node/image.mjs +10 -18
- package/esm2022/utils/position/image.mjs +3 -3
- package/fesm2022/plait-mind.mjs +65 -61
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/node/image.d.ts +2 -4
- package/utils/position/image.d.ts +2 -2
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
import { PlaitElement } from '@plait/core';
|
|
2
|
-
|
|
3
|
-
export const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
export const removeSelectedImageElement = (board) => {
|
|
10
|
-
BOARD_TO_SELECTED_IMAGE_ELEMENT.delete(board);
|
|
2
|
+
import { addElementOfFocusedImage, removeElementOfFocusedImage } from '@plait/common';
|
|
3
|
+
export const addImageFocus = (board, element) => {
|
|
4
|
+
addElementOfFocusedImage(board, element);
|
|
5
|
+
const elementComponent = PlaitElement.getComponent(element);
|
|
6
|
+
elementComponent.imageGenerator.componentRef.instance.isFocus = true;
|
|
7
|
+
elementComponent.imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
11
8
|
};
|
|
12
|
-
export const
|
|
13
|
-
|
|
14
|
-
addSelectedImageElement(board, element);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
removeSelectedImageElement(board);
|
|
18
|
-
}
|
|
9
|
+
export const removeImageFocus = (board, element) => {
|
|
10
|
+
removeElementOfFocusedImage(board);
|
|
19
11
|
const elementComponent = PlaitElement.getComponent(element);
|
|
20
|
-
elementComponent.imageGenerator.componentRef.instance.isFocus =
|
|
12
|
+
elementComponent.imageGenerator.componentRef.instance.isFocus = false;
|
|
21
13
|
elementComponent.imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
22
14
|
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxFQUFFO0lBQ2hGLHdCQUF3QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFzQixDQUFDO0lBQ2pGLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEUsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFlBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQzlFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUErQixFQUFFLEVBQUU7SUFDbkYsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztJQUNqRixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsWUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZFLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUM5RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21pbmQtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgYWRkRWxlbWVudE9mRm9jdXNlZEltYWdlLCByZW1vdmVFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IGFkZEltYWdlRm9jdXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEltYWdlRGF0YT4pID0+IHtcbiAgICBhZGRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IGVsZW1lbnRDb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgIGVsZW1lbnRDb21wb25lbnQuaW1hZ2VHZW5lcmF0b3IuY29tcG9uZW50UmVmIS5pbnN0YW5jZS5pc0ZvY3VzID0gdHJ1ZTtcbiAgICBlbGVtZW50Q29tcG9uZW50LmltYWdlR2VuZXJhdG9yLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UuY2RyLm1hcmtGb3JDaGVjaygpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUltYWdlRm9jdXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEltYWdlRGF0YT4pID0+IHtcbiAgICByZW1vdmVFbGVtZW50T2ZGb2N1c2VkSW1hZ2UoYm9hcmQpO1xuICAgIGNvbnN0IGVsZW1lbnRDb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgIGVsZW1lbnRDb21wb25lbnQuaW1hZ2VHZW5lcmF0b3IuY29tcG9uZW50UmVmIS5pbnN0YW5jZS5pc0ZvY3VzID0gZmFsc2U7XG4gICAgZWxlbWVudENvbXBvbmVudC5pbWFnZUdlbmVyYXRvci5jb21wb25lbnRSZWYhLmluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbn07XG4iXX0=
|
|
@@ -20,10 +20,10 @@ export function getImageForeignRectangle(board, element) {
|
|
|
20
20
|
};
|
|
21
21
|
return rectangle;
|
|
22
22
|
}
|
|
23
|
-
export const isHitImage = (board, element,
|
|
23
|
+
export const isHitImage = (board, element, point) => {
|
|
24
24
|
const imageRectangle = getImageForeignRectangle(board, element);
|
|
25
25
|
const imageOutlineRectangle = RectangleClient.getOutlineRectangle(imageRectangle, -RESIZE_HANDLE_DIAMETER / 2);
|
|
26
|
-
return RectangleClient.
|
|
26
|
+
return RectangleClient.isPointInRectangle(imageOutlineRectangle, point);
|
|
27
27
|
};
|
|
28
28
|
export const getHitImageResizeHandleDirection = (board, element, point) => {
|
|
29
29
|
const imageRectangle = getImageForeignRectangle(board, element);
|
|
@@ -33,4 +33,4 @@ export const getHitImageResizeHandleDirection = (board, element, point) => {
|
|
|
33
33
|
});
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQXFCLEVBQUUsT0FBK0I7SUFDM0YsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRTFELENBQUM7UUFDRyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNuQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNoRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUM7SUFDOUMsTUFBTSxTQUFTLEdBQUc7UUFDZCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQStCLEVBQUUsS0FBWSxFQUFFLEVBQUU7SUFDM0YsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsS0FBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRixNQUFNLHFCQUFxQixHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvRyxPQUFPLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUNqSCxNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQyxLQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sZ0JBQWdCLEdBQUcsNEJBQTRCLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDOUYsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ25ELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0csQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IE5vZGVTcGFjZSB9IGZyb20gJy4uL3NwYWNlL25vZGUtc3BhY2UnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBSRVNJWkVfSEFORExFX0RJQU1FVEVSLCBnZXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWZzIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxJbWFnZURhdGE+KTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBsZXQgeyB4LCB5IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudC5tYW51YWxXaWR0aCB8fCBlbGVtZW50LndpZHRoO1xuXG4gICAgeCA9XG4gICAgICAgIGVsZW1lbnRXaWR0aCA+IGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aFxuICAgICAgICAgICAgPyB4ICsgTm9kZVNwYWNlLmdldFRleHRMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgKGVsZW1lbnRXaWR0aCAtIGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aCkgLyAyXG4gICAgICAgICAgICA6IHggKyBOb2RlU3BhY2UuZ2V0VGV4dExlZnRTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgeSA9IE5vZGVTcGFjZS5nZXRJbWFnZVRvcFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIHk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBlbGVtZW50LmRhdGEuaW1hZ2UhO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG4gICAgcmV0dXJuIHJlY3RhbmdsZTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzSGl0SW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEltYWdlRGF0YT4sIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGltYWdlUmVjdGFuZ2xlID0gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBpbWFnZU91dGxpbmVSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShpbWFnZVJlY3RhbmdsZSwgLVJFU0laRV9IQU5ETEVfRElBTUVURVIgLyAyKTtcbiAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZShpbWFnZU91dGxpbmVSZWN0YW5nbGUsIHBvaW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRJbWFnZVJlc2l6ZUhhbmRsZURpcmVjdGlvbiA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPiwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgaW1hZ2VSZWN0YW5nbGUgPSBnZXRJbWFnZUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHJlc2l6ZUhhbmRsZVJlZnMgPSBnZXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWZzKGltYWdlUmVjdGFuZ2xlLCBSRVNJWkVfSEFORExFX0RJQU1FVEVSKTtcbiAgICBjb25zdCByZXN1bHQgPSByZXNpemVIYW5kbGVSZWZzLmZpbmQocmVzaXplSGFuZGxlUmVmID0+IHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChSZWN0YW5nbGVDbGllbnQudG9SZWN0YW5nbGVDbGllbnQoW3BvaW50LCBwb2ludF0pLCByZXNpemVIYW5kbGVSZWYucmVjdGFuZ2xlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbiJdfQ==
|
package/fesm2022/plait-mind.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ChangeDetectionStrategy, NgZone, Directive, Input, HostListener } from '@angular/core';
|
|
3
|
-
import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, PlaitElement, PlaitNode, Path, isNullOrUndefined, PlaitBoard, distanceBetweenPointAndRectangle, RectangleClient, PlaitPluginKey, getSelectedElements, idCreator, Transforms, clearSelectedElement, addSelectedElement, depthFirstRecursion, getIsRecursionFunc, drawRoundRectangle, drawLinearPath, drawBezierPath, createG, updateForeignObject, getRectangleByElements, NODE_TO_PARENT, createForeignObject, setStrokeLinecap, ACTIVE_STROKE_WIDTH, createText, PlaitPointerType, NODE_TO_INDEX, PlaitChildrenElementComponent, isMainPointer, transformPoint, toPoint,
|
|
3
|
+
import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, PlaitElement, PlaitNode, Path, isNullOrUndefined, PlaitBoard, distanceBetweenPointAndRectangle, RectangleClient, PlaitPluginKey, getSelectedElements, idCreator, Transforms, clearSelectedElement, addSelectedElement, depthFirstRecursion, getIsRecursionFunc, drawRoundRectangle, drawLinearPath, drawBezierPath, createG, updateForeignObject, getRectangleByElements, NODE_TO_PARENT, createForeignObject, setStrokeLinecap, ACTIVE_STROKE_WIDTH, createText, PlaitPointerType, NODE_TO_INDEX, PlaitChildrenElementComponent, isMainPointer, transformPoint, toPoint, getHitElementByPoint, distanceBetweenPointAndPoint, CoreTransforms, BOARD_TO_HOST, BoardTransforms, throttleRAF, removeSelectedElement, PlaitHistoryBoard, hotkeys, setClipboardDataByMedia, getClipboardDataByMedia, ResizeCursorClass, preventTouchMove, PRESS_AND_MOVE_BUFFER, MERGING, setClipboardData, setClipboardDataByText, getDataFromClipboard } from '@plait/core';
|
|
4
4
|
import { MindLayoutType, AbstractNode, isIndentedLayout, isHorizontalLayout, isHorizontalLogicLayout, ConnectingPosition, getNonAbstractChildren, isStandardLayout, isLeftLayout, isRightLayout, isVerticalLogicLayout, isTopLayout, isBottomLayout, getCorrectStartEnd, getAbstractLayout, GlobalLayout } from '@plait/layouts';
|
|
5
5
|
import { PlaitMarkEditor, MarkTypes, DEFAULT_FONT_SIZE, TEXT_DEFAULT_HEIGHT, buildText, getTextSize, TextManage, ExitOrigin, getTextFromClipboard } from '@plait/text';
|
|
6
6
|
import { fromEvent, Subject } from 'rxjs';
|
|
7
|
-
import { RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs, Generator, CommonPluginElement, ImageGenerator, WithTextPluginKey, isDrawingMode, isDndMode, setCreationMode, BoardCreationMode, isExpandHotkey, isTabHotkey, isEnterHotkey, isVirtualKey, isDelete, isSpaceHotkey, MediaKeys, acceptImageTypes, buildImage, ResizeHandle, withResize } from '@plait/common';
|
|
7
|
+
import { RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs, addElementOfFocusedImage, removeElementOfFocusedImage, Generator, CommonPluginElement, ImageGenerator, WithTextPluginKey, isDrawingMode, isDndMode, setCreationMode, BoardCreationMode, isExpandHotkey, isTabHotkey, isEnterHotkey, isVirtualKey, isDelete, isSpaceHotkey, getElementOfFocusedImage, MediaKeys, acceptImageTypes, buildImage, ResizeHandle, withResize } from '@plait/common';
|
|
8
8
|
import { Node as Node$1, Path as Path$1 } from 'slate';
|
|
9
9
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
10
10
|
import { take, filter } from 'rxjs/operators';
|
|
@@ -712,10 +712,10 @@ function getImageForeignRectangle(board, element) {
|
|
|
712
712
|
};
|
|
713
713
|
return rectangle;
|
|
714
714
|
}
|
|
715
|
-
const isHitImage = (board, element,
|
|
715
|
+
const isHitImage = (board, element, point) => {
|
|
716
716
|
const imageRectangle = getImageForeignRectangle(board, element);
|
|
717
717
|
const imageOutlineRectangle = RectangleClient.getOutlineRectangle(imageRectangle, -RESIZE_HANDLE_DIAMETER / 2);
|
|
718
|
-
return RectangleClient.
|
|
718
|
+
return RectangleClient.isPointInRectangle(imageOutlineRectangle, point);
|
|
719
719
|
};
|
|
720
720
|
const getHitImageResizeHandleDirection = (board, element, point) => {
|
|
721
721
|
const imageRectangle = getImageForeignRectangle(board, element);
|
|
@@ -1095,25 +1095,16 @@ const adjustNodeToRoot = (board, node) => {
|
|
|
1095
1095
|
};
|
|
1096
1096
|
};
|
|
1097
1097
|
|
|
1098
|
-
const
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
BOARD_TO_SELECTED_IMAGE_ELEMENT.set(board, element);
|
|
1104
|
-
};
|
|
1105
|
-
const removeSelectedImageElement = (board) => {
|
|
1106
|
-
BOARD_TO_SELECTED_IMAGE_ELEMENT.delete(board);
|
|
1098
|
+
const addImageFocus = (board, element) => {
|
|
1099
|
+
addElementOfFocusedImage(board, element);
|
|
1100
|
+
const elementComponent = PlaitElement.getComponent(element);
|
|
1101
|
+
elementComponent.imageGenerator.componentRef.instance.isFocus = true;
|
|
1102
|
+
elementComponent.imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
1107
1103
|
};
|
|
1108
|
-
const
|
|
1109
|
-
|
|
1110
|
-
addSelectedImageElement(board, element);
|
|
1111
|
-
}
|
|
1112
|
-
else {
|
|
1113
|
-
removeSelectedImageElement(board);
|
|
1114
|
-
}
|
|
1104
|
+
const removeImageFocus = (board, element) => {
|
|
1105
|
+
removeElementOfFocusedImage(board);
|
|
1115
1106
|
const elementComponent = PlaitElement.getComponent(element);
|
|
1116
|
-
elementComponent.imageGenerator.componentRef.instance.isFocus =
|
|
1107
|
+
elementComponent.imageGenerator.componentRef.instance.isFocus = false;
|
|
1117
1108
|
elementComponent.imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
1118
1109
|
};
|
|
1119
1110
|
|
|
@@ -2531,7 +2522,7 @@ const replaceEmoji = (board, element, oldEmoji, newEmoji) => {
|
|
|
2531
2522
|
};
|
|
2532
2523
|
|
|
2533
2524
|
const removeImage = (board, element) => {
|
|
2534
|
-
|
|
2525
|
+
removeImageFocus(board, element);
|
|
2535
2526
|
const newElement = {
|
|
2536
2527
|
data: { ...element.data }
|
|
2537
2528
|
};
|
|
@@ -2814,16 +2805,17 @@ class NodeActiveGenerator extends Generator {
|
|
|
2814
2805
|
}
|
|
2815
2806
|
baseDraw(element, data) {
|
|
2816
2807
|
const activeG = createG();
|
|
2817
|
-
if (AbstractNode.isAbstract(element)) {
|
|
2818
|
-
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element);
|
|
2819
|
-
activeG.append(this.abstractOutlineG);
|
|
2820
|
-
}
|
|
2821
2808
|
const node = MindElement.getNode(element);
|
|
2822
2809
|
const rectangle = getRectangleByNode(node);
|
|
2823
2810
|
const strokeWidth = getStrokeWidthByElement(this.board, element);
|
|
2824
2811
|
const activeStrokeWidth = ACTIVE_STROKE_WIDTH;
|
|
2825
2812
|
const activeRectangle = RectangleClient.inflate(rectangle, activeStrokeWidth);
|
|
2826
2813
|
const strokeG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), activeRectangle.x, activeRectangle.y, activeRectangle.x + activeRectangle.width, activeRectangle.y + activeRectangle.height, { stroke: PRIMARY_COLOR, strokeWidth: activeStrokeWidth, fill: '' }, true, DefaultNodeStyle.shape.rectangleRadius + (activeStrokeWidth + strokeWidth) / 2);
|
|
2814
|
+
if (AbstractNode.isAbstract(element)) {
|
|
2815
|
+
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element);
|
|
2816
|
+
activeG.append(this.abstractOutlineG);
|
|
2817
|
+
strokeG.classList.add('abstract-element');
|
|
2818
|
+
}
|
|
2827
2819
|
activeG.appendChild(strokeG);
|
|
2828
2820
|
return activeG;
|
|
2829
2821
|
}
|
|
@@ -3220,20 +3212,19 @@ const withNodeDnd = (board) => {
|
|
|
3220
3212
|
}
|
|
3221
3213
|
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
3222
3214
|
const selectedElements = getSelectedElements(board);
|
|
3223
|
-
const
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
!
|
|
3228
|
-
!AbstractNode.isAbstract(targetElement)) {
|
|
3215
|
+
const hitElement = getHitElementByPoint(board, point);
|
|
3216
|
+
if (hitElement &&
|
|
3217
|
+
MindElement.isMindElement(board, hitElement) &&
|
|
3218
|
+
!PlaitMind.isMind(hitElement) &&
|
|
3219
|
+
!AbstractNode.isAbstract(hitElement)) {
|
|
3229
3220
|
const targetElements = selectedElements.filter(element => MindElement.isMindElement(board, element) && !element.isRoot && !AbstractNode.isAbstract(element));
|
|
3230
|
-
const isMultiple = selectedElements.length > 0 && selectedElements.includes(
|
|
3221
|
+
const isMultiple = selectedElements.length > 0 && selectedElements.includes(hitElement);
|
|
3231
3222
|
if (isMultiple) {
|
|
3232
3223
|
activeElements = targetElements;
|
|
3233
3224
|
startPoint = point;
|
|
3234
3225
|
}
|
|
3235
3226
|
else {
|
|
3236
|
-
activeElements = [
|
|
3227
|
+
activeElements = [hitElement];
|
|
3237
3228
|
startPoint = point;
|
|
3238
3229
|
}
|
|
3239
3230
|
}
|
|
@@ -3714,35 +3705,33 @@ const withNodeHoverDetect = (board) => {
|
|
|
3714
3705
|
const withNodeImage = (board) => {
|
|
3715
3706
|
const { keydown, pointerDown, globalPointerUp, setFragment, insertFragment, deleteFragment } = board;
|
|
3716
3707
|
board.pointerDown = (event) => {
|
|
3717
|
-
const
|
|
3708
|
+
const elementOfFocusedImage = getElementOfFocusedImage(board);
|
|
3718
3709
|
if (PlaitBoard.isReadonly(board) || !isMainPointer(event) || !PlaitBoard.isPointer(board, PlaitPointerType.selection)) {
|
|
3719
|
-
if (
|
|
3720
|
-
|
|
3710
|
+
if (elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage)) {
|
|
3711
|
+
removeImageFocus(board, elementOfFocusedImage);
|
|
3721
3712
|
}
|
|
3722
3713
|
pointerDown(event);
|
|
3723
3714
|
return;
|
|
3724
3715
|
}
|
|
3725
3716
|
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
3726
|
-
const
|
|
3727
|
-
const
|
|
3728
|
-
|
|
3729
|
-
const hitImage = hasImage > 0 && isHitImage(board, hitImageElements[0], range);
|
|
3730
|
-
if (selectedImageElement && hitImage && hitImageElements[0] === selectedImageElement) {
|
|
3717
|
+
const hitImageElement = getHitElementByPoint(board, point, (value) => MindElement.isMindElement(board, value) && MindElement.hasImage(value));
|
|
3718
|
+
const hitImage = hitImageElement && isHitImage(board, hitImageElement, point);
|
|
3719
|
+
if (elementOfFocusedImage && hitImage && hitImageElement === elementOfFocusedImage) {
|
|
3731
3720
|
temporaryDisableSelection(board);
|
|
3732
3721
|
pointerDown(event);
|
|
3733
3722
|
return;
|
|
3734
3723
|
}
|
|
3735
|
-
if (
|
|
3736
|
-
|
|
3724
|
+
if (elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage)) {
|
|
3725
|
+
removeImageFocus(board, elementOfFocusedImage);
|
|
3737
3726
|
}
|
|
3738
3727
|
if (hitImage) {
|
|
3739
3728
|
temporaryDisableSelection(board);
|
|
3740
|
-
|
|
3729
|
+
addImageFocus(board, hitImageElement);
|
|
3741
3730
|
}
|
|
3742
3731
|
pointerDown(event);
|
|
3743
3732
|
};
|
|
3744
3733
|
board.keydown = (event) => {
|
|
3745
|
-
const selectedImageElement =
|
|
3734
|
+
const selectedImageElement = getElementOfFocusedImage(board);
|
|
3746
3735
|
if (!PlaitBoard.isReadonly(board) && selectedImageElement && (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event))) {
|
|
3747
3736
|
addSelectedElement(board, selectedImageElement);
|
|
3748
3737
|
MindTransforms.removeImage(board, selectedImageElement);
|
|
@@ -3753,16 +3742,16 @@ const withNodeImage = (board) => {
|
|
|
3753
3742
|
board.globalPointerUp = (event) => {
|
|
3754
3743
|
if (PlaitBoard.isFocus(board)) {
|
|
3755
3744
|
const isInBoard = event.target instanceof Node && PlaitBoard.getBoardContainer(board).contains(event.target);
|
|
3756
|
-
const selectedImageElement =
|
|
3745
|
+
const selectedImageElement = getElementOfFocusedImage(board);
|
|
3757
3746
|
// Clear image selection when mouse board outside area
|
|
3758
|
-
if (selectedImageElement && !isInBoard) {
|
|
3759
|
-
|
|
3747
|
+
if (selectedImageElement && MindElement.isMindElement(board, selectedImageElement) && !isInBoard) {
|
|
3748
|
+
removeImageFocus(board, selectedImageElement);
|
|
3760
3749
|
}
|
|
3761
3750
|
}
|
|
3762
3751
|
globalPointerUp(event);
|
|
3763
3752
|
};
|
|
3764
3753
|
board.setFragment = (data, rectangle, type) => {
|
|
3765
|
-
const selectedImageElement =
|
|
3754
|
+
const selectedImageElement = getElementOfFocusedImage(board);
|
|
3766
3755
|
if (selectedImageElement) {
|
|
3767
3756
|
setClipboardDataByMedia(data, selectedImageElement.data.image, MediaKeys.image);
|
|
3768
3757
|
return;
|
|
@@ -3770,7 +3759,7 @@ const withNodeImage = (board) => {
|
|
|
3770
3759
|
setFragment(data, rectangle, type);
|
|
3771
3760
|
};
|
|
3772
3761
|
board.deleteFragment = (data) => {
|
|
3773
|
-
const selectedImageElement =
|
|
3762
|
+
const selectedImageElement = getElementOfFocusedImage(board);
|
|
3774
3763
|
if (selectedImageElement) {
|
|
3775
3764
|
MindTransforms.removeImage(board, selectedImageElement);
|
|
3776
3765
|
}
|
|
@@ -3778,11 +3767,11 @@ const withNodeImage = (board) => {
|
|
|
3778
3767
|
};
|
|
3779
3768
|
board.insertFragment = (data, targetPoint) => {
|
|
3780
3769
|
const selectedElements = getSelectedElements(board);
|
|
3781
|
-
const isSelectedImage = !!
|
|
3770
|
+
const isSelectedImage = !!getElementOfFocusedImage(board);
|
|
3782
3771
|
const isSingleSelection = selectedElements.length === 1 && MindElement.isMindElement(board, selectedElements[0]);
|
|
3783
3772
|
if (data?.files.length && (isSingleSelection || isSelectedImage)) {
|
|
3784
3773
|
const acceptImageArray = acceptImageTypes.map(type => 'image/' + type);
|
|
3785
|
-
const selectedElement = (selectedElements[0] ||
|
|
3774
|
+
const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
|
|
3786
3775
|
if (acceptImageArray.includes(data?.files[0].type)) {
|
|
3787
3776
|
const imageFile = data.files[0];
|
|
3788
3777
|
buildImage(board, imageFile, DEFAULT_MIND_IMAGE_WIDTH, imageItem => {
|
|
@@ -3793,7 +3782,7 @@ const withNodeImage = (board) => {
|
|
|
3793
3782
|
}
|
|
3794
3783
|
const imageItem = getClipboardDataByMedia(data, MediaKeys.image);
|
|
3795
3784
|
if (imageItem && (isSingleSelection || isSelectedImage)) {
|
|
3796
|
-
const selectedElement = (selectedElements[0] ||
|
|
3785
|
+
const selectedElement = (selectedElements[0] || getElementOfFocusedImage(board));
|
|
3797
3786
|
MindTransforms.setImage(board, selectedElement, imageItem);
|
|
3798
3787
|
return;
|
|
3799
3788
|
}
|
|
@@ -3935,7 +3924,8 @@ const withNodeImageResize = (board) => {
|
|
|
3935
3924
|
return true;
|
|
3936
3925
|
},
|
|
3937
3926
|
detect: (point) => {
|
|
3938
|
-
const
|
|
3927
|
+
const elementOfFocusedImage = getElementOfFocusedImage(board);
|
|
3928
|
+
const selectedMindElement = elementOfFocusedImage && MindElement.isMindElement(board, elementOfFocusedImage) ? elementOfFocusedImage : undefined;
|
|
3939
3929
|
if (selectedMindElement) {
|
|
3940
3930
|
const result = getHitImageResizeHandleDirection(board, selectedMindElement, point);
|
|
3941
3931
|
if (result) {
|
|
@@ -3964,7 +3954,7 @@ const withNodeImageResize = (board) => {
|
|
|
3964
3954
|
const height = originHeight / ratio;
|
|
3965
3955
|
const imageItem = { ...resizeRef.element.data.image, width, height };
|
|
3966
3956
|
MindTransforms.setImage(board, PlaitNode.get(board, resizeRef.path), imageItem);
|
|
3967
|
-
|
|
3957
|
+
addElementOfFocusedImage(board, PlaitNode.get(board, resizeRef.path));
|
|
3968
3958
|
}
|
|
3969
3959
|
};
|
|
3970
3960
|
withResize(board, options);
|
|
@@ -4155,7 +4145,7 @@ const getNextSelectedElement = (board, firstLevelElements) => {
|
|
|
4155
4145
|
|
|
4156
4146
|
const withMind = (baseBoard) => {
|
|
4157
4147
|
const board = baseBoard;
|
|
4158
|
-
const { drawElement, dblclick,
|
|
4148
|
+
const { drawElement, dblclick, isRectangleHit, isHit, getRectangle, isMovable, isRecursion, isAlign, isImageBindingAllowed, } = board;
|
|
4159
4149
|
board.drawElement = (context) => {
|
|
4160
4150
|
if (PlaitMind.isMind(context.element)) {
|
|
4161
4151
|
return PlaitMindComponent;
|
|
@@ -4185,13 +4175,21 @@ const withMind = (baseBoard) => {
|
|
|
4185
4175
|
}
|
|
4186
4176
|
return isRecursion(element);
|
|
4187
4177
|
};
|
|
4188
|
-
board.
|
|
4178
|
+
board.isRectangleHit = (element, selection) => {
|
|
4179
|
+
if (MindElement.isMindElement(board, element)) {
|
|
4180
|
+
const client = getRectangleByNode(MindElement.getNode(element));
|
|
4181
|
+
const isHit = RectangleClient.isHit(RectangleClient.toRectangleClient([selection.anchor, selection.focus]), client);
|
|
4182
|
+
return isHit;
|
|
4183
|
+
}
|
|
4184
|
+
return isRectangleHit(element, selection);
|
|
4185
|
+
};
|
|
4186
|
+
board.isHit = (element, point) => {
|
|
4189
4187
|
if (MindElement.isMindElement(board, element)) {
|
|
4190
4188
|
const client = getRectangleByNode(MindElement.getNode(element));
|
|
4191
|
-
const isHit = RectangleClient.isHit(RectangleClient.toRectangleClient([
|
|
4189
|
+
const isHit = RectangleClient.isHit(RectangleClient.toRectangleClient([point, point]), client);
|
|
4192
4190
|
return isHit;
|
|
4193
4191
|
}
|
|
4194
|
-
return
|
|
4192
|
+
return isHit(element, point);
|
|
4195
4193
|
};
|
|
4196
4194
|
board.isMovable = element => {
|
|
4197
4195
|
if (PlaitMind.isMind(element) && element.isRoot) {
|
|
@@ -4199,6 +4197,12 @@ const withMind = (baseBoard) => {
|
|
|
4199
4197
|
}
|
|
4200
4198
|
return isMovable(element);
|
|
4201
4199
|
};
|
|
4200
|
+
board.isImageBindingAllowed = element => {
|
|
4201
|
+
if (MindElement.isMindElement(board, element)) {
|
|
4202
|
+
return true;
|
|
4203
|
+
}
|
|
4204
|
+
return isImageBindingAllowed(element);
|
|
4205
|
+
};
|
|
4202
4206
|
board.isAlign = (element) => {
|
|
4203
4207
|
if (PlaitMind.isMind(element) && element.isRoot) {
|
|
4204
4208
|
return true;
|
|
@@ -4279,5 +4283,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4279
4283
|
* Generated bundle index. Do not edit.
|
|
4280
4284
|
*/
|
|
4281
4285
|
|
|
4282
|
-
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BRANCH_WIDTH, BaseDrawer, BranchShape, DEFAULT_FONT_FAMILY, DEFAULT_MIND_IMAGE_WIDTH, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, IS_DRAGGING, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms, NodeSpace, NodeTopicThreshold, PRIMARY_COLOR, PlaitMind, PlaitMindComponent, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, ROOT_TOPIC_FONT_SIZE, ROOT_TOPIC_HEIGHT, ROOT_TOPIC_WIDTH, STROKE_WIDTH, TOPIC_COLOR, TOPIC_DEFAULT_MAX_WORD_COUNT, TOPIC_FONT_SIZE, TRANSPARENT, WithMindPluginKey, addActiveOnDragOrigin,
|
|
4286
|
+
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BRANCH_WIDTH, BaseDrawer, BranchShape, DEFAULT_FONT_FAMILY, DEFAULT_MIND_IMAGE_WIDTH, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, IS_DRAGGING, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms, NodeSpace, NodeTopicThreshold, PRIMARY_COLOR, PlaitMind, PlaitMindComponent, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, ROOT_TOPIC_FONT_SIZE, ROOT_TOPIC_HEIGHT, ROOT_TOPIC_WIDTH, STROKE_WIDTH, TOPIC_COLOR, TOPIC_DEFAULT_MAX_WORD_COUNT, TOPIC_FONT_SIZE, TRANSPARENT, WithMindPluginKey, addActiveOnDragOrigin, addImageFocus, adjustAbstractToNode, adjustNodeToRoot, adjustRootToNode, canSetAbstract, copyNewNode, correctLayoutByDirection, createDefaultMind, createEmptyMind, createMindElement, deleteElementHandleAbstract, deleteElementsHandleRightNodeCount, detectDropTarget, directionCorrector, directionDetector, divideElementByParent, drawFakeDragNode, drawFakeDropNode, editTopic, extractNodesText, findLastChild, findLocationLeftIndex, getAbstractBranchColor, getAbstractBranchWidth, getAbstractHandleRectangle, getAllowedDirection, getAvailableSubLayoutsByLayoutDirections, getBehindAbstracts, getBranchColorByMindElement, getBranchDirectionsByLayouts, getBranchShapeByMindElement, getBranchWidthByMindElement, getChildrenCount, getCorrespondingAbstract, getDefaultBranchColor, getDefaultBranchColorByIndex, getDefaultLayout, getEmojiFontSize, getEmojiForeignRectangle, getEmojiRectangle, getEmojisWidthHeight, getFillByElement, getFirstLevelElement, getFontSizeBySlateElement, getHitAbstractHandle, getHitImageResizeHandleDirection, getImageForeignRectangle, getInCorrectLayoutDirection, getLayoutDirection$1 as getLayoutDirection, getLayoutOptions, getLayoutReverseDirection, getLocationScope, getMindThemeColor, getNewNodeHeight, getNextBranchColor, getNodeDefaultFontSize, getOverallAbstracts, getPathByDropTarget, getRectangleByElement, getRectangleByNode, getRectangleByResizingLocation, getRelativeStartEndByAbstractRef, getRootLayout, getSelectedMindElements, getShapeByElement, getStrokeByMindElement, getStrokeWidthByElement, getTopicRectangleByElement, getTopicRectangleByNode, getValidAbstractRefs, handleTouchedAbstract, hasAfterDraw, hasPreviousOrNextOfDropPath, insertElementHandleAbstract, insertElementHandleRightNodeCount, insertMindElement, isChildElement, isChildOfAbstract, isChildRight, isChildUp, isCorrectLayout, isDragging, isDropStandardRight, isHitEmojis, isHitImage, isHitMindElement, isInRightBranchOfStandardLayout, isMixedLayout, isSetAbstract, isValidTarget, removeActiveOnDragOrigin, removeImageFocus, separateChildren, setIsDragging, temporaryDisableSelection, withMind, withMindExtend };
|
|
4283
4287
|
//# sourceMappingURL=plait-mind.mjs.map
|