@plait/core 0.51.2 → 0.51.4
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/board/board.component.d.ts +1 -1
- package/esm2022/board/board.component.mjs +7 -6
- package/esm2022/core/children/children.component.mjs +5 -5
- package/esm2022/core/element/context-change.mjs +1 -1
- package/esm2022/core/element/element.component.mjs +5 -5
- package/esm2022/core/element/plugin-element.mjs +5 -5
- package/esm2022/core/island/island-base.component.mjs +9 -9
- package/esm2022/interfaces/board.mjs +1 -1
- package/esm2022/interfaces/element.mjs +1 -1
- package/esm2022/interfaces/group.mjs +6 -0
- package/esm2022/interfaces/index.mjs +2 -1
- package/esm2022/interfaces/node.mjs +1 -1
- package/esm2022/interfaces/operation.mjs +1 -1
- package/esm2022/interfaces/path-ref.mjs +1 -1
- package/esm2022/interfaces/path.mjs +1 -1
- package/esm2022/interfaces/rectangle-client.mjs +1 -1
- package/esm2022/interfaces/selection.mjs +1 -1
- package/esm2022/plugins/create-board.mjs +1 -1
- package/esm2022/plugins/with-board.mjs +1 -1
- package/esm2022/plugins/with-group.mjs +27 -0
- package/esm2022/plugins/with-hand.mjs +1 -1
- package/esm2022/plugins/with-history.mjs +1 -1
- package/esm2022/plugins/with-hotkey.mjs +1 -1
- package/esm2022/plugins/with-moving.mjs +3 -3
- package/esm2022/plugins/with-selection.mjs +96 -69
- package/esm2022/plugins/with-viewport.mjs +1 -1
- package/esm2022/services/image-context.service.mjs +4 -4
- package/esm2022/testing/fake-events/event-objects.mjs +4 -4
- package/esm2022/transforms/board.mjs +1 -1
- package/esm2022/transforms/general.mjs +1 -1
- package/esm2022/transforms/node.mjs +1 -1
- package/esm2022/transforms/selection.mjs +2 -2
- package/esm2022/utils/angle.mjs +36 -0
- package/esm2022/utils/board.mjs +1 -1
- package/esm2022/utils/clipboard/clipboard.mjs +1 -1
- package/esm2022/utils/clipboard/common.mjs +1 -1
- package/esm2022/utils/clipboard/data-transfer.mjs +1 -1
- package/esm2022/utils/clipboard/navigator-clipboard.mjs +1 -1
- package/esm2022/utils/common.mjs +1 -1
- package/esm2022/utils/dom/common.mjs +8 -4
- package/esm2022/utils/dom/foreign.mjs +1 -1
- package/esm2022/utils/drawing/line.mjs +1 -1
- package/esm2022/utils/drawing/rectangle.mjs +1 -1
- package/esm2022/utils/element.mjs +17 -5
- package/esm2022/utils/group.mjs +209 -0
- package/esm2022/utils/history.mjs +1 -1
- package/esm2022/utils/hotkeys.mjs +1 -1
- package/esm2022/utils/id-creator.mjs +1 -1
- package/esm2022/utils/index.mjs +4 -1
- package/esm2022/utils/math.mjs +23 -8
- package/esm2022/utils/reaction-manager.mjs +1 -1
- package/esm2022/utils/selected-element.mjs +1 -1
- package/esm2022/utils/selection.mjs +62 -0
- package/esm2022/utils/to-image.mjs +1 -1
- package/esm2022/utils/touch.mjs +1 -1
- package/esm2022/utils/tree.mjs +1 -1
- package/esm2022/utils/viewport.mjs +1 -1
- package/fesm2022/plait-core.mjs +1134 -756
- package/fesm2022/plait-core.mjs.map +1 -1
- package/interfaces/element.d.ts +1 -0
- package/interfaces/group.d.ts +7 -0
- package/interfaces/index.d.ts +1 -0
- package/package.json +1 -1
- package/plugins/with-group.d.ts +2 -0
- package/plugins/with-selection.d.ts +0 -13
- package/utils/angle.d.ts +5 -0
- package/utils/dom/common.d.ts +2 -2
- package/utils/group.d.ts +22 -0
- package/utils/index.d.ts +3 -0
- package/utils/math.d.ts +9 -1
- package/utils/selection.d.ts +13 -0
package/interfaces/element.d.ts
CHANGED
package/interfaces/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
import { PlaitBoard } from '../interfaces/board';
|
|
2
|
-
import { PlaitElement } from '../interfaces';
|
|
3
2
|
import { PlaitPluginOptions } from './with-options';
|
|
4
3
|
export interface WithPluginOptions extends PlaitPluginOptions {
|
|
5
4
|
isMultiple: boolean;
|
|
6
5
|
isDisabledSelect: boolean;
|
|
7
6
|
}
|
|
8
7
|
export declare function withSelection(board: PlaitBoard): PlaitBoard;
|
|
9
|
-
export declare function isHandleSelection(board: PlaitBoard): boolean;
|
|
10
|
-
export declare function isSetSelectionOperation(board: PlaitBoard): boolean;
|
|
11
|
-
export declare function getTemporaryElements(board: PlaitBoard): PlaitElement[] | undefined;
|
|
12
|
-
export declare function getTemporaryRef(board: PlaitBoard): {
|
|
13
|
-
elements: PlaitElement[];
|
|
14
|
-
timeoutId: any;
|
|
15
|
-
} | undefined;
|
|
16
|
-
export declare function deleteTemporaryElements(board: PlaitBoard): void;
|
|
17
|
-
export declare function isSelectionMoving(board: PlaitBoard): boolean;
|
|
18
|
-
export declare function setSelectionMoving(board: PlaitBoard): void;
|
|
19
|
-
export declare function clearSelectionMoving(board: PlaitBoard): void;
|
|
20
|
-
export declare function createSelectionRectangleG(board: PlaitBoard): SVGGElement | null;
|
package/utils/angle.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlaitElement, Point, RectangleClient } from '../interfaces';
|
|
2
|
+
export declare const rotatePoints: (points: Point[], centerPoint: Point, angle: number) => Point[];
|
|
3
|
+
export declare const getSelectionAngle: (elements: PlaitElement[]) => any;
|
|
4
|
+
export declare const hasSameAngle: (elements: PlaitElement[]) => boolean;
|
|
5
|
+
export declare const getRotatedBoundingRectangle: (rectanglesCornerPoints: [Point, Point, Point, Point][], angle: number) => RectangleClient;
|
package/utils/dom/common.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Options } from 'roughjs/bin/core';
|
|
2
|
-
import { RectangleClient } from '../../interfaces';
|
|
2
|
+
import { Point, RectangleClient } from '../../interfaces';
|
|
3
3
|
export declare const NS = "http://www.w3.org/2000/svg";
|
|
4
4
|
export declare function createG(): SVGGElement;
|
|
5
5
|
export declare function createPath(): SVGPathElement;
|
|
6
6
|
export declare function createRect(rectangle: RectangleClient, options?: Options): SVGRectElement;
|
|
7
7
|
export declare const setStrokeLinecap: (g: SVGGElement, value: 'round' | 'square') => void;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const setAngleForG: (g: SVGGElement, centerPoint: Point, angle: number) => void;
|
|
9
9
|
export declare const setPathStrokeLinecap: (g: SVGGElement, value: 'round' | 'square') => void;
|
|
10
10
|
export declare function createMask(): SVGMaskElement;
|
|
11
11
|
export declare function createSVG(): SVGSVGElement;
|
package/utils/group.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PlaitBoard, PlaitElement } from '../interfaces';
|
|
2
|
+
import { PlaitGroup } from '../interfaces/group';
|
|
3
|
+
export declare const getElementsInGroup: (board: PlaitBoard, group: PlaitGroup, recursion?: boolean, includeGroup?: boolean) => PlaitElement[];
|
|
4
|
+
export declare const getRectangleByGroup: (board: PlaitBoard, group: PlaitGroup, recursion?: boolean) => import("../interfaces").RectangleClient;
|
|
5
|
+
export declare const getGroupByElement: (board: PlaitBoard, element: PlaitElement, recursion?: boolean) => PlaitGroup | PlaitGroup[] | null;
|
|
6
|
+
export declare const getHighestGroup: (board: PlaitBoard, element: PlaitElement) => PlaitGroup | null;
|
|
7
|
+
export declare const getElementsInGroupByElement: (board: PlaitBoard, element: PlaitElement) => PlaitElement[];
|
|
8
|
+
export declare const isSelectedElementOrGroup: (board: PlaitBoard, element: PlaitElement) => boolean;
|
|
9
|
+
export declare const isSelectedAllElementsInGroup: (board: PlaitBoard, group: PlaitGroup) => boolean;
|
|
10
|
+
export declare const getSelectedGroups: (board: PlaitBoard, groups: PlaitGroup[]) => PlaitGroup[];
|
|
11
|
+
export declare const getHighestSelectedGroup: (board: PlaitBoard, element: PlaitElement) => PlaitGroup | null;
|
|
12
|
+
export declare const getHighestSelectedGroups: (board: PlaitBoard) => PlaitGroup[];
|
|
13
|
+
export declare const getSelectedIsolatedElements: (board: PlaitBoard) => PlaitElement[];
|
|
14
|
+
export declare const getHighestSelectedElements: (board: PlaitBoard) => PlaitElement[];
|
|
15
|
+
export declare const createGroupRectangleG: (board: PlaitBoard, elements: PlaitElement[]) => SVGGElement | null;
|
|
16
|
+
export declare const createGroup: () => PlaitGroup;
|
|
17
|
+
export declare const nonGroupInHighestSelectedElements: (elements: PlaitElement[]) => boolean;
|
|
18
|
+
export declare const hasSelectedElementsInSameGroup: (elements: PlaitElement[]) => boolean;
|
|
19
|
+
export declare const canAddGroup: (highestSelectedElements: PlaitElement[]) => boolean;
|
|
20
|
+
export declare const addGroup: (board: PlaitBoard) => void;
|
|
21
|
+
export declare const canRemoveGroup: (board: PlaitBoard, selectedGroups: PlaitGroup[]) => boolean;
|
|
22
|
+
export declare const removeGroup: (board: PlaitBoard) => void;
|
package/utils/index.d.ts
CHANGED
package/utils/math.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare function rotate(x1: number, y1: number, x2: number, y2: number, a
|
|
|
8
8
|
export declare function distanceBetweenPointAndPoint(x1: number, y1: number, x2: number, y2: number): number;
|
|
9
9
|
export declare function distanceBetweenPointAndRectangle(x: number, y: number, rect: RectangleClient): number;
|
|
10
10
|
export declare const isLineHitLine: (a: Point, b: Point, c: Point, d: Point) => boolean;
|
|
11
|
-
export declare const isPolylineHitRectangle: (points: Point[], rectangle: RectangleClient) => boolean;
|
|
11
|
+
export declare const isPolylineHitRectangle: (points: Point[], rectangle: RectangleClient, isClose?: boolean) => boolean;
|
|
12
12
|
export declare const isPointInPolygon: (point: Point, points: Point[]) => boolean;
|
|
13
13
|
export declare const isPointInEllipse: (point: Point, center: Point, rx: number, ry: number, angle?: number) => boolean;
|
|
14
14
|
export declare const isPointInRoundRectangle: (point: Point, rectangle: RectangleClient, radius: number, angle?: number) => boolean;
|
|
@@ -27,3 +27,11 @@ export declare function getVectorFromPointAndSlope(x: number, y: number, slope:
|
|
|
27
27
|
*/
|
|
28
28
|
export declare function toDomPrecision(v: number): number;
|
|
29
29
|
export declare function toFixed(v: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* Whether two numbers numbers a and b are approximately equal.
|
|
32
|
+
*
|
|
33
|
+
* @param a - The first point.
|
|
34
|
+
* @param b - The second point.
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export declare function approximately(a: number, b: number, precision?: number): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PlaitBoard } from '../interfaces';
|
|
2
|
+
export declare function isSelectionMoving(board: PlaitBoard): boolean;
|
|
3
|
+
export declare function setSelectionMoving(board: PlaitBoard): void;
|
|
4
|
+
export declare function clearSelectionMoving(board: PlaitBoard): void;
|
|
5
|
+
export declare function isHandleSelection(board: PlaitBoard): boolean;
|
|
6
|
+
export declare function isSetSelectionOperation(board: PlaitBoard): boolean;
|
|
7
|
+
export declare function getTemporaryElements(board: PlaitBoard): import("../interfaces").PlaitElement[] | undefined;
|
|
8
|
+
export declare function getTemporaryRef(board: PlaitBoard): {
|
|
9
|
+
elements: import("../interfaces").PlaitElement[];
|
|
10
|
+
timeoutId: any;
|
|
11
|
+
} | undefined;
|
|
12
|
+
export declare function deleteTemporaryElements(board: PlaitBoard): void;
|
|
13
|
+
export declare function createSelectionRectangleG(board: PlaitBoard): SVGGElement | null;
|