@plait/mind 0.2.0-next.9 → 0.2.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.
Files changed (48) hide show
  1. package/draw/richtext.d.ts +1 -1
  2. package/esm2020/draw/indented-link.mjs +3 -3
  3. package/esm2020/draw/link/logic-link.mjs +6 -4
  4. package/esm2020/draw/link.mjs +4 -4
  5. package/esm2020/draw/richtext.mjs +10 -8
  6. package/esm2020/draw/shape.mjs +2 -2
  7. package/esm2020/drawer/quick-insert.drawer.mjs +3 -3
  8. package/esm2020/interfaces/element.mjs +15 -1
  9. package/esm2020/interfaces/node.mjs +1 -10
  10. package/esm2020/node.component.mjs +34 -27
  11. package/esm2020/plugins/emoji/emoji.drawer.mjs +4 -8
  12. package/esm2020/plugins/emoji/emoji.mjs +31 -3
  13. package/esm2020/plugins/with-dnd.mjs +14 -9
  14. package/esm2020/plugins/with-mind.mjs +33 -27
  15. package/esm2020/queries/get-available-sublayouts-by-element.mjs +3 -3
  16. package/esm2020/queries/get-branch-layouts.mjs +4 -4
  17. package/esm2020/queries/get-layout-by-element.mjs +4 -4
  18. package/esm2020/transforms/abstract-node.mjs +3 -3
  19. package/esm2020/utils/dnd.mjs +9 -5
  20. package/esm2020/utils/draw-placeholder.mjs +7 -5
  21. package/esm2020/utils/index.mjs +1 -2
  22. package/esm2020/utils/mind.mjs +9 -16
  23. package/esm2020/utils/node-space.mjs +23 -18
  24. package/esm2020/utils/node-style/branch.mjs +14 -27
  25. package/esm2020/utils/node-style/common.mjs +13 -0
  26. package/esm2020/utils/node-style/index.mjs +3 -2
  27. package/esm2020/utils/node-style/shape.mjs +21 -0
  28. package/fesm2015/plait-mind.mjs +205 -172
  29. package/fesm2015/plait-mind.mjs.map +1 -1
  30. package/fesm2020/plait-mind.mjs +205 -171
  31. package/fesm2020/plait-mind.mjs.map +1 -1
  32. package/interfaces/element.d.ts +2 -0
  33. package/interfaces/node.d.ts +0 -1
  34. package/node.component.d.ts +0 -1
  35. package/package.json +1 -1
  36. package/plugins/emoji/emoji.d.ts +5 -1
  37. package/styles/styles.scss +19 -19
  38. package/utils/index.d.ts +0 -1
  39. package/utils/mind.d.ts +1 -2
  40. package/utils/node-space.d.ts +5 -4
  41. package/utils/node-style/branch.d.ts +4 -2
  42. package/utils/node-style/common.d.ts +3 -0
  43. package/utils/node-style/index.d.ts +2 -1
  44. package/utils/node-style/shape.d.ts +4 -0
  45. package/esm2020/utils/node-style/node.mjs +0 -23
  46. package/esm2020/utils/shape.mjs +0 -17
  47. package/utils/node-style/node.d.ts +0 -3
  48. package/utils/shape.d.ts +0 -2
@@ -31,9 +31,11 @@ export declare const MindElement: {
31
31
  isIndentedLayout(value: MindElement): boolean;
32
32
  isMindElement(board: PlaitBoard, element: PlaitElement): element is MindElement<BaseData>;
33
33
  getParent(node: MindElement): MindElement<BaseData>;
34
+ findParent(node: MindElement): MindElement<BaseData> | undefined;
34
35
  getRoot(board: PlaitBoard, element: MindElement): PlaitMind;
35
36
  getAncestors(board: PlaitBoard, element: MindElement): PlaitElement[];
36
37
  getNode(element: MindElement): import("@plait/mind").MindNode;
38
+ findParentNode(element: MindElement): import("@plait/mind").MindNode | undefined;
37
39
  hasEmojis(element: MindElement): element is MindElement<EmojiData>;
38
40
  getEmojis(element: MindElement<EmojiData>): import("./element-data").EmojiItem[];
39
41
  };
@@ -17,7 +17,6 @@ export interface MindNode {
17
17
  }
18
18
  export declare const MindNode: {
19
19
  get(root: MindNode, path: Path): MindNode;
20
- isEquals(node: MindNode, otherNode: MindNode): boolean;
21
20
  };
22
21
  export type ExtendLayoutType = Exclude<MindLayoutType, MindLayoutType.standard>;
23
22
  export type CoordinateType = {
@@ -17,7 +17,6 @@ export declare class MindNodeComponent extends PlaitPluginElementComponent<MindE
17
17
  isEditable: boolean;
18
18
  roughSVG: RoughSVG;
19
19
  node: MindNode;
20
- parent: MindNode;
21
20
  index: number;
22
21
  abstractIncludedOutlineG?: SVGGElement;
23
22
  parentG: SVGGElement;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/mind",
3
- "version": "0.2.0-next.9",
3
+ "version": "0.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.3.0",
6
6
  "@angular/core": "^13.3.0"
@@ -1,7 +1,11 @@
1
+ import { PlaitBoard, Point, RectangleClient } from '@plait/core';
1
2
  import { EmojiData, MindElement } from '../../interfaces';
2
3
  import { PlaitMindBoard } from '../with-extend-mind';
3
- export declare function getEmojisRectangle(board: PlaitMindBoard, element: MindElement<EmojiData>): {
4
+ export declare function getEmojisWidthHeight(board: PlaitMindBoard, element: MindElement<EmojiData>): {
4
5
  width: number;
5
6
  height: number;
6
7
  };
7
8
  export declare function getEmojiFontSize(element: MindElement<EmojiData>): number;
9
+ export declare function getEmojiRectangle(board: PlaitMindBoard, element: MindElement<EmojiData>): RectangleClient;
10
+ export declare function getEmojiForeignRectangle(board: PlaitMindBoard, element: MindElement<EmojiData>): RectangleClient;
11
+ export declare const isHitEmojis: (board: PlaitBoard, element: MindElement<EmojiData>, point: Point) => boolean;
@@ -25,20 +25,6 @@ g[plait-mindmap='true'] {
25
25
  .dragging-child {
26
26
  opacity: 0.6;
27
27
  }
28
-
29
- .node-emojis-container {
30
- display: flex;
31
- position: initial;
32
- align-items: center;
33
- height: 100%;
34
- ::-moz-selection {
35
- /* Code for Firefox */
36
- background: none;
37
- }
38
- ::selection {
39
- background: none;
40
- }
41
- }
42
28
  }
43
29
 
44
30
  .plait-board-container {
@@ -105,11 +91,25 @@ g[plait-mindmap='true'] {
105
91
  &.abstract-resizing-vertical {
106
92
  cursor: ew-resize;
107
93
  }
108
- }
109
94
 
110
- .fake-node {
111
- .dragging {
112
- cursor: pointer;
113
- opacity: 0.6;
95
+ .node-emojis-container {
96
+ display: flex;
97
+ position: initial;
98
+ align-items: center;
99
+ height: 100%;
100
+ ::-moz-selection {
101
+ /* Code for Firefox */
102
+ background: none;
103
+ }
104
+ ::selection {
105
+ background: none;
106
+ }
107
+ }
108
+
109
+ .fake-node {
110
+ &.dragging {
111
+ cursor: pointer;
112
+ opacity: 0.6;
113
+ }
114
114
  }
115
115
  }
package/utils/index.d.ts CHANGED
@@ -2,7 +2,6 @@ export * from './graph';
2
2
  export * from './weak-maps';
3
3
  export * from './mind';
4
4
  export * from './layout';
5
- export * from './shape';
6
5
  export * from './node-style';
7
6
  export * from './is-virtual-key';
8
7
  export * from './draw-placeholder';
package/utils/mind.d.ts CHANGED
@@ -2,14 +2,13 @@ import { MindLayoutType } from '@plait/layouts';
2
2
  import { Path, PlaitBoard, Point } from '@plait/core';
3
3
  import { MindElementShape, MindNode } from '../interfaces';
4
4
  import { MindElement } from '../interfaces/element';
5
- export declare function findParentElement(element: MindElement): MindElement | undefined;
6
5
  export declare function findUpElement(element: MindElement): {
7
6
  root: MindElement;
8
7
  branch?: MindElement;
9
8
  };
10
9
  export declare const getChildrenCount: (element: MindElement) => number;
11
10
  export declare const isChildElement: (origin: MindElement, child: MindElement) => boolean;
12
- export declare const filterChildElement: (elements: MindElement[]) => MindElement<import("../interfaces").BaseData>[];
11
+ export declare const getFirstLevelElement: (elements: MindElement[]) => MindElement<import("../interfaces").BaseData>[];
13
12
  export declare const isChildRight: (node: MindNode, child: MindNode) => boolean;
14
13
  export declare const isChildUp: (node: MindNode, child: MindNode) => boolean;
15
14
  export declare const copyNewNode: (node: MindElement) => MindElement<import("../interfaces").BaseData>;
@@ -1,10 +1,11 @@
1
1
  import { MindElement } from '../interfaces/element';
2
2
  import { PlaitMindBoard } from '../plugins/with-extend-mind';
3
+ import { EmojiData } from '../interfaces/element-data';
3
4
  export declare const NodeSpace: {
4
5
  getNodeWidth(board: PlaitMindBoard, element: MindElement): number;
5
6
  getNodeHeight(element: MindElement): number;
6
- getTextHorizontalSpace(board: PlaitMindBoard, element: MindElement): number;
7
- getTextVerticalSpace(element: MindElement): number;
8
- getEmojiHorizontalSpace(element: MindElement): number;
9
- getEmojiVerticalSpace(element: MindElement): number;
7
+ getTextLeftSpace(board: PlaitMindBoard, element: MindElement): number;
8
+ getTextTopSpace(element: MindElement): number;
9
+ getEmojiLeftSpace(board: PlaitMindBoard, element: MindElement<EmojiData>): number;
10
+ getEmojiTopSpace(element: MindElement): number;
10
11
  };
@@ -3,8 +3,10 @@
3
3
  */
4
4
  import { PlaitBoard } from '@plait/core';
5
5
  import { MindElement } from '../../interfaces/element';
6
- export declare const getBranchColorByMindElement: (board: PlaitBoard, element: MindElement) => string;
7
- export declare const getBranchWidthByMindElement: (board: PlaitBoard, element: MindElement) => number;
6
+ export declare const getBranchColorByMindElement: (board: PlaitBoard, element: MindElement) => any;
7
+ export declare const getBranchWidthByMindElement: (board: PlaitBoard, element: MindElement) => any;
8
8
  export declare const getAbstractBranchWidth: (board: PlaitBoard, element: MindElement) => number | undefined;
9
9
  export declare const getAbstractBranchColor: (board: PlaitBoard, element: MindElement) => string;
10
10
  export declare const getNextBranchColor: (root: MindElement) => string;
11
+ export declare const getDefaultBranchColor: (board: PlaitBoard, element: MindElement) => string;
12
+ export declare const getDefaultBranchColorByIndex: (index: number) => string;
@@ -0,0 +1,3 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ import { MindElement } from '../../interfaces/element';
3
+ export declare const getAvailableProperty: (board: PlaitBoard, element: MindElement, propertyKey: keyof MindElement) => any;
@@ -1,2 +1,3 @@
1
1
  export * from './branch';
2
- export * from './node';
2
+ export * from './shape';
3
+ export * from './shape';
@@ -0,0 +1,4 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ import { MindElement, MindElementShape } from '../../interfaces/element';
3
+ export declare const getStrokeByMindElement: (board: PlaitBoard, element: MindElement) => string;
4
+ export declare const getShapeByElement: (board: PlaitBoard, element: MindElement) => MindElementShape;
@@ -1,23 +0,0 @@
1
- import { MindElement } from '../../interfaces/element';
2
- import { BRANCH_COLORS } from '../../constants/node-style';
3
- import { DefaultRootStyle } from '../../constants/node-style';
4
- export const getStrokeByMindElement = (board, element) => {
5
- const ancestors = MindElement.getAncestors(board, element);
6
- ancestors.unshift(element);
7
- const ancestor = ancestors.find(value => value.strokeColor);
8
- if (ancestor && ancestor.strokeColor) {
9
- return ancestor.strokeColor;
10
- }
11
- const root = ancestors[ancestors.length - 1];
12
- const branch = ancestors[ancestors.length - 2];
13
- if (branch) {
14
- const index = root.children.indexOf(branch);
15
- const length = BRANCH_COLORS.length;
16
- const remainder = index % length;
17
- return BRANCH_COLORS[remainder];
18
- }
19
- else {
20
- return DefaultRootStyle.strokeColor;
21
- }
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUtc3R5bGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDOUUsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFrQixDQUFDO0lBQzVFLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO1FBQ2xDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQztLQUMvQjtJQUVELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxFQUFFO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ25DO1NBQU07UUFDSCxPQUFPLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztLQUN2QztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBCUkFOQ0hfQ09MT1JTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtc3R5bGUnO1xuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcblxuZXhwb3J0IGNvbnN0IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYW5jZXN0b3JzID0gTWluZEVsZW1lbnQuZ2V0QW5jZXN0b3JzKGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIGFuY2VzdG9ycy51bnNoaWZ0KGVsZW1lbnQpO1xuICAgIGNvbnN0IGFuY2VzdG9yID0gYW5jZXN0b3JzLmZpbmQodmFsdWUgPT4gdmFsdWUuc3Ryb2tlQ29sb3IpO1xuICAgIGlmIChhbmNlc3RvciAmJiBhbmNlc3Rvci5zdHJva2VDb2xvcikge1xuICAgICAgICByZXR1cm4gYW5jZXN0b3Iuc3Ryb2tlQ29sb3I7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYnJhbmNoID0gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAyXTtcbiAgICBpZiAoYnJhbmNoKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcm9vdC5jaGlsZHJlbi5pbmRleE9mKGJyYW5jaCk7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IEJSQU5DSF9DT0xPUlMubGVuZ3RoO1xuICAgICAgICBjb25zdCByZW1haW5kZXIgPSBpbmRleCAlIGxlbmd0aDtcbiAgICAgICAgcmV0dXJuIEJSQU5DSF9DT0xPUlNbcmVtYWluZGVyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGVmYXVsdFJvb3RTdHlsZS5zdHJva2VDb2xvcjtcbiAgICB9XG59O1xuIl19
@@ -1,17 +0,0 @@
1
- import { MindElementShape } from '../interfaces';
2
- import { findParentElement } from './mind';
3
- export const getNodeShapeByElement = (element) => {
4
- let nodeShape = element.shape;
5
- if (nodeShape) {
6
- return nodeShape;
7
- }
8
- let parent = findParentElement(element);
9
- while (parent) {
10
- if (parent.shape) {
11
- return parent.shape;
12
- }
13
- parent = findParentElement(parent);
14
- }
15
- return MindElementShape.roundRectangle;
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBb0IsRUFBb0IsRUFBRTtJQUM1RSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlCLElBQUksU0FBUyxFQUFFO1FBQ1gsT0FBTyxTQUFTLENBQUM7S0FDcEI7SUFDRCxJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV4QyxPQUFPLE1BQU0sRUFBRTtRQUNYLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNkLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztTQUN2QjtRQUNELE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0FBQzNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50LCBNaW5kRWxlbWVudFNoYXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmaW5kUGFyZW50RWxlbWVudCB9IGZyb20gJy4vbWluZCc7XG5cbmV4cG9ydCBjb25zdCBnZXROb2RlU2hhcGVCeUVsZW1lbnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpOiBNaW5kRWxlbWVudFNoYXBlID0+IHtcbiAgICBsZXQgbm9kZVNoYXBlID0gZWxlbWVudC5zaGFwZTtcbiAgICBpZiAobm9kZVNoYXBlKSB7XG4gICAgICAgIHJldHVybiBub2RlU2hhcGU7XG4gICAgfVxuICAgIGxldCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChlbGVtZW50KTtcblxuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgaWYgKHBhcmVudC5zaGFwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5zaGFwZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZTtcbn07XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- import { MindElement } from '../../interfaces/element';
3
- export declare const getStrokeByMindElement: (board: PlaitBoard, element: MindElement) => string;
package/utils/shape.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { MindElement, MindElementShape } from '../interfaces';
2
- export declare const getNodeShapeByElement: (element: MindElement) => MindElementShape;