@plait/mind 0.82.0-next.0 → 0.83.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/constants/default.d.ts +8 -5
- package/fesm2022/plait-mind.mjs +357 -319
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/generators/node-more.generator.d.ts +30 -0
- package/mind-node.component.d.ts +3 -7
- package/package.json +1 -1
- package/plugins/with-node-more.d.ts +10 -0
- package/styles/styles.scss +16 -56
- package/utils/clipboard.d.ts +1 -1
- package/utils/common.d.ts +1 -1
- package/utils/point-placement.d.ts +0 -3
- package/generators/node-collapse.generator.d.ts +0 -8
- package/generators/node-plus.generator.d.ts +0 -7
- package/plugins/with-node-hover-hit-test.d.ts +0 -2
- package/utils/node-hover/extend.d.ts +0 -9
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { PlaitBoard, Point } from '@plait/core';
|
|
2
|
+
import { MindElement, BaseData, LayoutDirection } from '../interfaces';
|
|
3
|
+
import { Generator } from '@plait/common';
|
|
4
|
+
export interface NodeMoreExtraData {
|
|
5
|
+
isSelected: boolean;
|
|
6
|
+
isHovered?: boolean;
|
|
7
|
+
isHoveredCollapseArea?: boolean;
|
|
8
|
+
isHoveredExpandArea?: boolean;
|
|
9
|
+
isHoveredAddArea?: boolean;
|
|
10
|
+
isShowCollapseAnimation?: boolean;
|
|
11
|
+
isShowAddAnimation?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class NodeMoreGenerator extends Generator<MindElement, NodeMoreExtraData> {
|
|
14
|
+
static key: string;
|
|
15
|
+
collapseOrAddG: SVGGElement | undefined | null;
|
|
16
|
+
expandG: SVGGElement | undefined | null;
|
|
17
|
+
canDraw(element: MindElement<BaseData>, extraData: NodeMoreExtraData): boolean;
|
|
18
|
+
draw(element: MindElement<BaseData>, extraData: NodeMoreExtraData): SVGGElement;
|
|
19
|
+
toggleCollapseOrAdd(center: Point, addCenter: Point | null, stroke: string, parentG: SVGGElement, isShowCollapse: boolean, isShowAdd: boolean, isHoveredAddArea: boolean, isShowCollapseAnimation: boolean, isShowAddAnimation: boolean): void;
|
|
20
|
+
toggleExpandBadge(element: MindElement, moreStartAndEnd: [Point, Point], center: Point, stroke: string, parentG: SVGGElement, isCollapsed: boolean, isHoveredExpandIcon: boolean): void;
|
|
21
|
+
}
|
|
22
|
+
export declare const getCollapseAndAddCenterPoint: (board: PlaitBoard, element: MindElement) => {
|
|
23
|
+
collapseCenter: Point;
|
|
24
|
+
addCenter: Point;
|
|
25
|
+
};
|
|
26
|
+
export declare const getAddCenterByCollapseOrExpandCenter: (target: MindElement, collapseOrExpandCenter: Point, layoutDirection: LayoutDirection) => Point;
|
|
27
|
+
export declare const getNodeMoreLayoutDirection: (board: PlaitBoard, element: MindElement) => LayoutDirection;
|
|
28
|
+
export declare const getMoreStartAndEnd: (board: PlaitBoard, element: MindElement, linkLineDirection: LayoutDirection) => [Point, Point];
|
|
29
|
+
export declare const isLastSelectedMindElement: (board: PlaitBoard, element: MindElement) => boolean;
|
|
30
|
+
export declare const canHandleNodeMore: (board: PlaitBoard) => boolean;
|
package/mind-node.component.d.ts
CHANGED
|
@@ -3,26 +3,23 @@ import { RoughSVG } from 'roughjs/bin/svg';
|
|
|
3
3
|
import { MindElement } from './interfaces/element';
|
|
4
4
|
import { MindNode } from './interfaces/node';
|
|
5
5
|
import { NodeEmojisGenerator } from './generators/node-emojis.generator';
|
|
6
|
-
import { NodePlusGenerator } from './generators/node-plus.generator';
|
|
7
6
|
import { PlaitMindBoard } from './plugins/with-mind.board';
|
|
8
7
|
import { NodeActiveGenerator } from './generators/node-active.generator';
|
|
9
|
-
import { CollapseGenerator } from './generators/node-collapse.generator';
|
|
10
8
|
import { CommonElementFlavour, ImageGenerator, TextManage } from '@plait/common';
|
|
11
9
|
import { NodeShapeGenerator } from './generators/node-shape.generator';
|
|
12
10
|
import { ImageData } from './interfaces';
|
|
11
|
+
import { NodeMoreGenerator } from './generators/node-more.generator';
|
|
13
12
|
export declare class MindNodeComponent extends CommonElementFlavour<MindElement, PlaitMindBoard> implements OnContextChanged<MindElement, PlaitMindBoard> {
|
|
14
13
|
roughSVG: RoughSVG;
|
|
15
14
|
node: MindNode;
|
|
16
15
|
index: number;
|
|
17
16
|
shapeG: SVGGElement | null;
|
|
18
|
-
|
|
19
|
-
extendG?: SVGGElement;
|
|
17
|
+
linkLineG?: SVGGElement;
|
|
20
18
|
nodeEmojisGenerator: NodeEmojisGenerator;
|
|
21
19
|
nodeShapeGenerator: NodeShapeGenerator;
|
|
22
|
-
nodePlusGenerator: NodePlusGenerator;
|
|
23
20
|
imageGenerator: ImageGenerator<MindElement<ImageData>>;
|
|
24
21
|
activeGenerator: NodeActiveGenerator;
|
|
25
|
-
|
|
22
|
+
nodeMoreGenerator: NodeMoreGenerator;
|
|
26
23
|
get textManage(): TextManage;
|
|
27
24
|
constructor();
|
|
28
25
|
initializeGenerator(): void;
|
|
@@ -30,7 +27,6 @@ export declare class MindNodeComponent extends CommonElementFlavour<MindElement,
|
|
|
30
27
|
onContextChanged(value: PlaitPluginElementContext<MindElement, PlaitMindBoard>, previous: PlaitPluginElementContext<MindElement, PlaitMindBoard>): void;
|
|
31
28
|
drawEmojis(): void;
|
|
32
29
|
drawLink(): void;
|
|
33
|
-
drawExtend(): void;
|
|
34
30
|
drawTopic(): void;
|
|
35
31
|
updateTopic(): void;
|
|
36
32
|
trackBy: (index: number, node: MindNode) => string;
|
package/package.json
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../interfaces';
|
|
3
|
+
export interface NodeMoreRef {
|
|
4
|
+
target: MindElement;
|
|
5
|
+
isHovered: boolean;
|
|
6
|
+
isHoveredCollapseArea: boolean;
|
|
7
|
+
isHoveredExpandArea: boolean;
|
|
8
|
+
isHoveredAddArea: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const withNodeMore: (board: PlaitBoard) => PlaitBoard;
|
package/styles/styles.scss
CHANGED
|
@@ -19,50 +19,29 @@ $primary: #4e8afa;
|
|
|
19
19
|
.slate-editable-container {
|
|
20
20
|
min-width: 5px;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
cursor:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
.collapsed {
|
|
29
|
-
.extend {
|
|
30
|
-
opacity: 1;
|
|
22
|
+
.collapse-button, .add-button {
|
|
23
|
+
transform-origin: center center;
|
|
24
|
+
transform-box: fill-box;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
&.animated {
|
|
27
|
+
animation: scale-in 0.15s ease-out forwards;
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
.dragging-node {
|
|
35
|
-
opacity: 0.6;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
&.focused:not(.selection-moving):not(.element-moving):not(.abstract-resizing-horizontal):not(.abstract-resizing-vertical):not(.pointer-mind):not(.mind-node-dragging):not(.mind-node-resizing) {
|
|
39
|
-
.extend {
|
|
30
|
+
.expanded-button {
|
|
40
31
|
cursor: pointer;
|
|
41
|
-
&:hover {
|
|
42
|
-
opacity: 1;
|
|
43
|
-
}
|
|
44
32
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
33
|
+
|
|
34
|
+
@keyframes scale-in {
|
|
35
|
+
from {
|
|
36
|
+
transform: scale(0);
|
|
37
|
+
}
|
|
38
|
+
to {
|
|
39
|
+
transform: scale(1);
|
|
51
40
|
}
|
|
52
41
|
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
&[class*='-resizing'] {
|
|
56
|
-
:not(.collapsed) > .extend {
|
|
57
|
-
display: none;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
42
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
:not(.collapsed) > .extend {
|
|
64
|
-
display: none;
|
|
65
|
-
}
|
|
43
|
+
.dragging-node {
|
|
44
|
+
opacity: 0.6;
|
|
66
45
|
}
|
|
67
46
|
}
|
|
68
47
|
|
|
@@ -70,14 +49,6 @@ $primary: #4e8afa;
|
|
|
70
49
|
.board-host-svg {
|
|
71
50
|
cursor: grab;
|
|
72
51
|
}
|
|
73
|
-
.collapsed {
|
|
74
|
-
.extend:hover {
|
|
75
|
-
cursor: grab;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
:not(.collapsed) > .extend {
|
|
79
|
-
display: none;
|
|
80
|
-
}
|
|
81
52
|
}
|
|
82
53
|
|
|
83
54
|
&.pointer-mind {
|
|
@@ -87,17 +58,6 @@ $primary: #4e8afa;
|
|
|
87
58
|
}
|
|
88
59
|
|
|
89
60
|
&.readonly {
|
|
90
|
-
.collapsed {
|
|
91
|
-
.extend:hover {
|
|
92
|
-
cursor: pointer;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
:not(.collapsed) > .extend {
|
|
96
|
-
display: block;
|
|
97
|
-
.plus {
|
|
98
|
-
display: none;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
61
|
.mind-node-image {
|
|
102
62
|
cursor: zoom-in;
|
|
103
63
|
}
|
package/utils/clipboard.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { PlaitMindBoard } from '../plugins/with-mind.board';
|
|
|
5
5
|
export declare const buildClipboardData: (board: PlaitBoard, selectedElements: MindElement[], startPoint: Point) => MindElement<import("../interfaces").BaseData>[];
|
|
6
6
|
export declare const insertClipboardData: (board: PlaitMindBoard, elements: PlaitElement[], targetPoint: Point, operationType?: WritableClipboardOperationType) => void;
|
|
7
7
|
export declare const insertClipboardText: (board: PlaitMindBoard, targetParent: PlaitElement, text: string | Element) => void;
|
|
8
|
-
export declare const getTopicSizeByElement: (element: MindElement, parentElement?: MindElement) => {
|
|
8
|
+
export declare const getTopicSizeByElement: (board: PlaitBoard, element: MindElement, parentElement?: MindElement) => {
|
|
9
9
|
width: number;
|
|
10
10
|
height: number;
|
|
11
11
|
};
|
package/utils/common.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export declare const MIND_CENTRAL_TEXT = "\u4E2D\u5FC3\u4E3B\u9898";
|
|
|
4
4
|
export declare const ABSTRACT_NODE_TEXT = "\u6982\u8981";
|
|
5
5
|
export declare const getDefaultMindNameText: (board: PlaitBoard) => string;
|
|
6
6
|
export declare const getAbstractNodeText: (board: PlaitBoard) => string;
|
|
7
|
-
export declare const getTopicSize: (isRoot: boolean, isBranch: boolean, topic: ParagraphElement, manualWidth?: number) => {
|
|
7
|
+
export declare const getTopicSize: (board: PlaitBoard | null, isRoot: boolean, isBranch: boolean, topic: ParagraphElement, manualWidth?: number) => {
|
|
8
8
|
width: number;
|
|
9
9
|
height: number;
|
|
10
10
|
};
|
|
@@ -7,9 +7,6 @@ export interface PlacementRef {
|
|
|
7
7
|
placement: PointPlacement;
|
|
8
8
|
client: RectangleClient;
|
|
9
9
|
}
|
|
10
|
-
export declare const getXDistanceBetweenPoint: (point1: Point, point2: Point, isHorizontalLayout: boolean) => number;
|
|
11
10
|
export declare const getYDistanceBetweenPoint: (point1: Point, point2: Point, isHorizontalLayout: boolean) => void;
|
|
12
11
|
export declare const getLayoutDirection: (node: MindNode, isHorizontal: boolean) => LayoutDirection;
|
|
13
|
-
export declare const moveXOfPoint: (point: Point, distance: number, direction?: LayoutDirection) => Point;
|
|
14
|
-
export declare const moveYOfPoint: (point: Point, distance: number, direction?: LayoutDirection) => Point;
|
|
15
12
|
export declare const transformPlacement: (placement: PointPlacement, direction: LayoutDirection) => void;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { MindElement, BaseData } from '../interfaces';
|
|
2
|
-
import { AfterDraw, Generator } from '@plait/common';
|
|
3
|
-
export declare class CollapseGenerator extends Generator<MindElement> implements AfterDraw {
|
|
4
|
-
canDraw(element: MindElement<BaseData>): boolean;
|
|
5
|
-
draw(element: MindElement<BaseData>): SVGGElement;
|
|
6
|
-
afterDraw(element: MindElement): void;
|
|
7
|
-
private getArrowPoints;
|
|
8
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { MindElement, BaseData } from '../interfaces';
|
|
2
|
-
import { AfterDraw, Generator } from '@plait/common';
|
|
3
|
-
export declare class NodePlusGenerator extends Generator<MindElement> implements AfterDraw {
|
|
4
|
-
canDraw(element: MindElement<BaseData>): boolean;
|
|
5
|
-
draw(element: MindElement<BaseData>): SVGGElement;
|
|
6
|
-
afterDraw(element: MindElement): void;
|
|
7
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard } from '@plait/core';
|
|
2
|
-
import { MindElement } from '../../interfaces/element';
|
|
3
|
-
export interface NodeExtendHoveredRef {
|
|
4
|
-
element: MindElement;
|
|
5
|
-
}
|
|
6
|
-
export declare const pointerMoveHandle: (board: PlaitBoard, event: PointerEvent, nodeExtendHoveredRef: NodeExtendHoveredRef | null) => NodeExtendHoveredRef | null;
|
|
7
|
-
export declare const pointerLeaveHandle: (board: PlaitBoard, event: PointerEvent, nodeExtendHoveredRef: NodeExtendHoveredRef | null) => void;
|
|
8
|
-
export declare const addHovered: (element: MindElement) => void;
|
|
9
|
-
export declare const removeHovered: (element: MindElement) => void;
|